kde Syndicate content

» Spotlight: Kate Scripting

Tue, 07/27/2010 - 00:51

Hey ho everyone.

Dominik asked me to blog about a feature in Kate that is still (sadly!) pretty unknown and seldom used: Kate Scripting. As you should know you can script KatePart completely via JavaScript. As those articles explain, it’s rather simple to write functions and put them into a file to have them reusable. But what for those write-use-throwaway kind of cases, where you simply need to get a job done quickly and don’t want to go through the overhead of writing some full fledged, documented, action-binded, localized script?

Utility Functions and why JavaScript rocks

Note: Neither map nor filter will be shipped with 4.5 to my knowledge, sorry about that. But you can still use the each helper (see below) to achieve the same with a bit more typing…

Take a look at utils.js on current git master: http://gitorious.org/kate/kate/blobs/master/part/script/data/utils.js

Put a special note on the helper functions map, filter and each and how they are used to implement e.g. rmblank, [rl]trim and the other functions. Cool eh? And the best part, you can reuse them directly from inside KatePart to get a job done:

mail-style quoting

Lets assume you write an email or use something like Markdown or Textile and want to quote. You’ll have to prepend a few lines with the two chars ‘> ‘. Instead of copy’n’pasting like a maniac do this instead and save yourself some breath:

  1. press F7 to open the Kate command line
  2. write e.g. map "function(l) { return '> ' + l; }"
  3. execute

Note: When you don’t have anything selected, the whole document will get “quoted”.

remove lines that match a pattern

This is something everyone needs to do sooner or later, happened quite a few times to me already. I bet vim has some esoteric command I cannot remember and emacs has something like C-x M-c M-butterfly. But with Kate most users only see search & replace and forfeit to the command line. Well, now it’s again a good time to use the command line:

  1. press F7 again
  2. write e.g. filter "function(l) { return l.indexOf('myNeedle') == -1; }"
  3. execute

Now all lines that contain ‘myNeedle’ will get removed. Sure, this is “verbose” but assuming you know JavaScript it’s actually quite easy, expendable and - best of all - good to remember. At least for me, YMMV.

shortcuts

For simple cases I’ve now introduced a shortcut way of doing the above, that saves you even more typing, but is limited to simple evaluations like the ones above. If you need something fancy, you’ll have to stick to the type-intensive way. Aynhow, here’s the shortcut version of the two scripts:

  1. map "'> ' + line"
  2. filter "line.indexOf('myNeedle') == -1"
the guts: each (interesting for users of KDE 4.x, x < 6)

Both of the above are implemented using the each helper I introduced even before KDE 4.4 afair. If you are using KDE 4.5 and want to do one of the above, a bit more typing is required:

  1. for map, you write something like this:
    each "function(lines) { return lines.map(function(l){ /** actual map code **/ }); }"
  2. for filter you do the same but replace map with filter:
    each "function(lines) { return lines.filter(function(l){ /** actual filter code **/ }); }"
Conclusion

You see, it’s quite simple and powerful. I really love map-reduce and how easy it is to use with JavaScript. Hope you like it as well.

PS: I actually think about making it yet even easier, by allowing some syntax like this: map '> ' + line or filter line.indexOf('myNeedle') == -1, must take a look on how hard it would be (beside the need for extensive documentation, but hey we have the help command in the Kate CLI, who can complain now? :) Implemented

Bye

» KDevelop 4.0.1 released

Wed, 07/21/2010 - 16:28

Good news everyone!

I’m happy to announce the availability of our first patch level release for KDevelop 4. You can get it and the related packages from:

http://download.kde.org/download.php?url=stable/kdevelop/4.0.1/src/

This is a bugfix only release and everyone is urged to upgrade as soon as possible. Below you find a list of changes that went into this release.

Users should wait for their distributions to provide packages for them.

Thanks to the KDevelop contributors for making this possible and to the users for giving us valuable feedback.

PS: I hope to release a second patch level release in a month, assuming we find more to fix.

Bye

