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

<channel>
	<title>SourceHosting.blog</title>
	<atom:link href="http://blog.sourcehosting.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.sourcehosting.net</link>
	<description>Various ramblings on the subjects of SaaS, software development, source code control, configuration management and entrepreneurship</description>
	<lastBuildDate>Mon, 20 Jul 2009 17:17:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
<image>
<link>http://blog.sourcehosting.net</link>
<url>http://blog.sourcehosting.net/wp-content/mbp-favicon/favicon.ico</url>
<title>SourceHosting.blog</title>
</image>
		<item>
		<title>Avoid Monotonous Tasks With WWW::Mechanize</title>
		<link>http://blog.sourcehosting.net/2009/07/17/perl-www-mechanize-scripting/</link>
		<comments>http://blog.sourcehosting.net/2009/07/17/perl-www-mechanize-scripting/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 18:59:22 +0000</pubDate>
		<dc:creator>Greg Larkin</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://blog.sourcehosting.net/?p=199</guid>
		<description><![CDATA[Hi everyone, A SourceHosting.net client recently asked to create a large number of users in a custom installation of phpDeadlock that he uses to manage access to his Subversion repository here. Since phpDeadlock doesn&#8217;t have a user management API, this sounded like a monotonous, error-prone task.  After entering 10-15 users, the chances of misspelling a [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_202" class="wp-caption alignright" style="width: 345px"><a href="http://en.wikipedia.org/wiki/Per_Georg_Scheutz"><img class="size-full wp-image-202" title="The Scheutz Mechanical Calculator" src="http://www.sourcehosting.net/blog-media/2009/07/Scheutz_mechanical_calculator_small.png" alt="Scheutz Mechanical Calculator" width="335" height="176" /></a><p class="wp-caption-text">The Scheutz Mechanical Calculator</p></div>
<p>Hi everyone,</p>
<p>A SourceHosting.net client recently asked to create a large number of users in a custom installation of <a href="http://www.phpdeadlock.org/" target="_blank">phpDeadlock</a> that he uses to manage access to his <a href="http://www.sourcehosting.net/solutions.php" target="_blank">Subversion repository</a> here. Since phpDeadlock doesn&#8217;t have a user management API, this sounded like a monotonous, error-prone task.  After entering 10-15 users, the chances of misspelling a name or email address or clicking the wrong button in the UI will likely increase dramatically.</p>
<p>I briefly investigated adding records directly to the backend MySQL database, but since various other actions are fired by user creation, including email notifications to the new user and the system administrator, using the application&#8217;s UI was the safest choice.</p>
<p>I had run across the <a href="http://search.cpan.org/dist/WWW-Mechanize/" target="_blank">WWW::Mechanize</a> Perl module a while back, but hadn&#8217;t used it yet. I knew it could be used to automate interaction with a web site, and after reading through the <a href="http://search.cpan.org/dist/WWW-Mechanize/lib/WWW/Mechanize.pm" target="_blank">rich list of methods</a>, I promptly began hacking a script together to parse a list of email addresses supplied by the client and use it to drive the user creation UI.</p>
<p>The module implements a headless web browser, including cookie jar, history, form submission and other behaviors that you would expect, except it doesn&#8217;t parse and execute Javascript. That was a non-issue for me.</p>
<p>phpDeadlock has an administrator login prompt that requests a password before any privileged pages are accessed. Logging in to the application was a no-brainer in WWW::Mechanize:</p>
<p><pre><pre>
use WWW::Mechanize;
use String::Random;
use Text::Capitalize;

my $mech = WWW::Mechanize-&gt;new();
$mech-&gt;get(&#039;https://phpdeadlock.mydomain.com/admin/&#039;);
$mech-&gt;set_visible(&#039;ItsASecret&#039;);
$mech-&gt;submit_form();
</pre></pre></p>
<p>That was too easy! All further page requests will be authenticated. Next, the script enters a loop to process email addresses presented on STDIN, one per line, and populate the required fields:</p>
<p><pre><pre>
for my $email (&lt;STDIN&gt;) {
&nbsp;&nbsp;&nbsp;&nbsp;chomp $email;
&nbsp;&nbsp;&nbsp;&nbsp;my @fields = split /\@/, $email;
&nbsp;&nbsp;&nbsp;&nbsp;my $finitial = substr($fields[0], 0, 1);
&nbsp;&nbsp;&nbsp;&nbsp;my $lname = substr($fields[0], 1);
&nbsp;&nbsp;&nbsp;&nbsp;my $pw = new String::Random-&gt;randpattern(&quot;ssssssss&quot;);

&nbsp;&nbsp;&nbsp;&nbsp;$mech-&gt;get(&#039;https://phpdeadlock.mydomain.com/admin/newuser.php&#039;);
&nbsp;&nbsp;&nbsp;&nbsp;$mech-&gt;submit_form(
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fields =&gt; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;firstname =&gt; capitalize($finitial),
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lastname =&gt; capitalize($lname),
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;email =&gt; $email,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;username =&gt; $fields[0],
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;password =&gt; $pw,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;password2 =&gt; $pw
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;);

&nbsp;&nbsp;&nbsp;&nbsp;print &quot;Added new user for $finitial $lname\n&quot;;
}
</pre></pre></p>
<p>If the user&#8217;s full name had been supplied, I could have easily parsed that and set the firstname and lastname fields appropriately.</p>
<p>The possibilities for using this module are endless, and I encourage you to try it out, especially when you&#8217;re dreading a repetitive web application UI task.  Make sure to check the list of other Perl modules that are <a href="http://search.cpan.org/search?query=mechanize&amp;mode=all" target="_blank">based on WWW::Mechanize</a>, too!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sourcehosting.net/2009/07/17/perl-www-mechanize-scripting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Improving PHP Application Performance</title>
		<link>http://blog.sourcehosting.net/2009/07/16/php-application-optimization/</link>
		<comments>http://blog.sourcehosting.net/2009/07/16/php-application-optimization/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 13:47:50 +0000</pubDate>
		<dc:creator>Greg Larkin</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://blog.sourcehosting.net/?p=191</guid>
		<description><![CDATA[Hi everyone, I came across a helpful list of PHP optimization tips, and I&#8217;d like to share it with you here: http://php100.wordpress.com/2009/07/13/php-performance/ In addition, using the XDebug profiler for collecting performance data and KCacheGrind for viewing it is highly recommended to keep your PHP applications running smoothly!]]></description>
			<content:encoded><![CDATA[<div id="attachment_194" class="wp-caption alignright" style="width: 266px"><a href="http://flickr.com/photos/12169388@N05"><img class="size-full wp-image-194" title="High-Performance PHP" src="http://www.sourcehosting.net/blog-media/2009/07/tmpphpIHRihQ.jpg" alt="Photo by: Mark McArdle" width="256" height="147" /></a><p class="wp-caption-text">Photo by: Mark McArdle</p></div>
<p>Hi everyone,</p>
<p>I came across a helpful list of PHP optimization tips, and I&#8217;d like to share it with you here: <a href="http://php100.wordpress.com/2009/07/13/php-performance/" target="_blank">http://php100.wordpress.com/2009/07/13/php-performance/</a></p>
<p>In addition, using the <a href="http://xdebug.org/docs/profiler" target="_blank">XDebug profiler</a> for collecting performance data and <a href="http://kcachegrind.sourceforge.net/html/Home.html" target="_blank">KCacheGrind</a> for viewing it is highly recommended to keep your PHP applications running smoothly!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sourcehosting.net/2009/07/16/php-application-optimization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subversion Dump File Validation</title>
		<link>http://blog.sourcehosting.net/2009/07/01/subversion-dump-file-validation-test-suite/</link>
		<comments>http://blog.sourcehosting.net/2009/07/01/subversion-dump-file-validation-test-suite/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 15:42:48 +0000</pubDate>
		<dc:creator>Greg Larkin</dc:creator>
				<category><![CDATA[Source Code Control]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://blog.sourcehosting.net/?p=137</guid>
		<description><![CDATA[Hi everyone, Many new SourceHosting.net clients have existing repositories that they want to import into a Subversion repository here. If we&#8217;re lucky, the client already uses Subversion, and it&#8217;s no more difficult to import the repository than dumping and loading it. Converting from CVS to SVN is quite easy using the cvs2svn script. We rarely [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_153" class="wp-caption alignright" style="width: 250px"><img class="size-medium wp-image-153" title="Mushroom Cloud" src="http://www.sourcehosting.net/blog-media/2009/06/mushroom-cloud-300x238.jpg" alt="Common result from converting a non-Subversion source code repository to a Subversion dump file" width="240" height="190" /><p class="wp-caption-text">Common result from converting a complex non-Subversion source code repository to a Subversion dump file</p></div>
<p>Hi everyone,</p>
<p>Many new SourceHosting.net clients have existing repositories that they want to import into a Subversion repository here. If we&#8217;re lucky, the client already uses Subversion, and it&#8217;s no more difficult to import the repository than <a href="http://svnbook.red-bean.com/en/1.5/svn.ref.svnadmin.c.dump.html" target="_blank">dumping</a> and <a href="http://svnbook.red-bean.com/en/1.5/svn.ref.svnadmin.c.load.html" target="_blank">loading</a> it.</p>
<p>Converting from CVS to SVN is quite easy using the <a href="http://cvs2svn.tigris.org/" target="_blank">cvs2svn</a> script. We rarely run into any problems, and it has a flexible set of <a href="http://cvs2svn.tigris.org/cvs2svn.html#cmd-ref" target="_blank">command line options</a>. If, however, the client uses a different source code control system, the process can get trickier.</p>
<p>There are several repository converters available for download, including <a href="http://community.polarion.com/index.php?page=overview&amp;project=svnimporter" target="_blank">Polarion Importer for SVN</a> and <a href="http://www.pumacode.org/projects/vss2svn" target="_blank">VSS2SVN</a>. These tools are welcome additions to a release engineer&#8217;s bag of tricks, especially if different groups in an organization have not standardized on a single SCM system and you&#8217;re trying to convert everyone to Subversion.</p>
<p>As we&#8217;ve used the tools mentioned above more and more frequently, we&#8217;ve found that they work well for new clients with reasonably small and uncomplicated repositories. However, as the complexity grows with more tags, branches and merge points, the likelihood of producing a corrupted or logically-incorrect Subversion dump file increases.</p>
<p>This problem is illustrated by a recent repository conversion in which the new client used a tool to convert from their existing VSS repository to a Subversion dump file, preparing for their migration to SourceHosting.net. Upon cursory inspection, the dump file contents looked reasonable, but some number of revisions into the loading process, svnadmin reported the following error:</p>
<p><pre><pre>
&lt;&lt;&lt; Started new transaction, based on original revision 33
svnadmin: File not found: transaction &#039;30-1&#039;, path &#039;/src/docs/ChangeLog&#039;
&nbsp;&nbsp;&nbsp;&nbsp;* editing path : src/docs/ChangeLog ...
</pre></pre></p>
<p>After reading through the dump file, we discovered that it contained a sequence of operations on the &#8220;/src/docs/ChangeLog&#8221; file that occurred before the file had been added to the repository. We&#8217;ve also run across negative-numbered revisions and attempts to delete files from locations that don&#8217;t exist. All of these situations will abort repository loading.</p>
<p>These errors aren&#8217;t difficult to detect, and even fix, by parsing through the dump file and rewriting it slightly with the Perl CPAN module <a href="http://search.cpan.org/dist/SVN-Dumpfile/" target="_blank">SVN::Dumpfile</a>. This module extracts data from a dump file and also allows new data to be inserted into it.</p>
<p>In order to make it easier to test software that generates Subversion dump files, we are building on the work of SVN::Dumpfile and creating a sequence of dump file validation tests. Not even the <a href="http://svn.collab.net/repos/svn/trunk/subversion/tests/cmdline/svnadmin_tests.py" target="_blank">svnadmin tests</a> included in the Subversion distribution parse dump files, and perhaps this work will migrate into their suite as well.</p>
<p>If you have any suggestions or ideas for specific tests that you would like included, please let us know.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sourcehosting.net/2009/07/01/subversion-dump-file-validation-test-suite/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Reducing I/O Priority on RedHat Enterprise Linux V4.0</title>
		<link>http://blog.sourcehosting.net/2009/06/19/reducing-io-priority-redhat-enterprise/</link>
		<comments>http://blog.sourcehosting.net/2009/06/19/reducing-io-priority-redhat-enterprise/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 18:45:56 +0000</pubDate>
		<dc:creator>Greg Larkin</dc:creator>
				<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[rhel]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://blog.sourcehosting.net/?p=139</guid>
		<description><![CDATA[Hi everyone, I have some servers with RHEL4 installed on them, and I&#8217;ve noticed a problem every time I start processes that saturate the I/O channels, such as VMware&#8217;s vmware-vdiskmanager. This tool performs various operations on VMware virtual disk files, and when creating a new one, the load average on the server tends to spike [...]]]></description>
			<content:encoded><![CDATA[<p>Hi everyone,</p>
<p>I have some servers with RHEL4 installed on them, and I&#8217;ve noticed a problem every time I start processes that saturate the I/O channels, such as VMware&#8217;s <a href="http://pubs.vmware.com/server1/vm/wwhelp/wwhimpl/common/html/wwhelp.htm?context=vm&amp;file=disks_server.7.33.html" target="_blank">vmware-vdiskmanager</a>. This tool performs various operations on VMware virtual disk files, and when creating a new one, the load average on the server tends to spike into the double digits. As you can imagine, this negatively affects virtual machines running at the same time!</p>
<p>After some searching, I found the <a href="http://linux.die.net/man/1/ionice" target="_blank">ionice</a> tool that looked like a perfect solution to the problem. Unfortunately, it doesn&#8217;t run on the 2.6.9 vintage kernel supplied with RHEL4. Back to the drawing board!</p>
<p>After more searching, I came across a <a href="https://www.tektonic.net/forum/showthread.php?p=5394" target="_blank">forum thread</a> and a link to an <a href="http://s3.amazonaws.com/ServEdge_pub/ionice" target="_blank">ionice replacement for RHEL4</a>, written in Perl. I downloaded it and tried it out, and it appears to work as advertised. My heavy I/O operations take longer now (fine), and the load average stays within acceptable limits (great!).</p>
<p>The script has some hard-coded values, and it can be easily tweaked as needed. Thanks to Greg Bell at ServEdge for writing it!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sourcehosting.net/2009/06/19/reducing-io-priority-redhat-enterprise/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Broken-Hearted Ports</title>
		<link>http://blog.sourcehosting.net/2009/06/15/unmaintained-broken-freebsd-ports/</link>
		<comments>http://blog.sourcehosting.net/2009/06/15/unmaintained-broken-freebsd-ports/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 14:07:47 +0000</pubDate>
		<dc:creator>Greg Larkin</dc:creator>
				<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[ifaapd2009]]></category>
		<category><![CDATA[ports]]></category>

		<guid isPermaLink="false">http://blog.sourcehosting.net/?p=123</guid>
		<description><![CDATA[Hi everyone, As I&#8217;ve been writing over the past couple of weeks, there are a large number of FreeBSD ports that are unmaintained and would benefit greatly from a new maintainer. Today, we&#8217;ll visit with a particularly tragic strain of port: Unmaintained and BROKEN! Bill Fenner sends out a periodic automated email to the freebsd-ports [...]]]></description>
			<content:encoded><![CDATA[<p>Hi everyone,</p>
<p>As I&#8217;ve been writing over the past couple of weeks, there are a large number of FreeBSD ports that are unmaintained and would benefit greatly from a new maintainer. Today, we&#8217;ll visit with a particularly tragic strain of port:</p>
<p><strong>Unmaintained and BROKEN!</strong></p>
<p><a href="http://people.freebsd.org/~fenner/" target="_blank">Bill Fenner</a> sends out a periodic automated email to the <a href="http://lists.freebsd.org/mailman/listinfo/freebsd-ports" target="_blank">freebsd-ports mailing list</a> with links to ports that do not build: <a href="http://people.freebsd.org/~fenner/errorlogs/" target="_blank">http://people.freebsd.org/~fenner/errorlogs/</a>.</p>
<p>This is a useful page for any port maintainer to visit periodically to make sure all of his/her ports are humming along. If a port remainis unbuildable for too long, portmgr will likely <a href="http://www.freshports.org/commit.php?category=chinese&amp;port=mplayer-fonts&amp;files=yes&amp;message_id=200906132027.n5DKRUgT062601@repoman.freebsd.org" target="_blank">mark it BROKEN</a> after a while, and if it stays BROKEN too long, it will be <a href="http://www.freshports.org/commit.php?category=www&amp;port=toofpy&amp;files=yes&amp;message_id=200906132023.n5DKNqH0062237@repoman.freebsd.org" target="_blank">removed from the tree</a>.</p>
<p>The problem is that when a port is unmaintained, it&#8217;s likely that no one will notice that it doesn&#8217;t build, and it won&#8217;t be fixed in time to save it from removal. One place to start if you&#8217;re interested in adopting a port is the page detailing unmaintained ports that are broken on one or more platforms:</p>
<p><a href="http://people.freebsd.org/~fenner/errorlogs/ports@freebsd.org-date.html" target="_blank">http://people.freebsd.org/~fenner/errorlogs/ports@freebsd.org-date.html</a></p>
<p>There are many different reasons that ports refuse to build, including (sample log follows each):</p>
<ul>
<li>Unfetchable upstream distribution files (<a href="http://qat.tecnik93.com/logs/7-STABLE-FPT-NPD/pnetbase-0.7.4.log" target="_blank">log</a>)</li>
<li>GNU configure errors (<a href="http://pointyhat.freebsd.org/errorlogs/i386-8-exp-latest/libharu-2.1.0.log" target="_blank">log</a>)</li>
<li>Compiler/linker errors (<a href="http://pointyhat.freebsd.org/errorlogs/amd64-8-exp-latest/mpd-3.18_6.log" target="_blank">log</a>)</li>
<li>Package building problems (<a href="http://pointyhat.freebsd.org/errorlogs/i386-5-latest/q-6.2_8.log" target="_blank">log</a>)</li>
</ul>
<p>Fixing a broken port may be as easy as correcting a download URL or as complex as patching source code so it builds correctly on the AMD64 platform. There are many different ways to get your feet wet, so I encourage you to check some of the broken build log files and see if you can fix, and possibly adopt, one of these ports!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sourcehosting.net/2009/06/15/unmaintained-broken-freebsd-ports/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Top Five Categories of FreeBSD Unmaintained Ports</title>
		<link>http://blog.sourcehosting.net/2009/06/12/top-ten-categories-freebsd-unmaintained/</link>
		<comments>http://blog.sourcehosting.net/2009/06/12/top-ten-categories-freebsd-unmaintained/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 23:13:36 +0000</pubDate>
		<dc:creator>Greg Larkin</dc:creator>
				<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[ifaapd2009]]></category>
		<category><![CDATA[ports]]></category>

		<guid isPermaLink="false">http://blog.sourcehosting.net/?p=109</guid>
		<description><![CDATA[Greetings all, I&#8217;m here with some more statistics about the FreeBSD ports tree and the unmaintained ports in it. Today, I calculated the top five categories with the largest number of unmaintained ports in each: Category Unmaintained Ports Sample Ports devel 461 aceallegro-develp5-Yada-Yada-Yada games 381 gnomesudokugnuchessxasteroids textproc 352 diffutilsflexxerces-c graphics 298 Coinbmepsxfpovray audio 245 icecastrioutilzinf [...]]]></description>
			<content:encoded><![CDATA[<p>Greetings all,</p>
<p>I&#8217;m here with some more statistics about the FreeBSD ports tree and the <a href="http://www.freebsd.org/doc/en/articles/contributing-ports/adopt-port.html" target="_blank">unmaintained ports</a> in it. Today, I calculated the top five categories with the largest number of unmaintained ports in each:</p>
<p></p>
<table class="wptable rowstyle-alt" id="wptable-6"  cellspacing="2" cellpadding="2">
	<thead>
	<tr>
		<th class="sortable" style="width:50px" align="center">Category</th>
		<th class="sortable" style="width:50px" align="center">Unmaintained Ports</th>
		<th class="sortable" style="width:100px" >Sample Ports</th>
	</tr>
	</thead>
	<tr>
		<td style="width:50px" align="center">devel</td>
		<td style="width:50px" align="center">461</td>
		<td style="width:100px" ><a target="_new" href="http://www.freshports.org/devel/ace/">ace</a><br><a target="_new" href="http://www.freshports.org/devel/allegro-devel/">allegro-devel</a><br><a target="_new" href="http://www.freshports.org/devel/p5-Yada-Yada-Yada/">p5-Yada-Yada-Yada</a></td>
	</tr>
	<tr class="alt">
		<td style="width:50px" align="center">games</td>
		<td style="width:50px" align="center">381</td>
		<td style="width:100px" ><a target="_new" href="http://www.freshports.org/games/gnomesudoku/">gnomesudoku</a><br><a target="_new" href="http://www.freshports.org/games/gnuchess/">gnuchess</a><br><a target="_new" href="http://www.freshports.org/games/xasteroids/">xasteroids</a></td>
	</tr>
	<tr>
		<td style="width:50px" align="center">textproc</td>
		<td style="width:50px" align="center">352</td>
		<td style="width:100px" ><a target="_new" href="http://www.freshports.org/textproc/diffutils/">diffutils</a><br><a target="_new" href="http://www.freshports.org/textproc/flex/">flex</a><br><a target="_new" href="http://www.freshports.org/textproc/xerces-c/">xerces-c</a></td>
	</tr>
	<tr class="alt">
		<td style="width:50px" align="center">graphics</td>
		<td style="width:50px" align="center">298</td>
		<td style="width:100px" ><a target="_new" href="http://www.freshports.org/graphics/Coin/">Coin</a><br><a target="_new" href="http://www.freshports.org/graphics/bmeps/">bmeps</a><br><a target="_new" href="http://www.freshports.org/graphics/xfpovray/">xfpovray</a></td>
	</tr>
	<tr>
		<td style="width:50px" align="center">audio</td>
		<td style="width:50px" align="center">245</td>
		<td style="width:100px" ><a target="_new" href="http://www.freshports.org/audio/icecast/">icecast</a><br><a target="_new" href="http://www.freshports.org/audio/rioutil/">rioutil</a><br><a target="_new" href="http://www.freshports.org/audio/zinf/">zinf</a></td>
	</tr>
</table><p>
</p>
<p>There is a huge variety of software to explore in the ports tree, and if you&#8217;re interested in maintaining one or more ports, I suggest looking for something you&#8217;ve already used in the past or a piece of software in your area of interest.  For instance, there are a number of astronomy and biology-related ports that could use some help!</p>
<p>Another great place to find ports that need some help, be it maintainership or submitting PRs to fix them, is the pointyhat build cluster status page: <a href="http://pointyhat.freebsd.org/errorlogs/" target="_blank">http://pointyhat.freebsd.org/errorlogs/</a>.</p>
<p>If you&#8217;re just getting your feet wet and don&#8217;t know where to start, subscribe to the <a href="http://lists.freebsd.org/mailman/listinfo/freebsd-ports" target="_blank">freebsd-ports mailing list</a> or browse its <a href="http://lists.freebsd.org/pipermail/freebsd-ports/" target="_blank">archives</a>. You&#8217;ll find a lot of questions and solutions to common problems as you learn more about the ports infrastructure.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sourcehosting.net/2009/06/12/top-ten-categories-freebsd-unmaintained/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Most Unloved FreeBSD Port of All</title>
		<link>http://blog.sourcehosting.net/2009/06/11/unloved-freebsd-port/</link>
		<comments>http://blog.sourcehosting.net/2009/06/11/unloved-freebsd-port/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 22:02:41 +0000</pubDate>
		<dc:creator>Greg Larkin</dc:creator>
				<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[ifaapd2009]]></category>
		<category><![CDATA[ports]]></category>

		<guid isPermaLink="false">http://blog.sourcehosting.net/?p=95</guid>
		<description><![CDATA[Hi everyone, To prepare for the upcoming inaugural International FreeBSD Adopt-A-Port Day on June 15th, 2009, I am publishing some interesting (???) statistics about the FreeBSD ports tree. First up (cue the violins): The most unloved FreeBSD port! This port has been a workhorse since the year 1996, back in the days before the Internet [...]]]></description>
			<content:encoded><![CDATA[<p>Hi everyone,</p>
<p>To prepare for the upcoming inaugural <a rel="bookmark" href="http://blog.sourcehosting.net/2009/06/04/international-freebsd-adopt-a-port/">International FreeBSD Adopt-A-Port Day</a> on June 15th, 2009, I am publishing some interesting (???) statistics about the FreeBSD ports tree.</p>
<p>First up (cue the violins): <em><strong>The most unloved FreeBSD port! </strong></em></p>
<p>This port has been a workhorse since the year 1996, back in the days before the Internet you now know, when a fast connection was 56k and we often disabled image loading in our browsers to speed up the browser! Those days, there were <a href="http://www.freebsd.org/ports/growth/status.png" target="_blank">fewer than 500 ports in the tree</a>, a far cry from the 20,000+ we now enjoy.</p>
<p>And now, I give you (drumroll, please)&#8230;.</p>
<p><a href="http://www.freshports.org/print/ghostview/" target="_blank"><em><span style="color: #ff0000;"><strong>print/ghostview</strong></span></em></a></p>
<p>The CVS log shows that this port has been unmaintained since 17-Nov-96, so it&#8217;s been nearly 13 years that ghostview has been wandering aimlessly through the tree, waiting for someone to adopt her/him/it. The ghostview port won&#8217;t require a lot of care and feeding, but if a new upstream version is released, the port would like a FreeBSD maintainer that will submit a PR to keep it in sync.</p>
<p>So, wouldn&#8217;t you like to help a port regain its standing in the tree and become all that it can be and more? Contact me at <a href="mailto:glarkin@FreeBSD.org">glarkin@FreeBSD.org</a> to get involved and help out!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sourcehosting.net/2009/06/11/unloved-freebsd-port/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Congratulations to Martin Wilke And Ion-Mihai Tetcu!</title>
		<link>http://blog.sourcehosting.net/2009/06/04/congratulations-martin-wilke-ion-mihai/</link>
		<comments>http://blog.sourcehosting.net/2009/06/04/congratulations-martin-wilke-ion-mihai/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 19:29:08 +0000</pubDate>
		<dc:creator>Greg Larkin</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[freebsd]]></category>

		<guid isPermaLink="false">http://blog.sourcehosting.net/?p=90</guid>
		<description><![CDATA[FreeBSD developers know Martin Wilke (miwi@) and Ion-Mihai Tetcu (itetcu@) and their dedication to the success of the project. Martin is the top committer to the ports tree as well as a member of the Security Team, and Ion-Mihai is the creator of the much-revered &#8220;QA Tindy&#8221; to keep the committers on their toes and [...]]]></description>
			<content:encoded><![CDATA[<p>FreeBSD developers know <a href="http://miwi.bsdcrew.de/2009/06/three-year-anniversary/" target="_blank">Martin Wilke</a> (miwi@) and Ion-Mihai Tetcu (itetcu@) and their dedication to the success of the project. Martin is the <a href="http://cia.vc/stats/author/miwi/" target="_blank">top committer to the ports tree</a> as well as a member of the Security Team, and Ion-Mihai is the creator of the much-revered &#8220;<a href="http://people.tecnik93.com/~itetcu/FreeBSD/QA-Tindy/QAT.html" target="_blank">QA Tindy</a>&#8221; to keep the committers on their toes and improve the overall quality of the ports tree.</p>
<p>Martin and Ion-Mihai have just been <a href="http://lists.freebsd.org/pipermail/freebsd-ports/2009-June/055027.html" target="_blank">honored as the newest portmgrs</a>. Congratulations, Martin and Ion-Mihai, and thank you for your help to me and all other port maintainers and committers as we learned (and continue to learn) the ropes!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sourcehosting.net/2009/06/04/congratulations-martin-wilke-ion-mihai/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>International FreeBSD Adopt-A-Port Day 2009</title>
		<link>http://blog.sourcehosting.net/2009/06/04/international-freebsd-adopt-a-port/</link>
		<comments>http://blog.sourcehosting.net/2009/06/04/international-freebsd-adopt-a-port/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 15:43:08 +0000</pubDate>
		<dc:creator>Greg Larkin</dc:creator>
				<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[ifaapd2009]]></category>
		<category><![CDATA[ports]]></category>

		<guid isPermaLink="false">http://blog.sourcehosting.net/?p=69</guid>
		<description><![CDATA[Hi everyone, Just for fun, let&#8217;s designate June 15th as the inaugural International FreeBSD Adopt-A-Port Day for 2009! My colleague and co-mentor to Alexander Logvinov, Thomas Abthorpe, posted to the freebsd-ports mailing list in March looking for folks to adopt unmaintained FreeBSD ports and keep them up to date. I&#8217;d like to continue Thomas&#8217; effort [...]]]></description>
			<content:encoded><![CDATA[<p>Hi everyone,</p>
<p>Just for fun, let&#8217;s designate <a href="http://en.wikipedia.org/wiki/June_15" target="_blank">June 15th</a> as the inaugural International FreeBSD Adopt-A-Port Day for 2009!</p>
<p>My colleague and co-mentor to <a href="http://www.freebsd.org/news/newsflash.html#event20090528:01" target="_blank">Alexander Logvinov</a>, <a href="http://people.freebsd.org/~tabthorpe/" target="_blank">Thomas Abthorpe</a>, <a href="http://lists.freebsd.org/pipermail/freebsd-ports/2009-March/053351.html" target="_blank">posted</a> to the freebsd-ports mailing list in March looking for folks to adopt unmaintained FreeBSD ports and keep them up to date.</p>
<p>I&#8217;d like to continue Thomas&#8217; effort and find out who in the FreeBSD community is interested in taking on one or more unmaintained ports. Some current stats:</p>
<p><a href="http://www.freebsd.org/ports/" target="_blank">FreeBSD ports info page</a> (20325 total ports as of June 4th, 2009)</p>
<p><a href="http://portsmon.freebsd.org/portsconcordanceformaintainer.py?maintainer=ports@freebsd.org" target="_blank">FreeBSD unmaintained port list</a> (4719 as of June 4th, 2009, 77 with build errors)</p>
<p><a href="http://portscout.org/ports@freebsd.org.html" target="_blank">FreeBSD unmaintained ports that need upgrading</a> (253 as of June 4th, 2009)</p>
<p>If you are interested in maintaining a port, contributing PRs for port upgrades, and perhaps eventually becoming a ports committer, read the following documents to get a good overview of the process:</p>
<ul>
<li><a href="http://www.freebsd.org/doc/en/articles/contributing-ports/index.html" target="_blank">http://www.freebsd.org/doc/en/articles/contributing-ports/index.html</a></li>
<li><a href="http://wiki.freebsd.org/PortsTasks" target="_blank">http://wiki.freebsd.org/PortsTasks</a></li>
<li><a href="http://www.onlamp.com/pub/a/bsd/2002/01/31/Big_Scary_Daemons.html" target="_blank">http://www.onlamp.com/pub/a/bsd/2002/01/31/Big_Scary_Daemons.html</a></li>
</ul>
<p>I started my own path to becoming a FreeBSD ports tree committer by discovering that a web application (<a href="http://webcalendar.sourceforge.net/" target="_blank">WebCalendar</a>) that we use at SourceHosting.net was not part of the tree.  I read up on how to create a new port, <a href="http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/76928" target="_blank">submitted a PR</a> for it, and after review by an existing FreeBSD committer, it was added to the tree.  Now other WebCalendar users can install it on FreeBSD as easily as typing:<br />
<pre>cd /usr/ports/www/webcalendar &amp;amp;&amp;amp; make install clean</pre><br />
After a port is added to the tree, a maintainer keeps track of upstream package releases, updates the port to track the new version, adds any needed configuration options and makes sure that it builds and installs on the FreeBSD supported platforms. As payback, you&#8217;ll often hear from folks using your port, whether sending thanks, enhancement requests or the occasional bug report!</p>
<p>Since submitting that first PR, I have created a number of new ports for tools used at SourceHosting.net or just in my areas of interest.  I have adopted many as well. Most unmaintained ports are very undemanding and just need some minor TLC! It&#8217;s a great way to support a project that has contributed directly to the success of my Real Job.</p>
<p>Have any questions or guidance? Email me at <a href="mailto:glarkin@FreeBSD.org">glarkin@FreeBSD.org</a>, <a href="http://twitter.com/sourcehosting" target="_blank">follow me on Twitter</a> or comment here. We&#8217;d love to work with you!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sourcehosting.net/2009/06/04/international-freebsd-adopt-a-port/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FreeBSD 8.0-CURRENT I386 (200810 Snapshot) Virtual Appliance Now Available</title>
		<link>http://blog.sourcehosting.net/2008/12/02/freebsd-80-i386-virtual-appliance-now-available/</link>
		<comments>http://blog.sourcehosting.net/2008/12/02/freebsd-80-i386-virtual-appliance-now-available/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 22:27:05 +0000</pubDate>
		<dc:creator>Greg Larkin</dc:creator>
				<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[virtual appliance]]></category>
		<category><![CDATA[vmware]]></category>

		<guid isPermaLink="false">http://blog.sourcehosting.net/2008/12/02/freebsd-80-i386-virtual-appliance-now-available/</guid>
		<description><![CDATA[Hi everyone, To go along with the FreeBSD 8.0-CURRENT amd64 virtual appliance I released a few days ago, I&#8217;ve also prepared one for the i386 architecture. Get the virtual appliance here: FreeBSD 8.0-CURRENT i386 virtual appliance As always, comments and feedback to virtualization@sourcehosting.net is welcome. Enjoy!]]></description>
			<content:encoded><![CDATA[<p>Hi everyone,</p>
<p>To go along with the <a href="http://blog.sourcehosting.net/2008/12/01/freebsd-virtual-appliance-now-available/">FreeBSD 8.0-CURRENT amd64 virtual appliance</a> I released a few days ago, I&#8217;ve also prepared one for the i386 architecture.</p>
<p>Get the virtual appliance here: <a href="http://www.mininova.org/tor/2055999" target="_blank">FreeBSD 8.0-CURRENT i386 virtual appliance</a></p>
<p>As always, comments and feedback to <a href="mailto:virtualization@sourcehosting.net">virtualization@sourcehosting.net</a> is welcome. Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sourcehosting.net/2008/12/02/freebsd-80-i386-virtual-appliance-now-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.578 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2026-04-06 22:27:50 -->
