Gradual Software

I have this little project that’s been 95% finished for months, ‘blogbot 2’, a python script which monitors a list of RSS/Atom feeds daily and sends out an email with all the new ones to a mailing list. Blogbot 1 was a ruby script where I rolled my own feed parser using Ruby’s built-in XML parser. Ruby’s parser rocks, but my wielding of it was only 90% good enough, so I wanted to leverage somebody else’s work and rewrite it in Python using the Universal Feed Parser.

I kept stumbling over Unicode issues. The UFP is so correct that it often returns Unicode, and Python’s unicode handling, while very good if you know how to use it, is pretty sucky if you are me. The default handling for unicode-to-string conversion is to use the ‘ascii’ encoding, which can’t handle practically anything, and the default behavior when it hits something it can’t handle is to throw up its arms and scream in mute horror. You cannot globally change these defaults; you have to catch it conversion by conversion and change them.

I finally got it all figured out and it’s working great. But I tore hair out over that last 5%.

Another project I’m working on is “artblog/imageblog” software. I want something which does no more nor less than I want it to, and does it well and easily. I’m hacking this one together in PHP/MySQL, and it’s been fun learning PHP. (Hint to anyone going to use PHP/MySQL: use Pear DB if you possibly can. It will rock your world. MUCH better API than the default mysql stuff.)

Anyway, I’m doing the artblog thing very graduall, and that’s turning out to be a good thing. Cause it means I don’t spend too long going in the wrong direction. The big trick with PHP/MySQL is to decide what ought to be a PHP issue and what ought to be a MySQL issue. Originally I had this concept where I was going to have thumbnail images listed in the same table as fullsize images, and have a many-to-one relation between them via an extra column in that table that related back to itself. (This was actually my second iteration — originally thumb images were in their own table with a many to one relationship to the main table… this was while I was still thinking I would ever actually care to have multiple thumbnails for the same image, which I decided in the end I never would.)

Anyway, I ended up deciding “screw all that — I’m going to have thumbnails be created automagically if they don’t already exist via PHP magic, and the database isn’t going to know or care about them.” I coded it up and it’s awesome.

The thing is, I had all of these ideas in the time I wasn’t working on the project. I’d work on it for a while and then do other things (cause I don’t have that much spare time for it) for a day or three at a time. Then by the time I’d come back I’d have had a lot of time for those “standing there in the shower and suddenly realize how the system ought to be designed” moments.

This project is going to be better than it would have been because it’s gradual. All these people are on about “rapid/agile development” — well, I think development is more agile when it’s less rapid. Because if you move fast, then you get a lot coded the way you first thought of doing it, which is seldom the best way to do it.

This is not a friendly world for gradual activity though, and the programming world is especially unfriendly to gradual development.

Ah well.

Gateway to Sindarin: A Grammar of an Elvish Language from J. R. R. Tolkien’s Lord of the Rings

Gateway to Sindarin: A Grammar of an Elvish Language from J. R. R. Tolkien’s Lord of the Rings

I’m proud to say I’ve met David Salo and corresponded with him on the net. He’s a brilliant scholar on many levels, and the finest linguist I know, barring perhaps a professor from my grad school days. His years of labor on this work are reminiscent of Tolkien’s own years of work on Middle-Earth before he published anything. This is so amazing. Rock on, David.

Point Zero

I just read Point Zero: Creativity Without Limits by Michelle Cassou.

I liked it. I’m a little cautious about it though. Because Cassou seems to think she knows everything there is to know about True Creativity and how it works and where it comes from and where it’s going.

I would recommend it to anyone who wants to get a peek at how to do art just for its own sake — to just let images come out of you and onto the paper, receiving them yourself as they come, not planning and executing them according to a preconceived agenda. Such “getting out of the way and letting it happen” creation is tricky, and prone to creative “blocks,” and the book is all about resolving such blocks.

Points on which it agrees with what I had been thinking about artistic creativity from a mindful perspective:

  • It agrees that a minimal level of skill is not a sine qua non and that practiced expertise can have negative effects by locking you into preconceived ways of doing things.

  • It mistrusts preconceived plans and canned procedures.

  • It emphasizes process over product.

Points on which it disagrees:

  • Whereas Langer would say that the solution to mindless adherence to a particular way of looking at or doing things is to practice looking at or doing things in many different ways, from different perspectives, Cassou prefers trying to negate a given preconceived way of understanding things in order to move back past it to “Point Zero,” a place of all possibilities, where Creativity can show you the way to go on your Creative Quest.

I think that Cassou’s way of doing things is a way to promote mindful creativity; it is certainly dedicated to detecting and escaping mindlessness; but I think that it might be limiting on its own.

Still, a very good book for someone who wants to make their art something almost like a spiritual path, and a great guide if you want to really move in an original direction, following rather than leading your art.

Oh, Cassou’s first book, which I haven’t yet read, is Life, Paint, and Passion. At the end of Point Zero is a curious note to the effect that the partnership mentioned in Life, Paint and Passion has dissolved and each one has gone their separate way with their own philosophy. This makes me wonder what changed there and what happened to the partnership.