Home

unflac.sh - Convert FLAC files into 320 kbps MP3 files

Posted by Simon on August 17, 2008 at 01:19 AM

Convert FLAC files into 320 kbps MP3 files. Someone might find this useful. I call it unflac.sh. It will take every .flac file in the current directory and convert it to MP3 using lame's "insane" preset (which shows what the lame people think about mp3...)


#!/bin/tcsh

# Deal with FLAC, CUE file to convert to high-quality MP3 with LAME

# Split a foo.cue / foo.flac combo (e.g. from EAC) into separate flac files
####cuebreakpoints *.cue | shnsplit -o flac *.flac

# convert flac to MP3
foreach f (*.flac)
flac -c -d "$f" | lame —preset insane - "${f}.mp3"
end

# Re-add the tags to the separate files
cuetag.sh *.cue *.mp3

You'll need to have flac and lame installed. It also tries to restore tags using cue but that doesn't seem to work. So sorry.

Why would I do this? Basically, because:

  • my MP3 player (N95) doesn't support FLAC
  • and doesn't have the room for it anyway
  • and iTunes doesn't support FLAC either (stupid apple...)

Some day when I have a player that does, I'll probably switch to all FLAC, or apple lossless or whatever, but in the meantime 320 MP3s from lame are pretty good. I won't say I can't hear the difference because I haven't tried REALLY HARD, but for the listening I'm doing I can't hear the difference...

Comments: 0 (view/add your own) Tags: (none)

the ultimate cut out book

Posted by Simon on August 11, 2008 at 01:02 AM

You have probably seen the book with a space cut out to hide a knife, a gun, another book... but what about a house?

(actually, hiding a book inside a book... that's a cool idea...)

Anyway, that's Olafur Eliasson has done. He cut a house into a book. There's no text. Just the house. And it's in negative space. Here's what it looks like:

Your House

Wild. I found this in grafik magazine. No website, but a real paper work of art.

Eliasson is just too cool. Have a look at what he does with white lego bricks... and just generally feast your eyes on his works.

Comments: 0 (view/add your own) Tags: (none)

Jesse Rodgers's blog

Posted by Simon on August 06, 2008 at 01:09 AM

Who You Calling A Jesse?

He is apparently

Trying to sort the brilliant ideas from the lesser ones.

Unfortunately, he is not very successful. But he is trying.

He also uses SimpleLog, the best Ruby on Rails blog out there that doesn't work under Rails 2.0, has been abandoned by its author, but still works great for me.

Comments: 0 (view/add your own) Tags: (none)

Because I can

Posted by Simon on August 06, 2008 at 01:06 AM

Open Source Software for Mac. Lots of Good Stuff. Very nice.

Comments: 0 (view/add your own) Tags: (none)

The Loudness War

Posted by Simon on August 02, 2008 at 10:41 PM

What the hell is the Loudness War? It's music business, baby. Put it this way. Everything is getting LOUDER.

IF YOU'RE LOUD YOU GET NOTICED PEOPLE READ YOU FIRST BUT EVERYTHING STARTS TO SOUND THE SAME.

That's just a simple "visualization" of what the loudness war is doing to music (recorded music anyway).

You could perhaps lay the blame on 5-CD changers. If you had one back in the 90s, you probably noticed that whenever it switches discs, you had to adjust the volume. And then MP3 players didn't help, although now the software will automatically adjust the loudness of tracks to match each other. And car CD players, where everything has to be loud to even hear it. But really, it's the fault of computers, and in particular a device called a digital compressor.

Basically here's the problem in a nutshell. Music has variations in volume, between the quiet parts and the loud parts. If you're in a movie theatre, concert hall, or at home with a good stereo, this is exciting, it's dynamics. The music can start out quiet, and then build up and then reach out and grab you by the throat in the exciting bits. This is GOOD.

But psychological studies have shown that people subconsciously think that louder is better, and the problem comes in when you are moving from one song to another. If you go from a loud song to one that starts out really quiet, your subconscious brain is going to tell you that the quality of music just went down, and you're going to hit the skip button or change radio stations.

So the producers use the compressor to "compress" (yeah, that's why it's called a compressor...) the dynamic range so that the difference between the quiet parts and the loud parts is minute. Basically, they make everything LOUD.

A few years ago Rolling Stone had an article called The Death of High Fidelity, it's about the Loudness War, and you can see a sort-of good video about it on YouTube

There also a a great article from IEEE Spectrum magazine: Tearing Down the Wall of Noise. Good reading.

All in all these stories demonstrate without a grain of doubt that (a) the Loudness War is real and (b) it's causing damage to the music. Constantly loud music makes you tired and ultimately isn't satisfying or good. The subconscious thing is temporary, but the damage to the music is permanent.

What can you do about it? Buy music that isn't compressed, for starters. Some artists are fighting back, like Norah Jones with Not Too Late and Dylan's Modern Times. Or, just buy OLD albums, like CDs from the 80s, the time before compressors existed. Or buy vinyl, which for physical reasons doesn't really allow compression, but to me, having to go back to old tech like that is just silly. The music industry needs to fix this on the new technology. Even if they can crank up the volume, they shouldn't turn it into pure noise.

PS: Seems that you can use "Average RMS Power" to get a rough idea of the dynamic range of a tune. And you can measure that using various tools, e.g. Amadeus Pro (Analyze > Waveform Statistics). Here are some values from my library:

  • Norah Jones, Feels Like Home, Sunrise: -13.5 dB .... that's not great but it's not as bad as it could be ... I don't really listen to this much any more though, and I think it's partly because it's tiring to listen to.
  • Decca Georg Solti Nibelung, Walkure Act I: -25 dB... I have no trouble with ear fatigue listenging to this one.
  • Beatles, Revolver, Taxman (no idea what edition): -16 dB ... I find it a bit loud, but I guess partly that's intentional?
  • Cowboy Junkies, Trinity Sessions, Blue Moon: -21 dB .... what can I say? niiiiice.

OK, so I guess pretty much everything in my collection is OK at least. Probably because I delete anything that has crap dynamics. For comparison here's some stuff I wouldn't listen to.

  • Coldplay, Viva la Vida:-12.3 dB ... well, it could be worse.... a bit... this would be a lot better with better dynamics.
  • Rihanna, Disturbia: -11 dB ... just looking at the waveform for this makes my ears hurt in advance.

Yeah, those are fairly hard to listen to.

Someone ought to make an average RMS database.

Comments: 0 (view/add your own) Tags: (none)

Azureus's stunning visualizations (Vuze)

Posted by Simon on July 18, 2008 at 07:51 PM

In order to get around Bell Sympatico's bittorrent throttling I recently switched to Azureus (aka Vuze). If you switch to the "classic" UI mode, it has some stunning visualizations of what's happening with your torrents.

The main screen contains a bit more information than you might need, but if you play with the columns that are visible (right click on the headers) you can get something like this:

Azureus main screen

What you've got there is downloading torrents at the top and finished ones at the bottom. Green happy faces are currently in progress. Gray ones are queued. In the bottom right corner you can see that my total download speed is 311 kilobytes per second, and total upload is 50kB/s (I'm on ADSL).

