Showing posts with label gnome. Show all posts
Showing posts with label gnome. Show all posts

Tuesday, 22 October 2013

Reducing wake-ups, the 2013 edition

While doing work on UPower, trying to reduce its wake-ups when idle, I realised that a couple of applications on my desktop were waking up far more than should be necessary.

Detecting wake-ups

First, we need to detect wake-ups. This is a fairly well-known, and old, process, using the venerable PowerTop.

# powertop --html=/tmp/foo.html --time=60

You can increase the number of seconds to get a more realistic view of your machine's idleness, but this is enough to show the main culprits.

In my case, evolution, gnote and devhelp were all waking up about 30 times a second whilst mostly idle. Evolution might be an outlier, as it also talks to the network, and is a bigger application to debug, so I started with devhelp.

$ strace -vvv -p `pidof devhelp`
Process 19069 attached
restart_syscall(<... resuming interrupted call ...>) = 0
recvfrom(6, 0x23fece4, 4096, 0, 0, 0)   = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}, {fd=3, events=POLLIN}], 3, 17) = 0 (Timeout)
recvfrom(6, 0x23fece4, 4096, 0, 0, 0)   = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}, {fd=3, events=POLLIN}], 3, 17) = 0 (Timeout)

And the screen fills up with EAGAIN errors. This looks a lot like a a timeout being called too often.

Debugging wake-ups

I started sprinkling debug in g_main_context_prepare(), the function that prepares the various timeout and idle sources for dispatch, and calculates the timeouts for each poll() operation.

Something like:
if (source_timeout > 0 && source_timeout <= 20)
  g_message ("Source '%s' has very low timeout %d", g_source_get_name (source), source_timeout);

The problem is we end up getting a null source name for almost all of the sources. This is where g_source_set_name() and its sibling g_source_set_name_by_id() come in handy.

timeout_id = g_timeout_add (timeout, myfunction, mydata);
g_source_set_name_by_id (timeout_id, "[module-name] myfunction");

And we start doing that all over GTK+. As you can see from the patches in the bug, there's not just timeouts added by g_timeout_add() that we need to name.

In custody

The huge amount of debug shown when running our application with the gmain.c debug above tells us:
GLib-Message: Source 0x2d4f380 '[gtk+] gdk_frame_clock_paint_idle' has very low timeout 17
even when the window doesn't change, is in the background, and not updating. About 30 times a second.

Who are you gonna call?

Or by whom have you been called, rather. This is a small section of my ~/.gdbinit which will break on a particular function, print a backtrace, and continue. It makes it easier to interact with the logs after the fact, especially if they are calls that happen often and you're not interested in all the calls.

set breakpoint pending on
break gdk_frame_clock_begin_updating
commands
bt
continue
end

We did the same for gdk_frame_clock_begin_updating and found a backtrace similar to the one in Bugzilla. We only needed to start reading some code after that, and figuring out what was going on. The result was a bug in GTK+, likely a regression from GTK+ 3.8.

Your laptop should last a bit longer when the updates hit.

TL;DR

Name your timeouts with g_source_set_name_by_id(), run powertop, and file bugs against broken applications.

Update: Fixed powertop command-line.

Thursday, 17 October 2013

More power management changes

As is becoming common, we will have some more power management changes in GNOME 3.12, though those changes will also affect other desktops, whether they use UPower's D-Bus interface, or libupower-glib, the helper library.

The goals of the exercise were simple:

  • reduce wake-ups on the daemon and on the client side
  • reduce code duplication amongst desktop environments, and even within the same environment (composite battery, anyone?)
  • moving some policy actions to a lower level (one could not request hibernation or suspend when multiple users were logged in without interaction and passwords)
All those changes are now in UPower master ready for testing.

Out with the old

The deprecated interfaces for Suspend, Hibernate, etc. are finally removed, after being obsoleted by logind. We've also removed the QoS interface that nobody was using, and the out-dated battery recall support. It's not that batteries don't explode any more, it's that they don't all come from known-bad batches.

