<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    
    <title>Dimajix Developer Blog - Comments</title>
    <link>http://blog.dimajix.de/</link>
    <description>Dimajix Developer Blog - Kaya Kupferschmidt's Blog about Work and Life</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.6 - http://www.s9y.org/</generator>
    
    

<item>
    <title>Kaya: OpenGL - Web 2. 0 Style</title>
    <link>http://blog.dimajix.de/archives/132-OpenGL-Web-2.-0-Style.html#c2246</link>
            <category></category>
    
    <comments>http://blog.dimajix.de/archives/132-OpenGL-Web-2.-0-Style.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=132</wfw:comment>

    

    <author>nospam@example.com (Kaya)</author>
    <content:encoded>
    Oh, I didn&#039;t know that. This fact actually increases the sexyness of having an OpenGL canvas in Firefox just by using Javascript.&lt;br /&gt;
&lt;br /&gt;
I really almost can&#039;t wait to play with this plugin! 
    </content:encoded>

    <pubDate>Mon, 03 Dec 2007 20:43:39 +0100</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/132-guid.html#c2246</guid>
    
</item>
<item>
    <title>James Justin Harrell: OpenGL - Web 2. 0 Style</title>
    <link>http://blog.dimajix.de/archives/132-OpenGL-Web-2.-0-Style.html#c2245</link>
            <category></category>
    
    <comments>http://blog.dimajix.de/archives/132-OpenGL-Web-2.-0-Style.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=132</wfw:comment>

    

    <author>nospam@example.com (James Justin Harrell)</author>
    <content:encoded>
    &gt;&gt; if Javascript turns out to be fast enough&lt;br /&gt;
&lt;br /&gt;
JavaScript 2 (a.k.a ECMAScript 4) is getting optional type declarations that will make JIT compilation much easier. Mozilla is already working on a JIT compiler that will probably appear in Firefox 4.&lt;br /&gt;
&lt;br /&gt;
See http://en.wikipedia.org/wiki/Tamarin_%28JIT%29 
    </content:encoded>

    <pubDate>Mon, 03 Dec 2007 19:46:38 +0100</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/132-guid.html#c2245</guid>
    