Azureus peers

Suppose I want to zoom in on one particular torrent — double click on it. This shows each of the peers I'm connected to. What pieces of the file do they have? How far complete are they in total? Bittorrent downloads files in chunks and it does the chunks randomly, not from start to end, so this information can be interesting.

Azureus Pieces

The above shows me EVEN MORE details if I really want it (OK, some of this stuff is really excessive). It shows which of the pieces I've got (blue) and which ones are downloading (in red). Just in case you wanted to know...

Azureus swarm

Swarm (above) is an actual animation of the pieces of the file as each of your peers around the edges send the bits to you in the middle. And it also shows the reverse as well. And the pie charts show how much of the torrent each peer has. Wild stuff.

So, that's if you want to know what's happening with one particular torrent. But what if you want to know about your overall connection with all the different peers and torrents? Well, Azureus gives loads of graphs and charts for that as well.

This one is your overall bandwidth monitor:

Azureus activity

Nice. I love staring at this one. It's a really good example about how to cleanly show multiple related variables in a time-based chart (aka histogram). For the top one, the blue filled area is your download speed. Really interesting is the gray line, which is the average download speed of the SWARM. In other words, what is your average peer getting? If you're below this line, then you're getting screwed — or there's something wrong with your configuration. If you're above it, you're doing well. It's a good way to get a quick fix on the health of your downloads as compared to other users. It also makes it really easy to see if you're being rate-limited by your ISP.

On the bottom half, you can see that I've enabled Auto-Speed and it's automatically cranking the max upload speed up and down based on measuring my bandwidth and other factors that I'm not too clear on.

There's other visualizations but those are my favourites. Some of them aren't really documented and I don't really understand exactly what they mean (transfers and vivaldi for example). Still, obviously one of the azureus open source developers is a data viz keener and s/he's done some fine work.

Comments: 2 (view/add your own) Tags: (none)

Hacking the java compiler: using anonymous subclasses as closures

Posted by Simon on July 10, 2008 at 11:17 PM

In Java, closures/first-order functions are not a language feature. However, as everyone knows, you can effectively get a first-order function by using an anonymous subclass instead. Something like this:


class MyClosure {
void run() {} // override this
}
void doSomethingClosureLike() {
MyClosure closure = new MyClosure() { void run() { System.out.println("We're inside a closure!"); }};
runTheClosure(closure);
}
void runTheClosure(MyClosure closure) {
closure.run();
}
// will print We're inside a closure!

Anyway, it's simple enough, you pass the class instead of the function and there's a little extra verbage but it works!

Also you get closure-like functionality, because inside run() you can access variables from outwhere where you created it. E.g.:


void doSomethingCooler() {
final String myString = "Foo!";
MyClosure closure = new MyClosure() { void run() { System.out.println("The string is: " + myString); }};
runTheClosure(closure);
}
// will print The string is: Foo!

You can also access global variables that change over time, and the closure will use whatever is the current value WHEN THE CLOSURE RUNS.

There's just one small annoying thing, which is this particularly annoying compiler message:

local variable (WHATEVER) is accessed from within inner class; needs to be declared final

If you were do change myString to not be final, you'd get that error. Bummer. You could make myString a global variable and that would work, but that's stupid. There is a better way. Try this:

void doSomethingCooler() {
String myString = "Foo!";
final String myStringFinal = myString;
myString.concat(" Bar!");
  MyClosure closure = new MyClosure() { void run() { System.out.println("The string is:" + myStringFinal); }};
 runTheClosure(closure);
}
// will print Foo! Bar!

