Books and Links: March


Good month for books! Setting hard limits on social media time really works.

I read Norse Mythology by Neil Gaiman. While I was already pretty familiar with the stories, hearing them in Gaiman's dry sardonic tones was a treat. He has a mastery of holding both the cultural weight of an millenia-old oracular myth and the quiet joy of the fireside storyteller. Great read, although it may be a little shocking to those whose main exposure to Odin, Thor, and Loki is from their toned-down Marvel movie counterparts.

I also read Masters of Doom... this one is about the making of one of the first big computer games. Another tale I was pretty familiar with, but still an exciting reminder of how far we have come so fast in this industry. I would also point to it as an example of what happens to relationships when people put products in front of people. Some unneeded language for accuracy to personalities involved.

Since comics are now part of Amazon Prime Reading, I finally read Fables 1: Legends in Exile. It was a fun concept, and far more interesting than Once Upon a Time. Content warning: some PG depictions of romance.

I read Hyperion by Dan Simmons. I can not recommend it because of some heavy language and intentionally gross depictions of romantic encounters... but there’s an undercurrent in the book about time and love that spoke to me… each tale had interesting notes about about how we are separated by time, but it doesn't always move the same speed... we catch up, meet, pass, experience loss and love differently in different stages of life.

The scholar’s tale about the father whose daughter starts aging backwards really grabbed hold of me. It spoke beautifully both about the magic of a child becoming an adult... and as the scholar's daughter slowly moves backwards through those milestones that I am enjoying now, losing them forever... Made me hold Sophie a little tighter. As Ursula Le Guin says, Science fiction is not predictive; it is descriptive.

I've been deleting instagram and games off my phone, so a lot more reading of blog posts and twitter ensued. :P

I also updated my scripts to post everything I like or comment on in Instapaper into a folder, and wrote a quick elixir script to get all that into this blog post with ease... good idea? Who knows. Here's a selection from what I read and liked this month:

Addition Font

You can use the glyph stream as memory by reading and writing to it; that is, after all, what the shaping algorithm is designed to do. You can delete a glyph by using Type 2 to map it to an empty sequence. You can insert a glyph by using Type 2 to map the preceding glyph to a sequence of [itself, the new glyph you want to insert]. And, once you’ve inserted a glyph, you can check for its presence by using the “if” statements described above.

So thats a pretty powerful virtual machine. I think the above is sufficient to prove Turing complete-ness.

The basic infrastructure of every part of writing software is complicated. Even the system required to correctly represent written words on this page is complex enough to contain entire programs.


Unsolved Problems by Beth Dean

The British government offered a bounty for cobras in India. So people bred snakes for the bounty. So they got rid of the bounty …and then all those snakes were released into the wild. AirBnB drives up rent …even though it started out as a way to help people who couldn’t make rent. Sounds like cobra farming.

I think I would have really enjoyed this talk.


Mark Zuckerberg discovers privacy

It’s different with privacy. Privacy is about philosophy. It’s about how you handle things from the start. Facebook effectively stole a whole bunch of s--- over a long period of time, relying on intentional obfuscation, legal muscle and user ignorance to pull off the heist. Now, the company is trying to make it out of the store with all that contraband stuffed under its shirt before the security guard ambles back. Unfortunately for Facebook, its hands are stained with a decade and a half of data wrung out of a now cumulative 2.3 billion users.

There's a fair amount of profanity in this article... but a lot of truth too. Pretty happy I deleted my account. I don't miss it much at all.


How to Think Like a Front-End Developer by Chris Coyier

Michael Schnarnagl brings up the point about how it’s affecting hiring. Back-end developers are being replaced with JavaScript engineers. Lots of things that used to be back-end tasks are now happening on the client side. Component-driven design, site-level architecture, routing, getting data from the back end, mutating data, talking to APIs, and managing state—all of those things are now largely a front-end concern.

The front-end world is splitting, this article does a pretty good job of describing that from a hiring perspective.


Making Things Better: Redefining the Technical Possibilities of CSS by Rachel Andrew

The CSStastic afternoon of day one of An Event Apart in Seattle continues with Rachel Andrew. Her talk is Making Things Better: Redefining the Technical…

Lots of excellent thoughts about the current edge of CSS woes.

Many of things Rachel has shown—grid, exclusions, regions—were implemented by Microsoft. With Edge moving to a Chromium rendering engine, we must make sure that we maintain diversity of thought in the standards process. Voices other than those of rendering engines need to contribute to the discussion.

At a W3C meeting or standards discussion, the room should not be 60-70% Googlers.



Web Design Experiments by Jen Simmons

Seriously epic explorations of what is possible with native CSS these days... spend some quality time with Chrome Inspector on this site and subscribe to the Youtube Channel.


‘The Most Versatile Criminal In History’

One expert I interviewed… basically said to me, ‘I think he may be the largest individual contributor to the painkiller epidemic.’ That’s as an individual person.


Vector, the Journal of the British APL Association

