October 23rd, 2008 |
Published in
Code, Technology
I got a G1 today.
That deserves a post unto itself, but I wanted to share a solution an annoying issue regarding switching from Verizon to T-Mobile. Before I got the G1 I had a LG-VX9800 (yes, ancient, I know) with around 200 contacts. Obviously one of the first things I wanted to do when I got my G1 was transfer all my contacts from the LG to the G1. There are several ways to do this
- Go to a Verizon store and pay $10 for data backup
- Buy a USB Cable for the LG-VX9800, and use bitpim
- Manually copy (type) your contacts into the G1/Gmail
- Use my method
There was no way I was going to pay $10 for what should be a simple “Export,” so #1 was crossed out. I’m impatient and didn’t want to wait for a cable to be delivered and neither did I want to pay the money for one. There goes #2. I didn’t even consider #3; I just listed it for completeness sake.
That leaves my somewhat difficult and unreliable method. Basically, what I do is use Verizon’s “Backup Assistant” tool to send my contacts to Verizon’s website. Then I save the source of the “Print Contacts” page – because there is no export feature. With a little ruby I parse the file into Gmail’s CSV format and import the file via the Gmail contacts page.
Here’s a quick howto.
- On your Verizon phone go to “Get Going -> Get a New App -> Backup Assistant” and install it for $1.50 a month.
- Follow the prompts and backup your contacts.
- Go to the Verizon backup website and sign in.
- View your contacts and click the “Print Contacts” link. Save the source of this page to a file
- Download this script and run it against the saved html file. Save the output in “contacts.csv”
- Go to the Contacts page in Gmail and select Import, and upload “contacts.csv” Note: I suggest using the “add these imported contacts to” a new group feature. Because you will likely have to merge and cleanup the imported contacts.
- Import and Enjoy
IMPORTANT: My script only grabs the following information from the Verizon contact list: Name, Email, Work Phone, Mobile Phone, and Home Phone.
September 18th, 2008 |
Published in
Code, Technology
If there was a blogger award for “Most likely to make timely posts”, then in no possible world would I even be considered for the award. I could list some excuses that sound legit in my head, but the real reason I don’t feel motivated to post often (or on time) is because I’d rather spend that time in Google Reader reading everyone else’s exciting content (that was not sarcastic).
So, lets see… last time I posted I was en route to Akademy 2008 (the KDE developers conference). That was July 30th, now, a month and a half later I am back from Europe (which was amazing), GSoC is over (sad), and class has started (jury’s still out).
Current Status of the MP3tunes Amarok Service
The Good (Works)
- Browsing & Streaming
- Querymaker is as functional as possible with the current API
- Manual Downloading from MP3tunes to Local Collection
- Manual Uploading from any Collection to MP3tunes
The Bad (Doesn’t work)
- AutoSync – 80%- The code is there, however there are problems with the daemon not receiving signals from the MP3tunes’ servers
- MP3tunes playlists support – 0%- Never got started on this
The Ugly
There is one large issue I am still wrestling with. The details of the issue are complicated, but essentially it deals with the way Amarok handles remote tracks in playlists across sessions. Generally, remote tracks’ metadata isn’t cached by Amarok for use between multiple sessions. So, if you add an mp3tunes track to a playlist in Amarok, then restart Amarok and try to play that playlist the mp3tunes track is blank. Now, there exists a method for retrieving that metadata, however it was originally implemented synchronously. When you are retrieving metadata for any significant number of tracks (10+) synchronously, and each one of those retreivals is an HTTP Get request you end up blocking the GUI thread. At Akademy I hacked a way to do this asynchronously, but it is a really nasty hack. I’ve got code on my computer that implements this feature correctly, but it has the nasty habit of crashing Amarok every so often.
Between classes, marching band, homework, and other responsibilities I’m working on getting this ironed out and committed. Hopefully this will happen before the 2.0 release, because right now using MP3tunes in Amarok across sessions is slow and annoying.
July 30th, 2008 |
Published in
Life, Technology
The ball has been dropped by me – dropped hard – during the past several weeks. First, I was stumped for a week and a half by the glib+qt fiasco, then my development machine’s hard drive shuffled off the mortal coil. Replacing it took a solid week, and when it finally arrived I installed Gentoo. Two days later, the finally install completes as I’m frantically throwing my life’s possessions into a car:
- clothes
- 2 laptops
- 1 Target desk (retail $50)
- assorted books
- 1 blow-up air mattress
Fast forward through seven hours of me hurtling down the interstate at not-so-safe velocities, and here I am, pardoning my recent idleness as my flight to Paris boards at gate D32. Not accomplishing much over the past several weeks suddenly doesn’t seem so bad: I’m going to Europe! There is a week long hack-a-thon at Akademy; I’ll catch up then.

A bientôt!
July 17th, 2008 |
Published in
Code, Technology
I’ve been slacking on the update reports over the past two weeks, because I’m holding out for the exciting post where I say “MP3tunes AutoSync is working! Huzzah!” Sadly, this report isn’t that one.
For the past week I’ve been banging my head against the wall of glib, QtEventLoop, and QThreads. I have quite a headache to say the least, but yesterday thanks to my mentor and Ian, both Amarok developers, my head actually broke through that wall. Literally. GLIB, and Qt are kowtowing at my feet swearing oaths of fealty. They have promised to work together and let me get back to doing fun things, like code new features.
June 24th, 2008 |
Published in
Code, Technology
Total Commits: 84 Weekly Commits: 36
Starting these posts with “It was another busy week..” is starting to get boring; I’ll cook up something more exciting for next week.
In case you missed it, in the past seven days history has been made. I’ll let that stand in as the bulk of my weekly report, but a few worthwhile things have occurred since then that deserve a mention.
Remote Track Upload – You can now sideload tracks to your MP3tunes collection from remote sources in Amarok. What the heck is sideload and what remote sources you ask? Sideload is a feature of the MP3tunes API that allows for server-to-server transfers. This means you can give your Locker a URL to a track, and it will automatically be downloaded into your Locker. Currently Amarok sports three services with remote collections that are sideloadable to MP3tunes: Ampache, Magnatune, and Jamendo. This method of transferring is generally very fast, because the transfer bypasses your slow internet connection.
Upload Progress Bar – When you upload (or sideload) tracks to MP3tunes there is now a simple status bar to let you know how far along in the process you are.
Non-Supported Track Filtering – This one is simple: If you try and upload a file-type that MP3tunes doesn’t support, Amarok will tell you and stop that track from being transferred.
- Work on allowing MP3tunes tracks to persist after a restart.
- Flesh out the synchronization system: what it’s going to do, and how it’s going to do it.
- Design any UI widgets needed for the syncing system
The first one will be simple, in fact I plan to code it up after writing this report. These second and third tasks, however, signify that I’m moving into the last stage of the project. According to my original proposal I am ahead by a week, so I’ll be using this week as extra time to plan and get a jump-start on the synchronization framework.