Two Ends of the Spectrum

So much has happened in my coffee world since my last post. Thanks to everyone who posted great insight.

Currently, this is my situation: there are two coffee lovers in me. There’s the addict, who must have some form of coffee at relatively regular intervals throughout the day, and then there’s the guy who can relax for a moment to enjoy a really good cup.

I wanted to try a pressure brewer for convenience, but after reading everyone’s comments on the last post, I decided to pull my french press out of storage. After cleaning it out, I went to this nice local coffee place and purchased some Nicaraguan beans, came home, and threw some in the grinder. I then fell in love with the french press :-). The sad thing is that before yesterday, I think I had used it maybe twice. I’ve used it four times since yesterday.

At some point this week I’m going to return the piece of junk Black & Decker HCC100 Pressure Brewer and get the Senseo. It sits on my desk, and is ready to deliver a decent cup of coffee with one press of a button. The HCC100 makes decent coffee, but it has awful reviews and very, very poorly manufactured.

I also had an urge for cinnamon today (and Bulgarian chocolate nut), so I added some [cinnamon] to the grounds in my last “press.” It’s very delightful. I guess the new Folgers cinnamon commercials made me do it.

My conclusion: the pressure brewer delivers “On Demand” coffee services, and the french press relieves you of the guilt of using the pressure brewer. Both actually solve my original problem of coffee being too hot when made by a drip machine, because the water has time to cool with the french press, and the pressure brewer sucks enough to not heat the water up to the same temperature as the drip machine. How neat.

Please Cool Off

Wake up in the morning. Fill coffee pot with water. Pour water in coffee maker. Put two scoops of ground coffee in filter. Place filter in coffee maker. Turn on coffee maker. Wait 10 minutes for coffee to brew. Pour first cup of coffee. Turn coffee maker off. Wait 15 minutes for coffee to cool to tolerable temperature. The steaming mug is mocking me.

I am officially on a hunt for a better coffee maker. Maybe some kind of pressure brew system with variable temperature control. Or maybe I should start a ritual of burning my tongue every day and get over it.

We must have universal DAP support!

Over the last few months there have been many requests for Banshee to support Digital Audio Players (DAPs) other than the iPod. Support for the iPod was initially most important: like it or not, the iPod has somewhere close to 50% of the entire marketshare for DAPs. The next most popular device line is the Creative Nomad/Zen Micro/Dell DJ family of DAPs (NJB). I have nearly completed my C# bindings to libnjb (njb-sharp from Mono SVN), which means NJB devices will be second to be support in Banshee.

However, I have been working on a very generalized “framework” for DAPs within Banshee. This week, I plan on refactoring the iPod support to implement this new model, implementing NJB, and implementing a base class for generic USB mass storage players (the kind where you just “drop” a file onto it, and it plays… no crazy databases or protocols necessary). This will make adding support for any DAP very simple. Each DAP implementations will be runtime-loadable, and none will be required to build the base Banshee.

Beneath it all is a HAL layer that fires off events to the proper DAP class instantiations when a new device with the portable_audio_player capability is connected.

Unfortunately, there is a slight problem. Very few FDI entries have been made for DAPs. In order for all the generic USB mass storage devices, and the Creative Nomads, Zen Micros, and Dell DJs, etc. to even be recognized as a DAP, the fdi/information/10freedesktop/10-usb-music-players.fdi FDI file needs your help. If you would like your DAP to be recognized as a portable audio player and it is not currently, I have written a small utility that collects information about your DAP from HAL. Simply ensure the device is disconnected, run make, connect the device, and wait 20 seconds. Mail me the result of the probe, and I’ll update the FDI file, and have it pushed upstream. The utility is written in C#, so you will need Mono. I left a precompiled assembly in src/, but if for some reason it refuses to run, try rebuilding it.

The utility can be found here: hal-device-capture-0.2.

I hope to have the generalized DAP framework in place this week for the 0.9.13 Thansgiving release of Banshee. If you are interested in actually adding support for your DAP of choice, please contact me!

Update: After reports of problems running the utility, I forgot I have Gtk# 2.7.1 installed locally, which means that’s what the utility was linked against. I have rebuilt it against Gtk# 1.0.

Banshee – My iPods think I’m Hawt

