, why do you taunt me so?

December 22nd, 2013

The new web site sure looks great. Under the hood, though, it’s apparently implemented with Bronze Age web development technology :-(.

I tried to sign up today. After dutifully filling out my name, state of residence, and email address, then choosing a username and password, then answering three required security questions, I got this error:

Account creation failure.

That is:

Important: Your account couldn’t be created.

Please wait a few moments and try again, keeping this in mind:

The User ID you created may already be in use. Try using a different User ID.

The email address you entered may be used with another account. If you think you may have already created an account with this email address, select “Forgot your username” on the Log In page.

Since this was my first time signing up, I figured maybe someone had chosen the same username already, so I clicked on Try Again, expecting the site to preserve my old responses so I could just change the one that needed changing.

Instead, it started me all over from scratch. Yo,, newsflash: my first, middle, and last names have not changed since the last time I filled in this form 30 seconds ago:

Blank name and email form.

Oh look, the next page is blank too — but okay, maybe that makes sense because I’m probably supposed to try a different username, and it’s common practice for web forms to not preserve passwords…

Username and password form.

…But then… wait, really? You’re going to make me fill in the three security questions all over again? Did I mention there are three of them?

Security questions form.

This is insane. The site knows what the cause of the error was. After all, it displayed the big red error box at me. So why not tell me? And, in the meantime, don’t trash the form values I’ve already filled in that are not the source of the error.

Just to be sure, I tried the mailback option. After all, maybe somehow my email address was in the system already, even though I’ve never clicked a button nor filled in a form field on the site before tonight. No email never arrived, though, and it’s not in my spam folder.

(I’m now 0/2 for Federal web site mailback login links, by the way, as has also swallowed my account there, no longer responding to the password I’m pretty sure I set, and never sending me a recovery email no matter how many times I ask for one.)

While we’re at it:

A username collision could be easily detected as soon as the user types it in the form field anyway. So “the User ID you created may already be in use” is a silly situation to be in in the first place. If the User ID is not unique, then don’t let me go farther; make me fix it on that page, especially since I have to go all the way through the security question choices again before I finally get to an error.

But anyway I’m pretty sure the error is spurious, because I’ve now been through the loop several times, with definitely unique usernames, and it still gives me an error every time.

This is not how we do it in 2013. I am not a happy camper


IRC away messages.

December 10th, 2013

I set my IRC client to keep logs. Among other things, that means I have a record of all my away messages from the past couple of centuries or so… Some themes emerge, notably a nostalgia for an imagined Paleolithic past:

  kfogel is away:

kfogel is away: slowly leaching toxins from bloodstream while in a
state of severely lowered consciousness

kfogel is away: replacing busted USB port replicator so can haz
mousez and keyboardz simultaneouzly. Stay away from the IOGEAR
4-port USB 2.0 hub model GUH285 if you ever need a replicator.

kfogel is away: Upgrading to Lucid. Send a posse if you don't
hear from me in 30 min.

kfogel is away: enumerating the integers

kfogel is away: dealing with some reasonable subset of todo list

kfogel is away: errand in the city that never stops talking about
how it never sleeps

kfogel is away: communing with sessile benthic fronds

kfogel is away: pursuing striated brachiators

kfogel is away: metabolizing

kfogel is away: attending to metabolic requirements

kfogel is away: gym time -- yes, geeks are allowed to exercise,
stop looking at me like that

kfogel is away: bun run

kfogel is away: piano time is the only sacred thing

kfogel is away: deep in concentration

kfogel is away: ululating

kfogel is away: Post Office, possibly including metabolic detour.

kfogel is away: gradually converting oxygen to heat

kfogel is away: Speaking of certs and Apache redirects, it's time
to put my laundry in the dryer and start the next load.

kfogel is away: synthesis is the new creativity

kfogel is away: put the pencil in the suitcase when the whiskey
bottle faces the moon

kfogel is away: pipette herbivore cesium bricolage

kfogel is away: Drinking the blood of innocents.

kfogel is away: Q: How many Semantic Web advocates does it take to
screw in a lightbulb? A: What exactly do you mean by "a"?

kfogel is away: Every odd integer > 5 is the sum of three primes.
That made my day.

kfogel is away: weeping, once again, that "ombudsman" has neither
a sex-neutral form nor a verb form.

kfogel is away: One of the nice things about a downtown Chicago
office is exiting into a Daley Plaza protest most weekdays.

kfogel is away: gallivanting with brachiators

kfogel is away: afk for a bit; ask the NSA if you need to find me

kfogel is away: attentiveness to metabolic needs

kfogel is away: avoiding stobor

kfogel is away: oiling my Turing Machines

kfogel is away: is my hero -- victory for
non-patentable genes at U.S. Supreme Court!

kfogel is away: Literally heading to a restaurant whose motto is
"We Serve People". I am not making this up.

kfogel is away: Correction to previous away message: it might be
"Serving People", sorry

kfogel is away: realizing that public school systems are useful
for teaching children how to handle bullies well, and how to
subvert hierarchical authority structures, therefore they should
be preserved

kfogel is away: Is that Edward Snowden in a tuxedo, disguised
among the penguins in Antarctica?

kfogel is away: Seeing what that sound is.

kfogel is away: Researching the hallucinogenic properties of
oxygen -- hmm, continuous consumption appears to cause delusions
of reality...

kfogel is away: fulfilling humankind's millennia-long dream of
flight, albeit in a cramped, commercialized, sadly routinized and
perhaps slightly tawdry way.

kfogel is away: Neither hunting nor gathering.

kfogel is away: avoiding subsidizing further Mesopotamian

kfogel is away: wondering why web sites use Flash in situations
where HTML+CSS+images would actually have been easier

kfogel is away: pondering the futility of empathy in a universe
made mostly of hydrogen

kfogel is away: pining for the fjords

kfogel is away: nostalgia-drenched lunch in NYC Chinatown

kfogel is away: stalking the wild asparagus

kfogel is away: converting sunlight to metabolic energy

kfogel is away: traipsing

kfogel is away: checking in on the progress of my escape tunnel

kfogel is away: flossing pulsars

kfogel is away: off to hear Chicago Schola Antiqua in concert --
I'm sure all of FreeNode writhes in jealousy

kfogel is away: contributing some heat back to the Universe

kfogel is away: consumption of sunlight, indirectly, via organic
solar repositories

kfogel is away: "What do we want?" "TIME TRAVEL!" "When do we
want it?"

kfogel is away: Los Angeles looks exactly like Los Angeles

kfogel is away: neural network nightly reset

kfogel is away: accepting silver medal for the 200 meter "not
thinking about the Olympics" challenge

kfogel is away: transferring heat from one location to another

kfogel is away: time to pay the cafe fee again -- maybe it'll be
another wheat-based sugary substance this time

kfogel is away: re-spending my misspent youth

kfogel is away: eating arugula in honor of Barack Obama

kfogel is away: improving my Sogdian accent

kfogel is away: converting matter into heat, using only my body

kfogel is away: Converting sunlight into energy, indirectly.

kfogel is away: admiring your gritty urban authenticity even as he
prices you out of your neighborhood.

kfogel is away: luxuriating in the knowledge that no matter how
bad things get, there's always xkcd

kfogel is away: pontificating somewhere, about something

kfogel is away: It's just about time for historical inevitability
to come back into fashion.

kfogel is away: ancient sunlight will now be converted to
particles of pure energy in my bloodstream

kfogel is away: seeking gourd for use in repurposed pagan ritual

kfogel is away: When you've just typed the same phrase three
times, it is time to take a break. When you've just typed the
same phrase three times, it is time to take a break. When you've
just typed the same phrase three times, it is time to FAKEOUT, YOU

kfogel is away: just going to start using "friblopen" to avoid the
whole "free"/"libre"/"open" debate

kfogel is away: Paying money to increase my cardiopulmonary
activity level in a socially-approved and non-disruptive manner &

kfogel is away: taking The Jacket for repairs

kfogel is away: pursuing Outsider to galactic core to see what the
big deal is

kfogel is away: weekly spur waxing

kfogel is away: oak-sporting

kfogel is away: getting away from the computer for a bit and
fondly recalling my paleolithic past


My Contempt Knows No Bounds: The Starbucks “Come Together” Petition.

October 13th, 2013

This petition was on a table by the doorway at a Starbucks near my house, and the top sheet had even collected a lot of signatures. I wonder what those people thought they were accomplishing. You can click on the photo to get an enlarged version, but here’s what the text says:

To our leaders in Washington DC,
now is the time to come together to:

  1. Reopen our government to serve the people.
  2. Pay our debts on time to avoid another financial crisis.
  3. Pass a bipartisan and comprehensive long-term budget deal by the end of the year.

It’s as though Starbucks CEO Howard Schultz hears someone getting mugged outside his window and shouts “Hey you all down there, quit fighting!”

The Starbucks 'Come Together' Petition

Memo to Starbucks: the way to solve this crisis is by taking a side. It’s literally true: as their poll numbers have dropped (i.e., as more people have taken sides), the Republicans have started to abandon their demands. When enough of them abandon enough of their hostage-taking ways, the government will re-open, the debt ceiling will be raised, and conversation will be possible. Humiliating defeat is also a bipartisan solution.

If you’re a gigantic publicly-held company and don’t feel you can afford to take a side, then at least don’t put out pointless petitions in favor of unicorns and rainbows and everbody getting along. That’s worse than useless. You might confuse some poor person who hasn’t yet had their morning coffee into thinking they’re actually participating in politics when all they’re doing is donating their name to your misguided and implicitly partisan publicity drive.

Refusal to take a side almost always equals taking one side. In this case, by legitimizing the Republicans’ extortionary tactics, Starbucks is supporting their side. All the people signing that petition are doing so too, but — especially knowing the demographics of Hyde Park, Chicago, where that particular Starbucks is located — they probably don’t think of themselves as doing that. That what makes this worse than useless.

I’m not sure how one conspicuously refuses to sign a petition. Maybe cross out one line? Sign your name and then cross over it? What I did at that Starbucks was write a note at the top of the petition about “false equivalency” and how the only constructive action to take here is to take a side. If you stop by a Starbucks today, please do the same :-).

