The best things and stuff of 2014
Great things and people that I discovered, learned, read, met, etc. in 2014. No particular ordering is implied. Not everything is new.
also: see the lists from 2013, 2012, 2011 and 2010
Great blog posts read
What happens if you write a TCP stack in Python? Julia Evans answers this question with “something awesome.” I couldn’t agree more.
The Bootstrapped Compiler and the Damage Done Laurence Tratt writes my favorite blog.
How Steve Wozniak Wrote BASIC for the Original Apple From Scratch The title says enough.
The Legend Of Linda Perhacs, ‘A Most Unlikely Rock Star’ Linda Perhacs is a little-known Folk singer who almost disappeared into eternal obscurity. That is, until her music was rediscovered decades after releasing her only album.
Life of a HTTP request, as seen by my toy web server I’ve always thought that programming toys (e.g. compilers, interpreters, servers, etc.) were, like the fruit fly, useful ways to gain a deeper understanding of larger systems within the confines of a constrained tableau.
The problematic culture of “Worse is Better” Well someone had to say it, and I’m glad that it was Paul Chiusano who did.
How I wrote Neuromancer A lovely little vignette by William Gibson about how Neuromancer came to be. The spirit of the article really resonates with my own experience and motivations for helping to write The Joy of Clojure.
ALEC’s a Language for Expressing Creativity – Grant Rettke is building a system on top of Emacs called Alec that is not only a useful tool, but a tool that has informed his very way of thinking. His ongoing journey is told via org-mode-babel files on Github and it’s a joy to read.
Frank Sinatra has a cold a great story from a bygone age about a force of nature.
A Generation Lost in the Bazaar A critical essay about the bazaar model of software development.
The second operating system hiding in every mobile phone Little-known considerations about firmware insecurities in your phone.
Forth Methodology Applied to Programming The title say enough.
What is Gradual Typing from the source
Ramblings on languages and architectures Mike Pall’s mind is open.
Most viewed blog posts by me (20K+ viewers)
I’ve been scaling back on blogging this past year and have tried something different instead – Read-Eval-Print-λove. That said, there were a couple of high-traffic posts on my blog.
10 Technical Papers Every Programmer Should Read (At Least Twice) — My most popular post of 2011 was also my most popular of 2012 and also of 2013 and also of 2014 — go figure.
Timothy Hart, Rest in Peace — Timothy Hart was the father of LISP macros.
Favorite technical books discovered (and read)
Creating Interactive Fiction with Inform7 — Inform7 is a perspective-altering programming language. It’s nearly the pinnacle of languages that are informed (hah) by the types of problems that they’re attempting to solve. Beautiful.
Object Oriented Forth — Honestly, I can’t think of better tech literature available than those written about Forth.
Ruby Under a Microscope — I’ll honestly say that I went into this book expecting the worst. However, I was pleasantly surprised when I was done that the book is a fairly nice dive into the Ruby internals. I’m frankly shocked that a book like this was even published, but once again the long tail reigns supreme; much to our benefit.
Programmer avec Scheme — I read this in a marathon 3-days during Strange Loop 2014 thanks to Nada Amin, who hauled it all the way across the planet for me to read. I’d really love to get another chance to go through it and digest it, but I did like it very much on my first pass. My favorite part was that while the prose was French, the code too was “very French” also!
Favorite non-technical books read
Ulysses by James Joyce — I finally got around to reading this and wow am I glad that I did. It took me a month to read and tended to dominate my other parallel books at the time, but it was worth the effort. Leopold Bloom is now one of my favorite anti-heroes from fiction.
How Buildings Learn: What Happens After They’re Built — It was this book that made me (finally) realize that some of the best programming books are not about programming at all. As a result I’ve cut back drastically on my “language-specific” programming books1 and have sought programming-relevant books instead.
Feminism Is for Everybody: Passionate Politics — The most lucid outline of feminism that I’ve found so far.
Anarchy and Alchemy: The Films of Alejandro Jodorowsky — I’ve always been an admirer of Jodorowsky’s films and graphic novels, so when I saw the cover I knew that I had to read this. I was not disappointed. The book is filled with spoilers, so beware.
Blindness — Another book that could have been easily subtitled ‘Humans are terrible.’
How to Travel with a Salmon and Other Essays — I couldn’t put this book down. Eco’s wit is impeccable and had me giggling at 2am.
Number of books read
Number of books published
1.
Number of books written
0
Language zoo additions
JS relational algebra thingy and Black
Favorite musicians discovered
Mississippi John Hurt, Memory Tapes, Black Ace, The Pilgrim Travelers, Mildred Bailey, Baby Huey and the Babysitters (via mrb_bk)
Interesting games discovered
- Catchup — The link conveys my thoughts on this beautiful game. Huge thanks to Zeeshan for all the games this year.
- Koi-Koi — A game that when you’re done you’ve created something beautiful.
- Splendor — This is considered an “engine-building” game that would appeal to many a programmer IMO.
- Entropy — Quite possibly my favorite game discovered this year even though I only just found it. Pure beauty in conception and execution. This is one of the few games that I wish I had thought of first.
- Alfred’s Wyke — A strange little game that baffles me how anyone could have even thought of it.
- Undercut — A sinister auction game turned on its head.
Favorite TV series about zombies
The Walking Dead
Favorite programming languages (or related) I’ve hacked
Clojure,2 ClojureScript, Haskell, Datalog, Frink, Racket, Erlang
Programming languages used for projects both professional and not this year
Clojure, ClojureScript, Java, JavaScript, Datalog, Haskell, Python
Programming languages that I’m dying to explore next year
- Black — After seeing Nada Amin’s keynote I was compelled to run out and find out more about Black.
- Idris — Idris is
probably the most exciting language that I’ve seen since I found Clojure. - LFE — Lisp. Flavored. Erlang. Need I say more?
- Squeak and/or Pharo— It’s time.
- Inform7 — A lovely language meant for creating interactive fiction, with a syntax that’s pseudo-natural.
- Joy — I’m in constant fear that this language will be forgotten.
Number of papers read
≈ 12 (again, a very slow year for me in the paper department)
Favorite papers discovered (and read)
Automatic Generation and Evaluation of Recombination Games (ZIP) by Cameron Browne
EULER: a Generalization of ALGOL and its Formal Definition (PDF) by Niklaus Wirth and Helmut Weber
Duplication and Partial Evaluation – For a Better Understanding of Reflective Languages by Asai, Matsuoka, and Yonezawa (and edited by Daniel Friedman!)
Control Structures for Programming Languages (PDF) by David Fisher
Dataless Programming (PDF) by Robert Balzer
Monte-Carlo Tree Search for Multi-Player Games (PDF) by Joseph Antonius Maria Nijssen
GEDANKEN: A Simple Typeless Language Which Permits Functional Data Structures and Coroutines (PDF) by John Reynolds
The Neural Basis of Intuitive Best Next-move Generation in Board Game Experts (PDF)
Still haven’t read…
Snow Crash, Spook Country, A Fire upon the Deep, Norwegian Wood, The Contortionists Handbook and a boat-load of scifi
Favorite conference attended
Favorite code read
- Om (Clojure) — A manifestation of the ideas in the paper “Worlds: Controlling the Scope of Side Effects“ 3
- Z3 (Verilog) — Learning about Inform7 has gotten me interested in exploring the Z-Machine more deeply. It was good timing when I discovered this project to create a hardware impl of the Z3 machine. I don’t fully understand it, but it’s gotten me motivated to try.
- Dominion (Haskell) — For some reason my favorite Haskell programs to study tend to be game implementations. I suppose they have the right mix of logic, complexity, data structure considerations, and I/O.
- Black (Scheme) — I recommend reading the code side-by-side with the paper (listed above).
- type-systems (OCaml) — The fruit flies of type system theory. A nice place to start learning the subject IMO.
Life changing technology discovered
- None.
State of plans from 2013
- Publish The Joy of Clojure, 2E
- Create a card game: Natto
- Create a dice game: Ozymandias
- Create a board game: Niwa, Insurrection
- Create a Looney Pyramids game: Logistics
- Blog about Zeder: major fail, though a Zeder talk is available
- Patagonia: major fail, though I talk about it in the Zeder talk linked previously
- No talks without code to show: partial success. I did agree to give the RacketCon keynote without code.
Plans for 2015
- Publish (at least) one issue of Read-Eval-Print-λove
- UCT in Clojure
- Treaps in Clojure
- Release secret project Phenomena
- Publish a card game of my own design
- Implement Lines of Action in an interesting language
- Contribute to other peoples’ OSS projects more often.
Onward to 2015!
:F
-
And I’ve made it a personal goal to limit the “language-specific” books to those written before 1995. ↩
-
This is the first year in my career that I wrote more Clojure code than the sum of code in all other languages used. ↩
-
I would love to see great ideas in papers more widely implemented. While Om is a truly practical system, I think that said implementations need not be. ↩
Categories: me
Thanks for the games section – I’ll be visiting/browsing boardgamegeek.com.
I recommend you move “A Fire Upon the Deep” higher in your to-read queue. It’s a classic with atypical excellence in both the space opera and the deep thoughts parts of the story.
by conrad on Dec 29, 2014 at 15:08:05
+1 for effort. Great lists …
by Addy on Dec 29, 2014 at 18:09:40
There are too many books to read! Read Snow Crash while it’s still ripe!
by AnimusHerb240 on Dec 30, 2014 at 00:32:50
Dude, last year you said you were going to read Snow Crash, and this year you say you still haven’t read Snow Crash. I think it’s time to read it – such a good read.
by Bubba Jones on Dec 30, 2014 at 01:34:28
Wow. Probably the best blog post I’ve come across this year. Nice collection of stuff. Thanks!
by frank on Dec 30, 2014 at 03:50:04
Wow, I’m stunned you seem to have found Feminism is for Everybody worthwhile. I found it to be an incredibly bad book given the goal set forth in the introduction, which was to be an accessible introduction to feminism. To me, FifE was a long series of accusations, unsubstantiated assertions, and notes about historical squabbles between factions within feminism.
by brian on Dec 30, 2014 at 05:57:32
No interest in Elm at all or Qi/Shen?
by Dax Fohl on Dec 30, 2014 at 11:34:27
Excellent post. I was inspired to do one of my own (hopefully it sees the light of day soon). I wasted the better part of a day chronicling all of the books I read last year. Add another vote for Snow Crash. I’ve read several other Neal Stephenson books since that one, and have never been let down.
by Boone Putney on Dec 31, 2014 at 17:52:46
Brian, your criticism of Feminism is for Everybody is about as vapid as they come.
Knowing that it irks you and yours speaks volumes about the quality of the book.
by troika on Mar 17, 2021 at 22:15:57