10 Nov 2011

feedPlanet GNOME

Brad Taylor: Reports of Snowy’s death have been greatly exaggerated

Browsing foundation-list recently, I was honored to see Snowy (and Tomboy Online) hosting mentioned as one of the GNOME CEO goals (scroll to the bottom) for 2010! Unfortunately, the pace of Snowy's development has slowed in the last few months, due in part to both Sandy and my schedules. Despite that, we wouldn't want Stormy to get a bad reputation because of our slacking, so we're going to change that.

We're hosting an IRC meeting in the #snowy channel on irc.gimp.net on Saturday, 23 Jan 2010 at 11:00 AM EDT (16:00 GMT, other time zones) to get ourselves organized, and to recruit your help.

So, if you are a graphic designer that wants to help beautify an awesome open source project, if you're a hacker who knows or wants to learn Django, or even if you're just interested in Snowy, stop on by!

See you there!

10 Nov 2011 4:55am GMT

Brad Taylor: Mono Accessibility 2.0 unleashed!

Today, I'm proud to announce the 2.0 release of the Mono Accessibility project. Spanning a year of intensive work and fixing over 500 bugs, this is truly our best release ever.

This release enables all types of users to access System.Windows.Forms and Silverlight applications from Linux using Orca and other ATK-based Assistive Technologies (ATs), as well as access Linux applications from UI Automation (UIA) based ATs.

What's changed since version 1.0?


What is Mono Accessibility:

The Mono Accessibility project enables Winforms and Silverlight applications to be fully accessible on Linux, and allows Assistive Technologies (ATs) like screen readers and test automation tools that depend on UI Automation APIs to work on Linux.

Mono Accessibility is released under the MIT/X11 license.

Get it!

Mono Accessibility is available for a variety of Linux distributions, including:

A Note About at-spi2

Accessing GTK+ applications with the UIA Client API requires the most recent development version of the new dbus-based at-spi2, which is known to cause system instability.

In Fedora, at-spi2 repeatedly causes GDM to segfault. If you do not need this feature, do not install the latest at-spi2 and atk, or our packages which depend on them, which are at-spi-sharp and AtspiUiaSource.

We are working hard to identify these issues and hope to aid the GNOME Accessibility Team in stabilizing at-spi2 in the near future.

Find out more

Navigate to our homepage for all the latest information, and ways to contact us.

10 Nov 2011 4:55am GMT

Calum Benson: What’s new on the Solaris 11 desktop?

This entry is cross-posted from my Oracle blog… clearly, seasoned GNOME blog readers will be less excited about GNOME 2.30, compiz and Firefox 6 than my audience over there, many of whom have been using GNOME 2.6 on Solaris 10 for the past 7 years :)

Much has been written today about the enterprise and cloud features of Oracle Solaris 11, which was launched today, but what's new for those of us who just like to have the robustness and security of Solaris on our desktop machines? Here are a few of the Solaris 11 desktop highlights:

