blarg?

Now that this has happened, I don’t feel too bad about telling you about this which, all in all, reminds me of what mp3.lycos.com was lawyernuked in to a sheet of stained legal glass for trying back in the dark days before el revolucion. If you’ve got time for a little browsing, a little patience and a little URL-munging-fu, you’d be surprised what you can pick up.

Eat your hearts out, Amerikanskis.

I’ve had them as a sidebar link forever, and you people may well be clicking on it but, people, hear me when I say this: The Astronomy Picture Of The Day that the fine folks at NASA run is
responsible for some of the most incredible imagery I have ever seen.

I had a coffee on the way to school today, then I bought two coffees for a classmate and I who, bad planning, had also bought two coffees for us, one of which he couldn’t finish and gave to me. So by 10:00 A.M. I felt like I’d managed to stick my brain stem in a wall socket, and then of course my laptop decided that it was not going to reinstall Java properly for me and spew a bunch of meaningless Xlib error messages all over my console (for free!), and Jeebus I-Robot Christ I’m not equipped to handle this right now, and Sean Ross tried to help but he was typing so fucking slowly that the natural erosion of wind and rain was going to fix things before he worked it out, and then he tried to convert a DOS batch file into a functioning bash script using only a touchpad and a delete key and my brains tried to crawl out my nose. It didn’t help that I was now zero-for-nine on rolled-up-rims and the drone behind the counter doesn’t fucking listen when I tell her to give me the right goddamned ones, and it turned out that Nexus and a project proposal I wrote and somebody’s Perl assignment and some political process in the Middle East were all broken, and people started asking me about all of them and then it was 4:00 before I could string together enough coherent words to suggest that all that twitching might be hiding an idea, and then my project supervisor said “let’s all go outside and fling stuff at the building with a tiny trebuchet“, like we’re suddenly a band of midgets trying lay seige to the building we just carried all this crap out of, and the rest of my afternoon was a complete write-off.

Some days you can cross your eyes as hard as you want and the inkblot is still going to turn into a Dali painting, and it doesn’t matter what you do, the whole rest of the day is going to be like that. Deal. Run with it. Don’t panic, is all. They can smell fear.

I’ve got this plan to hook up one friend of mine with another friend of mine in the next few days, but not on a day I feel like a bag of kittens is batting at the backs of my eyes and I’m one miscue away from telling everybody about the bats. Those poor bastards will find out about the bats soon enough.

Kozlowski is probably right, even if what he has to say kind of sucks. On a vaguely related note, well, read on.

A reinstall, with the subsequent Tweaking To Get Things Just Right is largely what’s brought this little diatribe on.

One of the thing that strikes me about the World Of Computers is how much of it is make-work. Not make-work in the more common “hiring an idiot relative” sense, but certainly in a “reimplement existing stuff from scratch” sense. Working on a couple of toy projects and being surrounded by other toy projects as I am, I see this a lot and if some conversations I’ve had with actual professional developers are any indication, it’s pandemic.

One of the toy projects I’m helping out with right now is Ben’s OC-Transpo scheduling project, and my humble contribution is going to be to take the data that he has to work with, currently in a bizzare variety of alien formats, and converting it into YAML, because a bunch of tools that I’d rather not have to, and frankly am probably not smart enough to, reinvent already exist to manipulate that data in a number of languages. I’m doing the same thing with the header-slash-data files in JWZ’s xkeycaps for the same reason – so that I end up with something a little more portable and hopefully a lot less brittle than anything home-rolled.

I mean, that work’s been done. It’s been tested, other people who are probably smarter than I am rely on it. Do I need a new data format? Probably not. Would I need to reimplement all the related tools that come with it? Probably. Is there a limit to the number of parsing, searching and sorting algorithms I feel like reimplementing in my life? You’re damn right there is.

And yet, how often does this happen? Apparently, all the time. JWZ recently posted a particularly egregious example, but just trying to get this machine set up properly has had me messing with a dozen other microformats that, I’m sure, all need to be parsed in their own special way because, hey, that’s a great way for programmers to be spending their time.

As far as I can tell, the only
valid reasons you’d have for inventing your own data format are:

  1. No established format exists that can handle your data (which I’m going to call the “wildly unlikely” option) or that

  2. You don’t want anyone else to be able to work with your data, known as “vendor lock-in” in most circles.

