<?xml version="1.0"?>
<rss version="2.0">

<channel>
	<title>GNU Planet</title>
	<link>http://planet.gnu.org/</link>
	<language>en</language>
	<description>GNU Planet - http://planet.gnu.org/</description>

<item>
	<title>gnutelephony @ GNU planet: The technical argument against Mono in Debian</title>
	<guid>http://planet.gnu.org/gnutelephony/?p=3</guid>
	<link>http://planet.gnu.org/gnutelephony/?p=3</link>
	<description>&lt;p&gt;Richard Stallman, and others, have explained rather well important legal and social reasons for why clearly Mono should not become a default part of a Debian GNU/Linux install, or similarly used for core applications of the GNOME desktop.  This is especially true I think in regard to the Debian social contract which is meant to assure that core packages are built from and use free (as in freedom) software, that is without encumbrances or surprises.  The ECMA process allows for patent surprises even in the core language specification itself, which can be patent licensed under RAND terms.  I happen to believe there are additional valid technical reasons for not including Mono as a core part Debian.   &lt;/p&gt;
&lt;p&gt;While some may be surprised I should speak so strongly on this topic, given my involvement with Debian and Ubuntu, I found it an ethical requirement to speak out about this, and especially given my past involvement in dotgnu, I have come to feel that the community is being deliberately mislead by some about the what I think the role of Mono probably should have been. While I can see why Mono can be an important tool for promoting and enabling cross-platform development, a role that has been neglected, I believe in fact for this very reason Mono applications should NOT be used to build core required applications or be part of the default install of a distribution, just as for example Java applications are not used to build default core Solaris specific applications for Solaris, or (shutter) Visual Basic was used to build default applications shipped with Microsoft Windows (I am assuming they never did that…).&lt;/p&gt;
&lt;p&gt;Hence, I do not see Mono as particularly useful for developing GNU/Linux specific free software applications, but rather in better enabling legacy proprietary ISV’s to build cross-platform add-on/value add applications and migrate to the free world. In this role, there would then be pressure from these ISV’s, many of whom may participate in Microsoft development, to keep Mono/.NET honest and truly cross-platform compatible. When we use Mono to build core GNOME applications, such as Tomboy, Banshee, and Beagle, we remove this pressure, and encourage what should be a cross-platform technology to be used as a single platform one, making it easier for Mono and platform specific GNU/Linux free software written with it to be more effectively ghetto’d by Microsoft.  The greater there is this dependency on Mono for core parts of the GNU/Linux platform, the greater the vulnerability to those risks Stallman outlines.&lt;/p&gt;
&lt;p&gt;Furthermore, if only a few “core” applications require it, and there are alternative applications that do not, why drag a 40 or 50 meg dependency onto everyone? Mono dependency might well be enough to be the difference between a single live CD distribution or one that requires DVD media to fit.  While Microsoft’s proprietary legacy platform is tied principally to Moore’s Law and desktop computing, GNU/Linux is not.  GNU/Linux is a free software platform for current and next generation hardware such as smartbooks, and is platform agnostic.  Just getting Mono to sorta run on ARM has been a major distraction that should not have been necessary in the first place.  &lt;/p&gt;
&lt;p&gt;I also think an important goal of a default core distribution should be a GNU/Linux experience that is both GNU/Linux specific (unique) and works well for users. If, as we see in tomboy vs gnote, or tracker vs beagle, there is such a large discrepancy in performance and resulting user experience, then I think clearly Mono is the wrong choice to make even for purely technical reasons alone.&lt;/p&gt;
&lt;p&gt;Part of that user experience is a consistent packaging and operation within the rest of a GNU/Linux system.  In this respect, I have read the Debian packaging policy for Mono applications, and it highlights the fact that fitting Mono on a Debian GNU/Linux system is actually more awkward than packaging Java for Debian.  Essentially, it suggests one creates a /usr/lib/progrname directory, and fill it both with the applications libraries and executables, and then write a wrapper script for /usr/bin.  This is because Mono carries certain policies and expectations one finds on Microsoft Windows, where applications and dependent libraries were often bundled together under a private directory because binaries were never shared between vendors.  This wasteful inefficiency and inability to cooperate that is the hallmark of proprietary software practices creates to me a very unnatural packaging policy requirement for Debian.&lt;/p&gt;
&lt;p&gt;I know of course this viewpoint is at odds also with at least some others that are involved in Debian and Ubuntu, but it represents what I do think and feel is the best course of action. I personally do not fear nor dis-favor Mono, I simply do not personally believe it belongs in a core or default install of Debian or Ubuntu GNU/Linux distribution, and should not be used to build critical or default applications for GNOME.  Other use cases individual developers must consider, especially given, as a cross platform technology, many of the licensing issues involving Java have been resolved, and Java is more platform agnostic.  However, putting free software platforms at risk simply because certain individuals and Novell made a large investment in Mono only to find it cannot succeed as a cross platform technology against Java is to me a very selfish motivation.&lt;/p&gt;
&lt;p&gt;Of course at the time Mono first appeared, Java was not licensed as free software and there was uncertainly around it. That being said, I do of course feel more comfortable with the present licensing situation of Java than with that of Mono. However, I would not suggest, even on purely technical merits, writing core parts of GNOME in Java or requiring Java as part of a core distro install, just as strongly and for many of the same reasons as I would not with respect to Mono either.&lt;/p&gt;
&lt;p&gt;Finally, I recognize a lot of excellent work has been put in making Mono a viable technology, and I believe this work has it’s best chance to endure with it being far more clearly and honestly presented in the role of a cross-platform enablement technology. That also is the best way I see to reduce the risk of potential patent traps by Microsoft. &lt;/p&gt;</description>
	<pubDate>Thu, 02 Jul 2009 04:24:57 +0000</pubDate>
</item>
<item>
	<title>Robert Millan: Mono is not a patent threat for Debian</title>
	<guid>http://robertmh.wordpress.com/?p=52</guid>
	<link>http://robertmh.wordpress.com/2009/07/01/mono-is-not-a-patent-threat-for-debian/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;I read Richard Stallman’s post in which he expresses his &lt;a href=&quot;http://www.fsf.org/news/dont-depend-on-mono&quot;&gt;concern about a serious danger&lt;/a&gt; with reliing on .NET for free software development.  I think Richard makes very good points here, and I do agree that there’s a serious danger, but &lt;b&gt;I don’t think Microsoft would ever bring all .NET implementations underground&lt;/b&gt;.  If you think that, my opinion is you’re underestimating them.&lt;/p&gt;
