lunedì 16 marzo 2015

Google Summer of Code meetup at Udine University

After being Google Summer of Code student with KDE I finally decided to organize a GSoC meetup in University of Udine. I requested a classroom with projector to show a little presentation of the program. The number of attendees 80 exceeded expectations. We were expecting around 40 people but more than  actually showed up. Luckily there was enough room for everyone.
The response was great with a lot of people asking for guidance and details that are covered in the FAQ and also personal opinions and advices that only a past student can provide. I'm now actively helping a bunch of students connecting with opensource organizations in order to get ready to work during the summer. It seems, in my opinion, that one of the biggest troubles is the fear of failing and the misconception of GSoC being a corporate job where the students needs to just work and know everything from the beginning. Apparently what blocked students most is the fear of be judged by potential mentors.
I also presented KDE project, which joined GSoC every year since the beginning, and the amazing fact is that I received many questions on how to interact with KDE due to GSoC as well as for just joining the community itself, like in pure opensource philosophy.
Overall the event was a success with great response from participants for both GSoC itself and opensource communities in general.

Here are some photos from the event:



martedì 10 marzo 2015

Ideas to restructure Plasma content delivery system

Last years at Gluon

During the past few years at Gluon Project we chose to adopt OCS (Open Collaboration Services) protocol in our distribution system, developing a minimal and working server and client that works on GamingFreedom.org. Gluon, however, never went into full production so people couldn't test our infrastructure and the distribution system never went above the "experimental phase".

Our mission

1) Develop further our OCS server in order to have it usable by every project that needs it. In this phase we'll need to refactor and prepare it to be installable and configurable easily. We'll include install/config scripts with a nice interface. It also will be full Attica/NewStuff compliant.

2) Implement Desktop and web client that will let users download and use content like apps, backgrounds, themes etc. The Desktop client will be written in Qt/QML and the web client will be web based.

We want in the end users to be able to get user created content for Plasma in an easy way from one single common place as well as for creators to upload it. Our secondary target is to unify Gluon and Plasma content server and implement user / login capabilities via KDE Identity in order to have a centralized infrastructure. Our dream is to have a common desktop environment experience also regarding the content distribution system across all distributions

This is a scheme of the future structure:

Technology stack

We have in plan to develop OCS server and client libraries at the same time, creating a full set of classes that are shared between the both libs. This will enhance manteinability and modularity having a php library for both uses that shares most of the model codebase.


Now, having a working server we imagined the Plasma web client to be built on top of the OCS client library (of course), using php/mysql (or generic sql database) and for the client part HTML, CSS, a bit of jQuery and maybe the opensource library famo.us (we still need to do some feasibility studies on this latest).

Why

  • Openess of OCS protocol, simple interface in human-readable REST / XML / JSON
  • Ownership of KDE project of their content distribution system (we'll have a full working in-house implementation)
  • Merge of Gluon games, backgrounds, themes etc... all in a single place, with a single unique login on KDE Identity. This also enhances in users the concept of KDE as a full desktop environment with the same content across various distribution opposed to other semi-proprietary implementations (like Canonical's one)
  • Modularity of the server and clients. OCS is a wide protocol and potentials are there. For example I implemented a real-time chat between users in Gluon Player. This could give us some ideas to brainstorm.

Projects

  • ocs-server at https://projects.kde.org/projects/playground/www/ocs-server, and Gluon Player (includes gluon player libraries that wraps libattica)
     written by me, Claudio :)
  • "Plasma AppStore" (name is just a placeholder), consisting in Desktop client and Web client, by Francesco Wofford, my guest in this blog post
We already started to work on a few prototypes because we really care about this project so we're asking for feedback from all of you. We're going to propose those projects as GSoC with KDE so feel free to drop your comments below. We need them!

Have a nice day! And have a cookie! :)