Solaris 11 is free to download and use for most non-commercial purposes (but IANAL, so do check the OTN License Agreement on the download page first - it's short and sweet, as these things go), and you can download various flavours, including a Live CD and a USB install image, right here.

10 Nov 2011 12:08am GMT

09 Nov 2011

feedPlanet GNOME

Thomas Vander Stichele: Mach 1.0.0 “Madera” released

Another November, another Fedora. 16 came out, so it was time to update mach again.

And today I thought, is there any reason mach isn't 1.0 yet ? Am I going to do anything more to this piece of code before I want to call it that ?

And the answer is, no. It's the first Python application I've written, and I'm not particularly proud of the code, but I'm happy I've made good use of it for so long, and that it helped push packaging approaches forward and sparked ideas for the Fedora build system.

Since I didn't like the original code for mach2 (there was a version 1 which was Makefile-based), I started a rewrite with unit tests, better code layout, decent classes for abstracting distro-specific stuff, and so on.

The experience of how mock was created based off mach2 was a slightly sour one however, so I wasn't really motivated to finish the mach3 rewrite. Sometimes that's the drawback of open source - sure, forking is specifically allowed, so don't whine about it when it happens. But when it's done gratuitously, with no serious attempt at collaborating, it doesn't feel like it's in the spirit of open source.

Anyway, that was a long time ago. mach2 as it is today, is done. It really only needs updating for newer versions. As long as it works for me, it's unlikely I will continue mach3, but who knows?

Enjoy the release!

09 Nov 2011 11:09pm GMT

Matthias Clasen: Better logging

First an update on deprecations: GLib and GTK+ master have been fully converted to use function attributes for deprecations now, and most uses of G_DISABLE_DEPRECATED guards in GLib headers have been removed. They are still used for deprecated things that are not symbols, like macros and enum values. I haven't done the same for GTK_DISABLE_DEPRECATED yet, but it should happen fairly soon. Looking forward to a future of less deprecation-induced build breakage (unless you insist on -Werror, of course…).

Continuing the theme of 'making things suck less for developers'… another favourite is logging. It is very hard to get right; you want to add plenty of debug and diagnostic messages to help with, well, debugging. But then people complain if you fill up their syslog or .xsession-errors with tons of debug spew, like here. The GLib logging system with g_log() and the macro wrappers g_debug(), g_warning(), etc leaves much to be desired. It does have the concept of replaceable log handler functions, which is ok for complicated uses. But unfortunately, the default handler is so inflexible that many applications are forced to install a custom handler just to be able to turn debug output on and off.

As a small step towards making better logging, the default log handler in GLib master now only emits errors, warnings and criticals. Informational and debug messages are only emitted if you set the G_MESSAGES_DEBUG environment variable. The value can be a list of log domains that you are interested in, or the special value 'all' to get it all. As a reminder, the log domain is almost invisible in your code unless you use g_log() directly; it's what you define by adding -DG_LOG_DOMAIN="MyCoolApp" to your CPPFLAGS.

09 Nov 2011 10:54pm GMT

Matthew Garrett: Properly booting a Mac

This is mostly for my own reference, but since it might be useful to others:

By "Properly booting" I mean "Integrating into the boot system as well as Mac OS X does". The device should be visible from the boot picker menu and should be selectable as a startup disk. For this to happen the boot should be in HFS+ format and have the following files:

That's enough to get it to appear in the startup disk boot pane. Getting it in the boot picker requires it to be blessed. You probably also want a .VolumeIcon.icns in / in order to get an appropriate icon.

Now all I need is an aesthetically appealing boot loader.

comment count unavailable comments

09 Nov 2011 10:08pm GMT

Vincent van Adrighem: Hacking my blog

I wrote my own blog software back in the good old days as one of my first php projects...and it did not support tags or categories.

no twitter

09 Nov 2011 10:05pm GMT

Natan Yellin: Why Yahoo is Irrelevant

Earlier, I ranted about the poor quality of answers on Yahoo Answers. In 2006, information on Yahoo Answers was of higher quality, and the site was hailed by TechCrunch as Yahoo's long term strategy for overtaking Google:

Yahoo earlier this year oddly admitted that it's not their goal to be No. 1 in Internet search. "We would be very happy to maintain our market share," CFO Susan Decker told Bloomberg… I think that they decided to lose the algorithmic keyword search battle and focus their resources elsewhere in order to win the search "market share" war…

Yahoo! is sensibly looking change the battle ground by providing a different type of search, one not based on complex mathematical algorithms but one that could answer questions like "how will mankind save the planet?" Putting this question into Google resulted in no search results being returned and yet you could pose the very same question on Yahoo! Answers and would probably get a few hundred answers if you were not famous and several thousand if you were.

What went wrong?

If you read Forbes, you may remember a 2010 article, titled Stop Focusing on Your Core Business, which suggested that Yahoo had failed because they couldn't move fast or enter new markets. I can't understand how anyone can think that, considering that even this run-on sentence only covers 25% of the 72 businesses that Yahoo has ever been involved in. Rather, Yahoo's mistake was utter incompetency and a chronic lack of focus. They focused on width over depth, and they lost everywhere as a result. (StackOverflow is the counter example: They focused on community and quality, and the resultant community is indisputably excellent.)

If you follow Hacker News, you surely know the most common advice given to startups: pivot. Pivoting is swell, but here is a more fundamental lemma that Yahoo would do well to study: Don't make half-assed attempts.

A search for the word "pivot" on Hacker News returns 1,923 results, a search for "core business" only 594. That's a shame. Google succeeded because they knew their core business was search, and they provided the best damn search results anywhere. If you're creating a startup, or writing a piece of software, you should focus on competency in the narrow problem space you choose. There may eventually come a time to expand - hell, if you're there, you shouldn't be reading this blog post - and note that most areas Google expanded to were related to selling ads (Gmail, Google Maps) or improving search results (Google Plus). They always focused on consumer problems and provided solutions that were better for consumers.

If you read until here, you should try Freeversation, my new take on online anonymity. With Freeversation, you can have private and anonymous conversations with friends and colleagues. You always know who you are speaking to, but not who said what. We have no plans to offer any unrelated services ;)