KDevplatform 1.0.1 Changelog
  1. * Milian Wolff: don't emit documentJumpPerformed when nothing changed
  2. * Milian Wolff: prevent infinite loop when url gets saved and triggers loading of new language plugin
  3. * Milian Wolff: fix ${selection} in snippets
  4. * Milian Wolff: properly handle manual document switches in context browser toolbar
  5. * Milian Wolff: fix: make it possible to activate repository in singleclick mode
  6. * Andras Mantia: Really load (and use as a replace source) the global ui.rc file, not the local one.
  7. * Milian Wolff: properly add codecompletion to existing documents
  8. * Mantia Andras: Enable select all/copy in the frame widget.
  9. * Mantia Andras: Propagate shortcuts setting to all the opened editor views.
  10. * Andreas Pakulat: Fix accessing of temp-files for windows.
  11. * Milian Wolff: properly handle unterminated strings in comments, fixes code completion after those
  12. * Milian Wolff: properly remove watcher to prevent crashes in smartrange dtor
  13. * Andreas Pakulat: Also set CMAKE_INSTALL_RPATH
  14. * Andreas Pakulat: Make sure kdevplatform is properly linked
  15. * Milian Wolff: put snippets completion items at end of list
  16. * Milian Wolff: fix clearComments for unterminated comments
  17. * Nicolás Alvarez: Create Class: Refresh move button state when a list item is removed too.
  18. * Nicolás Alvarez: When moving items in Create Class inheritance list, update selection.
  19. * Nicolás Alvarez: Update move up/down buttons when selection changes in inheritance list.
  20. * Milian Wolff: prevent endless recursion
  21. * Nicolás Alvarez: Change "Stop Jobs" icon from dialog-close to process-stop.
  22. * Andreas Pakulat: Fix documentation for the .desktop files
  23. * Milian Wolff: don't go into edit-item mode on doubleclick or single click
  24. * Niko Sams: Fix crash when closing kdevelop with running debug session
  25. * Niko Sams: Fix crash that can happen during shutdown with an active debug session
  26. * Andras Mantia: Avoid calling emitResult() in failed case. internalJobDone() is called anyway, and that calls emitResult(). The problem is: when the error message is shown, the eventLoop is reentered, the job is deleted. The emitResult() call after tries to use the deleted job -> crash. This might be only a workaround, but fixes bug 229557 (and its duplicates), bug 227823, bug 232444, 227584.
  27. * Milian Wolff: properly escape dot before git folder
  28. * Andreas Pakulat: End the namespace before the macros.
  29. * Jonathan Schmidt-Dominé: Fixed syntax-errors in ibrowsableversioncontrol.
  30. * Milian Wolff: add a \c where appropriate, add missing dot
  31. * Andreas Pakulat: Add some api dox how to get at plugins and load them properly.
  32. * Andreas Pakulat: Use the complete url of the active document.
  33. * Milian Wolff: make snippet invalid when name contains spaces
  34. * Milian Wolff: allow anything non-space in snippet's code completion model
  35. * Eike Hein: Meet HIG rules about alignment in forms.
  36. * Milian Wolff: make QuickOpen look like a proper menu/dropdown
  37. * Hugo Pereira Da Costa: Fixed setting of maximum height for button and stack so that expander arrow pixmap is not trunkated when small font is used.
  38. * Hugo Pereira Da Costa: Removed unnecessary calls to "setAutoFillBackground(true)". this allows main window background gradient (if any) to be painted right. (like in e.g. oxygen, bespin). Does not affect other styles.
  39. * Hugo Pereira Da Costa: Keep vertical size policy unchanged when embedding KLineEdit inside toolbar.
  40. * Hugo Pereira Da Costa: Rotate back icon so that it is still painted horizontally even for vertical buttons Use option->iconSize to decide which pixmap must be rotated.
  41. * Hugo Pereira Da Costa: This patch modifies the painting of sidebar vertical toolbuttons so that - the button frame is painted "non-rotated" - only the text is painted rotated. This fixes how buttons shadows are rendered. Screenshot at http://www.flickr.com/photos/hugo-oxygen-icons-org/4584572966/sizes/o/
  42. * Andreas Pakulat: Increase minor version.
  43. * Andreas Pakulat: Remove kross from subdirs list
  44. * Bertjan Broeksema: Port away from deprecated KLibLoader::self to KPluing loader.
  45. * Bertjan Broeksema: Initialize members in the right order.
  46. * Bertjan Broeksema: Clean up
  47. * Bertjan Broeksema: Fix warning and clean up.
  48. * Bertjan Broeksema: Fix a compile warning related to deprecated hash_map.
  49. * Bertjan Broeksema: Fix a bunch of trivial compile time warnings.
  50. * Milian Wolff: fix LGPL file as proposed by TZander
  51. * Milian Wolff: fix compile when ifDebug is enabled
  52. * Niko Sams: Debugger: Only switch back to code area if there is an active MainWindow.
  53. * Volker Krause: build with -pedantic
  54. * Andreas Pakulat: Don't crash if dynamic_cast fails.
  55. * Thomas McGuire: Fix progress popups being transparent.
