Thursday, November 10, 2011

Koala Framework: Open Source Web Application and CMS Framework


This post is not KDE related, but about Open Source - not entirely off topic on PlanetKDE.

The company I work for recently decided that we release our Framework and CMS as Open Source Software. This is very exciting for all of us and especially me - as I brought that topic on the table again and again. And finally we did it :D

It's a framework to create anything that runs in a browser: from a website or blog to a desktop like web application. It's built on solid grounds: Zend Framework (Php framework) and ExtJS (JavaScript framework).

Screenshot showing an simple example web application [more screenshots]

Screenshot showing the CMS with a text component being edited [more screenshots]
The current state is that the framework is used in our company for lots of different projects, but due to we just got opensource we have no community yet. We are also lacking of good documentation - but we are willing to fix that - if we succeed in building an community around it.

So if you are interested in such a framework visit the Koala Framework website to get more information and join the mailing list.

Saturday, October 22, 2011

Marble: elevation profile for route

I want to present a new feature that got added to Marble recently: an elevation profile generated from SRTM data for calculated routes.
I had personal interest in adding this feature: I do quite a lot of bicycling and when planning routes I need to know the total elevation I have to go up - to compare with alternative routes and to estimate the length of the ride. Additionally a graph that shows the steepest parts of the route is helpful.
But now the obligatory Screenshots:
Viewing the elevation profile of a route

Viewing a detail of the route
Unfortunately Florian worked on basically the same feature in paralell - because my work was "hidden" in my git clone. But we decided to join forces and took his FloatItem and my elevation loading code to have the best from both developments. So all credits of the above screenshots actually go to Florian.

Some words about the elevation data:
I converted the NASA SRTM3 data into png tiles which can be loaded by Marble using the standard TileLoader - so all the caching, scaling, reloading and so on could be reused. I uploaded the tiles to files.kde.org - thanks to the sysadmins for providing this server - so we don't depend on NASA for the data.

On the todo list are features like showing elevation profile for opened tracks and adding more statistics about opened tracks.

Oh, and Happy Birthday KDE!

Thursday, June 9, 2011

KDevelop: Browser Like Tabs

After the very nice week in Randa at the KDevelop sprint - which I enjoyed a lot (big thanks to Mario and his helpers for that) -  I'd like to present an idea for a fundamental UI change for KDevelop I had for quite some time.
The problem I want to solve is that due to the very good code navigation features you end up with many many open files - which are displayed as tabs. And tabs just don't scale - the only thing that helps is regular closing.
When "browsing" source code, you normally browse like with a web browser. And I think everybody would agree that opening a new tab for every clicked link would be stupid. In a web browser the user has the choice. Ctrl+Click opens a new tab, a normal click navigates to the link in the current tab. When entering an url the same - by default stay in the same tab, but the user can choose to open a new tab first.
And exactly that I implemented for KDevelop:
  •  by default open in current tab
    • except: current file as unsaved changes
    • or: current tab is marked as "Sticky" (as in "Keep it open, I want to edit that file")
  • Keyboard modifiers for actions that open files
    • Code navigation in document: Ctrl+Shift+Click (instead of Ctrl+Click)
    • Ctrl+Enter in Quick Open
    • Ctrl+Click in Project View
If this sounds interesting for you - give it a try! Checkout the "browser-like-tabs" branch in kdevplatfrom and kdevelop:

git clone git://anongit.kde.org/kdevplatform
git checkout browser-like-tabs
mkdir build && cd build && cmake .. && make && make install

git clone git://anongit.kde.org/kdevelop
git checkout browser-like-tabs
mkdir build && cd build && cmake .. && make && make install

