Author Archive

One from the Great EWD

“A problem solved in my head.”

Of two unknown integers between 2 and 99 (bounds included) a person P is told the product and a person S is told the sum. When asked whether they know the two numbers, the following dialog takes place:

P: “I don’t know them.”

S: “I knew that already.”

P: “Then I know now the two numbers.”

S: “Then I now know them too.”

With the above data we are requested to determine the two numbers, and to establish that our solution is unique.

(Readers that would like to think about the problem themselves need not turn the page.)

“…pounding their shadows down the night”

“They took to riding by night, silent jornadas save for the trundling of the wagons and the wheeze of the animals. Under the moonlight a strange party of elders with the white dust thick on their moustaches and their eyebrows. They moved on and the stars jostled and arced across the firmament and died beyond the inkblack mountains. They came to know the nightskies well. Western eyes that read more geometric constructions than those names given by the ancients. Tethered to the polestar they rode the Dipper round while Orion rose in the southwest like a great electric kite. The sand lay blue in the moonlight and the iron tires of the wagons rolled among the shapes of the riders in gleaming hoops that veered and wheeled woundedly and vaguely navigational like slender astrolabes and the polished shoes of the horses kept hasping up like a myriad of eyes winking across the desert floor. They watched storms out there so distant they could not be heard, the silent lightning flaring sheetwise and the thin black spine of the mountain chain fluttering and sucked away again in the dark. They saw wild horses racing on the plain, pounding their shadows down the night and leaving in the moonlight a vaporous dust like the palest stain of their passing.” – Cormac McCarthy, Blood Meridian, or The Evening Redness in the West

“When God made man the devil was at his elbow.”

“Lost ye way in the dark, said the old man. He stirred the fire, standing slender tusks of bone up out of the ashes.

The kid didn’t answer.

The old man swung his head back and forth. The way of the transgressor is hard. God made this world, but he didn’t make it to suit everbody, did he?

I don’t believe he much had me in mind.

Aye, said the old man. But where does a man come by his notions. What world’s he seen that he liked better?

I can think of better places and better ways.

Can ye make it be?


No. It’s a mystery. A man’s at odds to know his mind cause his mind is aught he has to know it with. He can know his heart, but he don’t want to. Rightly so. Best not to look in there. It aint the heart of a creature that is bound in the way that God has set for it. You can find meanness in the least of creatures, but when God made man the devil was at his elbow. A creature that can do anything. Make a machine. And a machine to make the machine. And evil that can run itself a thousand years, no need to tend it. You believe that?

I don’t know.

Believe that.” – Cormac McCarthy, Blood Meridian, or The Evening Redness in the West

A friendly Holiday reminder from the TSA

Some Thoughts on Getting Paid for a Pull Request

I recently made my first contributions to TextSecure. For those not familiar, it’s a handle little secure messaging app that manages both SMS messages and secure push notifications. It’s one of the best examples of usable security out there for mobile, so I’m stoked to finally be able to contribute to it.

One of the many cool things about the project is that they’ve set up BitHub, an automated donations/payout service for open source projects. The service is remarkably simple in interface, allowing for donations to a pool of funds and paying out automatically for every commit. In my case, as soon as my commit landed, the equivalent of roughly 12USD landed in my BitCoin wallet. The process was transparent and painless for me.

Looking through the git history for the project, I noticed a bunch of commits that included the line:


While I couldn’t find any explicit documentation of it anywhere in the BitHub docs, it turns out that this does, as you’d expect, “donate” the commit in question. I tagged my second commit to TextSecure with FREEBIE, and sure enough, no payout resulted.

This whole mechanism is interesting for a few reasons, almost all of them having to do with usability and the API.

See, paying for open source contributions isn’t a radically new concept. There have been various attempts to make it work for years, and most of them end up looking or actually being small companies built up around various projects. Some particular projects have bug bounty systems. Others are covered by third-party bug bounty systems.

But a per-project-funded, per-commit-paying, automated donation and payout system, the API for which is almost entirely included in the existing git infrastructure is new. And what’s more, having used it now, I’m convinced it’s as close as we’ve come so far to the Correct way of doing payouts for open source contributions. Its transparency and seamless integration make it trivially usable. It can be configured to pay out or not by default, with overrides being as simple as appropriately tagging your commit. The bitcoin-based payout is so easy and quick that it’s damned near magic.

I haven’t looked into setup or configuration much, so I don’t know how much of a headache it is from an operational point of view. (I don’t know precisely where, e.g., it looked to discover the right BitCoin address, though I suspect it’s just doing a committer email lookup on CoinBase. I’m not sure what the payout mechanism would look like if I didn’t already have a CoinBase account setup or if can be setup to query identity services like OneName) But from a user’s point of view it was so easy and invisible that it would be easy to miss right up until the BTC landed in one’s wallet.

It’s this usability that makes something like BitHub a potential game changer. A zero friction way for developers to get a little payout for fixing something on a project creates a powerful new incentive for them to get over the learning curve. There’s a huge psychological difference between needing to learn a new codebase just to fix a bug or two, and learning a codebase that actively pays contributors. Especially when the actual payout mechanism involves no special setup for the dev.

In short, BitHub’s git integration, transparency, and near total lack of friction make it the best open source payment solution I’ve seen. And that’s not just a nice thing, it’s an important thing. Getting paid drives commits. Friction drives complacency. BitHub finally nails the best of both worlds for open source payments.

Living in the Future: Better Cyborgs Edition

We now have the capability to create mind-controlled cybernetic limbs. The fit and finish leaves something to be desired, and there are many more hurdles to clear, but they’re good enough to restore real, meaningful function to amputees.

Which is damned awesome, if you ask me. Props to the team at APL. Thanks for helping to make this future a good one.

MBS, now with TLS

Just a note that this blog now (finally) supports HTTPS. Depending on the page, you may get mixed content warnings still, since I can’t gone through and re-written embeds and stuff like that yet. But the blog itself now sports a shiny new cert and is reachable via HTTPS, as every good site is. My current hosting provider, Dreamhost made it stupidly easy to set up, really driving home how embarrassing it is that I hadn’t set it up yet.

Anyway, better late than never.

Guinea Pig Bridge!


“I was skulking up the back”

Consider, dear reader, that if this doesn’t move you, you may not be movable.

Return top

Magic Blue Smoke

House Rules:

1.) Carry out your own dead.
2.) No opium smoking in the elevators.
3.) In Competitions, during gunfire or while bombs are falling, players may take cover without penalty for ceasing play.
4.) A player whose stroke is affected by the simultaneous explosion of a bomb may play another ball from the same place.
4a.) Penalty one stroke.
5.) Pilsner should be in Roman type, and begin with a capital.
6.) Keep Calm and Kill It with Fire.
7.) Spammers will be fed to the Crabipede.