Eben Moglen talks in New York City: “Snowden and the Future”

October 3rd, 2013

Eben Moglen speaking

Arrgh, I wish I could go to this!

Eben Moglen is giving a series of talks entitled “Snowden and the Future” on four Wednesday nights, spread across October, November, and December. I’d even fly into New York to attend some of them, but I have choir rehearsal on Wednesday nights (and I’ve already missed rehearsals due to travel, so don’t want to do more of that).

But if you’re in New York, you should go! They’ll be at Columbia Law School, Jerome Greene Hall room 101 (map), from 4:30pm – 5:30pm, on Wednesdays Oct 9th, Oct 30th, Nov 13th, and Dec 4th. More information at The talks will be live-streamed at that site too.

Dear Lazyweb: How long will it take you to fix the LOVEINT problem?

September 8th, 2013

Just for the record, I know I could have created the English-language wikipedia entry for LOVEINT myself. But I wanted to see how long it would take from tweeting (and denting) it until someone else creates the entry :-).

(I think the only Wikipedia article I’ve actually started is the one on William Binney, which has developed very nicely since then. This time I’m taking the lazy route, though, and calling it an “experiment” since people have more respect for science than for laziness.)

Update: Okay, looks like the deed was done on 12 September 2013, by Wikipedia editor Koavf (Justin A. Knapp). He did it as a redirect to the “2013 mass surveillance disclosures” article, which mentions & defines “LOVEINT”. No idea whether he ever saw this blog post, but anyway, thanks Justin!

