blog.rupamsunyata.org

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

I'm the fuel that fires the engine of Failure

So, the Democrats in my very blue state put up a depressing, entitled, out-of-touch candidate for our vacant senate seat and she lost. The only reason I voted for her was because she wasn't a Republican. Supporting someone you don't even slightly like is psychologically draining.

At this point, I would vote for a Democratic party (or a Republican party!) with the exact same fiscal policy as the current Republicans if they actually made a principled, moral stand on equal protection and civil rights, habeas corpus/due process, and reproductive rights. Those don't cost anything[1].

Maybe they should be solved before the stuff that does cost billions of dollars. As it is my choice is weak, almost grudging support for those rights from people who want to hand the economy over to the government, and disgusting, immoral, vehement opposition to them from people who want to hand the economy over to wealthy corporations.

Neither side is doing anything effective to keep us free, or to keep the market free. Each side says or implies that this is a Christian nation, which it explicitly isn't, while failing to do what's right. Sometimes I want to give up and stop voting.

[1]Conversely, of course, it doesn't cost anything to take people's rights away, or prevent them from getting rights in the first place; I think this is why anti-gay-marriage ballot measures have been more successful in the current recession. Some people get their kicks from the suffering of others.

Another Monopoly Rant

A cautionary tale: Verizon's DSL salespeople are completely incompetent.

Several weeks ago, I ordered residential service. I was unable to get the prequalification app on their web site to work for my address, so I called in. I was told (1) I could get a modem for free, and (2) that I didn't need to do anything for the install except plug it in -- they'd just be turning something on at the CO, perhaps even before the date my service was scheduled to begin.

These were both, of course, pure fiction. On the install date, while at work, I got a call from a tech who had shown up at my house to rewire something. Luckily, I was able to rendezvous with him later in the day. The service worked briefly and then went down. Over the next few days, I called in, was told to wait at home for 8 hours, no one showed up, I called in again, was told "oh, sorry, it's going to be tomorrow", waited all day the next day, no one showed up again... a week and two actual visits later, I finally had connectivity.

I can't really blame them for whatever the line problem was, but to repeatedly treat my time as worthless by making me wait at home for an entire day just in case a tech can get there, even though it's highly unlikely they will, is just offensive.

Then, I received my first bill and... was charged for the modem. Calling in again, I was told that the deal I was offered was for online orders only, and even if I specifically confirmed with the sales person that he could get me the same deal since the web site wouldn't let me complete an order (and I already had an old, power-sucking modem anyway), there was no way I could get a refund. So I got an RMA and planned to go shopping for a replacement (people are selling the same model on Craigslist for $10). The RMA came in an email which also told me that if I did not return the equipment within X days I would be charged $100.

This is all utter bullshit. Do not use Verizon. If your only other option is Comcast, as it is here, just steal your neighbor's wireless or tether your 3G.

They could have left me reasonably happy with the whole botched situation if they had provided a honest estimate of how long it would really take to get someone out (even if it was "days"), or given me access to the same information without having to go through a call center of people only trained to read a script about how to power-cycle your router or whatever. And if they actually apologized for a saleperson convincing me to sign up by lying about what I would be charged. But why would they? What are you going to do, switch to an ISP that treats you like a human being and doesn't fuck with your traffic? Ha. Ha ha ha. Good luck with that.

Film at 11

Managers are dicks.

(ObBookMeme: "What's hard is sorting the result list so that the good results show up near the top.")

(Something I am working on now that Njiiri has search, but who gives a fuck, right?)

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

I know, it really *isn’t* surprising

When this headline on Pandagon pops up in your feedreader, you get the sort of feeling a parent might have when the principal calls. I wrote a long and typo-ridden comment. (I gotta stop linking back to that same entry.)

Come to think of it, that’s kind of the same feeling I have every time Andrew Suffield sends something to a mailing list that users and/or the general public read...

Not a good thing to encounter in a daemon

  File "/usr/lib/python2.3/urllib.py", line 787, in __init__
    self.read = self.fp.read
AttributeError: 'NoneType' object has no attribute 'read'

Sigh. I believe this is how Joe feels all the time, only much less so.

Where do *you* want to go today?

Ugh. What in the world were these people thinking? Got this from Amaya, who made a GIF of it if you don't want to waste time downloading that.

Gah.

Not that this is that much better.

kthxbye

Brown paper bag bugs cause you to scramble to get a fixed version out as soon as possible, which causes more bugs and that causes more grief, which causes you to screw up the upload. I suck. Maybe we should discourage being your own upstream.

I have a line in my ~/devel/TODO under aewm that says “UPDATE THE FUCKING VERSION NUMBER IN aewm.h YOU DOLT”. Will I remember to read it? Who knows?

I just installed Bitlbee and added 14 lines to said file for that, but the one line for ghosd has priority.

<decklin> but that will actually be FUN unlike hacking gaim which is AWFUL

Yeah, that’s why, mainly. I think I just need to be more professional.

Actually, this code *was* written in 1995

Buffer overflows, man. I'm fixing fucking buffer overflows. Gag me with a spoon.

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.

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.

On answering FAQs

I just wrote, in a mail to mb-users, “that would have been the correct place for the OP to not post this.” I think I need to start using this phrase more often. Particularly when someone acts surprised that the world is not their personal help forum, but in fact contains other people who might want to address, well, each other.

We’re still losing the culture wars.

What happened to being a nice loser? I’m not sure. I think it’s because someone mailed me (rather persistently) asking for a non-free font. Hint: this is a faux pas.

Generated by Mnemosyne 0.12.