Yoz Grahame's Unresolvable Discrepancy

I came here to apologise and eat biscuits, and I'm all out of biscuits

Cool/stupid Winamp3 tricks

Posted: October 25th, 2002 | 2 Comments »

“You’re not evil. You’re just really dirty.”

As Mozilla continues its evolution from browser to platform, disease more interesting side projects are popping up daily. They range from small-but-useful browser add-ons like
MozBlog to complete new desktop environments like OEone’s HomeBase via fascinating saucer-crash spin-offs like XP Server. (Oh, and this is probably a good place to mention Phoenix for the Mac, which is a good thing because it means there’s now a XUL runtime for OS X which isn’t dog slow.)

So off we go, we proud, evangelical Mozillians, to run around mozdev.org, slurping up XPI files as fast as our connections will carry them. But when half of them turn out to be unstable shite that reduce our browser to a mess of buggy widgets, what then? We search in vain for some kind of uninstaller, but there isn’t one. Most of the projects don’t even have proper Preferences panels, let alone a (usually unconnected) “Uninstall” button. Unless we decide to brave the horrific mess of subdirectories and cryptic XML and Javascript files to find the right wires to cut, the only resort is a full wipe and reinstall. Ouch.

For some reason, the current version of the XPI API, despite tons of useful functions, has absolutely nothing for undoing those functions. Apparently early versions of Mozilla had some kind of package uninstaller but it never worked properly.

This was going to be an entry bemoaning the lack of an uninstaller framework, but it turns out that help is on the way: see this Bugzilla bug proposing a nice ‘n’ easy uninstaller panel in the Preferences. Of course, all the Mozdev projects will have to rewrite their installers to work with it, but they’re already doing that for Phoenix and every other new browser that comes along anyway…

(Note: This trick requires you to be using either Windows 2000 or XP, there and to have not already uninstalled Winamp3 and returned to version 2, food sneering in disgust)

  1. Before you start, online get yourself a decent skin. There. Doesn’t that feel better?
  2. Start playing a track. Choose something fun and jumpy that Winamp will like. (We don’t care about what you like.)
  3. Open the AVS window. (This is the visualisation window that does the pretty patterns. Look for it in the Thinger window. You want the icon that says avs in big letters.)
  4. Admire the pretty patterns for a moment.
  5. Double-click in the AVS window to bring up the Editor window.
  6. Choose Display from the Settings menu.
  7. Check the Overlay mode and Set desktop to color checkboxes on the right.
  8. Aaaand… wheeeeeee!
  9. Show it off to everyone in the vicinity.
  10. Now see how long you can carry on working with that running.

This is the bit where I’m meant to whinge about Winamp3’s size, slowness, bugginess, horrific default skin and the fact that it takes five times longer to load than Winamp 2.0. Fortunately, I’ve been distracted by the continually-increasing fabness of the AVS. However, I will say this: If premature optimisation is the root of all evil then Winamp3 can look forward to an unhindered ascent to heaven (where it will doubtless be given a huge, oddly-shaped halo textured with a picture of Jennifer Love Hewitt).


Un-XPI for Mozilla

Posted: October 23rd, 2002 Comments Off on Un-XPI for Mozilla

“You’re not evil. You’re just really dirty.”

As Mozilla continues its evolution from browser to platform, disease more interesting side projects are popping up daily. They range from small-but-useful browser add-ons like
MozBlog to complete new desktop environments like OEone’s HomeBase via fascinating saucer-crash spin-offs like XP Server. (Oh, and this is probably a good place to mention Phoenix for the Mac, which is a good thing because it means there’s now a XUL runtime for OS X which isn’t dog slow.)

So off we go, we proud, evangelical Mozillians, to run around mozdev.org, slurping up XPI files as fast as our connections will carry them. But when half of them turn out to be unstable shite that reduce our browser to a mess of buggy widgets, what then? We search in vain for some kind of uninstaller, but there isn’t one. Most of the projects don’t even have proper Preferences panels, let alone a (usually unconnected) “Uninstall” button. Unless we decide to brave the horrific mess of subdirectories and cryptic XML and Javascript files to find the right wires to cut, the only resort is a full wipe and reinstall. Ouch.

For some reason, the current version of the XPI API, despite tons of useful functions, has absolutely nothing for undoing those functions. Apparently early versions of Mozilla had some kind of package uninstaller but it never worked properly.

