Benjamin Esham

The Lone Cypress

The issue is not which Bible verses the Administration should be citing as justification for its behavior. It shouldn’t be citing any Bible verses.

People who are protesting by quoting the nice verses are only reinforcing the idea that religion has a place in our government.


The GGB yesterday

#goldengatebridge #fog #sanfrancisco #sf #🌁

I assume the people who came up with the idea to split California into “Northern California,” “California,” and “Southern California” are the same people who decided to call the three Apple Watch lines “Apple Watch Sport,” “Apple Watch,” and “Apple Watch Edition.”

#goldengatepark #sanfrancisco #sf #darkroomapp

Patches of green

#sanfrancisco #sf

Emacs de gallo

#photoforge2 is several times more usable now that you can hide the replies that are directed at people you don’t follow. I understand why Manton chose to show all replies by default but the signal-to-noise ratio of my timeline is so much higher this way!

Getting back into overfiltering my photos, it seems

#latergram #photoforge2

#goldengatepark #latergram

I just made Swiss Miss with coffee instead of water, so you may address me as Barista Esham.

Three sunset photos in the last week?! I’m sorry, folks. The sun just keeps setting



Sausalito sunset

#latergram #sausalito #sunset


#sanfrancisco #goldengatepark #darkroomapp

It seems kind of ridiculous at this point that a phone with a perfectly good Wi-Fi connection, but no cellular connection, can’t get calls or text messages. These are the simplest, dumbest features our phones have, but they’re also the most brittle.

Sunset on Haight

#sf #sanfrancisco #sunset #darkroomapp

On tap at Rorhbach – 5/31/17

Beach life

#🌴 #darkroomapp


A gentle plea from someone who occasionally does drive-by bugfixes of free-software projects

Please, Dockerize your application. Or give me some way of starting a full copy of your app with one command (and without touching the rest of my system).

I want to help, but if standing up your app means installing a new programming language and a new package manager and a bunch of dependencies and configuring your application and reconfiguring my web server—and then I have to figure out how to actually fix the bug—I’m going to be a lot less likely to contribute to your project.

I suppose some projects have convoluted setup processes to discourage just these kinds of drive-by PRs from people who don’t know the code that well. But I don’t think that’s the reason most projects take a while to get running.

Instagram’s algorithmic timeline reduces my “engagement”

It is a truth universally acknowledged, that a social media service in possession of a reverse-chronological timeline, must be in want of screwing it up with “algorithms.” We saw it with Facebook in 2009; Twitter and Instagram held out until early 2016 but then followed suit. Facebook has been a lost cause for me for a long time—its algorithms’ inability to pick out the few items that would interest me are just a fact of life at this point. Twitter is still usable through third-party clients (although the company is doing its passive-aggressive best to do away with those too).

Instagram’s algorithm is more troubling for me. I’m a completionist, which means that on Instagram (and on Twitter and in my feed reader) I like to see every single item. This is really easy in the kind of feed reader I use, where you have to click on each item to mark it as read, or in a third-party Twitter client, where you can launch the app and just continue scrolling up from where you left off.

On Instagram, though, there is only one full-featured client—the Instagram app—and it always sends you back to the top of your feed when you reopen the app. With posts now being rearranged from session to session, when you launch the app you have to continue looking through photos until you finally reach one you’ve seen before, at which point you can be pretty sure you’ve seen everything in your feed.

I’m sure this model works fine for some people, especially if they’re following a ton of accounts and just want to dip into the firehose occasionally. For a completionist, though, Instagram is a daily source of irritation. I’m sure the algorithmic timeline is supposed to “increase my engagement,” but in reality it’s caused me to stop following some people so that my feed has fewer things to get through. There are another couple of accounts that I only follow in my feed reader via Granary, but I can’t like or comment on photos that way and I don’t count toward those accounts’ follower numbers.

Is that really what Instagram wants? Given the chance, I would at least glance at every single photo or video in my feed. With the screwy timeline, I’m cutting back just to make Instagram feel manageable. The company is testing an “all caught up” feature which seems like it will make this a little easier, provided that you do get caught up every two days. I think the real solution here is obvious, though, and I don’t know why Instagram is resisting it so strongly: just add an option to turn off the algorithmic timeline. Even if the app retained the silly behavior of starting at the top of the feed each time it opened, this would make getting caught up less of a chore and more of a delight.


“Do not, my friends, become addicted to water. It will take hold of you, and you will resent its absence!”

— from Collected Sayings of Muad’Dib by the Princess Irulan


That day is a day of regulation, a day of deletion and expiration, a day of unsubscriptions and opt-outs, a day of policies and officers, a day of the trumpet and alarm against the data warehouses, and against the high bulwarks.

University Avenue, Rochester, 5/14/17

This video is super cool. Just a bunch of normal satellite images, put together in a fun and kind of trippy way.


#sanfrancisco #darkroomapp

Westworld is O(n²), in the sense that after you watch each episode you think, “Hmm. I need to rewatch the entire series now”


Solar panels

#whpgeometry #geometry #latergram

Walk up in the club, like Aiya Eärendil Elenion Ancalima!

The iPhone has a good gyroscope, right? I wonder if it would be possible to bake the phone’s forward/backward tilt (pitch) into each photo and—for those of us who are obsessive about getting everything level and plumb—computationally correct for it later.

#deepthoughts from the Haight

Secret-ish garden

#sanfrancisco #sf


“Unicode is so complex it cannot be trusted in the same process as the app (or SpringBoard).” — ctxppc

That sounds extreme, but Apple’s current code—or its current QA strategy—is not working well. See examples one, two, three, four, and now five of text-parsing or rendering bugs that bring down iOS (or at least the Messages app).

Pretty Presidio

Behind bars

#darkroomapp #sanfrancisco #sf #haightashbury

Whenever someone tells me that a tool “supports vi key bindings” I think of my 480-line vimrc and just nod politely.

The Golden Gate Bridge from Alcatraz last night

#sanfrancisco #ggb

A #latergram all the way from March 2016: First Federal Plaza in Rochester, New York.

#roc #rochesterny #vscocam

TINY BRAIN: two spaces after a period

NORMAL BRAIN: one space after a period

GALACTIC BRAIN: let LaTeX handle it for you

If you don’t wear red on May Day you’ll be bitten by the snake from the Gadsden Flag.

i propose,until may 25th, we hold what i call the Banquet of Privacy Policy’s. we go all out until then & tell as many customers as we can that we value their privacy. The Banquet of Privacy Policy’s

The scene in Battlestar Galactica where they’re drunkenly listing all the pilots who had died, but with search engines.

The bad news is that my new microblogging system has had so many kinks to work out that I’ve had to post way more than I would have otherwise. The good news is that my drafts folder is pretty much empty now.

I enjoy writing Haskell, but I think it’s telling that when I write an application in it I put more of the logic into Postgres functions or shell scripts than I would otherwise. Path of least resistance, I guess.


One of the few things the Haskell compiler won’t protect you from is thinking that return will cause execution to leave the current function. Whoops. (Although, how difficult would it be to emit a warning for this?)

Poe’s straw man fallacy: Pick any opinion or belief, no matter how outlandish, and you can find (or manufacture) evidence on the internet that someone has that belief—or at least that they seem to.

Irony is the soda of discourse: cheap, widely available, and immediately appealing, but ultimately unfulfilling.

The guideline I keep in mind when I’m working on my blog: you can change anything later, except the URLs. Get those right the first time.