You are currently browsing the tag archive for the ‘Patch’ tag.

…my first approved bug report for an open source project. I am a little bit proud of it. 🙂 So for the sake of documentation I want to write down what I’ve done.

The task was to add a feature to Librsvg which enbles developers to get the size of a SVG element. Robert Staudinger, the developer of the gtk-css-engine, wants to have this feature, so artists can provide a single SVG file instead of several files to describe their theme.

Librsvg had already a function but it only provides the size of the whole SVG file not of a single element. So the first thing I’ve done was to have a look on the already existing code. My hope was to get the feature implemented by adapting the already existing code. This worked only at the first sight. There have been several inaccuracies which became more obvious when I’ve used the function on elements which uses BĂ©zier curves to define their shape.

So I had a further look on the code especially on the part where the function determines the size. It came out that the function applies the same function on lines and curves which is obviously the wrong way to determine the size of a curve.  So I wrote an email with possible solutions for the problem.

The maintainer of Librsvg preferred the mathematical approach and so far it was the only opinion I was aware of. So I started to find a mathematical formula which determines the height of a BĂ©zier curve and implemented it. The problem with a mathematical approach is that you also have to keep the stroke width in mind because a mathematical formula assumes an infinitesimal small stroke width. So the new function worked well as long as your lines were not too thick.

Emmanuel Pacaud pointed out that it doesn’t make sense to reimplement all the functions to determine the bounding box when Cairo does these things already. Cairo is the backend used by Librsvg to draw the images. So I changed my code according to Emmanuels suggestion and my second solution I had pointed out in my mail.

Now the code passes a dummy surface to the drawing function of Librsvg. So every time one wants to have the size of an element of a SVG file Librsvg draws this specific element and returns the bounding box we get when we put the bounding boxes provided by Cairo together. Easy, isn’t it? 😀

After bothering the maintainer for several weeks he applied the patch just yesterday.

With these few lines about my first patch I want to finish my post and wish you a good start into the following week!

Cheers!!! Hej dÄ!!!

…hat es mich da wohl nach der Party, die ich im letzten Blogpost erwĂ€hnt hatte. Zur Arbeit konnte ich zwar schon gehen, der Kaffee wurde jedoch durch Tee ersetzt, um meinem Zustand Rechnung zu tragen. Wie dem auch sei, ich bin auf dem Wege der Besserung und hoffentlich spĂ€testens nĂ€chste Woche wieder voll einsatzbereit.

Meinen Chef hat’s auch umgehauen, der ist schon die ganze Woche nicht da und wird wahrscheinlich erst nĂ€chste Woche wiederkommen. Derweil habe ich angefangen einen Patch fĂŒr librsvg zu schreiben, der wird noch fĂŒr ein anderes Projekt gebraucht, dass nur indirekt mit mir zu tun hat. Mal sehen, eine kleine Ungereimtheit tritt noch auf, aber sonst erfĂŒllt er schon seinen Zweck. Ich hoffe bis morgen noch ein paar Hinweise zu bekommen, damit ich den Patch fertigstellen kann. Mikael und ich mĂŒssen dann eh nochmal schauen, was ich noch so machen soll, denn es gibt ein paar Projekte die in meine Richtung gehen, aber schon sehr viel weiter fortgeschritten sind. Da macht es dann <sarkasmus>u. U.</sarkasmus> Sinn sich diesen anzuschließen, aber das werden wir dann nĂ€chste Woche besprechen.

Nun hatte ich es zweimal geschafft den IHT zu lesen, aber ich hatte noch Literatur aus Deutschland mit im GepĂ€ck. Wenn möglich soll man ja eine Sache zu Ende bringen, die man einst begonnen hat, deswegen lese ich momentan wieder ein philosophisches Werk, Vom Kriege von Carl von Clausewitz, ein militĂ€r-historischer Klassiker. Viel eingĂ€nglicher als die Abschnitte eines anderen Werkes, die ich bisher gelesen hatte. Aber gut, das Thema mag es vielleicht gar nicht zulassen, im Gegensatz zu einer philosophischen Betrachtung, die die ganze Welt im Blick hat. Wie dem auch sei, ich mag ja ganz besonders bissige Stellen und Schopenhauer zeichnet sich besonders durch diese aus, wenn er alles was mit Hegel in Verbindung gebracht werden kann, ein anal oder Anal an- oder vorhĂ€ngt. Es gibt noch viel mehr und durchaus feinsinnigere Beispiele. Wie dem auch sei, zurĂŒck zu Vom Kriege, da möchte ich ein Zitat nicht vorenthalten, das von Clausewitz’s Meinung zu der preußischen Niederlage gegenĂŒber den Napoleonischen Truppen widerspiegelt:

Als im Jahre 1806 die preußischen Generale: Prinz Louis bei Saalfeld, Lauentzien auf dem Dornberge bei Jena, Grawert vor, und RĂŒchel hinter Kappeldorf, sĂ€mtlich mit der schiefen Schlachtordnung Friedrichs des Großen sich in den offenen Schlund des Verderbens warfen, war es nicht bloß eine Manier, d.h. VerkĂŒnstelung, die sich ĂŒberlebt hatte, sondern die entschiedenste Geistesarmut, zu der je der Methodismus gefĂŒhrt hat, womit sie es zustande brachten, die Hohenlohische Armee zugrunde zu richten, wie nie eine Armee auf dem Schlachtfelde selbst zugrunde gerichtet worden ist.

Vernichtend!

Ach, habe ich schon erzĂ€hlt, dass es am 23.10. fĂŒr drei Tage nach Göteburg geht? Wahrscheinlich vergessen, aber was soll’s, ich bin schon gespannt, dort werde ich ein paar Kollegen real life kennenlernen. Ich freu’ mich schon… oh… ich muss noch Geld ĂŒberweisen!

Bis denne!!! Hej dÄ!!!

Vellocet Club

A blog not only about my time in Sweden and МiĐœŃĐș but also about the things I am concerned about.

RSS Dinge, die man so liest…

  • An error has occurred; the feed is probably down. Try again later.
August 2017
M T W T F S S
« Aug    
 123456
78910111213
14151617181920
21222324252627
28293031