Monday, January 29, 2007

Critiquing the Ubuntu Installer for Windows, Autism

Critiquing the Ubuntu Installer for Windows

My latest entry at FSM is about the Ubuntu Installer for Windows, install.exe. In short, it’s a way to install Ubuntu onto the same file system as Microsoft Windows without repartitioning your drive. Justifications include minimizing the risk of data loss during repartitioning, a more user-friendly installation process, and eliminating the need of burning a CD to install. I analyze the need and justification in Do we need an Ubuntu installer for Windows? This is my most popular FSM entry to date; it made the Digg front page and currently has nearly eleven thousand views.

Short Film about Autism

I highly recommend watching In My Language, a beautifully crafted 8'35" video by an autistic that challenges your perspective and prejudices. It's one of the most powerful pieces of film making I've seen in a very long time, and I applaud the author both for their bravery and for the excellent presentation and editing.

Nine Inch Nails - Beside You in Time DVD

After missing a concert last year due to a scheduling conflict, I've been awaiting the Nine Inch Nails - Beside You in Time DVD, which Amazon has for $13.99 pre-order. That's an excellent deal for live concert footage of the [with_teeth] tour.

Wednesday, January 24, 2007

tagverse launch, State of the Union analysis

I've cleaned up, formalized and published my application that I used to analyze Bush's speech on Iraq.

Ever needed to analyze a document and visualize the most important terms? Enter a plain text document with at least three paragraphs, and tagverse will generate a tag cloud from extracted key terms.

I will be making the source code available in the near future.

State of the Union analysis

I provided tagverse with the text of Bush's 2007 State of the Union address.

Compare this result to the Iraq speech; note the inclusion of "diplomacy", and the avoidance of "sectarian" and "nuclear weapons". While this analysis is purely algorithmic and arbitrary, you can use it to see trends, especially in this sort of context.

Monday, January 22, 2007

Vanishing Knights - an adrenaline-filled orgy of muscle car and guitar rock

I've been listening to British rock band Muse's Black Holes and Revelations (2006) on my commute, and it's gotten stuck in my head. The final song, Knights of Cydonia is a grandiose, bombastic and triumphant progressive-rock cacophony. Bellamy croons, “No one's gonna take me alive... the time has come to make things right... you and I must fight for our rights... you and I must fight to survive.”

I really enjoyed the official video, which was done in the style of a post-apocalyptic old spaghetti western film. The over-the-top, bigger than life stylish combination of that song and visuals reminded me of Vanishing Point (1971); a film whose success derived mostly from its visceral feel and powerful sounds.

Vanishing Point is the ultimate car chase movie, starring Barry Newman and a 1970 Dodge Challenger R/T. Kowalski, a car delivery driver at the end of his rope, decides to drive at high speed from Denver to San Fransisco. Filmed in the desert, mountains and small towns throughout Colorado, Utah, and Nevada, the film features beautiful landscapes and powerful imagery. Kowalski continually evades the law to the delight of the public in the form of the last American hero.

I've been working on editing together a mashup over the last two weeks, maintaining the story line and themes of the film and closely following the song. I'm very pleased with the result; it's an exciting, six-and-a-half minute adrenaline-filled orgy of muscle car and guitar rock. I make no claims to the content; I merely edited things together.

EDIT: The audio was disabled by YouTube / lawyers, so despite my opinion that it was fair use, I have removed the video entirely.

Friday, January 19, 2007

Free desktop revolution, new domain and using ezSQL

Inspired by a recent experience, my latest entry at FSM offers my perspective on the question, has the free desktop revolution arrived? My wife's computer had hardware issues, so as a stop-gap I gave her an account on my Ubuntu desktop, then asked her about her experience.

I registered a new domain through DreamHost. They have very reasonable plans, starting at $7.95 a month, and I've used their services for several other sites that I've administered and had a positive experience working with them. My new site, the confluence is intended to be a collection of web applications that I've written and released to the public. Most programs will be released as GPL, as I believe fully in contributing to the community.

I'm working finishing a few applications; the tag cloud generator (name pending), eManiuplator (email address extraction, validation and list operations), eBrother (visualizes server usage), an email newsletter generator (name pending), and a service inspired by the old site. The first three work, but need to be secured and cleaned up. The last two are in development.