In with the new

We have 2 new properties on each of the devices.

WarningLevel which uses daemon-side configurations to tell you whether a device's battery level is low, critically low, or whether we're about to take action on that critical level.

We also have IconName, which replaces some cut'n'pasted code between desktop components. If your desktop environment has many more icons for all types of devices on low battery, for example, you can ignore this property and use the code you always have.

Using those new properties usefully is the new DisplayDevice object. It groups all the batteries and UPSes in the daemon into one, easy to use object that you can use to display a single status icon in your shell chrome. Obviously, if you want to show more devices, the individual batteries and UPSes are still available through the usual means. And it obviously has the 2 new properties mentioned above, so your session daemon can get told when to show notifications for low batteries.

And finally, using that new combined DisplayDevice is the critical battery action policies. As mentioned above, multi-user systems could not hibernate without requiring the user to enter an administrator password, which is less than convenient when your machine is running out of UPS power fast. The configuration for that policy is now in the daemon itself, with sane defaults, and it will hibernate the machine for you.

And to the modernisation

libupower-glib now uses GDBus, even if the daemon doesn't. The daemon however sends PropertiesChanged signals which means that modern D-Bus bindings will automatically get the new values for properties, instead of polling the daemon. The DeviceChanged and Changed signals have thus been removed.

API changes

They are numerous, too many to mention here. I've posted to the device-kit mailing-list with a list of changes that were made, reply there if you have any questions regarding using UPower in your application or session daemons.

Miscellaneous

systemd >= 207 will save your brightness settings across reboots, and the upcoming systemd 209 will have support for saving keyboard backlight across reboots.

I've made attempts at supporting Intel Rapid Start in systemd, but this will actually require kernel changes. Hopefully we should be able to land this by the time GNOME 3.12 is released.

Monday, 23 September 2013

GNOME 3.10 is coming!

The new release is coming! As has been the case for the past couple of releases, I've mostly been shepherding great work by other contributors, and I'll detail my limited contributions beyond mere bug fixing.

Wayland support

I've done some work on enabling clutter-gtk applications to be able to run on  Wayland though the harder work of implementing sub-surfaces is still pending.

Giovanni has done incredible work on mutter to start moving some of the X11 dependent code inside the compositor, which should allow you to run a (cut down) Wayland session using gnome-shell.

This also means that Thomas Wood's redesigned Displays panel has Wayland support. A perfect storm of changes for one of the only panels that received little attention since the GNOME 2.x days.


The new displays panel with a TV that claims to be oh so small


Date & Time redesign

Zeeshan, through his work on Geoclue2, and Kalev, through his Summer of Code project, have completely redesigned the Date & Time panel. Aside from being easier to setup, it means that we can finally implement the automatic timezone switching depending on your location.


The new Date & Time panel


BlueZ 5 support

GNOME is the first major desktop to ship with BlueZ 5 support, thanks to work by Gustavo Padovan and Emilio Pozuelo Monfort.

The older version was not supported anymore, and the new version allows us to support things like "Just Works" pairing, better support of audio devices (though the PulseAudio 5.x release to support this is only coming shortly after GNOME 3.10) and a much better architecture for a more stable operation.

GNOME 3.12 should see a redesigned Bluetooth panel, to match current best practices on other platforms (such as merging the management and pairing wizard UIs into one).


Bluetooth devices in use


Miscellaneous


Intuos 4 OLEDs

OLED support for Wacom Intuos 4 tablets (as seen above, thanks Przemo), media keys support for MPRIS applications such as Spotify (thanks to Michael Wood and Lars Uebernickel), updated UI for the Universal Access panel (the ever present Matthias Clasen), support for many more fingerprint readers in libfprint (thanks Vasily Khoruzhick).


Redesigned Universal Access panel



And to my contributions

