blog.rupamsunyata.org

Decklin’s excuse for some blogging software. Est. 2006.

You keep using that word. I do not think it means what you think it means.

I always feel like tar ought to say:

tar: data.tar.gz: inconceivable time stamp 1969-12-31 19:00:00

But it never does.

We’re here to help

Every time I read my Apache logs I get a very strong urge to block anything claiming to be Mozilla that is not actually Mozilla. Then I go make some tea and chill out.

(Years ago this was sheer eccentricity. But for the love of God, software that didn’t even exist in 2005 is still doing it.)

Flow Control

Raise your hand if you have ever said, “I wish I could use C-s and C-q in Firefox.”

Dee Ess Double-yoo

Occasionally I see an absurd discussion like this one continue to drag itself out and I feel sort of guilty for writing one of the big “minimalist” things. The point of writing less code is not to conserve memory or cycles or soothe some “first thing we’ll do, let’s purge all the libraries” fetish. The point is to only write what you want to express. If a feature would require that to get lost in a bunch of dreary nonsense, then it’s not worth it. If there’s a library you can call that lets you say the what and not the how, then it is.

More importantly if there’s a standard program that you can call that’s the same standard program that everyone has agreed on for decades and that saves you from implementing a protocol which you are obviously not smart enough to implement on your own, then you just shut up and fucking call it. And if that causes you to realize that your program is pointless, don’t write it.

Not writing it is the least amount of code you can produce. And that is the best possible thing you can do. That’s what this unix thing is all about. Those who do not understand it are condemned to reimplement it, poorly.

The good fight

This is wonderful. (via Amaya.)

Also, I really need to do something about my aggregator situation. Gendergeek is on my list and it’s gotten so lost in the flood that I haven’t clicked through to it in forever. Sometimes I just go to a few of the sites I care about directly. This has to stop.

Constants of the universe

One of the few annoying things about free software is simply finding it. You can get a very good idea of what is to your taste or not from people around you, but if you don't know or care (or want to care!) about some particular problem, generally people whose opinions you trust don’t like any of this crack either.

In particular, Web Frameworks(tm). Lots of people love them. I’ll take vanilla. After paging through several manuals last weekend for things which I might be able to use a templater from, and finding that despite all the other features, no one seemed to even care that much about even doing inheritance sanely, I got annoyed and grumbled something about how they all sucked and figured I could just factor that logic out myself and use what I was already using for the boring bit.

However, Erich pointed out that that sucked too. And if you care about being correct (says me who serves all these pages with the XHTML mime type despite it breaking Internet Explorer and Google), you should probably assume that if you give your users (including yourself!) something fragile, they’re inevitably going to break it (and if they’re the sort of users that have been crawling out of the woodwork these days, well...). So I checked out Kid, to which I am giving yet another link here because it’s just that good. I’ve seen attempts to implement the “it’s all valid XHTML” thing before and they were rather blah. This one seems to actually fit with its being hosted on lesscode.org. And I am nothing if not a sucker for less code. And for things being pleasant to read.

So I ported my templates over and added the four lines I alluded to, and now (since I know my output is provably valid), although I have not put them live yet, I have a starting point for making them be a little less crack (really, it’s very bad). Has anyone registered lesscrack.org yet?

This is where we do some shameless self-promotion I think

Erich, I’ve been working on one for this blog. No persistent cache to speak of except for the files themselves when their sources haven’t been touched, and I haven’t found any reason to need XML, but I was trying to avoid much of the same nonsense you mention. As such, the templating is as dumb as possible. Perhaps you can do a lot more with XSLT, but I didn’t find it very interesting. Templating systems in general make me itchy.

I am now, however, thinking about making it easy to subclass that part of things as well, which could be interesting. Write something to talk to the big XML library, one import in layout, a few lines to save the cache in a pickle... hmm!

(I always stick a “raw-html” role into reST if I really need it for something, but generally, I try not to think about HTML period.)

I haven’t heard from anyone about it yet so I don’t know which X, Y, and Z are obviously lacking. :)

Fitts' Revenge

Tip of the day:

.toolbar-primary > toolbarbutton .toolbarbutton-icon {
    padding: 5px !important;
}

More target-acquisition space, no distracting labels. People who write extensions tend to make their labels ridiculous.

Hate

I truly, truly hate email. First you have the __getitem__ and __setitem__ that work nothing like a dict (no KeyError ever, just returns None, despite there being a get, silently fails to overwrite an existing value, no update). But of course they're just as stupid as a dict if you change the content, instead of associating the type with that object. And then. decode_header. Does this:

[('Foo', 'utf-8'), ('Bar', None)]

Hint: ('Bar', None) is not a valid list of arguments for creating a unicode object. I don’t even want to create it myself. I just want the thing decoded. Ugh, ugh, ugh. Everything that possibly could have sucked here has sucked. Lots.

One of the reasons I decided to use Maildir is because it takes two lines of code to turn it into a structured list of objects. Except of course both of the standard modules that make that possible are horribly designed. I really don’t want to reimplement this shit. I really don’t want to go to a “real” database backend where suddenly you can't use any standard unix tools to do anything and you have to write them all from scratch.

All software sucks. Down, not across.

Gratuitous Non-discoverability of Interfaces

Actually, what really bothers me about the GTK+ file dialogs is having to click “Browse for other folders” every single time I open the one for saving. (Last I looked this up, the only solution was to patch GTK+.)

My understanding of all this touchy-feely user-interface stuff is that humans are supposed to be oriented spatially (classic Finder) or by breadcrumbs (Netscape). A tiny little dropdown with a text label of just the current directory's name (not even a full path) gives me no idea whatsoever “where” I am. I constantly save things in the wrong directory from Firefox.

While basename $PWD is all the directory information I put in my shell prompt, I can do considerably more from there, and new shells don’t tend to pop up two hours later when you forgot where you cd’d to last time. What is acceptable for me there is not acceptable for a normal user here. I really don’t get what they were thinking.

Generated by Mnemosyne 0.9.