Hacker's Diary
A rough account of I did with Emacs recently.
- June 30
- Last day at Doolin Technologies, alas. So long and thanks for
all the fish, guys.
- June 29
- Still learning. Still hurting my head. High-performance SSH,
nice. Autotuning Linux TCP stack, real nice.
Google released their Mapping API. Cute.
- June 28
- Bwah. Reading up on a bunch of networky stuff for another
interview. Yay, learning, but ow, my head hurts.
- June 27
- Ok, so now I know a little bit about coding directly to zlib, and the C version of my
unar code knows how to reconsititute the compressed
files. A little more tweaking and I'll fling it up with the rest
of my C crap.
I had an interview with Amazon again today. Actually, five
interviews. It was like a day at work, except in someone else's
office, and spent explaining why I should be there.
- June 26
- Ported most of the Perl code from yesterday to C. The only bit
I'm missing is, of course, the big bit: extracting the files. The
directory mode works fine, there's a few corners cut where I'm
using a fixed-size buffer instead of a dynamically allocated one,
but I'll get back to that.
Spent most of the day getting sunburnt, to be honest.
- June 25
- So for today's fun and games, I finally figured out how Midtown
Madness .ar files are stuck together. This isn't exactly
crucial information for anyone, but it was annoying me that the
only tool to unpack the files was a Windows binary with no
documentation on what it was doing other than the fact that it
used zlib. I've written unar.pl, a simple
command-line doodad modeled after unzip.
- June 24
- Gah. Having run a process for the past few days by sleeping the
laptop instead of shutting down, AND just after explaining to jamesc about how sleep
mode now works on Linux,
I proceeded to wake the laptop without plugging in the PCMCIA card
it had been using when it was put to sleep. Predictably, it locked
up. Solid. I had to remove the power AND the battery to get it
back. Fortunately I've a good idea how far the process had got so
I can restart it from where it left off.
- June 23
- Hmm. A combination of hot weather, dubious air conditioning and
hard computation has the laptop's CPU temperature at
92°C. Ouchee.
- June 22
- Woo! Amazon wish to interview me further, which means that
despite my misgivings about my first-interview performance, I've
passed the first hurdle.
More on the sleeping laptop thing: I thought openvt might
solve the screen-stays-lit problem, but it didn't. I'm thinking
maybe chvt instead, but I really want openvt's
"switch to an available VT, run whatever, then switch
back" behaviour. I guess I could do some silliness to find
out which VT X is using, and use chvt to flip back on
wakeup.
- June 21
- Much to my surprise, I put my laptop to sleep at work and woke
it up at home and it *almost worked perfectly*! Minor silliness
with the screen going to sleep and then being woken up before the
rest of the machine went to sleep, and some oddness with the
screen on restore, and also the fan is still running half an hour
after I brought the system back up probably because the machine
got all hot and bothered sitting in my laptop bag. It's also
probably not helped by the fact that the machine is running SETI@HOME AND
trying to brute-force a little reverse-engineering task for
me.
Second interview with Amazon, yay!
- June 20
- Minor tweak to the Micromail site, and some
fiddling with the giant seekrit movie thing, which if it ever sees
the light of day outside my network will herald some sort of
hell-freezing-over moment.
Interviewed with Dell today. Woo!
- June 14-19
- Missed a few days there... mostly involving trips to the pub,
movies with friends (Shaolin Soccer is a little
rough but a lot of fun) and an impromptu trip to my parents' house
to wish Dad a happy Father's Day. Also I note that Formula 1 is
continuing on its downward trend with today's silliness basically
punting both Schumacher and Ferrari right back into the
championship. Just as well I didn't rearrange things so I could
watch the race.
- June 15
- I have been putting this off for ages: merging my BBDB code over the XEmacs
CVS version. I've not yet checked it in because I want to do some
tests to make sure it still works - despite my complaints about
it, I'm a GNU Emacs person, and XEmacs always just feels
wrong to me, and I rarely have it installed on anything except to
verify that I've not broken BBDB recently.
MonoDevelop continues to impress me with its fascinating failure
modes. Hint: if some minor function, such as "Import Visual
Studio .NET Project" can't execute an external program (in
this case, pkg-config, the correct behaviour is
not to drop the entire GUI.
- June 14
- Moved the back-end for the RSS toy from the web server to the
jukebox machine, now that I've stopped it from crashing. So now I
have a cheesy two-tier physical structure for a toy. Go
me.
- June 13
- Bad ideas:
aoss /usr/bin/fvwm
This breaks a whole
load of stuff on SELinux-capable (not even enabled)
systems, such as ssh, vi and rpm. Don't
do it.
Spent a small amount of time poking at the gnome-vfs API. I am
somewhat disturbed that there appears to be no concept of a
default operation, or if there is it's undocumented. I'd like to
be able to do something like having most ops fall back to the
regular POSIX operations, with the exception of a couple of things
which I'd like to trap based on either the URI or, I dunno, the
operation. But I can't see a way of doing that, offhand. Even if
setting a method to NULL accomplishes the former part, it doesn't
help for the latter where ideally I'd be able to do something like
if ( !specialcase ) { return GNOME_VFS_DO_DEFAULT } or
maybe if (!specialcase ) { gnome_default_operation()
}
- June 12
- While reading something with Plucker today, I poked
around the settings and discovered that, yay, it can present a
full-screen, rotated view of whatever you're reading. Even on a
Palm Vx with its square screen, this actually improves the reading
experience immensely; in particular, the page-down rocker is more
where you'd mentally expect it to be in order to turn a page, and
it's somehow easier to hold the device sideways that it is to hold
it upright. Cute. More applications should do this, or there
should be a hack that does it for all applications, including
fiddling with the scratchpad so you don't have to write graffiti
at ninety degrees.
Shark Tale isn't as laugh-out-loud
funny as some of the other animated movies that have been around
in recent years; I guess that means it's aimed more squarely at
the kids' market. I'm pretty certain there were no nudge-nudge
wink-wink moments; most of the stuff aimed at the big folks seemed
to be references to Mafia genre movies like Goodfellas and while
that's okay for trivia fanatics, it doesn't carry any inherent
humour in it. Jack Black was really good as Lenny, though,
possibly because he didn't seem to be hamming up the role the way
he's done with anything else I've seen him in. It's a shame he
doesn't work like this more often. I wasn't quite as impressed
with the anthrophomorphisation of the fish, either. Most times it
just kinda worked, instead of being mind-blowingly, I dunno,
right. I expected far more from the dance sequence, for
example. I think, if you want to see a good animated fish movie,
you're better off sticking with Finding Nemo.
Who'd have thought "Animated Fish Movie" would be a
popular genre?
- June 11
- Tooled around with audio settings a little, for no good
reason. It seems like I shouldn't need to do root-level tweaking
to get a working soundcard that can be opened by multiple
processes simultaneously, but that's apparently the only way to do
it.
I think the source of my MiniITX crashes is... ground loops. I've
disconnected most of the crap I had hooking it into my multimedia
kit, and it's been running happily ever since. I need to find a
better way around this, but for now I can at least leave the
jukebox running without it keeling over every so
often.
- June 10
- Some more greasemonkey fun: Vodafone Photo Album
Tweaks. Currently just makes each thumbnail a link to the
fullsize image and adds a per-picture delete button, although for
some reason the latter only gets applied to every second
picture. It still doesn't save you from the fact that this really
is an awful interface.
- June 9
- It's trivially easy to do on the command line, but I really
think SSH should have a "bounce via" option, since I
frequently find myself doing
laptop> ssh
firewall
firewall> ssh host-I-wanted-to-get-to
and
it'd be far nicer to just do
laptop> ssh -via firewall
host-I-wanted-to-get-to
and be done with it.
Interviewed with Amazon
today. I wasn't really happy with the interview; I was unprepared
for questions such as "describe a project you've been
involved in in the last five years that you're really proud
of" largely because I've never asked it before, and while I'd
like to think I'm a good sysadmin and know at least some of the
way around kernel debugging,
the interviewer seemed to keep picking things that I had either
never heard of or knew very little about. Gah. I keep thinking of
things I could've added to my answers to mitigate the bits I
didn't know, but that's no good right now.
- June 8
- Did some hacking on the scraper I wrote for Vodafone's online
phonecam library, adding to my horror of the system. Here's what
I've found so far:
- there's a typo in the javascript that's
supposed to flip through multiple images in the same MMS
message
- it distorts your images to fit in a nasty mockup
of a phone, despite the fact that you're most likely going to be
viewing this in a web browser (yes yes. "this is how it will
look on a phone". Rubbish.)
- if you have text and a
picture in your MMS message, the picture gets added twice. With
distinct URLs, too, so you can't tell programatically without,
say, downloading both and comparing them.
- once you extract
the URLs of the images you uploaded you don't actually need to be
logged in to see them.
- deleting an image only, as best I
can tell, deletes the reference to it from your inbox. If you
saved the URL, you can still link to the image.
I guess
the latter two could be construed as features, allowing you to use
Vodafone's site as a free image-hosting service...
- June 7
- Once more hating the writing of resumés; I reread what
I'd put together last week, and found one minor typo and one huge
clanger of a typo. Gaaah.
Messing around a bit more with the SQL/RSS toy, mainly in the area
of minimising the amount of abuse I'm giving my poor
webserver.
- June 6
- Another lazy day. There are things I could be working on, or
hacking on, but I chose instead to read a bunch of graphic
novels. Go lethargy.
- June 5
- Lazy Sunday, wherein I sat around doing absolutely sod all and
there wasn't a single movie worth watching on TV...
- June 4
- Wow, really stupid bug in my database-backed, AJAX-loaded RSS
toy. Basically, it was doing a big database hit for every AJAX
call. BAD script. No cookies.
A Bridge Too Far is a pretty
decent movie which dramatises Operation Market Garden, a bold but
ultimately costly attempt to penetrate German-held territory in
1944. Plenty famous names running around portraying actual
historical characters, some of whom advised on the technical
aspects of the production. I suspect a retelling of the story made
today would be far more brutal, but this wasn't exactly
lightweight stuff either. Worth watching.
- June 3
- Tooling around with the MPLE stuff again. More evil plans afoot.
Also crashing MonoDevelop by, er, trying to use it as
intended. WTF?
- June 2
- I've been trying to figure out exactly what's triggering the
MiniITX to crash by stressing it in various ways. After about a
week of playing a WAV file in a loop I've decided it's probably
not the sound chip, so now I've got it playing a local MP3 file in
a loop instead to see if the combination of CPU load and sound is
what's doing it. After this, I'll try looping a networked MP3
file, which I'm fairly sure will trigger the crash, since that
seems to be the common factor in previous crashes. The annoying
part about it is that it's a hardware lockup, so things like the
kernel panic watchdog won't help.
- June 1
- Hmm, the NASA WorldWind toy has a CVS repository of its
source. And it's written in C#. HMM.
previous month | current month | next month