Thursday, November 29, 2007

Tracks for evaluating Hi Fi

Headphones and the amplifiers to drive them have become a bit of an obsession around here. For me, Alastair started it here for me. 

Clearly my hearing is not as good as it was when I was in my teens but there is a visceral pleasure in high quality audio even now.

Not all music shows it up and here is a little list of tracks I use to evaluate a new amplifier or headphone. It doesn't mean that these are particularly Hi Fi tracks, just that I know them and they reveal the differences for me. YMMV.
  • Jean Michelle Jarre, Equinox Part 4
  • Ry Cooder, Bop Till You Drop, I think it's going to work out fine.
  • Eagles, Hotel California, Hotel California - not really Hi Fi but so familiar that I can pick difference easily and hear the bad edit in the middle
  • Keith Jarrett, The Koln Concert, Part 1 (well any part really)
  • Dire Straits, Love Over Gold, Love over gold
  • Music for the Funeral of Queen Mary, John Eliot Gardiner; Monteverdi Choir, March 1
  • Steely Dan, Remastered: The best of steely dan then and now, Hey Nineteen
  • Talking Heads, Stop Making Sense, Psycho Killer
  • Eric Clapton, Unplugged, Tears in Heaven
Hmm, maybe this list reveals something about me rather than Hi Fi evaluation. Anyhow, it's my little list for what it's worth.

Wednesday, November 28, 2007

A chat with ben and pete - podcast episode 5

Latest episode of our podcast, we discuss:
  • Amazon Kindle
  • Australian Election
  • Google developer podcast

On traditional media I reviewed the Asus EEE PC in the morning on Radio National Breakfast with Fran Kelly you can hear it here.

Chu Moy Headphone amp PCB design

I've built a number of Chu Moy design headphone amplifiers over recent months and recommend them so highly to friends I end up giving them away. Previously written up here.

Ugly construction is fine for one or two off, but it was time to try manufacturing a printed circuit board.

When I last made a printed circuit board, it was done photographically, by exposing a chemical resist to ultra violet light. Having just dismantled my dark room, it was time to try a different technique.

I used some blue "press-n-peel" transfer film. The design was done manually in OmniGraffle, printed on the film with a little HP laser printer, ironed on to the board on a wool setting, etched and drilled all in a couple of hours.

This technique works pretty well, I've had a little trouble with the ironing phase, the transfer moves a bit when I iron it on. On one occasion I had to rub off the bad transfer and iron on again. The instructions say to set the iron to polyester, but our iron doesn't have it so I set it to wool.

The actual circuit for this board uses two OPA134 amp chips (rather than the dual chip) and a TLE2426 rail splitter. I don't include any volume control as the device driving it, generally a computer or digital player has one.

