< | >

Hacker's Diary

A rough account of what I did with Emacs recently.

June 30
Fiddled around with the BBDB FAQ a little, and looked at some of the TODO list stuff. No fixes, though.

June 29
Quiet day, after the hectic activites of the last two.

Drinks in the evening with folk from my old workplace, which was fun.

June 28
Busy office day. Again.

Hacked at BBDB a little, since I've about 280 messages in my BBDB folder that need looking at. Some of them have been there for quite a while, too.

June 27
Yikes. Why do things blow up when the relevant people aren't around?

Leopardstown Racecourse's "Executive Suites" are incredibly naff.

June 26
Simple illustration of why Internet Explorer is currently a better browser than Mozilla or Netscape (Navig|Communic)ator: Create a table with 34,000 rows, for example by accidentally querying a very big table in a JSP page. Feed the results to the above browsers. IE blinks, loads and renders the page, and lets you whiz up and down. The two lizards die horribly - Mozilla hangs, without redrawing the screen (where have I mentioned that one before...) and Netscape simply stops coping at about 3.4MB downloaded. End of story.

June 25
Build a new 2.4.5 kernel for Klortho since I seem to have lost the old config, or messed it up or something.

June 24
Where do you go to find out why Slashdot is down?

Plugged the jukebox into the sound processor. Mmmm, tasty.

June 23
Fixed up TheRegister in snorq. It's still not right, though. Damn Javascript. Also frobbed the wwwupdate script to update the CD list on my music page. After all, if I'm going to provide you with unnecessary information, I should at least make sure it's up to date. Today's additions are Utah Saints, Bran Van 3000, Boris Dlugosch and the Jungle Brothers.

For fun, here's the Perl that does the update (pan right to get the whole effect!):
${PERL} -i -p -e 'BEGIN{$/ = undef; $list = ""; opendir( CDDBDIR,"$ENV{\"HOME\"}/.cddb" ); @files = grep !/^\.\.?$/, readdir( CDDBDIR ); close( CDDBDIR ); for my $f ( @files ) { open( CDDBFILE, "<$ENV{\"HOME\"}/.cddb/$f" ); while( $x = <CDDBFILE> ) { if ( $x =~ m/.*DTITLE=(.*?)\n.*/ ) { push @titles, "$1"; last; }}}} $list = join( "<br/>\n", sort @titles ) . "<br/><br/>\n" . ($#titles + 1) . " CDs in the jukebox.<br/>\n"; s|(<!-- start list -->).*(<!-- end list -->)|$1${list}$2|s;' ~/public_html/music/index.html
Yes, I know, the last in there is unnecessary, or I should undef $/ after I've built the list.

June 22
Ow. Hangover. Ow Ow Ow. Spent the hung-over morning trying to persuade Oracle Developer and some other random Oracle software to coexist peacefully on my machine. Eventually, I managed to get Developer onto the machine, and after a few head-scratching hand-edits of the tnsnames.ora file got to the point of what I had been trying to do. Flushed with success, I went off to lunch and came back to the office to discover my DVD toys had arrived. So you can guess how I spent my evening...

June 21
Went beerfesting with office folk after work, which entailed me staying in Arklow for the night.

June 20
Did some offline (i.e. non-live) work on the GPS toy. I've given up on the map-stitching in favour of simply panning the view to the current map and discarding the previous one. This works remarkably well, as it happens.

Modified snorq to add a few more pages. TheRegister isn't quite working yet, though.

June 19
Managed to get the mapping toy hooked up to live NMEA output, then drove to the office with the laptop in the passenger footwell to try it out. Alas, I'd futzed the conversion from NMEA to latitude/longitude so it was doing something in the order of 5-mile jumps from one plot to the next.

After some fiddling about with the online ordering system (and then with the phone support) at Scan, I finally managed to place an order for a rather tasty DVD player with surround sound processor and speakers in one of their Today Only specials. Impulse shopping, even if it did take me the best part of 24 hours to get my order registered properly with them...

the sound processor

the DVD player

June 18
Kids, always regression-test your code before telling someone it works.

The following are a selection of the choice comments from some Java stuff I'm hacking on lately. Click on 'em for a pop-up explanation.

Vector vrEntityType = new Vector(); // Java blows goats, AGAIN.

TextField txDocumentRef = new TextField( 16 ); // MAGIC (see database)

