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 and at the same age 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 (thanks Adam).
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
- Rust — OSDev is Rust. Need I say more?
- 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 — Idris is
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 2016
- Publish (at least) two issues of Read-Eval-Print-λove (not counting the one mentioned above)
- Apply 100: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!