Great things and people that I discovered, learned, read, met, etc.
in 2021. No particular ordering is implied. Not everything is new.
also: see the lists from 2020, 2019, 2018, 2017, 2016, 2015, 2014, 2013, 2012, 2011 and 2010
Great posts | articles |
talks read/watched
- A
Short History of Objective-C - Sadly, Brad
Cox passed away in 2021. Years ago he participated in a fantastic oral
history (pdf) – RIP my old office-mate.
- The
Birthplace of AI: The 1956 Dartmouth Workshop - A
wellspring of information around the 1956 Dartmouth Summer Research
Project on Artificial Intelligence organized by John McCarthy, Marvin
Minsky, Claude Shannon, and Nathaniel Rochester. The post dives into the
proposal and some of the prestigious attendees and their follow-on
work. There’s a supplemental
article at AAAI that’s worth reading as well. This post motivated me
to imagine
a world in which these ideas took hold of the computing universe and
didn’t ever let go. This is a work in progress and may never find
completion but it’s been fun so far.
- J
notation as a tool of thought - In addition to providing a
great introduction to J, Hillel
Wayne also touches on the underlying philosophies underpinning APL and
J.
- Introducing
the Smalltalk Zoo - A nice condensed history of Smalltalk
with links and videos along the way. More importantly, the post talks
about the Welcome to the
Smalltalk Zoo, a collection of Smalltalk information, emulations,
and various other bits of knowledge curated by Dan Ingalls.
- Bootstrapping
a minimal math library - This was a simple post and I’m
certain that most mathematicians already knew this information. However,
I am not a mathematician and so the revelations were deeply interesting
to me. I instantly ran off and started implementing the ideas in my own little language
playground.
- The
Kubrick Gaze - JF Martel spends buckets of ink (so to
speak) about Kubrick’s filmatic device of focusing in an a character’s
face as it stares deeply into the camera. There is a surprising amount
of depth behind something seemingly so simple.
- A Close Look at
a Spinlock - A deep deep dive into the workings of the
spinlock mutual exclusion primitive. It’s been a long time since I
thought about spinlocks and it was surprising how much I had forgotten –
and what I didn’t know in the first place.
- Uptime
15,364 days - The Computers of Voyager - There are few
hobbies better than spending years to completely understand the
computing systems running Voyager 1 and 2. Great talk by Aaron Cummings. The references
for the talk are amazing too.
Most viewed blog posts by me
- Clojure
Core - I joined
the Clojure core team on a full-time basis and posted about it. I’ve
worked on Clojure in my
free-time for years and so the decision to join the team for my
actual job was a no-brainer. I’ve always felt that Clojure the language
was interesting but the forces that drove its design and creation were
far more important. By working on Clojure full-time I feel that I can
contribue something important (despite that my individual contributions
may be humble) to the computing industry.
- Clojure
builds as an amalgamation of orthogonal parts - One of the
first projects that I worked on after joining the core team was tools.build and in
this post I dove into it a bit.
- Thunks -
I tend to either tweet
nonsense or write long(ish) posts (i.e. longer nonsense) on my blog. In the background I tend to
write notes in a notebook and transfer them as needed into post drafts.
Instead of doing that, I’ll likely use Thunks to hold notes in focused
topics for (perhaps) future nonsense.
Favorite technical
books discovered (and read)
- Software
Design for Flexibility How to Avoid Programming Yourself into a
Corner by Chris Hanson Gerald Jay Sussman - The best
book on programming and programming practice written in years. Hanson
and Sussman are on fire – as if there was any doubt. I have a whole set
of notes for this book centered around Clojure that I’d love to Thunk some day. Until then I
will say that this is the advanced programming techniques-centric book
that I’ve wanted for years. There is a deep focus on layered program
construction, DSLs, propagator networks, non-determinism, and
degeneracy, all of which are little covered in
most computing texts. The schools of software architecture exposed in
this book are informed by biological systems, symbolic AI, ambient
behaviors, and the blood and sweat shed over the years developing
functional programming systems. There’s a plethora of wisdom contained
in these pages and a lot of thinking required to fruitfully mine that
wisdom to inform the construction of systems, but I think this process
will be more than worth the effort.
- Inside
Macintosh - I was fortunate to come across a set of
Inside
Macintosh books locally and it’s a multi-year project of mine to
work my way through them. The first
volume in the series covers the Macintosh 128K, 512K, and XL models
and their operating environments and I followed along with my 512K
in tow. This book (and the series in general) are among the greatest
technical references ever written. As a part of my day job (and
outside of it) I’ve needed to leverage my technical writing skills
for thousands of pages of material, and yet there’s always room for
growth on my part. These books are inspirational.
- Electronic
Calculators by H. Edward Roberts - For a time early in
the year I started down the path of building my
own calculator and so I grabbed this book to look at the thinking on
the subject from a reference that dates back to the early days of
portable models. The books is of course dated but it covers a large
range of topics, from fabrication techniques of the time, to display
options, ergonomics, and even function implementation techniques
briefly.
Favorite non-technical books
read
- Piranesi
by Susanna Clarke - A triumph from Clarke (author of the masterful
Jonathan
Strange & Mr Norrell) that follows Piranesi, a character for the
ages, who lives in a (seemingly) endless labyrinthine castle. The story
follows his daily life, his interactions with others, and eventually his
origins. This is structurally a very simple story but it turns out to be
a cool, clear glass of water for my parched imagination.
- Mumbo
Jumbo by Ishmael Reed - This one falls into the “grand
conspiracy” sub-genre but it takes that somewhat tired genre into places
I haven’t read before. The story follows PaPa LaBas as he attempts to
discover the machinations of the Wallflower Order as the latter attempts
to stamp out the “Jes Grew” virus that makes people dance and experience
joy.
- The
Fifth Child by Doris Lessing - A horror novel of the
mundane – a family attempts to deal with a troubled fifth child. The
book details the deteriorating happiness of a family dealing with a
situation that no one around them can understand nor empathize with. The
book was harrowing to read as a parent.
- Yotsuba&!,
Vol. 1 by Kiyohiko Azuma - This is as wholesome a manga
as one can find. The story follows Yotsuba, an adopted girl who gets
into various odd situations and filters life through her beatific lens.
Laugh out loud funny.
- In
the Dust of This Planet by Eugene Thacker - This book
is everything and came into my life at the right moment. It’s
philosophy, media criticism, horror film commentary, found drama, metal
studies, weird, eerie, and nihil all at once. A near perfect book for my
sensibilities of the time.
- Capitalist
Realism: Is There No Alternative? by Mark Fisher - I
came to discover Fisher very late in the game, indeed, after he had
taken his own life. There is an amazing body of work to explore and
while I’ve only dipped my toe so far, I did manage to read what is
considered his seminal work. The book starts with a simple premise,
originally attributed to Fredric Jameson and Slavoj Žižek – “it is
easier to imagine an end to the world than an end to capitalism”. While
a simple premise, Fisher spends a lot of time unpacking this phrase and
tying it to our modern Western world passed through a neoliberal filter.
Numerous more reads are needed for me to really “get” this book, but I
was struck by the implied implications.
- The
Fisherman by John Langan - This is a modern take on the
weird fiction sub-genre very much in the vein of H.P.
Lovecraft, M.R.
James, Robert
W. Chambers, and the like. Many words are spent to build tension and
to world-build and are done so in a overly, sing-songy way. Very few
books are written in the classic weird fiction style so as a fan of the
genre this was a treasured find for me.
Number of books written or
published
0
Number of programming
languages designed
0.25
I’ve been working on a Forth variant that’s driven not by any
particular need but by a morbid curiosity to see how deep that
particular rabbit-hole goes. Specifically, I’d like to know what it
takes to build a software suite from a Forth that includes such things
as an internal database, an embedded language, a reasoning system, an
editor, and a structured programming environment.
Over the course of the year I’ve researched each of these sub-systems
and partially enumerated the minimal-viable features needed in a Forth
to implement them.
The chart is a fragment of that research and is currently only a
gross enumeration of every feature needed. Another pass on this list
needs to happen with an eye towards distilling features into their
composite parts, in an attempt to identify a language kernel. As a
side-effort I’ve started looking into how to implement a VM for a
Forth-like language by I’ve only scratched the surface with the mainline
interpreter. Lots and lot of research needed still.
While this research is happening, I’ve worked on a bit of
bootstrapping code, of which there’s:
- data stack
- return stack
- kernel functions: kpush, kpop, kdsadj, kdsaddr, kivar, krvar,
kdstack
- dictionary construction, search, and traversal
- initial words stack words:
DUP
, DROP
,
OVER
, ROT
, SWAP
- initial command words:
BYE
, .S
And that’s what it looks like so far. I’ll have something that’s
usable in 2022.
Number of books read
lots
For 2022 I’ve toyed with the idea of sticking to certain themes on a
month-by-month basis instead of the whim-based approach that I’ve taken
so far in my life. Therefore, the themes that identified were as
follows:
- Banuary
-
banned books
- Faebruary
-
fantasy
- Ides of March
-
history
- Caperule
-
games and absurdity
- Maystery
-
mystery
- Carjune
-
manga, comics, and graphic novels
- True-lie
-
non-fiction and occult
- Thougust
-
philosophy, the sciences, and computing
- Scitember
-
scifi
- Shoctober
-
horror, weird fiction, and tales of murder
- Noirvember
-
noir
- Detember
-
detective fiction and true crime
The problem with a list like this for me is that I don’t read like
this. My whole life I’ve been a very impulsive reader and past attempts
to stick to themes outside of an academic environment have died on the
vine. Maybe someone else can make something of it however.
Favorite musicians /
albums discovered
- Everywhere
at the end of time by The Caretaker - This is an incredibly
ambitious series of ambient works by a historically ambitious ambient
artist. Simply put, the music attempts to capture the tone and feeling
of someone suffering from degenerative memory loss. The work is
overwhelming at times.
- Heresy
by Lustmord - This is the kind of music that you might hear playing
as the gates of Hell open.
- Wave
Notation 2 - Still Way by Satoshi Ashikawa - An interesting
mix of traditional Japanese music with electronic elements, boiled down
to their bare essences.
- Hoodoo
Man Blues by Junior Wells - What I don’t know about classic
Blues could fill the Grand Canyon but it’s a musical vein that I’ve
tried to tap over the years and have come away enriched by the efforts.
This one by Junior Wells is no exception.
Detectorists
Favorite films discovered
- Aguirre,
The Wrath of God by Werner Herzog - Kinski’s acting is
otherworldly. There are supplemental stories in Herzog’s My
Best Fiend about Kinski that help to enhance the enjoyment of his
work.
- Under
the Skin by Jonathan Glazer - An alien lures men to
their deaths in an inky black nether-region. This film has very little
dialogue and it a slow-burn but I found it riveting.
- Sunset
Boulevard by Billy Wilder - I’ve know my whole life
that this was considered among the best films ever made but never got
around to watching it. Let me me perfectly clear. This is a frigging
bad-ass piece of filmatism! The level of depravity portrayed in this
film is masterful and comes off in a realistic way. I could watch this
10,000 times more. The film is perfect – one for the personal
Pantheon.
- Black
Narcissus -by Michael Powell and Emeric Pressburger
I’ve always wanted to live on a mountain. The few times that I’ve
been on a mountain at significant heights were invigorating. There’s a
madness in the mountains and that’s something that I’ve always wanted to
experience for a sustained duration. Black Narcissus deals head on with
that madness and it does so in a beautiful way. Certainly the film is
born from the prejudices of its day and at times it shows. However, it
does attempt to address those prejudices directly and does so
thoughtfully. This film is a masterpiece – another one for the personal
Patheon.
Favorite games discovered
- The
Field of the Cloth of Gold - For those of you familiar with
board games and their evolution, you may recognize a term “German-style
Board” game. In the early 1990s the board game industry was in trouble.
However, in Germany a trend grew and eventually spread around the world
that helped to save the floundering hobby. The games popular in Germany
at the time, or the “German School” tended to have a number of shared
characteristics that helped them to gain a hold of the industry,
including: clean and streamlined rules that were easy to teach, few
special-exceptions and combinations, a shared game space, and
non-combative but necessary player interaction. Games like Catan,
Carcassonne,
and Modern
Art were the pinnacle of this style. However, over time this style
fell from fashion and were superseded by more complex offerings. That
said, occasionally a game hits the scene that hearkens back to the
bygone days of the German School and The Field of the Cloth of Gold is
one such game. The rules are simple, the game play tense, and the time
investment short. This is another triumph from the amazing Amabel Holland.
- Babylonia
- Speaking of the German School of board games, the master designer
in that school is Reiner
Knizia. His body of work is staggering and with Babylonia he’s
managed to add to his oeuvre a game that’s deep and reminiscent of
classics like Tigris
& Euphrates and Samurai.
I’ve only played a few games but this one is a keeper.
- Forth -
There’s not a lot to say about Forth that hasn’t been written a
million times before except that it twists my
brain like no language before it. I’ve known about it for years and
even took a stab at a small implementation in
the past but it wasn’t until I started dabbling in SBCs that
I started using it for more interesting purposes. I don’t know where
this exploration is going but I’m having a blast.
- Clojure - 2022 marks the
12th year as a full-time Clojure programmer
and the 1st year as a full-time Clojure core developer.
- ClojureScript -
Less-so now than when I was consulting full-time but I occasionally
dig into explore the implications of changes to Clojure on
CLJS.
- Datalog - The Datomic
flavor of Datalog is the flavor of choice for database access, be it
in-process or in the cloud.
- Bash - I
managed to get do some work on the Clojure CLI so Bash
was in play there. That said, I pondered Bash more than I wrote bash
this year.
- Forth - I’ll
continue to tinker with my own impl as well as existing impls targeting
SBCs.
- Joy
- While a concatenative language like Forth, Joy plays out in a much more
functional style. Much more exploration needed here.
- MMSForth -
A version of Forth for desktop computers in the 80s that’s little
known these days. There are many lessons to learn from this lost gem,
especially in the approach to create a total programming environment
with Forth interposed between the user and the bare metal.
- KAMAS
- KAMAS was early outliner software that targeted the Kaypro II
computer. It had an embedded Forth-like language that users could use to
script the application. Little survives about this language and I’d like
to remedy that somehow but even though there is an abandonware version
for DOS, it doesn’t contain the full feature set of the Kaypro version
and thus no embedded language. It seems that an actual Kaypro is needed
and somehow the KAMAS discs obtained as well. The computer part is the
easy step while the software has proven difficult to find.
Favorite papers discovered
(and read)
Here are a few that I enjoyed in 2021.
- Object
Oriented Extensions to Forth by Dick Pountain - Details
implementation techniques to add object-oriented features to Forth. It
should be noted that not all Forths are created equally and so what
works on one may not work on another. This paper details how to add OO
to a Forth-79 or Forth-83 compatible system.
- A
Forth Implementation of Lisp by Tom Hand - Briefly
describes the implementation of a LISP in Forth. There are scant details
of the implementation and most is left to the reader’s imagination. Much
more detail is found in Pountain’s book “Object
Oriented Forth” where the kernel of a LISP-like subsystem is created
on the way to an OO system.
- Stack
Computers: the new wave by Philip J. Koopman, Jr. -
Koopman’s classic book on stack-based architectures is a fun read
and at the same time representative of a lost future.
- A
History of Clojure by Rich Hickey - Rich details the origin
story behind Clojure and a lot of the thinking that went into the
language design.
Still haven’t read…
Pattern Recognition, I Ching, A Fire upon the Deep, Don Quixote, and
a
boat-load of sci-fi
Favorite technical
conference attended
None – maybe next year.
Favorite code read
Life-changing technology
“discovered”
- Internet
Archive’s Books to Borrow - as an avid reader, searching
for new sources for interesting books is a constant struggle. the
Internet Archive’s 1-hour borrow service has been an amazing resource
for old, obscure, and out-of-print finds.
State of plans from 2020
- Spend more time working on Clojure and
ClojureScript - This was a smashing success as I joined the
Clojure core team to work on the language and its ecosystem full-time.
I’ve been fortunate enough to make an immediate impact and I hope to
help the language move forward into the future.
- Dive deeper into microcontroller programming, especially with
the Teensy
- My SBC of choice right now is the Teensy computer. It has various
modes of operation and is Arduino compatible. I’ve put a decent number
of hours into it this year and am enthusiastic to learn more.
- Add another entry to my personal
programming languages zoo - My Forth is coming along but it
wasn’t completed in 2021.
- Read more philosophy and mathematics - This was hit or
miss, though I did explore a branch (nihilism) that I had previously
ignored.
- Get more involved with the local Old School MtG
scene - Covid continues to complicate this plan.
- Return to civilization. - ditto
Plans for 2022
- Help get 1-2 Clojure releases out the door - One is in
the works for early 2022 and the preliminary plans for another are
forming as you read this.
- Read Finnegans Wake - I’m a couple of chapters in and
have hit a wall. This one will take at least all of 2022 to
finish.
- Stay on the Forth way for hobby endeavors - I see no
reason why this couldn’t happen.
- Build a Lisperati1000 - The Lisperati1000 is Conrad Barski’s open-sourced
mobile terminal-centric Lisp-hacking machine. I’ve assembled all of the
component parts and it’s time to put them all together.
- Continue making progress on my calculator project - I also
have the parts for a calculator based around the ATmega328P
processor. While learning how to build a key matrix will be
enlightening, I’m really looking forward to writing the calculator
software. Certainly using an ATMega328P as the core is overkill for
calculator programming but I’d like to explore the
lost-world of Compulators
and my electronics skill are nowhere near up to snuff for such an
exploration.
2021 Tech Radar
People
who inspired me in 2021 (in no particular order)
Yuki, Keita, Shota, Craig Andera, Carin Meier, Justin Gehtland, Rich
Hickey, Jenn Schiffer, Nick Bentley, Paula Gearon, Zeeshan Lakhani,
Brian Goetz, David Nolen, Jeb Beich, Paul Greenhill, Kristin Looney,
Andy Looney, Kurt Christensen, Samm Deighan, David Chelimsky, Chas
Emerick, Stacey Abrams, Paul deGrandis, Nada Amin, Michiel Borkent,
Alvaro Videla, Slava Pestov, Yoko Harada, Mike Fikes, Dan De Aguiar,
Christian Romney, Russ Olsen, Alex Miller, Adam Friedman, Tracie Harris,
Alan Kay, Alan Watts, Elizabeth Warren, Warren Ellis, Naoko Higashide,
Zach Tellman, Nate Prawdzik, JF Martel, Phil Ford, Nate Hayden, Sean
Ross, Tim Good, Chris Redinger, Jordan Miller, Tim Ewald, Stu Halloway,
Michael Berstein, Rafael Ferreira, Robert Randolph, Joe Lane, Pedro
Matiello, Jarrod Taylor, Jaret Binford, John Cooper, Conrad Barski,
Amabel Holland.
Onward to 2022!
:F