A super deep but fascinating look at one of the oddest and most intriguing programming languages. I can almost understand the draw.

“there are ways of reasoning other than those which have dominated information processing for 40 years but they are, alas, still extremely rare. This difference and originality, introduced by APL, are major features. They typify the open and welcoming intellectual spirit of the people who practise it.”

For sure, other languages manage somehow but it seems to us, at the beginning of the 21st century, not totally unreasonable to ask that the inequality ≥ should not be represented as => and that ≠ should not be represented by the diabolical <>!

That's a little elitist... but yeah. That's APL.



picture of a circuit board

Keep it simple.

A (very) early example of video game art... Atari's Space Race (1973) did not have a ROM to store data. So half of the rocket shape was stored as an 8x16 diode matrix, which was mirrored to create the full shape. This is plainly visible in the schematic and the circuit board. 🚀


The web we broke. —

“Any sufficiently advanced neglect is indistinguishable from malice.

Deb Chachra, reappropriating Clarke’s third law”

This hurts. I'm happy to see accessibility taking such a forefront in so many people's minds these days.


How I'm able to take notes in mathematics lectures using LaTeX and Vim

These lec­ture notes — in­clud­ing fig­ures — are made while at­tend­ing the lec­ture and have not been edit­ed af­ter­wards. To make note tak­ing using LaTeX vi­able, I had four goals in mind:

  • Writ­ing text and math­e­mat­i­cal for­mu­las in LaTeX should be as fast as the lec­tur­er writ­ing on a black­board: no delay is ac­cept­able.
  • Draw­ing fig­ures should be al­most as fast as the lec­tur­er.
  • Man­ag­ing notes, i.e. adding a note, com­pil­ing all my notes, com­pil­ing the last two lec­tures, search­ing in notes, etc. should be easy and quick.
  • An­no­tat­ing pdf doc­u­ments using LaTeX should be pos­si­ble for when I want to write notes along­side a pdf doc­u­ment.

This blog post will focus on the first item: writ­ing LaTeX.

This is an incredible example of what happens when you apply yourself to building your own tools.


The State of Agile Software in 2018

This transcript of a talk by Martin Fowler is really encouraging and challenging... "agile" being a bad word among programmers has become a little bit of a joke in my circles, so it's good see a good perspective on how the concept has been corrupted.

Our challenge at the moment isn't making agile a thing that people want to do, it's dealing with what I call faux-agile: agile that's just the name, but none of the practices and values in place. Ron Jeffries often refers to it as "Dark Agile", or specifically "Dark Scrum". This is actually even worse than just pretending to do agile, it's actively using the name "agile" against the basic principles of what we were trying to do, when we talked about doing this kind of work in the late 90s and at Snowbird.

Lots of good quotes.

Why is this important? Because if you want to make changes, you want to add things quickly, you've got to quickly understand which parts of the program matter, what do they do, and how do I work so that I can quickly make that change. This also burrows up into modularity. If I've got a well-modularized piece of software, instead of having to understand the whole thing, I can just understand part of it. Technical excellence is about being able to build that kind of adaptive software.


Seeking the Productive Life: Some Details of My Personal Infrastructure—Stephen

Hang on... this essay bascially needs another essay to break down and summarize.

Lots of glorious esoterica in here... this is clearly a man who spends a lot of time tweaking and thinking about how to Do Work.

And as a result of that very experience I decided I’d better actually understand how computers talk to projectors. It’s a complicated business, that involves having the computer and the projector negotiate to find a resolution, aspect ratio, frame rate, etc. that will work for both of them. Underneath, there are things called EDID strings that are exchanged, and these are what typically get tangled up. Computer operating systems have gotten much better about handling this in recent years, but for high-profile, high-production-value events, I have a little box that spoofs EDID strings to force my computer to send a specific signal, regardless of what the projector seems to be asking it for.

However, you have to get a long way through the article before you find anything like this:

When I’m specifically working on a particular project, I’ll usually just be using files in the folder associated with that project. But on a good day, I’ll have lots of ideas about lots of different projects. And I also get hundreds of emails every day, relevant to all sorts of different projects. But often it’ll be months or years before I’m finally ready to seriously concentrate on one of these other projects. So what I want to do is to store the material I accumulate in such a way that even long in the future I can readily find it.

At some level it’s as simple as “what file should I put it into”? But the key point is to have a pre-existing structure that makes it quick to decide that—and then to have this structure be one in which I can readily find things even far into the future.

Yes Mr. Wolfram, it's just as simple and as difficult as that. It does make me feel good that someone else is thinking hard about this... and has been for several decades.

One more gem from this delightful tome on the dangers of overthinking:

Well, here I get to tell a cautionary tale (that my wife regularly uses as an example) of what can go wrong in my kind of approach. Always liking to understand the historical progression of ideas, I thought it would be nice to be able to browse a category of books on a shelf in historical order (say, by first publication date). But this makes it difficult to find a specific book, or, for example, to reshelve it. (It would be easier if books had their publication dates printed on their spines. But they don’t.)