My favorite RSS reader,, goes open source!

August 27th, 2013 logo

I’d been waiting for this! (N.b.: had inside information it was coming.) The code behind my favorite RSS reader,, has been open sourced. See the announcement, or grab the code from

Feedbin is the RSS reader I use every day now. The minimal design is a pleasure: nothing gets between me and the articles I’m trying to read, but at the same time the knobs I need are there when & where I need them. It supports import/export, and has a documented API.

I don’t host my own Feedbin instance, of course. I just use the service run by Feedbin’s author, Ben Ubois, at At the eminently reasonable price of $3/month, it’s well worth it for me not to have to worry about configuration and hosting administrivia. At the same time, knowing that the code is open source is important: that means it can never be taken away from its users. It means that the investment I make as a user can’t be suddenly rendered obsolete by one party’s decision to yank the rug out from under everyone.

If for some reason Ben Ubois ever shut down his Feedbin commercial service (unlikely), that still wouldn’t mean I’d have to set up my own instance. Someone else would probably do so, and I’d just pay them instead. Or if no one did so immediately, well, that’s a market gap I might be interested in stepping into… but then many others would be having the same thought. Open source is not about doing it yourself; it’s about removing barries to people doing things for each other.

That’s why it’s important for commercial services like Feedbin to also be open source.