&lt;p&gt;Microsoft is smarter than that.  They are a &lt;a href=&quot;http://www.theregister.co.uk/2001/06/02/ballmer_linux_is_a_cancer/&quot;&gt;sworn enemy&lt;/a&gt; of free software, they’re &lt;a href=&quot;http://www.theopensourcerer.com/2008/02/19/microsofts-jihad-be-afraid-be-very-afraid/&quot;&gt;ruthless&lt;/a&gt;, and they know all the &lt;a href=&quot;http://boycottnovell.com/2008/01/10/microsoft-ooxml-bribes/&quot;&gt;anti-competitive tactics&lt;/a&gt; in the IT world.  There’s no doubt they want to make our community divided and helpless.  And when they look at the free software development ecosystem, they see two big groups:&lt;/p&gt;
&lt;p&gt;  A- Highly profitable vendors like Red Hat or Sun/Oracle.&lt;br /&gt;
  B- Non-profit communities like Debian or Ubuntu (technically, Canonical is a for-profit venture, but they operate at loss).&lt;/p&gt;
&lt;p&gt;There’s also 3rd parties that sell hardware or services and contribute “collateral” improvements to our codebase.  I’ll ignore those for the sake of simplicity.&lt;/p&gt;
&lt;p&gt;It would be silly to try harm group B with their patents, since it’s composed of grass-root efforts which can’t be unrepairably injured just by bringing a company out of bussiness.  Besides, group B actually helps them promote their patent-encumbered standards.  Why attack those who are helping you?&lt;/p&gt;
&lt;p&gt;Ah, but as for group A, maybe they could use patents to shut it down?  Perhaps, but I think they’re &lt;b&gt;even smarter&lt;/b&gt; than that.  Sun Tzu said: “&lt;i&gt;When you surround an army, leave an outlet free.  Do not press a desperate foe too hard.&lt;/i&gt;”  If Mono-based applications become a significant competitive advantage (and it is in their agenda that they do), and their competitors are forbidden from using them, they will put all their effort in pushing for alternatives, even at great expense.  I really think they know better.&lt;/p&gt;
&lt;p&gt;I recently came across this &lt;a href=&quot;http://www.nytimes.com/1999/05/28/business/ibm-executive-describes-price-pressure-by-microsoft.html&quot;&gt;very interesting article&lt;/a&gt;, written in 1999, which details the tactics used by Microsoft to fight IBM.  They obviously saw OS/2 as a threat.  Back then, Windows 95 was the trading token.  They could have caused IBM a great deal of harm shall they refused to license it to them, but it seems the idea of subjugating IBM was more appealing.  This is how Garry Norris (IBM) put it:&lt;/p&gt;
&lt;p&gt;  “&lt;i&gt;Microsoft repeatedly said we would suffer in terms of prices, terms, conditions and support programs, as long as we were offering competing products.&lt;/i&gt;“&lt;/p&gt;
&lt;p&gt;  “&lt;i&gt;[Microsoft] insisted that IBM sell 300,000 copies of Windows 95 in the first five months or face a 20 percent price increase&lt;/i&gt;“&lt;/p&gt;
&lt;p&gt;Nice deal, eh?  Make your dependancy on Windows 95 stronger, or else we’ll use your existing dependancy on Windows 95 against you.  No surprise IBM abandoned the PC market.  Are Red Hat and Sun/Oracle set on the same direction?&lt;/p&gt;
&lt;p&gt;Draw your own conclussions.  In my point of view, projects like Debian and Ubuntu are completely safe from direct patent threat.  Should we care if Red Hat or Sun/Oracle succumb?  Perhaps not, after all, &lt;a href=&quot;http://press.redhat.com/2008/04/08/red-hat-leads-open-source-contributions-to-kernel/&quot;&gt;what&lt;/a&gt; &lt;a href=&quot;http://fedoraproject.org/wiki/RedHatContributions#Upstream_Developers&quot;&gt;are&lt;/a&gt; they &lt;a href=&quot;http://www.mysql.com/&quot;&gt;doing&lt;/a&gt; &lt;a href=&quot;http://www.openoffice.org/&quot;&gt;for&lt;/a&gt; &lt;a href=&quot;http://www.virtualbox.org/&quot;&gt;us&lt;/a&gt;?&lt;/p&gt;
  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/robertmh.wordpress.com/52/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/robertmh.wordpress.com/52/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/robertmh.wordpress.com/52/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/robertmh.wordpress.com/52/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/robertmh.wordpress.com/52/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/robertmh.wordpress.com/52/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/robertmh.wordpress.com/52/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/robertmh.wordpress.com/52/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/robertmh.wordpress.com/52/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/robertmh.wordpress.com/52/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=robertmh.wordpress.com&amp;amp;blog=2720179&amp;amp;post=52&amp;amp;subd=robertmh&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 01 Jul 2009 15:31:41 +0000</pubDate>
</item>
<item>
	<title>speedx @ Savannah: We're Using Bazaar</title>
	<guid>http://savannah.gnu.org/forum/forum.php?forum_id=5874</guid>
	<link>http://savannah.gnu.org/forum/forum.php?forum_id=5874</link>
	<description>&lt;p&gt;I use Bazaar personally but have waited to put anything online because I didn't want to use my personal web space. SpeedX uses Bazaar and the current source of SpeedX can now be browsed at &lt;a href=&quot;http://bzr.savannah.gnu.org/lh/speedx&quot;&gt;http://bzr.savannah.gnu.org/lh/speedx&lt;/a&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;or downloaded by
&lt;br /&gt;
&lt;/p&gt;
&lt;input readonly=&quot;readonly&quot; type=&quot;text&quot; class=&quot;verbatim&quot; value=&quot;bzr branch http://bzr.savannah.gnu.org/r/speedx &quot; size=&quot;60&quot; /&gt;</description>
	<pubDate>Tue, 30 Jun 2009 18:13:27 +0000</pubDate>
</item>
<item>
	<title>GNU Hurd development blog: 2009-06-30</title>
	<guid>http://www.gnu.org/software/hurd/news/2009-06-30.html</guid>
	<link>http://www.gnu.org/software/hurd/news/2009-06-30.html</link>
	<description>&lt;p&gt;A month of the Hurd: &lt;em&gt;Git migration&lt;/em&gt;, &lt;em&gt;stand-alone libpthread&lt;/em&gt; and &lt;em&gt;updated
status&lt;/em&gt;.
&lt;a href=&quot;http://www.gnu.org/software/hurd/index.html#news-2009-06-30.full-news&quot; class=&quot;toggle&quot;&gt;Details.&lt;/a&gt;&lt;/p&gt;&lt;div id=&quot;news-2009-06-30.full-news&quot; class=&quot;toggleable&quot;&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;This month Thomas Schwinge &lt;a href=&quot;http://lists.gnu.org/archive/html/bug-hurd/2009-06/msg00147.html&quot;&gt;finished
  migrating&lt;/a&gt;
  the main Hurd, GNU Mach, MIG, libpthread and unionfs to Git.  You can find
  the new repositories at &lt;a href=&quot;http://git.savannah.gnu.org/cgit/hurd/&quot;&gt;http://git.savannah.gnu.org/cgit/hurd/&lt;/a&gt;.&lt;/p&gt;
  
  &lt;p&gt;Also, he made &lt;a href=&quot;http://lists.gnu.org/archive/html/bug-hurd/2009-06/msg00166.html&quot;&gt;libpthread buildable
  stand-alone&lt;/a&gt;
  by separating its build system from the Hurd's.&lt;/p&gt;
  
  &lt;p&gt;Additionally, Olaf Buddenhagen wrote a usability report about his experience
  with the &lt;a href=&quot;http://www.gnu.org/software/hurd/./hurd/status.html&quot;&gt;GNU Hurd for everyday work&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class=&quot;toggleableend&quot;&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 30 Jun 2009 12:44:03 +0000</pubDate>
