Machine conceit

I was paying for parking the other day. As I fed the meter card into the machine, the mechanical feeder failed to grab the card properly and then wouldn’t accept it. A human operator might have offered a small, virtually subconscious apology for their inept fumbling of the card. But not the machine. It rebuked me with a sterile “Card not inserted correctly” message.

This, of course, is not the machine’s fault. Someone programmed it to say that, someone who decided that the machine, with all of maybe fifty years of technological innovation (I’m being generous) is less likely to be at fault than the human being. This, despite the tens or hundreds of millions of years of evolution that quite plausibly makes the average two year old more dexterous than the ludicrously crude mechanics of a parking meter.

It’s not the parking machine maker’s fault, either. He or she is playing out a role as part of a machine design mentality that treats the human operator as a mindless dupe, rather than the other way around. Software makers excel at just this kind of thing, frequently imposing machine logic where the user could reasonably have made a more sensible decision. The user is frequently constructed as a source of errors; a problem that needs to be overcome, rather than as a powerful component of a processing triad made up of hardware, software and wetware.

powered by performancing firefox

Wall Street Fad 2.0

I recently read an article that questioned whether Web 2.0 was shaping up to be the next dot com crash. It’s an interesting question, not because it might be, but because a pattern is being repeated. The pattern I’m thinking about is not the familiar boom-bust cycle caused by over-hyping a market. I’m thinking about the way that Wall Street and the commercial media pick up on Internet ideas sometime after they’ve been widely accepted by most people, and then proceed to bend and twist the idea until it is a meaningless lump over over-valued stock market fodder.

This colonisation of a popular idea is an interesting phenomenon that exists outside of the Internet, but for me is most visible on the Internet, because that’s my main area of focus. Indeed, the Internet itself has been subject to the phenomenon. It works something like this: some idea or social même develops seemingly spontaneously (but beware – everything develops within a context!). This idea goes through a process of adoption and diffusion, and reaches a critical mass of popularity. At this point the mainstream commercial forces become involved. The phenomenon is popularised through the mainstream media, and is bought into by mainstream commercial interests (read: big companies). By the time this happens, the early adopters have generally moved on because the thing they were using and found value in has now changed.

Social networking, or Web 2.0 (although technically social networking is a subset of Web 2.0), is currently the darling of the mainstream media. Ever since Newscorp bought into mySpace, we’ve seen all kinds of more mainstream discussions of social networking and prognostications and commentary from the business elite. Web 2.0 has become a Wall Street fad. When the enthusiasm for the fad diminishes (and no doubt we’ll see this when the bottom falls out of the market, or when the next fad comes along), web 2.0 will be dropped – pilloried by many of those who are currently singing its praises.

Sadly, all this serves to weaken – or at least, to subvert – the core ideas of Web 2.0, which itself is a buzz-term for a more fundamental general set of principles that have evolved within Internet communities for over 20 years. In a short time, Web 2.0, which until now has served as a useful entry point to educating people about the value of networks in online social activity, will be dismissed by readers and students as last year’s fad. That’s fine, but it would be a shame to toss out the baby with the bathwater

powered by performancing firefox

Reality Cubed

Some time ago (almost a year ago, I think) I was playing with some ideas about manipulating video. My thinking was that video could be conceived as a volumetric texture. In other words, each frame of video could be stacked to create a 3D volume. Passing an arbitrary projection plane through this volume would lead to some interesting effects. Because the depth (z) dimension of this video is effectively time, an arbitrary plane of intersection would allow you to play with time and space on a 2D area (the screen). I was hoping this might allow people new sensory access into time and space, and thus allow for the development of a different appreciation of reality.
Of course, as with anything that has become programmatically trivial, this idea is not new. My favorite example of slicing video volumes is the Khronos projector project, which lets you deform a z axis-aligned projection plane interactively. Talking about some of my ideas with Mitchell revealed that his brother had also been toying with ideas about video volumes and intersection planes. Indeed, even before digital technology, photographers were playing with slit shot photography. In fact, here’s a page listing around a dozen projects that do similar things.

So anyway, the ‘Net’s nothing if not replication and redundancy, so here’s my contribution. I wrote a small program in C that runs as a command-line application to process image sequences (it does not work with video files, so you need to export them to image sequences before processing, which is a pain). The program’s pretty simple and should compile on windows, Mac or Linux assuming you’re configured the FreeImage library right. You can download an executable for PPC Mac 10.4 here, or grab the source code here (.cpp and .h – you’ll also need FreeImage). Go have a look at the full page for a more expanded description, screen shots and video examples of the process in action. It’s fairly mind bending stuff.

Comical sounds