Now you can even change myString after you assign myStringFinal, because Java, although they say it doesn't use pointers, really does use pointers. I.e. it passes by reference. So, myStringFinal is actually just a reference to myString, and keeps pointing to it even when you change the contents of myString.

You can CHANGE it (like using concat()) but you CAN'T reassign it. That will break the pointers. It makes sense if you think about it—myString will have a new memory address, and myStringFinal will still be pointing to the old memory address (and the old string value). So, this won't work:

myString = "won't work"; // breaks myStringFinal

You can use this technique with any object (but not primitives like int).

Comments: 0 (view/add your own) Tags: (none)

ALL NEW "Simon Says" content RIGHT HERE

Posted by Simon on July 10, 2008 at 02:52 PM

Wow, WYM Editor is so cool that I can just like type in a new blog post whenever I want to. Wild!

So anyway, I've been saving up a whole load of links and stuff for months until I had this new site all sorted out. So here's something.

Hmm... where did my "stuff to blog about" folder go?

Oh, here's an awesome one. Nikkei Electronics Teardown Squad. These guys kick ass. Watch as they take apart a MacBook Air and declare "No Waste Outside, Nothing but Waste Inside".

About 30 screws were used to attach the keyboard alone. "The total number of screws in the MacBook Air was several times the number used in a PC we make," one of the engineers said.

Burn, baby, burn!

OK, here's another one from the files. Nathan Fawkes Art. He's part of a network of film animators and illustrators and concept artists who all have their stuff up on blogspot.

And I'd like to remind myself particularly about this post about science fiction.

Comments: 0 (view/add your own) Tags: (none)

Restoring the old posts

Posted by Simon on July 07, 2008 at 12:35 AM

OK, here's a test of how WYMeditor works, because I'm going to try to copy/paste some code in here. I just had a little foray into my past with XSLT. I had 344 old blog posts (starting year 2000!) to convert from XML to SQL. Nothing better than XSL for the job! Here it is.

NB: I haven't restored images as of this writing.


<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="no" omit-xml-declaration="yes" encoding="ASCII"/>
<xsl:strip-space elements="*"/>
<xsl:variable name="ucletters">ABCDEFGHIJKLMNOPQRSTUVWXYZ- </xsl:variable>
<xsl:variable name="lcletters">abcdefghijklmnopqrstuvwxyz-_</xsl:variable>
<xsl:variable name="allowed_letters">ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_ </xsl:variable>
<xsl:template match="/">
<xsl:text> USE `sw-blog-dev`;
</xsl:text>
<xsl:apply-templates select="weblog/entry"/>
</xsl:template>
<xsl:template match="entry">
<xsl:text>INSERT INTO `sw-blog-dev`.`posts` (`author_id`,`created_at`,`modified_at`,`permalink`,`title`,`synd_title`,`summary`,`body_raw`,`extended_raw`,`body`,`extended`,`is_active`,`custom_field_1`,`custom_field_2`,`custom_field_3`,`body_searchable`,`extended_searchable`,`text_filter`,`comment_status`) VALUES
</xsl:text>
<xsl:text> (2,</xsl:text> <!— author_id —>
<xsl:text>'</xsl:text><xsl:apply-templates select="date"/><xsl:text> 12:00:00',</xsl:text> <!— created_at —>
<xsl:text>'</xsl:text><xsl:apply-templates select="date"/><xsl:text> 12:00:00',</xsl:text> <!— modified_at —>
<xsl:text>'</xsl:text><xsl:apply-templates mode="PERMALINK" select="title"/><xsl:text>',</xsl:text><!— permalink —>
<xsl:text>'</xsl:text><xsl:apply-templates mode="XHTML" select="title/text()"/><xsl:text>',</xsl:text><!— title —>
<xsl:text>'</xsl:text><xsl:apply-templates mode="SYND_TITLE" select="content"/><xsl:text>',</xsl:text><!— synd_title —>
<xsl:text>'',</xsl:text><!— summary —>
<xsl:text>'</xsl:text><xsl:apply-templates mode="XHTML" select="content"/><xsl:text>',</xsl:text><!— body_raw —>
<xsl:text>'',</xsl:text><!— extended_raw —>
<xsl:text>'</xsl:text><xsl:apply-templates mode="XHTML" select="content"/><xsl:text>',</xsl:text><!— body —>
<xsl:text>'',</xsl:text><!— extended —>
<xsl:text>1,</xsl:text><!— is_active —>
<xsl:text>'',</xsl:text> <!— custom_field_1 —>
<xsl:text>'',</xsl:text> <!— custom_field_2 —>
<xsl:text>'',</xsl:text> <!— custom_field_3 —>
<xsl:text>'</xsl:text><xsl:apply-templates mode="TEXT_ONLY" select="content"/><xsl:text>',</xsl:text><!— body_searchable —>
<xsl:text>'',</xsl:text><!— extended_searchable —>
<xsl:text>'markdown',</xsl:text><!— text_filter —>
<xsl:text>1);
</xsl:text><!— comment_status —>
</xsl:template>
<!— must remember to backslash all single quotes —>
<xsl:template match="date">
<xsl:value-of select="translate(.,'/','-')" />
</xsl:template>
<xsl:template mode="PERMALINK" match="title">
<xsl:value-of select="substring(
translate(
translate(., translate(., $allowed_letters, ''), ''),
$ucletters,
$lcletters
),
0,42)"/>
</xsl:template>
<xsl:template mode="SYND_TITLE" match="content">
<xsl:call-template name="escapesinglequotes">
<xsl:with-param name="arg1"><xsl:value-of select="normalize-space( substring(.,0,42) )"/></xsl:with-param>
</xsl:call-template>
<xsl:text>...</xsl:text>
</xsl:template>
<xsl:template mode="TEXT_ONLY" match="content">
<xsl:call-template name="escapesinglequotes">
<xsl:with-param name="arg1"><xsl:value-of select="normalize-space(.)"/></xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template mode="XHTML" match="content">
<xsl:apply-templates mode="XHTML"/>
</xsl:template>
<xsl:template mode="XHTML" match="node()|@*">
<xsl:copy>
<xsl:apply-templates mode="XHTML" select="@*"/>
<xsl:apply-templates mode="XHTML"/>
</xsl:copy>
</xsl:template>
<xsl:template mode="XHTML" match="text()">
<xsl:call-template name="escapesinglequotes">
<xsl:with-param name="arg1"><xsl:value-of select="normalize-space(.)"/></xsl:with-param>
</xsl:call-template>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template mode="XHTML" match="@*">
<xsl:attribute name="{name()}">
<xsl:call-template name="escapesinglequotes">
<xsl:with-param name="arg1"><xsl:value-of select="normalize-space(.)"/></xsl:with-param>
</xsl:call-template>
</xsl:attribute>
</xsl:template>
<xsl:template name="escapesinglequotes">
<xsl:param name="arg1"/>
<xsl:variable name="apostrophe">'</xsl:variable>
<xsl:choose>
<!— this string has at least on single quote —>
<xsl:when test="contains($arg1, $apostrophe)">
<xsl:if test="string-length(normalize-space(substring-before($arg1, $apostrophe))) > 0"><xsl:value-of select="substring-before($arg1, $apostrophe)" disable-output-escaping="yes"/>\'</xsl:if>
<xsl:call-template name="escapesinglequotes">
<xsl:with-param name="arg1"><xsl:value-of select="substring-after($arg1, $apostrophe)" disable-output-escaping="yes"/></xsl:with-param>
</xsl:call-template>
</xsl:when>
<!— no quotes found in string, just print it —>
<xsl:when test="string-length(normalize-space($arg1)) > 0"><xsl:value-of select="normalize-space($arg1)"/></xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

