Posts Tagged ‘gsoc’

The first official SoC week is gone! A bit of a hard work, but good results obtained…

With the last smartsave commit, all the stubs are done and real code is coming out: all the base classes are being populated, and in a few days some UI may come up.

I’m especially working in the save part of the system, still from the backend point of view, with models and signals that come and go through the classes (test 2 already shows something of this), updating views when new annotations come up. A hard link to the annotation framework (in playground) is coming out, and probably one of the two exposed classes will be collapsed to that framework, when my experiments and my messing up the API will stabilize a little.

The most difficult part, I must admit, has been to adapt to Qt frameworks (signal-slot, model-view, d-pointers), which are pretty different from my last C++ works or from the Java approach, so a big thank goes to Sebastian Trueg for his advices on them.

Besides, I hope not to flame in any way, but I really have some difficulties in understanding why the d-pointer idea… for example, I see the model-view as some kind of a derivative of MVC, and signal-slot as an alternative to a callback system; I see why calling getter methods with the variable name (C# does something similar), but why can’t I put my private members directly in the class? I read about the binary compatibility, but those are still private members, so the outside world cannot see them. So why complicate the classes structure with all those private classes with public members?

So, C++/Qt masters, I’d really like to read your opinion on that, not for flaming (I repeat), just for deeply understanding this way of programming 🙂

And, stay tuned for UI updates in the next few days!

Read Full Post »

This week has seen my first (and second, by the way) commit into KDE SVN! Another milestone reached 🙂

There are mostly stubs into the new smartsave/ folder, and a bit of documentation for the interfaces; there also is a test program, taken from one of Techbase tutorials: a very simple notepad, which will be the very first application to use the new dialog system, and it will be useful for trying functionalities.

No, don’t try it now: it just falls back to the standard KFileDialog class; let me write some real implementations before toying with it!

For now, the idea is to have an abstract class, Nepomuk::SuggestionProvider, which may be subclassed by any application (there’s, for now, just a method to be implemented), and an instance of it will be passed to the dialog UI for getting personalized suggestions, in form of Nepomuk::Annotation objects. These objects need to be created by the developer in the way he wants, by hand or using any Nepomuk::AnnotationPlugin, but things may change later on.

The second important class is Nepomuk::KSmartDialog (I called it ‘K’ just to mimic KFileDialog, but if you don’t like it, I can drop that ‘K’), which is a subclass of the actual file dialog, and which will provide a couple of static methods for getting or setting document metadata; of course, each of these methods will use the SuggestionProvider subclass as stated before.

These are the two important exported classes, at least today; expect some working code in the next days!

Oh, by the way: tomorrow is the official GSoC start! Godspeed to any GSoCer around PlanetKDE!

Read Full Post »

System UML 2

System UML 2

I promise: this will be the last image!

The next post will discuss a bit about real code (which is coming, I just have to check the very first compilation cycle before throwing a new folder into playground); for now, here is an update of the previous UML diagram: it’s a little bit more into the “real virtual world” of KDE libraries, even if something could be changed any time.

I’m studying the model-view framework from Qt, and a few classes are now related to the abstractions offered by that system; as soon as the structure will be clear, I will write about it.

Next week, waiting for the GSoC official start (on saturday the 23rd), the first classes will come up and I will talk about something a little less into the air and a little more into the bits.

Read Full Post »

System UML 1

System UML 1

And here we go with another image!

Ok, as an instrument for making everything a little more clear, I made a class diagram (yes, UML…), which shows a high level view of how the dialog system may show up in a few weeks.

Now, I use UML in the Fowler’s way, so the final system may look completely different from this one, or the diagram may change accordingly, mainly because of two things:

  • this is not completely integrated with the Qt/KDE dialog classes, essentially because I’d like to have some backend system working before planning that part deep;
  • the SuggestionProvider and the integration with the Annotation Plugin already present in playground is still a work in progress: in particular, I still think that giving an abstract class to be subclassed by KDE developers is better than a pure function to be called, but anyway I may change my idea on that, we’ll see.

So, expect something to come up (soon?) under playground/base/nepomuk-kde/smartsave (nice name, uh?), waiting for the official GSoC start in 9 days…

Read Full Post »

DISCLAIMER: these images are here just to show you which blocks will be present in the end, they will not be used as they are. They are a proof of concept.

As promised, here are a couple of drafts (have you noticed the bold font?) for the future UI: they are not meant to be the definitive interface, they are here only to show what widgets/views will (probably) be in the final dialogs.

Load dialog

Load dialog

The load dialog is very similar to the actual load dialog: instead of folders, the central view will show metadata (here represented with the “folder” icon) and files associated with the tags already selected (and written in the breadcrumbs). When you will “enter” a metadata, view and breadcrumbs will be changed accordingly.

On the left there is a panel showing the recently used tags, so you will be able to use them as shortcuts.

Save dialog

Save dialog

Ok, the save dialog will probably be completely different: on the right, there will be a view with the list of metadata that the user has chosen to associated to the current file; on the left, a view will show the recently used tags (as before), and another view will collect suggestions given by the program (and the program itself will provide them, using some internal logic).

At the bottom, the label of the document (or resource, as called in semantic terminology), which will be the final filename (even if it will be completely trasparent to the user), and a space for a comment to the file, maybe automatically filled by the program, as before.

So, that’s it! You can see some changes in respect to the actual system, probably the saving system will be the main change.

Stay tuned, as I am studying how to realize the internals of the project, so soon there will be some ideas (or even diagrams!)…

Read Full Post »

Hello Planet!

Ok, after a few years spent reading this blog aggregator, it is now a honor to be a part of it; so: hello planet!

I am Alessandro, and I will develop a new save and load dialog/browsing system which will work with metadata, using Nepomuk, for Google Summer of Code 2009.

It has been a while since I was looking for an interesting way of collaborating with KDE, and now this opportunity it is going to be really great! I really believe in the potentials of semantic desktop (as well as semantic Web, but this is another story), KDE is pioneering in this field and I am very happy to give my contribution to it.

I am now working on some mockups, especially of the new dialogs UI, so stay tuned and soon I will be able to publish a few things out…

In the meantime, you can find my original proposal details here.

Read Full Post »

Ok, now it’s time to explain a little more in detail my proposal, so you don’t have to read the whole PDF attached a couple of posts below.

KDE has, since the 4.0 version, a semantic layer/engine called Nepomuk (that you may well know), and the project aims to create a new file dialog, which will allow users to save files associating any type of metadata, suggested by the program, as email details from KMail, document data from Okular, related people or projects, or anything that the user can add autonomously.

When the user will open files, he will browse through tags, until he will find what he will be looking for. In the next days I will be working on a little mockup, for showing what I am thinking about: an idea could be adding an input like the WordPress one, or something like a tag cloud for the system suggestions… anyway, expect some pictures soon!

Read Full Post »

I'm in!

I’m in! See for yourself: link.

Thank you KDE for accepting me: I will do my best in this summer for adequately replying to your trust.

Read Full Post »

Ok, this may be my first and last post about Summer of Code 2009!

I’m participating to the selections phase for a KDE Nepomuk project, about which I will write extensively if my proposal will be accepted, and here I’m publishing the application, in its original PDF version, to be linked from the SoC page on Google.

It contains almost the same things that I wrote in the application form, plus a couple of notes; anyway, without further ado, GSoC 2009 application!

Read Full Post »

« Newer Posts