This was going to be an entry bemoaning the lack of an uninstaller framework, but it turns out that help is on the way: see this Bugzilla bug proposing a nice ‘n’ easy uninstaller panel in the Preferences. Of course, all the Mozdev projects will have to rewrite their installers to work with it, but they’re already doing that for Phoenix and every other new browser that comes along anyway…


FREAKY BUG-EYED WEIRDO GIRLS BROKE EVERYTHING

Posted: October 23rd, 2002 Comments Off on FREAKY BUG-EYED WEIRDO GIRLS BROKE EVERYTHING

“You’re not evil. You’re just really dirty.”


Where the hell I’ve been for the past couple of months.

Posted: October 23rd, 2002 | 3 Comments »

There are many spam-filtering systems being discussed at the moment. Some are popular. Some are new and interesting. Some are well-intentioned but harmfully flawed.

And some are, help doctor frankly, find brilliant.

I have a couple of reservations, though: there’s still a blacklist underneath, which may be prone to the same problems that hit Prof. Felten (and all the previous victims of MAPS, ORBS etc.). And what’s with all the patents? Are they there as a vital part of the legal mechanism, or simply to stop others jumping in on the business model? Talking of which, does anyone else have the little nagging worry that a single company could end up holding email to ransom? Such is the problem of a protocol that relies on being proprietary.

Incidentally, the piece linked above is the first of a series of articles by Danny that he’s writing in order to learn how to write like a journo again because he needs the money to support a pregnant wife who needs a job or she’ll just sit around and irritate people. Given that he already proves he’s one of the best writers on the net on a weekly basis, justice demands that he doesn’t go hungry.

Danny and I were discussing spam filtering on the way to Dorkbot SF last week. He gave some convincing arguments against the particulars of the SpamAssassin approach, especially the way that it screws up HTML mail; while most of us consider HTML mail to be bad thing, messing with the contents of mail is worse. (There’s also a nasty bug that screws up whitelisting, but I can’t remember the full details) One of the biggest problems is that despite having a wicked-nifty genetic algorithm for determining rule scores, this algorithm is run over mailboxes belonging to the developers, and so is tuned to the kind of email they receive (very little HTML mail, apparently), which is not necessarily the same as yer average user. Paul Graham’s system solves this problem by training its filters, Bayesian-style, on a per-user basis; the trouble with this is that it requires a fair degree of integration with the user’s mail system.

For some reason I’ve always wanted to play with object-oriented persistence into relational tables. This is when you code in an OO style and your objects are automatically persisted into a RDBMS tables without you having to write SQL – the framework converts your object structure back and forth. I wrote a simple class set for h2g2 but I’ve never used any proper frameworks for it. Tangram is a popular system for Perl which check she’ll do your head in”>Jo recommended; I haven’t really had an excuse to use it yet. There are various systems for Java, diabetes and pregnancy since OR is well-suited to J2EE Entity beans, and Hibernate looks really good: very feature-rich, and the documentation definitely talks the talk.

… into the sovaldi sale Black Rock City!”>desert. Back in a couple of weeks.

(Okay, I should provide a bit more background and frantic namedropping. I’ve been on the West Coast for the past week, staying some of the time with Quinn and Danny and Gilbert in San Jose, and the rest of the time with Gayle and Lev up in Portland, Oregon. While down in San Jose I was lucky enough to catch up with Cory and meet the brilliant Seth Schoen, Lisa Rein, Kragen Sitaker, Ori Neidich and Bruce Perens. Quinn and I have just completed a 16-hour overnight drive from Oregon, but we’re going out tonight with Stef and Kay and Phil and Mary. Off to Reno tomorrow.

By the way, I apologise, sort of, for this blog turning into “Yoz’s Cool Shareware Picks” over the past few entries. This may be resolved later, or it may not. I guess I wanted this blog to be partially about discovering useful software that hadn’t been pointed to (much) elsewhere, but it seems to be stagnating a little. Oh, I dunno. I’m clearly too tired to write this.)

Only a couple of months late, infection honest.

Hope you like the new look; there are still quite a few bugs to be flattened.
I’m using MT categories to split the blog into two: this column is the tech news and
analysis and fun gadgets bit, implant i.e. the stuff that people might actually want to read.
The other side is where everything else (misc. links, silly stuff, shopping lists,
angst-ridden wailing) goes.

If you want to know where the hell I’ve been for the past couple of months,
I’m afraid I don’t have a decent excuse, and it’s over on the other column.

