<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">

<channel>
	<title>BSD Planet * BSD People</title>
	<link>http://people.bsdplanet.net/</link>
	<language>en</language>
	<description>BSD Planet * BSD People - http://people.bsdplanet.net/</description>

<item>
	<title>FreeBSD Diary: 3Ware Nagios plugin</title>
	<guid>http://www.freebsddiary.org/3ware-nagios-plugin.php</guid>
	<link>http://www.freebsddiary.org/3ware-nagios-plugin.php</link>
	<description>I liked it, but I wanted more</description>
	<pubDate>Thu, 02 Sep 2010 23:48:07 +0000</pubDate>
</item>
<item>
	<title>Hubertf's NetBSD Blog: BSD Professional (BSDP) Certification Exam Objectives published</title>
	<guid>http://www.feyrer.de/NetBSD/blog.html/nb_20100901_2116.html</guid>
	<link>http://www.feyrer.de/NetBSD/blog.html/nb_20100901_2116.html</link>
	<description>&lt;img src=&quot;http://www.diablotin.com/images/logo_BSDcertification.gif&quot; align=&quot;right&quot;&gt;
In its mission to create certifications for 
BSD Un*x systems, the 
&lt;a href=&quot;http://www.bsdcertification.org/&quot;&gt;BSD Certification Group&lt;/a&gt;
has now 
&lt;a href=&quot;http://www.bsdcertification.org/news/pr060.html&quot;&gt;published the &quot;BSD Professional&quot; (BSDP) certification
exam objectives&lt;/a&gt;:
&lt;p&gt;

``&lt;i&gt; The 78 page document outlines 11 knowledge domains, each containing a number of objectives, that form the basis of the certification. The document, a collaborative effort by members of the BSD community, is a followup effort to the BSDP Job Task Analysis report published earlier this year.
&lt;p&gt;

&quot;The BSDP Certification Requirements Document provides a comprehensive set of objectives that a BSD Professional should master, ranging from general system administration to advanced security and system maintenance,&quot; said Babak Farrokhi, a seasoned BSD administrator and author of 'Network Administration with FreeBSD 7'.
&lt;p&gt;

Set to launch in 2011, the BSD Professional certification exam has been in development for over two years. Since the launch of the BSD Associate exam in 2008, there has been a continual effort to put together a certification for the next level of achievement for BSD system administrators.
&lt;p&gt;

&quot;The BSD Professional certification is aimed at assessing practical skills of senior level BSD system administrators,&quot; said Jim Brown, BSDCG board member. &quot;With the publication of these objectives, the BSD Certification Group is aiming to produce a high quality certification, giving the computing industry a new standard for excellence in system administration.&quot;
&lt;p&gt;

The BSDP Requirements document is available as a 
&lt;a href=&quot;http://www.bsdcertification.org/downloads/certreq_bsdp_en.pdf&quot;&gt;downloadable PDF&lt;/a&gt; in English&lt;/i&gt;''
&lt;p&gt;

The publication of the BSDP exam objectives is the next
step after 
&lt;a href=&quot;http://www.bsdcertification.org/news/pr018.html&quot;&gt;the BSD Associate (BSDA) certification exam objectives were published&lt;/a&gt;
in 2005, which was then followed by quite a number of successful
BSDA certifications. 
See 
&lt;a href=&quot;http://www.bsdcertification.org/&quot;&gt;the BSD Certification group's website&lt;/a&gt;
for more details!</description>
	<pubDate>Wed, 01 Sep 2010 21:28:00 +0000</pubDate>
</item>
<item>
	<title>FreeBSD Diary: Where is my SCSI card?</title>
	<guid>http://www.freebsddiary.org/missing-adaptec.php</guid>
	<link>http://www.freebsddiary.org/missing-adaptec.php</link>
	<description>Things are hidden right before your eyes</description>
	<pubDate>Sun, 29 Aug 2010 23:48:05 +0000</pubDate>
</item>
<item>
	<title>FreeBSD Diary: cssh - cluster ssh</title>
	<guid>http://www.freebsddiary.org/cssh.php</guid>
	<link>http://www.freebsddiary.org/cssh.php</link>
	<description>Sometimes you need more than one</description>
	<pubDate>Fri, 20 Aug 2010 00:48:07 +0000</pubDate>
</item>
<item>
	<title>Hubertf's NetBSD Blog: New NetBSD Core Team announced</title>
	<guid>http://www.feyrer.de/NetBSD/blog.html/nb_20100816_2220.html</guid>
	<link>http://www.feyrer.de/NetBSD/blog.html/nb_20100816_2220.html</link>
	<description>NetBSD's core team is responsible for technical steering
of the project. In the past the group was five people,
and it was increased to seven people now. 
Read more in
&lt;a href=&quot;http://mail-index.netbsd.org/netbsd-announce/2010/08/16/msg000106.html&quot;&gt;Alistair Crooks' announcement&lt;/a&gt;:
&lt;p&gt;

``&lt;i&gt;We take great pleasure in announcing that the NetBSD core team,
responsible for technical management within the NetBSD project, has
increased its numbers to seven.  This is to help in the running of a
project with an ever-growing source base and developer community, and
mirrors a similar change made to the board of directors, which has
worked extremely well.
&lt;p&gt;

To help with the running of the project, we have asked Antti Kantee
(pooka%NetBSD.org@localhost) and Chuck Silvers (chs%NetBSD.org@localhost), and 
they have
very kindly agreed to join the core team.  Antti is well known to many
both inside and outside the project, and has contributed many new and
exciting ideas, the most memorable and useful of these being the rump
kernel architecture.  Chuck is also well-known in NetBSD circles - his
work on UBC, and his recent update of the Linux emulation code are
just two examples of his contributions.
&lt;p&gt;

We therefore thank them both for their outstanding work to date, and
to their joining the core team to lead and guide progress in the future.
&lt;p&gt;

For the current core team:
&lt;p&gt;

&lt;ul&gt;
        Alistair Crooks -- agc%NetBSD.org@localhost &lt;br&gt;
        Matt Green -- mrg%NetBSD.org@localhost &lt;br&gt;
        Antti Kantee -- pooka%NetBSD.org@localhost &lt;br&gt;
        Chuck Silvers -- chs%NetBSD.org@localhost &lt;br&gt;
        Yamamoto Takashi -- yamt%NetBSD.org@localhost &lt;br&gt;
        Matt Thomas -- matt%NetBSD.org@localhost &lt;br&gt;
        Christos Zoulas -- christos%NetBSD.org@localhost &lt;/i&gt;''
&lt;/ul&gt;</description>
	<pubDate>Mon, 16 Aug 2010 22:30:00 +0000</pubDate>
</item>
<item>
	<title>Hubertf's NetBSD Blog: Of course it runs ... 2.11BSD (or: PDP-11 in a FPGA)</title>
	<guid>http://www.feyrer.de/NetBSD/blog.html/nb_20100809_2250.html</guid>
	<link>http://www.feyrer.de/NetBSD/blog.html/nb_20100809_2250.html</link>
	<description>&lt;img align=&quot;right&quot; src=&quot;http://www-linux.gsi.de/~mueller/retro/oc_w11/data/2010-08-08-w11a_n2.jpg&quot; width=&quot;20%&quot;&gt;
It's about time NetBSD gets the PDP11 port done:
the PDP-11/70 CPU core is now available as implementation on a FPGA-board,
and there's need for a newer operating system than
2.11BSD! Citing from the
&lt;a href=&quot;http://opencores.org/project,w11&quot;&gt;homepage&lt;/a&gt;:
&lt;p&gt;

``&lt;i&gt;The project contains a complete PDP-11 system: a 11/70 CPU with memory management unit, but without floating point unit, a basic set of UNIBUS peripherals (DL11, LP11, PC11, RK11/RK05), and last but not least a cache and memory controllers for SRAM and PSRAM. The design is FPGA proven, runs currently on Digilent S3BOARD and NEXYS2 boards and boots 5th Edition UNIX and 2.11BSD UNIX. &lt;/i&gt;''</description>
	<pubDate>Mon, 09 Aug 2010 22:55:00 +0000</pubDate>
</item>
<item>
	<title>Hubertf's NetBSD Blog: Janitorial code maintenance with coccinelle (Updated)</title>
	<guid>http://www.feyrer.de/NetBSD/blog.html/nb_20100808_2313.html</guid>
	<link>http://www.feyrer.de/NetBSD/blog.html/nb_20100808_2313.html</link>
	<description>According to its
&lt;a href=&quot;http://coccinelle.lip6.fr/&quot;&gt;homepage&lt;/a&gt;,
coccinelle is
``&lt;i&gt;a program matching and transformation engine which provides the language SmPL (Semantic Patch Language) for specifying desired matches and transformations in C code. Coccinelle was initially targeted towards performing collateral evolutions in Linux. Such evolutions comprise the changes that are needed in client code in response to evolutions in library APIs, and may include modifications such as renaming a function, adding a function argument whose value is somehow context-dependent, and reorganizing a data structure.&lt;/i&gt;''
&lt;p&gt;

Jean-Yves Migeon
has applied coccinelle to NetBSD, and suggested performing
two manual tasks, citing from
&lt;a href=&quot;http://mail-index.netbsd.org/tech-kern/2010/08/08/msg008683.html&quot;&gt;his email to tech-kern&lt;/a&gt;:
&lt;p&gt;

&lt;ul&gt;
&lt;li&gt; replace all sizeof(fooarray)/sizeof(foo) calculations by its
	__arraycount() macro equivalent, provided in cdefs.h
&lt;li&gt; detect places where aprint_* calls could
	be replaced by aprint_*_dev() to save manual printing of the
	device driver's name
&lt;/ul&gt;

Implementation of the coccinelle scripts,
resulting patched for NetBSD and more information
can be found 
&lt;a href=&quot;http://mail-index.netbsd.org/tech-kern/2010/08/08/msg008683.html&quot;&gt;in Jean-Yves Migeon's posting&lt;/a&gt;,
&lt;a href=&quot;http://www.netbsd.org/~jym/cocci/&quot;&gt;his list of patches&lt;/a&gt;,
and
&lt;a href=&quot;http://wiki.netbsd.org/~jym/coccinelle/&quot;&gt;on his wiki page&lt;/a&gt;.
&lt;p&gt;

&lt;b&gt;Update:&lt;/b&gt;
&lt;a href=&quot;http://mail-index.netbsd.org/tech-kern/2010/08/09/msg008690.html&quot;&gt;Jean-Yves' follow-up&lt;/a&gt;
includes further examples:
&lt;ul&gt;
&lt;li&gt; &lt;a href=&quot;http://mail-index.netbsd.org/tech-kern/2010/08/09/.attachments/bin_Ou0OxzFdj.bin&quot;&gt;logical not with bitwise &quot;&amp;amp;&quot;&lt;/a&gt;
&lt;li&gt; &lt;a href=&quot;http://mail-index.netbsd.org/tech-kern/2010/08/09/.attachments/bin0f2IpInAyz.bin&quot;&gt;NULL-pointer dereference after first checking if it's NULL(!?)&lt;/a&gt;, my favourite (example diff):
&lt;pre&gt;
 	if (xfer == NULL) {
-		aprint_error_dev(xfer-&gt;fc-&gt;bdev, &quot;xfer == NULL\n&quot;);
+		aprint_error(&quot;%s: xfer == NULL\n&quot;, __func__);
 		return;
 	} &lt;/pre&gt;
&lt;/ul&gt;</description>
	<pubDate>Sun, 08 Aug 2010 23:22:00 +0000</pubDate>
</item>
<item>
	<title>FreeBSD Diary: ZFS: Resizing your zpool</title>
	<guid>http://www.freebsddiary.org/zfs-resizing.php</guid>
	<link>http://www.freebsddiary.org/zfs-resizing.php</link>
	<description>Got space?  Need more?</description>
	<pubDate>Tue, 03 Aug 2010 23:48:06 +0000</pubDate>
</item>
<item>
	<title>FreeBSD Diary: ZFS: do not give it all your HDD</title>
	<guid>http://www.freebsddiary.org/zfs-with-gpart.php</guid>
	<link>http://www.freebsddiary.org/zfs-with-gpart.php</link>
	<description>Sometimes, holding out is the best decision.</description>
	<pubDate>Sun, 01 Aug 2010 21:48:06 +0000</pubDate>
</item>
<item>
	<title>Hubertf's NetBSD Blog: NYCBSDCon 2010 Call for Papers</title>
	<guid>http://www.feyrer.de/NetBSD/blog.html/nb_20100714_2110.html</guid>
	<link>http://www.feyrer.de/NetBSD/blog.html/nb_20100714_2110.html</link>
	<description>Citing from the
&lt;a href=&quot;http://www.nycbsdcon.org/2010/cfp.html&quot;&gt;call for papers&lt;/a&gt;:
``&lt;i&gt;The New York City BSD Conference (NYCBSDCon) is the main technical
conference on the US East Coast for the BSD community to get together to
share and gain knowledge, to network with like-minded people, and to
have fun.  This event is organized by members of the New York City *BSD
Users Group (NYC*BUG).
&lt;p&gt;

The NYCBSDCon program committee is accepting submissions for
imaginative, embryonic and energizing presentations surrounding the BSD
operating systems.  We are looking to attract a wide range of speakers
and attendees; therefore, topics of interest range from the esoteric to
development to practical, everyday sysadmin life.  Of course, original
topics are preferred in most cases.
&lt;p&gt;

Each talk is expected to be 45-50 minutes, including a few minutes for
questions and answers.  All presentations will be recorded for audio and
video.  Presenters will have audio/visual and network connectivity.
&lt;p&gt;

&lt;b&gt;Abstracts for presentations are due July 31, 2010.&lt;/b&gt;
&lt;p&gt;

Authors of accepted submissions should be able to provide the full
presentation for publication on NYCBSDCon sponsored mediums.  Further
instructions will follow notification of acceptance.  Submissions
accompanied by a non-disclosure agreement or a product advertisement
will be rejected.
&lt;p&gt;

Abstract submissions should be emailed to cfp@nycbsdcon.org in text, ps
or pdf format.
&lt;p&gt;

Conference Location: Cooper Union, New York, NY
Conference Dates: November 12-14, 2010&lt;/i&gt;''
&lt;p&gt;

Submission of NetBSD related entries is highly appreciated!
See the
&lt;a href=&quot;http://www.nycbsdcon.org/2010/cfp.html&quot;&gt;call for papers&lt;/a&gt;
for more information on important milestones,
subsidizing of speakers and the mailing list to
stay upto-date.</description>
	<pubDate>Wed, 14 Jul 2010 21:13:00 +0000</pubDate>