More work on Videos. Totem 3.10 is still based on the same interface as in GNOME 3.8, but some work has been on the master branch towards the new UI, with some of the features getting backported. We have:
  • new session management for when Totem crashes
  • support for chapters within files (such as Matroska videos)
  • Wayland bug fixes in GTK+, clutter and the combined clutter-gtk
  • a completed GDBus port
  • Working overlaid controls (though their behaviour isn't quite up to scratch)
  • Remote files support in Grilo, including support for Recent files
  • Started work on merging the various sidebars within the main view (which included landing GtkSearchBar in GTK+)
  • libquvi 0.9 support
On top of which you'll find the usual mix of bug fixes, small featuresitch scratching, and swamp-draining in finger-pointing fests.

I also spent quite a bit of time on a side project that didn't come to fruition at this time, but I hope to be able to post some details soon.

Saturday, 20 July 2013

GUADEC[1] Hardware giveaway

I'm cleaning up my hardware chest, and giving away some hardware to a good home. I intend on travelling with those that I found a new home for at GUADEC. All of them are in good working condition. If there is a charger or power supply, it will be a UK one.

Drop me a mail with your intended usage (preferably GNOME or kernel related), or need some more info about the devices.

Up for grabs


Palm Pilot Tungsten E2



The predecessor to all your new-fangled smartphones. This one could even do Bluetooth syncing using gnome-pilot, all those years ago. Might be nice as a remote control of some sort, or legacy support for Pilots.

D-Link DIR-615 Wi-Fi N router



Works with DD-WRT. Would be great to work with DD-WRT or associated on a way to configure those through a GNOME UI à-la Airport base stations.

HP iPaq 914



Euro plug. Apparently this can't run Linux... Yet!

DXR3 card


Offload your MPEG2 decoding to this PCI card.

iPod Touch 2G


Too old to run any recent iOS, but good enough to show off your web apps skills, or work on Notes sync with IMAP servers.

Broadcom Crystal HD mini-PCIE 70015 and 70012


2 video decoder cards usable with Linux. You'd need to port the GStreamer plugin to GStreamer 1.0 to get those (or one of those at least).

Plantronics and Motorola Bluetooth headsets


Not the newest devices, but they work.

Red Hat branded power adapter


USB to Nokia/Motorola with this retractable extension lead.

On their way to a good home [2]


Logitech MX 5000 pack and diNovo keyboard


Space-age mouse and keyboard set. Benjamin Tissoires will be getting the (now not so much space age as grubby and outdated) pack to hopefully implement HID++ 1.0 in the kernel.
The diNovo keyboard is a nice little Bluetooth keyboard for a media PC or the likes, even has the tiniest of trackpads.

Logitech 9000, PS3 Eye and Creative OV511-based webcams


Hans de Goede will get those to make them work out-of-the-box in Fedora, and upstream, trying to clean up some hacks he gave me for those a long time ago.

No-name USB GPS dongle and Tom-Tom Bluetooth GPS


For Zeeshan, just in case he gets bored implementing geoclue2.

Nokia N82 and Palm Centro


For Dan Williams. ModemManager's testing gear is growing.

Belkin G and Dell 1450 Wi-Fi USB dongles


Giovanni and Jasper will enjoy those Wi-Fi dongles that will create bugs in gnome-shell's network menu and the new aggregate menu.

[1]: Or near enough for some of the items :)
[2]: I made my pre-selection based on the possible uses for the hardware.

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.

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.

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:

  • 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.
The code currently in geocode-glib for IP geocoding will likely move there when the project has been kickstarted.

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.

 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.

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:

  • 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.

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.

Wednesday, 23 May 2012

System Settings shell changes

 While Jon McCann made changes to the System Settings UI, I was busy implementing an animated notebook, to make the switch between panels, overview and search less jarring.



Video on YouTube.

