Mon, 17 November 2008

Instaviz (graph sketching for the iPhone) is what I’ve been working on lately.

Tue, 6 September 2005

Exciting times.

It’s 3 months since the news of the PowerPC-Intel transition — are you at the 5th stage of grief yet? Apple seemed poised to run another iPod revolution. The Cell docs are finally out — care to have a spufs anyone?

And macstl 0.3.1 is finally here! After extensive re-optimization, this version features new Linux x86 and Cygwin support, a contributed complex conjugate function, a much-requested refarray class, optimizations for SSE2 and lots more.

macstl is rocket fuel for your data processing code — the Opteron on Windows x64 cruises in at 9.8x faster than scalar code, and the G4 on Linux blasts forward at 450x faster than scalar code. No, it’s not a misprint, here I’ll spell it out — four-hundred-and-freaking-fifty times faster than scalar!!

And I’m finally taking baby steps toward full microISV’hood — I’m now a Rentacoder hired gun for Mac OS X projects. Hopefully, the paid consulting will let me work with more of you, and free up some time from my 9-to-5 to do macstl, graphviz, shellac and other fun products.

Tue, 28 June 2005

macstl 0.3 is here!

The new version is now a cat and dog show — with Mac OS X Tiger and Yellow Dog Linux support — featuring the macstlizer script and header designed to ease the transition from Altivec to SSE for all you Apple developers. Run the Perl script over your Altivec C sources to convert them to macstl C++, then compile against our Altivec-to-SSE header so that you can quickly weed out the untranslateable lines. Not quite Rosetta or PearPC, a little more like Carbon perhaps!

To help you guys worst hit by the Apple Intel transition, we are offering this limited time special offer — the first 10 qualifying organizations may purchase a redistribution license for only $499 before September 6, 2005, exactly 3 months after "the day hell froze over" in WWDC 2005 — an 80% discount over the regular price. Two simple conditions for your organization:

And of course, what macstl release would be complete with a nice serving of the latest benchmarks!

Tue, 7 June 2005

Dear Fellow Developers on the Mac Platform:

Steve Jobs has just told us the Mac is moving to Intel!! Right now you must be simmering with a million questions and feeling a little vertigo at the possibilities — what’s going to happen to all your performance-critical code? How are you possibly going to support two architectures with the same source code and get all the acceleration you deserve? How are you going to shut up all those Wintel geeks that are crying "I told you so!"?

macstl is the answer.

Write code against the industry-standard C++ valarray interface, and macstl will make your code run 22x faster on PowerPC and 9x faster on Intel. And in a couple of days, with the new 0.2.3 release, you’ll be able to run it on Linux as well as Mac OS X and Windows. Think different and join the real revolution, the new age of concurrency.

— Sincerely, Your Fellow Developer.

Mon, 23 May 2005

Announcing the latest member of the Pixelglow family — Shellac — UNIX command-line tools wrapped in pretty Tiger Automator action interface. Get your fix here!

Mon, 28 March 2005

First, open that Easter egg and dig out macstl 0.2.2 — a multiply-high implementation for the sharp tacks of Antigrain Geometry, and a revamped expression template and iterator design that should make extension even easier.

Second, see how macstl beats the crap out of Intel's autovectorizer.

Third, come see me make a fool of myself in front of large crowds during the Australia/New Zealand WWDC 2005 Preview roadshows. We’ll be showing off the pedal-to-the-metal speed of macstl 0.2.2, as well as catch some of the cool, super-secret Mac OS X Tiger tech that will make it into Graphviz 2.0. Remember, you all have to laugh with me, not at me.

And did I mention free dinner and giveways? You just need to pledge your firstborn son or similar valuable here.

Mon, 14 February 2005

With a cool name and an even cooler logo, what’s not to like about Subversion? But seriously, this source control management system runs circles around its predecessor, CVS — it’s almost a versioned, transactional file system. For example, if you want to tag a particular version, just copy it to the tag directory, because copies are cheap in Subversion! Reminds me of a certain Mach-specialized vector…

One of the benefits you get with paying the license fees is Subversion access to the latest macstl sources — the trunk and tags are read-only, but the branches are read-write, so you can play with macstl right on our servers.

Meanwhile, Valentine’s Day brings a gift from me to you, of macstl 0.2.1. It now compiles on Intel ICC 8.1 for Windows and IBM XLC 6.0 for Mac OS X, and fixes many a pernicious bug. Watch for the benchmarks that show macstl beating its first auto-vectorizing contender, Intel ICC, sometime this week!

