I didn't spend nine years in Evil Computing School to be called 'mister', thank you very much.

So I actually forgot to ever actually post anything about finally ever handing over the books and forms and such and escaping the University for hopefully the penultimate time. That's done. I have a letter from the Student Services Officer informing me that the School Board is reccommending to the Senate of the University that I actually be awarded the doctorate and everything.

Maybe eventually I'll snap out of the death march mentality, stop waiting in dread for the other shoe to drop, and be a useful and productive member of society!

Or not.

Regardless, since I noticed the central University upload of my thesis ignored all the supplementary matter on the CD that the examiners wanted, this has been this evening's productive endeavour:

Collapse )

...along with putting up a better version on the departmental repository that does actually have all the supplementary kipple. (In true computing choose-your-brokenness style, the raw videos don't have any closed captioning because i) I didn't do it at the time ii) didn't have the time to work out how, if at all, you can/would embed them in a way that something might ever use them iii) didn't/wouldn't expect that to work anyway without a week of frustration; while the YouTube videos are at reduced quality. But also don't require you to have VLC installed which is probably their biggest advantage.)

As for the slow demise of LiveJournal and my use of it, if you're bookmark-inclined and still think I'm interesting for some inexplicable reason, you can switch to For now it'll bounce you back here, but it has the advantage of letting me change that later.

...I'm sure previewing posts didn't used to require JavaScript. And didn't used to spew error traces from crashed styles. And if you can't comment then, uh, sorry, but it seems "comments from friends only" might be broken but is at least keeping the Russian spam out of my inbox.


Mr. Bond, you persist in defying my efforts to provide an amusing death for you.

The PhD continues to linger, and thus so does this journal.

A couple of months late, I finally receive sign-off on corrections. All that leaves is to print, dump that on the binding office, and throw the results at the department office with a small handful of forms, right? Which is most likely to involve spending half a day trying to convince computers to talk to printers and printers to not chew the pages.

Hahaha. No, the printers worked fine. Well, the one that wasn't completely broken, anyway, but I was forewarned about that.

But we've lost our binding ability at the central print office at this University, and while back when I was soft-binding the viva copy they gave the impression that they'd send off copies to the outsourced third-party on student's behalf for a fee, now their entire contribution to the process is to hand out business cards. There's another binding office on campus (which I used to get the soft-binding done), and it does hard binding, in black, with gold lettering, on the right kind of board as far as I can see. Yet they claim the kind of hard binding they do is not suitable.

So, off to drive 900-odd pages carefully to a industrial estate in Romsey, since the Portswood binders are bouncing e-mail and have no website and don't have the ex-University staff and are recommended against by the print office for quality of hard binding and are basically looking like an iffy option at this point. (The print office thought the Romsey firm offered from-campus collection, but they don't; only delivery [by which point it should be in the more robust form of a book]. They can print themselves, but at an exhorbitant 7p/page for monochrome.)

Except there's a form to be bound into the middle of the frontmatter of the thesis, and that also needs to be in the electronic copy, although the guidelines as written are hilariously ambiguous on that. But that's OK; I have printed copies of it I can insert before binding and it'll only mess up the roman numeral numbering if people are scrutinising, and I can insert it into the electronic one with Ghostscript.

Except Ghostscript decides to helpfully "fix" hyperrefs and the PDF ToC when splitting and recombining PDFs, and since I'm splitting the (written) ToC and the pages it points to into separate files, it chews all the links up and spits them out into a complete mess.

There's probably a witty comment to make about hypertext there.

So, planning to rebuild the thesis, hoping it doesn't accidentally cause any stupid reflow changes since the signed-off version. Oh, right, looking at these guidelines, there's supposed to be a redundant copy of the title on the abstract page. None of us have picked up on its absence in the years this document has been drafted.

And there's the part of the LaTeX class file that should be adding it.