</item>
<item>
	<title>Dru Lavigne @ O'Reilly Network: Dru Lavigne at Summercamp - Aug 14 2010</title>
	<guid>http://www.oreillynet.com/pub/e/1637</guid>
	<link>http://www.oreillynet.com/pub/e/1637</link>
	<description>Dru Lavigne (&lt;a href=&quot;http://oreilly.com/catalog/9780596006792/&quot;&gt;&lt;strong&gt;BSD Hacks&lt;/strong&gt;&lt;/a&gt;) will be presenting &quot;Getting Started in an Open Source Community.&quot;</description>
	<pubDate>Tue, 06 Jul 2010 20:46:00 +0000</pubDate>
	<dc:creator>Dru Lavigne</dc:creator>
</item>
<item>
	<title>The Julipedia  (Blog): ATF 0.10 released</title>
	<guid>tag:blogger.com,1999:blog-17885055.post-4316464728404819592</guid>
	<link>http://blog.julipedia.org/2010/07/atf-010-released.html</link>
	<description>Ladies and gentlemen: I have just released ATF 0.10!  This release with such a magic number includes lots of new exciting features and provides a much simplified source tree.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;Dive into the &amp;amp;lt;a href=&quot;http://www.netbsd.org/~jmmv/atf/releases/0.10/&quot;&amp;amp;gt;0.10 release page&amp;amp;lt;/a&amp;amp;gt; for details!&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;I'm now working in getting this release into the NetBSD tree to remove some of the custom patches that have been superseded by the official release. Will be there soon.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;And all this while I am a &amp;amp;lt;a href=&quot;http://www.meetbsd.org/&quot;&amp;amp;gt;meetBSD&amp;amp;lt;/a&amp;amp;gt; in Kraków :-)&amp;amp;lt;div class=&quot;blogger-post-footer&quot;&amp;amp;gt;&amp;amp;lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17885055-4316464728404819592?l=blog.julipedia.org' alt='' /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/content&amp;gt;</description>
	<pubDate>Fri, 02 Jul 2010 15:48:05 +0000</pubDate>
	<dc:creator>Julio Merino</dc:creator>
</item>
<item>
	<title>Hubertf's NetBSD Blog: BSD Magazine archive available</title>
	<guid>http://www.feyrer.de/NetBSD/blog.html/nb_20100630_2358.html</guid>
	<link>http://www.feyrer.de/NetBSD/blog.html/nb_20100630_2358.html</link>
	<description>Olga Kartseva 
&lt;a href=&quot;http://lists.freebsd.org/pipermail/freebsd-announce/2010-June/001332.html&quot;&gt;writes&lt;/a&gt;:
``&lt;i&gt;BSD Magazine archives available without subscribing to BSDMag newsletter for freebsd-announce subscribers!&lt;/i&gt;''

Here are direct PDF links:
&lt;ul&gt;
&lt;li&gt; &lt;a href=&quot;http://download.bsdmag.org/en/BSD_04_2010.pdf&quot;&gt;Hosting BSD&lt;/a&gt;
&lt;li&gt; &lt;a href=&quot;http://bsdmag.org/system/articles/attachment1s/10867/original/BSD_03_2010_EN.pdf?1267617247&quot;&gt;BSD as A Desktop&lt;/a&gt;
&lt;li&gt; &lt;a href=&quot;http://bsdmag.org/system/articles/attachment1s/10664/original/BSD_02_2010.pdf?1265023832&quot;&gt;BSD as Servers&lt;/a&gt;
&lt;li&gt; &lt;a href=&quot;http://bsdmag.org/system/articles/attachment1s/10484/original/BSD_01_2010.pdf?1262869416&quot;&gt;Infinity. Freedom. FREEBSD&lt;/a&gt;
&lt;li&gt; &lt;a href=&quot;http://bsdmag.org/system/articles/attachment1s/10426/original/BSD_04_2009.pdf&quot;&gt;BSD Security&lt;/a&gt;
&lt;li&gt; &lt;a href=&quot;http://bsdmag.org/system/articles/attachment1s/10123/original/BSD_03_2009.pdf?1258122267&quot;&gt;Guide to FreeBSD&lt;/a&gt;
&lt;li&gt; &lt;a href=&quot;http://bsdmag.org/system/articles/attachment1s/10122/original/BSD_02_2009.pdf?1258122178&quot;&gt;PC-BSD Uncovered&lt;/a&gt;
&lt;li&gt; &lt;a href=&quot;http://bsdmag.org/system/articles/attachment1s/9301/original/BSD_01_2009.pdf?1251705254&quot;&gt;Explore NetBSD&lt;/a&gt;
&lt;/ul&gt;

Enjoy - and remember: more NetBSD content is good content, authors are always welcome!</description>
	<pubDate>Thu, 01 Jul 2010 00:02:00 +0000</pubDate>
</item>
<item>
	<title>The Julipedia  (Blog): Testing NetBSD: Easy Does It</title>
	<guid>tag:blogger.com,1999:blog-17885055.post-1741546407166795638</guid>
	<link>http://blog.julipedia.org/2010/06/testing-netbsd-easy-does-it.html</link>
	<description>Antti Kantee has been, for a while, writing unit/integration tests for the puffs and rump systems (for which he is the author) shipped with NetBSD.  Recently, he has been working on fixing the NetBSD test suite to report 0 failures in the i386 platform so as to encourage developers to keep it that way while doing changes to the tree.  The goal is to require developers to run the tests themselves before submitting code.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;Antti has just published an introductory article, titled &amp;amp;lt;a href=&quot;http://blog.netbsd.org/tnf/entry/testing_netbsd_easy_does_it&quot;&amp;amp;gt;Testing NetBSD: Easy Does It&amp;amp;lt;/a&amp;amp;gt;, that describes what &amp;amp;lt;a href=&quot;http://www.NetBSD.org/~jmmv/atf/&quot;&amp;amp;gt;ATF&amp;amp;lt;/a&amp;amp;gt; and &amp;amp;lt;a href=&quot;http://www.gson.org/netbsd/anita/&quot;&amp;amp;gt;Anita&amp;amp;lt;/a&amp;amp;gt; are, how to use them and how they can help in NetBSD development and deployment.  Nice work!&amp;amp;lt;div class=&quot;blogger-post-footer&quot;&amp;amp;gt;&amp;amp;lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17885055-1741546407166795638?l=blog.julipedia.org' alt='' /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/content&amp;gt;</description>
	<pubDate>Thu, 24 Jun 2010 08:48:06 +0000</pubDate>
	<dc:creator>Julio Merino</dc:creator>
</item>
<item>
	<title>Hubertf's NetBSD Blog: NetBSD 5.1_RC3 binaries available for download</title>
	<guid>http://www.feyrer.de/NetBSD/blog.html/nb_20100620_2231.html</guid>
	<link>http://www.feyrer.de/NetBSD/blog.html/nb_20100620_2231.html</link>
	<description>NetBSD release-engineer
Soren Jacobsen &lt;a href=&quot;http://mail-index.netbsd.org/netbsd-announce/2010/06/17/msg000104.html&quot;&gt;announces&lt;/a&gt;:
``&lt;i&gt;The third (and hopefully final) release candidate of NetBSD 5.1 is now
available for download at:
&lt;p&gt;

&lt;a href=&quot;http://ftp.NetBSD.org/pub/NetBSD/NetBSD-5.1_RC3/&quot;&gt;http://ftp.NetBSD.org/pub/NetBSD/NetBSD-5.1_RC3/&lt;/a&gt;
&lt;p&gt;

Those of you who prefer to build from source can continue to follow the
netbsd-5 branch, but the netbsd-5-1-RC3 tag is available as well.
&lt;p&gt;

See &lt;a href=&quot;http://cvsweb.netbsd.org/bsdweb.cgi/src/doc/Attic/CHANGES-5.1&quot;&gt;src/doc/CHANGES-5.1&lt;/a&gt; for the list of changes from RC2 to RC3.
&lt;p&gt;

Please help us test this release candidate as much as possible.
Remember, any feedback is good feedback.  We'd love to hear from you,
whether you've got a complaint or a compliment.  That said, we hope your
feedback is positive, as we would like this to be the final release
candidate before 5.1. &lt;/i&gt;''</description>
	<pubDate>Sun, 20 Jun 2010 22:36:00 +0000</pubDate>
</item>
<item>
	<title>The Julipedia  (Blog): ATF 0.9 released (late announcement)</title>
	<guid>tag:blogger.com,1999:blog-17885055.post-5879847356596187843</guid>
	<link>http://blog.julipedia.org/2010/06/atf-09-released-late-announcement.html</link>
	<description>Oops! Looks like I forgot to announce the &amp;amp;lt;a href=&quot;http://www.netbsd.org/~jmmv/atf/news.html#20100603-atf-0-9-released&quot;&amp;amp;gt;release of ATF 0.9&amp;amp;lt;/a&amp;amp;gt; here a couple of weeks ago. Just a short notice that the formal release has been available since June 3rd and that 0.9 has been in NetBSD since June 4th!&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;You can also enjoy a &amp;amp;lt;a href=&quot;http://www.netbsd.org/~jmmv/atf/&quot;&amp;amp;gt;shiny-new web site&amp;amp;lt;/a&amp;amp;gt;! It even includes a &amp;amp;lt;a href=&quot;http://www.netbsd.org/~jmmv/atf/docs/faq.html&quot;&amp;amp;gt;FAQ&amp;amp;lt;/a&amp;amp;gt;!&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;And, as a side note: I have added a &amp;amp;lt;tt&amp;amp;gt;test&amp;amp;lt;/tt&amp;amp;gt; target to the NetBSD Makefiles, so now it's possible to just do &amp;amp;lt;tt&amp;amp;gt;make test&amp;amp;lt;/tt&amp;amp;gt; within any subdirectory of &amp;amp;lt;tt&amp;amp;gt;src/tests/&amp;amp;lt;/tt&amp;amp;gt; and get what you expect.&amp;amp;lt;div class=&quot;blogger-post-footer&quot;&amp;amp;gt;&amp;amp;lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17885055-5879847356596187843?l=blog.julipedia.org' alt='' /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/content&amp;gt;</description>
	<pubDate>Fri, 18 Jun 2010 18:48:05 +0000</pubDate>
	<dc:creator>Julio Merino</dc:creator>
</item>
<item>
	<title>Hubertf's NetBSD Blog: EuroBSDCon 2010 - Call for Papers</title>
	<guid>http://www.feyrer.de/NetBSD/blog.html/nb_20100616_2353.html</guid>
	<link>http://www.feyrer.de/NetBSD/blog.html/nb_20100616_2353.html</link>
	<description>From some mails I see:
``EuroBSDCon 2010 - Call for Papers
&lt;p&gt;

9th European BSD Conference &lt;br&gt;
October 8 - 10, 2010 &lt;br&gt;
Karlsruhe, Germany &lt;br&gt;
http://2010.eurobsdcon.org/
&lt;p&gt;

Introduction
&lt;p&gt;

The European BSD Community will meet again this year for the ninth
conference in the EuroBSDCon series. This is a great opportunity
to present new ideas to the community, inform your fellow BSD
enthusiasts about the newest developments and work for the continued
success of your favorite operating system. The two day conference program
(October 9 - 10) will be preceeded by a tutorial day (Oct 8).

Call for Papers
&lt;p&gt;

We are inviting contributions on all areas relating to the BSD family
of operating systems, e.g. applications, architecture, implementation,
administration and security of *BSD operating systems ranging from
embedded systems to mainframes. Investigations on economic aspects
regarding the operation of BSD systems are also welcome.
&lt;p&gt;

Prospective authors of contributions to the technical program are
requested to submit an abstract via http://2010.eurobsdcon.org/. 
Presentations should last about 40 minutes including time for questions
from the audience. Authors of accepted submissions should provide a full
paper for publication in the conference proceedings and give permission
to the organizers to publish the results in the printed proceedings and
on the conference web site at www.eurobsdcon.org.
&lt;p&gt;

Call for Tutorial Proposals
&lt;p&gt;

Selected tutorials will be offered on the day before the conference.
If you are interested in presenting a tutorial, please submit your
suggestion on the conference website using the same mechanism as
for submitting a paper. Please indicate if this would be a half-
or full-day tutorial.
&lt;p&gt;

Sponsorship Opportunities
&lt;p&gt;

We are seeking companies or institutions to sponsor various elements of
the conference in order to keep delegate fees as low as possible.
Sponsorship opportunities include: paying for a speaker's travel or
accommodation; providing bursaries for delegates who cannot pay the
conference fee themselves; sponsoring the social event or the printing
of proceedings. Please see the conference website for details.
&lt;p&gt;

Important Dates
&lt;p&gt;

Final abstract deadline:        July 6th 2010 &lt;br&gt;
Final tutorial deadline:        July 6th &lt;br&gt;
Final papers due:           September 1st &lt;br&gt;
Tutorial day:               October 8th &lt;br&gt;
Conference:                 October 9 - 10
&lt;p&gt;

For more, see &lt;a href=&quot;http://2010.eurobsdcon.org/&quot;&gt;http://2010.eurobsdcon.org/&lt;/a&gt;''</description>
	<pubDate>Wed, 16 Jun 2010 23:56:00 +0000</pubDate>
</item>
<item>
	<title>Hubertf's NetBSD Blog: Hiding other users' processes</title>
	<guid>http://www.feyrer.de/NetBSD/blog.html/nb_20100605_1826.html</guid>
	<link>http://www.feyrer.de/NetBSD/blog.html/nb_20100605_1826.html</link>
	<description>Thus it was asked on #NetBSD:

&lt;pre&gt;
&amp;lt;batence&amp;gt; I wanna set the top command work only for users process, not
                for all system
&amp;lt;batence&amp;gt; in freebsd command is sysctl security.bsd.see_other_uids=0/1
&amp;lt;batence&amp;gt; but I dunno for netbsd
&amp;lt;batence&amp;gt; eg I don't want users see other uids
&amp;lt;batence&amp;gt; only which they owned
&lt;/pre&gt;

Looking at the output of &quot;sysctl -a&quot; didn'r show anything obvious,
but recalling the topic and with some digging, there actually
is a sysctl switch for that in NetBSD: security.models.bsd44.curtain=1
&lt;p&gt;

Here's an example top(1) output with the default setting (0).
My username is &quot;feyrer&quot;, note that besides my processes,
other users' processes are shown as well:

&lt;ul&gt;
&lt;table border=&quot;1&quot;&gt; &lt;tr&gt;&lt;td&gt;
&lt;pre&gt;
load averages:  0.02,  0.01,  0.00;               up 11+15:08:30                           18:38:56
24 processes: 23 sleeping, 1 on CPU
CPU states:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
Memory: 71M Act, 51M Inact, 552K Wired, 5560K Exec, 110M File, 27M Free
Swap: 512M Total, 335M Used, 178M Free

  PID USERNAME PRI NICE   SIZE   RES STATE      TIME   WCPU    CPU COMMAND
    0 root     126    0     0K   16M pgdaemon   5:41  0.00%  0.00% [system]
  492 root      85    0  4792K  608K kqueue     0:06  0.00%  0.00% master
  113 root      85    0  2908K  860K select     0:05  0.00%  0.00% dhclient
  535 root      85    0  2900K  556K nanoslp    0:05  0.00%  0.00% cron
  155 root      85    0  2932K  548K kqueue     0:05  0.00%  0.00% syslogd
  496 postfix   85    0  4792K  888K kqueue     0:01  0.00%  0.00% qmgr
 4409 feyrer    43    0  2984K 1240K CPU        0:00  0.00%  0.00% top
 1197 root      85    0  8640K 3692K netio      0:00  0.00%  0.00% sshd
24830 root      85    0  8640K 3692K netio      0:00  0.00%  0.00% sshd
 6949 feyrer    85    0  8640K 2828K select     0:00  0.00%  0.00% sshd
28093 feyrer    85    0  8640K 2828K select     0:00  0.00%  0.00% sshd
12391 feyrer    85    0  2132K 1876K pause      0:00  0.00%  0.00% tcsh
25579 feyrer    85    0  2132K 1876K pause      0:00  0.00%  0.00% tcsh
 5773 postfix   85    0  4792K 1868K kqueue     0:00  0.00%  0.00% pickup
 1929 root      85    0  2128K 1828K ttyraw     0:00  0.00%  0.00% tcsh
29212 root      85    0  2972K 1164K kqueue     0:00  0.00%  0.00% inetd
25972 root      85    0  2824K 1076K pause      0:00  0.00%  0.00% ksh &lt;/pre&gt;
&lt;/table&gt;
&lt;/ul&gt;

Likewise, I see a number of processes in ps(1):

&lt;pre&gt;
% &lt;b&gt;ps -aux | wc -l&lt;/b&gt;
      26
&lt;/pre&gt;

Now let's change the sysctl:
&lt;pre&gt;
# &lt;b&gt;sysctl -d security.models.bsd44.curtain&lt;/b&gt;
security.models.bsd44.curtain: Curtain information about objects to users not owning them.
# &lt;b&gt;sysctl -w security.models.bsd44.curtain=1&lt;/b&gt;
security.models.bsd44.curtain: 0 -&amp;gt; 1
&lt;/pre&gt;


After this, the top(1) output looks like this:

&lt;ul&gt;
&lt;table border=&quot;1&quot;&gt; &lt;tr&gt;&lt;td&gt;
&lt;pre&gt;
load averages:  0.02,  0.01,  0.00;               up 11+15:08:45                           18:39:11
5 processes: 4 sleeping, 1 on CPU
CPU states:  0.0% user,  0.0% nice,  0.2% system,  0.0% interrupt, 99.8% idle
Memory: 71M Act, 51M Inact, 552K Wired, 5416K Exec, 110M File, 28M Free
Swap: 512M Total, 335M Used, 178M Free

  PID USERNAME PRI NICE   SIZE   RES STATE      TIME   WCPU    CPU COMMAND
 4409 feyrer    43    0  2984K 1240K CPU        0:00  0.00%  0.00% top
28093 feyrer    85    0  8640K 2828K select     0:00  0.00%  0.00% sshd
 6949 feyrer    85    0  8640K 2828K select     0:00  0.00%  0.00% sshd
12391 feyrer    85    0  2132K 1876K pause      0:00  0.00%  0.00% tcsh
25579 feyrer    85    0  2132K 1876K pause      0:00  0.00%  0.00% tcsh &lt;/pre&gt;
&lt;/table&gt;
&lt;/ul&gt;

This reduced set of processes is also shown in ps(1):

&lt;pre&gt;
% &lt;b&gt;ps -aux | wc -l&lt;/b&gt;
       7
&lt;/pre&gt;

In other words, only my processes are displayed.
(If you wonder about the difference between the 7 processes shown
in top and the seven ps(1)-lines: the latter includes
a heading).
&lt;p&gt;

Note that this &quot;filtering&quot; does not apply to the root
user, i.e. he can still see all processes.</description>
	<pubDate>Sat, 05 Jun 2010 18:42:00 +0000</pubDate>
</item>
<item>
	<title>Hubertf's NetBSD Blog: Videos: Booting NetBSD [Update #3]</title>
	<guid>http://www.feyrer.de/NetBSD/blog.html/nb_20100530_1305.html</guid>
	<link>http://www.feyrer.de/NetBSD/blog.html/nb_20100530_1305.html</link>
	<description>Jun Ebihara wrote me that there are a bunch of videos on YouTube,
showing NetBSD boot on various machines:

&lt;ul&gt;
&lt;li&gt; &lt;a href=&quot;http://www.youtube.com/watch?v=i6f5Y5boJRw&quot;&gt;NetBSD/hpcarm booting on the Willcom W-ZERO3&lt;/a&gt;:
	&lt;p&gt;
	
	&lt;p&gt;

&lt;li&gt; &lt;a href=&quot;http://www.youtube.com/watch?v=ziPP4rGze5c&quot;&gt;NetBSD/x68k booting on an X68030 with Nereid USB and Neptune-X&lt;/a&gt;:
	&lt;p&gt;
	
	&lt;p&gt;


&lt;li&gt; &lt;a href=&quot;http://www.youtube.com/watch?v=R_EdT8QWAkQ&quot;&gt;NetBSD/atari booting on TT030 with SMC-TT and EtherNEC&lt;/a&gt;:
	&lt;p&gt;
	
	&lt;p&gt;

&lt;li&gt; &lt;a href=&quot;http://www.youtube.com/watch?v=Y_Cpqbyffqk&quot;&gt;NetBSD/sparc booting on SPARCstation 5&lt;/a&gt;:
	&lt;p&gt;
	
	&lt;p&gt;

&lt;li&gt; &lt;a href=&quot;http://www.youtube.com/watch?v=M7kKVqbFUMQ&quot;&gt;Booting NetBSD/hpcsh 5.1_RC2 from Windows CE on PERSONA&lt;/a&gt;: 
	&lt;p&gt;
	
	&lt;p&gt;

&lt;li&gt; &lt;a href=&quot;http://www.youtube.com/watch?v=ctxijoP2gqo&quot;&gt;Booting NetBSD/dreamcast 5.1_RC2 with IDE HDD and NE2000 NIC&lt;/a&gt;:
	&lt;p&gt;
	
	&lt;p&gt;

&lt;li&gt; ... and of course there is &lt;a href=&quot;http://www.youtube.com/watch?v=LQrwblHBDpg&quot;&gt;NetBSD/i386 booting (via LILO?!)
	into KDE&lt;/a&gt;:
	&lt;p&gt;
	
&lt;/ul&gt;

&lt;p&gt;
&lt;b&gt;Update&lt;/b&gt;: Links added for those not seeing the embedded videos
(which I've seen happens via at least two RSS aggregators)
&lt;p&gt;
&lt;b&gt;Update #2:&lt;/b&gt; Added booting NetBSD/hpcsh 5.1_RC2 from Windows CE on PERSONA,
also submitted by Jun Ebihara. Thanks a lot!
&lt;p&gt;
&lt;b&gt;Update #3:&lt;/b&gt; Added booting NetBSD/dreamcast 5.1_RC2 with IDE HDD and NE2000 NIC</description>
	<pubDate>Mon, 31 May 2010 21:15:00 +0000</pubDate>
</item>
<item>
	<title>Hubertf's NetBSD Blog: NetBSD 5.1_RC2 binaries available for download</title>
	<guid>http://www.feyrer.de/NetBSD/blog.html/nb_20100528_1429.html</guid>
	<link>http://www.feyrer.de/NetBSD/blog.html/nb_20100528_1429.html</link>
	<description>Soren Jacobsen 
&lt;a href=&quot;http://mail-index.netbsd.org/netbsd-announce/2010/05/28/msg000103.html&quot;&gt;writes on netbsd-announce&lt;/a&gt;:
``&lt;i&gt;The second release candidate of NetBSD 5.1 is now available for download
at:
&lt;p&gt;

&lt;a href=&quot;http://ftp.NetBSD.org/pub/NetBSD/NetBSD-5.1_RC2/&quot;&gt; http://ftp.NetBSD.org/pub/NetBSD/NetBSD-5.1_RC2/&lt;/a&gt;
&lt;p&gt;

Those of you who prefer to build from source can continue to follow the
netbsd-5 branch, but the netbsd-5-1-RC2 tag is available as well.
&lt;p&gt;

See src/doc/CHANGES-5.1 for the list of changes from RC1 to RC2.
&lt;p&gt;

Please help us test this and any upcoming release candidates as much as
possible. Remember, any feedback is good feedback. We'd love to hear
from you, whether you've got a complaint or a compliment.  &lt;/i&gt;''</description>
	<pubDate>Fri, 28 May 2010 14:30:00 +0000</pubDate>
</item>
<item>
	<title>Hubertf's NetBSD Blog: Source-changes ketchup Dec'09 - May'10 [Updated]</title>
	<guid>http://www.feyrer.de/NetBSD/blog.html/nb_20100528_0135.html</guid>
	<link>http://www.feyrer.de/NetBSD/blog.html/nb_20100528_0135.html</link>
	<description>Here's what I have in my source-changes folder as interesting
changes between Dec '09 and May '10. YMMV:

&lt;ul&gt;
&lt;li&gt; NetBSD/cats now uses X.org
&lt;li&gt; NetBSD/sparc64 now runs a MULTIPROCESSOR kernel by default
&lt;li&gt; NetBSD/evbsh3 now also supports the following boards:
	 AlphaNet MS104-SH4,
	 TAC T-SH7706LAN Ver.3,
	 TAC T-SH7706LSR Ver.1
&lt;li&gt; NetBSD/hpcarm now  supports the Sharp W-ZERO3 series
&lt;li&gt; wc(1) can print the longest line length now with -L
&lt;li&gt; cdbr(3), cdbw(3) implement constand database reader/writer routines.
	this shrinks the services(5) database from 2.1MB to 307kB
&lt;li&gt; /dev/{mem,kmem,zero,null} implementations are unified in machine
	independent code on the rmind-uvmplock branch
&lt;li&gt; Many kernel systems were prepared to be built either into a
	monolithic kernel, or loaded as module at runtime. 
	This includes
	verbose listing of PCI devices,
	Berkeley Packet Filters (bpf),
	loading modules only after the root filesystem is mounted,
	others.
	&lt;p&gt;

&lt;li&gt; New drivers:
	&lt;ul&gt;
	&lt;li&gt; acpiwmibus: a pseudo-bus to which child Microsoft Windows Management Instrumentation (WMI, a subset of ACPI) devices attach
	&lt;li&gt; u2g: split into parts: u3ginit attaches to those devices that only come as a umass device in the default configuration and forces them to reinitialize in 3D mode and detach.  The u3g part attaches to individual interfaces for the 3G functionality, leaving the umass interface(s) for that driver.  With this change I can use the MMC card in my Huawey stick (as well as the integrated windows driver CD, which of course is pretty useless) and the 3G modem at the same time.
	&lt;li&gt; cas: Driver for Sun Cassini/Cassini+ (GigaSwift) Ethernet (also known as National Semiconductor Saturn)
	&lt;li&gt; aibs: replaces aiboost for the ASUSTeK AI Booster hardware monitor
	&lt;/ul&gt;
	&lt;p&gt;
&lt;li&gt; Software imports include
	NetPGP 3.99.2 (20100507 version),
	dhcpcd-5.2.2,
	BIND 9.7.0rc1,
	libelf from FreeBSD 8.0-RELEASE,
	tzcode2009k,
	pkg_install-20100220,
	mdocml-1.9.23,
	libarchive-2.8.2,
	ACPICA 20100121,
	bozohttpd-20100512
&lt;/ul&gt;</description>
	<pubDate>Fri, 28 May 2010 02:22:00 +0000</pubDate>
</item>
<item>
	<title>Hubertf's NetBSD Blog: NetBSD ketchup - news from my mailbox</title>
	<guid>http://www.feyrer.de/NetBSD/blog.html/nb_20100528_0030.html</guid>
	<link>http://www.feyrer.de/NetBSD/blog.html/nb_20100528_0030.html</link>
	<description>Here's another bunch of NetBSD-related news that has 
been lingering in my inbox for far too long:

&lt;ul&gt;
&lt;li&gt; Izumi Tsutsui's
	&lt;a href=&quot;http://www.netbsd.org/ports/cobalt/&quot;&gt;NetBSD/cobalt&lt;/a&gt;
	restore CD is available based on NetBSD versions
	&lt;a href=&quot;http://mail-index.netbsd.org/port-cobalt/2010/02/19/msg000415.html&quot;&gt;5.0.2&lt;/a&gt;
	&lt;a href=&quot;http://mail-index.netbsd.org/port-cobalt/2010/05/27/msg000424.html&quot;&gt;5.1_RC2&lt;/a&gt;.
	See the
	&lt;a href=&quot;http://www.netbsd.org/ports/cobalt/restorecd-howto.html&quot;&gt;&lt;/a&gt;
	for information on what it is and how to use it.
	&lt;p&gt; 

&lt;li&gt; &lt;a href=&quot;http://mail-index.netbsd.org/tech-userlevel/2010/02/24/msg003325.html&quot;&gt;A negative symbol lookup cache was added&lt;/a&gt;
	to NetBSD's loader
	for shared libraries and shared objects, ld.so_elf, by
	Roy Marples:
	``&lt;i&gt;I've been researching why Evolution from GNOME takes over 5 minutes to load on my quad core amd64 beast. It boils down to dlsym looking for a symbol that does not exist directly and as such examining every needed library. However, the current implementation does not remember what libraries it as already checked. Normally this isn't a problem, but with the way Evolution is built the search chain is massive. 
	[...]
	&lt;p&gt;
	With this patch, Evolution (without the patches to and a glib I added to pkgsrc a few days ago) loads in under 2 seconds (5 seconds with initial disk thrashing).  &lt;/i&gt;''
	&lt;p&gt; 

&lt;li&gt; 
	&lt;a href=&quot;http://www.netbsd.org/gallery/logos.html&quot;&gt;The NetBSD Logo&lt;/a&gt;
	is available in many variants, but a new variant was submitted
	via www@ these days by &quot;Tim&quot; - which is actually plain HTML,
	no image:
	&lt;p&gt;

	&lt;span href=&quot;http://www.NetBSD.org/&quot;&gt;&lt;span&gt;&amp;#x2691;&lt;/span&gt;
	&lt;span&gt;&lt;span&gt;Net&lt;/span&gt;&lt;span&gt;BSD&lt;/span&gt;&lt;/span&gt; Powered!&lt;/span&gt;
	&lt;p&gt; 

&lt;li&gt; &lt;a href=&quot;http://www.safenet-inc.com/products/data_protection/disk_and_file_encryption/protectdrive.aspx&quot;&gt;SafeNet's ProtectDrive&lt;/a&gt; is
	``&lt;i&gt;a full disk encryption solution that encrypts the entire hard drive of laptops, workstations and servers, as well as USB flash drives, to protect data in the case of the theft or loss of a hardware device.&lt;/i&gt;''
	&lt;p&gt;

	How do you implement such preboot authentication and
	harddisk encryption software,
	esp. if you want to provide thinks like LDAP integration for
	the user/key handling and two-factor authentication?
	Little is known, but rumors say the 32bit version of the software
	is based on NetBSD, as is backed by
	&lt;a href=&quot;http://about.rentacoder.com/RentACoder/DotNet/SoftwareCoders/ShowBioInfo.aspx?lngAuthorId=6701687&quot;&gt;this worker bio info&lt;/a&gt;:
	``&lt;i&gt;Duties: Working on pre-boot restricted environment with loads before operation system and implemented on NetBSD.
	Ported and optimized the KDrive X server to NetBSD.
	Developed and implemented user secure authentication interface with smart card support.
	&lt;p&gt;
	
	Environment and tools : NetBSD (3.0), C/C++, FLTK&lt;/i&gt;''
	&lt;p&gt; 

&lt;li&gt; A german-language introduction of pkgsrc on OpenSolaris
	was given by Michael 'kvedulv' Moll at the Munich
	OpenSolaris User Group back in march. 
	&lt;a href=&quot;http://hub.opensolaris.org/bin/download/User+Group+mucosug/files/pkgsrc%2Dsolaris.pdf&quot;&gt;Slides&lt;/a&gt;
	and a
	&lt;a href=&quot;http://vimeo.com/10759122&quot;&gt;video&lt;/a&gt;
	are available.
	&lt;p&gt; 

&lt;li&gt; Running NetBSD on an &lt;strike&gt;Oracle&lt;/strike&gt;
	&lt;a href=&quot;http://www.oracle.com/us/products/servers-storage/servers/x86/030275.htm&quot;&gt;Sun Fire X4140 Server&lt;/a&gt;? 
	Check out
	&lt;a href=&quot;http://mail-index.netbsd.org/port-amd64/2010/05/11/msg001131.html&quot;&gt;this posting by Ignatios Souvatzis&lt;/a&gt;
	for the full dmesg pr0n of this machine with 12
	CPU cores and 32GB RAM!
	&lt;p&gt; 

&lt;li&gt;	&lt;a href=&quot;http://www.friendlyarm.net/products/mini2440&quot;&gt;&lt;img align=&quot;right&quot; src=&quot;http://www.friendlyarm.net/sites/products/mini2440_2s.jpg&quot;&gt;&lt;/a&gt;
	Are you still looking for a nice small 
	ARM-based board to start hacking on NetBSD/arm?
	The &lt;a href=&quot;http://www.friendlyarm.net/products/mini2440&quot;&gt;http://www.friendlyarm.net/products/mini2440&lt;/a&gt;
	may be a good start, esp. after 
	Paul Fleischer is reaching completion of NetBSD support
	for the board. Citing from 
	&lt;a href=&quot;http://mail-index.netbsd.org/port-arm/2010/05/21/msg000970.html&quot;&gt;his mail to port-arm&lt;/a&gt;:
	&lt;p&gt;

	``&lt;i&gt;I have now fairly good (i.e., it works for me) support for the
	MINI2440 on NetBSD with support for the following: &lt;br&gt;
	- S3C2440 UART &lt;br&gt;
	- DM9000 (MAC+PHY) &lt;br&gt;
	- S3C2440 SD Controller &lt;br&gt;
	- S3C2440 DMA Controller &lt;br&gt;
	- S3C2440 IIS Controller &lt;br&gt;
	- FriendlyArm 3,5&quot; LCD Display &lt;br&gt;
	- S3C2440 USB Host Controller (OHCI) &lt;br&gt;
	- S3C2440 Touch Screen &lt;br&gt;
	- UDA1341TS audio codec &lt;br&gt;
	 &lt;br&gt;
	Currently, support for three things on the S3C2440 are missing: &lt;br&gt;
	- S3C2440 NAND Controller &lt;br&gt;
	- S3C2440 USB Device Controller &lt;br&gt;
	- S3C2440 RTC &lt;br&gt;
	&lt;br&gt;
	I've also created a stage2 bootloader for use with u-boot, which
	ensures that the value of bootargs is passed to the NetBSD kernel.
	At this point I have only tested the code with the 64Mb version of the
	FriendlyArm MINI2440.
	&lt;p&gt;

	All the code is available &lt;a href=&quot;http://repo.or.cz/w/netbsd-mini2440.git&quot;&gt;in a Git repository[1]&lt;/a&gt; and is based on the
	netbsd-5 code base.
	Progress can be followed &lt;a href=&quot;http://xpg.dk/projects/netbsd-support-for-the-mini2440/&quot;&gt;on my webpage[2]&lt;/a&gt;.  &lt;/i&gt;''
	&lt;p&gt; 

&lt;li&gt; &lt;a href=&quot;http://www.willcom-inc.com/ja/lineup/ws/004sh/&quot;&gt;&lt;img align=&quot;right&quot; src=&quot;http://www.willcom-inc.com/ja/lineup/ws/004sh/images/color03.jpg&quot;&gt;&lt;/a&gt;
	While talking about NetBSD on cool hardware: 
	How about NetBSD/hpcarm on
	WILLCOM | W-ZERO3 (WS004SH) mobile devices? 
	&lt;a href=&quot;http://movapic.com/pic/201005172351464bf15802a8636&quot;&gt;Here is a screenshot of Ebihara-san's WS011SH with CCW screen&lt;/a&gt;,
	and there is also a video &quot;booting NetBSD/hpcarm on WILLCOM | W-ZERO3(WS004SH)&quot;
	posted on YouTube:
	&lt;p&gt;
	
	&lt;p&gt;

	For more details, see Izumi Tsutsui's
	&lt;a href=&quot;http://mail-index.netbsd.org/port-hpcarm/2010/05/22/msg000135.html&quot;&gt;posting on port-hpcarm&lt;/a&gt;.
	&lt;p&gt; 
&lt;/ul&gt;</description>
	<pubDate>Fri, 28 May 2010 01:31:00 +0000</pubDate>
</item>
<item>
	<title>Hubertf's NetBSD Blog: Apple Magic Mouse driver</title>
	<guid>http://www.feyrer.de/NetBSD/blog.html/nb_20100516_2226.html</guid>
	<link>http://www.feyrer.de/NetBSD/blog.html/nb_20100516_2226.html</link>
	<description>&lt;img width=&quot;250&quot; align=&quot;right&quot; src=&quot;http://eu.dubli.com/auction_images/detail1/nd_apple_magic_mouse_1.jpg&quot;&gt;
NetBSD's Bluetooth hacker #1, Iain Hibbert,  
&lt;a href=&quot;http://mail-index.netbsd.org/tech-kern/2010/05/15/msg008165.html&quot;&gt;wrote on tech-kern&lt;/a&gt;:
``&lt;i&gt;I wrote a driver for the Apple Magic Mouse, as the protocol was mostly
decoded by a Linux developer, and Somebody was kind enough to send me
one. [...]
&lt;p&gt;

The mouse itself is a wireless Bluetooth mouse and operates with the USB
HID protocol much like other mice, but it doesn't provide a proper
descriptor and requires features to be activated and special
interpretations of the touch surface reports, so doesn't fit exactly into
our HID framework, which configures independent sub-devices to report id's
from the descriptor.
&lt;p&gt;

The driver interprets the touch reports to allow emulation of a middle
mouse button (for mulitple firm touches detected), and horizontal and
vertical scroll actions (for touches moving over a certain distance). It
works well on NetBSD-current and NetBSD-5 and the mouse is pretty slick.
&lt;/i&gt;''

See
&lt;a href=&quot;http://mail-index.netbsd.org/tech-kern/2010/05/15/msg008165.html&quot;&gt;Iain's posting&lt;/a&gt;
for more details.</description>
	<pubDate>Sun, 16 May 2010 22:33:00 +0000</pubDate>
</item>
<item>
	<title>The Julipedia  (Blog): Trac installation for ATF</title>
	<guid>tag:blogger.com,1999:blog-17885055.post-7270221803608994472</guid>
	<link>http://blog.julipedia.org/2010/05/trac-installation-for-atf.html</link>
	<description>During the past few months, I've got into the habit of using a bug tracker to organize my tasks at the work place. People assign tickets to me to get things done and I also create and self-assign tickets to myself to keep them as a reminder of the mini-projects to be accomplished. Sincerely, this approach works very well for me and keeps me focused.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;Since then, I've been wishing to have a similar system set up for ATF.  Yeah, we could use the &amp;amp;lt;a href=&quot;http://www.netbsd.org/Gnats/&quot;&amp;amp;gt;Gnats&amp;amp;lt;/a&amp;amp;gt; installation provided by NetBSD... but I hate this issue tracking system.  It's ancient, ugly, and I do really want a web interface to manage my tickets through.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;So, this weekend, I finally took some time and set up a Trac installation for ATF to provide a decent bug/task tracking system. The whole Apache plus Trac setup was more complex than I imagined, but I do hope that the results will pay off :-)&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;Take a look at the &amp;amp;lt;a href=&quot;http://www.NetBSD.org/~jmmv/atf/news.html#20100509-trac-available&quot;&amp;amp;gt;official announcement&amp;amp;lt;/a&amp;amp;gt; for more details!&amp;amp;lt;div class=&quot;blogger-post-footer&quot;&amp;amp;gt;&amp;amp;lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17885055-7270221803608994472?l=blog.julipedia.org' alt='' /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/content&amp;gt;</description>
	<pubDate>Mon, 10 May 2010 18:48:06 +0000</pubDate>
	<dc:creator>Julio Merino</dc:creator>
</item>
<item>
	<title>The Julipedia  (Blog): Ads gone</title>
	<guid>tag:blogger.com,1999:blog-17885055.post-3049034875819271527</guid>
	<link>http://blog.julipedia.org/2010/05/ads-gone.html</link>
	<description>Almost a year ago, I decided to &amp;amp;lt;a href=&quot;http://blog.julipedia.org/2009/06/trying-adsense.html&quot;&amp;amp;gt;give a try to AdSense&amp;amp;lt;/a&amp;amp;gt;. And, so far, the &quot;earnings&quot; have been ~30 EUR which I cannot even cash. Given this and how ugly and disturbing the ads look on the front page, I have disabled them. (I think the ads have gotten much worse over time... but as I do not pay attention to the front page, I didn't see them.) Thanks to Roman Valls for pointing this out!&amp;amp;lt;div class=&quot;blogger-post-footer&quot;&amp;amp;gt;&amp;amp;lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17885055-3049034875819271527?l=blog.julipedia.org' alt='' /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/content&amp;gt;</description>
	<pubDate>Mon, 10 May 2010 09:48:06 +0000</pubDate>
	<dc:creator>Julio Merino</dc:creator>
</item>
<item>
	<title>The Julipedia  (Blog): ATF 0.8 imported into NetBSD</title>
	<guid>tag:blogger.com,1999:blog-17885055.post-5123310572457338623</guid>
	<link>http://blog.julipedia.org/2010/05/atf-08-imported-into-netbsd.html</link>
	<description>Finished &amp;amp;lt;a href=&quot;http://mail-index.netbsd.org/source-changes/2010/05/08/msg009703.html&quot;&amp;amp;gt;importing ATF 0.8 into the NetBSD source tree&amp;amp;lt;/a&amp;amp;gt;.  Wow, the CVS import plus merge was much easier than I expected.&amp;amp;lt;div&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;Note that, while the NetBSD test suite should continue to work as usual, there are some backwards incompatible changes in the command line interface of test programs.  If you are used to run them by hand, expect different results.  Please read the &amp;amp;lt;a href=&quot;http://www.NetBSD.org/~jmmv/atf/news.html#20100507-atf-0-8-released&quot;&amp;amp;gt;release news&amp;amp;lt;/a&amp;amp;gt; for details.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;Now let's wait for complaints about broken builds!  And enjoy this new release in your NetBSD-current system!&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div class=&quot;blogger-post-footer&quot;&amp;amp;gt;&amp;amp;lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17885055-5123310572457338623?l=blog.julipedia.org' alt='' /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/content&amp;gt;</description>
	<pubDate>Sat, 08 May 2010 08:48:05 +0000</pubDate>
	<dc:creator>Julio Merino</dc:creator>
</item>
<item>
	<title>The Julipedia  (Blog): Announcing ATF 0.8</title>
	<guid>tag:blogger.com,1999:blog-17885055.post-5230262632323813624</guid>
	<link>http://blog.julipedia.org/2010/05/announcing-atf-08.html</link>
	<description>Looks like today is a release day.  I've just pushed &amp;amp;lt;a href=&quot;http://www.NetBSD.org/%7Ejmmv/atf/news.html#20100507-atf-0-8-released&quot;&amp;amp;gt;ATF 0.8&amp;amp;lt;/a&amp;amp;gt; out in the wild and will proceed to import it into pkgsrc and NetBSD later.  Refer to the release announcement for details.  This is an exciting release!  You have been warned ;-)&amp;amp;lt;div class=&quot;blogger-post-footer&quot;&amp;amp;gt;&amp;amp;lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17885055-5230262632323813624?l=blog.julipedia.org' alt='' /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/content&amp;gt;</description>
	<pubDate>Fri, 07 May 2010 15:48:09 +0000</pubDate>
	<dc:creator>Julio Merino</dc:creator>
</item>
<item>
	<title>The Julipedia  (Blog): Announcing etcutils 0.1</title>
	<guid>tag:blogger.com,1999:blog-17885055.post-6570217818735603714</guid>
	<link>http://blog.julipedia.org/2010/05/announcing-etcutils-01.html</link>
	<description>During past week, I worked on a new package called etcutils. It provides a (reduced) tool-set to programmatically manage files in &amp;amp;lt;tt&amp;amp;gt;/etc&amp;amp;lt;/tt&amp;amp;gt; and is specially designed to allow pkgsrc to update &amp;amp;lt;tt&amp;amp;gt;/etc/shells&amp;amp;lt;/tt&amp;amp;gt; and &amp;amp;lt;tt&amp;amp;gt;/etc/services&amp;amp;lt;/tt&amp;amp;gt; in a more consistent way.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;I'm happy to say that the 0.1 release is now ready!  Go to the &amp;amp;lt;a href=&quot;http://www.netbsd.org/%7Ejmmv/etcutils/&quot;&amp;amp;gt;etcutils web page&amp;amp;lt;/a&amp;amp;gt; for details.  (I know that if you are a Linux user, you probably don't care about this because your distribution most likely already provides something similar... albeit more complex.)&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;I'll now proceed to import this new package into pkgsrc as &amp;amp;lt;tt&amp;amp;gt;sysutils/etcutils&amp;amp;lt;/tt&amp;amp;gt;.  Later on (most likely not today), the following should happen: rework pkginstall to use the new shells(8) utility to update &amp;amp;lt;tt&amp;amp;gt;/etc/shells&amp;amp;lt;/tt&amp;amp;gt;, add a new feature to pkgsrc to abstract the updates to &amp;amp;lt;tt&amp;amp;gt;/etc/services&amp;amp;lt;/tt&amp;amp;gt;, and swipe through pkgsrc to make all packages touching this file use the new frameworky option.  (Hey FAM, that includes you!)&amp;amp;lt;div class=&quot;blogger-post-footer&quot;&amp;amp;gt;&amp;amp;lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17885055-6570217818735603714?l=blog.julipedia.org' alt='' /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/content&amp;gt;</description>
	<pubDate>Fri, 07 May 2010 09:48:06 +0000</pubDate>
	<dc:creator>Julio Merino</dc:creator>
</item>
<item>
	<title>Hubertf's NetBSD Blog: Silencing the boot process</title>
	<guid>http://www.feyrer.de/NetBSD/blog.html/nb_20100430_2300.html</guid>
	<link>http://www.feyrer.de/NetBSD/blog.html/nb_20100430_2300.html</link>
	<description>NetBSD-current is able to boot the userland silently with &quot;boot -z&quot;
for quite some time now, thanks to Alan Barrett.
Those changes were never ported back to the netbsd-5 branch
so far, but I'm in the process to change this now. 
Here's a preview:
&lt;p&gt;

&lt;img src=&quot;http://www.feyrer.de/NetBSD/images/netbsd5-silent-boot.png&quot;&gt;
&lt;p&gt;

Of course there are still many places left in the kernel
that don't honor the boot flags (i.e. that use printf(9)
instead of aprint_normal(9) and friends), but this 
will change over time - I hope :-).</description>
	<pubDate>Sat, 01 May 2010 10:52:00 +0000</pubDate>
