The random rantings of a concerned programmer.


July 19th, 2009 | Category: Random

motherfucking shit; haven’t been fucking posting at all lately because my motherfucking machine died. Long fucking story but it’s all my fucking fault but I managed to save all the goodies (ie, ~/.*) off the HDD. It took me a fucking week to get that shit eeePC out of the closet and configure NetBSD so it isn’t so fucking fail.

And holy fucking shit, is NetBSD fucking fail.

(though this shit hardware is probably mostly to blame).

I’ve ranted about it before, but pkgsrc is fucking terrible. I’ve dealt with its FreeBSD incarnation in the past (the code is fucking horrendous) and the NetBSD shit is even worse. There’s no fucking debugging output anywhere. -v isn’t the switch for actual non-silent operation, it’s for remote package fetching (GET IT?! JESUS FUCK). The entire pkg_add “application” is more-or-less one long FTP SCRIPT (did you know you can script FTP sessions?). There’s no real way to get the list of dependencies for a given package. pkg_add will grab the package, build it, then grab dependencies. There’s no way to pre-fetch everything then install.

And good luck installing anything with remotely complicated dependencies (ie, firefox3) — your FTP connection will time out before it finishes figuring out what it needs to download next. And the fucking thing isn’t smart enough to fucking re-open a FTP connection (“OH JESUS NOT ENOUGH CONTROL CONNECTIONS LET I’M JUST GOING TO HANG HERE UNTIL ^C^C^C^C^C). Granted, half the time when it finishes *successfully* it just hangs there waiting for a SIGTERM. Stupid piece of shit.

I need to recompile the NetBSD kernel (with some added patches) but their build system is so fucking fucked up. Instead of just using make like any sane godforsaken OS they have a which does everything for you. Except, to build the kernel you also need all the userland bullshit source too. GO FIGURE MY 4GB HDD CAN’T HOLD THE USERLAND SHIT. So I’m going to end up cross-compiling the fucking kernel if I don’t throw this shit into the goddamn trash can.

Fucking hardware can barely keep up with what I’m typing (fucking firefox3 is fucking pig disgusting).

When is my next goddamn paycheck.


PHP Unserialization in Python, and the Mysterious str.partition

July 08th, 2009 | Category: Random

At work we’re migrating our content to a Drupal install (it’s better than the ColdFusion piece of shit currently running). Since the interface is a piece of shit and the language is a piece of shit, I find myself doing a lot of things with Python, directly manipulating the database. Which means I effectively have ended up writing my own ORM layer for it.

Drupal, like many shit PHP “applications” stores serialized blobs of data in the database. To marshal the data back and forth they use PHP’s built-in functions which use an obtuse plaintext format (rather than say, JSON, though arguably it’s for historical reasons). Anyway so I found myself needing to unserialize this shit in Python and didn’t want to code my own. So I did what any time-starved person would do and Googled for existing code.

The results were laughably bad. This one goes as far as using a fucking regex-based parser. They’re all horribly long and convoluted with absolutely massive functions which completely mask any scent of structure.

I think the grossest thing though, is that each of them (including the one on PyPI I found later, which is based off the first link above) goes through each individual character in the string looking for an instance of a specific character. They’re effectively implementing strchr, and in a very shitty way.

Python doesn’t have a strchr, but it has str.partition which is an even more useful. I can’t fatholm why none of the fucking implementations used it when it makes the code much cleaner, faster (presumably, as a built-in it’s implemented with strchr in CPython) and more concise.

Anyway tl;dr internet is filled with shit code so I wrote my own (edit: relink) which, although completely undocumented isn’t a massive fucking bloatfest.



FDC – Cheap, but Shit

June 15th, 2009 | Category: Random

I bought a new server at FDC’s Denver data center yesterday and it finally got set up this morning (lol phone call verification etc). Despite having it set up this morning, I still don’t have fucking root access and have nothing fucking set up. One of you apparently works at FDC and is trolling the living shit out of me.

The first thing I noticed when I got the account set up was that the machine didn’t have SSH running. So I filed a ticket and they turned it on pretty quickly, which was nice.

Then I noticed that their default user, admin, wasn’t in the wheel group.

