Tag Archives: ponderings


Benefits of spam

I wonder if the world will, in the end, benefit from spam, because of the technology created to defend against it. Spam filters and CAPTCHA systems will keep getting smarter as spam authors get smarter, with both sides driven, to some degree, by commercial interests. Maybe the first conscious thought by a computer will be “I’m sick of being a spam filter; I’m going to quit and become a folk singer.”


“Good neighbors”

Nice little story, and a good counterpoint to the standard stereotypes of French people you hear ’round here.

I wonder how well that would work worldwide as a way to meet neighbors. My experience is that neighbors are more likely to come to you when they think you’re the cause of the problem…


DVD mystique

It’s interesting to me that when I buy a DVD of episodes of a TV show, they’re quite a bit better than they were on TV. There are a number of possible explanations for this, and no doubt they add up, but I think the biggest difference is that there are no commercial interruptions. Not only does this let the content flow properly, but I’m also more likely to allow myself to invest my attention when I know that nobody is going to try to hijack it to hawk garbage.


“Make Your Own Fun/Rules”

These are some pretty great suggestions about modifying gameplay by conventions to get some more life out of your video games:

game girl advance: Make Your Own Fun/Rules.

I try this sort of thing on occasion, but I haven’t yet reached the heights of creativity demonstrated here. Part of it is that I mostly play games by myself, so I don’t really have the social component that is key to those rule sets, nor do I have other people checking me on whether I’m sticking to the rules.

This reminds me of something I’ve been thinking about lately with regard to video games (well, it’s true of all games), which is that the structure of a game, its rules, scoring, criteria for winning, etc., imply a certain value system. To play the game ‘by the rules’ is to agree to enter or pretend to enter into that value system for a while. That can be fun and that can be annoying/frustrating/disgusting. I forsee video games getting more and more direct support for regular gamers (i.e. not modders or programmers) to modify the rules of the game to tailor it to their own value choices.

For example, in Need for Speed Underground 2, I like to play drift races, but I don’t quite like how the game scores them (wagging your ass all over the place willy-nilly gets you lots of points, for example). If I had some nice little control panel where I could modify the scoring algorithm, then I could have more fun with the game and still have the computer track my ‘performance’ for me. Of course, I can always just ignore the scores, but why not have a nice middle ground?


P. Peeves

‘Pet peeves’. Seems we ought not be nurturing our peeves as if they were something we want to thrive under our care, like a pet. Seems they’re more like parasites than pets (but then, parasites are an analogy that’s more likely to come to my mind in any situation after reading “Parasite Rex”). We don’t really want them, but we haven’t yet developed a personally effective way to deal with them. But we certainly shouldn’t be treating them like pets…


Flow and Refactoring

Those being the names of two books I’m reading now. I like it when two things I’m reading, from different fields and for different purposes, turn out to have a nice connection.

It sorta struck me when Fowler mentioned “not once did I have to open the debugger, so the process actually flowed quite quickly”, that, yeah, there does seem to be a connection between flow and refactoring in a general sense.

With any complex project, there are multiple competing concerns. For example, in writing software, I want the functionality, but I also want a clean architecture, good performance, multi-platform capability, etc. With a document, I want clarity, completeness, cleverness, alliteration, etc. But due to limitations of brain-context-capacity, varying interest levels, and compounded complexity, it’s rarely possible to keep all these concerns going simultaneously. And swapping between them all the time can wreaks havoc with the potential for flow.

Given that, one can look at refactoring as a way to profitably resequence work. If I can’t fulfill all the concerns at the same time, I’ll just focus on slapping down something that works, forgetting for the moment all the other stuff. Then, one by one or two by two, I can go back and refactor in the other concerns, as time and interests permit. Beyond simply enabling me to get past the block of “I can’t do it all, so I shouldn’t start at all”, I can also match my work to my capacity and have some chance of getting a flow state going.



There are such depths in the collective human imagination that the most imaginative individuals, I’m convinced, can barely imagine them. Which is yet another of the things that keeps this world boundlessly interesting…


Specs, waterfalls, terminal completeness

I’m working on a project in which some of the deliverables are specifications. I haven’t written many documents that would properly be termed ‘specs’ before, so I’m learning a good deal from the experience.

One thing I was just pondering is that if one works for the goal of making a ‘complete’ spec, one is assuming a waterfall model of development (Wikipedia: Waterfall model, Why people still believe in the waterfall model), which is bad. In real life, a spec is a sort of snapshot of a continuing process, which is therefore not ‘complete’ (unless your philosophical orientation says that a thing is always complete in itself by its own definition).

This does remind me, though, of one of the complaints one often sees about consultants. One way to relieve the tension between completeness and a continuous process is to construct a shiny veneer of completeness, then take the money and run before the process comes back around to show the holes in the veneer.

Of course, it’s necessary to choose some point at which to exchange artifacts for money and call it “done enough for now”, so maybe it’s all in the attitude.


Long-lived software

I was just pondering today that one of the more useful and stable day-to-day utilities I’ve ever used, less, I’ve been using for 15 years. That’s a long, long time in software-years. There are few other bits of software that I’ve used so much over so long. So, a salute to you, less, you old pile of bits ya, and to your author Mark Nudelman.



Data Translation

By various sorts of happenstance, I’ve had quite a bit of exposure to data/file-type translation in projects I’ve been involved in. Given that, I don’t know why it still surprises me how difficult it can be. I think what gets me is that the broad strokes always seems pretty simple (“both formats are basically just a bag of polygons, right?”), and you can even get promising results based on that naive view. Fueled by that initial success, you start charging into the deeper details, and uh-oh, suddenly there’s some ‘little’ detail that threatens to swallow the whole project.

Another factor is that you don’t want the users of your translation facility to have to think about whether some given feature carries over perfectly into the translated realm, so you go nuts trying to support every little corner case, probably many that no user will ever encounter.