Archive for the 'Blog' Category

March 6th 2007

Learning Dvorak, take 1.

Having decided to look at Dvorak again, and having completely failed to find any software that was even remotely interesting (I couldn’t cajole Typing of the Dead into working with Dvorak) to teach typing, I reverted to the classic “look at a layout and try and type with it”.

I got bored of looking for the keys.

After having played with SVG/javascript as an alternative to Flash with ‘motes’ (temporary hosting, might not be up), I thought I’d have a go at adjusting it into a mini typing tutor.

Note that that’s almost completely clientside, the php is used only to dump the default message in the text box, which could be done in JavaScript (probably easier, too, die, magic quotes, die).

It completely doesn’t work in IE (I haven’t tested any SVG plugins), and has a weird JavaScript array bug in Opera (still works, just doesn’t look perfect). So, much to my shame, I’d suggest trying it in Firefox.

And, on a related note, it strikes me as odd that Scalable Vector Graphics use absolute coordinates for everything internally.

2 Comments »

December 2nd 2006

Properly tagged music.

Alternately: Why Foobar2000 and Picard suck.

I like properly tagged music.

Obviously it’s nice to be able to get your computer to tell you what song you’re playing, but, if you need to be told, you probably aren’t a fan of it anyway. Maybe you ripped your cds and your cd-ripper tagged the files from FreeDB, or similar, and you’ve ended up with the names in block-caps, or with all the lovely crazy characters removed?

I’d hope that most people would care enough to fix tags that are (incorrectly) written in block-caps (Winamp users probably wouldn’t notice), but most people wouldn’t bother correcting an album by ᛏᛣᚱ (yay, runes) that’s been mistagged as Týr or Tyr, for instance, mainly due to the effort involved.

There are quite a few automatic solutions to manually fixing these tags, starting with FreeDB that’s already been mentioned, my favourite being MusicBrainz.

They have a wonderful tool called Picard that will allow you to get information from their database into your files, including the correct spelling of artistᛏᛣᚱ. Picard has a user guide, I’ve written an alternative Picard user guide to illustrate the way I tag stuff.

Assuming you don’t care about the correct usage of the artist names, nor having credit correctly given for remixes, etc., why would you bother to process your music with Picard?

Along with ensuring that the files have the correct normal tags (that you’d normally see), it also puts extra information from the MusicBrainz database into your files, for instace, the sort-order name of each artist. This allows you to do fun things with your playlist, for instance, what I do with Foobar:

Sort order:
$if(%MUSICBRAINZ_ARTISTID%%MUSICBRAINZ ARTIST ID%, ,)$if($strcmp(%MUSICBRAINZ ALBUM ARTIST ID%%MUSICBRAINZ_ALBUMARTISTID%,89ad4ac3-39f7-470e-963a-56509c546377),%album% - %MUSICBRAINZ ALBUM ID%%MUSICBRAINZ_ALBUMID%,%MUSICBRAINZ ALBUM ARTIST SORTNAME%%MUSICBRAINZ_ALBUMARTISTSORTNAME% - %MUSICBRAINZ ALBUM ARTIST ID%%MUSICBRAINZ_ALBUMARTISTID% - %album% - %MUSICBRAINZ ALBUM ID%%MUSICBRAINZ_ALBUMID%) - %album% - %tracknumber% - %album artist% - %title%

Playlist display:
%list_index%.
$if(%MUSICBRAINZ_ARTISTID%%MUSICBRAINZ ARTIST ID%,,UT - )
$if($strcmp($longest(%MUSICBRAINZ ALBUM ARTIST ID%,%MUSICBRAINZ_ALBUMARTISTID%),89ad4ac3-39f7-470e-963a-56509c546377),
%album% - %tracknumber% - %album artist% - %title%,
%album artist% - %album% - %tracknumber% - %title%)
$tab()
%length%

Note that both of those are whitespace-sensitive, the second is new-line insensitive, so has been split up slightly to make it at least sane to read.

What these do:

These mean that your playlist will read something like this:


A Various Artists CD - 01 - Some Artist - Track Name
A Various Artists CD - 02 - Some Other Artist - Track Name
...
Jim Bob - Another Album - 01 - Track Name
Jim Bob - Some Album - 01 - Track Name
...
Canned Beans - Album #1 - 01 - Track Name
...
UT - BLERG
...