Here's a list of what we fixed:

  • Avoid scrollbars at all costs on startup (made possible by some GTK+ sizing bug fixes)
  • Make the default window bigger, while supporting small displays (800x600 displays should now be usable)
  • Bigger icons to match the Shell's overview
  • Better layout of search results
  • Animated transitions between panels, overview and search results

Before


After

There will most likely be more tweaks of the UI between now and the GNOME 3.6 release, which I'll make sure to let you know about.

PS: Before you ask, we cannot animate window size changes. Hopefully this will be possible in the future.

Update: Fixed a double-negative. Also note that there are some differences between my screenshots and reality, like the separators, as my system wasn't fully updated.

Wednesday, 29 February 2012

Wacom tablets in GNOME 3.4 (part #2)

Since the last report, "mapping" has been the order of the day. We now have support for:

Display mapping

Not as pretty as mocked up, but it's functional. We hope to have the nicer version done for the next development cycle.

and

Button mapping

The button mapping will show you the actual keys, with translated names, for your device, instead of every possible combination of buttons which end up doing nothing.

We've also made a big number of layout changes and fixes, which means that the main window isn't as awkward as it used to be.

There are a number of features that unfortunately didn't make the cut, mostly due to the lack of support from the X.org drivers. Mode switching currently doesn't advertise the current mode by changing the LED, and the OLEDs that show the bindings for each key stand empty.

Monday, 5 December 2011

Stalk^W Following designs, the easy way

If you want to follow all the new designs from the GNOME Design team, including work-in-progress mockups, gathering of relevant art, etc. be sure to subscribe yourself to the pages that interest you in the various sections of the GNOME Wiki.

A nice trick is using our Wiki's notification, with regex support. Head onto your notification settings page, and add those lines to the "Subscribed wiki pages":

GnomeLive:Design*
GnomeLive:GnomeShell/Design*
GnomeLive:GnomeOS/Design*

Sunday, 4 December 2011

Vegas Baby!

Before: No video, because no Flash, and no MP4 support


After: Video, through Totem's Vegas plugin

Totem's new Vegas browser plugin provides you with a way to watch Flash based videos, without using Flash, using libquvi's growing collection of supported sites.

Code is available from GNOME git this instant. Be sure to pass --enable-vegas-plugin=yes to compile the plugin.

Monday, 7 November 2011

ObexFTP in GNOME, (non-)update

If you've tried to use ObexFTP browsing (browsing files on mobile phones over Bluetooth) in GNOME in recent times, and didn't get a good experience from it (crashes, or very unreliable browsing), those problems are known, and due to the architecture used to implement the functionality.

If you want to help make ObexFTP browsing good again, please try to convince one of your coder friends to help port the existing code to use the "gobex" library that the obexd D-Bus service uses.

Unless somebody steps up in the GNOME 3.4 timeframe, I will disable the access to the functionality in gnome-bluetooth. The brokenness makes us look very bad, and the files are still available through other (cabled) means in most cases.

Friday, 16 September 2011

OMG! I haz designed a bug fix!

In GNOME 3, we removed an option which got GNOME users hot under the collar (and gave the opportunity to the ones who weren't something to troll about): we removed the configuration option to select what happens when you close your laptop lid.

We started digging, and found out that the main reason for people wanting this feature was so that they could go from a table to another in the coffee shop, from their desk to the meeting room in the office, or a table to the next in the library, with the laptop lid closed, and your internet connection still on-going.

In that case, what's really needed is a way to disable suspending when you're moving the laptop. But having to dig in the settings would take too long anyway. And, apart from a number of tethered ones, users would live happily without that ability, so we wouldn't be adding this in the gnome-shell UI itself.

Let's add the button in a separate application. A single button isn't too interesting though. Let's make this more interesting!

Office Runner!

Testimonials

  • “this is the best thing ever”
  • “the most creative way I've heard of to solve a power management bug in a while”
  • “I expect people to spill their coffees over this”
What now?

The code is available in GNOME git, and we're just waiting to knock a few TODO items, and get a UI  review before releasing the first version. Patches welcome. Enjoy!

Wednesday, 24 August 2011

COSCUP 2011: Taipei

Just got back from Taipei, where I attended COSCUP, alongside troublemaker Xan López, both of us having been invited to represent GNOME.

Pre-COSCUP

After a fairly smooth but long flight (followed by a shorter flight from Hong-Kong), I landed in Taipei International Airport where I met Max, holding a card with a GNOME foot and my name on it, at the arrivals hall. Max then drove me to the hotel, or rather, he was my driver to the hotel, as he insisted that I ride in the back seat rather than up front alongside him (I think you'll see a pattern emerging soon).

Our very nice and modern hotel (with “North-European furniture”, as the brochure said, and it did indeed have Ikea branded glasses in the bathroom) was a stone's throw away from the Nangang Software Park MRT (metro) station.

I only saw those on TV when I was a kid.
I proceeded to catch up on my sleep, after a quick look at the TV channels (Hackers!).

Garbage!


The next morning, thanks to Max' helpful cue cards, I managed to get myself a network adapter and cable out of  Guanghua Digital Plaza. This place must be an absolute dream for people who like making their own computers, though the newness of the hardware is dependent on the use. No Bluetooth 4.0 dongles, but the latest in anime shaped USB sticks.


Blade Runner, day time.
After being reminded on the plane quite how important business cards were, I asked the hotel reception whether they could help me get this sorted. After 10 minutes of calls by the enormously helpful receptionist, Max arrived from another airport run with Xan. Ten more minutes of phone calls, Max drove me to the print shop, where they live designed my business cards. It took a good half hour. At which point I should mention that during that whole time Max's wife was in the car, double-parked not very far from the shop. And that Max managed to arrange for the business cards to arrive at the hotel.



Snooze, mail, and we got ready for the speaker's dinner. In the lobby, we met David Cuartielles, the co-founder of the Arduino project, and Pofeng, one of the organisers. Pofeng proceeded to organise for my business cards to be delivered to the dinner we were just going to.


Dinner, num-num, early night.


COSCUP


I'll cut short on the presentations, as most of the slides and videos should find their ways online soon. Jonathan Corbet made a nice feature out of my presentation (which was followed by Aaron Seigo's Plasma active on tablets talk).


Demo time!
Side note, if you cannot access the Linux Weekly News article, you can wait a week, or give to Friends of GNOME, and get a free LWN subscription.


The talk was well received, and a few hardware makers are interested in our approach.


Xan's presentation was also well received, and we started discussing the idea of Epiphany's web applications integration using standardised metadata information, as Firefox also needs such integration.


I would advise future organisers of GUADECs and associated to talk to the organisers of COSCUP in terms of getting staff on the grounds, online social interactions (including COSCUP Cheese), or even the mobile apps for the conference.


Social and touring


Xan hacking.

David hacking.
We tried our best to mingle amongst the conversations during the conference, but it's soon fairly obvious that the Westerners end up together, if only because we were all tourists. Which is how I ended up spending a fair bit of time with the Beijing-based German Ollo, Berlin-based Frenchman Paul Rouget (who's just bad at Mario), Malmö-based Spaniard David, Living-out-of-a-suitcase Xan, and Taipei-based Englishman James.


We spent some time trying to find veggie food for Xan in the night markets, amongst the game arcades, Angry Birds T-Shirts, and potent smell of soy sauce (no, not the same one you have in your cupboard).


The day after the end of the conference, the speakers were invited to a tour of the city. We went up Taipei 101 (where my mild acrophobia made me feel queasy looking down the emergency stairwell, 90 stories to the bottom), and down it for some gadgets shopping, and the most awesomest dumplings in the existence of the world at Din Tai Fung.


This was followed by a visit of the National Palace Museum (where you could see the most amazing work on ivory, and jade, real craftsmanship), and the change of guard at Martyr's Shrine.


Tourist information


The working hours are mostly European ones, but they're not in sync with the sun. So getting out of a dark building at around 10 AM means that you'll be in the noon sun, and nearly blinded. Bring sunglasses.


It's really hot and humid (BBC Weather mentioned 36 Celsius, with 86% humidity for last Monday), bring light clothes. Women can buy a sun-umbrella locally. Bring a napkin/cloth to wipe your face.


It's part of culture to exchange gifts amongst friends. Even if you don't have any friends there yet, the people are so nice that you are bound to feel that they deserve those gifts anyway. Bring gifts, especially foodstuff.


Don't look like a plonker by not bringing business cards to any business meeting (like I did). You can probably get them printed in Taipei (expect to pay around 200NT for 200 business cards, eg. around 5£). Bring name cards (as they call them there).


You're in the Republic of China, not the communist People's Republic Of China.


And read the metro map properly...


Thanks


My wholehearted thanks to all the COSCUP organisers, and the conference itself, for inviting us to Taipei, taking great care of us, and sponsoring our accommodation, to the well-connected Emily Chen (who everyone seemed to know) who proposed me for a talk, Max and his wife, for being the best of hosts (and for the Stephen Chow DVDs!), and the GNOME Foundation for sponsoring my flight there.


I can now say I've been to Asia, crossing a bridge in Istanbul doesn't really count :)

