In case you (still) own a Samsung NC10 netbook and suspend stopped working with Fedora 15 there is a pretty simple workaround:

Enable “EDB (Execute Disable Bit)” in the Advanced BIOS options which will enabled DEP and as a side-effect magically make your NC10 wakeup currently after suspend.

I personally also updated to the latest BIOS version but it is not sure if that is necessary. See the bug report for details.

 

GNOME 3 and beyond

5. May 2011

Actually I am been pretty busy writing my diploma thesis so after the Toronto hackfest there wasn’t much activity from my side regarding GNOME. However, as I finally unsubscribed from gnome-shell-list it’s time to write something about my personal experience with GNOME 3 and the feedback that was mentioned on the list.

Personally, I use GNOME 3 on my Desktop and Netbook for some weeks now, both with Fedora 15 Alpha/Beta. It took me some minutes to get used to the concept and reorganize my workflow a bit but overall the experience was quite good. I especially like the way multiple monitors work, so I can always have empathy with IRC and chat on my secondary monitor. This is particularly useful as I definitely use much more work-spaces now than before to organize my tasks. There are still some rough edges, especially when it comes to all the “Finding and Reminding” stuff and the chat integration. Actually, I really don’t want to have both empathy and the shell displaying my chat messages and I don’t want to have the “Contact List” around all the time. But luckily some discussion started on desktop-devel-list to improve the situation. The point annoying me most is that I always have to press Alt/Meta key to switch off my computer as I have connected it to a plugbar to save the energy consumed in standby normally by the computer and the monitors and my secondary monitor doesn’t go into sleep mode when connected via HDMI. Another reason for not using standby is that I cannot sleep when the blinking “Standby-LED” of my desktop is lighting the room. I want a “Power Off” menu item – Period!

Besides my personal experience I followed gnome-shell-list for quite a while until the signal-to-noise-ratio became much too low. I would really like to have some kind of gnome-shell-devel-list that just summarizes all the technical discussion that only seems to happen on IRC currently as IRC is hard to follow normally. Anyway, I want to summarize some of the more interesting feedback:

  • Window title bars seems to be too big for many netbook users and are seen as a waste of space. Allan has a blog post explaining the reasoning behind this though but it might not be ideal for small screens. I know that I reduced the font size on my netbook to have more space.
  • Merge title bar of maximized windows into the top panel. This goes in the same direction as the first one and seems to be useful for smaller screens especially as the top panel is quite empty usually in GNOME 3.
  • Dont’ hide stuff in “System Info: Actually this control-center panel groups a lot of stuff like “Favourite Applications”, “Fallback mode” and (guessed?) “System information”. Seems this is poorly labeled and people are actually not finding what they want to change. Things should be grouped differently here.
  • Persistent notifications are difficult for external developers that are used to the old-style notification system. That probably would be that bad if it would be easier to reach developers by mail as it is quite hard for external people to ask on IRC (in the right time-zone). As mentioned before, it would be important to have developers read & answer at least the technical posts on gnome-shell-list which doesn’t seem to happen. (See this thread).

The rest was a lot of noise in the style “I don’t like it”, “Fedora vs. Ubuntu”, “GNOME vs. Unity vs. KDE”, “But *I* want a task bar“, “I still don’t like it”, etc.

Together with the release of GNOME 3 the new GNOME developer center was launched today. This is just the first step to make GNOME 3 a great developer platform but I hope it is already a big step!

There is still a bunch of things missing, like proper API documentation for languages using introspection (Javascript, Python) but things got a lot better with the new platform overview and will certainly improve in the future.

I have to especially thank Fréderic Peters who did all the dirty backend work on the infrastructure in the last days & weeks so everything could be launched on time.

However, this wouldn’t have been possible without many amazing people (in no particular order):  Andreas Nilson, Julie Pichon, Phil Bull, Shaun McCance, Daniel g. Siegel, Patricia Santana Cruz, Ekaterina Gerasimova, David King, Jon Nordby, Chris Kühl, Jonh Wendell, Andre Klapper, Germán Poo and P. F. Chimento, hoping I didn’t forget anyone.  And of course the beautiful cities of Berlin and Toronto!

Thanks!

Toronto Hackfest

22. March 2011

Tomorrow will be the last day of the Toronto Documentation Hackfest so I would like to summarize what happened to the developer documentation:

developer.gnome.org

A bunch of tutorial-style demos (online preview) have been added to the gnome-devel-docs though I would wish there were even more. If your favourite programming language is missing demos it would be great if you could add them following the style of the existing demos. P. F. Chimento did a great review of these demos. Thanks!

