Hacker's Diary
     A rough account of I did with Emacs recently.
     
  - February 28
 
  - Finally built x0rfbserver, a VNC
    server for X that exports the running desktop in the same way as
    VNC for Windows and Mac does.
    
    Mulholland Drive
    is more slightly off-kilter material set to a score by Angelo
    Badalamenti, which is pretty much what you'd expect from a David
    Lynch movie. I'm not sure I enjoyed it, but I'm not sure I
    disliked it either. Also, the user comment on the IMDB page that I read, by one Joel
    Mesa from Miami, Florida, just goes to show you what happens when
    your national educational system is left go down the toilet in
    favour of commercial interests.
 
  - February 27
 
  - Also, I blew away my X server. That wasn't fun.
    
    Tooling with the camera again, discovered some doco that claims I
    should be able to get a 640x480 still image off it. Damned if I
    can figure out how. While tooling about with it, discovered a bug
    in the driver code that prevented this from happening, but the
    camera still didn't want to play even after I'd fixed that. Back
    to implementing V4L1 ioctls, I think.
 
  - February 26
 
  - More tooling with Snafooz
    pieces; I figured out a better way to draw them (uses just enough
    quads, basically) but I still need to figure out how to texture
    them properly.
 
  - February 25
 
  - Used jwz's lightlab hack to figure
    out that my Snafooz models
    were actually broken in several ways, and not just in the one
    really obvious way. Fixed the minor problems and am now faced with
    deciding how to solve the major one. Probably need to do one of
    those crumples paper into ball, tosses into pile surrounding,
    but not actually in, dustbin movements.
 
  - February 24
 
  - Work was fun today, for values of fun meaning KILL KILL DIE DIE
    WINDOWS
    NT. Eccch.
    