</item>
<item>
    <title>Kaya: Visual C++ and vsscanf</title>
    <link>http://blog.dimajix.de/archives/106-Visual-C++-and-vsscanf.html#c2244</link>
            <category></category>
    
    <comments>http://blog.dimajix.de/archives/106-Visual-C++-and-vsscanf.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=106</wfw:comment>

    

    <author>nospam@example.com (Kaya)</author>
    <content:encoded>
    Thanks for your comment (although the code didn&#039;t survive very well). It is a nice idea indeed you have ther. Plus it has no legal questions attached &lt;img src=&quot;http://blog.dimajix.de/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; 
    </content:encoded>

    <pubDate>Wed, 21 Nov 2007 19:56:09 +0100</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/106-guid.html#c2244</guid>
    
</item>
<item>
    <title>Michel Julier: Visual C++ and vsscanf</title>
    <link>http://blog.dimajix.de/archives/106-Visual-C++-and-vsscanf.html#c2243</link>
            <category></category>
    
    <comments>http://blog.dimajix.de/archives/106-Visual-C++-and-vsscanf.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=106</wfw:comment>

    

    <author>nospam@example.com (Michel Julier)</author>
    <content:encoded>
    I just needed a vsscanf() function and I used another solution: I just cut the format string into as many parts as there are variables to be decoded. I also made vscanf() and vfscanf() versions of it but, to be honnest, I didn&#039;t test them! vsscanf() works well, however.&lt;br /&gt;
&lt;br /&gt;
Sorry for the comments in French!&lt;br /&gt;
&lt;br /&gt;
A nice improvement would be if there was a way to tell the compiler that it should check the matching between the format and the types of the variables as it does (or does it really?) for scanf.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#include &quot;stdafx.h&quot;&lt;br /&gt;
&lt;br /&gt;
#include &lt;br /&gt;
#include &lt;br /&gt;
#include &lt;br /&gt;
#include &lt;br /&gt;
&lt;br /&gt;
int vsscanf(const char *str, const char *p_format, va_list arg_list){&lt;br /&gt;
	// fonction qui curieusement n&#039;existe pas chez Microsoft&lt;br /&gt;
	char *nformat = strdup(p_format);&lt;br /&gt;
	char *format = nformat;&lt;br /&gt;
	int i;&lt;br /&gt;
	int n=0;&lt;br /&gt;
	int convtot=0;&lt;br /&gt;
	for (i=0; format[i]; i++){&lt;br /&gt;
		if (format[i] == &#039;%&#039;){&lt;br /&gt;
			if (format[i+1] == &#039;%&#039; || format[i+1] == &#039;*&#039; || format[i+1] == &#039;\0&#039;)&lt;br /&gt;
				i++; // pas compté comme variable à allouer, je saute&lt;br /&gt;
			else { // c&#039;est une variable&lt;br /&gt;
				if (n==0) // première variable: OK&lt;br /&gt;
					n++; &lt;br /&gt;
				else { // deuxième variable: on coupe juste avant&lt;br /&gt;
					char f[3];&lt;br /&gt;
					f[1]=format[i+1]; f[2]=format[i+2];&lt;br /&gt;
					format[i+1]=&#039;n&#039;; format[i+2]=&#039;\0&#039;;	// %n = nombre de caractères lus dans l&#039;entrée&lt;br /&gt;
					void &lt;strong&gt;p = va_arg(arg_list, void &lt;/strong&gt;);&lt;br /&gt;
					int lu=-1,conv;&lt;br /&gt;
					conv = sscanf(str, format, p, &amp;lu);&lt;br /&gt;
					if (lu==-1){ // échec à la conversion&lt;br /&gt;
						convtot += conv; // peut-être converti quand même une variable?&lt;br /&gt;
						break; // mais ensuite on arrête&lt;br /&gt;
					}&lt;br /&gt;
					convtot++; // une variable lue&lt;br /&gt;
					str += lu; // avancer dans l&#039;entrée&lt;br /&gt;
					format[i+1]=f[1]; format[i+2]=f[2]; // rétablir la chaîne de format&lt;br /&gt;
					format += i; i = -1; // avancer dans le format&lt;br /&gt;
					n=0; // on repart avec 0 variable détectée dans la nouvelle chaîne&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	if (format[i]==&#039;\0&#039; &amp;&amp;amp; n&gt;0) { &lt;br /&gt;
		// on est arrivé au bout, et il reste une variable à convertir&lt;br /&gt;
		void &lt;strong&gt;p = va_arg(arg_list, void &lt;/strong&gt;);&lt;br /&gt;
		int conv;&lt;br /&gt;
		conv = sscanf(str, format, p);&lt;br /&gt;
		convtot += conv;&lt;br /&gt;
	}&lt;br /&gt;
	free(nformat);&lt;br /&gt;
	return convtot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int vscanf(const char *p_format, va_list arg_list){&lt;br /&gt;
	// fonction qui curieusement n&#039;existe pas chez Microsoft&lt;br /&gt;
	char *nformat = strdup(p_format);&lt;br /&gt;
	char *format = nformat;&lt;br /&gt;
	int i;&lt;br /&gt;
	int n=0;&lt;br /&gt;
	int convtot=0;&lt;br /&gt;
	for (i=0; format[i]; i++){&lt;br /&gt;
		if (format[i] == &#039;%&#039;){&lt;br /&gt;
			if (format[i+1] == &#039;%&#039; || format[i+1] == &#039;*&#039; || format[i+1] == &#039;\0&#039;)&lt;br /&gt;
				i++; // pas compté comme variable à allouer, je saute&lt;br /&gt;
			else { // c&#039;est une variable&lt;br /&gt;
				if (n==0) // première variable: OK&lt;br /&gt;
					n++; &lt;br /&gt;
				else { // deuxième variable: on coupe juste avant&lt;br /&gt;
					char f[3];&lt;br /&gt;
					f[1]=format[i+1]; f[2]=format[i+2];&lt;br /&gt;
					format[i+1]=&#039;n&#039;; format[i+2]=&#039;\0&#039;;	// %n = nombre de caractères lus dans l&#039;entrée&lt;br /&gt;
					void &lt;strong&gt;p = va_arg(arg_list, void &lt;/strong&gt;);&lt;br /&gt;
					int lu=-1,conv;&lt;br /&gt;
					conv = scanf(format, p, &amp;lu);&lt;br /&gt;
					if (lu==-1){ // échec à la conversion&lt;br /&gt;
						convtot += conv; // peut-être converti quand même une variable?&lt;br /&gt;
						break; // mais ensuite on arrête&lt;br /&gt;
					}&lt;br /&gt;
					convtot++; // une variable lue&lt;br /&gt;
					// str += lu; // avancer dans l&#039;entrée&lt;br /&gt;
					format[i+1]=f[1]; format[i+2]=f[2]; // rétablir la chaîne de format&lt;br /&gt;
					format += i; i = -1; // avancer dans le format&lt;br /&gt;
					n=0; // on repart avec 0 variable détectée dans la nouvelle chaîne&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	if (format[i]==&#039;\0&#039; &amp;&amp;amp; n&gt;0) { &lt;br /&gt;
		// on est arrivé au bout, et il reste une variable à convertir&lt;br /&gt;
		void &lt;strong&gt;p = va_arg(arg_list, void &lt;/strong&gt;);&lt;br /&gt;
		int conv;&lt;br /&gt;
		conv = scanf(format, p);&lt;br /&gt;
		convtot += conv;&lt;br /&gt;
	}&lt;br /&gt;
	free(nformat);&lt;br /&gt;
	return convtot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int vfscanf(FILE *fd, const char *p_format, va_list arg_list){&lt;br /&gt;
	// fonction qui curieusement n&#039;existe pas chez Microsoft&lt;br /&gt;
	char *nformat = strdup(p_format);&lt;br /&gt;
	char *format = nformat;&lt;br /&gt;
	int i;&lt;br /&gt;
	int n=0;&lt;br /&gt;
	int convtot=0;&lt;br /&gt;
	for (i=0; format[i]; i++){&lt;br /&gt;
		if (format[i] == &#039;%&#039;){&lt;br /&gt;
			if (format[i+1] == &#039;%&#039; || format[i+1] == &#039;*&#039; || format[i+1] == &#039;\0&#039;)&lt;br /&gt;
				i++; // pas compté comme variable à allouer, je saute&lt;br /&gt;
			else { // c&#039;est une variable&lt;br /&gt;
				if (n==0) // première variable: OK&lt;br /&gt;
					n++; &lt;br /&gt;
				else { // deuxième variable: on coupe juste avant&lt;br /&gt;
					char f[3];&lt;br /&gt;
					f[1]=format[i+1]; f[2]=format[i+2];&lt;br /&gt;
					format[i+1]=&#039;n&#039;; format[i+2]=&#039;\0&#039;;	// %n = nombre de caractères lus dans l&#039;entrée&lt;br /&gt;
					void &lt;strong&gt;p = va_arg(arg_list, void &lt;/strong&gt;);&lt;br /&gt;
					int lu=-1,conv;&lt;br /&gt;
					conv = fscanf(fd, format, p, &amp;lu);&lt;br /&gt;
					if (lu==-1){ // échec à la conversion&lt;br /&gt;
						convtot += conv; // peut-être converti quand même une variable?&lt;br /&gt;
						break; // mais ensuite on arrête&lt;br /&gt;
					}&lt;br /&gt;
					convtot++; // une variable lue&lt;br /&gt;
					// str += lu; // avancer dans l&#039;entrée&lt;br /&gt;
					format[i+1]=f[1]; format[i+2]=f[2]; // rétablir la chaîne de format&lt;br /&gt;
					format += i; i = -1; // avancer dans le format&lt;br /&gt;
					n=0; // on repart avec 0 variable détectée dans la nouvelle chaîne&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	if (format[i]==&#039;\0&#039; &amp;&amp;amp; n&gt;0) { &lt;br /&gt;
		// on est arrivé au bout, et il reste une variable à convertir&lt;br /&gt;
		void &lt;strong&gt;p = va_arg(arg_list, void &lt;/strong&gt;);&lt;br /&gt;
		int conv;&lt;br /&gt;
		conv = fscanf(fd, format, p);&lt;br /&gt;
		convtot += conv;&lt;br /&gt;
	}&lt;br /&gt;
	free(nformat);&lt;br /&gt;
	return convtot;&lt;br /&gt;
} 
    </content:encoded>

    <pubDate>Wed, 21 Nov 2007 13:12:17 +0100</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/106-guid.html#c2243</guid>
    
</item>
<item>
    <title>Edgar: A new Direction for OpenGL</title>
    <link>http://blog.dimajix.de/archives/110-A-new-Direction-for-OpenGL.html#c2238</link>
            <category></category>
    
    <comments>http://blog.dimajix.de/archives/110-A-new-Direction-for-OpenGL.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=110</wfw:comment>

    

    <author>nospam@example.com (Edgar)</author>
    <content:encoded>
    We could always call it OpenGL 4.0 &lt;img src=&quot;http://blog.dimajix.de/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; 
    </content:encoded>

    <pubDate>Thu, 26 Jul 2007 20:59:28 +0200</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/110-guid.html#c2238</guid>
    
</item>
<item>
    <title>Kaya Kupferschmidt: Cygwin + Avira = Nogo</title>
    <link>http://blog.dimajix.de/archives/130-Cygwin-+-Avira-Nogo.html#c2234</link>
            <category></category>
    
    <comments>http://blog.dimajix.de/archives/130-Cygwin-+-Avira-Nogo.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=130</wfw:comment>

    

    <author>nospam@example.com (Kaya Kupferschmidt)</author>
    <content:encoded>
    I use Windows for development due to two simple facts:&lt;br /&gt;
1. Parts of my code is developed against the Windows API with a Linux port still missing&lt;br /&gt;
2. The tools for C++ on Windows are far superior than those on Linux. Especially the debugger in Visual Studio outperforms any Linux solution I have seen so far.&lt;br /&gt;
On the other hand for servers I only use Linux, because Linux computers can be remotely managed much better than Windows. Plus I really like the command line (that&#039;s the reason why I wouldn&#039;t want to have a Windows computer without Cygwin). 
    </content:encoded>

    <pubDate>Tue, 05 Jun 2007 09:13:11 +0200</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/130-guid.html#c2234</guid>
    
</item>
<item>
    <title>James Justin Harrell: Cygwin + Avira = Nogo</title>
    <link>http://blog.dimajix.de/archives/130-Cygwin-+-Avira-Nogo.html#c2232</link>
            <category></category>
    
    <comments>http://blog.dimajix.de/archives/130-Cygwin-+-Avira-Nogo.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=130</wfw:comment>

    

    <author>nospam@example.com (James Justin Harrell)</author>
    <content:encoded>
    Why are you using Windows? I&#039;m not saying you shouldn&#039;t, it&#039;s just interesting to hear.&lt;br /&gt;
&lt;br /&gt;
It seems that a developer like you could easily handle something like Ubuntu at least. 
    </content:encoded>

    <pubDate>Tue, 05 Jun 2007 00:23:54 +0200</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/130-guid.html#c2232</guid>
    
</item>
<item>
    <title>Kaya Kupferschmidt: Easy Bytecode</title>
    <link>http://blog.dimajix.de/archives/126-Easy-Bytecode.html#c2231</link>
            <category></category>
    
    <comments>http://blog.dimajix.de/archives/126-Easy-Bytecode.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=126</wfw:comment>

    

    <author>nospam@example.com (Kaya Kupferschmidt)</author>
    <content:encoded>
    Actually I didn&#039;t know that FORTH was using Bytecode before you were telling me so. But that would have been another possibility. As my bytecode is generated using an interface, it shouldn&#039;t be too hard to plug in a FORTH bytecode generator.&lt;br /&gt;
&lt;br /&gt;
But it would have to meet some special requirements, like the possibility of calling external functions via a simple string-lookup. &lt;br /&gt;
&lt;br /&gt;
If I find some time (not very likely) I might investigate into a FORTH backend. 
    </content:encoded>

    <pubDate>Thu, 08 Mar 2007 09:48:01 +0100</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/126-guid.html#c2231</guid>
    
</item>
<item>
    <title>Freeman: Easy Bytecode</title>
    <link>http://blog.dimajix.de/archives/126-Easy-Bytecode.html#c2230</link>
            <category></category>
    
    <comments>http://blog.dimajix.de/archives/126-Easy-Bytecode.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=126</wfw:comment>

    

    <author>nospam@example.com (Freeman)</author>
    <content:encoded>
    I meant using FORTH &quot;(byte)code&quot; directly. FORTH could parse scripts into FORTH, and there are quality FORTH interpretors and compilers. But, because RPN is so easy to implement, I understand you want to go your own way.&lt;br /&gt;
&lt;br /&gt;
Some time ago, I needed good (but easy) script language for my project, where I want users to specify operations on 2D geometric entities (to define measurement and evaluations of camera detected shapes). I planned to use some kind of RPN and FORTH (I called this GeoForth). But users seems confused, they did not like the RPN (probably never tried Texas Instruments calculators &lt;img src=&quot;http://blog.dimajix.de/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;. I ended up with something modern, Prolog-like functional &quot;programs&quot;, where users define new entities as evaluations of other entities, and the interpreter (actually, it is compiled into evaluation trees) will sort the evaluations out to provide user with all needed data. 
    </content:encoded>

    <pubDate>Tue, 06 Mar 2007 09:57:25 +0100</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/126-guid.html#c2230</guid>
    
</item>
<item>
    <title>Kaya Kupferschmidt: Easy Bytecode</title>
    <link>http://blog.dimajix.de/archives/126-Easy-Bytecode.html#c2229</link>
            <category></category>
    
    <comments>http://blog.dimajix.de/archives/126-Easy-Bytecode.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=126</wfw:comment>

    

    <author>nospam@example.com (Kaya Kupferschmidt)</author>
    <content:encoded>
    Thanks for the pointer to FORTH, indeed it looks similar to my approach, although my frontend does not require RPN notation. But as my frontend (script parser) is separated from the bytecode generator, it is possible to add a RPN based frontend. Maybe I will have a closer look at Forth. 
    </content:encoded>

    <pubDate>Mon, 05 Mar 2007 10:38:24 +0100</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/126-guid.html#c2229</guid>
    
</item>
<item>
    <title>Freeman: Easy Bytecode</title>
    <link>http://blog.dimajix.de/archives/126-Easy-Bytecode.html#c2228</link>
            <category></category>
    
    <comments>http://blog.dimajix.de/archives/126-Easy-Bytecode.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=126</wfw:comment>

    

    <author>nospam@example.com (Freeman)</author>
    <content:encoded>
    Did you considered FORTH? 
    </content:encoded>

    <pubDate>Sun, 04 Mar 2007 19:15:27 +0100</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/126-guid.html#c2228</guid>
    
</item>
<item>
    <title>Kaya: What am I doing?</title>
    <link>http://blog.dimajix.de/archives/116-What-am-I-doing.html#c2220</link>
            <category></category>
    
    <comments>http://blog.dimajix.de/archives/116-What-am-I-doing.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=116</wfw:comment>

    

    <author>nospam@example.com (Kaya)</author>
    <content:encoded>
    At first the NVI pleased me very much because it seperates the (overridable) implementation from the interface. But in my current project at work I learned that the NVI pattern doesn&#039;t offer any other real advantage, but it really has some big disadvantages:&lt;br /&gt;
1. With pure interfaces (only pure virtual methods) you are much more forced to design a clean interface. There are still many parts in Magnum that do not have such clean interfaces.&lt;br /&gt;
2. With pure virtual interfaces you can the computer generate automatically implementations for remote proxies or such. This is a bit harder with the NVI pattern.&lt;br /&gt;
3. Finally google did not give me really good causes for using the non-virtual interface pattern. 
    </content:encoded>

    <pubDate>Sat, 20 Jan 2007 13:52:17 +0100</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/116-guid.html#c2220</guid>
    
</item>
<item>
    <title>Fredrik: What am I doing?</title>
    <link>http://blog.dimajix.de/archives/116-What-am-I-doing.html#c2219</link>
            <category></category>
    
    <comments>http://blog.dimajix.de/archives/116-What-am-I-doing.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=116</wfw:comment>

    

    <author>nospam@example.com (Fredrik)</author>
    <content:encoded>
    Why did you remove NVI? 
    </content:encoded>

    <pubDate>Sat, 20 Jan 2007 00:14:17 +0100</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/116-guid.html#c2219</guid>
    
</item>
<item>
    <title>cinema visitor: Why you want ZFS for Linux</title>
    <link>http://blog.dimajix.de/archives/121-Why-you-want-ZFS-for-Linux.html#c2218</link>
            <category></category>
    
    <comments>http://blog.dimajix.de/archives/121-Why-you-want-ZFS-for-Linux.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=121</wfw:comment>

    

    <author>nospam@example.com (cinema visitor)</author>
    <content:encoded>
    Or maybe simply buy yourself a real server (SUN) with a real OS and not something homebrewn with a bastel os done by longhaired opensouce communists.&lt;br /&gt;
&lt;br /&gt;
C U 
    </content:encoded>

    <pubDate>Tue, 09 Jan 2007 22:10:28 +0100</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/121-guid.html#c2218</guid>
    
</item>
<item>
    <title>Anonymous: Gigabit Ethernet for SGI Fuel</title>
    <link>http://blog.dimajix.de/archives/117-Gigabit-Ethernet-for-SGI-Fuel.html#c1718</link>
            <category></category>
    
    <comments>http://blog.dimajix.de/archives/117-Gigabit-Ethernet-for-SGI-Fuel.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=117</wfw:comment>

    

    <author>nospam@example.com ()</author>
    <content:encoded>
    yes, a Mac Port would be really cool (nice graphics on a nice designed machine).&lt;br /&gt;
&lt;br /&gt;
Looking forward to screenshots&lt;br /&gt;
&lt;br /&gt;
Matthias 
    </content:encoded>

    <pubDate>Wed, 06 Dec 2006 15:27:18 +0100</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/117-guid.html#c1718</guid>
    
</item>

</channel>
</rss>
