Begin main content

Filesystems and commercial open source innovation

My friend Rusty pointed me to an article about ZFS File System Makes it to Mac OS X Leopard.

ZFS is a filesystem developed by Sun. The self-professed "last word in file systems" no less. If there's something Sun knows how to do it's design and implement kick-ass OS/hardware level software, and of course now (nearly) all Solaris code is open source.

This is the kind of innovation acceleration that Vanevar Bush was talking about for the post-WWII scientific community - now we're really getting there in the commercial, as well as academic, software community.

Google is gaining from, and feeding open source. So is Sun. So is Apple. Oracle is testing at the edges, others are tipping their toes in as well. Which makes you wonder about the people being left out. Specifically Microsoft.

Microsoft's inability to deliver a next generation file system is welldocumented (even on their own winFS blog). Let's see - even in the early '90s Windows was planning an object file system. Apple had a similar early '90s foray (Pink/Taligent), but now they don't have to - they just tweak some code from Sun.

The more we figure out how open source fits into "co-opetition" (I hate that non-word, but there it is) the faster software will progress. Being the biggest software company in the world isn't going to save you when Chinese and Indian companies start to bootstrap themselves on open source and feed back into it.

07:54 AM, 22 Dec 2006 by Mark Aufflick Permalink | Comments (0)

Christmas deliveries

It was the day of receiving parcels today - firstly my A-One Apple 1 replica kit which is a Christmas gift from Kath - can't wait to get that thing cranking :)

Secondly a parcel I almost forgot was coming, the hard copy of Agile Development with Rails - 2nd Ed. The content is no surprise since I had access to the draft pdfs, but this really is a great book. I'm not doing a lot of rails development, but I have to say that the pragmatic programmers books in general are very good. They are selective like O'Reilly used to be, and they are almost as friendly as Randal Schwartz's standard-setting Learning Perl (aka the Camel book).

It's going to be a very geeky Christmas :)

10:40 PM, 21 Dec 2006 by Mark Aufflick Permalink | Comments (0)

Delicious links in my RSS feed

I recieved the following comment on my RSS feed:

Any chance could stop putting your delicious links in your RSS feed? It's
pretty darn annoying. I already subscribe to your delicious links
via...delicious :) Which everyone is free to do.

How about posting a little how-to on subscribing to your delicious links
directly and then leaving your RSS feed for your blog entries only?

As an alternative, maybe you could you provide an RSS feed sans delicious links?


Yes fair point. When I originally merged the feeds I was in a position where I had little time to write blog posts and I intended to write meaningful "mini-posts" in the comment field of delicious as I bookmarked links. It turns out that these days I use delicious as a bookmarking service (not surprising, since that's what it is) and sometimes I can bookmark rather a lot of pages, so I can see how that should be an opt-in feed.

I'm going on holiday for a week (yay) so there won't be any form of posting then :) When I get back I'll un-merge the feeds and post the suggested instructions.

I'm trying to guess who the anony-commenter was, just can't put my finger on it... but point taken.

02:15 AM, 21 Dec 2006 by Mark Aufflick Permalink | Comments (0)

Cvs Emacs on cygwin

I decided it was time to update the emacs in my cygwin installation. Remembering the days it took me last time I hoped that some of the cygwin issues had been ironed out.

Thankfully some of them have. The bootstrapping process now works flawlessly under cygwin (last time I had to bootstrap the lisp files on a solaris box and then transfer the results to windows for the build process).