</item>
<item>
	<title>Hubertf's NetBSD Blog: NetBSD-current build status</title>
	<guid>http://www.feyrer.de/NetBSD/blog.html/nb_20100429_0048.html</guid>
	<link>http://www.feyrer.de/NetBSD/blog.html/nb_20100429_0048.html</link>
	<description>Have you ever wondered how stable a -current build is at times?
&lt;a href=&quot;http://www.gson.org/netbsd/bugs/build/&quot;&gt;Here&lt;/a&gt;
is an interesting page to give an overview
on the success of NetBSD-current builds from the past few days
(and much further back):
&lt;p&gt;

&lt;a href=&quot;http://www.gson.org/netbsd/bugs/build/&quot;&gt;
&lt;img src=&quot;http://www.gson.org/netbsd/bugs/build/breaks-2010.04.png&quot;&gt;
&lt;/a&gt;
&lt;p&gt;

From the webpage:
``&lt;i&gt;This web page visualizes the state of the NetBSD-current build by plotting the number of lines in the build log from build.sh as a function of time, and coloring the points red or green depending on whether the build succeeded or failed. Hopefully, this can help give some insight into the frequency and duration of build failures.
&lt;p&gt;

The plots were constructed using an automated procedure that builds NetBSD-current periodically (roughly twice a day) using make.sh -m i386 release, looks for any changes in exit status or any substantial changes in the size of the build log, and then pinpoints the times at which the changes occurred using binary search.
The graph may not contain every build failure, because the algorithm used can miss cases where the build is broken and then fixed again between two consecutive periodic builds. The converse case, when the build is fixed and then broken again between two consecutive periodic builds, is usually detected because the size of the build log usually changes in this case.
&lt;p&gt;

