### The Tao of Mac

I’ve been both overly busy and considerably stressed out over the past few weeks - very much in line with jwz’s mood, actually, but with more frustration due to lack of time than anger.

# Nodal change

I’m starting to write more JavaScript than Python and mostly hating myself for it, but, oddly enough, I’m not feeling that way due to my long-time outspoken contempt for the language.

No, I’m feeling that way because, despite the fact that the runtime environment, syntax and basic semantics of JavaScript are tantamount to a baked turd, doing high-order functional programming on it is as enjoyable, fluid and elegant as LISP, provided you don’t mind tripping on all those asinine curly brackets.

Node.js goes a long way toward making the runtime suck less (in sharp contrast to the current set of third-party libraries, which is about as stable and coordinated as a bunch of squirrels in a sack), and CoffeeScript makes it quite enjoyable for me to draft code as if it were Python (zing) and solve problems without dealing with the ugly syntax.

I suppose it’s going to be big, but not until they get to around 2.0 or so. Seriously, they need a curator to put together a sane set of core libraries first - otherwise, it’s gonna be the PHP mess all over again.

# On Trac and sundry deployment details

I don’t suppose it will go against my Disclaimer to mention that I’m now heavily involved with a Trac deployment, especially if I merely point out some useful tips for other people up the same creek and lacking the right kind of paddle:

• Learn how to do WSGI on a virtualenv, because it will save you hours of pain when someone decides to upgrade the system Python as well as providing you with a nice, easy way to rsync your staging and production environments. If you are really into control, you can also version the whole thing with git, but I haven’t (yet).
• The SQLite to MySQL migration script you can find here mostly works (whereby “mostly” I mean “with adult supervision and some monkey patching”), and can save you a ton of time when you have 400-odd instances to deal with (some of which dating back to Trac 0.8).
• After you use it, mind your collations, because (for me, at least) Trac 0.12.2 blows up on some internal queries if you use anything but utf8.general.ci.
• The post-commit-hook mechanism stinks, so make sure you debug it properly.

# Guerilla Redesigns

Part of my work involves (as usual) fixing things that other people designed broken, and even though I have a team of web designers under me, I prefer to do a number of things myself - both due to my usual need for absolute control and because most of what I end up doing is quick and effective CSS3 tweaks atop existing designs (such as Trac, which, incidentally, is a right bitch to re-style)1.

My weapon of choice for web development these days is (unsurprisingly, perhaps) Google Chrome, largely because its much faster than Safari - not for browsing, but for running the WebKit inspector and doing runtime tweaks of both markup and styles.

I ended up needing a way to deploy user styles, though, and after trying out a few extensions (and gnashing my teeth at the amount of useless tomfoolery at the Chrome Web Store) I found Stylebot to be better than the average - mostly because it is almost unobtrusive (no stupid buttons on the toolbar), has a simple GUI and still lets you tweak styles manually (although it makes a habit of occasionally breaking those manual edits for some reason).

The “social” aspect of it is utter crap, but it’s plenty useful for serious customization.

# IE6 running on Snow Leopard

If, like me, you have to put up with the vagaries of an almost exclusively-IE6 corporate intranet (something I’ve always had to deal with more or less, but never before to the extent I do now), you’re certainly using a VM of some sort to run IE6 and the supporting smelly, putrefying garbage that is Windows XP.

I’ve traditionally gotten around doing that by using Citrix or RDP to a machine somewhere, but since I don’t have access to Citrix environments at my new gig and have a single critical site I need to visit daily, I decided to try to get it to run “natively”, which you can do by using WINE and X11.

However, due to an oversight, I had completely forgotten to install X11 on the particular Mac where I started doing this, so I was stumped. And Lion is supposed to do away with it as well, so I went looking for alternatives.

Enter Wineskin, which builds a completely self-contained application bundle comprising WINE, standalone XQuartz binaries, and whatever else you need to run. It can install IE6 using a built-in version of winetricks, and the completed application bundle takes up a measly 390MB of hard disk space (compared to the usual 1GB or so for a VM) of and something between 40-70MB RAM when running (less than half what I usually allocate to a VM).

It’s by no means perfect, but it works well enough for me to deal with one of the worst IE6-only internal sites I’ve ever had the displeasure to deal with.

# The NAS killed the netbook

In a not-completely-unrelated turn of events, I’ve decided to get rid of pretty much every single piece of hardware I can’t find a use for and, in a bout of anger and frustration at having hard disks go wonky on me as I try to manage the whopping tens of gigabytes family photos and videos are taking up, got myself a NAS.

I will write about that at length (in fact, I am already doing so, piecemeal) including all the whys and hows, but I can share that I ended up getting a Synology model DS411j, which upon installation freed an old Mac mini which in turn was upgraded fourfold to a whopping 4GB of RAM by scrounging together RAM from disused netbooks.

I now have what essentially amount to Atom-powered picture frames with keyboards locked away in a drawer, although one of them seems to be able to run XP (and Google Chrome) well enough on an old 512MB DIMM.

Somehow, I don’t think I’ll ever be needing Chrome OS.

1. I love doing CSS stuff in general and have grown used to the funky aspects of it ever since adopting Floppy Moose as my ad blocking tool of choice, but properly patching Trac‘s CSS ought to be banned by the Geneva Convention as torture. Those people need a web designer. ↩︎