Tuesday, September 29, 2009

Managing iTunes album art

Album art is a wonderful idea for digital audio collection and make navigating between albums so much easier in iTunes.

Since iTunes version 7.0 onwards, you can download the album art of a song or a group of them from iTunes store.

Open iTunes, right click on a song or a group of them and select "Get Album Artwork", iTunes will download the album cover and store them accordingly.

There are two issues with this feature:
  • Portability: If you switch to another media player other than iTunes, the downloaded album art from iTunes will not copy across.
  • Customization: How to customize the album art of your own.
This article will examine these two issues.



Portability

By default, iTunes will store all the downloaded album art under iTunes/Album Artwork folder. This means when you switch to another media player, the new media player will not understand how iTunes organize the artworks.

In order to support portability of the album artworks, you will need to embed the album artwork into the mp3 itself. There are two ways you can do that with your existing album artwork from iTunes:

  • Manual cut and paste: If you right-click on a song in iTunes (with album artwork downloaded from iTunes store before) and select "Get Info", go to "Artwork" tab and you will see the album art. Click on the album art and perform a Cut (Command-X in Mac) and Paste (Command-V in Mac). Click OK. This will embed the artwork into mp3 now instead of storing into the default iTunes folder.
  • Use Doug's AppleScripts for iTunes: This script will re-embed the artwork into mp3 of the select files. Note that this script requires some knowledge on how to install custom scripts in iTunes. Check out the link above for installation instructions.
Note that embedding artwork into mp3 will allow you to bring along/transfer your music collection easily without worrying about additional data. However, by doing this, you are increasing the file size of the mp3 and hence might consume more space.

Customization
Although iTunes store has a lot of album arts available for download, sometimes you might come across some of the albums have no artwork on the store. For example, foreign language albums, or singles, or you might want the exact album artwork in different countries, etc.

In this case, you can find the actual album artwork (an image) that you want to associate for certain tracks and following the instructions below to associate artwork:


  1. Right-click on a track/group of tracks in iTunes and select "Get Info".
  2. Select "Artwork" tab (if you select only one track) or check "Artwork" checkbox (group of tracks).
  3. Click Add or double click on the Artwork space and select the image that you want to associate.
  4. Click OK.
 

Friday, September 25, 2009

Portable Cross Platform Personal Wiki

Problem


I have been using Atlassian Confluence Wiki Personal License (free) at home for a while now. Basically I used Confluence to record all important information, such as how I setup my own server, what directories store what, command bash command prompts and useful scripts etc. Wiki is really useful is keeping track of all the little "findings" and tricks for the future.

Besides Confluence, I am using another wiki engine at work. This creates a problem where a lot of the time, my "knowledge" is stored into different places and quite hard to search for something. At home, I cannot get access to work's wiki and vice versa.

Wouldn't it be great to have a portable personal wiki that you can bring with you no matter where you goes (at work, at home, etc) and still manage to keep track of everything that you think is important?



Quest

The problem above has led me into search for the best solution in fulfilling what I want. There are few main requirements that I want from a Wiki:


  • Portable: This means I can bring it with me no matter where I go. Having a personal wiki hosted on some site probably help but what I might not be able to access it if company firewall blocks it or for some reason, I am situated at a location with no Internet. The obvious solution to this would be a USB thumb drive. Nowdays, USB thumb drive is so small (keychain size) and easy to bring around. Furthermore, their storage capacity is getting higher and better.
  • Cross platform: I am using Mac at home but Windows/Linux at work. So I need a portable wiki that could run seamlessly in both environment.
  • Small Footprint: Given the need for portability, the Wiki probably needs a small footprint (in terms of the environment to run the wiki), so that I don't need to install anything on the host machine that I am using.
Over the years, I have been trying to find the holy grail for the problem and have attempted the following:



XAMPP is an Apache distribution that contains MySQL, PHP and Perl. It allows the user to install everything on a USB thumb drive. This is really useful if you are a Web developer (PHP for example) and want to carry your work with you everywhere. XAMPP has different distributions for Windows, Linux, Mac OS X and Solaris.

Once we have the XAMPP installed on USB drive, we then install MediaWiki, which is a Wiki engine written in PHP using MySQL to store the data.

There are various articles that describe how to install XAMPP and MediaWiki:

Lifehacker - Run Your Personal Wikipedia from a USB Stick

Also MediaWiki provides a manual to describe how to install the Wiki using WOS Portable / Uniform Server (both on Windows platform).


Verdict

I have been playing around with XAMPP + MediaWiki combination. There are few issues with it and it does not meet my requirements.



  1. Slow: Install XAMPP on my USB thumb drive took around 1 hour or more - perhaps it is my USB drive (formatted to FAT32?). Everytime I need to start XAMPP, I am required to start the XAMPP console and start both MySQL and Apache.
  2. Cross-platform: Although XAMPP provides different distribution for Mac and Windows, unfortunately I have to install both distributions and might need to migrate data back and forth for the Wiki data stores in MySQL. To get around this problem, I am using a Windows VM on my Mac to be able to use the XAMPP (Windows). This provides a consistent Wiki usage at home and work.
XAMPP + MediaWiki seems a bit fiddly and too much preparation and work (start XAMPP, start Apache and MySQL) for my requirements.

At last, I found what I am looking for:

Wiki on a stick

According to the website above, "Wiki on a stick" a personal wiki that lives in one self-modifying XHTML containing software, interface and data. Very useful for creating small websites and mantaining notes or todo-lists; completely javascript-programmable, supports images and files embedding.

Basically it is just a simple HTML file. Once you open the HTML file in your browser, you can start create Wiki pages. Everything is manipulated with javascript + XHTML in a single HTML. How cool is that!

This immediately fulfill all my requirements - portable, small footprint, cross platform! It is nothing more that a HTML page and what you need is a modern browser that supports the javascript that it needs (I am using Firefox 3+).

I have been using a while now with "Wiki on a stick" - and I truly like it. It is very portable and don't need to fiddle around the environment/platform that allows you to run the Wiki on.

However there are some gotchas that needs to beaware of when using this, which I have summarise my experience below.

Experience with "Wiki on a Stick"

Although it looks like this is the best solution for me, there are some gotchas:


  • Don't expect full blown Wiki functionality: As this Wiki is designed for its simplicity and small footprint, do not expect bells and whistles that other more powerful Wikis have.
  • Might not suitable for enterprise and multiple update: As I am not looking for multiple updates/concurrent updates, this suitable me well. However if you are looking to use this Wiki and allow concurrent updates, I would strongly recommend using other Wiki engines, such as MediaWiki, JSP Wiki, etc.
  • Binaries: Although this wiki supports images and files embedded, as you know, this is a single HTML file, embedded large binaries might not be a good ideas in a single file (imagine a Microsoft Word with 100+ images embedded). My solution to this is create a separate folders on USB drive (relative to the HTML Wiki) for images, attachments, files, etc, and use or other HTML tag in the Wiki to refer to those files.

Since using Wiki on a stick, I have also found similar personal Wiki called TiddlyWiki. It has much more support and plugins than the former.