by adam mathes
archive · subscribe

How I Write, 2017


A tiling window manager. Set to “widescreen tall” mode.


Faster, leaner, and more dependable than the alternatives, in my opinion, on MacOS.

(Although not as fast or lean as w3m if you’re willing to go that route.)


A version of emacs for MacOS. It’s sort of the spiritual successor to XEmacs, the weird version of emacs for X from the 90’s, kind of. It’s an acquired taste but I love it.

Used with –

I use standard MacOS terminals when I’m not using my weird fork of CRT.

Usually there’s more interesting things going on, but here we have a live-preview setup for my new static site generator, snkt.

This is using entr to monitor a directory of text files. entr is great! It’s why I haven’t written a file-system watcher in snkt.

With something like

$ ls ~/dailytxt | entr -r snkt -b

Anytime a file changes, snkt rebuilds the site. This takes less than a second on my MacBook Pro.

The other window is looking at the directory of HTML files created, also using entr, and reloads Safari with a reload-browser script.

So anytime I save a text file in that directory, it will rebuild the site on my local machine, and reload the browser automatically, making for a nice fast feedback loop.

I suppose in the modern era I could be using wysiwyg tools but I find this to be more satisfying and efficient.

Behind The Scenes

The text files that compose trenchant daily are synchronized in real time via Syncthing to my Linux server. Syncthing is a great alternative to Dropbox if you have a lot of time, energy, and desire to not use Dropbox.

The local configuration on my MacBook Pro for snkt shows all entries, even future-dated ones, but the one on my server will ignore anything with a future date, so if future entries get sync’ed they are ignored.

Because the site only updates once a day, I don’t listen for changes there, but simply have a cron job that rebuilds the site every morning. (Builds take about 1-2s of real time, which is pretty good considering I have 2028 entries.)

I also turned back on a script that tweets new entries out when I include certain metadata in the entry (which is probably the only reason you clicked this!)


2016 MacBook Pro, 15”

USA Filco Ninja Majestouch-2, Cherry-MX Black – still the best keyboard I’ve ever owned.

SteelSeries Senei Mouse – great despite awful aesthetics but battery seems to have lost longevity over long usage.

LG 34UM95 34” ultra-wide monitor – 21x9 aspect ratio is cinematic and I vascillate between thinking it’s awesome and being like wtf why did I get this. I tried replacing it with one of the new 5K monitors but failed (you’d know the whole tragic story if you were reading the list.)


trenchant daily turned 16 yesterday.

16! daily’s format – one daily post across multiple media formats, focused on quotes, essays, photographs, and links – was intended to be a departure from the weblogs that were dominant.

And now, here we are, a decade and half and change later, and not only is having a weblog an archaic concept – but so is having a personal web site that is regularly updated.

In 2001 the web felt like a place of beautiful chaos where anything could happen, and the frictionless creation and distribution of information would change everything. That mostly happened, though not always in the ways I expected.

the persistence of daily

In past years I used to reflect on whether I’d still be doing this site in the future or not, and how old I’d be.

Now I think about it a little differently – it’s remarkable how little maintaining a web site has changed in these years, technology wise.

HTML, CSS, HTTP, not-quite-Unix servers.

Good technologies and protocols are durable. They last. You can expect they will work in a few years when you need them.

The tech is better and cheaper. For $5 a month you can run a hosted virtualized server that has more power to serve web pages than you’ll probably ever need.

What’s changed is that readers spend time in other places now. The web isn’t it anymore.

it’s charming

But the modern, hyper-optimized, aggregated social systems lack the charm of the personal web.

I was trying to explain to coworkers earlier this week that when we removed web design as a part of web publishing, we lost something magical – the “ugly” web of early web sites, and even the centralized services of Livejournal, Diaryland, Pitas, Blogger, etc. generally had voice and personality that you can’t get when you decontextualize web pages into aggregated social streams.

Also it’s hard to be charming when you are basically highly optimized surveillance technology for more efficient advertising.

I used to think everyone should have a web site and then we had the dystopia of social networks and I changed my mind but maybe everyone should have a web site. They should just have to learn HTML and UNIX system administration first.

· · ·

The web has a look and feel and voice and authenticity and power that you can’t get elsewhere.

It’s still thrilling to have my own domain name and server and site and make it all look and work and feel exactly how I want.

I hope it still does in another sixteen years.

The Worst Form of Hosting

Many forms of Government have been tried, and will be tried in this world of sin and woe. No one pretends that democracy is perfect or all-wise. Indeed it has been said that democracy is the worst form of Government except for all those other forms that have been tried from time to time.

Winston Churchill

As I break down and rework the tools, personal server, and workflow of how I use the internet today I’ve been thinking about that quote.

