Be a man. Run as root.

I read a pretty funny post about the joys of running as root. Obviously, it’s a joke, but really it points to the joys of using an OS that does security right.

Here’s the bottom line: everything you really care about probably lives in your user space, so anything that has your privileges can stomp everything you care about. Having a privileged area off to the side that doesn’t contain stuff you care about doesn’t really get you much.

Perhaps the ideal situation is an OS that automatically backs everything up, blocks clumsy attempts to destroy the backups, and gives you pretty much free reign in user space (including the ability to easily run downloaded applications, etc.). Now, which OS does that? Hint, it’s not Vista and it’s not Linux.

Sexy Software [SFW]

If only the rest of the software world were as competitive and exciting as the 3D software market. Off the top of my head, there are three outstandingly functional free (as in source and beer) 3d programs available (Wings3D, Blender, and PoVRay), and an absolute horde of cheap ones (e.g. Cheetah 3D, Silo 3D, Hash Animation Master).

Furthermore, the big guns have taken to reducing their prices (e.g. Lightwave can be obtained for $495 as a crossgrade from Photoshop, SideFX’s Apprentice HD, which is essentially a non-commercial Houdini, is selling for $99, and Softimage is selling XSI Essentials for $495) or giving away free learner editions (Maya, Houdini).

A large number of independent developers are successfully introducing niche products, such as high-end modelers (modo, Rhino), sculpting tools (zBrush, Mudbox), terrain renderers (Vue 3D), rendering engines, and so forth. And then there’s the interactive 3D tool market, which is also an embarrassment of riches, ranging from Microsoft’s free XNA, to the impressive but expensive Quest 3D, to the astounding Unity 3D, and Blender’s free game engine.

It’s amazing that all this activity is occurring in a consumer space with a relatively tiny number of users while we struggle with a single dominant player in the word-processing market which can’t properly handle something as simple as copying a paragraph from point A to point B without screwing up styles. (Guess what triggered this rant?) Part of the problem is that writing word-processors is not glamorous, but a bigger problem is dealing with legacy documents from the installed base. The problem is that if you want to sell a word-processor that can’t seamlessly deal with Word documents, you might as well give up, and Word documents are infamously opaque and complex.

So far, I’ve only found two word-processors that make more than a half-hearted attempt to import from Word, and they are OpenOffice.org and Pages. The former is one of those gigantic corporate-backed commercial projects that crashed, burned, played the open source card, and is once again backed by a multi-billion dollar company with an axe to grind. It’s a program written by a committee of committees. The latter is a brilliant, attractive, and highly usable program, albeit infuriatingly incomplete.

Aside: oddly enough, a different example of a gigantic corporate-backed commercial project that crashed, burned, played the open source card, but turned into something wonderful, is NetScape. What saved NetScape was a little project called Camino, which took the good bit of NetScape (the Gecko rendering engine) and wrapped it in a lean interface to make a small, fast, platform-friendly web-browser. (FireFox grew up as the cross-platform version of Camino.) Perhaps what OO.o needs is some maverick developers to rip components of it out and turn them into lean, well-implemented programs with just a subset of OO.o’s kitchen sink functionality.

Excel is even more unchallenged. Apple’s Numbers isn’t a credible replacement (but it’s still only version 1.0) and neither is OO.o’s spreadsheet module. And then there’s that blight on society: PowerPoint.