Most of the builds in the graph are cross-builds using a 64-bit Linux host, while some of the older ones are native NetBSD builds.
&lt;p&gt;

If your browser supports SVG, you can use the SVG version. &lt;/i&gt;''
&lt;p&gt;

Thanks to Andreas Gustafsson for providing this service!</description>
	<pubDate>Thu, 29 Apr 2010 00:54:00 +0000</pubDate>
</item>
<item>
	<title>The Julipedia  (Blog): Forget about test(1)'s == operator</title>
	<guid>tag:blogger.com,1999:blog-17885055.post-6205418080955020541</guid>
	<link>http://blog.julipedia.org/2010/04/forget-about-test1s-operator.html</link>
	<description>Some implementations of test(1), in an attempt to be smart, provide non-standard operators such as &amp;amp;lt;tt&amp;amp;gt;==&amp;amp;lt;/tt&amp;amp;gt;. Please forget about those: they make your scripts non-portable and a pain to use in other systems. Why? Because, due to the way the shell works, failures in calls to test(1) will often just result in an error message (which may not be seen due to other output) and the script will happily continue running even if it missed to perform some important operation.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;So... just use the standard equality operators:&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;ul&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;&amp;amp;lt;tt&amp;amp;gt;=&amp;amp;lt;/tt&amp;amp;gt; for string equality comparison.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;&amp;amp;lt;tt&amp;amp;gt;-eq&amp;amp;lt;/tt&amp;amp;gt; for numeric equality comparison.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;/ul&amp;amp;gt;Note that whenever I refer to test(1), I'm also talking about the &amp;amp;lt;tt&amp;amp;gt;[ ... ]&amp;amp;lt;/tt&amp;amp;gt; construction in conditionals.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;Also, please note that this also affects configure scripts, and the problem in these appears much more commonly than in other scripts!&amp;amp;lt;div class=&quot;blogger-post-footer&quot;&amp;amp;gt;&amp;amp;lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17885055-6205418080955020541?l=blog.julipedia.org' alt='' /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/content&amp;gt;</description>
	<pubDate>Sat, 24 Apr 2010 21:48:06 +0000</pubDate>
	<dc:creator>Julio Merino</dc:creator>