Niiiiiiice.

Comments: 0 (view/add your own) Tags: (none)

Blogging on Rails

Posted by Simon on July 07, 2008 at 12:00 AM

Hi there.

Well, I'm back. I was running this site on really ancient technology — AxKit — so 2001. Now I'm running it on modern technology, i.e. Rails 2. And doesn't it rock. Now I have a cool GUI editor to type into, I have easy programming in ruby, and I have of course polished both my design and my CSS/XHTML skillz considerably in the mean time, hopefully making this all easier to look at and navigate.

So I'm running on SimpleLog here, but it's not "stock". Oh no. Stock SimpleLog right doesn't run on Rails 2, but this one does. Also, I made it even MORE simple than it used to be:

  • Support Rails 2.0 (no need to freeze an old rails)
  • no themes—annoying to use anyway, and no one was publishing themes either
  • replaced the editor/preview panel with WYM on Rails, which is by FAR the best WYSIWYG / GUI editor I've ever found, and the end of a long search for me

...and so on.

Comments: 0 (view/add your own) Tags: (none)

The Quick and Easy Guide to moving your project from CVS to Subversion

Posted by Simon on March 05, 2007 at 12:00 PM

So you want to use SVN? Fine, it's easy to move a project from one to the other.

Get cvs2svn

Go to a checked out copy of your cvs project and run cvs admin -kb filename on any binary files.

Commit to CVS.

Assuming that you've got a simple CVS project with no branches that you want to keep, do this:

./cvs2svn-1.5.1/cvs2svn --trunk-only -s project-name /path/to/cvs_repository/project-name mv project-name /path/to/svn_repository/ 
Comments: 0 (view/add your own) Tags: (none)

Tinselman

Posted by Simon on February 25, 2007 at 12:00 PM

Tinselman is the very amusing blog of the co-creator of Myst, Robyn Miller. It's a bit iffy on a daily basis ... and very eclectic. A bit like this blog, but better.

He's got this ongoing thread about the Republic of Tinselman, which appears to be something dating back to some attempt to create a fake republic on Wikipedia, or something, but whatever. It's just stuff.

He also seems to be a big fan of Walt Disney . To be particular, Walt Disney, and Disneyland. Not necessarily the Disney company or the movies per se. In fact, thinking about it, or maybe I read this somewhere. Anyway, that he wanted Myst to be a bit like Disneyland, which I think it is.

It's worth noting that Robyn Miller is the one who did the music for Myst and Riven, and he left after Riven. It's a bit obvious looking at any of the sequels after that the original spirit isn't there. With his brother Rand, he also did pre-Myst stuff like Cosmic Osmo, which was pretty cool and all done in the absolutely brilliant and amazing but now-forgotten HyperCard . In fact, did you know that the original Myst for Mac was written and deployed in Hypercard? Amazing but true.

