Monday, November 22, 2010

KDE and web developers

KDE contributors are typically not web application people. Most of us can create something resembling a web app when push comes to shove, and we have some shining exceptions to this in our community such as the stellar KDE Forums, the ever improving kde.org family of sites, identity.kde.org and the increasingly useful, but sadly still powered by a proprietary code base, OpenDesktop.org.

(The OpenDekstop.org situation is something I truly struggle with given my personal ethics with regards to Free software and what I feel KDE stands for. The people involved know this and have their reasons, which I don't agree with (for what it's worth), for the current state of things. This is not what I want to write about here, but I am not comfortable with appearing to be in tacit approval of the state of that.)

What I want to discuss is the open-ended question of: "Can the KDE community grow to also encompass a web development component?"

What do I mean by a "web development component"? Well, increasingly our applications use services, but not all services we'd probably find useful are available out there randomly on the web. For instance, I'd love a way to manage the queue of user contributed data addons (scripted Plasmoids for Plasma Desktop, widow manager scripts for KWin, puzzles for Palepeli, routes for Marble, etc.) before they are set to appear in the "Get Hot New Stuff" user interface.

Then there's the issue of "things that would make KDE function more efficiently", such as a development sprint manager. Right now we use a wiki and lots and lots of copy and pasting, manual editing and pestering of people to plan and run a developer sprint. My dream solution would be a simple bespoke web application that uses identity.kde.org for authentication and provides a set of forms for someone to start the process of setting up a developer sprint (KDE e.V. board could even get an automated email notifying them of this), allowing people to register their interest in attending (a single simple form plus their identity.kde.org account should suffice) and provide a simple web form to record the results of the sprint for use in Dot stories and KDE e.V. quarterly reports. Back when we did a handful of sprints a year, it wasn't a big deal to do all this "by hand", but now that were doing dozens every year it's getting to the point that some level of standardization and automation would be most welcome. The process is pretty well documented on commuity.kde.org these days, it "just" needs to be made into a web app.

Unfortunately for us, I don't see any external web application project whipping up such a thing on their own. We're one of the few F/OSS communities that drives so much development through such sprints month after month, so the audience for the app is fairly limited, though I do believe we're starting to see more F/OSS communities picking up a similar model that would also benefit from such software.

I also don't believe that it is reasonable to expect these works to spring up out of the web-developer-poor soil of the current KDE community. What web focused people we have are already amazingly busy doing really important things.

Then I look at communities in KDE like KDE Games or KDE Edu. These are tight knit bands of developers who work on very specific topics and who have their own home grown sets of expertise. Is it beyond imagination that one or more similar groups could form around the idea of creating web based applications that are written with KDE applications (on mobile, desktop, whatever) in mind and/or the needs of the KDE community itself? Is it possible that one day some intrepid individuals with the web developer spirit and skills would start Just Doing It and build up a whole new area of the KDE community, just as our artists did some years ago for visual design efforts?

I don't know the answers, nor am I in a place to attempt to explore them in full. I just know the needs exist and the questions are there to be asked. Discuss ... :)

11 comments:

Ian Monroe said...

The Sysadmin team are doing wonders customizing Redmine and gitolite to meet our Git needs (check out the newly-themed projects.kde.org, its impressive). And the KDE Forums you mentioned are heavily modified phpbb.

Similarly something like a "KDE Sprint Manager" could be built with off-the-shelf open source web app software. So coding is certainly needed, just doesn't really require a whole new web app.

With #kde-sysadmin being the new cool place to hang and the KDE Forums being a longtime success, expanding one or both of these communities to solve these new problems makes sense to me. I don't mean to volunteer others, just that anyone interested in helping out should probably approach the aforementioned.

xvello said...

Hey, that might be fun !
I'm not that good at C++ (compared to the KDE wizards), but I might be able to design something useful with php.

Will try to start a sprints management system this week.

Mysterious Stranges said...

I would definitely be up for trying to hlp with this.

I've always wanted to try to contribute to KDE, but have average C skills, and no familiarity with QT and the KDE libs or the KDE way of doing things.

Writing interface services, as standalone servers, web-language libraries and framework libraries (Drupal/Joomla/WordPress/RoR?) sounds like a great challenge.

J

GregC said...

I'm sorry, but KDE forums are really terrible to browse because they break the back button completely - press it once and you're still on the same page, press it twice and you're back at the forum index (when you just wanted the previous page!). In exchange for AJAX paging we get broken core browser functionality, and don't get me started on browsing the thing with a phone. In any case, this is not the place so I will stop complaining now :)

Anyway, I am a web developer willing to lend a hand in any KDE project; Javascript and HTML are both go, although my main server-side expertise lies in Groovy on Grails (it's open source, but Java based, so it might not be the first choice for a non-java open source project). I can learn other server-side tools if there's a project short on people (might be fun), as long as you don't make me write PHP :)

Aaron J. Seigo said...

to everyone who is expressing the desire to pitch in and start creating, that is awesome.

you can find me as well as the people Ian mentions in the first comment on irc or by email if you have questions or ideas. i'm very much looking forward to seeing what comes of this.

hugs 'n cheers :)

GregC said...

About KDE forums - my comments about the bad forum quality really only apply to the brainstorming subforum and the Ajax interface, sorry for not being clear enough.

markey said...

@Aaron: Awesome post, and especially nice that you made it concise :)

@Ian: Good reply, I agree 100%


Cheers,
Mark.

Hans said...

@GregC:

KDE Brainstorm is mainly developed by one person, sayakb in the KDE Forums/on IRC. We have a list of things to improve, but unfortunately the maintainer doesn't have time to fix them at the moment. If you want to help please join #kde-www and/or #kde-forum on freenode and talk to us. (My nick is Mogger, but you can also ping the forum admins bcooksley, einar77, neverendingo and sayakb.)

Regarding your issues with Brainstorm, it's possible to disable AJAX by clicking on "Disable AJAX" at the bottom of the page.

GregC said...

Thanks, Hans! Disable AJAX worked great, but I had to log in first before I got the option.

I'll check out the forum, if there's anything I can suggest with Javascript to help I'll ping the people you mentioned on IRC, as for the server side, I have a serious PHP aversion :)

jdalt said...

Another web thing that could be improved immensely is the SEO on KDE techbase. A simple query like 'kde plasma javascript api' doesn't even get one techbase entry in google. I've wasted tons of time just trying to get to the correct place in the documentation even when I know exactly what I want.

Valorie Zimmerman said...

Could some of these needs and wants be developed into GSoC projects, or Season of KDE projects?

We have the next generation of KDE programmers -- let's use them!

http://community.kde.org/GSoC