I should be a stunt-car driver

I was on my way to get some lunch today, doing about 40 MPH in the jeep down a slight hill around a reasonably tight curve, over a small bridge that goes over the lake that is near by the house – completely normal, I do this a few times a day. The road was wet too. All of a sudden, the transmission kicks, and then completely locks up in park. Keep in mind the conditions. There are also cars coming over the bridge in the opposite direction.

So with the transmission locked, the engine shuts off, and I press the breaks, hoping to maybe take some stress off the transmission and stop faster and safer. Meanwhile I’m spinning the wheel in various directions very rapidly, and while there was lots of skidding and swerving, I managed to keep the jeep mostly in my lane without hitting the bridge rail or oncoming traffic. I’m soooo glad there was no one behind me, especially considering in this area people most of the time will tailgate you.

At a stop, at the end of the bridge, smoke is still coming from the rear tires, the “gear shift” is still stuck in drive, yet the transmission is locked in park, and the engine is off. This means the engine will refuse to start. I managed to rock the jeep a bit and was able to put the shifter back into park and start the engine, and drive out of the way.

The Jeep: about a year ago

Tomorrow it seems the jeep will be in the hospital. Maybe I’ll just drive it off a parking garage and watch the pretty flames. That’d be cool.

WordPress 2.0

I’m impressed. I just upgraded to WordPress 2.0, and despite there being an insane amount instruction on the upgrade process, it went very smoothly, much to my surprise. I’m not sure how I feel about the WYSIWYG editor though. I just hope it lets me type my own XHTML and not escape all my tags.

On Friday the cable dude came to hook me up with a more reliable and faster connection to the outside world. It’s pretty awesome. Again, I’m impressed.

Ekiga and Diamond

This evening I decided to try out the new Ekiga. The build was very easy, no hiccups. After testing SIP support, which has never worked for me in old GnomeMeeting, I became quite excited. I then signed up for a Diamond account, and a few minutes later, was using Ekiga to call a land line.

Good-bye SkypeOut!

The Diamond quality is much better than Skype, and it’s all SIP/Asterisk-based… not to mention no more proprietary bloated static QT Skype client. Rock on Ekiga!

Earthstink Highspeed Offline

Today I drew the line. And then scribbled all over it. And then I drew a straighter line, and I like that line.

Warning: what follows is mostly rant material, but if you’re thinking about switching ISPs, you might want to read :-)

The 1.5 Mbps DSL line that I have is amazingly awful. It’s constantly going up and down. PPPoE is the culprit. Instead of fixing problems however, Earthlink instead blames my Smoothwall. This is not new. Today’s record of service was the worst in a long time: every ten to twenty minutes the connection would be dropped and it would not come back for about five minutes. This went on for about twelve hours.

$ ping -i 5 google.com
...
64 bytes from 64.233.187.99: icmp_seq=1626 ttl=246 time=51.4 ms

Lucklily, it’s been roughly 2.5 hours since it last went down. Let’s see if I can make it through this post.

Committed to solving the problem, this evening I called Earthlink to switch from their DSL service to their cable service. They were offering the same thing Time Warner Cable (TWC) was offering: $30/mo for 6 months and $45/mo after that. I figured the switch would be pretty simple: keep the same account, just move to a different kind of line. At most it should take under a week for “the guy” to give me a cable modem. Aside from wanting a more reliable connection, upgrading to a 5.0Mbps line would be nice – and the uplink would also rock a lot more. Man, I was wrong!

Before calling however, I looked over their services page. The current DSL bill from them is about $50/mo for 1.5 Mbps. However, they now advertise a 1.5 Mbps DSL line for $40/mo and a 3.0 Mbps line for $45/mo. Shows how technology “changes” and they silently keep you locked into a higher rate for a slower connection. That alone should have set off bells in my head. Lovely. Their cable connection was also $45/mo, but 5.0 Mbps. Yes, I think I really want to stick with DSL – I enjoy paying more for less!

So back to the call… we almost had the switch completed, to the point of scheduling a time for the “installer” to drop off the modem, when the representative realizes (after I clearly said I already had DSL service, and had provided verified account information) that I have a DSL account with them (reeeally?), and that before proceeding, they would need to deactivate my DSL. Oh that’s nice! The earliest they could give me cable was around the 30th. I guess I really don’t need any connection for 1.5 weeks. Oh, the dialup should still work though. Glad I have that serial fallback modem.

I proceeded to tell her that I could just as easily call TWC and order their cable Internet service for the same price, and cancel the Earthlink account when the cable was active. She had a very hard time debating this fact, and offered to redirect me to the sales department (I swear that’s where I thought I was). After about 30 minutes of some lovely jazz-flute-over-a-cell-phone (in loud speaker mode, of course), I described the problem. The result: well, there was no result. The only way to activate the cable service was to deactivate the DSL. It’s a technical issue that no one has figured out how to overcome. Riiiighhht.

I let myself calm down a little, and called TWC. My were they friendly! I informed the sales woman that I currently have Earthlink DSL and am interested in switching to TWC Broadband. Immediately I could hear her voice raise an octave, full of excitement. She informed me that because of my current DSL situation, I was eligible for TWC Broadband for $30/mo for 12 months. Awesome. What came next was even better: after processing the order, she asked when I wanted it installed, to which I replied “as early as possible.” How does Friday sound? “Are you kidding me? This Friday? I could kiss you.”

Also, the TWC representative asked me “what Windows do you have?” I said I didn’t have any Windowseses but it didn’t matter. She then clearly explained that as long as the installation technician could verify that an IP address was being assigned, it did not matter. Rock on. I dig no bias.

