by adam mathes
archive · subscribe

But What About Your Personal Brand

Gershon, a professor of anthropology at the University of Indiana, Bloomington, spent a year interviewing and observing job seekers and employers in Silicon Valley and around the US. Her new book, Down and Out in the New Economy: How People Find (Or Don’t Find) Work Today explains that branding is largely a boondoggle advanced by inspirational speakers and job trainers. It doesn’t help people get jobs. But it does make us more accepting of an increasingly dehumanized job market that treats workers as products rather than people. […]

When people think of themselves as brands, they are speaking the language of reputation, appearance, and marketing. It’s hard to switch from that to a discussion of moral responsibility. […]

“Maybe instead of thinking about people as property or businesses, we could think of people as craftsman.”

Noah Berlatsky – Our obsession with personal branding reveals a dark truth about the future of work Quartz

So the conclusion was your personal brand won’t help you get a job. But it may make you more accepting of dehumanization in the postmodern economy.

The book: Down and Out in the New Economy, Ilana Gershon [via]

Throw Away Your Operating System

I’ve been thinking about the complexity of modern technology stacks. See You probably like bad software from earlier this week.

Some of the interesting approaches to dealing with this eschew operating systems almost entirely.

Finding ways to reduce attack surfaces, create more maintainable systems in a world where the cost of hardware approaches zero is critical because we’re going to have a lot more of them.

Nobody (or company) is going to be able to effectively manage an infinite number of unix systems spread across dozens of devices indefinitely. I can barely maintain one unix server running this site and I have a computer science degree and two decades of experience running it.

Some interesting approaches / existing work –

unik – The Unikernel Compilation and Deployment Platform

UniK (pronounced you-neek) is a tool for compiling application sources into unikernels (lightweight bootable disk images) rather than binaries. UniK runs and manages instances of compiled images across a variety of cloud providers as well as locally on Virtualbox. UniK utilizes a simple docker-like command line interface, making building unikernels as easy as building containers.

Unikernels are interesting – throw out the OS and write monolithic kernels with a single application on top. Somewhere between “research concept” and “possibly a production-ready technology” but this toolkit makes testing and applying unikernels in various current forms pretty straightforward – I had some basic Go code running on a rump kernel very quickly.

Unikernels – rethinking cloud infrastructure

Unikernels are specialised, single-address-space machine images constructed by using library operating systems. Unikernels shrink the attack surface and resource footprint of cloud services. They are built by compiling high-level languages directly into specialised machine images that run directly on a hypervisor, such as Xen, or on bare metal. Since hypervisors power most public cloud computing infrastructure such as Amazon EC2, this lets your services run more cheaply, more securely and with finer control than with a full software stack.

gokrazy is a pure-Go userland for your Raspberry Pi 3 appliances

For a long time, we were unhappy with having to care about security issues and Linux distribution maintenance on our various Raspberry Pis. Then, we had a crazy idea: what if we got rid of memory-unsafe languages and all software we don’t strictly need?


MirageOS is a library operating system that constructs unikernels for secure, high-performance network applications across a variety of cloud computing and mobile platforms. Code can be developed on a normal OS such as Linux or MacOS X, and then compiled into a fully-standalone, specialised unikernel that runs under a Xen or KVM hypervisor.

Library OS in OCaml.

Rump Kernels

Rump kernels enable you to build the software stack you need without forcing you to reinvent the wheels. The key observation is that a software stack needs driver-like components which are conventionally tightly-knit into operating systems — even if you do not desire the limitations and infrastructure overhead of a given OS, you do need drivers.

Uses NetBSD drivers and enables a large amount of existing software to more or less “just work” as a unikernel – some example packages include mysql, nginx, leveldb, haproxy, rust, tor, zeromq.

Unshareable Concepts

I’m uninterested in the latest viral content.

I want more exposure to things that are good, even if you don’t want to share them. Or can’t share them in a moment easily.

Or things that won’t get repeatedly re-shared because they are actually complex and require thought and therefore less likely to be a meme.

Or they matter too much to you to share without thought.

Engagement optimized social media underexposes these things systematically.