Mon, 31 January 2005

macstl 0.2 is here!

For you macstl fans, check out the new integer division, trigonometric functions, complex number arithmetic and multiply-add optimizations. Newcomers, take a look at the portable SIMD toolkit, fast Mach vectors and adaptors for Core Foundation and Foundation classes. All 14,000+ lines of lean, mean C++ goodness!

And if you want the guts of the benchmark teasers I’ve been running, take a look at this.

Fri, 21 January 2005

Just 3 more days, folks. But now for the latest benchmark results:

Clearly macstl will seriously accelerate your program on all kinds of hardware, besides being a joy to code with.

Now all I need is a Mac Mini to test macstl on — I think the ol’ PowerPC G4 is an underrated wonder and would love to prove it. Contact me at for more details.

Tue, 18 January 2005

Announcing the world’s first portable SIMD toolkit — macstl 0.2.

What’s SIMD, you say? Here’s a more complete explanation, but just to whet your appetite, consider the expression z = sin (x) * cos (y) + sin (y) + cos (x). Compiled with gcc 3.3 and macstl 0.2, running Mac OS X Panther, my dual 2.0GHz Power Mac G5 can do 39 million of those calculations in a single second — fully 11x faster than if you were to code it up manually with a scalar loop!

macstl 0.2 will be released into the wild on 24 January 2005. But check back in one or two days for the results on a Pentium 4, a Xeon and a Celeron!

Thu, 13 January 2005

How you do make your Pentium 4 run 2x to 3x faster on the same code? No, it’s not overclocking…

Come back on Monday to find out how — and whether a 2.0GHz PowerPC G5 is really faster than a 2.8GHz Pentium 4!

Mon, 10 January 2005

Quick, what do the following have in common? The sub-$500 Mac, the PS3 Cell processor and the Xbox2 console? Yes, they’re all PowerPCs, but more importantly, they’ll all be widely available Altivec vector chips with the potential for 4x to 16x acceleration over regular code. But if you’re a hot-shot game programmer or numeric math genius reading this, you won’t get all this speed for free — you’ll need to learn the Altivec ISA — or will you?

Check back in just a week for the answer.

Sun, 31 October 2004

It’s time for spring cleaning, and here’s your opportunity to turn my junk into your treasure. And get to keep this prize-winning thoroughbred to boot!

Wed, 15 September 2004

If it's springtime and you’re Down Under, catch us showing off Graphviz at the OpenSource WA booth of the Comm-IT WA 2004 Exhibition. Where’s that you say? Didn’t you know, I make my home in sunny Perth, Western Australia?

See you there tomorrow or on Friday!

Mon, 23 August 2004

A minor bug fix release — sweet v16.

Tue, 17 August 2004

A quick fix v15 squashes the bitmap export bug. Enjoy!

And if you want to see who the true fathers of Graphviz are…

Sun, 18 July 2004

We aim to please with two oft-requested features — v14 now lets you create a graph with the New menu command and choose your own text editor. Besides fixing that nasty UTF-8 bug, of course.

There’s now a placeholder for the secrets of Graphviz design. Do check back in about 2 weeks or so for the real deal!

Wed, 30 June 2004

“And the winner is… Graphviz for Best Mac OS X Open Source Product…” nope, it’s not the Oscars but the equally gala Apple Design Awards!

I’d like to thank Stephen, John and Emden of AT&T, who in the true spirit of open source, let me stand on the shoulders of giants.

Much gratitude goes to my testers who showed Graphviz tough love in her preteen days — AgentM, Da Woon, Mitch, Nicholas, Pierre, Ryan, Stéphane among others. So that’s what those mysterious three letter acronyms mean!

Thanks too to Grace and the kids, for putting up with — and lifting up — an often distracted, sometimes despondent hubby and dad. I look at Liz and Sam and know they’re the best “products” I have ever worked on.

And final thanks to the One who amazes me still, my work here is merely an echo.


Now to decide whether to pen the hidden saga of Graphviz or code up v14. Check back soon for one or the other, or perhaps both.

Mon, 28 June 2004

It’s been a month off well-spent. Graphviz v13 now gains shapefile support and enhanced zoom functions. And I’ve found just the right worthy cause for you to look at.

