Here is another micro review of random or not so random links I found while browsing the interweb lately.

  • Haskell. History of a Community-Powered Language: This is broad review of the inception of Haskell, statically typed and purely functional programming language that many FP programmer love for its purity. The first Haskell report dates back to the 90’s, so it’s been a while, and Haskell Prime will the new standard by 2020. There is a PDF reveiw available on Microsoft website as well. It is also worth checking, or even subscribing to, the whole blog if you are inclined to use FPs and especially Haskell.

  • This new shell clearly looks very hand for data munging: Introducing nushell. Indeed, if you look at the demo on the blog post, many oprations are usually what we found in data processing at the command-line, using pipes, redirection, and the like. The fact that ls, for instance, returns a structured table of results makes me think of JSON or YAML common data format, together with jq or csvkit utilities, as discussed by Jearoen Janssens in his wonderful textbook, Data Science at the Command Line. After search engines, Emacs clone, this is the first instance of a shell emulation in Rust that I am aware of. I am not going to switch, though, and I am quite happy with my recent move to Fish. However, I am now eager to try the GSL shell again.

  • There are so many applied math textbook available for free on the internet that it is hard to make a definitive choice. My BibTeX file is full of preprint, published or archived textbooks, and I barely have time to read a dozen of them each year. Today, I found Introduction to Applied Linear Algebra – Vectors, Matrices, and Least Squares, from Cambridge University Press, available as a PDF. And guess what: It was already in my electronic bookshelf! You will have to schedule some time to review it since it is 473 pages long, and covers both mathematical theory and applications to statistics (e.g., distance-based clustering, dynamical systems, or OLS and logistic regression).

  • I just noticed this thread on HN, in which UglyToad complains that only 2-3 hours are really productive in a day. I can relate, since I observed the same pattern when working as an applied statistician: 3 hours (one burst) for writing code, that’s only what I was able to do in a day; hopefully, I could benefit from the rest of the day to write statistical reports and process emails! It also reminds me of Chris Done’s report on his weekly activity on Github for a particular project: there was a clear pattern of high intensity the first three days, then a progressive decrease in the number of commits starting on Thursday up to Sunday. (Unfortunately I can’t get my hands on this post.)

  • What is the ideal blog post length for SEO?. I will have a hard time publishing only 1500 word long blog posts, but I’m no SEO and I believe it all depends on the target audience. For instance, I like reading short to medium length posts on John Cook or Irreal blogs, but I also enjoy more lengthy discussions on Caches to Caches or Evan Miller’s weblog. Sometimes it just depends on my mood, or the available time. However, it may happen that at some point I only want to ready a bunch of short posts, which is still more refreshing than browsing my Twitter TL some day.

  • This day on Hacker News: The A-Z of Programming Languages (PDF, 127 pp.), with interviews from Rich Hickey, Joe Armstrong, Simon Peyton-Jones, Guido van Rossum, among others. Be careful, the hyperlinks in the table of contents point elsewhere on the internet. I learned that the Haskell ‘98 version was frozen to allow people to write books and teaching material on Haskell. Parallel computation and concurrency are frequent inquiries along the interviews. Functional PLs are naturally good candidates, whether lazy (Haskell) or not (Scheme).

    Why did you choose to create another Lisp dialect instead of extending an existing one? While Lisps are traditionally extremely extensible, I had made some design decisions, like immutability for the core data structures, that would have broken backward compatibility with existing Scheme and Common Lisp programs. Starting with a clean slate let me do many other things differently, which is important, since I didn’t want Clojure to appeal only to existing Lispers. In the end Clojure is very different and more approachable to those having no Lisp background — Rich Hickey