KDevelop 4.0.1 Changelog
  1. * Milian Wolff: fix overflow in CMakeFunctionArgument::unescapeValue
  2. * Andras Mantia: Remove some conflicting shortcuts from the katepart.
  3. * Milian Wolff: fix: allow incr as identifier, it's not the ++ token after all
  4. * Milian Wolff: don't crash on nullptr type in getPointerTarget
  5. * Milian Wolff: fix shouldStartCompletion when writing a path in a #include, inserted is not only a single char
  6. * Milian Wolff: don't crash when getContainerType does not find a declaration for the identified type in the given topcontext
  7. * Andreas Pakulat: Fix opening files with relative path.
  8. * Andreas Pakulat: Set CMAKE_INSTALL_RPATH to lib-installdir
  9. * Andreas Pakulat: Make sure kdevplatform is properly linked
  10. * Milian Wolff: use canonicalFilePath as absoluteFilePath might lead to problems when resolving relative includes in symlinked directories
  11. * Nicolás Alvarez: Fix another possible leak
  12. * Nicolás Alvarez: Fix memory leak in CMakeListsParser::readCMakeFile.
  13. * Milian Wolff: don't advance over EOF, might lead to invalid tokens and crashes
  14. * Aleix Pol: Prevent calling a null pointer.
  15. * Aleix Pol: Add proper support for the Break command.
  16. * Andreas Pakulat: Don't try to open a non-existing file.
  17. * Milian Wolff: make __volatile__ a synonym for volatile
  18. * Milian Wolff: don't recurse into the same class in typeutils::getMemberFunctions
  19. * Esben Mose Hansen: Find build directory even in root CMakeLists.txt
  20. * Milian Wolff: fix uses in argument lists of pure virtuals
  21. * Esben Mose Hansen: Use config mode as fallback if no module is found, and set package_DIR in all cases where a module was not found
  22. * David nolden: Turn an assertion into a warning BUG: 236411
  23. * Niko Sams: Remove support for building the whole extragear/sdk.
  24. * Kovarththanan Rajaratnam: Remove FindCppUnit.cmake now that the CppUnit plugin no longer exists
  25. * Kovarththanan Rajaratnam: Remove FindCheck.cmake now that the Check plugin no longer exists
  26. * Andreas Pakulat: Increase version number
  27. * Niko Sams: Quote variable expressions correctly.
  28. * Milian Wolff: set invalid range on final location of problem when include path resolver found more paths than the build manager
  29. * Andreas Pakulat: Fix kdevelop app icon for windows.
  30. * David nolden: Use a mutex to prevent setupStandardMacros() and setupStandardIncludePaths() from being called multiple times at the same time, preventing a crash. BUG: 236434
  31. * Bertjan Broeksema: Fix compile warnings related to deprecated hash_map
  32. * Andreas Pakulat: Also search for qmake-qt4
