[]RSS

[ Here: About | Archives+Tags | Artwork | Resumé | Contact ] [ Elsewhere: Comic | Projects | Philosophy | Work ]

Vim, Vam, Voom

[Comment]

September 23rd, 2002 in Reviews. Tools

Well, it’s finally happened. I’ve been assimilated by one of the two diametric camps of editor opposition. I’ve known a bit of both editors for some time — enough that remote admin and borked X-configs aren’t a problem. But neither editor tweaked my right cortex. Until recently, that is.

I think I know what finally pushed me over the edge too. We recently re-factored our build system at work to use the Gnu autoconf system and related tools. The cool part of the whole move was the fact that we now seamlessly support building between Win32 (via cygwin), Tru64, and Gnu/Linux. I use this new system on Win32 most of the time, mostly because the components I maintain aren’t actually portable yet (but the rest of our suite is). So, when editing source, I’m torn between the Win32 way (MSVC and Textpad), and the Unix way (Vi).

I also switched from Microsoft to Redhat Gnu/Linux at home more than a year ago, and have been looking for the perfect editor — a replacement for my previous tool, Textpad. I settled on Anjuta for a while, which is a very respectable editor (and IDE). But I knew it wasn’t home. The reason: it feels clunky, as it lacks efficiency.

In pursuit of the dubious goal of producing idiot-proof, zero-learning-curve programs, even programs intended for heavy-duty use such as editors — arguably the most important piece of software you’ll use — have been turned into children’s toys, effectively expert-proofed. — Tom Christiansen

Like its Win32 counterparts, Anjuta centers around simplifying the user’s initial experience. A short path to initial discovery. The problem with this, of course, is that once you’ve discovered it, there isn’t much else you can do with it. It’s not like learning how to cut and paste offers further discoveries, like cut-5-words and paste-on-line-200 (5 keystrokes in Vi). Learning GUI interface commands also doesn’t carry over into scripting the editor, it just accomplishes the task with a minimal amount of learning. Both Vi and Emacs, on the other hand, support extensive configuration and scripted customization, based on the commands available in the editor. The GUI-centric approach is just shallow in comparison.

And, it isn’t just the shallowness or GUIness of the interfaces that is inefficient. It is also the lack of intelligent modes and copious commands. Both Vim and Emacs center around pure editing proficiency. They don’t bow to the god of idiocy, where the lowest common denominator user is hand-held through each operation. Vi and Emacs are for programmers who want blinding productivity. It’s not an attitude thing. It’s not an elitist thing. These tools are designed so people can write more code, more effectively, more efficiently. It’s a geek thing; a man-machine symbiosis thing. They are advanced tools, for people interested in advanced uses.

A good example of an efficient command is the :make command. The command builds your sources and captures the results. It then magically positions the cursor on the first error (if any) and provides a key combination to scroll through the rest of the errors. Contrast this to any GUI IDE, where the output of the build is captured in a nice window, allowing the user to point and click on each error to jump to the code. The same thing you say? Not a chance. A developer’s inner-loop is the code-compile-test cycle. Sorting through build errors with hand-mouse navigation and human-based text parsing requires universes of effort, when multiplied by hundreds of human powered code-compile-test cycles a day. Vi has it right: optimise for developer efficiency.

The greatest complaint about editors like Vi, is that the text-based key-commands aren’t intuitive. The supposition that every interface needs to be self-documenting, or plainly-obvious, is just plain bent. RTFM. Real tools require real documentation, not pictures placed on a pretty graphical facade. Real tools have depth.

The plain fact is that some tools are used for complex problems. Placing an overly-simplified interface on complexity just obscures interaction with it. When you mess with a user’s ability to interact effectively with their data, you mess with their productivity — and their ability to think about their data. In this case, the user is a developer — not someone who requires a stupefied interface. And, developers require solid, portable, accessible, efficient, open text editing tools.

A trip to the real-world

[Comment]

September 6th, 2002 in Art

My time away from this blasted machine has been a good thing. While it has only been a few days, it reminded me that there is more to life than pointless surfing and sarcastic banter. I spent the down-time relaxing, reading, and remembering how much practice it takes to become good at anything.