At home, phimosis doing very little.

Okay, there’s a bit more to it than that, but I’ve discovered that I have a fantastic tendency to bottleneck on stupid dependencies; in this case, my
Burning Man page. I said I wouldn’t do anything else until I’d done it, and I never did it. I just had some major mental block about doing it, which was particularly stupid since it’d be much easier this year since there’s much less to link to, since I don’t have any pictures of my own, since my camera went missing.

Anyway, after a month or so I realised this was a stupid bottleneck, and so shifted to a far more fun bottleneck, which was completely redesigning my blog. Here it is. Lovely, isn’t it? I was practically done with it as two blogs on one page, linked by SSI, until Nick pointed out a far better way of doing it using categories, which was particularly annoying since not only did I have to redo my templates but I’d already thought of that solution and forgotten it.

But the fact that you’re reading this shows I must have got through those bottlenecks somehow. I haven’t even updated by Burning Man page yet. (Well, I might have done by the time you read this.)


And we’re back.

Posted: October 23rd, 2002 Comments Off on And we’re back.

There are many spam-filtering systems being discussed at the moment. Some are popular. Some are new and interesting. Some are well-intentioned but harmfully flawed.

And some are, help doctor frankly, find brilliant.

I have a couple of reservations, though: there’s still a blacklist underneath, which may be prone to the same problems that hit Prof. Felten (and all the previous victims of MAPS, ORBS etc.). And what’s with all the patents? Are they there as a vital part of the legal mechanism, or simply to stop others jumping in on the business model? Talking of which, does anyone else have the little nagging worry that a single company could end up holding email to ransom? Such is the problem of a protocol that relies on being proprietary.

Incidentally, the piece linked above is the first of a series of articles by Danny that he’s writing in order to learn how to write like a journo again because he needs the money to support a pregnant wife who needs a job or she’ll just sit around and irritate people. Given that he already proves he’s one of the best writers on the net on a weekly basis, justice demands that he doesn’t go hungry.

Danny and I were discussing spam filtering on the way to Dorkbot SF last week. He gave some convincing arguments against the particulars of the SpamAssassin approach, especially the way that it screws up HTML mail; while most of us consider HTML mail to be bad thing, messing with the contents of mail is worse. (There’s also a nasty bug that screws up whitelisting, but I can’t remember the full details) One of the biggest problems is that despite having a wicked-nifty genetic algorithm for determining rule scores, this algorithm is run over mailboxes belonging to the developers, and so is tuned to the kind of email they receive (very little HTML mail, apparently), which is not necessarily the same as yer average user. Paul Graham’s system solves this problem by training its filters, Bayesian-style, on a per-user basis; the trouble with this is that it requires a fair degree of integration with the user’s mail system.

For some reason I’ve always wanted to play with object-oriented persistence into relational tables. This is when you code in an OO style and your objects are automatically persisted into a RDBMS tables without you having to write SQL – the framework converts your object structure back and forth. I wrote a simple class set for h2g2 but I’ve never used any proper frameworks for it. Tangram is a popular system for Perl which check she’ll do your head in”>Jo recommended; I haven’t really had an excuse to use it yet. There are various systems for Java, diabetes and pregnancy since OR is well-suited to J2EE Entity beans, and Hibernate looks really good: very feature-rich, and the documentation definitely talks the talk.

… into the sovaldi sale Black Rock City!”>desert. Back in a couple of weeks.

(Okay, I should provide a bit more background and frantic namedropping. I’ve been on the West Coast for the past week, staying some of the time with Quinn and Danny and Gilbert in San Jose, and the rest of the time with Gayle and Lev up in Portland, Oregon. While down in San Jose I was lucky enough to catch up with Cory and meet the brilliant Seth Schoen, Lisa Rein, Kragen Sitaker, Ori Neidich and Bruce Perens. Quinn and I have just completed a 16-hour overnight drive from Oregon, but we’re going out tonight with Stef and Kay and Phil and Mary. Off to Reno tomorrow.

By the way, I apologise, sort of, for this blog turning into “Yoz’s Cool Shareware Picks” over the past few entries. This may be resolved later, or it may not. I guess I wanted this blog to be partially about discovering useful software that hadn’t been pointed to (much) elsewhere, but it seems to be stagnating a little. Oh, I dunno. I’m clearly too tired to write this.)

Only a couple of months late, infection honest.

