We must not believe the many, who say that only free people ought to be educated, but we should rather believe the philosophers who say that only the educated are free. – Epictetus
The KDE-Edu team is looking for feedback from their users to improve their applications and to find out where to invest the limited time they have. If you are a student, teacher or just casual user of any of these applications we are looking for your feedback:
- Kanagram
- KHangMan
- Kiten
- KLettres
- KWordQuiz
- Parley
- KAlgebra
- KBruch
- Kig
- KmPlot
- Blinken
- KGeography
- KTouch
- KTurtle
- Kalzium
- KStars
- Marble
- Step
- Cantor
- Rocs
We created a short survey (1 page – about 5 minutes) where you can tell us about the 3 problems you have with any of the applications listed above as well as give some general feedback. Those 3 problems can be small or big. We want to know about them. This feedback is incredibly valuable to the team so if you know anyone who should take this survey but doesn’t read this blog please send them a link.
Make KDE-Edu rock even more!
PS: If you want to help with any of the programs listed above (by writing code, creating example content, documentation, promotion or anything else) please get in touch with me.
a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_vlB73cxVKVI/SwY4XXXdKzI/AAAAAAAAALg/dNAQ0Cpl69s/s1600/amarokauthor.png"img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 390px;" src="http://3.bp.blogspot.com/_vlB73cxVKVI/SwY4XXXdKzI/AAAAAAAAALg/dNAQ0Cpl69s/s400/amarokauthor.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5406070376765401906" //abr /divbWhere have you been?/b/divdivbr //divdivSo lately I've been occupied by a few things:/divdivulliFamily issues/liliWorking for a startup company/liliUniversity bureaucracy/liliJobhunting/li/uldivWhich is not to say I've been without free time. What have I been using my free time for?/divdivulliStudying natural languages more in-depth/liliReading technical books, and inspiring books/liliBeing with friends, having fun and discussing the near and long-term future/li/uldivSo where does this leave open-source coding, for which I've even been given the honor of being listed as author for a great project like Amarok? After all, I have a vested interest in continuing to improve something I spent so much time on. I'll explain a few factors of the times that I've tried to get back into coding for it./divdivbr //divdivbHave you been coding in secret?/b/divdivbbr //b/divdivThe nice thing about using git for development is that I can continue to work on a feature or large fix on the side, and then deploy it when ready. That said, this is the cycle I usually go through when I feel I'm going to have enough time and effort to code on Amarok:/divdivbr //divdivolligit pull/lilimake install/liliCheck out new stuff/liliFigure out what I want to fix/add/work on/liliStart working on it in a git branch/liliRealize after a few hours, that this is going to take 1-2 weeks of dedicated coding, and stop./li/oldivI then may come back in a week or two, delete the old branch because I feel I was going about things the wrong way, and repeat this cycle. This is by no means productive, but is something I end up getting caught in lately./divdivbr //divdivbClearly this doesn't work, so what now?/b/divdivbr //divdivSo this time around I'm trying something new. I'm fully-documenting the issues I want fixed and how to go about them, and sitting on them a bit to see if I can mature them before coding. Also I'm trying to break them up into doable smaller pieces, so I can at least get checkpoints in progress, otherwise this isn't going to work at all./divdivbr //divdivbAnd in the immediate future?/b/divdivbbr //b/divdivI am now entering my last two trimesters of undergraduate studies before graduation. Between work, school and family, I highly doubt I'll have the motivation to work on open source on the side. I'm aware there are others who can do this, and have that motivation, and I look up to and respect them, but I lack that. I hope that this next summer, I'll find myself more motivated and free./div/div/div/divdiv class="blogger-post-footer"img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1504418270400156450-7913242071727466165?l=awainzin-foss.blogspot.com' alt='' //div
Not very long ago, Aaron a href='http://aseigo.blogspot.com/2009/10/two-simple-things-to-improve-user.html'wrote an article/a about improving our user experience, stating that em"Micro-Options Suck"/em. Coincidentally, an a href="http://dot.kde.org/2009/10/21/kde4-demonstrates-choice-not-usability-problem"article/a appeared on dot.kde.org only a few hours later, stating the following: em"Choice Is Not A Usability Problem"/em.br /
br /
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):br /
br /
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".br /
br /
nbr /
br /
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".br /
br /
sbr /
br /
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?br /
br /
I give up. emUser reboots into Windows./embr /
br /
br /
The gist of this little analogy:br /
br /
strongKDE was wrong. GNOME was wrong. Also - they both were right!/strongbr /
br /
br /
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: emThe truth is somewhere in between./embr /
br /
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!"br /
br /
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:br /
br /
!-- s9ymdb:237 --img class="serendipity_image_center" width="778" height="710" style="border: 0px; padding-left: 5px; padding-right: 5px;" src="http://amarok.kde.org/blog/uploads/crypto_ssl.jpg" alt="" /br /
br /
br /
Now let me show you an example of the Dolphin settings dialog:br /
br /
!-- s9ymdb:238 --img class="serendipity_image_center" width="520" height="494" style="border: 0px; padding-left: 5px; padding-right: 5px;" src="http://amarok.kde.org/blog/uploads/dolphin_settings.png" alt="" /br /
br /
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 emchoosing the essential ones, while making good choices for defaults that don't need micro-options./embr /
br /
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 emis/em 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.br /
br /
To sum it up:br /
br /
liBefore adding an option, think hard about it. Could the same be achieved with a smarter algorithm? Often options are bad excuses for deciding between one bad implementation and another bad one. Find a good one!/libr /
br /
liDon't try to solve the problem by removing all options. Some options are very useful, and they are actually needed. Finding out which of these are needed is the developer's task. It's a hard task, but it can be done./libr /
br /
liConsider asking professionals. We have a KDE Usability team, comprised of real experts on this topic. Among them is Celeste, a member of the KDE board. She knows what she's talking about, and she's generally very helpful. Don't be shy, ask them!/libr /
br /
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).br /
br /
br /
Thanks for reading img src="http://amarok.kde.org/blog/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" /br /
br /
As you might have noticed from other blogs on PlanetKDE the KDE promo people have been quite the busy bees this weekend in Stuttgart. Getting together with great people, getting stuff done, having good beer and food -> great sprint. And of course a sprint with Jos and me has to include at least one proper group hug 