lino_plate_0002a.jpeg Speaking of real life, I prepared several dozen linocut printing plates on the weekend. The preparation is a zen-like activity, not really a means to an end. You can buy art-grade stuff to avoid the grunt-work, but I actually enjoy the process. And, ages ago I bought a roll (3 meters) of real-live linoleum flooring at an auction, which means I’ll use it even if it kills me. The commercial art stuff, in comparison, is thicker, softer, and is backed with burlap to hold it together (read: easier to use). I prefer the less-traveled road, though, as the trip is really what it’s about.

The preparation is simple: flatten and back the linoleum with something washable. For the backing, I’ve been using old T-shirts and contact cement (three of my fingers are glued together as I type). To flatten, I prefer gravity, time, and mass (5 kilos of popcorn seeds today).

There is really nothing like preparing every aspect of something. It’s like writing your own software libraries — you get exacltly what you want — it just takes longer. The activity of preparing the groundwork provides a sense of ownership and security — and complete customization. Plus, there is much to be learned from the effort. And, learning is good.

print_01_0002a.jpeg Print-making is really my favorite form of artistic expression. It’s organic, entertaining, and something that I don’t butcher every time I attempt it. It takes long enough that I have to think out the design before committing to a plate. The process is tedious enough that I am forced to work at a zen-like speed — as there is no sense in rushing knife work. And, the effort gets more interesting in the second stage, when I can start playing with inking and printing. I spend as much time messing around in the print stage as I do carving the plates — which makes it twice the fun. It is like generic programming, where the big win is in the re-use.

watercolour_practice_clip_0003.jpeg I also spent some time reminding myself how watercolours work. I failed at in my first few attempts — so I resorted to practicing basic skills. It seems that I forgot that black has to be watered down many times more than most colours. Failing to remember this left my paintings with a sad, whore-like quality. I later found a few mild successes, like the foliage on the left … but I really have a long ways to go. I’ll take a few small victories when I can get them though — and will practice regularly over the next several months. Perhaps I’ll attempt painting something larger than my thumb when I know it won’t suck ;-)

sketch_0003a.jpeg I’ve been pondering what I’ll carve for my next set of plates. I was considering a multi-plate nature thing, for the colour possibilities … but my sketches were frustrating (painting them failed). I played around with a few pattern sketches instead (right) — something I fall back on when nothing real is working. The patterns hold a lot of promise actually. I might try a 2 colour set of pattern plates — and attempt some colour variations (to learn from). If nothing else, a complex pattern will be challenging to carve.

The real world is too much fun.

Deradification

[Comment]

September 5th, 2002 in Rants. Weblog

I’ve been spending a lot less time online in the last few weeks. About the only computer-sort-of-thing I’ve taken the time to complete is the transition to . And even with the conversion, is is only skin deep — there are still about 15 hours of work left. It appears that I’m burnt out again … but this time it snuck up on me.

I’m still not quite sure how it happened, the burn-out thing, but it did. My time online is wasted — I just kinda stare at stuff, never really reading it. When I fire up my favorite text editor to do something codish or creative I just stall … in a state similar to writer’s block, but without the angst. So, I decided it was time to de-rad before I . Time away from these blasted machines is a good thing.

So far on this de-radified weekend, I’ve read a number of non-technical rags and small works of classic fiction. I found myself digging through a box of art supplies, uncovering a pile of unfinished sketchbooks. I realized how out-of-shape for sketching my hands have become. Later, I noticed that my piano needs tuning, and that I am in dire need of practice. And after that, I reminded myself exactly how much I love hands-on art — especially . One day I’ll put some of my better stuff online.

I do have a couple of new articles in-progress, which I’ll complete as soon as the burnout subsides. Among the articles are a few recipes: hacking , and something snapplish. I’m also midway through a few rants, and have some design thoughts in-progress. I’m finding the ‘draft’ feature quite useful ;-).

Well, it’s time to be back to my online-lessness. 45498(&$% (&%(*&% …. NO CARRIER …