</item>
<item>
	<title>The Julipedia  (Blog): Always define an else clause for portability #ifdefs</title>
	<guid>tag:blogger.com,1999:blog-17885055.post-1519509019468318358</guid>
	<link>http://blog.julipedia.org/2010/04/always-define-else-clause-for.html</link>
	<description>If you use &amp;amp;lt;tt&amp;amp;gt;#ifdef&amp;amp;lt;/tt&amp;amp;gt; conditionals in your code to check for portability features, be sure to always define a catch-all else clause that actually does something, even if this something is to error out.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;Consider the following code snippet, quoted from gamin's &amp;amp;lt;tt&amp;amp;gt;tests/testing.c&amp;amp;lt;/tt&amp;amp;gt; file:&amp;amp;lt;pre&amp;amp;gt;if (arg != NULL) {&amp;amp;lt;br /&amp;amp;gt;#ifdef HAVE_SETENV&amp;amp;lt;br /&amp;amp;gt;  setenv(&quot;GAM_CLIENT_ID&quot;, arg, 1);&amp;amp;lt;br /&amp;amp;gt;#elif HAVE_PUTENV&amp;amp;lt;br /&amp;amp;gt;  char *client_id = malloc (strlen (arg) + sizeof &quot;GAM_CLIENT_ID=&quot;);&amp;amp;lt;br /&amp;amp;gt;  if (client_id)&amp;amp;lt;br /&amp;amp;gt;  {&amp;amp;lt;br /&amp;amp;gt;      strcpy (client_id, &quot;GAM_CLIENT_ID=&quot;);&amp;amp;lt;br /&amp;amp;gt;      strcat (client_id, arg);&amp;amp;lt;br /&amp;amp;gt;      putenv (client_id);&amp;amp;lt;br /&amp;amp;gt;  }&amp;amp;lt;br /&amp;amp;gt;#endif /* HAVE_SETENV */&amp;amp;lt;br /&amp;amp;gt;}&amp;amp;lt;br /&amp;amp;gt;ret = FAMOpen(&amp;amp;amp;amp;(testState.fc));&amp;amp;lt;/pre&amp;amp;gt;The &amp;amp;lt;tt&amp;amp;gt;FAMOpen&amp;amp;lt;/tt&amp;amp;gt; method queries the &amp;amp;lt;tt&amp;amp;gt;GAM_CLIENT_ID&amp;amp;lt;/tt&amp;amp;gt; environment variable to set up the connections parameters to the FAM server. If the variable is not defined, the connection will still work, even though it will use some default internal value. In the test code above, the variable is explicitly set to let the tests use a separate server instance.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;Now, did you notice that we have to conditional branches? One for &amp;amp;lt;tt&amp;amp;gt;setenv&amp;amp;lt;/tt&amp;amp;gt; and one for &amp;amp;lt;tt&amp;amp;gt;putenv&amp;amp;lt;/tt&amp;amp;gt;? It seems reasonable to assume that one or the other must be present on any Unix system. Unfortunately, this is flawed:&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;ul&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;What happens if the code forgets to include &amp;amp;lt;tt&amp;amp;gt;config.h&amp;amp;lt;/tt&amp;amp;gt;?&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;What happens if the configure script fails to detect &amp;amp;lt;i&amp;amp;gt;both&amp;amp;lt;/i&amp;amp;gt; &amp;amp;lt;tt&amp;amp;gt;setenv&amp;amp;lt;/tt&amp;amp;gt; and &amp;amp;lt;tt&amp;amp;gt;putenv&amp;amp;lt;/tt&amp;amp;gt;? This is not that uncommon, given how some configure scripts are written.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;What happens if neither &amp;amp;lt;tt&amp;amp;gt;setenv&amp;amp;lt;/tt&amp;amp;gt; nor &amp;amp;lt;tt&amp;amp;gt;putenv&amp;amp;lt;/tt&amp;amp;gt; are available?&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;/ul&amp;amp;gt;The answer to the three questions is: in the above code snippet, the code &amp;amp;lt;tt&amp;amp;gt;builds just fine&amp;amp;lt;/tt&amp;amp;gt; but will misbehave at run time: neither &amp;amp;lt;tt&amp;amp;gt;HAVE_SETENV&amp;amp;lt;/tt&amp;amp;gt; nor &amp;amp;lt;tt&amp;amp;gt;HAVE_PUTENV&amp;amp;lt;/tt&amp;amp;gt; are defined, so the code will not be able to define the required environment variable. However, &amp;amp;lt;tt&amp;amp;gt;FAMOpen&amp;amp;lt;/tt&amp;amp;gt; will later be called and it will not behave as expected because the variable has not been set.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;Note that this code snippet is just an example. I have seen many more instances of this exact same problem with worse consequences than the above.  Read: they were not part of the test code, but just part of the regular code path.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;So how do you implement the above in a saner way? You have two alternatives:&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;ul&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;Add an &amp;amp;lt;tt&amp;amp;gt;#else&amp;amp;lt;/tt&amp;amp;gt; clause that contains a fallback implementation. In the case above, we could, for example, prefer to use &amp;amp;lt;tt&amp;amp;gt;setenv&amp;amp;lt;/tt&amp;amp;gt; if present because it has a nicer interface, and fall back to &amp;amp;lt;tt&amp;amp;gt;putenv&amp;amp;lt;/tt&amp;amp;gt; if not found.&amp;amp;lt;br /&amp;amp;gt;This has a disadvantage though: if you forget to include &amp;amp;lt;tt&amp;amp;gt;config.h&amp;amp;lt;/tt&amp;amp;gt; or the configure script cannot correctly detect one of the possible implementations (even when present), you will always use the fallback implementation.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;Keep each possible implementation correctly protected by a conditional, but add a &amp;amp;lt;tt&amp;amp;gt;#else&amp;amp;lt;/tt&amp;amp;gt; clause that raises an error at &amp;amp;lt;i&amp;amp;gt;build time&amp;amp;lt;/i&amp;amp;gt;. This will make sure that you never forget to define at least one of the portability macros for any reason. This is the preferred approach.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;/ul&amp;amp;gt;Following the second suggestion above, the code would get the following structure: &amp;amp;lt;pre&amp;amp;gt;#if defined(HAVE_SETENV)&amp;amp;lt;br /&amp;amp;gt;setenv(...);&amp;amp;lt;br /&amp;amp;gt;#elif defined(HAVE_PUTENV)&amp;amp;lt;br /&amp;amp;gt;putenv(...);&amp;amp;lt;br /&amp;amp;gt;#else&amp;amp;lt;br /&amp;amp;gt;#   error &quot;Don't know how to set environment variables.&quot;&amp;amp;lt;br /&amp;amp;gt;#endif&amp;amp;lt;/pre&amp;amp;gt;With this code, we can be sure that the code will not build if none of the possible implementations are selected. We can later proceed to investigate why that happened.&amp;amp;lt;div class=&quot;blogger-post-footer&quot;&amp;amp;gt;&amp;amp;lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17885055-1519509019468318358?l=blog.julipedia.org' alt='' /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/content&amp;gt;</description>
	<pubDate>Thu, 22 Apr 2010 14:48:06 +0000</pubDate>
	<dc:creator>Julio Merino</dc:creator>
</item>
<item>
	<title>The Julipedia  (Blog): Where does Gnome use file monitoring?</title>
	<guid>tag:blogger.com,1999:blog-17885055.post-8725416766704267720</guid>
	<link>http://blog.julipedia.org/2010/04/where-does-gnome-use-file-monitoring.html</link>
	<description>One of &amp;amp;lt;a href=&quot;http://blog.julipedia.org/2010/04/new-gio-fam-package.html?showComment=1271802660697#c3047587885904955995&quot;&amp;amp;gt;my readers&amp;amp;lt;/a&amp;amp;gt; of my &amp;amp;lt;a href=&quot;http://blog.julipedia.org/2010/04/new-gio-fam-package.html&quot;&amp;amp;gt;post yesterday&amp;amp;lt;/a&amp;amp;gt;, wonders where Gnome uses the file monitoring APIs. Well, the answer is: &amp;amp;lt;span style=&quot;font-style: italic;&quot;&amp;amp;gt;everywhere&amp;amp;lt;/span&amp;amp;gt;.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;Here are some examples:&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;ul&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;Nautilus monitors all open folders so that it can update their contents whenever the underlying file store changes. Say you are viewing the Documents folder and you save a new Document from within OpenOffice into that folder. You definitely want Nautilus to show it immediately, without having to manually hit Refresh from the menu.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;The trash applet monitors the trash folders and updates its icon from empty to full whenever one of these folders ceases to be non-empty.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;The panel monitors the applications directory to notice when new applications get installed. This allows it to update the Applications menu immediately as soon as a new program gets installed into the system.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;The GTK file open/save dialogs monitor the directory they are viewing for the same reason as Nautilus. (Actually, I'm unsure about this point. My Linux installation is an old Ubuntu 8.04 LTS that does not have GIO, so I can't verify in recent ones.  However, this makes perfect sense and if not implemented, it should be!)&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;The background switcher control panel monitors the folders containing images to be able to show new installed backgrounds. (I'm not sure about this either. It doesn't happen in my Linux installation, but it also makes sense.)&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;Media players such as Rhythmbox and Banshee allow you to point them to a folder containing music and have an option to automatically add music to the library as soon as it pops up in such folder.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;Potentially, any document editor, picture viewer, etc. monitors the documents opened in them so that these applications can notice external notifications to those files. This is useful to prevent overwriting a file with an out-dated in-memory copy. For example: you are taking some notes with GEdit. On a separate terminal window, you quickly edit the notes file with Vim to add a new note. When you go back to GEdit, you want the editor to tell you that the file has changed out of its control and offer you a choice: e.g. reload or ignore?&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;/ul&amp;amp;gt;And many, many more other situations that I'm surely missing...&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;As you can see, it is fairly important to get the file monitoring subsystem working flawlessly. Otherwise, all these tiny details don't work and the end user experience is undermined.&amp;amp;lt;div class=&quot;blogger-post-footer&quot;&amp;amp;gt;&amp;amp;lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17885055-8725416766704267720?l=blog.julipedia.org' alt='' /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/content&amp;gt;</description>
	<pubDate>Wed, 21 Apr 2010 08:48:06 +0000</pubDate>
	<dc:creator>Julio Merino</dc:creator>
</item>
<item>
	<title>The Julipedia  (Blog): New gio-fam package</title>
	<guid>tag:blogger.com,1999:blog-17885055.post-4070965403269265546</guid>
	<link>http://blog.julipedia.org/2010/04/new-gio-fam-package.html</link>
	<description>As briefly outlined in the &amp;amp;lt;a href=&quot;http://blog.julipedia.org/2010/04/file-system-monitoring-gnome-and-netbsd.html&quot;&amp;amp;gt;previous post&amp;amp;lt;/a&amp;amp;gt;, new versions of Glib provide GIO, a library that intends to be a low-level file system API on top of the POSIX interface. This library provides an interface to asynchronously wait for file system change notifications including the creation, deletion and modification of files.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;The monitoring functionality in GIO is modular: it is backed by different loadable plugins that implement OS-specific functionality. In particular, GIO uses an inotify module in Linux and a &amp;amp;lt;a href=&quot;http://oss.sgi.com/projects/fam/&quot;&amp;amp;gt;FAM&amp;amp;lt;/a&amp;amp;gt; module everywhere else.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;Up until now, the &amp;amp;lt;tt&amp;amp;gt;devel/glib2&amp;amp;lt;/tt&amp;amp;gt; package in pkgsrc provided a build-time option to specify whether to build the GIO FAM plugin or not. Given that this plugin is built as a shared object that is loaded dynamically at run-time, having a build-time option for this is clearly wrong: it gives no choice to those relying on binary packages (e.g. end/new users). Furthermore, it adds a dependency on the ugly-FAM at the very bottom of the huge Gnome dependency chain.  (As already stated, FAM is outdated and hard to set up.)&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;So, based on this, I've just removed all FAM support from &amp;amp;lt;tt&amp;amp;gt;devel/glib2&amp;amp;lt;/tt&amp;amp;gt; altogether and packaged its loadable module as &amp;amp;lt;tt&amp;amp;gt;sysutils/gio-fam&amp;amp;lt;/tt&amp;amp;gt;.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;Now waiting for a clean rebuild of the Gnome packages to see if the desktop now works on my machine by avoiding FAM/Gamin.&amp;amp;lt;div class=&quot;blogger-post-footer&quot;&amp;amp;gt;&amp;amp;lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17885055-4070965403269265546?l=blog.julipedia.org' alt='' /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/content&amp;gt;</description>
	<pubDate>Tue, 20 Apr 2010 18:48:06 +0000</pubDate>
	<dc:creator>Julio Merino</dc:creator>