I present here revision 2 of a PCB design. It works but could be more compact and has two links. PDF here, OmniGraffle source here. Note that the writing will be mirrored on the copper side when you make it. (I haven't figured out how to mirror text in OmniGraffle..) 

You are free to use these for any purpose. (Let me know if you improve it).

Be careful that your printer is close enough to 100%, I suggest test printing and lining up the 8 pin IC which is the only critical spacing.

Sorry for the break in transmission expired and for various reasons I didn't realise until it was too late. Unfortunately it has taken five days for me to get it back and running again.

Very sorry to anyone who came to this humble blog over recent days. I'll try not to have this happen again.

Monday, November 19, 2007

Dismantled my darkroom - a sad day

I'm a habitual early adopter in every area except one, photography. I stuck with film long after it was becoming clear that digital was superior. Digital isn't better in every way, but that's a whole other topic...

Looking back at my prints I can see that I was somewhat blind to the dust and scratches that would not go uncorrected in these digital days.

I've had a darkroom in the house, on and off, pretty much since I was in my early teens. Many deeply satisfying hours have been spent huddled over the enlarger, with my fingers in the chemical trays, and walking with dripping prints to the laundry to wash. I will miss just having the room there, even though a year has gone by with no activity.

Digital equipment goes out of date within months, some of my darkroom gear is technology that hasn't changed in 40 years.

I'll still keep a few film cameras, they are pieces of industrial art. I wonder if there is a film processing service that develops the film and sends back a really high quality negative scan? Last time I tried Kodak Photo CD it was very disappointing.

A Chat with ben and pete - podcast episode 4

Latest episode here.

Advertising, Outages, Android and Eee PC.

We chat about Time Machine, Back to my Mac (still not working for us), the Rackspace outage, the Android SDK and I have an Eee PC.

Thursday, November 15, 2007

Asus Eee PC mini review

I've just spent a full day using the new Asus Eee PC as my main desktop computer. It was a surprisingly smooth experience.

This tiny laptop, with just a 4Gb solid state drive and 512Mb of RAM is amazingly snappy to use.

The built-in screen and keyboard are tiny but usable if necessary - today I plugged in an external USB keyboard, mouse and screen. The video output goes up to 1280x1024 and looks just fine.

All the applications I need are built right in, including:
  • Firefox web browser
  • Thunderbird email client
  • OpenOffice word processor, spreadsheet, presentation package.
  • Pidgeon instant messenger client
  • Skype telephone
  • KDE's excellent file manager
  • KDE's nice terminal
The Xandros linux distribution browsed my network well and found printers and samba shares with ease. Sometimes finding the local WiFi network was a little slow but worked in the end.

While there is only 1.3Gb of disk space free for documents, it was easy to mount a shared file system (included NFS) or plug in an SD card for document storage.

As a command line user, I welcome all the standard utilities such as ssh, wget, python (regrettably only 2.2.4), nano, java, and about 1600 others.


It's hard to complain about a highly portable notebook that costs just AU$500. Of course it would be nice if the screen was bigger and took up the available space, you can't make the keyboard larger without increasing over all size, the trackpad defaulted to a very insensitive setting but that was soon fixed.

Scanning for wireless networks seems a little slow, but gets there in the end. There are rather a lot of icons in the system tray and the overall look of the KDE based desktop looks unnervingly like Windows XP.

I'd like to leave a large SD card in the slot all the time, but each time I start up it pops up a dialog asking what I want to open it with - probably a work around involving fstab but this needs a gui solution

The single click button below the track pad seems very stiff and I've just realised that it's because it's actually a rocker switch with a left and right button part. Perhaps a little clue such as a line in the middle would avoid this mistake.


I'm writing this post on the device right now, still getting used to the keyboard, but certainly very usable. The only moving part is a small fan so it's very quiet, strange not to hear any disk activity at all.

I think these low cost but feature packed Linux based devices represent a new category of consumer devices. Cheap enough to give to the kids without taking out extra insurance, powerful enough for real work.

A chat about the Google phone

This morning on ABC Radio National, I had a chat with Fran Kelly about the new Google phone platform. You can hear it here.

Monday, November 12, 2007

A Chat with ben and pete - podcast episode 3

GPhone, AWS and Linux.

The big news of the week is the launch of the Open Handset Alliance and the Android OS backed by Google. We chat about its possible effects on the market and the developer scene. Other topics discussed include GMail IMAP, Amazon Web Services and Redhat, the Asus Eee PC, Radiohead and Fedora 8.

Saturday, November 10, 2007

ITunes feature creep getting out of control

iTunes started out as a fantastic tool for organising, searching, browsing and playing digital media files. The ability to browse by genre, album, date added and so on, was a revelation to me - and it was really fast too.

But now, iTunes has changed so much the name doesn't even suit it any more. 

Here's my list of features that have ended up in what used to be iTunes:
  • Update firmware in telephones
  • Purchase electronic books
  • Synchronise calendars
  • Monitor RSS feeds
  • Share music on the local network
  • Burn CDs
  • Enforce parental controls on content
  • Backup phones and one model of iPod
  • Movie rentals soon too?
Does this sound like feature creep to anyone else?

When Apple created iSync and the whole Sync Services concept, it sounded like we would get a single place for doing that hard task of synchronising our computers with our portable devices.

Of course it's more extreme on Windows where an install of iTunes also installs QuickTime, I think they should extend this software beach head and also install Safari 3 (weird how it's still a beta even though Leopard has shipped).

It's easy to be a critic, so here's what I'd suggest:
  • Split up the iTunes functionality, give us back that simple media player with fantastic slicing and dicing features
  • Create a "device manager" that is responsible for talking to devices, including media players, Apple TVs, phones, cameras, tablets, and doing the syncing that needs to be done.
  • Put the iTunes store on a web site and just make it part of the general excellent Apple online store experience, sure you can link from tracks but don't make me shop inside that little box.
iTunes must be well overdue for a re-write, I still see the old watch cursor from classic days so my guess is that it's still a carbon app - that must be a nightmare code base to work on!

There's no doubt that the iTunes team has been the first to show us new user interface features that have ended up in the OS: smart folders, live search, and now coverflow. That must be a hot team, but I think it's time to split up and focus.

Thursday, November 08, 2007

VNC client built right in to Leopard

After installing Leopard I've been gradually re-installing the apps I need only as required. Just now I wanted to connect to a server via VNC and was about to re-install ChickenVNC but instead thought I'd try something...

We know that Leopard supports screen sharing and that it's built on top of VNC. It turns out that you can do a Command-K in the finder, connect to server, and use a url like this: vnc://hostname to connect. If it's not running on the default VNC port of 5900 you can add the port in the usual way as shown in the picture.

As dreena is a a linux box, I get a warning dialog box as shown. The client seems very snappy and works nicely.

When I connect to an old Panther MacOS X Server it works just fine and obviously doesn't give the warning about keystroke encryption. Digg this.

I've noticed that the built-in VNC doesn't interoperate too well with the RealVNC server for windows. In this case Chicken Of the VNC seems to start up the session much faster for some reason.

Monday, November 05, 2007

A chat with ben and pete - podcast episode 2