Germán worked on updating the platform overview and I guess he will blog about the results himself. The website that is currently shown as image on developer.gnome.org should be mostly in a good state though some links need to be checked and I hope the marketing-team will review it once the awesome F?ederic Peters gets around setting up an instance for testing somewhere.

Help on setting up the development environment

Furthermore I created a bunch of wiki pages explaining how to install a decent development environment for GNOME 3. It currently contains information on Ubuntu and Fedora that has to be tested and I would love to see people adding more distributions.

Those installation instructions are linked from developer.gnome.org and the demos itself so we should take care that they always work and install the versions required.

Related to that, Michael Terry from Ubuntu made sure that the gnome3 ppa will have new version of Anjuta, Glade and Devhelp so that people can follow the tutorials and have an easy start on GNOME 3 Development. Thanks a bunch!

Anjuta Help

The Anjuta manual is quite outdated so I stubbed out a new task-based help for it. Unfortunately I won’t have time to fill that with content but it would be great if people would fill this with live. It is really easy with the mallard format and the help of the GNOME Documentation Team.

These and that

Of course, there are plenty of things discussed in a hackfest between the lines like Ubuntu/GNOME relations and GNOME3 in general. As we have people from all side involved it is always amazing how sane everybody is about all this and how few practical problems exist despite all this flame-war.

We switched to the hotel today as the internet connection at the university broke down (they apparently fixed that already…):

For people closely following the development of Anjuta that feature is actually quite old as I presented it on GUADEC but it didn’t get included until the upcomming 3.0 release.

Thanks to GtkBuilder signal autoconnection you actually don’t need to care about manually connecting signal anymore but can defer that job to glade. And as glade is integrated pretty much into Anjuta you also don’t have to care about creating correct prototypes for the signal handlers as you can just drag them into your code:

Before:


After:

This does not only work for for C but also for Vala and Python. It is actually even clever enough to detect if the handler is already present and to add the handler to the header file if the header file is open.

Documentation Hackfest

Apart from that I am sitting at the documentation hackfest in Toronto fixing up the developer demos we started in Berlin and fighting with various programming languages and bugs.

Gnome 3.0 UI – fail!

13. March 2011

Actually I didn’t mean to blog about that issue because I felt discussing things in bug reports is more useful but today it was just too much annoyance. Comments are disable anyway.

In GNOME 3.0 there is no obvious UI how to shutdown your system. All that is available is “Suspend” and “Log out”. “Shutdown” is only available when you hold the “Alt” (or “Meta”) key down which isn’t an obvious user interaction. If you log off there is a chance that you find that you can shutdown within the gdm screen but people using auto-login aren’t very familiar with that screen I guess.

So far, I kind of understood that the designer think that for many devices the power-down button actually put them in a kind of standby-mode, like TVs. That is actually true for the buttons on the remote controls, not for the buttons on the device itself.

However, I assumed that pressing the “Power” button on my laptop would actually show me the power off dialog but instead it suspends the system. This is wrong in two ways:

* Power is the button to switch on/off any device. It switches off my mobile phone, my TV and the even dish washer.
* There is a suspend button on this notebook so this is duplicating and misleading

Of course, I might be less annoyed if suspend (or more precisely wake-up) would actually work

(This is rather long, non-technical and doesn’t have any bling, so feel free to skip it.)

This is my personal analysis of the desktop market and an approach to change it.

Successful Linux Stories

When looking into Linux success stories in the past years it is evident that those are mostly not happening on the Desktop but in other spaces:

  • Android
  • WebOS
  • Servers

Linux has been a successful server operating system with (depending on statistics) 40-80% market share or years now. This is were the good old Linux companies (Red Hat, Novell/SuSE) gain most of their profit. The other two Linux based operating systems are targeted on end-users instead and are shipped together with mobile devices. While Android is created by Google and used by a wide range of device manufacturers, WebOS is exclusively used by Palm. Both are for the most part not free software.

Success stories for Linux on the Desktop are rather rare with few companies and some governments actively pushing it sometimes. The market share is marginal and stagnated mostly over the past years.

Microsoft and Apple

The same theme as with Android and WebOS can actually be seen in the non-Linux world. On the one side there is Microsoft which is (mostly) a software company and sells its operating system to OEMs and on the other side Apple which is exclusively using their operating system(s) on their own hardware. Obviously both works for different companies in different market segments.

The key difference is that Microsoft profits from being the industry standard for desktop computer operating systems and it is very hard for a computer manufacturer to ignore that. This is not god-given of course, but Microsoft is very clever to lock people into their ecosystem with a very good (probably besides usual glitches the best) office suite and good software development tools, including Visual Studio and .NET). MS Office is probably even more important in a operating system decision than the operating system itself. Needless to say that a lot of specialed, in-house and other software is exclusively available on MS Windows.

