15 March 2008

How To Lose A User In Less Than 30 Seconds

Today Yazsoft, the developers of Speed Download decided the bad press they were getting from not giving Macheist customers a free upgrade to version 5.0 of their software was not worth the few licenses they'd have to give out to calm down the vocal minority that somehow decided they got just a little less free stuff than they deserved. I bought the Macheist bundle and personally, I didn't feel cheated in slightest. I was given Speed Download 4, basically for free; and the jump in logic I'd need to make to assume that I was entitled to get the upgrade totally gratis alludes me. Regardless, I never actually installed Speed Download 4, so when my free registration what sent I figured that since so many users fought so hard to right this "injustice", I should at least install the newer version to what all the fuss was about.

The Speed Download 5 distribution is a zip file containing the Speed Download app and nothing else. Without any installation instructions or a readme file I figured following standard Mac procedure was a good idea and copied the app bundle into my Applications folder and opened it. When run for the first time the app gave me two choices; a "manual" install that claimed to let me decide which components to set up and a "automatic" install that would integrate Speed Download into Safari, iTunes and possibly the small nerve cluster at the base of my brain that controls breathing (I'm just hypothesizing here). Having never used the application before, and not being familiar with the developers I chose the "manual" setup.

Things seem to go smoothly and once the application was set up and registered I figured quick test was in order. I opened Gmail and clicked the download link on a recently received file attachment and watched the default Safari download window quickly save the file to my Downloads folder.

"Must be the manual install." I deduced aloud. "I bet I just need to turn on something in the application preferences."

Within in the application preferences however, the Safari integration pane seemed to indicate that nothing was disabled and everything should be working.

"I'll just check the docs." I said.

I can only assume these docs were written for the obviously more intelligent users who had chosen the "automatic" setup as there didn't seem to be any information on "setting up" the Safari integration.

"Ok, fine, I'll uninstall the application and try the "automatic" setup." I conceded.

I selected the support item entitled "How to uninstall speed download properly" and was greeted with the following instructions:

  • You cannot simply trash the Speed Download folder to un-install it.
  • You must use the included un-installer.
  • Quit all browsers and any running copy of Speed Download.
  • Run the SD Uninstaller (located in your Speed Download folder).
  • Log out and log back in.
  • Empty the trash.

Now the observant reader may recall that the version 5 distribution came as a zip file containing only the application bundle. There was no "Speed Download" folder to speak of, let alone an "SD Uninstaller". Is the Speed Download folder created when you choose an automatic install? It didn't say.

This entire process may have taken slightly longer than 30 seconds, but if so, just slightly; and as a direct result of my brief experience with this program, I now have an unfortunate first impression of Yazsoft. Installing an application on my computer is a vote a confidence (or at least a wager against the likelihood said application will corrupt my system) and in my opinion your application should describe in detail what it wants to install and what functionality you will be surrendering by not letting it do so.

This was definately not the worst software experience I've had, and admitedly, I'm being rather harsh on a program that probably works quite well for people who are were willing to let it install itself into wherever it wants. Perhaps as a part-time Windows user, I've become paranoid about the true intentions of the applications I install. Regardless, for now Speed Download has been "App Zapped" from my Application folder.

I hope the Macheist users are happy with it.

Update: I sent an email regarding the "missing" uninstaller to Yazsoft's support email address and received a very quick reply with the uninstaller attached. This kind of support response time on a Saturday is impressive and as I was asked, I tried to quickly summarize my issue with the setup process in reply. I will definitely have to give the application another try.

14 March 2008

Post Traumatic Stress Disorder

I would really like to hear President Bush explain how he thinks this country will assimilate an entire army of Americans that have been damaged in so many ways by that cluster-fuck of a war he's started and is now leaving us to deal with. It makes me sick to think of another generation of forgotten solders living on our streets because the government has no need for them anymore, and society is ill-prepared to help them readjust.

Parents Of Marine Found Dead Seek PTSD Awareness

A Pure Python WSGI Server

I'm currently evaluating Python WSGI HTTP servers for a new project. Right now, it seems my best options are the Paste server and the Cherrypy server as the twisted implementation is still in development and a little rough around the edges from what I've heard.

If you've had any experience with these libraries, or would like to suggest a solution that's not listed here, please drop me a comment or an email.

11 March 2008

SQLite As A Production Database (No, Really)

There's a certain stigma surrounding Sqlite. It seems that many developers will happily use it to prototype a project, but wouldn't think of deploying on anything less than Postgres (or MySQL, if you swing that way). I say this partially because I used to feel this way myself. I've run more low traffic web apps off of a Postgres server than I'd care to admit now that I've discovered the inherent convenience and manageability of a file-based SQLite database.

With SQLite an entire python web application fits within a single directory on the disk. This makes backup, testing and maintenance easier than you can likely imagine. SQLite also requires next to no setup, and most likely, is already running on your server.

Recently a user came across a bug in one of my web applications. In order to reproduce the bug, I didn't have to set up a test database and populate it with dummy data. Instead I merely copied the actual production database file along with the application files and within minutes had an identical copy of the application, data and all, running on my development machine.

There are trade-offs with SQLite and the developers make this very clear. Concurrent writes are an issue (I'd wager that actually very few web sites depend upon a large number of concurrent database writes) and the types system can throw traditional database developers for a twist. All the same, as the development community comes to grips with the fact that scripting languages can solve real problems as well or better (when you factor in time-to-market) than compiled languages, I think projects such as SQLite and CouchDB will finally motivate developers to begin looking for data persistence solutions in places other than monolithic relational database servers.

"SQLite isn't trying to replace Oracle, it's trying to replace 'fopen'" - D. Richard Hipp, creator of SQLite

- FLOSS Weekly Podcast with D. Richard Hipp, the creator of SQLite.

07 March 2008

I Believe The Children Are Our Future

41 Hilarious Science Fair Experiments

I wonder if they ever published the results of "Crystal Meth - Friend Or Foe?".

Update: That "Drop It Like It's Hot" kid could be the only person in history to get some action from a science fair experiment.

05 March 2008

Django Photologue 1.0 Released

Photologue, after several revisions, refactorings and the addition of many new features, is finally being released as a complete product. The database schema is set, the documentation is finished, and I think it's damn nice piece of software.

From the project page:

Photologue is a Django application, more specifically, it's a complete image management solution for your Django site. Photologue replaces the ImageField in Django with a powerful system that supports resizing and image effects as well as providing a turn-key photo gallery solution. Photologue embraces the Django admin and smoothly integrates with photo thumbnails and effect previews.

Get the files and read the docs.