KDevelop-PHP 1.0.1 Changelog
  1. * Milian Wolff: fix compile
  2. * Milian Wolff: remove includebuilder
  3. * Milian Wolff: support $a->{$...}
  4. * Milian Wolff: dont fail parsing on $c::func(); or $c::const; BUG: 244076
  5. * Milian Wolff: fix use builder in static member arrays
  6. * Milian Wolff: remove obsolete cmake file that never got run in the first place
  7. * Milian Wolff: fix build of stable, we don't depend on kdevelop-pg-qt there
  8. * Milian Wolff: fix logic to find already up-to-date files in the parsejob
  9. * Milian Wolff: don't start include parsejob when there is already a background parsejob for that file, should prevent deadlock
  10. * Milian Wolff: invalidate declaration done in method body when it got added to class body
  11. * Milian Wolff: don't search in parent contexts for variables
  12. * Niko Sams: Improve implementation helper: don't add return statement for void functions
  13. * Niko Sams: Fix implementation helper for static methods
  14. * Niko Sams: increase version number
  15. * Niko Sams: Remove support for building the whole extragear sdk.
KDevelop-PHP-Docs 1.0.1 Changelog
  1. * Milian Wolff: remove cmake_minimum_required, obsolete (due to KDE requirement) and breaks build when po files are included
  2. * Niko Sams: Remove support for building the whole extragear sdk.

» Quanta GSOC midterm evaluation

Thu, 07/08/2010 - 22:24

Hey there!

Midterm evaluations for GSOC are coming up and Andris Mantia, my mentor I finally met at Akademy, asked be to blog about what we already have in Quanta. Because there is a lot and most of you are not aware of that. And to be honest it’s actually too much to put into a single blog post, so I hope to do more of a series of blog posts showing off some features.

Quanta 4 is not Quanta 3

Anyhow, I fear that a disclaimer is in place, for all of you who are desperately looking forward a KDE4 version of Quanta. The thing is, I cannot, nor do I want to, port Quanta from KDE3 times as-is to KDE4. Instead I build on top of the KDevplatform that is also used for KDevelop and KTechlab. By sharing the basic code it gets much easier to maintain Quanta in the future. This decision brings two things with it:

  1. We get an awesome library to built new stuff on top, making things like the new PHP which is already much more advanced than anything from KDE3, actually plugin possible.
  2. We don’t have all features from Quanta 3 or if we have, they might look and work differently. This also means that you won’t be able to take your Quanta 3 workflow without changes over to Quanta 4.

Some examples for the last part, that also sheds some light on our (== KDevelop team) preferred way of designing the IDE:

First and foremost, dialogs are evil. There, I said it. I doubt I’m the only one here and there are actually many other KDE applications following this mantra. Afaik Aurelien from Gwenview is trying to make it the first app in KDE without any modal dialogs. Go for it dude! What does that mean for Quanta? You might remember that Quanta 3 had lots and lots of dialogs. You could change attributes of HTML tags via dialogs, you could insert code via dialogs. In Quanta 4 this wont be the case, at least I won’t write these dialogs. Instead I concentrate on kickass code completion, which should make these dialogs obsolete.

  • offer context sensitive code completion, e.g. only tags that are valid at the given cursor position or attributes that fit into the given tag under the cursor
  • directly insert tags with all required attributes
  • make it possible to trigger a file-selection dialog in e.g. src="..." or similar attributes from within code completion (there’d be a ‘select file…’ code completion item)

In my opinion every dialog that created or changed code can be replaced by code completion. And if you use it, it’s much faster to write and change code. You don’t have to grasp a new magic modal dialog and find the attribute you want to change. Instead you simple select it, CTRL + Space for code completion and insert the stuff you want.

existing Quanta 4 features

So much for the design ideas in Quanta4, now lets talk about what we already have now in Quanta4. For the uninitiated, you can find the source code at http://gitorious.org/kdevelop/quanta. You will need KDevplatform, KDevelop-PG-Qt and QJSON to get all plugins built.