09 Nov 2011 9:21pm GMT

Natan Yellin: Yahoo Answers Considered Harmful

The only way to comprehend what mathematicians mean by Infinity is to contemplate the extent of human stupidity

- Voltaire

Information on Yahoo Answers is not just wrong, it's downright harmful. I haven't deliberately searched on Yahoo Answers for a long time, but the results often show up in Google.

Take the issue of using hand sanitizers on open cuts: not only do the top results on Google lead to dangerously wrong Yahoo Answers, but the users who provided them were rewarded for their answer.

Don't use Yahoo Answers.

09 Nov 2011 8:21pm GMT

Michael Hasselmann: Better GTK+ support in Maliit

So far, using Maliit's virtual keyboard in GTK+ applications required fetching and compiling a GTK+ input method brigde yourself. Not any more. With the latest release, GTK+ applications should just work out of the box, thanks to Jon's integration efforts. Right at the same time, Łukasz was looking into using Maliit together with GTK+ applications on his Ubuntu desktop. He did a great job testing Jon's improvement and also contributed patches to properly update GTK+'s input method module cache. When compared to the Qt support, the gap in terms of supported features is quite large. We would like to further improve the GTK+ support and contributions are certainly welcome.

09 Nov 2011 4:00pm GMT

Calum Benson: Happy Solaris 11 Day!

Nearly seven years after the launch of Sun Solaris 10, today sees the official launch of Oracle Solaris 11 at an event in NYC*.

Oracle Solaris 11 Launch
November 9, New York City
Register Now!

There's a host of new enterprise-class features in Solaris 11, including a modern package management system, live upgrade with the ability to reboot to previous known good versions, network virtualization, ZFS encryption and reduplication, and many SMF, DTrace, zone and security improvements. On the desktop, CDE has taken its final curtain call, and now GNOME (currently 2.30) takes centre stage. Solaris 11 is fully supported on both SPARC and x86, and it still has the best binary compatibility guarantee in the business.

The road to Solaris 11 has been a particularly long and winding one, of course. Starting from the closed source base of Solaris 10, Solaris was gradually open-sourced, mostly under the CDDL license. The OpenSolaris project was founded, part of which was a Sun-built distro called Project Indiana, under the brief leadership of Debian founder Ian Murdock. Project Indiana was a Fedora-like concept, with its own release cycle and the eventual intention of being forked to produce Sun's next commercial release of Solaris (which at that time was codenamed Nevada, and seemed unlikely to be called Solaris 11 at launch).

Before its first milestone release, Project Indiana was somewhat confusingly renamed OpenSolaris, a fully-fledged, developer-focused distro that saw three releases, snappily called OpenSolaris 2008.05, 2008.11, and 2009.06. Then, of course, Sun was sold to Oracle, who (regrettably without any official announcement to the OpenSolaris community, just a leaked internal memo) closed it all up again**, and decided that the next version of Solaris was going to be called Solaris 11 after all.

Nearly two years of spit and polish, and an intermediate Solaris 11 Express release later, here we are at last. Enjoy!

* No, we're not launching it on 11/11. Yes, it would be nice if US-based global corporations would hold their launch events in other parts of the world now and again, so some of the many thousands of non-US staff and customers could be there.