Meanwhile, our favorite graph viewer has made some interesting friends in the wild. Joey pairs her with collegiate editor SubEthaEdit, and Marc has her join a tag team with heavyweights Ragel and Xcode.

Mon, 21 June 2004

Can’t find what you’re looking for? Take our new web/site search for a spin.

Mon, 17 May 2004

Two more versions out the weekend to fix minor bugs: we are 12 now! The gorgeous new Graphviz icon now features prominently on our pages. And the latest Mac OS X sources are available on the main development site, under the official BSD license.

Sun, 16 May 2004

Perfect 10. The previous application icon has been voted off the island, and a kick-ass new application and document icon flown in. Oh and did I mention — comprehensive help?

Thu, 13 May 2004

Looks like the odder, the better. Here’s a v9 midnight special fixing the broken export and offering the gratuitous use of Aqua shadow. Not.

Meanwhile my new web host tells me I have a Japanese fan. Erm, I’m lost in translation?

Mon, 10 May 2004

And you thought Graphviz couldn't get any better? How about integrated font and color panels, hand cursor panning and remembered settings? Oh my... and the long-awaited one-click edit to boot!

Mon, 26 Apr 2004

Anzac Day brings forth another release, featuring: a spiffy new application icon; a services menu that plays nice with the other apps on the block; and combo box replacement that’ll knock your socks off!

Mon, 19 Apr 2004

We’ve released the Graphviz sources through the main development site. Download the latest .tar.gz or update through CVS, it’s time to check out the mess behind the wizardry of your favorite little app. You will need Mac OS X 10.3 and Xcode 1.1 to play.

Some of the yummy Cocoa I brewed up: sectioned strings, command line options, task wrapper, zoomable image view, file change notification center and more. They’re only a little behind, just before release v5.

Fri, 16 Apr 2004

The number of bugs is inversely proportional to the amount of sleep a programmer gets. Which is the only excuse I offer for some of the show-stoppers on v5. Hopefully, v6 will be a more stable release — the most insomnia went toward an experimental libxml2-based implementation of the mainline’s clever HTML-like labels. Only on your Panther box, however.

Sun, 4 Apr 2004

Mac Graphviz is now sync’ed with the mainline 1.12 build and has a centered, fully reversible zoom — see it for yourself!

Bob opines that Graphviz is a great port of UNIX software to OS X, which makes me recall the turning point in the design of the Graphviz GUI.

I was going to create a giant dialog box, chockful of options, to call the command-line. I was then figuring out how to do the graph previews in my file dialogs, when it suddenly hit me, I got it exactly the other way around!

In the Macintosh world, data is the king and process is the slave. Thus I demoted the dialog box to a drawer that could be slid out of view, and made the temporary file dialog preview into a persistent document window.

Mon, 23 Feb 2004

You wanted it, you got it — Graphviz now re-renders when the underlying file changes, so you can edit the file in your favorite text editor and have it pick up the changes on saving. For those of you hardcore Darwinians, it uses the 100% fat-free kqueue implementation on Mac OS X 10.3.

I spotted a couple of honorable mentions recently. Gordon dreams of the cool things you can do with Graphviz, and Rui thinks our port is one of the “most original Mac OS X application he’s seen in a while” — he likes the dynamic zoom in particular.

Sun, 25 Jan 2004

The Australia Day long weekend brings us a new version of Graphviz, thanks to tremendous feedback from macosx-dev and cocoa-dev mailing lists: Stephané Sudre, Jonathan Jackel and mmalcolm crawford among others.

Meanwhile, macstl tempts the good doctor to switch to C++. Don’t worry, John, I’ve got the Xcode bug licked... bleh, insects are not very tasty.

Sun, 18 Jan 2004

Yes, we’re still alive and kicking. Our latest product is a new port of the automated graph layout software, Graphviz. Of course, fortified with the Mac OS X goodness you expect: an Aqua GUI, Quartz rendering and Quicktime exporting. Like I always say, why draw a graph when you can get the machine to figure it out?

Come and be a part of our beta test!

Mon, 3 Nov 2003

Thanks to Chris Behm, his spanking new Power Macintosh G5 and some after-hours detective work, we have a new macstl version! 0.1.5 reaches for the future with Mac OS X 10.3 Panther Xcode compatibility, and bridges the past with bug fixes for the older gcc 3.1 and 3.3 compilers.