I have Thai student who is working on a graphic novel.  He recently came to me with an interesting problem.  He wanted to know how to write sounds effects into his comic in English.  I guess he wanted to avoid unfortunate problems like this.  So, I sat down with him and started going through his novel, page by page, adding in sound effects.  Some were easy (klang) others challenging (what is the sound of someone pulling a loose hood off their head?)

What was even more interesting was the fact that there are Thai words (or, like in English made-up words) for sounds that don’t exist in English.  In fact, there are places where you’d have a sound in Thai where you just wouldn’t in English – for example, upon entering a room filled with a picture of carnage.  There’s a sound effect for that in Thai, but in English it would be despicted with silence, and perhaps the vocalisations of characters.

I did  come across an article called “The Semantics of Sound” which seems to provide some interesting comment on sounds in comics.  Worth a read.

Teeming Void

My colleague Mitchell Whitelaw has established a blog called “the teeming void“. Have a look at it if you’re in the mood for some mind expanding theory and generative ideas.

Qualitative software and wetware

One model for human/computer interaction I’ve been thinking about for some time involves the idea that the human mind is an integral but often ignored component of a computation triad made up of software. hardware and wetware. I’ve just started fiddling with TAMS Analyzer, an open source qualitiative coding program for the Mac and Linux.

Coding is the process by which you mark-up text with codes that represent information within text. It’s a way of essentially annotating text in a highly structured way so that themes and ideas in the text can be highlighted and analysed. The problem is, this task needs a wetware processor. Only a human being can read an email and extract the nuances from the text. It’s one of those tasks that computers absolutely suck at doing.

Here’s another example. MS Word is a sophisticated word processor, but without human input it won’t write anything. Again, it’s the wetware that adds a vital component – that of writing. So what? That’s all pretty obvious, I agree. But maybe if we start thinking of the human operator as an absolutely essential part of processing tasks instead of as a clunky meat-thing that’s prone to clicking the “wrong” buttons, we can design software that takes more thorough advantage of software, hardware and the incomparable processing capacity of the human brain.

My PhD Thesis

I’m posting my PhD here for anyone who’s interested in reading it. It’s a PDF that weighs in at around 3.5 megabytes – which is not much for the amount of work this document represents. It’s all completed and passed, so now I throw it back into the electronic miasma from which is came. If you use it in any way, shape or form please acknowledge me in some way. Here it is: Towards a critical theory of the Internet

Mobile Processing

I just got myself a new phone. It’s a Motorola V360. So far I’m very impressed with it. It takes photos, video (3GP format, which quicktime pro reads and writes) and syncs with iCal via bluetooth as if Motorola and Apple had designed the systems to work with each other. But the thing I’m finding most interesting is that the phone is Java capable. So, now I’m keen to think about what I can write for the phone in Java. Mitchell reminded me of a little gem called Processing Mobile. It’s Processing, but it can be used to create MIDlets – java applets that run on your phone.

So, there’s some limitations to MIDlet programming. No floating points is one of the big ones.  That means everything has to be in integer maths.  It’s a lot like going back to the old Amiga 68K demo days.  That’s fine, but the real problem is speed – or lack of it.  The average mobile has only a few megahertz to run applications, and with the overhead from Java the actual framerates you’re likely to get are pretty poor.  Turns out that most mobile manufacturers release customs SDKs for their phones, and game makers produce different Java jars for each brand they want to run.  Wow.  So much for the wonders of Java as a cross platform, write-once, run anywhere language.

Gravity in processing

I was mucking about with processing a little while ago and made a little gravity simulator. The basic particle interactions can be seen here. Most people using processing don’t seem to use it to produce animations like this, but instead use various techniques (mainly alpha-blending) to construct procedural images. My colleague Mitchell Whitelaw has some examples of basic explosion modelling on his web site.

My example depicts particle mass as size, and velocity as colour. If you render the particles with a low alpha and don’t clear the screen between updates, you get this.

Software as text

It’s not a new idea, but it’s one that I think has more legs than I’m seeing evidence of in the academic press. Cultural studies developed the idea of a text in the 1980s to include all kinds of things — from photos, soap opera and film, to consumer objects like cars and the Sony Walkman.

A text is something that is imbued with meaning through a process of production and consumption. So, a classical text (a poem, say) is produced by a writer, who intends the poem to have some meaning. For cultural studies, the reader then is free to interpret the text in a way that might be different to the author’s original intent.

So, what does all this have to do with software? Software can be treated as a text, too. It’s written by people who have a clear idea of its use. In many cases, software will be used as expected, but sometimes people use software for unexpected things. Software also has meaning – meaning that is written into it by the software’s makers, and meaning that is ‘read’ from it by software users.

It’s an interesting concept that provides one way of looking at software as a politically-bounded cultural object, rather than as a technological object that is somehow curiously neutral.

« Previous PageNext Page »