So yesterday I was quite convinced that I was going to make it down to see the Chicago Air and Water Show, hoping I could see the Thunderbirds. Well lets just say that we got water alright. I stood out in the rain for well over an hour hoping to see something, but it turns out that they cancelled much (if not all of it). I came home soaked to the bone, but I had been smart enough to put all the electronics in my bad inside a spare plastic bag — or had I?
Last night I was unpacking my bag and found my Creative Zen Micro down at the bottom of the bag. It was a sad sight. I might as well have just gone for a swim in the lake while I was at it, because it was dripping, and I could see water inside the screen. Tonight, with the help of this handy article at hardwarezone.com, I took it apart and found what I expected — pools of water inside the device. I’m hopeful that I can pull the ole “let it dry, reassemble and it’ll work” game, but I’m doubtful.
Does anyone have an old/spare MTP device that they’d be willing to donate or provide cheaply so I can work on MTP stuff for Banshee? I’m going to comb eBay of course, but would be happy to take one off someone’s hands if they have a spare. I don’t really have the cash or need these days to buy anything new. If you have one, drop me a line!
In the mean time, I guess I’ll just have to write really clean code for Banshee that works perfectly, right? ;)
Wowzers, what a great time! Was intending to write about each day individually, but that’s certainly out of the question now. GUADEC was a great experience and I’m hooked on the community! A big thanks to everyone who helped put GUADEC ‘07 together.
My favorite bits:
- Staying at the hostel. It was a helluva long walk and really sucked on the rainy days, but it was a new experience. Forced random strangers to hang out and I met some cool people. Wish I would’ve gotten the names of the two guys running the hostel; they were very laid back.
- There were some killer keynotes; most importantly:
- Alex’s presentation of PyroDesktop. I don’t take much stock in the comments of folks who don’t like this technology. It’s something we’ve never seen before, and I think the coolest part is the potential to draw a new crowd of developers to the desktop! Alex, Chris & company: keep up the good work!
- Havoc and Bryan’s presentation of the Gnome Online Desktop. Super sweet guys. Everyone loves integration. Now, lets see it happen!
- Doc Searls’ closing keynote. Doc is a funny man. “Now bend over and give me some content!”
- And my favorite sessions:
- Larry’s presentation of F-Spot and the next wave of development. F-Spot rocks!
- Telepathy and Tubes. You’ve heard the raves of others; I don’t need to spell it out here.
- Joe’s presentation on Beagle and metadata joyfulness. Joe is a funny man.
- Kudos to Jimmy K for holding his own during his talk on the new main menu development.
- The Geodata standards project — creating a totally free database of mapping information. Cool!
- The Walkabout. What a great bar.
Many thanks to all the folks who made going out and drinking absolutely hilarious, including Gabriel, Aaron, Michael, Aiden, Rodney, Toms, any anyone else I’ve missed!
Yes, that’s a VIM :w (not some new fangled creation), as in, I’m actually writing something here!
I haven’t written in three months, and haven’t committed any code in four…as I’ve been a bit distracted by a few things, notably:
- That whole job thing. Turns out when you write code 8 - 10 hours a day it drains the coding life out of you. Am still working on overcoming my hate for coding past 8PM. I’m convinced that gedit/vim silently rearrange my code after 8PM so that it has more compilation errors, driving me to stop coding.
- Perhaps it’s the immense rage caused by running Lotus Notes 5 (under Wine, no doubt!)
- Perhaps it’s the fact that PHP likes to silently fail or cause strange errors?
- Perhaps it’s that I _loathe_ bad management. Yes, that’s it. I might just be a young twenty-something kid but seriously, I know leadership & management and some folks “upstairs” don’t have their shit together. Good thing I work in a kick ass IT department!
- Cycling season is finally here. Finally. Gotta love that good ‘ol mid-western weather for keeping me indoors for so long! Started riding 50 miles/week, then ramped up to 75/week, and then last week jumped right up to 145 in a week (which is hurting right now). Just shy of 500 miles for the year so far; not bad considering I’ve got another 10-12 weeks of good weather and 1,000 miles left toward my goal.
- Being goofy. Yes, I’m a goof.
- Kicking some serious ass in the IT department’s completely unofficial but incredibly serious(ish) mini golf tournament. It’s an intense sport I tell you.
- The fact that bars in Chicago are open till 4 in the morning — enough said. This is simply trouble for a guy like me!
- My truck has been in the shop more hours than I’ve driven it. I’m giving up — I am going to sell it; I don’t need it anymore!
I’ve been up to a few interesting things lately:
- Setting up my own shiny new Linode to host vanstaveren.us stuff (websites, email). Exim + Dovecot makes for one heck of a good email server. I should probably write about Dovecot as it’s pretty swift, not too challenging to set up, and the LDA makes it even better. Cooperates much better than my old host’s IMAP server. Don’t ever consider 1and1 for any kind of hosting unless you like server load averages in the double digits, spiking up to 50+
- Thanks Aaron for pointing me to Linode!
- Trying, oh so hard, to make my Nokia 770 listen to a simple Ogg Vorbis stream (or even a file). No seriously, I think I’ve spent quite a few hours on this, and I can’t get it to work. I’m getting near ready to re-flash it and start over I’m so distraught. Isn’t Ogg Vorbis one of those things that Just Works on a modern Linux machine?
- I’ve set up my own rsync mirroring system for Gentoo’s Portage tree. My Linode box (sam) sync’s every night, my server here at home sync’s from that, and my other three boxes (including my box at work, behind a firewall, over my VPN) sync from there. Think how much traffic Gentoo users could save their mirrors if they only had a similar setup!
- I’m finally — yes, it’s true — starting to work on Banshee again, working on MTP stuff. I’m going to be traveling in a month and my goal by then is to be able to send tunes and playlists to my device with zero trouble.
- I’m planning to go to GUADEC; this will be my first, and hopefully a lot of fun! Hopefully while there I can gather up a bit more motivation to get back to writing a bit more code :) I’ll also be visiting my job’s London office the following week. All in all it’ll be a sweet trip! If anyone is looking to split a room in a hotel, please drop me a message — I’m certainly looking for a roomate!
Howdy folks,
The guide that used to be at http://tricky.vanstaveren.us/Projects/Open_Source/Banshee/MTP has now been moved to the Banshee wiki at http://www.banshee-project.org/Guide/DAPs/MTP. All the subpages have been moved accordingly. My site has all the pages set to forward to the Banshee site, so update your bookmarks now :)
MTP progress has been busy as of late and with the recent release of libgphoto2-sharp 2.3.0, I’ve seen quite a few people trying to get their MTP devices working with Banshee and I’ve also been busy writing a lot of code. Hopefully in the next few days I can tie up a few things and commit my local changes which include playlist support - yes folks, full playlist support. It’s still a bit buggy tho, so I need a few more days to hack at it :)
libgphoto2-2.3.1 was released this past weekend, be sure to grab it for optimal MTP use! It has a new hack to increase initialization times by factors between 10 and 100 times because of sped up metadata reading. Naturally, this is hella-good :)
After an age or two of waiting, pondering over licensing issues, and doing bits of maintenance here and there, the Mono/.NET bindings for libgphoto2 have now been released!
One can now play with libgphoto2 compatible devices out of a Mono application. Why is this important? Because Banshee likes DAP’s (Digital Audio Players), and uses this library to access MTP (Media Transfer Protocol) compatible devices. It brings us one step closer to having good, clean, easy-to-use MTP access on your open-source box.
If you have one of these MTP devices and want to know more about how to access your device with Banshee, read my guide!
A big thanks to Larry Ewing of the excellent F-Spot project for licensing the original copy of libgphoto2-sharp under the LGPL; without this, I’d be lost.
Last night the addition of MTP support to Banshee landed in CVS HEAD. Yes, ladies and gentlemen, it’s true! The days of command line interfaces for your snazzy new Creative, iRiver, etc. player are nearly over. All you have to do is TRY IT! Just grab Banshee from CVS and run autogen.sh with the –enable-mtp flag. Oh and yes, be sure you’re running libgphoto2 from SVN trunk with the C# bindings installed. It’s that easy! I’ll be publishing more “how to get started” docs soon.

