Some quick notes from my recent activities and reading list. Although I am far less active that I used to be in the past (and that I would like to be currently), I still archive–when time allows–interesting things that happen on the web or that I found potentially useful for my work.

The famous “Structure and Interpretation of Computer Programs”, by Abelson, Sussman, and Sussman, is now live on GitHub. Great work, really! The HTML and PDF rendering are carefully done and I noticed there’s an update version of the Info file that I browse from time to time in Emacs.

Composing Programs is one of the best online tutorial that I found for Python. It reminds me of the beautiful Eloquent Javascript or Smooth CoffeeScript. It relies on Python Tutor and it is based on the SICP mentioned above. The author wrote another excellent online textbook, Computational and Inferential Thinking, where Pyhton is used for statistical data analysis.

While I found myself using Shiny more and more1, I discovered Radiant which provides a very nice interactive playground for exploratory data analysis. It is built on top of Shiny but it incorporates several nifty additions like Pivot Tables or a dedicated panel to build GGplot2 graphics. In the same spirit, but using Vega, Pole✭ is one of the interactive environment developed at the UW IDL (see also Lyra).

I have been using Spacemacs every day for more than five weeks and I must admit that it really rocks. I dropped some words about it a year ago but I think it has now reached full maturity. Since I keep using Spacemacs in Emacs mode, I’m as comfortable with editing my text files than I was with my old Emacs. As usual, I started writing a post describing my feeling about Spacemacs, but it’s always in my draft inbox. Incidently, switching to Spacemacs also led me to take another look at Atom, which comes with a pretty nice theme (“One Dark”, also available for Emacs) and a clean UI. For Julia users, Juno is built on top of Atom, using Ink2, which aims to be

a toolkit for building IDEs in Atom – in particular, it’s aimed at providing the UI pieces necessary to build richly interactive, live environments for programming – inspired by the likes of SmallTalk, Lisp, LightTable, DevTools, Swift, and others.

Note that other companies are actually building their tools around Atom, e.g. Facebook’s Nuclide or Nylas.

The “Gifi book” is now available as an R Markdown book, thanks to Jan de Leeuw who remains as productive as ever. The bookdown R package has now superseded Hadley Wickham’s Mardown-based GitHub wiki’s, and it offers online publishing facilities like GitBook.

I came across very nice Stata cheat sheets, which remind me of RStudio cheat sheets. Generally speaking, I think that such cheat sheets are very good for people trying to learn a new software because they can quickly find the main commands that are used to perform a certain (canonical) task.

I just finished reading How to be a modern scientist, by Jeff Leek, which is full of good advices about reproducible research and how to organize our work as scientist (writing/reviewing paper, working with data, etc.). I found many other interesting books, mostly related to Lisp, to read on Leanpub: Programming in Clojure, Loving Common Lisp, or the Savvy Programmer’s Secret Weapon, Build Your Own Lisp.

Some folks started rewriting Think Stats Python’s snippets in Clojure. Despite the buzz five or six years ago, it looks like no one started hacking a real replacement for Lisp Stat (and Common Lisp Statistics looks on a siding right now). There is, however, this collection of statistical libraries, and many IDEs (e.g., LightTable, Cursive, Nightcode) or online editors (e.g., Gorilla REPL, or the minimalistic InstaREPL). Regarding books, there are Clojure Data Analysis Cookbook and Mastering Clojure Data Analysis (by the same author, Eric Rochester).

  1. After 8 years of writing short to long statistical reports, I came to the conclusion that not only shall we deliver to any customer a reproducible report with accompagnying R or Stata code but also an interactive application so that they can explore their data on their own. [return]
  2. Hydrogen further allows to run anything that is supported by Jupyter kernels. [return]