blog.rupamsunyata.org

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

Section Twelve

Darlings

Today's wiki page: Fighting is boring.

YouChoob

Russel notes a discussion of the problems with embedded media. I've been using a Greasemonkey script for a while to linkify EMBED tags for easier non-embedded downloading, but this doesn't help much on Flash sites such as YouTube. I haven’t installed Flash in years, but I got sick of slinging URLs around and/or giving up and being the unpopular kid, so I took some other Greasemonkey code I was hacking on and mushed it all together:

http://www.red-bean.com/~decklin/userscripts/unembedtube.user.js

(I get a perverse sort of nostalgia out of bringing back the "puzzle piece" for links, and mocking people with it.) YouTube embeds will appear to work like any other, but the URL is changed from the Flash wrapper to the FLV file, which can be opened in MPlayer/Totem/whatever. Since we can figure out this URL, it is also, of course, possible to make such the link back into an embed usable by mplayer-mozilla or a similar plugin.

Unfortunately, I don't have time to look up how to add a configuration menu, but this line of JS does have a certain charm to it:

var evil = 0; // need to make this user-settable

You know what to do. If you want true evil, there are some pointers in the comments. For YouTube videos embedded from other sites, the best I can kludge for now is link to the video's original YouTube page. If someone would like to write a routine to snarf that page with XMLHTTPRequest and yank the necessary arguments out, I would love to add it.

(Insert five-page “think piece” here about the lost dream of MIME and the sad fact that the rise of “Web 2.0” has been driven more by the fact that native installation is irreparably broken and pointless anyway on most PCs than it is by the fact that JavaScript actually works now and the implications of this for the Free Software movement especially in light of the fact that we are still human beings who occasionally do social things like sign up for Twitter even though they're running on some proprietary code base.)

Tangible User Interface

I logged in this morning and noticed that my XFCE weather applet had disappeared. I moved the pointer over to see what was up, or at least open the menu to add a new one...

A tooltip appeared that said, “fog”.

No Installation Required

So, I haven't blogged in almost a year. I am a horrible, horrible, horrible person. But at least I've been on LowThresholdNmu. Barely.

Since I still read a blog or two so that I can pretend to be informed: I really like this post. I would make a comment about the bumper sticker on the Prius normally parked around my part of ye olde Prospect Hill, but then people might think I was actually talking about politics or oil or cars or gentrification or something like that. It's a violent world out here on the interweb. One can only be oblique.

When did I get so old? Did I fit in at some point? I really don't know.

Dear Lazyweb

I just wasted half an hour (mostly finding a dead motherboard and bending wire) making one of these:

http://www.rupamsunyata.org/~decklin/blogfiles/20060622/usbport.jpg

I then threw out the cap to my USB storage device. Why doesn’t anybody sell them? Why are the holes for your keyring always on the part you use (thus weighing it down, particularly if it's sticking out of the front of a tower) and not the part that comes off? It's not easy to unplug by accident (I did squeeze it a bit removing some of the metal).

I think I’m just not looking in the right place. I can’t be the first person to have been annoyed with this. Lazyweb, please tell me where to go.

(Yes, the only thing I use it for is my SSH key.)

Irony Alert

The other day I went back to the West Hartford library for some more DVDs and stopped by the New Non-Fiction shelf. This book caught my eye. It claimed to be a lexicon of euphemisms, “doublespeak”, and other language used in the US to disguise one’s true opinion, assumptions, or political agenda (you know how we love politics over here). An Ambrose Beirce for the talking head set, if you will.

So I flipped through it for a bit, and to be fair, the authors did do a commendable job of pointing out some of the subtle presumptions of many words that I myself think I use completely innocently. Even if I try to directly combat this tendency in my own way, one could certainly argue that ideas like systemic bias or jargon themselves implicate or demonize certain groups.

But that's why we need something like this book, right? Have to keep on our toes. Then I landed on H. The first entry was “hacktivism”.

“...which,” it read, “like hacking, is illegal...”

Brooks’s Law

When Ubuntu said they were going to focus on polishing Dapper because it was the release that was going to go head to head against Vista, I said to myself, “come on, people, you’d easily be safe with 6.10”. And voila.

Besides, everyone knows the summer is the best time for hacking!

I sincerely hope the previous sentence serves as enough of a smiley face for no one to blog an, um, rebuttal.

I have not actually had a chance to test this yet

Dear Lazyweb,

Does anyone know how to remap Caps Lock to Control in Windows for a specific keymap (e.g. Dvorak) only? The standard thing appears to be hardware-level.

I feel the need to pass this on

“The apartment downstairs is free as in malloc, not as in beer.”

Flow Control

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

Whoops

Apropos of my last post here, I am redoing my rawdog config and writing a tag plugin. This involved merging all my state pickles into one file first, which rather strangely brought my server to its knees until the OOM-killer kicked in.

I couldn't figure out what was going on for a second. And then I noticed that ever since I switched it to LVM I wasn't using my swap partition at all. So, a word of warning: never assume your fstab is right just because your filesystems show up.

Pickle still needs to be replaced, but a lot of things need to be replaced.

I got lost

You know it’s bad when writing several screenfuls of recursive fuzzy tree matcher in Python is fun and doing a tiny bit of tree and Makefile maintenance on a C project so you can push out fixes from last year is a chore you’ve been putting off for weeks.

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?

XML

OMG! I just remembered I own a copy of the elephant shrew book!

...Somewhere.

I would have had no idea that’s what those were if not for this page. (This is a blog, I have to make a link somewhere. Read the articles; they made me smile at least.)

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. :)

Entry love

Evan thinks about the nature of the commons.

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.

New blog

Okay, I’m putting this blog on Planet Debian... now. The old one is not gone yet, because I’m tired and I don’t think I’ll do it until tomorrow.

In a fit of hubris, I wrote some software to run this blog (which is just a bunch of generated static files), called Mnemosyne. I was bored of PyBlosxom and it was slow. I believe Erinn said something like, now it’s only a matter of time until I write my own RCS... If I get to that point I will really start worrying. If anyone is looking for something along these lines, please tell me what sucks and/or what is broken.

Anyway, rather than categorizing things (ugh), I’m just putting anything tagged “planet” in the feed that goes here. I think this will work better.

Oh, and I almost forgot: my blog now has automatic flooding-prevention. Nothing older than a day gets in this feed. I don’t know why feeds in general don’t have some sort of time limit.

Generated by Mnemosyne 0.9.