Apple started from a rather small niche of creating computers for designers and media production to extend its market share to the market of lifestyle-oriented customers. It profited in some cases a lot from being able to design products from the ground with extraordinary hardware and user-friendly software. The in-house and specialized software market is still closed to Apple as the market share is too small but they more than compensated this with innovative devices that aren’t seen as traditional computers.

Are you going to buy a desktop?

The free software world offers solutions for most problems an average user might ever face. But it seems to fail to actually deliver their solution to the end-user. One of the reasons is rather simple: There is no product. Nobody want to buy a desktop, people want to buy a computer, actually they would even like to buy a solution to their problem. But apart from some alternative offers it is nearly impossible to buy a computer with GNOME preinstalled and if you can buy one it is normally not any cheaper than to buy the same hardware with a proprietary operating system and installing GNOME yourself. In addition it is mostly like buying a computer + GNOME but not like buying a carefully assembled product.

So, in conclusion, GNOME offers something that only geeks demand.

Of course GNOME isn’t actually a project aiming for end-users but something that should be integrated by distributions. But even if you replace all occurrences of GNOME in the previous paragraph with “Distribution XY” it remains mostly true.

GNOME OS and the Ubuntu Vision

The term GNOME OS was brought up by Jon McCann at GUADEC ’10 as an idea to bring the different components of a Linux system closer together and remove the barrier between “system” and “desktop” to create a seamless experience. This is certainly needed as a first step to create some kind of product that has unique point of sale but hardly enough to succeed.

In a similar fashion Ubuntu was the first distribution to actively target user-experience and simplicity. While I often disagree with their particular design decisions they still brought Linux on the Desktop to a different and better level. But overall they weren’t able to increase the whole market share of the Linux Desktop significantly.

One of the reasons (if not: the reason) for it is that there is still no way to reach out to the end-user. Even Ubuntu’s program with Dell is hardly visible if you not look for it closely and it is definitely not available at the electronic market round the corner.

Start creating a product: Control the hardware

A big part of the common complains about Linux are basically: “I doesn’t work on my hardware!” And this is actually something the end-user doesn’t need to care about at all for all other platforms, operating systems or products he uses. Ever found somebody complaining that Android is not working on this phone? Ever needed to switch your keyboard layout on a preinstalled Windows machine? No, the keys work as printed on the keyboard. I am sure everybody could add a hundred more examples.

Controlling the hardware has a lot of other advantages of course because you can build a complete user experience. Think of an “Overview”-Button for GNOME Shell or “Add workspace”-Button. Creativity is the key here but I am pretty sure there are enough smart people out there that can create a computer that is all but ordinary featuring free software.

Selling a product also has the advantage that you can make some unpopular but probably convenient decisions for the end-user. Nobody prevents you from shipping necessary codecs or proprietary browser plugins when you can pay license fees for an individually sold item for example. Don’t get me wrong, I don’t encourage you to use that technologies but I am not living in a perfect world and a user-friendly product might mean to allow the user to play DVDs for example. (Ubuntu gets some of this right, btw)

Nevertheless creating and marketing a product like this is definitely not an easy tasks. Still I wonder why it hasn’t been done before. Companies like litl got some things started and I am pretty sure that it is possible to go further. With all the discussions about privacy and security there more reasons for bringing Linux to the Desktop than ever before.

$1.000.000 for the startup, anyone ;)

So, the hackfest is over but I hope you are interested in the results. You should already have read some rumours on Planet GNOME.

Planing phase

Before we actually started to write documentation or improve our tools we clearly needed to define our goals and our target audience. The target audience broke down to various types of developers:

  • Students/Hobbyist
  • Freelancers
  • Companies (products and in-house development)
  • Web developers
  • Teachers

All of those have different motivation and goals but we concluded that we can still fit most of these with the same documentation. Teachers were a really interesting side-discussion as it would be great if GNOME development would be tought in schools and universities but we didn’t know how to dive deeper into that topic.

The other difficult thing was to define which are the components of the GNOME Development Platform. This belongs a bit to the GNOME OS discussion and was clearly something we couldn’t solve in that room but we ended up mostly copying from the release-team proposal here, making some additions.

Central starting point for GNOME Development Platform

Daniel pointed out that here and there people asked him where they can find information about getting started on the GNOME Platform and he couldn’t really point them somewhere.

In the discussion we looked into various development sites (Apple, Django, Microsoft, etc.) to see how they solve that problem. We concluded that such a page is about 50% marketing and 50% information. It has to serve mainly two purposes:

  • Attract people to GNOME development
  • Convince managers that GNOME is the way to go