So good-bye Earthlink, you lose. I sure can’t complain about 5.0 Mbps service for $360/yr. Sure beats $600/yr for 1.5 Mbps. Now let’s break this down a little bit:

Earthlink 1.5 Mbps DSL @ $50/mo = $33.3/1 Mbps/mo
TWC 5.0 Mbps Cable @ $30/mo = $6/1 Mbps/mo

Holy shit.

Now of course, that’s just for the first year. After that:

DSL @ $50/mo = $33.3/1 Mbps/mo
Cable @ $45/mo = $9/1 Mbps/mo

Something tells me that’s still awesome.

Banshee 0.10.4

I just released Banshee 0.10.4. It features a snazzy new plugin system, the first four official (awesome) plugins, better source management, and other stuff that I mostly wrote about a week ago. No sense in repeating myself too much though: have some release notes.

I am also working on what is tentatively called Mono.ZeroConf – Mono bindings to mDNSResponder. Currently the Banshee DAAP plugin (daap-sharp) uses Avahi, which is great, but it should soon also work with mDNSResponder ala Mono.ZeroConf. I won’t even being to mention what a pain the mDNSResponder API is. Nonetheless, it’s working quite well thus far. Browsing and resolving/browse responses working sync and async, and TXTRecord-related APIs work. More on this later I guess. Flames accepted!

In other news, I’ve been visiting at my Mother’s since Saturday evening. I’m totally allergic to the house, but it’s nice to spend time with everyone, including the cats and the new puppy…. and no, I’m not allergic to the animals… it really is the house.

Network TV needs more Walker, Texas Ranger [1]

I can’t believe it’s been over a month since my last post. So here’s a long one to document some of the latest Banshee happenings.

Banshee Core

  • Updated plugin architecture, complete with a plugin management and configuration dialog.
  • Sources have been beefed up, have been abstracted from the view, and are available to plugins now.
  • Playlists were rewritten, are much faster, and what a shock: reordering works properly now.

Plugin Manager Dialog

Banshee 0.10.3 will ship with the first four official plugins, outlined below. If you are interested in writing plugins, I have written some early documentation as a guide.

DAAP

Banshee has full DAAP client support now, and is implemented entirely as a plugin. DAAP shares will show up as sources, and activating them will initiate a connection (and prompt for a login if necessary). Songs in the share will populate the view, and can be played like any other song, much like any other DAAP client/player.

Playing a song over DAAP works with any media engine however, including GStreamer 0.8, GStreamer 0.10, Helix/RealPlayer, and VLC. I managed this by creating a “proxy” HTTP server that listens for requests and streams a song from a DAAP database over HTTP. I also added a very light weight web-based interface that lets you browse shares and download songs over a web browser… probably not that useful, but cute nonetheless.

Also, if you have the right decoder in GStreamer, you can actually burn a CD directly from a DAAP share. The song is streamed from the DAAP server, proxied over HTTP to GStreamer, and transcoded on the fly.

I should have server support in HEAD today or tomorrow. And lastly, a big thanks to snorp for his awesome work on daap-sharp.

DAAP Login Dialog

It’s a little hard to show a screenshot of a DAAP client…

Automated Cover Art Fetching and Metadata Supplementing

This has been a highly requested feature, and is now implemented as a plugin. If enabled, the plugin will scan your library and search for cover art and supplementary metadata using MusicBrainz. When new tracks are added to the library, they are added to the processing queue for scanning.

The plugin has three modes:

  • Fetch covers only: this mode is the fastest as it will only perform one lookup per album. However, it does not attempt to correct or supplement metadata
  • Fetch covers and fill in missing metadata: This will fetch covers on a track-by-track basis, so it is much slower than the first method, but it will also fill in missing fields (for instance, you are missing track names, counts, etc.)
  • Fetch covers and overwrite existing metadata: Same as the previous, but it will overwrite all fields with metadata returned from the server. While this is excellent most of the time, there is a chance that the server will return an inaccurate result, which can totally screw up your tracks.

The default mode is to fetch only cover art.

Audioscrobbler

A big thanks to toshok, who a few weeks ago wrote basic Audioscrobbler support, which was abstracted enough to finally make me bite the bullet and add proper plugin support. The timing was perfect as I had already been reorganizing much of the codebase. After a light refactor on the plugin entry point and some cooking of a basic account/configuration dialog, we have Audioscrobbler support! Also a big thanks to Ruben Vermeersch, who submitted a nice queue saving/restoring patch, so it works in offline (or broken server) mode too.

Audioscrobbler Account Dialog

File System Monitoring

A few months ago, Doğacan Güney wrote file system monitoring for Banshee, which adds new songs to the library that are added to the music directory and removes songs from the library that are removed from the file system. I have refactored this code a bit to take advantage of new library features in the core, and work with the new plugin system. It tries to use Inotify first, and then falls back on FAM.

Other non-plugin stuff

About a month ago I added some gedit-esq notification for Audio CD metadata searching. It reports the status of the lookup, whether or not a lookup was possible or failed, or if you are offline (as reported by NetworkManager, if available). If the lookup failed, timed out, etc, there is an option to manually refresh. However, it will automatically refresh if NetworkManager reports a connection is available.

No CD results found

Finally, I added a nice “tooltip” to the tray icon. I’ll probably be flamed for it though. Say what you will, I find it incredibly useful.

Tray Tooltip

If you want more candy, view the scratch pad of recent screenshots.

So that’s the update for now… I will make the 0.10.3 release by the end of this week. Oh yeah, EXCELLENT news about FC5+Mono!

[1] Quote from Brad. It also needs to be available with the almighty lever.