8:30pm: Excellent, SSH is running fine and I can log in with the credentials found on the service detail page. However, the only credentials I have are for the ‘admin’ account and it isn’t in the wheel group (so I don’t have root access). Can’t do much of anything without root access.
– Taro

8:36pm: You wouldn’t be able to log in with root , log in with admin and switch to root with su command, password should be same as admin password.
– Denver Support

8:38pm: $ su
su: Sorry
$ groups

su only allows users in the ‘wheel’ group to become root. The ‘admin’ user isn’t currently in the ‘wheel’ group.
– Taro

9:02pm: Your user was created during install process it should be a member of wheel group, try sudo su to switch.
– Denver Support

9:11pm: > try sudo su to switch

sudo isn’t installed in the FreeBSD base system:

$ sudo
sudo: not found
$ which sudo || echo sudo not installed
sudo not installed

Once again, the admin user is *not* a member of the wheel group:

$ whoami
$ groups
$ grep wheel /etc/group

Please add the admin user to the ‘wheel’ group. Thanks.
– Taro




April 24th, 2009 | Category: Random

I just found this article on Kotaku which lightly discusses the use of the Nintendo DS as an education tool — having the students play Brain Age or write stories about their Nintendogs and stupid shit like that.

Don’t get me wrong — I think using a Nintendo DS (or other handheld technology) as an educative device is fucking great. I think trying to hack a curriculum around existing games is fucking stupid.

The technology should incorporate into the existing curriculum. I remember learning multiplication tables — every day we’d have a 10-question quiz where you had 30 seconds to complete a bunch of simple multiplication problems. The teacher would then go through them and mark each sheet and record all the results.

It’s a really dead-simple use-case: write an NDS application which allows the student to authenticate and take the test on the hardware during the test period instead of taking notes on a piece of paper. This has a shitload of advantages over the low-tech version –

  • Math questions can be randomly generated based on a set of rules to prevent cheating (everyone has a slightly different set of questions).
  • Tests can be immediately and automatically scored to save time and improve turnaround and accuracy.
  • Questions, answers and results can be stored in a centralized database for statistics and analysis on a large-scale.

Maybe it’s just because I’m a programmer and something like this would be dead-easy to do (but incredibly costly for an educational institution), but my god. Seriously.

Comments are off for this post


March 25th, 2009 | Category: Random


So I’m sitting at my desk this morning setting up ezjail on a machine that I just wiped Fedora Core off of when one of my semi/non-technical colleagues comes up behind me with a question: “what happened to the uploaded blog files?”

After some digging around, I finally figured out that when we switched from over 9000 unmaintained WordPress instances to a single centralized multi-user WordPress instance I had kept all of the old uploads in the same place (so no links broke) while letting MUWP put all the new uploads in separate directories for each blog. So I whipped him up a directory with a bunch of symlinks pointing to all the data so he could see all of it.

His next question was “where is all the text data”. I just kind of stared at him for a minute, trying to figure out what the fuck he’s trying to do. After a barrage of questions, I finally get out of him that he’s trying to get the excerpts of the most recent posts to put a newsletter together or some shit like that. I decide “FUCK IT I’M JUST WAITING FOR NAGIOS TO FUCKING COMPILE ANYWAY”, grab the HTML template off him and write a quick Python script to generate the gross HTML newsletter.

I talk to him later about it “hey you got my email you’re all set now right?” and he can’t fucking figure out what to do with it. He can’t figure out what the fuck he’s supposed to do at all. Seriously, it pissed me off so much — I don’t know what the fuck he’s supposed to be doing, and he comes to me like I can somehow magically make his mysterious work come together when he can’t even explain what the high-level tasks are.

From my discernment, they’re simply

  1. Make all the recent posts publically visible (ie, click some buttons on the web form).
  2. Mail the email I generated to a mailing list.

I asked him if that’s what needed to be done and he was like “I don’t know.”

This guy’s worked here for fucking like 25 years and doesn’t have a fucking clue. SERIOUSLY I CAN’T DO YOUR FUCKING JOB FOR YOU IF YOU CAN’T EVEN EXPLAIN TO ME WHAT YOUR GODDAMN JOB IS MOTHERFUCK.

As an unrelated aside, this is some expert-level trolling. It almost got me.

1 comment

Next Page »