I've discovered a new database class that assists in rapid application development; ezSQL v2.00. In their words, "ezSQL is a class that makes it ridiculously easy to use mySQL, Oracle8, SQLite (PHP), within your PHP script." It's got automatic query caching, built-in debugging functions, and works with Smarty. I really, really like the way it returns responses and the built-in functions are very useful. I suggest you give it a try.

Thursday, January 11, 2007

Finding Linux replacements for Windows software, developing with phpMyEdit

When discussing ways to switch to GNU/Linux, one of the biggest difficulties I've found is finding answers to the question, "What can I replace this program with?" It's completely understandable; people don't want to lose functionality. However, Googling for answers can easily lead to confusion and frustration if you don't have the background or knowledge to be able to differentiate between the wheat and the chaff. In my new entry for FSM, I discuss resources that can be used for Finding GNU/Linux replacements for Windows software.

Good news; the article that I wrote for Free Software Magazine has been accepted! Once it's published, I'll link to it here. I'm proud; it's my first real published article, not just an opinion, letter or article in a student publication.

Today, I've been going through my notes, snippets and ideas from the past few weeks and tried to catch up on some back entries (my apologies to the feed subscribers). I've posted everything chronologically, so if you look at the blog itself, it should sense.

Yesterday, I tried using phpMyEdit to develop a forms based front-end to a MySQL database. I've found it to be simultaneously useful, simple, complex, flexible, and limited. It allows for rapid development of CRUD (Create, Read, Update and Destroy) forms, which greatly reduces development time. However, when you want to use an advanced MySQL join or contextual input, you start to find a bit of roughness.

The documentation does a decent, but not thorough job of listing all the functionality. I'm particularly annoyed by the comment, "Note that the above example contains additional features..." yet there are no instructions on how to use the new functionality anywhere else in the manual.

Another issue I have with the documentation is the inclusion of code examples that only apply to "future development" and not the current version... this sort of thing should be in the bug tracker, not the production documentation.

I've asked a question on how to do contextual input on their support forums, and if I get a response, I'll publish it here. Overall, I think phpMyEdit is a good free tool for PHP development.

Wednesday, January 10, 2007

Analyzing President Bush's Speech on Iraq with a Tag Cloud

In the build-up to President Bush's speech on Iraq, I've heard a lot of speculation on what the emphasis of the speech was going to be about, and how the content was going to be less rhetoric and catch phrases and more of a persuasive argument. Out of curiosity and inspired by the US Presidential Speeches Tag Cloud, I used an application I wrote using free tools and scripts that extracts key phrases and words from a document and represents the results as a tag cloud (weighted list). Here are the results of the tag cloud analysis of the transcript of the speech.


One of my tasks as a programmer was to find a way to process a large body of text (committee suggestions), pick out key phrases or words that occurred more often, and display them in an easily understood format. However, if I just did a word count, then I'd get high occurrences of out-of-context nouns, adverbs and verbs, which wouldn't be useful.

Term Extraction

The Yahoo! Developer Network offers a very useful tool as part of their Content Analysis Web Services - Term Extraction. The service "provides a list of significant words or phrases extracted from a larger content." To use the service, you'll need a free Yahoo! Application ID. The only limit on the service is 5,000 queries per IP address per day, which for most users is more than sufficient. To get around some hosting limitations, I used the HTTP POST from PHP without cURL script from

As the service provides a unique terms, I couldn't just submit the whole body of text, which would have resulted in a few key words and phrases occurring only once. I had to split the source text into individual paragraphs, submit each paragraph separately, and push each resulting term into an array.

Tag Clouds

A fairly recent innovation in web development has been the use of tag clouds. A tag cloud is an alphabetized way of visually representing the frequency of a word or phrase using font sizes that correspond to precedence, or some other similar emphasis. If a word or phrase occurs more often, it'll be displayed larger than the other members of the list. For more information and the history of tag clouds, read the wikipedia entry.

I combined the Term Extraction with a modified version of the excellent free PHP tag cloud generator from 15tags. The script just counts the occurrences of strings within an array and displays the top few items that occurred the most often in a tag cloud. You can adjust the number of items in the tag cloud; while I've displayed over 100 items, it works best with around 25-30.