** Of course, once the open source cat is out of the bag, there's no pushing it back in, and there are still some thriving OpenSolaris communities out there today, notably Illumos and OpenIndiana.

09 Nov 2011 1:08pm GMT

Carlos Garcia Campos: WebKit2 GTK+ MiniBrowser ported to GTK+ API!

MiniBrowser is a small web browser application for testing WebKit2. MiniBrowser for the GTK+ port has been working for some time now, but it was implemented using the C-based WebKit2 API. WebKitGTK+ 1.7.1 introduced an initial high level GTK+ API for WebKit2 more similar to the current WebKit1 GTK+ API. This week, Igalia's WebKit team started to port the MiniBrowser code to use the new GTK+ API.

MiniBrowser running
MiniBrowser running

This new GTK+ API is far from complete compared to the WebKit1 API, but it's already possible to implement a small application with basic features, and we have plans to create a webkit2 branch for epiphany soon. API is already documented in the code, but the html generation is not available yet. We are already working on it so that WebKitGTK+ 1.7.2 will generate the API documentation when compiled with -enable-gtk-doc and -enable-webkit2 and it will be available on the WebKitGTK+ website too.

Thanks to the multiprocess architecture, WebKit2GTK+ solves the problem of using flash (or any other plugin using GTK+2) with GTK+3. The UI process depends unconditonally on GTK+3 and the plugin process is always built with GTK+2. And of course, flash will never crash or block your web browser. Plugins are broken in WebKitGTK+ 1.7.1 due to a bug that has already been fixed, so in order to try it out you need to either wait until 1.7.2 is released or build WebKit from current git master.

MiniBrowser showing a youtube video
MiniBrowser showing a youtube video

09 Nov 2011 9:06am GMT

Carlos Garcia Campos: GTK+/MeeGo Handset integration: Week 8


Good news here, Matthias reviewed and approved my patches, so I committed them.

In the same bug report, Johannes Schmid proposed to add placeholder text to GtkCellrendererText too, and I think it makes even more sense than for entries since it's not obvious when a treeview cell is editable. Glade has a custom implementation for the signal editor. I filed a new bug report and attached a patch.

GtkScrolledWindow: kinetic scrolling

While I was on vacation I had the opportunity to play with an Android phone for a while (thanks Roca!), I was very curious about how they solved the problem of selecting text in scrollable widgets and it turned out that they use press-and-hold. After a long press the current word is selected and two handles show up to extend the selection. I don't like the handles, and I don't think we need it, but the press-and-hold solution might work for us. We can simply wait after the long press to cancel the scrolling operation and propagate events to child widgets normally so that both selections and drag and drop operations will work as if kinetic scrolling mode were not enabled. I submitted a patch that uses press-and-hold to allow selections and drag and drop operations when kinetic scrolling mode is enabled in GtkScrolledWindow. However, I couldn't use any of the solutions proposed for press-and-hold in bug #315645. As kris commented (thanks kris for your feedback in this and other bugs, by the way!), this press-and-hold use case changes the game a bit, so we'll have to think a bit more about it.


I noticed my patch had a couple of regressions regarding GtkEntry popdown menu handling, corresponding to old bugs #169534 and #71868. Updated the patches (GtkLiveEntry and GtkTreeView) to apply on current git master and fix the regressions.

09 Nov 2011 9:06am GMT

Piotr Pokora: Mjolnir - new stable Midgard2 release

09 Nov 2011 3:52am GMT

08 Nov 2011

feedPlanet GNOME

Srishti Sethi: FUDCon Pune 2011

8th Nov 2011 : It was tremendous fun to attend my first Fedora event FUDCon 2011 at COEP College ,Pune. A day before the event , I reached Pune at midnight and my eyes got hold on two guys wearing geeky tshirts .This was how I recognized Fudcon speakers Arun SAG and Vaidik Kapoor. Day one commenced with Jared Smith 's inspiring keynote on the vision of fedora. He spoke about the underlying concept behind core values of Fedora community : Freedom, Friends, Features, First. I must say it was utmost frolic to meet awesome contributors from the community and attend interesting sessions.The kind of adrenaline rush I observed in COEP students and other delegates for various talks and workshops cheered aloud the success of FUDCon.