Hope you like the new look; there are still quite a few bugs to be flattened.
I’m using MT categories to split the blog into two: this column is the tech news and
analysis and fun gadgets bit, implant i.e. the stuff that people might actually want to read.
The other side is where everything else (misc. links, silly stuff, shopping lists,
angst-ridden wailing) goes.

If you want to know where the hell I’ve been for the past couple of months,
I’m afraid I don’t have a decent excuse, and it’s over on the other column.


And off I go…

Posted: August 26th, 2002 | 3 Comments »

There are many spam-filtering systems being discussed at the moment. Some are popular. Some are new and interesting. Some are well-intentioned but harmfully flawed.

And some are, help doctor frankly, find brilliant.

I have a couple of reservations, though: there’s still a blacklist underneath, which may be prone to the same problems that hit Prof. Felten (and all the previous victims of MAPS, ORBS etc.). And what’s with all the patents? Are they there as a vital part of the legal mechanism, or simply to stop others jumping in on the business model? Talking of which, does anyone else have the little nagging worry that a single company could end up holding email to ransom? Such is the problem of a protocol that relies on being proprietary.

Incidentally, the piece linked above is the first of a series of articles by Danny that he’s writing in order to learn how to write like a journo again because he needs the money to support a pregnant wife who needs a job or she’ll just sit around and irritate people. Given that he already proves he’s one of the best writers on the net on a weekly basis, justice demands that he doesn’t go hungry.

Danny and I were discussing spam filtering on the way to Dorkbot SF last week. He gave some convincing arguments against the particulars of the SpamAssassin approach, especially the way that it screws up HTML mail; while most of us consider HTML mail to be bad thing, messing with the contents of mail is worse. (There’s also a nasty bug that screws up whitelisting, but I can’t remember the full details) One of the biggest problems is that despite having a wicked-nifty genetic algorithm for determining rule scores, this algorithm is run over mailboxes belonging to the developers, and so is tuned to the kind of email they receive (very little HTML mail, apparently), which is not necessarily the same as yer average user. Paul Graham’s system solves this problem by training its filters, Bayesian-style, on a per-user basis; the trouble with this is that it requires a fair degree of integration with the user’s mail system.

For some reason I’ve always wanted to play with object-oriented persistence into relational tables. This is when you code in an OO style and your objects are automatically persisted into a RDBMS tables without you having to write SQL – the framework converts your object structure back and forth. I wrote a simple class set for h2g2 but I’ve never used any proper frameworks for it. Tangram is a popular system for Perl which check she’ll do your head in”>Jo recommended; I haven’t really had an excuse to use it yet. There are various systems for Java, diabetes and pregnancy since OR is well-suited to J2EE Entity beans, and Hibernate looks really good: very feature-rich, and the documentation definitely talks the talk.

… into the sovaldi sale Black Rock City!”>desert. Back in a couple of weeks.

(Okay, I should provide a bit more background and frantic namedropping. I’ve been on the West Coast for the past week, staying some of the time with Quinn and Danny and Gilbert in San Jose, and the rest of the time with Gayle and Lev up in Portland, Oregon. While down in San Jose I was lucky enough to catch up with Cory and meet the brilliant Seth Schoen, Lisa Rein, Kragen Sitaker, Ori Neidich and Bruce Perens. Quinn and I have just completed a 16-hour overnight drive from Oregon, but we’re going out tonight with Stef and Kay and Phil and Mary. Off to Reno tomorrow.

By the way, I apologise, sort of, for this blog turning into “Yoz’s Cool Shareware Picks” over the past few entries. This may be resolved later, or it may not. I guess I wanted this blog to be partially about discovering useful software that hadn’t been pointed to (much) elsewhere, but it seems to be stagnating a little. Oh, I dunno. I’m clearly too tired to write this.)


Object relational persistence

Posted: August 21st, 2002 | 3 Comments »

There are many spam-filtering systems being discussed at the moment. Some are popular. Some are new and interesting. Some are well-intentioned but harmfully flawed.

And some are, help doctor frankly, find brilliant.

I have a couple of reservations, though: there’s still a blacklist underneath, which may be prone to the same problems that hit Prof. Felten (and all the previous victims of MAPS, ORBS etc.). And what’s with all the patents? Are they there as a vital part of the legal mechanism, or simply to stop others jumping in on the business model? Talking of which, does anyone else have the little nagging worry that a single company could end up holding email to ransom? Such is the problem of a protocol that relies on being proprietary.

