Tuesday, February 20, 2007

< STORY > Once upon a time... < /STORY >

Amazingly, some researchers in Mexico created a program to write fiction without much input from a user. This is a huge step for computer programming, as sometime in the future an almost completely autonomous program may be in existence that can write fiction as well as some authors can. It's amazing when you think about it: the entire fiction writing process has been reduced to a series of values attaching emotion to the fictional characters. This is big, and worth some consideration. Once a program capable of understanding human language instead of a programming language is created, will it be possible for it to create the first digital saga? The problem now is that programmers have not been able to determine a way to let a computer "read" human language and interpret it as instructions. Early games show a primitive form of recognition, with such commands as "get flask" and "look" interpreted as game commands. But if we can figure out a way for a computer to understand human speech, then almost anything is possible. "Get flask" can become a spoken "open a Word document" which is interpreted through speech recognizers and understood by the computer. To be honest, I'm considering trying to write an English recognition program, which uses standard grammar rules to determine form and structure, and databases to sort out meaning, including word associations. I don't know enough about artificial intelligence programming to have a smoothly running program, but I think I'd enjoy it anyway.

Wednesday, February 7, 2007

Shortest Code Contest and Obsessions with inefficiency

Tomorrow night (Thursday) is Mercer's Shortest Code Contest, in which different programming problems are presented to be solved by the participants with the goal being to write solutions that require the smallest file size to solve the problems. The contest reminded me of a oddly philosophical conversation I had with one of the Computer Science teachers, Dr. White, concerning why people are fascinated not just with improving things, but in finding ways to make them worse. The discussion was sparked by a conversation among programming team members on the idea of a sorting algorithm which sorted in the least efficient manner possible while still having every part of the algorithm necessary to complete the task. Affectionately dubbed the "slowsort," it ended up being a factorial algorithm, meaning that to if sorting 1 item takes 1 second, then sorting n items takes n! seconds. But why were we fascinated by it (aside from the fact that we were CS majors)? Why were the Rube Goldberg machines so fascinating? Why do people enjoy inefficiency in this way? I'm still waiting for an answer, but continue to enjoy designing code that works as inefficiently as possible. Maybe someday I'll design a "slowersort."

Software pricing and upgrades

It's been awhile, but I recently was talking about this, so I thought I rant for a bit to get it out of my system.
Productive software prices are dumb.
Photoshop, Flash, Dreamweaver, Fireworks...they're all wonderful programs that have literally thousands of uses, but one main problem remains: the new versions are almost identical to the previous ones excepts for a few added features here and there and a cosmetic makeover. The original Photoshop was new, innovative, and a boon for graphic designers everywhere. It was also priced such that only major companies could afford it. I'm no economist, but I think that by now the price should have lowered into something that is more accessible to the general public. I'm not suggesting they lower it to a measly $20, but even at $60 or $70 apiece they would be flying off the shelves. As it stands now, Flash is $700, Dreamweaver is $400, and Photoshop is $650. The price has not been below $200 for the entire lifetime of the products, nor does it seem like they will be lowering their prices anytime soon. The production costs of developing the software must be well paid off by now, and with such software as Flash which currently has only one competitor with similar capabilities (Swish Max), Adobe really has a hold on the market. I really wish I had Flash right now, and would be willing to pay $70 for it, but not anywhere in the vicinity of $700.
All other software companies lower the prices of their products over time as the production costs of creating the software are paid off and the company starts turning some real profit. This is why many of games are often cheaper within one or two year's time. I just wish that someone at Adobe would get a clue and realize that their prices scare their customers away.
To end this rant, I would complete understand a steep price for a new "version" of a program, but only if the company retooled or redesigned a large portion of the program.