Actually, that reminds me of a story, which is that back when Myst was first released I was working at this rather unusual place called the Southam InfoLab . Anyway, I was mainly a HyperCard hacker and pretty damned good at it if I may say so. And I managed to hack into Myst and actually look at the source code running it. HyperCard is an interpreted language, the language is called HyperTalk, and there was no compiler for it. So, they implemented this fiendishly complex system for preventing you from breaking into debug mode and viewing the code, but I managed to hack it. I don't remember doing much with it though, because the source code for Myst was way over my head at the time.

Anyway. Robyn is clearly a very interesting an unusual person. I think it would be very interesting to meet him and peer into his brain some day. Once you get past the "oh my god he's the guy who made Myst" thing then his blog seems to be quite interesting.

Comments: 0 (view/add your own) Tags: (none)

A Bit of Torrent - Police Squad!

Posted by Simon on December 03, 2006 at 12:00 PM

police squad

My name is Lieutenant Frank Drebin, Police Squad, a division of the Police Department. I just got a call from headquarters. Someone killed off a cop series in the prime of its life, and we couldn't find the body. Fortunately some new evidence turned up, and it looked like we might have found the body and it's killer.

And so begins this week's episode of A Bit of Torrent , a weekly (almost) feature of Simon Says where we highlight the absolute latest in downloadable content. This week in the crosshairs: Police Squad!

If you've ever seen Leslie Nielsen or any of the Naked Gun movies, you know what to look for. You know what I mean. Exactly. It's basically six mini-Naked Gun movies in a row.

Download Police Squad (complete) on The Pirate Bay .

Sadly, the show was cancelled before its time. Cigarette? Yes. I know.

Comments: 0 (view/add your own) Tags: (none)

an unusual Mac OS X graphics bug

Posted by Simon on November 28, 2006 at 12:00 PM

When I first saw this, I thought, hey cool! Then I took a screenshot and when it came through in the screenshot, that was even cooler. It's not often you get something like this. Memory corruption, maybe, not terminal, and not detected by the graphics software. My laptop gets hot sometimes, maybe the memory got corrupted that way? It happened on wake from sleep. Anyway, voila.

graphics bug

It sort of went away when it redrew areas of the screen but not completely, so I restarted.

Comments: 0 (view/add your own) Tags: (none)

New features on the blog: pagination, save to digg, del.icio.us

Posted by Simon on November 17, 2006 at 12:00 PM

