6. December 2010
So, the hackfest is over but I hope you are interested in the results. You should already have read some rumours on Planet GNOME.
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:
- Companies (products and in-house development)
- Web developers
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
- 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
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!
9. November 2009
(Note that the buttons here are just examples and this was done mainly for testing purposes).
Why could this be useful:
- Firefox-style “Add tab”-buttons
- Saving space when dealing with notebooks that have a constant (and low) page number
- probably much more
There is nothing in the HIG yet of course and you should use it with care. I hope it’s useful though.
Credits go to Carlos Garnacho for the original patch and to Mathias Clasen for reviewing my patch and adding GtkBuilder support. Also thanks to Openismus for letting me finish this!
5. September 2009
6. May 2009
As Murray already mentioned we updated the Clutter Tutorial over the last weeks for the upcomming Clutter 0.9/1.0 release. Clutter 0.9 makes some hacks obsolete that were necessary to archieve some functionality in the past so we could concentrate more on straight-forward ways this time.
The tutorial features some new sections:
- The new GtkClutterViewport widget allows scrolling of GtkClutterEmbed widgets and is decribed in the new Stage Widget Scrolling section.
- Some notes were added for using Timeline markers.
- ClutterAnimation has replaced the obsolete ClutterEffects API and thus ended up in the new Animations section. This section also explains how to use ClutterAlpha properly.
- The biggest new API is probably the new ClutterText widgets that allows use-cases from a simple label over a single-line entry to a full-featured multi-line text input box.
Unfortunately some links to the API documentation are not working yet because the clutter-gtk API documentation for 0.9 is not yet available online. The tutorial is also available as pdf.
Development of the tutorial happens in the clutter-tutorial module on GNOME git.
31. March 2009
Yesterday, I started to implement Murray‘s/Mathias‘ idea to add the ability in GTK+ to add a widget beside the tabs of a notebook. This makes of course only sense in application where only a few notebook pages are used usually and there is a lot of space left in the tab area. But of course it will also allow to add little combo boxes in this area like Mozilla Firefox, to give the user some additional features for the notebook navigation.
The basic code is now in place and it is less complicated then I expected. Anyway, there is still some stuff to do:
- Position of the widget (like GTK_PACK_START/END)
- whether the widget should take the whole space available (GTK_EXPAND)
The API is pretty simple up to now and only consists of gtk_notebook_set_tab_widget (). Patch coming soon to your nearby bugzilla.
6. March 2009
Since viewing log files can be some kind of annoying when you are only interested in a special problem I wrote a patch to filter/highlight specific sections of a logfile with gnome-system-log. A screenshot says more than thousand words:
The filters are based on regular expressions and should thus be quite flexible. The work was done (and paid) by Openismus Gmbh!
25. February 2009
11. November 2008
After working the last couple of weeks for Openismus on updating libgdamm to the new API of libgda 4.0 I can finally announce libgdamm 3.99.0, the first unstable release of what will eventually become libgdamm 4.0.
It breaks API with the existing libgdamm 3.x line and replaces various classes with superior implementations. This should bring a lot better performance. Thanks to Vivien Malerba for his great work on libgda and for fixing all the C++ relevant bugs I filed.
You can download libgdamm here: http://download.gnome.org/sources/libgdamm/3.99/
Now, we can finally start to port glom to the new API and fix bugs!
20. February 2008
As I am usually far to lazy to RTFM I had to learn how to add externals definition to subversion the hard way. But as other might probably need it, too, here is how it works (mind the dot at the end…):
svn propset svn:externals "<directory name> -r<revision> http://svn.gnome.org/svn/yourmodule/trunk/your_directory" .
The problem is that after that command it will not work because you have to commit the property change first:
svn commit -m "Changed external property"
So here is the final example:
svn propset svn:externals "eggtoolpalette -r853 http://svn.gnome.org/svn/libegg/trunk/libegg/toolpalette/" .
svn commit -m "Added eggtoolpalette"
And now you will have eggtoolpalette revision 853 in your tree. Thanks to herzi for helping me solving this problem on IRC.
29. January 2008
Joining the recent discussion about Ubuntu packaging policies I would really prefer if they would update their versions to the stable branch. For us developers it’s a lot of work to backport things to the stable branch and fix the major bugs in it. We do that because we don’t want to force people to use unstable versions and because the stable version has lots of users and therefore lots of testing. In general it is unlikely that a x.0 version will ever be released without some minor/major bugs because the development version has never enough testers and something will be missed. Anyway, we do more stable releases for the one and only reason that distributions can update their packages and give their users better software. If you don’t trust us that our new stable version won’t brake everything than we really can’t help you that much.
Anjuta 2.3.3 was released yesterday and this will mean that UI should now be frozen. We did a lot of bug-fixing in the last weeks. Thanks to all those people testing and reporting bugs and writing patches. Also thanks to my two GHOP Students, Philipp Kerling and Boleslaw Kulbabinski for their work and I hope to see future constributions from them. [EDIT] Forgot that I wanted to ask for some volunteer artists to have a look at #511000 and maybe also #510047.
In the meantime I have been working on the Glom drag & drop stuff for Openismus. Unfortunately there is still nothing that could be shown but be sure that I will post a screencast once it is finished.
There has been a lot of discussion about locking upstream translations in Launchpad. Many translation teams agreed here but we probably have to sent some official request to the Launchpad people. I hope that is no big deal as we usually have a good relationship with Ubuntu.