</item>
<item>
	<title>The Julipedia  (Blog): File system monitoring, Gnome and NetBSD</title>
	<guid>tag:blogger.com,1999:blog-17885055.post-5347499839576127054</guid>
	<link>http://blog.julipedia.org/2010/04/file-system-monitoring-gnome-and-netbsd.html</link>
	<description>A few days ago, I decided to start using NetBSD, as well as Gnome on NetBSD once again, mostly because the lack of their use makes my skills feel rusty in many different areas. While NetBSD has surprised me in a good way (I am running it on a Macbook Pro and things like wireless and DRI work), Gnome has not. There are tons of broken things that prevent a smooth user experience.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;One of these broken things is the monitoring of changes in the file system. Actually, this has never worked 100%. But what is this and why does it matter, you ask? Well, file system monitoring is an internal component of the Gnome infrastructure that allows the desktop to receive notifications when files or directories change. This way, if, say, you are viewing the Downloads folder in Nautilus and you start downloading a file from Epiphany into that folder, Nautilus will realize the new file and show it immediately without requiring a manual refresh.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;How to monitor the file system depends on the operating system. There are basically two approaches: polling and asynchronous notifications. Polling is suboptimal because the notifications are usually delayed. Asynchronous notifications are tied to the operating system: Linux provides &amp;amp;lt;a href=&quot;http://en.wikipedia.org/wiki/Inotify&quot;&amp;amp;gt;inotify&amp;amp;lt;/a&amp;amp;gt;, NetBSD provides &amp;amp;lt;a href=&quot;http://en.wikipedia.org/wiki/Kqueue&quot;&amp;amp;gt;kqueue&amp;amp;lt;/a&amp;amp;gt; and other systems provide their own APIs.&amp;amp;lt;span style=&quot;display: block;&quot; id=&quot;formatbar_Buttons&quot;&amp;amp;gt;&amp;amp;lt;span class=&quot;on down&quot; style=&quot;display: block;&quot; id=&quot;formatbar_CreateLink&quot; title=&quot;Link&quot; onmouseover=&quot;ButtonHoverOn(this);&quot; onmouseout=&quot;ButtonHoverOff(this);&quot; onmouseup=&quot;&quot; onmousedown=&quot;CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);&quot;&amp;amp;gt;&amp;amp;lt;img src=&quot;http://www.blogger.com/img/blank.gif&quot; alt=&quot;Link&quot; class=&quot;gl_link&quot; border=&quot;0&quot; /&amp;amp;gt;&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;In the past, Gnome monitored the file system by a combination of &amp;amp;lt;a href=&quot;http://oss.sgi.com/projects/fam/&quot;&amp;amp;gt;FAM&amp;amp;lt;/a&amp;amp;gt;, a system-level service that provides an API to file system monitoring, and GNOME VFS, a high-level layer that hides the interaction with FAM. This approach was good in spirit (client/server separation) but didn't work well:&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;ul&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;FAM is abandoned.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;Does not support kqueue out of the box.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;FAM runs as root.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;FAM is too hard to set up: it requires rpcbind, an addition to &amp;amp;lt;tt&amp;amp;gt;/etc/services&amp;amp;lt;/tt&amp;amp;gt;, a sysctl tweak, and the configuration of a system-level daemon.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;/ul&amp;amp;gt;To solve some of these problems, a drop-in replacement for FAM was started. &amp;amp;lt;a href=&quot;http://people.gnome.org/%7Eveillard/gamin/&quot;&amp;amp;gt;Gamin&amp;amp;lt;/a&amp;amp;gt;, as it is known, still does not fix everything:&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;ul&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;Gamin is abandoned.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;Supports kqueue out of the box, but does not work very well.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;Actually, Gamin itself does not work. Running the tests provided by the distfile in a modern Linux system results in several test failures.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;/ul&amp;amp;gt;Anyway. Did you notice the &amp;amp;lt;span style=&quot;font-style: italic;&quot;&amp;amp;gt;abandoned&amp;amp;lt;/span&amp;amp;gt; pattern above?  This is important: in the new world order, Gnome does not use FAM any more.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;The new structure to monitor files is: the low-level glib library provides the gio module, which has some file system monitoring APIs. The GVFS module provides higher level abstractions to file system management, and relies on gio for file system monitoring. There is no more GNOME VFS any more.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;The &amp;amp;lt;span style=&quot;font-style: italic;&quot;&amp;amp;gt;key&amp;amp;lt;/span&amp;amp;gt; point is: gio uses inotify directly; no abstraction layers in between. FAM support is still there for platforms without inotify, but as it is not used in Linux any more, it rots. Linux developers will never experience what it is to have a system that needs to use FAM to get this functionality to work.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;At last, let's look at the status of all this in NetBSD:&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;ul&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;The FAM package was &amp;amp;lt;a href=&quot;http://blog.julipedia.org/2004/10/fam-and-kqueue.html&quot;&amp;amp;gt;patched to support kqueue&amp;amp;lt;/a&amp;amp;gt;. Although this kinda works, it is not perfect. Also, as mentioned above, FAM is, I'd say, the package with the hardest installation procedure of the whole Gnome platform.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;The Gamin packages are nicer than the FAM package regarding their configuration. However, when using Gamin instead of FAM, all sorts of bugs appear in Gnome (it actually gets stuck during startup for me). The breakage of the unit tests does not provide any confidence, and the fact that Gamin is abandoned, the idea of fixing it doesn't make me thrive.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;The glib2 package &amp;amp;lt;span style=&quot;font-style: italic;&quot;&amp;amp;gt;depends&amp;amp;lt;/span&amp;amp;gt; on FAM. This is ugly; really ugly. I had to shout WTF when I saw this, seriously.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;Seeing the direction gio/gvfs take, it is obvious that things can only get worse in the future.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;/ul&amp;amp;gt;If time permits, I'm planning to work on improving this whole situation. Ideas include:&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;ul&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;Splitting the FAM gio module out of the glib2 package. Ideally, this would happen upstream.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;Implement a gio backend for kqueue.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;Check if the core packages still using gnome-vfs have a more recent version that uses gvfs instead and, if so, update them.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;/ul&amp;amp;gt;Can't promise you anything other than, if I get to work on it, I will keep you posted!&amp;amp;lt;div class=&quot;blogger-post-footer&quot;&amp;amp;gt;&amp;amp;lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17885055-5347499839576127054?l=blog.julipedia.org' alt='' /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/content&amp;gt;</description>
	<pubDate>Tue, 20 Apr 2010 14:48:07 +0000</pubDate>
	<dc:creator>Julio Merino</dc:creator>
</item>
<item>
	<title>Hubertf's NetBSD Blog: Unixes of the world unite!</title>
	<guid>http://www.feyrer.de/NetBSD/blog.html/nb_20100411_2247.html</guid>
	<link>http://www.feyrer.de/NetBSD/blog.html/nb_20100411_2247.html</link>
	<description>I've stumbled about
&lt;a href=&quot;http://herpolhode.com/rob/ugly.pdf&quot;&gt;this presentation&lt;/a&gt;
by Unix (co)pioneer Robert Pike,
which he gave in 2001. Some hilights:
&lt;p&gt;

&lt;ul&gt;
&lt;li&gt; ``&lt;i&gt;What is Unix&lt;sup&gt;TM&lt;/sup&gt;?
     &lt;p&gt;
     
     [...] Those operating systems derived
     from or inspired by the Research Unix systems of the 1970.
     &lt;p&gt;

     Includes [...] &lt;b&gt;NetBSD&lt;/b&gt; [...] and others.&lt;/i&gt;''
     &lt;p&gt;
     &lt;p&gt;

&lt;li&gt; ``&lt;i&gt;1. What is the best thing about Unix?&lt;br&gt;
     A: The community.
     &lt;p&gt;

     2. What is the worst thing about Unix?
     A: That there are so many communities.&lt;/i&gt;''
&lt;/ul&gt;

Read the whole presentation for an overview of the
things that Unix got right and wrong.
Definitely worth reading!</description>
	<pubDate>Tue, 13 Apr 2010 23:42:00 +0000</pubDate>
</item>
<item>
	<title>Hubertf's NetBSD Blog: NetBSD and Google Summer of Code - Send in your proposals!</title>
	<guid>http://www.feyrer.de/NetBSD/blog.html/nb_20100406_2126.html</guid>
	<link>http://www.feyrer.de/NetBSD/blog.html/nb_20100406_2126.html</link>
	<description>Just a friendly reminder to
interested students who want to participate in this year's
Google Summer of Code: You have &lt;b&gt;only three days left&lt;/b&gt; to send in
your proposal! Student application deadline is April 9th,
19:00 UTC.
&lt;p&gt;

See our
&lt;a href=&quot;http://www.netbsd.org/contrib/soc-projects.html&quot;&gt;list of suggested SoC projects&lt;/a&gt;
if you need inspiration (other project suggestions are welcome!),
and please have a look at our
&lt;a href=&quot;http://www.netbsd.org/contrib/soc-application.html&quot;&gt;proposal HowTo&lt;/a&gt;
for a bunch of questions we want to have answered
so that we can properly judge your proposal.
Get going!</description>
	<pubDate>Tue, 06 Apr 2010 21:31:00 +0000</pubDate>
</item>
<item>
	<title>The Julipedia  (Blog): NetBSD in Google Summer of Code 2010</title>
	<guid>tag:blogger.com,1999:blog-17885055.post-1228455004173703548</guid>
	<link>http://blog.julipedia.org/2010/03/netbsd-in-google-summer-of-code-2010.html</link>
	<description>For the 6th year in a row, &amp;amp;lt;a href=&quot;http://www.netbsd.org/&quot;&amp;amp;gt;NetBSD&amp;amp;lt;/a&amp;amp;gt; is a mentoring organization for &amp;amp;lt;a href=&quot;http://code.google.com/soc/&quot;&amp;amp;gt;Google Summer of Code&amp;amp;lt;/a&amp;amp;gt; 2010!&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;If you are a bright student willing to develop full-time for an open source project during this coming summer, consider applying with us! You will have a chance to work with very smart people and, most likely, in the area that you are most passionate about. NetBSD, being an operating system project, has offers for project ideas at all levels: from the kernel to the packaging system, passing by drivers, networking tools, user-space utilities, the system installer, automation tools and more!&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;I would like to point you at the 3 project proposals I'm willing to directly mentor:&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;ul&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;&amp;amp;lt;a href=&quot;http://www.netbsd.org/contrib/soc-projects.html#optimize-atf&quot;&amp;amp;gt;Optimize and speed-up ATF&amp;amp;lt;/a&amp;amp;gt;: Make the testing framework blazing fast so that running the NetBSD automated tests does not take ages on slow platforms.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;&amp;amp;lt;a href=&quot;http://www.netbsd.org/contrib/soc-projects.html#reorganize-atf&quot;&amp;amp;gt;Reorganize ATF to improve modularity&amp;amp;lt;/a&amp;amp;gt;: Refactor pieces of the testing framework so that it is easier to redistribute, has cleaner interfaces and is easier to depend on from third-party projects.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;&amp;amp;lt;a href=&quot;http://www.netbsd.org/contrib/soc-projects.html#rewrite-pkg_comp&quot;&amp;amp;gt;Rewrite pkg_comp with portability as a major goal&amp;amp;lt;/a&amp;amp;gt;: Use Python to create a tool to automatically build binary packages from within a sandbox.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;/ul&amp;amp;gt;If you find any of the above projects interesting, or if you have any other project proposal that you think I could mentor, do not hesitate to &amp;amp;lt;a href=&quot;mailto:jmmv%20at%20netbsd%20dot%20org&quot;&amp;amp;gt;contact me&amp;amp;lt;/a&amp;amp;gt;. Feel free to send me a draft of &amp;amp;lt;a href=&quot;http://www.netbsd.org/contrib/soc-application.html&quot;&amp;amp;gt;your application&amp;amp;lt;/a&amp;amp;gt;, together with a bit of information about you, so that we can discuss your proposal and make sure it gets selected!&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;Or, if none of the projects above interests you, please do check out the &amp;amp;lt;a href=&quot;http://www.netbsd.org/contrib/soc-projects.html&quot;&amp;amp;gt;full list of NetBSD project proposals&amp;amp;lt;/a&amp;amp;gt;. I'm sure you will find something that suits your interests :-)&amp;amp;lt;div class=&quot;blogger-post-footer&quot;&amp;amp;gt;&amp;amp;lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17885055-1228455004173703548?l=blog.julipedia.org' alt='' /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/content&amp;gt;</description>
	<pubDate>Fri, 19 Mar 2010 09:48:06 +0000</pubDate>
	<dc:creator>Julio Merino</dc:creator>
</item>
<item>
	<title>Hubertf's NetBSD Blog: NetBSD is part of Google's Summer of Code 2010</title>
	<guid>http://www.feyrer.de/NetBSD/blog.html/nb_20100318_2303.html</guid>
	<link>http://www.feyrer.de/NetBSD/blog.html/nb_20100318_2303.html</link>
	<description>This year's
&lt;a href=&quot;http://socghop.appspot.com/gsoc/program/accepted_orgs/google/gsoc2010&quot;&gt;Google Summer of Code&lt;/a&gt;
mentoring organizations has been announced,
and 
&lt;a href=&quot;http://socghop.appspot.com/gsoc/org/show/google/gsoc2010/netbsd&quot;&gt;NetBSD is part of it, again!&lt;/a&gt;
Possible projects are listed
&lt;a href=&quot;http://www.netbsd.org/contrib/projects.html&quot;&gt;on the projects page&lt;/a&gt;,
&lt;a href=&quot;http://wiki.netbsd.org/GSoC/&quot;&gt;the GSoC wiki page&lt;/a&gt;,
and esp.
&lt;a href=&quot;http://www.netbsd.org/contrib/soc-projects.html&quot;&gt;on the SoC-projects page&lt;/a&gt;.
&lt;p&gt;

Prospective students that are interested in working on a project
are recommended to have a look at
&lt;a href=&quot;http://www.netbsd.org/contrib/soc-application.html&quot;&gt;the Project
Application / Proposal HowTo&lt;/a&gt;!</description>
	<pubDate>Thu, 18 Mar 2010 23:07:00 +0000</pubDate>
</item>
<item>
	<title>FreeBSD Diary: Monitoring your HDD using SMART and Nagios</title>
	<guid>http://www.freebsddiary.org/smart.php</guid>
	<link>http://www.freebsddiary.org/smart.php</link>
	<description>Checking your HDD!</description>
	<pubDate>Sat, 13 Mar 2010 00:48:08 +0000</pubDate>
</item>
<item>
	<title>The Julipedia  (Blog): New version of the monotone-server package in pkgsrc</title>
	<guid>tag:blogger.com,1999:blog-17885055.post-1599070089952057305</guid>
	<link>http://blog.julipedia.org/2010/03/new-version-of-monotone-server-package.html</link>
	<description>Wow, it has been a long time... 5 years ago, I created the &amp;amp;lt;a href=&quot;http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/devel/monotone-server/?only_with_tag=MAIN&quot;&amp;amp;gt;monotone-server&amp;amp;lt;/a&amp;amp;gt; package in pkgsrc, a package that provided an interactive script to set up a &amp;amp;lt;a href=&quot;http://monotone.ca/&quot;&amp;amp;gt;monotone&amp;amp;lt;/a&amp;amp;gt; server from scratch with, what I though, minimal hassle.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;My package did the job just fine, but past year I was blown away by the simplicity of the same package in &amp;amp;lt;a href=&quot;http://www.fedoraproject.org/&quot;&amp;amp;gt;Fedora&amp;amp;lt;/a&amp;amp;gt;: their &amp;amp;lt;tt&amp;amp;gt;init.d&amp;amp;lt;/tt&amp;amp;gt; script provides a set of extra commands to initialize the server before starting it up, and that is it. No need to mess with a separate interactive script; no need to create and memorize passphrases that you will never use; and, what's more, all integrated in the only single place that makes sense: in the init.d &quot;service management&quot; script.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;It has been a while since I became jealous of their approach, but I've finally got to it: I've spent the last few days rewriting the monotone-server package in pkgsrc and came up with a similar scheme.  And this &amp;amp;lt;a href=&quot;http://mail-index.netbsd.org/pkgsrc-changes/2010/03/12/msg038844.html&quot;&amp;amp;gt;new package&amp;amp;lt;/a&amp;amp;gt; just made its way &amp;amp;lt;a href=&quot;http://mail-index.netbsd.org/pkgsrc-changes/2010/03/12/msg038844.html&quot;&amp;amp;gt;&amp;amp;lt;/a&amp;amp;gt;to pkgsrc-HEAD!  The new package comes with what I think is a detailed manual page that explains how to configure the server from scratch.  Take a look and, if you find any mistakes, inconsistencies or improvements to be done, let me know!&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;In the meantime, I will log into my home server, rebuild the updated package and put it in production :-)&amp;amp;lt;div class=&quot;blogger-post-footer&quot;&amp;amp;gt;&amp;amp;lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17885055-1599070089952057305?l=blog.julipedia.org' alt='' /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/content&amp;gt;</description>
	<pubDate>Fri, 12 Mar 2010 09:48:06 +0000</pubDate>
	<dc:creator>Julio Merino</dc:creator>
