<?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>karlherrick.com/dev</title>
	<atom:link href="http://karlherrick.com/dev/feed/" rel="self" type="application/rss+xml" />
	<link>http://karlherrick.com/dev</link>
	<description></description>
	<lastBuildDate>Sun, 29 Jan 2012 22:54:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Microsoft Visio in LibreOffice 3.5</title>
		<link>http://karlherrick.com/dev/2012/01/29/microsoft-visio-in-libreoffice-3-5/</link>
		<comments>http://karlherrick.com/dev/2012/01/29/microsoft-visio-in-libreoffice-3-5/#comments</comments>
		<pubDate>Sun, 29 Jan 2012 17:14:19 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[OpenOffice]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/?p=696</guid>
		<description><![CDATA[I like that LibreOffice seems to be experiencing rapid innovation and bloat removal since The Document Foundation was formed, and the software was forked from OpenOffice. While I won&#8217;t write at length about all the changes I&#8217;ve noticed, I did &#8230; <a href="http://karlherrick.com/dev/2012/01/29/microsoft-visio-in-libreoffice-3-5/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I like that <a href="http://www.libreoffice.org/">LibreOffice</a> seems to be experiencing rapid innovation and bloat removal since <a href="http://www.documentfoundation.org/">The Document Foundation</a> was formed, and the software was forked from <a href="http://www.openoffice.org/">OpenOffice</a>.</p>
<p>While I won&#8217;t write at length about all the changes I&#8217;ve noticed, I did want to show one of the new features coming to a stable release due soon.</p>
<p>The ability to open and display Visio files&#8230; more reading about it:</p>
<ul>
<li><a href="http://fridrich.blogspot.com/2011/11/it-has-been-long-time-since-i-last-time.html">LibreOffice Visio Import filter: the goodness soon on your desktop</a></li>
<li><a href="http://www.derivativezero.com/blog/category/libvisio/">libvisio | Derivative Zerio</a></li>
<li><a href="http://linuxkommando.com/2011/09/support-files-in-visio-libreoffice-a-success-story.html">Support files in Visio LibreOffice: a success story</a></li>
</ul>
<p><a href="http://karlherrick.com/dev/files/2012/01/lo35_full.png"><img class="alignnone size-medium wp-image-698" title="lo35_thumb" src="http://karlherrick.com/dev/files/2012/01/lo35_thumb-220x300.png" alt="" width="220" height="300" /></a> <a href="http://karlherrick.com/dev/files/2012/01/lo35_file_open_dialog.png"><img class="alignnone size-medium wp-image-698" title="lo35_file_open_dialog" src="http://karlherrick.com/dev/files/2012/01/lo35_file_open_dialog-189x300.png" alt="" width="189" height="300" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2012/01/29/microsoft-visio-in-libreoffice-3-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu 12.04 Alpha 1</title>
		<link>http://karlherrick.com/dev/2011/12/03/ubuntu-12-04-alpha-1/</link>
		<comments>http://karlherrick.com/dev/2011/12/03/ubuntu-12-04-alpha-1/#comments</comments>
		<pubDate>Sat, 03 Dec 2011 22:33:04 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/?p=639</guid>
		<description><![CDATA[Ubuntu 12.04 LTS Alpha 1 has been released. I enjoyed seeing the PPC builds being available. It makes me think some of the older Apple hardware lying around has some usefulness yet (with reliable, long term supported software that is). &#8230; <a href="http://karlherrick.com/dev/2011/12/03/ubuntu-12-04-alpha-1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.google.com/search?hl=en&amp;gl=us&amp;tbm=nws&amp;btnmeta_news_search=1&amp;q=ubuntu+12.04&amp;&amp;tbs=cdr:1%2Ccd_min%3A12%2F1%2F2011%2Ccd_max%3A12%2F31%2F2011">Ubuntu 12.04 LTS Alpha 1 has been released</a>. I enjoyed seeing the <a href="http://en.wikipedia.org/wiki/PowerPC">PPC</a> builds being available. It makes me think some of the older Apple hardware lying around has some usefulness yet (with reliable, long term supported software that is).</p>
<p>Download and test @: <a href="http://cdimage.ubuntu.com/daily-live/current/precise-desktop-i386.iso">http://cdimage.ubuntu.com/daily-live/current/precise-desktop-i386.iso</a></p>
<p><a href="http://cdimage.ubuntu.com/daily/current/"><img class="alignnone size-medium wp-image-645" title="ubuntu-download-screen-capture" src="http://karlherrick.com/dev/files/2011/12/ubuntu-download-screen-capture-300x103.png" alt="" width="300" height="103" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2011/12/03/ubuntu-12-04-alpha-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thunderbird Attachments Missing</title>
		<link>http://karlherrick.com/dev/2011/11/30/thunderbird-attachments-missing/</link>
		<comments>http://karlherrick.com/dev/2011/11/30/thunderbird-attachments-missing/#comments</comments>
		<pubDate>Wed, 30 Nov 2011 20:06:16 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/?p=630</guid>
		<description><![CDATA[I ran into an interesting issue today after a co-worker reported that he had been receiving emails from someone who claimed there were attachments, however they were not being displayed within the email. After viewing the message source and seeing &#8230; <a href="http://karlherrick.com/dev/2011/11/30/thunderbird-attachments-missing/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I ran into an interesting issue today after a co-worker reported that he had been receiving emails from someone who claimed there were attachments, however they were not being displayed within the email.</p>
<p>After <a href="http://email.about.com/od/mozillatips/qt/et043001.htm">viewing the message source</a> and seeing a base64 encoded block within the email, I wondered if it was Thunderbird doing something I didn&#8217;t expect. I checked it in <a href="http://roundcube.net">Roundcube</a> and other locations&#8230; worked fine elsewhere&#8230;</p>
<p>And then I downloaded: <a href="https://addons.mozilla.org/en-us/thunderbird/addon/show-all-body-parts/">Show All Body Parts</a>. Problem worked around for now. :-)</p>
<p><span id="more-630"></span></p>
<p>Here are some more links for further information:</p>
<ul>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=674473">https://bugzilla.mozilla.org/show_bug.cgi?id=674473</a></li>
<li><a href="http://forums.mozillazine.org/viewtopic.php?f=39&amp;t=2352869">http://forums.mozillazine.org/viewtopic.php?f=39&amp;t=2352869</a></li>
<li><a href="https://groups.google.com/forum/#!msg/mozilla.dev.apps.thunderbird/wTD8BL9sDS4/WNVzSyAnuMsJ">https://groups.google.com/forum/#!msg/mozilla.dev.apps.thunderbird/wTD8BL9sDS4/WNVzSyAnuMsJ</a></li>
<li><a href="http://kb.mozillazine.org/Thunderbird_6.0,_etc.#Images_and_related_content_in_HTML_messages">http://kb.mozillazine.org/Thunderbird_6.0,_etc.#Images_and_related_content_in_HTML_messages</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2011/11/30/thunderbird-attachments-missing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android on VirtualBox</title>
		<link>http://karlherrick.com/dev/2011/11/27/android-on-virtualbox/</link>
		<comments>http://karlherrick.com/dev/2011/11/27/android-on-virtualbox/#comments</comments>
		<pubDate>Sun, 27 Nov 2011 05:15:47 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/?p=612</guid>
		<description><![CDATA[This was fun. A bit of a test drive of Android-x86 3.2 using VirtualBox. I had a hard time getting the internet to work on it, just like I would have if I was at the store playing with it. &#8230; <a href="http://karlherrick.com/dev/2011/11/27/android-on-virtualbox/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This was fun. A bit of a test drive of Android-x86 3.2 using VirtualBox. I had a hard time getting the internet to work on it, just like I would have if I was at the store playing with it. :-)</p>
<p>There are how-tos at: <a href="http://www.android-x86.org/">http://www.android-x86.org/</a></p>
<p>
<a href='http://karlherrick.com/dev/2011/11/27/android-on-virtualbox/2011-11-26_android-x86_booting/' title='2011-11-26_android-x86_booting'><img width="150" height="150" src="http://karlherrick.com/dev/files/2011/11/2011-11-26_android-x86_booting-150x150.png" class="attachment-thumbnail" alt="2011-11-26_android-x86_booting" title="2011-11-26_android-x86_booting" /></a>
<a href='http://karlherrick.com/dev/2011/11/27/android-on-virtualbox/2011-11-26_android-x86_lock_screen/' title='2011-11-26_android-x86_lock_screen'><img width="150" height="150" src="http://karlherrick.com/dev/files/2011/11/2011-11-26_android-x86_lock_screen-150x150.png" class="attachment-thumbnail" alt="2011-11-26_android-x86_lock_screen" title="2011-11-26_android-x86_lock_screen" /></a>
<a href='http://karlherrick.com/dev/2011/11/27/android-on-virtualbox/2011-11-26_android-x86_page_001/' title='2011-11-26_android-x86_page_001'><img width="150" height="150" src="http://karlherrick.com/dev/files/2011/11/2011-11-26_android-x86_page_001-150x150.png" class="attachment-thumbnail" alt="2011-11-26_android-x86_page_001" title="2011-11-26_android-x86_page_001" /></a>
<a href='http://karlherrick.com/dev/2011/11/27/android-on-virtualbox/2011-11-26_android-x86_page_002/' title='2011-11-26_android-x86_page_002'><img width="150" height="150" src="http://karlherrick.com/dev/files/2011/11/2011-11-26_android-x86_page_002-150x150.png" class="attachment-thumbnail" alt="2011-11-26_android-x86_page_002" title="2011-11-26_android-x86_page_002" /></a>
<a href='http://karlherrick.com/dev/2011/11/27/android-on-virtualbox/2011-11-26_android-x86_page_003/' title='2011-11-26_android-x86_page_003'><img width="150" height="150" src="http://karlherrick.com/dev/files/2011/11/2011-11-26_android-x86_page_003-150x150.png" class="attachment-thumbnail" alt="2011-11-26_android-x86_page_003" title="2011-11-26_android-x86_page_003" /></a>
<a href='http://karlherrick.com/dev/2011/11/27/android-on-virtualbox/2011-11-26_android-x86_page_004/' title='2011-11-26_android-x86_page_004'><img width="150" height="150" src="http://karlherrick.com/dev/files/2011/11/2011-11-26_android-x86_page_004-150x150.png" class="attachment-thumbnail" alt="2011-11-26_android-x86_page_004" title="2011-11-26_android-x86_page_004" /></a>
<a href='http://karlherrick.com/dev/2011/11/27/android-on-virtualbox/2011-11-26_android-x86_calculator_app/' title='2011-11-26_android-x86_calculator_app'><img width="150" height="150" src="http://karlherrick.com/dev/files/2011/11/2011-11-26_android-x86_calculator_app-150x150.png" class="attachment-thumbnail" alt="2011-11-26_android-x86_calculator_app" title="2011-11-26_android-x86_calculator_app" /></a>
</p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2011/11/27/android-on-virtualbox/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Herrick Design</title>
		<link>http://karlherrick.com/dev/2011/11/19/herrick-design/</link>
		<comments>http://karlherrick.com/dev/2011/11/19/herrick-design/#comments</comments>
		<pubDate>Sat, 19 Nov 2011 15:41:47 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Culture]]></category>
		<category><![CDATA[Photography]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/?p=627</guid>
		<description><![CDATA[I finally got Denise to start working on Herrick Design. We&#8217;re enjoying playing with WordPress and sub-theming TwentyEleven.]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-thumbnail wp-image-3259" title="Wrench" src="http://karlherrick.com/wp-content/uploads/2011/11/wrench-150x150.jpg" alt="" width="150" height="150" /></p>
<p>I finally got Denise to start working on <a title="Herrick Design" href="http://herrickdesign.com/">Herrick Design</a>. We&#8217;re enjoying playing with <a title="WordPress" href="http://wordpress.org/">WordPress</a> and sub-theming <a title="TwentyEleven" href="http://wordpress.org/extend/themes/twentyeleven">TwentyEleven</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2011/11/19/herrick-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox Add-ons</title>
		<link>http://karlherrick.com/dev/2011/08/20/firefox-add-ons/</link>
		<comments>http://karlherrick.com/dev/2011/08/20/firefox-add-ons/#comments</comments>
		<pubDate>Sun, 21 Aug 2011 03:47:49 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[XUL]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/?p=540</guid>
		<description><![CDATA[Never has it been easier to create an add-on for Firefox than right now. Check out the Add-on Builder @ https://addons.mozilla.org/en-US/developers/tools/builder. Docs and more are available at the Developer Hub.]]></description>
			<content:encoded><![CDATA[<p>Never has it been easier to create an add-on for Firefox than right now. Check out the <a href="https://addons.mozilla.org/en-US/developers/tools/builder">Add-on Builder</a> @ <a href="https://addons.mozilla.org/en-US/developers/tools/builder">https://addons.mozilla.org/en-US/developers/tools/builder</a>.</p>
<p>Docs and more are available at the <a href="https://addons.mozilla.org/en-US/developers/">Developer Hub</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2011/08/20/firefox-add-ons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Changes to Exch</title>
		<link>http://karlherrick.com/dev/2011/08/08/changes-to-exch/</link>
		<comments>http://karlherrick.com/dev/2011/08/08/changes-to-exch/#comments</comments>
		<pubDate>Tue, 09 Aug 2011 02:31:12 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Exch]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[XUL]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/?p=495</guid>
		<description><![CDATA[While Exch still continues to function properly, during Mozilla&#8217;s review process for the latest update, it was stalled (for good reason). For any future versions to be approved, code changes will be required. The first issue has to do with &#8230; <a href="http://karlherrick.com/dev/2011/08/08/changes-to-exch/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>While Exch still continues to function properly, during Mozilla&#8217;s review process for the latest update, it was stalled (for good reason). For any future versions to be approved, code changes will be required.</p>
<p>The first issue has to do with <a href="http://blogger.ziesemer.com/2007/10/respecting-javascript-global-namespace.html">respecting the global JavasSript namespace</a> (which I didn&#8217;t when it was created, as was common practice at the time), and the other with features being deprecated (in favor of better approaches). From the email:</p>
<blockquote><p>This version didn&#8217;t pass full review because of the following issues:</p>
<ol>
<li>In order to prevent conflicts with other add-ons that may be installed by users, you need to wrap your &#8220;loose&#8221; variables and functions within a JavaScript object. You can see examples on how to do this at the <a href="https://developer.mozilla.org/en/XUL_School/JavaScript_Object_Management">JavaScript Object Management tutorial</a>.</li>
<li>The codebase_principal_support preference and enablePrivilege function are considered unsafe to use and support for them will be removed from Firefox very soon: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=546866">https://bugzilla.mozilla.org/show_bug.cgi?id=546866</a>.</li>
</ol>
</blockquote>
<p>Exch was and still is a pretty cool extension, but its task is better served via sites like <a href="http://finance.yahoo.com/">Yahoo! Finance</a>, <a href="http://www.google.com/finance">Google Finance</a>, or <a href="http://www.bing.com/finance">Bing Finance</a>. Plus, with all of the <a href="http://www.google.com/landing/searchtips/#currencyconversion">cool things you can do with Google Search</a> (<a href="http://karlherrick.com/dev/2006/06/26/currency-conversion/">as I have posted about before</a>), or Yahoo having a slick <a href="http://finance.yahoo.com/currency-converter/">currency conversion tool</a> on their site, I feel I have run out of reasons to maintain it.</p>
<p>With all of that said, here&#8217;s the latest update: <a href="http://karlherrick.com/dev/files/2011/08/exch-1.5.0-fx.xpi">exch-1.5.0-fx</a>. While it -should- work with Firefox 4 and 5, let&#8217;s call it &#8220;beta&#8221;. A beta perpetually stuck at version 1.5.0. ;-)</p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2011/08/08/changes-to-exch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Budget Wireless Distribution</title>
		<link>http://karlherrick.com/dev/2011/06/29/budget-wireless-distribution/</link>
		<comments>http://karlherrick.com/dev/2011/06/29/budget-wireless-distribution/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 00:23:50 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Wireless]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/?p=292</guid>
		<description><![CDATA[Working for a non-profit organization requires a special type of ingenuity at times. In this case it was due to the requirement of setting up easy to use systems that are sustainable, yet affordable. Below are some pictures that show &#8230; <a href="http://karlherrick.com/dev/2011/06/29/budget-wireless-distribution/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Working for a non-profit organization requires a special type of ingenuity at times. In this case it was due to the requirement of setting up easy to use systems that are sustainable, yet affordable. Below are some pictures that show a wireless distribution system that I helped setup that serves the needs of 10 families, 4 guest apartments, and 2 work shops.</p>
<p><a href="http://karlherrick.com/wp-content/blogs.dir/3/files/2011/03/budget-wireless.jpg"><img class="alignleft" style="margin: 5px 10px 5px 0px;" src="http://karlherrick.com/wp-content/blogs.dir/3/files/2011/03/budget-wireless-197x300.jpg" alt="" width="197" height="300" /></a> The Internet access is being provided via a business DSL modem in the lower level of the building with a red star on it. From there, a multi-purpose wireless router (<a href="http://www.asus.com/Networks/WiFi_Networking/RTN16/">RT-N16</a>) is configured with <a href="http://www.dd-wrt.com/">DD-WRT</a> and acts as the LAN&#8217;s gateway and firewall. Other common services it provides to the LAN include ones like local DNS, static DHCP, DynDNS client, SSH client/server, and OpenVPN client/server. It also has real time traffic monitoring, traffic graphs over time, QOS capabilities, and other exciting features. Nobody actually uses the wireless from the <a href="http://www.asus.com/Networks/WiFi_Networking/RTN16/">RT-N16</a> though, as it is being used only as a powerful, yet inexpensive wired appliance.</p>
<p>From there the only wired client connected is the main AP, a <a href="http://ubnt.com/bulletm">Bullet M2 HP</a>. This little piece of equipment is quite exciting. A tough 600 mW self contained outdoor router built on Linux. It has already survived through the year long seasonal variations and is rated to operate at temperatures between -40C to 80C. Along with a 9dBi outdoor omnidirectional antenna mounted to it, they provide over 600,000 square ft. of network coverage through trees, hills and buildings with users reliably connecting in their homes over 250 feet away (though with the right antenna and conditions, the <a href="http://ubnt.com/bulletm">Bullet M2 HP</a> is rated to perform at distances of over 50km away).</p>
<p><span id="more-292"></span></p>
<p>
<a href='http://karlherrick.com/dev/2011/06/29/budget-wireless-distribution/img_1480/' title='Bullet M2 HP mounted on roof as wireless AP with 9 dBi omnidirectional antenna. '><img width="150" height="150" src="http://karlherrick.com/dev/files/2011/01/IMG_1480-150x150.jpg" class="attachment-thumbnail" alt="Bullet M2 HP mounted on roof as wireless AP with 9 dBi omnidirectional antenna." title="Bullet M2 HP mounted on roof as wireless AP with 9 dBi omnidirectional antenna." /></a>
<a href='http://karlherrick.com/dev/2011/06/29/budget-wireless-distribution/img_1483/' title='The surroundings of the main wireless AP.'><img width="150" height="150" src="http://karlherrick.com/dev/files/2011/01/IMG_1483-150x150.jpg" class="attachment-thumbnail" alt="The surroundings of the main wireless AP." title="The surroundings of the main wireless AP." /></a>
<a href='http://karlherrick.com/dev/2011/06/29/budget-wireless-distribution/img_1492/' title='Bullet M2 HP as a wireless bridge with 14.2db unidirectional antenna.'><img width="150" height="150" src="http://karlherrick.com/dev/files/2011/01/IMG_1492-150x150.jpg" class="attachment-thumbnail" alt="Bullet M2 HP as a wireless bridge with 14.2db unidirectional antenna." title="Bullet M2 HP as a wireless bridge with 14.2db unidirectional antenna." /></a>
<a href='http://karlherrick.com/dev/2011/06/29/budget-wireless-distribution/img_1493/' title='Bullet M2 HP mounted on porch post as a wireless bridge with 14.2 dbi unidirectional antenna.'><img width="150" height="150" src="http://karlherrick.com/dev/files/2011/03/IMG_1493-150x150.jpg" class="attachment-thumbnail" alt="Bullet M2 HP mounted on porch post as a wireless bridge with 14.2 dbi unidirectional antenna." title="Bullet M2 HP mounted on porch post as a wireless bridge with 14.2 dbi unidirectional antenna." /></a>
<a href='http://karlherrick.com/dev/2011/06/29/budget-wireless-distribution/img_1485/' title='WRT54GL as wireless AP mounted on indoor panel with  single 9 dbi omnidirectional antenna.'><img width="150" height="150" src="http://karlherrick.com/dev/files/2011/01/IMG_1485-150x150.jpg" class="attachment-thumbnail" alt="WRT54GL as wireless AP mounted on indoor panel with  single 9 dbi omnidirectional antenna." title="WRT54GL as wireless AP mounted on indoor panel with  single 9 dbi omnidirectional antenna." /></a>
</p>
<p>The 35.5m and 75.7m links act as &#8220;wireless repeater bridges&#8221; (<a href="http://www.dd-wrt.com/wiki/index.php/Repeater_Bridge">http://www.dd-wrt.com/wiki/index.php/Repeater_Bridge</a>) while the 134.7m link doesn&#8217;t repeat any network traffic wirelessly. It acts as a wireless client bridge (<a href="http://www.dd-wrt.com/wiki/index.php/Client_Bridged">http://www.dd-wrt.com/wiki/index.php/Client_Bridged</a>). The 35.5m and 75.7m links use <a href="http://www.buffalotech.com/products/wireless/wireless-n-routers-access-points/airstation-high-power-n300-wireless-router-whr-hp-g300n/">Bufallo WHR-HP-G300N</a> routers (with <a href="http://www.dd-wrt.com/">DD-WRT</a> already installed at the time of purchase) and only required a few configuration changes to make them clients of the main SSID and re-broadcasters of another unique SSID (providing wireless to other clients). The 134.7m link on the other hand has a second <a href="http://ubnt.com/bulletm">Bullet M2 HP</a> as a client bridge. This brings the wireless to the most remote location in the setup, where clients then receive signal from a <a href="http://www.linksysbycisco.com/EU/en/products/WRT54GL">WRT-54GL</a> being utilized as an AP.</p>
<p>Can you spot the D-Link AP in the mix? Towards the end of the 75.7m link, people were unable to reliable reach the <a href="http://www.buffalotech.com/products/wireless/wireless-n-routers-access-points/airstation-high-power-n300-wireless-router-whr-hp-g300n/">Bufallo WHR-HP-G300N</a> signal (building materials) so one last inexpensive piece of equipment was thrown at the problem. Networks of this type are agile in nature. :-)</p>
<p>The setup was completed in the beginning of Q1 2011. Parts used were a variety of new and existing equipment with recent prices listed next to the items below:</p>
<ul style="font-size: 10px; margin-left: -5px;">
<li>(1) ASUS RT-N16 wireless router: <a href="http://www.amazon.com/ASUS-RT-N16-Wireless-N-Gigabit-Router/dp/B00387G6R8/ref=sr_1_1?ie=UTF8&amp;qid=1302916072&amp;sr=8-1">$87.99 @ Amazon</a></li>
<li>(2) Bullet M2 HP wireless routers: <a href="http://www.microcom.us/bm2hp.html">$79.95 @ Microcom</a></li>
<li>(2) Bufallo WHR-HP-G300N wireless routers: <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16833162033&amp;Tpk=WHR-HP-G300N">$49.99 each @ NewEgg</a></li>
<li>(1) D-Link DI-524 wireless router: <a href="http://www.amazon.com/D-Link-Wireless-Speed-Router-802-11g/dp/B0001PFQ08/ref=sr_1_1?s=electronics&amp;ie=UTF8&amp;qid=1302916705&amp;sr=1-1">$57.99 @ Amazon</a></li>
<li>(1) Linksys WRT54GL wireless router: <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16833124190&amp;cm_re=wrt54gl-_-33-124-190-_-Product">$56.99 @ NewEgg</a></li>
<li>(2) 2.4 GHz 9 dBi rubber duck antennas (RP-SMA): <a href="http://www.l-com.com/item.aspx?id=22067">$18.99 @ L-Com</a></li>
<li>(1) 2.4 GHz 9 dBi rubber duck antenna (RP-TNC): <a href="http://www.l-com.com/item.aspx?id=22068">$18.99 @ L-Com</a></li>
<li>(1) HG2409UDT-PRO 2.4 GHz 9 dBi omnidirectional antenna: <a href="http://www.l-com.com/item.aspx?id=22344">$71.99 @ L-Com</a></li>
<li>(1) SPFPG14 2.4GHz 14.2dBi HB directional antenna: <a href="http://www.superpassantenna.com/Antenna/2400-2482MHz/ProductSPFPG14.html">$35.00 @ SuperPass Antenna Shop</a></li>
<li>(5) shielded 8P8C (RJ45) plugs at around .90 cents each for approximately: <a href="http://www.anixter.com/">$5.00 @ Anixter</a></li>
<li>200 ft of CAT5E STP at around .25 cents a foot for approximately: <a href="http://www.anixter.com/">$50.00 @ Anixter</a></li>
<li>500 ft of CAT5E indoor cabling with connectors, crimp tool and tester: <a href="http://www.tigerdirect.com/applications/SearchTools/item-details.asp?EdpNo=361965&amp;Sku=C184-28428">$84.99 @ TigerDirect</a></li>
<li>100 ft of heavy gauge wire at almost $1.00 a foot at a local shop for close to: $100</li>
</ul>
<p>Total after shipping, taxes and a variety of screws and fasteners: around $900 &#8211; $1000 USD.</p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2011/06/29/budget-wireless-distribution/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Writing a wordpress plugin</title>
		<link>http://karlherrick.com/dev/2011/04/12/writing-a-wordpress-plugin/</link>
		<comments>http://karlherrick.com/dev/2011/04/12/writing-a-wordpress-plugin/#comments</comments>
		<pubDate>Wed, 13 Apr 2011 02:57:55 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/?p=341</guid>
		<description><![CDATA[Stop custom editing core WordPress files&#8230; It&#8217;s all here: http://codex.wordpress.org/Writing_a_Plugin. It only seems like a small mountain the first time through. ;-)]]></description>
			<content:encoded><![CDATA[<p>Stop custom editing core WordPress files&#8230; It&#8217;s all here: <a title="Writing a Plugin" href="http://codex.wordpress.org/Writing_a_Plugin">http://codex.wordpress.org/Writing_a_Plugin</a>. It only seems like a small mountain the first time through. ;-)</p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2011/04/12/writing-a-wordpress-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Slashdot Redesign</title>
		<link>http://karlherrick.com/dev/2011/01/25/slashdot-redesign/</link>
		<comments>http://karlherrick.com/dev/2011/01/25/slashdot-redesign/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 02:55:01 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Culture]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/?p=283</guid>
		<description><![CDATA[Wow, I am surprised that after all this time Slashdot changed its look [slashdot.org]:]]></description>
			<content:encoded><![CDATA[<p>Wow, I am surprised that after all this time <a href="http://slashdot.org/">Slashdot</a> <a href="http://meta.slashdot.org/story/11/01/25/163257/Slashdot-Launches-Re-Design">changed its look</a> [slashdot.org]:</p>
<p><a href="http://karlherrick.com/dev/wp-content/uploads/2011/01/Slashdot_News_for_nerds_stuff-_that_matters_redesigned.png"><img src="http://karlherrick.com/dev/wp-content/uploads/2011/01/Slashdot_News_for_nerds_stuff-_that_matters_redesigned-300x190.png" alt="" width="300" height="190" class="aligncenter size-medium wp-image-284" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2011/01/25/slashdot-redesign/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LibreOffice 3.3 Released</title>
		<link>http://karlherrick.com/dev/2011/01/25/libreoffice-3-3-released/</link>
		<comments>http://karlherrick.com/dev/2011/01/25/libreoffice-3-3-released/#comments</comments>
		<pubDate>Tue, 25 Jan 2011 17:48:16 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[OpenOffice]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/?p=273</guid>
		<description><![CDATA[The fork of OpenOffice (LibreOffice) has been released in stable form and is ready for download. Some of the more exciting new features are listed below as seen on the &#8220;Featured Selection&#8221; portion from the New Features page on the &#8230; <a href="http://karlherrick.com/dev/2011/01/25/libreoffice-3-3-released/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://karlherrick.com/dev/wp-content/uploads/2011/01/libreoffice-startup-e1295977623270.jpg"><img style="border: 0px" src="http://karlherrick.com/dev/wp-content/uploads/2011/01/libreoffice-startup-e1295977623270.jpg" alt="" width="480" height="326" class="alignnone size-full wp-image-275" /></a></p>
<p>The <a href="http://en.wikipedia.org/wiki/Fork_%28software_development%29">fork</a> of OpenOffice (<a href="http://www.libreoffice.org/">LibreOffice</a>) has been released in stable form and is ready for <a href="http://www.libreoffice.org/download/">download</a>. Some of the more exciting new features are listed below as seen on the &#8220;Featured Selection&#8221; portion from the <a href="http://www.libreoffice.org/download/new-features-and-fixes/">New Features</a> page on the <a href="http://www.libreoffice.org/">LibreOffice</a> site :</p>
<ul>
<li>Import SVG pictures into Draw and edit them interactively</li>
<li>New easy-to-use dialog box for title pages</li>
<li>Navigator lets you unfold one heading as usual in a tree view</li>
<li>Easy-to-find &#8220;new sheet&#8221; tab button (colorable tabs)</li>
<li>MS Works import filter</li>
<li>Lotus Word Pro import filter</li>
<li>Useful bundled extensions, such as Presenter View in Impress</li>
<li>1 million rows in a spreadsheet in Calc</li>
<li>Improved slide layout handling in Impress</li>
<li>Much improved wordperfect import</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2011/01/25/libreoffice-3-3-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Saying Goodbye</title>
		<link>http://karlherrick.com/dev/2010/12/28/262/</link>
		<comments>http://karlherrick.com/dev/2010/12/28/262/#comments</comments>
		<pubDate>Tue, 28 Dec 2010 15:09:35 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Culture]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2011/01/25/262/</guid>
		<description><![CDATA[Transition is always interesting&#8230; I really like this office too. A little cold in the winter though. Come February, I see less windows in my future (the kind you look out of). ;-)]]></description>
			<content:encoded><![CDATA[<p>Transition is always interesting&#8230; I really like this office too. A little cold in the winter though. Come February, I see less windows in my future (the kind you look out of). ;-)</p>
<p><a href="http://karlherrick.com/dev/wp-content/uploads/2010/12/20101228-120915.jpg"><img src="http://karlherrick.com/dev/wp-content/uploads/2010/12/20101228-120915.jpg" alt="" class="alignnone size-full" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2010/12/28/262/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Roomba on the prowl</title>
		<link>http://karlherrick.com/dev/2010/11/10/roomba-on-the-prowl/</link>
		<comments>http://karlherrick.com/dev/2010/11/10/roomba-on-the-prowl/#comments</comments>
		<pubDate>Thu, 11 Nov 2010 02:10:09 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Culture]]></category>
		<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2010/11/10/roomba-on-the-prowl/</guid>
		<description><![CDATA[I find myself in a completely tiled apartment while also having acquired a Roomba 4210. No more constant dirt and pet hair&#8230; Though, if I were the iRobot developers, I would quickly add the following features to the low end &#8230; <a href="http://karlherrick.com/dev/2010/11/10/roomba-on-the-prowl/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I find myself in a completely tiled apartment while also having acquired a Roomba 4210. No more constant dirt and pet hair&#8230; Though, if I were the iRobot developers, I would quickly add the following features to the low end Roomba&#8230;</p>
<ul>
<li>RF remote, instead of the IR remote.</li>
<li>Find the dock without fail (use RF, signal strength, and other associated homing technologies).</li>
<li>A camera, why can&#8217;t I see what Roomba sees?</li>
<li>Remote control via mobile (especially WIFI, see: <a href="http://ardrone.parrot.com/parrot-ar-drone/usa/how-does-it-work">AR Drone</a>).</li>
<li>I know the upper models have schedules, but why not the lower end&#8230; how about every day at 3am?</li>
<li>I&#8217;m sure newer models don&#8217;t have as many problems, but come on&#8230; the lower end shouldn&#8217;t get stuck so often on raised areas, underneath desks and dressers, and refuse to start on black carpets&#8230;</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2010/11/10/roomba-on-the-prowl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mobile WebApp Frameworks</title>
		<link>http://karlherrick.com/dev/2010/07/29/mobile-webapp-frameworks/</link>
		<comments>http://karlherrick.com/dev/2010/07/29/mobile-webapp-frameworks/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 13:37:31 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2010/07/29/mobile-webapp-frameworks/</guid>
		<description><![CDATA[So I went digging for mobile webapp frameworks, and I found a nice list to investigate at a later time. While I have used iUI in the past, and it worked well for my purposes&#8230; I have read a few &#8230; <a href="http://karlherrick.com/dev/2010/07/29/mobile-webapp-frameworks/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So I went digging for mobile webapp frameworks, and I found a nice list to investigate at a later time. While I have used <a href="http://pre.google.com/p/iui/">iUI</a> <a href="http://karlherrick.com/dev/2008/12/08/iui-and-the-iphone/">in the past</a>, and it worked well for my purposes&#8230; I have <a href="http://www.clientcide.com/cnet-js-standards/ciui-cnet-iphone-ui/">read a few reasons why you may consider others</a> (<a href="http://pre.google.com/p/ciui-dev/">CiUI</a>). Also, I seem to think that there would be some obvious advantages (and disadvantages) to using a cross-platform mobile webapp framework like <a href="http://www.phonegap.com/">PhoneGap</a> and others.</p>
<p>Here the list I came up with:</p>
<div style="float: left;width: 50%">
<ul>
<li><a href="http://pre.google.com/p/iui/">iUI</a></li>
<li><a href="http://pre.google.com/p/ciui-dev/">CiUI</a></li>
<li><a href="http://www.phonegap.com/">PhoneGap</a></li>
<li><a href="http://webapp-net.com/">WebApp.Net</a></li>
<li><a href="http://pre.google.com/p/iphone-universal/">UiUIKit</a></li>
<li><a href="http://xuijs.com/">XUI</a></li>
<li><a href="http://www.jeffmcfadden.com/projects/Magic%20Framework">Magic</a></li>
<li><a href="http://www.sencha.com/products/touch/">Sencha Touch</a></li>
</ul>
</div>
<div style="float: left;width: 50%">
<ul>
<li><a href="http://iwebkit.net/">iWebkit</a></li>
<li><a href="http://www.journyx.com/jpint/">jPint</a></li>
<li><a href="http://www.jqtouch.com/">jQTouch</a></li>
<li><a href="http://rhomobile.com/">Rhodes</a></li>
<li><a href="http://www.appcelerator.com/">Titanium</a></li>
<li><a href="http://dailyjs.com/2010/03/24/mootouch/">MooTouch</a></li>
<li><a href="http://quickconnect.sourceforge.net/browser/index.html">QuickConnect</a></li>
</ul>
</div>
<div style="clear: both;padding: 10px 0 10px 0">I also wonder about any IDE&#8217;s out there, like <a href="http://developer.apple.com/mac/library/documentation/AppleApplications/Conceptual/Dashcode_UserGuide/Contents/Resources/en.lproj/MakingaWebApp/MakingaWebApp.html#//apple_ref/doc/uid/TP40004692-CH18-SW1">Dashcode</a> from Apple.</div>
<p><strong>Update (2010-08-13)</strong>. I just found this article: <a href="http://jquerymobile.com/2010/08/announcing-the-jquery-mobile-project/">Announcing the jQuery Mobile Project</a></p>
<p>Once they get up and running, I imagine it will be a serious contender with the others.</p>
<p><strong>Update (2010-08-18)</strong>. Here&#8217;s an article from Mashable about some of the frameworks and libraries talked about above (and others): <a href="http://mashable.com/2010/08/18/mobile-web-app-frameworks/">HOW TO: Make Your Mobile Websites Act More Like Native Apps</a></p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2010/07/29/mobile-webapp-frameworks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gnome background changer</title>
		<link>http://karlherrick.com/dev/2010/06/16/gnome-background-changer/</link>
		<comments>http://karlherrick.com/dev/2010/06/16/gnome-background-changer/#comments</comments>
		<pubDate>Wed, 16 Jun 2010 18:03:43 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[Cron]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2010/06/16/gnome-background-changer/</guid>
		<description><![CDATA[Gnome 2.3 on Ubuntu 10.04 LTS (Lucid Lynx) doesn&#8217;t appear to have an automatic wallpaper changer built in. While it appears there are many ways to accomplish this, I decided to write my own little script to get some time &#8230; <a href="http://karlherrick.com/dev/2010/06/16/gnome-background-changer/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Gnome 2.3 on Ubuntu 10.04 LTS (Lucid Lynx) doesn&#8217;t appear to have an automatic wallpaper changer built in. While it appears there are many ways to accomplish this, I decided to write my own little script to get some time in with bash&#8230; alternative ways I have found include using &#8220;Wallpaper-tray&#8221; (which doesn&#8217;t appear to be in 10.04), <a href="http://www.ghacks.net/2010/05/09/desktop-drapes-for-gnome/">Desktop Drapes</a>, or a <a href="http://ubuntuforums.org/showthread.php?t=49336#post257231">variation of the script below </a>using things like &#8220;<a href="http://ubuntu-tutorials.com/2008/01/10/gconftool-2-gconf-editor-from-the-shell/">gconftool-2</a>&#8220;.</p>
<p>To use this script, do the following:</p>
<ul>
<li>Right-click on the desktop and choose &#8220;<em>Change Desktop Background</em>&#8220;</li>
<li>Look through the backgrounds, and make sure the ones listed are the ones you want to have the script randomly select</li>
<li>Open up a text file using &#8220;<em>gedit</em>&#8220;, and add the contents of the script:


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="co0">#!/bin/bash</span>
<span class="re2">installedDir</span>=~<span class="sy0">/</span>Pictures<span class="sy0">/</span>backgrounds<span class="sy0">/</span>random
<span class="re2">i</span>=<span class="nu0">0</span>
<span class="kw1">while</span> <span class="kw2">read</span> line; <span class="kw1">do</span>
   <span class="re2">data</span>=<span class="sy0">`</span><span class="kw3">echo</span> <span class="st0">&quot;<span class="es3">${line}</span>&quot;</span> <span class="sy0">|</span> <span class="kw2">grep</span> <span class="re5">-i</span> filename<span class="sy0">`</span>
   <span class="kw1">if</span> <span class="br0">&#91;</span> <span class="st0">&quot;<span class="es2">$data</span>&quot;</span> <span class="sy0">!</span>= <span class="st0">&quot;&quot;</span> <span class="br0">&#93;</span>; <span class="kw1">then</span>
      <span class="re2">filenameCutLength</span>=$<span class="br0">&#40;</span><span class="br0">&#40;</span><span class="co1">${#data}</span>-<span class="nu0">11</span><span class="br0">&#41;</span><span class="br0">&#41;</span>
      <span class="re2">filename</span>=$<span class="br0">&#40;</span><span class="kw3">echo</span> <span class="re1">$data</span> <span class="sy0">|</span> <span class="kw2">cut</span> -b11-<span class="re1">$filenameCutLength</span><span class="br0">&#41;</span>
      <span class="kw1">if</span> <span class="br0">&#91;</span> <span class="st0">&quot;<span class="es2">$filename</span>&quot;</span> <span class="sy0">!</span>= <span class="st0">&quot;(none)&quot;</span> <span class="br0">&#93;</span> <span class="sy0">||</span> <span class="br0">&#91;</span> <span class="st0">&quot;<span class="es2">$filename</span>&quot;</span> <span class="sy0">!</span>= 
      <span class="st0">&quot;random.img&quot;</span> <span class="br0">&#93;</span>; <span class="kw1">then</span>
         <span class="re2">extension</span>=$<span class="br0">&#40;</span><span class="kw3">echo</span> <span class="co1">${filename,,}</span> <span class="sy0">|</span> 
         <span class="kw2">cut</span> -b$<span class="br0">&#40;</span><span class="kw2">expr</span> <span class="co1">${#filename}</span> - <span class="nu0">2</span><span class="br0">&#41;</span>-<span class="co1">${#filename}</span><span class="br0">&#41;</span>
         <span class="kw1">if</span> <span class="br0">&#91;</span> <span class="st0">&quot;<span class="es2">$extension</span>&quot;</span> == <span class="st0">&quot;jpg&quot;</span> <span class="br0">&#93;</span> <span class="sy0">||</span> <span class="br0">&#91;</span> <span class="st0">&quot;<span class="es2">$extension</span>&quot;</span> 
         == <span class="st0">&quot;png&quot;</span> <span class="br0">&#93;</span> <span class="sy0">||</span> <span class="br0">&#91;</span> <span class="st0">&quot;<span class="es2">$extension</span>&quot;</span> == <span class="st0">&quot;svg&quot;</span> <span class="br0">&#93;</span>; <span class="kw1">then</span>
            fileArray<span class="br0">&#91;</span><span class="re1">$i</span><span class="br0">&#93;</span>=$<span class="br0">&#40;</span><span class="kw3">echo</span> <span class="re1">$filename</span><span class="br0">&#41;</span>
            <span class="re2">i</span>=$<span class="br0">&#40;</span><span class="kw2">expr</span> <span class="re1">$i</span> + <span class="nu0">1</span><span class="br0">&#41;</span>
         <span class="kw1">fi</span>
      <span class="kw1">fi</span>
   <span class="kw1">fi</span>
<span class="kw1">done</span> <span class="sy0">&amp;</span>lt;<span class="sy0">&amp;</span>lt; EOF
   $<span class="br0">&#40;</span><span class="kw2">grep</span> <span class="re2">deleted</span>=<span class="st0">&quot;false -A7 ~/.gnome2/backgrounds.xml)
EOF
fileArrayLength=<span class="es5">`echo $[ ( $RANDOM % ${#fileArray[@]} ) ]`</span>
cp &quot;</span><span class="co1">${fileArray[$fileArrayLength]}</span><span class="st0">&quot;
&quot;</span><span class="re1">$installedDir</span><span class="sy0">/</span>random.img<span class="st0">&quot;</span></pre></div></div></div></div></div></div></div>


</li>
<li>Save the file as &#8220;<em>gRandomBackground.sh</em>&#8221; in a directory (this example uses: &#8220;/home/$USER/Pictures/backgrounds/random&#8221;, if you install it elsewhere, be sure to change the $installedDir variable in the script)</li>
<li>Open &#8220;Terminal&#8221; and enter the command: <code>crontab -e</code> If you haven&#8217;t used crontab before, stick with the default, &#8220;<em>nano</em>&#8220;</li>
<li>Paste the following as one line into the editor: <code>0 */3 * * * bash ~/Pictures/backgrounds/random/gRandomBackground.sh</code> This will change the background every three hours, on the hour. &#8220;Ctrl+O, and then Ctrl+W&#8221; should get the crontab saved and also get you exited out of nano. For more information on how to use cron, <a href="http://www.google.com/search?q=crontab">see Google</a>.</li>
<li>Open up the &#8220;<em>Appearance Preferences</em>&#8221; dialog again, by right-clicking on the desktop and selecting &#8220;<em>Change Desktop Background</em>&#8220;</li>
<li>Click the &#8220;<em>Add&#8230;</em>&#8221; button and browse to the directory that gRandomBackground.sh is installed to</li>
<li>Select the &#8220;<em>random.img</em>&#8221; background, click the &#8220;<em>Open</em>&#8221; button, and then the &#8220;<em>Close</em>&#8221; button</li>
</ul>
<p>Your background should change every three hours.</p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2010/06/16/gnome-background-changer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>McAfee deleted svchost.exe</title>
		<link>http://karlherrick.com/dev/2010/04/22/mcafee-deleted-svchostexe/</link>
		<comments>http://karlherrick.com/dev/2010/04/22/mcafee-deleted-svchostexe/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 12:26:20 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2010/04/22/mcafee-deleted-svchostexe/</guid>
		<description><![CDATA[Wednesday afternoon I had at least two reports of workstations that were suddenly rebooting on their own. No networking and no taskbar were also symptoms. I thought it may be a virus, so I did a few scans with some &#8230; <a href="http://karlherrick.com/dev/2010/04/22/mcafee-deleted-svchostexe/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Wednesday afternoon I had at least two reports of workstations that were suddenly rebooting on their own. No networking and no taskbar were also symptoms. I thought it may be a virus, so I did a few scans with some of the well known Windows malware scanning tools, all the while thinking&#8230; why didn&#8217;t McAfee catch this? After two hours of scanning and no positives on the scans, I decided to rebuild the machine, but declared that I would begin on it the next day.</p>
<p>Well&#8230; turns out, McAfee was the issue. I got an email from them that read in part like this: &#8220;Our initial investigation indicates that the error can result in moderate to significant performance issues on systems running Windows XP Service Pack 3.&#8221; Moderate to significant? One person affected couldn&#8217;t get on the network, had no taskbar, and their computer was auto rebooting&#8230; That sounds more like extreme systemic failure! :-)</p>
<p>For verification of the issue, see the following screenshot:</p>
<p><img src='http://karlherrick.com/dev/wp-content/uploads/2010/04/zero_byte_svchost.jpg' alt='zero_byte_svchost.jpg' /></p>
<p>Here are some steps I took to fix it (taken mostly from the following website: <a href="http://brianseekford.com/index.php/2010/04/21/how-to-fix-the-mcafee-svchost-crash-from-the-virus-definition-update/">http://brianseekford.com/index.php/2010/04/21/how-to-fix-the-mcafee-svchost-crash-from-the-virus-definition-update/</a>)</p>
<ul>
<li>Boot workstation in safe mode and login as an administrative user</li>
<li>Press the following keys: CTRL-ALT-DEL.</li>
<li>Click the &#8220;File&gt;Run&#8221; menu item, type in &#8220;cmd&#8221;, and press the &#8220;Enter&#8221; key</li>
<li>Run the command: del &#8220;C:Program FilesCommon FilesMcAfeeEngineavvscan.dat&#8221;</li>
<li>Next, we have to copy a replacement svchost.exe from the system if available. Some have found it in &#8220;c:windowssystem32dllcache&#8221; and I found it in &#8220;C:Windows$NtServicePackUninstall$&#8221; so I will go with the instructions for what I had on this particular system&#8230;</li>
<ul>
<li>within the &#8220;cmd&#8221; window type the following below:</li>
<li>cd C:Windows$NtServicePackUninstall$&#8221;</li>
<li>copy svchost.exe c:WindowsSystem32</li>
</ul>
<li>Next, restart the workstation, login, and update McAfee to the latest dat file. As of this writing they have replaced the broken 5958 dat with 5959.</li>
<li>Once McAfee has been updated, I had to restarted the workstation again to get McAfee to report as being updated.</li>
</ul>
<p>And more reading regarding the issue:</p>
<p><a href="http://www.cnet.com.au/how-to-fix-your-mcafee-crippled-computer-339302608.htm">http://www.cnet.com.au/how-to-fix-your-mcafee-crippled-computer-339302608.htm</a></p>
<p><a href="http://www.switched.com/2010/04/21/mcafee-update-sends-windows-xp-machines-into-endless-reboot/">http://www.switched.com/2010/04/21/mcafee-update-sends-windows-xp-machines-into-endless-reboot/</a></p>
<p><a href="http://tech.slashdot.org/story/10/04/21/1735211/McAfee-Kills-SVCHostexe-Sets-Off-Reboot-Loops-For-Win-XP-Win-2000">http://tech.slashdot.org/story/10/04/21/1735211/McAfee-Kills-SVCHostexe-Sets-Off-Reboot-Loops-For-Win-XP-Win-2000</a></p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2010/04/22/mcafee-deleted-svchostexe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Screensavers in Ubuntu 9.x</title>
		<link>http://karlherrick.com/dev/2010/03/12/screensavers-in-ubuntu-910/</link>
		<comments>http://karlherrick.com/dev/2010/03/12/screensavers-in-ubuntu-910/#comments</comments>
		<pubDate>Sat, 13 Mar 2010 00:17:33 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2010/03/12/screensavers-in-ubuntu-910/</guid>
		<description><![CDATA[I used to do some incredible tweaking for my screensaver in Ubuntu, especially because gnome-screensaver wouldn&#8217;t allow for editing the particular screensaver options like xscreensaver would (see: https://wiki.ubuntu.com/ScreenSaver). These days, I don&#8217;t want to tweak&#8230; I just want the thing &#8230; <a href="http://karlherrick.com/dev/2010/03/12/screensavers-in-ubuntu-910/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I used to do some incredible tweaking for my screensaver in Ubuntu, especially because gnome-screensaver wouldn&#8217;t allow for editing the particular screensaver options like xscreensaver would (see: <a href="https://wiki.ubuntu.com/ScreenSaver">https://wiki.ubuntu.com/ScreenSaver</a>). These days, I don&#8217;t want to tweak&#8230; I just want the thing to shut off when I am watching fullscreen flash video, so that I don&#8217;t have to wiggle the mouse every ten minutes. :-)</p>
<p>So I made a simple toggle script and created a launcher for the script on the desktop. Gonna watch video? Double-click the icon. Done watching video, double-click the icon.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="co0">#!/bin/bash</span>
<span class="re2">PID</span>=<span class="sy0">`</span><span class="kw2">pidof</span> gnome-screensaver<span class="sy0">`</span>
&nbsp;
<span class="kw1">if</span> <span class="br0">&#91;</span> <span class="st0">&quot;<span class="es2">$PID</span>&quot;</span> <span class="sy0">!</span>= <span class="st0">&quot;&quot;</span> <span class="br0">&#93;</span>; <span class="kw1">then</span>
	<span class="co0">#gnome-screensaver is running shut it down</span>
	<span class="kw2">killall</span> <span class="re5">-9</span> gnome-screensaver
<span class="kw1">else</span>
	<span class="co0">#gnome-screensaver is not running, start it up</span>
	gnome-screensaver
<span class="kw1">fi</span></pre></div></div></div></div></div></div></div>


]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2010/03/12/screensavers-in-ubuntu-910/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Post via script</title>
		<link>http://karlherrick.com/dev/2010/03/11/post-via-script/</link>
		<comments>http://karlherrick.com/dev/2010/03/11/post-via-script/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 02:47:25 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2010/03/11/post-via-script/</guid>
		<description><![CDATA[I just whipped up some PHP and threw it in the root of a brand new WordPress 2.9.2 install: Voila. The post appeared when navigating to the .php file. See: http://prex.wordpress.org/Function_Reference/wp_insert_post. For more creativity, get into the database: http://prex.wordpress.org/Function_Reference/wpdb_Class]]></description>
			<content:encoded><![CDATA[<p>I just whipped up some PHP and threw it in the root of a brand new WordPress 2.9.2 install:</p>
<pre>
</pre>
<p>Voila. The post appeared when navigating to the .php file.</p>
<p>See: <a href="http://prex.wordpress.org/Function_Reference/wp_insert_post">http://prex.wordpress.org/Function_Reference/wp_insert_post</a>.</p>
<p>For more creativity, get into the database: <a href="http://prex.wordpress.org/Function_Reference/wpdb_Class">http://prex.wordpress.org/Function_Reference/wpdb_Class</a></p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2010/03/11/post-via-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Buzz</title>
		<link>http://karlherrick.com/dev/2010/02/10/google-buzz/</link>
		<comments>http://karlherrick.com/dev/2010/02/10/google-buzz/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 02:20:14 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Culture]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2010/02/10/google-buzz/</guid>
		<description><![CDATA[I heard about Google Buzz on CBC Radio yesterday&#8230; came home and tried to connect but it wasn&#8217;t activated. What&#8217;s all this Buzz about? Today, while using Gmail, I noticed the icon for it, opened it up, and added some &#8230; <a href="http://karlherrick.com/dev/2010/02/10/google-buzz/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I heard about <a href="http://www.google.com/buzz">Google Buzz</a> on CBC Radio yesterday&#8230; came home and tried to connect but it wasn&#8217;t activated. What&#8217;s all this Buzz about? Today, while using <a href="http://mail.google.com/">Gmail</a>, I noticed the icon for it, opened it up, and added some &#8220;connected sites&#8221;. I&#8217;ve already had two conversations about a picture of a turtle I took a few years back. Awesome.</p>
<p>Seems easier to use than <a href="http://www.facebook.com/">Facebook</a> too.</p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2010/02/10/google-buzz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recursive find and replace</title>
		<link>http://karlherrick.com/dev/2010/02/08/recursive-find-and-replace/</link>
		<comments>http://karlherrick.com/dev/2010/02/08/recursive-find-and-replace/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 21:42:55 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2010/02/08/recursive-find-and-replace/</guid>
		<description><![CDATA[From time to time I find myself wanting to replace a bit of text, in multiple files, throughout a huge directory tree (particularly in the case of a WordPress migration). Here&#8217;s a method I frequently use (other examples I&#8217;ve seen &#8230; <a href="http://karlherrick.com/dev/2010/02/08/recursive-find-and-replace/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>From time to time I find myself wanting to replace a bit of text, in multiple files, throughout a huge directory tree (particularly in the case of a <a href="http://wordpress.org/">WordPress</a> migration).</p>
<p>Here&#8217;s a method I frequently use (other examples I&#8217;ve seen out there make use of perl, xargs, grep, etc.):</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="co4">user@host:~$ </span><span class="kw3">cd</span> Directory_To_Start_From
<span class="co4">user@host:~$ </span><span class="kw2">find</span> . <span class="re5">-type</span> f <span class="re5">-exec</span> <span class="kw2">sed</span> <span class="re5">-i</span> <span class="st_h">'s/Text_To_Find/Replacement_Text/g'</span> <span class="br0">&#123;</span><span class="br0">&#125;</span> ;</pre></div></div></div></div></div></div></div>


<p>The find command will return a list of all the files in the directory tree and execute the sed command on each one it locates. In the example below, I added the &#8220;-name&#8221; option to the find command to allow for working only on files with the .js extension:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="co4">user@host:~$ </span><span class="kw3">cd</span> website
<span class="co4">user@host:~$ </span><span class="kw2">find</span> . <span class="re5">-type</span> f <span class="re5">-name</span> <span class="st0">&quot;*.js&quot;</span> <span class="re5">-exec</span> <span class="kw2">sed</span> <span class="re5">-i</span> <span class="st_h">'s/var pageName=&quot;example page&quot;;/var pageName=&quot;Final Page&quot;;/g'</span> <span class="br0">&#123;</span><span class="br0">&#125;</span> ;</pre></div></div></div></div></div></div></div>


<p>In the next one, the text to find and replace has special characters (in this case the &#8216;/&#8217; in the URL).</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="co4">user@host:~$ </span><span class="kw3">cd</span> website
<span class="co4">user@host:~$ </span><span class="kw2">find</span> . <span class="re5">-type</span> f <span class="re5">-exec</span> <span class="kw2">sed</span> <span class="re5">-i</span> <span class="st_h">'s/http://www.example.com/old_directory//http://newsubdomain.example.com/new_directory//g'</span> <span class="br0">&#123;</span><span class="br0">&#125;</span> ;</pre></div></div></div></div></div></div></div>


<p>See the following links to read more about escaping special characters:</p>
<ul>
<li><a href="http://www.bash-hackers.org/wiki/doku.php/syntax/quoting">Bash Hackers Wiki &#8211; Quotes and escaping</a></li>
<li><a href="http://steve-parker.org/sh/escape.shtml">Unix / Linux Shell Scripting Tutorial &#8211; Escape Characters</a></li>
<li><a href="http://tldp.org/LDP/abs/html/quoting.html">Advanced Bash-Scripting Guide</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2010/02/08/recursive-find-and-replace/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sloppiness at 1and1</title>
		<link>http://karlherrick.com/dev/2010/02/03/sloppiness-at-1and1/</link>
		<comments>http://karlherrick.com/dev/2010/02/03/sloppiness-at-1and1/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 20:07:07 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[Culture]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2010/02/03/sloppiness-at-1and1/</guid>
		<description><![CDATA[So I have been noticing issues with 1and1 again. Yesterday when trying to get into my hosting control panel at admin.1and1.com, I received a &#8220;HTTP Error 503 Service unavailable&#8221; error, and thought to myself&#8230; really, on the admin panel&#8230; really? &#8230; <a href="http://karlherrick.com/dev/2010/02/03/sloppiness-at-1and1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So I have been noticing issues with <a href="http://1and1.com">1and1</a> again. Yesterday when trying to get into my hosting control panel at <a href="http://admin.1and1.com/">admin.1and1.com</a>, I received a &#8220;<a href="http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#5xx_Server_Error">HTTP Error 503 Service unavailable</a>&#8221; error, and thought to myself&#8230; really, on the admin panel&#8230; really?</p>
<p>Today while checking out my own site, I noticed that all of the PHP files I tried browsing to returned &#8220;<a href="http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#5xx_Server_Error">500 Internal Server Error</a>&#8221; errors.</p>
<p>Now this has gone too far&#8230; so I called them up. At first the person I talked to explained that I needed to force PHP5 using a .htaccess file, and proceeded to tell me that they could make the change for me. Calmly, I responded by saying that I did not want a change, and that it had been working fine the way it was for months.</p>
<p>She put me on hold, and while I waited&#8230; it started working. She told me that the shared hosting server &#8220;had a glitch&#8221;.</p>
<p>Afterwards, I ssh&#8217;ed into my server. Look what I found:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="br0">&#40;</span>uiserver<span class="br0">&#41;</span>:uXXXXXXXX:~ <span class="sy0">&gt;</span> <span class="kw2">ls</span> <span class="re5">-al</span>
total XX
<span class="re5">-rw-r--r--</span>  <span class="nu0">1</span> uXXXXXXXX XXXXXXXX   <span class="nu0">16</span> Feb  <span class="nu0">3</span> <span class="nu0">14</span>:06 info.php</pre></div></div></div></div></div></div></div>


<p>I thought, &#8220;weird, I didn&#8217;t put that there&#8221;.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="br0">&#40;</span>uiserver<span class="br0">&#41;</span>:uXXXXXXXX:~ <span class="sy0">&gt;</span> <span class="kw2">cat</span> info.php 
<span class="sy0">&lt;</span>? phpinfo<span class="br0">&#40;</span><span class="br0">&#41;</span>; ?<span class="sy0">&gt;</span></pre></div></div></div></div></div></div></div>


<p>Shame on you <a href="http://1and1.com">1and1</a>, for not cleaning up after yourself. Well, I guess you <a href="http://karlherrick.com/dev/2007/07/27/1and1-horror-story/">get what you pay for</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2010/02/03/sloppiness-at-1and1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interesting Analytics</title>
		<link>http://karlherrick.com/dev/2010/01/19/interesting-analytics/</link>
		<comments>http://karlherrick.com/dev/2010/01/19/interesting-analytics/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 19:28:28 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2010/01/19/interesting-analytics/</guid>
		<description><![CDATA[I thought this would be fun to show everyone. The amount of visitors coming to karlherrick.com is fairly consistent, so I was surprised to see such a spike when I was in a car accident recently. There must be some &#8230; <a href="http://karlherrick.com/dev/2010/01/19/interesting-analytics/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I thought this would be fun to show everyone.</p>
<p><a href='http://karlherrick.com/dev/wp-content/uploads/2010/01/analytics_accident.jpg' title='Accident Analytics'><img src='http://karlherrick.com/dev/wp-content/uploads/2010/01/analytics_accident.thumbnail.jpg' alt='Accident Analytics' /></a></p>
<p>The amount of visitors coming to <a href="http://karlherrick.com">karlherrick.com</a> is fairly consistent, so I was surprised to see such a spike when I was in a <a href="http://karlherrick.com/blog/2010/01/accident-at-allan-park/">car accident</a> recently. There must be some correlation to draw here.</p>
<p>I am thinking of breaking my leg next week to drive the traffic back up. ;-)</p>
<p>Just kidding.</p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2010/01/19/interesting-analytics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Databases on 1and1</title>
		<link>http://karlherrick.com/dev/2010/01/14/switching-mysql-databases-on-1and1/</link>
		<comments>http://karlherrick.com/dev/2010/01/14/switching-mysql-databases-on-1and1/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 20:51:59 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Backups]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2010/01/14/switching-mysql-databases-on-1and1/</guid>
		<description><![CDATA[After wanting to test WordPress 3.0 on a 1and1 hosting account, I ran into the following issue&#8230; the particular setup I was dealing with had only one database available, and it wasn&#8217;t MySQL 5, but instead MySQL 4&#8230; furthermore, it &#8230; <a href="http://karlherrick.com/dev/2010/01/14/switching-mysql-databases-on-1and1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>After wanting to test WordPress 3.0 on a 1and1 hosting account, I ran into the following issue&#8230; the particular setup I was dealing with had only one database available, and it wasn&#8217;t MySQL 5, but instead MySQL 4&#8230; furthermore, it was a version lower than 4.1.2, which more recent versions of WordPress require as a minimum.</p>
<p>So after doing a bit of research on <a href="http://www.expand2web.com/blog/wordpress-2-9-upgrade-mysql/">what others had done</a>, I went about fixing the problem. Interestingly enough, 1and1 could have made some money in this situation if they would allow customers to simply purchase another database to add to their packages, but no, they want an entire upgrade to be purchased.</p>
<p>The first step was to backup the website and database. I ssh&#8217;ed into the web host:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="co4">username@localhostname:~$ </span><span class="kw2">ssh</span> <span class="re1">$username</span><span class="sy0">@</span>example.com</pre></div></div></div></div></div></div></div>


<p>Then I backed up the database. The command below will dump all of the databases on the host (in this case, only one MySQL 4.x database) into a dated bzip file, in the home directory.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="co4">username@remotehostname:~$ </span>mysqldump <span class="re5">-C</span> <span class="re5">-A</span> <span class="re5">-u</span> <span class="re1">$databaseUsername</span> <span class="re5">-h</span> <span class="re1">$databaseHostName</span> -p<span class="re1">$databasePassword</span> <span class="sy0">|</span> <span class="kw2">bzip2</span> <span class="re5">-cq9</span> <span class="sy0">&amp;</span>gt; ~<span class="sy0">/`</span><span class="kw2">date</span> +<span class="sy0">%</span>F-<span class="sy0">%</span>I-<span class="sy0">%</span>M-<span class="sy0">%</span>p<span class="sy0">`</span>-db-backup.sql.bz2</pre></div></div></div></div></div></div></div>


<p>Now to backup the site itself (not only in case disaster struck, but this would get a local copy of the sql dump I just made as well). On a local OS X workstation (or Ubuntu, if that suits your tastes) I ran something similar to the following:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="co4">username@localhostname:~$ </span><span class="kw2">mkdir</span> ~<span class="sy0">/</span>website_backups
<span class="co4">username@localhostname:~$ </span>rsync <span class="re5">-avz</span> <span class="re5">--exclude</span>=<span class="st0">&quot;logs&quot;</span> <span class="re1">$username</span><span class="sy0">@</span>example.com: ~<span class="sy0">/</span>website_backups<span class="sy0">/</span></pre></div></div></div></div></div></div></div>


<p>From there, I was able to log into the 1and1 control panel and delete the existing database. This allowed me to setup a new one, and in particular, choose MySQL 4 or 5 as the type.</p>
<p>Back to the 1and1 hosting account:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="co4">username@localhostname:~$ </span><span class="kw2">ssh</span> <span class="re1">$username</span><span class="sy0">@</span>example.com</pre></div></div></div></div></div></div></div>


<p>I uncompressed the sql dump:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="co4">username@remotehostname:~$ </span><span class="kw2">bunzip2</span> <span class="nu0">2010</span>-01-<span class="nu0">14</span>-01-<span class="nu0">59</span>-PM-db-backup.sql.bz2</pre></div></div></div></div></div></div></div>


<p>and was greeted with the raw sql in the file, &#8220;2010-01-14-01-59-PM-db-backup.sql&#8221;. From here it was only a hop skip and a jump away to restoration. It was necessary to edit the sql file in order to have it restore properly to the newly created database that was just created:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="co4">username@remotehostname:~$ </span><span class="kw2">nano</span> <span class="re5">-w</span> <span class="nu0">2010</span>-01-<span class="nu0">14</span>-01-<span class="nu0">59</span>-PM-db-backup.sql</pre></div></div></div></div></div></div></div>


<p>And I changed the $oldDatabaseName to $newDatabaseName.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="mysql"><pre class="de1"><span class="sy1">--</span>
<span class="co1">-- Current Database: `$oldDatabaseName`</span>
<span class="sy1">--</span></pre></div></div></div></div></div></div></div>




<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="mysql"><pre class="de1"><span class="kw1">CREATE</span> <span class="kw2">DATABASE</span> <span class="coMULTI">/*!32312 IF NOT EXISTS*/</span> <span class="st0">`$oldDatabaseName`</span><span class="sy2">;</span></pre></div></div></div></div></div></div></div>




<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="mysql"><pre class="de1"><span class="kw1">USE</span> <span class="st0">`$oldDatabaseName`</span><span class="sy2">;</span></pre></div></div></div></div></div></div></div>


<p><em>ctrl+o, enter, and ctrl+x</em>, to save the file and exit nano. The sql dump was now ready to restore to the new database.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="co4">username@remotehostname:~$ </span>mysql <span class="re5">-u</span> <span class="re1">$databaseUsername</span> <span class="re5">-h</span> <span class="re1">$databaseHostName</span> -p<span class="re1">$databasePassword</span> <span class="re1">$databaseName</span> <span class="sy0">&amp;</span>lt; <span class="nu0">2010</span>-01-<span class="nu0">14</span>-01-<span class="nu0">59</span>-PM-db-backup.sql</pre></div></div></div></div></div></div></div>


<p>The only other things to do were to update any existing applications that needed the new database name, username, hostname, and password.</p>
<p>As a note, if you are updating a WordPress install to point to a new database, this info can be changed in the file, <em>wp-config.php</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2010/01/14/switching-mysql-databases-on-1and1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WDS Bridging Experiences</title>
		<link>http://karlherrick.com/dev/2010/01/07/wds-bridging-experiences/</link>
		<comments>http://karlherrick.com/dev/2010/01/07/wds-bridging-experiences/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 18:43:04 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Wireless]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2010/01/07/wds-bridging-experiences/</guid>
		<description><![CDATA[At the moment, our best solution for network coverage to multiple buildings is wireless. I have been planning out various solutions to improve our system (fiber optics, dslam, or a better wireless setup) but wanted to share what we have &#8230; <a href="http://karlherrick.com/dev/2010/01/07/wds-bridging-experiences/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>At the moment, our best solution for network coverage to multiple buildings is wireless. I have been planning out various solutions to improve our system (<a href="http://en.wikipedia.org/wiki/Fiber-optic_communication">fiber optics</a>, <a href="http://en.wikipedia.org/wiki/Dslam">dslam</a>, or a better wireless setup) but wanted to share what we have now and how well it has worked in this particular area of our property.</p>
<p><a title="WDS Repeating Map" href="http://karlherrick.com/dev/wp-content/uploads/2010/01/wds_repeating_map.jpg"><img src="http://karlherrick.com/dev/wp-content/uploads/2010/01/wds_repeating_map.thumbnail.jpg" alt="WDS Repeating Map" /></a></p>
<p>The image above shows the main buildings that are being linked. The main router sits in an upstairs window and is a:</p>
<p><strong>Linksys WRT300N</strong></p>
<ul>
<li>Runs DD-WRT V24 &#8211; SP2 (Beta)</li>
<li>Has original antennas</li>
<li>Has the following properties set (among others, these are the interesting ones)
<ul>
<li>Wireless &#8211; Basic Settings
<ul>
<li>Mode: AP</li>
<li>Network Mode: BG-Mixed</li>
<li>Channel: 11 &#8211; 2.462 GHz</li>
<li>SSID Brodcast: Enable</li>
</ul>
</li>
</ul>
<ul>
<li>Wireless &#8211; Advanced Settings
<ul>
<li>TX Power: 71</li>
</ul>
</li>
</ul>
<ul>
<li>Wireless &#8211; Security
<ul>
<li>Security Mode: WEP (<em>I haven&#8217;t tested WPA2 with WDS yet, and I understand that WEP can be cracked easily</em>)</li>
</ul>
</li>
</ul>
<ul>
<li>Wireless &#8211; WDS
<ul>
<li>The three router&#8217;s MAC addresses are filled in, and are set to &#8220;LAN&#8221;</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>The three client WDS routers are also sitting in windows, and are on the first level of the buildings that they are in. They repeat the same SSID, and run on channel 11.</p>
<p><strong>Buffalo WLI-TX4-G54HP</strong></p>
<ul>
<li>Originally purchased as an ethernet bridge, it is now running DD-WRT V24 &#8211; SP2 (Beta)</li>
<li>Replaced the stock antenna with a 9 dBi omni-directional</li>
<li>Is on the 72.6m link</li>
</ul>
<p><strong>(2) Belkin F5D7230-4 routers</strong></p>
<ul>
<li>WDS on the stock firmware works with DD-WRT, sweet!</li>
<li>These are unmodified, running with their tiny fixed (two) omni-directional antennas</li>
<li>One is on the 35.4m link, and the other on the 88.5m link</li>
</ul>
<p>This setup has been going for weeks without an issue, and has served upwards of six families, a two person office, a fifteen to twenty person office, and a classroom with sixteen students.</p>
<p>We have other areas on the same property that have wireless access between buildings, but are nowhere near as complete as this arrangement. If we do end up using wireless to unify the property&#8217;s networks, then I will start looking into site to site links, multiple gateways, <a href="http://www.olsr.org/">OLSR</a>, and other mesh technologies. I have my doubts as to how well WDS scales. Has anyone had positive results with professional mesh solutions built on DD-WRT and Linksys hardware?</p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2010/01/07/wds-bridging-experiences/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Time Machine Size Limits</title>
		<link>http://karlherrick.com/dev/2010/01/02/time-machine-size-limits/</link>
		<comments>http://karlherrick.com/dev/2010/01/02/time-machine-size-limits/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 22:11:19 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Backups]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2010/01/02/time-machine-size-limits/</guid>
		<description><![CDATA[So I have this new My Book World Edition, and I set it up to allow for Time Machine backups. The problem? On OS X, Time Machine wants to eat up almost the entire amount of free space before it &#8230; <a href="http://karlherrick.com/dev/2010/01/02/time-machine-size-limits/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So I have this new My Book World Edition, and I set it up to allow for Time Machine backups. The problem? On OS X, Time Machine wants to eat up almost the entire amount of free space before it goes about deleting old files&#8230; (un)conveniently there is no option to restrict the size of the backups.</p>
<p>Never fear&#8230; I google&#8217;d a bunch and found that if you run the following command on the Mac doing the backups:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1">defaults <span class="kw2">write</span> <span class="sy0">/</span>Library<span class="sy0">/</span>Preferences<span class="sy0">/</span>com.apple.TimeMachine MaxSize <span class="nu0">209715200</span></pre></div></div></div></div></div></div></div>


<p>It doesn&#8217;t appear to do anything (or may possibly do something else that isn&#8217;t related to what I was after). :-)</p>
<p>So, I went about it in a different manner. If I clicked on the Time Machine icon (rotating clock) in the menu bar, and clicked &#8220;Enter Time Machine&#8221;&#8230; exited the GUI of Time Machine, and then opened terminal, I could do the following:</p>
<ol>
<li>Become root:


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="kw2">sudo</span> <span class="re5">-s</span></pre></div></div></div></div></div></div></div>


</li>
<li>Goto the /Volumes directory, and look for which folder is mounted for Time Machine backups:


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="kw3">cd</span> <span class="sy0">/</span>Volumes <span class="sy0">&amp;</span>amp;<span class="sy0">&amp;</span>amp; <span class="kw2">ls</span> <span class="re5">-l</span></pre></div></div></div></div></div></div></div>


</li>
<li>Enter the folder that is mounted for Time Machine backups:


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="kw3">cd</span> <span class="re1">$Mount_Point_For_Backups</span></pre></div></div></div></div></div></div></div>


</li>
<li>Look for the .sparsebundle file that is being used for backing up the workstation:


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="kw2">ls</span> <span class="re5">-l</span></pre></div></div></div></div></div></div></div>


</li>
<li>Resize the sparsebundle file:


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1">hdiutil resize <span class="re5">-size</span> 200g <span class="re1">$hostname</span>.sparsebundle</pre></div></div></div></div></div></div></div>


</li>
</ol>
<p>The sparse image is then resized, and Time Machine will report that there is only around 200 gigabytes total available space rather than around a terabyte (which is the original size of the drive). :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2010/01/02/time-machine-size-limits/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MBWE SSH access</title>
		<link>http://karlherrick.com/dev/2009/12/28/mbwe-ssh-access/</link>
		<comments>http://karlherrick.com/dev/2009/12/28/mbwe-ssh-access/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 00:14:42 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2009/12/28/mbwe-ssh-access/</guid>
		<description><![CDATA[Just setting up a My Book World Edition (1TB, WDH1NC10000) and would recommend the following steps after purchase for SSH access: Login to the MBWE&#8217;s &#8220;Network Storage Manager&#8221; by typing the unit&#8217;s IP address into a web browser and then &#8230; <a href="http://karlherrick.com/dev/2009/12/28/mbwe-ssh-access/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Just setting up a My Book World Edition (1TB, WDH1NC10000) and would recommend the following steps after purchase for SSH access:</p>
<ul>
<li>Login to the MBWE&#8217;s &#8220;Network Storage Manager&#8221; by typing the unit&#8217;s IP address into a web browser and then authenticating with a valid username and password</li>
<li>Click the &#8220;Advanced Mode&#8221; link</li>
<li>Click the &#8220;Advanced&#8221; icon</li>
<li>Check the &#8220;Enable&#8221; checkbox under the &#8220;SSH Access&#8221; area</li>
<li>Click the &#8220;Submit&#8221; button</li>
</ul>
<p>Now SSH into the MBWE using the username, &#8220;root&#8221;, with the default password, &#8220;welc0me&#8221;. After logging in, be sure to change passwords for the root user by issuing the command, &#8220;passwd&#8221;.</p>
<p>A few other things I noticed were necessary, if you want ssh access via public key authentication:</p>
<ul>
<li>Copy the contents of the public key file from the client (usually <span style="font-style: italic">~/.ssh/id_dsa.pub</span>) to the MBWE on a new line under /root/.ssh/authorized_keys</li>
<li>Login as root to the MBWE and issue the following command in the terminal:


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="kw2">chmod</span> go-w ~<span class="sy0">/</span></pre></div></div></div></div></div></div></div>


<p>This was neccessary as when I tried to authenticate via public key, I was getting the following in <span style="font-style: italic">/var/log/messages</span> if I didn&#8217;t, &#8220;<span style="font-style: italic">Authentication refused: bad ownership or modes for directory /root</span>&#8220;</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2009/12/28/mbwe-ssh-access/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Office Compatibility</title>
		<link>http://karlherrick.com/dev/2009/11/20/office-compatibility/</link>
		<comments>http://karlherrick.com/dev/2009/11/20/office-compatibility/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 14:51:04 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OpenOffice]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2009/11/20/office-compatibility/</guid>
		<description><![CDATA[OpenOffice or Microsoft Office. Use either. It&#8217;s like OS X vs. Linux&#8230; whatever tool that is best for the job right? Here&#8217;s how you can make the two play a little nicer&#8230; OpenOffice Already reads and writes .docx, .xlsx, and &#8230; <a href="http://karlherrick.com/dev/2009/11/20/office-compatibility/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>OpenOffice or Microsoft Office. Use either. It&#8217;s like OS X vs. Linux&#8230; whatever tool that is best for the job right?</p>
<p>Here&#8217;s how you can make the two play a little nicer&#8230;</p>
<p><strong>OpenOffice</strong></p>
<ul>
<li>Already reads and writes .docx, .xlsx, and .pptx (admittedly the .pptx support isn&#8217;t near as developed as the previous two formats mentioned, from my experiences at least)</li>
<li>Download and install the following: <a href="http://www.microsoft.com/downloads/details.aspx?familyid=1CD6ACF9-CE06-4E1C-8DCF-F33F669DBC3A&amp;displaylang=en">Excel Viewer</a>, <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=3657ce88-7cfa-457a-9aec-f4f827f20cac&amp;displaylang=en">Word Viewer</a>, and <a href="http://www.microsoft.com/downloads/details.aspx?familyid=048dc840-14e1-467d-8dca-19d2a8fd7485&amp;displaylang=en">PowerPoint Viewer 2007</a></li>
<li>Download and install the following: <a href="http://www.microsoft.com/downloads/details.aspx?familyid=941b3470-3ae9-4aee-8f43-c6bb74cd1466&amp;displaylang=en">Microsoft Office Compatibility Pack for Word, Excel, and PowerPoint 2007 File Formats</a></li>
</ul>
<p><strong>Users with older versions of Microsoft Office Products, including Word 2000/2002/2003, Excel 2000/2002/2003, PowerPoint 2000/2002/2003)</strong></p>
<ul>
<li>Make sure your office products are updated with the latest service packs if any are available (check <a href="http://update.microsoft.com/">Microsoft Update</a>)</li>
<li>Download and install the following: <a href="http://www.microsoft.com/downloads/details.aspx?familyid=941b3470-3ae9-4aee-8f43-c6bb74cd1466&amp;displaylang=en">Microsoft Office Compatibility Pack for Word, Excel, and PowerPoint 2007 File Formats</a></li>
<li>Download and install the following: <a href="http://www.sun.com/software/star/odf_plugin/">Sun ODF Plugin for Microsoft Office</a></li>
</ul>
<p><strong>Users of Microsoft Office 2007</strong></p>
<ul>
<li>Download and install the following: <a href="http://www.sun.com/software/star/odf_plugin/">Sun ODF Plugin for Microsoft Office</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2009/11/20/office-compatibility/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Renaming MP3s in Bash</title>
		<link>http://karlherrick.com/dev/2009/11/17/renaming-mp3s/</link>
		<comments>http://karlherrick.com/dev/2009/11/17/renaming-mp3s/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 15:01:26 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Bash]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2009/11/17/renaming-mp3s/</guid>
		<description><![CDATA[It seems like this comes up every now and again, but I end up forgetting how to do it. So, I will post the example here, where it will live forever on the intarwebs. While there are a ton of &#8230; <a href="http://karlherrick.com/dev/2009/11/17/renaming-mp3s/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It seems like this comes up every now and again, but I end up forgetting how to do it. So, I will post the example here, where it will live forever on the intarwebs.</p>
<p>While there are a ton of ways to script this, using Bash, cut, ls, find, grep, sed, awk, perl, etc&#8230; In this particular instance, I find myself with a directory of about fifty files, each named in the following manner&#8230;</p>
<ol>
<li>01 Song Title.mp3</li>
<li>02 Another Song Title.mp3</li>
<li>02 Same Number Song Title.mp3</li>
<li>03 Author &#8211; Title.mp3</li>
</ol>
<p>Bash and cut to the rescue. The following code provides for each file in the current directory to have the number stripped off of the front, even it has <a href="http://mindspill.net/computing/linux-notes/using-the-bash-ifs-variable-to-make-for-loops-split-with-non-whitespace-characters.html">spaces in the filename</a>.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="co0">#!/bin/bash</span>
<span class="re2">SAVEIFS</span>=<span class="re1">$IFS</span>
<span class="re2">IFS</span>=$<span class="br0">&#40;</span><span class="kw3">echo</span> <span class="re5">-en</span> <span class="st0">&quot;nb&quot;</span><span class="br0">&#41;</span>
<span class="kw1">for</span> f <span class="kw1">in</span> <span class="sy0">*</span>; <span class="kw1">do</span>
    <span class="kw2">mv</span> <span class="st0">&quot;<span class="es2">$f</span>&quot;</span> <span class="st0">&quot;<span class="es4">$(echo $f | cut -c 4-)</span>&quot;</span>
<span class="kw1">done</span>
<span class="re2">IFS</span>=<span class="re1">$SAVEIFS</span></pre></div></div></div></div></div></div></div>


]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2009/11/17/renaming-mp3s/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The calendar has moved</title>
		<link>http://karlherrick.com/dev/2009/11/01/the-calendar-has-moved/</link>
		<comments>http://karlherrick.com/dev/2009/11/01/the-calendar-has-moved/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 14:19:10 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2009/11/01/the-calendar-has-moved/</guid>
		<description><![CDATA[So, I moved my calendars off of Apache/WebDAV and onto Google Calendar. Have I lost some control? Yes. Have I gained a huge amount of convenience. Definitely. Google don&#8217;t fail me now!]]></description>
			<content:encoded><![CDATA[<p>So, I moved my calendars off of Apache/WebDAV and onto Google Calendar. Have I lost some control? Yes. Have I gained a huge amount of convenience. Definitely.</p>
<p>Google don&#8217;t fail me now!</p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2009/11/01/the-calendar-has-moved/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter is over capacity</title>
		<link>http://karlherrick.com/dev/2009/10/17/twitter-is-over-capacity/</link>
		<comments>http://karlherrick.com/dev/2009/10/17/twitter-is-over-capacity/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 18:55:47 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Culture]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2009/10/17/twitter-is-over-capacity/</guid>
		<description><![CDATA[While trying to link Ping.fm to Twitter I saw this classy notice: That kind of reminds me when I used to try to call my brother in the Upper Peninsula of Michigan&#8230; the phone would beep this funny tone indicating &#8230; <a href="http://karlherrick.com/dev/2009/10/17/twitter-is-over-capacity/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>While trying to link <a href="http://ping.fm/">Ping.fm</a> to <a href="http://twitter.com/">Twitter</a> I saw this classy notice:</p>
<p><a href='http://karlherrick.com/dev/wp-content/uploads/2009/10/twitter_over_capacity.jpg' title='Twitter Over Capacity'><img src='http://karlherrick.com/dev/wp-content/uploads/2009/10/twitter_over_capacity.thumbnail.jpg' alt='Twitter Over Capacity' /></a></p>
<p>That kind of reminds me when I used to try to call my brother in the Upper Peninsula of Michigan&#8230; the phone would beep this funny tone indicating that they were over capacity and the call could not go through.</p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2009/10/17/twitter-is-over-capacity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The GIMP</title>
		<link>http://karlherrick.com/dev/2009/10/13/the-gimp/</link>
		<comments>http://karlherrick.com/dev/2009/10/13/the-gimp/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 03:13:32 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Photography]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2009/10/13/the-gimp/</guid>
		<description><![CDATA[I really like GIMP, and use it quite frequently, even with Creative Suite 4 Design Premium (licensed legally I might add) installed on my Mac, and with other applications like Paint.NET easily available for Windows. With that said, I thought &#8230; <a href="http://karlherrick.com/dev/2009/10/13/the-gimp/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I really like GIMP, and use it quite frequently, even with Creative Suite 4 Design Premium (licensed legally I might add) installed on my Mac, and with other applications like <a href="http://www.getpaint.net/">Paint.NET</a> easily available for Windows. With that said, I thought I would post a few links about it, since I have been using it for&#8230; oh I don&#8217;t know, since 2002 or 2003 I&#8217;m guessing.</p>
<p>Read about it:</p>
<ul>
<li><a href="http://www.maximumpc.com/article/features/10_sweet_gimp_photo_editing_tricks_wean_you_photoshop">10 Sweet GIMP Photo Editing Tricks to Wean You Off Photoshop</a></li>
<li><a href="http://www.gimp.org/tutorials/">GIMP &#8211; Tutorials</a></li>
<li><a href="http://en.wikipedia.org/wiki/GIMP">GIMP &#8211; Wikipedia, the free encyclopedia</a></li>
</ul>
<p>Download it:</p>
<ul>
<li><a href="http://gimp-win.sourceforge.net/stable.html">GIMP for Windows</a></li>
<li><a href="http://www.gimp.org/macintosh/">GIMP for Mac OS X</a> (a little odd with X11&#8230; have to click once to select windows, and then click to select tools)</li>
<li>There is also the <a href="http://www.gimp.org/source/">source</a> and <a href="http://www.gimp.org/unix/">Linux builds</a>&#8230; but must Linux distros come with GIMP already.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2009/10/13/the-gimp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Portfolio</title>
		<link>http://karlherrick.com/dev/2009/10/11/portfolio/</link>
		<comments>http://karlherrick.com/dev/2009/10/11/portfolio/#comments</comments>
		<pubDate>Sun, 11 Oct 2009 23:28:24 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2009/10/11/portfolio/</guid>
		<description><![CDATA[I have gathered some of the better work that I have done over the years, took some screenshots, and posted them to a running instance of MooFlow. See it at the following url: http://karlherrick.com/demo/pub/mooflow/]]></description>
			<content:encoded><![CDATA[<p>I have gathered some of the better work that I have done over the years, took some screenshots, and posted them to a running instance of <a href="http://www.outcut.de/MooFlow/">MooFlow</a>.</p>
<p>See it at the following url: <a href="http://karlherrick.com/demo/pub/mooflow/">http://karlherrick.com/demo/pub/mooflow/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2009/10/11/portfolio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The network config</title>
		<link>http://karlherrick.com/dev/2009/08/20/the-network-config/</link>
		<comments>http://karlherrick.com/dev/2009/08/20/the-network-config/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 14:36:16 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2009/08/20/the-network-config/</guid>
		<description><![CDATA[My network setup is going through a transitory phase as I swap parts and move things around. Here&#8217;s what I have to work with: Desktops: Pentium III-800 MHz with 256 MB RAM and two 300 GB PATA hard disks (currently &#8230; <a href="http://karlherrick.com/dev/2009/08/20/the-network-config/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>My network setup is going through a transitory phase as I swap parts and move things around. Here&#8217;s what I have to work with:</p>
<ul>
<li>Desktops:
<ul>
<li>Pentium III-800 MHz with 256 MB RAM and two 300 GB PATA hard disks (currently running Apache/WebDAV as well as network backups)</li>
<li>Pentium III-850 MHz with 256 MB RAM and one 100 GB PATA hard disk (currently running a MythTV backend on the basic cable TV channels)</li>
<li>Pentium IV-2.4 GHz with 2 GB RAM and two 80 GB SATA hard disks (currently running Ubuntu 8.04, MythTV frontend, development station, etc)</li>
<li>Intel Core 2 Quad &#8211; 2.33 GHz and one 600 GB SATA hard disk (currently running Kubuntu 9.04, MythTV frontend, VirtualBox w/Windows XP, taking the place of the previous MythTV frontend and the XP install on the Compaq Presario)</li>
</ul>
</li>
<li>Laptops:
<ul>
<li>Compaq Presario X1000 &#8211; Pentium M &#8211; 1.4 GHz with 1.5 GB RAM (this has been mainly used for presentations, wireless development, web development and our cordless Linksys/Skype phone)</li>
<li>MacBook Pro &#8211; Intel Core 2 Duo &#8211; 2.53 GHz with 4 GB RAM (this will be the successor to the Compaq laptop)</li>
</ul>
</li>
</ul>
<p>I also have some other miscellaneous parts/systems that can be used as needed. My thought was to have one MythTV backend, that will also serve as a file share, and backups. This may present some problems with the bandwidth and disk speeds on the Pentium IV box, but that remains to be seen. I am hoping the newest desktop will continue to run some form of Linux, and XP Home virtualized to provide the cordless telephone service. And then finally the two laptops, for all their mobility as well as using <a href="http://www.mythtv.org/wiki/XBMC">XBMC</a> for additional MythTV frontends.</p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2009/08/20/the-network-config/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magic vs. iUI</title>
		<link>http://karlherrick.com/dev/2009/08/06/magic-vs-iui/</link>
		<comments>http://karlherrick.com/dev/2009/08/06/magic-vs-iui/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 01:49:10 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2009/08/06/magic-vs-iui/</guid>
		<description><![CDATA[I wonder how Magic Framework stacks up against iUI: iPhone User Interface Framework. I have used the latter with great results&#8230; maybe next time I will give Magic a try. ;-)]]></description>
			<content:encoded><![CDATA[<p>I wonder how <a href="http://www.jeffmcfadden.com/projects/Magic%20Framework">Magic Framework</a> stacks up against <a href="http://code.google.com/p/iui/">iUI: iPhone User Interface Framework</a>. I have <a href="http://karlherrick.com/dev/2008/12/08/iui-and-the-iphone/">used the latter with great results</a>&#8230; maybe next time I will give Magic a try. ;-)</p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2009/08/06/magic-vs-iui/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Songbird Equalizer</title>
		<link>http://karlherrick.com/dev/2009/06/12/songbird-equalizer/</link>
		<comments>http://karlherrick.com/dev/2009/06/12/songbird-equalizer/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 10:56:15 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Exch]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[XUL]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2009/06/12/songbird-equalizer/</guid>
		<description><![CDATA[Awhile back (years) I tried out Songbird (a media player based on the same technology as Firefox and Exch), but was disappointed that it did not have an equalizer built in. More recently however, after downloading the 1.3.x nightly build &#8230; <a href="http://karlherrick.com/dev/2009/06/12/songbird-equalizer/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Awhile back (years) I tried out <a href="http://www.getsongbird.com/">Songbird</a> (a media player based on the same technology as <a href="http://www.mozilla.com/firefox/">Firefox</a> and <a href="https://addons.mozilla.org/en-US/firefox/addon/1747">Exch</a>), but was disappointed that it did not have an equalizer built in. More recently however, after downloading the <a href="http://developer.songbirdnest.com/builds/trunk/latest/">1.3.x nightly build</a> I was pleasantly surprised by its progress. Much lighter weight than the likes of iTunes, and supporting awesome features like <a href="http://amarok.kde.org/">Amarok</a>, it is turning out to be quite the app.</p>
<p>I suppose after a few more revisions and hopeful changes, it will be all that I had hoped it would. Things I would like to see added in the near term are, easier streaming media and playlist manipulation, as well as being able to save equalizer settings.</p>
<p>Check out some of the screenshots I took:</p>
<p><a href='http://karlherrick.com/dev/wp-content/uploads/2009/06/songbird_13x.jpg' title='Songbird Nightly 1.3.x'><img src='http://karlherrick.com/dev/wp-content/uploads/2009/06/songbird_13x.thumbnail.jpg' alt='Songbird Nightly 1.3.x' /></a>  <a href='http://karlherrick.com/dev/wp-content/uploads/2009/06/songbird-equalizer.jpg' title='Songbird Nightly 1.3.x Equalizer'><img src='http://karlherrick.com/dev/wp-content/uploads/2009/06/songbird-equalizer.thumbnail.jpg' alt='Songbird Nightly 1.3.x Equalizer' /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2009/06/12/songbird-equalizer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exch 1.4.4 Submitted</title>
		<link>http://karlherrick.com/dev/2009/05/16/exch-144-submitted/</link>
		<comments>http://karlherrick.com/dev/2009/05/16/exch-144-submitted/#comments</comments>
		<pubDate>Sat, 16 May 2009 18:31:53 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Exch]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[XUL]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2009/05/16/exch-144-submitted/</guid>
		<description><![CDATA[Exch 1.4.3 was submitted to Mozilla Addons a few weeks ago that had the following changes: Fixed issue with OS X preferences dialog. Changed keyboard shortcut to &#8220;ctrl-shift-e&#8221; on Windows and Linux and &#8220;command-shift-e&#8221; on OS X. Added German (de-DE) &#8230; <a href="http://karlherrick.com/dev/2009/05/16/exch-144-submitted/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Exch 1.4.3 was submitted to Mozilla Addons a few weeks ago that had the following changes:</p>
<ul>
<li>Fixed issue with OS X preferences dialog.</li>
<li>Changed keyboard shortcut to &#8220;ctrl-shift-e&#8221; on Windows and Linux and &#8220;command-shift-e&#8221; on OS X.</li>
<li>Added German (de-DE) localization.</li>
</ul>
<p>Unfortunately, something between the preferences dialog change and the new German localization needed a few more tweaks to be considered stable, and I didn&#8217;t test it out as good as I could have (downloading the German version of Firefox, etc.). So, anyone who has a German build of Firefox found their Exch broken. Fortunately, that has been fixed, and version 1.4.4 has been submitted to Mozilla Addons. It is still pending review in the sandbox, but I expect it to be released within a week or two.</p>
<p>With that said, you can download it directly from here, and then install it to Firefox for the fix&#8230; This really only affects German users of the extension.</p>
<p>Download / Install: <a href="http://karlherrick.com/dev/wp-content/uploads/2009/05/exch-1.4.4-fx.xpi">Exch 1.4.4</a></p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2009/05/16/exch-144-submitted/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows 7 &#8211; XP Mode</title>
		<link>http://karlherrick.com/dev/2009/04/25/windows-7-xp-mode/</link>
		<comments>http://karlherrick.com/dev/2009/04/25/windows-7-xp-mode/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 21:07:31 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2009/04/25/windows-7-xp-mode/</guid>
		<description><![CDATA[So I downloaded the Windows 7 beta, but never installed it (had to keep Ubuntu and MythTV going strong). To be honest, I have heard it is fantastic&#8230; what Vista should have been, yada, yada, etc. Anyhow, I just read &#8230; <a href="http://karlherrick.com/dev/2009/04/25/windows-7-xp-mode/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So I downloaded the Windows 7 beta, but never installed it (had to keep Ubuntu and MythTV going strong). To be honest, I have heard it is fantastic&#8230; what Vista should have been, yada, yada, etc. Anyhow, I just read that some of the editions of 7 will have &#8220;XP Mode&#8221;, sort of like Apple had &#8220;<a href="http://en.wikipedia.org/wiki/Classic_(Mac_OS_X)">Classic Environment</a>&#8221; when they moved to OS X from OS 9. XP Mode will in fact be XP running in a virtual environment. How cool is that? Maybe business IT will be more easily persuaded to move on.</p>
<p><a href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;articleId=9132119&amp;intsrc=news_ts_head">Windows 7 gets virtual &#8216;XP mode&#8217;</a></p>
<p><a href="http://i.gizmodo.com/5226696/windows-7-release-candidate-1s-best-surprise-new-features">Windows 7 Release Candidate 1&#8242;s Best Surprise New Features</a></p>
<p><a href="http://news.google.com/news?pz=1&amp;ned=us&amp;ncl=1338012280&amp;topic=t">Google News</a></p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2009/04/25/windows-7-xp-mode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone 3G Repair</title>
		<link>http://karlherrick.com/dev/2009/03/31/iphone-3g-repair/</link>
		<comments>http://karlherrick.com/dev/2009/03/31/iphone-3g-repair/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 22:47:09 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Apple]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2009/03/31/iphone-3g-repair/</guid>
		<description><![CDATA[So on a different broken iPhone that I have come across (where the LCD is not also broken&#8230; only the glass is cracked) we have decided to go with a repair service. While there are a lot of parts sites &#8230; <a href="http://karlherrick.com/dev/2009/03/31/iphone-3g-repair/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So on a different broken iPhone that I have come across (where the LCD is not also broken&#8230; only the glass is cracked) we have decided to go with a repair service. While there are a lot of parts sites (<a href="http://www.welovemacs.com/iprepa4.html">welovemacs.com</a> (need a <a href="http://www.welovemacs.com/10813.html">zoom lens</a>?), <a href="http://www.rapidrepair.com/shop/iphone-3g-8gb-parts.html">rapidrepair.com</a>, <a href="http://www.ifixit.com/Products/iPhone-3G/137">ifixit.com</a>, among others), the fix operation will probably be best done by people that do it all the time.</p>
<p>I tried calling two places:</p>
<ul>
<li><a href="http://www.ipodjuice.com/iphone-3G-outer-glass-digitizer-replacement.htm">www.ipodjuice.com</a></li>
<li><a href="http://www.missionrepair.com/Mission_Repair_3G_iPhone_Digitizer_Screen_Repair_p/222-4021.htm">missionrepair.com</a></li>
</ul>
<p><a href="http://www.ipodjuice.com">www.ipodjuice.com</a> (Milliamp LTD) didn&#8217;t answer their phone&#8230; I emailed. We&#8217;ll see if they return information&#8230;  <a href="http://www.missionrepair.com">Missionrepair.com</a> says, $115.00 for the glass and digitizer repair. Turn around was explained that &#8220;they ship it back within 24 hours of receiving it.&#8221; Next day shipping from them is $9.00. Not bad!</p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2009/03/31/iphone-3g-repair/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone Glass Cracked</title>
		<link>http://karlherrick.com/dev/2009/03/26/iphone-glass-cracked/</link>
		<comments>http://karlherrick.com/dev/2009/03/26/iphone-glass-cracked/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 16:41:17 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Apple]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2009/03/26/iphone-glass-cracked/</guid>
		<description><![CDATA[So today I removed the broken glass from an iPhone 3g that was inadvertently dropped. These little wonder pieces of equipment are quite fragile. See the front panel removal guide at iFixit to see how I did it.]]></description>
			<content:encoded><![CDATA[<p>So today I removed the broken glass from an iPhone 3g that was inadvertently dropped. These little wonder pieces of equipment are quite fragile. See the <a href="http://www.ifixit.com/Guide/Repair/iPhone-3G-Front-Panel/587/1">front panel removal guide</a> at iFixit to see how I did it.</p>
<p><a href='http://karlherrick.com/dev/wp-content/uploads/2009/03/iphone-glass-cracked-removal.jpg' title='iPhone Glass Cracked'><img src='http://karlherrick.com/dev/wp-content/uploads/2009/03/iphone-glass-cracked-removal.thumbnail.jpg' alt='iPhone Glass Cracked' /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2009/03/26/iphone-glass-cracked/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google appears broken</title>
		<link>http://karlherrick.com/dev/2009/01/31/google-appears-broken/</link>
		<comments>http://karlherrick.com/dev/2009/01/31/google-appears-broken/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 15:10:11 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2009/01/31/google-appears-broken/</guid>
		<description><![CDATA[After trying to search for some CSS magic on Google, I was puzzled as to why the sites kept returning &#8220;This site may harm your computer&#8221;&#8230; Then I checked my own site. What? My site won&#8217;t harm anyone&#8217;s computer. Then &#8230; <a href="http://karlherrick.com/dev/2009/01/31/google-appears-broken/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>After trying to search for some CSS magic on Google, I was puzzled as to why the sites kept returning &#8220;This site may harm your computer&#8221;&#8230; Then I checked my own site. What? My site won&#8217;t harm anyone&#8217;s computer. Then I google&#8217;d &#8220;Google&#8221;. It appears that Google will harm your computer too! They have labeled themselves a security risk.</p>
<p>These warnings are appearing on all of my searches, and I have independently verified these odd issues at two workstations running different os&#8217;es with different browsers at one location, and one workstation at another location.</p>
<div>
<div style="float: left;margin-right: 10px">
<p><a href='http://karlherrick.com/dev/wp-content/uploads/2009/01/google-warnings1.jpg' title='Google - Stop Badware'><img src='http://karlherrick.com/dev/wp-content/uploads/2009/01/google-warnings1.thumbnail.jpg' alt='Google - Stop Badware' /></a></div>
<div style="float: left;margin-right: 10px"><a href='http://karlherrick.com/dev/wp-content/uploads/2009/01/google-warnings2.jpg' title='Google - Stop Badware'><img src='http://karlherrick.com/dev/wp-content/uploads/2009/01/google-warnings2.thumbnail.jpg' alt='Google - Stop Badware' /></a></div>
</div>
<div style="clear: both;margin-bottom: 10px"></div>
<p><span style="color: darkorange">**Update**, it looks like it&#8217;s fixed&#8230; I was getting tired of copying and pasting the url&#8217;s to get to the sites I wanted to go to. It&#8217;s certainly an interesting reminder on how dependent I am on Google. I keep telling myself&#8230; I can quit Google whenever I want! ;-)</span></p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2009/01/31/google-appears-broken/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iUI and the iPhone</title>
		<link>http://karlherrick.com/dev/2008/12/08/iui-and-the-iphone/</link>
		<comments>http://karlherrick.com/dev/2008/12/08/iui-and-the-iphone/#comments</comments>
		<pubDate>Tue, 09 Dec 2008 02:15:07 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2008/12/08/iui-and-the-iphone/</guid>
		<description><![CDATA[My employer recently purchased a set of iPhones from AT&#38;T for those in the workforce that have a need for such a thing. One of our first priorities was getting our rolodex accessible (read only) from the road. The main &#8230; <a href="http://karlherrick.com/dev/2008/12/08/iui-and-the-iphone/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>My employer recently purchased a set of iPhones from AT&amp;T for those in the workforce that have a need for such a thing. One of our first priorities was getting our rolodex accessible (read only) from the road. The main problem is that the data is in a restrictive, old school database. Until we can find time to move it into a more open platform I did the following:</p>
<ul>
<li>Set up a routine for dumping the rolodex into a flat xml file monthly</li>
<li>Coded the searching of the the data using PHP and <a href="http://www.php.net/simplexml">SimpleXML</a></li>
<li>Coded the cookie management (sessions) and most important, a &#8220;remember me&#8221; feature (because Safari doesn&#8217;t remember passwords on the iPhone)</li>
<li>Found this lovely library for creating iPhone compatible user intarfaces via the web (read, looks like a native app): <a href="http://code.google.com/p/iui/">iUI</a> (<a href="http://code.google.com/p/iui/">User Interface Library for Safari development on iPhone</a>)</li>
</ul>
<p>Checkout the screenshots:</p>
<p><a href='http://karlherrick.com/dev/wp-content/uploads/2008/12/1_login.png' title='Login'><img src='http://karlherrick.com/dev/wp-content/uploads/2008/12/1_login.thumbnail.png' alt='Login' /></a>&nbsp;&nbsp;<a href='http://karlherrick.com/dev/wp-content/uploads/2008/12/2_search.png' title='Search'><img src='http://karlherrick.com/dev/wp-content/uploads/2008/12/2_search.thumbnail.png' alt='Search' /></a>&nbsp;&nbsp;<a href='http://karlherrick.com/dev/wp-content/uploads/2008/12/3_results.png' title='Results'><img src='http://karlherrick.com/dev/wp-content/uploads/2008/12/3_results.thumbnail.png' alt='Results' /></a>&nbsp;&nbsp;<a href='http://karlherrick.com/dev/wp-content/uploads/2008/12/4_info.png' title='Info'><img src='http://karlherrick.com/dev/wp-content/uploads/2008/12/4_info.thumbnail.png' alt='Info' /></a></p>
<p>It&#8217;s pretty cool, because if the contact in the rolodex has a telephone number, address, email address, or webpage associated with them, the data will be displayed and linked to iPhone friendly functions&#8230; For example, the telephone number, when clicked on will provide a call button. An address clicked on will link to the built in maps app. Email links open up directly in the built in mail app. Finally, of course, webpages openup in Safari.</p>
<p>So here&#8217;s for getting the world more connected&#8230; one app at at time.</p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2008/12/08/iui-and-the-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DD Backups over SSH</title>
		<link>http://karlherrick.com/dev/2008/09/12/dd-backups-over-ssh/</link>
		<comments>http://karlherrick.com/dev/2008/09/12/dd-backups-over-ssh/#comments</comments>
		<pubDate>Sat, 13 Sep 2008 02:04:29 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2008/09/12/dd-backups-over-ssh/</guid>
		<description><![CDATA[To perform backups of a local workstation&#8217;s hard disk over a network, perform the following procedures (adjusted to your particular situation of course): Download and boot from a live Linux distro Become &#8220;root&#8221; within a shell Run &#8220;fdisk -l&#8221; (&#8220;mac-fdisk &#8230; <a href="http://karlherrick.com/dev/2008/09/12/dd-backups-over-ssh/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>To perform backups of a local workstation&#8217;s hard disk over a network, perform the following procedures (adjusted to your particular situation of course):</p>
<ol>
<li>Download and boot from a live Linux distro</li>
<li>Become &#8220;root&#8221; within a shell</li>
<li>Run &#8220;fdisk -l&#8221; (&#8220;mac-fdisk -l&#8221; I know works on SystemRescueCD 0.2.0 (PPC) for PPC/Macs (what about Intel Macs?)) and note the internal hard disk partition to backup (ex: &#8216;/dev/hda&#8217;)</li>
</ol>
<p>The rest assumes that (in short, you will probably have to substitute some numbers or devices and you have ssh access somewhere):</p>
<ol>
<li>You have network access</li>
<li>You have access to an SSH server</li>
<li>Your network is configured with private addresses and you are not assigning one that conflicts with another local IP address</li>
<li>Your netmask is the same as the one supplied in the following commands</li>
</ol>
<p>Give an IP address to the workstation you have just booted the live Linux disc on, set the netmask, and bring the network interface up:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="kw2">ifconfig</span> eth0 192.168.1.50 netmask 255.255.255.0 up</pre></div></div></div></div></div></div></div>


<p>Set the default gateway (if you need to reach outside of the LAN that is&#8230; normally this is your router&#8217;s IP address):</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1">route add default gw 192.168.1.1</pre></div></div></div></div></div></div></div>


<p>Set a DNS server (if you are in the habit of not strictly using IP addresses):</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="kw3">echo</span> <span class="st0">&quot;nameserver 192.168.1.1&quot;</span> <span class="sy0">&gt;</span> <span class="sy0">/</span>etc<span class="sy0">/</span>resolv.conf</pre></div></div></div></div></div></div></div>


<p>Execute the backup command:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="kw2">dd</span> <span class="re2">if</span>=<span class="sy0">/</span>dev<span class="sy0">/</span>hda <span class="sy0">|</span> <span class="kw2">ssh</span> username<span class="sy0">@</span>backupserver.fqdn
<span class="st0">&quot;dd of=/directory_of_backups_on_ssh_server/backupfile.iso&quot;</span></pre></div></div></div></div></div></div></div>


<p>Obviously, most of the previous is getting the network up&#8230; try running &#8220;dhclient&#8221; if the live Linux disc has it installed, and your network has DHCP setup. ;-)</p>
<p><strong>UPDATE (2010-02-09)</strong>: I just thought I would mention, that <a href="http://clonezilla.org/">Clonezilla Live</a> is a fantastic piece of software that makes this all a little more automated. Their site says, &#8220;For [supported] file systems, only used blocks in partition are saved and restored. For unsupported file system, sector-to-sector copy is done by dd in Clonezilla.&#8221; Essentially, this translates into much smaller image sizes for the majority of files systems that people work with. See a basic how-to at <a href="http://www.howtoforge.com/back-up-restore-hard-drives-and-partitions-with-clonezilla-live">http://www.howtoforge.com/back-up-restore-hard-drives-and-partitions-with-clonezilla-live</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2008/09/12/dd-backups-over-ssh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Goldfish and forged spam</title>
		<link>http://karlherrick.com/dev/2008/09/09/goldfish-and-forged-spam/</link>
		<comments>http://karlherrick.com/dev/2008/09/09/goldfish-and-forged-spam/#comments</comments>
		<pubDate>Wed, 10 Sep 2008 02:10:51 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Cron]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2008/09/09/goldfish-and-forged-spam/</guid>
		<description><![CDATA[Recently I had the goldfish autoresponder (vacation responses / email auto reply) setup for a user for about one week. Checking their inbox about half way through this time period revealed it having over 47,000 unread messages. What was happening &#8230; <a href="http://karlherrick.com/dev/2008/09/09/goldfish-and-forged-spam/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Recently I had the <a href="http://www.remofritzsche.ch/goldfish/">goldfish</a> autoresponder (vacation responses / email auto reply) setup for a user for about one week. Checking their inbox about half way through this time period revealed it having over 47,000 unread messages. What was happening is that spammers were sending email with forged headers. Have you ever received a spam message that apparently has been sent from yourself?</p>
<p>I suppose it can be accomplished via a variety of ways, however I was able to reproduce this particular issue via generating one of these tasty spam mails via the following (all internally of course&#8230; I am not a spammer):</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1">telnet smtp.example.com <span class="nu0">25</span></pre></div></div></div></div></div></div></div>


<p>and then issuing these commands:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1">ehlo workstation.example.com
mail from:
rcpt to:
data
From: 
To: 
Subject: testing a loop
Message text
.
quit</pre></div></div></div></div></div></div></div>


<p>Notice the mail is being sent to the user&#8230; and from the user&#8230; </p>
<ol>
<li>The server would receive the email addressed to emailuser@example.com</li>
<li>goldfish would parse the message and notice it needed to respond to&#8230; emailuser@example.com</li>
<li>The mail was delivered</li>
<li>Rinse, wash, repeat</li>
</ol>
<p>The source of the message looked something like this:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1">root<span class="sy0">@</span>server:<span class="sy0">/</span>var<span class="sy0">/</span>local<span class="sy0">/</span>vmail<span class="sy0">/</span>example.com<span class="sy0">/</span>emailuser<span class="co0"># cat new/1220557062.P6882Q0M652544.server,S=1082</span>
Return-Path: 
Delivered-To: emailuser<span class="sy0">@</span>example.com
Received: from localhost <span class="br0">&#40;</span>localhost <span class="br0">&#91;</span>127.0.0.1<span class="br0">&#93;</span><span class="br0">&#41;</span> by server.example.com <span class="br0">&#40;</span>Postfix<span class="br0">&#41;</span> with ESMTP <span class="kw2">id</span> 923E9185F7 <span class="kw1">for</span> ; Thu, <span class="nu0">4</span> Sep <span class="nu0">2008</span> <span class="nu0">15</span>:<span class="nu0">37</span>:<span class="nu0">42</span> <span class="re5">-0400</span> <span class="br0">&#40;</span>EDT<span class="br0">&#41;</span>
X-Virus-Scanned: Debian amavisd-new at server.example.com
Received: from server.example.com <span class="br0">&#40;</span><span class="br0">&#91;</span>127.0.0.1<span class="br0">&#93;</span><span class="br0">&#41;</span> by localhost <span class="br0">&#40;</span>server.example.com <span class="br0">&#91;</span>127.0.0.1<span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#40;</span>amavisd-new, port <span class="nu0">10024</span><span class="br0">&#41;</span> with ESMTP <span class="kw2">id</span> q3tScOaitRoS <span class="kw1">for</span> ; Thu, <span class="nu0">4</span> Sep <span class="nu0">2008</span> <span class="nu0">15</span>:<span class="nu0">37</span>:<span class="nu0">42</span> <span class="re5">-0400</span> <span class="br0">&#40;</span>EDT<span class="br0">&#41;</span>
Received: from workstation.example.com <span class="br0">&#40;</span>workstation.example.com <span class="br0">&#91;</span>xx.xxx.xxx.xx<span class="br0">&#93;</span><span class="br0">&#41;</span> by server.example.com <span class="br0">&#40;</span>Postfix<span class="br0">&#41;</span> with ESMTP <span class="kw2">id</span> B89E1185EB <span class="kw1">for</span> ; Thu, <span class="nu0">4</span> Sep <span class="nu0">2008</span> <span class="nu0">15</span>:<span class="nu0">37</span>:<span class="nu0">25</span> <span class="re5">-0400</span> <span class="br0">&#40;</span>EDT<span class="br0">&#41;</span>
From: 
To: 
Subject: testing a loop
Message-Id: 
Date: Thu, <span class="nu0">4</span> Sep <span class="nu0">2008</span> <span class="nu0">15</span>:<span class="nu0">37</span>:<span class="nu0">25</span> <span class="re5">-0400</span> <span class="br0">&#40;</span>EDT<span class="br0">&#41;</span>
Message text</pre></div></div></div></div></div></div></div>


<p>and to prevent goldfish from causing havoc on the particular inbox (or mitigating what was already done&#8230; and preventing future issues), I added the following PHP:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="co1">//strip the line break from $address for checks</span>
<span class="re0">$addressCheck</span> <span class="sy0">=</span> <span class="kw3">substr</span><span class="br0">&#40;</span><span class="re0">$address</span><span class="sy0">,</span><span class="nu0">0</span><span class="sy0">,</span><span class="kw3">strlen</span><span class="br0">&#40;</span><span class="re0">$address</span><span class="br0">&#41;</span><span class="sy0">-</span><span class="nu0">1</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$addressCheck</span><span class="sy0">==</span><span class="re0">$email</span><span class="br0">&#41;</span>
<span class="br0">&#123;</span>
	<span class="re0">$log</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>addLine<span class="br0">&#40;</span><span class="st0">&quot;Email address from autoresponder table  
	is the same as the intended recipient! Not sending the 
	mail!&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="kw1">break</span><span class="sy0">;</span>
<span class="br0">&#125;</span></pre></div></div></div></div></div></div></div>


<p>just before letting the mail being sent&#8230;</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="kw3">mail</span><span class="br0">&#40;</span><span class="re0">$address</span><span class="sy0">,</span> <span class="re0">$subject</span><span class="sy0">,</span> <span class="re0">$message</span><span class="sy0">,</span> <span class="re0">$headers</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div></div></div></div></div></div>


<p>I love goldfish. It&#8217;s like a do it yourself autoresponder! Keep in mind, this code works on <strong>Version 002, patch level 1</strong>, but could very well not work on any future releases (there have been indications that a newer version is in the works). Maybe I will post a few more tweaks in upcoming posts if the latest stable stays around for much longer.</p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2008/09/09/goldfish-and-forged-spam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recovering after an OS X update</title>
		<link>http://karlherrick.com/dev/2008/09/01/recovering-after-an-os-x-update/</link>
		<comments>http://karlherrick.com/dev/2008/09/01/recovering-after-an-os-x-update/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 20:28:58 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Bash]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2008/09/01/recovering-after-an-os-x-update/</guid>
		<description><![CDATA[After applying Security Update 2008-005 to an OS X laptop this past week, I rebooted the operating system as instructed and received the nice warm gray screen with animated progress circle&#8230; however it stuck around for over 5 minutes. Obviously &#8230; <a href="http://karlherrick.com/dev/2008/09/01/recovering-after-an-os-x-update/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>After applying <a href="http://support.apple.com/kb/HT2647">Security Update 2008-005</a> to an OS X laptop this past week, I rebooted the operating system as instructed and received the nice warm gray screen with animated progress circle&#8230; however it stuck around for over 5 minutes. Obviously something went wrong.</p>
<p>Sitting at my administrative workstation I:</p>
<ul>
<li>looked at <a href="http://www.apple.com/remotedesktop/">Apple Remote Desktop</a> and noticed that the troubled laptop on the network had an odd status and I could not connect graphically (not that it would help if I could)</li>
<li>tried opening a terminal and <a href="http://en.wikipedia.org/wiki/Ping">ping</a>&#8216;ing. It responded.</li>
<li>was able to <a href="http://en.wikipedia.org/wiki/Secure_Shell">ssh</a> into the laptop. Running &#8216;<a href="http://en.wikipedia.org/wiki/Top_(Unix)">top</a>&#8216; showed that CrashReporter kept running.</li>
</ul>
<p>I wondered if rebooting it would have any different effect, so I issued a quick &#8220;reboot&#8221; over ssh and gave it another shot. This boot had the same behavior&#8230; So I tried the standard <a href="http://support.apple.com/kb/TS1417">recovery procedures</a> when things act odd:</p>
<ul>
<li>Restart into <a href="http://support.apple.com/kb/HT1492">single user mode</a> and fsck</li>
<li>Repair permissions</li>
</ul>
<p>Still no change. The only other &#8220;best idea&#8221; I had was to try and install the update again&#8230; but since I couldn&#8217;t login graphically I had to go through the command line (Mac&#8217;s seem so much cooler since being built on top of Unix).</p>
<ul>
<li>Download <a href="http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=20386&amp;cat=57&amp;platform=osx&amp;method=sa/SecUpd2008-005PPC.dmg">Security Update 2008-005 (PPC)</a> on the administrative workstation (target was a 700 MHz, PowerPC, iBook).</li>
<li>scp SecUpd2008-005PPC.dmg adminUser@host.fqdn:</li>
<li>ssh adminUser@host.fqdn</li>
<li>hdiutil attach ./SecUpd2008-005PPC.dmg</li>
<li>sudo install -pkg &#8220;SecUpd2008-005PPC.pkg&#8221; -target /</li>
<li>sudo reboot</li>
</ul>
<p>The laptop rebooted, went past the animated progress circle and auto logged in to the user account it had so many times previously. That made me happy. ;-)</p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2008/09/01/recovering-after-an-os-x-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>pyLiMaSound</title>
		<link>http://karlherrick.com/dev/2008/08/20/pylimasound/</link>
		<comments>http://karlherrick.com/dev/2008/08/20/pylimasound/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 00:54:12 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2008/08/20/pylimasound/</guid>
		<description><![CDATA[When life gives you lemons, make lemonade. This small application is my first real need to use the python language, and that makes me excited. Furthermore Ubuntu and Debian, in the desktop varieties, appear to come standard with PyGTK (your &#8230; <a href="http://karlherrick.com/dev/2008/08/20/pylimasound/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>When life gives you lemons, make lemonade. This small application is my first real need to use the python language, and that makes me excited. Furthermore Ubuntu and Debian, in the desktop varieties, appear to come standard with <a href="http://www.pygtk.org/">PyGTK</a> (your mileage may vary).</p>
<p>My main issue was that I needed to remotely adjust my OS X workstation&#8217;s sound, and I figured a control would be easier than opening a shell and running a script. Basically this will give you a small <a href="http://www.pygtk.org/docs/pygtk/class-gtkvscale.html">gtk.VScale</a> widget (a vertical slider widget used to select a value from a range) in a resizable window. When everything is all setup I also run it using <a href="http://alltray.sourceforge.net/">AllTray</a> so that it can be docked into the system tray.</p>
<div>
<div style="padding-left: 25px;float: left;width: 125px"><a href='http://karlherrick.com/dev/wp-content/uploads/2008/08/pylimasound-001.jpg' title='pylimasound-001.jpg'><img style="border: 0px" src='http://karlherrick.com/dev/wp-content/uploads/2008/08/pylimasound-001.jpg' alt='pylimasound-001.jpg' /></a></div>
<div style="float: left;width: 246px"><a href='http://karlherrick.com/dev/wp-content/uploads/2008/08/pylimasound-002.jpg' title='pylimasound-002.jpg'><img style="border: 0px" src='http://karlherrick.com/dev/wp-content/uploads/2008/08/pylimasound-002.jpg' alt='pylimasound-002.jpg' /></a></div>
<div style="clear: both"></div>
</div>
<p>When a value is selected using the widget it passes the value off to rsh, which in turn sends the command to a remote workstation (the command I have prefilled into the script works on OS X&#8217;s main volume):</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="kw2">rsh</span> <span class="re5">-l</span> remote_username mac_workstation.fqdn 
<span class="st0">&quot;osascript -e 'set Volume 4.6'&quot;</span></pre></div></div></div></div></div></div></div>


<p>The following, in the intended deployment requires password-less key based ssh connections between the workstation intended to remotely adjust the sound (any platform that supports PyGTK) and the Macintosh workstation:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="python"><pre class="de1"><span class="co1">#!/usr/bin/env python</span>
<span class="co1">#pyLiMaSound.py</span>
&nbsp;
<span class="kw1">import</span> <span class="kw3">os</span>
<span class="kw1">import</span> gtk
<span class="kw1">import</span> pygtk
&nbsp;
pygtk.<span class="me1">require</span><span class="br0">&#40;</span><span class="st0">&quot;2.0&quot;</span><span class="br0">&#41;</span>
&nbsp;
<span class="kw3">user</span><span class="sy0">=</span><span class="st0">&quot;remote_username&quot;</span>
host<span class="sy0">=</span><span class="st0">&quot;mac_workstation.fqdn&quot;</span>
&nbsp;
<span class="kw1">def</span> scale_set_default_values<span class="br0">&#40;</span>scale<span class="br0">&#41;</span>:
    scale.<span class="me1">set_update_policy</span><span class="br0">&#40;</span>gtk.<span class="me1">UPDATE_DELAYED</span><span class="br0">&#41;</span>
    scale.<span class="me1">set_digits</span><span class="br0">&#40;</span><span class="nu0">1</span><span class="br0">&#41;</span>
    scale.<span class="me1">set_value_pos</span><span class="br0">&#40;</span>gtk.<span class="me1">POS_BOTTOM</span><span class="br0">&#41;</span>
    scale.<span class="me1">set_draw_value</span><span class="br0">&#40;</span><span class="kw2">True</span><span class="br0">&#41;</span>
&nbsp;
<span class="kw1">class</span> pyLiMaSound:
    <span class="kw1">def</span> delete_event<span class="br0">&#40;</span><span class="kw2">self</span><span class="sy0">,</span> widget<span class="sy0">,</span> event<span class="sy0">,</span> data<span class="sy0">=</span><span class="kw2">None</span><span class="br0">&#41;</span>:
        <span class="kw1">print</span> <span class="st0">&quot;delete event occurred&quot;</span>
        <span class="kw1">return</span> <span class="kw2">False</span>
&nbsp;
    <span class="kw1">def</span> destroy<span class="br0">&#40;</span><span class="kw2">self</span><span class="sy0">,</span> widget<span class="sy0">,</span> data<span class="sy0">=</span><span class="kw2">None</span><span class="br0">&#41;</span>:
        <span class="kw1">print</span> <span class="st0">&quot;destroy signal occurred&quot;</span>
        gtk.<span class="me1">main_quit</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp;
    <span class="kw1">def</span> rsh_vol_cmd<span class="br0">&#40;</span><span class="kw2">self</span><span class="sy0">,</span> data<span class="br0">&#41;</span>:
        payload <span class="sy0">=</span> <span class="st0">&quot;rsh -l &quot;</span> + <span class="kw3">user</span> + <span class="st0">&quot; &quot;</span> + host 
            + <span class="st0">&quot; &quot;</span>osascript -e <span class="st0">'set Volume &quot; + 
            str(data.value) + &quot;'</span><span class="st0">&quot;&quot;</span>
	<span class="kw1">print</span> payload
        <span class="kw3">os</span>.<span class="me1">system</span><span class="br0">&#40;</span>payload<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
    <span class="kw1">def</span> <span class="kw4">__init__</span><span class="br0">&#40;</span><span class="kw2">self</span><span class="br0">&#41;</span>:
        <span class="kw2">self</span>.<span class="me1">window</span> <span class="sy0">=</span> gtk.<span class="me1">Window</span><span class="br0">&#40;</span>gtk.<span class="me1">WINDOW_TOPLEVEL</span><span class="br0">&#41;</span>
        <span class="kw2">self</span>.<span class="me1">window</span>.<span class="me1">set_default_size</span><span class="br0">&#40;</span><span class="nu0">50</span><span class="sy0">,</span> <span class="nu0">200</span><span class="br0">&#41;</span>
        <span class="kw2">self</span>.<span class="me1">window</span>.<span class="me1">connect</span><span class="br0">&#40;</span><span class="st0">&quot;delete_event&quot;</span><span class="sy0">,</span> <span class="kw2">self</span>.<span class="me1">delete_event</span><span class="br0">&#41;</span>
        <span class="kw2">self</span>.<span class="me1">window</span>.<span class="me1">connect</span><span class="br0">&#40;</span><span class="st0">&quot;destroy&quot;</span><span class="sy0">,</span> <span class="kw2">self</span>.<span class="me1">destroy</span><span class="br0">&#41;</span>
        <span class="kw2">self</span>.<span class="me1">window</span>.<span class="me1">set_border_width</span><span class="br0">&#40;</span><span class="nu0">10</span><span class="br0">&#41;</span>
&nbsp;
        adj1 <span class="sy0">=</span> gtk.<span class="me1">Adjustment</span><span class="br0">&#40;</span><span class="nu0">0.0</span><span class="sy0">,</span> <span class="nu0">0.0</span><span class="sy0">,</span> <span class="nu0">10.1</span><span class="sy0">,</span> <span class="nu0">0.1</span><span class="sy0">,</span> <span class="nu0">0.1</span><span class="sy0">,</span> <span class="nu0">0.1</span><span class="br0">&#41;</span>
	adj1.<span class="me1">connect</span><span class="br0">&#40;</span><span class="st0">&quot;value_changed&quot;</span><span class="sy0">,</span> <span class="kw2">self</span>.<span class="me1">rsh_vol_cmd</span><span class="br0">&#41;</span>
&nbsp;
        <span class="kw2">self</span>.<span class="me1">vscale</span> <span class="sy0">=</span> gtk.<span class="me1">VScale</span><span class="br0">&#40;</span>adj1<span class="br0">&#41;</span>
        scale_set_default_values<span class="br0">&#40;</span><span class="kw2">self</span>.<span class="me1">vscale</span><span class="br0">&#41;</span>
        <span class="kw2">self</span>.<span class="me1">window</span>.<span class="me1">add</span><span class="br0">&#40;</span><span class="kw2">self</span>.<span class="me1">vscale</span><span class="br0">&#41;</span>
        <span class="kw2">self</span>.<span class="me1">vscale</span>.<span class="me1">show</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
        <span class="kw2">self</span>.<span class="me1">window</span>.<span class="me1">show</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp;
    <span class="kw1">def</span> main<span class="br0">&#40;</span><span class="kw2">self</span><span class="br0">&#41;</span>:
        gtk.<span class="me1">main</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp;
<span class="kw1">if</span> __name__ <span class="sy0">==</span> <span class="st0">&quot;__main__&quot;</span>:
    control <span class="sy0">=</span> pyLiMaSound<span class="br0">&#40;</span><span class="br0">&#41;</span>
    control.<span class="me1">main</span><span class="br0">&#40;</span><span class="br0">&#41;</span></pre></div></div></div></div></div></div></div>


]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2008/08/20/pylimasound/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Autoresponders &#8211; a loop</title>
		<link>http://karlherrick.com/dev/2008/08/02/autoresponders-a-loop/</link>
		<comments>http://karlherrick.com/dev/2008/08/02/autoresponders-a-loop/#comments</comments>
		<pubDate>Sat, 02 Aug 2008 23:43:34 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Cron]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/2008/08/02/autoresponders-a-loop/</guid>
		<description><![CDATA[This past week I encountered an interesting situation between two web applications I work with regularly. The first is the goldfish autoresponder for postfix. The second is RT: Request Tracker. The situation went something like this: I had a ticket &#8230; <a href="http://karlherrick.com/dev/2008/08/02/autoresponders-a-loop/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This past week I encountered an interesting situation between two web applications I work with regularly. The first is the <a href="http://www.remofritzsche.ch/goldfish/">goldfish</a> autoresponder for postfix. The second is <a href="http://bestpractical.com/rt/">RT</a>: Request Tracker.</p>
<p>The situation went something like this:</p>
<ul>
<li>I had a ticket in <a href="http://bestpractical.com/rt/">RT</a> that I wanted to resolve.</li>
<li>I set the form to cc the comment to a group of users who were interested in the details of the resolution.</li>
<li>I applied the ticket in <a href="http://bestpractical.com/rt/">RT</a>.</li>
<li><a href="http://bestpractical.com/rt/">RT</a> cc&#8217;ed the users about the resolution.</li>
<li>One of the users had an autoresponder setup using <a href="http://www.remofritzsche.ch/goldfish/">goldfish</a>, so it emailed back to <a href="http://bestpractical.com/rt/">RT</a> about the user&#8217;s absence.</li>
<li><a href="http://bestpractical.com/rt/">RT</a> opened a ticket with the content of the email from the autoresponder, faithfully attaching the subject explaining the user&#8217;s absence.</li>
<li><a href="http://bestpractical.com/rt/">RT</a> then responded to the user&#8217;s email account about the new ticket&#8217;s creation.</li>
<li>Again <a href="http://www.remofritzsche.ch/goldfish/">goldfish</a> autoresponds to a message from <a href="http://bestpractical.com/rt/">RT</a>, creating a loop.</li>
</ul>
<p>Every five minutes a new ticket was being created in <a href="http://bestpractical.com/rt/">RT</a> because of goldfish&#8217;s configuration and cron job being set to run that often. I caught the cycle happening when the incoming queue of tickets had three or four created with their subjects typical of those created by an autoresponder.</p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2008/08/02/autoresponders-a-loop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exch 1.4.0 Submitted</title>
		<link>http://karlherrick.com/dev/2008/06/21/exch-140-submitted/</link>
		<comments>http://karlherrick.com/dev/2008/06/21/exch-140-submitted/#comments</comments>
		<pubDate>Sat, 21 Jun 2008 17:30:24 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Exch]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[XUL]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/?p=150</guid>
		<description><![CDATA[The last submission I made to the Firefox Add-ons site for Exch was for Firefox 3.0 beta 4 compatibility&#8230; and it was still waiting on getting approved. So I deleted the files for the stale versions, updated Exch for Firefox &#8230; <a href="http://karlherrick.com/dev/2008/06/21/exch-140-submitted/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The last submission I made to the Firefox Add-ons site for Exch was for Firefox 3.0 beta 4 compatibility&#8230; and it was still waiting on getting approved. So I deleted the files for the stale versions, updated Exch for Firefox 3.0 compatibility, and submitted this new version.</p>
<p>Hopefully it can get approved soon. I tested functionality on Ubuntu 8.04/Firefox 3 and on Windows XP Home/Firefox 3. It works as expected.</p>
<p>Changelog:</p>
<p>Minor update for 3.0 compatibility.</p>
<p><a href='http://karlherrick.com/dev/wp-content/uploads/2008/06/exch-140-submitted-500x178.jpg' title='Exch 1.4.0 Submitted'><img src='http://karlherrick.com/dev/wp-content/uploads/2008/06/exch-140-submitted-500x178.jpg' alt='Exch 1.4.0 Submitted' /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2008/06/21/exch-140-submitted/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ImageMagick Magic!</title>
		<link>http://karlherrick.com/dev/2008/06/11/imagemagick-magic/</link>
		<comments>http://karlherrick.com/dev/2008/06/11/imagemagick-magic/#comments</comments>
		<pubDate>Thu, 12 Jun 2008 01:21:00 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/?p=149</guid>
		<description><![CDATA[I enjoy using ImageMagick&#8230; most of it has been via PHP CLI, however here we have a short example in Bash: #!/bin/bash for file in `ls -d *.png` ; do convert -crop 1280X985+0+24 $file $&#40;basename $file .png&#41;.jpg; done Basically this &#8230; <a href="http://karlherrick.com/dev/2008/06/11/imagemagick-magic/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I enjoy using <a href="http://www.imagemagick.org/">ImageMagick</a>&#8230; most of it has been via PHP CLI, however here we have a short example in Bash:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="co0">#!/bin/bash</span>
<span class="kw1">for</span> <span class="kw2">file</span> <span class="kw1">in</span> <span class="sy0">`</span><span class="kw2">ls</span> <span class="re5">-d</span> <span class="sy0">*</span>.png<span class="sy0">`</span> ; <span class="kw1">do</span>
	convert <span class="re5">-crop</span> 1280X985+<span class="nu0">0</span>+<span class="nu0">24</span> <span class="re1">$file</span> 
	$<span class="br0">&#40;</span><span class="kw2">basename</span> <span class="re1">$file</span> .png<span class="br0">&#41;</span>.jpg;
<span class="kw1">done</span></pre></div></div></div></div></div></div></div>


<p>Basically this does the following:</p>
<ul>
<li>Makes a listing of all .png files in the current directory</li>
<li>Runs the &#8220;convert&#8221; command (part of ImageMagick) on each .png file in that listing
<ul>
<li>Crops the image specified by the <a href="http://www.imagemagick.org/Magick++/Geometry.html">geometry arguments</a></li>
<li>Saves each image as a .jpg</li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2008/06/11/imagemagick-magic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Leopard on a Dual 800 MHz PowerPC G4</title>
		<link>http://karlherrick.com/dev/2008/06/07/leopard-on-a-dual-800-mhz-powerpc-g4/</link>
		<comments>http://karlherrick.com/dev/2008/06/07/leopard-on-a-dual-800-mhz-powerpc-g4/#comments</comments>
		<pubDate>Sat, 07 Jun 2008 14:08:52 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Apple]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/?p=147</guid>
		<description><![CDATA[You can install OS X 10.5 to a workstation below listed Leopard requirements:]]></description>
			<content:encoded><![CDATA[<p>You can install OS X 10.5 to a workstation below listed Leopard requirements:</p>
<p><a title="Leopard on a Dual 800 MHz PowerPC G4" href="http://karlherrick.com/dev/wp-content/uploads/2008/06/2008-05-30_1053-dual-800-mhz.jpg"><img style="border: 0px" src="http://karlherrick.com/dev/wp-content/uploads/2008/06/2008-05-30_1053-dual-800-mhz.jpg" alt="Leopard on a Dual 800 MHz PowerPC G4" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2008/06/07/leopard-on-a-dual-800-mhz-powerpc-g4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe Buzzword HTML Export</title>
		<link>http://karlherrick.com/dev/2008/06/02/adobe-buzzword-html-export/</link>
		<comments>http://karlherrick.com/dev/2008/06/02/adobe-buzzword-html-export/#comments</comments>
		<pubDate>Tue, 03 Jun 2008 00:18:25 +0000</pubDate>
		<dc:creator>Karl Herrick</dc:creator>
				<category><![CDATA[Adobe]]></category>

		<guid isPermaLink="false">http://karlherrick.com/dev/?p=146</guid>
		<description><![CDATA[So I tried Adobe Buzzword today&#8230; It flagged all of my &#8220;online&#8221; words as misspelled, except for the first which I changed to &#8220;on-line&#8221; to test&#8230; It wouldn&#8217;t allow an import or export of .odt files, and the zipped HTML &#8230; <a href="http://karlherrick.com/dev/2008/06/02/adobe-buzzword-html-export/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So I tried <a href="http://buzzword.acrobat.com/">Adobe Buzzword</a> today&#8230; It flagged all of my &#8220;online&#8221; words as misspelled, except for the first which I changed to &#8220;on-line&#8221; to test&#8230; It wouldn&#8217;t allow an import or export of .odt files, and the zipped HTML export seemed quite plain, though I didn&#8217;t push it. I wonder how it would have handled images and position? And what is Aspose.Words for .NET?</p>
<p>Here&#8217;s the short source:</p>
<p>&lt;div style=&#8221;font-size: 9px;&#8221;&gt;<br />
&lt;pre&gt;<br />
&lt;html&gt;<br />
  &lt;head&gt;<br />
    &lt;meta http-equiv=&#8221;Content-Type&#8221; content=&#8221;text/html; charset=utf-8&#8243; /&gt;<br />
    &lt;meta name=&#8221;generator&#8221; content=&#8221;Aspose.Words for .NET 4.4.2.0&#8243; /&gt;<br />
    &lt;title&gt;An on-line document&#8230; with&lt;/title&gt;<br />
  &lt;/head&gt;<br />
  &lt;body&gt;<br />
    &lt;div class=&#8221;Section1&#8243;&gt;<br />
      &lt;p style=&#8221;margin-left:0pt; margin-right:0pt; margin-top:0pt; margin-bottom:0pt; &#8220;&gt;&lt;span style=&#8221;font-family:&#8217;Times New Roman&#8217;; font-size:12pt; &#8220;&gt;An on-line document&#8230; with Buzzword&#8230;  An online document&#8230; with Buzzword&#8230;  An online document&#8230; with Buzzword&#8230;  An online document&#8230; with Buzzword&#8230;  An online document&#8230; with Buzzword&#8230;  An online document&#8230; with Buzzword&#8230;  An online document&#8230; with Buzzword&#8230;  An online document&#8230; with Buzzword&#8230;  An online document&#8230; with Buzzword&#8230;  An online document&#8230; with Buzzword&#8230;  An online document&#8230; with Buzzword&#8230;  An online document&#8230; with Buzzword&#8230;  An online document&#8230; with Buzzword&#8230;  An online document&#8230; with Buzzword&#8230;  An online document&#8230; with Buzzword&#8230;  An &lt;/span&gt;&lt;span style=&#8221;font-family:&#8217;Times New Roman&#8217;; font-size:12pt; font-weight:bold; color:#ffb300; background-color:#303030; &#8220;&gt;online document&#8230; with Buzzword&#8230;  An online document&#8230; with Buzzword&#8230;  An online document&#8230; with Buzzword&#8230;  An online document&#8230; with Buzzword&#8230;  An online document&#8230; with Buzzword&#8230;<br />
    &lt;/div&gt;<br />
  &lt;/body&gt;<br />
&lt;/html&gt;<br />
&lt;/pre&gt;<br />
&lt;/div&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2008/06/02/adobe-buzzword-html-export/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

