sabato 1 dicembre 2012

Playing chase

Sometimes, you notice that writing an OS is like playing chase: sometimes you open the latest MS system, and go "Uhm... Where did I see that before?", and sometimes you proudly show the results of hours of work, and what you get is "Heh, everyone else did that ages ago!"

This is one of the latter moments. I hereby present you with the latest creation from the department of "It was about time!": Gnome Weather.

As you may guess, it is an app showing weather conditions for you location (like Win 8 does by default). It is still rough on the edges, as you may notice from the very pixelated icon, but it is there.
And I can't tell how much I love GNOME: I uploaded this four hours ago, and I already got Galician and Polish translations! People, you're simply great.

But this is not the only thing I've been working on lately. You may remember a find the difference Google+ post a while ago. For those of you who didn't care, and for those of you that still don't, what I wanted to highlight there were the finally fixed volume key handling, the headphone icon in the status bar, the modal dialogs in the overview and the new panel for configuring notifications.

Besides the global keybinding thing, which will be solved by Florian in a different way, all those things and many others are happening in GNOME 3.8.

So yeah, this was really because I was a long time since my last post, and because I felt particularly proud of what I achieved. Nothing special maybe, but I hope you enjoyed.

GNOME 3.8 is going to be the best winter release ever!

PS: to Jasper, re the linked post above: you really made my day with your comment :)
PS2: no it wasn't a modified background, it was the One And Only, except that noone ever sees that one in particular because it goes from midnight to 6 am...

sabato 18 agosto 2012

Final report for Summer of Code 2012

As the final evaluation approaches, it's time to sum up the project. It has been an amazing summer, but like all good things it has to come to an end at some point.

So, most of the work is already in master, for gnome-shell and gdm, so if you're run Fedora 18, this is what you'll get around Tuesday:

If you wanted to see the actual code changes, you could look at the git log for js/ui/unlockDialog.js and js/ui/screenShield.js, or commits with the tag ScreenShield. They're 43 here, so forgive me if I don't mention them explicitly.
However, this is what is waiting to be merged, spread around bugzilla (in particular 681143):

It's mostly similar, except for some minor issues that were promptly identified by the designers during the BOF session at GUADEC.

Wrapping up, I'd like to thank you my mentor, Marina, who has done a fantastic job of supporting me despite more important personal matters. I'd like to thank also the gdm and gnome-shell developer teams (in particular Ray and Jasper), as well as the whole design team, who is doing the best damage possible to the GNOME community. :D

martedì 14 agosto 2012

Soft pencils down

So we've come to this: the Google Summer of Code 2012 is almost over, and all projects are expected to be in the final refinement phase.
Personally, I think that software is never finished, especially when it comes to free software, but I'd say that the original plans for the summer where respected.
If you saw Matthias's post you probably know that the lock screen is included in 3.5.5, and thus is making into the unstable distribution.
There are still some minor issues, but I'm slowly addressing each one of them, and I'm sure the 3.6.0 release will not have you disappointed. As usual, if you want to follow the advancements closely, bugzilla is your friend.
And of course, we have features planned for 3.8 too, ranging from the PIN support (which was dropped as not ready) to the new Notifications panel.

In other words, GNOME 3.6 will rock, and so will 3.8, up to 3.12 - I mean, GNOME OS 4.0!

PS: speaking of GNOME OS, if you want to try GNOME Core 3.6, you can use OSTree, right now and without affecting your usual system.

domenica 29 luglio 2012

Halfway through GUADEC

Unbelievable, I made to end of the first part of GUADEC without mental or physical injury.
No I'm kidding, so far it has been awesome, with plenty of interesting talks around GNOME technologies, it's history, community and vision for the future. Not to mention talking to all GNOME hackers, both of tech stuff and random small talk :)
Outside of the conferences, we had the Intern Games (an awesome idea by Diego), and we won them! :D

So a big thanks to the GNOME foundation for sponsorship!

if you're reading this, consider donating to GNOME!

mercoledì 25 luglio 2012

A Coruña UX Hackfest