Also another note is in place here: Even though I have the GSOC and spent lots of time on Quanta, the features I describe below wouldn’t exist if not for the help and work of others. Most notably Niko Sams (PHP, CSS, Execute Browser, Execute Script, XDebug, Crossfire, …), Ruan Strydom (XML/SGML, PHP formatter) and all the other guys happily hacking away at KDevplatform and it’s core plugins and libraries.

PHP

For those that never heard about the work Niko and me put into the PHP language support plugin for KDevelop, you have quite a lot of catching up to do :) I’m too lazy to reiterate everything, if you are interested, read my blog posts: http://milianw.de/tag/php

But frankly, you should instead just try it out. We released PHP together with KDevelop 4.0 and most distros should package it. I still actively work on it and e.g. just brought in some PHP 5.3 features (namespaces) the other day.

To list just a few things we have:

  • state of the art code completion
  • inline syntax checking and error reports
  • context browsing
  • inline documentation and PHP.net integration

If you thought Quanta 3 was good for PHP development, try this, really :)

Ah and before I forget that: Niko also wrote a plugin that integrates XDebug: http://nikosams.blogspot.com/2010/02/kdevelop-xdebug-php-debugger.html

CSS

Here I think I can simply link to Nikos blog posts explaining and showing off his CSS language support plugin:

http://nikosams.blogspot.com/2010/01/kdevelopquanta4-css-language-support.html
http://nikosams.blogspot.com/2010/02/css-language-support-update.html

As you can see once again: When using and implementing the tools in KDevelop properly for a language you get insanely good code completion and context sensitive help plus some browsing utilities. Very handy indeed, and once again (imo) better than what we had in Quanta 3.

Once we have proper multi language support in a single file, expect more goodness from my side, I only added more inline previewing, e.g. for colors.

XML

This is by far the largest surprise for me. Ruan Strydom, a South African, announced at one day - out of the blue - that he is working on a XML language support plugin for KDevelop. And he did a quite good job at it. I’ve been helping out there the last weeks and fixed bugs and added a few features, but it’s still mostly his work. It is already quite useful, as it parses the XSD or DTD that is used in your document and based on that offers you context sensitive code completion and context browsing. It also works somewhat for SGML, e.g. HTML and is quite handy.

There is still quite a few things to do here, e.g. report errors about invalid attributes, tags, etc. pp (currently only real XML syntax parse errors are reported).

Snippets and External Scripts

In Quanta 3, custom toolbars and the actions in them where apparently quite popular. In KDevelop and hence Quanta as well, this is currently handled differently, yet the features should be the same, if maybe with a different workflow. See e.g. http://milianw.de/blog/snippets-in-kdevelop-kate on how snippets work, and http://milianw.de/blog/kdevelop-externalscript-plugin for external scripts.

These should (hopefully, if not please report) give you all the features you had with user actions in Quanta 3. Putting these actions into toolbars is not there and I frankly don’t see the huge need for it that would make up for the huge time I’d had to spent on it to get that working again.

The future and call for feedback

So as you can see, Quanta is not dead, but got very much revived. I hope to get our beloved webdevelopment IDE up and running next year at latest, if possible with a few first test releases this year. Anyhow, back to GSOC:

It’s currently midterm and I already achieved a lot, in the next weeks I will definitely spent my time in getting proper multi language support in a single file up and running. That would then finally make it possible to have proper context browsing and code completion in e.g. a template that includes CSS, PHP and HTML. Also the inline HTML preview from Quanta 3 is needed to be ported / reimplemented. But I might be missing things, which makes me conclude this overlong blog post with a call to old Quanta 3 users:

What features are you missing above from Quanta 3?

Please write one comment per feature and then do “+1” kind of comments to get a basic vote here. That way I can see on what features I have to concentrate on to get Quanta 4 up and running.

Bye

» KDevelop 4 talk at 12:15 today!

Sun, 07/04/2010 - 08:43

Hey everyone!