It’s like we have a biological ecosystem where the most infectious virus won, and we’re slowly seeing all the complex organisms die.

This is a hard problem. All the incentives around attention and money are generally going the opposite direction.

Unfiltered [vghf, bn2b, jglg, docomoji code-poetry]

The Video Game History Foundation

We’re preserving the history of video games, one byte at a time.

Frank Cifaldi’s destiny is this foundation. (At least, that’s what I’ve been telling him.) Preserving video game culture is important – it’s great that Frank has a structure and team to do this full time now. First special collection is great – NES Launch Collection

Twitter Is Bad, Part 400000000000

I think Twitter actually has some sort of weird philosophical stance where brands, consumers, and Russian propaganda bots are all people, and they all stand on equal footing, and must be treated equally. Everybody in charge at Twitter was like “Wow, we live in a world where corporations have all the same rights as people and… it’s turned out great, we better emulate that!”

So great to see Andrew writing. Also, he’s right that foundational assumptions in networks like Twitter (all nodes are equal, anyone can contact people) have huge implications. And they’re hard to change. (See: death of

Jon Glaser Loves Gear

season 1 trailer

Not sure how I missed Jon Glaser getting a new show until my brother sent it to me.

Well, I do. Probably because I pay no attention to anything, and it’s on, truTV – and when John Hodgman plugged the show on Comedy Bang Bang and explained he was playing Gear-i, a Siri-like artificial intelligence on a phone that helps Jon Glaser choose what gear to buy, I assumed he was fucking with the audience. But that’s also true, and it’s awesome.

I made a 2001-era emoji font! That you can use!

Last month, my coworker casually told me he still has a 2001 era DoCoMo phone, which is one of the first phones to have emoji […] I then took a 10 hour flight to Europe and, for lack of better things to do while watching every movie that came out this year, I drew every one of those emoji as a sprite. 166 emoji in total, 12x12px each, in one of six colors

Amazing hand-tuned tiny pixel modern usable font rendition of one of the earliest emoji fonts.

This website displays a collection of twelve code poems, each written in the source code of a different programming language. Every poem is also a valid program which produces a visual representation of itself when compiled and run.

This is inspiring – both in concept and execution.

You Probably Like Bad Software

The challenge with software is it gets worse over time.

It seems counter-intuitive that the more people work on something, the longer it takes to get done, but that’s a well established principle in software.

What’s harder to fathom is that it also gets worse. But that is the default outcome. Outside of extraordinary circumstances and extreme measures taken, it’s what you should expect.

Software is a world created by thoughts where real work and progress over time turns into an endless ouroboros of engineers making software that breaks other software then having to fix that broken thing only to break again in new ways.


If you’re an engineer, it’s very likely you are making software worse every day.

It’s ok, most people who work on software are.

If you are using software, you probably use bad software. You probably like bad software.

It’s ok, most people like bad software.

The alternatives are usually worse.

Perverse Incentives

Software gets worse over time because what people change often isn’t related to making the software better in a coherent, measurable way.

It is not fixing bugs (boring! not fun!) or improving security (nobody cares until it’s too late!) or making things faster (who cares! computers and phones are faster every year! Moore’s law makes optimization forever unnecessary!)

What’s sexy and interesting in the world of software is adding features, redesigning a user interface, or integrating it with some other unrelated piece of software to help it (synergy!) or monetization – which these days usually means spying on users to better target ads, serving ads, delivering ads, or in rare cases selling things people don’t need more efficiently.

Often this is how individuals working in software show they did something and that’s how they are judged.

(People brag about the new software they make, nobody brags about the terrible awful bugs they had to fix.)

But if there’s a piece of software people are already using, by definition, it is useful and used.

Most of the above is likely going to get in the way of that existing usage.

If you’re not fixing bugs or improving performance which, you know, unless you are properly testing things and measuring them – also boring! – you’re probably harming those things – you’re making something that people use worse.

It’s probably attemping to solve a company’s problems, not users’ problems. And the accidental outcome is making worse software.

Again, that’s ok, most people make bad software.

Most people use bad software. Most of the software industry is predicated on selling, supporting, and monetizing bad software and making it worse over time.

Underneath It’s Even Worse

The perverse incentives of individuals who work on software is one thing – but it’s when you start moving down the levels of abstraction that things get really scary.

Let’s start with operating systems.

Now the accumulated cruft, random interface changes, inconsistent features, and whatever “me too” garbage thrown in to remain “competitive” doesn’t just impact a little corner of the software world via an application, but has the potential to fuck up every process and program running on top of it.

Eventually, the weight of this nonsense led to people jumping – leaping with joy! – to stop using their computer for phones.

Snobs/weirdos like me in linux/unix/macos/beos/amiga/whateverbsd land were somewhat insulated from this but it’s not hard to understand how using an iPhone 4S with a 3.5” screen and consistent touch interface would be a massive improvement over any verison of Windows released after 1995 which we too quickly forget was basically a wasteland of crashing (blue screens of death) and virus-filled malware.

“Getting rid of the garbage on your parents’ windows machine” is an annual ritual for many people.

2007-10 era smartphones were a clean slate – there just hadn’t been enough time for programmers, product managers, marketing hacks, sales guys, and aesthetic-obsessed designers to fuck it up by larding on complexity.

For those in the future who are baffled, let me set the scene.

It’s 2017, and the Apple iPhone 7, a device previously heralded as one of the most beautiful, usable, and understandable products, has a tentpole feature called “3D touch” – a rebranding of the disastrously named “force touch” – that performs different actions depending on the pressure applied while tapping.

Which is different than the different actions performed based on the duration of tapping.

So trying to rearrange the icons on the home screen – already an undiscoverable action but one users learned over a 10 year period – depending on how hard you press can accidentally trigger a nonsense “app menu” which by default includes a single item – “Share.”

Nobody wants to “share” their apps. That is solving developer and company problems (use more apps you don’t need!) not user problems.

And the few that do want to share an app definitely don’t want to do it by pressing REALLY HARD on the icon. The only reason people press really hard on an icon is to move it which they had to discover somehow in 10 years since there’s no affordance for it.

And the iPhone is probably one of the best case scenarios. Some people at Apple are really good at this stuff – they just seem to be increasingly overruled or making bad decisions.

It’s not just them. These things seem inevitable.

Laws Of Bad Software

Given enough popularity, hardware will be mediated by bad software trying to solve corporate problems, not user problems.

Given enough additional code, all software will become bloated and incomprehensible.

Now imagine these software stacks – applications built on frameworks using libraries dependent on operating systems with kernel bugs all packaged into containers deployed on hypervisors built on other operating systems running on virtual machines managed via orchestration systems that eventually somewhere runs on real CPUs and memory and disk drives.

That doesn’t make any sense because nothing makes sense anymore in software.

We used to call people who understood things end to end “full stack engineers” but that’s a bit laughable now because nobody really undestands anything end to end anymore.

This Is Your Program, And It’s Ending One Millisecond at a Time

If you aren’t measuring latency, it’s probably getting worse, because every stupid feature you’re adding is slowing things down.

Most software would be improved if people just started turning features off.

Turning features off generally doesn’t sell additional units to consumers, close a sale, or make for a PR fluff piece, so people only do it in times of extreme failure or consequences.

I’ve seen an inverse correlation in the amount of engineering time spent on features vs their usage regularly. I’ve seen direct correlations between the amount of time spent on features and higher latencies pretty much constantly.

Some software cultures understand this and put tight controls in place to prevent regressions (because, you know, it turns out to be a real revenue and/or usage problem when people abandon your software because it’s too slow) but if your software is already painfully slow due to low standards and atrophy good luck convincing people to fix it.

Software bloat is the seemingly inevitable and sad reality of nearly all software.


As the layers of complexity start to overwhelm end users, you can only imagine what it’s like for the poor programmers stuck making all this work.

It’s layers upon layers of filth nobody wants to even wade through.

Kind of like how you’d be willing to pay lawyer-like fees just to avoid legal contracts? Well, tech is like that too now, hence tech-wages.

The terrible truth of software security isn’t that people are incompetent or lazy (though that probably happens sometimes.) It’s that the interactions between components, dependencies, and overall systems are now so awful that they may be impossible to secure at a reasonable cost.

That’s not a metaphor – literally – the benefits may outweigh the costs of connectivity according to insurance risk assessments –

“A future where the annual costs of being connected outweigh the benefits is not only possible, it is happening now. According to our project models, annual cybersecurity costs in high-income economies like the U.S. have already begun to outweigh the annual economic benefits arising from global connectivity.”

How To Stop Bad Software

1. Death

Dead software can’t accumulate additional bugs. It can’t get new features. It can’t get any worse. It also can’t make assumptions about how fast today’s hardware is.

George R. R. Martin writes 1000 page novels on DOS machine, on WordStar 4.0

If you disconnect hardware from the internet and run old software (or hide it in a virtual machine) it may actually run better as the inevitable pace of hardware improvements provide speed updates without software engineers using that additional hardware power to get in your way.

Bruce Sterling once said, If your grandfather’s doing a better job at it, you can put that aside for later, when you’re dead, like him.

If 25 year old dead software is doing a better job of it, then maybe stop trying to top it.

But nobody wants to actually be a neo-luddite and refuse to use any normal technology. It’s like, do you really want to never use Facebook and miss out on everything because you insiste on using a god damned email mailing list? (I do, but I was always anti-social, hence the social aspects of the web were always sort of an anomaly in my life.)

2. Fight complexity

You can use OpenBSD or similarly esoteric systems where developers are even more jaded than me but actually do something about it – see features are faults, redux

This is fighting the good fight – having taste, being smart and proactive, outsmarting and outwitting an endless array of opponents.

The problem is some of those opponents start to look like forces of nature (hostile nation states, friendly nation state three letter agencies, corporations with more money than most nation states) and actual forces of nature (entropy) and it’s just fucking tiring because you know it’s probably just a losing battle that never ends and everybody is just fucking annoyed at you the 99.9% of the time a disaster isn’t happening and the 0.1% of the time it is, people are really fucking annoyed when you say I told you so.

3. Begin Again

When Microsoft’s and Intel’s duopoly led to a certain terrible low quality / high boredom in mass market hardware and software, it provided the fertile ground for the world wide web. By adding a new magical layer of abstraction (the web!) that made the underlying garbage of Wintel a commodity, there was a whole new world of adventure.

Normal people could like, look at the source of a web page, understand what was going on, and write their own!

Now, 20 years later, when nobody can understand which of the dozen competing Javascript frameworks to use to even write something that will reliably manipulate a Document Object Model efficiently enough to re-render a page of malformed bastardized SGML-derivate gunk after a click returns an asynchronously fetched incomprehensible stream of data nested between parentheses and quotes, that seems like a quaint concept.

The clean slate of mobile applications – where limited memory, screen size, CPU, and battery – actually provided enough constraints to force engineers, designers, and the software industry to shut up long enough to solve some actual problems in a comprehensible way – seems to be ending.

In my tech lifetime it seems that we only get about 5 years of “non-insane complexity” in our platforms before the “ecosystem” shifts into a swampish nightmare, and then 5-10 years of complete hell before we can move in. (My deep worry is this pace may be accelerating.)

The current hot place to jump next (internet of things) is going to be pretty fun when it works!

But when that stuff gets too complex and all the newly networked objects around us start speaking Portugesse we don’t understand and firing off spam emails because nobody bothered to secure the SSH and SMTP daemons on the ancient versions of linux that are lurking just beneath the surface we’re going to be in for a world of pain.

That’s already happening now – we’re already in trouble.

How 1.5 Million Connected Cameras Were Hijacked to Make an Unprecedented Botnet

As many predicted, hackers are starting to use your Internet of Things to launch cyberattacks.

At some point we have to ask ourselves, why the hell would anybody allow a camera that runs linux into their lives? Linux is an operating system that thinks it is talking to a teletype.

· · ·

We’re building the future of super-intelligent robots, but we’ve put brains in them that are hardwired to think it’s the 1970’s.

When things inevitably go wrong, I hope that they’ll let me watch Star Wars

· · ·

An earlier version of this essay was published as letter #9 – you probably like bad software.

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

· · ·

If you enjoyed these posts, please join my mailing list