Thursday, October 30. 2008Bugzilla email spam filteringIf you’ve got a mailing list dedicated only to bugzilla traffic, you might find these rules useful to filter out any spam. Since the Subject field of these lists are so rigid, we can obviously tell which emails are spam. Use the following rules in your mailman config: Rule 1: Discard any emails flagged as spam
Rule 2: Accept any emails which fit our [BUG 1234..] subject header
Rule 3: Discard or hold the rest, they’re probably spam!
Thursday, October 30. 2008ORLY?
So October's almost finished and I haven't blogged about anything...
It's Coming Wednesday, October 29. 2008
Amarok 2 on OS X, now with more sexy Posted by Leo Franchi
in lfranchi at
21:55
Comments (31) Trackbacks (0) Amarok 2 on OS X, now with more sexy
Ever since I switched to the dark side and bought a macbook pro this spring, I've had slight trouble developing (and using) Amarok 2 and KDE4. Imagine my frustration as I spent a week cycling through all possible permutations of {VirtualBox, Fusion, Parallels} and {Ubuntu, OpenSuse, Mandriva} trying to get a development environment that didn't make my eyes bleed (or my computer choke).
Anyway, after approximately 7 months, I have been able to finally use Amarok as it was meant to be used: native on OS X! ![]() How did I do this, you ask? The KDE Mac Site However, if you want to be able to build a collection (as I have in the screenshot above), you'll need to compile/install mysql manually (following instructions for MySqlE). But just out of the box, I got perfect audio, low CPU/memory usage.. and in general awesomeness. In other news, I have locally switched Amarok from using our old last.fm code to a brand new snapshot that will provide much more long-term stability. This should resolve the various last.fm bugs that have been around the Amarok code for quite a while. and you can see the result here: ![]() Finally, if you are still wondering what other crazy stuff you can do with amarok, look no further: ![]() let me give my huge thanks to our very own illogic-al, who has dedicated more brain cells to packaging amarok/kde on os x than i would like to count, and who is officially awesome. Monday, October 27. 2008
Mom-compatible Kubuntu Intrepid with ... Posted by Myriam Schweingruber
in mamarok at
22:17
Comments (26) Trackbacks (0) Mom-compatible Kubuntu Intrepid with KDE4
Since Mark lives here, people in the house are in awe about the man sitting in front of his desk all day long, "programming computers". Of course, we have been asked a few times to give a hand in choosing hard- or software, until now only to manage one dual install and a helping hand to install proprietary software...
A few weeks ago, our neighbor, a fifty-something housewife, asked us to have a look at her rather new computer making strange noises and refusing to boot. Of course, this was the ideal moment to try what we first thought to end up with a dual boot: It was not only impossible to boot the installed Windows XP, but all attempts to repair the existing installation were vain. Wild guess, total infection as she used the Internet without almost any protection, a very likely scenario. So, what to do? Either reinstall first Windows, then Linux and make the traditional dual boot for newbies, adding tons of firewalls and anti-virus tools. Else, convince the lady that she could continue to use the computer as before with mostly Free Software and get rid of the Windows part, a far easier choice for us who don't use Windows at all since quite some years, but what about her? She put all her trust in our affirmation that Linux was a far better choice for her. I should add that she is by no means an expert user but also a beginner in the Windows field, so there would be quite some knowledge building. ![]() image copyright by Ian Spare, CC ny-nc-sa Bold move, we didn't hesitate long and decided to install Kubuntu in the Intrepid Ibex flavor, with a all shiny new KDE 4.1.2 desktop. Yes, I know, it is still beta and one shouldn't do that, but we live in the same house and Mark would in the worst case have been the daily emergency repair man and instructor. Here are the needs: mailing, some text processing, some basic image manipulation and, most important, Skype with video to keep contact with her family abroad. Languages would be German as system language, quite unfamiliar to us as we both use an English installation and Polish to keep the computer usable for the husband who is not as fluent in German as she is. Long story short, we installed everything and configured a basic installation with Kubuntu Intrepid Ibex beta and KDE 4.1.2. We did no particular hardware configuration except for the wide screen which turned out to be actually a flat TV and this went in a dash after we set up the 1440x900 specification. The HP color printer was recognized auto-magically, same for almost all the hardware, except for the Canon 4400 F scanner that turned out to be totally unsupported by SANE. The most tricky was actually to install Skype with video support and gave us an evening of headaches, the Logitech camera with built in microphone accepting either only the sound input or the video one. Some two hours of tunning the sound settings (K Mix REALLY needs more usability!) later we managed to make it work with an external headset and suggested to buy a headset, anyway nice to have for late night phone sessions. Now, two weeks later I did an update of the language packages, we still have an awful mix of German, Polish and mostly English as the Canonical folks are sadly behind schedule with language packs, the lady managed to nuke the panel and unfortunately it's not possible to add it at the bottom as it stubbornly decides to turn up at the top of the screen. Moving .kde/ to .kde-old/ and restarting did the trick. I still have to figure out how to activate desktop effects with the Radeon-HD driver, some residual fglrx (installed by default, such a shame) probably preventing the run (it did for the older Radeon driver on my laptop). But, on the bright side, she was able to use Skype almost all the time with both sound and video, used text processing and the next step will be to install Krita for image handling which she is very keen of and bringing her my old HP Scanner I don't use anymore. Overall a nice demonstration of how Mom-compatible both Kubuntu and KDE4 already are, enabling a computer newbie to use her computer without those "horrible beeps" and restarts she experienced before. She doesn't miss Windows at all and say that it's far more beautiful and not more difficult now than before Monday, October 27. 2008Amarok October UpdatesAmarok 2 is really gearing up to become a great piece of software. We are all are frantically trying to find any time we can steal from our busy schedules of work, study, and good-times to put some of that extra special attention to detail and polish on the application. This week I finalised the third revision of an importer tool to recover your beloved statistics, scores, ratings, lyrics and album art from an Amarok 1.4 installation. After a rather draining and involved process starting off with Ruby, moving to QtScript (javascript) I finally cut my losses and have implemented an extendible framework directly in the application with c++. You’ll be able to retrieve your stats from any of sqlite, mysql or psql database backends. Throw in a wizard, some multi-threaded goodness and an output logger, and we’ve got a snazzy new tool for your convenience. I put a bit of extra effort in on the side to make sure that the tool won’t go to the land of bit heaven after the release of Amarok 2.0, and incorporated a pretty nifty infrastructure to allow implementations of arbitrary importers. I’m thinking iTunes, Rhythmbox, Banshee, WMP, Winamp et al. If you’re looking for easy entry into KDE development ask me how to write an importer. There have also been a plethora of other significant updates to Amarok, such as:
Stay tuned for Amarok 2 beta 3 which we’ll have out in the wild very shortly. Sunday, October 26. 2008Roktober Update
A few thoughts from the treasurer as roKtober draws to a close. I hope I haven't posted this too late to have a positive impact on our overall fund drive. We are way off our goal for this year and I am not sure if that is the result of the uncertainty in the economy or people are just sick of us
We have seen a huge fall-off in donations from the US, and I wonder whether it is because we expressed the goal in Euros and somehow offended our friends outside of Europe. Last year, because of the strength of the Euro against the other world currencies, we made a decision to express our goal in Euros because many of our expenses are in Euros. This is not because we are a Euro centric project. In fact, we have just as many US based devs as Europe, and we also have people in Australia, China and South America. We need support from around the world, not just Europe, so if we somehow put you off, or you think your currency isn't as valuable, please reconsider. Speaking of which, we are planning on giving two prizes this year so I think it is fair to give an entry for local currency, because even though a Euro buys more Canadian or US Dollars, 10 Dollars buys the same amount of bread in North American as 10 Euros does in Europe. So if you live outside of Europe and 10 Euros is a lot more than 10 Dollars, fear not, you will get an entry in our giveaway based on local currencies. Continue reading "Roktober Update" Saturday, October 25. 2008Halloween
So, it will be Halloween soon, and what better way to celebrate than with a nice Jack-o'-lantern?
Oh, I think I have the answer to that: A nice Amarok styled pumpkin carving! Pumpkin carving awesomness by linkmaster03 Thursday, October 23. 2008LibriVox - take 2Some time ago I wrote about the LibriVox script in Amarok. It has been ported now and works like a charm. This should show you two things: Wednesday, October 22. 2008Paros, GreeceDue to lucky coincidences I got to spend one week in Greece together with my stepsister on a lovely island named Paros. It was great! Weather was nice enough to go swimming and get a sunburn. We got to see most of the island thanks to having rented a small car. Driving through the hills looking down on the water was fun. I can only recommend going to Paros in the last week of the tourist season like we did. Most of the time we only had to share hotel, beaches and restaurants with 2 or 3 people and often we even were on our own.
More fotos in my flickr stream.
Monday, October 20. 2008It is Qt...
...unless you are talking about Quick Time.
Saturday, October 11. 2008
Why Nepomuk could not fully replace ... Posted by Daniel Winter
in danielw at
17:05
Comment (1) Trackbacks (0) Why Nepomuk could not fully replace (My)SQL in Amarok (yet)This is another post about collection backends in Amarok. The others posts explained the switch to MySQL embedded and tried to address some of the concerns. Jefferai also wrote a few things about Nepomuk in Amarok (and why it will not fully replace the sql based collections) which I want to comment on and add to. There are user asking: “There is Nepomuk in KDE for storing meta data why the switch to MySQL embedded you could just use Nepomuk and drop sql collection all together.” With reasons like: “Nepomuk can do this and that better and one storage in KDE for everything is best.” They are not complete wrong, there are good reasons to use Nepomuk (data sharing between applications, system wide searching, using strigi(and taglib) for collection scanning at a central place for all applications once, interconnect the data with other data (like let Kmail store where I got that song from), and others) But Jefferai is right when he says that Nepomuk can not replace the sql collection for everyone and every use case. At least not for the short and longer midterm (;-)). Why? Not everyone will or could run Nepomuk for different reasons. The most important one: It is a quite complex big software in terms of memory usage (though I think that will improve in time and the amount of available memory in computers is growing fast) and CPU usage. Another issue is: At least in the short and midterm it it will be significant slower than the MySQL based collection. It is not useless slow but well sqlite isn’t useless slow either (faster than Nepomuk atm) and people complained. So: For slower older computers, lightweight media devices, mobile devices, big collections, java “haters” even a perfect done Nepomuk collection with a bug free Nepomuk (we are not there yet…) would be out of question.
I expect some of those issues to improve over time. (I hope we will see a faster C/C++ based storage backend for Nepomuk). But still Nepomuk is a new technology and there is not much experience with it yet amoung users, developers and important here “developing users” (those who create small scripts and apps to work on the sql data from amarok to do different things with that, mostly for their own usage).
Don’t get me wrong: I like Nepomuk and it possibilities for Amarok. It is not useless slow. In fact I am using it as my main collection backend in Amarok for months now. But it is in a similar state as KDE 4 in pre 4.0 days. You could use it but it not feature complete, it is not really stable it has its issues and there will be major changes to some of its parts. Well I hoped to have it (and the related Nepomuk service) in a better shape by now. Sorry for that, my time is very limited at the moment but work has not stopped fully and I am still planing to bring it into a useful shape.
A few words on the Nepomuk service: It will monitor Nepomuk/Strigi for new music and use taglib to read data Strigi can not read (yet?) to fill it. It then creates new music (tracks, artists and so on) resources in the Nepomuk storage. It should also inform interested applications about new music. Overall it aims to have always all music of the user in an easy to access way available for use in media players, music management applications and others.
That should make it easier (and faster!) for Amarok (and others) to use the data.
For example at the moment (ontology not final) to get a QStringList of all artists of the music on the computer in your application is as easy as (when using Strigi, Nepomuk and the unreleased service) :
QStringList artists; QList<Nepomuk::Resource> artistsResources foreach( Nepomuk::Resource &artistResource, artistResources) {artists << artistResource.label(); } The flexible Amarok 2 collection framework will allow both (Sql and Nepomuk) collection living together at users choice and maybe in a few years Nepomuk (with faster backend?) could become the default. Saturday, October 11. 2008
MySQL in Amarok 2 - The Reality Posted by Jeff Mitchell
in jefferai at
04:01
Comments (85) Trackbacks (0) MySQL in Amarok 2 - The RealityThere has been a lot of chatter lately regarding Amarok's switch to MySQL as its only SQL backend. A decent amount is FUD -- either by people simply pushing back against change, or by people that simply don't understand the decision. Some of it (particularly Adriaan's blog post) has been insightful and interesting, but miss the mark in terms of why this change was made. This post attempts to explain why this decision was made, what it really means for you the end-user, and why you should have a cup of tea and relax. I want to point out first that I said that MySQL is going to be Amarok's only SQL backend. A2's collection system is very powerful. Just take a look at how varied music sources from Shoutcast, Jamendo, Magnatune, Ampache, MP3Tunes, as well as local sources like iPods and your local file system, are treated as equals in A2. A collection is a collection, and is limited only by what capabilities it advertises it can support (and of course, it can supply its own custom capabilities). It's not currently enabled, I don't think, but there's a Nepomuk-based collection option too. So take heart -- this change only affects Amarok's internal SQL collection, and not other sources (although those sources can store information in the SQL database if they wish to cache information). Since I mentioned Nepomuk, it's time to discuss another common question/demand/complaint: KDE has this nice Strigi-Nepomuk thing going on...why aren't we using it for scanning music and storing information? There are a couple main reasons. The first is that Strigi and Nepomuk are optional, not required. (Update: Strigi is required, but Soprano isn't, so Nepomuk as a whole is still optional.) We can't rely on the user installing them, and even if they are installed, we can't rely on the user to configure them properly (remember that we're going cross-platform, making it even less likely). The second reason is speed: Amarok's custom collection scanner is extremely fast and pulls out specific pieces of information with TagLib. Strigi is, by comparison, very slow (it calculates hashes of all files, which means it needs to read the entire file) and pulls out less information. (Update: According to the Strigi developer, and despite what is said on kde-apps.org, Wikipedia, and even the author's own home page, it does not calculate hashes by default. So it's possible that Strigi, if properly configured, could be as fast as Amarok's internal scanner, although whether it would pull out all necessary information, I don't know. If it's configured to calculate SHA1 hashes of all files, then it will indeed be far slower.) On a local hard drive, it may not be a big issue, but it sure is a huge issue when you throw networked storage into the picture, which is a very common scenario. I've also heard, though don't remember specifics, that querying and such through Nepomuk is rather slow, compared to a normal SQL database. Regardless, though, remember that when the Nepomuk-based collection is finished, tracks sourced through a Nepomuk-based collection will have their metadata changes saved back to Nepomuk. So, it's not that the SQL collection is in place of Nepomuk -- they are entirely independent. (Update: I forgot to mention that a Nepomuk collection already exists. It was developed by a GSoCer over the summer. I'm not sure what its status is as far as making the 2.0 release, but we Amarokers both like Strigi/Nepomuk and are excited about the idea of opening up the app and having all your music available right then and there with no pre-configuration. But there is a place for the SQL collection too. As I said: they are complimentary technologies.) With those topics out of the way, on to the meat. First, it is important to understand an important pair of facts. Number one: we are not database guys. Sure, we can store data in them, and more or less come up with a working schema, but none of us are gurus/wizards/jedis/etc. This leads in to number two: maintaining three databases was driving us crazy. Every time a minor schema change was needed, it had to be coded up for all three types of databases. Modifying a schema could be trivial for one database type, and super difficult (or impossible) for another. People would report bugs that we couldn't reproduce, only to find out that it was because we didn't quite understand how one database or another behaved (or in some cases, none of the active devs were using that type). And so on. So from the beginning of A2 development (and in our fantasies during A1 development) we knew we wanted just one database. (We did actually look at abstraction layers like QtSQL and others. I'm not going to comment on them much, as I didn't do the evaluation, but in general they were found to not be flexible enough to handle all of our needs without doing some custom SQL coding (especially in the cases of things like schema changes), which kind of defeats the point. If you want to know more/want to insist that they are, try asking eean, as I think he did the evaluations.) Now we had to choose the type. At first, SQLite seemed like a good choice. Using transactions, it's decently fast. It's pretty stable (those that complain about odd MySQL bugs should talk to markey, as he, being the SQLite maintainer in 1.4, can attest that SQLite's had its fair share). However, there were a few problems that in the end knocked it out of the running. The first problem is performance. Although for people with small collections it performs fairly well, people with large collections that switched to the MySQL or PostgreSQL backends in A1 would report enormous speed gains when operations performing complex or many queries were performed, such as adding many entries to the playlist, scanning files, or filtering/searching in the collection. Since we want to accommodate users with large collections just as well as those with smaller collections, and since digital music collections aren't getting smaller, the speed increase for our users with large collections was quite important. Many of our developers, after the switch to mysqle (as we call it, though that's not the official name), have noticed huge speed increases in their day-to-day use of A2, so that speed increase is carrying through to the embedded server as well as the normal server. That was the first knock against SQLite. The other blow for SQLite came for a totally different reason. Many users (myself included) have multiple computers sharing a single Amarok database. Assuming all the computers have access to the music at the same mount point (and a few other things are configured right), this allows you to scan once, play everywhere, update the same ratings no matter where you play it, and more. Even if your aren't sharing the database among multiple computers, many users want their database stored on a particular server for speed, security, or backup reasons. If you think either of these isn't a common use-case, you'd be quite wrong. MySQL and PostrgreSQL were quite happy with this workload. It's a total no-go for SQLite, simply because it's designed for a different purpose. So SQLite had two big knocks against it. K.O. However, just as we can't rely on the user to set up Strigi/Nepomuk correctly, we can't rely on them to get their tables set up in MySQL or PostgreSQL. So we needed the database to be embeddable, so that it could just work for the user without any setup necessary on their part. MySQL, with libmysqld, had the seeds of this in the 4.1 series, it works decently in 5.0, and it's becoming fully supported (AFAIK) in 5.1. PostgreSQL, on the other hand, does not have any such thing. (They have an interesting and cool concept of their own of embedded SQL though. Update: apparently that is part of the SQL standard. Still pretty cool. Still totally different from what we mean when we are talking about an embedded server.) So this leaves us with -- as you guessed -- MySQL. It may not be any particular person's favorite database (although it is for plenty), and I don't know how much overhead it really has in embedded form, but it fit the bill. It's both embeddable and can run standalone on the local or a separate machine (yes, this is not supported yet in A2, but it will be). It is fast and robust for large collections. It is well understood by the development team. And most of all, it is a single-backend solution that fills all of our needs. If you're still unhappy about our decision, I'm sorry. We try to please most and can't please everyone. But we're the ones that develop and support this thing, and so we made a decision based both upon our needs as developers and the real-world use-cases from the collective feedback of thousands of users that have contacted us over the last few years. Please remember that even if most of the comments on the Dot, or to this post, (i.e. much of the sudden visible feedback) are from people that are unhappy with our decision, it is a decision that will actually suit the vast, vast majority of our users better than the other options we currently have. We're a project that is known for being good to our users -- we listen to them, we try to implement features they want, try to be responsive with support. It's one of the things that got us where we are today. So please, dear readers -- put some faith in us. This has not been an easy decision -- we've discussed, we've argued, we've thrown things, we've made up, we've had an after-the-make-up orgy or two -- but in the end it's what we collectively felt was the right way to go, and we feel that, in the long run, it will make Amarok even mores awesomer. Hopefully you'll feel that way too. Continue reading "MySQL in Amarok 2 - The Reality"Wednesday, October 8. 2008
The Old-style Playlist Is Dead, Long ... Posted by Dan Leinir Turthra Jensen
in leinir at
18:25
Comments (41) Trackbacks (0) The Old-style Playlist Is Dead, Long Live The Old-style Playlist
Yes, i know this sounds contradictory to what markey said in his recent blog, but i felt the need to elaborate somewhat on his statement regarding the old-style playlist being gone. While yes, this is entirely true, and good riddance (as it says), this is mainly because it is far too inflexible. The new playlist is vastly superior in all ways, and i shall spend a few moments describing to the doubters just why this is so.
The most often mentioned dislike with the new playlist is, well, the new playlist - or to be more exact, the default layout used in the new playlist. In my original post of mockups of the new playlist layout, i failed to touch on the topic of the layouting system needed for it. This is really where the whole thing comes together and enables those who dislike the new fanciness to get back to using the old, 90s style playlist view. A bit of graphics always helps with understanding such things, of course, so here you go - description of the essential parts of this below What you can see in this mockup right at the bottom is a section reading "Available items for header". What this really means is that this is where you design the layout of your playlist. The header is what is shown in the playlist, and while the default set contains two rows of data and a piece of art spanning two rows, what is not so clear in the mockup is that you are able to add new rows and items, splitting the entire layout up in any way you want to. What this means is that if you really want to, you are able to put all the items on a single line, and the album art gets scaled accordingly. This all depends on someone actually implementing this layouting system/manager N.B.: This mockup also shows how sorting will eventually work in the new playlist Wednesday, October 8. 2008
Missing features in Amarok 2 Posted by Mark Kretschmann
in markey at
13:28
Comments (110) Trackbacks (0) Missing features in Amarok 2![]() (Image copyright by steve) Today on IRC a user asked the following question: "Is there a list of 1.4 features that are still missing in Amarok 2?" As this question comes up rather frequently, I will try to shed some light on this topic here. First of all we have to make the following clear: Not all of Amarok 1.4's features will necessarily return in Amarok 2. Many features will be ported over, a lot of new features will be added, and some old features will simply be dumped for good. Amarok 2 isn't simply a souped up version of Amarok 1, but it's almost completely a new program, and you can't expect it to work exactly like 1.x. If we wanted that, we could simply have taken 1.x and stuck a big "2.0!" logo on it, and be done with it. Now that we have this out of the way, let's get to the meat: Features that will likely return in Amarok 2 Features which have been dumped. Good riddance! So, that's it for now. I've probably forgotten to mention some features, but feel free to add to this list in the comments section. We could then for instance compile a list on the wiki. Tuesday, October 7. 2008Media Devices Applet
To control connection/disconnection of media devices, along with advanced functionality such as the stale-and-orphaned feature for iPods in Amarok 1.4, some kind of GUI is needed. One of the discussed long-term ideas is to add functionality into the root item of a treeview, which has its merits in terms of simplicity. However, imagine that you plug in your device, and want to connect to it. The collection would have to be present in a kind of dormant state in the collection browser until you hit connect in the root item. This could work, but it's admittedly odd to have a "dead" collection sitting around.
Since modifying the root item of a treeview was beyond my current knowledge, I wanted to play with plasma a bit, and it gave me more leeway, both in terms of creativity and space, I decided, at least for now, on a Media Devices applet. Some of you may have seen the ghost of this thing in svn and wondered what the dickens it is, so I'll explain to you its current functionality first, and then some of my visions for it. ![]() This first screenshot shows the applet blank since nothing is plugged in (eventually I want it to say "no devices"). Then, for instance, you plug in your iPod (and for now, mount it outside of Amarok) and bam! ![]() Notice a row has been added for the iPod, representing an icon for what the device is, a connect button, a disconnect button, and its mount point. Then you click the connect button and... You guessed it, it connects (notice the iPod collection on the left). After this, you can work with it like usual, or click the disconnect button and the collection will poof away back to things as you see them in the 2nd screenshot, allowing you to eject the iPod.The Obvious: - This is what I would call alpha. Yes, the icons are a bit inappropriate and admittedly borrowed, but I'm sure I can get someone magnificent to create beautiful specialized icons later on (*wink wink*) - There are still advanced features missing (like showing battery % etc.), but again, this can come later without much trouble once the base concept gets off the ground - Usability! How will people know to go open the media devices applet the first time they try out Amarok with their device? I'm thinking to have the applet open itself on detecting a compatible device for the first time and getting focus to get the user's attention The Vision: So back to the stale and orphaned concept. In 1.4, you had to look at orphaned/stale tracks along with your "normal" tracks in the media browser. Now, you could have a scrollable list each of the stale and orphaned tracks, with the same functionality as before, but now it's not in your way! You can continue to browse through your iPod tracks and the orphaned/stale tracks at the same time. The conclusion: Well this all sounds quite well and dandy, but if I have a good idea of how this is going to work, and basic functionality for connect/disconnect is already implemented on my personal box, why don't I commit and get all the rest of the bells and whistles going? The same lame excuse: life is busy. Also I'd like to commit it in a slightly prettier more usable form with less of the obvious bugs in there. That said, if anyone out there wants to help out with this, let me know, and I can even guide you through the code to get you going. For now though, I'll chug away at it in my spare hours. |
Amarok LinksCalendarQuicksearchCategoriesSyndicate This BlogBlog Administration |

