Planet KMess
This page is an aggregation of public weblogs written by contributors to KMess. It's a mix of stories about progress made in KMess, new cool features added to SVN, idea's for a next release, Linux / Open Source views and personal stories as well.
We'd love to hear what you think about new features, even a small whooho! or thank you note. Follow the links to visit the external weblogs to post a comment there.
March 02, 2008
Diederik van der Boor (vdboor)
Communicating emoticons
This is not meant as a sentimental entry. It's about marketing and communicating a message to your potential users. Too often I find myself at a website of an Open Source project and ask myself. "where am I now? what the -beep- is this? and what can I do with it?"
As personal example I take kmess.org as example. We tried really hard to fix this. The site is a lot of content nowadays, but we think there is a lot of room for improvement. While discussing this we Valerio came up with the following blog entry:
Why Ubuntu 8.04 needs better marketing
That article shows the big difference between a summary of technical details and something that appeals. Their revised announcement makes me all of a sudden excited about downloading Ubuntu 8.04. Less technical wording, clearly written sentenses and focus on what advantages does it has for me. Worth reading, this article is written really well!
In the comments there is also a nice observation:
The key however is to, like Apple, make a directly emotional appeal. Even Intel claims to be trying to take this route, inspired by Apple (successfully? Maybe). Take a look at Apple’s OS X page: http://www.apple.com/macosx/. The bold heading is very dominant. And it doesn’t really contain too much logic… again, it is an emotional appeal.
I really like Apple's site. It makes me enthusiastic about their products, and while browsing it just goes on. Yet I can also find a lot of technical details there. I couldn't describe why, but now I'm starting to understand the key aspect here: emotions.
Another example: Last week I was on a holiday/journey, and tried to explain a bit Aikido to the guy next to me. It's the martial art I practice and love. In the years I developed a few short phrases to explain it but somehow my description didn't get though at all. ![]()
Fortunately I got a little advise whispered in my other ear: "you are too technical". Dang! I'm currently inspired by "feeling first, mind later" theories and this is another eye opener for me. By using more vague descriptions adjusted to the receiver (communicating a feeling/emotion) the other guy managed to get it a lot better. Whoa. Using less strict descriptions actually makes people grasp something better?
This incident among others makes me realize a lot of people are probably wired this way (call them alpha's if you wish). As technicians we love to communicate details, and the receiver can reconstruct the same image in their mind. Most people are not like that, or can't manage to be so. I didn't expect this gap could be so big. I noticed how this guy next to me responds much better while communicating an emotion, feeling or vague description (which you can technically put down as inaccurate, misleading, etc..). It has a strong effect, as the message is received in a more powerful way.
Meanwhile I'm starting to get an itch to do something with this conclusion within the KMess website too.
If a lot of people are wired this way, shouldn't our websites reflect that?
I'd like to call it "communicating emotions". ![]()
March 02, 2008 09:37 PM - view comments
February 20, 2008
Valerio Pilo (amroth)
Rambling
Lately, an incredible - and probably unrepeatable - series of coincidences has happened. No upcoming exams, a lot of friends sick with flu, little work to do, no girlfriend, cold outside: mix them all together, pour in a cocktail glass, and you’ll get why I’ve been doing so many commits lately.
KMess 2 is coming on quite different from what I had initially thought. I was thinking at it just as a more free playground where to shove all the features I could read in Trac or imagine myself… but it’s more. As I continue fixing the last very small
problems in the code, I keep finding points where we could just throw away some old code - and create something better, faster, prettier instead.
I’m quite excited about the possibilities Qt4 and KDE4 are giving us, and I’m already exploring some of them, like a new contact list with a much improved style, for example. That’s just one example out of many since, as I said above, there’s a lot of room for improvement here and there, simply too much to list!
The downside in all this fertile ground, is that we’re alone seeding it. KMess has always been a small project; but this time, I’m feeling way more limited than when I was contributing for the 1.5 release, because of this. With all the thing we could do now that we have an incredibly powerful set of tools, some excellent network code, and a stable program, we can’t start rethinking everything from scratch because we’re so little developers. This sucks.
However, I’d continue improving KMess even if I was alone!
Regarding the project status, we’re still porting. But now, we’re almost done: here’s a screen grab of the SVN version!
![]()
There are still a couple glitches with file transfer, the contact list is still plain ugly, and the resource locator isn’t working correctly, but it’s almost done. I hope to be able to finish the port this week… then we’ll be able to start the real innovation ![]()
February 20, 2008 10:36 AM - view comments
February 09, 2008
Diederik van der Boor (vdboor)
KDE 4 porting of KMess
A while ago I mentioned briefly KMess would be ported to KDE 4. We weren't sure when to do it yet. Eventually we decided to port it as soon as possible before doing new changes to the codebase. That would only make the porting more difficult, or give SVN a vague status to new contributions. So at 15 January I started a branch for porting the code.
After all automated changes we went through all files one by one (resuling in ~190 commits) before things managed to compile again. For those that are interested, there is a screenshot of the first run. Things crashed at startup, crashed deep in QHttp, froze, and corrupted memory multiple times. Once you manage to open the settings panel again things look really funny. ![]()
We've managed to get these issues fixed in the last 2 weeks and things are starting to get back in shape. This is KMess after ~270 commits since the initial start of the 'kde4porting' branch:
| Login dialog | Full desktop |
Note that the application is still not usable. Now we've gotten past most crashes we can fix everything we've broken and make it pretty. Some things were broken on purpose to get past all compiling errors, like the contact list, now playing information and saving of settings. In fact, your settings will likely be eaten at this point. ![]()
There are some visible benefits for the KDE 4 porting already. Oxygen alone makes apps breathtaking beautiful. The networking code has less dependencies on KDE now, which helps to build a library from it later. The application startups almost instantly. Memory statistics also show some interesting effects (note the size is also affected by the shared libraries).
![]()
I'm not really sure what those numbers mean, but for the ignorant among us it makes KDE 4 applications look so much better. ![]()
February 09, 2008 02:04 PM - view comments
January 10, 2008
Diederik van der Boor (vdboor)
KMess 1.5 released!
I'm pleased to announce the release of KMess 1.5, a MSN Messenger client for KDE.
After a long time of development from version 1.4 first, and the 1.5-pre series after, we've been able to obtain a very stable and feature-filled version.
Changes
Users of KMess 1.5-pre2 will might notice that file transfers have become stable while operating full-speed. The ugly popup balloons are gone and you can send custom emoticons now. A lot of bugs are squashed in the process, and the overall application got the polish it deserves.
Users of the last official stable release (1.4.3) will notice the quite some new interesting features. Most parts of the user interface have been improved. Combined with rich colorful chat styles it's a refreshing breeze for the eyes.
This release brings the MSN support to a level we're happy with. During the development of KMess 1.5-pre1 and pre2, we've added support for the things you'd expect from a MSN Messenger client. That's nudges, now playing information, custom emoticons, personal messages, fast file transfers and automatic download of display pictures. To make sure you don't miss something in a conversation, Winks and offline messages can also be received, being able to send those as well is still a todo.
Looking back
Making the release of KMess 1.5 took a lot of time. Much more time then I anticipated. The introduction of a new developer (thanks Valerio!) helped a lot here. Looking at the changes I'm really stunned how much we've been able to polish.
It was quite difficult to get the direct connections stable. They've been a source of many crashes and lockups. Seeing it work out all smooth now is just unbelievable. It just works, like every user expects it to be. But after so much trouble I'm filled with excitement each time I see that progress bar rush to 100% in no-time. It amazes me every time.
What felt as a little project with the 1.4 / 1.5-pre1 release, seams different now. With the new website, trac installation for developers (tickets and wiki pages), announcement writing, and rock solid release it feels this little project has matured a lot. It gives me confidence we'll be able to pull up a lot more nowadays. ![]()
Future plans
KMess 1.5 will be the last version based on Qt 3 and KDE 3. The next major version will be based on Qt 4 / KDE 4. Originally I'd planned to get a release done before the KDE 4 beta's, but it took far more time to get the file transfers stable. It means there won't be a KMess 1.6, but a 2.0 version since KDE 4 will likely be adopted (e.g. with 4.1) by the time we're ready with 2.0.
I had some plans to collaborate with other projects before, but never really gotten to it yet. Since everyone is going for Decibel lately, I'm curious how we work towards that goal as well. I'm curious how it will work out, because I don't want to loose the specific MSN protocol features we have.
For now, enjoy the release! ![]()
January 10, 2008 02:16 AM - view comments
December 17, 2007
Diederik van der Boor (vdboor)
Interesting books to read
Over the last few weeks I've been reading some intersting books, which are definitely worth to be read.
The first one is "Barbarians Led by Bill Gates". The book gives an intersting view point about Microsoft by an ex-programmer. How the work has been in those times, how projects were managed.
Interestingly to mention: it seams Windows was in fact seen as an unimportant project after it's initial failure with version 1.0. Management abandoned it, and some programmers kept poking arround to make it better - without all the management pressure. It appears the success of Windows 3.x was completely unexpected to Microsoft too! ![]()
The book also tells about the beginnings of the marketing machine - you can say the biggest product of all. However I missed details about Microsoft's (imho unethical) behavior towards the outside world. I guess that stems from the fact the author is an ex-programmer, and he mostly tells what he has seen from his position: how projects were managed. Still an intersting read though, because it gives quite a different view on Microsoft's own developments and successes.
The second book I'm reading right now is "Getting Things Done" by David Allen. And oh my this is real nice piece of work! I've gotten an introduction to GTD before, but with the book everything falls more in place. I'm at page 66 now, and it's already an revelling experience for me. Not only does David advocate a different model of tracking todo's and planning projects, he also explains how his methology actually co-operates with the natural, intuitive, way your mind operates all the time. ![]()
Additionally it's really geek friendly, addresses common pitfalls and yet I can manage my stuff with simple tools! I have got a pen+paper with me all times nowdays, I collect the todo-notes in a simple basket at home, and process those later into Kontact notes, Basket or KOrganizer (but even .txt files would do fine!).
Everyone who is doing "knowledge work" benefits from GTD. It works bottom-up, addressing the hectic atmosphere at your work/home first (which prevents you to move forward), and slowly helping you to get more overview of your projects, responsabilities and vision. It does this by helping you getting stuff out of your mind, so your mind can focus itself on more creative stuff, and do what's really good at (which isn't recalling todo's at the moment you actually needed them).
GTD promisis an interesting end result: to overcome stress, feel confident you won't miss something important, feel more relaxed and have more energy to actually do things. And while reading David's reasoning I believe this system will actually work for me, both personally and professionally. ![]()
December 17, 2007 10:35 PM - view comments
October 12, 2007
Diederik van der Boor (vdboor)
KMess file transfer fixes; MSN Protocol goodies
Last week I've committed a major change to the KMess SVN. In this case "major" means the diffs were 100kB in size.
It fixes the last two problems we had with MSN direct connections, and brings the next release a lot closer too.
The first problem was caused by our way of sending file data. KMess 1.5-pre2 pushes messages to aggressively to the socket, choking the buffers of KExtendedSocket. By only sending the few bytes it could, this broke all message-length fields of squential packets. Oops..! This is fixed thanks to the readyWrite() signal and a lot of internal API refactoring. Hence the 100kB diffs.
Another problem was caused by some unknown protocol goodies revealed by Windows Live Messenger (WLM). Half way the transfer progressbar stalled in WLM, while KMess still thought it was sending file data. wtf... A closer look revealed it did get some messages back (flag 0x01). Now what..? That flag is isn't known yet at msnpiki.
From the WLM logs I've learned this means "chunk out-of-order", and it happened after KMess received some kind of "application/x-msnmsgr-transudpswitch" or "application/x-msnmsgr-transdestaddrupdate" message. I still have to clue what that message means or what to do with it, except sending an ACK as usual. I did figure out this broke the transfer in SVN. KMess incremented the message-ID to send the ACK, and now the remaining file data was sent with the wrong message-ID. Whoa. Not good! Fortunately it was easy to fix, and learned about some interesting new protocol messages too.
Finally, these two problems also broke picture transfers, emoticons and winks. Why you might ask? Those are also sent in parallel over the same direct connection! Almost everything is sent over the direct connection! It's good for performance and server load, but hard to code right at once. We've got it all working now, which I'm really proud of.
I can finally say that KMess supports direct connections properly for MSN file and picture transfers. Yay! ![]()
October 12, 2007 01:11 AM - view comments
September 01, 2007
Valerio Pilo (amroth)
asd.gif
Hi readers! This is my first real post to the KMess blog.. I want today to let you know about the improvement to our beloved client that I’ve worked on in the past week or so.
This, lo and behold, is the first custom emoticon ever sent by a KMess client
I’ve worked really hard on this improvement - I’m an emoticon junkie. I can’t resist. I put emoticons on almost every message I write. I find them very useful to clarify the tone of what you’re writing, and the standard MSN emoticons - even the KMess ones! - just can’t beat the expressivity of an animated picture chosen by yourself!
It allows the user to have a custom set of emoticons for every account. So, for example, you can have an account for your work contacts with serious custom emoticons, and one for your friends and family, with a lot of funny emoticons.
Right now it’s fairly complete: but there still are a couple things that have need of a good ol’ revision before I can “consider it done”. So please, take everything I say and every image you’ll see below, as only work-in-progress drafts. No guarantee that this will be the final look of it - nor even the way it’ll work!
Managing the current emoticons is a breeze. Here’s the Emoticon Settings dialog:
![]()
Look Ma! I’ve got a ton of them!
You can rename in place the emoticons, and remove them by selecting and clicking the Remove button. Couldn’t be easier, isn’t it! I was really surprised to find out how simple had been to create the whole dialog, and to make it work.. in like, 10 minutes?, i had read the documentation and written the first code down. And it worked. Flawlessly. I swear, never saw anything simple as Qt.
But let’s go on… There’s an “Add new…” button, too, right? Here’s what appears when you click it:
The dialog is live, so you’ll know you’ve inserted a valid image because it will be showed in the area with the KMess logo. The Ok button will enable only when it’s all ready to go, with an image and a shortcut for it. This was a little harder to realize how to make it. Thanks a lot to the KDE documentation team!
Finally, there’s the chat window. This will probably suffer the most modifications, since it’s more than a draft. it’s a pre-pre-pre-alpha ok? You’ve been warned. ^__^
![]()
Very very ugly, very very alpha chat window
It’s a mess. I’m still trying to find a better way to put the custom emoticons panel in… and there’s also the issue of that stupid sidebar which doesn’t have a scrollbar… the most annoying thing currently in KMess, I say. As a relative newbie to programming, I couldn’t find a way to make it work (yet).
Now that I’ve let you have a sneak peek at the mere looks of it, let’s talk about the internal gears and pinions which compose the emoticons system in KMess. Feel free to skip this part ![]()
Internally KMess works out the emoticon themes as other clients (most notably Kopete) do, that is, with XML definition files. They contain the picture file names of the emoticons, and for each one of them, they also contain the shortcuts which translate into it.
As with the current versions of KMess, the standard emoticons set gets updated if you choose another one; you can select a Kopete theme and only the MSN icons that the new theme contains will replace the standard KMess theme. I’ve replicated this feature so it continues work notwithstanding the fact that the underlying code is almost completely changed
In related news, that now you can also load themes with GIF, MNG, JPG images. But be warned, it’s quite certain that Windows Live Messenger won’t be able to view your shiny MNG animated emoticons. Sorry
Also, a new emoticon manager takes care of exchanging, loading, modifying emoticon sets at your command, and will automatically guess the file type of your images. Getting that system to work was the most challenging task. Three classes define emoticons (Emoticon), collections of emoticons (EmoticonTheme), and emoticon management (EmoticonManager); i find them to be working well, though I’m still waiting for Diederik’s opinion
There are *without any doubt* still some bugs or things that will need rewriting.. but it’s a matter of time!
Gotta go now.. I’ll probably post again about this new feature, so check back here sometimes
September 01, 2007 01:53 PM - view comments
August 21, 2007
Valerio Pilo (amroth)
Yay!
Hi KMess users! This is Valerio at the keyboard writing, i hope our readers will enjoy to read the crap interesting articles I’ll write about what we, yours truly KMess developers, are doing with this great program
I hope I’ll be able to post here usability polls, sneak peeks at new features, and whatever I’ll think of, to try enhancing our messaging client… Cya soon!
August 21, 2007 01:52 AM - view comments
August 03, 2007
Diederik van der Boor (vdboor)
KDE-NL BBQ
The responses to by previous blog entry were more then I hoped for. Among them was an invitation to join the KDE-NL BBQ, which was helt last weekend. Whooha!
As newcomer, the experience was mindblowing. Everyone has the same passion and because KDE has so much to offer, everyone has something different to tell about too. So there is a lot to talk about: the state of development, Akademy, KDE4, marketing idea's, plans that are going, and all kinds of interesting details. There were developers from Amarok, KOffice, Mailody, the Music Notation Flake (Soc), but also translation, and marketing/promo teams.
Everyone was genuinely interested in each others stories, everyone clearly showed respect for each other, and we had some good laughs. If that wasn't cool enough, consider how conversations went full speed. Where you normally have to slow down because you're talking too fast, there was nothing to worry about among KDE enthusiasts.
It's said that people keep spending soo much time on KDE because of the community. I definitely believe that's true. I enjoyed every piece of that day, and love to be part of such events more often.
I went homeward with Jos Poortvliet and Niels van Mourik. We had a some difficulties finding the the highway because we spent too much time talking.
I had some good conversations with Jos back home, and thanks to him I didn't have to make the entire journey back by train. This would have taken more then 2 hours in total, now only 20 minutes.
At the train station I had an interesting experience as well. I sat waiting there with my notebook bag and a Baguette left from the BBQ. Which is quite odd at 23:00 to say the least. Some guys joined me to ask if I was from France, where I got that Baguette from. Oh BBQ? where? with friends? Well.. how do you say this.. er.. have you heard about Linux? yes? .. I had a BBQ with guys who work on KDE in The Netherlands.... er.. a set of graphical programs for Linux! Oh Cool! You work on Linux? It was pretty awesome to talk with those guys at a train station about Linux vs Windows vs Mac OS (due to my notebook), and how that guy didn't like Windows but still used it. Not that we could talk in detail - time was short and it mostly went about stereotypes - but every bit helps. ![]()
I spent the evening talking over MSN till about 2am, and was well awake before the alarm went off too. What a day! ![]()
August 03, 2007 12:59 AM - view comments
July 12, 2007
Diederik van der Boor (vdboor)
Hello, PlanetKDE!
My blog has just been added to PlanetKDE, so I'd like to say hi to everyone! ..and tell something about what I do for KDE development.
I'm one of the main developers of KMess, a MSN Messenger client for KDE. You can say KMess brings an "MSN Messenger like experience" to Linux without copying the annoying parts. I tried all clients when I started with Linux in 2003, and really loved the user interface of KMess. It felt much like MSN, but even better. ![]()
With my next entries I hope to get more technical, show some screenshots, or post idea's about Linux. I'm curious how this will all work out.
introducing...
I'm from the Netherlands, 23 years old, code webapplications for a living and have a passion for KDE (following the dot, blogs and akademy screencasts closely), and started contributing to KMess in 2004. This started because I liked every part of KMess; both UI design and code. It was very easy to jump in.
Currently we're finishing up KMess 1.5. It includes a lot of bugfixes and we got rid of more annoyances too. With the next release (either 1.6 or 2.0) we'll implement webcam and multimedia support. I actually hoped to have 1.5 out already to leave KDE 3 with a good 1.6 release, but it's likely we'll be porting to KDE 4 instead because of the multimedia requirements.
We all know Kopete is part of KDE, and KMess exists outside the KDE SVN. I don't actually mind this; it's good to have one standard client shipping, even posted some bugzilla comments for Kopete. The bottom line is that KMess got me started with KDE development. If you need more explanation then this, you're welcome to post a comment though!
something about msn
One of the most difficult parts of the MSN protocol is the client-to-client part (MSN P2P). It's used to exchange pictures, emoticons, files and all other kinds of invitations directly between two contacts. It's what makes most clients distinguish from each other. Not getting this part right means webcam sessions and file transfers break when someone sends an emoticon or changes their avatar. The reverse-engineered documentation help a lot, but I keep noticing they miss practical details you'll encounter as developer. In KMess, I actually had to refactor the MSN P2P code three times before I saw the whole overall design of it. I've been told Mercury's counter is at 6 now. That's something new MSN plugins can avoid, and I don't mind sharing my experience about that!
A lot of energy has been put in good support for MSN P2P in KMess, and the code works really well. It means we're ready to build stable webcam sessions in the next release. Combined with the APIDOX examples the P2P code is almost a reference guide to implement MSN P2P. Worth checking out!
Happy KMess'ing or .. Kopete'ing! ![]()
July 12, 2007 09:46 PM - view comments
April 09, 2007
Diederik van der Boor (vdboor)
KMess sourcecode migrated to subversion
The KMess sourcecode has been migrated from CVS to subversion (SVN). (FYI: subversion is the software we use to store the in-development version of KMess). Subversion gives us some advantages over CVS. It's command line is easier to use, branches/tags are easier to mange, changes to many files - even moved files - are tracked properly with subversion. I actually hoped to migrate earlier, but I wanted to wait until 1.5-pre2 was released.
The CVS to SVN migration did took more time then I'd expected. The cvs2svn tool needs some help to convert things properly, and sourceforce's documentation leaves much ends open. And there was something I overlooked: the website documentation and forum howto's had to be updated as well... *oops*
An interesting side-effect of subversion are the statistics you can generate from it. If you like to see those statistics, download the repository first with: rsync -av rsync://kmess.svn.sourceforge.net/svn/kmess/ kmess-svnrepos. Then open it locally with kdesvn. The most simple statistic is the activity over the years. It's clearly visible that development slowed down during the 1.3 release, and basically stopped. I was also shocked to find out I'm responsable for ~1200 of the 1700 commits since 2004-07-12.
It should be noted I had to commit directories and ChangeLog entries separately.
While updating the website, I also improved the documentation about the coding standards. With the additional examples it easier to follow the proper styles now. ![]()
April 09, 2007 11:36 PM - view comments
March 18, 2007
Diederik van der Boor (vdboor)
KMess 1.5-pre2 is out!
Finally it's out! KMess 1.5-pre2 can be downloaded as of today. The current CVS code had many fixes and improvements, so I didn't want to delay a next release much more.
The most important bugfixes are better support for direct file transfer connections, and links in the chat window. There are also some nice improvements, like file transfer previews, now playing information, and an option to disable the nudge shaking effect. More information can be found at the front page and changelog.
My favorite features are previews for any file type (see previous entries), and clickable geek-style links. It happens all the time people write "dot.kde.org", "planetkde.org", or "slashdot.org". I wanted to make these links clickable as well, without getting too many false-positives. This worked out really well, so try it out! ![]()
March 18, 2007 11:14 PM - view comments
March 17, 2007
Diederik van der Boor (vdboor)
Weirdest bug ever
Yesterday I was debugging some weird bugs. Actually spent several hours on it.
With the file transfer previews, Windows Live Messenger chops of some parts. This can be solved by sending the image as 96x96, with transparent parts added. QImage to the resque! Well.. sort of. I ran into a pretty annoying bug.
This is the code to generate a transparent image:
int size = QMAX( image.width(), image.height() );
QImage fixedImage( size, size, 32 );
fixedImage.setAlphaBuffer( true );
fixedImage.fill( qRgba( 0, 0, 0, 0 ) ); // black transparent.
Saved as PNG, it produces something like this:
Well, some parts of the image are transparent..
But the remaining of it.. juck! Something produces a fuzzy pattern here. Today it even seams to have more noise.
After trying the same code in a stand alone application, I got a perfectly transparent image. When the same code runs in KMess, it doesn't work anymore. That's the weirdest part of it. It can either be in Qt 3.3.8, KDE 3.5.6 or openSUSE 10.2, I really can't tell.
After some debugging, Google codesearch showed how to reset the individual image bits in a for-loop. A bit later I noticed how the image bits are actually one memory block (the Qt API is not really clear about that). So the fill() command can be replaced with memset(), hence the following code fixes the problem:
memset( fixedImage.bits(), 0, size * size * 4 );
This takes advantage of the image data/scanlines exposed by QImage. Pffew ![]()
With this fix in place, I'm looking forward to release 1.5-pre2. It should be out really soon, since CVS has some interesting improvements. I'll have to update the TODO and NEWS files, check for any blockers. Small bugs are not one of those, that's for the final 1.5. A next preview needs to be avoid really soon first! ![]()
March 17, 2007 05:27 PM - view comments
February 20, 2007
Diederik van der Boor (vdboor)
File transfer previews just even got better
There are some additional improvements to the file transfer previews. The previews are now generated with a more low-level KIO API. This no longer blocks the KMess interface to generate the preview.
As extra bonus, KMess generates previews of video files as well. When you send a movie to someone who uses the official client, they'll see something like this:
Pretty neat, isn't it? ![]()
February 20, 2007 11:41 PM - view comments
February 14, 2007
Diederik van der Boor (vdboor)
File transfer previews
KMess just got a new cool feature! I've received a patch for file transfer previews. The result now looks like this:
![]()
In the official client this is used to send previews of images. KMess also adds support for almost every imaginable file type, thanksverymuch KDE! Think PDF, OpenDocument, HTML, Qt designer files, really everything. Whooho! ![]()
February 14, 2007 10:11 PM - view comments
January 27, 2007
Diederik van der Boor (vdboor)
You know you have a nice download page when...
...someone else copies your layout and wordings.
(compare: KMess version)
All I can say is: I'm flattered. ![]()
On a side note, I'm still looking for ways to improve the home page. I really like sites that show off their product well at the home page. The recent examples I found are:
Why is this important? With my application conversation I litterally got the question "what is KMess actually?". I never noticed it before; the home page simply didn't tell. It only rambled the news headlines of things that were improved.
I'd like to improve the homepage it visually as well, like the sites above managed to. The screenshot tour is a good start, but a bit too hidden yet. Every once in a while I'm thinking how to incorporate new ideas in our home page. Perhaps I manage to get something done with the 1.5 release. Contributions, designs and suggestions are welcome off course. ![]()
January 27, 2007 06:49 PM - view comments
December 17, 2006
Diederik van der Boor (vdboor)
Completed now listening support
I've just completed the now listening support in KMess! A month ago KMess could only show what contacts are listening to. Now it also does the reverse; notifying contacts what you're listening to.
When this feature is active, an additional status line appears in the main window:

KMess is able to retreive playing information from Amarok, Juk, Kaffeine, KsCD, and Noatun. Suport for non KDE-players like XMMS and Banchee could be added later, but I'm not starting with it yet. Each of these players has it's own way to provide the playing information.
To enable this feature, check the last option in the settings dialog:

KMess uses DCOP to retreive the playing information. DCOP is a really nice KDE feature to make IPC-calls to other applications (it runs over the standard X11 ICE protocol). Try the following commands in the console, and you'll get the idea:
dcop
dcop amarok
dcop amarok player
dcop amarok player artist
Really amazing, and extremely powerful ![]()
December 17, 2006 05:10 PM - view comments
Sinterklaas presents
Long time no blog... I didn't make much room for it lately.
Previous week we've had Sinterklaas in The Netherlands. It's an annual Dutch tradition, which can be compared somewhat with Santa Claus. At 5 December, Sinterklaas brings presents to both children and adults. Some presents are also camouflaged in an imaginative way, accompanied by a fitting poem to make fun of the recipient.
This year I had to make a nice present for my father. The present contains a pocket-size book about wine. This is the end result after two weekends ![]()
![]()
The body consists of a soft-drink bottle and two small wooden planks. These planks form a cross which is nailed on the soft-drink bottle. The whole part has been wrapped with paper maché. The small book didn't fit entirely, resulting in the amazing booster effect below the wings ![]()
![]()
Additionally two pictures of the construction:
![]()
The present sticking out:
![]()
That was enough creativity for me this year.
December 17, 2006 04:16 PM - view comments
December 03, 2006
Diederik van der Boor (vdboor)
Debugging KDE applications in Fedora Core
Image speaking to a new developer. With excitement you tell about the debugging features of KMess. We've got a network output window, and lots, really lots of console output. The console is literally flooded with messages when you run the debug-build of KMess. This allows us to trace how KMess interacted with the protocol messages, how it parsed those and sent responses back.
Now imagine this new developer doesn't see anything of it.
That's an annoying way to become challenged as developer. First you start guessing where the output could be. SuSE has a nice ~/.xsession-errors file that contains the output of all GUI applications. However, the messages also didn't appear either when KMess was started from a console window. Googling gave no insight either. It started to feel something is really different in Fedora Core.
My next stop was kdebugdialog. This is a tool that allows you to turn off debug output in KDE, separated by application and message type. I guessed the output was disabled there, which seamed logical from an end-user perspective. After some inspection, the settings were identical to my SuSE system.
KMess uses standard kdDebug() calls to output the messages, so I sent a little C++ file that did the most basic thing possible. Eliminating compiler flags, and #ifdef statements we use to hide output:
#include
int main()
{
kdDebug() << "test output" << endl;
return 0;
}
Again, this simple test application gave no output on STDERR or whatsoever.
I seriously started to fear KDE was patched by the developers of Fedora Core. This could mean the developer would never see the output. Stephan Binner has a site of distributor patches, for which I can't thank him enough. Browsing the folders I found a patch on kdelibs/kdebug. Compare the original file with this patch, and notice how Fedora Core hides all output by default! arhg! This not only costs one or two hours of debugging, but it's even more annoying it isn't mentioned anywhere. A simple note would have been enough.
The code of the original file acted as a good reference to find a solution. By creating the file ~/.kde/share/config/kdebugrc with the following contents, the new developer got his debugging output:
[0]
InfoOutput=2
ErrorOutput=2
This extends the global configuration in $KDEDIR/share/config/kdebugrc, and outputs all messages to STDERR.
Needless to say, I'll propably disfavour distributor patches even more then I already did (i.e. how a Wine developer wasted his Sunday afternoon on debugging packaging problems, scroll to "another example"). When something needs to be patched, it's likely the upsteam software lacks some option, not an other patch. In the case of KDE this wasn't needed at all, kdebugdialog is available already.
Guess it's time to file some bugs, and hoping this post helps a bit too.
December 03, 2006 05:39 PM - view comments
November 27, 2006
Diederik van der Boor (vdboor)
Planet KMess is up
As of today, the KMess website aggregates feeds of development weblogs. This makes the entries of this weblog visible at www.kmess.org too.
I'm really curious about your opinion of new web site feature. What you expect from it, what you'd like to read, or don't like it at all. Please post your thoughts about this at my blog. ![]()
November 27, 2006 12:40 AM - view comments
November 26, 2006
Diederik van der Boor (vdboor)
Introducing PhpPlanet: PHP feed aggregation software
One of the things I really wanted to implement was a "Planet KMess" section at the KMess website. I've been looking for existing solutions, but couldn't find what I was looking for. I don't need expanding sections, or forum/e-mail like "mark as read" capabilities. Just a simple web page with all stories, posted in order.
As for why I'm not using Planet: the Planet KDE site is flooded with old feeds now and then. I don't want to see that happening for a "Planet KMess" website. Planet is written in Python and uses a file-based cache. This is a complete black box for me as Python illiterate, and adds Python as new dependency to the web site.
The result is a new Planet-like feed reader/aggregator named PhpPlanet. It is v0.1 software and can be downloaded here. It stores feeds in a MySQL database, and uses Snoopy/MagpieRSS to parse the feeds. Flooding is avoided by observing the timestamp of RSS entries. When multiple entries have the same timestamp it's an indication the feed is regenerated, and those entries will be rejected automatically. ![]()
November 26, 2006 05:35 PM - view comments
November 07, 2006
Diederik van der Boor (vdboor)
Now listening in KMess
A recent enhancement in KMess is support for "now listening" information. You get to see what your contacts are playing. this information is displayed after the personal status message, and looks like this:

Much like the official client, you get small icon, and the title afterwards.
The next step is offcourse, displaying what you're playing. Work has started, and I've decided to use Kopete's "now listening" plugin as inspiration. It has support for Amarok, Kaffeine, Juk, KsCD, Noatun and XMMS. Sounds good enough to me ![]()
November 07, 2006 12:46 AM - view comments
November 06, 2006
Diederik van der Boor (vdboor)
Kickoff!
I've been thinking for a long time about it, but finally decided to start my own weblog. I've been reading planetkde.org for some time now, and really like the sneak previews and thoughts about the progress in KDE.
So this blog also won't be flooded with personal things either. Instead I like to share some programming experiences, KMess improvements, and maybe some random things found at the web. Not sure how it will work out, but I'm all set now to find that out ![]()
November 06, 2006 09:46 PM - view comments