while ( m.isVisible()) { // GROSS.

// NB this will throw back to the caller if it borks.


// Trying to do this right, so it doesn't need a parent window. Who
// at JavaSoft comes up with this crap?

filename = filename + "0"; // zero padding. I miss sprintf.


// These should really be (a) in a separate class (b) provided by
// Java (c) faster

// This is kinda disgusting

Tooled around with the GPS maptoy some more. The MapQuest maps don't line up either, although they do come close enough to be infuriating. I'm thinking of modifying my alignment function to make a stab at alignment, then do a comparison on the overlapped regions to see how good a fit it is.

You know, by this point you'd think I'd just go and buy some mapping software. But that's no fun.

Hacked at PPTP a little to see if I could get a tunnel to work set up. Then discovered that it wasn't working under Windows, so no fun there.

Hacked snorq again to get around Debian's wonderful packaging requirements. pngtopnm is out in a package of its own, and anytopnm doesn't understand PNG files. What LOSERS.

June 17
Hacked together a piece of Perl that'd try and pull an appropriate MapBlast image for a given GPS location, with caching, and bolted some Tk onto it for display. And lo and behold, the maps don't appear to line up. Bizarre. Also, Tk crashes after loading about 25 640x450 images. I should probably look at maybe using GD to splice them together, or presenting a rolling window with slices taken from maps or something. After some messing about with xview and a bunch of images I'd downloaded, it appears that the X scaling is fine, but the Y scaling is all messed up. Hrm.

Abandoned MapBlast in favour of the trickier-to-deal-with MapQuest, and eventually turned out a module to pull exactly the same stuff as MapBlast was giving me. MapQuest maps seem to line up a little better, though. Modified it further to produce transparent maps, since I've never been able to get the raise() method of Canvas to do anything other than tell me I'm not dealing with a window. Is it just me, or are these methods completely broken?

Sometime around eight o'clock, the whole net appeared to go down the toilet. Looks like it might be problems at BBN, but then again I'm not a network engineer, so...

June 16
Borken fonts fixed. For some reason, the xfs config file didn't include the 75dpi and 100dpi directories.

Turns out the hacks for the CardPhone are already in the pcmcia-cs distribution, so it was pretty much plug in and go. I haven't tested a PPP link over it yet, but I'll get around to it, I'm sure. I'd like to find out how Windows manages to negotiate entry of your PIN, since at the moment I have to just deactivate the PIN request.

Installed Xine, grabbed a CSS-capable DVD plugin, and whoosh, proper DVD support. Thank you, OMS, and goodbye. Once I installed the ati.2 drivers from LinuxVideo.org, the dropped frames went down to zero. This is WELL impressive. It doesn't appear to have scaling, but heck, I don't actually need that. I wonder if I can hack it to display on the root window... the virtual root window, so that I get "always-on" DVD, or a DVD screensaver. Hee. That would be rather demented.

June 15
Fiddled around with Oracle Discoverer a bit. It's a "data mining" tool; it'd probably be far easier for me to figure out how useful it might be if I knew what the hell data I was looking at in the database.

Made VM yank HTML-formatted emails correctly when replying. Damn you, Bill Gates, for making this a necessity.

June 14
Rebooted back to Linux, and argh. My X fonts are all busted again. Thank you RedHat. Emacs wouldn't even start until I removed the font spec from its app-defaults file. What sort of moronic behaviour is that, exactly? Investigation of the fonts problem reveals there to be a complete lack of dec fonts, and Times is being provided by urw for some reason. Thing is, I can see the dec fonts in the filesystem, so it's evidently some sort of xfs screwup.

Got stuck in the office until 10pm.

June 13
Bob dropped over a Nokia Cardphone 2.0 for my geeking pleasure. It comes with some Windows software which he couldn't find the disk for, so I downloaded the 12MB installer from the website and set it up; rebooted Windows (surprise surprise) and plugged in the card.

- Nokia CardPhone 2.0 _ [] X
Some vital files are damaged.
Please reinstall the software.

Ummm. Right. Reinstalled the software, rebooted, same thing. Ignored the warning messages and tried the damn thing anyway, and lo, it works. Neat, modulo the error messages. It's apparently capable of 43k down/14k up, but according to Dial-Up Networking it was running at 28.8k, so I've no idea what to believe.

I've not yet set up the Linux end of it, but there's a web page detailing "Nokia Cardphone 2.0 Linux Support" which looks pretty straightforward, although it does require a kernel rebuild. Once I've got this working, I should be able to do something silly involving my eTrex GPS toy and one of the mapping sites that understands lat./long. - both MapQuest and MapBlast do, but the latter is more useful in that the latitude and longitude are actually present in a URL rather than being part of a POST operation.

I finally finished updating Klortho to RedHat 7.1; now I need to clean up all these rpmsave, rpmnew and rpmorig files.

Rebooted over to Windows and watched all of Dogma on DVD, so it appears that the DVD stuff is healthy. Must be something to do with unpatched vs. patched Windows, I guess.

June 12
Trying to get Perl's Oracle support working today. Eventually got it compiled and did make test, and then it wouldn't work, so I beat it about some more and finally it all worked. If, of course, I'd read the documentation...

June 11
Fiddled around with VM some, and made it do a sort of "delete messages on server when I delete them locally" thing. Really, though, the whole area of POP support should be rewritten to use sentinels and the like.

June 10
Poked at the laptop some more, cleaning things up mostly and integrating my freshly-ripped MP3 files into Gronk. Still can't get IrDA on Linux back to the level of operation I used have it at, bah.

June 9
Helped a friend move house, then futzed around with the laptop for the rest of the day. I've got some CD ripping to catch up on!

Put cddb-mode.el on the Emacs hacks page, and made a fix to snorq that stops it from crashing Mozilla 0.9..

Went back to work on BBDB now that I can no longer use the excuse that my laptop's unworking. Fixed some XEmacs vs. Emacs brokenness, and started on some user-requested stuff. In the process, uncovered a bug in the display handling for addresses. I have a scary TODO file in my BBDB directory that just keeps getting bigger. Aie!

June 8
Laptop returned, with a snotty note saying that the IrDA port wasn't busted last time, either. That's not what the last service report said. Set about restoring everything. Noticed that my returned, serviced, tested laptop had two devices listed under IrDA ports, so removed both and reconfigured IrDA from scratch. It wouldn't play a full DVD, either; I hope that clears up once my original Windows install with all patches, etc. is back.

Spent another entertaining few hours getting things back on the laptop. Despite another snotty comment on the service report about the hard drive capacity, this one is definitely smaller. I squeezed the Windows partition some to make sure the Linux partition had plenty room.

Factoid: RedHat Linux 6.1's smallest install needs 140+ MEGABYTES of disk. That's with no compiler, no X, in fact, that's deselecting everything in the damn selectable list. The very first Linux system I ran fitted into 70 MB (plus a 10MB swap partition) and included both X and gcc. Guys, what the HELL are you doing?

June 7
Waited - in vain - for laptop to be delivered.

June 6
Oh the humanity. The Compaq guys say the laptop is simply suffering from an IRQ conflict. And here was I thinking that (a) such things didn't happen any more, and (b) a from-scratch reinstall using the officially sanctioned disk would avoid such nonsense. I'm bowing my head in shame, or something.

June 5
Sent the laptop back. I'm mostly concerned that if it's a leaky battery again, it'll trash the machine sooner or later.

June 4
Aha. When doing restore, use the same version as you used to do the dump in the first place. I've got my laptop back more-or-less in order (when did I disable APM support in the kernel?) on the Linux side, and the Windows side is restored but currently non-booting (Windows gets a mite upset when you move hidden files around) so I may need to do a full reinstall on that. No great loss; I may well squeeze the Windows partition some to make more room for Linux.

WELL. That's just special. After finally getting all the bits more or less back in place, the IrDA port on the laptop stopped working again. You know, exactly the fault that caused me to send my laptop away for three weeks in the first place? GAAAAAAH. So now I'm trying to decide if I want a working IrDA port badly enough to do without the laptop for another three weeks.

June 3
Dinked around with the restore some more. It's a bit unnerving to have 4GB of data that doesn't want to get back on the disk. It's not helped by the fact that they replaced the harddrive in the laptop with a slightly smaller one (couple of hundred MB, I think) so the restore doesn't quite fit.

June 2
Had a go at restoring the laptop. RedHat 6.1 installs really really quickly if you do a custom install and throw away about 90% of what it suggests. The restore didn't go quite properly, so I spent the rest of day watching movies.

June 1
Finished the rough-cut version of the image viewer, applet stylee, and found it to be signficantly faster than the JSP stuff, but still a bit of a dog. So now I have to figure out how to optimize flipping a large image, in Java. Actually, I think the words "optimize" and "Java" are mutually incompatible.

previous month | current month | next month

Irish Summer: the rain's warm.