I took the committee suggestions, pasted them into the tool, pasted the result into a word processor, added a little formatting, and gave the printed document to my supervisor. She found the results useful and visually interesting; it a good tool for arbitrary analysis, and the resulting tag cloud could be used as the basis of a cover for the report. I think tag clouds are a useful method of visually representing the importance of a term, tag, or key words.

For fun, I also ran the application on some erotic literature and IRC logs. I won't share the results in public, but believe me, it's a hoot.

Monday, January 8, 2007

Protecting intellectual property

An unfortunate side effect of the "Wii-diculous" video is that it's become viral. Not in the way I'd like it to be, mind you... some individuals have downloaded the movie from either YouTube or GameTrailers, transcoded it, and uploaded the result to different sites. In the process, the content I authored loses the proper description and the link to my blog, gains watermarks, and is presented as someone else's content without credit. I find it particularly amusing that it's gone full circle; I found at least four different copies of the video with the same title on YouTube, which I had removed through their admirably fast and painless copyright infringement contact.

Now, I'm not trying to make money off of this. I'm just trying to make sure that the people who deserve credit for their work are acknowledged; myself, Ed, and Chris, along with the others named in the credits and my blog entry. I don't understand why people don't even check if a video is already there before uploading it themselves.

There's a difference between sharing content you've found and branding it as your own and implying ownership.

I've been contemplating a mash-up of a particular Muse song and a 1970's movie that I really enjoy. Trust me, there's a lot of bad mash-ups, and I don't want to make one more. I've planned it out in my head; following both the story line of the movie and the lyrics in a sequential manner, with the climax of each matching. Even the rough cut is making me giddy... but now I'm second guessing myself. Would it be hypocrisy if I published it on YouTube? I wouldn't be taking credit for the content, just the editing.

In a perfect world, I'd request the permission of both the movie studio and the record label, and they'd undoubtedly say no or ask for so much money that I couldn't afford it. However, there are thousands of mash-ups that survive without getting take-down notices. I could just post it and run the risk of having it removed... absolute worst case scenario, I'm fined, even if I was using it in a non-commercial context.

This is not an easy question... fair use vs. intellectual property vs. corporate interest.

Thursday, January 4, 2007

Usability, a wii-diculously large response, and GameCube modding

Happy New Year! Sleep is for the weak, so let's get back to business.

Have you ever found a new piece of software that sounds like it's the perfect match for your needs, only to get bogged down by bad documentation or a horrendous interface? Many people will quickly discard programs out of frustration caused by avoidable usability issues. Read about ways software developers can avoid disenfranchising potential users in my Free Software Magazine entry How usability inhibits good software.

The Wii-diculous video has gotten frighteningly popular; over 300,000 views on YouTube so far! I figured I'd get a few thousand hits... Ed, Chris and I are very pleasantly surprised by its success. We're currently planning a follow-up...

Reading over the comments on my entry about learning Ruby on Rails and using generated CRUD forms, I found a nice suggestion; phpMyEdit. It's an "instant MySQL Table Editor and PHP code generator." Thanks to Niraj for pointing it out! I'll take a look at it in the coming weeks.

I've been researching ways to mod my used GameCube... ultimately, I'd like to replicate the functionality that I have with my modded Xbox w/ XBMC; the ability to use home brew (network media player, emulators, Linux) and to play backups.

It looks to me like the easiest solution is to use a XenoGC 2.0 modchip ($15), buy a Gamebit screwdriver (about $8), and a replacement case (around $30) or top (around $20) so I can use full-size DVDs. Also, I should get a GameCube Broadband Adapter, which runs about $20 off eBay (unless I can find it locally).

I've learned a few things... Full-size DVDs apparently reduce the lifespan of the optical drive motor, but the exact amount is up in the air. Also, you can "make" your own Gamebit screwdriver by melting a pen for each screw, but I'd rather just buy the right tool rather than ruining a bunch of pens. Playback of backups is affected by the type of media; adjusting the potentiometer may resolve some skipping issues. Finally, while it's theoretically possible to hack an IDE hard drive into a GC, it's a square peg in a round hole.

However, the more I look at the GameCube homebrew scene, the more I'm second guessing whether or not I should do this. My GameCube is working just fine as a game playing device, and I don't mind having both a GameCube and an Xbox. I can't afford to replace it if I screw up. Oh well...