Instaviz (graph sketching for the iPhone) is what Ive been working on lately.
Its 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, its not a misprint, here Ill spell it out four-hundred-and-freaking-fifty times faster than scalar!!
And Im finally taking baby steps toward full microISVhood Im 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.
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!
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 whats 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, youll 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.
Announcing the latest member of the Pixelglow family Shellac UNIX command-line tools wrapped in pretty Tiger Automator action interface. Get your fix here!
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. Well 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.
With a cool name and an even cooler logo, whats not to like about Subversion? But seriously, this source control management system runs circles around its predecessor, CVS its 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, Valentines 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!
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 Ive been running, take a look at this.
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.
Announcing the worlds first portable SIMD toolkit macstl 0.2.
Whats SIMD, you say? Heres 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!
How you do make your Pentium 4 run 2x to 3x faster on the same code? No, its 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!
Quick, what do the following have in common? The sub-$500 Mac, the PS3 Cell processor and the Xbox2 console? Yes, theyre all PowerPCs, but more importantly, theyll all be widely available Altivec vector chips with the potential for 4x to 16x acceleration over regular code. But if youre a hot-shot game programmer or numeric math genius reading this, you wont get all this speed for free youll need to learn the Altivec ISA or will you?
Check back in just a week for the answer.
Its time for spring cleaning, and heres your opportunity to turn my junk into your treasure. And get to keep this prize-winning thoroughbred to boot!
If it's springtime and youre Down Under, catch us showing off Graphviz at the OpenSource WA booth of the Comm-IT WA 2004 Exhibition. Wheres that you say? Didnt you know, I make my home in sunny Perth, Western Australia?
See you there tomorrow or on Friday!
A minor bug fix release sweet v16.
A quick fix v15 squashes the bitmap export bug. Enjoy!
And if you want to see who the true fathers of Graphviz are
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.
Theres now a placeholder for the secrets of Graphviz design. Do check back in about 2 weeks or so for the real deal!
And the winner is Graphviz for Best Mac OS X Open Source Product nope, its not the Oscars but the equally gala Apple Design Awards!
Id 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 thats 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 theyre 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.
Its been a month off well-spent. Graphviz v13 now gains shapefile support and enhanced zoom functions. And Ive 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.
Cant find what youre looking for? Take our new web/site search for a spin.
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.
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?
Looks like the odder, the better. Heres 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, Im lost in translation?
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!
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 thatll knock your socks off!
Weve released the Graphviz sources through the main development site. Download the latest .tar.gz or update through CVS, its 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. Theyre only a little behind, just before release v5.
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 mainlines clever HTML-like labels. Only on your Panther box, however.
Mac Graphviz is now synced 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.
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 hes seen in a while he likes the dynamic zoom in particular.
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++. Dont worry, John, Ive got the Xcode bug licked... bleh, insects are not very tasty.
Yes, were 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!
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.
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.
Just for a lark, macstl thought hed 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.
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.
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! Ill 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...
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!
What a tease a new compiler can be! We got them talking, macstl and IBMs 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: shes not yet ready to commit to Altivec.
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.
A refactored and retuned macstl is ready for your use and abuse. And theres the long-awaited rematch between macstl and gcc, version 3.3.
Hot off the presses: a new version of macstl.
Its nice to know someone appreciates the blood and sweat you put into something. Thanks, lightyear!
macstl has made it to freshmeat.net. So if you think our little library is just the bees knees, remember to rate it there accordingly.
A little ditty on taking the coast road.
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. Heres how you can recompile your code to run 4x to 16x faster on Apples new speedster.
Linux and the GNU herd are gonna stampede all over Microsoft. But when the dust clears, wheres a poor, starving programmer to find sustenance? Can you eat open source?
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 dont 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 .