Category Archives: Tools


MP3 Players & Linux

This article will be a bit off my normal routine.  I usually like to try things out before I write about them, but in this case I am making an exception.  Mostly because I’m not sure when I’ll have the time to try some of this stuff out, but I thought it was interesting enough that I wanted to share with everyone now.  Anyway, this article will focus on popular MP3 players and open source programs that either work on them or with them.


The Apple iPod

Below are a few projects that may interest iPod owners…


First up is the iPodLinux project.  The goal of this project is to port Linux to the iPod.  Meaning you actually run Linux directly on your iPod.  The project has been successful in porting a kernel and has developed a user interface called podzilla.  It also appears a bunch on small applications have already been developed like file browsers, image viewers, games, etc.  You can find details on the applications here & some screenshots here.  It looks as if they have even had some success getting video to play on the iPod Photo.  So what versions of the iPod work?  From their site, “iPodLinux is currently safe to install on 1st, 2nd, and 3rd generation iPods. Development is currently on-going on later generations of iPod, including the fourth generation click wheel, mini, U2, Photo/Color, Nano, and Video.”

The only iPod I have is the Shuffle so I will not be trying this out for a while.  When my Dell DJ breaks down and it’s time for a new player perhaps I will buy an iPod then and try it out.  When that happens I’ll report my impressions of the project.  However, from the outside I have to say it looks promising.

Next up….. an iTunes like application

Ok so the iPodLinux project is for putting Linux on your iPod, but what about something that lets you purchase music for your iPod like iTunes.  iTunes only runs on Windows and Macs so what is a Linux user to do?  Don’t fret.  That’s the gap SharpMusique tries to fill.  An application developed the by the man many have come to know as DVD Jon (the man who brought DVD copying to the masses).

SharpMusique, originally known as QTFairUse, can now be used on Linux systems.  It bypasses Apples DRM allowing iTunes bought music to be played on Linux.  The application allows users to perform the following actions with the iTunes Music Store:

  • Preview songs
  • Signup for an account
  • Buy songs and albums
  • Redownload songs that you bought with SharpMusique
  • Redeem Pepsi caps
  • Redeem gift certificates

You can find out more information about the project here.

Next up is something to manage your music files, sync them with your iPod, etc.  That is the goal of the gtkpod project, “gtkpod is a platform independent Graphical User Interface for Apple’s iPod using GTK2. It supports the first to fourth Generation as well as the iPod mini, iPod Photo and the iPod shuffle.”  Here are some good screenshots.

Next up is the Dell DJ…

Dell’s Digital Jukebox (Dell DJ)

There are several interesting projects involving the use of the Dell DJ with Linux.

First up is Gnomad2.  “Gnomad is a GTK+ client program for the NOMAD Jukebox, using libnjb and libid3tag to handle the jukebox communications and ID3 tagging procedures.”  Not originally written for the Dell DJ, but does work since the Dell DJ is based on the player that Gnomad was created for.  This basically works like the Dell Jukebox Explorer works in Windows.  Here are a few screenshots.

Gnomad2 is great for managing your music files, but it lacks the ability to sync up with your DJ.  That’s where this project comes into play.  DJSync allows you to sync the DJ with your local music library on Linux.

So that about wraps it up for this article.  Hopefully you have found this useful.  If you have any experience with, opinions about, or alternatives to these projects please post your comments.


jChat – YUI, Jaxer, & ActiveRecord


For those familiar with MiaCMS you’ll already know I’m a huge fan of the Yahoo! User Interface Library (YUI).  I recently finished up the JavaScript work for version 4.8 of MiaCMS.  With some free-time on my hands I figured what better way to fill it than with a new project?  So I set out to learn some new technology and see how I might mash it up with some existing skills like YUI.  The new technologies I decided to experiment with were Aptana’s Jaxer and their new ActiveRecord.js framework.

Jaxer ships with a number of basic samples, but I’ve seen quite a few people online in search of more complex examples and specifically ones that make use of the new ActiveRecord.js library.  The extended example I developed is called jChat.  jChat is fully functional chatroom application that demonstrates integration of the following web related technologies; HTML, CSS, JavaScript, MySQL, YUI, Jaxer, and Activerecord.js.

jChat’s DOM access/manipulation, event handling, and animation code makes heavy use of YUI.  The YUI Library is a set of utilities and controls, written in JavaScript, for building richly interactive web applications using techniques such as DOM scripting, DHTML and AJAX.

Jaxer is an Ajax Server that will allow us to built entire applications using JavaScript and Ajax.  The theory being that JavaScript experts can build applications without needing additional server side languages (ex) PHP.  There is nothing wrong with PHP, in fact is just so happens to be one of my favorite languages, but the important point to be made here is that Jaxer eliminates the requirement for additional server side languages.  That being said you don’t have to do away with server side languages and in some cases it might make a lot of sense to utilize Jaxer with a server side language like PHP.  Another added bonus developers get with Jaxer is code reuse.  Typically we see develops implementing similar functionality in multiple languages to handle things like data validation for example.  With Jaxer it is possible to write the JavaScript validation code once and utilize it both client and server side.  This could therefore lead to less debugging, simpler testing, and faster time to market.

ActiveRecord.js is a cross browser, cross platform, JavaScript ORM.  ActiveRecord.js makes it easy to begin working with databases in JavaScript on the client or server, with Google Gears and Chrome, Aptana Jaxer, Adobe AIR or any platform supporting the W3C HTML5 SQL Specification (currently Webkit and iPhone).  Overall I found ActiveRecord.js simple to integrate and a pleasure to use.  I found a few bugs initially (mostly just some sytanx issues preventing proper minification).  Thanks to the power of github I was able to fork it, make some modifications, and submit a pull request which they ultimately accepted and merged with the master branch.  I’ve been working on another Adobe AIR related project which I started before the first beta release of ActiveRecord.js.  It makes use of AIR’s native support for SQLite, but I’ll more than likely rewrite the database code to make use of this new library which should have the added benefit of easing application updates/database migrations down the road.

I’ve put all the source code up on github so that others can benefit from my learnings.  Chatrooms have been done a million times so jChat is less about the overall application functionality and more about the pairing of technology.  Feel free to download, learn from, and/or fork jChat on github –  Comments, suggestions, and contributions welcome.