A rough account of what I did with Emacs recently.
May 31
Socialising day... met up with relations (including mom) for
elevenses, and Lou and some of the Lou crew for lunch. Summer
seems to have come back again: blazing sunshine all day
long. Too nice to sit inside with a computer, really.
May 30
A quiet couple of beers in the office local with some of the
crew, and a quieter night at home.
May 29
Home of the Brave isn't
particularly bad, but the problem is that it doesn't do anything
new - it's essentially a generic anti-war movie updated to refer
to the current Iraq conflict instead of, say, Iraq I or
Vietnam. Not really worth chasing down if you've already seen
something like In Country or The Deer Hunter.
Had a go at figuring out why streamripper wasn't working right on
the Mac. First off, the included tre library is bad news: trying
to build it causes a mass of warnings, and trying to use it causes
bus errors. It looks at the very least like there's some sort of
"my pointers and my integers are the same size" mess
going on, but I wasn't going to dig into it too far since
streamripper's configure script has an option to skip it. Next,
there's an argv.c file which you're supposed to be able
to disable, but it apparently ignores that option, and the file
won't compile due to some curious conflicting prototypes for a few
standard functions like memcpy. The #define that
permits these appears to be based on whether you're using the GNU
C Compiler, which is silly, as it has these prototypes built
in. Then there's the iconv library: if you use the one that comes
with fink, it doesn't
work, but if you use the system one, it does. The annoying thing
is that both the fink version and the system version are 2.4.0,
but somehow the fink version doesn't export some critical
symbols. Removing iconv-dev is sufficient (apparently) to
fix the problem, which suggests that it may actually be a header
file problem. So eventually, this is what gets me a buildable
source directory: ./configure --without-included-argv
--without-included-tre CFLAGS=-DANSI_PROTOTYPES.
Of course, after all that it still wants to skip the first track
in the stream. It also prints a bitrate of -1, which is incorrect
for this particular stream. The first problem appears to be a
failure to initialise prefs->dropcount correctly; adding
-k 0 to the command line appears to cure the problem
nicely. I suspect the second is actually an artifact of me not
including Ogg support - from a casual glance, it appears to
unconditionally try to set up the Ogg decoder even if you don't
use one; however, there may be a number of other factors causing
this, including (again) a failure to initialise things
correctly. Remember kids, just because you haven't used the memory
yet doesn't mean it's set to zero (hello to you folks at
OpenSSL who relied on this, and you folks at Debian who commented
it out...) Anyway, the upshot of all this is that I now have one
less thing that I need to do with the Linux laptop.
May 28
Went back to the aforementioned Perl banking stuff problems, and
fixed them. More HTML changes, mostly. I'll post an updated set of
modules before the weekend.
May 27
Charlie Wilson's War is a
rather excellent piece of work, and sufficiently close to the
truth that the eponymous congressmen is quoted as saying that all
the bits he'd object to are provable. Well worth a
look.
May 26
Gym night. No geekery to speak of. I'd started looking at
problems with the Perl banking stuff and gave up on
it.
May 25
...and back to Dublin. With an Airsquire Micro Helicopter, no
less.
May 24
Off down the country again... stopped along the way to buy a new
digicam. More toys, whee!
May 23
Happy birthday, big(ger) Bro!
May 22
Gattaca is one of those movies that I
keep missing when it's on TV, so I finally rented it instead. It's
a bit too slow for my liking; nothing inherently bad about it, but
I just found myself looking for something to engage my attention
at various points throughout.
May 21
Hurrah! Gym telemetry all repaired. Well, at least on all the
machines I'm likely to use, anyway.
May 20
Gah. The plan for the evening, such as it was, was to head to
the gym and try and get myself back into something approximating
working order after my exertions on Sunday; said plan was somewhat
scuppered by arriving at my house only to discover that I'd left
my keys on my desk. Further scuppering was induced by the fact
that it was the landlady's bridge night, so she wasn't back until
10:30. I wound up treating myself to a restaurant dinner and a few
too many coffees.
May 19
As suspected, running streamripper on the one linux box I'd
previously installed it on results in successfully ripping the
track that the MacOS version skipped. More investigation required,
I guess.
Ok, that's pretty funny. I have some code that I've been tooling
around with for a long time that scrapes one website and then
crossreferences it with another site (deliberately vague, I
know). Recently I ran into a problem with the first site using a
single quote in a significant place; it's something that
commonly breaks either your javascript, your database queries
(although this is an unforgivable rookie error AND a potential
security hole) or some combination of both. I ran into a third set
of problems while trying to cope with this, mainly to do with how
the MacOS browser handles the data I was throwing at it. Having
half-heartedly poked at this for a few days I left it in favour of
other things, and now I discover that the original data has been
updated to avoid using a single quote after all - I guess it
breaks their in-house systems or something.
[Guide for Mom: what's wrong with the single quotation mark? It's
a simple enough problem: normally, if you want to put a piece of
text into a program in such a way that the program treats it just
as a piece of text and not some piece of code to be interpreted,
you put it in quotation marks - almost as if it's reported speech,
which presumably is where the syntax originates. Some languages
require single quotation marks, some require double quotation
marks, and some allow you to use either, occasionally with subtle
distinctions between how either variant is handled. But what if
you want to include a quotation mark as part of your quoted text?
Written English has some rules - or perhaps guidelines - on this,
but that aside, a person can look at a quotation mark and
generally figure out from context if it's part of the quoted text
or part of the surrounding unquoted text. Computer languages
generally aren't quite smart enough to do that, so a spurious
single quotation mark can get interpreted as the end of the quoted
text, leaving the computer to plough through the rest of the
quoted text as if it were, in fact, code. How you get around this
problem again varies from language to language, and dealing with
the different variants almost inevitably causes bugs, occasionally
of the hair-raising sort that leaks vast amounts of personal data
onto the Internet.]
May 18
Got up, drove to Terenure, ran 5 miles, drove home, drove to
Wicklow, hung out with the guys, gals and offspring, drove back to
Dublin. Legs are still a bit sore from the 5 miles bit.
Built streamripper from
source on the MacBook; the included TRE library craps out
somewhere, but there's an option to disable it, so that's ok. The
resulting binary skipped the first track on the stream I was
trying to rip, however, which is not so ok. Will have to power up
the FC6 laptop to find out if the problem is the stream or the
binary I've just built (my guess is the latter).
May 17
Back in Dublin again.
Balls of Fury: Balls of fun. Not
high art or anything, but high art rarely makes you laugh out
loud, right?
May 16
Down the country for a wedding. Congrats to Ralph and Eilis.
By "down the country" I mean "five and a half hours
in the car, covering about 250 miles". Some of the driving
was quite, uh, entertaining.
May 15
Hitman was about as good as you'd expect
for a movie made from a video game, i.e. not very. Bizarrely,
Timothy Olyphant seems to walk as if he's a character from the
game, i.e. in that odd part of the Uncanny Valley where he looks
creepily non-human yet human-like. Anyway. Not even a movie to
switch off your brain to.
May 14
Happy Birthday, dad!
May 13
One of the guys in the office loaned me a Flight of the
Conchords DVD. I watched one episode. It's pretty awful, and
that's being kind.
May 12
Poking at the phone with Perl again. Managed to trigger a
spontaneous reset simply by connecting to it via Bluetooth... such
quality software these phones have.
May 11
War was a bit more cerebral than I was
expecting, and I certainly didn't see the twist coming. Pretty
good movie, though.
The Palm is playing silly buggers, failing to sync completely for
reasons unknown. And getting wedged while it's trying to cancel
the sync process. And it managed to lose about a week of EatWatch
data on me when I finally did get it to sync. Gah.
May 10
Oof, woke up with a head full of BEES. Or something. That'll
teach me... or not.
The non-movie-watching half of my attention was focused on a pile
of rancid perl scripts that I've accumulated for dealing with
phones, mainly concerned with retrieving SMS messages from the
phone and archiving them, including cross-referencing my Vodafone
bills to get datestamps for sent messages (since for some reason
the phone never bothers updating the date on outbound
stuff).
May 9
Office drinkies.
May 8
I can vaguely recall one of the video shops of my youth had, for
years, a movie poster for Videodrome - basically James Woods'
partly there, partly not body on a blue spiral
background. Eventually I saw it on TV at some point, and while
it's fairly typical Cronenberg (visceral goop apparently being one
of his favourite things) it's also rather a good piece of work; I
recently picked it up on DVD for rather a small amount of cash and
watched it this evening. I find it funny that the scenes featuring
the aforementioned goop are, in fact, more realistic in many
respects than the more straightforward VFX of people getting
shot... if you've not seen it, it's at least worth seeing as a
cult classic.
May 7
Noticed some further breakage on the MBNA scraping
stuff. Dammit. This always happens - I hold off for ages on making
a fix to see if the site "settles" and then as soon as I
make the fix they change it again.
May 6
Michael Clayton could probably
have done without the entire opening segment (particularly given
that it's out of sequence and recapped in sequence later
in the movie) but aside from that is a pretty good piece of
work. Worth a look. Coincidentally starring Tilda Swinton
in a role that has certain parallels to her role in last night's
fare.
May 5
Crazy phone discovery of the day: phone becomes very erratic
when SMS mailbox fills up. To add to the fun, I received a SMS
from Vodafone (apparently) to tell me my SMS box was full. How am
I supposed to receive that message, exactly?
Watched Constantine's
director/producer/whatever commentary; as these things go, it was
pretty wacky. Not quite Kevin Smith, but certainly more
interesting than the usual mutual back-slapping crud.
May 4
Lou was at fencing practice again so she stopped by for the
usual coffee and gossip. We took a wander around Dalkey as well,
what with it being sunny.
Hacked up some Plua to allow
my Palm Pilot to talk to a mobile phone via IR (Plua 1.x comes
with no support for Bluetooth, alas). Surprisingly little code was
required, too. Nice language, although the non-regexp regexps are
a bit wacky.
May 3
Mostly fixed the TV listings toy. The source from which I'm
scraping the listings changed their layout somewhat - ah, the joys of
webscraping.
Usually, "based on a true story" is Hollywood-speak for
"we took one person's real name for the movie. Except we
changed it a little". Howver, Breach doesn't ever stray far (if at
all) from the truth - given that what's actually known is only as
much as the FBI felt comfortable enough to okay. Aside from all
that, it's an excellent spy movie; as the director noted, you
really can't make up any of this stuff - what actually happened
(with caveat as noted) is far better than any fictional
storyline. Well worth seeing.
May 2
Hmm. Looks like the toy I use for scraping TV listings is (a)
broken and (b) not reporting the fact. Curses.
Watched Grosse Point Blank - one of
the few things I own on VHS rather than DVD - and it's still as
good a movie as when I first saw it. If you've not seen this, you
really should.
May 1
Some of the more fascinating TED talks are the ones where the
speaker has way too little time for what they're trying to cover -
Dean Ornish, for example, giving you the dirt on how a change in
diet can dramatically change your health - and he's only got three
minutes to do it. It's so punchy you're almost left reeling from
the flood of information.
Trying to refamiliarise myself with the more obscure corners of
the code I wrote myself in librvp, such
as the file transfer stuff. My recollection of this is that I
mostly hacked it together over the course of a few nights with the
help of some packet traces and what we will laughingly refer to as
"documentation"; it's certainly entertaining to read
some of the error messages I put in, but there's also a few
potentially nasty bugs.
Hmm, interesting. I think it's not originally my code, but it
looks like some of the network write stuff tries to read a
response immediately, which should really be decoupled into a
separate function. Note to self, etc. Might explain some of the
more persistent yet difficult to reproduce bugs, too.