A rough account of what I did with Emacs recently.
December 31
Back in the office, doing the geekery for my employer rather
than myself.
I was somewhat confused by the fact that my old Palm apps are
running on the new hardware, despite the change in processor (old
Palm Vx was a Motorola 68k device, new Palm Tungsten is an ARM
device); more to the point, I was confused by the absence of ARM
libraries to allow me to build things for the new hardware. It
turns out that most of the Palm world runs m68k code and uses a
software translation layer to run it on the ARM chip. What a great
way to use up those extra processor cycles!
December 30
Made an attempt to change my Vodafone account settings, and was
rewarded with one of their incomprehensible error
messages. Usually these take the form, "Please review the
error message below:" followed by something completely
uninformative like "an error occurred
(NING-FTANG-999)". It's never anything actually useful. And
just think - somewhere in Vodafone someone signed off on this as
sufficiently customer-friendly.
December 29
Somewhere along the way my DSL download speed was
doubled. Upload appears to be the same, however. Maybe I'll look
for a new provider in 2008, because I haven't had a decent
telecomms problem in ages.
December 28
Last few episodes of House! Now I need to watch Seasons 1 and
3...
Found the part of the kpilot sync that was crashing: the Notepad
conduit. Some part of the process of turning your scribblings into
an image, I guess. Since I don't use Notepad, I just turned off
that conduit and hurrah, I can sync again. In the process I
abandoned the USB sync in favour of a WiFi connection, but I
really need to resurrect my recent attempt to port some Bluetooth
stuff from BSD to allow me to use that instead.
December 25
Merry Christmas!
December 24
Nuked a bunch of old software repositories that I'd built up for
previous releases of Fedora - FC3 and FC5. I tried out the Fedora
8 live image yesterday and it seems nice enough, although I'll
want to give it a whirl on the wimpy laptop before I make any
decision about installing it. The problem with not
installing it, of couse, is that less and less updates appear for
the older releases as time goes by.
So much for my 15 megabytes of fame: the Wiki entry on Pidgin
refers to a plugin for talking to Microsoft Exchange Instant
Messaging. Except it's not my librvp, it's
another chunk of code which has been dead for quite a while. Oh
woe is me, etc. Of course, I've not done any serious work on librvp in
about a year, which is something I intend to rectify if only to
get a 1.0 release out.
Hmm. Note to self: Palm only likes calendar files with a
.vcs extension. Label them .ics and it'll claim
they're in some unknown format.
After seeing The
Departed I figured I should probably watch its source
material, Infernal Affairs; having discovered that that
came with two sequels, I figured I'd add all three to my wishlist
at Screenclick. Alas,
Infernal Affairs II turned up
first. And it's confusing me. I guess part of the problem is the
whole us-westerners-can't-tell-asian-folk-apart, so I kept losing
track of who was who, but I suspect there were some implied bits
in the story that I missed, too. Anyway, I'm now at 1:37 into the
film and it's still not finished, when I thought it was
building to a climax about 20 minutes ago.
Hung out with Lou and her sister for a bit, then wandered off to
the local for some Christmas cheer.
December 23
Inconsequential geeking today, and a few crap movies. Nothing
worth writing about, to be honest.
December 22
Pirates of
the Carribean: At World's End is too long (seems to be a
common problem), has an overly-muddled collection of threads, and
frankly had me scratching my head at points where the music
indicated I was supposed to go, "A-ha! he/she's foiled their
plan!". I liked bits of it, and maybe if it was edited down
to 90 minutes it might have been more enjoyable, but it's really
not a patch on the first in the series. Which was made as a
standalone movie, and then had a pair of sequels tacked
on. Hmm. Reminds me of a certain sci-fi trilogy which had much the
same problems with the second and third installments. Do I think a
lesson will be learned from this? Hahahah. Right. Oh, also the
ending seemed a bit of a downer, or maybe it wasn't and I'm still
confused. Aaaand blatant setup for Another Bloody Sequel. Give it
up, Disney, you're flogging a dead horse.
I'm having an extremely frustrating time with KPilot at the
moment. To be somewhat fair, I'm using an eight-year-old laptop
and I'm two releases back along Fedora Core's chain (FC6 rather
than the current FC8), but seriously. I've spent ten minutes
trying to sync the damned Palm Pilot, and all I've got to show for
it thus far is that the alleged software that's supposed to do the
job on the laptop's side crashes every time I manage to get the
sync process started. Which is about one attempt in four. What
sort of a godawful piece of crap is this? I've read a website
where some guy is claiming this is the best sync software
available for the Palm. What drugs is he on? Here's a litany of
faults:
The sync daemon should NEVER crash. Ever. I don't
care if my laptop spontanously catches fire in the middle of a
sync, having a non-user-visible piece of software that is prone to
crashing is not an acceptable part of a working desktop, much less
the alleged best software ever.
When the sync daemon
inevitably crashes, the desktop client should notice, and comment
on the fact, and restart it. You shouldn't be left with a
non-working sync system that requires you to restart the entire
application.
When you click the Reset Device Connection
button on the desktop client, it should cut off the current
connection immediately. Again, there is no acceptable reason for
not doing this, and not doing this means that further attempts to
sync have an excellent chance of failing as the daemon which only
crashes when you don't want it to stays running and holds the USB
port open, preventing the Palm from connecting
properly.
Returning to my original point, the sync daemon
should NEVER crash. Granted, Palm didn't do a hectic job of
telling people how to write their own sync software, but it was a
solved problem several years ago, and has not changed dramatically
since (with the minor exception of the USB devices which appear
and disappear when sync starts and finishes, respectively). I've
never had the Windows client fail to start up or shut down a sync;
why is it so damned hard to have the Linux bits - you know, open
source, all bugs are shallow, yadda yadda - work even one time in
five?
I may add this to the Reasons To Get A Mac list. Of
course, I've no doubt that since the Palm people betrayed their
Mac roots in favour of Windows, the situation is not much better
there...
In passing, I will note that it appears the daemon is crashing
because it is unable to set a colour appropriately. What
sort of completely idiotic preventable stupidity is that,
exactly?
December 21
Broken Arrow was on the box. I
should have gone to bed. It's not even impressively bad, it's just
plain ordinary bad. Avoid.
December 20
House M.D. is not the
comedy I understood it to be, but it is both excellent and
funny. I see a boxed set or two in my future...
December 19
Independence Day was on TV, so
I figured I'd watch it. It's fun, even if the acting is totally
overbaked in places (who would've thought jewish actors would ham
it up so much?)
December 18
More great moments in Palm syncing: device refuses to sync, then
desktop software crashes, then device gets wedged in
"cancelling sync" state.
For some reason I was poking at notification tools (generally
speaking, anything that will cause a non-intrusive window to
appear on the screen with a message for a short period of time)
and both the approaches I tried (talking directly to the KDE
Notification system, and running an app called "specto")
failed, so I went back to the Palm data merging again.
To-Do list:
done!
Memos: done!
And I've decided not to bother
with the notepad files since I don't think I've anything useful in
them...
So I've had the Palm Tungsten E2 for just over two months now, and
what do I think of it?
I like the higher-resolution
screen. It makes reading much easier, and photos look pretty good
on it.
Bluetooth: excellent. The implementation is a bit
spotty in places (for example, if you set it to wake up on
Bluetooth inbound, and then use the automatic keylock feature, the
next inbound Bluetooth signal will completely hose the user
interface and you'll need to hard-reset it)
Wi-Fi: a bit
annoying that switching networks isn't possible from the mini
pop-up for enabling WiFi, because when you go to the prefs to
change it, the Palm forgets what application you came from. Also,
it has too many modal dialogue boxes.
Graffiti 2 is
annoying, and not just because I still can't find all the
punctuation shortcuts I used know; the delay while it figures out
what you just wrote is really distracting.
I'm not keen on
the new connector as it doesn't seem to lend itself to any sort of
cradle like the old device did. On the other hand, a usb cable was
the first thing I bought for the Vx, so obviously it's handy that
this is the standard means of connecting the E2 to a
computer.
Solitaire and the sudoku game I found:
excellent!
VersaMail: no thanks. Nuked it after a
day. Unfortunately there seems to be a lack of useful
alternatives.
The web browser is pretty good, although it
has a tendency to busy itself when you're desparately trying to
hit the STOP button.
The native apps (Datebook, Tasks,
etc.) are nice upgrades on the old versions, with the exception of
the Notepad application, which I find useless, frankly. You can
only have a single line of "real" text, and anyone who's
tried reading actual hand-written notes from a Palm will tell you
how pointless they are. Even fitting a decent diagram into the
tiny drawing area is difficult.
Multimedia features: a
novelty. I have an iPod and that tends to address my portable
media requirements adequately.
On the whole, I'm pretty
happy with it. I'm certainly not going back to the Vx, although I
have been thinking of things to do with it!
I've been using ThinLiquidFilm to convert arbitrary chunks of
video (mainly YouTube clips) to the iPod. The biggest problem I
have with it is that it's not possible to run it in batch mode,
i.e. tell it to convert an entire directory full of movies in one
go - it needs clicking to make it fly. So instead I'm digging in
its internals to figure out what it's doing that my previous
attempts at on-the-fly conversion weren't doing, and I think I've
got the bones of it at this point. Hurrah!
December 17
Believe it or not, I'm still trying to finish up the data merge
of all my old copies of Palm databases. Tonight I scraped up the
various datebooks, so I now have (in theory) a consolidated
collection of what are mainly birthday and anniversary
reminders. In doing this I discovered that my IrDA port is yet
again not working in some unspecified way (this happens every time
I try to use it), that my Datebook-to-ICal tool was, like
everything else, half-written, and that it's very annoying trying
to import 100+ entries into the Palm via bluetooth because it asks
you to confirm each one. Still, job done. I have the oddly-named
memos file, the notepad, doodle (sort of notepad's predecessor),
and the to-do lists left to merge. Yes, I understand the irony in
the to-do lists being, well, on the to-do list.
December 16
Visited my nieces and delivered Christmas presents, then back to
Dublin.
December 15
Decided to take a trip to the A&E (for people on the left
side of the Atlantic: E.R.) to have the ankle looked at, since it
was still not exactly functional, and I'd read enough Wikipedia
and what not to scare me. After a two-hour wait I had five minutes
with a doctor who determined that I didn't need an x-ray, would
most likely recover in a few days, and shouldn't go to the gym
until after Christmas. That last bit really ticks me off, but
hey.
Drove down the country to see family for Christmas.
December 14
Volver: a typical Almodovar movie,
featurning strong female characters and a storyline that really
didn't engage me. Oh well. Why did I rent this again?
Ankle still somewhat sore. Weekend plans may be disrupted,
dammit.
December 13
Met up with Cathal for some Christmas beers. Managed to turn my
ankle in my haste to get to the last DART, ow ow ow.
December 12
Looking at some code that purports to talk to Motorola P2K-based
phones (such as my E770v), I find almost every imaginable bad
practice for C coding. There are badly hand-built clones of
standard functions. There's an unnecessary function for raising a
number to a given power, except it's part of a hex converter so
the code could be replaced with some bit-shifting. There are
signed versus unsigned mismatches. There are calls to undeclared
functions that I'm having to trace through the code to
find. Static buffers loaded from user input. Missing bounds checks
(hint: you can't read the fifth item from a list of four). Frankly
this is horrific, and the only reason I'm even touching it is
because I think I might be able to salvage something useful out of
it.
[I should probably do a Guide for Mom on this! What can I say?
There are many right and wrong ways to do things when programming,
but there are a whole class of recognised ways to go
about setting yourself up for trouble, and this piece of software
seems to hit pretty much every one of them, and in the worst
possible way. It might even suffice as an interview example:
"what's wrong with this code?"]
I went to take my old MP3 player to the gym tonight and discovered
that my software to load it (that's right, the poorly-maintained
libnw stuff that
gave me my 15 minutes of geek fame) no longer does so. On further
investigation I am puzzled by what's going on, exactly; I am
looking up a value in a table (actually a hash), and being told it
doesn't exist, but if I dump out the table, there's the value I'm
looking for. What the hell?
Ah. My bug. And somehow I didn't notice it when I wrote it, er,
over a month ago. D'oh.
December 11
Today's hardware abuse: replacing the fill valve in the
toilet. I was mildy annoyed to discover recently that I couldn't
buy a plug chain, I had to buy a plug and chain of a
piece; likewise, a toilet fill valve is not a thing to be bought
alone, you also get the assembly it's mounted in complete with
float arm, which necessitated buying a float as well since the old
float was of an incompatible type. Then there was the mortal
combat with the old elbow joint which had apparently been put in
place with a combination of glue, caulk, paint, and anything else
the plumber had to hand to make sure it never moved again. And
finally the reassembly fun and games wherein I wrapped some of
that sealant tape around the fitting, tightened things up, tried
it, found a leak, undid the fitting, applied more sealant tape,
lather, rinse, repeat. At this point the job is done but I'm
leaving it overnight to check for leaks; I suspect I might need
one more go-around with the sealant tape. In passing, I will note
that all the online guides to doing this job have the fill valve
fed from a pipe coming up through the bottom of the tank, whereas
in my experience (and indeed in my cistern) it's far more common
in these parts to have the pipe coming in through the side, near
the top. Makes for less of a problem with replacing the valve
since you could in theory do it without draining the cistern and
at least in practice you don't have to figure out how to get the
last inch or so of water out.
Working on my to-do list, I find that some of the new core Palm
apps (to-do, and memo pad at least) seem to be storing two copies
of the data; for example, memos are in the original MemoDB.pdb and
also in a near-identical file called MemosDB-PMem.pdb. The gross
data structures appear to be the same, there are just some minor
differences in the header section (perhaps the
appinfo?)
I'm not sure if I liked the final reveal in The Illusionist. It smacked a
little of appeasing the test screeners, as opposed to part of the
original movie, since all of the other illusions go unexplained
for the duration. Aside from that, I found the movie pretty slow,
enough that I didn't really have to pay attention to it
constantly... never a good sign. Watch it if you've nothing better
to do, I guess.
December 10
Coffee^WChocolate and gossip with Lou, as usual.
Did you know that in Smokey And The Bandit
II, there's a record-breaking stunt jump? I read about it
years ago; they rigged the driver's seat of a car with motorcycle
shock absorbers, and then the stuntman took flight off the top of
a double-decker car transporter and covered somewhere around 160
feet before touchdown. Unfortunately, the shock absorbers didn't
work as planned and he suffered one or more compressed lumbar
vertebrae. Plus, the movie kinda sucked.
December 9
Christmas party recovery.
December 8
Office Christmas party.
December 7
A moment of financial weakness: I got fed up of the fact that
the neither of the original DVD/CD drives from my two Compaq
laptops are capable of dealing with DVD+/-R/RW discs, and sprang
for a new one on ebay. If I'd been a little more in control of my
impulses I'd have payed the little extra to get a reader/writer
instead of just a reader, but still. The drive arrived today, cost
me about €40, and does the job, so I'm happy enough with
it.
December 6
The Departed is too frickin'
long. I wasn't keen on the ending, either, but should
definitely have been edited back by about an hour or
so. Yes, it's good, but really now. I think this item from the
IMDb trivia section sums it up: "The movie's title does not
appear until almost 18 minutes into the film."
December 5
Aside from a trip to the gym, I have no idea how it has suddenly
come to be 23:30. I had planned on doing some domestic stuff this
evening, and instead it looks like it'll have to
wait.
Well, that was mildly irritating. A power outage, about 30 seconds
or so in duration, which is not only plenty long enough to take
out my non-UPS-supported kit (by which I mean "all of
it") but for some reason also caused my laptop to shut
down. Gah.
December 4
The History Boys is sort of a
reverse Dead Poets Society set in
England. It's a little rough in terms of pacing, but on the whole
it's a really cracking piece of work with great music and snappy
dialogue driving it along. A little odd seeing the hallowed towers
of Oxford soundtracked by The Cure, mind you... definitely one to
watch.
December 3
One for the Crazy Ideas bucket: most browsers give you the
option of accepting or rejecting cookies from websites. However,
beyond a coarse decision on whether you want to accept a cookie
from ADVERTISING.SPAMSPAMSPAM.COM, it's generally not obvious what
any of these cookies are for. It would be a small matter of
programming (and, indeed, bandwidth) to add a Cookie-Description
header that gives a short explanation of each cookie. Or again, to
go back to the previous crazy idea, a greasemonkey script that
says, "site X is offering me cookie Y. What's that do for
me?" Because not all cookies are used for user-tracking; some
are for useful things like remembering that you never, ever want
to see one of those annoying snapshot pop-ups, or that your
preferred view of the BBC News site is World News rather than UK
News.
Of course, I think I'm in a relatively small selection of the
web-browsing populace in that I generally reject cookies in the
first place, precisely because I don't want my identity to be
correlated from one site to another.
My RSS toy has a notion of active items versus inactive ones;
inactive ones are ones that have disappeared off the public RSS
feed, although the articles themselves may still be live. Since
I've been very slack about adding housekeeping routines, I had
something like 15,000 inactive articles sitting in the database
when I finally got around implementing a means of switching
between showing active, inactive, or both types of
article. Skimming through these, you can see the evolution of news
headlines on the same story (for various reasons - mainly to do
with poor adherence to poor standards - my code considers that to
be a new article rather than an update on the original one)
particularly on the BBC where it seems that the very popular scare
quotes they put on their headlines come and go more-or-less at
random. I've now added a small amount of tuning to the process
which collects the RSS data in the first place so that it
disregards minor changes in the feeds, such as changes in
whitespace or punctuation, which should cut down the churn a
bit. There's actually a much better solution to the problem I'm
trying to solve (viz. the aforementioned standards) but
thus far I've been far too lazy to actually implement
it.
I contemplated my metadata idea a
little further, as far as looking up the availability of a few
domains for it. The thing is, there are three major restraints on
me doing such a thing: firstly, it's a shiny object, so I'd do a
half-assed implementation and then let it fester; secondly, if it
actually became popular I'd have to consider how to set it up in
an actual reliable fashion (not such a huge restraint, admitedly);
and thirdly, if it did actually become popular, I'm wary of things
that could be deemed to be in any way conflicting with my day job,
as that way lies legal foofraw that I'd rather not play
with.
After a little bit of prodding I managed to get a Jabber server up
and running. This is for another one of those nefarious
unmentioned ideas that I may have more to say about once it's
actually working...
December 2
I downloaded Google's shiny new mobile mapping toy during the
week to see if their locate-me-by-my-cellphone feature worked
here. Unsurprisingly, it doesn't; what was more surprising is that
the application no longer recognises my "cursor-down"
key, which makes it pretty difficult to do anything useful with
it. It appears to be a known problem that affects certain Motorola
phones, but there's no indication from Google themselves that
they're working on a fix.
Trying, once again, to do something useful with XSL, but let me
backtrack to explain: I have a script which scrapes a couple of
websites to obtain TV listings. It converts what it finds into
something resembling a standard format: XML as defined by the guys
who wrote the xmltv code. I then have a further script which
parses this, filters for the channels I actually have, filters for
the day of the week, and arranges everything in one or two
different ways depending on what I'm looking for. One version
shows all channels on the vertical axis, with the TV programmes
arranged by time on the horizontal axis; another version just
shows me what movies are on tonight. The "something
useful" I am trying to achieve is to replace the second
script with something far simpler, the idea being that if I give
my browser XML and XSL it should bang them together and produce a
web page. Unfortunately this idea has just now stalled - literally
- as I seem to have sent my browser off to la-la land with an
incautious piece of coding.
I think it's about time I sent Sandy a request for my
current to-do list, to stop me hacking about
aimlessly...
December 1
Tooling around with wireless toys. By which I mean randomly
locking up my wireless network and then struggling to fix it again
before realising I'd messed up some device
configuration.
Evolution wasn't a complete barrel of
laughs, but it was pretty funny in places. Not a run-out-and-see
movie, but don't discount it if it shows up on TV. The fake
Head & Shoulders advert at the end was a gem,
too.