</item>
<item>
	<title>Smalltalk development blog: GtkLauncher is dead long live VisualGST</title>
	<guid>http://smalltalk.gnu.org/333 at http://smalltalk.gnu.org</guid>
	<link>http://smalltalk.gnu.org/blog/mrgwen/gtklauncher-dead-long-live-visualgst</link>
	<description>&lt;p&gt;Hi,&lt;/p&gt;

&lt;p&gt;I am working on the debugger for VisualGST :&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://imagik.fr/view-rl/82096&quot;&gt;&lt;img src=&quot;http://imagik.fr/thumb/82096.jpeg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://imagik.fr&quot;&gt;imagik.fr&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now you can step, step into, run and inspect the stack.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://visualgst.bioskop.fr/&quot; title=&quot;http://visualgst.bioskop.fr/&quot;&gt;http://visualgst.bioskop.fr/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cheers&lt;/p&gt;</description>
	<pubDate>Mon, 29 Jun 2009 17:12:38 +0000</pubDate>
</item>
<item>
	<title>tasklist @ Savannah: Train simulator</title>
	<guid>http://savannah.gnu.org/forum/forum.php?forum_id=5873</guid>
	<link>http://savannah.gnu.org/forum/forum.php?forum_id=5873</link>
	<description>&lt;p&gt;For many years we've had an entry on the games tasklist item for &quot;A realistic train-driving simulator.&quot;  I've found two projects that might satisfy this requirement: &lt;a href=&quot;http://www.openttd.org/&quot;&gt;http://www.openttd.org/&lt;/a&gt; (which is GPL licensed) and &lt;a href=&quot;http://openbve.trainsimcentral.co.uk/&quot;&gt;http://openbve.trainsimcentral.co.uk/&lt;/a&gt; which is public domain.  Both take different approaches to the idea of simulating train traffic, and both look pretty interesting in their own ways.&lt;br /&gt;
&lt;/p&gt;</description>
	<pubDate>Mon, 29 Jun 2009 01:03:12 +0000</pubDate>
</item>
<item>
	<title>gettext @ Savannah: Transition from CVS to Git</title>
	<guid>http://savannah.gnu.org/forum/forum.php?forum_id=5871</guid>
	<link>http://savannah.gnu.org/forum/forum.php?forum_id=5871</link>
	<description>&lt;p&gt;The source is now maintained in a Git repository. See &lt;a href=&quot;https://savannah.gnu.org/git/?group=gettext&quot;&gt;https://savannah.gnu.org/git/?group=gettext&lt;/a&gt; for details. The CVS repository is now out-of-date.&lt;br /&gt;
&lt;/p&gt;</description>
	<pubDate>Sun, 28 Jun 2009 19:49:38 +0000</pubDate>
</item>
<item>
	<title>Smalltalk development blog: reboot required - a short tale</title>
	<guid>http://smalltalk.gnu.org/332 at http://smalltalk.gnu.org</guid>
	<link>http://smalltalk.gnu.org/blog/swsch/reboot-required-short-tale</link>
	<description>&lt;p&gt;So here I am, happily hacking along at my first Iliad web application, when I get all fancy and want to set it up on a public server.&lt;/p&gt;

&lt;p&gt;Heh ... a bit of fiddling required, since neither &quot;my&quot; Iliad nor &quot;my&quot; gst are out of the box anymore, but applying two patches is not too hard work.&lt;/p&gt;

&lt;p&gt;Now I have everything ready: patched gst starts the REPL, gst-package builds OnlineTester.star, gst-load -viI ot.im OnlineTester ... throws an error, while starting Swazoo. Ah, yes, I think quickly, that port is already in use here. So I change, rinse and repeat ... and the error is still there. A FileError? When opening a socket. What?&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://smalltalk.gnu.org/blog/swsch/reboot-required-short-tale&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Sat, 27 Jun 2009 11:42:38 +0000</pubDate>
</item>
<item>
	<title>psychosynth @ GNU planet: Gmane news gateway and Ubuntu packages</title>
	<guid>http://planet.gnu.org/psychosynth/?p=10</guid>
	<link>http://planet.gnu.org/psychosynth/?p=10</link>
	<description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;At last, I finished my exams &lt;img src=&quot;http://planet.gnu.org/psychosynth/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; And there are some news about GNU Psychosynth.&lt;/p&gt;
&lt;p&gt;1. A Gmane gateway has been created for the project lists. This improves archiving and eases reading and posting using an &lt;em&gt;Usenet&lt;/em&gt; interface, so you don’t have to receive everything in your email. More info &lt;a href=&quot;http://dir.gmane.org/search.php?match=psychosynth&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;2. &lt;a href=&quot;http://es.gnu.org/~aleksander/web/&quot;&gt;Alexander Morgado&lt;/a&gt; has contributed some Ubuntu packages for Psychosynth. It should ease things a lot for those Ubuntu users having problems compiling the software. Many thanks Aleks! Mor info &lt;a href=&quot;http://www.psychosynth.com/index.php/Ubuntu_Repository&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
	<pubDate>Sat, 27 Jun 2009 06:36:59 +0000</pubDate>
</item>
<item>
	<title>vc-dwim @ Savannah: vc-dwim 1.1 released</title>
	<guid>http://savannah.gnu.org/forum/forum.php?forum_id=5861</guid>
	<link>http://savannah.gnu.org/forum/forum.php?forum_id=5861</link>
	<description>&lt;p&gt;See the release announcement here:
&lt;br /&gt;
&amp;lt;&lt;a href=&quot;http://lists.gnu.org/archive/html/bug-vc-dwim/2009-06/msg00002.html&quot;&gt;http://lists.gnu.org/archive/html/bug-vc-dwim/2009-06/msg00002.html&lt;/a&gt;&amp;gt;&lt;br /&gt;
&lt;/p&gt;</description>
	<pubDate>Thu, 25 Jun 2009 06:18:16 +0000</pubDate>
</item>
<item>
	<title>Smalltalk development blog: DRY package description ... in Smalltalk</title>
	<guid>http://smalltalk.gnu.org/330 at http://smalltalk.gnu.org</guid>
	<link>http://smalltalk.gnu.org/blog/swsch/dry-package-description-smalltalk</link>
	<description>&lt;p&gt;So here we go again ... this time using native Smalltalk &lt;em&gt;code&lt;/em&gt; to describe package contents in a DRY way:&lt;br /&gt;
