The random rantings of a concerned programmer.

Archive for May, 2008

no desu, you are the retards

May 29th, 2008 | Category: Random

I swear I do some fucking retarded shit sometimes. Actually, most of the shit I do is retarded.

I actually acted on yesterday’s whims and brought that machine into work this evening after almost everyone had left. I snuggled it into the dark recesses underneath my desk (which was converted to a desk from what looks like an old storage place for random hardware no one was using). I plugged it in, powered it up, and logged in.

And then it beeped a couple times and shut down.

“What the fuck?” I ask myself. I figured it was the old UPS I plugged it into acting up, so I switched it over to a different UPS. Again, I power it up, log in, and it starts beeping and powers off again. Wasn’t the fucking UPS.

At this point I start to get a bit panicked, so I pull the case out and open it up. Guess what fucked up? The goddamn heatsink managed to unmount itself, and the fucking chip was overheating. My fucking shiny new Q6600 was being subjected to fucking excess heat because the godforsaken LGA775 heatsinks don’t mount for a farthing worth’s bottle of rancid piss.

If you’re not familiar with the LGA775 heatsinks, they’re much unlike the old ones that I’m used to. Instead of clamping onto the socket, there are 4 holes around the socket which they clamp into. You literally have to put your whole weight on each of those 4 little fuckers and rotate them 90 degrees and hope to fucking hell they fucking lock in because if one of them doesn’t then you won’t know until 3 months later when you move the machine and it pops out and then the rest of the little fuckers pop out and oh shit beep beep hear that that’s the sound of your several-hundred-dollar CPU burning itself in the oven.

I hear they mount a lot more easily if you put it on before mounting the board in the case. Still a royal pain in the ass.

Anyway, I didn’t have any thermal paste on me but I unplugged everything and remounted the fucker anyway. I’m normally pretty liberal with the shit so I figure there was enough left on there to get the job done. I then plug everything back in and try to power the machine back on.

The CPU fan spins up, then turns off. I press the button again. The CPU fan spins up, then the machine turns off.

It took me about half an hour of internetting to realize that, fuck, I’d forgotten to plug the goddamn 12V rail back in. So I plugged it back in and now everything’s working like a charm again. There were a couple other bumps (like forgetting that my .cshrc that I copied to it set the http_proxy variable, thus breaking fucking everything).

And then John was a zombie.


4scrape — Everything is for Porn

May 28th, 2008 | Category: Random

I showed my 4chan scraper/archiver thing to some friends last night, and they somehow convinced me to add /s/, /hc/ and /d/ to the boards to scrape. What originally started as an experiment to see how many posts on /w/ actually were reposts (results: all of them are) has somehow turned into a growing collection of pornographic images.

This goddamn thing weighs in at 47,000 images across 69,000 posts and scrapes the roughly 1,700 new posts generated each day on the boards it tracks. It consumes 18GB of disk space, roughly 2% of the space currently allocated for it.

On the whole though, the codebase badly needs to be revamped; the scraper is a collection of independent bulky scripts strewn together haphazardly which fetch the threads, insert them into the shitty MySQL backend and perform various image processing operations on them.

Sadly enough, the only place I have to host this thing is my home connection. I’m debating whether or not I should smuggle it into work and try to hide it on their connection (“hide”, meaning forcing SSL and banning the IP range that we use, locking down the machine and serving off an encrypted drive volume), but getting caught serving what is essentially a porn site would probably mean the loss of my job.

I really wish I could afford the $750/month that a co-located half-rack costs. Peh.

EDIT: The latest version of 4scrape (only scraping /w/ and /wg/) can be found at



May 27th, 2008 | Category: Random

Fuck, I accidentally deleted a real post in the mess of spam that gets hammered. Sorry about that, I guess I’m a bit trigger-happy with the “DELETE ALL” button.

I came into work in the morning and, after ingesting a nutella-laden piece of potato bread, started ticking things off my to-do list. The data selections need to be ordered into columns, not rows, there should be breadcrumb links, options to order the final results by values instead of just location, etc. Unfortunately, the entire thing is instead spitting out

Mysql::Error: Got error 28 from storage engine: SHOW FIELDS FROM reports

Which was caused by something fairly obvious –

Filesystem            Size  Used Avail Use% Mounted on
                      224G  212G     0 100% /

Now, in FreeBSD this wouldn’t be a serious problem. I could just allocate a memory-backed filesystem with mdmfs, then union that over the filesystem that MySQL is attempting to write to (probably /tmp or /var). Unfortunately, Linux doesn’t include features like unionfs in it’s base distribution (at least, Fedora Core, the distro we’re using for our servers, doesn’t). And needless to say, I don’t want to start deleting random shit on a server I’m not overly familiar with.

The whole problem is aggravated by the fact that the traditional “use a separate partition for most of the base directories” was ignored when they set up this machine, so something filled up the entire disk and is making a general mess of things.

I almost prefer the rogue spinlocking Java processes that pop up every now and then. Honestly, it’s scary how poorly our department’s dev server is run, and we have no one to blame but ourselves.

Comments are off for this post


May 26th, 2008 | Category: Random

I’m bored as fuck — another weekend where I’m left wanting to start the work week again so I can actually have something to do. As an added bonus, I’ll be getting my first paycheck this week, so there will be hookers and blackjack towards the end hooray. I guess the secret to enjoying your job really is having a hobby that’s even worse.

And I’d call a weekend spent implementing and debugging a red-black tree implementation to use as a priority queue for A* pathfinding (and some other shit for that DF clone) is pretty goddamn boring.

I need a girlfriend, and/or non-computer related hobbies, I think. Fuck.

On an unrelated note, if anyone has any ideas about how to organize a couple dozen motherboards, piles of PCI cards and old untested HDDs in addition to a couple overflowing boxes of random cables and related electronic rubbish, I’m all eyes and ears. It’s all stacked up and littered around what little shelving I have; I really should get around to buying some more lumber and building more shelving. And/or a desk. Fuck I need a desk.

Comments are off for this post


May 24th, 2008 | Category: Random

I briefly mentioned the project I worked on all last week. They had me rewriting this census viewer which was in a sick combination of PHP/Perl with data strewn between a couple 1000+ column MySQL tables and some raw SPSS data files.

Despite the new version being written in Ruby on Fails, it’s reasonably fast considering the shit quality of the server it’s running on and the size of the datasets it’s packing. I wrote a series of Python scripts to pull the data from the many differently-formatted sources to throw it into a uniform MySQL database with a sane schema. It was really painful, because ingesting all of the data takes 4-6 hours (depending on how many rogue processes are spinlocking on the machine). Hell, purging the data (DROP DATABASE) when I fucked up an ingestor took 2 hours at one point.

The table which stored all of the converted data had 7 columns, and weighed in at 5.7 million rows. This, while not exceeding the limits of MySQL holy shit there’s a fucking giant bee right next to my face and I’m trapped next to my goddamn desk oh thank heavens it flew away oh jesus it’s coming bac–

Shit I don’t know where that fucker went.

Anyway, 5.7 million rows was slow as fuck so tl;dr broke it up a bit more did a lot of caching etc and now the goddamn thing works and serves out 20 years worth of census data hooray.

In the meanwhile, I started hacking away at a Dwarf Fortress clone because holy shit he’s never gonna fucking release the source or port it to *nix and it runs slow as shit through Wine and I might as well write my own.

Finally, I put a Google analytics script in the page footer since every other page and their mom is doing it too. If you don’t want to be tracked by Google, please consider installing NoScript which is possibly the few real reasons to use that bloated piece of shit Firefox.

Comments are off for this post

Next Page »