Hacker's Diary
A rough account of what I did with Emacs recently.
- November 30
- Office drinks. 'nuff said.
- November 29
- Well, I'd planned on doing other things, but Bad Boys was on TV. It's still a nice
chewing-gum-for-the-brain sort of movie.
- November 28
- Cypher plays like something Robert Anton
Wilson would've written. Tons of paranoia and misdirection and it
all holds together right up to the denouement. I like this; not
quite enough to buy it, but I'd certainly watch it
again.
Did some more Palm Pilot data cleanup. Still too many leftovers
from the old backups, but I'm gradually getting them whittled down
to data I actually want to keep.
- November 27
- Zwartboek is pretty grim throughout,
but well made. Worth a look if you're into war movies, I
guess.
- November 26
- Had a novel idea at the weekend while trawling the Argos website
for information: a GreaseMonkey script
combined with a web service to add semantic information to a
website. Allow me to explicate: you visit argos.ie. It has, among
other things, a store locator, which is bloody useless because
it's a static map. So some helpful soul transfers the locations
into a Google KML file, and updates the unnamed web service to add
something like
Site: argos.ie
Data: store
locations
Format: kml (or maybe Type: Google
Maps)
You could also transcribe details like contact
numbers, opening hours, etc. into appropriate formats (iCal,
vCard). So now you visit argos.ie, and the GreaseMonkey
script makes a call to the unnamed web service, which says,
"We have a google map for you, and a phonebook", and
GreaseMonkey provides some icons on the page to allow you to pop
up or download the relevant details. This might be just intrusive
enough to merit being a Firefox extension rather than simply a
Greasemonkey script, but you get the idea. I'm writing this up
here because I know it's exactly the sort of thing that I'd play
around with for a few days, get it halfway working, and then
abandon in favour of some other shiny object. Also, I've already
found the store. I don't need a store locator any more,
dammit.
For those of you who prefer buzzwords: Web 2.0! Semantic Web!
Ajax! Rah rah rah! HOOP HURG CYBER HBLABHBABABHLBHBA.
I am contemplating adding an idea bucket to the website. Not least
so that I can keep my ideas where I don't forget about them, and
possibly where someone's likely to find them and either implement
them or bug me into doing so.
I am downloading a bunch of stuff via iTunes podcast interface
right now, and I really can't get over how amazingly clunky it is
for something produced by Apple. For a start there's the
adding/editing a podcast interface: a text box for adding, and no
obvious way to edit if you make a typo. Then there's "Error
-3259" on some of the feeds (goes away on retry, eventually):
someone somewhere in Apple land knows what that number means. Why
not put the actual text into the window, instead of an inscrutable
error number? Oh, and I've one item that refuses to download
at all, and I'm not getting any errors from it, either,
so I can't tell what's going on. I guess since it's pulling from
my own server I can check there...
- November 25
- One for I Want Sandy users:
#!/bin/sh
action=`basename $0`
echo $action $* | /bin/mail -s ""
[yourmail]@[yourdomain].iwantsandy.com
Dump that into
a file called remind somewhere in your path, and hardlink
it to remember and lookup. Then you can enter
those I Want Sandy directives on the command line. You'll still
have to read the responses via email, but it's handy if you want
to make a quick note of something. For now it appears that either
the website doesn't have an API (strange, since it's based on Stikkit, which does
have an API) or they're very deliberately not saying anything
about it. Makes it tricky to synchronize the data there with
anything, really.
I almost bought a Mac laptop on impulse this weekend. Maybe
that'll be my christmas present to myself this year. I'm certainly
getting tired of the laptop I'm using right now; aside from its
general wimpiness in the face of Firefox's memory/CPU
requirements, the left button on the mouse pad is starting to
flake out. And this is a mouse pad I've already replaced once,
too.
- November 24
- James pinged me
this evening: he was out skating with his wife and wanted to know
if I'd join them for a beer afterwards. This, it turns out, is
about the most productive thing I did today - the rest of it was
spent enjoying the comfort of my (somewhat worn) sofa!
- November 23
- So once upon a time I wrote some code for my chat client (XChat combined with Bitlbee) which would
detect when my screen locked and set my status to Away. And at
some point I noticed that it was broken: if the screen lock
program (xscreensaver)
wasn't actually running (which in turn was because I'd switched
from GNOME to KDE), when I finally got around to
shutting down XChat it would simply hang. I eventually sort of
traced the problem to the code that checked to see if the
screensaver was active or not, and so I disabled that code, and
was then stuck with manually setting my status to Away.
Today, I finally added the extremely small amount of code required
to have it detect the KDE screensaver, and so my automatic Away
status is back in action. Hurrah!
Good: buying rechargable batteries. Bad: realising I don't
actually have a charger big enough for them (they're D-cells)
until after I'd left the shop. I bet I could've gotten a deal on
battery plus charger rather than just battery, too.
Spent a long, long time attempting to consolidate a dozen or so
different backups of my palm pilot from various periods. So far
I've managed to get the address book approximately in order, and
merged pretty much everything else so I've got just one set of
files to work with. Really, though, I think I'd be better off
visiting the nearest bar.
The Fifth Element special edition 2-disc DVD ftang ftang
olé biscut barrel has possibly the worst menu system I've
ever encountered on a DVD. It took me several minutes to figure
out how to get through the scene selection...
- November 22
- Tooling around with I Want
Sandy, which is a pretty nice toy.
Also playing around with my Vodafone site-scraping code,
specifically the stuff I wrote to access the billing. Needs more
work, I think.
I'd seen the start of Intolerable Cruelty before,
although I've no idea where. I watched it on the strength of a
recommendation from William Goldman (yes, that William Goldman) in
his book "Which
Lie Did I Tell?".
And I'm glad I did. The courtroom scene where the client is
trying to establish if his lawyers have encountered the judge
before is priceless, and there's a lovely layer of schmaltzy
romance sprayed all over the whole thing. Go watch
it!
- November 21
- Investigating some Windows laptop diskspace issues, I find that
the System Restore "feature" is chewing up over half of
the available drive space. Booted into Linux, nuked the damn
thing (after doing a full backup), rebooted back to Windows,
laptop is happy once more. Hurrah!
- November 20
- After being out of service for quite some time, the Vodafone
picture album "feature" appears to be back in
operation. Of course, it's still a mess of broken javascript,
missing images, etc. but at least it means my phone-to-Flickr
gateway is back in operation. I've half a mind to trawl through
the logs for the gateway and graph how often the picture album is
down...
- November 19
- Java-based sudoku on my phone. That's it, no more productivity
from me.
- November 18
- Sudoku for the Palm Pilot. Nice. Keeps me
distracted.
- November 17
- Spider-Man 3 was too long. I'm not
sure if this was a matter of editing or just because they had too
many sub-plots going on, but really, when the whole
goo-from-outer-space plot didn't get going until an hour into the
movie, I wound up mentally trying to decide which scenes should
have been cut. No conclusion reached, however.
- November 16
- An unexpected "feature" of Perl which I stumbled on
today:
my @cm = qw( foo/a foo/b foo/c );
my $p = map { s@^.*/@@; $_ } sort @cm;
print join( ", ", @cm ) . "\n";
This prints
"a b c", i.e. that map/sort bit has, in
fact, corrupted the original array. Which I wasn't expecting, as
noted. It took me quite a while to find this, because it's
really not obvious. Even doing a silly hack like putting
parentheses around the sort @cm bit doesn't work - your
original array still gets corrupted!
[Guide for Mom... well, this one's a bit tricky to explain,
actually. The short version is that I've got a list of things, and
I thought I was making a copy of that list and modifying the copy,
but it turns out I'm modifying the original list. So I was
expecting this to print out "foo/a, foo/b, foo/c" like
it says in the first line, and it didn't. This is what your son
does for a living :)]
- November 15
- KPilot is truly awesome in its flakiness. Typically, one sync
attempt in five actually succeeds. The rest of the time, something
doesn't work and I don't know what, because the UI just says
something meaningless like "lost connection to
device". How? It was plugged in all the time...
- November 14
- Met up with Lou for the usual coffee and gossip. Chocolate and
gossip. Hot chocolate with marshmallows, and a chocolate muffin. And
gossip.
Accidentally found the dictionary for my phone. As in, the one
that it "learns" from my typing. Also a bunch of other
things that I didn't think would be visible files (i.e. I thought
they'd be hardcoded into the system). Could have some fun with
this...
- November 13
- Still continuing to fiddle with the Palm Tungsten. I've decided
to set it up cleanly from scratch, since doing an
"upgrade" from the Vx just left me with a bunch of
useless crap installed (like drivers for the old external
Bluetooth sled I picked up for the Vx) and omitted some useful
stuff (like Plucker). The
downside to this: I wiped the Tungsten, then told KPilot to sync
it. KPilot refuses to sync and instead crashes; I'm assuming this
is because I've not set the username or whatever it is on the
Tungsten. Gah.
Ok, so it turns out it's just the Autodetect option that's
broken. Once I kicked it a few times it offered to set the
username for me, and now things are back in sync.
- November 12
- Impossible as it may seem, Epic Movie was actually
worse than I expected. There's no good reason to watch
this.
Hacking on the aforementioned *BSD code again, but I realised I
wasn't exactly taking a structured approach to it (by which I mean
I was randomly chopping out bits of code and attempting to replace
them with code cribbed from another source), so I think I need to
go back and look at what's actually going on in the code and see
if I can figure out how to make it work. In the mean time I got
KPilot to talk to the new Palm over the USB cable, so I'm not
completely without backups.
- November 11
- Hacking on the *BSD code a bit, but mainly watching the last few
Firefly episodes, visiting my
cousin for Sunday dinner, and going to the gym.
- November 10
- Further adventures in Palm vs. Bluetooth on Linux. Getting the
new gadget to sync is, uh, decidedly non-trivial. See, on Windows,
you plug it in and you press the button. On Linux, you... well, as
best I can tell, you're supposed to set up networking, then set up
a network hotsync, and then throw your Linux box out the nearest
window and buy a Macintosh. Fortunately, the *BSD guys came up
with a marginally better solution which would be really great if
it worked on Linux, so I'm trying to make that so. Why noone has
done this so far I have no idea. Also, why the Linux and *BSD
Bluetooth libraries differ so much I also have no idea. Fetch me a
hammer, I'll fix this....
- November 9
- Office beers, and a visit from The Sister and The
Brother-in-Law. Happy Birthday, John!
- November 8
- I picked up a boxed set of Firefly during the week, so between
that and the gym there's not been a whole lot else going
on....
- November 7
- Goodies arrived from lying weasels. Despite the packaging
looking like it'd been gnawed on by actual weasels, everything was
in good shape. Good enough, in fact, that I managed to nick my
thumb on some of the plastic packaging... Palm WiFi was scarily
easy to set up, but it'd be nice if it had things like
"connect to any available open network". The
instructions also tell you to shut off Bluetooth while using it,
although not why - I presume it's because of the power drain, but
I can envisage wanting to use a Bluetooth keyboard and the
WiFi connection at the same time.
The case isn't quite as good as the battered one wrapping my Palm
Vx for one simple reason: the latter more-or-less physically
attaches to the enclosed Palm, preventing it from slipping out. I
found with my new toy in its new case, putting it in my pocket
upsidedown was sufficient to shake it at least partially
loose. And yes, I am liable to be that careless with it - that's
the whole point of getting the case. I suspect a little bit of
velcro will fix this, however.
It took me a while to actually get interested in Birthday Girl, and by the time I
did the movie was nearly over. I don't know if it's that it wasn't
engaging enough or that I simply wasn't in the mood, to be
honest. I did find John's attitude when he's figured out what's
going on to be quite funny. Not really a movie I'd rush to
recommend, though - probably good for a slow evening, but nothing
more.
- November 6
- So while DHL could get my Palm goodies from Manchester to Dublin
overnight, they apparently couldn't get it any further. I guess
they were tired. It's been "With delivery courier as of:
November 06, 2007 10:50" since, well, 10:50
today.
Oh wait, it updated after 6pm to "Scheduled for
delivery". And the lying weasels marked the update as
happening at 11am this morning. DHL, the L is for
"Lying"! (I guess that means the D and the H are for
"Weasels" somehow. Maybe if you bend them into a
W.)
- November 5
- Met up with Lou for coffee and gossip. Actually, hot chocolate
and gossip, but that's just implementation detail.
Next is a bit of a head-wrecker. Well,
anything that plays with time travel or time perception is going
to do that. However, on top of the usual issues of "is he
doing that because he's figured out that any other course of
action is going to get him killed?", you have the fact that
the film flips into "forward time" a few times with no
indication. I'm sure the obsessive movie geeks have already timed
all of these to make sure they're within the alloted two minutes
per occurrence, but it's a bit distracting trying to figure out
which bits are happening and which bits are just future
peeks... anyway. Good movie, worth seeing.
- November 4
- More Bluetooth fun and games. I've sorta-kinda identified why
the older Palm gadget won't hook up to my little network, but I
can't say I understand the specifics just yet, which means I don't
know how to fix the problem. And while it's about to be retired,
I'd like to make it work anyway.
I also installed the KDE Bluetooth stuff that's under development,
and true to form managed to crash it in fairly short order... it's
got an interesting little hack whereby you can tell it to lock the
screen if a given Bluetooth device goes out of range - so, for
example you could key it to your phone so that walking away from
your computer with your phone causes it to lock automatically -
but the problem is that it doesn't seem to work very well - it
only picks up my phone when I explicitly set the phone to
discovery mode, and that only lasts three minutes, at which point
my screen locks. Nice try, no cookie.
Messing around with the passwords Firefox has stored for me over
the last several years, and I think maybe I need to start changing
passwords since some of these have been in use a long, long
time. Of course, since there's over 200 of them stored, that's a
lot of password-changing...
- November 3
- After a bit more fiddling around, I managed to get the Palm
networking via Bluetooth. I'm still not 100% clear on what I
changed, alas, so if it breaks I'm back at square one. Still,
kinda nifty to be able to use it as a handheld web device without
thinking about the cost of a data phone call.
Having played around with the apps on the E2 for a bit, there are
a few sticking points:- Boxes which pop up for e.g. your
password never seem to have the text field focused, so you start
writing before you realise the device isn't paying attention. Bad
UI, that.
- The password boxes don't obscure your writing
like the older PalmOS ones did, so you're vulnerable to
shoulder-surfing.
- The VersaMail application really, really
wants to only ever use one network connection. I'd be much happier
with it using any available connection, since I don't want to
manually toggle it between Bluetooth dialup, Bluetooth LAN and
wireless.
- The default web browser, Blazer, has
interactivity problems when downloading - i.e. you can't get it to
react much when it's busy pulling down a page. This is
particularly problematic if the page is big.
- I'm still
trying to get the hang of Graffiti 2; I'd gotten pretty proficient
with the original Graffiti, and the changes in Graffiti 2 are
sufficient to slow me down completely.
On the whole,
though, I do like this device, and will be switching to using it
full-time once I get the hard case for it (next week some time,
according to eXpansys' delivery page).
Vodafone's Photo Album service appears to be on the fritz again. I
think at this point they've probably abandoned it and not bothered
telling anyone. I've emailed to check, anyway.
- November 2
- Having watched half of the Google video of Linus Torvalds
talking about his SCM tool, git, I figured I'd play around with it
a little. And, well, holy crap, it's rather awesome. I see what he
means about speed - it's quite refreshing to see something running
at pace on my creaky old laptop. I need to do a bit more reading
about how to use it for things like vendor branches, but on the
whole I think I'll be ditching my local CVS setup at the very
least.
Happy Birthday, Ellen!
[and a quick Guide For Mom: Linus Torvalds is the guy who wrote
Linux. He's strongly opinionated ("if you disagree with me,
you are ugly and stupid" - but said with a smile) but he's
smart enough to back up his opinions. SCM, in his terminology, is
Source Code Management, which means keeping track of many
different versions of the files that are used to build a piece of
software, so that for example you can rebuild the version you
worked on last month, or compare some changes you made with the
original version, and so on. Traditionally, you have one central
store of all the versions and everybody works on their own copy,
pushing changes back to the central store when they're finished
working. git takes a completely different tack, and it's
impressively different, and I've still not gotten my head around
exactly how certain things should work, so I need a Guide For
Ronan at this point!]
- November 1
- Tried getting the Windows bluetoothy stuff working. Equally as
successful as my attempts on Linux, with the added bonus that
there's less debugging information available. This is
annoying.
previous month | current month | next month