It also seems substantially faster (although I may have compiled a full debug version for my previous install - can't quite remember).

Unfortunately the memory allocation problem I blogged about at the time is still there. For posterity, here is the work-around patch for version 1.405 of alloc.c:

Index: alloc.c
RCS file: /sources/emacs/emacs/src/alloc.c,v
retrieving revision 1.405
diff -c -r1.405 alloc.c
*** alloc.c     13 Nov 2006 08:20:28 -0000      1.405
--- alloc.c     15 Dec 2006 04:05:41 -0000
*** 5838,5845 ****
--- 5838,5851 ----
      case Lisp_Int:
+         /*
+               This is bogus, but there seem to be corrupt
+               objects placed on the stack under cygwin.
+               I assume this will lead to a phat memory leak!
        abort ();
+         */
  #undef CHECK_LIVE

11:09 PM, 14 Dec 2006 by Mark Aufflick Permalink | Comments (0)

Developing for arm hardware with qemu

qemu is an excellent multi-platform emulator that includes arm platform emulation. I'm just playing around for now but it's pretty neat.

If you want to do likewise, check out these instructions (including a custom kernel) for getting set up. Note that either because of recent SCSI patches to the qemu source, or because I'm compiling on OSX, the images on that page got stuck in a scsi reset loop during booting. Since I didn't want scsi anyway, I simply took the scsi hardware emulation out of the linked modules (manually removed lsi53c895a.o and added ide.o piix_pci.o in the Makefile) and commented out the scsi initialisation and added ide init in the versatile platform emulation (versatilepb.c):

*** versatilepb.c	24 Sep 2006 03:40:58 +1000	1.6
--- versatilepb.c	14 Dec 2006 01:02:28 +1100	
*** 10,15 ****
--- 10,22 ----
  #include "vl.h"
  #include "arm_pic.h"
+ /* ide support */
+ static const int ide_iobase[2] = { 0x1f0, 0x170 };
+ static const int ide_iobase2[2] = { 0x3f6, 0x376 };
+ static const int ide_irq[2] = { 14, 15 };
  /* Primary interrupt controller.  */
  typedef struct vpb_sic_state
*** 164,169 ****
--- 171,177 ----
      NICInfo *nd;
      int n;
      int done_smc = 0;
+     int piix3_devfn = -1;
      env = cpu_init();
      cpu_arm_set_model(env, ARM_CPUID_ARM926);
*** 194,205 ****
--- 202,219 ----
      if (usb_enabled) {
          usb_ohci_init(pci_bus, 3, -1);
+ /* disable scsi hardware */
+ /*
      scsi_hba = lsi_scsi_init(pci_bus, -1);
      for (n = 0; n < MAX_DISKS; n++) {
          if (bs_table[n]) {
              lsi_scsi_attach(scsi_hba, bs_table[n], n);
+ */
+     piix3_devfn = piix3_init(pci_bus);
+     pci_piix3_ide_init(pci_bus, bs_table, piix3_devfn + 1);
      pl011_init(0x101f1000, pic, 12, serial_hds[0]);
      pl011_init(0x101f2000, pic, 13, serial_hds[1]);

Performance is pretty slow on my PPC G4 powerbook - but then that probably tracks actual arm hardware quite accurately...

08:28 AM, 13 Dec 2006 by Mark Aufflick Permalink | Comments (1)

All my Newton Christmases at once

I was actually searching the interweb to see if anyone had run arm-linux on the Newton hardware since I have a few lying around and it would be a neat hardware package for mini projects.

TitleImagine my surprise when I discovered that not only is the Newton emulator project still alive, but it just released a fully working version, running on a host OS of OSX or linux-arm!! This means that I can finally have thepdaI'vebeenwantingforyears - NewtonOS on lightweight modern hardware :)

Einstein Platform (NewtonOS on MacOS X (PowerPC & Intel) & arm-linux) official page, and at the WWNC (world wide newton conference ;)

The delicious irony of the above photo is that the Sharp Zaurus 5500 was the only (?) licensee of NewtonOS. Now it's successor provides host for it's own historical OS.

Further coverage on: Engadget and Make.

09:42 PM, 12 Dec 2006 by Mark Aufflick Permalink | Comments (0)

Donald Rumsfeld handling press questions

All politicians need a finely tuned ability to deflect questions - who knew that Origami was an effective way? :)

12:21 AM, 08 Dec 2006 by Mark Aufflick Permalink | Comments (0)


I just had a coffee and friand (raspberry and pistachio) at my favourite café in Sydney. It's way cool&#8212;it has a downstairs area that makes you feel like it's only available to those in the know. The staff treat you like a friend, the baristas are Italian and the food is great.

As I was being served my coffee I found myself thinking "I don't care how much this is costing me"&#8212;and that is the secred to differentiation that allows you to charge a premium. Have a product and service that makes your customers think that!

10:27 PM, 05 Dec 2006 by Mark Aufflick Permalink | Comments (0)


Blog Categories

software (41)
..cocoa (23)
  ..heads up 'tunes (5)
..ruby (6)
..lisp (4)
..perl (4)
..openacs (1)
mac (21)
embedded (2)
..microprocessor (2)
  ..avr (1)
electronics (3)
design (1)
photography (26) and white (6)
..A day in Sydney (18)
..The Daily Shoot (6)
food (2)
Book Review (2)


Icon of envelope Request notifications

Syndication Feed


Recent Comments

  1. Mark Aufflick: Re: the go/Inbox go/Sent buttons
  2. Unregistered Visitor: How do make a button to jump to folder
  3. Unregistered Visitor: Note I've updated the gist
  4. Unregistered Visitor: umbrello is now an available port on macPorts
  5. Unregistered Visitor: Updated version on Github
  6. Unregistered Visitor: Modification request.
  7. Unregistered Visitor: Accents and labels with spaces
  8. Unregistered Visitor: Mel Kaye - additional info
  9. Unregistered Visitor: mmh
  10. Mark Aufflick: Thank you