Found a pretty good reference on IEEE1284
    but I'm not sure if the Linux
    implementation or my crap-o-cam is at fault, and I've other things
    concerning me, such as doing the Micromail update I neglected
    to do at the weekend - oops!
 
  - February 23
 
  - Finally started fixing up the busted CDDB files from the great rm
    -rf incident that wiped out a bunch of them. In doing so I am
    recognising again the amount of sheer crap that goes into CDDB files: spelling errors,
    transcription errors, entire sets of lyrics (hello, exposing
    FreeDB to copyright infringement?), arbitrary capitalisation,
    completely arbitrary use of "featuring...", random
    data-track labelling, extraneous disc information that should be
    in the EXTD field, track numbers (hello, the spec doesn't provide
    much, but track numbers are one of the few things it does
    provide), arbitrary labelling of discs in a multi-disc set,
    arbitrary labelling of singles, free interpretations of track
    names on singles (hint: it's generally "Track Name (Remix
    Designation)"), free interpretations of band names (Apollo
    Four Forty vs. Apollo 440, for example; computers are dumb, don't
    confuse them further), junk in the EXTD field ("NA"?
    couldn't you just leave it blank, like you're supposed
    to?)... suffice to say that about 95% of the files I downloaded to
    replace the missing ones need to be hand-edited to repair them. I
    could probably write something to reconstruct the files from Gronk's jukebox pages;
    however, doing it by hand I get to make sure I haven't
    made any silly errors in my original data collection.
    
    Spent a good half-an-hour prising apart my Siemens S45 to
    determine the cause of the single non-working button (assumed
    cause: beer got in the phone. Beyond that I have no idea.) and
    basically trashing the nice line of the casing because these
    things are supposed to be dismantled by trained monkeys with
    special monkey-oriented prising tools, as opposed to me and
    whichever screwdrivers I can prise into the tiny gaps afforded to
    me. In the course of dismantling I briefly thought that the SIM
    card holder might be a locking device of some sort, so I halfway
    prised that out before realising that no, it was just a piece of
    metal stuck to one half of the case. More anon. Were I a good
    little geek, I would have taken photos of the moment of truth when
    I finally got the two halves to separate, revealling a pretty
    crammed interior which I'd managed not to poke any screwdrivers
    into during the prising process. Having gotten it open, I
    inspected the keypad and discovered unidentifiable black goop on
    the back of the non-working key. I scraped it off with a
    convenient screwdriver and trusted that this would solve the
    problem, because I'd no easy way to test it without reassembling
    everything and pressing that one button. At this point I curiously
    inspected other parts of the case, and discovered that the phone
    appears to have one of those inertial charging devices built into
    it that converts the motion of the phone into a trickle-charge for
    the battery, which is neat. I'm not sure, mind; it's just my
    interpretation of the parts I found and their location in the
    phone. I reassembled the phone, and then discovered that I'd
    pretty much screwed up the SIM card holder. Whoopsy. I pressed it
    back into place, and with a little trial and error discovered that
    wedging half of another SIM card (yes, half) behind my own card
    makes it all work. This might well get rid of the occasional
    problem I was having where the phone would claim I had no SIM card
    in, too. Anyway, the phone is now back in working order, even if
    parts of the case around the seam look like they were assaulted by
    a three-year-old with a chisel.
    
    More classic CDDB entries:
    track titles in ALL CAPS, except for the album name which is
    included in every single track title. And it exceeded the CDDB spec's line-length limits,
    too, rather than wrapping the lines like it's supposed
    to.
    
    Welcome to the World of the Future:
    
      Due
      to problems with using backslashes on our Webpage, we cannot
      display the database-format specification directly
      here.
    Uh. Right.
    
    Added one more ghastly hack to the jukebox pile: a script to
    convert a Gronk HTML file
    back into the CDDB file that generated it. It's so fragile it'd
    probably break if I ran it on an album with strong bass. Still,
    between that, check-files.pl from the Gronk distribtuion, and cddb-mode.el I've
    reconstructed the files I was missing and cleaned up a bunch of
    typos and the like in the process.
 
  - February 22
 
  - Bob visited and stayed over last night, so I shut down the
    computer room to allow him sleep.
    
    Yes, yes. Food and beer, and a mild hangover.
    
    Brought everything back up this morning; minor weirdness with
    Blimp again and the video card that may or may not be present,
    apparently depending on the orientation of the box. No, really. I
    put a shiny new DHCPD onto Blimp while I was at it so that it does
    DDNS updates for my wireless network now. Woohoo! Also configured
    Gonzo
    to bring up a static route for the wireless network, which I'd
    been doing manually recently and had completely ignored in the
    beginning - I used NAT instead. Kinda silly not to use routing,
    really.
    
    Rented out Strange
    Days - on VHS, no less - only to discover I had seen
    it before, I'd just forgotten all the excellent lines in
    it. Mind you, that collection, with its typical IMDB quality-control on duplicates
    and typos, is missing one of the best quotes of the entire movie:
    when they're beating up Lenny, and Cindy comes up to punch him,
    one of the other thugs says, "We'd like to have gotten a
    smaller girl to kick your ass, but it was short
    notice!"
    
    Also rented out Blade
    2, which was entertaining, but nowhere near as much fun as the
    first one. I dunno why; it wasn't like I found it scarier or
    anything, it just seemed so much more serious. The DVD extras were
    pretty cool, and the director seems like a complete nutjob in a
    nice way.
    
    Rebuilding the parport module to enable debugging, because I can't
    really figure out why the 2.4 IEEE1284 init stuff is failing to
    initialize the PPC camera; it's virtually identical in the
    important places to the 2.2 code. I really don't want to have to
    custom-code this, and I'd really, really like to be able to
    replace all the crap in pport.c with actual IEEE1284
    function calls. Except I'll have to retain them for the 2.2
    driver, dammit.
    
    Finally made linkfarm-mode discard
    whitespace when looking for matches. It uses a function that I
    don't think is available in older emacsen, but to hell with
    backward compatibility.
    
    Hmm. Initialising with DEVICEID set trips over either an error in
    the camera's implementation or an error in ieee1284.c. Shutting
    off DEVICEID trips over errors further down. I may have to
    hand-hack this after all.
 
  - February 21
 
  - After another hour of poking, prodding, headscratching (why is
    it assumed you know which way around to connect the USB connector,
    anyway? It's completely unmarked on either the headers (1? 2? are
    those pin numbers, or port numbers?) and on the connectors!) and
    downright fear (wah! spark! box shut down! wah! *click* *click*
    phew, it's booting!), I finally got everything back up and
    running. I left one of the USB connectors disconnected because I
    can't figure out if it's supposed to go back-to-back or what. But
    that's okay, the only USB thing on the box is the ISDN TA, and
    that's working now. Yay!
    
    Yes, I did short something spectacularly enough to draw a
    spark. No, nothing appears to have been damaged.
    
    Oh, for the record, the "new" board is a FIC VA-503+,
    chosen mainly because it has enough old features to work with the
    bits from Gonzo's
    original board - K6-2 200 chip and AT power supply being the major
    details.
    
    Hacked up an elisp client for
    a new timesheety system at work. Learned how to put something in
    the modeline with an attached pop-up menu. Funky! I bet it doesn't
    work in XEmacs,
    though.
 
  - February 20
 
  - Set up SquirrelMail. Mmm,
    nutty.
    
    Hmm. Trying to figure out how to jumper up the new motherboard for
    Gonzo.
    Of course, I should have downloaded the docs before
    dismantling Gonzo,
    instead of spending ten minutes trying to hook Qaz up to the ISDN
    box.
    
    Whoops, accidentally overclocked to 233MHz.
    
    Followed by moments of doubt about which way around to connect the
    USB connectors (this is how I fried one USB driver on the old
    board), followed by an entertaining period of attempted boots
    until I realised I'd forgotten to connect up the power to the
    floppy drive. Then USB wasn't working, but I decided to take the
    opportunity to test that the harddrive was okay and ready for
    abuse; it just swallowed all that data down and didn't burp. So
    at least the major purpose of the exercise has been
    accomplished.
    
    This means I can now reenable proper backups, of course, since I
    don't need to worry about blowing away the server. Woohoo!
    
    Another brief moment of silliness: trying to figure out why sound
    wasn't working, and then realising that the speakers were still
    unplugged.
 
  - February 19
 
  - Aha, turns out that my sister's boyfriend (hi John!) has both my
    cable and some rechargeable batteries I kept with it. Neither of
    us can figure out how these ended up in his camera
    bag.
 
  - February 18
 
  - I have a load of photos, but I have lost the cable to fetch them
    from the camera, so a little hardware hacking will be required for
    the retrieval operation.
 
  - February 17
 
  - Hangover of DOOM. Ohboy.
    
    Hangover of doom eventually subsided, but messed up my day a
    little. Fortunately, my
    brother's wedding went off without a hitch and I managed to be
    in attendance until at least 10pm at the subsequent revelry,
    modulo a little time for tech support.
    
    My ex co-workers Kay, John, and Ashraf will be most amused at this:
    
      Mal: Tell me, is it possible to ask an Oracle programmer a simple
      question and get a straight answer?
      Me: (all serious-like) Oh gosh no.
    
    Certianly Mal's fairer half and my less recent sister-in-law had a
    good giggle at us.
 
  - February 16
 
  - Woke up with no hangover, a sore throat, and a half-dead cellphone. I can
    dial up using something connected to the serial port (like, say,
    my laptop) but the keypad seems to be hosed. Damn.
    
    Later, the phone revived almost completely. But not before I'd
    called my sister, and mentioned in passing that I was using the
    laptop to dial!
 
  - February 15
 
  - Drove to Dungarvan, drank.
 
  - February 14
 
  - Remote office dialup falls over as I am taking some days off
    work. You'd be amazed at how often this sort of thing happens, and
    I swear it's not deliberate.
    
    Oh, and happy valentine's day, if that's your thing.
 
  - February 13
 
  - Started looking at implementing the IOCTLs for Video For Linux 2. I have
    a chunk of code that claims to provided V4L and V4L2
    interoperability, but I can't see a tidy way to have the driver
    determine which version is being asked for. It would have been a
    bit smarter if the V4L2 API was an extension of V4L rather than a
    replacement for it, I think. Although there is a newer version of
    videodevX than the one I had installed so maybe that's got some
    goodies. OH. It does. It's got a compatibility layer. Now that's
    nice. Aaaaand it doesn't compile for me. Well, screw it. V4L1 is
    still the official Kernel
    interface, so I guess I'll recode to that.
    
    And after another 20 minutes of poking, yay, the module compiles
    on a 2.4 kernel. Doesn't work
    yet, though - the IEEE1284 stuff seems way more stringent in 2.4,
    which is a problem I ran into ages ago. On brief inspection, it
    appears that the capabilities of the parallel port on the laptop
    are somewhat less than those on the crappy desktop I've been using
    for the camera so far - specifically, it won't do ECP
    mode.
 
  - February 12
 
  - Finding bugs in Samba in odd
    places, like the printer RPC stuff. I should probably try fixing a
    few instead of punting 'em to the Samba team.
 
  - February 11
 
  - Tried installing Windows drivers
    for the camera, to check what resolutions it was supposed to
    support. Of course, it's obsolete, so no go.
    
    Took the CDRW out of Blimp. Reconnected things. Powered
    up. Nothing, except a faint smell of burning. Power down. After
    much searching, determined that I'd burnt out the power line on
    the 3.5"-2.5" drive adapter somehow. Fixed that, powered
    up the machine. Can't find the PCMCIA slot. Fiddled with the
    BIOS. Still can't find the PCMCIA slot. Swapped the PCMCIA card
    with the video card. Machine gives beeping errors. Switched back,
    then switched PCMCIA card with ethernet card. Machine boots up,
    everything works.
    
    I do not understand PC hardware.
 
  - February 10
 
  - Had a quick sconce at the CPiA driver on the grounds that it
    should theoretically talk to my camera, but, well, theory is HERE
    and practice is WAY YONDER. Actually, the abandoned SourceForge project that
    produced the CPiA driver specifically mentions that they don't do
    PPC1 cameras, only PPC2 and upward. I guess I could try tracing
    the CPiA driver to see why it doesn't work for PPC1, but heck,
    instead I want to do a whole new driver. HEY! Come buy this thing
    I invented! I call it "WHEEL"!
    
    Weirdly, the CPiA driver loaded up its USB counterpart as well as
    the parallel port stuff.
 
  - February 9
 
  - Spent much of the day tooling with the crap-o-cam, occasionally
    crashing Blimp with infinite loops and what not. Drivers are
    FUN!
    
    And yay, finally I get the camera working in one of the
    higher-speed modes. Excellent! I'm also looking at making it 2.2
    and 2.4 compatible, although I guess really I should just code it
    to 2.4 and be done with it. But it's already working on 2.2,
    dammit!
 
  - February 8
 
  - Set up Blimp with 11Mbit wireless, brought Klortho downstairs
    and plugged the headphones into the amp, then ran up XMMS. Muahahaha. Boy, is that
    neat. Mind you, the 11Mbit wireless seems WAY more sensitive to
    interference (which makes sense, from what I understand of
    wireless tech; higher bitrates need clearer air, basically) so I
    may drop it back to 5Mbit or 2Mbit. Or see if it's smart enough to
    autonegotiate down when things get messy. Ha ha oink oink flap
    flap. Also, the Linux-WLAN tools seem far
    more useful than the wireless-tools stuff distributed as
    "standard".
    
    Started cleaning up the code for the crap-o-cam so it doesn't make
    such a mess when running (and when compiling). Step one, clean up
    all the compiler warnings, so I can concentrate on actual
    code.
    
    Whoops. Coded an infinite loop, didn't realise until I'd run
    it. D'oh. Infinite loops in kernel drivers = doubleplus
    ungood.
    
    Of course, it's even worse when you do it a second time. At least
    I had Magic SysRq enabled this time.
 
  - February 7
 
  - Last day of BOFHness. More humour.
 
  - February 6
 
  - More panic at work, BOFH day four. Seriously, I have funny
    stories that I can't tell you. At least, not here.
    
    Gonzo
    fell over kapow boom when I tried test-burning a CD. That's
    BAD. That's not even writing data. Moving the data to another disk
    so I can try the testburn using a different source. Really,
    though, all these problems should disappear when Donal shows up next week to
    get married and brings me a motherboard (reverse wedding gift or
    something).
 
  - February 5
 
  - BOFH day three. No users have died, amazingly. I must have
    learned patience since I was last a BOFH. Anyway, more wireless
    dinking.
    
    Weird. The 11MBit card on Windows 98 just
    goes bananas connecting and disconnecting. And of course Windows gets
    confused over default routes and what not.
 
  - February 4
 
  - BOFH day two. Spent some time after work dinking about with
    wirelessness; the 11Mbit cards are kinda okay about interoperating
    with the 2Mbit cards, but not really okay about it. Also,
    I can't sneakily upgrade my 11Mbit 40-bit WEP Orinoco Clone to a
    128-bit WEP Orinoco.
 
  - February 3
 
  - I'm on BOFH duty all this week. It's highly amusing from a long
    distance, but while I'm in the middle of it it just means running
    around the office a lot, swearing, and not getting anything done
    on the project I'm supposed to be working on.
 
  - February 2
 
  - I have no comment on the shuttle incident that hasn't already
    been made. Sky's coverage, predictably, was the same tape loop
    shown over and over again until they had another tape loop to run;
    in other words, the World Trade Centre all over again. Apparently
    this counts as news coverage these days. 34 people died in a train
    crash in Zimbabwe yesterday. If you were hoping to find that out
    on Sky News, you'd be pretty disappointed.
    
    Back to the geeking; sure, it pales into insignificance but it's
    what I do. Mozilla 1.3a or
    1.03 or whatever they're calling it has one feature immediately
    obvious to me that I know I'll be using: an inline search box for
    your bookmarks on the sidebar. It pops up the search results in
    the bookmark tab, and it's not immediately obvious how to get your
    full bookmarks list back (right-click on the top of the tab,
    reload, seems to work) but I've found myself having to use the
    bookmark search a few times lately and it's nice to see someone's
    actually improving it in terms of usability.
    
    While I was messing with the browser, I figured it'd be a good
    opportunity to update my copy of CodeWeavers' Crossover
    Plugin as well, since they sent me my final free update not so
    long ago. I have to say I'm well impressed with this; it only cost
    me $20 and it's generally well-polished and sane.
    
    La la la. Built a kernel,
    patched PCMCIA on another kernel, did a Micromail update, watched a
    bunch of crap TV in lieu of doing anything useful. I did finally
    get my wireless network back up and running, though. Also my
    cheapass webcam toy.
 
  - February 1
 
  - Decided to "do something" about the mess that is the
    machine room. My own, as opposed to any belonging to a
    company. Thing is, I've no idea what to do with
    it.
    
    Removed all the rest of the format-time-string crap from the diary helper code;
    this cuts down the number of places where I can completely screw
    up an entry.
    
    Apparently "do something" means move things around so I
    can put the two laptops on one of the desks, which leaves me with
    the lesser problem of where to put the Archimedes and its
    monitor. Also sanding down the crap on Qaz, which somehow has an
    almost-full 9GB Linux partition. You know, I used work in a 40MB
    partition with a compressed filesystem and be happy with
    it.
 
 
 previous month | current month | next month
 
 
 
   
     | Waider | 
     Almost time for another leap year. |