This Is Just Cool.
I've never been to an hackfest before, but I must say it's amazing, finally meeting and getting to know the people behind GNOME personally. I mean, we did have our amount of tech discussion, some of it got quite heated, but in the end we reached a constructive conclusion on every point, which is not at all bad. Talking with designers face to face makes it very clear that yeah, they know what their doing!

The plan was to deal with file management and in the overview search (first day), and initial setup experience (second day, that is, today). We completely redesigned Nautilus toolbar and menus (again!) and we streamlined the Gtk file chooser, integrating content selection across the OS. Because what is clear, we want to build an OS, top-down, and we will get there, at some point.

Right now is blogging break (or gnome memes break really), so I'd like to take advantage of it to thank the companies the sponsored the event:

Also, I got a Red Hat sticker, that looks just so better than the Windows 7 logo next to it. I'm hoping to get one from Igalia too!

domenica 15 luglio 2012

Halfway there! (GSoC "weekly" report)

So here we are, at the Midterm Evaluation checkpoint.
I must say I'm satisfied with how the project ended up so far. I would consider it feature complete now, and code review has begun, both in gdm (with Ray Strode churning through the long patchset and turning the old code base into something quite nice) and in gnome-shell (thanks to my mentor Marina and to the never stopping Jasper).
Also, compared to the last update, I finished the planned features, of which the most prominent is the PIN authentication, that is a touch friendly replacement for passwords, only meant for local logins. Obligatory screenshot:

This final part, while implemented and working here, may not be ready for 3.6, as it is a bit unstable, and the required configuration bits are not there yet.

My plan now? First of all, rebasing all this on the new libgdm (which will require some work to get a testing environment). Then I hope to land this right after 3.5.4, and showcase it at the GUADEC. Because, just in case I forgot:

I will be speaking during the Lightning Talks session, so if you are interestered, don't miss them!

martedì 26 giugno 2012

Biweekly report #3

Hello Planet GNOME readers!