Monday, 15 August 2011

Desktop Summit all done

Like a large number of Desktop Summit attendees, I made my way back home shortly after the end of the conference. I will spare you the details of my schedule, and will share a few things of note.

Hackfests

As I attended one of those recently, I did a presentation about them for the Advisory Board on Tuesday. The things to come out of the discussions that followed is that we would want more reporting in some cases, even post-hackfest if the network access isn't good enough, or there are loose items (filing bugs, long-term goals definitions, etc.).

This help our AdBoard members, the Friends of GNOME contributors, the community, as well as the hackfest sponsors, know how the hackfest helped the project.

Seeing as we were in a shared event with KDE, I would also like to note that if you want to work on lower levels of the stack, such as hardware enablement, or features that can be shared as standards through FreeDesktop.org, talk to the board about organising a Hackfest.

Presentations

My presentation about tablets (and not sofas) went past. I'll know for next time that antihistamines don't make for a clear mind, but if you were present and I missed a particular subject you were interested in, don't hesitate to contact me.

During the conference, Nohemi fixed a number of the bugs I reported through her mentor, and my tablet can now be booted with the on-screen keyboard enabled by default.

I also prepared a presentation for the Advisory Board meeting that ties in to the above subjects, which generated a fair bit of discussion, but this will require reporting separately.

Miscellaneous

  • They have high towers and holes in Berlin
  • I'm a sucker for a bratwurst, and had the best kebab of my life
  • Museum Island is impressive
  • I was in the winning team at FreeFA, though people say we had too many Brazilian full-backs on our team.
  • Kay knows how to make a rose from a napkin
See you all next time in A Coruña!

Update: No dots in "A Coruña".

Tuesday, 14 June 2011

IM, Contacts and Social Hackfest, day two

Day two, in the Collabora house, Rob Bradford graced us with his presence, on his birthday, and today started discussing integration of gnome-online-accounts into Empathy/Telepathy[1], libsocialweb and interactions with various accounts systems.

Most of the rest of the pre-lunch hacking was about setting ourselves up for hacking on the above. The afternoon was spent with much of the same, trying to get more documentation for things like Google's Chat authentication, including a draft patch to gnome-online-accounts, Empathy/Mission Control work for this support, and tons of related bug fixes.

The Telepathy hackers also discussed text handling in Telepathy (with the goal of making the specification clearer, avoid problems of "missed" messages, etc.).

[1]: https://bugzilla.gnome.org/show_bug.cgi?id=652546 and https://bugzilla.gnome.org/show_bug.cgi?id=652544