KMess - MSN Messenger for Linux / KDE

Skip menu
KMess
Participate
Documentation

Developer blogs

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.

July 27, 2008

Diederik van der Boor (vdboor)

KMess 2.0 progress, personal stuff

With this blog entry I'd like to inform you all about the amazing progress we're making with KMess 2.0. It's been a bit quiet on the blogging side, but development surely didn't stop. The development timeline at trac.kmess.org reveals there are 200 commits within the last 30 days. :-)

Within a few days we hope to release a 2.0-alpha 2 release, which has the following new features:

  • Everything is running quite stable under KDE 4.
  • Tabbed chats are supported now. This is such a breeze, I wouldn't ever want to live without that anymore!
  • Every dialog received a nice makeover.
  • Connecting over HTTP is supported, making KMess usable for restricted LAN's.
  • Ink sending works!
  • Larger messages can be sent
  • MSNplus formatting can be displayed.
  • We've added an application-wide settings dialog for common settings.
  • Lots of nifty improvements everywhere; choose your fire transfer ports, automatically download to a folder, copy contact 'now listening' information, etc..

We stil have our share of things we like to improve, implement and annoyances to fix, so the upcoming release will still be called an alpha. Most of the work on KMess 2 has been done by Valerio and Antonio, so I like to thank them for this as well!

This is how KMess 2 look like now:

In the screenshot you see the ink receiving and tabbed chat in action.

KMess on Windows

There is experimental support for Windows as well:

There is no "setup.exe" yet to double-click on, but a lengthy manual of steps to install. Hence the reason we still call it experimental. Everything seams to work though.

Personal stuff

I didn't always find time to work on KMess in the past few months. If you have a daily job as web developer, not all evenings are easily spent on coding as well. :-P I still do a lot of things in the background, and I'm slowly starting to pick up coding again. I'm working through the first parts to receive webcam sessions, and you can expect this to be present in KMess too.

After the summer holidays I'll also be moving to to my very own appartment (maisonette actually). It has a small balcony, 3 bedrooms and a view to a lovely park in front, which I really love. Some work needs to be done before I can move in, like installing new kitchen and installing central heating. Guess you'll know what I'll be doing this autumn. :-)

Oh and:

So if you see a guy coding for KMess on a white MacBook running KDE on Windows, it's probably me :-) It's my first time on Akademy and I didn't make any plans yet, but love to join some BoF meetings and discuss innovation. Last time I checked, almost every pillar of KDE could find a place within KMess. :-)

July 27, 2008 09:21 PM - view comments

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". :-)


We're looking for more ways to improve the KMess website. If you have suggestions, don't wait any longer and post them!

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!

That’s the current SVN version, for the KMess2 branch

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. :-P

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. :-P

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! :-P

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. :-D

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. :-O 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 is “asd.gif”
asd.gif

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:

custom-emoticon-settings.png
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:

New emoticon dialog
KISS style

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. ^__^

New chat window, yay
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 :D
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 :D

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 :D

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. :-P 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. :-O 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.. :-P 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. :-P (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 :-D

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


Current Version
The current version of KMess is: 1.5.1
Latest development version: 2.0-alpha2
Extras
SourceForge.net Logo