Meanwhile, the 0.2 release is on-track for initial Intel MMX/SSE/SSE2 support — plus more goodies for all you Altivec aficionados: complex numbers, integer division algorithms for Altivec, multiply-add optimizations and more.

Thu, 9 Oct 2003

Discuss the intracacies of the macstl implementation at comp.lang.c++.moderated or discover why macstl may lead the next performance revolution at the Ars Technica OpenForum.

Thu, 2 Oct 2003

Just for a lark, macstl thought he’d try jumping the fence and tackling that other OS/CPU — Windows XP, Pentium 4 and a veritable alphabet soup of MMX, SSE and SSE2. And got a 19.1x speed-up over Microsoft Visual C++ .NET 2003! Check back soon for a macstl running SIMD on an Intel chip — and the inevitable dust-up with my trusty PowerPC G4.

Tue, 30 Sep 2003

A weekend to remember. A bug fix version of macstl, new prices for the budget-conscious programmer, and a report on the three-way fight between Mac compilers and libraries. And kudos from a master of Altivec.

Fri, 26 Sep 2003

macstl and the Codewarrior have hit it off! The new version now also has 65,566 generated Altivec constants and all the Altivec operators given the royal C++ treatment. And you asked for documentation and unit tests? You got it! I’ll also post blow-by-blow benchmarks of Codewarrior MSL vs. gcc libstdc++ vs. macstl 0.1.3 over the weekend. But for now, time to sleep...

Wed, 17 Sep 2003

So many compilers, so little time. macstl is now wining and dining Metrowerk's excellent new CodeWarrior Development Studio v9, and we should have CodeWarrior compatibility added to our list soon. Stay tuned, folks!

Thu, 4 Sep 2003

What a tease a new compiler can be! We got them talking, macstl and IBM’s XL C/C++ 6.0 for Mac OS X (Beta). mac was even straightening out his act, all those errant typenames and template templates. Alas, on their third date, she dropped this bomb: she’s not yet ready to commit to Altivec.

Mon, 25 Aug 2003

For those you lucky enough to own a new Power Macintosh G5, I have some tips to suck out that extra ounce of juice for valarray. Meanwhile, your friendly neighborhood programmer is hard at work doxygenating his code.

Tue, 19 Aug 2003

A refactored and retuned macstl is ready for your use and abuse. And there’s the long-awaited rematch between macstl and gcc, version 3.3.

Sat, 26 Jul 2003

Hot off the presses: a new version of macstl.

Fri, 25 Jul 2003

It’s nice to know someone appreciates the blood and sweat you put into something. Thanks, lightyear!

Wed, 23 Jul 2003

macstl has made it to So if you think our little library is just the bees’ knees, remember to rate it there accordingly.

Tue, 22 Jul 2003

A little ditty on taking the coast road.

Mon, 21 Jul 2003

What? The new Power Macintosh G5 with dual 2 GHz PowerPC 970 not fast enough for you? You programmers are always into fast, cheap and out of control. Here’s how you can recompile your code to run 4x to 16x faster on Apple’s new speedster.

Mon, 21 Jul 2003

Linux and the GNU herd are gonna stampede all over Microsoft. But when the dust clears, where’s a poor, starving programmer to find sustenance? Can you eat open source?

We write software for the Macintosh and for Microsoft .NET: we ship products and do work for hire.

Who knew they were meant to be together? He was the aging rock star, a real workhorse with a few more good tunes hidden in his soul. She was the flavor of the month, but her hip, bouncy writing had yet to reach its full potential. To this world, they seemed so different, so incompatible. Yet when they finally came together — the stuff they came up with was just out of this world.

Who knew? We did.

We know our technologies — Cocoa, Quartz, .NET Windows Forms, Power Macintosh G5, C++ generics, Altivec, Java, XML, SQL, HTML. We tinker with them, put them to work for us, sit them down and talk to them. Their grand philosophy; all their little quirks.

Then we spot the pattern that no-one else does: technologies that work far better together than apart. Combine them into something new and interesting, even revolutionary. Put the hard yards into building that relationship, so that brilliant ideas become brilliant stuff.

We build relationships with people too. We listen, we don’t preach. We see your needs, written and unwritten. We let you in on the creative process, with early prototyping, much testing and an iterative approach to development. And the result is as much you as it is me.

If you want to make stuff with us — either contract programming or putting a software product together — email us at .