Congratulations to Ben! I hope he gets many new users from among those who feel that commerce and freedom taste better together.

Here’s a screenshot of Feedbin’s three-column layout (feeds, [un]read articles, then the current article in the rightmost large pane): screenshot


July 31st, 2013

I’m taking a vacation from email for a few weeks, so please don’t worry if you don’t get a response — just resend in late August.

Credit where credit is due: LibreOffice is now ridiculously easy to build.

July 28th, 2013

LibreOffice logo

About fifty million years ago, I encountered a minor bug in the OpenOffice word processor. It was an easy fix, a menu layout problem or something like that, so I thought I’d have a go at patching it. Of course, the first step would be to build the latest development version of the code and see if the bug was still present.

Well, I got stopped on that step. I spent an entire day trying to build OpenOffice, and didn’t succeed. I don’t think I even came close, though it was hard to tell. I eventually concluded that to be an OpenOffice developer, you’d need to first get a Ph.D. in building OpenOffice, and gave up in frustration. It brought home to me the importance of making software easy for developers to build — especially in open source software, where you depend on developers who bring their own energy and who will quickly take that energy elsewhere if it is not rewarded.

Years later, the OpenOffice project forked — well, the actual story is a bit more complicated than that, but basically today there is LibreOffice and Apache OpenOffice. Both are active open source projects, and it’s fair to think of LibreOffice as one of two equally legitimate inheritors of the old OpenOffice mantle in the sense of development continuity. (Do search://apache openoffice libreoffice “document foundation”/ for the detailed story.)

I happened to be talking to some of the LibreOffice developers recently, and related my build experience from years ago, and how it had turned me off from ever considering OpenOffice development again, and from even considering LibreOffice development after the fork happened. The whole thing had left me scarred: buildability was such an obvious non-priority then that I didn’t see how a project could possibly ever get from there to something a normal mortal might build in finite time.

Wait, it’s gotten better, they said.

I expressed skepticism, but they swore it was true. Really?, I said. Okay, I’ll start from the top of the home page and see if I can find my way to useable build instructions, right now, right here, while we’re on the phone.

And you know what? They were right!

     $ sudo apt-get update
     $ sudo apt-get build-dep libreoffice
     $ git clone git:// libreoffice
     $ cd libreoffice
     $ ./
     $ make dev-install

The whole thing built. Without errors. I had working libreoffice debug binaries in six easy, well-documented steps.

That was amazing — it changed my mind about how much a project can improve its build experience if the developers really decide to prioritize it. (Disclaimer: I haven’t tried the same with Apache OpenOffice; it might well be equally easy.)

They asked me if as penance I’d fix another minor bug, since I wasn’t able to fix that menu bug all those years ago, and offered as the victim. This seemed like a completely fair request; I didn’t make any promises but I said I’d take a look. Sadly, I have to admit that I’m not going to fix it any time soon, only due to other commitments. It’s not a hard fix in theory, but verifying that it works everywhere could take some back-and-forth with various bug reporters and testers, since it’s a modification to run-time shell scripts, and right now I need to ruthlessly cut down on small-scale random commitments.

So as an apology for not fixing that bug, I wrote this blog post. Kudos to the LibreOffice team for having given such a complex piece of software such an easy build process. Although by not fixing bug 1141106 I guess I’m contradicting my own claim, still, I think that being so conveniently buildable must be a major ingredient in getting developers in the door, and that this pays off for the project in the long run.

Missing OSCON this year.

July 22nd, 2013

For those friends I’m not seeing in Portland this year: sorry to miss you this time!

I decided, for once (and hopefully once only), to not go to OSCON this year. Two main factors: I’ve already been traveling too much, and I’m greedy for time to concentrate on my book update.

Going to OSCON is always enjoyable, I always learn new things, and it’s wonderful to catch up with old friends and meet new people… but one can’t do everything everywhere. I wasn’t scheduled to speak this year, and there’s just too much on my plate. So, I decided to skip it this once.

See you next year!

Taking sides.

July 4th, 2013

US Declaration of Independence

Every Fourth of July, the New York Times prints the entire Declaration of Independence of the United States on the back page of its main section, in facsimile and in text. I read the whole thing on the subway this morning, just to remind myself what they were thinking of.

I’m pretty sure they were not thinking of a country where the government classifies the extent and nature of its surveillance, and even lies about it when citizens and their representatives ask. The distinction between discussing the overall process of surveillance and discussing individal targets of surveillance is crucial. Edward Snowden informed us about the process; he has been careful not to leak the targets (unless you count revelations of a very general nature, such as that we spy on the governments of our allies). No terrorist knows more today about whether they’re being watched than they did before Snowden’s leaks. Anyone trying to blow something up would naturally assume, and behave as if, they were under surveillance already.

Can anyone point to any real harm to national security from Snowden’s leaks? I have yet to hear of any. The leaks merely informed the citizenry of what we should have been informed of all along. It’s not a question of whether the government should sometimes be able to eavesdrop, or about whether there is rigorous enough judicial review or oversight. It’s that whatever we’re going to do, the policies about when and how we do it are legitimate matters of public debate — and we can’t debate them if we don’t know them. This is about civilian control over the military and intelligence services. Snowden himself said this eloquently enough, as have many others, so I won’t belabor the point.

But there is one slightly different argument I’d like to respond to:

Some people say that, even if in some abstract sense it is right that this information should come out and be debated, Snowden was wrong to leak it because in doing so he violated his oath to guard the secrets he had been entrusted with.

But he had a conflict of oaths: on the one hand, he and those around him were sworn to uphold the Constitution; on the other hand, he’d made a promise to keep secrets secret. What is the right thing to do when you promise to keep a secret, and then the secret they tell you is that some people aren’t keeping their promises?

For those who still don’t feel that conflict as Snowden felt it, on this July Fourth I’d like point out that George Washington was an officer of the British militia in the American colonies. Well before the American revolution of 1776, he led a military force acting on behalf of the British crown, defending first part and then all of the Virginia colony’s borders. I don’t know enough about colonial militias to know if holding those positions required swearing an oath of loyalty, but it seems likely that it did (the new United States Army itself instituted an oath of allegiance fairly early on during the Revolutionary War). In any case there is at least some conflict in serving in a country’s militia and then leading an army against that same country’s army. But by their nature revolutions involve broken promises. You can read the Declaration of Independence as one long justification for when and why they should be broken (seriously, take a look).

Oaths sometimes conflict with each other, and you don’t always find out how until it’s too late. Then you have to decide what to do. Edward Snowden did the right thing in a difficult situation, and the debate that has ensued is evidence of this.

(It’s interesting that people who fret that Snowden broke his oath don’t seem to get as worked up when people get divorced and thus, in many cases, break their marriage vows. Marriage isn’t about national security… but then again, neither were Snowden’s leaks.)

If you agree, please say so, preferably in public — on your blog, if you have one, or on Facebook, or on Twitter, or on the bumper of your car, or on the back of your laptop. It’s important. There are a lot of people right now, especially politicians who are worried either about being attacked on national security or about losing the trust of the intelligence community, who feel they have to condemn what Snowden did. In some cases they’re sincere; in other cases they sense which way the wind is blowing in their particular environment and they say what they need to say to keep their position. I don’t even blame them, but it’s important that they not be the only voices out there. Say you’re glad to have the information that Snowden leaked. Explain clearly why it’s important that the public be able to talk about these things. Don’t let anyone feel they’re alone in thinking this, and you won’t be alone either.

Happy Fourth of July.