Episode 2

We discuss our thoughts on MacOS X 10.5 a week into installing it. Topics covered include Time machine experiences, launchd, Mac malware, XCode 3 and more DTrace. The big news of the week is Google's OpenSocial API and we chat about our thoughts on all things social.

Sunday, November 04, 2007

GNUstep quick start on Linux

I'm enjoying tinkering with Cocoa on my Leopard Mac and I thought it might be fun to take a peek at Objective C and the framework on Linux in particular for developing command line tools.

My thinking is that it would be nice to develop the code under XCode and then just compile for Linux if I can figure out where the frameworks diverge and keep to compatible code.

Here's a quick start guide for Fedora Core 5 assuming that you already have the basic gcc (I'm sure it's basically the same on others):
  • sudo yum install gcc-objc
  • wget
  • tar xzf gnustep-startup-0.18.2.tar.gz
  • cd gnustep-startup-0.18.2
  • sudo ./InstallGNUstep
  • Edit your ~/.bash_profile to add the line . /usr/GNUstep/System/Library/Makefiles/
  • (note the leading dot in the line above)
Here is a little test program, called first.m:

#import <foundation/foundation.h>

int main(int argc, char** argv, char** env)
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

NSMutableArray * array = [NSMutableArray new];
[array addObject: [NSString stringWithString:@"one"]];
[array addObject:[NSString stringWithString:@"two"]];
[array addObject:[NSString stringWithString:@"three"]];
[array addObject:[NSString stringWithString:@"four"]];
[array addObject:[NSString stringWithString:@"five"]];
[array addObject: @"six"];

NSEnumerator * e = [array objectEnumerator];
NSString * string;
while ((string = [e nextObject]))
[pool release];
return 0;

Create a file called GNUmakefile:

include $(GNUSTEP_MAKEFILES)/common.make
TOOL_NAME = first
first_OBJC_FILES = first.m
include $(GNUSTEP_MAKEFILES)/tool.make

Then make and run:

[marksp@homelinux first]$ make
Making all for tool first...
Compiling file first.m ...
Linking tool first ...
[marksp@homelinux first]$ obj/first
2007-11-04 04:38:40.246 first[1257] Hello
2007-11-04 04:38:40.276 first[1257] one
2007-11-04 04:38:40.277 first[1257] two
2007-11-04 04:38:40.278 first[1257] three
2007-11-04 04:38:40.278 first[1257] four
2007-11-04 04:38:40.279 first[1257] five
2007-11-04 04:38:40.279 first[1257] six

The same code can be built in Xcode and will run on the mac.
The GNUstep framework is very well documented here

One immediate incompatibility I ran into was the starter code for a Foundation command line tool ended with [pool drain] instead of [pool release] - a little DTS humour no doubt!

A brief review of XCode 3

Spent much of Saturday getting in to XCode 3 which ships with Leopard. My project was to build a Cocoa native version of the AppleScript Studio app I built last week to read and ultimately control a Yaesu FT-817 radio via a serial interface.

Having used Microsoft's developer studio, Borland's C++ Builder and the beloved Metrowerks CodeWarrior, the old XCode seemed like a step backwards in programmer friendliness.

XCode 3 is a major step forward. 

It's taking me a little while to stop fighting it and go with the new work flow. Here's my observations:
  • You don't really need to go to the debugger window, variables are now inspected by rolling over them. The open up so you can inspect structures within objects very nicely.
  • The output console doesn't open automatically and until I found it I used the system-wide console to view my NSLog() printouts. 
  • Interface builder has been completely re-written and the vast array of available NIB objects are available in an easily searchable window.
  • I'm having a bit of trouble with the synchronizing between my XCode project and Interface Builder, I end up putting declarations in my .h file and dragging it to IB each time.
  • There's a handy link at the bottom of the IB window to take you to the XCode project.
  • When there are build errors they appear in red balloons right in between lines of your code. At first I found this a bit annoying but now I think it's pretty clever.
  • Code focus is where you put the mouse in a little left margin and blocks of code are highlighted - it's a bit alarming when you first do this by accident but now I think it's neat.
Still to try out
  • Cocoa 2 with garbage collection and automatic synthesis of getters and setters.
  • Project versioning - although I'm loving having Time Machine taking care of me all by itself (tip, watch the console for a while and see all the clever things it's doing)
Cocoa compared to AppleScript

It took me a lot longer to get this going in Cocoa compared to AppleScript mostly because I had to figure out how to drive the serial port. In AppleScript I found an extension that did it all for me, in Cocoa I found some classes from Andreas Mayer and others that are fantastic.

In AppleScript I used the idle handler, in Cocoa I had to use NSTimer.

I'm really enjoying Cocoa now that I'm up and running. It feels really solid and my only complaint is the sheer richness of the library, it's getting really huge and when you can't remember the method name you have to hunt through a huge list. It would be great if code completion could first show the most commonly used methods rather than the whole list.

We desperately need a new edition of Hillegass.