CRANberries aggregates information about new, updated and removed packages from the CRAN network for R available as this html version and a corresponding RSS feed.
Created and provided by Dirk Eddelbuettel.
So upon returning from useR! 2007 in Ames, IA, I sat down and built it. It has been running ever since, initially twice a day but now runs every two hours.
available.packages()
. So I
call this function, and essentially record the values (in a small
SQL database). The next time this runs, it compares the current
return from available.packages()
with the stored
result---and the difference is set comprised of either a new package, an updated
package or (when computed the other way) a removed package. R
even does this for use via setdiff()
.And those are three main categories. By also storing when new and updated packages are noticed, we can report the change in version (as in new version 1.2.3 replacing version 1.2.2 dated x.y.z). For removed packages, we can report what versions existed etc.
The minimal changes are written out to small standardized text files which are read by a static blog compiler. I use blosxom as that is what my existing blog used, and I had no issues with it. It is small and simple, but was already dead upstream and written in a language I don't really use anymore. But hey, it works. And it has a nice and simple templating system.
So blosxom takes these text files, and (very reliably) creates a tree of html and rss files.
A few years in we usual started to post to a once-popular but now disgraced social media site which since also turned its API off. We then switched to posting on the @CRANberriesFeed Mastodon account and more recently, thanks to an assist by Johannes B. Gruber, added the @cranberriesfeed.bsky.social account.
yyyy/mm/
format.
So you either browse, or subscribe to the rss, at each of
cran
for everything from CRANcran/new
for new packages at CRANcran/updated
for updated packages at CRANcran/removed
for updated packages at CRAN20xx/
for everything from the year 20xx at CRAN20xx/yy/
for everything from the month yy in the year 20xx at CRAN20xx/yy/zz/
for everything from the day zz in the month yy and year 20xx at CRANAnd additional distributions mechanism was provided for years via the Twitter CRANberriesFeed handle which now lives on via the @CRANberriesFeed Mastodon account and, thanks to an assist by Johannes B. Gruber, the @cranberriesfeed.bsky.social account.
More recently, I worked with Bootstrap for another site and liked how it combines easy styling, responsive design on large screens as well as mobiles and tablet and decided to redo this. Because, hey, the mobile web is the future, right :)
The excellent Bootstrap toolkit is used for general layout and its infrastrucure. The theme is a modified version of one of the Bootswatch themes. Lastly, we use two symbols from Font Awesome.
Thanks also to all who provided the tools used here, and not just those I mentioned but really the entire open source stacks and distributions. This includes the tools we use to toot and skeet, and the bsky account kindly created by Johannes B. Gruber.