Sven Krohlas

Subskrybuj zawartość
Things that matter... at least for me ;-) - Amarok
Zaktualizowano: 6 tygodni 2 dni temu

Free Music Charts script for Amarok 2.2

October 9, 2009 - 06:46
Just a few days ago (yeah, might already be old news for some people out there) I released version 1.3.2 of the a href=http://kde-apps.org/content/show.php/Free+Music+Charts?content=91484Free Music Charts integration for Amarok/a. This one is required to work properly with Amarok 2.2.br/ br/ The FMC are a monthly internet radio charts show where only open music is allowed to take part. You can chose five songs from usually five newcomers and the best 15 tracks of last month to vote for. All songs can be downloaded and redistributed freely. You can get the script from the Amarok Script Manager (try the Get more scripts button) or from kde-apps.org.
Kategorie: Planet Amarok

A-Team at OpenExpo, Wintertur, Switzerland

September 22, 2009 - 14:11
As usualy: if you want to see the latest developments in git master and talk to the developers of your favorite media player: join us at a href=http://www.openexpo.ch/openexpo-2009-winterthur/OpenExpo in Winterthur/a, Switzerland. Oh, and of course we have Amarok shirts with us. :)
Kategorie: Planet Amarok

FrOSCon 2009

August 19, 2009 - 09:58
If you want to meet some developers of your favorite music player in real life, shake hands with Mike and have a look at all the wonderful changes in git master for Amarok 2.2: a href=http://froscon.org/Visit us at FrOSCon/a, this weekend in Sankt Augustin, Germany (near Cologne/Bonn). We will be at booth 45 together with KDE, Kubuntu and Qt Software. See you there!
Kategorie: Planet Amarok

GSoC Status Update August/3 (final one)

August 17, 2009 - 17:08
In this last week new test classes were added to the framework, namely tests for: ul liMeta::M3UPlaylist/li liMeta::XSPFPlaylist/li liPlaylistFileProvider/li liSqlUserPlaylistProvider/li liTimecodeTrackProvider/li /ul Also the tests for DirectoryLoader finally work. The solution was to leave the usual design of tests behind in this case and start testing with QTest::qExec() not in the constructor but in a special slot that gets connected to the loaders finished() signal. So this is now a good template for tests that test actions taking part in other threads. Also some more test data has been added and older tests have been polished a bit.br/ br/ So in the end we have a fast test framework with currently 18 test classes. Adding more tests is not hard, a a href=http://amarok.kde.org/wiki/Unit_Testingguide to using and writing Amarok unit tests/a has just been added our wiki. Tell me if anything is unclear there.
Kategorie: Planet Amarok

GSoC Status Update August/2

August 10, 2009 - 12:27
This status update might be a bit boring as basically all there is to say: we have lots of new tests. Namely the following classes are new to the testsuite (most of them pass successfully): ul liExpressionParser/li liQStringx/li liMetaFile::Track/li liMetaCue::CueFileItem/li liMetaCue::Track/li liMeta::MultiTrack/li liMeta::Track/li liMeta::PLSPlaylist/li /ul Also some bugs were found and some of them even fixed along the way. Still I have no clue how to correctly test DirectoryLoader. Next are the other Playlist-classes in the Meta namespace for M3U and XSPF files.
Kategorie: Planet Amarok

GSoC Status Update August/1

August 3, 2009 - 18:01
We now have complete test coverage for everything in Amarok.h, that is still being used, I cleaned up and removed non-used functions. And: all the tests now run successfully. Interesting were the fixes for Amarok::cleanPath(): this method tries to remove accents of all kinds from a string. Internally this was done using a lot of QString::replace(). But: catching all accented characters this way is a pita and the test failed, of course. The answer were some Unicode tricks: in some normalized storage forms the accents and the manipulated character are stored seperately. So after normalizing the string it is just a matter of removing all possible accents from it. QString::replace() is then only needed for special cases. The better I know Unicode the more I like it.br/ br/ Apart from that CaseConverter is now also equipped with tests. DirectoryLoader caused headaches: it has only void methods, but manipulates the playlist, so there it could be verified if it worked correctly. But as it's running async in a seperate thread I failed to sync the test framework with the availibility of the results: how to wait for a signal to appear? Directly calling the test slot using a signal/slot connection will not work.br/ br/ Also another small but ugly bug showed up: sometimes parts of Amarok debug output show up in the testlogs. I still have no idea at all why.br/ br/ So quite soon we are going to merge the current work into Amarok git master. Making sure that the test framework doesn't affect release builds (install test files, link to testlib) is the next step, but that should hopefully be trivial. Afterwards more test classes are on the agenda and hopefully an idea how to make TestDirectoryLoader behave as it should.
Kategorie: Planet Amarok

GSoC Status Update July/3