</item>
<item>
	<title>The Julipedia  (Blog): Introducing the ATF nofork branch</title>
	<guid>tag:blogger.com,1999:blog-17885055.post-1501363386005733392</guid>
	<link>http://blog.julipedia.org/2010/03/introducing-atf-nofork-branch.html</link>
	<description>Despite my time for free software being virtually zero these days, I have managed to implement a prototype of what ATF would look like if it didn't implement forking and isolation in test programs. This feature has been often requested by users to simplify their life when debugging test cases.&amp;amp;lt;div&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;I shouldn't repeat everything I posted on the atf-devel mailing list regarding this announcement, so please &amp;amp;lt;a href=&quot;http://mail-index.netbsd.org/atf-devel/2010/03/05/msg000070.html&quot;&amp;amp;gt;refer to that email for details&amp;amp;lt;/a&amp;amp;gt;. But I must say that the results look promising: the overall code of ATF is much simpler and also faster. (An execution I just tried cuts the run time of the ATF test suite from 1m 41s to 1m 16s.)  Expect more simplifications and speed-ups!&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div class=&quot;blogger-post-footer&quot;&amp;amp;gt;&amp;amp;lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17885055-1501363386005733392?l=blog.julipedia.org' alt='' /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/content&amp;gt;</description>
	<pubDate>Sat, 06 Mar 2010 20:48:06 +0000</pubDate>
	<dc:creator>Julio Merino</dc:creator>
</item>
<item>
	<title>Hubertf's NetBSD Blog: Google Summer of Code 2010 NetBSD swcryptX Project Suggestion (Updated #2)</title>
	<guid>http://www.feyrer.de/NetBSD/blog.html/nb_20100222_2216.html</guid>
	<link>http://www.feyrer.de/NetBSD/blog.html/nb_20100222_2216.html</link>
	<description>&lt;b&gt;&lt;a href=&quot;http://www.feyrer.de/NetBSD/bx/blosxom.cgi/index.rss#oink&quot;&gt;Please see the update below&lt;/a&gt; before applying for this
GSoC project!&lt;/b&gt;
&lt;p&gt;

I've been thinking of a neat-o project for this year's 
Google Summer of Code:
&lt;p&gt;

&lt;ul&gt;
&lt;b&gt;Abstract:&lt;/b&gt;
The goal of this project is to provide crypto acceleration
by utilizing multiple CPU cores.
The work is to extend the existing software-only &quot;swcrypto&quot;
crypto driver and hook that up with NetBSD's OpenCrypto
framework.
&lt;/ul&gt;

&lt;h2&gt;Overview of operation&lt;/h2&gt;

The opencrypto(9) framework exists to coordinate hardware
acceleration in NetBSD. Applications of the framework can
be inside the kernel like the FAST_IPSEC IPsec implementation,
or in userland like OpenSSL with the &quot;cryptodev&quot; engine.
Crypto drivers can be realized in software or in hardware.
Hardware drivers can be used to instruct e.g. the AMD Geode
LX's AES block or a HIFN chip to perform cryptographic
operations.
Upon system startup, the crypto drivers at the opencrypto(9)
framework, telling what operations they can perform.
When an operation is required later, the framework
will look which crypto device is currently not busy, and
offload the operation to that device.
Upon completion, the result is fed back to the application.
&lt;p&gt;

The following image illustrates the components
and their interaction.
&lt;p&gt;
&lt;img src=&quot;http://www.feyrer.de/NetBSD/images/gsoc2010-swcryptX-1.png&quot;&gt;


&lt;h2&gt;Limitations&lt;/h2&gt;

Offloading the cryptographic requests involves some overhead.
Data needs to be transferred to the hardware and back.
On systems with a slow CPU, this overhead is relatively
small compared to the operation speed of the CPU. On faster
CPUs, the overhead becomes more of a burden, making the
benefit of the crypto hardware negligible.
&lt;p&gt;

As examples, while a hifn(4) chip can provide worthwhile
speedups on 500MHz and 1GHz CPUs, no performance
win is experienced on a 2.4GHz CPU.
&lt;p&gt;


&lt;h2&gt;Proposal&lt;/h2&gt;

The communication overhead involves data transfers over
a PCI bus, which is of relatively low speed compared
to today's modern CPUs. Preventing the data transfer
is a worthwhile goal. In coordination with today's modern
multi-core CPUs, using one or more CPUs solely for the
purpose of crypto acceleration, a measurable 
improvement of crypto performance is expected. At
the same time, no special hardware requirements beyond
the CPU exist. This allows turning standard contemporary
systems into fast crypto systems easily.
&lt;p&gt;

The following image illustrates the idea of
interoperation between a CPU core that runs 
the kernel and application codes and three
cores that are dedicated to crypto code.
&lt;p&gt;

&lt;img src=&quot;http://www.feyrer.de/NetBSD/images/gsoc2010-swcryptX-2.png&quot;&gt;


&lt;h2&gt;Implementation Roadmap&lt;/h2&gt;

This is where it gets fishy. ;)
&lt;strike&gt;The existing opencrypto(4) framework probably needs to be make
MP-aware at the same time, employing proper use of NetBSD's
locking framework.&lt;/strike&gt;&lt;i&gt; (Already done)&lt;/i&gt;
The existing swcrypto(4) needs to be adjusted for operation on
multiple CPUs at the same time.
A way to decide how many CPUs are dedicated to run swcrypto(4)
instances.
CPUs that run swcrypto(4) need to be taken out from the
usual NetBSD CPU scheduling so that they are available exclusively
for crypto.


&lt;h2&gt;Requirements&lt;/h2&gt;

In no particular order:
&lt;ul&gt;
&lt;li&gt; Know how to build and install a kernel
&lt;li&gt; Understanding of fine grained SMP and locking
&lt;li&gt; How to use NetBSD's kernel threads, code-wise
&lt;li&gt; How to interact with NetBSD's scheduler, code-wise
&lt;li&gt; Tell the scheduler to pin a specific kernel thread to a
     specific CPU
&lt;li&gt; Interaction between applications (IPsec, OpenSSL) with opencrypto(9), code-wise

&lt;li&gt; Interaction of crypto providers with opencrypto(9), code-wise
&lt;li&gt; Hardware! You won't be able to do this without at least two
     CPU cores in your machine. The more the better.
&lt;li&gt; Benchmarking &amp;amp; a test setup for it
&lt;/ul&gt;

&lt;h2&gt;Project Applications&lt;/h2&gt;

Please follow 
&lt;a href=&quot;http://www.netbsd.org/contrib/soc-application.html&quot;&gt;the
NetBSD Project Application/Proposal HowTo&lt;/a&gt;
if you're serious to work on this project.

&lt;p&gt;

If you have any questions let me know, public discussion
should be led on the tech-crypto@ list.
&lt;p&gt;

&lt;a name=&quot;oink&quot;&gt;
&lt;b&gt;Update:&lt;/b&gt;
There was
&lt;a href=&quot;http://mail-index.netbsd.org/current-users/2010/02/22/msg012688.html&quot;&gt;some discussion&lt;/a&gt;.
In particular, my understanding of the interaction of the
various layers as outlined above is not 100% accurate,
and userland applications using opencrypto already seem
to benefit from multiple kernel threads.
In-kernel applications apparently do not, and before
providing multiple crypto-servers in kernel (as suggested),
work should probably done first to make sure such
applications exist. Examples of this are IPsec (and the whole
network stack), but also others like cgd (which AFAIU currently
does not use opencrypto(9)).</description>
	<pubDate>Mon, 22 Feb 2010 22:57:00 +0000</pubDate>
</item>
<item>
	<title>The Julipedia  (Blog): set -e and set -x</title>
	<guid>tag:blogger.com,1999:blog-17885055.post-8947551254574129862</guid>
	<link>http://blog.julipedia.org/2010/01/set-e-and-set-x.html</link>
	<description>If you write shell scripts, you definitely need to know about two nice features that can be enabled through the &amp;amp;lt;tt&amp;amp;gt;set&amp;amp;lt;/tt&amp;amp;gt; builtin:&amp;amp;lt;div&amp;amp;gt;&amp;amp;lt;ul&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;&amp;amp;lt;tt&amp;amp;gt;set -e&amp;amp;lt;/tt&amp;amp;gt;: Enables checking of all commands. If a command exits with an error and the caller does not check such error, the script aborts immediately. Enabling this will make your scripts more robust. But don't wait until your script is &quot;complete&quot; to set the flag as an afterthought, because it will be a nightmare to fix the scrip to work with this feature enabled. Just write &amp;amp;lt;tt&amp;amp;gt;set -e&amp;amp;lt;/tt&amp;amp;gt; as the very first line of your code; well... after the shell bang.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;&amp;amp;lt;tt&amp;amp;gt;set -x&amp;amp;lt;/tt&amp;amp;gt;: If you are writing simple scripts that are meant to, well, script the execution of a few tasks (as opposed of being full-flown programs written in shell), set this flag to trace the execution of all commands. This will make the interpreter print each command right before it is executed, so it will aid you in knowing what is happening at any point in time.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;/ul&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div class=&quot;blogger-post-footer&quot;&amp;amp;gt;&amp;amp;lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17885055-8947551254574129862?l=blog.julipedia.org' alt='' /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/content&amp;gt;</description>
	<pubDate>Sun, 24 Jan 2010 22:48:06 +0000</pubDate>
	<dc:creator>Julio Merino</dc:creator>
</item>
<item>
	<title>FreeBSD Diary: Problems starting a jail with ezjail</title>
	<guid>http://www.freebsddiary.org/ezjail-freebsd-8.php</guid>
	<link>http://www.freebsddiary.org/ezjail-freebsd-8.php</link>
	<description>Things change.  We must evolve.</description>
	<pubDate>Sat, 23 Jan 2010 00:48:09 +0000</pubDate>
</item>
<item>
	<title>FreeBSD Diary: Integrating the Tape Library with an existing Bacula installation</title>
	<guid>http://www.freebsddiary.org/tape-library-integration.php</guid>
	<link>http://www.freebsddiary.org/tape-library-integration.php</link>
	<description>Adding a new tape drive isn't always simple</description>
	<pubDate>Tue, 19 Jan 2010 00:48:15 +0000</pubDate>
</item>
<item>
	<title>FreeBSD Diary: Tape Libraries &amp; Bacula</title>
	<guid>http://www.freebsddiary.org/tape-library.php</guid>
	<link>http://www.freebsddiary.org/tape-library.php</link>
	<description>Tape libraries can be complex to set up</description>
	<pubDate>Mon, 18 Jan 2010 00:48:10 +0000</pubDate>
</item>
<item>
	<title>The Julipedia  (Blog): Installing NetBSD/macppc on a Mac Mini G4</title>
	<guid>tag:blogger.com,1999:blog-17885055.post-1422463512138756573</guid>
	<link>http://blog.julipedia.org/2010/01/installing-netbsdmacppc-on-mac-mini-g4.html</link>
	<description>Yesterday, I spent a while installing NetBSD/macppc 5.0.1 on a Mac Mini G4.  The process wasn't easy, as it involved the following steps. I'm omitting many details, as they are &quot;common knowledge&quot; to Mac users (or otherwise can be easily found on the net):&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;ul&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;After booting the installer from the CD image, drop into the shell.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;Use &amp;amp;lt;tt&amp;amp;gt;pdisk&amp;amp;lt;/tt&amp;amp;gt; to create an &amp;amp;lt;tt&amp;amp;gt;Apple_HFS&amp;amp;lt;/tt&amp;amp;gt; partition for the boot loader and two &amp;amp;lt;tt&amp;amp;gt;Apple_UNIX_SVR2&amp;amp;lt;/tt&amp;amp;gt; partitions, one for the root file system and another for swap.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;Run &amp;amp;lt;tt&amp;amp;gt;sysinst&amp;amp;lt;/tt&amp;amp;gt; and install the system. When asked to repartition the disk, just say &amp;amp;lt;i&amp;amp;gt;Use existing partition sizes&amp;amp;lt;/i&amp;amp;gt;.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;Once the system is installed, drop again into the shell before rebooting.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;Mount your hard disk into &amp;amp;lt;tt&amp;amp;gt;/mnt&amp;amp;lt;/tt&amp;amp;gt; and chroot into it.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;Fetch a copy of pkgsrc.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;Install the &amp;amp;lt;tt&amp;amp;gt;sysutils/hfsutils&amp;amp;lt;/tt&amp;amp;gt; package.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;Use &amp;amp;lt;tt&amp;amp;gt;hformat&amp;amp;lt;/tt&amp;amp;gt; to create a new HFS file system in the &amp;amp;lt;tt&amp;amp;gt;Apple_HFS&amp;amp;lt;/tt&amp;amp;gt; partition we created.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;Mount the installation CD.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;Copy, using &amp;amp;lt;tt&amp;amp;gt;hcopy&amp;amp;lt;/tt&amp;amp;gt;, the &amp;amp;lt;tt&amp;amp;gt;ofwboot.xcf&amp;amp;lt;/tt&amp;amp;gt; file from the CD to the boot partition.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;Reboot.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;Drop into the OpenFirmware setup (Command+Option+P+R).&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;Set &amp;amp;lt;tt&amp;amp;gt;boot-device&amp;amp;lt;/tt&amp;amp;gt; to &amp;amp;lt;tt&amp;amp;gt;hd:,\ofwboot.xcf&amp;amp;lt;/tt&amp;amp;gt;.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;Set &amp;amp;lt;tt&amp;amp;gt;boot-file&amp;amp;lt;/tt&amp;amp;gt; to &amp;amp;lt;tt&amp;amp;gt;netbsd&amp;amp;lt;/tt&amp;amp;gt;.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;And here is the tricky thing to get the machine to auto-boot: Set &amp;amp;lt;tt&amp;amp;gt;boot-command&amp;amp;lt;/tt&amp;amp;gt; to &amp;amp;lt;tt&amp;amp;gt;.&quot; hello&quot; cr &quot; screen&quot; output boot&amp;amp;lt;/tt&amp;amp;gt;, not &amp;amp;lt;tt&amp;amp;gt;mac-boot&amp;amp;lt;/tt&amp;amp;gt;.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;/ul&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;I found the last command somewhere on the Internet (dunno where now), but, supposedly, a regular &amp;amp;lt;tt&amp;amp;gt;mac-boot&amp;amp;lt;/tt&amp;amp;gt; should have worked. In fact, it works if you call this command from the prompt, but not during automatic boot. (It turns out to be a problem with the version of OpenFirmware I have.)&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;Just writing down the steps in case I need them later on. Installing Debian stable was much, much easier, but the installer for testing crashes every day with a different error, so I gave up.&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;(Oh, by the way, I did the same installation into an old PowerMac G3 and that was really painful. The machine refused to boot from any of the CDs I tried and the prebuilt kernels hang during initialization due to a bogus driver. In the end: netbooting and using custom kernels.)&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div class=&quot;blogger-post-footer&quot;&amp;amp;gt;&amp;amp;lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17885055-1422463512138756573?l=blog.julipedia.org' alt='' /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/content&amp;gt;</description>
	<pubDate>Mon, 11 Jan 2010 23:48:06 +0000</pubDate>
	<dc:creator>Julio Merino</dc:creator>