No, really, they do. They also recommend building Banshee, which has three major fixes, two of which are iPod fixes that make syncing work without crashing (huh, what a concept). Also some minor UI tweaks to make things look pretty slick.

So just for kicks, I ripped a purchased CD, MusicBrainz fetched the info and Banshee fetched the album cover, then I synced the ripped tracks to an iPod, then I burned those tracks from the iPod back to CD, then I imported the CD again… no loss of metadata. I’m sure the quality dropped a little, as the flac->mp3 conversion does nasty things, but you can bring that up with Apple.

Banshee 0.9.11

For those who enjoy beating a Banshee, 0.9.11 is out. I have set a new record for working through the night, and am set to retire for the evening of the 9th at nearly 7:00 on the morning of the 10th?

Before this however, I must note: also of much interest is Nat’s super-duper type-to-tag patch for F-Spot. I propose a final touch (expand on enter), and am now totally addicted to this new method of tagging and organizing my photos. I highly recommend.

On the Weekends: A Side of Web

I enjoy web-based design work quite a bit, at least in moderation, and find that dabbling in it over the weekends and on some not-so-busy evenings is a nice break from the normal cycle. I have been working mainly on the Banshee Wiki. It has a new tango-esq theme, and validates as XHTML 1.1/CSS2, which I think is fairly unheard of in a Wiki. I also extended my release monitor extension, which allows pages to have custom tags that expand with information about a tarball release on a given project.

I am working on MediaWiki+WordPress integration for Springboard. Since we use MediaWiki so much, I thought it was only fair to switch my personal site to this same platform combination. My blog is now powered by, *sigh*, yet another WordPress install – but I guess there’s a good reason for its popularity. I am still working on the wiki side of things, but the WordPress theme now pulls in its elements from the common theme I am working on for MediaWiki. This is going to be very nice: two content engines dressed up by a single theme, and sharing data. More on this will follow.

Check out my New Hard Drive

I bought a 250GB EIDE drive about a month ago, before realizing I had no where to put it. One of these days I suppose I’ll build a SATA system, but for now I just swap various EIDE drives around. The 250 has been just sitting on my desk in the original OEM packaging… until today.

I was in a local computer store looking for a cheap USB 2.0 enclosure for the drive. They had none. However, I did manage to find an EIDE->USB 2.0 converter cable/dongle thingie and power supply. So what do you get when you combine this little gizmo with OEM drive packaging?

Custom HD Enclosure Custom HD Enclosure

A 20-dollar enclosure!

Wake Up with Bash

Like so many, I have problems sleeping… and waking up. While I’m not sure what to do about making myself fall asleep faster (the mind just won’t turn off), I am now using this method of waking myself up. It has worked wonderfully for the past week. I have had about 6 hours of sleep each night, and wake up completely refreshed and ready to go. Before this, I would get 7-8, and sometimes 9 hours of sleep, and would wake up dead tired and completely unmotivated; all I wanted to do was check for urgent mail, and fall back into bed. Needless to say, I’m loving the extra few hours in the morning. Maybe I’ll eventually become a “morning person.” (I like the theory of early morning wake up, but I generally hate it in practice :-)).

My method for the “quiet” alarm was to schedule my wake up in Evolution, and have the appointment alarm execute “banshee –play”. I would have a Banshee instance running, paused on a quiet song that would slowly increase volume. Subsequent songs in the wake up playlist would be fairly mellow. The idea is to have the first song fade in, so there’s no abrupt noise to jolt you awake. The fall back alarm is your typical buzzing alarm clock we all despise.

The Evolution approach has actually been fairly annoying. I don’t always like to wake up at exactly the same time, so having recurring wake up appointments just leaves me having to edit the appointment each night. So tonight I wrote a simple timeout shell script that takes a string that is passed to the date program to calculate a timeout.

$ ./ 8am && banshee --play
Terminating on Tue Nov 1 08:00:00 EST 2005
Expires in: 06:12:19

That’s pretty simple. It will then show the full date/time string, so you can verify date properly parsed your wake up time string, and then it will count down the number of hours, minutes, and seconds before “expiring.” This is nice because it gives you an idea of exactly how much sleep you may get (provided you can fall asleep shortly thereafter). When it expires, it will either exec the second argument, or just quit if no second argument was specified, so you can use it just like sleep.

For those interested, the script is here. Happy waking up!

Oh, and Banshee 0.9.9 was released.