July 27, 2009 - 17:45
So, the new C++ based unit testing framwork is now working. A simple blockquote amarok --test /blockquote will run all available tests. Logs can then be found in blockquote ~/.kde4/share/apps/amarok/testdata/lt;datetimegt;/ /blockquote or whatever directory this corresponds in your distribution. Currently there are tests for SmartPointerList (which already existed and just were adopted to the new system), parts of PlaylistManager and several funtions in Amarok.h.br/ br/ The tests in Amarok.h also already found a few bugs, especially in Amarok::vfatPath() (at this point I could fill pages with rants about how evil VFAT and the Windows API are...). It was really nice to see progress in the tests when trying to get the function to work as expected. The tests caught regressions quite well. I was able to perfectly see for which data it crashed or delivered wrong results when working on the code and introducing an error. Automated testing definitely can save a lot of time!br/ br/ The tests for Amarok::cleanPath() also still fail partly. Oh, and if someone could run all the tests, especially the ones for Amarok::vfatPath() under Windows it would really be great, too. :)br/ br/ The current code with detailled commit messages can now be found on Gitorious: a href=http://gitorious.org/~krohlas/amarok/krohlass-clonehttp://gitorious.org/~krohlas/amarok/krohlass-clone/a.br/ br/ Next on my agenda are the remaining tests in Amarok.h and working on getting those for Amarok::cleanPath() to run successfully, but not by changing the tests. ;-)
Kategorie: Planet Amarok

GSoC Status Update July/2

July 21, 2009 - 08:21
This week I was thinking about the idea that came up after the last status report: why a gui if mainly developers will run the tests? So I checked out the ways Qt offers to make each test class a standalone executable (using the QTEST_MAIN macro). This is quite nice but has a massive drawback: compiling and linking to more complicated classes with a lot of dependencies to other parts of Amarok and generated files becomes a pita (I tried that with PlaylistManager). Those problems vanish when integrating all tests into Amarok itself. So on my branch we have now a new parameter --test for Amarok, intended to run all available unit tests. The constructor of a test class now simply calls the init-, test- and cleanup-methods.br/ br/ This approach is quite fast currently (here two test classes are being run): blockquote amarok:nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; BEGIN: static void App::runUnitTests()br/ amarok:nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; END__: static void App::runUnitTests() - Took 0.00038s /blockquote But... I also miss any output currently. when looking at the docs about QCOMPARE they shocked me a bit: Note: This macro can only be used in a test function that is invoked by the test framework.. Well, so I might need to write some utility functions/macros for that approach. I'm still investigating this problem atm.
Kategorie: Planet Amarok

GSoC Status update July/1

July 13, 2009 - 14:56
So, at the GCDS we discussed the problems I encountered and also the future of my GSoC project. We finally came to the conclusion that QtScript is not the best tool to get unit testing into Amarok. Of course being able to send a user a test script would be nice, but as outlined previously: making all the needed APIs available to scripts is anything but trivial.br/ br/ So we came up with this: ul liTests should be written in C++, using the QtTest framework./li liLater we can make the test framework scriptable, if we still want to./li liTests should run inside Amarok, not as seperate binaries (reduces linking time, CMakeLists.txt complexity)./li /ul Basically this meant that I needed to remove my current work, but that's still better than wasting an endless amounth of time trying to bend tools into shape to use them for something they weren't meant to be used.br/ br/ I started on this new approach at the GCDS, but there is not yet much to be seen. A Run Unit Tests help menu entry in Amarok debug builds, the start of a GUI to run selected/all tests. But I'm quite confident that now we will have much faster progress than before.
Kategorie: Planet Amarok

Gran Canaria Desktop Summit