</item>
<item>
	<title>FreeBSD Diary: Upgrading PostgreSQL</title>
	<guid>http://www.freebsddiary.org/postgresql-upgrading.php</guid>
	<link>http://www.freebsddiary.org/postgresql-upgrading.php</link>
	<description>Upgrading the client, then the server</description>
	<pubDate>Mon, 21 Dec 2009 00:48:11 +0000</pubDate>
</item>
<item>
	<title>The Julipedia  (Blog): Processing Makefile.am with M4</title>
	<guid>tag:blogger.com,1999:blog-17885055.post-5706562320936440325</guid>
	<link>http://blog.julipedia.org/2009/10/processing-makefileam-with-m4.html</link>
	<description>ATF's Makefile.am, which is a single Makefile for the whole tree, was already at the 1300 lines mark and growing. At this size, it is unmanageable, and a quick look at its contents reveals tons of repeated delicate code.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;Why so much repeated code, you ask, if the whole point of Automake is to simplify Makefiles? Automake does in fact simplify Makefile code when you define targets known by Automake, such as binaries and/or libraries. However, as soon as you start doing fancy things with documentation, building tons of small programs or messing with shell scripts, things get out of control because you are left on your own to define their targets and their necessary build logic.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;Up until now, I had just kept up with the boilerplate code... but now that I'm starting to add pretty complex rules to generate HTML and plain text documentation out of XML files, the complexity must go. And here comes my solution:&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;I've just committed an experiment to &amp;amp;lt;a href=&quot;http://mtn-host.prjek.net/viewmtn/atf/revision/info/aca66742e00b236d0b6dcb22ae70468736b612bc&quot;&amp;amp;gt;process Makefile.am with M4&amp;amp;lt;/a&amp;amp;gt;. I've been trying to look for prior art behind this idea and couldn't find any, so I'm not sure how well this will work. But, so far, this has cut down 350 lines of Makefile.am code.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;How does this work? First of all, I've written a script to generate the Makefile.am from the Makefile.am.m4 and put it in admin/generate-makefile.sh. All this script does is call M4, but I want to keep this logic in a single place because it has to be used from two call sites as described below.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;Then, I've added an autogen.sh script to the top-level directory that generates Makefile.am (using the previous script) and calls autoreconf -is. I'm against autogen.sh scripts that pretend to be smart instead of just calling autoreconf, but in this case I see no other way around it.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;At last, I've modified Makefile.am to add an extra rule to generate itself based on the M4 version. This, of course, also uses generate-makefile.sh.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;We'll see how this scales, but I'm so far happy with the results.&amp;amp;lt;div class=&quot;blogger-post-footer&quot;&amp;amp;gt;&amp;amp;lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17885055-5706562320936440325?l=blog.julipedia.org' alt='' /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/content&amp;gt;</description>
	<pubDate>Mon, 16 Nov 2009 15:48:06 +0000</pubDate>
	<dc:creator>Julio Merino</dc:creator>
</item>
<item>
	<title>The Julipedia  (Blog): Extending sudo credentials</title>
	<guid>tag:blogger.com,1999:blog-17885055.post-190748834219167977</guid>
	<link>http://blog.julipedia.org/2009/09/extending-sudo-credentials.html</link>
	<description>If you use sudo for, e.g. pkgsrc's just-in-time su, you may have often bitten by the problem that some compilations are slow and the build process stops right in the middle to ask you for a root password.  If you go away while the system compiles, you'll be frustrated when you come back, as the process may still well be at the very beginning.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;This happens because, unless disabled by the system administrator, your sudo credentials last for 5 minutes. If you hadn't used sudo for those 5 minutes, it will ask you for your password again. A simple workaround for the problem is to automatically renew your credentials, say, every 2 minutes. You can do this by running the following command (from the same console you are using later on!) right before starting a pkgsrc build:&amp;amp;lt;pre&amp;amp;gt;$ ( while :; do sudo -v; sleep 120; done ) &amp;amp;amp;&amp;amp;lt;/pre&amp;amp;gt;&amp;amp;lt;div class=&quot;blogger-post-footer&quot;&amp;amp;gt;&amp;amp;lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17885055-190748834219167977?l=blog.julipedia.org' alt='' /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/content&amp;gt;</description>
	<pubDate>Mon, 16 Nov 2009 15:48:06 +0000</pubDate>
	<dc:creator>Julio Merino</dc:creator>
</item>
<item>
	<title>The Julipedia  (Blog): Best config setting ever</title>
	<guid>tag:blogger.com,1999:blog-17885055.post-1338186479268297089</guid>
	<link>http://blog.julipedia.org/2009/08/best-config-setting-ever.html</link>
	<description>&amp;amp;lt;pre&amp;amp;gt;echo 'set editing-mode vi' &amp;amp;gt;&amp;amp;gt;~/.inputrc&amp;amp;lt;/pre&amp;amp;gt;This will enable vi-editing mode for all commands that use the GNU readline library (e.g. bash, python, bc, etc.), not only the shell.  For the shell only (including non-bash shells), add 'set -o vi' to your shrc file.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;I don't know why I didn't do this before given that I'm a pretty hard vi user.  Still, for some reason, I kept using emacs-like key bindings for command-line editing.  Not any more!  However, be careful: if you are used to vim's visual editing mode, you'll keep hitting 'v' in the command line and getting super annoyed.&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;Enjoy!&amp;amp;lt;div class=&quot;blogger-post-footer&quot;&amp;amp;gt;&amp;amp;lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17885055-1338186479268297089?l=blog.julipedia.org' alt='' /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/content&amp;gt;</description>
	<pubDate>Mon, 16 Nov 2009 15:48:06 +0000</pubDate>
	<dc:creator>Julio Merino</dc:creator>
</item>
<item>
	<title>The Julipedia  (Blog): 1000 revisions for ATF</title>
	<guid>tag:blogger.com,1999:blog-17885055.post-681908603179050098</guid>
	<link>http://blog.julipedia.org/2009/08/1000-revisions-for-atf.html</link>
	<description>Mmm!  Revision &amp;amp;lt;a href=&quot;http://mtn-host.prjek.net/viewmtn/atf/revision/info/7ca234b9aceabcfe9a8a1340baa07d6fdc9e3d33&quot;&amp;amp;gt;7ca234b9aceabcfe9a8a1340baa07d6fdc9e3d33&amp;amp;lt;/a&amp;amp;gt;, committed about an hour ago, marks the 1000th revision in the ATF repository.  Thanks for staying with me if you are following the project :)&amp;amp;lt;div class=&quot;blogger-post-footer&quot;&amp;amp;gt;&amp;amp;lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17885055-681908603179050098?l=blog.julipedia.org' alt='' /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/content&amp;gt;</description>
	<pubDate>Mon, 16 Nov 2009 15:48:06 +0000</pubDate>
	<dc:creator>Julio Merino</dc:creator>
</item>
<item>
	<title>The Julipedia  (Blog): Books by Joel Spolsky</title>
	<guid>tag:blogger.com,1999:blog-17885055.post-9020484380911179497</guid>
	<link>http://blog.julipedia.org/2009/08/books-by-joel-spolsky.html</link>
	<description>I just finished reading the third book in a row from Joel Spolsky, titled Joel on Software. Before this one, I read More Joel on Software and The Best Software Writing 1, all in a bit over a month. Note: I hadn't read any book cover-to-cover for a loooong while. Very interesting and entertaining books; highly recommended.&amp;amp;lt;div&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;Oh, and his writing style is really enjoyable. We, crappy blog writers, can learn a lot from him!&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div class=&quot;blogger-post-footer&quot;&amp;amp;gt;&amp;amp;lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17885055-9020484380911179497?l=blog.julipedia.org' alt='' /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/content&amp;gt;</description>
	<pubDate>Mon, 16 Nov 2009 15:48:06 +0000</pubDate>
	<dc:creator>Julio Merino</dc:creator>
</item>
<item>
	<title>The Julipedia  (Blog): Rearchitecting ATF</title>
	<guid>tag:blogger.com,1999:blog-17885055.post-4743147252783979430</guid>
	<link>http://blog.julipedia.org/2009/07/rearchitecting-atf.html</link>
	<description>During the last few weeks, I've been doing some ATF coding and, well... I'm not happy. At all. I keep implementing features but I feel, more and more, that ATF is growing out of control and that it is way too sluggish. It oughtn't be so slow. About 6 minutes to run the whole test suite in a Mac G3 I just got? HA! I bet I can do much, much, much better than that. Come on, we are targeting NetBSD, so we should support all those niche platforms rather well, and speed matters.&amp;amp;lt;div&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;The thing is, the current code base grew out of a prototype that didn't have that much of a design. Well, it had a design but, in my opinion, it has turned to be a bad design. I couldn't imagine that we could hit the bottlenecks (speed) and user-interface issues (for example, the huge difficulties that involve debugging a failing test case) that we are hitting.  So...&amp;amp;lt;div&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;&amp;amp;lt;i&amp;amp;gt;IT IS TIME FOR A CHANGE!!!&amp;amp;lt;/i&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;I'm currently working on a written specification of what ATF will look like, hopefully, in the not-so-distant future. It will take a while to get there, but with enough effort, we soon will. And life will be better. And no, I'm not talking about a from-scratch rewrite; that'd only hurt the project. I plan to take incremental and safe steps, keeping the code base running all the time, but I will do a major face-lift of everything. (I wish I could say &quot;we&quot; instead of &quot;I&quot; here.  But not there yet.)&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;Why am I writing a specification, you ask? Well, because that forces me (or ANY developer) to think how I want the thing to look like and to decide, exactly, on what the design will be, which technologies will be used, which languages will be involved and in what components, etc. And no, I'm not talking of a class model design; I'm just talking about the main design of the whole picture, which is quite hard by itself. Plus having a spec will allow me to show it to you before I start coding and you will say &quot;oh, wonderful, this new design sucks so much that I'm not going to bother with the new version&quot;. Or maybe hell will freeze and you will think, &quot;mmm, this looks interesting, maybe it will solve these issues I'm having as regards speed, ease of debugging and ease of use&quot;.&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;Anyway, I hope to have a draft &quot;soon&quot; and to hear any of the two possible comments as a result!&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;Edit (July 29th)&amp;amp;lt;/b&amp;amp;gt;: Alright, I have uploaded an &amp;amp;lt;a href=&quot;http://www.netbsd.org/~jmmv/rearchitecting-atf/spec.html&quot;&amp;amp;gt;extremely preliminary copy of the specification&amp;amp;lt;/a&amp;amp;gt; just so that you can see where my current ideas are headed. Expect many more changes to this document, so don't pay too much attention to the tiny details (most of which aren't there anyway yet).&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div class=&quot;blogger-post-footer&quot;&amp;amp;gt;&amp;amp;lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17885055-4743147252783979430?l=blog.julipedia.org' alt='' /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/content&amp;gt;</description>
	<pubDate>Mon, 16 Nov 2009 15:48:06 +0000</pubDate>
	<dc:creator>Julio Merino</dc:creator>
</item>
<item>
	<title>The Julipedia  (Blog): The mess of ATF's code</title>
	<guid>tag:blogger.com,1999:blog-17885055.post-8981481737885658422</guid>
	<link>http://blog.julipedia.org/2009/07/mess-of-atfs-code.html</link>
	<description>Yes. ATF's code is a &quot;bit&quot; messy, to put it bluntly. I'm quite happy with some of the newest bits but there are some huge parts in it that stink. The main reason for this is that the &quot;ugly&quot; parts were the ones that were written first, and they were basically a prototype; we didn't know all the requirements for the code at that point... and we still don't know them, but we know we can do much better. Even though I'm writing in plural... I'm afraid we = I at the moment :-P&amp;amp;lt;div&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;So, is it time for the big-rewrite-from-scratch? NO! Joel Spolsky wrote about why &amp;amp;lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000348.html&quot;&amp;amp;gt;this is a bad idea&amp;amp;lt;/a&amp;amp;gt; and I have to agree with him. Yeah, I'm basically the only developer of the code so everything is in my head, and I'd do a rewrite with a fresh mind, but... I'd lose tons of work and, specially, I'd lose tons of code that deals with tricky corner-cases that are hard to remember.&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;Sure, I want to clean things up but they'll happen incrementally. And preferably concurrently with feature additions. These two things could definitely happen at the same time if only I had infinite spare time...&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;Anyway, the major point of this post is to describe what I don't like about the current code base and how I'd like to see it changing:&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;&amp;amp;lt;ul&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;A completely revamped C++ API for test cases. The current one sucks. It is not consistent with the C API. It lacks important functionality. It uses exceptions for test-case status reporting (yuck!). And it's ugly.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;Clear separation of &quot;internal/helper&quot; APIs from the test APIs. You'll agree that the &quot;fs&quot; module, which provides path abstraction and other file system management routines, is something that cannot be part of ATF's API. ATF is about testing. Period. Either that fs module should be in a separate library or should be completely hidden from the public. Otherwise, it'll suffer from abuse and, what scares me, will have to become part of ATF's API. And likewise, most &amp;amp;amp;mdash; really &amp;amp;amp;mdash; most of the modules in the current code are internal.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;Less dependencies from the C++ API to the C API. Most of the current C++ modules are wrappers of their corresponding C counterparts. This is nice for code reuse but makes the code extremely fragile. In C++, things like RAII can provide really robust code with minimum effort, but intermixing such C++ code with C makes things ugly really quickly. I'd like to find a way to keep the two libraries separate from each other (and thus keep the C++ binding &quot;pure&quot;), but at the same time I don't want to duplicate code... an interesting problem.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;Split the tarball into smaller pieces. People writing test cases for C applications don't want to pull in a huge package that depends on C++ and whatnot. And ATF is huge. It takes forever to compile. And this is a serious issue for broad adoption. Note: whether the tools are written in C++ or not is a separate issue, because these are not a dependency for anything!&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;The shell binding is slow. Really slow compared to the other ones. Optimizations would be nice, but those do not address the root of the problem: it's costly to query information from shell-based tests at run time. I.e. it takes a long time to get the full list of test cases available in a test suite because you have to run every single test program with the -l flag. Keeping a separate file with test-case metadata alongside the binary could resolve this and allow more flexibility at run time.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;And some other things.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;lt;/ul&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;Those are the major things I'd like to see addressed soon, but they involve tons of work. Of course, I'd like to be able to work on some features expected by other developers: easier debugging, DOCUMENTATION!...&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;So, helpers welcome :-)&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;div class=&quot;blogger-post-footer&quot;&amp;amp;gt;&amp;amp;lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17885055-8981481737885658422?l=blog.julipedia.org' alt='' /&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/content&amp;gt;</description>
	<pubDate>Mon, 16 Nov 2009 15:48:06 +0000</pubDate>
	<dc:creator>Julio Merino</dc:creator>
</item>

</channel>
</rss>