Yes, your Creative Zen Micro (or other supported MTP player), is ready for use.
Bug reports, feedback, suggestions, hate mail should be either filed on the GNOME Bugzilla under product Banshee, component MTP, or emailed to me.

So on Monday, Marcus over in the gphoto2 development land committed a monster patch giving MTP Metadata support to libgphoto2. I’ve been waiting for this patch to land so that I can pipe that information thru to Banshee MTP support, and I’ve got it :)
Screenshots will follow, but as of now, I can plug in my Zen, view a list of the tracks on it including many details (stuff like bitrate and format doesn’t work just yet), I can drag and drop any number of tracks in any format that Banshee’s transcoding engine works with, and synchronize at the push of a button, and the rest is taken care of. The sync works like a charm!
Gphoto has proven to be a very reliable library, and I will continue to implement more extensions of it into Banshee. Some of the finer points, such as disk space, battery level, and time sync have not been implemented because they aren’t exposed in the ptp camlib, but I’m sure that it will come soon :) I also haven’t finished track deleting support as the C# bindings that I’ve been using from f-spot don’t contain a delete method. This will get done :)
Many thanks to the folks over at gphoto for all their work! If you have a MTP device and have been waiting for a nice GUI to take care of transferring tracks, wait just a little longer, as it’ll be in Banshee CVS soon :)
So, I finally got it working over the weekend :)
Marcus is a genius, and it turns out that libgphoto2 has mass-storage device detection support which just so happens to touch HAL in just the right way that it screws up banshee’s HAL device pointer. I haven’t taken the time to debug this, but it starts working when I remove the disk.so library from libgphoto2_port. SO…for the time being, it’s starting to work :)
Since we don’t have track metadata yet, everything is associated by Title=filename and Artist=foldername…but it is working :) Track write support works like a charm - and once libgphoto2 is ready to transfer metadata with it, I’ll make a release for folks to test things out with :)
…or lack thereof. I’ve hit a few walls with things, and been struggling to find the energy to debug them.
libgphoto2 has proven to probably be the best choice for interfacing with MTP devices, but it’s holding a few issues right now that have slowed me down immensely…
- Metadata. Marcus is working on this, but I don’t have the ability to read it yet, and write support is more just a figment of my imagination right now. Seeing that libgphoto2 is so advanced, the code for it is way over my head and I’ve been just kindly pestering Marcus as he works on things, and he actually went out and bought himself a Zen as well for debugging and testing. Marcus has been my hero lately and has made some great progress!
- HAL issues with banshee and libgphoto2. I’m having trouble even figuring out where to debug this one. It seems that when I call libgphoto2’s camera detection routine, HAL must go on the flip…because when I get to the device initialization, the HAL pointer is stale and returns -1 for everything. All my attempts to hack past this (running detect after HAL validation, not running the detection routine, etc) have failed…I think it’s time to figure out what’s happening. Maybe banshee just needs to refresh it’s HAL information between creating the device class and calling it’s initialize? I don’t know, and I’m not familiar with the code enough to really know what I’m talking about.
So…I guess it’s been just a bit of a bummer lately b/c I feel like I’m stuck. libmtp worked in it’s own special way, but has proven to be under heavy development and hasn’t reached any of the maturity that libgphoto2 has, but libmtp did work. Makes me wonder if I should give it another shot…but…the gphoto developers have been so helpful and I know they’ll get it all working in the end. Argh!