Thursday, November 19. 2009
Micro-Options, Many-Options, ... Posted by Mark Kretschmann
in markey at
04:21
Comments (24) Trackbacks (0) Micro-Options, Many-Options, No-Options? A practical guide to help you decide.
Not very long ago, Aaron wrote an article about improving our user experience, stating that "Micro-Options Suck". Coincidentally, an article appeared on dot.kde.org only a few hours later, stating the following: "Choice Is Not A Usability Problem".
Ardent readers will notice that there is possibly a contradiction here. In this article I would like to explain why this is not really a contradiction, but rather a misunderstanding. To get us started, let's make a jump back in time (using Flux Capacitor technology): The year is 2004. It's cold. You are alone. There is a house in the north (called "KDE"), and a house in the south ("GNOME"). Press "n" or "s". > n You have entered the house of KDE. It's a big house, full of obscure items. The sheer number of items is highly impressive, but you get confused. It is too much. What is your next step? Press "n" or "s". > s You have entered the house of GNOME. This house is neat, clean, but also kind of empty. There are very few things to play with. You get confused. What is your next step? > I give up. User reboots into Windows. The gist of this little analogy: KDE was wrong. GNOME was wrong. Also - they both were right! This is quite obviously another contradiction. Obviously this means that Mark is not quite right in the head! Well, you're possibly right on both accounts, but let me explain why it actually makes sense: The truth is somewhere in between. KDE has historically been known for being "the nerd's desktop". Basically, we were so proud of having our own desktop that we quickly determined that giving everyone as much freedom as possible is ideal. After all, the competition (Windows) did not offer this. Developer A came along, going "Hey, I have this fancy idea. It's a bit weird, but let me show you!". Developer B was quick to reply: "Hell yeah, why not? After all this is our own desktop. We can make all of our dreams come true. Let's do it!" GNOME has historically been known for being very sparse with options. They did this for a good reason: Someone smart realized that KDE was totally going overboard with options. Too much is too much. Let me show you a classical example: ![]() Now let me show you an example of the Dolphin settings dialog: ![]() Dolphin has won 2009's Akademy Award for "Best Application". The above screenshot demonstrates one of our reasons for choosing it: Peter Penz realized what generations of GUI developers (both in KDE and GNOME) got wrong: The true secret to getting your settings right is choosing the essential ones, while making good choices for defaults that don't need micro-options. Unfortunately, this is not easy, and it separates the good GUI designer from the bad one. In fact making these choices is bloody damn hard, I kid you not. It requires a lot of thought, experience, and taste. But in the end, you, as a developer, are responsible for making these choices. Creating software is not about giving the user a LEGO blocks game. If options get too complex, the users might as well learn programming and do it all by themselves. That's because, if you think about it, choosing an option is programming: You make the program use one code path, or a different one. This is essentially the same as an "if() {}; else() {};" block wrapped in GUI sugar. To sum it up: That's it for this time, I hope you will be able to get something useful out of this blog. Remember, it's not meant as bashing, but rather as useful advice, stemming from many years of experience with these things (we Amarok developers have made our good share of mistakes as well, there is little doubt about that). Thanks for reading Saturday, November 14. 2009Const Correctness
What is const correctness?
It's a programming paradigm that helps writing correct code. In C++, const correctness comprises a set of different techniques, you can read up about them here. In this article however I only want to focus on one form of const correctness, that is object constness. Why should I care about const correctness? Because it increases type safety, makes your code more easy to understand, and it helps making your code correct. Const objects can be seen as invariants in mathematical terms, that is, objects that do not change, that do not vary. An example in code:
In this example, myNumber is a const object (an int is really a POD type, but let that not distract us). This indicates that I cannot change the object. And indeed, if I were to try that, the compiler would complain about it, which is a good thing. It helps preventing mistakes by accidentally changing this object later on. Additionally, it helps readability, because anyone can clearly see that myNumber is not meant to be changed. So you see, writing that "const" before it is a little bit of work, but it has a big pay-off. I think it's worth it, so I try to use it always in my code. PS: It's likely that somewhere in this article I made a slight mistake or a bad wording. With these things, you will always find a C++ expert who will point out something, because C++ is very pointoutable. So that might happen, but I'm fairly sure I got the gist right Friday, November 13. 2009Desiderata
In the spirit of Aaron's post, I also wanted to contribute something positive to Planet KDE. However, instead of writing it myself, I leave this to someone who could do it much better than me, Max Ehrmann (1872 – 1945). His work "Desiderata" is one of the most famous prose poems ever written. Famous as it may be, not everyone knows it, and I think that's a shame, as it has much to give.
Enjoy this little off-topic post, have a nice weekend, and maybe give some thought to Desiderata; it would make me happy, and maybe you as well. DesiderataGo placidly amid the noise and haste, and remember what peace there may be in silence. As far as possible without surrender be on good terms with all persons. Speak your truth quietly and clearly; and listen to others, even the dull and the ignorant; they too have their story. Avoid loud and aggressive persons, they are vexations to the spirit. If you compare yourself with others, you may become vain and bitter; for always there will be greater and lesser persons than yourself. Enjoy your achievements as well as your plans. Keep interested in your own career, however humble; it is a real possession in the changing fortunes of time. Exercise caution in your business affairs; for the world is full of trickery. But let this not blind you to what virtue there is; many persons strive for high ideals; and everywhere life is full of heroism. Be yourself. Especially, do not feign affection. Neither be cynical about love; for in the face of all aridity and disenchantment it is as perennial as the grass. Take kindly the counsel of the years, gracefully surrendering the things of youth. Nurture strength of spirit to shield you in sudden misfortune. But do not distress yourself with dark imaginings. Many fears are born of fatigue and loneliness. Beyond a wholesome discipline, be gentle with yourself. You are a child of the universe, no less than the trees and the stars; you have a right to be here. And whether or not it is clear to you, no doubt the universe is unfolding as it should. Therefore be at peace with God, whatever you conceive Him to be, and whatever your labors and aspirations, in the noisy confusion of life keep peace with your soul. With all its sham, drudgery, and broken dreams, it is still a beautiful world. Be cheerful. Strive to be happy. Max Ehrmann, Desiderata, Copyright 1952. Tuesday, November 10. 2009
Sansa Clip (or: How I learned to ... Posted by Mark Kretschmann
in markey at
08:35
Comments (22) Trackbacks (0) Sansa Clip (or: How I learned to love Skullcandy Chops)![]() So, long story short, or maybe long, we'll see after I've finished writing this: I had been looking for a new portable music player for a while. My old one was crappy, to say the least. Incidentally I had talked about this on IRC, and fellow KDE developer Will Stephenson said he was also on the look for a new player. So we googled a bit. I had some special wishes for my "ideal" device, and Will eventually found one that exactly fitted my needs. What I needed was this: As it turned out, the Sansa Clip is exactly the device I had dreamed of. Impatient as I (notoriously) am, I had to head out instantly and buy the thing (4GB version costs about 60 USD). Loaded some music on it, went on a jogging tour today, and what can I say: The thing rocks Additionally, I bought these sweet headphones, cause the bundled ones didn't really cut it for sports. They have a fancy name, "Skullcandy Chops", and their sound quality is fancy too. Also ideal for sports, as they are not classical earbuds, but instead they are worn close to the ear, which I like. With standard earbuds the things tend to fall out of my ears, apparently I have weird ears or something. ![]() Disclaimer: I do not work for Sandisk, nor do I work for Skullcandy. They did promise me a "really cool holiday" though for making some promotion. We'll see about that. Friday, November 6. 2009
Phonon Bugday, join the fun! Posted by Mark Kretschmann
in markey at
08:58
Comments (2) Trackbacks (0) Phonon Bugday, join the fun!
Hello goodpeople,
this is a quickreminder for all kdefriendly bug triagers and otherfolks. Ok, I'll stop with the strangetalk now... ![]() We are going to have a Phonon Bugday on the 8th of November, which is really quite soon, if you think about it. Phonon is a very central component of KDE and Qt, but like all software it does contain a number of bugs. It doesn't have to stay this way though Come join us at our Bugday. Developers, triagers, normal users - you can all be helpful. I'm pretty much convinced that many of Phonon's issues are fairly low hanging fruits that could be fixed rather easily, if we all help out a bit. Also, Phonon's new maintainer Martin Sandsmark is pretty awesome, and I'm confident that with him at the helm we will be able to make a real difference. Join us! PS: The event is not actually happening in Buğday, but rather on irc.freenode.net, channel #phonon. Bringing Kebab is totally fine though. Monday, November 2. 2009
Amarok joins the Software Freedom ... Posted by Mark Kretschmann
in markey at
13:52
Comments (0) Trackbacks (0) Amarok joins the Software Freedom Conservancy![]() Do you like Amarok? If so, we have some good news for you: The Amarok project has joined the Software Freedom Conservancy. This move allows donors to give tax-deductible donations, and it increases the transparency in the spending of Amarok's funds. This greatly helps us to be more efficient, and focus on what we really do best: Creating kick-ass software. At the same time, we stay fully committed to the KDE project! Amarok is, and will always stay, a fully committed project under the KDE umbrella. We have coordinated this move with the KDE e.V. board, who approves of our endeavors. If you want to help us making Amarok even better, head over to our official announcement, and support our fund drive Our development speed is faster than ever before, and we are highly motivated to deliver you the best music player possible. The upcoming Amarok 2.2.1 release will bring our users features that many of you have been waiting for, and we constantly aim to improve our quality too. I guarantee you that with my (hopefully) good name. Thanks for supporting us in advance. Mark Kretschmann, Amarok project founder and developer. Thursday, October 15. 2009
Amarok 2.2.1 - We're getting there! Posted by Mark Kretschmann
in markey at
05:18
Comments (40) Trackbacks (0) Amarok 2.2.1 - We're getting there!
Here's a little teaser article, showing off some of the work we're doing for the upcoming Amarok 2.2.1. As some of you may know (or maybe not), we have decided to turn the 2.2 "Sunjammer" series into a longer lasting series, similar to the 1.4.x "Fast Forward" cycle. This means, we're not branching to 2.3 immediately, but instead we will make new releases about every six weeks, each including a number of new features and bug fixes.
This style of working was partly made possible by our migration to the Git version control system. I can only say, for us the migration was fully worth it. Our development speed has skyrocketed, as we are now able to develop new features in different branches, test them safely, and then merge them into our master branch. Also, the number of third-party contributions has increased dramatically, thanks to Git and Gitorious. You can find our Git repository online here: http://gitorious.org/amarok These are some of the improvements in 2.2.1 so far: Words are one thing. We want screenshots! So here goes - please remember, it's a preview snapshot: Monday, October 12. 2009
Chromium: It really shines Posted by Mark Kretschmann
in markey at
15:14
Comments (32) Trackbacks (0) Chromium: It really shines![]() Have you tried it yet? I'm running the Chromium "Daily Builds" on Kubuntu 9.10. At first, not very long ago, I was quite skeptical about Chromium. It looked unfamiliar, it seemed to lack features. Then, about a week ago, I gave it another try. And boy, has it improved! To give you some back story on my personal history of browser usage, I'm a die hard Opera fan. I've been using Opera since about 10 years, and nothing ever came close to its performance, usability, and elegance. In fact Opera used to be the last remaining non-free software that I used on a daily basis. While I'm a huge supporter of Free Software, I didn't feel bad about using it, as it was just so damn good. Still, I would have preferred a good free alternative, but nothing else did it for me (including Firefox). Now, what makes Chromium so great? Let me just list a few things that I love about it: Where there is light, there is also shadow, and there is one thing about Chromium that I find a bit sad: Why did they not use Qt from the beginning? Qt would have provided a perfect foundation for a cross-platform application. Google probably had its reasons for doing it differently (I assume it's simply time-to-market, they made a pure Windows version first), but that's still one aspect that they could have done better. Anyway, Chromium's GUI is rather simplistic, so the choice of toolkit doesn't make a very big difference to the user. Friday, October 9. 2009SmartPointerList
Here's a little class that we developed for Amarok, and I thought it might be interesting for some of you as well (maybe KDElibs?). What it does is the following:
Assume that you have a list of pointers to objects (they must be QObject subclasses). Sometimes such lists are used to cache pointers in multiple places, but the objects they contain (as pointers) might be destroyed at some point. In Amarok we had this problem with QAction: Many classes stored lists of pointers to actions, but sometimes actions were destroyed (e.g. on track change), and the lists got out of sync. You could probably see this as a design flaw, but we came up with a simple solution: SmartPointerList is a QList for pointers which automatically removes a pointer when the object it refererences is destroyed. A simple idea (by myself), implemented with help from Ian Monroe and Max Howell (of Amarok/FileLight/DragonPlayer/Last.fm fame). In our case, it solved many ugly crashes that were pretty hard to debug. If you feel the class could be useful to you, have a look here: http://gitorious.org/amarok/amarok/blobs/master/src/SmartPointerList.h http://gitorious.org/amarok/amarok/blobs/master/src/SmartPointerList.cpp Enjoy Tuesday, May 26. 2009
Amarok on Windows: Get Your Nightly ... Posted by Mark Kretschmann
in markey at
13:59
Comments (19) Trackbacks (0) Amarok on Windows: Get Your Nightly Builds![]() Many users have been asking us lately for updated builds of Amarok 2.1 for Windows. Here's some good news for you folks! Thanks to our tireless KDE-Windows crew (Patrick Spendrin and others) you can now get nightly builds for Windows right here: http://mafia-server.net/amarok-nightly Apparently these builds are pretty solid. Quoting a user from our forum: "Wow the nightly build version is way different. After using it for some days I can say that it seems to be much more stable than 2.0.1. Good job." So, give it a try Friday, April 3. 2009
A-Team at OpenExpo 2009, Berne ... Posted by Mark Kretschmann
in markey at
15:52
Comments (9) Trackbacks (0) A-Team at OpenExpo 2009, Berne (Switzerland)![]() (Image kindly provided by Nick Schenker) On April 1st and 2nd (no joke there) a delegation from Amarok visited OpenExpo in Berne (Switzerland), together with our FOSS homies from KDE and Kubuntu. The photo above shows me (left) and Sven Krohlas in action, that is, drinking beer and having cake. Apart from that we also had the chance to talk to many Amarok users, and demonstrated a preview of the upcoming 2.1 release, on Sven's 20 years old laptop - the thing operates on love and glue strip mostly. (hint: wanna help our project a bit? Donate a new lappy to Sven!) Many users expressed their sincere happiness about Amarok and about meetings its devs, which of course made us very happy. It's always a rewarding feeling to see that one's work is appreciated. Others offered mostly fair and balanced criticism, which we took seriously and promised to remedy in upcoming releases (2.1 is going to fix a lot of those already). Other highlights included: What didn't sit so well with me: All in all, the event was decent and we had a lot of fun (as always my patience was stretched thin, but people are used to that by now;) Thanks to everyone who participated, thanks to our users and friends, and especially to Nick, with whom I had a good conversation afterward. PS: In 2003, a crack developer squad was sent to prison by a military court for a hack they didn't commit. They promptly escaped from a maximum security stockade to the Amarok Underground HQ. Today, still wanted by the government, they survive as coders of fortune. If you have a problem, if no-one else can help, and if you can find them, maybe you can hire the AMAROK-TEAM! Friday, April 3. 2009
Building Amarok SVN in $HOME - An Update Posted by Mark Kretschmann
in markey at
14:01
Comments (4) Trackbacks (0) Building Amarok SVN in $HOME - An Update![]() (Image copyright by Wade Olson) Ahoy maties, in an earlier blog article I had explained how to install Amarok from SVN in your HOME directory. This guide was overall quite successful, but recently David Faure pointed out an error in setting $KDEDIR (thanks David!). The old article recommended setting $KDEDIR in .bashrc, which could lead to odd side effects, like Amarok not finding its plugins, or crashing on exit. So I have now updated the article with a better method, which fixes these issues. Additionally, Amarok 2.1-SVN now has some new build dependencies (like taglib-extras), which are detailed in our current README, but not in the old article. Fortunately Stephan Jau wrote this HOWTO article, which also describes these new additions. It's mostly aimed at Kubuntu users, but it should also be helpful for users of other distributions. PS: Yes, the image above is the new splash screen in 2.1. Hooray for Wade, his artwork is killer! PPS: Stay tuned for 2.1-beta1 really soon now - the ChangeLog approaches epic proportions Monday, March 9. 2009
Phonon configuration integrated in ... Posted by Mark Kretschmann
in markey at
09:08
Comments (6) Trackbacks (0) Phonon configuration integrated in Amarok 2.1
Just wanted to let you guys know about a small patch I just made, that in my opinion really improves usability in Amarok 2.1:
It is now possible to configure Phonon (the KDE sound system that Amarok 2 uses) directly from Amarok Here's a screenshot, illustrating the whole thing: ![]() Enjoy, and stay tuned for Amarok 2.1 PS: Thanks to Pino Toscano for giving technical advice. Sunday, March 8. 2009
About "Good Music" - Part ... Posted by Mark Kretschmann
in markey at
04:35
Comments (24) Trackbacks (0) About "Good Music" - Part 1: Progressive Rock![]() (Image copyright by denis_m) Hey all, so this is of course a very controversial topic, as music is art, and as with all things art: Tastes differ. Still, as a long time music player developer, I get to hear a lot of music (basically all day), and I also happen to take music quite seriously. However, I should note that I am myself not a musician. Anyway, since I might be somewhat knowledgeable in this field, and as I have been asked to write about this, I will write about my personal music taste. Some recommendations on what I find "good" music My music taste can be coarsely split into three broad categories: 1) Progressive rock 2) Electronica 3) Classical music As a teenager, when I first started to listen to music seriously, one my first loves has been Queen (rock music), and Mike Oldfield (complex symphonic rock). I should note one aspect of my music taste that might be a bit special: I do not tend to neglect or dislike artists that I have once loved (hey, the same is true for relationships!). I rarely say "OK, I might have liked this band 10 years ago, but now I just find them a joke!". Instead, I tend to stick to the artists I liked. E.g. I am still a big fan of Queen and Mike Oldfield today. So the first of my beloved music categories would be progressive rock, also called symphonic rock, because of its similarities in structure with classical music. To this day, I love this genre. Here are a few listening tips: Mike Oldfield Oldfield is probably my favorite musician and composer overall. I know most of his works, named an application in honor of him ("Amarok"), and I admire this man. I personally believe him to be one the greatest musical geniuses of our time (a modern Bach, so to speak). Mike Oldfield covers a wide range of musical genres, from progressive rock to classical, to pop. He's a virtuoso guitar player, but also a multi-instrumentalist (plays something like 15 instruments by himself). I can only strongly recommend to check out his music. And don't just stop at one album - his musical range is too wide to judge him by one album alone. Genesis One of the founders of progressive rock, this band started out with Peter Gabriel as their singer, a part which was later on taken over by Phil Collins (also a drummer). This is a band that has been active for bloody ages (like from the late 60s or so), and is still semi-active today (nowadays just 3 people though). They are a must listen for every fan of the genre. Porcupine Tree Although they don't like to be stuck into this genre (they find it old fashioned), this band represents a modern form of progressive rock, with masterful composition and extremely good musicianship. The mastermind behind the band is front man Steve Wilson, who also happens to run many other musical side projects. PS: One Amarok developer, Nikolaj Hald Nielsen, is a major fan of this band. If you are interested in them, talk to him sometime Some more bands of this genre that I highly appreciate are: Marillion, IQ, Fish, Magenta (Welsh band), Pendragon. So I've just realized that this blog has already become quite long (personally I hate reading long blogs - thanks ADHD!), so I've decided to split it up, and to write articles about the other important genres another time. But I can already tell you so much: Electronica (electronic music) has become very important to me, and is currently probably the genre I listen to most often. So long, and thanks for reading Saturday, January 31. 2009Identi.ca![]() As I had blogged a while ago, a number of Amarok teamsters are quite active on Twitter. I've personally been a big fan of Twitter (and still am), but lately a nice FOSS alternative has surfaced, named Identi.ca. Similar to Twitter, Identi.ca is a micro-blogging service, appealing to people like me who just love love to talk a lot. So anyway, recently there has been a shift in our community to move from Twitter to Identi.ca. I did just the same, and you can now follow my updates here: http://identi.ca/markey PS: There are a few things that still bug me about Identi.ca currently. Among them the fact that the default page shows me submissions of random people I don't know (nor want to know), instead of my home page. Another one being that the site insists on cutting off my chin in the avatar picture. Just for the record: I do have a chin, even with a tiny beard attached to it, as other photos can prove |
Amarok LinksCalendarQuicksearchCategoriesSyndicate This BlogBlog Administration |

