Save the world – waste less pixels

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.

gtknotebook

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.

Anjuta 2.26.0 released

file-treeSo, yeah, we relaesed another version some days ago. You may want to read the previous posts about the new features here. Most notibly in the final version was the addition of  version control information to the file viewer. You can now see the status of your files using an emblem system like the famous TurtoiseSVN for Windows. It is actually meant to also work for git and we hope to get this done very soon in the next stable versions. There are some bugs preventing it at the moment. Otherwise everybody has done a great job and we significantly reduced the amount of bugs (from about 120 to 70, exluding enhancements)

As usual you can get the lastest version here:  http://download.gnome.org/sources/anjuta/2.26

Another interesting thing for some people is probably a new alpha version of the vala plugin. It’s still a bit buggy and incomplete but I would invite some of the vala developers out there to try and improve it.  It’s completely written in Vala so you can have some fun in this area!

Happy coding!

Filtering in gnome-system-log

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:

Screenshot of gnome-system-log highlighting all gdm messages

Screenshot of gnome-system-log highlighting all gdm messages

The filters are based on regular expressions and should thus be quite flexible. The work was done (and paid) by Openismus Gmbh!

Dear lazyweb

Has anybody experienced with gtk+ an idea about this bug?

Thanks!

P.S.: Hello Planet Openismus! And yes, I am working on this hackergotchi thing…

libgdamm 3.99.0 released

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!

Google Summer of Code mentor summit

So after Google was so kind to pay me a flight from europe to the US and back I attended the Summer of Code mentor summit 2008 in Mountain View/CA.

The whole (un)conference was absolutly awesome with cool session interesting talks and tons of great people around. It is really nice to meet open source hackers from so many different projects and cultures. Leslie did a great job to make everybode happy in and outside the conference. (And yes, the Google caféteria is probably one of the best in the world).

Lot’s of people ask me why GNOME only send one mentor and I really think that is a pity. So please, if there will be a SoC in 2009 (which is likely) and you mentor some student then go to the mentor summit and I am sure you will not regret it.

After the summit some nice people from the tor project brought me back to San Francisco and showed me their “Hacker space” and some nice Burrito restaurant. This is my last day here now in one of the coolest hostels of the world and I have to say that I enjoyed it a lot.

Looking forward to another 13 hours flight and 8 hour timeshift ;-)

Anjuta startup time

Anjuta start-up is really quite slow, taking about 5 seconds even if no session is loaded. So, I tried to find out what happens and why it is slow, using Frederico’s tools:

1.5 seconds => ld for linking about 80 libraries (will be improved by removing the deprecated bonobo/gnomeui/gnome-vfs stuff)

1.5 seconds => gtk_icon_theme_get_default()

2 seconds => loading the plugins

So, I think there is not much to improve for linking other then to remove some dependencies. For the plugins loading I hope to make some improvements but these are pretty big libraries so it might be difficult. But what annoys me is that the loading of the icon cache takes so long though it should actually get a shared object from the screen. Or am I wrong here? This is no cold start-up, the GNOME Desktop was already fully up. Any chance to shorten this time?

Update: alexl points out that it is because of the gtk-icon-cache being out-of-date and indeed running gtk-update-icon-cache on several directories fixed the issue. Anyway, I wonder if gtk+/gnome/something else should check for an up-to-date icon theme in the background and update it when idle.

Anjuta 2.5.90 released

Anjuta team proudly announces the first unstable release Anjuta
DevStudio 2.5.90 that will eventually lead us to stable 2.6.0 release,
code named Cyclone. This is an unstable release, so be sure to adjust
your expectations accordingly. This is release is for upcoming GNOME
2.23.90 release.

There has been a huge changes done in this release from the last one,
both in terms of adding new features and improving existing ones. Also
large amount code cleanup to remove use of deprecated APIs was done.

Most important changes:

  • New git plugin
  • Improved build plugin allowing out of source builds and different configurations for debugging and profiling
  • Autocompletion for the gtksourceview editor

Thanks for this release to (alphabetically):
Halton Huo
Sabastien Granjoux
Massimo Cora
Arun Raghavan
Marc Lorber
Johannes Schmid
Ignacio Casal Quinteiro
Louis-Francis Ratté-Boulianne
Yuriy Penkin
Abderrahim Kitouni
James Liggett

and on Localizations:

Clytie Siddall,
Ignacio Casal Quinteiro
Jorge Gonzalez
Yannig Marchegay
Djihed Afifi
Yuriy Penkin
Yannig Marchegay
Johannes Schmid
Ihar Hrachyshka
Jovan Naumovski
Duarte Loreto
Theppitak Karoonboonyanan
Yair Hershkovitz
Nickolay V. Shmyrev
Ilkka Tuohela

Download: ?http://ftp.gnome.org/pub/GNOME/sources/anjuta/2.5/
Screenshots: http://anjuta.org/screen-shots
Features: http://anjuta.org/features

Dependencies:
=============
gdl: http://ftp.gnome.org/pub/GNOME/sources/gdl/2.23/
gnome-build: http://ftp.gnome.org/pub/GNOME/sources/gnome-build/2.23/

Translations updates:
=====================
ar, be@latin, de, es, fi, gl, he, mk, oc, pt, ru, th, vi

Updates and bugfixes:
=====================
* Fix #536372: Write __MAX_BAUX instead of __MAX_BAUD
* Fix a crash when GNOME Terminal is not installed
* now search for symbols can be done also in global tags. Added a new
parameter
to search function and adjusted dependencies on different plugins.
* Put tables.sql into distribution
* Fix #536889 anjuta doesn’t pass “make check”
* Fixed #537398 – crash in Anjuta IDE: Closed project
* Fix #537134: critical warnings tools->plugin_deactivate
* Fix #534523: anjuta parses filenames from make wrong
GMatchInfo need to be freed even when regex fail in build_get_summary
* Fixed a possible bug where the project-manager plugin is deactivated
twice.
* Fix #536375: libsocket not included cause build fail on Solaris
* Add new scratchbox 1 plugin implementing IAnjutaEnvironment
* Enabled tooltips for recent files to identify full paths.
* Ported file-manager to gio
* Fix #530215 – Have a message area like gedit
* Using glib/gi18n.h instead of libgnome/gnome-i18n.h
* Fixed a crash on file selection. Gave enough buffer for the formated
time print.
* Restore text focus on switching editor with ALT+X and
navigating from local-symbols view.
* Fixed #528699 – Auto-indent ignores spaces-per-indent settings
* Fix #538798: UI selected tab document differs from real one
* Fix again #538798: UI selected tab document differs from real one
* Fix #538921 – Duplicated folders
* Fix #539726 – Completing port to GIO
* Fix #513156 – Get rid of libgnome(ui)
* Fix #538443 – Missing files in POTFILES.in
* Fix #538906 – Enable state “Max actions” when “No limit” toggled
* Fix #449620 – Implement autocompletion for gtksourceview editor
* Fix #540731 – Port editor to gio
* Fixed loading of files from the command line
* Fixed crash when double-clicking on a breakpoint.
* Change (nearly) all interfaces to use GFile* instead of uris
Document all shell variables
* Fixed #541313 – Crash on saving file
* Fix #515954 – create_global_tags.sh: wrong anjuta-tags path
* Fixed global tags loading
* Fix bug #538217: Run in terminal option isn’t remembered
* Fix bug: Debugger sources directories isn’t remembered neither
* Fixed “Hide binary files”
* Fix #539551 – AutoComplete doesn’t work
* Fix #539551 – AutoComplete doesn’t work
* Fix #357697 – readonly file can be edited
* Fix #511762 – Multiple selection don’t work well when hitting enter
* Fix #535173 – UI isn’t updated on closing all documents
* Fix #500962 – Further icons
* Fix #475244 – AC_SUBST() not needed after PKG_CHECK_MODULES()
* Fix #518594 – Get rid of .anjuta and follow fd.o specifications
* Fixed #541689 – Filter buttons added
* Fixed symbol-db plugin for threaded libgda calls
* Show all completions even when the editor makes own suggestions
* #541941 – Crash on searching with regular expression
* Fixed #542838 – create_global_tags.sh is creating tags in root
directory
* Added ‘continue global tags scan after abort’ feature.
* Allow to build project outside source directory (fix #540782)
* Fix crash on closing project due to the previous patch
* Add more options for build command: parallel make, keep going on error
and keep message untranslated
* Fix another crash on closing project with a file outside project
* Fix #375640: Allow user to stop a build in progress
* Fix #534566: expand shell variable in configure parameters
* Fix #543889: Crash typing in configuration field
* Fix #522825: Opening files from shell disable build->compile menu
* Fix configuration name not displayed, error when compiling target
outside project
* Fix #543978: GPL license shown in COPYING file irrespective of
which license selected
* Fix #544190: Crash double click on item in stack trace
* Fix #530630: Scintilla hand up after hit return
* Fix #544841 – Cursor set on a wrong line when I click
* Fix several memory leaks in build plugin
* Keep all command data in one object
* Fix #544495: Memory leak
* Avoid using the same function name in interfaces implemented
by the same object to avoid trouble with bindings
* Fix crash on 64bits machine due to the previous change (thanks
Ignacio)
* Fix #543149 Project doesn’t rebuild when file is changed
* Bug #529270 – GSoc: Git Plugin, alpha release 3.
* Add header file to expose libanjuta versioning information.
* Add a preference for the new visible whitespace feature of
gtksourceview
* Pull GIO into the libraries that libanjuta links against. (Bug
#546394)
* Fix #542432 – Svn diff doesn’t work correctly
Convert the output of svn diff from localce to utf-8
* Fix #545673 – A bug in isymbol_get_file function
Use g_file_new_for_uri() instead of g_file_new_for_path
* Fix #546620 – Build- and make dist fixes (with some small changes)
* Fix #420279 – INS and OVR do not immediately change in status bar
* Save files in their original encoding
* Use a fallback dialog if the document was not added to the
document-manager
yet (#545557 – Crash pressing on message view)
* Fix #493818 Close project with opened target properties dialog opened
crash Anjuta
* 545624 – Toolbar broken
* Lots of improvements to symbol-db
* Use uf8_strlen instead of strlen to avoid selection problem with
non-ASCII search strings (see #440637 comment 15)
* New git plugin (Anjuta GSoC project)

Happy coding!

GUADEC in retrospection

GUADEC

GUADEC itself was great, nice people, awesome location and fantastic weather. Thanks to everyone making this possible. I have a little thing to critisise though: IMHO the schedule had some issues! Some really interesting talks were scheduled in the Opening Hours or in the After Hours which not really many people attended. On the core days, some important talks happened at the same time and I don’t think it’s a good idea to schedule anything against the Lightning talks. Some other people I talked to had a similiar opinion but that may of course still just be a small group. Anyway, I would love if some experienced GNOME people could check the schedule for such conflicts next year.

Party

  • Opening Cocktails: missed due to great view from appartment…
  • Boat Party: Maybe the best GNOME party ever, I doubt that everybody can remember the whole evening. Talked to lots of people though sometimes conversation was rather off-topic. Thanks to the people at Collabora for organizing the event!
  • Closing Party: Well, either I was to tired from the day before or it simply wasn’t that good.

GNOME 3.0 (aka 2.30)

The last days I thought a lot about what our goal for 3.0 should be and how we could probably achieve them. First, I think the decision to break API/ABI is good in general as it will remove maintaining tasks for old and deprecated modules from some very important people.  Doing this together with Gtk+ 3.0 also sound very reasonable.

Schedule: To achieve more than just the usual small steps between our releases and instead have the time for some bigger things I would propose to leave out GNOME 2.28. That does not mean there will be no GNOME 2.28 release but that there will be no new features but of course string additions, documentation additions and bug-fixes. That would leave developers a reasonable timeframe to get some bigger changes in and port everything to 3.0 in time.

Gtk+ 3.0: Most of the things that Imendio proposes sound reasonable but we should really try to get CSS-like theming because it will attract much more designers to create themes.

Goals: Define clearly now what our goals for GNOME 3.0 are and how we want to achieve them. Maybe the best thing is to have a brainstorm place (on the wiki) and somebody who organizes those ideas in a way that the community/release team can make decisions based on clear concepts. Some of the things that are important to me:

  • Better file handling: Frederico had some very nice ideas on that and I think he is right with most of the things he proposed. Of course it would be cool to have a versioned file-system but we haven’t yet and of course some UI ideas might not be perfect. Who cares? Let’s implement what we can do now immediately and enhance it when we have more technologies available. This is something that does not really have to wait for 3.0
  • Rethink the panel: Our current panel is not really a modern user interface and as Frederico also said, you have to click too often. And it wastes too much screen-space. I don’t have the perfect solution yet but having those fading sidetabs might be an idea but I am sure there are some other interesting things to think about. I would really encourage people to create mock-ups for a future desktop design.
  • More power to the WindowManager: I don’t really like the idea of having an entry in the titlebar but it’s really time to use the available space for something more useful than the window title. Another thing I would love to have is a “Minimize to Icon” button.
  • Better default theme: Clearlooks is nice but if you compare it to other desktop environments it looks really conservative. I don’t like the idea of being conservative…

The next step to world domination

Postcard with GNOME stamp

Brought to you by Michael, Mathias and the nice people at PTT (Turkish postal service).