During night I spent some time preparing slides and code scripts for my talk. Day two, as per the schedule, I conducted a session on Cute hacks with PyGoocanvas .It was my first talk and I am glad it all began with FUDCon. I have uploaded the contents of my presentation and demo code on git : https://github.com/srish/FUDCon-2011. FUDPub was the most awaited event of the evening. Its plethora of fun to watch geeks dancing and cracking jokes.Rahul Sundaram is the most humorous geek I have ever met till now:P Being pure vegetarian and teetotaler, I had a good company with Aditya :D Third day was even more exciting, and a real barcamp feeling. Suchakra conducted a hackathon on Qt for Embedded devices. I was amazed to see so many enthusiastic girls from COEP and we squatted together to discuss how to crack Google Summer of Code and beauty of GNOME Women Internship Program

Day ended with a cake cutting ceremony and the auditorium echoed : Three Cheers for FUDCon. I say FUD ,you say CON. FUDCON! At last ,I express my immense gratitude to team fedora for sponsoring my travel and making my stay at Pune the most memorable one ever. Hats off to Fedora Community. You guys rock and deserve a big round of applause:-)
FUDCon will always remind me of those baby pink bathroom slippers stolen from my room :P

Links :

08 Nov 2011 9:38pm GMT

Owen Taylor: Application/Compositor Synchronization

This blog entry continues an extended series of posts over the last couple of years. Older entries:

What we figured out in the last post was that if you can't animate at 60fps, then from the point of achieving a smooth display, a very good thing to do is to just animate as fast as you can while still giving the compositor time to redraw. The process is represented visually below. (You can click on the image for a larger version.)

The top section shows a timeline of activity for the Application, Compositor, and X server. At the bottom, we show the contents of the application's window pixmap, the back buffer, and the front buffer as time progresses. From this, we can get an idea of the time between the point where a user hits a key and the point where that displays on the screen: the input latency. The keystroke C almost immediately makes its way into a new application frame, and that new frame is almost immediately drawn by the compositor into the back buffer, and the back buffer is almost immediately swapped by the X server. On the other hand, the keystroke D suffers multiple delays.

What happens if we use the same algorithm when we're unloaded - when the total drawing time is less than the interval between screen refreshes? Then it looks like:

This is basically working pretty well - but we note that even though the application is drawing quickly and the entire system is unloaded we still have a lot of input latency. If we plot the latency versus the application drawing time it looks like:

The shaded area shows the theoretical range of latencies, the solid line the theoretical average latency, and the points show min/max/avg latencies as measured in a simulation. (It should be mentioned that this is only the latency when we're continually drawing frames. An isolated frame won't have any problems with previously queued frames, so will appear on the screen with minimal latency.)

We could potentially improve this by having the application delay rendering a new frame - the compositor can use the time used to render the last frame to make a guess as to a "deadline" - a time by which the application needs to have the frame rendered. We can again look at a timeline plot and simulated latencies for this algorithm:

There are downsides to delaying frame render - the obvious one is that if we guess wrong and the application starts the frame too late, then we can entirely miss a frame. From a smoothness point of view this looks really bad. In general, an application should only use a deadline provided by the compositor if it has reason to believe that the next frame is roughly similar to the previous one. Another disadvantage is that the delay algorithm does cause a frame-rate cliff as soon as the time to draw a frame exceeds the vblank period - there is an instant drop from 60fps to 30fps.

Which of these two algorithms is better likely depends upon the application: if an application wants maximum animation smoothness and protection from glitches, drawing frames as early makes sense. On the other hand, if input latency is a critical factor - for a game or real-time music application, then delaying frame drawing as late as possible would be preferable.

So, what we want to do from the level of application/compositor synchronization is provide enough information to allow applications to implement different algorithms. After drawing a frame, the compositor should send a message to the application containing:

But even without the deadline information, just having a basic response at the end of the frame already greatly improves the situation from the current situation. I'm working on a proposal to add application/compositor synchronization to the Extended Window Manager Hints specification.

08 Nov 2011 8:53pm GMT