<?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>Jason L. Froebe - Tech tips and How Tos for Fellow Techies</title>
	<atom:link href="http://froebe.net/blog/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://froebe.net/blog</link>
	<description>Tips &#38; Tricks for Databases (Sybase, Oracle, MySQL, PostgreSQL, SQLite), Windows, Linux, Solaris, Perl, Java, Bash and so much much more</description>
	<lastBuildDate>Wed, 10 Mar 2010 18:17:24 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>How to disable the &#8220;uninstall password&#8221; to uninstall Symantec Antivirus</title>
		<link>http://froebe.net/blog/2010/03/10/how-to-disable-the-uninstall-password-to-uninstall-symantec-antivirus/</link>
		<comments>http://froebe.net/blog/2010/03/10/how-to-disable-the-uninstall-password-to-uninstall-symantec-antivirus/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 18:17:24 +0000</pubDate>
		<dc:creator>Jason L Froebe</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[OS]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[antivirus]]></category>
		<category><![CDATA[regedit]]></category>
		<category><![CDATA[symantec antivirus]]></category>
		<category><![CDATA[uninstall]]></category>
		<category><![CDATA[vista]]></category>
		<category><![CDATA[win7]]></category>
		<category><![CDATA[winxp]]></category>

		<guid isPermaLink="false">http://froebe.net/blog/?p=1228</guid>
		<description><![CDATA[I was trying to install Oracle 11g client on to a WinXP box but Symantec Antivirus wouldn&#8217;t let me because it thought it was infected with over 800 viruses.  Same file was marked clean on another box.  So, I picked several of the viruses it said was infected with and looked for any evidence of [...]]]></description>
			<content:encoded><![CDATA[<p>I was trying to install Oracle 11g client on to a WinXP box but Symantec Antivirus wouldn&#8217;t let me because it thought it was infected with over 800 viruses.  Same file was marked clean on another box.  So, I picked several of the viruses it said was infected with and looked for any evidence of them on the WinXP box.  No dice.  This led me to believe that Symantec Antivirus itself was somehow mucked up.</p>
<p>When I tried to uninstall Symantec Antivirus, it asked for a password.  When I put in the correct password, it refused it.  So how to uninstall it with a messed up password?  Easy..</p>
<p>Open up regedit (as an administrator) and change HKEY_LOCAL_MACHINE\SOFTWARE\INTEL\LANDesk\VirusProtect6\CurrentVersion\AdministratorOnly\Security\UseVPUninstallPassword to &#8220;0&#8243; (zero).</p>
<p>I was able to uninstall and reinstall Symantec Antivirus.</p>
]]></content:encoded>
			<wfw:commentRss>http://froebe.net/blog/2010/03/10/how-to-disable-the-uninstall-password-to-uninstall-symantec-antivirus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Get it here! Perl DBD::Sybase 1.09.01 for Active State Perl 5.10 and 5.8 on Windows XP/Vista/7 32bit</title>
		<link>http://froebe.net/blog/2010/03/09/get-it-here-perl-dbdsybase-1-09-for-active-state-perl-5-10-and-5-8-on-windows-xpvista7-32bit/</link>
		<comments>http://froebe.net/blog/2010/03/09/get-it-here-perl-dbdsybase-1-09-for-active-state-perl-5-10-and-5-8-on-windows-xpvista7-32bit/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 22:27:48 +0000</pubDate>
		<dc:creator>Jason L Froebe</dc:creator>
				<category><![CDATA[APIs]]></category>
		<category><![CDATA[DBI]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[OS]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Sybase]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[15.5]]></category>
		<category><![CDATA[32 bit]]></category>
		<category><![CDATA[active state]]></category>
		<category><![CDATA[activestate]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[openclient]]></category>
		<category><![CDATA[peppler]]></category>
		<category><![CDATA[perl 5.10]]></category>
		<category><![CDATA[perl 5.8]]></category>
		<category><![CDATA[vista]]></category>
		<category><![CDATA[windows 7]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://froebe.net/blog/?p=1223</guid>
		<description><![CDATA[Assuming that you installed Sybase OpenClient 15.5 from the 15.5 PC Client:
Install ActiveState Perl from http://www.activestate.com (free) and install DBI if it isn’t already installed.  It should be but  you never know…

Start -&#62; ActiveState Perl -&#62; Perl Package Manager
install DBI
exit

Now, the easy part.  Install the DBD::Sybase 1.09.01 PPM:

download DBD::Sybase  1.09.01 PPM
extract zip file [...]]]></description>
			<content:encoded><![CDATA[<p>Assuming that you installed <a href="http://www.sybase.com/detail?id=1037407">Sybase OpenClient 15.5</a> from the 15.5 PC Client:</p>
<p>Install ActiveState Perl from <a href="http://www.activestate.com%c2%a0/">http://www.activestate.com</a> (free) and install DBI if it isn’t already installed.  It should be but  you never know…</p>
<ol>
<li>Start -&gt; ActiveState Perl -&gt; Perl Package Manager</li>
<li>install DBI</li>
<li>exit<a href="http://www.perl.org"><img class="alignright size-full wp-image-1207" title="perl" src="http://froebe.net/blog/wp-content/uploads/2010/02/perl.jpeg" alt="" width="279" height="303" /></a></li>
</ol>
<p>Now, the easy part.  Install the <a href="http://www.froebe.net/attachments/DBD-Sybase-1.09.01.zip">DBD::Sybase</a> 1.09.01 PPM:</p>
<ol>
<li>download <a title="DBD-Sybase-1.09.zip" href="http://www.froebe.net/attachments/DBD-Sybase-1.09.01.zip">DBD::Sybase  1.09.01 PPM</a></li>
<li>extract zip file to temporary directory (e.g. c:\test)</li>
<li>Start -&gt; Run -&gt; cmd.exe (as Administrator if Vista or Windows  7)</li>
<li>cd \test</li>
<li>ppm  install DBD-Sybase.ppd</li>
<li>exit</li>
</ol>
<p>That’s it <img src='http://froebe.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>It should automatically install the DBD::Sybase for Perl 5.8 or 5.10 depending on which version of Active State Perl you have installed.</p>
]]></content:encoded>
			<wfw:commentRss>http://froebe.net/blog/2010/03/09/get-it-here-perl-dbdsybase-1-09-for-active-state-perl-5-10-and-5-8-on-windows-xpvista7-32bit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>For those of you that don&#8217;t know, last week I had my wisdom teeth removed.  There were a few complications..</title>
		<link>http://froebe.net/blog/2010/03/01/for-those-of-you-that-dont-know-last-week-i-had-my-wisdom-teeth-removed-there-were-a-few-complications/</link>
		<comments>http://froebe.net/blog/2010/03/01/for-those-of-you-that-dont-know-last-week-i-had-my-wisdom-teeth-removed-there-were-a-few-complications/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 17:22:40 +0000</pubDate>
		<dc:creator>Jason L Froebe</dc:creator>
				<category><![CDATA[Family]]></category>
		<category><![CDATA[misc]]></category>
		<category><![CDATA[anemia]]></category>
		<category><![CDATA[anemic]]></category>
		<category><![CDATA[blood loss]]></category>
		<category><![CDATA[complications]]></category>
		<category><![CDATA[health]]></category>
		<category><![CDATA[oral surgeon]]></category>
		<category><![CDATA[wisdom teeth]]></category>

		<guid isPermaLink="false">http://froebe.net/blog/?p=1221</guid>
		<description><![CDATA[Tuesday, I took Jason to the oral surgeon’s to have all four of his  wisdom teeth pulled.  The surgery itself took about 45 minutes.  It  turned out there was a lot of infection back there, and as the doctor  put it “it was messy”.  The anesthesia made Jason really [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Tuesday, I took Jason to the oral surgeon’s to have all four of his  wisdom teeth pulled.  The surgery itself took about 45 minutes.  It  turned out there was a lot of infection back there, and as the doctor  put it “it was messy”.  The anesthesia made Jason really funny, and he  took direction very well, which was nice for a bit.</p>
<p>However, the bleeding didn’t stop the way it should have.  After a  few hours of constant, continuous, copious bleeding, I called the  doctor’s office again, and they had us go back in. They gave him two  more stitches, and Jason finally clotted, after losing about 2 pints of  blood.</p>
<p>We came home, and I got Jason to drink a bit of milkshake, and  managed to keep him conscious until the fear of actually losing him  passed.</p>
<p>He’s still incredibly weak and tired – mostly due to the blood loss.</p></blockquote>
<p style="padding-left: 30px;">- <a href="http://k2p2.net/blog2/2010/02/27/one-hell-of-a-week/">My wife&#8217;s account</a> of it</p>
<p>The oral surgeon wasn&#8217;t aware of how much blood was lost, neither myself or my wife were in any condition to think clearly Tuesday.  I should have received a transfusion.</p>
<p>Nearly a week later and even though my mouth is doing fine, I&#8217;m quite low on red blood cells.  Made it into the office today (wife drove) and am leaving early because the room is spinning nearly nonstop and I&#8217;m fighting to stay conscious.  Going to try to see a doc today/tomorrow &#8230; maybe I&#8217;ll get some blood.  If not, give me a blinkin&#8217; straw and I&#8221;ll do it myself&#8230; Who&#8217;s A Positive around here?</p>
]]></content:encoded>
			<wfw:commentRss>http://froebe.net/blog/2010/03/01/for-those-of-you-that-dont-know-last-week-i-had-my-wisdom-teeth-removed-there-were-a-few-complications/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How To:  Fix Nick Berlette&#8217;s excellent Redirect Plugin for WordPress 2.6 and higher</title>
		<link>http://froebe.net/blog/2010/02/19/static-pages-working-again/</link>
		<comments>http://froebe.net/blog/2010/02/19/static-pages-working-again/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 01:18:18 +0000</pubDate>
		<dc:creator>Jason L Froebe</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[Nick Berlette]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[redirect plugin]]></category>

		<guid isPermaLink="false">http://froebe.net/blog/?p=1217</guid>
		<description><![CDATA[The static pages (like Store) are working again.  I&#8217;ve had to fix the redirect plugin by Nick Berlette.  If you want it to work with your modern Wordpress blog (2.6 or higher) you just need to change a tiny bit.
Remove this:
require_once&#40;$_SERVER&#91;&#8216;DOCUMENT_ROOT&#8217;&#93; . &#8216;/wp-config.php&#8217;&#41;;
Replace with:
$root = dirname&#40;dirname&#40;dirname&#40;dirname&#40;__FILE__&#41;&#41;&#41;&#41;;
if &#40;file_exists&#40;$root.&#8216;/wp-load.php&#8217;&#41;&#41; &#123;
&#160; &#160; require_once&#40;$root.&#8216;/wp-load.php&#8217;&#41;;
&#125; else &#123;
&#160; &#160; require_once&#40;$root.&#8216;/wp-config.php&#8217;&#41;;
&#125;
It should [...]]]></description>
			<content:encoded><![CDATA[<p>The static pages (like <a href="http://froebe.net/blog/store/">Store</a>) are working again.  I&#8217;ve had to fix the <a href="http://www.pancak.es/plugins/redirect/">redirect plugin</a> by <a title="Visit author homepage" href="http://www.pancak.es/">Nick Berlette</a>.  If you want it to work with your modern Wordpress blog (2.6 or higher) you just need to change a tiny bit.<br />
Remove this:</p>
<div class="dean_ch" style="white-space: wrap;"><span class="kw1">require_once</span><span class="br0">&#40;</span><span class="re0">$_SERVER</span><span class="br0">&#91;</span><span class="st0">&#8216;DOCUMENT_ROOT&#8217;</span><span class="br0">&#93;</span> . <span class="st0">&#8216;/wp-config.php&#8217;</span><span class="br0">&#41;</span>;</div>
<p>Replace with:</p>
<div class="dean_ch" style="white-space: wrap;"><span class="re0">$root</span> = <a href="http://www.php.net/dirname"><span class="kw3">dirname</span></a><span class="br0">&#40;</span><a href="http://www.php.net/dirname"><span class="kw3">dirname</span></a><span class="br0">&#40;</span><a href="http://www.php.net/dirname"><span class="kw3">dirname</span></a><span class="br0">&#40;</span><a href="http://www.php.net/dirname"><span class="kw3">dirname</span></a><span class="br0">&#40;</span><span class="kw2">__FILE__</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</p>
<p><span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/file_exists"><span class="kw3">file_exists</span></a><span class="br0">&#40;</span><span class="re0">$root</span>.<span class="st0">&#8216;/wp-load.php&#8217;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">require_once</span><span class="br0">&#40;</span><span class="re0">$root</span>.<span class="st0">&#8216;/wp-load.php&#8217;</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">require_once</span><span class="br0">&#40;</span><span class="re0">$root</span>.<span class="st0">&#8216;/wp-config.php&#8217;</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span></div>
<p>It should work fine now <img src='http://froebe.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://froebe.net/blog/2010/02/19/static-pages-working-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free Sybase Power Designer 15 Viewer!</title>
		<link>http://froebe.net/blog/2010/02/19/free-sybase-power-designer-15-viewer/</link>
		<comments>http://froebe.net/blog/2010/02/19/free-sybase-power-designer-15-viewer/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 18:47:25 +0000</pubDate>
		<dc:creator>Jason L Froebe</dc:creator>
				<category><![CDATA[Databases]]></category>
		<category><![CDATA[Sybase]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[modeling]]></category>
		<category><![CDATA[power designer]]></category>
		<category><![CDATA[powerdesigner]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[viewer]]></category>

		<guid isPermaLink="false">http://froebe.net/blog/?p=1215</guid>
		<description><![CDATA[If you ever receive a Sybase Power Designer file (such as the pdm file from Jeff Tallman) but you don&#8217;t want to either purchase or install the full blown Power Designer, then I have an answer for you.  It is the Power Designer Viewer from Sybase.
While it is free, you have to fill out a [...]]]></description>
			<content:encoded><![CDATA[<p>If you ever receive a Sybase Power Designer file (such as the <a href="http://froebe.net/blog/2010/02/19/get-your-sybase-ase-15-5-mda-table-posters-straight-from-sybases-jeff-tallman/#comments">pdm file from Jeff Tallman</a>) but you don&#8217;t want to either purchase or install the <a href="http://www.sybase.com/products/modelingdevelopment/powerdesigner">full blown Power Designer</a>, then I have an answer for you.  It is the Power Designer Viewer from Sybase.</p>
<p>While it is free, you have to <a href="http://response.sybase.com/forms/PowerDesigner15Viewer">fill out a form to get access to the download</a>.  Sybase Sales will likely call you regarding purchasing a full blown version of Power Designer.  If you&#8217;re not interested in purchasing it, just tell them &#8211; <a href="mailto:sales@sybase.com">Sybase Sales People</a> are generally very nice folk. <img src='http://froebe.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://froebe.net/blog/2010/02/19/free-sybase-power-designer-15-viewer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Get your Sybase ASE 15.5 MDA table posters!  Straight from Sybase&#8217;s Jeff Tallman</title>
		<link>http://froebe.net/blog/2010/02/19/get-your-sybase-ase-15-5-mda-table-posters-straight-from-sybases-jeff-tallman/</link>
		<comments>http://froebe.net/blog/2010/02/19/get-your-sybase-ase-15-5-mda-table-posters-straight-from-sybases-jeff-tallman/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 18:31:44 +0000</pubDate>
		<dc:creator>Jason L Froebe</dc:creator>
				<category><![CDATA[ASE]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[Sybase]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[DBMS]]></category>
		<category><![CDATA[Jeff Tallman]]></category>
		<category><![CDATA[mda table]]></category>
		<category><![CDATA[posters]]></category>
		<category><![CDATA[powerdesigner]]></category>

		<guid isPermaLink="false">http://froebe.net/blog/?p=1211</guid>
		<description><![CDATA[I asked Jeff Tallman if I could redistribute his excellent MDA posters for Sybase&#8217;s ASE 15.5 database server.  He said yes so &#8230;  here they are in both Adobe PDF and Sybase PowerDesigner PDM formats!

Jeff Tallman also provided us with the MDA posters for Sybase 15.0.3 last year.
]]></description>
			<content:encoded><![CDATA[<p>I asked <a href="http://blogs.sybase.com/database/about/">Jeff Tallman</a> if I could redistribute his excellent MDA posters for <a href="http://www.sybase.com/products/databasemanagement/adaptiveserverenterprise">Sybase&#8217;s ASE 15.5 database server</a>.  He said yes so &#8230;  here they are in both Adobe <a href="http://www.froebe.net/attachments/ASE_155_MDA_Tables.pdf">PDF</a> and <a href="http://www.sybase.com/products/modelingdevelopment/powerdesigner">Sybase PowerDesigner</a> <a href="http://www.froebe.net/attachments/ASE_155_MDA.zip">PDM</a> formats!</p>
<p><a href="http://www.froebe.net/attachments/ASE_155_MDA_Tables.pdf"><img class="aligncenter size-full wp-image-1212" title="ASE 15.5 MDA table poster (PDF)" src="http://froebe.net/blog/wp-content/uploads/2010/02/ase155mda.jpg" alt="" width="350" height="258" /></a></p>
<p>Jeff Tallman also provided us with the <a href="http://froebe.net/blog/2009/01/12/sybases-jeff-tallman-releases-the-mda-table-diagram-posters-for-ase-1503-in-pdf-and-powerdesigner-formats/">MDA posters for Sybase 15.0.3</a> last year.</p>
]]></content:encoded>
			<wfw:commentRss>http://froebe.net/blog/2010/02/19/get-your-sybase-ase-15-5-mda-table-posters-straight-from-sybases-jeff-tallman/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Did you write an article for ISUG&#8217;s Technical Journal and either haven&#8217;t been paid or refused payment?</title>
		<link>http://froebe.net/blog/2010/02/17/did-you-write-an-article-for-isugs-technical-journal-and-either-havent-been-paid-or-refused-payment/</link>
		<comments>http://froebe.net/blog/2010/02/17/did-you-write-an-article-for-isugs-technical-journal-and-either-havent-been-paid-or-refused-payment/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 04:36:25 +0000</pubDate>
		<dc:creator>Jason L Froebe</dc:creator>
				<category><![CDATA[Databases]]></category>
		<category><![CDATA[ISUG]]></category>
		<category><![CDATA[Sybase]]></category>
		<category><![CDATA[haven't been paid]]></category>
		<category><![CDATA[technical journal]]></category>

		<guid isPermaLink="false">http://froebe.net/blog/?p=1209</guid>
		<description><![CDATA[For those of you that don&#8217;t know, I have written several articles for the ISUG Technical Journal.  I&#8217;ve been paid for one and refused payment on the others.  Are there other authors that haven&#8217;t been paid for one reason or another?
This is not meant as a dig at ISUG but simply determining if I&#8217;m the [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_615" class="wp-caption alignright" style="width: 134px"><a href="http://www.isug.com"><img class="size-full wp-image-615" title="ISUG" src="http://froebe.net/blog/wp-content/uploads/2008/07/isug-new-logo.png" alt="" width="124" height="98" /></a><p class="wp-caption-text">International Sybase User Group</p></div>
<p>For those of you that don&#8217;t know, I have written several articles for the ISUG Technical Journal.  I&#8217;ve been paid for one and refused payment on the others.  Are there other authors that haven&#8217;t been paid for one reason or another?</p>
<p>This is not meant as a dig at ISUG but simply determining if I&#8217;m the only one or if there are others.</p>
]]></content:encoded>
			<wfw:commentRss>http://froebe.net/blog/2010/02/17/did-you-write-an-article-for-isugs-technical-journal-and-either-havent-been-paid-or-refused-payment/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Get it here! Perl DBD::Sybase 1.09 for Active State Perl 5.10 on Windows XP/Vista/7 32bit</title>
		<link>http://froebe.net/blog/2010/02/17/get-it-here-perl-dbdsybase-1-09-for-active-state-perl-5-10-on-windows-xpvista7-32bit/</link>
		<comments>http://froebe.net/blog/2010/02/17/get-it-here-perl-dbdsybase-1-09-for-active-state-perl-5-10-on-windows-xpvista7-32bit/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 02:05:03 +0000</pubDate>
		<dc:creator>Jason L Froebe</dc:creator>
				<category><![CDATA[APIs]]></category>
		<category><![CDATA[ASE]]></category>
		<category><![CDATA[DBI]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[OS]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Sybase]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[15.5]]></category>
		<category><![CDATA[32 bit]]></category>
		<category><![CDATA[active state]]></category>
		<category><![CDATA[activestate]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[openclient]]></category>
		<category><![CDATA[peppler]]></category>
		<category><![CDATA[vista]]></category>
		<category><![CDATA[windows 7]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://froebe.net/blog/?p=1206</guid>
		<description><![CDATA[
Assuming that you installed Sybase OpenClient 15.5 from the 15.5 PC Client:
Install ActiveState Perl from http://www.activestate.com (free) and install DBI if it isn&#8217;t already installed.  It should be but you never know&#8230;

Start -&#62; ActiveState Perl -&#62; Perl Package Manager
install DBI
exit

Now, the easy part.  Install the DBD::Sybase 1.09 PPM:

download DBD::Sybase 1.09 PPM
extract zip file to temporary [...]]]></description>
			<content:encoded><![CDATA[<div>
<p>Assuming that you installed <a href="http://www.sybase.com/detail?id=1037407">Sybase OpenClient 15.5</a> from the 15.5 PC Client:</p>
<p>Install ActiveState Perl from <a href="http://www.activestate.com%c2%a0/">http://www.activestate.com</a> (free) and install DBI if it isn&#8217;t already installed.  It should be but you never know&#8230;</p>
<ol>
<li>Start -&gt; ActiveState Perl -&gt; Perl Package Manager<a href="http://www.perl.org"><img class="alignright size-thumbnail wp-image-1207" title="perl" src="http://froebe.net/blog/wp-content/uploads/2010/02/perl-150x150.jpg" alt="" width="150" height="150" /></a></li>
<li>install DBI</li>
<li>exit</li>
</ol>
<p>Now, the easy part.  Install the <a href="http://search.cpan.org/~mewp/DBD-Sybase/Sybase.pm">DBD::Sybase</a> 1.09 PPM:</p>
<ol>
<li>download <a title="DBD-Sybase-1.09.zip" href="http://www.froebe.net/attachments/DBD-Sybase-1.09.zip">DBD::Sybase 1.09 PPM</a></li>
<li>extract zip file to temporary directory (e.g. c:\test)</li>
<li>Start -&gt; Run -&gt; cmd.exe (as Administrator if Vista or Windows 7)</li>
<li>cd \test</li>
<li>ppm  install DBD-Sybase.ppd</li>
<li>exit</li>
</ol>
<p>That’s it <img src="../wp-includes/images/smilies/icon_smile.gif" alt=":)" /></p>
<div id="attachment_560" class="wp-caption aligncenter" style="width: 160px"><a href="http://www.sybase.com"><img class="size-thumbnail wp-image-560" title="Sybase, Inc." src="http://froebe.net/blog/wp-content/uploads/2008/07/sybase-150x74.png" alt="" width="150" height="74" /></a><p class="wp-caption-text">Sybase</p></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://froebe.net/blog/2010/02/17/get-it-here-perl-dbdsybase-1-09-for-active-state-perl-5-10-on-windows-xpvista7-32bit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to: Installing VMware ESXi 4 on a 6 year old cheap motherboard</title>
		<link>http://froebe.net/blog/2010/02/15/how-to-installing-vmware-esxi-4-on-a-6-year-old-cheap-motherboard/</link>
		<comments>http://froebe.net/blog/2010/02/15/how-to-installing-vmware-esxi-4-on-a-6-year-old-cheap-motherboard/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 14:59:17 +0000</pubDate>
		<dc:creator>Jason L Froebe</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[OS]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[virtualization]]></category>
		<category><![CDATA[ahci]]></category>
		<category><![CDATA[esxi]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[oem.tgz]]></category>
		<category><![CDATA[old motherboards]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[unsupported]]></category>
		<category><![CDATA[vmware esxi]]></category>

		<guid isPermaLink="false">http://froebe.net/blog/?p=1203</guid>
		<description><![CDATA[I&#8217;ve been trying to get VMware ESXi 4 on my old MSI MS-7388 motherboard for a long time. No matter what I tried, neither the SATA controller on the motherboard or the add on SATA controller would be recognized.
Install VMware ESXi 4.0 on an unsupported motherboard (SATA controller must support AHCI):

make sure the SATA controller(s) [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been trying to get <a href="http://www.vmware.com">VMware ESXi 4</a> on my old MSI MS-7388 motherboard for a long time. No matter what I tried, neither the SATA controller on the motherboard or the add on SATA controller would be recognized.</p>
<h3>Install VMware ESXi 4.0 on an unsupported motherboard (SATA controller must support AHCI):</h3>
<ol>
<li>make sure the SATA controller(s) is set to AHCI in the computer&#8217;s BIOS</li>
<li>download VMware ESXi 4 iso</li>
<li><strong>burn</strong> the iso to either a cdrom or a USB thumb drive (512mb minimum) using <a href="http://unetbootin.sourceforge.net/">unetbootin</a></li>
<li>boot the computer into VMware ESXi</li>
<li>Before you&#8217;re prompted to hit <strong>Enter</strong> to begin, hit ALT-F1 which will get you to a console screen without a prompt</li>
<li>Type <strong>&#8220;unsupported&#8221;</strong> followed by <strong>Enter</strong></li>
<li>When prompted for a password, just hit <strong>Enter</strong></li>
<li>Type <strong>&#8220;vmkload_mod ahci&#8221;</strong> followed by <strong>Enter</strong>.  This will load in the driver for just about any AHCI compliant SATA controller</li>
<li>Hit <strong>ALT-F2</strong> to finish the installation</li>
</ol>
<p>At this point VMware ESXi 4.0 will be installed but it won&#8217;t start when you reboot.  This is because VMware won&#8217;t load the AHCI driver by default.  So&#8230; we will have to tell it to load it automatically.  You will need a Linux Live CD such as <a href="http://www.ubuntu.com">Ubuntu</a>.</p>
<ol>
<li>Boot into Linux</li>
<li>From the desktop you will need to mount the VMware partitions.  In Ubuntu 8.04 and higher, you just need to click on the <em>folders</em> in the drop down menu</li>
<li>Locate oem.tgz on the second VMware partition and overwrite it with this <a href="http://www.froebe.net/attachments/oem.tgz">oem.tgz</a>.  It includes a system.map file telling VMware to load the AHCI driver</li>
<li>reboot and boot into VMware ESXi</li>
</ol>
<p>You should have a fully working VMware ESXi server installed and ready for you to setup virtual machines! <img src='http://froebe.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://froebe.net/blog/2010/02/15/how-to-installing-vmware-esxi-4-on-a-6-year-old-cheap-motherboard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Be warned:  International Sybase User Group (ISUG)&#8217;s free software for members from Sybase isn&#8217;t what you think it is!</title>
		<link>http://froebe.net/blog/2010/02/02/be-warned-international-sybase-user-group-isugs-free-software-for-members-from-sybase-isnt-what-you-think-it-is/</link>
		<comments>http://froebe.net/blog/2010/02/02/be-warned-international-sybase-user-group-isugs-free-software-for-members-from-sybase-isnt-what-you-think-it-is/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 13:44:19 +0000</pubDate>
		<dc:creator>Jason L Froebe</dc:creator>
				<category><![CDATA[ISUG]]></category>
		<category><![CDATA[Sybase]]></category>
		<category><![CDATA[bait and switch]]></category>
		<category><![CDATA[international sybase user group]]></category>
		<category><![CDATA[licenses]]></category>
		<category><![CDATA[membership]]></category>
		<category><![CDATA[not for retail]]></category>

		<guid isPermaLink="false">http://froebe.net/blog/?p=1196</guid>
		<description><![CDATA[Several people have come to me over the past few months regarding the use of the free Sybase software given away as a membership gift by the International Sybase User Group (ISUG)
&#8230; plus a package of free Sybase Software valued at over $7000
Unfortunately there is a bit of misunderstanding that Not for Retail software are [...]]]></description>
			<content:encoded><![CDATA[<p>Several people have come to me over the past few months regarding the use of the <em>free</em> <a href="http://www.sybase.com">Sybase</a> software given away as a membership gift by the <a href="http://www.isug.com">International Sybase User Group (ISUG)</a></p>
<blockquote><p><span style="color: #808000;"><em>&#8230; plus a package of free Sybase Software valued at over $7000</em></span></p></blockquote>
<p>Unfortunately there is a bit of misunderstanding that Not for Retail software are full versions.</p>
<p>The ISUG will happily entice you to join at the <a href="http://www.isug.com/common/GoldBenefits.html">Gold level</a> for the software:</p>
<ul>
<blockquote>
<li> <span style="color: #808000;"><em><strong><sup>New Version!</sup></strong> Free Developer Edition of  	  <a onclick="javascript: ISUG_open_external_window(this.href); 		      return false;" href="http://www.appeon.com/">Appeon for PowerBuilder</a> 6.2</em></span></li>
<li> <span style="color: #808000;"><em><strong><sup>New Version!</sup></strong> Free 	  <a href="http://www.isug.com/NFRLicense">NFR</a> copy of Sybase PocketBuilder 2.5 (e-shop)</em></span></li>
<li> <span style="color: #808000;"><em><strong><sup>New Version!</sup></strong> Free 	  <a href="http://www.isug.com/NFRLicense">NFR</a> copy of WorkSpace Studio 2.1 	  (e-shop)</em></span></li>
<li> <span style="color: #808000;"><em><strong><sup>New Version!</sup></strong> Free <a href="http://www.isug.com/NFRLicense">NFR</a> copy of Sybase DataWindow.NET 2.5 (e-shop)</em></span></li>
<li> <span style="color: #808000;"><em><strong><sup>New Version!</sup></strong> Free <a href="http://www.isug.com/NFRLicense">NFR</a> copy of Sybase PowerBuilder Enterprise 11.5 (e-shop)</em></span></li>
<li> <span style="color: #808000;"><em><strong><sup>New Version!</sup></strong> EAServer 6.2 Developers Edition (e-shop)</em></span></li>
<li style="margin-top:5px;"> Free copy of IQ 12.7 Developers Edition (e-shop)</li>
<li style="margin-top:5px;"> ASE 15.0 Evaluation Kit (includes licenses, training materials, etc.)</li>
<li> <span style="color: #808000;"><em>Free Copy of SQL Anywhere Studio for Windows or Linux/UNIX (e-shop) </em></span></li>
<li><span style="color: #808000;"><em> (User Group Presidents Only): Free 	  <a href="http://www.isug.com/NFRLicense">NFR</a> copy of Sybase PowerDesigner Studio</em></span></li>
</blockquote>
</ul>
<p>Let&#8217;s take a look at Sybase&#8217;s Not for Retail license:</p>
<blockquote>
<div id="ISUG-BodyPageTitle"><span style="color: #808000;"><em>NFR License</em></span></div>
<div>
<p><span style="color: #808000;"><em> Please note that the NFR copies of PowerDesigner, WorkSpace, PowerBuilder, PocketBuilder and DataWindow .NET are       for development and personal use, and not for commercial deployment purposes. A copy of       the NFR license can be found below. Please note that references to development in the       license typically refer to full-scale development. Prototyping (also a form of development)       is generally permitted. <strong> All questions related to what can and can not be done with the program in question       should be directed to your local Sybase sales representative for clarification       and not ISUG. </strong></em></span></p>
<h3><span style="color: #808000;"><em>PRODUCT-SPECIFIC LICENSE TERMS</em></span></h3>
<h4><span style="color: #808000;"><em>NOT FOR RESALE &#8212; DEMONSTRATION VERSION</em></span></h4>
<ol>
<li> <span style="color: #808000;"><em><strong>DEMONSTRATION USE OF PROGRAMS.</strong> You may install and use this Program internally in your organization solely for       demonstration purposes on a single Machine. You may not use the Program for any       development or production purpose, or transfer, assign, sublicense or otherwise convey       the Program (or any portion thereof) to another party without Sybase&#8217;s prior written       consent. You may not copy the Program except that you may either install the Program       on your hard disk or make one copy for inactive back-up and archival purposes for your       own use.</em></span></li>
<li> <span style="color: #808000;"><em><strong>TERMINATION.</strong> You acknowledge and understand that Sybase may terminate this Agreement at any time upon       thirty days written notice to you. Upon any termination of this Agreement, you shall cease       using the Program and shall destroy all copies of the Program in any form.</em></span></li>
<li> <span style="color: #808000;"><em><strong>WARRANTY DISCLAIMER.</strong> This Not for Resale &#8212; Demonstration version Program is provided AS IS, without any       warranty or support. SYBASE DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS OR IMPLIED,       INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OR CONDITIONS OF MERCHANTABLE QUALITY,       NON INFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE.</em></span></li>
<li> <span style="color: #808000;"><em><strong>PRECEDENCE.</strong> THE ABOVE TERMS SHALL TAKE PRECEDENCE OVER ANY INCONSISTENT OR CONFLICTING TERMS OF THE       ACCOMPANYING SYBASE LICENSE.</em></span></li>
</ol>
</div>
</blockquote>
<p>Make sense?   Well, for far too many people, it doesn&#8217;t.   So let&#8217;s just go over what you can and can not do with NFR software:</p>
<h3 style="padding-left: 30px;">What you can do:</h3>
<blockquote>
<ul>
<li>Install and run the software on one and only one computer (your computer)</li>
<li>Demonstrate the software</li>
<li>Build diagrams, binaries, libraries, etc.</li>
</ul>
</blockquote>
<h3 style="padding-left: 30px;">What you can not do:</h3>
<blockquote>
<ul>
<li>Only you can operate the software</li>
<li>Share any diagrams</li>
<li>Share binaries or libraries</li>
<li>Release any source code generated or even YOUR OWN source code that YOU produce while using the NFR software.  Unfortunately, this also includes taking the source code (or diagrams,etc) and using them with other software outside of a &#8216;demonstration&#8217;.</li>
</ul>
</blockquote>
<h3>There isn&#8217;t anything distinguishing Not for Retail software from <a href="http://en.wikipedia.org/wiki/Demoware">demo software</a>. <br />
<div id="attachment_615" class="wp-caption alignright" style="width: 134px"><a href="http://www.isug.com"><img class="size-full wp-image-615" title="ISUG" src="http://froebe.net/blog/wp-content/uploads/2008/07/isug-new-logo.png" alt="" width="124" height="98" /></a><p class="wp-caption-text">International Sybase User Group</p></div><br />
While ISUG does state that the software is Not for Retail, ISUG stating that the NFR software is valued at over $7,000 is not just a misrepresentation but a bold faced lie bordering on <a href="http://en.wikipedia.org/wiki/Bait_and_switch">bait and switch</a>.</h3>
<p>The purpose of this post is not to direct people away from being ISUG members, you do get a nifty <a href="http://www.isug.com/common/TechnicalJournal.html">Technical Journal</a> where  article authors are only sometimes paid for their work, but to have people join with their collective eyes open.</p>
]]></content:encoded>
			<wfw:commentRss>http://froebe.net/blog/2010/02/02/be-warned-international-sybase-user-group-isugs-free-software-for-members-from-sybase-isnt-what-you-think-it-is/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Sun&#8217;s VirtualBox 3.1.x: Getting VRDP (remote desktop) to authenticate properly with Linux PAM</title>
		<link>http://froebe.net/blog/2010/01/22/suns-virtualbox-3-1-x-getting-vrdp-remote-desktop-to-authenticate-properly-with-linux-pam/</link>
		<comments>http://froebe.net/blog/2010/01/22/suns-virtualbox-3-1-x-getting-vrdp-remote-desktop-to-authenticate-properly-with-linux-pam/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 16:39:55 +0000</pubDate>
		<dc:creator>Jason L Froebe</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OS]]></category>
		<category><![CDATA[virtualbox]]></category>
		<category><![CDATA[3.1.2]]></category>
		<category><![CDATA[9.10]]></category>
		<category><![CDATA[authentication]]></category>
		<category><![CDATA[pam]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[user_mod]]></category>
		<category><![CDATA[vbox]]></category>
		<category><![CDATA[vboxheadless]]></category>
		<category><![CDATA[vboxtool]]></category>
		<category><![CDATA[vrdp]]></category>

		<guid isPermaLink="false">http://froebe.net/blog/?p=1193</guid>
		<description><![CDATA[I rebuilt an Ubuntu 9.10 server this past week, ripping off VMware and replacing it with VirtualBox 3.1.2.  Setting up VirtualBox as a headless server was very easy with VBoxTool.  However, I ran into a problem that I was unable to connect using remote desktop (rdesktop) as any user but the user that [...]]]></description>
			<content:encoded><![CDATA[<p>I rebuilt an Ubuntu 9.10 server this past week, ripping off <a href="http://www.vmware.com">VMware</a> and replacing it with <a href="http://www.virtualbox.org">VirtualBox 3.1.2</a>.  Setting up VirtualBox as a headless server was very easy with <a href="http://vboxtool.sourceforge.net/">VBoxTool</a>.  However, I ran into a problem that I was unable to connect using remote desktop (rdesktop) as any user but the user that started the virtual machine.  </p>
<div class="dean_ch" style="white-space: wrap;">Jan <span class="nu0">21</span> <span class="nu0">22</span>:<span class="nu0">43</span>:<span class="nu0">13</span> vm-holder unix_chkpwd<span class="br0">&#91;</span><span class="nu0">16040</span><span class="br0">&#93;</span>: check pass; user unknown<br />
Jan <span class="nu0">21</span> <span class="nu0">22</span>:<span class="nu0">43</span>:<span class="nu0">13</span> vm-holder unix_chkpwd<span class="br0">&#91;</span><span class="nu0">16040</span><span class="br0">&#93;</span>: password check failed <span class="kw1">for</span> user <span class="br0">&#40;</span>jason<span class="br0">&#41;</span><br />
Jan <span class="nu0">21</span> <span class="nu0">22</span>:<span class="nu0">43</span>:<span class="nu0">13</span> vm-holder VBoxHeadless: pam_unix<span class="br0">&#40;</span>vrdpauth:auth<span class="br0">&#41;</span>: authentication failure; <span class="re2">logname=</span>virtualbox <span class="re2">uid=</span><span class="nu0">1001</span> <span class="re2">euid=</span><span class="nu0">1001</span> <span class="re2">tty=</span> <span class="re2">ruser=</span> <span class="re2">rhost=</span> &nbsp;<span class="re2">user=</span>jason</div>
<p>This is, currently, an undocumented security feature of VirtualBox 3.1x to prevent just anyone from accessing the virtual machine <i>console</i>.  For most folk, this might be a very good thing but if you have a team of sysadmins that should have access to the virtual machine consoles, you probably don&#8217;t want them to use the same login.</p>
<p>If that is the case, you can add the user(s) that should have access the virtual machine console to the <i>shadow</i> group on the host Linux machine.  Be warned though that the user(s) that are added to the shadow group should not be able to log into the host machine else they will be able to read the shadow file where all the passwords to the box are stored.  If the users need access to the host box, then they should have a login for host access (not part of the shadow group) and another for virtual machine console access.</p>
<p><strong>Adding linux user <i>jason_vrdp</i> to the shadow group:</strong></p>
<div class="dean_ch" style="white-space: wrap;"><span class="br0">&#40;</span>root<span class="br0">&#41;</span> <span class="re3"># usermod -G shadow,virtualbox jason_vrdp</span></div>
<p><strong>Prevent <i>jason_vrdp</i> from logging in to the host or anyone from sudo&#8217;ing to it:</strong></p>
<pre lang=bash>(root) # usermod --shell /bin/false jason_vrdp</pre>
<p>That&#8217;s it <img src='http://froebe.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://froebe.net/blog/2010/01/22/suns-virtualbox-3-1-x-getting-vrdp-remote-desktop-to-authenticate-properly-with-linux-pam/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Asher &amp; Miriam sing along</title>
		<link>http://froebe.net/blog/2010/01/20/asher-miriam-sing-along/</link>
		<comments>http://froebe.net/blog/2010/01/20/asher-miriam-sing-along/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 17:42:37 +0000</pubDate>
		<dc:creator>Jason L Froebe</dc:creator>
				<category><![CDATA[Family]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[humor]]></category>
		<category><![CDATA[misc]]></category>
		<category><![CDATA[Asher]]></category>
		<category><![CDATA[Broadway Musical]]></category>
		<category><![CDATA[lyrics]]></category>
		<category><![CDATA[Miriam]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[Phil Collins]]></category>
		<category><![CDATA[Tarzan]]></category>
		<category><![CDATA[Turk]]></category>

		<guid isPermaLink="false">http://froebe.net/blog/?p=1184</guid>
		<description><![CDATA[
Yeah, it&#8217;s Who Better Than Me by Phil Collins with the Turk and Tarzan names changed but it covers just about any two closely aged siblings IMHO:
Miriam
You&#8217;re one of a kind, I can&#8217;t explain it.
You&#8217;re kind of cool, in a wonderful way.
Though you&#8217;re weird, you can make it.
And who better than me to teach you.
Who [...]]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/bqhZZKXfopQ&amp;hl=en_US&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/bqhZZKXfopQ&amp;hl=en_US&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Yeah, it&#8217;s <a href="http://www.amazon.com/gp/product/B0013ADZBM?ie=UTF8&amp;tag=froebe-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B0013ADZBM">Who Better Than Me</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=froebe-20&amp;l=as2&amp;o=1&amp;a=B0013ADZBM" border="0" alt="" width="1" height="1" /> by <a href="http://www.amazon.com/gp/product/B000FMQPNY?ie=UTF8&amp;tag=froebe-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B000FMQPNY">Phil Collins</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=froebe-20&amp;l=as2&amp;o=1&amp;a=B000FMQPNY" border="0" alt="" width="1" height="1" /> with the Turk and Tarzan names changed but it covers just about any two closely aged siblings IMHO:</p>
<p><strong>Miriam</strong><a href="http://froebe.net/blog/wp-content/uploads/2010/01/Miriam_jammies_small.jpg"><img src="http://froebe.net/blog/wp-content/uploads/2010/01/Miriam_jammies_small-150x150.jpg" alt="" title="Miriam_jammies_small" width="150" height="150" class="alignright size-thumbnail wp-image-1190" /></a><br />
<span style="color: #ff00ff;">You&#8217;re one of a kind, I can&#8217;t explain it.<br />
You&#8217;re kind of cool, in a wonderful way.<br />
Though you&#8217;re weird, you can make it.<br />
And who better than me to teach you.<br />
Who better then me to set you on your way. (Mhm)</span></p>
<p><span style="color: #ff00ff;">This could take some hangin&#8217; in there<br />
Though with persuasion I can take you on up<br />
Make you grow up, beside the others<br />
And who better than me to lead you<br />
Who better than me to take you all the way (Hey hey hey yeah)</span></p>
<p><strong>Asher &amp; Miriam</strong><br />
Struggling along for years and years</p>
<p><strong>Miriam</strong><br />
<span style="color: #ff00ff;">Until I came along for you<br />
Now its all comin&#8217; together</span></p>
<p><strong>Asher &amp; Miriam</strong><br />
And together will see this through<br />
You for me and me for you</p>
<p><a href="http://froebe.net/blog/wp-content/uploads/2010/01/Asher_dishwasher_small.jpg"><img src="http://froebe.net/blog/wp-content/uploads/2010/01/Asher_dishwasher_small-150x150.jpg" alt="" title="Asher_dishwasher_small" width="150" height="150" class="alignright size-thumbnail wp-image-1191" /></a><br />
<strong>Asher</strong><br />
<span style="color: #0000ff;">I can learn, I can listen<br />
I know there&#8217;s something<br />
Deep inside but<br />
I need assistance to go the distance</span></p>
<p><strong>Miriam</strong><br />
<span style="color: #ff00ff;">And who better than me</span></p>
<p><strong>Asher</strong><br />
<span style="color: #0000ff;">To teach me</span></p>
<p><strong>Miriam</strong><br />
<span style="color: #ff00ff;">Who better than me</span></p>
<p><strong>Asher</strong><br />
<span style="color: #0000ff;">To tell me all you know</span><br />
<strong><br />
Miriam</strong><br />
<span style="color: #ff00ff;">Who better than me</span></p>
<p><strong>Asher</strong><br />
<span style="color: #0000ff;">You reach me</span></p>
<p><strong>Miriam</strong><br />
<span style="color: #ff00ff;">Who better than me</span></p>
<p><strong>Asher &amp; Miriam</strong><br />
To show them all we know!</p>
]]></content:encoded>
			<wfw:commentRss>http://froebe.net/blog/2010/01/20/asher-miriam-sing-along/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Started reading &#8220;Foundations of Qt Development&#8221;</title>
		<link>http://froebe.net/blog/2010/01/19/started-reading-foundations-of-qt-development/</link>
		<comments>http://froebe.net/blog/2010/01/19/started-reading-foundations-of-qt-development/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 04:57:48 +0000</pubDate>
		<dc:creator>Jason L Froebe</dc:creator>
				<category><![CDATA[Book]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac OSX]]></category>
		<category><![CDATA[OS]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[misc]]></category>
		<category><![CDATA[Bjarne Stroustrup]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[c plus plus]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Johan Thelin]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[qt]]></category>
		<category><![CDATA[qt4]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[trolltech]]></category>

		<guid isPermaLink="false">http://froebe.net/blog/?p=1181</guid>
		<description><![CDATA[When I purchased Foundations of Qt Development (Expert&#8217;s Voice in Open Source) by Johan Thelin a few months back, I hoped to get to it right away but work and life diverted my attention.  Today at lunch I dived into it.  Even though I&#8217;m still going through chapter 1, I think I can [...]]]></description>
			<content:encoded><![CDATA[<p>When I <a href="http://en.wikipedia.org/wiki/Qt_%28toolkit%29"><img src="http://froebe.net/blog/wp-content/uploads/2010/01/Qt-logo.-150x150.png" alt="" title="Qt-logo" width="150" height="150" class="alignright size-thumbnail wp-image-1182" /></a>purchased <a href="http://www.amazon.com/gp/product/1590598318?ie=UTF8&#038;tag=froebe-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=1590598318">Foundations of Qt Development (Expert&#8217;s Voice in Open Source) by Johan Thelin</a><img src="http://www.assoc-amazon.com/e/ir?t=froebe-20&#038;l=as2&#038;o=1&#038;a=1590598318" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> a few months back, I hoped to get to it right away but work and life diverted my attention.  Today at lunch I dived into it.  Even though I&#8217;m still going through chapter 1, I think I can give a hint of it:</p>
<p><a href="http://www.amazon.com/gp/product/1590598318?ie=UTF8&#038;tag=froebe-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=1590598318">Foundations of QtÂ® Development (Expert&#8217;s Voice in Open Source)</a><img src="http://www.assoc-amazon.com/e/ir?t=froebe-20&#038;l=as2&#038;o=1&#038;a=1590598318" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> is well written.  He assumes that you have a little bit of C++ knowledge, avoiding into the trap that so many other authors do.  You wouldn&#8217;t believe how many technical books I have where the first half or more of the book is simply a rehash of the basics.  Forget that! </p>
<p>What I really like is that when he shows you an example of code, he explains why you would want to write it this way and how it differs from the Standard Template Language (STL &#8211; see <a href="http://www.amazon.com/gp/product/0201889544?ie=UTF8&#038;tag=froebe-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0201889544">C++ Programming Language, The (3rd Edition)</a><img src="http://www.assoc-amazon.com/e/ir?t=froebe-20&#038;l=as2&#038;o=1&#038;a=0201889544" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />).  Where there are performance gains or penalties of using Qt instead of STL, he demonstrates it.  </p>
<p>I never realized just how easy it is to write C++ using the <a href="http://en.wikipedia.org/wiki/Qt_(toolkit)">Qt framework</a>!  Just the Signals and Slots alone make it very very powerful and that&#8217;s just the beginning.  I&#8217;m completely blown away <img src='http://froebe.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://froebe.net/blog/2010/01/19/started-reading-foundations-of-qt-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My wife bought a new Sony MEX-BT2700 car radio for my Saturn 2000 SL2 car but it took me 2 1/2 hours to install the thing</title>
		<link>http://froebe.net/blog/2010/01/17/my-wife-bought-a-new-sony-mex-bt2700-car-radio-for-my-saturn-2000-sl2-car-but-it-took-me-2-12-hours-to-install-the-thing/</link>
		<comments>http://froebe.net/blog/2010/01/17/my-wife-bought-a-new-sony-mex-bt2700-car-radio-for-my-saturn-2000-sl2-car-but-it-took-me-2-12-hours-to-install-the-thing/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 05:58:48 +0000</pubDate>
		<dc:creator>Jason L Froebe</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[humor]]></category>
		<category><![CDATA[misc]]></category>
		<category><![CDATA[2000]]></category>
		<category><![CDATA[bluetooth]]></category>
		<category><![CDATA[car]]></category>
		<category><![CDATA[mex-bt2700]]></category>
		<category><![CDATA[mexbt2700]]></category>
		<category><![CDATA[radio]]></category>
		<category><![CDATA[saturn]]></category>
		<category><![CDATA[sl2]]></category>
		<category><![CDATA[sony]]></category>

		<guid isPermaLink="false">http://froebe.net/blog/?p=1179</guid>
		<description><![CDATA[When my bought the Sony MEXBT2700 CD Receiver with Bluetooth Hands-Free with Integrated Microphone (Black), I was thrilled.  It seems to be a nice little radio with bluetooth and all the whiz bang that I needed.
We purchased the wiring adapter and the harness so that it fits well and looks nice in my Saturn [...]]]></description>
			<content:encoded><![CDATA[<p>When my bought the <a href="http://www.amazon.com/gp/product/B001QY1KSK?ie=UTF8&#038;tag=froebe-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=B001QY1KSK">Sony MEXBT2700 CD Receiver with Bluetooth Hands-Free with Integrated Microphone (Black)</a><img src="http://www.assoc-amazon.com/e/ir?t=froebe-20&#038;l=as2&#038;o=1&#038;a=B001QY1KSK" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, I was thrilled.  It seems to be a nice little radio with bluetooth and all the whiz bang that I needed.</p>
<p>We purchased the wiring adapter and the harness so that it fits well and looks nice in my Saturn 2000 SL2 sedan for an extra $44.  Not bad.  The problem was that while the colored wiring diagram provided by the adapter was correct, it had me put the power wire from the ignition in the wrong pin slot as the casing was reversed!  Argh!  It needed to go into pin 6 but it was on the wrong side.  I figured it out after taking a good look at the plug on the old stock radio.</p>
<p>No, I couldn&#8217;t find my multimeter which is in a box somewhere in the house.  head*desk</p>
<p>Once I moved the wire to the correct pin hole, the radio came alive.</p>
<p>Lesson learned when installing a car radio:  make sure you have your multimeter (or some other way of determining if the power pin is hot).</p>
]]></content:encoded>
			<wfw:commentRss>http://froebe.net/blog/2010/01/17/my-wife-bought-a-new-sony-mex-bt2700-car-radio-for-my-saturn-2000-sl2-car-but-it-took-me-2-12-hours-to-install-the-thing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to resize a Gdk.Pixbuf to the size of a Gtk.Image visible area</title>
		<link>http://froebe.net/blog/2010/01/12/how-to-resize-a-gdk-pixbuf-to-the-size-of-a-gtk-image-visible-area/</link>
		<comments>http://froebe.net/blog/2010/01/12/how-to-resize-a-gdk-pixbuf-to-the-size-of-a-gtk-image-visible-area/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 14:08:56 +0000</pubDate>
		<dc:creator>Jason L Froebe</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OS]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[dotnet]]></category>
		<category><![CDATA[gdk]]></category>
		<category><![CDATA[Gdk.IterpType]]></category>
		<category><![CDATA[gdk.pixbuf]]></category>
		<category><![CDATA[getrectangles]]></category>
		<category><![CDATA[gtk]]></category>
		<category><![CDATA[gtk.image]]></category>
		<category><![CDATA[mono]]></category>
		<category><![CDATA[scaleimage]]></category>
		<category><![CDATA[visibleregion]]></category>

		<guid isPermaLink="false">http://froebe.net/blog/?p=1175</guid>
		<description><![CDATA[I wrote a simple image viewer that will load a photo image into a Gtk.Image widget using a Gdk.Pixbuf.  I then added a tool bar with four clickable icons.  Zoom out, zoom in, fit to window and original size.

All but the fit to window worked well.  When I pulled the width and height from image1.GetSizeRequest(out [...]]]></description>
			<content:encoded><![CDATA[<p>I wrote a simple image viewer that will load a photo image into a Gtk.Image widget using a Gdk.Pixbuf.  I then added a tool bar with four clickable icons.  Zoom out, zoom in, fit to window and original size.</p>
<p><a href="http://froebe.net/blog/wp-content/uploads/2010/01/Screenshot-MainWindow.png"><img class="aligncenter size-full wp-image-1173" title="Screenshot-MainWindow" src="http://froebe.net/blog/wp-content/uploads/2010/01/Screenshot-MainWindow.png" alt="" width="438" height="300" /></a></p>
<p>All but the <em>fit to window</em> worked well.  When I pulled the width and height from image1.GetSizeRequest(out width, out height), width &amp; height were returned as -1.  Not helpful.  Google didn&#8217;t give me many clues either <img src='http://froebe.net/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>What I needed was something that would provide the visible area of the Gdk.Image widget:</p>
<p><a href="http://froebe.net/blog/wp-content/uploads/2010/01/Screenshot-MainWindowa.png"><img class="aligncenter size-full wp-image-1176" title="Screenshot-MainWindowa" src="http://froebe.net/blog/wp-content/uploads/2010/01/Screenshot-MainWindowa.png" alt="" width="430" height="293" /></a></p>
<p>In order to get the visible area, we need to:</p>
<ul>
<li>upcast Gtk.Image to a Gtk.GdkWindow</li>
<li>retrieve a Gdk.Region from the VisibleRegion method</li>
<li>retrieve the first Gdk.Rectangle from the array returned from the visibleRegion.GetRectangles method</li>
<li>extract the Height and Width from the Gdk.Rectangle</li>
</ul>
<p>Now that we have the height and the width of the visible area of the Gtk.Image widget, we need to scale the image (Gdk.Pixbuf) while keeping the aspect.  Assigning the image to the Gtk.Image widget will automatically redraw itself.</p>
<div class="dean_ch" style="white-space: wrap;"><span class="kw1">protected</span> <span class="kw1">virtual</span> <span class="kw1">void</span> zoomToWindow <span class="br0">&#40;</span><span class="kw4">object</span> sender, <span class="kw5">System</span>.<span class="me1">EventArgs</span> e<span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span>image1.<span class="me1">Pixbuf</span> != <span class="kw1">null</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp;<span class="kw4">int</span> new_width, new_height;<br />
&nbsp; &nbsp; &nbsp;<span class="kw4">int</span> height = image1.<span class="me1">Pixbuf</span>.<span class="me1">Height</span>;<br />
&nbsp; &nbsp; &nbsp;<span class="kw4">int</span> width = image1.<span class="me1">Pixbuf</span>.<span class="me1">Width</span>;</p>
<p>&nbsp; &nbsp; &nbsp;Gdk.<span class="me1">Region</span> visibleRegion = image1.<span class="me1">GdkWindow</span>.<span class="me1">VisibleRegion</span>;<br />
&nbsp; &nbsp; &nbsp;Gdk.<span class="me1">Rectangle</span> rectangle = visibleRegion.<span class="me1">GetRectangles</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp;new_height = rectangle.<span class="me1">Height</span>;<br />
&nbsp; &nbsp; &nbsp;new_width = rectangle.<span class="me1">Width</span>;<br />
&nbsp; &nbsp; &nbsp;scaleImage<span class="br0">&#40;</span>height, width, <span class="kw1">ref</span> new_height, <span class="kw1">ref</span> new_width, <span class="nu0">0</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp;image1.<span class="me1">Pixbuf</span> = pictureBuf.<span class="me1">ScaleSimple</span><span class="br0">&#40;</span>new_width, new_height, Gdk.<span class="me1">InterpType</span>.<span class="me1">Bilinear</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp;<span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></div>
<p><a href="http://froebe.net/blog/wp-content/uploads/2010/01/Screenshot-MainWindow-1.png"><img class="aligncenter size-full wp-image-1174" title="Screenshot-MainWindow-1" src="http://froebe.net/blog/wp-content/uploads/2010/01/Screenshot-MainWindow-1.png" alt="" width="438" height="300" /></a>There we go <img src='http://froebe.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
While the code above is C#, the same principle goes for any language that uses Gtk.</p>
]]></content:encoded>
			<wfw:commentRss>http://froebe.net/blog/2010/01/12/how-to-resize-a-gdk-pixbuf-to-the-size-of-a-gtk-image-visible-area/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>For those of you on Facebook and are interested in PowerBuilder&#8230;.</title>
		<link>http://froebe.net/blog/2010/01/06/for-thos-of-you-on-facebook-and-are-interested-in-powerbuilder/</link>
		<comments>http://froebe.net/blog/2010/01/06/for-thos-of-you-on-facebook-and-are-interested-in-powerbuilder/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 19:42:51 +0000</pubDate>
		<dc:creator>Jason L Froebe</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Powerbuilder]]></category>
		<category><![CDATA[Sybase]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[fan page]]></category>

		<guid isPermaLink="false">http://froebe.net/blog/?p=1170</guid>
		<description><![CDATA[
Subject: Old PowerBuilder Facebook page deactivated



Hi Everyone,

Happy new year!

As of today, the old PowerBuilder facebook page is deactivated.

Please be sure to become a fan of PowerBuilder here:
http://www.facebook.com/pages/PowerBuilder/160355699256

Go PB!!

]]></description>
			<content:encoded><![CDATA[<blockquote>
<pre><em>Subject: Old PowerBuilder Facebook page deactivated

</em>

<div class="wp-caption alignright" style="width: 210px"><em></em><em><a href="http://www.facebook.com/pages/PowerBuilder/160355699256"><img title="PowerBuilder Fan Page" src="http://profile.ak.fbcdn.net/object2/1509/116/n160355699256_6668.jpg" alt="PowerBuilder Fan Page" width="200" height="200" /></a></em><p class="wp-caption-text">PowerBuilder Fan Page</p></div>

Hi Everyone,

Happy new year!

As of today, the old PowerBuilder facebook page is deactivated.

Please be sure to become a fan of PowerBuilder here:
<a href="http://www.facebook.com/pages/PowerBuilder/160355699256">http://www.facebook.com/pages/PowerBuilder/160355699256</a>

Go PB!!</pre>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://froebe.net/blog/2010/01/06/for-thos-of-you-on-facebook-and-are-interested-in-powerbuilder/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to create an iTunes/iPod compatible audiobook (MPEG4 m4b) on Linux using MP4Box and mp4v2 v1.9.1 &#8211; it can be done!</title>
		<link>http://froebe.net/blog/2009/12/24/how-to-create-an-itunesipod-compatible-audiobook-mpeg4-m4b-on-linux-using-mp4box-and-mp4v2-v1-9-1-it-can-be-done/</link>
		<comments>http://froebe.net/blog/2009/12/24/how-to-create-an-itunesipod-compatible-audiobook-mpeg4-m4b-on-linux-using-mp4box-and-mp4v2-v1-9-1-it-can-be-done/#comments</comments>
		<pubDate>Thu, 24 Dec 2009 17:39:18 +0000</pubDate>
		<dc:creator>Jason L Froebe</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac OSX]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[misc]]></category>
		<category><![CDATA[add chapters]]></category>
		<category><![CDATA[audiobook]]></category>
		<category><![CDATA[chapters]]></category>
		<category><![CDATA[conversion]]></category>
		<category><![CDATA[convert]]></category>
		<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[gpac]]></category>
		<category><![CDATA[ipod]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[mp4box]]></category>
		<category><![CDATA[mp4v2]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://froebe.net/blog/?p=1163</guid>
		<description><![CDATA[I&#8217;ve been wracking my brains over this for the past few weeks and it finally struck me how to create an m4b audiobook with chapters that is compatible with your iPod, iTunes, VLC, etc.  It was very simple once I figured it out:
Step 1:
encode the mp3 files to &#8220;aac&#8221; (mpeg4) using your favorite converter (I [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been wracking my brains over this for the past few weeks and it finally struck me how to create an m4b audiobook with chapters that is compatible with your iPod, iTunes, VLC, etc.  It was very simple once I figured it out:</p>
<h3>Step 1:</h3>
<p>encode the mp3 files to &#8220;aac&#8221; (mpeg4) using your favorite converter (I use ffmpeg):</p>
<div class="dean_ch" style="white-space: wrap;">ffmpeg -i <span class="st0">&quot;track1.mp3&quot;</span> -y -vn -acodec libfaac -ab 128k -<span class="kw2">ar</span> <span class="nu0">44100</span> -threads <span class="nu0">3</span> -f mp4 track1.aac</div>
<h3>Step 2:</h3>
<p>Create a <i>chapters</i> file so that <a href="http://gpac.sourceforge.net">MP4Box</a> can understand it:</p>
<blockquote><p>    * Common syntax : CHAPTERX=h:m:s[:ms or .ms] on one line and CHAPTERXNAME=name on the other &#8211; the order is not important but chapter lines MUST be declared sequencially (same X value expected for 2 consecutive lines).</p></blockquote>
<div class="dean_ch" style="white-space: wrap;">$ <span class="kw2">cat</span> track1.chapters<br />
<span class="re2">CHAPTER1=</span><span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00.000</span><br />
<span class="re2">CHAPTER1NAME=</span>Chapter <span class="nu0">001</span><br />
<span class="re2">CHAPTER2=</span><span class="nu0">00</span>:<span class="nu0">30</span>:<span class="nu0">00.139</span><br />
<span class="re2">CHAPTER2NAME=</span>Chapter <span class="nu0">002</span><br />
<span class="re2">CHAPTER3=</span><span class="nu0">01</span>:<span class="nu0">00</span>:<span class="nu0">00.728</span><br />
<span class="re2">CHAPTER3NAME=</span>Chapter <span class="nu0">003</span><br />
<span class="re2">CHAPTER4=</span><span class="nu0">01</span>:<span class="nu0">30</span>:<span class="nu0">01.269</span><br />
<span class="re2">CHAPTER4NAME=</span>Chapter <span class="nu0">004</span><br />
<span class="re2">CHAPTER5=</span><span class="nu0">02</span>:<span class="nu0">00</span>:<span class="nu0">01.858</span><br />
<span class="re2">CHAPTER5NAME=</span>Chapter <span class="nu0">005</span><br />
<span class="re2">CHAPTER6=</span><span class="nu0">02</span>:<span class="nu0">30</span>:<span class="nu0">02.375</span><br />
<span class="re2">CHAPTER6NAME=</span>Chapter <span class="nu0">006</span><br />
<span class="re2">CHAPTER7=</span><span class="nu0">03</span>:<span class="nu0">00</span>:<span class="nu0">02.964</span><br />
<span class="re2">CHAPTER7NAME=</span>Chapter <span class="nu0">007</span><br />
<span class="re2">CHAPTER8=</span><span class="nu0">03</span>:<span class="nu0">30</span>:<span class="nu0">03.553</span><br />
<span class="re2">CHAPTER8NAME=</span>Chapter <span class="nu0">008</span><br />
<span class="re2">CHAPTER9=</span><span class="nu0">04</span>:<span class="nu0">00</span>:<span class="nu0">04.094</span><br />
<span class="re2">CHAPTER9NAME=</span>Chapter <span class="nu0">009</span><br />
<span class="re2">CHAPTER10=</span><span class="nu0">04</span>:<span class="nu0">30</span>:<span class="nu0">04.683</span><br />
<span class="re2">CHAPTER10NAME=</span>Chapter <span class="nu0">010</span><br />
<span class="re2">CHAPTER11=</span><span class="nu0">05</span>:<span class="nu0">00</span>:<span class="nu0">05.224</span><br />
<span class="re2">CHAPTER11NAME=</span>Chapter <span class="nu0">011</span><br />
<span class="re2">CHAPTER12=</span><span class="nu0">05</span>:<span class="nu0">30</span>:<span class="nu0">05.765</span><br />
<span class="re2">CHAPTER12NAME=</span>Chapter <span class="nu0">012</span><br />
<span class="re2">CHAPTER13=</span><span class="nu0">05</span>:<span class="nu0">46</span>:<span class="nu0">14.106</span><br />
<span class="re2">CHAPTER13NAME=</span>Chapter <span class="nu0">013</span><br />
<span class="re2">CHAPTER14=</span><span class="nu0">06</span>:<span class="nu0">16</span>:<span class="nu0">14.143</span><br />
<span class="re2">CHAPTER14NAME=</span>Chapter <span class="nu0">014</span><br />
<span class="re2">CHAPTER15=</span><span class="nu0">06</span>:<span class="nu0">46</span>:<span class="nu0">14.732</span><br />
<span class="re2">CHAPTER15NAME=</span>Chapter <span class="nu0">015</span><br />
<span class="re2">CHAPTER16=</span><span class="nu0">07</span>:<span class="nu0">16</span>:<span class="nu0">15.249</span><br />
<span class="re2">CHAPTER16NAME=</span>Chapter <span class="nu0">016</span><br />
<span class="re2">CHAPTER17=</span><span class="nu0">07</span>:<span class="nu0">46</span>:<span class="nu0">15.790</span><br />
<span class="re2">CHAPTER17NAME=</span>Chapter <span class="nu0">017</span><br />
<span class="re2">CHAPTER18=</span><span class="nu0">08</span>:<span class="nu0">16</span>:<span class="nu0">16.331</span><br />
<span class="re2">CHAPTER18NAME=</span>Chapter <span class="nu0">018</span><br />
<span class="re2">CHAPTER19=</span><span class="nu0">08</span>:<span class="nu0">46</span>:<span class="nu0">16.920</span><br />
<span class="re2">CHAPTER19NAME=</span>Chapter <span class="nu0">019</span><br />
<span class="re2">CHAPTER20=</span><span class="nu0">09</span>:<span class="nu0">16</span>:<span class="nu0">17.460</span><br />
<span class="re2">CHAPTER20NAME=</span>Chapter <span class="nu0">020</span><br />
<span class="re2">CHAPTER21=</span><span class="nu0">09</span>:<span class="nu0">46</span>:<span class="nu0">18.050</span><br />
<span class="re2">CHAPTER21NAME=</span>Chapter <span class="nu0">021</span><br />
<span class="re2">CHAPTER22=</span><span class="nu0">10</span>:<span class="nu0">16</span>:<span class="nu0">18.639</span><br />
<span class="re2">CHAPTER22NAME=</span>Chapter <span class="nu0">022</span></div>
<h3>Step 3:</h3>
<p>Add the chapters to the audio file (creates Nero format chapter markers):</p>
<div class="dean_ch" style="white-space: wrap;">MP4Box -add track1.aac -chap track1.chapters <span class="kw3">test</span>.mp4</div>
<h3>Step 4:</h3>
<p>Convert the Nero chapter markers to Quicktime chapter markers using <a href="http://code.google.com/p/mp4v2/">mp4chaps from the mp4v2 project</a> (you will want v1.9.1 or higher):</p>
<div class="dean_ch" style="white-space: wrap;">mp4chaps &#8211;convert &#8211;chapter-qt <span class="kw3">test</span>.mp4<br />
converting chapters <span class="kw1">in</span> <span class="kw2">file</span> <span class="st0">&quot;test.mp4&quot;</span> from Nero to QuickTime</div>
<h3>Step 5:</h3>
<p>Rename the file from .mp4 to .m4b extension so iTunes will see it as an audiobook:</p>
<div class="dean_ch" style="white-space: wrap;"><span class="kw2">mv</span> <span class="kw3">test</span>.mp4 <span class="kw3">test</span>.m4b</div>
<h3>Proof that it works:</h3>
<p><a href="http://froebe.net/blog/wp-content/uploads/2009/12/iTunes_showing_chapters.png"><img src="http://froebe.net/blog/wp-content/uploads/2009/12/iTunes_showing_chapters-300x253.png" alt="" title="iTunes with chapters shown" width="300" height="253" class="aligncenter size-medium wp-image-1164" /></a></p>
<p>and VLC showing the chapters:<br />
<a href="http://froebe.net/blog/wp-content/uploads/2009/12/VLC_showing_chapters.png"><img src="http://froebe.net/blog/wp-content/uploads/2009/12/VLC_showing_chapters.png" alt="" title="VLC showing chapters" width="427" height="138" class="aligncenter size-full wp-image-1165" /></a></p>
<p>Of course, we aren&#8217;t putting in any tags such as &#8220;author&#8221; or &#8220;genre&#8221; in this example.  Use your favorite tags editor to do so.</p>
]]></content:encoded>
			<wfw:commentRss>http://froebe.net/blog/2009/12/24/how-to-create-an-itunesipod-compatible-audiobook-mpeg4-m4b-on-linux-using-mp4box-and-mp4v2-v1-9-1-it-can-be-done/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>How to convert a laptop running Microsoft Windows 7 to a VirtualBox virtual machine</title>
		<link>http://froebe.net/blog/2009/12/21/how-to-convert-a-laptop-running-microsoft-windows-7-to-a-virtualbox-virtual-machine/</link>
		<comments>http://froebe.net/blog/2009/12/21/how-to-convert-a-laptop-running-microsoft-windows-7-to-a-virtualbox-virtual-machine/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 16:32:53 +0000</pubDate>
		<dc:creator>Jason L Froebe</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OS]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[virtualization]]></category>
		<category><![CDATA[dell]]></category>
		<category><![CDATA[dell latitiude]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[microsoft windows 7]]></category>
		<category><![CDATA[mint]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[vboxmanage]]></category>
		<category><![CDATA[virtualbox]]></category>
		<category><![CDATA[vista]]></category>
		<category><![CDATA[win7]]></category>

		<guid isPermaLink="false">http://froebe.net/blog/?p=1161</guid>
		<description><![CDATA[I was very much surprised just how easy it is to convert a Microsoft Windows 7 laptop into a virtual machine running within Sun&#8217;s VirtualBox.  This is what I did:

Pull the hard drive from the laptop.  On my Dell Latitude, it was simply unscrewing the two screws on the bottom of the laptop marked with [...]]]></description>
			<content:encoded><![CDATA[<p>I was very much surprised just how easy it is to convert a <a href="http://www.microsoft.com/windows7">Microsoft Windows 7</a> laptop into a virtual machine running within <a href="http://www.virtualbox.org">Sun&#8217;s VirtualBox</a>.  This is what I did:</p>
<ul>
<li>Pull the hard drive from the laptop.  On my Dell Latitude, it was simply unscrewing the two screws on the bottom of the laptop marked with the hard drive simble</li>
<li>Attach the drive to a SATA to USB connector and plug it in to your Linux box</li>
<li>If you don&#8217;t have VirtualBox installed, do so now using apt-get, rpm, or whatever you use to install software</li>
<li>Follow <a href="http://www.virtualbox.org/wiki/Migrate_Windows">How to migrate existing Windows installations to VirtualBox</a> but make sure you specify the entire drive (i.e. /dev/sdh) and not individual partitions else you will miss the hidden partitions that Vista and Windows 7 create</li>
</ul>
<p>You should have a working Windows 7 Virtual Machine.  You&#8217;ll notice that you probably have a huge vdi file.  Let&#8217;s shrink that down:</p>
<ul>
<li>Within Windows
<ul>
<li>download and install <a href="http://www.microsoft.com/technet/sysinternals/Security/SDelete.mspx">sdelete from Microsoft</a></li>
<li>download and install <a href="http://www.softpedia.com/get/System/Hard-Disk-Utils/Power-Defragmenter.shtml">PowerDefragmenter</a></li>
<li>Run PowerDefragmenter on your c: drive (as administrator)</li>
<li>Run <strong>&#8220;sdelete -c c:&#8221;</strong> from a cmd window (as administrator)</li>
<li>shutdown windows</li>
</ul>
</li>
<li>On the host
<ul>
<li>run <strong>&#8220;VBoxManage modifyvdi my_disk.vdi compact&#8221;</strong> replacing &#8220;my_disk.vdi&#8221; with the name of your vdi file you created earlier</li>
<li>Note that if you get a &#8220;Shrink hard disk operation is not implemented&#8221; error, then you&#8217;ve hit <a href="http://www.virtualbox.org/ticket/2833">bug #2833</a> and you will want to <a href="http://www.virtualbox.org">download the latest VirtualBox</a> to fix it.</li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://froebe.net/blog/2009/12/21/how-to-convert-a-laptop-running-microsoft-windows-7-to-a-virtualbox-virtual-machine/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>FW (Sun): MVC, DCI, and NetBeans Platform Applications</title>
		<link>http://froebe.net/blog/2009/12/16/fw-sun-mvc-dci-and-netbeans-platform-applications/</link>
		<comments>http://froebe.net/blog/2009/12/16/fw-sun-mvc-dci-and-netbeans-platform-applications/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 18:31:23 +0000</pubDate>
		<dc:creator>Jason L Froebe</dc:creator>
				<category><![CDATA[OS]]></category>
		<category><![CDATA[misc]]></category>
		<category><![CDATA[dci]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[Sun]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://froebe.net/blog/?p=1159</guid>
		<description><![CDATA[MVC, DCI, and NetBeans Platform Applications

Jaroslav Tulach discusses the relationship between MVC and the NetBeans Platform and explains why the DCI approach offers a better understanding.

]]></description>
			<content:encoded><![CDATA[<blockquote><p><em><a href="http://blip.tv/play/AYGh7k8C"><strong>MVC, DCI, and NetBeans Platform Applications</strong></a></p>
<p></em></p>
<p><em>Jaroslav Tulach discusses the relationship between MVC and the NetBeans Platform and explains why the DCI approach offers a better understanding.</em></p></blockquote>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="390" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://blip.tv/play/AYGh7k8C" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="390" src="http://blip.tv/play/AYGh7k8C" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://froebe.net/blog/2009/12/16/fw-sun-mvc-dci-and-netbeans-platform-applications/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A better way to convert your mp3 tags using Perl, POE, Linux::Inotify2 and POE::Wheel::Run (for you Sony PS3 or other media player)</title>
		<link>http://froebe.net/blog/2009/12/15/a-better-way-to-convert-your-mp3-tags-using-perl-poe-linuxinotify2-and-poewheelrun-for-you-sony-ps3-or-other-media-player/</link>
		<comments>http://froebe.net/blog/2009/12/15/a-better-way-to-convert-your-mp3-tags-using-perl-poe-linuxinotify2-and-poewheelrun-for-you-sony-ps3-or-other-media-player/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 22:00:06 +0000</pubDate>
		<dc:creator>Jason L Froebe</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OS]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[conversion]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[id3v1]]></category>
		<category><![CDATA[id3v2]]></category>
		<category><![CDATA[Linux::Inotify2]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[playstation]]></category>
		<category><![CDATA[POE]]></category>
		<category><![CDATA[poe::wheel:run]]></category>
		<category><![CDATA[sony play]]></category>
		<category><![CDATA[sony playstation 3]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://froebe.net/blog/?p=1157</guid>
		<description><![CDATA[Yesterday, I posted Howto: Convert your mp3 tags (id3v2 to id3v1) so your Playstation 3 can play your MP3s! and it worked fine but there was one little problem with it.
When we processed the files, namely running eye3D, we did so synchronously.  Essentially, the file notification came in from the Linux kernel and we [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday, I posted <a href="http://froebe.net/blog/2009/12/14/howto-convert-your-mp3-tags-id3v2-to-id3v1-so-your-playstation-3-can-play-your-mp3s/">Howto: Convert your mp3 tags (id3v2 to id3v1) so your Playstation 3 can play your MP3s!</a> and it worked fine but there was one little problem with it.</p>
<p>When we processed the files, namely running <strong>eye3D</strong>, we did so synchronously.  Essentially, the file notification came in from the Linux kernel and we processed the file at that time.  This may be an issue of overflowing the inotify queue within the Linux kernel if there are a lot of files to process.</p>
<p>A better solution would be to add the file to an internal queue and process the files in a sub process using POE::Wheel::Run.  Of course we will limit the number of sub processes <img src='http://froebe.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="dean_ch" style="white-space: wrap;"><span class="co1">#!/usr/bin/perl</span></p>
<p><span class="kw2">use</span> strict;<br />
<span class="kw2">use</span> warnings;</p>
<p><span class="kw2">use</span> File::<span class="me2">Basename</span>;<br />
<span class="kw2">use</span> File::<span class="me2">Find</span> <span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
<span class="kw2">use</span> Getopt::<span class="me2">Std</span>;<br />
<span class="kw2">use</span> Linux::<span class="me2">Inotify2</span>;<br />
<span class="kw2">use</span> POE <a href="http://perldoc.perl.org/functions/qw.html"><span class="kw3">qw</span></a><span class="br0">&#40;</span> Kernel Session Wheel::<span class="me2">Run</span> <span class="br0">&#41;</span>;</p>
<p>$|++;</p>
<p><span class="co1">#######################################</span><br />
<span class="co1">#######################################</span></p>
<p><span class="kw1">our</span> <span class="re0">@found_dirs</span>;<br />
<span class="kw1">our</span> <span class="re0">$max_concurrent_tasks</span>;</p>
<p><span class="kw2">sub</span> watch_add_dir <span class="br0">&#123;</span><br />
&nbsp;<span class="kw1">my</span> <span class="br0">&#40;</span><span class="re0">$heap_ref</span>, <span class="re0">$session</span>, <span class="re0">$dir_name</span><span class="br0">&#41;</span> = <span class="re0">@_</span>;</p>
<p>&nbsp;<span class="co1">##############</span><br />
&nbsp;<span class="co1"># Watch this directory with a call back</span><br />
&nbsp;<span class="co1"># &nbsp;to the watch_hdlr() subroutine via</span><br />
&nbsp;<span class="co1"># &nbsp;a message to the POE system</span><br />
&nbsp;<span class="co1">##############</span><br />
&nbsp;<span class="re0">$heap_ref</span>-&gt;<span class="br0">&#123;</span>inotify<span class="br0">&#125;</span>-&gt;<span class="me1">watch</span><span class="br0">&#40;</span><span class="re0">$dir_name</span>, IN_CREATE|IN_CLOSE_WRITE, <span class="re0">$session</span>-&gt;<span class="me1">postback</span><span class="br0">&#40;</span><span class="st0">&quot;watch_hdlr&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;<br />
&nbsp;<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot; Watching directory $dir_name<span class="es0">\n</span>&quot;</span>;<br />
<span class="br0">&#125;</span></p>
<p><span class="kw2">sub</span> watch_hdlr <span class="br0">&#123;</span><br />
&nbsp;<span class="kw1">my</span> <span class="br0">&#40;</span><span class="re0">$kernel</span>, <span class="re0">$heap</span>, <span class="re0">$session</span>, <span class="re0">$event</span><span class="br0">&#41;</span> = <span class="br0">&#40;</span> <span class="re0">$_</span><span class="br0">&#91;</span>KERNEL<span class="br0">&#93;</span>, <span class="re0">$_</span><span class="br0">&#91;</span>HEAP<span class="br0">&#93;</span>, <span class="re0">$_</span><span class="br0">&#91;</span>SESSION<span class="br0">&#93;</span>, <span class="re0">$_</span><span class="br0">&#91;</span>ARG1<span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span> <span class="br0">&#41;</span>;</p>
<p>&nbsp;<span class="kw1">my</span> <span class="re0">$name</span> = <span class="re0">$event</span>-&gt;<span class="me1">fullname</span>;<br />
&nbsp;<span class="kw1">my</span> <span class="re0">$short_name</span> = <span class="re0">$event</span>-&gt;<span class="me1">name</span>;</p>
<p>&nbsp;<span class="co1">##############</span><br />
&nbsp;<span class="co1"># We can receive many many notifications</span><br />
&nbsp;<span class="co1"># &nbsp;for a file. &nbsp;If we&#8217;ve already processed</span><br />
&nbsp;<span class="co1"># &nbsp;the file, do nothing.</span><br />
&nbsp;<span class="co1">##############</span><br />
&nbsp;<span class="kw1">unless</span> <span class="br0">&#40;</span><span class="re0">$heap</span>-&gt;<span class="br0">&#123;</span>inotify<span class="br0">&#125;</span><span class="br0">&#123;</span>files<span class="br0">&#125;</span><span class="br0">&#123;</span><span class="re0">$name</span><span class="br0">&#125;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></p>
<p>&nbsp; <span class="co1">##############</span><br />
&nbsp; <span class="co1"># If a new directory is added, we need</span><br />
&nbsp; <span class="co1"># &nbsp;to watch that directory too.</span><br />
&nbsp; <span class="co1">##############</span><br />
&nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$event</span>-&gt;<span class="me1">IN_CREATE</span> &amp;&amp; -d <span class="re0">$name</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp;<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;New directory: $name<span class="es0">\n</span>&quot;</span>;<br />
&nbsp; &nbsp;watch_add_dir<span class="br0">&#40;</span><span class="re0">$heap</span>, <span class="re0">$session</span>, <span class="re0">$name</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp;<span class="br0">&#125;</span> <span class="kw1">elsif</span> <span class="br0">&#40;</span><span class="re0">$event</span>-&gt;<span class="me1">IN_CLOSE_WRITE</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></p>
<p>&nbsp; &nbsp;<span class="co1">##############</span><br />
&nbsp; &nbsp;<span class="co1"># When a file descriptor that was opened for</span><br />
&nbsp; &nbsp;<span class="co1"># &nbsp;&#8217;writing&#8217; is closed, then process that</span><br />
&nbsp; &nbsp;<span class="co1"># &nbsp;file it was being written to. &nbsp;We&#8217;re</span><br />
&nbsp; &nbsp;<span class="co1"># &nbsp;assuming that the file is complete at this</span><br />
&nbsp; &nbsp;<span class="co1"># &nbsp;point as the operation will be a copy into</span><br />
&nbsp; &nbsp;<span class="co1"># &nbsp;the watched directory</span><br />
&nbsp; &nbsp;<span class="co1">##############</span><br />
&nbsp; &nbsp;<span class="kw1">my</span> <span class="re0">$ext</span> = <span class="br0">&#40;</span> fileparse<span class="br0">&#40;</span><span class="re0">$name</span>, <span class="st0">&#8216;\..*&#8217;</span><span class="br0">&#41;</span> <span class="br0">&#41;</span><span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span>;</p>
<p>&nbsp; &nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://perldoc.perl.org/functions/lc.html"><span class="kw3">lc</span></a><span class="br0">&#40;</span><span class="re0">$ext</span><span class="br0">&#41;</span> eq <span class="st0">&#8216;.mp3&#8242;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="co1">##############</span><br />
&nbsp; &nbsp; <span class="co1"># Add the file to the file process queue</span><br />
&nbsp; &nbsp; <span class="co1">##############</span><br />
&nbsp; &nbsp; <a href="http://perldoc.perl.org/functions/push.html"><span class="kw3">push</span></a> @<span class="br0">&#123;</span> <span class="re0">$heap</span>-&gt;<span class="br0">&#123;</span>task<span class="br0">&#125;</span><span class="br0">&#123;</span>task_files<span class="br0">&#125;</span> <span class="br0">&#125;</span>, <span class="re0">$name</span>;</p>
<p>&nbsp; &nbsp; <span class="co1">##############</span><br />
&nbsp; &nbsp; <span class="co1"># Mark that we have processed the file. &nbsp;If</span><br />
&nbsp; &nbsp; <span class="co1"># &nbsp;we don&#8217;t we will end up processing the file</span><br />
&nbsp; &nbsp; <span class="co1"># &nbsp;in an infinite loop because we are modifying</span><br />
&nbsp; &nbsp; <span class="co1"># &nbsp;the files.</span><br />
&nbsp; &nbsp; <span class="co1">##############</span><br />
&nbsp; &nbsp; <span class="re0">$heap</span>-&gt;<span class="br0">&#123;</span>inotify<span class="br0">&#125;</span><span class="br0">&#123;</span>files<span class="br0">&#125;</span><span class="br0">&#123;</span><span class="re0">$name</span><span class="br0">&#125;</span> = <span class="nu0">1</span>;</p>
<p>&nbsp; &nbsp; <span class="co1">##############</span><br />
&nbsp; &nbsp; <span class="co1"># Yield to &quot;task_next_file&quot; through so</span><br />
&nbsp; &nbsp; <span class="co1"># &nbsp;that we can process files in the queue.</span><br />
&nbsp; &nbsp; <span class="co1">##############</span><br />
&nbsp; &nbsp; <span class="re0">$kernel</span>-&gt;<span class="me1">yield</span><span class="br0">&#40;</span><span class="st0">&quot;task_next_file&quot;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp;<span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp;<span class="re0">$heap</span>-&gt;<span class="br0">&#123;</span>inotify<span class="br0">&#125;</span><span class="br0">&#123;</span>files<span class="br0">&#125;</span><span class="br0">&#123;</span><span class="re0">$name</span><span class="br0">&#125;</span> = <span class="nu0">1</span>;<br />
&nbsp; <span class="br0">&#125;</span><br />
&nbsp;<span class="br0">&#125;</span></p>
<p>&nbsp;<span class="co1">##############</span><br />
&nbsp;<span class="co1"># While possible, it is highly unlikely that we will</span><br />
&nbsp;<span class="co1"># &nbsp;overflow the notification buffers within the Linux</span><br />
&nbsp;<span class="co1"># &nbsp;kernel. &nbsp;If so, we should report that.</span><br />
&nbsp;<span class="co1">##############</span><br />
&nbsp; <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;events for $name have been lost<span class="es0">\n</span>&quot;</span> <span class="kw1">if</span> <span class="re0">$event</span>-&gt;<span class="me1">IN_Q_OVERFLOW</span>;<br />
<span class="br0">&#125;</span></p>
<p><span class="kw2">sub</span> task_next_file <span class="br0">&#123;</span><br />
&nbsp;<span class="kw1">my</span> <span class="br0">&#40;</span><span class="re0">$kernel</span>, <span class="re0">$heap</span><span class="br0">&#41;</span> = <span class="re0">@_</span><span class="br0">&#91;</span> KERNEL, HEAP <span class="br0">&#93;</span>;</p>
<p>&nbsp;<span class="co1">##############</span><br />
&nbsp;<span class="co1"># Process the files in the queue up</span><br />
&nbsp;<span class="co1"># &nbsp;to the $max_concurrent_tasks at</span><br />
&nbsp;<span class="co1"># &nbsp;once. &nbsp;Any extras will be processed</span><br />
&nbsp;<span class="co1"># &nbsp;when a file (task) completes.</span><br />
&nbsp;<span class="co1">##############</span><br />
&nbsp;<span class="kw1">while</span> <span class="br0">&#40;</span> <a href="http://perldoc.perl.org/functions/keys.html"><span class="kw3">keys</span></a><span class="br0">&#40;</span> %<span class="br0">&#123;</span> <span class="re0">$heap</span>-&gt;<span class="br0">&#123;</span>task<span class="br0">&#125;</span> <span class="br0">&#125;</span> <span class="br0">&#41;</span> &lt; <span class="re0">$max_concurrent_tasks</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; <span class="kw1">my</span> <span class="re0">$next_task_file</span> = <a href="http://perldoc.perl.org/functions/shift.html"><span class="kw3">shift</span></a> @<span class="br0">&#123;</span> <span class="re0">$heap</span>-&gt;<span class="br0">&#123;</span>task<span class="br0">&#125;</span><span class="br0">&#123;</span>task_files<span class="br0">&#125;</span> <span class="br0">&#125;</span>;</p>
<p>&nbsp; <span class="co1">##############</span><br />
&nbsp; <span class="co1"># If the $next_task_file is empty, then we can safely</span><br />
&nbsp; <span class="co1"># &nbsp;ignore it.</span><br />
&nbsp; <span class="co1">##############</span><br />
&nbsp; <span class="kw1">last</span> <span class="kw1">unless</span> <a href="http://perldoc.perl.org/functions/defined.html"><span class="kw3">defined</span></a> <span class="re0">$next_task_file</span>;</p>
<p>&nbsp; <span class="co1">##############</span><br />
&nbsp; <span class="co1"># Use POE::Wheel::Run to fire off the</span><br />
&nbsp; <span class="co1"># &nbsp;file processing using a sub process</span><br />
&nbsp; <span class="co1"># &nbsp;to the process_file() subroutine</span><br />
&nbsp; <span class="co1">##############</span><br />
&nbsp; <span class="kw1">my</span> <span class="re0">$task</span> = POE::<span class="me2">Wheel</span>::<span class="me2">Run</span>-&gt;<span class="me1">new</span> <span class="br0">&#40;</span><br />
&nbsp; &nbsp; Program =&gt; <span class="kw2">sub</span> <span class="br0">&#123;</span> process_file<span class="br0">&#40;</span><span class="re0">$next_task_file</span><span class="br0">&#41;</span> <span class="br0">&#125;</span>,<br />
&nbsp; &nbsp; StdoutEvent =&gt; <span class="st0">&quot;task_output&quot;</span>,<br />
&nbsp; &nbsp; CloseEvent =&gt; <span class="st0">&quot;task_done&quot;</span>,<br />
&nbsp; &nbsp;<span class="br0">&#41;</span>;</p>
<p>&nbsp; <span class="co1">##############</span><br />
&nbsp; <span class="co1"># Update the session with the task</span><br />
&nbsp; <span class="co1"># &nbsp;information and the kernel with</span><br />
&nbsp; <span class="co1"># &nbsp;the SIG_CHILD handler. &nbsp;These are</span><br />
&nbsp; <span class="co1"># &nbsp;necessary for the task to execute.</span><br />
&nbsp; <span class="co1">##############</span><br />
&nbsp; <span class="re0">$heap</span>-&gt;<span class="br0">&#123;</span>task<span class="br0">&#125;</span>-&gt;<span class="br0">&#123;</span> <span class="re0">$task</span>-&gt;<span class="me1">ID</span> <span class="br0">&#125;</span> = <span class="re0">$task</span>;<br />
&nbsp; <span class="re0">$kernel</span>-&gt;<span class="me1">sig_child</span><span class="br0">&#40;</span> <span class="re0">$task</span>-&gt;<span class="me1">PID</span>, <span class="st0">&quot;sig_child&quot;</span><span class="br0">&#41;</span>;<br />
&nbsp;<span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="kw2">sub</span> process_file <span class="br0">&#123;</span><br />
&nbsp;<span class="kw1">my</span> <span class="re0">$file</span> = <a href="http://perldoc.perl.org/functions/shift.html"><span class="kw3">shift</span></a>;</p>
<p>&nbsp;<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot; &nbsp;Processed <span class="es0">\&quot;</span>$file<span class="es0">\&quot;</span><span class="es0">\n</span>&quot;</span>;</p>
<p>&nbsp;<span class="co1">##############</span><br />
&nbsp;<span class="co1"># Use the eyeD3 package to convert</span><br />
&nbsp;<span class="co1"># &nbsp;the mp3 id3v2/3/4 to id3v1. &nbsp;If</span><br />
&nbsp;<span class="co1"># &nbsp;eyeD3 fails, we don&#8217;t really care. <img src='http://froebe.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </span><br />
&nbsp;<span class="co1">##############</span><br />
&nbsp;<span class="kw1">my</span> <span class="re0">$cmd_output</span> = `eyeD3 &#8211;to-v1<span class="nu0">.1</span> <span class="st0">&quot;$file&quot;</span>`;<br />
&nbsp;<span class="re0">$cmd_output</span> = `eyeD3 &#8211;remove-v2 <span class="st0">&quot;$file&quot;</span>`;<br />
<span class="br0">&#125;</span></p>
<p><span class="kw2">sub</span> find_wanted <span class="br0">&#123;</span><br />
&nbsp;<span class="kw1">my</span> <span class="re0">$object</span> = <span class="re0">$File</span>::<span class="me2">Find</span>::<span class="me2">name</span>;</p>
<p>&nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span>-d <span class="re0">$object</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; <a href="http://perldoc.perl.org/functions/push.html"><span class="kw3">push</span></a> <span class="re0">@found_dirs</span>, <span class="re0">$object</span>;<br />
&nbsp;<span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="co1">#######################################</span><br />
<span class="co1">#######################################</span><br />
<span class="co1">#######################################</span></p>
<p><span class="kw1">my</span> <span class="re0">%arg_options</span>;<br />
<span class="kw1">my</span> <span class="re0">$watch_dir</span>;</p>
<p>getopts<span class="br0">&#40;</span><span class="st0">&#8216;d:t:&#8217;</span>, \<span class="re0">%arg_options</span><span class="br0">&#41;</span>;</p>
<p><span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$arg_options</span><span class="br0">&#123;</span>d<span class="br0">&#125;</span> &amp;&amp; -d <span class="re0">$arg_options</span><span class="br0">&#123;</span>d<span class="br0">&#125;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp;<span class="re0">$watch_dir</span> = <span class="re0">$arg_options</span><span class="br0">&#123;</span>d<span class="br0">&#125;</span>;</p>
<p>&nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$arg_options</span><span class="br0">&#123;</span>t<span class="br0">&#125;</span> &amp;&amp; <span class="re0">$arg_options</span><span class="br0">&#123;</span>t<span class="br0">&#125;</span> =~ /^\d+/<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; <span class="re0">$max_concurrent_tasks</span> = <span class="re0">$arg_options</span><span class="br0">&#123;</span>t<span class="br0">&#125;</span>;<br />
&nbsp;<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; <span class="re0">$max_concurrent_tasks</span> = <span class="nu0">2</span>;<br />
&nbsp;<span class="br0">&#125;</span></p>
<p>&nbsp;<span class="co1">##############</span><br />
&nbsp;<span class="co1"># We need to watch all existing sub directories</span><br />
&nbsp;<span class="co1"># &nbsp;so we will find them and add them to the</span><br />
&nbsp;<span class="co1"># &nbsp;@found_dirs array to be added to the watched</span><br />
&nbsp;<span class="co1"># &nbsp;directories when we create the Inotify object</span><br />
&nbsp;<span class="co1">##############</span><br />
&nbsp;File::<span class="me2">Find</span>::<span class="me2">find</span><span class="br0">&#40;</span><span class="br0">&#123;</span>wanted =&gt; \&amp;find_wanted<span class="br0">&#125;</span>, <span class="re0">$watch_dir</span><span class="br0">&#41;</span>;</p>
<p>&nbsp;POE::<span class="me2">Session</span>-&gt;<span class="me1">create</span><br />
&nbsp; <span class="br0">&#40;</span> inline_states =&gt;<br />
&nbsp; &nbsp;<span class="br0">&#123;</span> _start =&gt; <span class="kw2">sub</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp;<span class="kw1">my</span> <span class="re0">$inotify_FH</span>;</p>
<p>&nbsp; &nbsp; &nbsp;<span class="co1">##############</span><br />
&nbsp; &nbsp; &nbsp;<span class="co1"># alias this particular POE session to</span><br />
&nbsp; &nbsp; &nbsp;<span class="co1"># &nbsp;&#8217;notify&#8217; so we can easily reference</span><br />
&nbsp; &nbsp; &nbsp;<span class="co1"># &nbsp;it later if needed</span><br />
&nbsp; &nbsp; &nbsp;<span class="co1">##############</span><br />
&nbsp; &nbsp; &nbsp;<span class="re0">$_</span><span class="br0">&#91;</span>KERNEL<span class="br0">&#93;</span>-&gt;<span class="me1">alias_set</span><span class="br0">&#40;</span><span class="st0">&#8216;notify&#8217;</span><span class="br0">&#41;</span>;</p>
<p>&nbsp; &nbsp; &nbsp;<span class="co1">##############</span><br />
&nbsp; &nbsp; &nbsp;<span class="co1"># Create the Linux::INotify object</span><br />
&nbsp; &nbsp; &nbsp;<span class="co1">##############</span><br />
&nbsp; &nbsp; &nbsp;<span class="re0">$_</span><span class="br0">&#91;</span>HEAP<span class="br0">&#93;</span><span class="br0">&#123;</span>inotify<span class="br0">&#125;</span> = <span class="kw2">new</span> Linux::<span class="me2">Inotify2</span><br />
&nbsp; &nbsp; &nbsp; <span class="kw1">or</span> <a href="http://perldoc.perl.org/functions/die.html"><span class="kw3">die</span></a> <span class="st0">&quot;Unable to create new inotify object: $!&quot;</span>;</p>
<p>&nbsp; &nbsp; &nbsp;<span class="co1">##############</span><br />
&nbsp; &nbsp; &nbsp;<span class="co1"># Add the preexisting directories to</span><br />
&nbsp; &nbsp; &nbsp;<span class="co1"># &nbsp;be watched from the @found_dirs array</span><br />
&nbsp; &nbsp; &nbsp;<span class="co1">##############</span><br />
&nbsp; &nbsp; &nbsp;<span class="kw1">foreach</span> <span class="kw1">my</span> <span class="re0">$dir</span> <span class="br0">&#40;</span><span class="re0">@found_dirs</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; watch_add_dir<span class="br0">&#40;</span><span class="re0">$_</span><span class="br0">&#91;</span>HEAP<span class="br0">&#93;</span>, <span class="re0">$_</span><span class="br0">&#91;</span>SESSION<span class="br0">&#93;</span>, <span class="re0">$dir</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; &nbsp;<span class="co1">##############</span><br />
&nbsp; &nbsp; &nbsp;<span class="co1"># We need to create a hash in the &quot;notify&quot;</span><br />
&nbsp; &nbsp; &nbsp;<span class="co1"># &nbsp;POE session so we can determine if we&#8217;ve</span><br />
&nbsp; &nbsp; &nbsp;<span class="co1"># &nbsp;processed a file already</span><br />
&nbsp; &nbsp; &nbsp;<span class="co1">##############</span><br />
&nbsp; &nbsp; &nbsp;<span class="re0">$_</span><span class="br0">&#91;</span>HEAP<span class="br0">&#93;</span><span class="br0">&#123;</span>inotify<span class="br0">&#125;</span><span class="br0">&#123;</span>files<span class="br0">&#125;</span> = <span class="br0">&#123;</span><span class="br0">&#125;</span>;</p>
<p>&nbsp; &nbsp; &nbsp;<span class="co1">##############</span><br />
&nbsp; &nbsp; &nbsp;<span class="co1"># The Inotify notifications are received</span><br />
&nbsp; &nbsp; &nbsp;<span class="co1"># &nbsp;on a file descriptor. &nbsp;We need to read</span><br />
&nbsp; &nbsp; &nbsp;<span class="co1"># &nbsp;from it when there is something to be</span><br />
&nbsp; &nbsp; &nbsp;<span class="co1"># &nbsp;read</span><br />
&nbsp; &nbsp; &nbsp;<span class="co1">##############</span><br />
&nbsp; &nbsp; &nbsp;<a href="http://perldoc.perl.org/functions/open.html"><span class="kw3">open</span></a> <span class="re0">$inotify_FH</span>, <span class="st0">&quot;&lt; &amp;=&quot;</span> . <span class="re0">$_</span><span class="br0">&#91;</span>HEAP<span class="br0">&#93;</span><span class="br0">&#123;</span>inotify<span class="br0">&#125;</span>-&gt;<span class="me1">fileno</span><br />
&nbsp; &nbsp; &nbsp; <span class="kw1">or</span> <a href="http://perldoc.perl.org/functions/die.html"><span class="kw3">die</span></a> <span class="st0">&quot;Can’t fdopen: $!<span class="es0">\n</span>&quot;</span>;</p>
<p>&nbsp; &nbsp; &nbsp;<span class="co1">##############</span><br />
&nbsp; &nbsp; &nbsp;<span class="co1"># Inform POE to poll the file descriptor</span><br />
&nbsp; &nbsp; &nbsp;<span class="co1">##############</span><br />
&nbsp; &nbsp; &nbsp;<span class="re0">$_</span><span class="br0">&#91;</span>KERNEL<span class="br0">&#93;</span>-&gt;<span class="me1">select_read</span><span class="br0">&#40;</span> <span class="re0">$inotify_FH</span>, <span class="st0">&quot;inotify_poll&quot;</span> <span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; <span class="br0">&#125;</span>,<br />
&nbsp; &nbsp; inotify_poll =&gt; <span class="kw2">sub</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp;<span class="re0">$_</span><span class="br0">&#91;</span>HEAP<span class="br0">&#93;</span><span class="br0">&#123;</span>inotify<span class="br0">&#125;</span>-&gt;<span class="me1">poll</span>;<br />
&nbsp; &nbsp; <span class="br0">&#125;</span>,<br />
&nbsp; &nbsp; watch_hdlr =&gt; \&amp;watch_hdlr,</p>
<p>&nbsp; &nbsp; <span class="co1">##############</span><br />
&nbsp; &nbsp; <span class="co1"># Process the next file in the queue</span><br />
&nbsp; &nbsp; <span class="co1">##############</span><br />
&nbsp; &nbsp; task_next_file =&gt; \&amp;task_next_file,</p>
<p>&nbsp; &nbsp; <span class="co1">##############</span><br />
&nbsp; &nbsp; <span class="co1"># print the output of the job</span><br />
&nbsp; &nbsp; <span class="co1">##############</span><br />
&nbsp; &nbsp; task_output =&gt; <span class="kw2">sub</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp;<span class="kw1">my</span> <span class="re0">$result</span> = <span class="re0">$_</span><span class="br0">&#91;</span>ARG0<span class="br0">&#93;</span>;</p>
<p>&nbsp; &nbsp; &nbsp;<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;$result<span class="es0">\n</span>&quot;</span>;<br />
&nbsp; &nbsp; <span class="br0">&#125;</span>,</p>
<p>&nbsp; &nbsp; <span class="co1">##############</span><br />
&nbsp; &nbsp; <span class="co1"># When we are done with a file, go process the</span><br />
&nbsp; &nbsp; <span class="co1"># &nbsp;next file if there is one waiting</span><br />
&nbsp; &nbsp; <span class="co1">##############</span><br />
&nbsp; &nbsp; task_done =&gt; <span class="kw2">sub</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp;<span class="kw1">my</span> <span class="br0">&#40;</span><span class="re0">$kernel</span>, <span class="re0">$heap</span>, <span class="re0">$task_id</span><span class="br0">&#41;</span> = <span class="re0">@_</span><span class="br0">&#91;</span> KERNEL, HEAP, ARG0 <span class="br0">&#93;</span>;</p>
<p>&nbsp; &nbsp; &nbsp;<a href="http://perldoc.perl.org/functions/delete.html"><span class="kw3">delete</span></a> <span class="re0">$heap</span>-&gt;<span class="br0">&#123;</span>task<span class="br0">&#125;</span><span class="br0">&#123;</span><span class="re0">$task_id</span><span class="br0">&#125;</span>;<br />
&nbsp; &nbsp; &nbsp;<span class="re0">$kernel</span>-&gt;<span class="me1">yield</span><span class="br0">&#40;</span><span class="st0">&quot;task_next_file&quot;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; <span class="br0">&#125;</span>,<br />
&nbsp; &nbsp; sig_child =&gt; <span class="kw2">sub</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp;<span class="kw1">my</span> <span class="br0">&#40;</span><span class="re0">$heap</span>, <span class="re0">$pid</span><span class="br0">&#41;</span> = <span class="re0">@_</span><span class="br0">&#91;</span> HEAP, ARG1 <span class="br0">&#93;</span>;</p>
<p>&nbsp; &nbsp; &nbsp;<span class="kw1">my</span> <span class="re0">$details</span> = <a href="http://perldoc.perl.org/functions/delete.html"><span class="kw3">delete</span></a> <span class="re0">$heap</span>-&gt;<span class="br0">&#123;</span><span class="re0">$pid</span><span class="br0">&#125;</span>;<br />
&nbsp; &nbsp; <span class="br0">&#125;</span>,<br />
&nbsp; &nbsp;<span class="br0">&#125;</span>,<br />
&nbsp;<span class="br0">&#41;</span>;</p>
<p>&nbsp;POE::<span class="me2">Kernel</span>-&gt;<span class="me1">run</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span></p>
<p><a href="http://perldoc.perl.org/functions/exit.html"><span class="kw3">exit</span></a> <span class="nu0">0</span>;</div>
<p>Example output:</p>
<div class="dean_ch" style="white-space: wrap;">ps3_mp3_converter.pl -d /home/jfroebe/j<br />
&nbsp;Watching directory /home/jfroebe/j<br />
&nbsp;Watching directory /home/jfroebe/j/bin<br />
&nbsp;Watching directory /home/jfroebe/j/doc<br />
&nbsp;Watching directory /home/jfroebe/j/java<br />
&nbsp;Watching directory /home/jfroebe/j/lib<br />
&nbsp;Watching directory /home/jfroebe/j/j<br />
&nbsp;Watching directory /home/jfroebe/j/j/tmp<br />
&nbsp;Watching directory /home/jfroebe/j/sdk<br />
&nbsp;Watching directory /home/jfroebe/j/sdk/demo<br />
&nbsp;Watching directory /home/jfroebe/j/sdk/include<br />
New directory: /home/jfroebe/j/Earth Final Conflict Soundtrack<br />
&nbsp;Watching directory /home/jfroebe/j/Earth Final Conflict Soundtrack<br />
&nbsp; Processed <span class="st0">&quot;/home/jfroebe/j/Earth Final Conflict Soundtrack/01 Main Title.mp3&quot;</span><br />
&nbsp; Processed <span class="st0">&quot;/home/jfroebe/j/Earth Final Conflict Soundtrack/02 The Scret of Strandhill-Redemption.mp3&quot;</span><br />
&nbsp; Processed <span class="st0">&quot;/home/jfroebe/j/Earth Final Conflict Soundtrack/03 Old Flame.mp3&quot;</span><br />
&nbsp; Processed <span class="st0">&quot;/home/jfroebe/j/Earth Final Conflict Soundtrack/04 Defector.mp3&quot;</span><br />
&nbsp; Processed <span class="st0">&quot;/home/jfroebe/j/Earth Final Conflict Soundtrack/05 Decidion.mp3&quot;</span><br />
&nbsp; Processed <span class="st0">&quot;/home/jfroebe/j/Earth Final Conflict Soundtrack/06 Float Like a Butterfly.mp3&quot;</span><br />
&nbsp; Processed <span class="st0">&quot;/home/jfroebe/j/Earth Final Conflict Soundtrack/07 Sandoval&#8217;s Run.mp3&quot;</span><br />
&nbsp; Processed <span class="st0">&quot;/home/jfroebe/j/Earth Final Conflict Soundtrack/08 Bliss.mp3&quot;</span><br />
&nbsp; Processed <span class="st0">&quot;/home/jfroebe/j/Earth Final Conflict Soundtrack/09 If You Could Read My Mind.mp3&quot;</span><br />
&nbsp; Processed <span class="st0">&quot;/home/jfroebe/j/Earth Final Conflict Soundtrack/10 Lilli.mp3&quot;</span><br />
&nbsp; Processed <span class="st0">&quot;/home/jfroebe/j/Earth Final Conflict Soundtrack/11 Law and Order.mp3&quot;</span><br />
&nbsp; Processed <span class="st0">&quot;/home/jfroebe/j/Earth Final Conflict Soundtrack/12 Atavus.mp3&quot;</span><br />
&nbsp; Processed <span class="st0">&quot;/home/jfroebe/j/Earth Final Conflict Soundtrack/13 Between Heaven and Hell.mp3&quot;</span><br />
&nbsp; Processed <span class="st0">&quot;/home/jfroebe/j/Earth Final Conflict Soundtrack/14 Sleepers.mp3&quot;</span><br />
&nbsp; Processed <span class="st0">&quot;/home/jfroebe/j/Earth Final Conflict Soundtrack/15 Dimensions.mp3&quot;</span><br />
&nbsp; Processed <span class="st0">&quot;/home/jfroebe/j/Earth Final Conflict Soundtrack/16 Moonscape.mp3&quot;</span><br />
&nbsp; Processed <span class="st0">&quot;/home/jfroebe/j/Earth Final Conflict Soundtrack/17 Isabel.mp3&quot;</span><br />
&nbsp; Processed <span class="st0">&quot;/home/jfroebe/j/Earth Final Conflict Soundtrack/18 The Gauntlet.mp3&quot;</span><br />
&nbsp; Processed <span class="st0">&quot;/home/jfroebe/j/Earth Final Conflict Soundtrack/19 Second Chances.mp3&quot;</span><br />
&nbsp; Processed <span class="st0">&quot;/home/jfroebe/j/Earth Final Conflict Soundtrack/20 One Man&#8217;s Castle.mp3&quot;</span><br />
&nbsp; Processed <span class="st0">&quot;/home/jfroebe/j/Earth Final Conflict Soundtrack/21 Payback.mp3&quot;</span><br />
&nbsp; Processed <span class="st0">&quot;/home/jfroebe/j/Earth Final Conflict Soundtrack/22 Truth.mp3&quot;</span><br />
&nbsp; Processed <span class="st0">&quot;/home/jfroebe/j/Earth Final Conflict Soundtrack/23 Déjà Vu.mp3&quot;</span><br />
&nbsp; Processed <span class="st0">&quot;/home/jfroebe/j/Earth Final Conflict Soundtrack/24 Crossfire.mp3&quot;</span><br />
&nbsp; Processed <span class="st0">&quot;/home/jfroebe/j/Earth Final Conflict Soundtrack/25 Volunteers-End Credits.mp3&quot;</span></div>
]]></content:encoded>
			<wfw:commentRss>http://froebe.net/blog/2009/12/15/a-better-way-to-convert-your-mp3-tags-using-perl-poe-linuxinotify2-and-poewheelrun-for-you-sony-ps3-or-other-media-player/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