No nice looking screenshots this time, unfortunately. I've been incredibly busy for the past two weeks, partly because of the university, and partly for other bugs and stuff around GNOME that needed attention.
I did got around to two points of the Screen Lock feature:
  • I implemented the screenshield watchdog process, meaning that gnome-shell crashing will not allow random user to see through the lock screen (they'll instead stare at a nice black screen)
  • I talked with the designers about the lock control center panel, resulting in a new mockup, quite different from the implemented one. Further discussion is needed though, as some points (like rotation, or renaming Displays to External Displays) are not convincing.
I believe I'm still within deadlines, although they're becoming stricter and stricter, in particular with the summer exam session starting this week. In the next weeks I'll be working on PIN autentication, first in the accountsservice and then on the shell UI. I also want to discuss with designers on the "mega status menu", as I personally see no reason to have it in place of the usual menus.
And then testing, testing, testing - we have the watchdog now, but the less we see it, the better!

domenica 10 giugno 2012

Biweekly report #2

Hello again fellow GNOMErs,

this is my second update on my Summer of Code project.
As planned in the previous report, I spent the past two weeks implementing notification integration in the lock screen, and this is the result:

(thanks to Luca for accepting to appear in the screenshot)

As you can see, resident notifications, such as those created by Rhythmbox, are shown in full, and can be interacted, while persistent notifications are grouped by source, with a message counter.

Also, I worked to update the appearance of the unlocking dialog, to fully match the mockups:

The next week will probably spent on two parallel directions.
On the one hand, I'll work to fix any bugs that should appear, and to integrate suggestions and comments from code review; as an example, I was already told to try using ClutterDragAction for the curtain behavior
On the other hand, I'm going to help with the new lock screen panel (GNOME bug 658660). This in particular will be needed to control the visibility of notifications, as it was decided that the full notifications panel is out of scope for this project.

See you in two weeks!

lunedì 28 maggio 2012

Going to GUADEC 2012 (and weekly report)

I'm very proud to announce that I'm going to attend GUADEC 2012, as well as the UX Hackfest.
I'm happily
and I would like to thank them a lot!

But it doesn't end here: the title says "Weekly report", so here you are with another round of rock^H^H^Hlocking.

(sorry if the screencast is badly cut, I had problems with both pitivi and openshot...)
So what did I achieve here, since my last post?
The biggest change is the implementation of the curtain design, which essentially entails splitting the lock screen into a part with the background and the clock, and another with the actual unlocking dialog.
The second big change is showing both the panel and the message tray in the locked screen. This means, among other things, that you can now enjoy the on-screen-keyboard.
While I was there, following the login screen designs, I made the gdm greeter use this. And I quietly wept, as I tried to test this on a F17 (now F18) VM, rebuilding glib, gsettings-desktop-schemas (which has a lovely broken upgrade path too), gjs, gdm and what not.

As this is just the first week, but you can see it is not quite bad, I'm rescheduling: in the next week I'll be working on finishing the lock screen, including notifications. It originally accounted for 2 to 3 weeks - I think that's still valid, but I have some more time now, so I'll try to get in touch with the designers: we want to have appropriate privacy settings in the control center, to decide what is shown and what is hidden.
I had planned two weeks for PINs, but it was decided in IRC that this feature is self-contained and not fundamental, so I'm putting it at the end for now.
Finally, along all the period, UI revision and bug fixing will take place. For example, dear designers who had the arrow idea, it's not quite easy to use it with a mouse...

So, stay tuned!

martedì 22 maggio 2012

And now on Planet GNOME!

Yes, I've been added to Planet GNOME!
Well, not much else to say, as I blogged recently on my work.

Just a small gift:

You want to try this? Grab the slave-connection branch from git:// and the screen-shield branch from git:// .
Note: you need to have the latest gdm running, which means probably turning it into a rpm. And that will completely break your greeter, so make sure you have autologin enabled.
Also note: I follow the "Rebase early, rebase often" policy, which means that following my personal repository is a very bad idea. For "stable" stuff, you can usually find a wip/* branch at the corresponding repo.


mercoledì 16 maggio 2012

Almost there

Coding season will start next week, but since I already started coding, I thought I could give an update it too.

If you look at the project schedule, you'll see little mention of gdm - all work is inside gnome-shell. But one of the primary advertised features is so called pam multi-stack, that is, having multiple authentication methods (such as smartcard, fingerprint and password) at the same time, and this would reuse the same code in gdm.
gdm's code base is quite old and very intricated, with multiple components splitted around in different processes talking via private DBus (ugh!), that's why in the last weeks I've been trying to reorganize it, dropping the dependency on libdbus and using the awesome gdbus-codegen.
You can follow the work on this branch: . Don't clone it though: it's my private repository and I often push non-fast-forward updates. When the branch is ready for review, I'll push a wip/gdbus-port on

Next step will be exposing an interface on the system bus to get a private connection with the slave (the component supervising sessions and greeters). The details of this are not finalized yet, but essentially it would be a org.gnome.DisplayManager.Display.GetSlaveConnection() returning a bus address (or a bus guuid + open socket fd?). Details at and following.

Then it will be the hard part - testing this brand new gdm. I had high hopes in ostree, but it seems it's not quite there yet (mail from its author), so I'll probably end up building an rpm and testing in a Fedora 18 VM - it's going to be a lot of fun!

So, it seems my plan is settled for the near future :)

martedì 24 aprile 2012

So it begins...

So here I am - opening a blog. I wanted to do it for a while, and never got the occasion, but given that it is practically a necessity for Google Summer of Code, it's time to start it.
I'm not a writer, so don't expect regular updates beyond those required by GSoC, although I'll try to write if I find something interesting and have some spare time. Also, please excuse my grammar - but don't refrain yourself from commenting on it, I'm all for a free English course!

Speaking of something useful, GSoC. I'll be working on Lock Screen, you know - what used to be the lovely screensaver with logos going back and forth. Now it is (or will be) a fancy tablet-like screen showing the clock, missed notifications, music stuff, and of course, allowing you to unlock by all the 10 different methods supported by your hardware, and then some.

So... enjoy your reading!