Older blog entries for herzi (starting at number 41)

2 Jun 2005 (updated 2 Jun 2005 at 10:35 UTC) »

Post-Guadec

While trying to catch up I found an email from a 16 year old kid telling me something like that "Hi, am 16 years old, I'd like to hack servers and modify the files on them; somehow I found that you're related to hacking, can you help me?"

Need to tell him that being a script-kiddie is not what he wants...

For those of you who understand German: the screenshot

Complex text layouts

When I was looking for some thing wrt complex text layouts, I came up to the GTK+ guys and asked them whether they have seen some code to layout text in some complex ways (e.g. float around some image). Matthias gave me some hints and finally I found the Text Widget (which is not what the name promises).

The code generally does this: create some polygons; one which may contain text, others that should not be covered by text. Then it creates lots of GnomeCanvasText items and places them over the polygons arranged in a way that enables text floating around the polygons (so Matthias, you have benn wrong with the hint that it is a patch for pango; but that not so important).

Finally I got that code running, added some optimizations and got rid of some C++ code (now it's only plain C - which it has been only up to 80% before). The thing is now quite fast - even on my powerbook (that things is really a LOT slower with this application than the x86 machines I've been testing this on).

Next steps are: split the code into more logical parts (the "event" event handler for the canvas items is not really nice this way); remove the global variables and then start creating some structures tha can do text-layout in a way that PangoLayout can.

(Before you ask for the sources let me mention that they look really ugly at the moment and that I need to resolve a license issue before I publish my modifications, sorry)

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).

32 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!