Great things and people that I discovered, learned, read, met, etc. in 2015. No particular ordering is implied. Not everything is new.
Great blog posts read
- 1,000 True Fans – an interesting look into a certain aspect of the long-tail (something I’ve been mulling over lately WRT lang and game dev).
- I worked in a video store for 25 years… – as someone who grew up during the golden age of video stores (I spent hours looking through the horror section) this was a fascinating read about their demise.
- An Apple // Watch – with a fantastic comment by Woz.
- Static vs. Dynamic Languages: A Literature Review – the minimum needed to start engaging in the long debate?
- Bill Gates and Petals Around the Rose – Bill Gates solves a logic puzzle — a likely apocryphal tale.
- 5 Steps To Re-create Xerox PARC’s Design Magic – Whether you agree with Alan Kay or not, his positions are worth understanding.
- Have Static Languages Won? – The answer: not if we’re doing it right.
- The web of names, hashes, and UUIDs – Joe Armstrong talks about a model of the web as a persistent database.
- Wrestling Big Ideas in a Bruising Workplace – I honestly don’t know what working at Amazon is like nor if the portrayals hit home, but the environments described do indeed exist and are worth discussion.
- The Architecture of the Burroughs B5000 – The computer architecture that could/should have been the basis for today’s offerings?
- God’s Lonely Programmer – At one point I was obsessed with OS kernel development. Naturally my studies and explorations led me to LoseThos , an eccentric OS designed and developed by an eccentric programmer named Terry Davis. This is his story.
- The economics and politics of Thomas the Tank Engine – Sir Topham as dictator?!
- META II: Digital Vellum in the Digital Scriptorium – A fascinating look at a fascinating compiler-compiler that could compile itself, written many years ago.
- The Ethics of Unpaid Labor and the OSS Community – Ashe Dryden’s thoughtful look into the costs of open-source labor and who benefits from them. This article has really changed my perspective around open-source.
- Macintosh Common Lisp – a description of what could/should have been for iOS development (you have to really stretch you imagination however).
- The convergence of compilers, build systems and package managers – Edward Z. Yang explores the idea of holistic approaches to solving module systems by integrating them into languages themselves or by designing better abstraction around them.
- Writing an OS in Rust – OSDev is the killer app for Rust .
Most viewed blog posts by me
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.
- The 100:10:1 method: my approach to open source – wherein I describe how my focus on open-source development has shifted from high-volume to a focus on real value and (hopefully) higher quality.
- Six works of computer science-fiction – Six books about computing systems that couldn’t possibly exist, but do/did.
- Inspirational technical books that are not technical – Non-technical books about code, systems, or people that motivate me to write code.
- Palindromic sequences in Clojure – Playing around with palindromes in Clojure .
Favorite technical books discovered (and read)
I’ve intentionally reduced the number of technical books that I consume lately, but there are a few that I “found” in 2015 that are stellar.
- The New Media Reader edited by Nick Montfort – If you’re interested in the ideas put forth by the likes of Alan Kay or Bret Victor then this book provides a sliver of their minds.
- Tools for Thought – Ditto
- Bitcoin for the Befuddled – Another triumph for Conrad Barski !
- Handbook of LISP functions – an early junk-drawer software library — fully documented.
Favorite non-technical books read
- Blues People – the story of the blues and the circumstances and people that led to it.
- Wabi-Sabi: for Artists, Designers, Poets & Philosophers – One of the best non-programming-programming books that I’ve ever read. (thanks for the recommendation Sam !)
- The Glass Bead Game – if, like me, you only liked the Mathic parts of Anathem then you might like this gem.
- Between the World and Me – having grown up within a very different context, but in the same city as Mr. Coates, this book was eye-opening.
- The Universal Baseball Association, Inc., J. Henry Waugh, Prop. – a story about obsession, and only a little bit about baseball.
- The Black Cloud by Fred Hoyle – My favorite sci-fi novel discovered this year. A story about a global threat to humanity and what we do about it.
Number of books read
Number of books published
Number of books written
Number of books abandoned
Favorite musicians discovered
- Zakir Hussain – a 10x percussionist.
- Sonny Sharrock – a 10x guitarist.
- Belong – my favorite ambient of the year.
- Baby Huey – a silky-smooth voice (thanks MRB )
- Mississippi John Hurt – my favorite blues artist found this year.
Interesting games discovered
- Piquet – a fun trick-taking game from the 1500s.
- Age of Steam – a nasty (in a good way) game about trains and delivering goods.
- Northern Pacific – a game about connecting train routes through the Pacific Northwest.
- Slither – the second-best use for a Goban.
- Neue Heimat – a nasty (again, in a good way) auction game.
Favorite TV series about zombies
The Walking Dead
Favorite programming languages (or related) I’ve hacked on/with this year
Programming languages used for work-related projects this year
Programming languages that I hope to explore next year
- Crystal — This just came onto my radar, so I still don’t know much about it yet.
- Black — After seeing Nada Amin’s keynote I was compelled to run out and find out more about Black. Maybe this year I’ll actually use it.
- Idris —
probably the most exciting language that I’ve seen since I found Clojure.
Favorite papers discovered (and read)
- Optimization of Series Expressions by Richard Waters ( PDF ) – a description of “Transducers” in Common Lisp that attempt to solve a similar problem as Clojure’s Transducers , but from a different angle.
- Higher-order symbolic execution for contract verification and refutation by Phuc C. Nguyen, Sam Tobin-Hochstadt, David Van Horn ( Arvix ) – Racket is the gift that keeps on giving.
- Modular implicits by Leo White, Frederic Bour, and Jeremy Yallop ( PDF ) – I think I need to read this a few more times to really appreciate its amazingness.
- Programming in an interactive environment the “LISP” experience by Eric Sandewall ( PDF ) – How does your “interactive development environment” compare?
- The Reactive Engine by Alan Kay – Kay’s thesis.
- Machine Learning: The High-Interest Credit Card of Technical Debt ( PDF ) by D. Sculley, Gary Holt, Daniel Golovin, Eugene Davydov, Todd Phillips, Dietmar Ebner, Vinay Chaudhary, and Michael Young – ML is always amazing right? Maybe not.
- Does Having Boys or Girls Run in the Family? ( PDF ) by Joseph Lee Rodgers and Debby Doughty – Destroying common misconceptions one by one with math.
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
I don’t really like conferences much anymore.
Favorite code read
- LFE Flavors – an implementation of the classic Flavors OO system in LFE .
- Portable CLOS – an attempt to make a more portable CLOS and its MOP — recall what I said about dissecting OO.
- microKanren Prolog – My brain still hurts a little.
- C in 4 functions – ditto.
- Double-Ended Vectors for Clojure – Exploring Michał Marczyk’s Clojure code is always instructive.
- miniMAL – the description and multiple implementations of a tiny Lisp.
- SK8 – the famous Apple software source code. This is an ongoing exploration for me.
- Teeceepee – an awesome little TCP stack in Python by Julia Evans .
Life-changing technology discovered
- Kiwi Crate
- 3D printing
State of plans from 2014
- Publish (at least) one issue of Read-Eval-Print-λove – I’m right on the cusp of completing a Forth-centric installment, so I’ll count this as a success.
- UCT in Clojure – I decided to do it in Java instead to play around with Java8.
- Treaps in Clojure – Failure
- Release secret project Phenomena – I’ve completely changed how I work on and release open source code .
- Publish a card game of my own design – Failure.
- Implement Lines of Action in an interesting language – Another Java8 project that I completed to my satisfaction.
- Contribute to other peoples’ OSS projects more often – moderately successful as many of my contributions have not yet seen the light of day.
Plans for 2015
- Publish (at least) two issues of Read-Eval-Print-λove (not counting the one mentioned above)
- Apply100:10:1 to other areas of my creative life
- Release Tathata
- Create a programming language that “speaks to me”
- Read 100 books
- Take more time to discover new music
Onward to 2016!