Merry Christmas, and a PlasMate surprise for you :) [screencast]

Hello planet,
It’s been a looong time since my last post here. As I wasn’t selected for attending the GSoC this year, I focused myself mostly on passing my last few exams, and finding a teacher for the thesis I’m currently doing.
But, as PlasMate mantainer (along with sebas), I always felt completely unstatisfied about the current codebase and I couldn’t stop thinking about the improvements I had to do1.

Thanks to Giorgios, ย who took the responsibilty for keeping the bug count low and implemented a lot of cool features too, I was able to use my little spare time to think about how improve PlasMate codebase.

I started with implementing a small core library which basically:

  • loads a series of language definitions (no more hardcoded values for each language);
  • performs a scan of the plasmate projects dir;
  • loads the projects and reads their specific project settings.

Then, I started implementing a simple plugin structure to make PlasMate more flexible without the risk of ย letting the code grow with no ย control. The current supported plugins are:

  • DockWidget (surprise! ๐Ÿ˜› ) – widgets that can be placed in a QDockWidget, but also in an overlay or in a special “pinnable widget” (yet to be implemented). The File Browser, TimeLine and Previewer in the video all belongs to this type (coming soon: a console to collect the applet output);
  • EditorCreator (blah, i have to rename it to EditorFactory): creates and Editor for the given file, based on its type; for now we have a kate editor and the metadata editor available (coming soon:ย QtDesigner editor);
  • WebServices – allows PlasMate to interact with online services such as OCS, OwnCloud and others (none done yet, I’m porting the OCS one however).

At this point I’ve also implemented a configuration manager to write plasmate-wide settings,project-specific settings and also plugin-specific settings, so there is just one centralized place which takes care of this kind of stuff ๐Ÿ™‚

The library bits and the UI are working quite ok, I can load the old projects and save the project-specific settings, open the source files/edit/preview the changes, but there is still a lot of work to do.ย The code is hiiiiighly unstable and lives only on my hard drive for now: as soon as I get something more stable, I’ll publish it ๐Ÿ™‚

In the meantime, enjoy this video teaser ๐Ÿ˜›


Or, you can download the video in HQ and watch it later.

And Merry Christmas to all of you!


1: To Igor and the other people I told I was busy with a secret project.. yeah, it’s this one ๐Ÿ™‚ When I started developing the kmix applet replacement, I started having the concrete feeling that PlasMate was too much difficult to adapt to my workflow (i.e. no tabs to switch from a source to an other, the problems with the previewer size..) so I finally decided to start its modularization immediately ๐Ÿ™‚โ†‘

Authentication framework: closing the circle (+ screencast)

As I promised more than a week ago, today I’ll show you the progress done with the authentication framework, starting with signing a plasmoid with PlasMate, uploading that plasmoid and its signature to within PlasMate, and retrieve it with the Widget Explorerย  “Download widget dialog”.

Originally, I planned to show a more detailed screencast but, for an unfortunate serie of events, I started playing on a full functional opendesktop testserver just yesterday afternoon. However here it is the screencast, splitted in two pieces. Alas, I noticed too late that the screencast took so much time (the first part lasts about 14 minutes O.o, but you can skip the last 7 minutes because I’m repeatedly signing and sending some plasmoids on the server to show later the authentication process).ย  By the way, I hope you’ll enjoy these videos:

Part 1 (.ogv version):

[ ?posts_id=4019829&dest=-1]

Part 2 (.ogv version):

[ ?posts_id=4019854&dest=-1]

Cool, isn’t it? ๐Ÿ™‚

However, this is only the beginning: as I mentioned in my previous post, the KNewStuff maintainer (fregl) wants to extend that authenticatiom mechanism for every package exchanged with KNS, so I need to move the library from plasma libs to a more suitable place (perhaps kdelibs?). There is some work to do also in the Attica library, because the opendesktop specification describes multiple signatures and fingerprints (because of the collaboration stuff), and I did only a basic implementation in order to see if everything worked as expected. The KNewStuff3 download dialog needs some love too, because the detailed up to now shows only a string with the signer name and the trust level for each plasmoid; I didn’t implemented a widget with start ratings for the following reasons:

  • there is already a starred rating widget, used for the users rating:ย  showing two widgets with different star ratings will confuse the user in my opinion, so I opted for visualizing a simple text ;
  • lack of time ๐Ÿ˜›

The grid view is even more complex, because the same informations are condensed in less space, so I need to figure out how to show in a proper way also the authentication information.

PlasMate needs a lot of love too, and I realized it when playing on its code again; perhaps, after this summer of code, I’ll start on rewriting its internals and clean up the code.

That’s all, for now. Stay tuned ๐Ÿ˜‰

