Friday, 19 July 2013
Did somebody say "FreeFA"?
Little birdy tells me that we're playing football again this year, so don't forget to sign up!
Monday, 15 July 2013
Week-end hacks
Last week, I picked up a Kobo Mini e-reader from my local FNAC store for (less than) 40€ and loaded it up with books from the latest Humble eBook Bundle. As generic document icons aren't really that great to recognise the books, I wrote a small thumbnailer for it, which is now available in GNOME git.
The release is available on the GNOME FTP site, and somebody packaging it up for Fedora would be greatly appreciated.
The other week-end hack was a way to run a program with user-defined DNS servers, rather than relying on the system's /etc/resolv.conf file. It only supports IPv4, but it was good enough to run a few command-line utilities with those specific DNS servers.
Some DRM-free e-books.
The release is available on the GNOME FTP site, and somebody packaging it up for Fedora would be greatly appreciated.
The other week-end hack was a way to run a program with user-defined DNS servers, rather than relying on the system's /etc/resolv.conf file. It only supports IPv4, but it was good enough to run a few command-line utilities with those specific DNS servers.
Labels:
dns,
ebook,
epub,
gnome,
humble bundle,
resolv.conf,
thumbnailer
Thursday, 4 April 2013
Geocluing the desktop, slowly
Over the past couple of months, Satabdi has been working during her Outreach Program for Women on geocode-glib, and Zeeshan more recently joined us to help with cleaning up some of the code.
As Satabdi's program is now finished (though not her involvement!), and a new GNOME development cycle has started, I'll try to explain where geocode-glib fits in, and answer some questions on the future of Geoclue.
(Reverse-)Geocoding
First and foremost, geocode-glib is a geocoding and reverse geocoding library. It uses Yahoo! web services for this, though we're investigating using Nominatim for this in the future.
This replaces the convoluted implementations for those two services in geoclue (3 if you include Address as a service). The API should be mostly stable now, and we'll soon start porting a few applications to it (Evolution and Empathy come to mind).
The library also includes a GeocodeLocation object. This will be useful later.
GeoIP
geocode-glib, thanks to Satabdi's work, includes a GeoIP server, to be installed on GNOME servers eventually, which uses data from MaxMind to locate a user connected to the Internet from the IP address. We also have a client library to access this server.
This is usually good enough to locate a user in a city, or a country, which would help us with many integration points in GNOME, such as the upcoming Date and Time panel re-design.
But this code isn't really for you, app developers.
Geoclue
A fine project, but the codebase is showing its age (dbus-glib!), and the decision, well, not to take decisions on which backends to use for various services make it fragile. This is a maintenance problem, both for in terms of making sure all the services are kept working, and that geoclue itself is kept stable.
So we'll start a reimplementation of Geoclue. The goals are:
I hope this clears any misconceptions people might have about geocode-glib, or, more likely, about the future of geoclue.
As Satabdi's program is now finished (though not her involvement!), and a new GNOME development cycle has started, I'll try to explain where geocode-glib fits in, and answer some questions on the future of Geoclue.
(Reverse-)Geocoding
First and foremost, geocode-glib is a geocoding and reverse geocoding library. It uses Yahoo! web services for this, though we're investigating using Nominatim for this in the future.
This replaces the convoluted implementations for those two services in geoclue (3 if you include Address as a service). The API should be mostly stable now, and we'll soon start porting a few applications to it (Evolution and Empathy come to mind).
The library also includes a GeocodeLocation object. This will be useful later.
GeoIP
geocode-glib, thanks to Satabdi's work, includes a GeoIP server, to be installed on GNOME servers eventually, which uses data from MaxMind to locate a user connected to the Internet from the IP address. We also have a client library to access this server.
This is usually good enough to locate a user in a city, or a country, which would help us with many integration points in GNOME, such as the upcoming Date and Time panel re-design.
But this code isn't really for you, app developers.
Geoclue
A fine project, but the codebase is showing its age (dbus-glib!), and the decision, well, not to take decisions on which backends to use for various services make it fragile. This is a maintenance problem, both for in terms of making sure all the services are kept working, and that geoclue itself is kept stable.
So we'll start a reimplementation of Geoclue. The goals are:
- Trimmed down API, just for positioning
- Smaller, but more integrated, selection of ways to get the positioning (GPS from your integrated WWAN modem, Wi-Fi AP data, IP address, no discrete GPS or manual location)
- Power-saving, by aggregating requests from all the applications
- and finally, privacy, where only applications that you allow to request your location can get it, and only with an accuracy as needed for the application.
I hope this clears any misconceptions people might have about geocode-glib, or, more likely, about the future of geoclue.
Friday, 1 February 2013
Power management in GNOME 3.8
In the past couple of weeks, apart from reviewing very many patches for gnome-control-center (especially for new and re-designed panels), I've been working on updating the power management handling in GNOME.
Test suite
The first change is that we have a test suite (currently with 15 separate tests) to test interaction between gnome-settings-daemon's power management and various session and system components. This is thanks to Martin Pitt, and his work on python-dbusmock.
We'll try and add new tests as bug reports come in to avoid regressions, although some cases will remain untested because of limitations in our logging.
Screensaver and backlight interaction
With gnome-shell becoming the sole screensaver (after the removal of fallback mode, and the obsoletion of gnome-screensaver), we've been able to streamline the code handling the various screen backlight power levels.
Your screen will now turn off as soon as the screensaver kicks in, moving your mouse in the screensaver will turn it back on for 20 seconds before turning off again, and when to dim (if you've chosen so) is dependent on whether you're on battery or not, and the default idle time (eg. if your screen turns off after 5 minutes of inactivity, the screen will dim after 4). This makes the behaviour more consistent, and predictable, compared to the mish-mash of settings we had before, where some delays were available for change in the UI, and others only through GSettings or gnome-tweak-tool.
Those constants are separate from the code, and exported to the test suite so they are flexible and can be changed if the behaviour doesn't exactly match what users are expecting.
The other change relating to that, is that the screen shield will now always pop down when the screensaver kicks in (thanks to Giovanni for the gnome-shell work). This doesn't mean that you'll have to enter your password each time, but only after the "lock delay" if you've set one.
We've also added a number of nice touches, like the screen turning back on for a short period when you plug or unplug your laptop, made sure that your laptop screen gets turned off and your session locked when closing the lid and turn off the backlight for machines where suspend causes the backlight to come back on temporarily (as seen on MacBooks).
Very very idle
We've also added a long-requested feature: the ability to force logout after a period of idle. This is useful in kiosk and computer lab situations, and is only available through GSettings. As we've added support for this feature (warning prior to logging out, with the screen turning on for a couple of seconds when the warning shows up), we've realised that the infrastructure is the same for automatic suspend/hibernate situation. This means I expect to change the default "long idle" behaviour to suspending. This will still be changeable in the Power preferences. This should land after 3.7.5, and don't worry, we'll make this change very visible in the release notes :)
Test suite
The first change is that we have a test suite (currently with 15 separate tests) to test interaction between gnome-settings-daemon's power management and various session and system components. This is thanks to Martin Pitt, and his work on python-dbusmock.
We'll try and add new tests as bug reports come in to avoid regressions, although some cases will remain untested because of limitations in our logging.
All clear
Screensaver and backlight interaction
With gnome-shell becoming the sole screensaver (after the removal of fallback mode, and the obsoletion of gnome-screensaver), we've been able to streamline the code handling the various screen backlight power levels.
Your screen will now turn off as soon as the screensaver kicks in, moving your mouse in the screensaver will turn it back on for 20 seconds before turning off again, and when to dim (if you've chosen so) is dependent on whether you're on battery or not, and the default idle time (eg. if your screen turns off after 5 minutes of inactivity, the screen will dim after 4). This makes the behaviour more consistent, and predictable, compared to the mish-mash of settings we had before, where some delays were available for change in the UI, and others only through GSettings or gnome-tweak-tool.
Those constants are separate from the code, and exported to the test suite so they are flexible and can be changed if the behaviour doesn't exactly match what users are expecting.
The other change relating to that, is that the screen shield will now always pop down when the screensaver kicks in (thanks to Giovanni for the gnome-shell work). This doesn't mean that you'll have to enter your password each time, but only after the "lock delay" if you've set one.
We've also added a number of nice touches, like the screen turning back on for a short period when you plug or unplug your laptop, made sure that your laptop screen gets turned off and your session locked when closing the lid and turn off the backlight for machines where suspend causes the backlight to come back on temporarily (as seen on MacBooks).
Very very idle
We've also added a long-requested feature: the ability to force logout after a period of idle. This is useful in kiosk and computer lab situations, and is only available through GSettings. As we've added support for this feature (warning prior to logging out, with the screen turning on for a couple of seconds when the warning shows up), we've realised that the infrastructure is the same for automatic suspend/hibernate situation. This means I expect to change the default "long idle" behaviour to suspending. This will still be changeable in the Power preferences. This should land after 3.7.5, and don't worry, we'll make this change very visible in the release notes :)
*I* am not suspending by default
Inhibit
But you don't want to suspend, you really don't.
GNOME supports the draft FreeDesktop "Idle inhibition" specification, as implemented by KDE, which hopefully means that more third-party applications should start behaving better when playing back films, in presentation mode, or for large overnight downloads. This should hopefully get out of draft status before the GNOME 3.8 release.
We also have a gnome-session-inhibit tool available in gnome-session for your scripting needs.
Colophon
All the changes mentioned should be available in GNOME 3.7.5, and I will be available to take complaints at FOSDEM this week-end.
Labels:
control-center,
freedesktop,
gnome,
gnome 3,
gnome-session,
gnome-settings-daemon,
inhibit,
kiosk,
power,
settings,
suspend,
test suite
Monday, 28 January 2013
Office-runner 1.0
Office Runner 1.0 is now available, downloadable at the usual location.
We had some pretty good comments on the original announcement, even though some people took this opportunity to start slinging insults, which is pretty uncool.
There's plenty of related power management work that's been happening in preparation of GNOME 3.8, and we're mostly waiting on GNOME Shell changes to land before I can talk to you about those. I hope it gets the same (positive) comments as Office Runner did, though I imagine some people will get angry about changes, as they are wont to do.
This version requires systemd for the suspend inhibition.
And don't forget to post your high scores ;)
Friday, 21 December 2012
Settings news
GNOME 3.7.3 just got released earlier today, and includes some great new work. I won't be posting screenshots, because some of the UIs aren't final, and we'll be iterating until 3.8 is released (and it's my birthday ;).
Cleaning up
We've cleaned up gnome-settings-daemon plug-ins, and gnome-control-center panels, as well as removing the support code for GNOME Fallback, saving us around 10k lines of code.
gnome-control-center (now "Settings" in the UI) is faster to start, and gnome-settings-daemon require less code to write additional plug-ins.
New panels
3 new panels got added:
Cleaning up
We've cleaned up gnome-settings-daemon plug-ins, and gnome-control-center panels, as well as removing the support code for GNOME Fallback, saving us around 10k lines of code.
gnome-control-center (now "Settings" in the UI) is faster to start, and gnome-settings-daemon require less code to write additional plug-ins.
New panels
3 new panels got added:
- Search panel, to control the search output in gnome-shell, as well as control which directories and file types Tracker should index.
- Notifications, to manage the notifications that will show up on your desktop. The filtering is done in gnome-shell itself, and would allow you to only show specific notifications in the lock screen for example. See Giovanni's post if your application uses notifications.
- Privacy, which still requires quite a bit of work, would be the go-to place to ensure your identity isn't leaked on the network, or visible on your system. You can see how some of the features in the two aforementioned panels will also affect your privacy.
With the above panels merged, we're left with the re-design of the Power panel, which should mean the end of the "Screen & Brightness" panel (half of the settings went to the Privacy panel, the other half will go to the Power panel).
New backend features
First, users of Wacom tablets, you'll be happy to know there's now a button you can press to see, in an OSD, the current configuration of your tablet buttons. This feature has been long in the making, but the results are great. There's coverage for every tablet known to libwacom, and support for touchrings, touchstrips and modeswitch buttons. Select the button you want to use for the help in the Settings panel.
Secondly, we now support the draft "Idle Inhibition" specification from Freedesktop.org.
We also have some unfinished features.
The remote-display plugin will disable animations in the desktop when using the desktop over VNC or Spice.
And the cursor plugin will hide the mouse cursor until first used, or when using a touchscreen, similarly to what Windows 8 supports (it's the only system other than ours that supports both cursor pointers and touchscreens).
Those 2 plugins should hopefully be working by the time of the GNOME 3.8 release.
Until next time.
Labels:
control-center,
fallback,
gnome,
notifications,
privacy,
screensaver,
search,
spice,
vnc,
wacom,
xdg
Friday, 9 November 2012
Jobs change
Seeing as everyone is making job-related posts, I thought I'd join in the fun.
After 10 years of service, I've left Red Hat UK on the 31st of October to join Red Hat France on the 1st of November.
I now live in the birthplace of cinema and of French gastronomy, so poke me if you want to talk GNOME or Linux over beers. I've already found the English pub.
After 10 years of service, I've left Red Hat UK on the 31st of October to join Red Hat France on the 1st of November.
I now live in the birthplace of cinema and of French gastronomy, so poke me if you want to talk GNOME or Linux over beers. I've already found the English pub.
Subscribe to:
Posts (Atom)