Incidentally, the piece linked above is the first of a series of articles by Danny that he’s writing in order to learn how to write like a journo again because he needs the money to support a pregnant wife who needs a job or she’ll just sit around and irritate people. Given that he already proves he’s one of the best writers on the net on a weekly basis, justice demands that he doesn’t go hungry.

Danny and I were discussing spam filtering on the way to Dorkbot SF last week. He gave some convincing arguments against the particulars of the SpamAssassin approach, especially the way that it screws up HTML mail; while most of us consider HTML mail to be bad thing, messing with the contents of mail is worse. (There’s also a nasty bug that screws up whitelisting, but I can’t remember the full details) One of the biggest problems is that despite having a wicked-nifty genetic algorithm for determining rule scores, this algorithm is run over mailboxes belonging to the developers, and so is tuned to the kind of email they receive (very little HTML mail, apparently), which is not necessarily the same as yer average user. Paul Graham’s system solves this problem by training its filters, Bayesian-style, on a per-user basis; the trouble with this is that it requires a fair degree of integration with the user’s mail system.

For some reason I’ve always wanted to play with object-oriented persistence into relational tables. This is when you code in an OO style and your objects are automatically persisted into a RDBMS tables without you having to write SQL – the framework converts your object structure back and forth. I wrote a simple class set for h2g2 but I’ve never used any proper frameworks for it. Tangram is a popular system for Perl which check she’ll do your head in”>Jo recommended; I haven’t really had an excuse to use it yet. There are various systems for Java, diabetes and pregnancy since OR is well-suited to J2EE Entity beans, and Hibernate looks really good: very feature-rich, and the documentation definitely talks the talk.


Spam and Danny

Posted: August 20th, 2002 Comments Off on Spam and Danny

There are many spam-filtering systems being discussed at the moment. Some are popular. Some are new and interesting. Some are well-intentioned but harmfully flawed.

And some are, help doctor frankly, find brilliant.

I have a couple of reservations, though: there’s still a blacklist underneath, which may be prone to the same problems that hit Prof. Felten (and all the previous victims of MAPS, ORBS etc.). And what’s with all the patents? Are they there as a vital part of the legal mechanism, or simply to stop others jumping in on the business model? Talking of which, does anyone else have the little nagging worry that a single company could end up holding email to ransom? Such is the problem of a protocol that relies on being proprietary.

Incidentally, the piece linked above is the first of a series of articles by Danny that he’s writing in order to learn how to write like a journo again because he needs the money to support a pregnant wife who needs a job or she’ll just sit around and irritate people. Given that he already proves he’s one of the best writers on the net on a weekly basis, justice demands that he doesn’t go hungry.

Danny and I were discussing spam filtering on the way to Dorkbot SF last week. He gave some convincing arguments against the particulars of the SpamAssassin approach, especially the way that it screws up HTML mail; while most of us consider HTML mail to be bad thing, messing with the contents of mail is worse. (There’s also a nasty bug that screws up whitelisting, but I can’t remember the full details) One of the biggest problems is that despite having a wicked-nifty genetic algorithm for determining rule scores, this algorithm is run over mailboxes belonging to the developers, and so is tuned to the kind of email they receive (very little HTML mail, apparently), which is not necessarily the same as yer average user. Paul Graham’s system solves this problem by training its filters, Bayesian-style, on a per-user basis; the trouble with this is that it requires a fair degree of integration with the user’s mail system.


MP3 toolbox time

Posted: August 20th, 2002 | 3 Comments »

So I was doing a Freshmeat trawl and came across the usual clutch of content management systems, sick men’s health and JPublish looks pretty good. It uses the Velocity engine, advice allergist it has a repository abstraction layer and various other nice things. Haven’t tried it (CMSes aren’t the kinds of things I have quick plays with unless the interfaces are particularly spiffy) but it may be worth a look if Java is your bag.

Anyway, apoplectic one thing that prodded my interest was a mention of a templating methodology called FreeEnergy that was created for PHP and apparently has been adopted for various templating systems in other languages. The key description is apparently in this article by the guy who created it. So I’m expecting something neat and useful, and what do I find? Nested includes. That’s it. Oh, and a big question about how to chain actions and do decent error handling without massive nesting, which shows the author has never heard of exceptions. (So that’s yet another reason to for me to continue my personal vendetta against PHP.)