I guess you could just be doing all this with C/C++ and not feel like looking around for relevant libraries, and I guess that’s OK; once you’ve decided you’re just going to bang rocks together, it’s hard to get that strictly wrong.

Of course, this is just data, small fish. Simple. But people are hard at work reimplementing codecs, compilers, even entire infrastructures with the same general mindset, and the result is the same brittle incompleteness writ varying degrees of large.

I have only my impressions here, but I read some blogs, I read some news, and I get a sense that the corporate interests of the world, who free-software advocates typically refer to as “the bad guys”, have pretty much decided that it’s time to stop fucking around. And on the desktop at least, the Free Software side of things is, if Havoc’s assessment is any indication, hosed for the forseeable future. And given that it’s 2004 and I can’t reliably cut and paste shit between applications if it’s any more complicated than seven-bit ASCII, I’m sorely tempted to believe that.

I tell you, when I read about how lisp machines had garbage collection back in the late 70’s, I want to cry.

That and, apropos of nothing, I think that a good way to learn what to avoid when you’re programming is just to pay attention to the kind of things that piss old hackers off.

Booting into kernel 2.6.3 means my mouse doesn’t work, unless I add mousedev and psmouse to my /etc/modules file. Once I do that, the mouse works fine in KDM, and KDE doesn’t work at all. It just fails halfway through startup, silently, leaving me with all the functionality of KDM’s background picture. Awesome.

I mentioned it to some of the people at school, whose suggestions ran the gamut from “switch to Fedora” to “switch to Mandrake”. While I have nothing but respect for at least one of those distributions, the idea of reinstalling a whole new operating system to fix the mouse is too stupid to mention aloud. Sadly, though, the number of things machine does that are too stupid to speak aloud is not small so I suppose I have very little high ground in this regard.

You’d be amazed at the number of dots you need to connect to make a mouse work in Linux. I sure was.

Sean, having scored two free tickets, took me to see Starsky & Hutch today. The short review:

I feel like a porcupine has been fucking my eyes.

There is no longer review, because there is nothing in this movie that deserves it. Sean and I walked out of it, and the conversation went like this:

“That was a pretty bad movie.”
“Yup.”

And then we talked about something else.

The Bush/Cheney Poster Generator is a god-damned comedy gold mine.

Got a funny one? I’ll take it.

Update: They’ve turned it off. That’s a damn shame. I forgot to save “We Know Where You Live” and “Your Halliburton Overlords Command You”.

Good times, good times… There are now a bunch of them here.

Confidential to Elliot: Temple Of Love, by Sisters Of Mercy is a great, great song. I’m going to get me some more of these guys. Take the Cult, add a female vocalist, some keyboards, a few ounces of black eyeliner and a few gallons of talent, what’s not to like?

I heart that thick-layered sound. I heart it much; dear reader, are there any more upbeat gothy anthems out there that I should know about?

Updated: now with high-speed bling. See below.

I’ve had a brief exchange with Russ Nelson, of The Angry Economist fame. It looked like this:


Sir -

I’ve read an weblog entry of yours recently, “Offshoring“, and I have
a question about it. In it, you say:

“The dollars that we pay to Indians don’t get magically converted into
rupees. They stay as dollars, and have absolutely no value to Indians unless they are ultimately spent as dollars back in the good old USA.”

Being a humble student, I haven’t travelled the world over, but I’ve moved around a little and I’ve never been anywhere that didn’t accept U.S. dollars, something that’s likely not true of rupees.

I’m not sure how this argument I’m making plays out, not being an economist myself, but here it is; I agree with you that jobs will be created when those dollars find their way back to the States, but if the U.S. dollar is a de-facto international currency, then those offshored dollars might take an awfully long time to come back to roost. I don’t think that it’s just the temporary loss of jobs that people are concerned about, but the possiblity that “temporarily”
could be a distressingly long time, whereas local investment, while less cost-effective also guarantees that the inherent lag in the process will be much, much shorter.

I’m trying to draw an analogy here to insurance costs and general risk-aversion, but I’m not sure I can fully articulate it – maybe that the inefficiency of the buy-local mindset is an acceptable price to pay for the prospect of a briefer downturn in employment opportunities?

Mr. Nelson replies:


Any dollar that does not come back to the United States becomes a green collectible presidential portrait. We are happy to supply the world with currency, as long as they’re willing to accept it.

Let me put it another way: dollars get used to buy things. Therefore, there should be as many dollars as things, otherwise dollars will become more or less valuable relative to things. This change will promptly be reflected in the prices of things. If you want stable prices (and you do, more or less), then the number of dollars should match the number of things that they’re traded for.

If a new country starts buying or selling things for dollars, suddenly there aren’t enough dollars to go around, so the price of dollars goes up. This mean that the federal government can print more dollars and spend them. A dollar that goes overseas and never returns inures to all US citizens because it means that we bought things for paper. This is a good thing.

I’m not sure what I think about this, or even if he really answered my question. This is clearly not my area of expertise, so I’m going to have to find some time to read up about it and think about this some more. I don’t know how delta T works itself into opportunity costs or other economic arguments, but I’d sure love to see a good reference.

Update: It turns out that, in the relevant money markets, delta-T is as close to zero as makes no difference at all: money markets are just about the fastest, most efficient markets out there, so my posited lag is really a non-factor. So yes, he did in fact answer the question, and is right. So much for my clever idea.

If you’re wondering where all your disk space went, then you might want to take a look at the situation with FileLight, which I think is pretty cool.

I’m trying to rewrite JWZ‘s XKeyCaps in Ruby::Tk, because it looks like it needs to be done. I’m interested in learning Ruby, it looks cool, and this seems like as good a way as any.

The other reason is that I’m getting really fed up with discovering every few months that something that used to be dirt simple has magically devolved back to being a big pain in the ass again. There is no equivalent to XKeyCaps available in KDE or Gnome, and I had to reapply my very-marginal KDM .xsession workaround to get xmodmap to work properly with KDE/KDM.

I’m not sure what the result is going to be – his code does a lot of stuff that I don’t think that I’ll be able to do, in Ruby or at all, like autodiscover keyboards on hardware that I’ve never even heard of. But on the other hand I suspect that with Ruby and a modern toolkit I’ll be able to get 95% of the functionality together in about a quarter the code. Almost all the boring stuff is taken care of by the Tk toolkit, thank Ghu.

I’ll tell you, though, as much as I hate writing UIs, one thing that I’m never, ever going to complain about is the unpleasant tediousness of creating a UI in the modern era. My experience has ranged from early AWT on through Swing and some simple/ugly
Ruby-Tk widgets for my own amusement, and I hated pretty much all of it, but old X code? Wow. Trying to read that stuff is just awful; it’s like Chaucer’s been khodeing ‘pon a keebhorde. You can kind of understand it but, Christ, why would anyone do that to themselves? Or to other people?

On the bright side, Mr. Zawinsky has had the very good graces to write out all of the relevant data files (actually, they’re all C header files, but that’s not important) in a consistent and easily machine-mungeable way. So things are moving along apace. I think that the thing needs some more keyboard layouts for laptops anyway.

I’ve moved everything over to PHP, so all my archive files now end with .php instead of .html, which basically means that anyone who’s ever linked to anything I’ve written just got cut off.

This seems uncivilized, so I though I should do something about it, but my first attempt to fix it with a bash script that made symlinks not only didn’t work and it was obvious that even if it did work it would be an awfully ugly way of doing things. So I undid that, because I there just has to be a less-gross way of doing that kind of thing, right?

Yup.

Having read up on Apache’s URL rewrite module, an underpublicized power-tool of webspace administration, not only have I fixed it, but it will require zero maintenance from me in the future and, best of all, nobody should notice that I’ve even made the switch.


RewriteEngine on
RewriteBase /~mhoye/blarg/archives
RewriteRule (.*)\.html $1.php

Small victories, small victories.

If anybody would like to hold my hand and mutter reassuring factoids to me while I’m trying to get Exim, uw-imapd, Procmail and SpamAssassin to play nice, I would probably appreciate it a lot.

If there are any bogeymen or trapdoors involved, I’d like to know about them, too.

The CCSS has just held their elections. I’ve just been nominated to the prestigious position of “Thug”.

We might be the only computer society on the planet with an official thug. My job responsibilities are listed as “Thugging things. And people.”

I thug, you thug. We thug. They get thugged.