I just added two new features. First, now you can finally page through the posts 15 at a time (or whatever # it's set to show on the front page), using the "Previous Page" and "Next Page" links at the bottom. Second, you can save a specific post to Digg or delicious by just clicking on the appropriate little icon in the meta-data at the top of the post. As if anyone would want to do that. I don't, but I saw it on a bunch of other blogs so I thought I'd do it to.

I guess in theory you could use digg to discuss the post, if everyone used digg.

Comments: 0 (view/add your own) Tags: (none)

Some fun with Saxite, a logo, my first "font"

Posted by Simon on October 21, 2006 at 12:00 PM

So Saxite is the new name for my siteware project. For those of you not paying attention, it's all written in XSLT and XML and it runs on AxKit.

I decided to make an icon so I came up with this icon, below.

Like it? I was inspired by a recent issue of Computer Arts Projects (one of the fantastic UK graphic design magazines that my local Indigo store carries) that was all about fonts, to do some of my own font work. So, I had a visual idea of what I wanted the logo to look like, with the X as a white space in the middle, and then I looked for a font on my system that was very blocky and thick and wound up with Arial Black. "ITE" on Arial Black are very generic, but I really didn't think that the S worked at all for me, and the A didn't fit, and the X I didn't like either (not wide enough).

saxite icon

So I started with the A. I actually did the A from scratch, not even bother to look at the Arial A. It's more like half of an A anyway. Next I got the X in the shape I wanted, and filled in the negative space on the right side with the I. Getting the hole in the A to look right was tricky, right now it's actually a white copy of the shape of the A!

Oh yeah, and check out the arrow in the A too :-) (it's pointing right). And check out the angle bracket on the right side of the X :-)

saxite icon

I spent by far the most time on the "S". I didn't like the original Arial S and wanted to replace it the most since it's by far the most identifiable letter of the ones I used. Also it didn't look blocky and aggressive enough in my opinion. There was quite a bit of variation in the width of stroke which I didn't like, so I drew my own "S" over top of it with a more even stroke (drawn with beziers). I also didn't like the flat ends so I switched over to ends on 45-degree angles. Getting it to balance was interesting ... the bottom end of the S actually extends out beyond the curve above it, while the top end is shorter than the curve below it. Weird.

I actually tried out another one which was even more streamlined, with the top and bottom strokes ending totally horizontally (like in the Star Wars logo) but that looked too, I don't know, sci-fi?

Finally I added the hole to the right of the X, before the I. And then I redrew the rest of the letters by hand so that they would all flow together. Now there's no Arial Black left at all.

Oh yeah, and post-processing in Photoshop to give it that 3d look.

Comments: 0 (view/add your own) Tags: (none)

The "quest for colour"

Posted by Simon on October 20, 2006 at 12:00 PM

Although I love graphic design, I've never been able to get the hang of colour. I usually work in black and white. My colour palettes usually suck. The colours on this site are nice but that's a very lengthy evolution and they could still be better.

Now if I ever need a colour palette I'll just go to this flickr set by lunaryuna called quest for colour . It's bloody brilliant.

Here's a random sample, just reload to see another 4, or click through for higher-rez versions...

4 random x user_set 47745789@N00 371908 m
Comments: 0 (view/add your own) Tags: (none)

A bit of torrent: The Fast Show

Posted by Simon on October 02, 2006 at 12:00 PM

This week on "a bit of torrent" ...

fast show

Aren't british comedies brilliant? Bittorrent — isn't that brilliant? I mean, downloading TV over the internet — what will they think of next? It's fantastic. The Fast Show, isn't it great? It's a bunch of sketches but before they wear out, they start the next one. And all the sketches are brilliant. Well, not all of them, the one with the thief wasn't so good, but then they get him off the set and on to the next one. Brilliant!

Meanwhile.... nothing will ever touch the true genius of "A bit of Fry and Laurie" — seriously, don't even go there — but The Fast Show gets pretty close at times. It's called the fast show because (a revolution in comedy at the time) the sketches are short and sweet. No lengthy build-ups here. Good ones come back in the next episodes, and they have a series of really hilarious steadies like the "brilliant" guy, who thinks everything is great, even the Nazis; Ted and Ralph, who aren't really funny, and a soccer newscaster who always goes off on a tangent about "boys in the park, jumpers for goalposts, eh?"

fast show

Most of the best characters are played by Paul Whitehouse so it's weird that I've never heard of him before. He's a bit of a chameleon. He appears in two of the attached pictures but every time, it's a different voice, a completely different look, different body language. He hasn't been in a lot of movies but even so I'd not be sure that I'd spot him.

Anyway, definitely a top pick. Here are some links. There are 3 seasons. There's also some specials out there somewhere.

TorrentSpy :

UPDATE: ... but don't bother with season three. It's a dog.

Comments: 0 (view/add your own) Tags: (none)

tags tags tags

Posted by Simon on September 12, 2006 at 12:00 PM

I just spent a whole bunch of time sorting my tags. Because I have the best tag browser ever and so I'm having some fun going through and tagging my content and making my tags better now. For example, I had no rhyme or reason for uppercase, some were mixed-case, some were uppercase, some were lowercase. I decided to make them all lowercase.

So, a bunch of tags were renamed which will break links but too bad, backwards-compatibility is for losers. Also, I don't think people have really linked to my tags yet. But they will....

Anyway, I also added some new tags and went back and tagged a bunch more old posts too. Have a look at original/prediction (my "original work" making predictions about the future). Or how about computer/wi-fi (lots of developing world stuff in there...). Or how about just meta (navel gazing fun). Yum.

Comments: 0 (view/add your own) Tags: (none)

dailykos uses my graphic as the "open thread" image

Posted by Simon on September 10, 2006 at 12:00 PM

I came up with this image yesterday when I was thinking about Disney's role in the fantasyland movie that ABC just broadcast (Disney owns ABC and apparently backed the film).

Disney Politics Logo Hack - colour

To be honest, I just like the colours. I always thought this was a cool logo. But anyways, no more Mr. Nice Guy or whatever. I had a look at the font on their original logo and it looks to me like Rockwell Light so I had a go in PhotoShop and changed "Pictures" to "Politics". Now Disney can put this up on the front of all their political propaganda pieces.

It didn't make much of a splash when I posted it in my diary so I figured it wasn't that good, but I guess that there really isn't any proper correlation between Recommendations and actual merit on DKos -- at least in the "long tail" of non-superstar diarists. I think that has something to do with their horrible, horrible tagging browser.

Comments: 0 (view/add your own) Tags: (none)

Even better tag browser!

Posted by Simon on September 06, 2006 at 12:00 PM

Well now I've got an even better tag browser . In fact I think it's the coolest tag browser ever. It's better than the flickr tag browser and the technorati tag browser and amazingly, even then del.icio.us tag browser . And what is delicious for if not tag browsing. Well.

Anyway, I used a sort of crazy CSS-float-left thing to make the big and small boxes all go inline together. It would have made more sense to use inline-block but it's not supported in Mozilla yet (weird).

Also, you will note that this new browser really brings out the awesomeness of my two-level tagging scheme because now for the first time you can see how the levels work. And I'm discovering that maybe I have some duplication oops, and I'm also completely inconsistent in how I capitalize. Hmm. I might edit my tags (I suppose that's bad for google though, oh well).

Anyway, the big names in the filled-in boxes are the "categories" and the names in the small white boxes are the "tags"... some day I might allow to view just the tags but I'm not quite sure what that would mean.

Note to self: I should add some category browser on the left side there.

Comments: 0 (view/add your own) Tags: (none)

Linkdump: cousin Suzanne, "Me", Excel little graphs, The Grooming of the Woodside Man

Posted by Simon on August 28, 2006 at 12:00 PM

A bunch of links and things.

Ahree Lee created (or is creating?) an amazing short film. Starting in 2001 she started to take a picture of herself, every day, in the same pose. As of 2004, she created a short film called Me in which the images are flashed at you at the rate of about one week per second. If you want to download the film, you can use mplayer (like I did...) with something like this from your unix shell. (Note that the rtsp URL might change, you can get it from AtomFilms web page / View Source.) (Also note that I had to insert a backslash in front of the exclamation mark, probably inserted by atomfilms to foil script kiddies trying to use this method.) I think you could do some cool analysis of the images over time.

mplayer -dumpfile out.rm -dumpstream 'rtsp://shockreal.edgestreams.net/real.atomshockwave-secure_!/me_300.rm?auth=caEascHb6b7dRbpdudXcLbKdibBaHbDbbdP-be81D5-cOW-REAwJrGowGoHn3wlB&aifp=123&span=10800' 
suzanne thomas

My cousin Suzanne Thoma finally has a website. She still sings but mostly she's now a freelance graphic designer. My opinion: website needs some work. I'm not sure that my parents would be able to navigate it.

How to create little bar charts inside the cells of an Excel spreadsheet looks useful and pretty easy to do. Generally speaking Excel's graphing sucks, and it looks like the Excel 12 graphs aren't going to get any better. Apple's iWord graphs are somewhat better but not perfect and some important graph types are missing.

Finally, let's hear it for art: The Grooming of the Woodside Man V1 by Simon Donikian and The Grooming of the Woodside Man V4 .

Enough for now...

Comments: 0 (view/add your own) Tags: (none)

I can't get enough of ravenblack quizzes!

Posted by Simon on August 19, 2006 at 12:00 PM

I just can't get enough of these ravenblack.net quizzes! They're so awesome! The author is a genius!

Wait, the author is also really weird and has a RavenBlog !

While I'm here and screwing around, here's a Googlewhack: aquaplane wimax

Also, I'm redoing some fundamental bits of the XSLT that runs my site, so things might be a bit haywire for a few days.

Comments: 0 (view/add your own) Tags: (none)

Some links between Republicans and Vets for Freedom

Posted by Simon on August 16, 2006 at 12:00 PM

I was just reading this article on The Vets for Freedom faux grassroots movement . If there's one think that I don't like, it's astroturfing. See why at wikipedia . Especially political astroturfing, the worst kind.

The web of connections in the article is pretty confusing so I came up with this information graphic to try to untangle it a bit.

Some links between Republicans and Swift Vets and Vets for Freedom

I have large versions in Some links between Republicans and Swift Vets and Vets for Freedom (PDF) suitable for printing at any size, and also bitmaps in PNG , and JPEG .

Keep an eye on this page and / or the blog generally, as I may update the infographic if more information becomes available.

It's licensed under creative commons CC-BY-SA , so if you want the original file (in OmniGraffle ) let me know.

I cross-posted this on sbwoodside's diary on DailyKos . If you want to comment, you can do so there (or just email me).

Comments: 0 (view/add your own) Tags: (none)

nifty animated information graphic

Posted by Simon on August 11, 2006 at 12:00 PM

Imagining the Tenth Dimension is a cool, flash-animated information graphic. Unlike a lot of flash graphics, this one really needs to be animated, the movement really adds to the explanation power of the graphic.

After watching it, you're supposed to understand why "String Theory" has ten dimensions and what they are. In theory, anyway.

Comments: 0 (view/add your own) Tags: (none)

Customizing CSS with the Sympa Mailing List manager .. and CFH 416

Posted by Simon on August 01, 2006 at 12:00 PM

I recently decided to customize the CSS style sheets on my Sympa mailing list manager -based semacode.org forums . It wasn't quite as easy as I think it should have been. The "instructions" in the Sympa docs are not exactly friendly. However after puzzling through it myself I found that it wasn't too hard. Here are the notes I made in the process.

set css_path in robot.conf e.g. css_path /var/www/lists.semacode.org/css #filesystem path css_url http://lists.semacode.org/css/ #fully-qualified URL! then set chmod the css directory, chmod a+rw so that sympa can change it then on "skins admin" page do "install static css" (static = not generated on the fly by tt2, I think) it will install style.css and some other .css files in the css directory then set the css directory back to whatever permissions you want it to have then modify the "static" css files however you like 

...and there you have it. So far I haven't done much, just a little bit on the archives view . Ultimately I hope to steal all the good looks from projects like phpbb and others.

Also my next appearance on Call for Help should be in episode #416, whenever that airs.

Comments: 0 (view/add your own) Tags: (none)

Two-level tags

Posted by Simon on June 24, 2006 at 12:00 PM

I've thought before about putting in a two-level tagging system on my blog. I guess that it comes from that I'm dissatisfied with "tags" per se. They're just not rich enough. With a simple tagging system, it's hard to organize your tags into groups, for example, which to me is a big problem.

I'm not the only one to do something about this: see also tag bundles on del.icio.us , and also "meta tags" (which are tags about tags I guess).

I think that the common "solution" is to give mix tags together, so if you're talking about developing software on OS X you'd tag with "development", "software" and "OS X". But that's an implicit, not an explicit relationship. Also, designing a tag browser that lets you see which articles are tagged with all three of those tags is a hassle. Finally, there's no sense of hierarchy.

On the other hand, going to hard in the other direction (totally formal hierarchies) is also not viable in my opinion because it's too much work. You can get stuck with a specific hierarchy that doesn't always work (like in a library catalogue), or you can get confused by deranged mazes of hierarchical relationships (like Wikipedia's categories ).

This is a problem in software development too. I remember when working at Apple. NextStep always had a single-level namespace, which meant that each and every library and application class had to have a unique name. This is a really big hassle and so people wound up prefixing their class names with two uppercase letters in order to prevent collisions. So NSThis and NSThat were the names for "NextStep" classes (provided by the system), and your own app would be MAThis and MAThat (for "My App" ...). Then of course what if two people choose the same prefix. Or what if the name of the app changes, and your prefix becomes historical and a little spurious. (Like in OS X, all of the system classes still start with NS...)

Apple introduced a two-level namespace at some point in 2001 I think, which made the problem go away (although the NS prefix remains). I think that two-level systems are good. People can remember two levels of hierarchy very easily, it's a sort of natural relationship (like having a filesystem with files and folders but no sub-folders ... wouldn't that be simple??).

So I decided to put into place a two-level tagging system here in my blog. The "top level" tag is the category and the "second level" tag is the tag . Top level categories include links , original , and a big one: dev (for software development). You can see all the categories by clicking "Browse all tags" at the top to take you to the categories and tags browser .

There's a couple more things I want to do. One is to integrate the rest of the site into the system, so that any of the pages on the site can be tagged and included in an overall tags-based browser for the site.

Also I need to improve the UE a bit ... one thing is to have the ability to see a list of each category and its sub-tags. Also, I need a page-overflow paging type system to deal with huge pages like the one for the "dev" tag.

Comments: 0 (view/add your own) Tags: (none)

Can you still hear?

Posted by Simon on June 20, 2006 at 12:00 PM

Here's a flash app that you can test your hearing , how high it goes at higher frequencies. Best to start at the top and then notice when you can start to hear something. For me, it's 18 000 Hz which is pretty good considering how bloody old I'm getting. How about you?

This all came from a shopkeeper in england who used high frequency sound to repel teens . Fascinating and clever idea.

Oh by the way, you need a decent set of speakers or headphones to do this, otherwise you can blame your crappy speakers :-)

Comments: 0 (view/add your own) Tags: (none)

Videos from JavaOne SF 2006

Posted by Simon on June 04, 2006 at 12:00 PM

/shared/saxinc/movie.xml href=/weblog/media/2006/20060518-paul-yerba.3gp

What have we here? You guessed, some cheesy grainy videos from San Francisco. Let's start with the big one. It's Paul. Yup. And he's not aware he's being filmed. Hmm. Then, he realizes he's being filmed, and so he insults me.

/shared/saxinc/movie.xml href=/weblog/media/2006/20060519-sea-lions2.3gp

Next I give you ... what was that?

/shared/saxinc/movie.xml href=/weblog/media/2006/20060519-sea-lions3.3gp

Oh, it was a sea lion. Yawn.

Please note: Many crappier videos were deleted in the making of this blog.

Comments: 0 (view/add your own) Tags: (none)

A bit of torrent #3: SNL best of Will Ferrell

Posted by Simon on May 22, 2006 at 12:00 PM

will ferrell

I've been watching a lot of torrents lately and frankly, a lot of it has been crap. Like this "Around the world in 80 treasures" show where the host is just insufferable (deleted). Also I've been watching these SNL best of shows and they're pretty good. This one is the best so far.

Go and grab the torrent from The Pirate Bay or view the IMDB page . Until next week, enjoy your A bit of torrent !

Comments: 0 (view/add your own) Tags: (none)

Fake or real?

Posted by Simon on May 21, 2006 at 12:00 PM

Can you tell the difference any more?

man

Go to the source to find out.

Comments: 0 (view/add your own) Tags: (none)

I got 400 spam mails yesterday

Posted by Simon on May 20, 2006 at 12:00 PM

Does that seem like a lot to you? It seems like a lot to me.

Comments: 0 (view/add your own) Tags: (none)

Possible circumvention method for Apple's new iTunes 6 Music Store DRM

Posted by Simon on May 19, 2006 at 12:00 PM

jhymn icon

Apple uses a form of DRM with the iTunes Music Store . While I love iTMS, I can't stand the DRM. The files come down as .m4p files which are AAC with an Apple DRM system called Fairplay .

Now with iTunes prior to version 6.0 there was a great program called JHymn which would strip the DRM from all your iTMS song automagically. Cool! It was built on reverse-engineering work by DVD John and enhanced by other people. Unfortunately, Apple messed around with FairPlay in iTunes 6.0 and JHymn no longer decrypts it.

But wait -- says I -- I have an old Airport Express and it plays my encrypted music just fine! It was made a long time before iTunes 6.0 came out. Is it possible that the music is being transmitted over the WiFi connection unencrypted?

The AirPort Express contains a little computer that can translate mp3, AAC, and AIFF files into an analog output. I know that it only supports certain formats, because I have audio files in other formats that iTunes will play on my computer but not on my stereo. That means that the Express must contain hardware/software that understands AAC. But it would only understand the old Fairplay, not the new one.

That means that iTunes 6.0 is taking out the new DRM before it sends it over the air to the express. And that means it should be possible to write a program that finds that stream of unencryted data and read it back into an unencrypted AAC.

Comments: 0 (view/add your own) Tags: (none)

Useful resources for Ultimate (the disc sport...)

Posted by Simon on May 09, 2006 at 12:00 PM