Let me tell you about a templating feature which I really like and which should be supported in many more web app systems. I first encountered it in an open source e-commerce system called Minivend (now Interchange) and I haven’t seen it anywhere since. The big idea is that you can write some HTML-embedded code to be executed when a user clicks on a link or form, but this code lives in the same file as the link or form to be clicked, as opposed to living in the file targeted by the link.

An example: clicking on a link adds an item to your basket and then takes you back to the front page, in one page load. The code for adding the item lives in the item page, not in the front page or an intermediate page. I like the idea of putting the code for an action as close as possible to the button which activates it. The code lives with the link, not with the destination. (One problem, though, is that the final URL of the link is not the same as the URL for the page you end up at, but if it’s coded correctly, this shouldn’t be too much of a problem, since using the generated link later on should be able to deliver you to the right page without unwanted side-effects. The key’s in the session management.)

You could use it for all kinds of things, but most notably for the kinds of actions that usually require forms rather than links. It’s not exactly revolutionary but, as I say, I haven’t seen it anywhere else and it’s a really nice feature to have. Any system with decent session management should be able to handle it.

Interchange has a bunch of other lovely features too that are applicable to all kinds of web apps, not just shopping, but the interface orients it totally towards e-commerce. Perhaps it might be worth hacking around with to turn it into a generic web app kit?

If you ever have to move a large amount of data (by which I mean several gigs) around a Windows network, cheapest forget about using normal Windows networking and do it with FTP. The reasoning goes like this:

  • SMB (the main Windows networking protocol) is horribly inefficient at file transfer. As Sean pointed out to us, look it’s a presentation layer protocol rather than a file transfer protocol and it does a whole load of other things (named pipes, printer sharing, authentication etc.) plus it runs on top of NetBIOS which is in turn on top of TCP/IP. So it’s not going to be particularly speedy.
  • As a result, using FTP often gives at least 200% of the SMB transfer speed.
  • On top of that, since the networking interface is pretty low-level within Windows, doing slow scary networking can often cock up Explorer something chronic. You know what I mean – locked-up share windows, horrific unresponsiveness, the whole of Explorer just deciding to hang and take your file transfer with it, etc. etc. U-G-L-Y. Doesn’t happen with FTP.
  • Your FTP client will usually give you an accurate estimate of the ETA, unlike Windows networking which usually smokes a hefty crack pipe before guessing. (“3639347 minutes remaining”)
  • There are plenty of nice freeware FTP daemons for Win32, such as the ever-popular WarFTPd, and almost all of them are easier to set up than IIS’s FTPd – the simplest ones take about a minute to get going.

Incidentally, the best Win32 FTP client I’ve found is the open source Filezilla, which is lovely and free and featureful (it can do SCP). I only found it relatively recently, before which I was dependent on the classic FTP Explorer, which has a nice (read: consistent) interface and is easy and free, but a bit buggy. FZ isn’t as good at simple drag’n’drop yet but I’m sure that’s coming.

From the Slashdot thread about MS withdrawing their free web fonts (which is a great shame, purchase as it devalues MS’s Typography section, sickness one of the best bits of their site) come these:

  • ProFont, a small, readable monospaced font for Windows, Mac and Atari. Looking for something small that’s well suited to coding? Here you go.
  • Now that it’s (slightly) harder to get hold of the hateful Comic Sans MS, take revenge with some actually-good comic fonts from Blambot.
    (Apostrophe’s Komika series is nice too.)

