If you're going to write your first GIMP plugin...

January 29, 2010
GIMP plugin

... then this post is for you. I used to utilize three scripting engines — Script-fu, PERL-fu and Python-fu, and now I wish to share my thoughts about their advantages and disadvantages.

It was started when I was asked to create a website with a special figured font applied on headings and product captions. If you're web designer then you know what my problem was — support of arbitrary fonts in different browsers is still up in the air. And that was a few years ago... In short, it was decided to make a bunch of images with captions and to put them on a page. In spite of a small size of the site, it was insufferably dull to make all these images by hand, do the same operations every time. So I started to look for automatic methods. I had no luck with ImageMagick, but it was not so hard for me to learn how to write GIMP plugins.

Nikita Melnichenko.

Diagrams with arrows

February 7, 2010
DokuWiki plugin

I'm happy to announce a new long-expected experimental release of DokuWiki plugin Diagram that supports arrows! Other notable change is a reworked processing engine and a new layout for decreasing amount of XHTML code (I plan to continue development in this direction). A plenty of changes has been made so I decided to break the line of stable releases and create a separate branch. Fresh code needs some testing, you know...

The documentation was updated so feel free to download and try out the new version. As an example I've equipped Kennedy family tree with arrows. Finally, I want to show you how the diagram from the documentation looks in the Firefox browser...

Nikita Melnichenko.

Plasma Javascript Jam Session

April 1, 2010
Plasma

Jam Session is a contest for the best plasmoid written using a new javascript engine appeared in KDE SC 4.4. For those of you who doesn't know these words — KDE SC is a great desktop environment, plasmoids are little programs that are placed on a desktop and extend it by providing you different features. They are also could be placed on panels. For example, clocks, tray, task bar are all plasmoids. It's a great idea to compose your own desktop from bricks. So the goal of this contest was to write your own javascript program.

Plasma Javascript Jam Session

I've already had an idea of a small application, interactive progress bars that could help to plan my time better and to show progress of my tasks so I could have a visual representation of the point where I currently am. I was very excited with the API. It provided many features and seemed to be suitable for my program. Actually, I reached the limits pretty fast and had to find many workarounds to implement what I want. That was interesting. I like to find another ways to solution when there is no a straight way. Some workaround methods were not good so if you find some sort of a strange behavior of my plasmoid, the reason could be in a lack of possibility to do it right. I tried to do the best I can in the limited time and I know that there is still a room for enhancement.

Nikita Melnichenko.

More on Make Progress

May 3, 2010
Plasma

One month has passed since the first public release of Make Progress plasmoid and it's time to sum up. The most important thing is that the program appeared to be useful for people. It's shown by the first place in the user voting on the KDE Javascript Jam Session and high rating on KDE-Look.org. This interest motivates me to continue development. I've received many feature requests and it's clear that people really use the plasmoid on their desktops. For example, Andrew Andrianov even shared a task management script that uses PHP, MySQL and my plasmoid. Some unpleasant bugs were also discovered. For instance, Plasma bug #234781 that causes crash when plasmoid intensively used with the Make Progress data engine. This means that we should not use DBus interface for some time. KDE team didn't devoted their attention to this issue yet and it's not known when it will be fixed. If you want to help then vote up this bug on its page.

Nikita Melnichenko.