&lt;/p&gt;&lt;pre&gt;Eval [
  PackageBuilder new
    name: 'MyPackage';
    namespace: 'MyNamespace';
    prereq: 'Package1';
    prereq: 'Package2';
    ...
    testsBelow: 'Tests' matching: '*.st';
    filein: 'File1.st';
    filein: 'File2.st';
    ...
    buildXml
]&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://smalltalk.gnu.org/blog/swsch/dry-package-description-smalltalk&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Wed, 24 Jun 2009 13:53:31 +0000</pubDate>
</item>
<item>
	<title>Simon Josefsson: Thread Safe Functions</title>
	<guid>http://blog.josefsson.org/?p=104</guid>
	<link>http://blog.josefsson.org/2009/06/23/thread-safe-functions/</link>
	<description>&lt;p&gt;I have read &lt;a href=&quot;http://etbe.coker.com.au/2009/06/14/finding-thread-unsafe-code/&quot;&gt;Russel Coker’s nice article on identifying use of thread unsafe functions&lt;/a&gt;.  This reminded me of a script I wrote a long time ago that is part of &lt;a href=&quot;http://www.gnu.org/software/gsasl/&quot;&gt;GNU SASL&lt;/a&gt;’s regression suite: &lt;a href=&quot;http://git.savannah.gnu.org/cgit/gsasl.git/tree/tests/threadsafety?id=8b699b8f45db2a1afaf226dc8a37e852530edee9&quot;&gt;threadsafety&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As you can see, my script looks for &lt;a href=&quot;http://www.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_09_01&quot;&gt;functions mentioned in the latest POSIX specification as being thread unsafe&lt;/a&gt;.  In the last POSIX release, they actually removed some older interfaces (e.g., gethostbyname) so the script also checks for &lt;a href=&quot;http://www.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_09.html#tag_02_09_01&quot;&gt;thread-unsafe functions mentioned in one older POSIX specification&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Russel’s approach is to look for man pages of functions ending with &lt;code&gt;_r&lt;/code&gt; and labeling the non-&lt;code&gt;_r&lt;/code&gt;-function as a thread unsafe function.  Russel’s and my approach are quite different, so I wanted to compare the results.  There is potential for me to add more functions to search for.  I still want to preserve my approach of explicitly listing known thread unsafe functions, though.&lt;/p&gt;
&lt;p&gt;Running Russel’s command, I get a list of functions that my script catches that Russel’s doesn’t, and vice versa.  For reference, the functions that my script catches that Russel’s doesn’t are:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;basename catgets dbm_clearerr dbm_close dbm_delete dbm_error dbm_fetch dbm_firstkey dbm_nextkey dbm_open dbm_store dirname dlerror endgrent endpwent endutxent ftw gcvt getc_unlocked getchar_unlocked getenv getopt getutxent getutxid getutxline inet_ntoa l64a lgamma lgammaf lgammal localeconv nftw nl_langinfo putc_unlocked putchar_unlocked putenv pututxline setenv setgrent setpwent setutxent strsignal system unsetenv wcstombs wctomb&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The list contains lgamma, lgammaf, and lgammal which are all excluded by Russel’s command.  I don’t understand why — according to the man page, the functions uses a global variable for sign, which doesn’t seem thread safe.  So it seems right to include them?&lt;/p&gt;
&lt;p&gt;What’s more interesting (for me) is the list of functions that Russel’s script catches that my script currently doesn’t.  Here is the list:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;erand48 ether_aton ether_ntoa fgetgrent fgetpwent fgetspent getaliasbyname getaliasent gethostbyname2 getmntent getnetgrent getrpcbyname getrpcbynumber getrpcent getspent getspnam getutent getutid getutline initstate jrand48 lcong48 nrand48 qecvt qfcvt random seed48 setstate sgetspent srand48 srandom tmpnam&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;I started looking into each function. For &lt;code&gt;erand48&lt;/code&gt; there is a &lt;code&gt;erand48_r&lt;/code&gt; function in glibc, and the former does indeed seem to use a global variable.  However, as far as I can tell from the POSIX specification, &lt;code&gt;erand48&lt;/code&gt; should be thread safe.  So I filed a &lt;a href=&quot;http://sourceware.org/bugzilla/show_bug.cgi?id=10320&quot;&gt;glibc bug about it&lt;/a&gt;.  The same concern may hold for &lt;code&gt;jrand48&lt;/code&gt;, &lt;code&gt;lcong48&lt;/code&gt;, &lt;code&gt;nrand48&lt;/code&gt;, &lt;code&gt;seed48&lt;/code&gt;, and &lt;code&gt;srand48&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;I noticed that &lt;code&gt;initstate&lt;/code&gt;, &lt;code&gt;random&lt;/code&gt;, &lt;code&gt;setstate&lt;/code&gt;, and &lt;code&gt;srandom&lt;/code&gt; are defined by latest POSIX, but not mentioned as a thread-unsafe functions.  Possibly a bug in the POSIX specification?&lt;/p&gt;
&lt;p&gt;I also noticed that I had missed to include &lt;code&gt;tmpnam&lt;/code&gt; even though it is mentioned separately in the POSIX link.&lt;/p&gt;
&lt;p&gt;The rest of the functions are not documented by POSIX, and presumably thread unsafe (although I didn’t read the man page or source code for each of them).&lt;/p&gt;
&lt;p&gt;In the end, I ended up adding several new functions to check for.  The latest script is always available from:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://git.savannah.gnu.org/cgit/gsasl.git/tree/tests/threadsafety&quot;&gt;http://git.savannah.gnu.org/cgit/gsasl.git/tree/tests/threadsafety&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;So, finally, did the updated script catch any use of thread-unsafe functions in GNU SASL?   Nope.&lt;/p&gt;</description>
	<pubDate>Tue, 23 Jun 2009 20:17:02 +0000</pubDate>
</item>
<item>
	<title>Smalltalk development blog: Iliad examples explained part II</title>
	<guid>http://smalltalk.gnu.org/329 at http://smalltalk.gnu.org</guid>
	<link>http://smalltalk.gnu.org/blog/nico/iliad-examples-explained-part-ii</link>
	<description>&lt;p&gt;In the &lt;a href=&quot;http://smalltalk.gnu.org/wiki/Iliad_examples_explained_part_I%2C_the_counter_example&quot; class=&quot;&quot;&gt;previous part&lt;/a&gt;, I explained the basic concepts behind Iliad Applications and Widgets, through the simple counter example. This part will show how to use &lt;a href=&quot;http://lukas-renggli.ch/smalltalk/magritte&quot;&gt;Magritte&lt;/a&gt; to automatically build views and editors with data validation.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://smalltalk.gnu.org/blog/nico/iliad-examples-explained-part-ii&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Tue, 23 Jun 2009 12:49:20 +0000</pubDate>
</item>
<item>
	<title>Smalltalk development blog: Iliad (subclassing Sessions)</title>
	<guid>http://smalltalk.gnu.org/328 at http://smalltalk.gnu.org</guid>
	<link>http://smalltalk.gnu.org/blog/joe/iliad-subclassing-sessions</link>
	<description>&lt;p&gt;Hi again,&lt;/p&gt;

&lt;p&gt;it took me some time today with big support from Nicolas, to figure out how to using an own version of a session.&lt;/p&gt;