July 13, 2009 - 14:26
So, people are asking me about the days in GC, and I'm getting tired of it. Time to blog. Hopefully I don't forget anything important. :)br/ br/ So, first of all: no, it was no holiday, The day I arrived was the official beginning of the conference and it ended just the night before I left. Which of course doesn't mean we weren't allowed to have some fun.br/ br/ So, the journey begun on July 3rd, Stuttgart airport. My first flight ever, before that all conferences could be reached by car or train. Well, that's the benefit of living in central Europe, I guess. It was pretty cool to meet Fregl and other KDE people at the airport in Germany and just a few hours later again over 3000 kilometers away in Gran Canaria (they were on a different plane). Anyway, the flight itself was boring. The only moments it really felt like flying were those right before touch down next to the military aircrafts on the island. The others made it in time to catch the Bus to the Santa Catalina bus station in Las Palmas de Gran Canaria, I was a few minutes too late for that. The problem is: the busses go there hourly. But there are also some (from the same bus line 60) that go to San Telmo. As the bus driver explained (his English wasn't very good), that it's just a 20 minutes foot walk to Santa Catalina I decided to go there instead of waiting. Well, the bus driver was wrong: it took me 40 minutes to my hotel, which was located in between those two stations. Well, so at least I have seen some more parts of the city...br/ br/ I guess we had one of the cheapest hotel on the island, the official travel agency simply wasn't able to manage the trip for a lot of conference participants. Anyway, for sleeping and taking a shower even the cheapest hotel should be good enough. But not for having a reception that is actually able to open the door. I was waiting for about 20 minutes, ringing the door bell again and again, when it finally opened. Some other guest was leaving. So I got inside. Of course due to my delay I missed Sebr, my room mate. The reception was empty, but the window into the reception room could be opened easily. That's what you get when inviting hackers into your hotel and don't offer them the expected service. ;-) I simply left my luggage there and left again to check out the conference location, which should just be 20 minutes or so away by foot. We heard that number before? Yeah, history repeats itself...br/ br/ I had a printout of the OSM map of the area with me, but as I didn't realize that parts of the highways on it were located inside a tunnel and I had the wrong maps on my Garmin GPS device (Spain... but WITHOUT the Canary Islands... *damn*). I of course managed to walk at least 5 kilometers more than needed. And so i learned: 1) nearly no one speaks English at that place and 2) Complicada!, when asking a native taxi driver for the way. In the end, just a few meters away from the Alfredo Kraus Auditorium I heard a voice shouting SVEEEEEN loudly across the square. Mamarok and Markey found me. :) The conference registration was already closed, the Canonical-sponsored welcome party nearby (here the OSM data was helpful again) and so everything worked out fine for the first day. All the free beer had been drank and they serve a Cuba Libre by giving you a half full (empty?) rum filled glass together with a small bottle of cole. No lemon. And more cola than is needed to fill up the glass. Strange. Very strange.br/ br/ The next day was mainly Keynote day. So a very hangover-friendly program. Richard Stallman talking about free software, Mono and the Church of Emacs. He even sang the Free Software Song as a person in the audience asked for it. A gnu has been sold of 150 euros, iirc. So basically the usual and expected talk from RMS, but still amusing. There was one free icecream and coffee sponsored by Intel each day at the autitorium. Oh, and after registering everyone received a green Qt-towel, a Google drinking bottle and a Nokia SD-card reader. Nice. The towels are very useful when trying to spot geeks on the beach. 700 people in the main hall were also way too much for the wireless network. Oh, and thanks to Casper for lending me a netebook for the conference, I would not have survived without it!br/ br/ Sunday the Akademy talk sessions started, additionally to the Cross Destop ones. During lunch break I also learnd how evil the sun in GC can be. Always walk on the sidewalk where you find some shadows, always were something to protect your head. I learned the hard way and used the afternoon to think about it in the hotel. So I missed the group photo, but certainly not the social event in the evening, located at the Club Sotavento, sponsored by Nokia.br/ br/ On Monday there were several interesting talks. I really think the getting things done one had some useful ideas in it. Also Bart and Nikolaj talked about free software business ideas, especially with Amarok in mind. The whole business track talks complemented one another, imho. The day ended with the Akademy awards ceremony, where as always last years winners announced this year's ones. Also the KDE group photo was made afterwards (yeah, didn't miss that one at least). The KDE party (sponsored by Basyskom) then took place at the Terraza El Cielo, which even some taxi drivers didn't know. I just drive you to the place all the other taxis go. Well, the other taxis were right. Oh, and totally cheap, btw: about 4 euros across the city. That's nice, isn't it?! I guess there I discovered tinto verano: red wine with ice cubes and zitron or lemon limonade. Nice stuff.br/ br/ Tuesday was the yearly meeting of the KDE e.V., so basically a day off for non-members. Soooo many different people told me I should definitely apply for a membership, so I guess I'm gonna do it in the next few weeks. Well, anyway, some of the few non-members then met at the Playa de Las Canteras beach to get a slight sunburn (I wrote I learned something? well...) and do some hacking afterwards in a hotel lobby.br/ br/ Wednesday: first day at the second conference location, the Gran Canaria university ULPGC - Universidad de Las Palmas de Gran Canaria. Here we Amarok people located in one of their computer labs to hack and discuss a lot of different issues during the next few days. Dynamic Playlist, GSoC, certain bugs, Windows and Mac builds, etc. We decided that my Summer of Code project should use C++ unit tests instead of ones written in QtScript, for example. Details follow in a blog entry seperated from this one. And why do television reporters have to walk right in a BoF and do their recording including moderation during the time everyone around them wants to discuss things? Collabora sponsored the last official party of the event in the evening, at the Terraza Black Lounge. Spirits were included. ;-)br/ br/ After going on with the discussions the next day many conference participants joined the free tourist trip to Maspalomas. The dunes were quite interesting, as you imagine the Sahara. But all the rest of the place... one large tourist trap. Horrible. Looking at the sea and knowing the ~230 kilometers away people are starving in africa, while you can eat German potato salad and drink Bavarian beer... definitely not a place to go on holidays for me.br/ br/ The next two days went on with discussions and hacking, but on Saturday we decided to meet directly in Las Plasmas, not at the university, as so many people had already left the event. Details on all of those debates will show up in our Wiki soonish.br/ br/ And finally the flight back was a bit more interesting. You know the legendary if there's a doctor on board... sentence? Well two seats next to me some woman got tachycardia, it seems. But two doctors were found, stabilized the situation and we arrived in time in Stuttgart again. You might want to check out Flickr and other sites to see pics.
Kategorie: Planet Amarok

Amarok Scripting Talk / Amarok Scripting IRC Tutorial

June 28, 2009 - 17:29
On LinuxTag this week I gave a workshop about scripting in Amarok 2 and I promised to put the a href=http://krohlas.de/blog/2009-06-24-LinuxTag_Berlin.odpslides/a online. So here they are. :)br/ br/ On related news: tomorrow, which is Monday 29th June, I will be giving an IRC tutorial as part of the a href=https://wiki.kubuntu.org/KubuntuTutorialsDayKubuntu Tutorials Day/a on the same subject. My contribution starts at 23:00 UTC, which is 01:00 Tuesday morning for all German readers, and takes place on Freenode in #kubuntu-devel.br/ br/ I'm really looking forward to it, as I never did an IRC tutorial before. See YOU there, especially if you are interested in developing plugins for Amarok 2! :-)br/ br/ UPDATE: a href=http://people.ubuntu.com/~jriddell/kubuntu-tutorials-day-2009/amarok-scripting.textThe logs/a are now online.
Kategorie: Planet Amarok

GSoC status update June/3

June 24, 2009 - 13:04
Now the infrastructure for providing bindings exlusively for test scripts in debug builds is in place. This required some CMake magic to set a preprocessor variable DEBUG in debug builds which then can be used in various #ifdefs to make public slots out of public object members, which then can be accessed from scripts. In the beginning the idea was to do this more elegantly, by putting the slot definitions into other preprocessor defines, like AMAROK_DEBUG_EXPORT. This way a lot of #ifdefs could be saved and the code would be much better to read. Sadly the moc preprocessor required to offer the bindings doesn't understand many commands and #define is one of those it lacks. So now you might stumble upon things like: pre #if defined(DEBUG) nbsp;nbsp;public slots: #else nbsp;nbsp;public: #endif /pre Sorry, I couldn't find a less ugly way currently.br/ With that working I started adding bindings to Amarok classes to the script engine for test scripts. Playlist::Actions, Playlist::Controller, PlaylistManager and Meta:TrackPtr are there now. The next problem I stumbled upon was that some more classes have to be known to scripts to write reasonable tests. Currently I'm about to provide a prototype for KUrl, which doesn't work yet, but I think I know what went wrong there.br/ br/ As of this writing I'm sitting in the train to LinuxTag in Berlin, where I'll be until Saturday, but hopefully some code can nevertheless be written. Feel free to visit our booth or one of our talks and workshops.
Kategorie: Planet Amarok

Amarok @ LinuxTag 2009, Berlin, Germany

June 22, 2009 - 12:43
Heya everyone,br/ br/ as you might have read: we again take part as a project at a href=http://www.linuxtag.orgLinuxTag/a this year. You can find our booth, Mike, us, cool Amarok Shirts and recent SVN versions in hall 7.2b, booth 112.br/ br/ Apart from that we offer the following highlights: ul lia href=http://www.linuxtag.org/2009/de/program/freies-vortragsprogramm/mittwoch/vortragsdetails.html?talkid=1003Workshop: Amarok Scripting: How to enhance your favorite music player./a Wednesday, 14:00, room Kaiserslautern, given by me./li lia href=http://www.linuxtag.org/2009/de/program/freies-vortragsprogramm/mittwoch/vortragsdetails.html?talkid=1015Workshop: Community Management 101./a Thursday, 16:00, room Kaiserslautern, given by Lydia Pintscher and Alexandra Leisse./li lia href=http://www.linuxtag.org/2009/de/program/freies-vortragsprogramm/mittwoch/vortragsdetails.html?talkid=621Talk: Amarok Overview./a Friday, 10:00, room Ulm, given by me./li /ul br/ I just realized that the organizers gave me two (!) hours for the workshop. So if you have creative ideas for good scripts that can basically be implemented in about one hour please let me know. Maybe we might start working on those!br/ br/ We also have some winners to announce: four people took part in our a href=http://amarok.kde.org/en/releases/2.1.1free entrance ticket drawing for LinuxTag/a, so three tickets found their way to Poland and two were sent to winners in Germany. Hint: there are still some tickets left, if you need one...
Kategorie: Planet Amarok