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

marxy.org 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.

Criticisms

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.

Conclusion

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.


Update
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 ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-startup-0.18.2.tar.gz
  • 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/GNUstep.sh
  • (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)
{
NSLog(@"Hello");
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]))
{
NSLog(string);
}
[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.

Monday, October 29, 2007

A chat with ben and pete - podcast episode 1

Together with the always interesting Ben, we've decided to join the weekly podcast gang, starting off with some discussion of our Leopard experiences. 

Click here to add it to iTunes.

I'll also be appearing on ABC Radio National Breakfast at around 8:05am tomorrow, (Thursday), discussing the Leopard vs. Vista vs. Linux operating system competition.

You can hear this chat here.

Sunday, October 28, 2007

An AppleScript studio application

AppleScript studio is kind of the Visual Basic of MacOS X. (I'm sure some people will correct me firmly on that statement).

In order to try it out under Leopard I picked a simple project to give me something to shoot for.

I have a little Yaesu FT-817 that supports a remote control serial protocol they call CAT. It's 4800 baud, 8 bit, 2 stop bits. Each packet is 5 bytes, the last byte being the command and the other bytes are the data to go with it.

My objective is the program shown above, it periodically retrieves the current frequency and mode from the transceiver and shows it.

To interface with a common PL-2303 USB serial device, I installed the excellent (and free) Serialport X scripting addition. Thanks Art Coughlin!

To install you create a folder called ~/Library/Scripting Additions/ and stick it in there.

Prototyping was done in straight AppleScript until I was able to read and display the frequency. Next to XCode where I created an "Applescript Application". It reminds me a bit of HyperCard, you open the .nib file and in the Applescript properties tab you can set a handler for a button to call an "on clicked theObject" method in your script for example.

After some frustrating messing about, I've achieved my objective. Once you've chosen the serial device an idle handler refreshes the frequency. 

To make the built application run on a machine without the Serialport X applescript already installed you need to bundle it in the application. Thanks to the instructions here I was able to automate this. Note that I needed a -r after CpMac to copy recursively.

I find the AppleScript language frustrating for reasons I can't fully fathom, this "Applescript for python programmers" table was a great help to me as I'm very comfortable with python.

For what it's worth, I've put my xcode project here, hope it helps someone.

Friday, October 26, 2007

Leopard, great, but not totally without problems

Ben and I were first in line at MacCentric at Chatswood in Sydney to buy MacOS X10.5 Leopard today.

I rushed home and installed it as an upgrade on my Intel iMac. An upgrade takes quite a long time.

When done, Spotlight didn't seem to be doing anything. For some reason it had excluded my internal drive, a preferences change was required to fix this.

After removing my internal drive from the exclude list it seems to be taking hours to index. After an hour it's only 3% done.

So far, all my applications work just fine. Safari seems clearly faster than before, Mail is good. I showed my daughter some of the new features in iChat and she collapsed in laughter when seeing fish swimming behind Ben - this OS is going to be a hit for all the wrong reasons I think.

Tried to get started with Time Machine backups but I need a really big drive by the looks of things. Fair enough.

I ran in to some problems with .Mac syncing. I kind of got stuck in a loop resolving conflicts.

It's a pity that a new install these days involves indexing a large drive which takes time and kills the CPU for some time (hours). This gives an impression that things are going slowly - perhaps this phase should be deferred until the user has played with all the new toys for a while.

Anyhow, lots of new things to play with: Spaces looks great, I do like the new Dock, Mail seems more capable, and I can't wait to learn about Cocoa 2.0. A fun weekend lies ahead...

Updates

I've done a few installs now and here's my notes on an updated machine:
  • Installs are much faster than an update
  • I've had some minor problems with PPTP VPNs (for one thing the connect/disconnect menu item gets a bit confused) I've also had traffic stop and attempting to ping then gives me some error about being out of space.
  • iTunes has hung on me
  • Previously I built my own python but this causes problems for xcode
  • I can't build python 2.5.1 at the moment - compile error
  • All my apps just work
Due to the messing I've done under the hood, such as building my own python in the past, I'm now backing up and preparing to do a fresh install.

Sunday, October 21, 2007

Dxpedition with OziPole at Sydney's North Head

Alan VK2ZAY and I went bush this morning in search of a low noise HF location where we could play with antennas, balans, tuners and annoying flies.

I recently built the excellent Ozipole kit and this was a good opportunity to try it out, primarily on 7Mhz.

I've been searching for a location close to Sydney but as far as possible from power lines and houses and Fairfax Walk at North Head seems perfect.


View Larger Map

As expected, this was a superbly low noise location, and as it was the Scout Jamboree of the Air today there were tons of stations about. Unfortunately VK2WI was on low power on 40m and pretty hard to hear.

We played with several antennas and generally had a pleasant time. Notes for the next outing:
  • Take a table of some sort
  • Shade if possible
  • Find a way to carry the gear, (the battery is rather heavy)
  • Something to repel flies
It was wonderful to hear stations perfectly clearly at less than S1, at my home they need to be overwhelmingly strong to be heard. I'll go back to this location - any other suggestions around Sydney would be most welcome.

Thanks Alan for the fine company. He has blogged about this outing here, which refers back to this post so I hope the internet doesn't get runaway feedback and explode.

Update: Turned on 80m this morning at home at 6am and there is no noise. Here's a sample. So the band noise at my QTH must be from an appliance or power supply or something. I need to go hunting for it and I'm also reading up on receiving loop antennas that might let me null out the signal.

Sunday, October 14, 2007

Linux on a low end laptop

This weekend I've been playing with an old IBM ThinkPad 600X. It has 300Mb of ram, 12G hard disk, 450Mhz Pentium 3 processor, dead li-ion battery and no built-in ethernet or wireless.

My goal is a machine for use on ham radio, most likely running one of the psk31 software packages. I'd also like to be able to use a web browser and check imap email.

There are some very tiny linux distributions around but I figured I'd like something fairly rich so I've been playing with xubuntu which can run in 128Mb of ram. My approach was to use the Ubuntu 7.10 (release candidate) alternative install - as the live CD wouldn't install and then install xubuntu-desktop as explained here.

The normal Ubuntu desktop, Gnome, eats 250Mb before you start up any extra applications. Xfce, used in Xubuntu, eats 244Mb so I don't see much benefit in not running gnome. (I must be missing something here...)

The show stopper has been sound. Sound out works fine, sound in doesn't seem to function. I can see lots of other folks running old hardware with the same problem. I'm using a Lucent PCMCIA wireless card that Ralph kindly sent me. (It actually has an antenna socket on it!). This was detected just fine and works really well. Ubuntu seems to be lacking some user interface for seeing wireless networks though.

Bottom line: A 450Mhz legacy laptop is perfectly usable with Ubuntu. Firefox is everything I want (with a plugin it even plays YouTube videos reasonably), OpenOffice is great and just gets better every month, Evolution email is fantastic, and the overall desktop experience is really solid.

If I wasn't addicted to MacOS and hanging out for Leopard, I could use this desktop every day.

Oh, and I really hate that little IBM nipple mouse thing. Trackpads are much better.

Cleaned the very dusty case up with eucalyptus oil which can dissolve all the sticky gunk under the silly "made for windows 98" and "Intel inside" stickers.

Sunday, October 07, 2007

Getting started with PSK-31 on Mac

PSK-31 is a recent digital mode that is very efficient in terms of bandwidth use and is excellent for keyboard to keyboard chatting on noisy HF.

I've been listening around for the distinctive warble sound on 80m and 40m for some time and hadn't found anything I could decode, then I read about 14.070Mhz (20m) and that seems to be where the action is. Several strong stations were heard without trouble.

A simple wire dipole for 20m was constructed and strung between two trees. I have a Yaesu FT-817 portable rig which has a mini-din 6 data jack on the back so an interface box (pictured above) was constructed. As I run a Mac the excellent cocoaModem software is in use. To key the transmitter, (as the FT-817 doesn't support VOX on the data port - a great pity) I first tried making a simple vox circuit but in the end used cocoaPTT which toggles the RTS line on a USB serial cable. One diode was used to save the radio from the +ve swing, so it just pulls PTT low to transmit, otherwise no electronics, just soldering, seems to work fine.

I called CQ, running just 5W into a very flaky antenna and was immediately called back by JA2LCN in Ogaki City, (this person seems very active).

If you run Windows there is lots of software about for PSK31, there's also some Linux software with a reasonable GUI.

In use, you leave the radio tuned to 14.070Mhz and watch the waterfall display. When you see a signal you click between the lines and start reading. It seems like a very nice way to chat, particularly if you can touch type. (A lot of receive errors I noticed now seem to be bad typing in retrospect).

I note there's some interesting kits around for minimal, low power transceivers designed for PSK31 use specifically. It's interesting to consider that a little board like this, a roll of wire, antenna tuner and a laptop and you can chat half way around the world pretty easily.

Friday, October 05, 2007

HF QRP pleasure with an FT-817

I've just spent a few very pleasant days south of Sydney at Gerroa.

We hired a house on a hill looking out over the beach and I took a Yaesu FT-817 and a slightly modified MFJ random wire tuner along for fun (all I did was add banana sockets for attaching a wire to it).

I strung out about 20m of wire from the balcony to a piece of wood in the yard and it tuned up nicely on 80m, 40m, and 20m. Had a few contacts running just 2.5W (on the in-built rechargeable batteries).

80m is blotted with interference at home. At this location it was magnificently quiet until about 5:30pm when bad televisions get turned on. I really want to find a location with no noisy power lines or TV sets to disturb by HF listening.

Only a few contacts, mostly listening. Just before we packed up I tuned around on 2m and found a very active local community.

Spent the time reading the ARRL Handbook, 2007 and a book by Melvyn Bragg, both really dense and fascinating.

On our last morning, went for a walk with my wife who slipped on a ramp and broke her leg. So quick, so easy. My thanks go out to the good folks of Gerroa who helped us to a car, a doctor and a hospital.

It's amazing how easily we can be injured. Such fragile creatures.