&lt;p&gt;And before you run into the same mistake than me, I would like to decribe the really simple steps to use an own Session for your Iliad-Applications.&lt;/p&gt;

&lt;p&gt;I made some errors in reasoning, which was my problem at the end. But here's how a session could be subclassed and used.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://smalltalk.gnu.org/blog/joe/iliad-subclassing-sessions&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Mon, 22 Jun 2009 23:00:20 +0000</pubDate>
</item>
<item>
	<title>Smalltalk development blog: DRY package description</title>
	<guid>http://smalltalk.gnu.org/327 at http://smalltalk.gnu.org</guid>
	<link>http://smalltalk.gnu.org/blog/swsch/dry-package-description</link>
	<description>&lt;p&gt;If you are used to having one class per file, package descriptions tend to get a bit unwieldy. Take a look at Iliad's Core/package.xml, as an example. What you see is a lot of typing, some of it, gasp, even repeated. Let's DRY this up a bit.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://smalltalk.gnu.org/blog/swsch/dry-package-description&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Mon, 22 Jun 2009 07:35:17 +0000</pubDate>
</item>
<item>
	<title>Smalltalk development blog: Iliad (#show:onAnswer:)</title>
	<guid>http://smalltalk.gnu.org/326 at http://smalltalk.gnu.org</guid>
	<link>http://smalltalk.gnu.org/blog/joe/iliad-show-onanswer</link>
	<description>&lt;p&gt;Hi!&lt;/p&gt;

&lt;p&gt;Just a short example of the &lt;strong&gt;#show:onAnswer:&lt;/strong&gt; method of Iliad.&lt;/p&gt;

&lt;p&gt;You can call an additional web-page in Iliad and continue afterwards, if the user ends the work on that page, in the same web-page, where you started the call to this page without wild tricks...&lt;/p&gt;

&lt;p&gt;So I created a new page for the &lt;strong&gt;I forgot my password&lt;/strong&gt; case for the login dialog.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://smalltalk.gnu.org/blog/joe/iliad-show-onanswer&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Mon, 22 Jun 2009 00:40:04 +0000</pubDate>
</item>
<item>
	<title>Smalltalk development blog: Iliad (session and statefull forms)</title>
	<guid>http://smalltalk.gnu.org/325 at http://smalltalk.gnu.org</guid>
	<link>http://smalltalk.gnu.org/blog/joe/iliad-session-and-statefull-forms</link>
	<description>&lt;p&gt;Hello again.&lt;/p&gt;

&lt;p&gt;The weekend ends and I used today, to get a bit deeper into Iliad.&lt;/p&gt;

&lt;p&gt;I created the login-dialog, which shows you, that if you open it again, the same data apears again that you already typed in and I used the session, to store a switch, if the user is logged in.&lt;/p&gt;

&lt;p&gt;So, the first thing I did, was to overwrite the &lt;strong&gt;Application initialize&lt;/strong&gt; method, to initialize the new switch, which I want to save into the session.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;&lt;pre&gt;initialize [
    super initialize.
    self session preferenceAt: #userLoggedIn put: false.
]
&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://smalltalk.gnu.org/blog/joe/iliad-session-and-statefull-forms&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Mon, 22 Jun 2009 00:06:45 +0000</pubDate>
</item>
<item>
	<title>Nick Clifton: GNU Toolchain Update, June 2009</title>
	<guid>http://nickclifton.livejournal.com/3238.html</guid>
	<link>http://nickclifton.livejournal.com/3238.html</link>
	<description>Hi Guys,&lt;br /&gt;&lt;br /&gt;  Here are the highlights of the changes in the GNU toolchain over the last month:&lt;br /&gt;&lt;br /&gt;  * There is a problem/feature with ELF based versions of the ARM port&lt;br /&gt;    of &lt;em&gt;gas&lt;/em&gt;.  If a binary value is inserted into a code section (via a&lt;br /&gt;   &lt;em&gt; .word&lt;/em&gt; pseudo op for example), then it is marked as being data.&lt;br /&gt;    This means that when &lt;em&gt;objdump&lt;/em&gt; disassembles it for example, the&lt;br /&gt;    binary value will not be displayed as instruction, but rather as a&lt;br /&gt;    hexadecimal constant.  This behaviour is deliberate.  Binary&lt;br /&gt;    values in code sections are usually jump tables or constant pools&lt;br /&gt;    and they should not be decoded.&lt;br /&gt;&lt;br /&gt;    Sometimes however it is desirable to be able to insert a binary&lt;br /&gt;    value and have it be treated as an instruction.  A patch to create&lt;br /&gt;    a new pseudo-op &lt;em&gt;.iword&lt;/em&gt; as rejected as being too simplistic, but a&lt;br /&gt;    more a complicated patch is being worked upon.  In the meantime&lt;br /&gt;    however &lt;em&gt;objdump&lt;/em&gt; has been fixed so that if a file is disassembled&lt;br /&gt;    using the &lt;em&gt;-D&lt;/em&gt; (or &lt;em&gt;--disassemble-all&lt;/em&gt;) command line switch then the&lt;br /&gt;    data values &lt;strong&gt;will&lt;/strong&gt; be disassembled.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  * Work continues on support for the new &lt;em&gt;STT_GNU_IFUN&lt;/em&gt;C symbol type.&lt;br /&gt;    Essentially this adds the ability for the run-time system to&lt;br /&gt;    programatically choose a function to satisfy a call into a dynamic&lt;br /&gt;    library. So for example if a program contained this piece of code:&lt;br /&gt;&lt;br /&gt;      int num_cpus = get_num_cpus ();&lt;br /&gt;&lt;br /&gt;    and &lt;em&gt;gen_num_cpus&lt;/em&gt; was a dynamic library function which returns the&lt;br /&gt;    number of CPUs available on the current system.  In a normal&lt;br /&gt;    library &lt;em&gt;gen_num_cpus&lt;/em&gt; might be coded like this:&lt;br /&gt;&lt;br /&gt;      int&lt;br /&gt;      get_num_cpus (void)&lt;br /&gt;      {&lt;br /&gt;        return syscall_num_cpus ();&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;    Where &lt;em&gt;syscall_num_cpus&lt;/em&gt; is a (made up) system call.  The problem&lt;br /&gt;    with this version is that it has to make the system call each time&lt;br /&gt;    it is invoked.  This could be fixed by caching the result:&lt;br /&gt;&lt;br /&gt;      int&lt;br /&gt;      get_num_cpus (void)&lt;br /&gt;      {&lt;br /&gt;        static int cached_num_cpus = 0;&lt;br /&gt;        if (cached_num_cpus == 0)&lt;br /&gt;          cached_num_cpus = syscall_num_cpus ();&lt;br /&gt;        return cached_num_cpus;&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;    Which is better, but it is still less efficient that this version&lt;br /&gt;    which makes use of the STT_GNU_IFUNC functionality:&lt;br /&gt;    &lt;br /&gt;      int one_cpu (void) { return 1; }&lt;br /&gt;      int two_cpus (void) { return 2; }&lt;br /&gt;      int four_cpus (void) { return 4; }&lt;br /&gt;&lt;br /&gt;      typedef int (* int_func)(void);&lt;br /&gt;&lt;br /&gt;      int_func get_num_cpus (void) __attribute__((ifunc));&lt;br /&gt; &lt;br /&gt;      int_func&lt;br /&gt;      get_num_cpus (void)&lt;br /&gt;      {&lt;br /&gt;        switch (syscall_num_cpus ())&lt;br /&gt;        {&lt;br /&gt;        case 1: return one_cpu;&lt;br /&gt;        case 2: return two_cpus;&lt;br /&gt;        case 4: return four_cpus;&lt;br /&gt;        }&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;    So the first time that &lt;em&gt;get_num_cpus&lt;/em&gt; is called the loader will&lt;br /&gt;    invoke the real &lt;em&gt;get_num_cpus&lt;/em&gt; function.  This returns a function&lt;br /&gt;    pointer however which is then used to replace get_num_cpus in the&lt;br /&gt;    dynamic library's lookup table.  Then the function pointer is&lt;br /&gt;    invoked to generate the value to return to the user.s code.  From&lt;br /&gt;    now on however calls to &lt;em&gt;get_num_cpus&lt;/em&gt; will be short circuited to&lt;br /&gt;    the much simpler non-system call using versions, making for an&lt;br /&gt;    even after response.&lt;br /&gt;&lt;br /&gt;    All of this functionality is still under development at the&lt;br /&gt;    moment, but it should prove useful once it is ready for prime&lt;br /&gt;    time.&lt;br /&gt;    &lt;br /&gt;&lt;br /&gt;  * Half-Precision Floating Point.&lt;br /&gt;&lt;br /&gt;    On ARM targets, GCC supports half-precision (16-bit) floating&lt;br /&gt;    point via the &lt;em&gt;__fp16&lt;/em&gt; type.  You must enable this type explicitly &lt;br /&gt;    with the &lt;em&gt;-mfp16-format&lt;/em&gt; command-line option in order to use it.&lt;br /&gt;&lt;br /&gt;    ARM supports two incompatible representations for half-precision&lt;br /&gt;    floating-point values.  You must choose one of the representations&lt;br /&gt;    and use it consistently in your program.&lt;br /&gt;&lt;br /&gt;    Specifying &lt;em&gt;-mfp16-format=ieee&lt;/em&gt; selects the IEEE 754-2008 format.&lt;br /&gt;    This format can represent normalised values in the range of 2^-14&lt;br /&gt;    to 65504.  There are 11 bits of significand precision,&lt;br /&gt;    approximately 3 decimal digits.&lt;br /&gt;&lt;br /&gt;    Specifying &lt;em&gt;-mfp16-format=alternative&lt;/em&gt; selects the ARM alternative&lt;br /&gt;    format.  This representation is similar to the IEEE format, but&lt;br /&gt;    does not support infinities or NaNs.  Instead, the range of&lt;br /&gt;    exponents is extended, so that this format can represent&lt;br /&gt;    normalised values in the range of 2^-14 to 131008.&lt;br /&gt;&lt;br /&gt;    The &lt;em&gt;__fp16&lt;/em&gt; type is a storage format only.  For purposes of&lt;br /&gt;    arithmetic and other operations, &lt;em&gt;__fp16 &lt;/em&gt;values in C or C++&lt;br /&gt;    expressions are automatically promoted to float.  In addition,&lt;br /&gt;    you cannot declare a function with a return value or parameters &lt;br /&gt;    of type &lt;em&gt;__fp16&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;    Note that conversions from double to &lt;em&gt;__fp1&lt;/em&gt;6 involve an&lt;br /&gt;    intermediate conversion to float.  Because of rounding, this can&lt;br /&gt;    sometimes produce a different result than a direct conversion.&lt;br /&gt;&lt;br /&gt;    ARM provides hardware support for conversions between &lt;em&gt;__fp16&lt;/em&gt; and&lt;br /&gt;    float values as an extension to VFP and NEON (Advanced SIMD).&lt;br /&gt;    GCC generates code using the instructions provided by this&lt;br /&gt;    extension if you compile with the options &lt;em&gt;-mfpu=neon-fp16&lt;/em&gt;&lt;br /&gt;    &lt;em&gt;-mfloat-abi=softfp&lt;/em&gt;, in addition to the &lt;em&gt;-mfp16-format&lt;/em&gt; option to&lt;br /&gt;    select a half-precision format.  &lt;br /&gt;&lt;br /&gt;    Language-level support for the &lt;em&gt;__fp16&lt;/em&gt; data type is&lt;br /&gt;    independent of whether GCC generates code using hardware&lt;br /&gt;    floating-point instructions.  In cases where hardware support is&lt;br /&gt;    not specified, GCC implements conversions between &lt;em&gt;__fp16&lt;/em&gt; and&lt;br /&gt;    float values as library calls.&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;  * A new warning flag has been added to GCC: &lt;em&gt;-Wjump-misses-init&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;    This produces a Warning message if a goto statement or a switch&lt;br /&gt;    statement jumps forward across the initialisation of a variable,&lt;br /&gt;    or jumps backward to a label after the variable has been&lt;br /&gt;    initialised.  This only warns about variables which are&lt;br /&gt;    initialised when they are declared.  This warning is only&lt;br /&gt;    supported for C and Objective C; in C++ this sort of branch is an &lt;br /&gt;    error in any case.&lt;br /&gt;&lt;br /&gt;    &lt;em&gt;-Wjump-misses-init&lt;/em&gt; is included in &lt;em&gt;-Wall&lt;/em&gt; and &lt;em&gt;-Wc++-compat&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  * A new command line option has been added to GCC to allow the&lt;br /&gt;    automatic comparison of code generation with and without debugging&lt;br /&gt;    enabled: &lt;em&gt;-fcompare-debug[=&amp;lt;opts&amp;gt;]&lt;/em&gt;&lt;br /&gt;    &lt;br /&gt;    What this option does is to tell GCC that if no error occurs&lt;br /&gt;    during compilation, run the compiler a second time, adding &lt;em&gt;&amp;lt;opts&amp;gt;&lt;/em&gt;&lt;br /&gt;    to the command line.  Then dump the final internal representation&lt;br /&gt;    in both compilations, and print an error if they differ.&lt;br /&gt;&lt;br /&gt;    If the equal sign is omitted, the default option &lt;em&gt;-gtoggle&lt;/em&gt; is&lt;br /&gt;    used.  This option turns off generation of debug info, if leaving&lt;br /&gt;    out this option would have generated it, or turn it on at level 2&lt;br /&gt;    otherwise.&lt;br /&gt;&lt;br /&gt;Cheers&lt;br /&gt;  Nick&lt;br /&gt;</description>
	<pubDate>Sun, 21 Jun 2009 21:15:46 +0000</pubDate>
</item>
<item>
	<title>Smalltalk development blog: Iliad examples explained part I: the counter example</title>
	<guid>http://smalltalk.gnu.org/323 at http://smalltalk.gnu.org</guid>
	<link>http://smalltalk.gnu.org/blog/nico/iliad-examples-explained-part-i-counter-example</link>
	<description>&lt;p&gt;Iliad comes with several examples: the seaside-like counter, a simple blog using Magritte, and a todo list application.&lt;/p&gt;

&lt;p&gt;I'll try to explain the basics of Iliad through those examples. I will start with the counter example because it is the simplest one and it will look familiar to Seaside users.&lt;/p&gt;

&lt;p&gt;In the following it is assumed that Iliad is correctly &lt;a href=&quot;http://iliad.bioskop.fr/wiki/iliad/Installation_guide&quot;&gt;installed&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;&lt;h2&gt;Elements and Widgets&lt;/h2&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;To use Iliad, you need to understand two important parts of the framework: Widgets and Elements.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://smalltalk.gnu.org/blog/nico/iliad-examples-explained-part-i-counter-example&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Sun, 21 Jun 2009 13:38:07 +0000</pubDate>
</item>
<item>
	<title>libiconv @ Savannah: Transition from CVS to Git</title>
	<guid>http://savannah.gnu.org/forum/forum.php?forum_id=5858</guid>
	<link>http://savannah.gnu.org/forum/forum.php?forum_id=5858</link>
	<description>&lt;p&gt;The source is now maintained in a Git repository. See &lt;a href=&quot;https://savannah.gnu.org/git/?group=libiconv&quot;&gt;https://savannah.gnu.org/git/?group=libiconv&lt;/a&gt; for details. The CVS repository is now out-of-date.&lt;br /&gt;
&lt;/p&gt;</description>
	<pubDate>Sun, 21 Jun 2009 11:47:33 +0000</pubDate>
</item>
<item>
	<title>libsigsegv @ Savannah: Transition from CVS to Git</title>
	<guid>http://savannah.gnu.org/forum/forum.php?forum_id=5857</guid>
	<link>http://savannah.gnu.org/forum/forum.php?forum_id=5857</link>
	<description>&lt;p&gt;The source is now maintained in a Git repository. See &lt;a href=&quot;https://savannah.gnu.org/git/?group=libsigsegv&quot;&gt;https://savannah.gnu.org/git/?group=libsigsegv&lt;/a&gt; for details. The CVS repository is now out-of-date.&lt;br /&gt;
&lt;/p&gt;</description>
	<pubDate>Sun, 21 Jun 2009 11:47:06 +0000</pubDate>
</item>
<item>
	<title>gperf @ Savannah: Transition from CVS to Git</title>
	<guid>http://savannah.gnu.org/forum/forum.php?forum_id=5856</guid>
	<link>http://savannah.gnu.org/forum/forum.php?forum_id=5856</link>
	<description>&lt;p&gt;The source is now maintained in a Git repository. See &lt;a href=&quot;https://savannah.gnu.org/git/?group=gperf&quot;&gt;https://savannah.gnu.org/git/?group=gperf&lt;/a&gt; for details. The CVS repository is now out-of-date.&lt;br /&gt;
&lt;/p&gt;</description>
	<pubDate>Sun, 21 Jun 2009 11:45:49 +0000</pubDate>
</item>
<item>
	<title>Smalltalk development blog: One step further with Iliad</title>
	<guid>http://smalltalk.gnu.org/322 at http://smalltalk.gnu.org</guid>
	<link>http://smalltalk.gnu.org/blog/joe/one-step-further-iliad</link>
	<description>&lt;p&gt;Hi again.&lt;/p&gt;

&lt;p&gt;Now I want you to show, how to use the subclassed Iliad.Application class as a real dispatcher.&lt;/p&gt;

&lt;p&gt;First, I will create a menu-class, that our web-pages has a seperate menu. And this menu is the same on every page, I created an extra class for that.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://smalltalk.gnu.org/blog/joe/one-step-further-iliad&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Sun, 21 Jun 2009 00:59:16 +0000</pubDate>
</item>
<item>
	<title>Smalltalk development blog: First steps with Iliad (web development with gnu-smalltalk and Iliad)</title>
	<guid>http://smalltalk.gnu.org/321 at http://smalltalk.gnu.org</guid>
	<link>http://smalltalk.gnu.org/blog/joe/first-steps-iliad-web-development-gnu-smalltalk-and-iliad</link>
	<description>&lt;p&gt;Hi!&lt;/p&gt;

&lt;p&gt;The last one and a half week, I was playing with seaside, but now, Nicolas Petton introduced a new web-development framework which is called Iliad &lt;a href=&quot;http://smalltalk.gnu.org/blog/nico/iliad-new-lightweight-web-framework-gnu-smalltalk&quot;&gt;http://smalltalk.gnu.org/blog/nico/iliad-new-lightweight-web-framework-gnu-smalltalk&lt;/a&gt; that seems so interesting, that I decided to try it out for a new web application, which is currently in a planned status.&lt;/p&gt;

&lt;p&gt;And because the documentation and howtos for Iliad is currently not widely accessible, I decided to write a bit about my expiriences.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://smalltalk.gnu.org/blog/joe/first-steps-iliad-web-development-gnu-smalltalk-and-iliad&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Sat, 20 Jun 2009 12:42:10 +0000</pubDate>
</item>
<item>
	<title>freedink @ Savannah: FreeDink on EeePC</title>
	<guid>http://savannah.gnu.org/forum/forum.php?forum_id=5854</guid>
	<link>http://savannah.gnu.org/forum/forum.php?forum_id=5854</link>
	<description>&lt;p&gt;&lt;a href=&quot;http://www.freedink.org/screenshots/eeepc-701.jpg&quot;&gt;http://www.freedink.org/screenshots/eeepc-701.jpg&lt;/a&gt;&lt;br /&gt;
&lt;/p&gt;</description>
	<pubDate>Fri, 19 Jun 2009 17:16:24 +0000</pubDate>
</item>
<item>
	<title>gnupod @ Savannah: gnupod moved from CVS to GIT...</title>
	<guid>http://savannah.gnu.org/forum/forum.php?forum_id=5853</guid>
	<link>http://savannah.gnu.org/forum/forum.php?forum_id=5853</link>
	<description>&lt;p&gt;...and the people rejoiced.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Now everybody can get a piece of gnupod by running
&lt;br /&gt;
&lt;/p&gt;
&lt;input readonly=&quot;readonly&quot; type=&quot;text&quot; class=&quot;verbatim&quot; value=&quot; git clone git://git.savannah.gnu.org/gnupod.git &quot; size=&quot;60&quot; /&gt;

&lt;p&gt;This creates a gnupod sub directory with the current
&lt;br /&gt;
bleeding edge development version of gnupod.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;One more
&lt;br /&gt;
&lt;textarea readonly=&quot;readonly&quot; rows=&quot;3&quot; cols=&quot;80&quot; class=&quot;verbatim&quot;&gt;autoconf
configure
make install
&lt;/textarea&gt;
&lt;/p&gt;
&lt;p&gt;and you've got it installed.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Please uninstall a previous version of gnupod if you installed
&lt;br /&gt;
it from your distribution's packet management system (in Ubuntu
&lt;br /&gt;
and Debian the packet is called &quot;gnupod-tools&quot;) as the paths for
&lt;br /&gt;
installing perl modules might differ and you may end up with two
&lt;br /&gt;
installed versions of some gnupod modules and executables.&lt;br /&gt;
&lt;/p&gt;</description>
	<pubDate>Fri, 19 Jun 2009 15:09:04 +0000</pubDate>
</item>
<item>
	<title>Smalltalk development blog: Iliad, a new lightweight web framework for GNU Smalltalk</title>
	<guid>http://smalltalk.gnu.org/320 at http://smalltalk.gnu.org</guid>
	<link>http://smalltalk.gnu.org/blog/nico/iliad-new-lightweight-web-framework-gnu-smalltalk</link>
	<description>&lt;p&gt;A new lightweight web framework for GNU Smalltalk named &lt;a href=&quot;http://iliad.bioskop.fr&quot;&gt;Iliad&lt;/a&gt; is available for download.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;&lt;pre&gt;svn co &lt;a href=&quot;http://bioskop.fr/svn/gst/iliad/trunk&quot; title=&quot;http://bioskop.fr/svn/gst/iliad/trunk&quot;&gt;http://bioskop.fr/svn/gst/iliad/trunk&lt;/a&gt; iliad&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;We're working on this framework since a few months now, and we just wanted to share the code with others.&lt;/p&gt;

&lt;p&gt;For our personal needs, we wanted to have the following features in the framework: &lt;br /&gt;
&lt;/p&gt;&lt;ul&gt;
    &lt;li&gt; standalone stateful widgets&lt;/li&gt;
    &lt;li&gt; REST-like applications&lt;/li&gt;
    &lt;li&gt; simple API&lt;/li&gt;
    &lt;li&gt; easy to setup and deploy (no complicated configuration step)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://smalltalk.gnu.org/blog/nico/iliad-new-lightweight-web-framework-gnu-smalltalk&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Fri, 19 Jun 2009 15:05:10 +0000</pubDate>
</item>
<item>
	<title>xlogmaster @ Savannah: 1.6.2 Xlogmaster</title>
	<guid>http://savannah.gnu.org/forum/forum.php?forum_id=5851</guid>
	<link>http://savannah.gnu.org/forum/forum.php?forum_id=5851</link>
	<description>&lt;p&gt;GNU License to V3 and Automake cleanup&lt;br /&gt;
&lt;/p&gt;</description>
	<pubDate>Thu, 18 Jun 2009 01:24:42 +0000</pubDate>
</item>
<item>
	<title>Riccardo Mottola: Limited screen real estate</title>
	<guid>tag:blogger.com,1999:blog-15746899.post-4168796646300127684</guid>
	<link>http://multixden.blogspot.com/2009/06/limited-screen-real-estate.html</link>
	<description>&lt;a href=&quot;http://3.bp.blogspot.com/_4TJfaVrgjAU/SjgcuH5MeeI/AAAAAAAAAFc/39CcFia-Btw/s1600-h/letux-workspace.png&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_4TJfaVrgjAU/SjgcuH5MeeI/AAAAAAAAAFc/39CcFia-Btw/s200/letux-workspace.png&quot; style=&quot;margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 120px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5348056136220965346&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;The Letux 400 has a wide-VGA screen, 800x480 pixels. Bright, crisp and well readable, but sure an uncommon format. 800x600 was common for laptops for a long time.&lt;br /&gt;How do standard desktop applications fare on the Netbook? Some just don't fit, but there are several which just work and allow to have a small workspace available.&lt;br /&gt;&lt;br /&gt;The first screenshot shows that albeit crammed, the Workspace is fine. The panel with the folders could be closed to gain even more space. Behind you can see the Terminal application. Sure, only one can be seen at a time, but it is enough to work.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_4TJfaVrgjAU/SjgdT-wLmUI/AAAAAAAAAFk/sUhrl8VZFwo/s1600-h/letux-addressmanager.png&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_4TJfaVrgjAU/SjgdT-wLmUI/AAAAAAAAAFk/sUhrl8VZFwo/s200/letux-addressmanager.png&quot; style=&quot;margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 120px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5348056786602268994&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;Then we have the AddressManager showing up in all its glory. Fits tight but fits. A really useful application on a Netbook!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_4TJfaVrgjAU/SjgdtooRbbI/AAAAAAAAAFs/sAQ5Zbn9lt4/s1600-h/letux-vespucci.png&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_4TJfaVrgjAU/SjgdtooRbbI/AAAAAAAAAFs/sAQ5Zbn9lt4/s200/letux-vespucci.png&quot; style=&quot;margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 120px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5348057227340115378&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;The last image shows the Vespucci browser on the Letux. Works fine.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Note: Screenshots are from applications actually running on the Letux 400, not mock-ups.&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/15746899-4168796646300127684?l=multixden.blogspot.com&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 16 Jun 2009 22:35:38 +0000</pubDate>
	<author>noreply@blogger.com (Riccardo)</author>
</item>
<item>
	<title>freeipmi @ Savannah: FreeIPMI 0.7.10 Released</title>
	<guid>http://savannah.gnu.org/forum/forum.php?forum_id=5849</guid>
	<link>http://savannah.gnu.org/forum/forum.php?forum_id=5849</link>
	<description>&lt;p&gt;&lt;a href=&quot;http://ftp.zresearch.com/pub/freeipmi/0.7.10/&quot;&gt;http://ftp.zresearch.com/pub/freeipmi/0.7.10/&lt;/a&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;0.7.10 - 06/16/09
&lt;br /&gt;
-----------------
&lt;br /&gt;
o In all tools, properly deal with workaround flags when specifying
&lt;br /&gt;
  different devices than what workaround flags are intended for.
&lt;br /&gt;
o In bmc-config, fix bug setting volatile vs. non-volatile settings.
&lt;br /&gt;
o Fix in-band probing priority ordering to fix issues with machines
&lt;br /&gt;
  that support multiple drivers.
&lt;br /&gt;
o In ipmi-sensors and ipmimonitoring, continue reading sensors after a
&lt;br /&gt;
  &quot;command response cannot be provided&quot; error.
&lt;br /&gt;
o Add additional workaround handling into Sun 2.0 workaround.
&lt;br /&gt;
o In ipmimonitoring, fix sunbmc driver interface bug.
&lt;br /&gt;
o In ipmiconsole, consider IPMICONSOLE_ERR_BMC_IMPLEMENTATION a
&lt;br /&gt;
  non-fatal error.
&lt;br /&gt;
o Update workaround documentation with additional motherboards.&lt;br /&gt;
&lt;/p&gt;</description>
	<pubDate>Tue, 16 Jun 2009 22:12:35 +0000</pubDate>
</item>

</channel>
</rss>
