<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Abstract nonsense</title>
	<atom:link href="http://blogs.gnome.org/snark/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.gnome.org/snark</link>
	<description>Snark's gnome blog</description>
	<pubDate>Sat, 11 Oct 2008 19:11:43 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>This is how things work!</title>
		<link>http://blogs.gnome.org/snark/2008/10/11/this-is-how-things-work/</link>
		<comments>http://blogs.gnome.org/snark/2008/10/11/this-is-how-things-work/#comments</comments>
		<pubDate>Sat, 11 Oct 2008 19:11:43 +0000</pubDate>
		<dc:creator>Snark</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/snark/?p=41</guid>
		<description><![CDATA[What things am I talking (writing?) about?
First, of open source software : Howard Chu of openLDAP fame stumbled on ekiga and found its LDAP support too bad for his taste (to my defense I would say it didn&#8217;t work that bad with ekiga.net which itself isn&#8217;t a real LDAP  ). So what do you [...]]]></description>
			<content:encoded><![CDATA[<p>What things am I talking (writing?) about?</p>
<p>First, of open source software : Howard Chu of <a href="http://www.openldap.org/">openLDAP</a> fame stumbled on <a href="http://www.ekiga.org">ekiga</a> and found its LDAP support too bad for his taste (to my defense I would say it didn&#8217;t work that bad with ekiga.net which itself isn&#8217;t a real LDAP <img src='http://blogs.gnome.org/snark/wp-content/mu-plugins/tango-smilies/tango/face-wink.png' alt=';-)' class='wp-smiley' width='16' height='16' /> ). So what do you think he did? He reported the problem. And how did he do it? He checked for already existing reports &#8212; and found them. And then? Well, then he provided nice patches, asked for help on the source organization, made better patches, got them included&#8230; and now we&#8217;re ironing out the few problems with the new improved code.</p>
<p>Second, since almost all LDAP clients are broken, ekiga&#8217;s LDAP code is now a good example of correct code, which others <a href="http://www.symas.com/blog/?p=38">should study</a>.</p>
<p>I can&#8217;t help to be sad that ekiga only came after that many softwares on the list of things he tried : it&#8217;s been around and working since years! Let me repeat : gnome has had working VoIP since years!</p>
<p>PS: I hadn&#8217;t blogged since long&#8230; the site has been updated and the preview just opens a blank page : I hope the layout will still look good.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/snark/2008/10/11/this-is-how-things-work/feed/</wfw:commentRss>
		</item>
		<item>
		<title>3.0 is coming near!</title>
		<link>http://blogs.gnome.org/snark/2008/09/10/30-is-coming-near/</link>
		<comments>http://blogs.gnome.org/snark/2008/09/10/30-is-coming-near/#comments</comments>
		<pubDate>Wed, 10 Sep 2008 16:59:57 +0000</pubDate>
		<dc:creator>Snark</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/snark/2008/09/10/30-is-coming-near/</guid>
		<description><![CDATA[Today I closed the biggest bugs on my TODO for 3.00 : those about the avahi support. I needed some input from the avahi developpers to make things work, but now all is ok.
If things go well, we&#8217;ll be in time for the next gnome release &#8212; but notice that just five minutes after my [...]]]></description>
			<content:encoded><![CDATA[<p>Today I closed the biggest bugs on my TODO for 3.00 : those about the avahi support. I needed some input from the avahi developpers to make things work, but now all is ok.</p>
<p>If things go well, we&#8217;ll be in time for the next gnome release &#8212; but notice that just five minutes after my last post, Matthias was finding big problems and postponing was considered&#8230; beta testing can find problems, after all.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/snark/2008/09/10/30-is-coming-near/feed/</wfw:commentRss>
		</item>
		<item>
		<title>It looks like we&#8217;ll make it!</title>
		<link>http://blogs.gnome.org/snark/2008/08/29/it-looks-like-well-make-it/</link>
		<comments>http://blogs.gnome.org/snark/2008/08/29/it-looks-like-well-make-it/#comments</comments>
		<pubDate>Fri, 29 Aug 2008 17:21:49 +0000</pubDate>
		<dc:creator>Snark</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/snark/2008/08/29/it-looks-like-well-make-it/</guid>
		<description><![CDATA[It seems we won&#8217;t miss another gnome release, and be able to push out ekiga 3.00 out! Of course, there are a few problems to fix yet, some features which won&#8217;t make it, but the biggest are there already : it would be a shame if there were none to add in subsequent versions&#8230;
Unrelated topic [...]]]></description>
			<content:encoded><![CDATA[<p>It seems we won&#8217;t miss another gnome release, and be able to push out ekiga 3.00 out! Of course, there are a few problems to fix yet, some features which won&#8217;t make it, but the biggest are there already : it would be a shame if there were none to add in subsequent versions&#8230;</p>
<p>Unrelated topic : I&#8217;m a little worried that Dodji already complains having a kid makes spare time contributions hard : eh, it&#8217;s just *one* *baby* : it spends most of its days and night sleeping! [Of course, the fact that it does it on a fast cry-sleep rhythm is pretty exhausting, but still] Congrats to both parents!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/snark/2008/08/29/it-looks-like-well-make-it/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The universe is at risk</title>
		<link>http://blogs.gnome.org/snark/2008/07/27/the-universe-is-at-risk/</link>
		<comments>http://blogs.gnome.org/snark/2008/07/27/the-universe-is-at-risk/#comments</comments>
		<pubDate>Sun, 27 Jul 2008 19:20:37 +0000</pubDate>
		<dc:creator>Snark</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/snark/2008/07/27/the-universe-is-at-risk/</guid>
		<description><![CDATA[Yesterday evening, it first rained, then the water drops turned into ice drops, which was quite unexpected and devastating to the leaves and fruits.
I had a mystic feeling/inspiration when I saw that mess : something big was happening. And indeed, this morning I had the confirmation that this ice was just a sign of something [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday evening, it first rained, then the water drops turned into ice drops, which was quite unexpected and devastating to the leaves and fruits.</p>
<p>I had a mystic feeling/inspiration when I saw that mess : something big was happening. And indeed, this morning I had the confirmation that this ice was just a sign of something much larger, an event of great importance which threatens the very fabric of the universe. Teuf <a href="http://cfergeau.blogspot.com/2008/07/after-being-kicked-again-and-again.html">blogs</a>.</p>
<p>More seriously, <a href="http://www.ekiga.org">ekiga 3.0</a> is stabilizing more or less rapidly, and we hope no last minute issue will make us miss yet another gnome release.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/snark/2008/07/27/the-universe-is-at-risk/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Decadence &#038; ekiga in the same post!?</title>
		<link>http://blogs.gnome.org/snark/2008/06/07/decadence-ekiga-in-the-same-post/</link>
		<comments>http://blogs.gnome.org/snark/2008/06/07/decadence-ekiga-in-the-same-post/#comments</comments>
		<pubDate>Sat, 07 Jun 2008 15:59:55 +0000</pubDate>
		<dc:creator>Snark</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/snark/2008/06/07/decadence-ekiga-in-the-same-post/</guid>
		<description><![CDATA[I have been pretty surprised (and somewhat disgusted) to see ekiga listed as an example of a project trying &#8220;not to bite too much&#8221; : ekiga 3.00 isn&#8217;t just a new release, it&#8217;s a new major release!
And it&#8217;s not because we changed the version number that it&#8217;s a major version, but rather the reverse : [...]]]></description>
			<content:encoded><![CDATA[<p>I have been pretty surprised (and somewhat disgusted) to see ekiga listed as an example of a project trying &#8220;not to bite too much&#8221; : ekiga 3.00 isn&#8217;t just a new release, it&#8217;s a new major release!</p>
<p>And it&#8217;s not because we changed the version number that it&#8217;s a major version, but rather the reverse : many things have been changed and improved, the code structure has been heavily modified. The codecs have been improved by so many order of magnitudes the video output needed rewriting, for instance!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/snark/2008/06/07/decadence-ekiga-in-the-same-post/feed/</wfw:commentRss>
		</item>
		<item>
		<title>On computer languages</title>
		<link>http://blogs.gnome.org/snark/2008/06/04/on-computer-languages/</link>
		<comments>http://blogs.gnome.org/snark/2008/06/04/on-computer-languages/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 20:14:02 +0000</pubDate>
		<dc:creator>Snark</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/snark/2008/06/04/on-computer-languages/</guid>
		<description><![CDATA[Eiffel : tearful future ahead
As I explained some time ago, I spent quite some time doing financial simulations lately. At first, I was using python, which is pretty nice to do a simple and direct simulation, but I always feel it&#8217;s too toyish for serious use.
So I made my more complex simulations using eiffel, and [...]]]></description>
			<content:encoded><![CDATA[<h1>Eiffel : tearful future ahead</h1>
<p>As I explained some time ago, I spent quite some time doing financial simulations lately. At first, I was using python, which is pretty nice to do a simple and direct simulation, but I always feel it&#8217;s too toyish for serious use.</p>
<p>So I made my more complex simulations using eiffel, and more precisely smarteiffel&#8217;s compiler. This language has many good features :</p>
<ul>
<li>it&#8217;s garbage-collected (wink),</li>
<li>does inheritance right (hint: no virtual keyword to make the concept half-stupid &#8212; yes, I know, optimisation : C++ is 0.001% faster in not doing the right thing!),</li>
<li>including multiple inheritance (undefining methods, renaming them),</li>
<li>allows determining which API parts of an object are visible to whom (not limited to a simple public/private or public/protected/private di(tri)chotomy of the world),</li>
<li>does pre/post conditions at the method and object level (and they do get inherited correctly, and you can refine them if needed : it&#8217;s not just a hack!) ;</li>
<li>it does generics with constraints (ie: you can tell your generic container will only accept objets of base class something &#8212; for example the compiler will let you use a SOMETHING[RECTANGLE] because you said SOMETHING[A-&gt;QUADRILATERAL] and RECTANGLE is a QUADRILATERAL, but won&#8217;t let you use a SOMETHING[HEXAGONAL]) ;</li>
<li>it does functions-as-values (called agents),</li>
<li>since typing is pretty strict (the only automatic/implicit &#8216;conversion&#8217; is if you consider a descendant class as an ascendant), the compiler is generally able to pinpoint exactly where the problem is in the sources, so a compilable source is generally good,</li>
<li>but even if by a surprising accident it doesn&#8217;t, then the trace you get will tell you exactly where you made a mistake.</li>
</ul>
<p>So what&#8217;s the catch? Well, it has a few shortcomings.</p>
<p>One of them is that you have to give each type explicitely, which can become cumbersome when you deal with something like a COLLECTION[PAIR[INTEGER, COLLECTION[STRING, STRING]]&#8230; even though the problem is a little dampered with syntactic sugar in the form of anchored types (ie: once you told it foo was of type FOO, you can tell it that other_foo is of type &#8220;like foo&#8221;, so if you change your mind about an api, it&#8217;s easy to just change one place).</p>
<p>Another one is that too few people know about it to reach a critical mass although it&#8217;s much much much easier and coherent to read and/or write than other more mainstream object-oriented languages (or claimed as such&#8230; wink).</p>
<p>This last problem has gotten worse recently (since 2005) when the smarteiffel (GNU compiler for the eiffel language)  people decided they didn&#8217;t like the way ECMA (yes, that ECMA) was pushing the language, and forked it.</p>
<p>A few weeks ago, all smarteiffel-related debian packages got orphaned, and no other eiffel compiler is in debian anymore, which means it&#8217;s getting harder to install too.</p>
<h1>Lisaac : future ahead (!)</h1>
<p>There is another language, with many common points with eiffel, but still pretty different, since it&#8217;s a prototype-based language : you define base objects, by declaring &#8220;slots&#8221;, which you can either write for the new object or &#8220;inherit&#8221; from a base object. Again, multiple inheritance is no problem and you can export the various API parts an object has to whatever prototype-object you want.</p>
<p>An important difference with eiffel is that the compiler will do auto-casts for you. The main difference with C++ is that you will need to explicitly declare that casting FOO to BAR is possible (not at the place where you use obviously, or I wouldn&#8217;t call it &#8216;auto&#8217;), and it will only do one single cast, and not a series of them.</p>
<p>The compiler does a quite thorough analysis of the sources, so it can spot more issues and optimize more completely, which probably explains why it&#8217;s so well-placed in the computer language shootout.</p>
<p>Both the language and its compiler are pretty young though, so stability isn&#8217;t as good as with smarteiffel : I&#8217;ve seen it crash on some simple code (reported, of course).</p>
<h1>OCaml : precious!</h1>
<p>Well, I haven&#8217;t written financial simulations with OCaml : since I made some simulations with python, others with smarteiffel and others with lisaac, I do have a better view of how I should manage the little money I have! [no, I didn't just write the same simulation in several languages over and over]</p>
<p>Still, I couldn&#8217;t blog about languages without mentioning that one! Again, it&#8217;s a garbage-collected language, it does inheritance and multiple inheritance (not as good as eiffel, even if it has constrained inheritance), unfortunately only with a public/private dichotomy (there are ways to offset that issue using &#8216;modules&#8217;). It won&#8217;t cast behind your back.</p>
<p>It&#8217;s time to mention the two main points of the language : it is a functional language, and it does type inference. The former is quite well-known, since hopefully everyone has heard of lisp and scheme, so I don&#8217;t need to tell that much about it : it&#8217;s pretty renowned to lead to terse and elegant code.</p>
<p>The type inference can be new to some. If you decide to write a prepend function which takes two arguments : the first is an object, and the second a list containing elements of the same type as the object, which will just prepend the element at the start of the list, you&#8217;ll just write (in the interpreter) : &#8220;let prepend obj lis = obj :: lis;;&#8221; (the &#8216;;;&#8217; is unneeded if you do it in a file you compile &#8212; only the interpreter needs it), you&#8217;ll get back : &#8220;val prepend : &#8216;a -&gt; &#8216;a list -&gt; &#8216;a list = &lt;fun&gt;&#8221; which means : prepend is a function, which takes an object of unknown (polymorphic) type (denoted &#8216;a), a list of object of the same type (&#8217;a list), and returns a list of objects of that same type.</p>
<p>Some say its syntax is hard : take a look at C/C++ code with an eye as fresh as you use reading OCaml, and you&#8217;ll see none wins.</p>
<h1>Ekiga</h1>
<p>I spent most of my spare time thinking about making more money by managing it better, so it has been quite some time since I seriously worked on it : I saw new things mature, bugs get fixed, little improvements here and there&#8230; exciting things I haven&#8217;t taken a serious part &#8212; hopefully they left some bugs for me to work on!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/snark/2008/06/04/on-computer-languages/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Highest suction power ever!</title>
		<link>http://blogs.gnome.org/snark/2008/06/02/highest-suction-power-ever/</link>
		<comments>http://blogs.gnome.org/snark/2008/06/02/highest-suction-power-ever/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 14:10:45 +0000</pubDate>
		<dc:creator>Snark</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/snark/2008/06/02/highest-suction-power-ever/</guid>
		<description><![CDATA[No, that&#8217;s not a blog post about C++ (I would need to blog about programming languages&#8230;), it&#8217;s about the new vacuum cleaner we just bought, and the title is what is said on the box. Bah, they all say that!
An ordinary buy like this doesn&#8217;t look that interesting, but the vacuum cleaner was one of [...]]]></description>
			<content:encoded><![CDATA[<p>No, that&#8217;s not a blog post about C++ (I would need to blog about programming languages&#8230;), it&#8217;s about the new vacuum cleaner we just bought, and the title is what is said on the box. Bah, they all say that!</p>
<p>An ordinary buy like this doesn&#8217;t look that interesting, but the vacuum cleaner was one of the first things I bought with my own money in 1997, so having the previous one dead and needing replacement does bear an emotional significance : I&#8217;m getting old.</p>
<p>The new one still doesn&#8217;t do its work alone though : there&#8217;s still the need for a sucker to drag the sucker all around the house&#8230; hopefully the oldest kid will soon be strong enough to help there *g*</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/snark/2008/06/02/highest-suction-power-ever/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SSH, python, finance, Salon&#8230;</title>
		<link>http://blogs.gnome.org/snark/2008/05/16/ssh-python-finance-salon/</link>
		<comments>http://blogs.gnome.org/snark/2008/05/16/ssh-python-finance-salon/#comments</comments>
		<pubDate>Fri, 16 May 2008 13:49:59 +0000</pubDate>
		<dc:creator>Snark</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/snark/2008/05/16/ssh-python-finance-salon/</guid>
		<description><![CDATA[SSH
I had to change a few keys on my LAN and the key I use on GNA &#8212; and I&#8217;ll certainly have to change the key for gnome&#8217;s svn account, since I used it on a theorically unsafe box. Sigh.
Python and finance
My wife and myself are currently trying to change our loan (yes, there&#8217;s only [...]]]></description>
			<content:encoded><![CDATA[<h1>SSH</h1>
<p>I had to change a few keys on my LAN and the key I use on <a href="http://www.gna.org">GNA</a> &#8212; and I&#8217;ll certainly have to change the key for gnome&#8217;s svn account, since I used it on a theorically unsafe box. Sigh.</p>
<h1>Python and finance</h1>
<p>My wife and myself are currently trying to change our loan (yes, there&#8217;s only one : the one for the flat), and use the occasion to learn about personal finance. It seems we&#8217;ve been pretty bad at it : sure, it could have been worse, but it seems we&#8217;ve mostly let money sleep and the loan roar. How naive!</p>
<p>To help us make sounder decision and learn what works and what doesn&#8217;t, I ended writing some <a href="http://www.python.org">python</a> code to simulate different behaviours. As usual, I find the language pretty nice to do quick and dirty work, but would never consider it for a serious app : <a href="http://smarteiffel.loria.fr/">eiffel</a> and <a href="http://caml.inria.fr/ocaml/">OCaml</a> are more my style.</p>
<h1>Salon</h1>
<p>I had the occasion to go to <a href="http://fr.wikipedia.org/wiki/Salon_de_Provence">Salon de Provence</a> and enjoy the <a href="http://fr.wikipedia.org/wiki/Patrouille_de_France">patrouille de France</a>&#8217;s latest show. I unfortunately couldn&#8217;t see my ex-students there.</p>
<h1>Ekiga</h1>
<p>Bugs are coming down, slowly but surely.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/snark/2008/05/16/ssh-python-finance-salon/feed/</wfw:commentRss>
		</item>
		<item>
		<title>People?!</title>
		<link>http://blogs.gnome.org/snark/2008/04/11/people/</link>
		<comments>http://blogs.gnome.org/snark/2008/04/11/people/#comments</comments>
		<pubDate>Fri, 11 Apr 2008 16:11:50 +0000</pubDate>
		<dc:creator>Snark</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/snark/2008/04/11/people/</guid>
		<description><![CDATA[I find the recent posts about that project pretty interesting ; and since I&#8217;m the one who rewrote most of ekiga&#8217;s contact management code, you can tell having a look at the api is of great interest to me : can ekiga easily integrate and use that?
Unfortunately, it seems there&#8217;s no good doc yet, which [...]]]></description>
			<content:encoded><![CDATA[<p>I find the recent posts about that project pretty interesting ; and since I&#8217;m the one who rewrote most of ekiga&#8217;s contact management code, you can tell having a look at the api is of great interest to me : can ekiga easily integrate and use that?</p>
<p>Unfortunately, it seems there&#8217;s no good doc yet, which isn&#8217;t that surprising for such a young project. Luckily, I&#8217;m not that bad at code-diving, and this is where things get interesting : vala!!! Don&#8217;t take me wrong, vala is a nice and interesting idea (didn&#8217;t I already blog about it?), but for a framework which is supposed to get wide use, I&#8217;m not sure that&#8217;s such a good idea : doesn&#8217;t a vala interface mean a GObject-based interface? If so, won&#8217;t that alienate kde, gnustep and enlightenment people (yes, they are people, and they do interesting things)?</p>
<p>Aside from the previous points, there are a number of questions which spring to mind when reading the vala api : an addressbook seems to be something which can be opened and closed, and to which one can ask a contact from an identifier. How do I find the correct identifiers? Ah, there&#8217;s a view interface, and the comment there tell I get it from performing a request on an addressbook &#8212; but there&#8217;s nothing about it in the addressbook api! There a nice iterator api on a view, which does the strict minimum : next and get&#8230; It&#8217;s pretty young, indeed.</p>
<p>I hope it will age well!</p>
<p>PS: sigh&#8230; that meme looks less stupid than the others :</p>
<p>jpuydt@noether:~$ history|awk &#8216;{a[$2]++ } END{for(i in a){print a[i] &#8221; &#8221; i}}&#8217;|sort -rn|head<br />
49 make<br />
48 git-checkout<br />
41 git-rebase<br />
38 cd<br />
36 git-gui<br />
28 ./src/ekiga<br />
25 git-svn<br />
21 git-status<br />
20 su<br />
20 grep</p>
<p>(can you guess I keep several branches in my ekiga.git/ directory?)</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/snark/2008/04/11/people/feed/</wfw:commentRss>
		</item>
		<item>
		<title>GMarkup : memories</title>
		<link>http://blogs.gnome.org/snark/2008/02/14/gmarkup-memories/</link>
		<comments>http://blogs.gnome.org/snark/2008/02/14/gmarkup-memories/#comments</comments>
		<pubDate>Thu, 14 Feb 2008 15:53:20 +0000</pubDate>
		<dc:creator>Snark</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/snark/2008/02/14/gmarkup-memories/</guid>
		<description><![CDATA[A few years ago, we wanted to make it as easy as possible to port then-gnomemeeting to win32, and of course, since we had no access to a win32 box, that mostly meant we would make as much of the code portable as we could, by relying on as few dependancies as possible, which meant [...]]]></description>
			<content:encoded><![CDATA[<p>A few years ago, we wanted to make it as easy as possible to port then-gnomemeeting to win32, and of course, since we had no access to a win32 box, that mostly meant we would make as much of the code portable as we could, by relying on as few dependancies as possible, which meant : glib/gtk+ for the frontend and pwlib/openh323 for the backend.</p>
<p>For that reason, one of us (Damien?) made bonobo optional with careful #ifdef magic ; I took the gnome-druid source and made it pure gtk+ (so gnomemeeting with gnome used normal gnome druid, and gnomeeting without gnome used those butchered sources) ; this took care of most of the &#8216;offenders&#8217;.</p>
<p>Unfortunately, there was still one big hurdle, in the form of numerous and scattered lines of code : we used gconf! So I did the obvious thing : I wrote a nice gmconf api to act as a proxy for gconf, with a mostly trivial gconf implementation, and a mostly trivial glib implementation, and replaced the thousands of call to gconf by calls to gmconf (boring to say the least).</p>
<p>Once there, I could store, modify and react to changes during runtime, but couldn&#8217;t  store them across runs. This problem is closely related to the issue of default settings. That was also something gconf was doing for us, which had to be handled separately. Creating another default settings file besides the  existing .schema didn&#8217;t look like a bright idea : that would have meant keeping them in sync, by hand!</p>
<p>This is where GMarkup comes into the picture : it&#8217;s a nice and easy way to handle simplified XML, readily available in glib. And what is a gconf .schema file? A simplified XML file! So I dived into GMarkup&#8217;s documentation and examples, and quickly had an honestly working piece of code.</p>
<p>This code is still used in ekiga today : when compiled either without gnome support on GNU/* or *BSD or on win32, parsing settings (system or user) is still GMarkup&#8217;s task. I&#8217;m not sure that will last very long : it&#8217;s much easier to port to win32 those days, with already-ported and already-packaged base libs, so perhaps having a non-gnome version loses interest &#8212; especially since the gmconf-glib implementation is a piece of code which only us ekiga developpers maintain (although most bugs must have been ironed out since&#8230;).</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/snark/2008/02/14/gmarkup-memories/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
