Blog

  • My quick wish for 2012

    My wish for 2012 is that every developer of <insert your project here>, assuming you use your own project, should use its own project with debugging symbols and enabled asserts.
    If you feel sporty enough, you can even enable asserts in your underlying lib.

    That’s all, make real use of asserts, detect bugs early, and we can all live in a happy world!

    HINT: debugging symbols need not always mean that asserts are enabled, and please note that Q_ASSERT behaves different from assert.
    Even if you are sure that you already do that, please do me a favor and double check.

    I am writing this because some projects seem to ignore asserts completely. And I am not talking about super special situations… more like start with nearly default config -> hit assert + crash.

  • My personal top programs of 2011

    In case you didn’t notice, it’s already 2012!
    Time to honor my personal top programs of 2011. Yeah, I am a bit late, this is usually done before the end of the year.. but I had to think about it very carefully! *caught*

    Top Dominator – KDevelop
    KDevelop really is teh IDE. And now even for python!

    Top Coloriser – Krita
    Krita, what a wonderful painting and illustration suite. I am not an artist but this program really feels like this is how a painting program should be. I even brought a graphics tablet for it. And even if you don’t know what to draw, or can’t draw at all, playing around with the different brushes is fun enough πŸ™‚

    Top Underdog – Calligra Words
    Calligra Words, it was so much fun watching how much it has improved since koffice. It’s not perfect yet, but it already displays *.docx way better than LibreOffice (compared to LibreOffice 3.4.3, “for my needs, may be different for you”). The editing part currently doesn’t seem as good, but I am sure it will improve 2012 a lot!

    Top Playground – Blender
    Yeah not a KDE program, but really worth mentioning. Blender, also improved a lot since 2.4, I would say since 2.5 it’s finally β€œuseable” for me. I only use it for playing around, first for physic simulations and since 2.61 it offers more nice features like cycles. Again, I am no artist, but I am sure a real artist could do amazing things with blender. Here is a little evening project (with the help of a nice tutorial) which was fairly easy to do in blender 2.61 (blender internal render, no cycles).

    If you don’t like my personal top XYZ of the year, or have some more, feel free to leave a comment πŸ™‚
    HINT: they are moderated

  • Konversation 1.4 Beta 1 released

    Yeah! It’s been quite a while, but finally Konversation 1.4 Beta1 is here! The first pre-release of our next major release, with many changes and fixes.

    A brief selection of highlights:

    • URL and email detection in text views has been rewritten from scratch, greatly improving the handling of various types of URLs and the contexts they might appear in.
    • Extensive improvements to IRC formatting code handling, including the return of background color support.
    • Extensive, sometimes full rewrites of user interface elements such as nearly all context menus, the URL
      Catcher and the Warning Dialogs system for a long list of user interface improvements and bug fixes.
    • Improved SSL connection behavior.
    • Translation support and various other improvements in several bundled scripts.
    • Expanded Python scripting support via the introduction of an API support package.
    • Support for more IRC numerics.
    • Various bugfixes to input line command handling and connection behavior.

    A full list of all new features and changes is available on http://konversation.kde.org/.
    I really really love those long and detailed changelogs. πŸ™‚

    In case you are still using Konversation 1.3.1 and experience strange crashes since Qt 4.7.4 update, I highly recommend you to use this 1.4 Beta 1. Or if you really want to stay with 1.3.1 you could fetch the latest commit from the 1.3.1 branch.
    Please also note that we have at least one minor style fix for Qt-4.7, so again, update is recommend.

  • Turning Kate into a Prolog IDE

    The thing you do most of the time is consulting files, and if you type it manually it can be pretty annoying. But Kate can help πŸ™‚
    Go to
    Settings -> Configure Kate… -> Application -> Plugins
    and check if “External Tools” is checked, if not check it and click “Apply”. Now you should have a
    Settings -> Configure Kate… -> Application -> Plugins -> External Tools
    go there and click “New”, let’s call it “Prolog Consult” and set the script
    qdbus org.kde.kate-`pidof kate` /Sessions/1 sendText "consult('%directory/%filename')."$'\\n'
    and as executable set “qdbus” (if not already set automatically), you can even assign it to some mime types and tell it to save the current file(“Current Document”) if you want. Now click “OK” and close the “Configure – Kate” dialog by clicking “OK” again. To make things even easier, open
    Settings -> Configure Shortcuts
    and assign “Prolog Consult” to a shortcut you like, and that’s it. Now every time you press the shortcut a
    consult('/path/to/file/file.pl')
    is sent to your Kate konsole.

    The only bummer that\’s left is that default mimetype settings only have Prolog with *.prolog extensions, but swi-prolog only likes *.pl files, an easy way to fix this is adding a kate modeline at the beginning or end of the file, like
    % kate: hl Prolog;
    And now you also have prolog highlighting, so Kate is pretty cool, and I hope it will help the *cough*countless*cough* prolog hackers out there. I am pretty sure you can modify it for various other uses πŸ™‚

  • bkodama v0.3 released

    Hello planet,
    maybe you have already heard of my simple-minded kodama

    it wanders on your desktop and disappears again. In case you never heard about it, you might want to read this or just go ahead and install it from here.

    The good news version 0.3 is released with many bug fixes and the long awaited option to control the time between the appearance. It is still just a random value, so you basically only set the maximum, wouldn’t be fun otherwise πŸ˜‰
    The only new major feature is the hourly special event, the kodama appears every hour and tries to do something cool, it will not happen every hour and has a very low chance to successfully happen. Some of you might think it is not very kodama like to do something like this, but don’t fear, you can disable it in the settings.

    The bad news bkodama is dead, errr no it isn’t. But let’s say I learned quite a bit about plasmoids and animation, and the current codebase is horribly ugly. Please don’t look at it, it will only cause serious headache.
    So it is not dead, but I need to start from the scratch, for the greater good. I have great ideas about how to make it much nicer and easier to extend. Well, it’s not extendable at all currently…
    I have a vision and I know how to realize it, what’s left? Oh yeah… time, so don’t expect anything anytime soon, but it will happen πŸ™‚

    Now it’s time to try out bkodama v0.3 and I hope you enjoy the release πŸ™‚

  • What’s next in the DCC world?

    It’s been a while since I last blogged, as I was really busy this semester with various projects and exams are still ahead.
    But let’s get back to konversation. The DCC part has seen great improvements for the user with UPnP support and lately the Whiteboard extension. So what do you expect next? Oh, yes we still have open whishlist bugs but … oh well…

    • Conditional white lists for DCC auto-accept is a great idea and definitely worth implementing
    • Automatically abort stalled / timed out DCC receive transfers is a special network problems where the TCP/IP connection is still active but no data is transferred, I don’t think many users have seen it, so the priority for me is rather low. And note transfers with broken connections are already automatically aborted
    • Bandwidth control for DCC transfers the oldest and highest voted bug, is rather difficult to implement. Ok, easy for send, but impossible for receiving via the DCC protocol, as nearly all IRC clients don’t wait for the ACK bytes before sending new data. Maybe there is a TCP/IP trick that makes it very easy…

    On the other hand, let’s look what other IRC clients have.
    KVIrc has voice and video support, which makes it a great all-in-one IRC client (except for whiteboard :p). But does konversation need voice and video support too? Voice support is cool but for my use-case I want to chat with more than one person at the same time, which kvirc doesn’t over as it seems, or I just couldn’t find it. And it wouldn’t be easy for konversation to act as β€œvoice-server” to allow multi-voice-chats too.
    The main reason why I implemented whiteboard is that there are not many β€œnetwork-painting-apps”, but that is not the case for voice and video, there are many voice and video clients out there. So konversation would just reinvent the wheel with disadvantage.
    Another big DCC features are XDCC and fserve, important features, but I am not too eager to implement them.

    I wonder if I missed something and, I am interested to hear your dcc-related ideas πŸ™‚
    But don’t expect me to code anything soon, as the exams are still ahead and after the exams I will be away for 5 weeks walking the Way of St. James

  • Konversation – Introducing DCC-Whiteboard

    So what is going on in the konv land? Version 1.2.2 will be released soon, which is great enough, but I have something even better for you.
    Post 1.2.2 we will have DCC Whiteboard!
    (imagine the 20th century/fox music: “dadadadaaaa…dadadadaa”)

    A basic “multiplayer paint” which implements DCC whiteboard, specs can be found here. It won’t be in 1.2.2 as it is not ready but, as you can see, it basically works πŸ™‚

    Now to the show-stoppers, the whiteboard specs lack many things to keep the drawing 100% in sync.
    For example, it is impossible to keep the size of the image in sync, it has no real size, but how can you save an image without a size? I ended up resizing the image as needed but with a limit to 2048×2048 pixel, for the sake of all broken gfx drivers. And now imagine one side uses floodfill with a different image size than the other, the result will be different. I *could* implement an extra resize signal, but that is not part of the whiteboard specs.
    Also for text if one side uses a really fancy font there is no guarantee that the other side has it as well, so we need another extra “has font” check.
    Until now nothing unsolvable, but I have no clue how to keep the picture in sync if both sides draw a rectangle on the same place with a time difference smaller than the network delay.

    As conclusion, DCC whiteboard is meant for fun painting, it will never replace a krita or gimp, not even kolourpaint (ok maybe kolourpaint at some point). And DCC whiteboard also shows that DCC is not only made for filesharing πŸ˜‰
    Try sharing your files with kolourpaint, hm… well I think you could if you really want, but please don’t.

  • Hello planetKDE

    Hi everyone,
    my name is Bernd Buschinski (buscher), I am a konversation developer mainly responsible for the DCC part. So if konversation crashed with a DCC backtrace(which will never happen because konversation is rock solid :p ), it was likely my fault.
    I am a Computer Science student and just finished my internship. I worked on a screen reader called SUE (Screen reader and Usability Extensions) which is currently aimed for working on the GNOME desktop, but not limited to only work on GNOME. With more back-ends it could, more or less, easily work on any OS and WM (assumed we have some kind of accessibility infrastructure there).

    So from now on I will try to keep you up to date with recent exciting konversation changes and maybe some other smalls things too πŸ˜‰