2006-12-15

Software is

Software is an encoding medium for ideas. Nothing more and nothing less. That is profound enough by itself. The idea of thoughts existing in an active manner independently from the skull of the thinker is revolutionary enough. What software is, is a fundamental immutable truth: someone must think a thought and encode it.

Ideologies decide whether this means that an idea is property the way a house or car is property or whether ideas cannot be owned. These ideological frameworks allow for commerce around software to operate, make money, and allow people to build careers. It is in the arena of ideology that OpenSource and Proprietary models combat.

This is a simple but important distinction. Software is thought. That is always true. It has all the properties of written thought and some of the properties of active thought. The idea that this form of thought can be bought and sold is part of an ideology. The idea that nobody can own thought is an idea that forms part of another ideology.

No matter what you believe on the subject of intellectual property it is still true that software is a form of expressed thought. That means that how we treat software at least in part informs how we treat expressions of thought and how we treat expressions of thought informs how we treat software. This is not something that I see reflected in modern legislation on the subject of property rights.

2006-12-14

Database Design

Let's say I want a screen that displays a list of MP3s with Genre, Artist, Album, Song Name, Play Length. What would the database table for this look like? Many neophytes would design a table that looked like:

MP3Files
Column
Typedefault
MP3ID
int
auto increment
Genre
varchar(255)NULL
Artist
varchar(255)NULL
Album
varchar(255)
NULL
Song Name
varchar(255)
NULL
Play Length
varchar(255)NULL

... and amazingly never see the problem with this.

2006-12-04

Full Body User Interface

One of my graduate school professors runs the Body Language User Interface project called BLUI for short. It is a unique Human Computer Interaction (HCI) project that allows a user to paint in three dimensions. Projects like BLUI probably inspired the current generation of console controllers on products like the PlayStation3 and the Wii.

The prolonged sedentary use of computers is simply unhealthy. Human bodies were not designed to sit immobile in front of a screen for hours on end. Physical exercise may be important for mental health in general and is completely absent from conventional human-computer interactions.

The computer is arguably the most profound advance of human technology since the advent of the written word. Many of us today live computer-life-styles that would be impossible without these devices. Yet they are slowly killing us.

Wii users are now talking about soreness and fatigue from extended use of the Wii-mote. Repetitive-motion injuries are obviously a concern with any UI and the Wii offers the opportunity for you to experience tennis-elbow caused by a video game. These are just the hazards of owning a body and playing a sport.

And, now we can start to call some video games sports. Perhaps Electronic Sports are on the horizon? All the better. It means that our computers are going to stop being shackles that tie us to the desktop.

Some distant future may even give us a Full Body Interface (FuBI) where the users will dance to communicate with their machines. Dances that control fighter jets. Dances that control robot probes on the surface of Mars. Dances that communicate how to conduct the surgical removal of a tumor.

It's just an idea.