(fltr: Valerie, Kenny, Martin, Claudia, me, Rainer, Justin, Jos, Eckhart, Ingo, Stuart, Daniel, Luca, Cornelius, Frank, Troy, Frederik)
It was a great weekend which got us a lot further to the 4.4 release announcement, the rebranding of KDE, a new KDE booklet to give out at events, a redesign of www.kde.org and more. It is amazing what you can get done if you get the right people together for 3 days.
Most important for me though was finally getting to know Ingo, Stuart and Luca. It was their first KDE meeting. I hope we introduced them properly (including group hugs and old stories about KDE)
It feels good to know that that part of the forum team got even closer to our community now after doing an incredible job for a while already.
Getting feedback on stuff like the rebranding discussion or the move to Git from the people who helped start KDE was very valuable. We should definitely make sure to keep this connection as long as possible. A simple “been there – done that – it was an incredibly stupid idea” can save everyone from quite some headache and bike shedding.
I miss you all already… Damn.
But the promo people were not the only busy bees. No the Amarokers decided it is time to release 2.2.1. It includes improvements to podcasts, collection scanning, automatic script updating and much more. Read the release notes and download it. Of course don’t forget it is Rokvember

So there's this language called Go from Google now, whose first impression to a programmer is "this is some odd-looking C" code. I do notice that the compile and link time is blazing fast, but let's take a look at the binary size of a simple hello world program, compared to C and C++ equivalents.div
br //divdiv---------------------------------/divdivC:/divdiv
br //divdiv#include stdio.h/stdio.h/divdiv
br //divdivint main( void )/divdiv{/divdiv printf("Hello World\n");/divdiv return 0;/divdiv}/divdiv
br //divdivC++:/divdiv
br //divdiv#include iostream/iostream/divdiv
br //divdivint main( void )/divdiv{/divdiv std::cout "Hello World!" }/divdiv
br //divdivGo:/divdiv
br //divdivpackage main/divdiv
br //divdivimport "fmt"/divdiv
br //divdivfunc main() {/divdivfmt.Printf("Hello World\n")/divdiv}/divdiv---------------------------------/divdiv
br //divdiv
br //divdiv.... and the output sizes?/divdiv
br //divdiv628K 6.out/divdiv16K helloc/divdiv16K hellocpp/divdiv
br //divdiv
br //divdivHmmm... speedy compile, strange-looking code, obscenely fat 39.25 times as large binary for a hello world file. Maybe as the programs grow larger, the overhead gets less and less, I'd need to test that or read an article about it, but from my first impression? Yikes... maybe not yet ready for Qt. But I'll definitely have fun playing with it anyway! =D/div/divdiv class="blogger-post-footer"img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1504418270400156450-7597135398629813682?l=awainzin-foss.blogspot.com' alt='' //div
emWhat is a href="http://en.wikipedia.org/wiki/Const-correctness"const correctness/a?/embr /
br /
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 a href="http://www.parashift.com/c++-faq-lite/const-correctness.html"here/a. In this article however I only want to focus on one form of const correctness, that is object constness.br /
br /
emWhy should I care about const correctness?/embr /
br /
Because it increases a href="http://en.wikipedia.org/wiki/Type_safety"type safety/a, makes your code more easy to understand, and it helps making your code correct. Const objects can be seen as a href="http://en.wikipedia.org/wiki/Invariant_(mathematics)"invariants/a in mathematical terms, that is, objects that do not change, that do not emvary/em. br /
br /
An example in code:br /
br /
prebr /
const int myNumber = 41;br /
int result;br /
br /
result = myNumber + 1;br /
KMessageBox::information( 0, "The meaning of life is: " + QString::number( result ) );br /
/prebr /
br /
In this example, emmyNumber/em is a const object (an int is really a a href="http://en.wikipedia.org/wiki/Plain_old_data_structures"POD/a 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.br /
br /
Additionally, it helps readability, because anyone can clearly see that emmyNumber/em 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.br /
br /
br /
emPS: 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 img src="http://amarok.kde.org/blog/templates/default/img/emoticons/wink.png" alt=";-)" style="display: inline; vertical-align: bottom;" class="emoticon" //embr /
br /
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. br /
br /
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.br /
br /
br /
strongh2Desiderata/h2/strongbr /
strongGo/strong placidly amid the noise and haste,br /
and remember what peace there may be in silence.br /
As far as possible without surrenderbr /
be on good terms with all persons.br /
Speak your truth quietly and clearly;br /
and listen to others,br /
even the dull and the ignorant;br /
they too have their story. br /
br /
strongAvoid/strong loud and aggressive persons,br /
they are vexations to the spirit.br /
If you compare yourself with others,br /
you may become vain and bitter;br /
for always there will be greater and lesser persons than yourself.br /
Enjoy your achievements as well as your plans. br /
br /
strongKeep/strong interested in your own career, however humble;br /
it is a real possession in the changing fortunes of time.br /
Exercise caution in your business affairs;br /
for the world is full of trickery.br /
But let this not blind you to what virtue there is;br /
many persons strive for high ideals;br /
and everywhere life is full of heroism. br /
br /
strongBe/strong yourself.br /
Especially, do not feign affection.br /
Neither be cynical about love;br /
for in the face of all aridity and disenchantmentbr /
it is as perennial as the grass. br /
br /
strongTake/strong kindly the counsel of the years,br /
gracefully surrendering the things of youth.br /
Nurture strength of spirit to shield you in sudden misfortune.br /
But do not distress yourself with dark imaginings.br /
Many fears are born of fatigue and loneliness.br /
Beyond a wholesome discipline,br /
be gentle with yourself. br /
br /
strongYou/strong are a child of the universe,br /
no less than the trees and the stars;br /
you have a right to be here.br /
And whether or not it is clear to you,br /
no doubt the universe is unfolding as it should. br /
br /
strongTherefore/strong be at peace with God,br /
whatever you conceive Him to be,br /
and whatever your labors and aspirations,br /
in the noisy confusion of life keep peace with your soul. br /
br /
strongWith/strong all its sham, drudgery, and broken dreams,br /
it is still a beautiful world.br /
Be cheerful.br /
br /
Strive to be happy. br /
br /
br /
emMax Ehrmann, Desiderata, Copyright 1952./embr /
br /
many of you have probably seen in passing jeff's blog post announcing camp kde 2010. maybe some of you even remember what it is! well i'll refresh your memory anyway. campkde is the western hemisphere's response to akademy.div class=serendipity_imageComment_left style=width: 300pxdiv class=serendipity_imageComment_imga class='serendipity_image_link' href='http://amarok.kde.org/blog/uploads/hackers_beach.jpg' onclick=F1 = window.open('/blog/uploads/hackers_beach.jpg','Zoom','height=348,width=515,top=283.5,left=1190,toolbar=no,menubar=no,location=no,resize=1,resizable=1,scrollbars=yes'); return false;!-- s9ymdb:232 --img class=serendipity_image_left width=300 height=200 src=http://amarok.kde.org/blog/uploads/hackers_beach.serendipityThumb.jpg alt= //a/divdiv class=serendipity_imageComment_txthacking discussions take on a whole new meaning when on a beach like this/div/div it is like the little brother that can't stand being ignored so he decides to make things happen himself. it's quite probably analogous to the overlooked friend trying to make himself known.br /
br /
br /
well, this post is here to remind you. campkde 2009 was one of the best conferences i've ever attended, and I look forward to it happening again. even though a bunch of hackers descended upon some tropical beach resort, we were productive. had you come upon us at 10pm you would have seen a 20odd group of people sitting in chairs a few feet from the beach, drinks in hand, coding or writing or discussing away.div class=serendipity_imageComment_right style=width: 300pxdiv class=serendipity_imageComment_imga class='serendipity_image_link' href='http://amarok.kde.org/blog/uploads/talk_audience.jpg' onclick=F1 = window.open('/blog/uploads/talk_audience.jpg','Zoom','height=348,width=515,top=283.5,left=1190,toolbar=no,menubar=no,location=no,resize=1,resizable=1,scrollbars=yes'); return false;!-- s9ymdb:233 --img class=serendipity_image_right width=300 height=200 src=http://amarok.kde.org/blog/uploads/talk_audience.serendipityThumb.jpg alt= //a/divdiv class=serendipity_imageComment_txthard at work in the conference room/div/div the lure of the perfect beach was not enough to tear attendees away from the talks that happened during the day. br /
br /
this winter campkde 2010 will be held at UCSD in san diego, california. and I should really rephrase that, because january in san diego is not really winter in any real sense of the term. point is, campkde 2010 will be awesome. and you should be there. because a conference is really only as good as it's attendees, and without you, dear kde community, it just won't be the same. so think of the weather, think of the cool kde dudes you haven't seen in a few weeks/months/years, and register now! the homepage is here:a href=http://camp.kde.org title=Camp KDEcamp kde homepage/abr /
br /
so, without further ado: div class=serendipity_imageComment_right style=width: 320pxdiv class=serendipity_imageComment_img!-- s9ymdb:235 --img class=serendipity_image_right width=320 height=66 src=http://amarok.kde.org/blog/uploads/campkde2010_logo.png alt= //divdiv class=serendipity_imageComment_txtcampkde 2010/div/divbr /
br /
br /
br /
br /
br /
br /
also, i had some spare time... so just in case you guys are going to forget about campkde, here's a nice little scripted plasmoid to tell you when it is:div class=serendipity_imageComment_center style=width: 474pxdiv class=serendipity_imageComment_imga class='serendipity_image_link' href='http://kde-look.org/content/show.php?content=115268' onclick=F1 = window.open('http://kde-look.org/content/show.php?content=115268','Zoom','height=281,width=489,top=317,left=1203,toolbar=no,menubar=no,location=no,resize=1,resizable=1,scrollbars=yes'); return false;!-- s9ymdb:236 --img class=serendipity_image_center width=474 height=266 src=http://amarok.kde.org/blog/uploads/campkde_plasmoid.jpg alt= //a/divdiv class=serendipity_imageComment_txtcampkde 2010 plasmoid!/div/divbr /
br /
you can install that from here: a href=http://kde-look.org/content/show.php?content=115268 title=kde-look plasmoidkde-look plasmoid page/a or from ghns in plasma directly!
!-- s9ymdb:229 --centera href='http://www.sandisk.com/products/sansa-music-and-video-players/sandisk-sansa-clip-mp3-players.aspx'img class="serendipity_image_center" width="600" height="338" style="border: 0px; padding-left: 5px; padding-right: 5px;" src="http://amarok.kde.org/blog/uploads/sansa_clip.jpg" alt="" //a/centerbr /
br /
So, long story short, or maybe long, we'll see after I've finished writing this:br /
br /
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 a href="http://www.kdedevelopers.org/blog/77"Will Stephenson/a 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:br /
br /
liSmall size of the device. With a bigger device, I might as well carry a smartphone./libr /
liRugged and water proof. I'm an avid jogger, I run in all weather conditions, and I sweat a lot while running./libr /
liFlash based. For jogging I need the device to be shock resistant, HDD is out of the question./libr /
liSupporting all formats. I don't want to transcode constantly, so I need MP3, OGG, FLAC, AAC, etc./libr /
liUsable with Amarok. What Amarok does really well is MTP, so I wanted that./libr /
liNot made by Apple. For various reasons (ethical, reality distortion field, etc) I boycott Apple products./libr /
liNo fancy schmancy video features. I need the device to do one thing well, that is playing music./libr /
liLong battery life. Preferrably easily chargable with the my PC./libr /
br /
As it turned out, the a href="http://www.sandisk.com/products/sansa-music-and-video-players/sandisk-sansa-clip-mp3-players.aspx"Sansa Clip/a 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 img src="http://amarok.kde.org/blog/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" / I'm a happy camper now. The Clip worked out of the box, the original firmware from Sandisk supports all formats I need (including OGG and FLAC), so I didn't even have to upgrade it (or install Rockbox).br /
br /
Additionally, I bought these sweet headphones, cause the bundled ones didn't really cut it for sports. They have a fancy name, a href="http://www.skullcandy.com/shop/configable/index/links/id/1006/cid/6/""Skullcandy Chops"/a, 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.br /
br /
!-- s9ymdb:230 --centera href='http://www.skullcandy.com/shop/configable/index/links/id/1006/cid/6/'img class="serendipity_image_center" width="250" height="250" style="border: 0px; padding-left: 5px; padding-right: 5px;" src="http://amarok.kde.org/blog/uploads/skullcandy_chops.jpg" alt="" //a/centerbr /
br /
br /
emDisclaimer: 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./embr /
divYakuake is a great drop-down terminal, but often I find the need to store several things on my clipboard, and was thinking a yakuake-like program that has tabbed sessions of kate/kwrite would be really useful as well. /divdivbr //divI'm not sure if there exists an application that already does this, but would anybody be interested in this kind of program?div class="blogger-post-footer"img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1504418270400156450-2790194131000153404?l=awainzin-foss.blogspot.com' alt='' //div
Remember my Social Media Guide For Free Software Projects? Skreech was so kind to point me to a really great un-example site: Microsoft’s social media page for Windows 7, where they show what people are saying about it. Go take a look.
Now there are a few interesting things to mention about this page.
Quite fast, huh? Lots of people talking about it. Are those messages real-time? Nope. The page is just made to give you the impression they are. I picked a few random ones and got pretty much everything between 3 hours and 8 days old. See the slider at the top? Yea you can slow it down to actually be able to read it unlike the default.
If you feel like it just watch it for a few minutes and watch the same messages appear again. It started to loop after about 10 minutes here.
Now let’s take a look at the actual content of the messages shown. Windows 7 must be the most awesome operating system out there. In the 30 minutes or so I watched the stream there were 2 messages with a slightly negative touch. Every single other message praised it. Every single one. Now call me biased but I don’t believe it. So I had a look at the actual Twitter search page for Windows 7 and Win7. And indeed you find tweets, that are less positive, like this, this, this, this, this, this, this, this, this, this or this. They do however have little stabs at Linux and Apple in their selected tweets (”I though Apple had it together but with Win7 out of the door they better get moving.” and similar.). This page seems to indicate that they do indeed filter for family friendliness and so on. Fair enough. But it also says that they do not filter out the negative stuff. Uhhhhm yes you do.
The Facebook messages are taken from the Windows fan page on Facebook. Now my guess is that the audience of said fan page is slightly biased
but I’ll let that one slide as there aren’t a lot of good ways to get such messages out of Facebook.
There is probably more but those are the things that immediately jumped into my eye. Please leave comments if you find other gems.
Now the sad thing is: From my quick check of Twitter and Co it seems that Windows 7 is indeed good according to quite a few people. There are indeed a lot of people tweeting about it. There would have been no need to hide behind filtering and sneaky web-apps trying to create an illusion of a lot of communication. This would have been a great opportunity to show what people really think about it and gain credibility. But it failed. It failed to be honest and instead took the secure way. If you want to take the secure way stay away from social media!
Wanna learn how to do it right? Get in touch with me and have a look at buzz.kde.org (which is indeed live and unfiltered and could use some coding help – ping me if you want to help).
Hello goodpeople,br /
br /
this is a quickreminder for all kdefriendly bug triagers and otherfolks. Ok, I'll stop with the emstrangetalk/em now...br /
br /
!-- s9ymdb:228 --a href='http://phonon.kde.org/'img class="serendipity_image_center" width="420" height="159" style="border: 0px; padding-left: 5px; padding-right: 5px;" src="http://amarok.kde.org/blog/uploads/phonon_logo.jpg" alt="" //abr /
br /
br /
We are going to have a a href="http://phonon.kde.org/"Phonon/a 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 img src="http://amarok.kde.org/blog/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" /br /
br /
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.br /
br /
br /
Join us! img src="http://amarok.kde.org/blog/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" /br /
br /
br /
PS: The event is emnot/em actually happening in a href="http://blogs.fsfe.org/myriam/2009/10/travelling-to-bugday/"Bu#287;day/a, but rather on irc.freenode.net, channel #phonon. Bringing Kebab is totally fine though.br /
br /
Leo and I went to California for the GSoC mentor summit to talk to lots of other mentors and admins about Summer of Code and whatever else was on our mind. In short: absolutely awesome and definitely worth the travel (which included lots of hours in airplanes and airports for me including an unplanned 6 hour stay in Salt Lake City – thank you very much border control).
The energy you get when you put that many geeks together is amazing. And at the same time it is quite different from conferences where you only have one project present like Akademy. It shows you that people working on competing projects are actually pretty cool people when sitting in a hot-tub with them *g*. (If course I knew that one before but it feels good to be reassured about it.) It shows you a lot of white spots on your personal open source map. Any idea what the Boost community looks like? Any idea how huge the Apache Software Foundation is? Now I do. It has definitely been interesting for me to see how different communities are managing their day-to-day business and especially GSoC. And the most surprising thing for me: Even pretty dysfunctional communities can release decent software
I also learned that you can indeed have a session on minorities in free software and actually get useful results everyone can apply in their communities instead of getting derailed and discussing colors of random bike sheds. (They should all be blue and have pink doors of course.)
Check out the session notes (not 100% complete at the time of this post but hopefully soon), the one thing people learned at the summit and pics.
Thanks a lot to Google and everyone who attended the summit for making this happen. It has been 2 intense days and a great experience.
After the summit I stayed another 2 days with Alejandro to check out the area. Thanks so much for offering a place to crash. We went to San Francisco – what a great city – and met up with Gary and blauzahl who were great hosts. (Sorry I wasn’t more talkative that night folks but the previous days really drained my energy.) And it again showed me one of the best things about our community: No matter where I go on this world, friends are never far. I uploaded a few pictures to my Flickr page.

I’ll definitely have to return – not just for the massage chairs and hot-tub.
A couple of weeks ago I spent a long period of time looking at ways to increase scanning speed. Yes, again. I had written previously (here and here) on changes I'd made to increase the speed of scanning collections, and I'd made a lot of other changes that I didn't write about. These certainly helped in many situations, and made significant differences for particular users, but overall we still had a large speed boondoggle: the number of queries issued per track to the database.
This number was at least three. At the very minimum, assuming the artist, album, genre, composer, and year had been cached, you had a lookup for the uniqueid, a lookup to check for whether the track was part of a compilation, and an insert. This number could be significantly higher in some situations; but these database queries were a large part of the reason that a scan might run, finish disk I/O, and then spend quite a long time eating up CPU time before it was done.
I looked at increasing the number of values I was pulling in using UNION queries, which was currently up to five values (depending on whether they were already cached). I also looked at prepared statements, which it turns out were not likely to give us a large speed bump and are an absolute and utter pain in the ass when using the C API as we are. (We use the C API for historical reasons; also, the official C++ API is not easily available in many distributions, and there are many unofficial contenders.)
Finally, I looked at ripping the guts out of the scan result processor and doing what several of us devs had decided would probably be the best way to improve speed, but was at the same time the most challenging: replacing the SQL statements with local memory storage, populating these at the beginning of a scan and re-populating the database at the end. It wasn't easy. I selected data structures very carefully for speed, looking at how often each query would be run and the time complexities of insertion and lookup into various types of structures. In addition, because of a few complex queries using joins, the behavior we needed could only be emulated by using very complex data structures (one of them is a QHash<QPair<int, QString>, QStringList*>; another is a QHash<QString, QLinkedList<QStringList*> *>). I also wanted to minimize memory usage...I did some rough back-of-the-hand calculations which indicated that using my design, for the vast, vast majority of collections, memory usage during the scan was likely to go up by only a couple of megabytes at the very most, which would be reclaimed at the end.
In addition, I implemented logic to drastically decrease the total queries needed for insertion. Since I'm constructing the final queries from the data structures, I could easily do insertion of multiple values at once. So now the database is queried at the start to see the maximum query size it will accept; then values for insertion are appended to the query up until this value is hit, at which point the query is run and a new query begun. By default I think this is one megabyte for most installations, which means that instead of possibly thousands upon thousands of insertion queries (depending on the size of your collection), you'd have to have an absolutely extraordinarily large collection to have more than 25 or so queries for the entire scan. Since there is not only round-trip delay sending data to and receiving responses from the database but also the database must parse each query each time it's run (the purpose of prepared statements is to reduce this), then this makes a drastic difference. To put it another way, the number of queries per track has gone from a minimum of three to an asymptotic value of zero.
Overall, the work seems to have paid off rather nicely. Benchmark reports that I got back indicated anywhere from 30% to 300% gains in the total time for a scan, depending on size of collection and your particular I/O throughput/CPU/etc.
I call this the Ultimate Speed Bump in the title because there is far less that can be done from this point on to increase speed, at least as far as I can currently tell -- this was the Big Mama, the elephant in the room. But hopefully it will increase scan processing enough that further increases won't really be so much of a necessity anymore.
One other data point: the database is now case-sensitive, which is something we've intended to do for a long time but is now being done. It's been a very long-standing feature request that we've finally implemented (we wanted it too), and thankfully it wasn't much work to do this and change the appropriate points in the rest of the code.
(By the by, this will all be in 2.2.1 -- enjoy!)
!-- s9ymdb:227 --a href='http://amarok.kde.org/en/node/700'img class="serendipity_image_center" width="598" height="448" style="border: 0px; padding-left: 5px; padding-right: 5px;" src="http://amarok.kde.org/blog/uploads/splash_screen3.jpg" alt="" //abr /
br /
Do you like Amarok? If so, we have some good news for you:br /
br /
The Amarok project has joined the a href="http://conservancy.softwarefreedom.org/"Software Freedom Conservancy/a. 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. br /
br /
If you want to help us making Amarok even better, head over to our a href="http://amarok.kde.org/en/node/700"official announcement/a, and support our fund drive img src="http://amarok.kde.org/blog/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" /br /
br /
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. br /
br /
Thanks for supporting us in advance.br /
br /
br /
Mark Kretschmann,br /
Amarok project founder and developer.br /
br /
Last year was started what we hope will become a long running tradition when an Amarok user known as linkmaster03 sent us a href=http://amarok.kde.org/blog/archives/818-Halloween.htmlthis picture of his amazing Amarok pumpkin carving/a.br /
br /
This year, a href=http://www.facebook.com/photo.php?pid=4438422l=07b6d07ff8id=550641689Jessy Ouellette/a dropped by our IRC channel with this picture of his pumpkin masterpiece, which absolutely blew our minds!br /
br /
!-- s9ymdb:226 --img class=serendipity_image_center width=604 height=453 style=border: 0px; padding-left: 5px; padding-right: 5px; src=http://amarok.kde.org/blog/uploads/Halloween2.jpg alt= /br /
br /
So happy Halloween to everyone and a big thanks to Jessy for letting us blog this picture!br /
Long awaited, finally here: the brand new Kubuntu 9.10 aka Karmic Koala is out and ready for download. It comes with KDE 4.3.2 and, of course, a brand new Amarok 2.2
Check out the release notes and download the ISO here: 
Congratulations and well done, Kubuntu community!
The upcoming Amarok 2.2.1 release is turning out to be a href=http://amarok.kde.org/blog/archives/1112-Amarok-2.2.1-Were-getting-there!.htmlquite an impressive one/a, especially considering how short of a release cycle we have put ourselves on. The a href=http://gitorious.org/amarok/amarok/blobs/master/ChangeLogchangelog/a is full of good stuff already!br /
br /
True to form though, I am going to do a little 2.2.1 is going to be great, but checkout what we have in store for 2.2.2 post! img src=http://amarok.kde.org/blog/templates/default/img/emoticons/smile.png alt=:-) style=display: inline; vertical-align: bottom; class=emoticon / br /
br /
So here goes:br /
br /
a class='serendipity_image_link' href='http://amarok.kde.org/blog/uploads/2.2.2MoodbarPreview.jpg'!-- s9ymdb:225 --img class=serendipity_image_center width=300 height=160 style=border: 0px; padding-left: 5px; padding-right: 5px; src=http://amarok.kde.org/blog/uploads/2.2.2MoodbarPreview.serendipityThumb.jpg alt= //abr /
br /
If you are recoiling in horror at all those random colors, fear not, you will not see them at all. If however you have a ton of moodbar files lying around for your collection and liked this feature in Amarok 1.4.x, you are in luck! Showing the moodbar (if available) in the progress slider is configurable, and moodbars have been added to the playlist layout editor so you can add it to your favorite playlist alyout in any way you choose. Even the 4 different moodbar styles (normal, angry, frozen and happy) have been ported over.br /
br /
The a href=http://pwsp.net/~qbob/moodbar-0.1.2.tar.gzmoodbar generator/a itself seems to work still, even though it could really use some love and a porting to Phonon (or even to qtscript so it could be easily integrated into Amarok and, for instance, run on demand when playing a track or process the entire local collection in one go).br /
Philip Bourne, the 2009 Benjamin Franklin Award-winning computational biologist, will be speaking at Camp KDE 2010.
Professor Bourne is well-known in his field for contributions to open-source bioinformatics software and is a leading advocate of open access to data. Quoting from the UCSD News Center:
Bourne is co-founder of SciVee, the Web 2.0 resource dedicated to the dissemination of scientific research and science-specific research networking. Launched in late 2007 as a collaboration between the National Science Foundation and the San Diego Supercomputer Center (SDSC) at UC San Diego, SciVee has been used by hundreds of thousands of students and professional scientists as a means of learning and sharing their research through online science videos that supplement peer-reviewed journal articles, stimulate discussion, and promote collaboration. SciVee earlier this month announced a number of significant upgrades to its site, along with the addition of 32 new science categories.
Open data access and open source share similar goals, and Professor Bourne's discussion of his experiences with open data access should prove informative and interesting to all.
The KDE bugsquad will organize a bugday for Phonon on November 8th. To make sure not to forget that day, I duly entered it into my Google calendar. But I must say that the mail I got today from Dopplr was quite astonishing: it seems I will travel to Buğday, Turkey on that day!

Now, while I enjoy travelling, I think it’s a bit far away just for a bug triaging event, isn’t it?
Regardless this interesting suggestion, I will stay at home and give a hand in bug triaging, this will probably be more efficient
Don’t hesitate to join the fun in #kde-bugs on irc.freenode.net on November 8th!
PS. I seem to travel again on November 21st, this time to Giv’at’Ada, Israel. Since I planned to be in Bern for the Swiss Karmic Koala Release Party, I guess that’s what is meant