Apparently “Application Integration from KDE Finance Group” is not taking place, instead Aleix and me will fill the gap and talk about KDevelop 4. We haven’t got any slides and only prepared roughly yesterday, but we decided just to show KDevelop 4 in action. Lets hope that there will be something in there for any interested KDE developer.

I’ll definitely show some assistants again, since apparently many people still ignore them even though they are imo one of the best features we have.

So come to room I at 12:15 :)

PS: Short note regarding KDevelop at Akademy: I’m pleasantly surprised again to see so many KDevelop users around. You all rock!

» KDevelop PHP Advancements: Namespaces and Error Recovery

Thu, 06/24/2010 - 02:08

Hi there,

just a quicky before I head off to bed and go on a short vacation the next few days:

PHP support in KDevelop now has support for the first PHP 5.3 feature, namely namespaces. I’m still convinced that the syntax sucks pretty bad in PHP’s implementation of namespaces but well, my hands are tight and I had to support it. Anyhow, with PHP master you shouldn’t get syntax errors anymore when using namespaces, but instead proper code completion, syntax highlighting and context information… Well, full blown DUChain integration :)

Furthermore I just introduced the first few error recoveries in PHP that should make the situation a bit better when you work on a broken file. Up until now any parse error resulted in a file with no advanced PHP features at all until you fixed that parse error. Now it should at least skip parse errors in code segments between braces (classes, functions, conditionals, namespaces, …). It can be much improved of course, and I’ll do just that next week.

Bye!

» KDevelop - ExternalScript plugin

Wed, 06/16/2010 - 14:06

Heyho, me again :)

Seems like I have quite the urge to write blog posts recently… Anyhow:

The last two days I reimplemented / ported two features from Quanta 3 times to KDevelop (if you still didn’t get it: everything is a plugin, hece it will be reused in Quanta 4). What I’m talking about is most importantly the revival of a “execute external script” plugin. It’s currently still in a feature branch, but will hopefully be merged into master soon. But what can you do with it? Well, think about the following usecases and see how they can be solved with this plugin:

I want to compile and run a simple helloworld.cpp-like file without setting up a build environment nor do I want to setup a project for it.
Use an external script: quick compile. It just runs this command: g++ -o %b %f && ./%f
In this code %f gets replaced with the path to the currently active file and%b is it’s basename (i.e. without extension).
I want to sort / uniq / … the selection in the current document.
Here you can either use Kate Scripts, which gives you the same features. But to show you the capabilities of the external script plugin, this is a good example:
Setup an external script, that gets the current selection (or the whole file if nothing is selected) piped into it’s STDIN and let the selection (or, again, the whole file if nothing was selected) in the active document get replaced by the STDOUT of the external script. I’ve added an example doing just that.
I want to google for the selection in the active document.
I got this example from the External Tools plugin for Kate, and made it possible to do that with the new plugin in KDevelop. Simply use the following script: xdg-open "http://google.com/search?q=%s"
Note: %s gets replaced by the shell-escaped version of the selected text in the document.
I want to run an external syntax checker on my file / folder / …
Simply use an external script for it :) With the various %... placeholders it should be easy enough to do.

Here are a few screenshots showing the tool in action:

Second feature that I pushed in, which you can also see in action for the external scripts, is the possibility to assign shortcuts to snippets and external scripts. Eventually I’ll also try to bring back the “user toolbars” from Quanta 3 times, but I hope to do that properly inside KDELibs for reuse by other applications.

Another thing: In Quanta 3 times it was easier to create external scripts that showed some UI and asked for more user input. This is not possible since Kommander (which was used back then) is not available nowadays. If someone polishes the afaik halfway working port, I’m willing to implement it again. Anyhow I think nowadays one should use Qt Designer and Ruby or Python bindings to create UIs. Sure, a bit harder but much more powerful.

But well, now it’s your turn to write cool external scripts :) And to give me feedback: What kind of scripts would you write? What %... placeholders do you need?

PS: Even though I booked flights and accommodation ages ago, I haven’t yet announced it in proper KDE-style yet:

I'm going to Akademy 2010

» KDevelop Webdev plugins merged into Quanta GIT

Sun, 06/13/2010 - 17:18

Quick note:

I’ve just merged all webdevelopment related plugins except PHP & PHP-Docs into Quanta git. You can get them all in one place now by cloning Quanta: http://gitorious.org/kdevelop/quanta

Since I also moved all halfworking plugins to UNPORTED (they don’t get installed), you should be fine by just installing all of Quanta to get the plugins. If you only want one of them, going into it’s subfolder and building it standalone should hopefully still work though.

In other notes: Thanks to Ruan Styrdom for starting work on a PHP formatter plugin for KDevelop. It uses phpStylist and it’s already somewhat working. Awesome :)

/me is off to more GSOC hacking, bye

» LinuxTag 2010 WrapUp

Sun, 06/13/2010 - 01:49

Hello everyone,

I have the urge to write a quick wrap up over the just finished LinuxTag 2010: All in all, I had a good time. Really, imo it was better than last time (granted though, last LinuxTag sucked pretty badly).

Anyhow, this time was my first shot at being a speaker. Boy was I nervous… I trembled quite badly at the beginning but got confident after a few minutes. Too many “ähm“‘s and “äh“‘s though ;-) Anyhow, I apparently did my job well enough: My talk was about KDevelop 4 - Faster C++ Programming. But yeah, I did it in German (it was my first talk on such a convention, and I was already nervous enough :P), but still - since I did a live presentation I was apparently able to impress even non-German speaking attendees by the sheer amount of visual coolness I could present :)

Really, the C++ features in KDevelop I showed are so nuts and awesome, I have to thank David and friends for implementing them in KDevelop. Great job everyone! It made my life as a speaker quite easy :)

If anyone is interested in the German talk (audio is good, visuals not really…), you can download a 23min part of the talk on rapidshare: http://rapidshare.com/files/397758262/Milian-LT2010.M4V.html (Thanks to Adrian for recording and uploading it!)

What this talk showed me in retrospect, esp. combined with the feedback I got afterwards and the recurring nags in #kdevelop on freenode, is that we are in dire need of writing documentation for KDevelop. Since we devels don’t have much time for that (and it’s boring…) I think/hope to write at least a short blog series about “hidden” features, i.e. the stuff I showed in my talk. Starting with that, I hope that one of you, dear readers, steps up and creates a proper Docbook documentation out of that :)

Oh and yeah, I had quite a few chats with the friends from QtCreator developers over at the Qt/Nokia booth. They do a quite good job at catching up with us apparently :P Well, that’s what they have their payed developers for after all ;-) One real “advantage” KDevelop has though, is that it’s inherently language agnostic. The Qt guys have of course no intention to support e.g. PHP. We otoh want that - and already do so. I had a few chats with (sometimes future) users of our PHP plugin and got quite good feedback, which I want to implement eventually. Even so, I actually started implementing the first features for PHP 5.3 support: Namespaces. If someone wants a good laugh, look at how that is designed for PHP 5.3, it must have been a drunken Windows guy that never used Namespaces in any other language before… sigh.

Anyways, back to LinuxTag in general: It was of course nice again to see so many fellow KDE developers and supporters. Also seeing the good old Ubuntu Berlin and LinuxTag crowd I “know” now after four years here, was a good thing. What I have to say is that attending a conference and actually taking the time to visit a few talks is much nicer than staying at the booth all time. Yes, sorry Eckhart for even doing some hacking on the booth, but we should all take that time for ourselves. We’ve been a large crowd at the booth nevertheless, esp. since we had the combined manpower (and women!) of Amarok, Kubuntu and KDE! And attending conferences and having some quiet time makes booth-work much more bearable. It’s not like I didn’t talk to people though, quite the contrary. But as always (esp. at events like LinuxTag), you get to talk to at least one insane person every day ;-) And after the second you kind of start to loose your faith in humanity… :P