As there is no better place than developer.gnome.org we put it there. What you see there is no mock-up but an actual screenshot of the site on Fréderics local webserver. The site itself is mostly finished in a joint work between Phil (html mockup), me (Javascript for carousel and search), Andreas (awesome design) and Fréderic (ugly technical details…). It depends on some other stuff in the gnome.org redesign process and some final polishing to really go online and it the information targets GNOME 3 only. It is available in the web-devel-2 module.

10-minute-tutorials

  • Fun to follow while teaching limited subsets of the platform
  • Show various interesting and useful technologies (no “Hello World”)
  • Complete them in your (extended) lunch-break

We wrote five different tutorials at the hackfest and tested them with our GTK+ newbies. In the end, all those tutorials should be available in the five major programming languages (C, C++, Python, Vala, Javascript). If you have other interesting ideas to show off in about 100 lines of code or want to convert one example to your programming language, please contact the documentation team.

As we didn’t want to annoy people with build system issues we decided to use anjuta for the tutorials. Once Shaun adds expandable notes to mallard we might extend the tutorials with some notes how to do the same on the command-line. The tutorials live in the gnome-devel-docs module. Please note that they haven’t been fully reviewed, yet.

There is also draft documentation for installting the required packages to start GNOME development. Please complete this for your favourite distribution as there are only stubs except for Fedora by now.

Problems we couldn’t solve (yet?)

Best pratices: We really also need some more in-deep guides for application development. That should cover basic things (like 5 things every GNOME developer should know) to more in-deep things (explaining the GObject-framework, desktop integration, etc.)

Deployment: This is a non-trivial thing on Linux/etc. as there is no AppStore and also no ecosystem like Windows where you just ship installers. We don’t have an ultimate solution here so what we though about was writing an Anjuta plugin interacting with the OpenSuSE build service to build packages for the popular distributions, while auto-generated debian/ or .spec-files at least for the case where the package contains a single application. Some people pointed out that having a build service instance on GNOME infrastructure for the applications moduleset would be great.

Up-to-date versions of tools: Neither Fedora nor Ubuntu ship the current version of Anjuta which really needs to be fixed. The Fedora guys seem to take the bug report serious though and Phil promised to talk to the Ubuntu people so this will hopefully be solved soon. OpenSuSE is the shiny example to do the right thing here by shipping 2.32.1.

Glade: It’s completly broken for the moment and this is really a show-stopper for 3.0. I hope we will be able to fix that but that really needs people with a lot of knowledge on gtk+. Hopefully Tristan will be able to donate some time on this and others will help him.

Other stuff that happend

  • Frederic put a lot of work into library.gnome.org
  • Phil converted the HIG draft to mallard
  • Andre (who actually just happend to be around…) started to convert the evolution docs to mallard
  • Konstantin just happend to ring on Sunday morning because he read about the hackfest on Planet Ubuntu and was instantly recruited by the documentation team. It’s nice to see random interesting people showing up!

I hope everybody had four fun and productive days in Berlin and that things will continue to improve. Thanks again to Openismus and especially Kat for the fantastic hosting and the GNOME Foundation for making this happen. Thanks to everybody who attended. Just remember that people don’t mind having 22-hour flights just to attend a four day hackfest – that’s amazing commitment!

Hackfest Update

4. December 2010

Day 1

We ended up doing a lot of planing of how to organize things and ran into quite some discussion. One of the surprisingly difficult points was to define what the “GNOME Platform” is. In the end we came up with this (and a lot more):

  • Create a central entry point for developer documentation
  • Add a platform overview
  • Write 10-minute-tutorials for the most important libraries with interesting examples. Of course we won’t be able to create all of them (especially not in out five target languages: C, C++, Python, Vala, Javascript) but we try to come up with some that can be extended over time.

Day 2

Today (well, yesterday) we finally started to get things done. Phil and Andreas worked on creating the platform overview page and templates for the 10-minute-tutorials. Most of the others started to write cool small applications in different languages show-casing our platform and make tutorials out of what they wrote.

After lunch, Shaun gave a very nice introduction to mallard and André decided to port the evolution docs to mallard, but he didn’t finish it (yet).

The worked quite nice for C and Vala but Jon and Jonh ran into many introspection issues and Jon got really annoyed by trying PyGI with cairo but he is making progress now.

In the meantime, Fréderic worked on secret improvements for library.gnome.org but I will leave it to him to present those.

Some impressions:


After we had a great dinner (thanks Openismus) with most people already there yesterday, the hackfest will officially starting today. Everything is well prepared except that weather which is super cold here in Berlin.