GSoC week #7 – Porting week :P

After spending lots of time trying to make the QCA GNUpg working by doing some workarounds and pushing some pressure on the developer, and seeing the midterm evaluation closer every day, I’ve taken the decision to move to GpgME++. So I’ve started porting some stuff on the PlasMate side in order to get my feet wet with this new library, and I have to admit: its really simple and effective ๐Ÿ™‚
Once ported PlasMate to gpgme++, I’ve ported the authentication library, and its on playground now ๐Ÿ™‚ I’ve to fix a bug that makes plasma crash sometimes, however now all the pieces are working, so yayy ๐Ÿ™‚

GSoC week #6 – It’s PlasMate time :)

During the past week, since the authentication library is working pretty good with the plasma widget explorer1 (although it still need to be polished and refined), I decided to get a little break with it and starting on improving PlasMate. As you should know, showing the trust level of a scripted plasmoid in the widget explorer is only one part of my whole GSoC: the goal is to provide a simple way to sign plasmoids, upload them with their signature via GHNS, retrieve them from the web (again, with GHNS), show their trust level before being downloaded, and finally display their trustlevel when browsing the plasma widget explorer.

Therefore, this week was PlasMate turn ๐Ÿ™‚ . In the screenshot below, you can see how the Publish widget looks now:

PlasMate with Signing option (open in a new window)

The interface is pretty simple and intuitive: to enable the plasmoid signing option, simply click on the corresponding checkbox. Then, you have to select one PGP private key from the list below, and that’s all. Every time the user clicks Export/Install/Publish, a new signature file will be calculated, and a dialog will popup and ask for the key password.

The widget has also two buttons used to create or delete the keys used for signing; however they’re disabled for now because the creation of a new pgp key pair is not implemented in the qca api and I have to manage it on my own(so, this time, everything is good ๐Ÿ˜› ), but the delete button is disabled because, yet an other bugโ„ข, the removeEntry() method calls the wrong command line switches, and I’m waiting for the fix2.

I’ve also managed to solve a serious bug which made PlasMate constantly crash whenever pressing the export, install or publish button. Seems like this bug affected PlasMate since alpha2, but I discovered it only few days ago when I started using these features. However, now it works like a charm ๐Ÿ˜€

Stay tuned for further updates, cheers !


1:For whose that missed the screencast, here it is the video.โ†‘

2: No, I’m not kidding you. I’ve even told the author why the actual command line fails, and a sensible way to fix it. And, after five days, I’m still waiting for this trivial fix…โ†‘

Here we go, GSoC

Tomorrow the Google Summer of Code will officially start, and I’m even more excited than the previous year !

It will be tough, I know, because writing an authentication framework is not a subject to take lightly; however it will be challenging goal to reach :)! Moreover, I’ll be able to test it effectively, because I’m gonna to improve the plasma widget explorer and the widget download dialog as well, and of course PlasMate too.

Despite of my laziness about blogging (I’m not a good speaker, least of all a good writer), I’m thinking about writing a sort of weekly report about my activity; both for digression and for memory.

Ugh .. a propos of week, I’m still having classes for the next two… Luckily there are only six hours per week so, during my spare time there, I’ll meet my girlfriend and Riccardo (the other GSoC guy, and my friend) in our College library to work/study together. Oh well will work, she will study; and then we will go all together out for lunch ๐Ÿ˜€

All the best to all the GSoC students!

Soooo happy !

… Or should I name this post “Ops, I did it again” ? ๐Ÿ˜›

Yesterday, Google published online the accepted students for the Google Summer of Code 2010 and, with my enormous surprise, I’ve been accepted again ๐Ÿ™‚

In fact, despite the 2009 edition, when I started discussing my proposal idea even two weeks before theย  beginning of the student application period, this year I submitted a project proposal not even listed in the KDE ideas page, and I was so overburden with the university that I could post it only one week before the the student application deadline.

An other WONDERFUL reason to be happy is that, this year, all the PlasMate devs have been accepted to as GSoC student ๐Ÿ˜€

Yuen Hoe will work on the Plasma Mobile system tray, Shantanu will develop a Gluon client plasmoid, and I’ll provide plasmoid authentication for the ones downloaded from the web !

Also, my friend and College fellow Riccardo has been accepted too (and his projects looks really tough), so this year there are two GSoC’ers from the University of Padova, awesome ๐Ÿ˜€

Least, but not last, reason to be proud for working again with KDE, is the growing number of people involved in this current edition of the Summer of Code: 50 accepted students, against the 37 selected in the previous GSoC edition. Really amazing ! We must be grateful to Google, that increased the slot number for KDE, and also to the KDE community for the great software provided ๐Ÿ™‚

To all the accepted students: happy summer of coding !!