Even after clearing out the gunk and stripping down what I do to its core with cleaner, lighter, more efficient tools the sheer insanity of running and maintaining a virutalized Unix machine in a data center just to transmit a few words via HTTP and SMTP seems somewhere between quaint and insane.

Self-Hosting Is The Worst

Self-hosting web sites is the worst form of internet expression, except for all those other forms that have been tried from time to time.

It’s not that I don’t enjoy throwing away inefficient python code talking to a memory hogging Mongodb instance and replacing it with needlessly fast Go code that reads flat files or mysql. Or planning a switch from Ubuntu to Debian. I do. I actually enjoy it. And I’d rather do it than spend one god damned second on Facebook.

And it’s not that I don’t enjoy re-writing configs to cope with nonsensically shifting Linux init systems (who agreed I should use Ubuntu in the first place? I demand to speak to the sysadmin!) but like, seriously, how the fuck is anybody supposed to maintain a Linux machine that has a persistent internet connection in 2017?

Even after abstracting away the physicality of real disk and memory to virtualized io/cpu/magic there’s still the damned operating system software and security updates and firewalls and god knows what in the face of arms races of hostile network entities.

And yet, how can I complain? It’s 100x easier and cheaper than it was 20 years ago.

Deeper and Deeper

I’m getting into the weeds and depth of a problem and solving it for myself in a way that is completely ineffective beyond my own brain and mailing list but you know, tiny victories, fun code.

That’s ok. I have to be ok with that. Sometimes you have to start that way to discover the hard problem and understand it enough.

Do we manage through the spiraling complexity by adding abstractions, virtualizing, containerizing, or just hiding? I’m trying to simplify instead. Saying “no” is somewhat easier when you’re your own and only client.

Internet Of Things Are Tiny Unix Machines Nobody Maintains

But if I can barely do it for something that I care deeply about that includes 15 years of personal expression, how can we expect your refrigerator manufacturer to get the same thing right?

Some of your appliances are probably already this fucked.


Why wait until things are finished to release the source?


· · ·

It’s important that you play Glittermitten Grove.

· · ·

Objects in the rear view mirror are closer than they appear. This includes the disasters you think you are driving away from.

Solve It Again

If daily was a person it would be eligible to drive this month.

And also probably wouldn’t want to because self-driving cars.

My site would be a terrible driver.

I rewrote my CMS static site generator (this time in Go) because sometimes you solve the same problem over and over again for 20 years slightly differently because some problems are timeless and it’s comforting to asymptotically approach an idealized solution.

$ time python -c trenchant.cfg
real    0m7.023s  
user    0m6.507s  
sys     0m0.437s

$ time fmstatic -build
real    0m0.708s  
user    0m0.553s  
sys     0m0.263s

10x speed improvements seem meaningless to everyone around me (and hardware is cheap) but time is our most precious resource, even if it’s imaginary and on a Linux server.

Leaving GMail, Finding Autonomy

The overriding theme of what I’m trying to think and write about for 2017 is autonomy in personal technology.

The basic principle is: make deliberate choices in how I use technology and favor ones that give me greater autonomy.

Choices that force me to use bad interfaces, surveil me in creepy ways to facilitate advertising, or lock me in to things I do not understand or are uncomfortable with should be avoided.

This is partially about freedom, but it’s grounded in practical quality of life issues.

2017 is about trying to rationalize more of these decisions, and make adjustments where needed.

I don’t want user interfaces to change under me for things that matter. I don’t want my data being used in bizarre and unexpected ways. Controlling these things is becoming the exception rather than the rule.

I started with email because that, more than anything else, is the foundation of our online identity. And it’s what I was focused on as I started my new antisocial network / network / list.

GMail Was A Technical Triumph, But Times Have Changed

It’s easier in the short term to use a free ad-supported email account provided by a giant company – as I decided to do with GMail in 2004 – but now I regret the decision to use it as a primary email provider and identity.

I was trading off cost and convenience at the expense of more important things – autonomy, control of my online identity, freedom from advertising based on every transaction I conduct over email. (I mean, running linux server to handle email isn’t that hard or expensive.)

We sometimes forget that much of GMail was novel in 2004 (wow! javascript using xmlhttprequest to avoid reloads! a whole GIGABYTE of space!) and Google was a different company. The web and internet looked very different.

Now it’s more apparent we live in the technological dystopia of Siren Servers.

GMail Makes Email Harder

