Older blog entries for herzi (starting at number 39)

20 May 2005 (updated 20 May 2005 at 14:22 UTC) »

Generic Undo/Redo:

I took a look into the web and found the gundo project ("A Multilevel Undo/Redo Facility for Gtk"); I ported this from GTK+ 1.2 to GTK+ 2.0 and now I'm starting to make it look the way I would want to use it in an application:

* have an Interface that can be implemented by applications document classes

* have some GtkToolItems for undo/redo that can be used for undo/redo widgets in toolbars

* have custom GtkAction elements for easy embedding into the application, etc

GUndo still only lives on my computer as I don't think that my changes are yet as clean as I want them to be. To be published soon...

The last weeks I've been looking for some special things that I might want to use for criawips:

Automated Software Testing

When I found Tim's gerd I was quite impressed. Using it, you can record GObject-Events and use them to replay an application session. This could be very cool for both testing and demonstration puposes as one can easily record one session and launch the application later with that information (this way you have a much better i18n as for video recording things). Gerd is in the GNOME CVS tree (module "gerd").

30 Apr 2005 (updated 30 Apr 2005 at 16:17 UTC) »

Finally I have a weekend with lots of time to spend on stuff I like. Three days ago I started a small project about code generation, my aim: deliver a small tool that creates GObject code to handle a Document Object Model (DOM). Well, there's alreday stuff like gdome... one might say, but my aims differ from gdome such as I don't want to have one generic API to access the DOM (which can be bloating your source code by adding code that's not as beautiful as possible).

Talking about presentation stuff, I want to achieve this:

  1. Generate a special API for one XML Schema
  2. Provide load/save and (un)seriallization code for this

So this should result in something like this:

  • Have an object-based API to access the DOM
  • Reduce coding erros by automatically generating the code
  • Provide automatically working load/save support for files

So I could end up with some XSLT sheets to convert other XML based format into the criawips format and have a nice API for the application and for importers of other formats.

The result (generating classes with xsd:string and xsd:boolean attributes) can be found at my website.

Hmm, seems like Novell has opened a really interesting project. Now my question: when will MyRealBox.com be running Hula? I'd really love to test it without a local setup.

Lars: you should really avoid using PHP arrays, just take the step, increase the dependency of PHP to 5.0.x and enjoy objects (which are a LOT saver to use than arrays - imagine you want to change an attribute name and you had to try to replace all array indices by the correct ones). If you don't want to, you should at least define some constant as the idices so there's just one place to replace such things.

Luis: Thanks for the link to S5, I already knew it, but I lost the link. I think that we should go this way once we work on html export.

Local GNOME community pages

Ronald: First of this, congratulations to your plans to build up a local GNOME-nl community.

Rodrigo: It's nice that you share your GNOME-es experiences, so will I with mine of GNOME-de (GNOME Deutschland). GNOME-de is older than my string interest in GNOME, so I can only tell you what happened since I realized theres #gnome-de. There are lots of small and some bigger GNU/Linux events in Germany, so we try to represent GNOME as strong as possible, it's important that you have some people who like presenting talks (I've seen a CeBIT presentation from the Nat 2003 and while listening one really felt his motivation). Booths on such events are great to make contacts to people, #gnome-de has been some quite small elite group of about 10 people (in channel-rush-hours) when I joined that channel, in the meantime it have become 15 at 6am and up to thirty in rush hours. These people are really important because one can present small hacks and get feedback of people one (virtually) knows before getting it out into the public. So, besides IRC (as Rodrigo mentioned, which is correct AFAIS), local events are important too, because such a channel works great as a news aggregator (people discuss topics there) and as a small GNOME community where people might know others from real life, which is pretty nice to get motivated to fix issues of smaller project; I really enjoy the feedback from the #gnome-de channel on criawips, my presentation application because I know the people like to test software and propose improvements (and criticism of people one almost knows is better that criticism of people one doesn't know).

Rodrigo, you said that a lot of started projects failed, I don't think that every cancelled application means failure. I have been participating on agnubis two years ago. I have to admit that the application itself failed, but in my opinion the project succeeded, because it left me with the knowledge of things that worked out bad and with more motivation to come again and finally develop my presentation application. So, successful projects are not the only ones being successful :)

Ronald: please show some sample code, e.g. how do I get stereo sound out on my 5.1 system? One simple gst-launch command line. The stereo-to-surround-sound feature of mplayer has been the last thing that kept me using it (I'd love to volunteer for tests as a day-by-day-user of such a feature).

Criawips is quite well progressing now, I think we can really release version 0.1.0 in time (read: until the end of the year). I just committed a patch that enables borders for blocks on slides, so people can actually see the borders of the text elements. Now we just need to implement focus/cursor handling and we have a basic version of slide editing available.

Wow, this has been a very successful weekend so far. I started to work on criawips again this week (motivated by the engagement of the other contributors) and see what I did. I have had three local development trees on my machine, so I went ahead, fininshed the new debugging code (#1), checked it in, finished the rendering re-organization (#2), check it in too and I have been looking for a bug in my tree dedicated to the reintroduction of glade for the main window (#3). The bug got squashed, the code checked in and I have only one development tree (aka HEAD).

In the meantime Ezequiel made some progress on the save operation which is pretty cool, though it showed up a bug in libgsf which has been fixed in CVS. Unfortunately Jody just released a new libgsf version some days ago (including the "gsf gnomevfs can follow symlinks" patch), so I will wait for the next release to depend on.

Unfortunately I realized that my gdb on the Powerbook (Ubuntu Hoary) is broken, I should provide a bug report for this. First I thought that it might have been some broken memory stuff, but a reboot (the first one for 24 days) did fix only other issues.

Now it's time to relax because I had a very hard day, hacking to 3am, sleeping to 8am, doing sports, hacking, going to bed now.

30 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!