Nice as always were the social events surrounding the fair-hours, most notably of course the “friends of Qt/Nokia” dinner that served us awesome food once again. The social event of the LinuxTag at Thursday was much better than last year (even though / because?) it was sponsored by Microsoft this year. Good job that we == KDE rocked the dance floor of course ;-) Tonight we wrapped it up with the usual Ubuntu BBQ at cbase, a nice end to an imo good event. If they can improve it some more next year by pushing the community aspect more once again, I’m confident that LinuxTag in Berlin could become as good as it was a few years ago!

Anyhow, now I really have to do some more catch-up for Quanta GSOC ;-) Good night!

» First Days of Quanta+ GSOC 2010

Fri, 06/04/2010 - 22:16

Ok, finally I take the time to blog again.

The last two weeks have been a busy time for me and I couldn’t find as much time for GSOC as I would have wanted. I had to finish up some things at KDAB where I spent the last three months doing an internship (maybe I should write another blog about that eventually…). Afterwards I took five days of vacation, visiting a friend in Lisboa, Portugal - a very good decision to clear my head :) Esp. considering that I directly dropped back into my old job at the IT administration here at my university, where I had to quickly finish another project that I delayed until the last days possible ;-)

But… Even before GSOC officially started I already committed a few small things. But yesterday and today I finally started for good. Thanks to the discussion with Andris (my mentor) I actually think to know what I have to do ;-) Porting Quanta+ is not an easy task, even though there is already a Quanta binary that links against KDE4 and “works”. There are tons of files and hundres of lines of code commented out that are left to be ported. And I have to wager: What can I port in the few weeks left for GSOC and what should I drop for now? What is superseded, or should be eventually superseded, by a proper KDevplatform integrated plugin?

But well, I think I know what to do for the next few days:

  • make Quanta specific code specific to Quanta (yeah, cool eh :P)
    currently QuantaCore is a plugin and hence also shows up in KDevelop showing Quanta specific stuff there, not nice
  • spruce up Ruan Strydom’s XML plugin for KDevplatform and purge the DTEP stuff in Quanta while merging as much as possible
  • make the ‘insert tag’ etc. pp. related actions, toolbars from Quanta3 work again
  • polish Niko Sams upload, css, xdebug, execute script, execute browser plugins

If I manage most of these, I’m confident to say that I reached an important step towards a once again useful Quanta. Lets see how it works out.

» KDevelop 4 - Looking at the feedback

Mon, 05/03/2010 - 23:46

Hey everyone,

I spent some time today browsing teh interwebz to look at the responses our first KDevelop 4.0 release triggered so far. Quite fun I have to admit, given this is the first release of something I actively helped to develop that actually gets a response on the net ;-) What I noticed among the ‘I use VS’, ‘I use vi’, ‘I use ed’ comments (besides ‘I use emacs’):

  • sadly we didn’t update the screenshots everywhere yet, making some people believe we actually look like kdev 3 still ;-) this is not true, take a look here: http://apaku.wordpress.com/2010/04/25/kdevelop-4-0-screenshots/
  • yes we have support for PHP and everyone knows PHP sucks but still everyone uses it ;-) But few seem to notice that C++ is actually “just another plugin”. And we already have support for Ruby, Java and Css somewhat working in the pipelines. And very experimental stuff for C#, python and XML is also there. Imo what we said in the release announcement is true: KDev 4 is much more open for new languages than anything before. It does take some effort, true, but the result is much more pleasing.
  • we’d really welcome new blood in our dev team, esp. for new language support plugins or things like automake, qmake and qt-designer support. there are outdated plugins available, someone just has to polish them…

But all in all I’m amazed by the trolling/feedback ratio. It’s a really good feeling to see so many positive comments on various websites and $random-stranger defending KDevelop against the forces of the trolls :)

I’ll definitely continue working on KDevelop and make sure we’ll continue to improve over the time. This is just the beginning evil laughter :)

Btw. funniest comment on heise.de (German): KDevelop 4.0.0 is a released intended for developers. Of course, it’s an IDE, duh :P