And there's the part of the LaTeX class file that clears \@title during \maketitle (and also redefines \title{} to be a no-op). This is a common idiom that I can find no justification for. So I bodge around that by reasserting the title. For the sake of anyone else wrangling this:
\makeatletter % Turn on ability to trample style things (@)
\gdef\@title{Your title goes here} % Restore this after maketitle wipes it
\makeatother % Turn off ability to trample style things
(I have no idea if this has subtly broken everything. I also don't care unless the breakage is sufficiently noticable to prevent award of a PhD. If you care more for your own documents I suggest you try to find out why on Earth \maketitle wipes half the document metadata in the first place.)

Of course, my abstract neatly fit one page, and now doesn't. So tighten the text a little and hope I'm not massively violating the sacred procedure here by making a tweak after the examiners have signed it off. And then I can care about rewriting the form from DOC to TeX and inlining it (which at least means the font and such matches), and since it's all-change may as well set "department" to "school", as I believe that is the current whim.

So this has been a fun little interlude in what should have been a simple procedure. And I'm back to the "printing" step, at least for the frontmatter. Which means trekking back into a lab I'd really hoped I'd seen the last of yet again.

This PhD is taking a lot of killing.

Blocking Windows Media Player's Folder.jpg

If you use Windows Media Player under Windows 7 (say, because all media players are terrible, but this one at least vaguely integrates with the system), you may have noticed it has the worst heuristics for album art ever. The problem (well, a problem, and one which makes a lot of noise on Google) is the idiotic assumption that if any track (picked apparently at random) in a folder contains embedded album art, then this must apply to all tracks in the same folder without any art set.

If you have a folder of random MP3s from creative types on the Internets you can perhaps see how this could go wrong.

There is (as Google results seem to agree) no way to turn off this hateful malfeature. However, you can take the old UNIX-y approach of getting in the way. There are two files in the way (and if you have multiple folders to deal with I pity you since you're going to have to script something to do this for all of them): Folder.jpg and AlbumArtSmall.jpg. First you need to zap them, and since I kind of like keeping hidden system files hidden in Explorer, this is in a Command Prompt:
attrib -h -s Folder.jpg
attrib -h -s AlbumArtSmall.jpg
del Folder.jpg AlbumArtSmall.jpg
Note that if you try to feed attrib multiple files it'll bork at parsing its command line. Now, create some zero-length files to replace them. You can use renamed New Text Documents; I used Cygwin's touch command. Then (separately, else you won't get the Security tab) bring up each one's properties in Explorer, and drill down to the access control list for Everybody (you might need to add one). Leave these windows open, and make the files hidden and system so that they stop cluttering up the place:
attrib +h +s Folder.jpg
attrib +h +s AlbumArtSmall.jpg
(Please note that a plain old DOS-era attrib +r, or simply ticking the "read only" box, is totally ineffectual.) Now in the ACL windows, tick to Deny Write for these files (if you do this before hiding them, attrib will fail). Windows Media Player (and everything else) is now blocked from changing the JPGs to anything but empty files, and will be forced to resort to actually displaying the album art, or lack thereof, in the media it's playing instead, like it should have done in the first place.

So far this is working. I may yet end up editing it with a "nope", since the heuristic, like all the most hateful of its kind, it badly unpredictable.

P.S.: Replies of the form "you should have used media player X instead" will be summarily deleted.

No, this journal's not quite dead yet. Amongst other things, ljgrabber is vaguely Mac-specific due to using Safari cookies, and won't run on the old Perl install on my 10.4 Mac, which remains a 10.4 Mac until I no longer need it to build a corrected thesis. Update: As if to prove a point, within 12 hours it has attracted three foreign-language spam comments.

The End. Almost. Sort of.

I think it's reaching time for ths journal to come to an end. Quite aside from LiveJournal's own decay in terms of everything but advertising, it's now my primary source of spam from the comment system. So I'm probably going to have ljgrabber lock all the doors and maybe one day I'll actually host something under my control that isn't full of JavaScript.

Also I'm now Dr LionsPhil. Or maybe Dr-pending-corrections-being-ticked-off LionsPhil. I'm not entirely sure how that works.

Useful metadata which your MP3 software will ignore.

disctag is something trivial I just threw together (literally—it's past-midnight Perl, so if you care about it getting confused and chewing up your tags make backups first) as a post-step for abcde, a frontend for CDDB/cdparanoia/lame (et. al.) which—despite being a huge hairball of sh—remains one of the few ways to turn a CD into a bunch of MP3s in a vaguely automatic and sane manner I've found (iTunes' encoder is iffy and it tends to be funny about only using its XML database for metadata; Max.App is about equal to abcde except for the fact it uses a lookup service with incredibly patchy coverage; and EAC and CDex of the Windows world are both atrocious UI trainwrecks in every regard and also serial and only filling in half the metadata).

It sets up the TPOS ID3v2.3 tag for multi-CD albums. It also sets TRCK to include the total number of tracks, since no bugger ever sets that either. And renames the files iTunes-style to be prefixed with the album number, so 01.Dont_Stop_Believin.mp3 becomes 1-01.Dont_Stop_Believin.mp3 and everything lexically sorts helpfully in your filer or shell expansions.

With this correctly set, you can take off the atrocious hack of pretending that each CD is a separate album with " [Disc N]" suffixed on the end of its name, which makes media libraries that autoarrange files into folders less useful and also deeply offends anyone who would like their computer to have correct information to work with. (Computers working with incorrect information are a common cause of hateful behaviour such as not letting the "Play this entire album" button work.)

Of course, this is the lovely theory. The less-than-lovely reality is that iTunes—written by freaking Apple, whose usual view of other people's standards is that they're quaint little curiousities that they need support only as far as needed to help people migrate into the Apple ecosystem—is the only thing I've found that actually gives a damn about this metadata. foobar2000 doesn't understand it. Windows Media Player doesn't understand it. WinAmp, VLC, mplayer, MPC et. al. just play things in the order you specify anyway (WA3 had some kind of media library but also caused cancer in lab rats)—which is at least hopefully the correct lexical ordering from your filer. And when I say "doesn't understand", I mean that if you tell foobar2k or WMP to play an album so tagged, it'll play track 1 from every disc in the order it found them, then track 2 from every disc…

(And, of course, if you actually tweak this in the iTunes metadata editor—again, the only one I've found that'll show or let you change TPOS, although VLC at least shows it read-only buried in a tree in a tab in the extended metadata window, there is a good chance iTunes will replace your ID3 tag with nothing but strange hex comments and then ferret away all the metadata in its big XML database. Writing some Perl to dig the metadata back out [this part is at least done] and re-write it as regular tags is still on the to-do list. [iTunes is also the only one I've found to actually show explicit "out of" fields, rather than expecting you to have read the ID3 spec and know to type "1/18" as a track number.])

The virtual does not have a monopoly on the suck, of course. I broke the damn case trying to pry CD2 out. Which is at least better than breaking the disc. And it's only one of the incredibly stubborn plastic centre teeth, rather than the nefarious multiple hinges that were trying to flex the wrong way. I want to find whoever designed those 2CD jewel cases and beat them with textbooks on designing everyday physical artifacts to not be ridiculously fragile.

So basically it's almost 2011 and both mechanical plastic engineering and music library software still can't cope with the fact that sometimes an album has more than one disc. Hooray.

Oh good. At some point, LiveJournal broke recognizing HTML entity references and not escaping all the ampersands.

FreeChain for 64-bit Windows.

Since someone e-mailed me about it(!), I've rebuilt FreeChain as a proper Win32 console application, which means it runs natively on Windows all the way up to 64-bit Windows 7 (something the DOS version won't), complete with hastily-drawn icon. In the process the sort-of-abandoned GTK+ port source is now up. I can't even remember what state that's in, although my SVN log seems to say about halfway.

It feels kind of odd having a codebase (tiny and simplistic as it may be) that compiles cleanly from that all the way down to proper 16-bit MS-DOS.


  • Motherboard probably not bad. Stick definitely bad. Now waiting for eBuyer testing to confirm so can has moneys back. Possiblygood. Edit: Good grief, they agree. Success.
  • Still no viva date. Have now pretty much entirely forgotten PhD claims and all references will be out of date. Can't remember if I have a hardcopy of the thesis somewhere; I think I threw all the bound ones at the school office. Ungood.
  • Spent best part of a week trying to back up new laptop to new external drive. Eventually found new laptop has bad sectors already. Much stupidity involved in returns. Need to have zeroed drive by tomorrow morning (I find today, a courier arriving out of nowhere expecting a pickup, the last I heard being that everything was out of stock and deferred) and hope the image taken works on the new drive properly, despite tech support having to guess which drive they should send me because their system kept crashing and wouldn't accept my model number. ddrescue over CIFS to NTFS (don't ask) has already been going since yesterday and is getting exponentially slower. Estimated time remaining keeps rising. Ungood.
  • Have been lying down to avoid falling down and enjoying an exciting array of internal pains. Ungood.