Ad-based free services for things you deeply care about is problematic due to an almost inherent misalignment of goals between users and providers. But it’s the practical issues that overwhelmed me:

  • pushing other distracting services into the experience (chat, social networks) that I didn’t want made the experience worse
  • increasing latency, decreasing quality of web ui experience led me to rely on native Apple clients
  • the ability to use standard IMAP clients without weird workarounds is not great
  • push email for Apple’s default iOS clients doesn’t work, forcing annoying polling, increasing latency
  • using multiple domains/identities with a personal gmail account is difficult to impossible (without a corporate, paid account)
  • forwarding mail from my personal server’s other domains to my gmail account made GMail think my server was a spammer, making my personal SMTP server useless for my mailing list

I’d routed around the first few for years, but those last two points him me hard as I was setting up the list and were the last straw.

(Also, probably that was part of what led 4uhm’s decline – everything got marked as spam due to low deliverability because I didn’t pay attention to that.

Anyway, it’s not 2004 anymore. I’m happy to look at alternatives, paid and otherwise, that reflect different values and address my concerns.


There are plenty of options for email hosting, and I seriously considered just running it all myself on a server.

But I wanted other people responsible to actually make sure it was running all the time and secured. $5 a month is a bargain for that, so I went with FastMail based on the cost, commitment to privacy and customer service, and general sentiment from those who have written about it online that it’s great.

I’ve been using FastMail for a few weeks now. Everything has worked flawlessly.

I was nervous when I redirected my MX server entries in DNS. But after it propagated, setup in Apple’s native mail clients was easy (autopopulated reasonably), push email on my iPhone worked instantly.

The web interface (which I wasn’t planning to use much) is way faster and nice than I expected, which is a nice bonus.

The default spam filtering was maybe a bit too lenient – I went from getting zero a day using GMail to getting 3-5 a day on FastMail. I customized the spam filtering threshold to be a bit more aggressive and it’s been fine since (back to zero a day on average.)

Since I’m back to relying on my own domains if I change my mind it’s easy to try another provider or experiment with self-hosting later.

(Note: links to FastMail include a referral code that will give you a 10% discount and some small bounty to me if you end up purchasing a plan.)

Feelings Matter

Overall I’m much happier with the setup. It addressed my issues of principle and provided practical benefits.

It’s nice to have IMAP just work. It’s nice to have push on iOS. It’s nice to have all my domains have email the way I want them to.

I feel better about email again. It’s nice.

I don’t feel like every mail I’m getting is building up wealth for others at the expense of my privacy and sanity.

I expect that I’ll keep it this way for a few years unless something goes wrong, but we’ll see.

EMail Is A Protocol

The wonderful thing with email is that we can make changes like this, because it’s a standard set of protocols and behaviors that interoperate.

We can change vendors, tools, services, and continue on with our lives and still communicate easily.

I can assume it will all mostly still work in 10 years.

The rest of the communication tools we increasingly rely on do not have that property, which makes them more fragile.

When Facebook or Twitter change their interfaces or terms to something you don’t like, you’re basically fucked.

I’m going to try and rely on email more. If you care about these things, you should think about whether you are actually happy with your email setup or just resigned to accept it.

Why I Wrote Weird Bespoke Go Software For My Mailing List

Increasingly my feeling is that the social dynamics – the flow – of ideas, people, and money in the modern internet is off. Something went wrong.

My reaction over 2016 has been to – more or less – retreat.

I read books, I play with my HTC Vive, I use my time for activities that I find more pleasant. The web, social media, etc. doesn’t feel good anymore.

But the time for retreat is over. The time to engage with the internet on my own terms (and secede from the traditional internet tools) is now.

This is a lot easier to do when you have enough time and programming experience to experiment with things for yourself.

Making Your Own Lightsaber

Over the decades I’ve written a lot of web-based communications/publishing software and tools including:

  • a multi-user early web CMS for sites (organizine, Perl, ~1999)
  • static blog generator (mathecms, perl, ~2001)
  • minimalist discussion board ( webarrific discusion board, perl, ~2003)
  • weird image board gif game thing (4uhm, python, ~2010)
  • another static blogging system (ziney, python, 2013)
  • some other stuff I open sourced

…and lots of other stuff. I don’t even know anymore.

One of the only things I’ve never really worked on is email software. (Except that time I wrote mailmedaily, which I guess was email software, but, whatever, let’s ignore that failed project for the sake of semi-coherence.)

I got it into my head that I wanted to write newsletter (email) software – something kind of like tinyletter but with some different assumptions.

Creating Digital Scarcity

The dynamics of a system are in large part determined by what is hard and what is easy, what is abundant, what is scarce. As the creation and sharing of content becomes easier (when mediated by large systems) individual content producers and pieces content become valueless commodities – only the aggregators that mediate these pieces between producers and consumers as the new gatekeepers seem to have value.

And our social distribution systems all share a similar assumption: more audience, more engagement, more volume is better. They are a game. Numbers go up (hearts, stars, followers, retweets.)

That assumption makes sense if you are the aggregator and are trying to fuel an advertising based business.

I’m not an aggregator and I’m not trying to fuel an advertiser based business.

I’m trying to say a few things, and I want a few people who care to be able to hear it.

Opting Out Of The Attention Economy

It’s not just that I’ve lost that game (I have) or that I’m bad at it (I am) – it just doesn’t seem fun to play and I don’t really want to win or get better at it.

There’s anthropological and neurological evidence to suggest our brains simply can not handle more than 100-200 actual relationships – we can use social media to create a different sort of pseudo-relationship at a scale that’s larger but I don’t think that’s what I want.

Design is a series of constraints

Whenever I write my own software it’s usually a process of subtraction followed by addition.

What is the essence or what I’m trying to do? What is the minimally useful set of things I have to code to get at the core of this?

This is less to do with the cult of Lean Startup methodology that Eric Ries has resold Silicon Valley from Toyota, and more to do with the core of all great programming: laziness.

Minimalism is not just an aesthetic or design choice for me: it’s more of a lifestyle choice.

Then the question is: what weird shit makes this different? Why am I even bothering to do this?

Sometimes the answer is: nothing is different, I just want the joy of knowing how this works and doing it myself, which is ok.

In the case of mailing lists the key assumption I wanted to challenge:

  • infinitely expanding subscription list
  • the language and delivery real-time reactions

What if the audience was capped from the start, how would that change the dynamics?

Would scarcity of audience make people value the content in a different way? Would a static audience (of probably non-anonymous) email addresses help me to create content and have conversation in a way that the current structure of the web and twitter and facebook do not?

Well, the easiest way to find out is to just do it and see.

Design For My Own Constraints

The immediacy and intensity of the feedback loops in modern social media (likes, retweets, etc) in the context of always-on nature of smartphones is addictive.

But looking past the engine for addiction, there’s something suffocating about the limited vocabulary it forces upon feedback. Why does some other person somewhere else get to decide what the one click actions are on my writing?

Fuck emoji and fuck hearts and stars. A language dictated by others that can’t adapt isn’t a language at all. (Except Latin. And French, sort of.)

So the other bit I wanted to play with was reactions – so I added a system that enables me to create links that allow each reader to send messages crafted (attributed to them) directly to my phone. It’s a fun little hack.

This allows people to directly give me useful feedback with one click – like hair looks awesome, or that presentational markup is an affront to human dignity, or whether they think the letter is too long while halfway through.

That has been more effective and fun than I expected and I plan to continue experimenting with it.

Let’s Go

Normally I’d probably write something like this in Python but I used Go.

  1. Wanted to learn something new
  2. Go is the spirtual successor to C, which since I first used a Unix machine in 1997 has been my programming language spirit animal, so it feels good to me on a visceral level that nothing else since C ever has
  3. The python2/python3 weirdness I’ve mostly ignored but has made me realize my Python code will probably be as difficult to run in 5 years as the Perl code I wrote 10-15 years ago is now, and the Go code will probably just compile without complaint anywhere. As my facial hair increasing turns to an elderly Unix-neck-beard this seems more important.

Sign Up Now Before I close My Mind And Sign-ups Forever – signups were open for a couple minutes only and announced on twitter for the first 4 issues then closed.

I think that worked pretty well, but it doesn’t seem fair to only offer that to hyperactive twitter followers so I’ve opened up sign-ups for daily readers for today.

An Oasis In The Desert of Disappointment that is 2016

It doesn’t feel like 2016 is a year of great technological progress, at least in consumer technology products.


Apple’s iPhone 7 is the worst iPhone since the iPhone 6S, which is the worst iPhone since the 6. Apple hasn’t released a phone that felt like an improvement and that I liked since the 5S.

Google’s Pixel is probably the best Android device you can buy that isn’t a weird Chinese phone that is sending all your data to state sponsored surveillance networks and also doesn’t mysteriously blow up.

It’s still not good though, and it feels expensive for what it is.

There were a lot of other Android phones released not from Google or Samsung but nobody really cares because cellular phones have overshot consumer needs as of about 2012.

No incremental performance improvements matter to normal people, and no new capabilities are being made available via new devices.

I keep threatening to go back to my iPhone 5S (or get an iPhone SE) but the fact that my 7 is now so scratched up (screen, not back) may actually force me to yell at Apple and exchange/return it.

Mobile devices are ubiquitous and the market is saturated so everyone is desperately trying to find the next big thing (AI, bots, virtual reality, augmented reality, internet of things) but nobody is actually making good products that have meaning in those areas yet.

In a way it’s great that phones are boring now – we’ve hit the performance threshold needed, now all that’s left is distribution and the interesting/terrifying effects as the next billion users come online via these things.


Back to the future past of actual computers doing the actual work needed to bring about this amazing future, the latest MacBook Pro – a computer theoretically for professionals based on its name – thinks that what professionals need is not a great keyboard, but slightly smaller devices, a keyboard with no travel, and a tiny touch-screen below the actual screen.

I reserved judgment on this but my initial view of this on fundamentals is exactly the same after a few weeks of use – the touch bar is an inhuman interface that does not solve actual problems or improve the experience. It’s a dud.

My entire life people have been decrying the quality and business strategy of Apple – and they have been right about 50% of the time (mostly when Jobs wasn’t there.) So maybe they’re right again. Maybe not. I don’t think Apple is going anywhere but if they keep putting out products like this they will lose the advantage they have with snobs and technical nerds like me.

Their success may or may not have peaked – but it feels like their current product lines have.

I’m typing this on a new MacBook Pro 15” – it may be the first time in 15 years of buying 15” Apple laptops that I’m not excited about it.

It’s not faster or more powerful in a meaningful way I mean, it may be on a technical/benchmark level, but I was fine on a 2012 tricked out first generation retina-display Macbook Pro.

It’s a little thinner and lighter but I don’t care at all about that – that hasn’t been an issue for me in 10 years.

The screen is better but you know why I still need a laptop? To run MacOS and use a god damned keyboard to compose text, software, and other creative endeavors. And instead of being a more focused instrument for that, it has unpredictable battery life and a weird collection of fake buttons without haptic feedback that doesn’t even work half the time.

I mean that literally – half the time it’s just a blank screen and I have to hit FN to swap it and force a redraw. It’s bonkers how finicky it is and also it cost like $2500.

Also, I spent $2500 on a computer and still need to keep PC running underneath my desk to run a real GPU so I can play with VR, which is just sad.

Anyway, what am I going to do, give up and run Linux on commodity hardware or something? Like an animal?

Increasingly I think maybe I should give in to that primal instinct at some point. We are all, in fact, animals, despite what our brains may trick us into thinking.

It just seems like it’s going to cause me even more problems. And while it may give me a smug sense of satisfaction, I doubt there will be other serious advantages, and the first time I realize nobody makes a screen even half as good as Apple’s that just works I’ll probably lose interest.

Once I get my 5K monitor delivered and properly hook that up to a mechanical keyboard maybe I’ll be less cranky about it.

In semi-laptop land, the 9.7” iPad Pro is amazing. I have been using an iPad every day since the first generation and I love them. (My usage pattern of putting my phone down when at home and using an iPad is partly why I despise the larger 67 form factor.)


The conventional wisdom is that Microsoft is executing well on its new strategy and making good stuff again.

I don’t understand the conventional wisdom and don’t understand their strategy, at least for consumers.

Microsoft’s main release of the year was coercing Windows 8 users to upgrade to Windows 10 – an operating system that as far as I can tell doesn’t help me run Steam any better, and that’s all I ever use it for, because Windows is still so bad it makes running Linux on a desktop or laptop seem like a reasonable idea every year. (It’s still not.)

Windows continues to be the turducken of operating systems (it’s a command line POSIX system inside of Win32 wrapped in Metro wrapped in some sort of NT kernel!) and I guess if having two sets of control panels with different interfaces and settings because you have bolted on a touch-screen interface but also kept a traditional WIMP interface sounds like fun, you might also want to buy one of those weird Windows phones and also probably you don’t exist outside the imagination of Redmond area management imaginations.

I think Microsoft’s actual strategy is to just be IBM and sell boring services to boring companies in a boring way that makes boring money from boring people that are risk averse. Which I guess is a good strategy if you love boredom and money! So that’s cool I guess.

I mean there’s also XBox but I’ve given up on consoles for PC gaming. If I’m going to have to put up with weird DRM shenanigans to play video games, at least let me pick my own hardware to do it on and use a fucking mouse for my FPS’s.

Virtual Reality

Both the HTC Vive and Oculus Rift – the first “mainstream” VR came out, which, despite any amount of me being jaded is actually a huge deal and technical achievement.

VR is amazing and I love my Vive, but even I wouldn’t defend it as a good product. It’s basically an incomprehensible, expensive mess, and that’s before taking into account it’s dependent on Windows.

But it’s fun. (IE, it’s an early adopter product, so I’m all in.)

Google’s Daydream is on the right track but not actually performant enough nor convenient enough for the more mainstream users it’s trying to capture.

Things smear as you move your head. It doesn’t feel real yet. (Maybe two or three generations away? I don’t know.)

If you really care about VR right now, you care enough to live with the weirdness of the cutting edge hardware and expensive GPUs so you can transport yourself to the near future.


I spent $1000 on a first generation Apple Watch.

Don’t do that, or on a subsequent one, unless you really really really like that design.

I still wear mine every day, but I’m a weirdo. It’s not a good product yet. Maybe if the screen was on all the time, and it like, worked as a watch and fashion object with a customizable screen it wouldn’t be quite so absurd. As it is it’s a $1000 bracelet 99% of the time.

Apple really needs to enable creators to make awesome always on displays on your wrist. That would actually open up creativity and turn it into a unique, wonderful fashion object.

I also spent over $300 on Pebble hardware, 23 of which won’t ever come out and has been refunded.

Don’t do that either.

I’m actually kind of sad Pebble failed and was bought at bargain basement pricing, I liked Pebble and their V1 is what got me wearing a smartwatch every day. I thought they had potential to provide the platform that brought traditional watches into the “smart” era. Unlike the Apple Watch, the Pebble devices are actually usable as watches since they’re on all the time. But they are too ugly for fashion conscious humans who buy watches to ever wear them.

And I’m nothing if not on the cutting edge of fashion.

Anyway it doesn’t matter now because they’ve been sold for scrap, sadly.

Amazon Kindle

The only tech product that I believe is truly outstanding this year is the Kindle Oasis.

The $300 Kindle? Really?

Yes, really.

The Oasis is a luxury device for book readers.

People think of the Kindle line as monolothic, but in my experience they’ve actually significantly experimented over the years and some models were outstanding, others were completely off the mark. It has felt like a random walk until now.

The original and Kindle (they had keyboards! and free cellular connectivity!) were imagined as complete standalone devices which was, charming in its own way. (Those tiny keyboards! Wow!)

It wasn’t until the Kindle 4 where they ditched the keyboard and settled on the form that most people think of as a Kindle now.

That one – with physical buttons – I believe wholeheartedly was an outstanding device. I still like it more than the Paperwhite and Voyage that I own, except that it has an outdated screen, which is kind of, well, a problem in an e-reader.

The advancements in form after that – touch screen, weird non-buttons on the Voyage – have been off. The screen resolution and backlighting really has been the significant upgrade.

The Oasis, however, is an actual re-imagining of the device and reading experience that is attuned to reading books on a small electronic device. The asymmetry in weight and affordance reflects the reality that the device is meant to rest comfortably in one hand. The placement of two physical buttons reflects the natural resting place of your thumb, and is an effortless way to effect the primary action (page turn.)

The included case is really just a giant battery that allows you to use the device for extended periods without charging it.

It is, in short, a well designed physical device that understands space, weight, human factors, and physicality in a world increasingly over-focused on ephemeral nonsensical touch and voice interfaces.

It is spectacular.

It is also somewhat embarrassing that as a technological culture the only way to get a modern ereader with decent design and physical buttons like this is to spend $300 on a device that locks you into the weird DRM world of Amazon where you contractually rent books instead of owning them.

I guess if paying a premium enables products that have “retro” features like real buttons that work I will find a way to live with it.

2016 product of the year, Amazon Kindle Oasis

(Probably because LG couldn’t ship me that 5K monitor in calendar year 2016.)

2016 In Review

I did not write a lot this year.

I hear people saying it was the worst year ever but I think they’re mostly saying they are unhappy with the presidential election because overall I’d much rather be here in 2016 than in 1996 or 1956 and definitely not 1816 and I bet most of the people saying that would agree.

We, as humans, are actually making the world better, overall.

But yeah, it was kind of a weird year! Really weird.

· · · daily turned 15

I turned 36

the economic stagnation, voter sentiment, and other indications mean we should expect to see more outcomes that are at odds with conventional wisdom and establishment predictions soon.

Played a lot of video games:

Quit Twitter

As computation is commoditized, what becomes more valuable? (giant proprietary data sets collected from unwitting humans)

Felt the effects of dropping out of social media

Saw the future through an HTC Vive

Declared social media to be an amoral force of destruction

Started a mailing list thing

Video Game Consumption, Q4 2016

Shadow Warrior 2

I love Shadow Warrior. The original, the reboot, all of it.

I’m not proud of that, and I wouldn’t say they are good or even appropriate to like anymore.

But fuck it, they’re great. The reboot was just amazingly great fun.

This one, however, I abandoned after a few hours.

Why would you take the pure adrenaline, dumb fun of Shadow Warrior and add a complex inventory weapon upgrade system? It tries to bring in some of the random loot addiction style of Borderlands but also – I hate that. I just want to slice and shoot stuff! Why am I ever looking at a fucking weapons status screen and futzing about with gems I’m fucking Lo Wang! I’ve got the touch! I’ve got the power! Why am I talking to this merchant!

Ugh, could have been so great but I feel like it was ruined.


I’m not sure why I waited for the Saturn version to be translated instead of just playing the translated PSX version years ago but whatever. I finally got around to this.

It’s pretty great. I don’t like it as much as Snatcher, but I think part of that is Sega-CD era graphics actually aged better than the PSX/Saturn ones (also, I liked the writing in Snatcher better.)



A love letter to pixel art, and exploration platform games that took nearly a decade to create.

It’s a treasure.

It’s emotionally resonant in the exactly the way that writing, gameplay and subtle animations of pixels can and should be.

Outstanding – highest possible recommendation.


Titanfall 2

I skipped the original Titanfall because it was multiplayer only and I’m fundamentally antisocial.

When I read resoundingly positive reviews of the single player campaign here (and the lack of buzz on the other AAA FPS’s of this season) I decided to break my prohibition against EA’s Origin platform and play it since everyone was panning the rest of the big releases this season.

It’s actually great! I mean, they make giant mecha combat fun, while balanced and contrasted with the parkour fast-paced out of suit combat.

The mission structure, pacing, and timing is great. It feels cohesive, tight, satisfying, and enjoyable. Nothing is wasted, there’s little to no repetition, and there’s significant variety.

Just, well executed and great overall.

(A bit too short, wanted like, twice as much campaign since I have zero interest in multiplayer.)


Mirror’s Edge Catalyst

The real reason I decided to use Origin again was to play the new Mirror’s Edge.

The original is a masterpiece – a unique gem of an experience, combining parkour, speed, and clever levels as three dimensional puzzles. Also: terrible combat.

This reboot is not a masterpiece.

Unlike the linear, finely crafted levels of the original, this is in an “open world” giant city thing, and has plenty of little side-quests and missions.

They are boring.

The characters and writing: also boring.

Combat: still terrible! And more of it is forced upon you in contexts that don’t really make sense.

The heart and soul of Mirror’s Edge was not exploration or combat but speed and using the environment – the combat was ok only when the opponents were obstacles to be used as you sped through an area.

This game feels like it missed the whole point of Mirror’s Edge. It’s slow, un-fun, and lacks the visual distinctiveness that was part of the original’s charm.


Call of Duty: Infinite Warfare

It’s like, Call of Duty, but in space, but also Wing Commander? And also Battlestar Galactica?

Which sounds like a bad idea and is a bad idea but also is the best idea. A genius idea.

If you spent hours of your youth thinking, I really want a Wing Commander or X-Wing game that also lets me get out and be a space marine, well now that’s a thing, and it’s like a 100 million dollar AAA video game, because a bunch of other people also thought that and now they can make it happen.

Yeah the writing is meh and the space combat doesn’t really work that well but it’s fun as hell. I had a great time playing it.


Social Media is an Amoral Force Of Destruction

Our algorithmically optimized systems of media distribution today are not self-correcting for anything but engagement and retention. They optimize for addiction.

That’s what they are designed to do. That’s why consumers use them, that’s why advertisers buy attention in the form of advertising. That’s their business model.

We should not be surprised that misinformation, hate speech, abuse, trolling and other worst case scenarios have become rampant.

This is the unfortunate logical conclusion to an advertiser based business model that optimizes for audience growth, scale and usage.

Only Software Companies And Drug Dealers Call The Clients Users

To complain about it, and demand those who own these systems take responsibility for it seems to me a bit like complaining to a drug cartel that they aren’t selling a version of cocaine that creates a more wholesome, productive environment amongst the community.

You’re trying to reason with a drug cartel. To make drugs less sellable.

It’s against their interests and anathema to their culture.

So good luck with that.

(In the case of Facebook, it’s more like trying to argue with a giant pharmaceutical company that enjoys profits from selling prescription versions of opiates.)

Change The Context

The drug analogy is extreme but useful framing. I don’t advocate prohibition of social media anymore so than I advocate it for drugs. (I voted to legalize marijuana last week in California, as did the majority of voters here.)

You don’t solve the problems of drug addiction by going after drug addicts or dealers, as the US has realized in a pointless war on drugs for decades. You treat addicts with compassion and offer help, and you change the economics and dynamics of the industry by movimg it from an underground economy to a regulated industry.

Beyond that, fundamentally, you have create a world where selling drugs and taking drugs aren’t the most appealing options available.

As technologists and designers in the sphere of consumer internet and media, we as an industry have utterly failed when hyper-optimized feeds fueled by incessant integrated advertising is the best we can do after decades.

This is how we want people to exchange ideas and communicate?


Telling people to quit social media is like telling humans to become luddites, stop talking to their friends, miss out on the dominant means of communication and publishing and audience, and retreat to a weird abandoned backwater that is the formerly fun but now ghost town independent internet.

Sure, you can do it, but it’s not practical. The fact that I can do it is a rare privilege and is not without significant personal cost.

Asking users to fight against the tide of addictive social software that constantly optimizes itself, and customize the software and modify their behavior to use it in a less “awful” way is an equally difficult ask. (Please use opiates responsibly!)

We can build tools to help, but fundamentally the whole mechanism of media now is asymmetric warfare for our minds.

No, I Don’t Blame The Media

For the record, I believe institutional forces for globalization that have ignored the impacts on normal humans for decades are the fundamental ‘why’ behind 2016’s presidential election results. I don’t actually think media is at fault but it’s clear that both social media platforms, and establishment media outlets aren’t coming out of this unscathed.

For me, this is the sad, inevitable result of seeing the power of the independent internet movement coopted by giant companies. I’ve been writing about this and trying to make sense of it for years:

When people talk about how Facebook needs to change to deal with this, what seems saddest to me is that we are even having this conversation. We seemed to have a decentralized system that arguably was able to self-correct, or at least change itself rapidly and be responsive. Adapt. Without single points of failure.

Instead of that we are now left with centralized gatekeepers that are even less responsive and responsible than the old gatekeepers.

Traditional broadcast stations are regulated by the FCC and have to serve the public interests, theoretically.

Journalists, as a profession and as part of institutions, tend to act as though they have certain ethics and norms to uphold independent of the profit motive. (Sometimes. Sort of. In theory. You get the idea.)

We as people let Facebook and other companies get into this position by giving up freedom for convenience and audience.

Social media isn’t moral or immoral in its distribution and choices – it’s much more terrifying. Being optimized for engagement is amoral. And that is something that is going to be somewhere between very, very difficult and impossible to ever change in the current powerful entities.

What Then

I want to rely on decentralized, self-correcting systems that have different incentives aligned with the betterment of people.

That’s what I’d like to find a way to change.

Apple's Touch Bar Is an Inhuman Interface

Touch Bar is a tentpole feature of the MacBook Pro I just ordered.

I’ll reserve final judgment until I actually can use it for a while – but I am extremely skeptical it makes sense from a usability perspective. On first principles it seems – awful.

Modal Keys

Function keys are bad interfaces because they are modal – they change what they do depending on application context in unpredictable ways without clear indication.

Other keys do the same expected thing at all times. (Mostly.) So it’s hard to know what a function key will do and that modality makes harder to use them without error, and they have a high learning curve.

I am old enough to remember putting plastic overlays on top of function keys so their usage within WordPerfect was clear when you looked down.

That was, to put it mildly, a less than ideal interface.

The best application of these function key relics from decades past has been dedicating them to media keys (volume, play, etc) that you can depend on and develop muscle memory for. People actually use those to change volume, brightness, and stop music.

Removing that so that you can have variable touch inputs that require you to look down seems like an odd tradeoff to me.

Did we just make a prettier version of those WordPerfect overlays? At least those were all buttons, these can be virtual sliders, buttons, dials, or any number of touch interfaces.

Inputs and Outputs

What makes laptops and desktops different from touch devices is you manipulate on-screen entities using off-screen input devices.

Input below, output above. Eyes on output, fingers on inputs.

If you have to look, process, and focus on the input device while the output device is elsewhere you will slow progress to a halt as your attention shifts between input and output.

This is why we train to touch type rather than hunt and peck for each key, and why looking at your mouse while trying to point to something is going to make it impossible to succeed. If you can’t operate off-screen inputs with muscle memory, then your input takes away the focus from the entity you are manipulating on-screen.

Input = Output

Touch devices are different since the input and output devices are the same. You end up directly manipulating objects of interest, no context shifting or mappings needed.

The Squishy Terrible Middle

By putting a touch interface that requires visual attention in between the dedicated input (keyboard and trackpad) and output (screen) of a laptop, this suggests replacing fast actions with ones that would seem to be necessarily slower.

It also just mixes two very different models – direct mapping (keyboard/trackpad) and direct manipulation (touch) in a way that I can only assume will make our brains hurt.

How / Why / Huh?

While this may be interpreted as the marquee feature of the device, my guess is that it may have started more conservatively – adding in the technology to enable TouchID necessitated most of the guts of an Apple Watch / touch device, so might as well add in a screen too and multitouch!

But when your user experience ignore fundamentals of human computer interaction research and basics of human factors, glitzy marketable features and cool factor will wear off quickly.

I’d be more surprised about this but after 3D Touch (hey! let’s take the least disocverable, hardest to use feature of Android and make it more complicated by adding pressure as a variable!), pinch to zoom on a tiny Apple Watch, and nearly everything about Apple TV, I’m worried there are too few “no’s” in Cupertino right now.