etc, where “Jim Bob” is a person’s name, so will have a sort order of “Bob, Jim”, and “Canned Beans” is a band, so will have a sort order of “Canned Beans”. The “UT – ” prefix on files at the end of the playlist mean that they need tagging.

This has the wonderful effect of meaning that all of the albums by a single artist will be in the same place (as Jim Bob’s are above) without Various Artist cds being broken up by artist, which makes no sense.

Now that I’ve got my playlist back to how I like it, back to the original title of this post, Picard (0.7.2) sucks for writing tags with completely different names to different types of file, for instance:

M:\Compilations\Clubland\Seven (cd1)>cat 01.mp3 | xxd | head -n 16 | tail -n 3
00000d0: 0000 034d 7573 6963 4272 6169 6e7a 2041 ...MusicBrainz A
00000e0: 6c62 756d 2041 7274 6973 7420 4964 0038 lbum Artist Id.8
00000f0: 3961 6434 6163 332d 3339 6637 2d34 3730 9ad4ac3-39f7-470

..against..

M:\Compilations\Clubland\Six (cd1)>head -n 2 "04.ogg" | xxd | head -n 19 | tail -n 3
0000100: 4d55 5349 4342 5241 494e 5a5f 414c 4255 MUSICBRAINZ_ALBU
0000110: 4d41 5254 4953 5449 443d 3839 6164 3461 MARTISTID=89ad4a
0000120: 6333 2d33 3966 372d 3437 3065 2d39 3633 c3-39f7-470e-963

Grr.

Foobar also needs a kick for making it so hard to deal with these (and debug them), along with being inconsistent (in undocumented ways) between the “sort” and the “display” shown above, which is also a major pain.

2 Comments »

November 23rd 2006

Crack

My phone, after being in my pocket for ~10 months:

My phone's new screen

Ignoring that, the device still works perfectly, unfortunately I can’t remember enough of the start-menu (and the file browser) to get stuff running, I think it’d be a wonderful experiment to find some software catering for the blind, see how well it copes</desperate>. :)

Update:

Some searching revealed the Windows Mobile Developer Power Toys, one of which provides a VNC-style server and client that you can run without local to the phone (except via. activesync):

My phone's new new screen

Yay!

No Comments yet »

July 8th 2006

Boredom

Following the CompSoc BFL 2006 and a week at home, I’ve moved to the Southampton area for my IT year at IBM Hursley.

Not having had an internet connection for most of that time, I’ve had to come up with some other things to do (besides watching QI).

First, anyone who’s used GnuWin32’s CoreUtils’ ls will probably have noticed how slow it was (for example, it takes ~4 seconds to list the files on my desktop); it also lacks actual checking of the owner/group of the file, the permissions and the colouring/console-width-awareness provided on other platforms. I can (now) appreciate the permissions, but the others.. Anyway, I decided to rewrite it. Going reasonably well, but reading the permissions (for anyone but the current user) is a pain. A serious pain.. if I ever manage to do it successfully, I’ll probably write about it. As far as I can tell, nobody else has ever managed it, so things aren’t looking good.

It’s not ready for general use yet, but it’s definitely working:

Secondly, having seen both Silver’s ConResMgr (a tool that lets you drag-resize Windows Command Prompt windows), and the way he lays out windows on his screen, I thought I’d have a go at doing it semi-automatically.

The result was the imaginitively ‘FauWM Assistant’, which, when you Ctrl+drag or Ctrl+resize windows will show a dialog prompting you for which sextant(s) of which screen(s) you’d like the window to be placed in.

The result is that it’s very easy to get a window setup that looks something like:

The (ultimately sexy) prompt for window position currently looks like:

So, to use:

  • Grab (pretty much) any window by the title bar, I know it doesn’t work with Winamp and (partially) Putty.
  • Hold control and just drop the window anywhere; the Segment Select.. window shown above will come up under your cursor.
  • Drag a box through some of the rectangles shown.
  • The window should now be where you wanted it.

You can download FauWM Assistant (sig), it needs the Visual Studio 2005 (8) Runtime Library.

No Comments yet »