Hacker's Diary
A rough account of I did with Emacs
recently.
- January 31st
- Shopping expedition day for FROST.BOB
II.
- January 30th
- Spent most of the early afternoon at Interphrase's office,
installing a new Linux
server. ISDN setup was needlessly complicated by the fact that I
had but a small clue about what I was doing - the last Linux
ISDN setup I dealt with used the Eicon
TA-that-looks-like-a-modem, so it was just AT commands and a PPP
daemon. This was modules, config files, plenty reading, and a
little rain-dancing.
Later on I discovered a directory full of unprocessed digicam
pictures. I'll need to get those sorted out and up on the
appropriate pages.
- January 29th
- Installed XFree86 4.0.2 and shazam, OMS is working. That's
pretty cool. The PalmOS Emulator is still crashing in a
"can't happen" spot, though.
Made a few more entries in .htaccess files to fix up
stale links on the site. Lots of people seem interested in my music...
Started doing a little more work on BBDB again, mainly in an
attempt to get my mailbox size down.
JamesC called
around with the digicam. Hurrah!
- January 28th
- Undoh! Turns out the camera made it out of
the pub and fell out of my pocket in JamesC's car, so I am
once more with camera. Well, I will be as soon as I get it back
off James!
Wrote my first bit of PHP, and
I can't decide if it's a neat language or a crawling horror that
will eat my brane. Certainly is EASY, anyway.
Happy birthday, sis!
- January 27th
- Doh. Left the digicam in the pub last
night. Bye bye digicam. Whoever took it doesn't have the
transfer cable for it, so the best they can get out of it sans
effort is a set of NiMH rechargables. Bah.
Did some actual work on the Interphrase stuff myself
today. I'm playing around with
Net::FTP.
Had a little Windows
fun, too. I decided that since I could use my Zip drive under Linux,
I should also be able to use it under that other OS,
right? Hahah. Downloaded a chunk of code from Iomega's site, ran it, failed
to find my drive. So, I dug out the old Win95 install disks I
got with the thing, ran 'em, and presto, it works. Well, for
convoluted values of "presto", but
still.
- January 26th
- Dermot's up for the weekend and we're doing
a little work for Interphrase. Actually
it's more like he's doing the work and I'm making occasional
design suggestions, which suits me just
fine.
- January 25th
- Ha, typical. Some time after I'd made the
release, someone found a bug. Nothing major, i.e. there won't be
an immediate 2.21 release, but annoying nonetheless. Still, so
far so good.
Started rewriting both my resumés into a
single XMLish file. It doesn't matter if it's real XML or not
because I want to put a front-end on it that parses it into HTML
until such time as (a) the waider.ie server does on-the-fly
XML->HTML translation or (b) XML-capable browsers are the
norm. The idea is that I can produce a resumé tailored to
the job I'm applying for by selecting relevant keywords to
filter the raw data on. A look on the web turns up one
XML-resume package that fails to get this point, instead merely
using XML as more verbose HTML (not. getting. the. point.), the
hr-xml conspiracy^Hgroup which requires you to REGISTER in order
to get the DTDs, and someone who did the thing someway right but
put the raw XML out on his page so that you can't see it in
Netscape
4.76. In the interests of not reinventing the wheel, I had a
look at the XML FAQ and a few other things, but I'm still
inclined to just carve my own niche on this for the
moment.
Added a hack to Gronk to
check actual track duration against expected track duration and
warn me if they diverge too widely. This will allow me to catch
the files that were corrupted by the disk shenanigans listed
elsewhere in this diary.
- January 24th
- Received a couple of patches on the
bbdb-info list and dropped them in. I'm concentrating on
bugfixes at the moment in the interests of getting an official
2.2 release out. Spent the rest of the day hammering at it,
patching things I'd broken, and folding in fixes from
others. And YAY, BBDB
2.2 is released. Go fetch from the website
already!
- January 23rd
- Hacked on bbdb-whois some. It now makes a
reasonable attempt to handle things like non-US addresses and
multiple phone numbers. I need to add the ability to pick
one-of-many when multiple records are returned, and then it's
good to go. One more thing off the TODO list.
Dropped a quick hack into the MUD
client to pick up what my local copy of Gronk is playing and stuff
it into the MUD I'm logged into. Why? Because I
can! Of course, I found myself constantly flipping over to
another window to find out what Gronk was at, so I hacked a
little more and ended up with a chunk of code that puts a
"Now Playing..." message into the minibuffer
periodically. Gnee.
Tweaked the advert-server (which I use as part of my
banner-advert filtering) to try and provide the correct size of
image, as guessed from DoubleClick's sz
tag.
Some more work on the Micromail site update code;
it can now read an email message, extract the update information
from it, and reformat the CSV file into the correct column
order. This is getting scarily autonomous.
- January 22nd
- Fixed another bug in BBDB.
Yay!
It seems that there's no way to validate a MP3 file that your
friendly copy of tar has zero-padded due to short reads
off a flaky disk, other than listening to it. So, I'll be
listening to my entire CD collection and noting what's busted, I
guess. Should only take a few days...
Fiddled around with the PalmOS version of XDaliclock for a
bit. It builds under the 3.5 SDK now, but I want to build an
emulator to run it rather than relying on it crashing my
Pilot.
So I grabbed the emulator sources, and a copy of FLTK, and threw the lot
together, and got a core dump somewhere in
select(). Spent a few hours trawling through the code and
decided that it was buffer corruption that I couldn't find. It's
damn near impossible to even breakpoint it without hosing your X
server.
Some random was poking at my ftp daemon. I had a quick look
around his machine and discovered he'd been hit by Ramen. Har
har.
- January 21st
- OMS
still isn't working for me. Same old input starvation problem. I
should really sit down and debug it properly instead of just
moaning about it here.
IrDA isn't working for me under Linux,
either. Can't find my phone. Meanwhile, Windows can
happily pull the phonebook and any messages off the phone, and
send messages via the phone. Whine whine.
And the CVS copy of Ices, the Icecast streamer, isn't
building. Looks like they added in three million playlist
plugins and forgot the Makefiles or something. Yes, I'd like a
little cheese with my whine, please.
Doctor, heal thyself. I hacked my Ices plugin (to talk to Gronk) to be cleaner, less
abusive about disk access (it stats the file instead of opening
it and reading it to find out if it's changed), and to use the
Gronk config file. I've
submitted it as an auxillary for the Gronk
distribution.
Upgraded to VM
6.90.
- January 19th/20th
- Down the country with my brother for my
goddaughter's first birthday. Happy Birthday,
Hannah!
- January 18th
- Low-level-formatted the flaky drive
overnight. It's rebuilding the filesystems at the moment with
bad block checking, and taking forEVER.
And it turns out there are hard errors on the
drive. Argh. Probably when it was going "click click
click" last month.
Got the first of the Gronk mods working - the
griprc parsing, and a few hacks on check-files
to make it accept what I'm feeding it in
mp3fileformat. Now I need something to validate the MP3
files that were damaged on the old disk. Maybe mpg123 can
help...
- January 17th
- Sorted out a PPP-related annoyance that's
been bugging me for a while - when I ifdowned the
interface, I'd get a ppp-watch process lingering, as
mentioned earlier. Poking at the script, I discover a check for
DEMAND != "no" which is only going to be
skipped if I set, obviously, DEMAND to
"no". This is kind of stupid, since the network config
seems, by default, not to set DEMAND at all. It would
make far more sense to check that DEMAND ==
"yes", so that it fails quietly when
DEMAND is unset. No cookies for RedHat
there.
Brief thought: is "unset" newspeak?
Hmm. How did I miss that? Swapped the video card into another
PCI slot, and lo, it's working. Do I take this to mean there's a
dead PCI slot on the board? On top of that, the new network card
exhibits the same Icecast-manifested problem as
the old, so I haven't solved that either. What I have
solved is the disk problem - I picked up a second 30GB drive,
and I'm in the process of moving everything onto it so I can
reformat the first one. Then I find out if it's just one-off
flakiness or something more serious.
Did some more BBDB
tweakery, and checked in my outstanding
work.
- January 16th
- Did a little poking around with Gonzo
to verify that the video card was indeed dead (I've had PCI
cards come back to life simply by unplugging them and replugging
them, or by clearing the stored configuration data in the BIOS)
and verified that it was, indeed, dead. Found a new computer
supplies place in town that had Genius RTL-based 10/100MB
ethernet for £20, so I snagged one of those, and ordered a
cheapy video card off them. There's a sticker on the front of
the Genius box saying it's "Linux compatible";
inside, there's a pair of floppy disks and you're supposed to
run some .EXE file to get at the right drivers or
something. Suuure. I just rebuilt the kernel with the RTL
drivers enabled. Still, it'd be nice if someone did a magic
Windows-style installer for this sort of thing that, you know,
norms could use...
- January 15th
- Played with OMS for a bit, but failed
to get it to work any further. Sigh. Seems that aside from
everything else, there's some oddity going on with AGID resets
on the Compaq DVD drive, which is apparently just a rebadged
Toshiba drive.
You know, I really wish ifdown ppp0 worked
properly out of the box. It's a real pain to have to manually
kill off ppp-watch, then discover that it's spawned off
a PPP daemon while you weren't looking, and it's eaten
your routing table, too. Shell scripting isn't really this hard,
guys.
Finally got around to trying Icecast with the PCMCIA
ethernet card instead of the onboard. Same problem. Next thing
is to try streaming off the laptop, or swap out the network card
in the server, and see where things go from
there. Meanwhile, just to amuse me, the video card on the server
seems to have died.
- January 14th
- Downloaded the SyncML reference
implementation, and tried hacking it to compile for the Palm. Got it to
compile, but it wouldn't link. Hmm.
Hacked at the local copy of the DSP web a bit - started
cleaning up the HTML and the site layout.
- January 13th
- Still with the Icecast errors. For some
reason, Windows Media Player decided that the stream was some
arbitrary length just short of an hour, and stopped with an
eof. The laptop gets about 15 minutes into the stream with XMMS and then starts building up
packets in the Recv-Q, culminating in a stuttering halt at about
22 minutes when there's about 60-70K in the queue. I've switched
off all the metadata and even switched from xaudiocast to icy
format, all to no avail. Time to try an alternative ethernet
card, I guess.
Oh, and mpg123 is quite simply useless for dealing with
streaming mp3s.
Tried Freeamp as
well. Running it on Gonzo,
I get an even faster buildup of data in the Recv-Q. And running
it on Klortho, it can't seem to connect to the stream, for some
reason.
- January 12th
- Hacked at one of my share toys (I have
three...) to get it to cope with the fact that sometimes Yahoo
prints a day instead of a time, and then added a currency lookup
on it so I get an accurate picture of just how badly my shares
are doing in Norway.
Started hacking on Gronk
again, this time intending to do it in a clean way that means I
can send in a patch. Found some choice comments from the first
time I hacked it.
Snagged ices, the new Icecast streamer. It's
basically a revamped version of shout. Alas, I'm still
seeing the same traffic build-up problem as before. I should try
it on the PCMCIA ethernet card, I guess. I tried it on a WinME
box, and after about 20 minutes (which is when I get the network
congestion problem on Linux) the Media Player crashed and took
down the machine. Hurrah for Microsoft!
Continuing to be a "sick little monkey", I've updated
jmatrix to run in Mozilla and also to use the
DOM in Internet Explorer. Bwahahah.
- January 11th
- Threw away everything OMS related on my disk,
and started from scratch. Lo and behold, I got a compile, and I
ran the resulting executable, and...
...it didn't show me anything except a black screen. Ah well,
this is further than I've got so far this year. css_cat
is okay with reading the disk, so I need to figure out where the
problem is.
Spent most of the rest of the day rearranging the room to
accomodate my new Giant Bookshelf. 7 foot of beechwood straight
up, whee!
When I'd moved everything around, I fired up Gonzo.
Woah. No video. But heck, it's started fine, and the network's
running. I'll check it when I next have to open the case, I
guess. The fan's running silently, too. Bizarre. The disk
errors, though, are causing me some grief. mpg123
occasionally coredumps (bad! not checking return value from
fread() properly!) and I'm gonna have to redo a bunch
of my mp3 files. Just as well they're all legal and all, you
know, so I still have the source material.
- January 10th
- Downloaded and installed PCMCIA services for
Linux, built it, installed it, and lo, I have a working
ethernet card in the PCMCIA slot. On the plus side, this means
the laptop can get a 200Mb/sec feed. On the minus side, where
the hell am I gonna get that much data from?
Tweaked Gonzo's
startup files to start the web server and the nfs daemon. Can't
recall disabling them, but. Also modified Klortho's startup to
do a showmount -e on Gonzo
before attempting to mount the NFS shares - saves me another
15-20 seconds on boot time if Gonzo's
not running nfsd for whatever reason.
Did a full fsck on Gonzo's
big disk. There are hard errors. Gack. I think maybe I'll get a
second humongous drive and start moving stuff onto it, then
reformat the current one. Should at the very least mark out the
bad blocks.
- January 9th
- Slowly chipping away at my BBDB "to do before
2.2" list. Database merging mostly seems to have fixed
itself, thankfully, since I hadn't a clue what was causing the
problem.
Discovered, duh, through some reading that "Microsoft
Messaging Services" or whatever, i.e. MAPI32.DLL,
can be found on the Win98 install CD in some arbitrary
directory. Plugged it in, reran the Ericsson software installer,
and I now have a phonebook manager/SMS toy on my Windows
machine. Startlingly enough, the cellphone modem decided to work
as well. I can't deal with all this success.
Just to reassure me that all could still go pear-shaped, the
Linux IrDA stack can't talk to the phone properly. I think
applying the speed-change patch that appeared on the list
recently might help that.
- January 8th
- Wow. Success in buckets! Not only does the
2.4.0 release kernel appear to have cured the ln
problem, I also managed, with a little hacking, to get the
Lucent Winmodem on the laptop working. The "little
hacking" was to correct the minor device number of the
modem (it's ttyLT14, hence minor 78) so that it was looking at
the right part of rs_info. Noone else seems to have
noticed this? Anyway. Contrary to what this lucent winmodem
page says, linmodems.org is not
actually the best place to look for the latest information. I
found the driver I'm using, a combination of binary module and
kernel-compatibilty source, on walbran.org.
The only change I made, I think, was the aforementioned device
number correction (there was some extra debugging that clued me
into the device number change, but that's about
it).
- January 7th
- Both Klortho and Gonzo
are now running 2.4.0 release. Hopefully all will be
well.
Made snorq clean up the
images it downloads, so you don't have twice the data needed
lying around the place.
- January 6th
- Haven't tried the release kernel yet, and
the test6 kernel doesn't build - multiply defined symbols
somewhere. Egad.
Made a local copy of the DSP website in preparation for
hacking on it a little.
Another sick hack! This time, I've used my digital camera (a
Sanyo VPC G200E) and a hacked version of photopc to make a
low-frame-rate webcam. Now all I need is a power supply for the
camera to stop it from chewing up
batteries...
- January 5th
- Building a test6 and a 2.4.0-release
kernel. The former to see if it introduces the ln bug,
the latter to see if it's cured.
Rearranged the images directory of the website to try and
eliminate some duplication and throw out stuff that was just
taking up space.
- January 4th
- Spent a lot of the day playing with a Palm
development environment. Part of the problem was that in order
to install the SDK, you need to download the documentation which
tells you the correct way to unpack it. And the documentation is
an 8MB tarball. I then put a bit more work into a script I'd
been working on to convert a CodeWarrior/Composer .rsrc
into a PilRC .rcp file. I don't know if anyone's done
this already, but I can't seem to find any indication that such
a beast exists.
And while I was doing all this, Linus released
2.4.0. Whee!
- January 3rd
- Well, 2.4.0test1 seems not to have the
filesystem bug. Time to try test2... Right. test1 and test2 both
seem to have the "IDE drive spins down, resets bus, spins
up again" problem, but not the "IDE drive forgets how
link works" problem. This is, I think,
progress.
First time I've rebooted Klortho in a while, and, er, some
things seem to have changed while I wasn't looking. For
instance, MAIL is no longer defined to point to my
spool file and XAPPLRESDIR also seems to be
missing. And my HTML-mode colours appear to have
changed. Oh, wait. XAPPLRESDIR is set, it's
just that pesky problem with the global app-defaults overriding
my app-defaults. Gah.
2.4.0-test3 simply doesn't build. Or test4. Maybe my libc is
conflicting, or something.
And suddenly it hit me. What if it's the SMALL drive that's
crapping out, not the BIG one? I could cope with
that.
- January 2nd
- Hum. Well, after rebuilding the kernel
several times over (my config got lost along the way, so I had
to do several test runs before I managed to get back to a
working system), I still have the bug. Time to see when it
first appeared, which is going to involve building too many
kernels and installing them. Argh.
Went trawling through my mailbox, patching BBDB and replying to
long-lost emails. Jeez. I've been slack since
September, and that's about the same time I stopped responding
to email on receipt. I'll blame the whole
Internet-access-over-cellphone thing.
Kernel building apace. The 2.2.18 kernel can hand out DHCP
addresses, but I can't ping in either direction. I can see ARP
traffic and broadcasts, but TCP just ain't
happenin'. In fact, from Gonzo's
end of things I'm getting "No route to host" despite
the fact that all the networking (a) looks fine and (b) is
unchanged from the 2.4.0 kernels.
And while all that's going on, I cleaned up the syslog and
logrotate stuff on Klortho. One more thing
accomplished.
- January 1st
- Oooh. This looks good:
2.4.0test13pre3-ac1 adds
o Fix leak in link() syscall (Christopher Yeoh)
So I'm building that now. Complicated by the fact that every so
often, the filesystem forgets how to do link and then the
build fails and I need to reboot. Why the compile process doesn't
notice this, I do not know.
Rearranged the diary layout, and put some Rewrite rules in place to
maintain the old links. Rewrite is actually quite difficult to deal
with when you're trying to handle a site that's supposed to work as
both http://site/ and http://site/~user/. I ended
up having to symlink the stylesheet to make it work. Gah.
Why oh WHY does netscape try
to look up localhost? It's in the hosts file, the
nsswitch.conf says to look in the hosts file first, yet
netscape still insists on finding out where the hell localhost is
from the DNS.
previous month | current month | next month
Waider |
Time to backspace and overstrike. |