Archive for the ‘Geekery’ Category
It never fails that when on “FAA Data Reload Day” (which occurs every 56 days on the ICAO cycle), I manage to screw something up and end up staying up late. It doesn’t matter how early I start.
Today’s screw up was after loading the data, I realized that I’d done something wrong, and needed to restore the database to the state it was before I started the load. For reasons too complicated to go into here, I load the data on my home Linux box, and then scp it up to my colo box where the web site lives. The database that lives on my home box doesn’t have all the same tables as the one on my colo box, just the tables that are important to data loading.
So, I thought, the easiest way to get back to the data as it was before the data load is to upload the script I use to export the appropriate tables on the home box to the colo box, run it there, copy the file back to the home box and load it. Except after I loaded it, I noticed a distinct lack of data on my home box. As a matter of fact, it appears that the load went way too fast, like it had no data at all. A quick look at the export file confirmed that there wasn’t any data in it, just some table deletion and creation stuff. Oh oh.
That’s when I realized that one of the consequences of having different versions of PostgreSQL on the two boxes was that “pg_dump … -t waypoint -t comm_freqs -t runway…” works on my home box, but not on the colo. Not thinking too straight, I then used a ‘for table in …” command to run pg_dump on each table individually. When I copied them home, I discovered that this messed up the foreign keys rather badly. So I tried to manually stitch all the files together. That wasn’t working very well, because I had things in the wrong order and the foreign key stuff still wasn’t right.
That’s when it suddenly hit me. Duh. The whole reason I have an external drive on my machine is so that I can do hourly rsync backups. I have a copy of the postgis.dump file that I copied over 56 days ago. As a matter of fact, I have dozens of copies of it. The only reason I was avoiding it was because I had done a few small manual modifications to the database since then. But those were still in the history buffer of psql, and so they were easy to reproduce. I restored the backup, made the changes at around 10:45, ran the updates again, and now here it is at 11:30 and everything is finally done.
I just hope this doesn’t happen again in 56 days, although I’m sure it will.
Found this on StackOverflow:
I’m not sure if I pissed off somebody or what, but I’ve lost 80 reputation points in the last 10 minutes. I wonder what’s going on?
Is there any way to make Eclipse start up with the ‘Problems’ tab set to ‘Group by’ set to ‘Type’?
Oh man, it’s too bad my pay just went down a big chunk and I’ve had to swear off the impulse purchases. Because I just got my hands on my first G1 phone, and I like it. A lot. Not as sweet as a iPhone, but I love the keyboard and the fact that it has cut and paste. Unfortunately T-Mobile’s 3G network is pretty sparse compared to AT&T’s. And there aren’t as many cool apps for the G1 phone. Maybe that’s the incentive I need to wait for version 2 of the phone. Yeah, that’s it. I’m not stuck with my outmoded and obsolete Treo, I’m waiting for version 2.
I’m at the Ontario Linux Fest in Toronto right now. I thought people would look at me funny for Mac OS X on my laptop instead of some version of Linux. There are about 5 people here with Mac laptops, but several of them are running Linux on them, but the talk I just went to was done by a guy with a MacBook Air running Mac OS X.
You know, it struck me that it’s a good thing I’ve still got my Treo phone, because as a Prius driving, MacBook Pro using Obama supporter, having an iPhone would probably drive me through my personal Schwartzchild radius and compress me into a black hole of pretentiousness.
My impending job change has me stressed out so much that I’m having trouble sleeping. But maybe I’m letting it get to me more than I should. Today I used the word “asshat” in a problem report resolution. Mind you, I was referring to whoever at Sun is responsible for changing the name of the Java Runtime Engine from jre to j2re and then back to jre (and a whole bunch of other gratuitous naming convention and numbering scheme changes), so it’s a very appropriate adjective, but in retrospect I don’t think my cow orkers would quite understand my sentiment.
I start work at Paychex in a couple of weeks, and one of the things that came up in the interview was that they do J2EE/EJB/JSP on JBoss, something which I’ve never done before. Since I don’t want to appear like a doofus when I get there, I started reading up on them, and discovered that J2EE has changed significantly between J2EE 1.4 and JEE 5 (yes, another one of Sun’s stupid-ass switcheroos in the naming convention - JEE 5 actually is the version right after J2EE 1.4), and I didn’t want to study the wrong one. So I asked Sally at Adecco, my recruiter, for the email address of somebody technical at Paychex I could ask. And being a recruiter, of course instead of giving me an email address, she gave me a phone number, without telling me whose number it was.
So I called it, and got a very irate Head of IT. Irate because I called him, irate because I couldn’t remember who had interviewed me, irate because I didn’t know who I’d be working for, and just generally irate. I apologized and said I’d get my recruiter to give me a more appropriate phone number, but he said he’d get somebody to call me, and he sounded even more irate as he said so. So I’m really winning friends and influencing people there before I start. So thanks a lot, Sally, once again Adecco has managed to fuck up my life.
I just noticed that the upstairs TiVo hasn’t recorded anything since Tuesday, not even the manual recordings of the Daily Show. I tried rebooting it, and the “ToDo List” still shows “No shows pending” for every entry in the Season Pass list, even the manual recordings. So now I’ve got a call into tech support, which at 6pm on a Friday, I’m not expecting a quick callback.
Update: an hour after rebooting, the ToDo List has finally been populated.
If you’re a software developer, this is hilarious. The rest of you can go read lolcats or something.
Is it just me, or is Stack Overflow no longer updating the count of how many reputation points you have? Mine hasn’t gone up in the last four hours, even though I’ve gotten two “Nice Answer” badges in that time. Just for an experiment, I tried voting up a couple of answers by Kris Johnson, and his count didn’t go up either.
Update It appears that it’s stopped giving me more XP because I’ve already gotten 200 on the day. And the fact that I’ve been averaging fewer than 50 a day since last Friday, when I’d been up over 100 a day before that, doesn’t mean I can accumulate more. Damn level caps.
Update Today on StackOverflow, as well as hitting my XP cap, I earned 4 “Nice Answer” bronze badges, a silver “Enlightened” and a silver “Good Answer”. Today I was on fire.
One of my side duties at work is preparing a disk that (ab)uses our upgrade process to flash the bios on the raid controllers every time IBM releases yet another attempt to make it work right. In the past, what I’ve had to do is make a RPM that installs a couple of “.ufi” files that the %post part of the RPM then uses the arcconf program that’s already on the system to flash the ROMs with. That was fine and dandy, until IBM decided that instead of distributing a ufi file, they’d distribute an ELF binary that included within it the ufi file, the arcconf program, and some other cruft like a script to run it and instructions. Fine, I thought, rather than bothering to unravel all the crap, I’d just package the executable into the RPM and run it in the %post. And it didn’t work. After much sweating and swearing, I finally got it working.
Did you know that the rpmbuild process automatically does a “strip” on any ELF binaries it finds? I didn’t. Did you know that IBM’s packaging of a binary file inside an ELF binary doesn’t work if you strip the file? I didn’t. Did you know that the command to tell rpmbuild to NOT strip the file is almost completely undocumented and obscure to the point of pointlessness? I didn’t. Did you know that the best reference for building RPMs, “Maximum RPM” is no longer available on rpm.org, and the replacement doesn’t have an index or a search function? I didn’t.
Am I annoyed? You bet.
For the benefit of future searchers, here’s how you keep RPM from stripping your binaries. You put the following in your rpm spec file, preferably near the top:
# This stops RPM from stripping the .bin files, which breaks them.
%define __os_install_post \
/usr/lib/rpm/redhat/brp-compress \
/usr/lib/rpm/brp-python-bytecompile \
/usr/lib/rpm/redhat/brp-java-repack-jars \
%{nil}
Intuitive, eh?
Let’s see, today I
- Fixed a bug that I’ve been working on for over a week (which I would have fixed in a day if the China team hadn’t put in a kluge to hide the most visible symptom). Oh, and the root cause was a module that the China team had written violating a basic assumption of my pre-existing gui code.
- Had a job interview at Paychex which went pretty well, but included a strange little math test at the end which was fun but I’m not sure how relevant it is.
- Went for a paddle - I meant to make six miles, but I only managed four because my shoulder is bugging me.
- Got a call from the sleep clinic at Sleep Insights “reminding” me that I had a consult appointment at 11:20 am tomorrow, which is kind of strange because I had a sleep study at a completely different sleep clinic tomorrow evening.
I thought about writing more on each of those things, but I figured my blog is boring enough without the help. So if you really need more details, comment and I’ll inflict more detail on you.


