Tuesday, June 17. 2008
Mp3tunes GSoC project status Posted by Nikolaj Hald Nielsen
in freespirit at
20:25
Comments (0) Trackbacks (0) Mp3tunes GSoC project status
This summer, I am mentoring Google summer of Code student Casey Link ( aka Ramblurr on IRC ). Casey is working on improving the Mp3Tunes service in Amarok 2, updating it to use Mp3Tunes brand new GPL C lib instead of using their REST API directly, allowing up and download of music, and finally complete automatic synchronization of content.
Casey has been blogging a weekly progress report detailing the work he has done. As his blog is ( not yet ) on planetkde, I thought I would post the links to his first 3 reports here: GSoC Report - Week 1 GSoC Report Week 2: libmp3tunes goodness GSoC Report Week 3: Tanstaafl Overall I am very pleased with Casey's progress. He has approached his project with great enthusiasm and has already committed a lot of working code. I just hope he does not end up completely reversing his daily rhythm because he has a European mentor in a very different time zone! Tuesday, June 17. 2008GSoC Report Week 3: TanstaaflProject: MP3tunes + Amarok IntegrationTotal Commits: 51 Weekly Commits: 12 Past 7 DaysIt was another productive week in #amarok with over 150 commits! In the 12 of those that were mine I managed to do several things.
Of course, implementing those items wasn’t as simple as it sounds, but the features are essential and basic. The search box (filtering) could use some improvement as currently it only filters via the artist field, but that is a limitation of the MP3tunes API. When I say it Interjection: Major props to my GSoC mentor, Nikolaj, for attempting to explain various parts of Amarok’s innards to me, not only once, but the several times it took to get the concepts through my thick skull. Also, he’s helped me track down several childish mistakes I’ve made when I was at my wits end trying to locate them. I can’t thank him enough. Hands down he’s the best GSoC mentor. With the addition of “Copy to Collection” Amarok has taken a large step towards being fully integrated with MP3tunes. Up till this week all you could do was browse and stream your MP3tunes Locker. That is fine and dandy, but you could do that from the MP3tunes web player, their mobile player, your PS3, or any other number of their supported devices. However, none of those options allow you to seamlessly download and organize your stored music into your local music collection at the click of a button. There is one shortcoming that needs to be addressed at some point before I’m satisfied: there is no progress indicator of any kind when you download tracks. The only way to see if tracks are being downloaded after you press Go is to watch the destination directory for changes. Thankfully this affects all collections you can “copy to/from”, not just MP3tunes, so perhaps someone else will feel inclined to whip up a progress indicator. There’s no such thing as a free lunch. Upcoming 7 Days:I have one big goal this week:
By Monday next week, you will be able to do Copy tracks from your local collection, Ampache collection, and the Magnatune database, to your MP3tunes locker.
There is quite a bit of work to be done before this can happen, but I will spare you the gritty implementation details until next week after I’ve committed the code where my mouth is (?). Of course my weekly predictions wouldn’t be complete without a task to fall back on if I happen to complete the aforementioned task in a Ballmer-Fueled rage. After upload is in place there is only one major item left: Syncing. I need to break “Syncing” into manageable actionables (quite a term, eh?) and then lay out some mid-level designs for the process. Later on during the week I will dedicate an entire post to this topic. Monday, June 16. 2008What a Sunday?Whoa what a ride The Amarok bugday was a blast. Thank you everyone who took part. And an even bigger thank you to those who are still hugging the beasties. YOU ROCK! The goal of flooding my inbox with bugmail has been reached Kubuntu tutorials day went very well. To my surprise I got the honour to pitch in for nixternal since he couldn’t make it. Thanks nixternal; also for the notes Lots of love for my little FolderView intro. I didn’t expect that to be honest. But it is nice to see that more and more people realise what a powerful and beautiful tool they will be given with KDE 4. In the comments I was asked to show screenshots of the menu of FolderView. Since this was not implemented in time for KDE 4.1 Beta 1, which I am using right now, I couldn’t provide them. But fear not. Yours Truly asked and was given Sunday, June 15. 2008
Return of the playlist browser Posted by Nikolaj Hald Nielsen
in freespirit at
09:16
Comments (10) Trackbacks (0) Return of the playlist browser
One of the key pieces still missing from Amarok 2 has long been a usable playlist browser.
So last weekend, as my girlfriend was busy studying for an exam anyway ( how come I always seem to get so much code done when she has exams? ) I decided to do something really simple that would fulfill my own immediate use cases, and still be flexible enough for expanding on later. We had previously discussed that we wanted Amarok 2 to keep its own playlist in the database, as this would allow us to easily tailor the way we store them to our needs. Of course, it should also be possible to import and export playlists from files. So after 2 days of intense hacking, and a little cleanup over the last week or so, we now have a simple playlist browser that supports arbitrary grouping through virtual "folders" that can be created and organized, using drag and drop, anyway the user likes. So here is the obligatory screenshot: Below the main playlist area to the right, there are now two "save" buttons, a save and an export ( I need to find a better icon for one of them ). The export button does what the save button previously did, it saves the playlist to an external file, while the save button now adds the playlist to the playlist browser and starts a rename operation so the user can quickly give it a sane name. In time, this playlist browser will be expanded to show playlists from media devices and potentially many other places, but for now, it works great despite being very simple. Saturday, June 14. 2008
FolderView is the awesome?! [updated] Posted by Lydia Pintscher
in Nightrose at
16:30
Comment (1) Trackbacks (0) FolderView is the awesome?! [updated]So there has been a lot of confusion about the KDE 4 desktop and FolderView lately and some nasty stuff I don’t want to go into right now. In the comments to Aaron’s blog someone said they don’t see how exactly it will be better and help them be more productive. So let me show you it For those who don’t know about FolderView: It is a Plasmoid you can add to your desktop in KDE 4 to show files. It can also be used to emulate the “normal” desktop (for those who really really want it) but let me show you a few more very nifty things you can do with it. This screenshot shows my self made todo plasmoid. I have a ~/tmp folder where I throw in all the stuff that is, well, temporary. This stuff needs to be moved somewhere else and I was just too lazy to do it right away or is stuff I need to look at and that can be deleted afterwards. And there are also a few TODO files in there that need my attention. So Plasma to the rescue! I created a FolderView that shows the content of my tmp folder and (here comes the nifty) filters it to only show me the stuff I really care about. Which is files with TODO in the filename. But what about this cool thing: In KDE we have KIO and it is just fantastic. And of course you can also use KIO in FolderView and show all kinds of remote folders right on your desktop. Here it shows the folders that keep my irc logs on the server my irssi is running on. And here some files on my ftp server: And of course you can also show something totally boring like my home folder I hope this shows how powerful this already is now. Get creative people! There is a lot of nifty ahead of us How are you going to use FolderView? And before someone asks: You will be able to use it just like a “normal” desktop. UPDATE: Daniel, the SoC student working on Nepomuk integration in Amarok, just send me this: Sweetness :) (It is still a work in progress and therefore in Playground.) Wednesday, June 11. 2008
Hug the beasties! and Kubuntu ... Posted by Lydia Pintscher
in Nightrose at
12:24
Comments (0) Trackbacks (0) Hug the beasties! and Kubuntu tutorials dayAmarok bugs, here we come again! We are going to have a bugday with the KDE BugSquad on Sunday. The goal is to clean up a little and close a lot of bugs for Amarok 1. If you ever wanted to contribute to Amarok or KDE in general this is the right time to start. Join us in #kde-bugs. We will start at 0:00 UTC and go on all Sunday in all time zones. Members of KDE BugSquad and Amarokers will be around to answer your questions and help. All you need is a working Amarok 1.4.9.1 and preferably Amarok 2. For more information check the wiki page. Let’s hug the beasties Don’t forget to join us for the Kubuntu tutorials day in #kubuntu-devel. Lots of interesting stuff to be talked about and a perfect opportunity to join the awesome Kubuntu team. links of the day: categorical imperative and Severed Fifth Tuesday, June 10. 2008
GSoC Report Week 2: libmp3tunes goodness Posted by Casey Link
in ramblurr at
16:31
Comments (0) Trackbacks (0) GSoC Report Week 2: libmp3tunes goodnessProject: MP3tunes + Amarok IntegrationTotal Commits: 35 Weekly Commits: 15 Past 7 DaysThis was a busy week. I migrated the existing MP3tunes service in Amarok 2 from making REST calls and parsing XML manually to use libmp3tunes. I created an object oriented encapsulation framework in C++ for libmp3tunes, which is written entirely in c. This means instead of mucking about crafting http queries and worrying about parsing data from XML one can manipulate the Locker in an OO fasion. Here’s a little snippet of how libmp3tunes saves work. Without libmp3tunes if you wanted to fetch a list of artists this is what it would look like:
With libmp3tunes it looks like this:
Both of those code samples produce this:
Notice that instead of looping through XML and ripping out data, I was able to call getter methods to retrieve the same data. Of course the XML parsing has only been moved to libmp3tunes, but by hiding the MP3tunes API implementation from Amarok it creates more maintainable code. If none of that made much sense, no worries, the important bit to grasp is that libmp3tunes does these important things:
Upcoming 7 Days:There are a few libmp3tunes shortcomings. One is the lack of a means to detect when a session has expired. Each MP3tunes API request requires a valid session (except of course the initial session-establishing request), and each session times out eventually. When using MP3tunes in Amarok it will be important to elegantly handle session timeouts, for the user does not care about sessions or timeouts. When the user clicks play on an artist they expect it to play, while currently, if the session has timed out Amarok doesn’t do anything. This week I will patch libmp3tunes to support detection of timed out sessions. Another goal for this week is to fix the search box, so it actually searches.
Also, if you right click on an artist in the MP3tunes collection browser you get a “Copy to Collection” option. At the moment it doesn’t do anything. After this week is over, hopefully, selecting the “Copy to Collection” option will let you do just that.
Foreseeable Roadblocks:Last week’s roadblock still stands. In the next few weeks I’ll be getting closer to the time when I will need to implement that syncing part of libmp3tunes into Amarok. The licensing issue won’t stop me from developing it on my own workstation of course, but it will have to be resolved before I can commit that part of library or code that implements it. Friday, June 6. 2008
Sourceforge Community Award 2008 Posted by Myriam Schweingruber
in mamarok at
19:49
Comments (0) Trackbacks (0) Sourceforge Community Award 2008Thursday, June 5. 2008Team Amarok on TwitterWith all the hype around Twitter currently, I'd like to let you know that the Amarok team is of course also tweeting happily (and has been doing so before you have even heard of Twitter :p) Feel free to follow us: Mark Kretschmann Ian Monroe Seb Ruiz Nikolaj Hald Nielsen Lydia Pintscher Harald Sitter Leo Franchi Myriam Schweingruber Bart Cerneels PS: Let's hope that Twitter will fix their performance issues soon Wednesday, June 4. 2008
Greater than the sum of parts ( ... Posted by Nikolaj Hald Nielsen
in freespirit at
08:46
Comments (17) Trackbacks (0) Greater than the sum of parts ( Video podcast support )
Yesterday something really cool happened. It is not something that was planned or that we even really thought about at the time.
It all started with me trying to add a few fixes to the podcast browser in the playlist tab, as I could not get it to show the actual podcast episodes. Although managing to get in a few fixes for related errors, I could not get it to work. I then sang my song of woe to Bart, who, even though he is really busy with preparations for Akademy, sat down and beat the code into shape. So now the podcast view works, even though it still does not save subscriptions between sessions. Then later in the evening it hit me. Between the podcast view working, the Podcast directory service I did a while back, and Mark's brand new video applet we now have this: How cool is that? As is obvious from the screenshots, the metadata of the podcast episodes is a bit lacking still, and there are other minor annoyances as well, but the basics of video podcast support is there and working quite well. EDIT: Oh, and I obviously forgot to switch to an antialiased font when I completely wiped and rebuilt my KDE4 the other day! - Nikolaj Tuesday, June 3. 2008
Something I always wanted to blog ... Posted by Harald Sitter
in apachelogger at
16:28
Comments (2) Trackbacks (0) Something I always wanted to blog about...
THANK YOU!
Monday, June 2. 2008Linuxtag wrap-upWhoa, finally back home and no longer sleep deprived after Linuxtag in Berlin. It was a lot of fun. Got to meet some KDE people I had not had the pleasure to meet so far. And they were as great as I expected them to be. Every single one of them. The four I’d like to point out are Alexandra, Claudia, Monika and Franziska who made the number of women at the KDE and Co booths sky-rocket with me. You rock! Aaron even has a photo of the KDE booth that proves that the KDE team is 50% women :P But seriously: It is great to see that more and more women are turning up in the KDE community lately and the benefits of this could clearly be seen at this years Linuxtag. Thank you for being such a welcoming community. It really shows that we are doing a good job at being an inclusive community no matter who you are and that we are good at attracting people who are reluctant to join other FOSS projects. In the 3 categories I can see in the free software world (1. actively excluding - 2. indifferent - 3. actively including) KDE definitely belongs to the scarcely inhabited number 3 and that makes me proud. This is one of the things that is making and will make KDE successful in the future. Or as Wade puts it: “Let’s all be different together!“. Of course we worked hard at the booth every day showing people the awesomeness that is KDE 4 and Amarok 2. To make up for that hard work we had something planned for every night. After arriving in Berlin on Tuesday we went to the fair ground to set up the booth and then went to have dinner with around 30 KDE/Amarok/Kubuntu people. On Wednesday we went to an Indian restaurant. Delicious food! Thursday was reserved for the official social event which was at the same location as last year which was very nice but a little too crowded for my taste. On Friday we were invited to the Trolltech and friends dinner (Thanks to the Trolls for that.). After that karaoke was planned as I already mentioned. Boy, that was fun! We will have to poke danimo to publish the videos On Saturday Ubuntu-Berlin did a great job at organising a BBQ again. It was at C-Base this time, which is a great location modelled after an UFO landing side. Very different and very cool. The two talks I was giving together with Sven and Harald went well and people really seemed to have liked the Amarok talk which was pretty much a “This is the new stuff in Amarok 2″-talk including the Summer of Code and Season of KDE projects and the new internet services. And now I am back at home \o/. No more events/conferences for me until Akademy. I need a break after all these events. Oh and to the people who take care of matching booths and projects at events: Please get Amarok and KDE booths as near to each other as possible. We belong together and tbh I hate having to switch from one hall to another all the time. (Before someone ask, yes we did ask for booths next to each other. And this was the 3rd event where we had booths that were way too far apart.) (photos by Aaron, Carlos, Markus and me) Monday, June 2. 2008GSoC Report - Week 1Project: MP3tunes + Amarok IntegrationPrescriptum: These weekly reports will likely contain a bit of technical information that only other Amarok developers will understand. I do not like that idea, as I want these reports to be grokable by all, but since I haven’t yet decided on a format to present the info in a manner I like this will have to do for this first week. Past 7 Days:I started coding for GSoC last Tuesday (May 27th) beginning with a simplification of the ServiceCollection hierarchy by combining ServiceDynamicCollection and ServiceCollection into one class. I also started creating the ServiceCollectionLocation’s. It is not implemented anywhere yet, and won’t need to be for awhile, but I started it as at the time I was waiting on mp3tunes to deliver their c sdk. Leeo kindly created mp3tunes icons, which I committed on Saturday. During the week I kept nudging the mp3tunes developers to send me the c sdk, and Saturday the nudging paid off as I received a pre-release version of libmp3tunes. Even though it is a pre-release it is complete enough to match the current mp3tunes feature set in Amarok2. On Sunday I added libmp3tunes to the src tree, including the dependency detection. libmp3tunes is dependent on curl and libxml2, and if someone does not have them mp3tunes will be excluded from the build thanks to cmake. Finally, today, I committed a ~750 line c++ wrapper for libmp3tunes to compartmentalize the unsightly c code. You can see all my commits here: Upcoming 7 Days:There are still a few functions left TODO in the c++ wrapper for libmp3tunes, so I’ll complete those this week. Then I plan to start migrating the existing service to use the library functions. I expect this will take all week, so my goal for the next report is to have the migration complete and a working Mp3tunes service utilizing the library. If my time estimation ends up being too long, and I finish the migration early, I’ll work on the Mp3tunesCollectionLocation functionality so you can copy tracks from Mp3tunes to the local collection in a manner similar to the Magantune service.
Reflections:I am amazed at how much I learned this week. To keep this brief here is a list of some things I’ve learned:
Sunday, June 1. 2008
It didn't get any better Posted by Harald Sitter
in apachelogger at
19:39
Comments (0) Trackbacks (0) It didn't get any better
Back at home (finally). I had to spend 7 hours at the Airport in Salzburg (that city with Mozart and classical music entertainment stuff) because I was far too drunk to drive home. Of course I didn't just drink coffee and hack on neon+kde... because one doesn't get much sleep @ LinuxTag, I decided to catch up on that: after sleeping on the table and in a bathtub, I ended LinuxTag 2008 with a quite long nap at the Airport, in the parking garage, in my car
Anyway. It was an awesome event, again! In more interesting news ;-):
|
Amarok LinksCalendarQuicksearchArchivesCategoriesSyndicate This BlogBlog Administration |