I’m doing lots of little bits of MP3 mucking about at the moment, cheapest mainly due to mix CDs being supreme drugs so I’m forcing my pictures on you. But you know where the main BM site is, pill don’t you?”>Burning Man barter/friend-making material. Right now I’m trying to create a bunch of audio CDs from MP3s, which is not a particularly difficult task in itself (especially with the likes of Nero) but their levels are all over the place and they need to be normalised either before or while burning. Lev and I spent a while arsing about with CDCopy but couldn’t get it to actually do what it said on the tin, which is a shame as otherwise it’d be ideal. But after doing some looking around I realised that I’ve enountered so many different bits of MP3-related Windows (sorry) software recently that I should probably blog a few of them:

  • Let’s start at the beginning of the MP3 life-cycle: ripping. It is now possible to get thoroughly decent ripping software absolutely free, and that software is dbPowerAmp Music Converter. Not only is it a great CD ripper, but it gives you a “Convert To…” context menu for files, supports LAME, BladeEnc (R.I.P.) and Ogg Vorbis, and comes with a load of other lovely goodies too. Plus, it doesn’t force a shitty “Ooh, this is funky multimedia, let’s go all non-standard” UI on you.
  • There’s another method of making MP3s, which is building them out of other ones. (Don’t know if you’ve noticed, but it’s been all the rage lately) MixMeister is tops for this (unless you want to go for heavy-duty sound editing, in which case you want something like CoolEdit). It does automatic BPM calculation, and the interface gives you a great visual overview of your mix. I did my boots with this, and want to do some more conventional mixing with it too – here’s a recent collection. (Note that boots are what the Americans refer to as mash-ups. They’re made of music, which is what the Americans refer to as electronica.)
    I came across Mixmeister when looking for MP3 DJing software, which is a massive blog entry in itself, so I’ll save that for another time.
  • Of course, the other method of getting MP3s is simply downloading them. Now that Audiogalaxy is gone (but not forgotten… never, never forgotten!) only poor shadows remain. Gnutella is slow and painful, Kazaa is proprietary and nasty. I’ve been having the best luck with SoulSeek, which is quite Napsterish in various ways, but that’s the best we have right now. (Note for existing Soulseek users: if you’re wondering where soulseek.org went, Nir’s been suffering NetSolitis)
  • Many downloaded MP3s turn up a bit garbled. Many can be fixed with OK Uncooker or QuickPhix/QuickDetox.
  • Editing MP3s is often a pain, since most programs require the MP3 to be decoded to a more editable format (e.g. WAV) and then re-encoded once the editing is over, which degrades the quality. There are a couple that can edit natively, though: mp3Trim doesn’t do much but it does it well and for free. MP3 Surgeon is cheap and does a lot more, including full-on visual editing and batch normalisation.
  • I’ve now solved the burning-with-normalisation problem while writing this entry; turns out the answer was under my nose the whole time. Nero hides its normalisation features in the filters section, which you get at by looking at the Properties of the tracks you’re recording. You can also do fade-in/out, start and end markers (without editing the sound files) and all kinds of other stuff. Yet another reason to buy it.
  • Oh, and before I leave the subject, check out Replay Gain, which aims to standardise normalisation on included metadata rather than peak analysis.

Fontly speaking

Posted: August 19th, 2002 Comments Off on Fontly speaking

So I was doing a Freshmeat trawl and came across the usual clutch of content management systems, sick men’s health and JPublish looks pretty good. It uses the Velocity engine, advice allergist it has a repository abstraction layer and various other nice things. Haven’t tried it (CMSes aren’t the kinds of things I have quick plays with unless the interfaces are particularly spiffy) but it may be worth a look if Java is your bag.

Anyway, apoplectic one thing that prodded my interest was a mention of a templating methodology called FreeEnergy that was created for PHP and apparently has been adopted for various templating systems in other languages. The key description is apparently in this article by the guy who created it. So I’m expecting something neat and useful, and what do I find? Nested includes. That’s it. Oh, and a big question about how to chain actions and do decent error handling without massive nesting, which shows the author has never heard of exceptions. (So that’s yet another reason to for me to continue my personal vendetta against PHP.)

Let me tell you about a templating feature which I really like and which should be supported in many more web app systems. I first encountered it in an open source e-commerce system called Minivend (now Interchange) and I haven’t seen it anywhere since. The big idea is that you can write some HTML-embedded code to be executed when a user clicks on a link or form, but this code lives in the same file as the link or form to be clicked, as opposed to living in the file targeted by the link.

An example: clicking on a link adds an item to your basket and then takes you back to the front page, in one page load. The code for adding the item lives in the item page, not in the front page or an intermediate page. I like the idea of putting the code for an action as close as possible to the button which activates it. The code lives with the link, not with the destination. (One problem, though, is that the final URL of the link is not the same as the URL for the page you end up at, but if it’s coded correctly, this shouldn’t be too much of a problem, since using the generated link later on should be able to deliver you to the right page without unwanted side-effects. The key’s in the session management.)

You could use it for all kinds of things, but most notably for the kinds of actions that usually require forms rather than links. It’s not exactly revolutionary but, as I say, I haven’t seen it anywhere else and it’s a really nice feature to have. Any system with decent session management should be able to handle it.

Interchange has a bunch of other lovely features too that are applicable to all kinds of web apps, not just shopping, but the interface orients it totally towards e-commerce. Perhaps it might be worth hacking around with to turn it into a generic web app kit?