Activate the feature in Configuration -> UI Configuration -> Browser like tabs checkbox. (It's disabled by default) Try to get used to it, and send us your thoughts to our mailing list.

TODO:
  • The history navigation is broken
  • Modifiers for Filesystem view and Grep view
  • Find solution for Ctrl+Dbl-Click in project view extends selection

Tuesday, October 12, 2010

Marble: configurable routing profiles

Wow, long time since the last blog entry.
This time it won't be about KDevelop - as I found another very interesting KDE project.

I started contributing to OpenStreetMap like two years ago (only local area) and got a Garmin eTrex that can load OSM maps. I use it for bicycling.

The thing that needs improvement is bicycle routing. I mean in general it works, but when using it in practice it matters a lot (a) what bike you use and (b) what kind of driver you are. So it's nonsense to have a single bicycle routing profile. I want:
  • MTB offroad
  • MTB shortest route
  • racing using the shortest route (traffic doesn't matter)
  • racing using the "nicest" route (cycleways, not too much traffic)
  • family (cycleways only if possible)
You see my needs are very special, and this I will never get from google maps or a garmin.

What I found are a number of open source routing applications using osm data. The most promising one (for my special needs) is routino - as you can easily create profiles using xml files.

And, of course I want a proper application - nothing web based. (easier to run, faster, better usability)
Marble fits in perfectly.

So I started writing a routino plugin for marble - was quite easy. The only problem was that marble had only a limited number of routing options - as it supports multiple routing backends (online and offline).

The proper solution are fully configurable profiles - and I just merged this feature into trunk. (I feel very happy about that, thanks to Dennis and Torsten for their help and patience)

The user can easily create new profiles or adjust them. A default set similar to the previous ones set is loaded on first startup. Just see screenshots below...


Saturday, February 20, 2010

Using KDevelop for debugging only

As you might know, KDevelop has an integrated gdb debugger. But it a bit difficult to set up the launch configuration, especially when not using KDevelop for coding.
There is now an easy way to run the kdevelop debugger only:
kdevelop --debug gdb executable --args-to-executable

When running that command kdevelop starts, runs the executable and breaks in main. You then can do the usual debugging.


Another thing I implemented is a resizable variable tooltip, with that you can look even at vallules like this one:


Tuesday, February 16, 2010

Css Language Support Update

I'm here at the KDevelop/Kate/Okteta sprint here in Berlin. Having a great time here :D
One thing I made progress on is Css Language Support, it is now supported in style elements embedded in html. Additionally outline navigation works now as expected:


Code completion still works ofcourse:

It's now in a pretty usable state, so you might want to try it.

Saturday, February 13, 2010

KDevelop XDebug (Php Debugger)

Another important part of a Web IDE is a debugger. The KDevelop XDebug Plugin is a frontend for the php debugger xdebug, and just had it's first beta release.
I'll explain in this post how to set it up.

Prerequisites:

  • Php
  • XDebug extension
  • xdebug configured to accept remote connections

    • xdebug.remote_enable = 1
    • xdebug.remote_host = localhost (yourhost if on remote server)
  • KDevplatform, KDevelop
  • The following KDevelop Plugins:
    • executescript
    • executebrowser
    • xdebug
    (download here)

Debugging a CLI Script

1. Create Launch Configuration

  • Run » Configure Launches...
  • add Launch Configuration (+)
  • choose Type "Script Application"
  • enter interpreter "php"
  • enter script path
  • activate the new Launch Configuration in Run » Current Launch Config
You may test the Launch Configuration now by executing it (Run » Execute Launch)

2. Start Debugger

  • Set a breakpoint (Run » Toggle Breakpoint, or rightclick on icon border in editor
  • Run » Debug Launch
  • Happy Debugging :D
The debug session is stopped once the script has ended.

Debugging a Website

1. Create Launch Configuration

  • Run » Configure Launches...
  • add Launch Configuration (+)
  • choose Type "Browser Application"
  • enter server host and path
  • activate the new Launch Configuration in Run » Current Launch Config
You may test the Launch Configuration now by executing it (Run » Execute Launch)

2. Start Debugger

  • Set a breakpoint (Run » Toggle Breakpoint, or rightclick on icon border in editor
  • Run » Debug Launch
  • Happy Debugging :D
The debug session continues the script has ended, you can navigate in the browser to debug further scripts. To end the session execute Run » Stop Jobs.

Remote debugging is possible too, but that is not described in this tutorial.

If you have problems with configuration, or find any other problem send a mail to kdevelop-devel _at_ kdevelop.org.