About 20 years ago I was preparing to move all my books to a new location, with different lengths of shelves. And I had the issue of trying to map out how to arrange book categories on the new shelves (“how many linear feet is quantum field theory and where can it fit in?”) So I thought: “Why not just measure the width of each book, and while I’m at it also measure its height and its color?” Because my idea was that then I could make a graphic of each shelf, with books shown with realistic widths and colors, then put an arrow in the graphic to indicate the location (easily identified visually from “landmarks” of other books) of a particular book.

I got a colorimeter (it was before ubiquitous digital cameras) and started having the measurements made. But it turned out to be vastly more labor-intensive than expected, and, needless to say, didn’t get finished before the books had to be moved. Meanwhile, the day the books were moved, it was noticed that the packing boxes fit more books if one didn’t just take a single slab of books off a shelf, but instead put other books around the edges.

The result was that 5100 books arrived, basically scrambled into random order. It took three days to sort them. And at this point, I decided just to keep things simpler, and alphabetize by author in each category. And this certainly works fine in finding books.

This is delightful.


WTF is Big O Notation?

Sorry for the expletive-reference in the title, but a great article.

Even that description is really arm-wavy, isn’t it? We can dispose of the arm-waving by thinking about things in terms of operations per input. How many operations does my code need to perform to get to a single cart from the set of all carts in Redis?


bliki: SemanticDiffusion

Semantic diffusion occurs when you have a word that is coined a person or group, often with a pretty good definition, but then gets spread through the wider community in a way that weakens that definition. This weakening risks losing the definition entirely - and with it any usefulness to the term.

This is my new favorite term.

...there's a tricky balance between holding to a clear definition and dogmatism.

Well... that's convicting.


Strobist: A Baker's Dozen: 13 Key Ideas

If you shoot photos, you should read Strobist.


Why Is Silicon Valley So Obsessed With the Virtue of Suffering?

This article is worth it just for the playful images accompanying it... but I don't know exactly how to respond to this from my worldview. There is much that I agree with on the surface with stoics, but ultimately I find the philosophy unable to weather the waves of the harsh realities of life.


Episode 128: One Hell of a Toll — The Way I Heard It with Mike Rowe — Overcast

A good reminder of how good we have it today from one of my favorite storytellers.


Book Review: Inventing The Future

Once again, a writer whom I respect but with whom I don't see eye to eye reviewing a book whose worldview I don't hold. I present merely as an entertaining and informative view into a different perspective on the world and politics.

Particularly of interest: the use of the word "hegemony" in the context in which I would say "worldview". Al Mohler has been saying for a while that in the US, a political alignment is more indicative of worldview than policy alignment... and I think this usage is pointing to that as well.

S&W often use the word “hegemony”, usually in the context of a current neoliberal hegemony or a hoped-for future communist hegemony. I started out reading this as just an emphatic way of saying “power”, as in “the neoliberals are definitely almost-irreversibly in power” or “the communists are definitely almost-irreversibly in power”. After looking into it more, I think the best interpretation of “hegemony” is “paradigm” in the Kuhnian sense, or as the sort of thing that should be in one of the leftmost boxes of this table. A hegemony is a self-consistent way of looking at the world that guides how we think about things and what questions we ask. It is not just made of facts, but also of perspectives, biases, values, and investigational techniques, all coming together into a coherent whole.

The quote that made me laugh the hardest.

But at its worst, Inventing The Future feels like a search for the public’s secret cheat code that will make them have a revolution with you.


Simple & Boring | CSS-Tricks

We assume that complex problems always require complex solutions. We try to solve complexity by inventing tools and technologies to address a problem; but in the process, we create another layer of complexity that, in turn, causes its own set of issues.

— Max Böck, "On Simplicity"



John Maeda: “In reality, design is not that important”

Clickbait title, but valid points.

Maeda thinks that designers should focus on being good teammates rather than leaders. Worrying too much about whether design has enough influence over a product or a company distracts from the real vision: making great products that solve people’s problems.


It’s a controversial stance, given how much Maeda and other design industry leaders have argued for design becoming a more powerful discipline within organizations. “Designers are used to being the benchwarmer and called into spray smell on something, and they’ve been so hurt, they’re tired of it, they want to fight back and organize,” he says. “I think in the past … I was advocating for design in general, I had to be a symbolic leader of that. I felt responsible to do that.”

I think that I agree. I think it might be early for this level of thinking, but I don't think it's wrong.


What the EA community can learn from the rise of the neoliberals

This article contains a very interesting timeline of the neoliberalism movement. Good summaries and descriptions of the different politics and people involved.


  • 2022-06-08 11:31:29 -0500
    Rename articles

  • 2020-06-18 14:26:02 -0500
    Move everything to CST

    Don't know why I didn't do that before. It caused _no_ end of

  • 2019-03-30 20:49:51 -0500
    Working on a blog post for march