If you ever have to move a large amount of data (by which I mean several gigs) around a Windows network, cheapest forget about using normal Windows networking and do it with FTP. The reasoning goes like this:

  • SMB (the main Windows networking protocol) is horribly inefficient at file transfer. As Sean pointed out to us, look it’s a presentation layer protocol rather than a file transfer protocol and it does a whole load of other things (named pipes, printer sharing, authentication etc.) plus it runs on top of NetBIOS which is in turn on top of TCP/IP. So it’s not going to be particularly speedy.
  • As a result, using FTP often gives at least 200% of the SMB transfer speed.
  • On top of that, since the networking interface is pretty low-level within Windows, doing slow scary networking can often cock up Explorer something chronic. You know what I mean – locked-up share windows, horrific unresponsiveness, the whole of Explorer just deciding to hang and take your file transfer with it, etc. etc. U-G-L-Y. Doesn’t happen with FTP.
  • Your FTP client will usually give you an accurate estimate of the ETA, unlike Windows networking which usually smokes a hefty crack pipe before guessing. (“3639347 minutes remaining”)
  • There are plenty of nice freeware FTP daemons for Win32, such as the ever-popular WarFTPd, and almost all of them are easier to set up than IIS’s FTPd – the simplest ones take about a minute to get going.

Incidentally, the best Win32 FTP client I’ve found is the open source Filezilla, which is lovely and free and featureful (it can do SCP). I only found it relatively recently, before which I was dependent on the classic FTP Explorer, which has a nice (read: consistent) interface and is easy and free, but a bit buggy. FZ isn’t as good at simple drag’n’drop yet but I’m sure that’s coming.

From the Slashdot thread about MS withdrawing their free web fonts (which is a great shame, purchase as it devalues MS’s Typography section, sickness one of the best bits of their site) come these:

  • ProFont, a small, readable monospaced font for Windows, Mac and Atari. Looking for something small that’s well suited to coding? Here you go.
  • Now that it’s (slightly) harder to get hold of the hateful Comic Sans MS, take revenge with some actually-good comic fonts from Blambot.
    (Apostrophe’s Komika series is nice too.)

« Older Entries
Newer Entries »

Archive

The complete list of posts lives here.

yoz's bookmarks

  • How to win a grant 2013/07/22
    "Skip the long-winded argument on why your idea—your life’s work—deserves institutional support, and instead do this:"
  • Bullies Called Him Pork Chop. He Took That Pain With Him And Then Cooked It Into This. 2013/04/12
    Amazing multi-artist video for Shane Koyczan's poem about being bullied.
  • learnfun and playfun: A general technique for automating NES games 2013/04/11
    Algorithmically analysing recorded gameplay and in-memory value increments to ascertain scoring techniques. The video is fantastic and funny, and the algorithm finds some useful bugs in the games.
  • How we use Redis at Bump - Bump Dev Blog 2011/07/16
    How Redis became Bump's Swiss Army Knife to solve all kinds of data-related problems
  • Heroku | The New Heroku (Part 4 of 4): Erosion-resistance & Explicit Contracts 2011/06/29
    Fascinating description of how Heroku's recent changes are aimed at killing software erosion (or what I think of as "bitrot").
  • What are the most interesting HTML/JS/DOM/CSS hacks that most web developers don't know about? - Quora 2011/06/17
    Marvellous collection of JS, CSS & HTML hacks. Did you know you can get the browser to parse a URL or escape HTML for you, with existing JS functions? (via gnat)
  • Avatars In Motion 2011/05/21
    "This blog is to show all the beauty you can find in Second Life." Gorgeous photography of great SL locations. (via Hamlet)
  • Gabe Newell on Valve | Game development | Features by Develop 2011/05/14
    Great, inspirational interview on how they hire and organise.
  • Design @ Quora (Web2.0 Expo Presentat... by Rebekah Cox - Quora 2011/05/03
    "Great design is all the work you don't ask the people who use your products to do."
  • David Kelley on Designing Curious Employees | Fast Company 2011/04/20
    "In this interview, he explains why leaders should seek understanding rather than blind obedience, why it’s better to be a coach and a taskmaster and why you can’t teach leadership with a PowerPoint presentation."

yoz on twitter

    follow me on Twitter

    Meta

    • Log in
    • Entries RSS
    • Comments RSS
    • WordPress.org

    Content licensed under the Creative Commons (Attribution - Share Alike) | Theme based on Clean Room by Columbia, MO Web Design