It astonishes me that even today there isn’t a simple PHP + MySQL tool that does everything Filemaker does, only for free. And by “everything” I mean define forms and tables interactively.) It seems like this would make Ruby on Rails redundant for a large number of applications (it would certainly make the typical “gosh wow” RoR demos look like sad jokes, since you wouldn’t need to type magic command sequences to make the important stuff happen. I can build a blog or guestbook a heck of a lot quicker in FileMaker than anyone can in Ruby, but of course it would be in FileMaker, making it kind of useless. For that matter, if RoR is so great, why isn’t there an RoR-based web IDE available that hides the magic command line stuff? (If there is, please let me know!)

I don’t know if I’ve mentioned this before, but the free / open source / alternative software movement is an economy of sexiness. I.e. since money isn’t the driving factor, what attracts people to work for free on a project is its sexiness. Game development is the ultimate example of this — game development is the geek equivalent of starting your own rock band. (Of course people who think game development is sexy already have social limitations.) 3D stuff is way sexier than word-processors, spreadsheets, presentations, or databases, so there’s a huge number of programmers willing to work for free or cheap on it, while there’s money just lying around waiting to be made addressing the myriad problems with unsexy, boring stuff, like why Word can’t copy and paste text without screwing up the styles every time.

Blender Revisited

Blender’s built-in rendering engine is getting pretty decent. Here’s a quick test render of frosted glass.

Blender 2.5 is still under development. The main thrust of Blender 2.5 is user interface customization. If you’ve read my previous rants posts on the topic you’ll know that I consider Blender’s user interface to be, well, bad. Blender’s UI is customizable, but not to the extent that you can “fix” it. E.g. it has a 3D cursor (its equivalent of the text insertion “caret” you use in word-processors) which determines where new objects appear and which is repositioned by clicking with the left mouse button. See, 3D is just like text editing!

Except that Blender doesn’t take the analogy far enough (you can’t select stuff by left-click dragging, the insertion point doesn’t position itself in the spot “left” by something you’ve just deleted, the view doesn’t scroll to frame the cursor, and so on). Most 3D programs don’t have a “3D cursor” because the concept is, essentially, idiotic (until we have true 3d interfaces so that we can actually see and control cursor placement). Given that Blender does, it would be nice if the idea worked properly.

Anyway, you can customize Blender to switch the left and right mouse button behaviors (so that left-clicking selects and right-clicking sets the cursor) but this has the bad side effect of borking the camera controls (which use the middle and right mouse buttons) and wasting a perfectly good mouse button for a perfectly useless operation.

This test render shows off Blender’s volumetric lighting (it’s not that great, and only supports spotlights) and its sub-surface scattering (which is pretty wonderful).

Blender 2.5 plans to address some or all of this by allowing true, low level UI customization. Hopefully, when it shows up there will Maya, 3D Studio Max, or whatever “themes” that make it easier for those not up to speed with The Blender Way to get things done.

Meanwhile, Blender 2.46 RC1 managed to fix one of my gripes with earlier versions. When you create a new object it is, by default, aligned to the global coordinate system rather than the current view (which, as I pointed out, is almost never what you want). This problem has been around so long that many tutorials include steps for removing the random transform applied to each newly created object as appropriate. This is a pretty huge win for the Blender UI. Another 10-20 improvements of this magnitude and the default Blender UI might not suck so bad.

iPhone SDK: Exceeding Expectations

Well, after all the various rumors about iPhone development (e.g. no interface builder, limited initial functionality) we have the actual announcements:

  • The iPhone development system is XCode
  • You get an iPhone simulator that runs on your Mac
  • Interface Builder works fine
  • Games with OpenGL and OpenAL work fine
  • And you can sell your apps through iTunes

And Apple will be blocking some potential iPhone applications that are bandwidth hogs, illegal, malicious, or porn related (like you need anything more than web-based development to do porn…).

Oh and the iPhone 2.0 software update will provide direct Exchange access.

Blogging Made (Too) Easy

I’ve recently started using Dashboard (I’ve been using Tiger for ages, but really didn’t pay much attention to Dashboard).

Most of Dashboard’s built-in functionality, e.g. calendar, calculator, units converter, dictionary, is pretty darn useful, but I really don’t see why it needs to live in its own layer. In some cases it’s actively annoying.

One of the most popular Dashboard widgets allows you to add a post to your blog by typing into it and clicking a button. This is almost too easy. Actually it *is* too easy.

So here goes…

But first, a geek joke I came across on DaringFireball.net (he cites his source…)

Q: “What’s the difference between Leopard* and Vista**”

A: “Microsoft’s Engineers are really excited about Leopard.”

* Mac OS X 10.5, the next version of Mac OS X, due early 2007.

** Windows Vista, codenamed “Longhorn”, the much delayed next version of Windows.