Monday, July 7. 2008Wanted: Portable Media Devices
So iPod support should be pretty well set by this next weekend, and the next thing on my list is support for MTP devices.
So, what's an MTP device? MTP = Media Transfer Protocol, a protocol Microsoft came up with for media devices. Examples of devices that use it? Pretty much every Creative Zen, iRiver, Samsung and Sandisk media device you can think of, which is why the support for these devices is so important. But I'm at an impasse, since I don't actually have any of these devices. The lack of devices is actually a pretty common issue for the Amarok project, which is where we come to you =). If you have access to a media device which you can donate for development , please let the Amarok team know at: amarok-device-donation@emailgoeshere.com. A list of devices that the project is looking for is available here. This will ensure that the people with these devices are happy people when Amarok 2 rolls around. Of particular urgency to the 2.0 release is the need for an MTP device (see list of MTP devices: here) Any of those devices will be a great help. And, once I have one of those devices in hand and support starts rolling out, I ask anyone who has an MTP device to check out a copy of Amarok 2 from your friendly neighborhood svn server to help me test things out and make support be good (see: here) Lastly, thanks in advance to all of you! Ipod Collections Visible
As predicted would be done by today, Ipod collections are now visible in Amarok 2 if an iPod is plugged in at Amarok 2 loadtime. I'll add signal/slot stuff so that you can plug in later at a later time. Songs are playable, but track information edit attempts crash amarok, and it's hanging on exit probably due to some voodoo static_cast that I'm using. Instead of the 30-90 seconds of Amarok 1.4 freezing loading my ipod, this takes less than 1 second and freezes nothing. Anyway, screenshots:
![]() ![]() As you can see, UTF8 support is there, although there's some funky business with Album grouping atm but I'll get to that. There's a long series of known bugs right now, so please don't bother me just yet with them as they're mostly obvious ones =p This is a big milestone for me, as I can start to see that what I'm doing is quite possible. Still a long road ahead, but we're on our way. Getting Close to Displaying Collection
Back! A week of finals and a week of vacation later, here I am.
Set back by that, and git-svn losing my code, I'm still on a fairly good track. I don't think anyone really gets how dense the legacy Ipod code is except for Max, but it's a beast. In the end I won't be needing most of it, but it's hard to tell before checking it all. I've gotten an itdb (itunes database struct) to read the ipod and parse the songlist just now, though I'm still at a loss for figuring out when to initialize or not, or even why we need initialize, but I'll get to that later. The bottom line is, that it's just a matter of using this info to fill in the Meta data and get a collection displaying! =D Nikolaj recommended that I set up a separate MediaBrowser KVBox-based singlecollectiontreeview thing for testing, which I'm not all too sure how to do, but I'll just rip some code out of the servicebrowser probably. For my own purposes, I'll keep it in the collection view for a bit longer. Hopefully my next blog will show a screenshot of an IpodCollection being displayed. MediaDevice vs. MediaDeviceCollection
So I'm running into a wall at the moment. The code for recognizing a device, initializing it, and doing any kind of transaction with it, is already there in MediaDevice, its subclasses, and MediaBrowser.
The idea of creating a MediaDeviceCollection was to benefit from a unified way of fetching and displaying information about a given group of music files. The MediaBrowser does more than this, and deals with specific media device interactions (like connect, disconnect, device-specific actions). So why bother using a collection here at all? A week later... not much done...
A combination of school/life/compile issues have meant that I haven't done a lot. I added libgpod as an optional package to Amarok, and started to play around using the MediaDeviceCache in the MediaDeviceCollection but still haven't figured out how to get it to be run by Amarok automatically like Daap, so still a ways to go before I get something semi-functional.
I've decided I'm probably tossing out a lot of the old media device code, as it's being superceded by Meta and Collection stuff, and I have a feeling the ipod-specific code will be going away as well (that file is a nightmare =p ). The MediaBrowser was a good idea, but its code almost makes me want to cry, yet I'm still trying to figure out what to do on that. But all that needs to be done now is a simple collection showing songs so I have something real to begin with. After next week school ends, and more hacking can begin! =D First Day of Coding
Finally got my environment set up a few days ago, turns out Qt was compiled with some very strange flags and it was having a ripple effect on kdelibs. I was gone last weekend in Berkeley and had some school stuff to catch up on, but I did get a bit started at least.
I started looking into collections, and I ripped off the Daap directory, ripped out the Daap references and replaced it with MediaDevice and now I have a new toy to play with =). There's a lot of things that aren't commented on too much, like Observer in MetaBase, but I'm sure it'll make sense with a bit more time. Other than that, making a collection seems pretty straightforward (albeit involved). I'm trying to find a balance between studying the MediaDevice code and Collection code since I'll have to end up using both, but since I'm going to be using both in related ways there doesn't seem to be a way around this. Either way, I hope I get my first real commit sometime next week (this week is going to be a bit involved with schoolwork as well). Media Device Support for Amarok 2 in Google's Summer of Code
It looks like I'll be the one bringing media devices back for the next major version of Amarok.
![]() Looks awesome so far right? Well there's still a lot missing, and media device support is part of that. My job is going to be adding iPod, MTP, and generic device support. Over the next many many weeks, I'm going to try to keep track of what I'm doing here, but I don't promise anything too exciting non-technically speaking =p Status Report: I've looked into the MediaDeviceCache stuff that interfaces with Solid, KDE 4's backend for hardware recognition, and it's amazingly simple. Solid code is beautiful and easy to read, I like =). I started looking into MediaDevicePluginManager but haven't gotten too deep into it yet. One of the ultimate goals of this project is to implement a Collection class, tentatively called MediaDeviceCollection, which will let songs on a media device get all the advantages of any other Collection, and I believe a few more that are specific to media devices (e.g. sync'ing of music, artwork). I haven't made progress there yet because I'm still working on the previous stuff, but it's on the backburner. Hopefully I'll have a more concrete idea of how that'll work after some more discussion with other devs. In other news, my laptop has arrived! So I'll spend a good part of this weekend setting it up for development.
KDE4 on Gentoo![]() After weeks of trying to get to setting up a KDE4 development environment for Amarok, success is finally at my door =D. First Kubuntu and kdesvn-build needing every dependency imaginable and building issues, then Gentoo and the broken qt-4.4 ebuilds, but a combination of kdesvn-build and manually building Amarok has finally granted me my dream. For a higher quality version, download from here(note: .ogv file) : http://www.filesend.net/download.php?f=03f4722730dfa9115d143701fd0d3db1 For an avi version (lesser quality a bit) : http://www.filesend.net/download.php?f=bdbe2dcd1626b6aa2f3ab5d78888bcae KDE4 on OS X 10.4![]() (From left to right: Konqueror, KPatience, KStars) So it turns out KDE4 isn't just being ported to Windows, but Mac as well (universal binaries, both PPC and x86). It runs slow for now, and a lot of stuff doesn't work, but the games and education programs work alright. Very exciting stuff. Soon as Konqueror and Amarok 2 start working properly it'll be a happy day for OS X users, or... not. The new Konqueror will be using Webkit (Safari's engine, which itself is based on KHTML, Konqueror's current engine), and iTunes will likely run faster than Amarok. But at least tech demos can be done natively... all the easier to then lure people to an FOSS system =) Packages available at:http://techbase.kde.org/index.php?title=Projects/KDE_on_Mac_OS_X#Installation
Firefox's Gecko vs. KHTML and Webkit
Firefox has a large user and developer base which has led to its wide circulation and varied plugins, but some things are hurting. The Gecko rendering engine pales in comparison to Konqueror's KHTML and Safari's Webkit. The same pages take up to about 3x as long to render in Gecko. While KHTML has issues rendering Google-related things such as Gmail and Google documents, Webkit shows no such failure and will become Konqueror's new engine soon. Plugins aside, once Konqueror from KDE 4 becomes a standard, the developer community around it should expand and Firefox will begin to see a big run for its money.
On Macintosh OS 10.4, Firefox not only takes roughly 5-10x as long to load as Safari but eats up resources substantially. At one point, when not loading any videos and with 4 tabs open, Firefox was eating 40-60% of cpu time and my fans were blaring. One minute after closing it, the machine's responsiveness picked up and the fans slowed to a near halt. On Gentoo, Konqueror also loads significantly faster than Firefox, and Firefox is there also a proc/memory hog. Recently I tested Firefox 3 beta on Kubuntu Hardy and I have to say, it's not getting any faster and actually I can notice a further slowdown. If Mozilla doesn't do something soon, it might find itself losing favor in the community.
Kubuntu PPC
After some painstaking efforts, I got Kubuntu running on my PPC Powerbook G4 a few months ago, and recently upgraded to Hardy. After 7.04 or so, Ubuntu stopped officially supporting the PPC platform and it really is starting to show. Configuration and installation issues aside, the computer runs hot, the fans are always blaring, and the speed is remarkably slow. These are probably the result of the kernel using non-specific drivers, the lack of a PPC nVidia driver that isn't terrible, and generic configuration without any real testing.
I don't really like OS X, but given that I can't get an x86-based laptop any time soon, I was hoping to run Linux on PPC but it seems I'm barking up the wrong tree. Gentoo is out of the question given the struggle this poor old processor goes through compiling the smallest of things. Linux is a good alternative, but perhaps the PPC world isn't a good place to be. Weekly Update: Unhidden Biases
Now that dynamic playlists are working, what's missing is a way to actually use them. That's what most of this weeks work went towards.
In Amarok 1, dynamic playlists are one of those great hidden features. They are terrifically powerful and usefull, but a lot casual users don't know about them, or just don't understand how to use them. I had been using Amarok for a while before I discovered them. One of the problems I've been working on is how to present Amarok 2.0 dynamic playlists in a way in which it's more or less obvious what they do. I want it to be an exhibitionist feature, with the functionality all exposed and out in the open, no dialog boxes or menu hierarchies. This week I spent some quality time working on the bias editor (and reminding myself why I don't like gui programming). Since every blog post needs a picture, here's the latest version of the bias editor from just a few minutes ago (not even in svn yet). It's a bit rough arround the edges, but comming along nicely. ![]() That screenshot is slightly faked, but in the next few days the bias editor will start to become functional. I'm pretty excited to see my work actually usable. I also did some important work behind the scenes. This sort of playlist generation can't really be done efficiently in general (it's an NP-hard problem). If you give it a really tough set of biases, it won't break down or freeze up, but it may give you playlist that isn't perfect. Making the solver work well is a matter of heuristics, trial and error, and tweaking. I did a little of that this week, but the real testing and tweaking will happen when the bias editor is up and running. I'll be back here in a week, hopefully demonstrating how to use the new dynamic playlists. New Belgian BeersAs a Missourian and a person who thinks Belgium makes some of the best beer in the world, I've been following the story about the possible take over of Anheuser-Busch by Belgium beer-producer InBev with some interest. Personally I kind of want it to go through: it would hopefully mean the end of American beer being judged by its most tasteless examples. There is some good beer produced here. I think people would look at things differently if Bud Light becomes a Belgian beer. It would also be very ironic and funny, which is mostly why I hope the deal will go through. The article notes that "The takeover attempt has also run into a political backlash, as Anheuser-Busch, based in St. Louis, is an American icon. Senator Claire McCaskill, Democrat of Missouri, has vowed to stop the deal." Which got me thinking: I would personally find it hilarious if people in Belgium started rallying against this deal due to the damage to their national pride from having their corporations promote products like Bud Light. Any Belgian folks out there feel like writing their MPs?
(Page 1 of 1, totaling 13 entries)
|
Amarok LinksCalendarQuicksearchArchivesCategoriesSyndicate This BlogBlog Administration |

