<?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>Zack of All Trades &#187; Computing</title>
	<atom:link href="http://zackofalltrades.com/category/tech/computing/feed/" rel="self" type="application/rss+xml" />
	<link>http://zackofalltrades.com</link>
	<description>… and master of, um… let me get back to you on that…</description>
	<lastBuildDate>Sat, 13 Mar 2010 03:41:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>bc</title>
		<link>http://zackofalltrades.com/2010/03/bc/</link>
		<comments>http://zackofalltrades.com/2010/03/bc/#comments</comments>
		<pubDate>Sat, 13 Mar 2010 03:24:01 +0000</pubDate>
		<dc:creator>Zack Williams</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[How-To]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://zackofalltrades.com/?p=162</guid>
		<description><![CDATA[This post is mainly inspired by <a href="http://www.marco.org/441168915">this post by Marco</a>, about <a href="http://www.acqualia.com/soulver/">Soulver</a>, which has, in their words, a "word processor style interface".   I view this as a way to avoid saying "Command Line", which it basically is. 

I'm kind of surprised at this veneration - the concept is nothing new, as there's already as similar calculator built into Mac OS X and other Unix operating systems, called <a href="http://www.gnu.org/software/bc/">bc</a>, which is pretty much identical in functionality, with a few quirks. 
]]></description>
			<content:encoded><![CDATA[<p>This post is mainly inspired by <a href="http://www.marco.org/441168915">this post by Marco</a>, about <a href="http://www.acqualia.com/soulver/">Soulver</a>, which has, in their words, a &#8220;word processor style interface&#8221;.   I view this as a way to avoid saying &#8220;Command Line&#8221;, which it basically is. </p>
<p>I&#8217;m kind of surprised at this veneration &#8211; the concept is nothing new, as there&#8217;s already as similar calculator built into Mac OS X and other Unix operating systems, called <a href="http://www.gnu.org/software/bc/">bc</a>, which is pretty much identical in functionality, with a few quirks. </p>
<p>The first time you load <code>bc</code> up and use it, you&#8217;ll probably find that it&#8217;s defaults aren&#8217;t the best &#8211; for example, when dividing a number, you get only the quotient back (the part in front of the decimal place), which isn&#8217;t too useful in most cases.  </p>
<pre>
10/3
3
</pre>
<p>If you set the &#8220;scale&#8221; variable it will return a proper float with that number of digits: </p>
<pre>
scale=5
10/3
3.33333
</pre>
<p>Also, the gnu version of <code>bc</code> prints a gnu advertisement at the front of every session:</p>
<pre>
$ bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
</pre>
<p>The fix for this is as follows &#8211; <code>bc</code> (at least the common gnu version) will take a set of arguments from an environmental variable (set in your <code>.profile</code> or similar shell init script) like so:</p>
<pre>
BC_ENV_ARGS='-q /Users/username/.bc'
</pre>
<p>The <code>-q</code> suppresses the advert, and the path to my <code>.bc</code> file is a set of commands that is executed before every session. Note that it needs a full path supplied &#8211; you can&#8217;t use ~ to specify your home folder, as <code>bc</code> doesn&#8217;t perform shell expansion on it&#8217;s arguments passed in this way.  My <code>.bc</code> file is simple &#8211; it just sets the scale variable:</p>
<pre>
scale=5
</pre>
<p>You could also predefine functions and variables as well in there if you cared to.  </p>
]]></content:encoded>
			<wfw:commentRss>http://zackofalltrades.com/2010/03/bc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10.6 option key trick works on WWAN menu extra as well</title>
		<link>http://zackofalltrades.com/2009/12/10-6-option-key-trick-works-on-wwan-menu-extra-as-well/</link>
		<comments>http://zackofalltrades.com/2009/12/10-6-option-key-trick-works-on-wwan-menu-extra-as-well/#comments</comments>
		<pubDate>Sun, 20 Dec 2009 21:29:26 +0000</pubDate>
		<dc:creator>Zack Williams</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Wireless]]></category>

		<guid isPermaLink="false">http://zackofalltrades.com/?p=160</guid>
		<description><![CDATA[Under Mac OS X 10.6, holding down the option key on the keyboard when clicking on menu extras (the icons on the right side of the menu bar) often tells more information.  The Airpot menu, for example, expands to tell wifi channel,  signal strength, speed, etc. 
This also applies to the WWAN menu: [...]]]></description>
			<content:encoded><![CDATA[<p>Under Mac OS X 10.6, holding down the option key on the keyboard when clicking on menu extras (the icons on the right side of the menu bar) often tells more information.  The Airpot menu, for example, expands to tell wifi channel,  signal strength, speed, etc. </p>
<p>This also applies to the WWAN menu: </p>
<div style="text-align:center;"><img src="http://zackofalltrades.com/wp-content/uploads/2009/12/Screen-shot-2009-11-30-at-13.06.13-.png" alt="Screen shot 2009-11-30 at 13.06.13 .png" border="0" width="269" height="180" /></div>
<p>Not a whole lot of information, but better than nothing.  Also, the driver is built in for my Sprint card, which wasn&#8217;t the case in 10.5</p>
]]></content:encoded>
			<wfw:commentRss>http://zackofalltrades.com/2009/12/10-6-option-key-trick-works-on-wwan-menu-extra-as-well/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How slow is a floppy?</title>
		<link>http://zackofalltrades.com/2009/12/how-slow-is-a-floppy/</link>
		<comments>http://zackofalltrades.com/2009/12/how-slow-is-a-floppy/#comments</comments>
		<pubDate>Sun, 20 Dec 2009 21:22:07 +0000</pubDate>
		<dc:creator>Zack Williams</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[How-To]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://zackofalltrades.com/?p=157</guid>
		<description><![CDATA[This slow:

# dd if=dban-1.0.7_i386.ima of=/dev/disk3
2880+0 records in
2880+0 records out
1474560 bytes transferred in 192.277221 secs (7669 bytes/sec)

That&#8217;s over 3 minutes, using a USB floppy drive connected my MacBook Pro.  
(I needed a copy of DBAN on floppy so I could erase an ancient 60Mhz Pentium) 
]]></description>
			<content:encoded><![CDATA[<p>This slow:</p>
<pre>
# dd if=dban-1.0.7_i386.ima of=/dev/disk3
2880+0 records in
2880+0 records out
1474560 bytes transferred in 192.277221 secs (7669 bytes/sec)
</pre>
<p>That&#8217;s over 3 minutes, using a USB floppy drive connected my MacBook Pro.  </p>
<p>(I needed a copy of <a href="http://www.dban.org/">DBAN</a> on floppy so I could erase an ancient 60Mhz Pentium) </p>
]]></content:encoded>
			<wfw:commentRss>http://zackofalltrades.com/2009/12/how-slow-is-a-floppy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I love my internet connection</title>
		<link>http://zackofalltrades.com/2009/11/i-love-my-internet-connection/</link>
		<comments>http://zackofalltrades.com/2009/11/i-love-my-internet-connection/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 00:40:18 +0000</pubDate>
		<dc:creator>Zack Williams</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://zackofalltrades.com/?p=155</guid>
		<description><![CDATA[
Length: 527943510 (503M) [application/octet-stream]
Saving to: “MacOSXServerUpdCombo10.6.2.dmg”

100%[======================================>] 527,943,510 11.2M/s   in 75s     

2009-11-10 17:34:20 (6.70 MB/s) - “MacOSXServerUpdCombo10.6.2.dmg” saved [527943510/527943510]

]]></description>
			<content:encoded><![CDATA[<pre>
Length: 527943510 (503M) [application/octet-stream]
Saving to: “MacOSXServerUpdCombo10.6.2.dmg”

100%[======================================>] 527,943,510 11.2M/s   in 75s     

2009-11-10 17:34:20 (6.70 MB/s) - “MacOSXServerUpdCombo10.6.2.dmg” saved [527943510/527943510]
</pre>
]]></content:encoded>
			<wfw:commentRss>http://zackofalltrades.com/2009/11/i-love-my-internet-connection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trying out Opensolaris 2008.11</title>
		<link>http://zackofalltrades.com/2008/11/trying-out-opensolaris-200811/</link>
		<comments>http://zackofalltrades.com/2008/11/trying-out-opensolaris-200811/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 16:40:21 +0000</pubDate>
		<dc:creator>Zack Williams</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[opensolaris]]></category>

		<guid isPermaLink="false">http://zackofalltrades.com/?p=152</guid>
		<description><![CDATA[Notes on installing OpenSolaris from a sysadmin perspective. ]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m cycling through servers , and thought I&#8217;d try something new.  Previously, I&#8217;ve generally used <a href="http://centos.org">Centos</a> and other Redhat derivative systems as home server, as I&#8217;m used to the RPM package manager.  Recently there&#8217;s been a lot of buzz out there about <a href="http://www.opensolaris.com/">OpenSolaris</a>.  Most of this revolves around the <a href="http://www.sun.com/software/solaris/zfs.jsp">ZFS filesystem</a>, which has an amazing feature set, and can implement high end data integrity functionality in software without high end hardware RAID systems underneath it. </p>
<p>To facilitate this, I bought a <a href="http://dell.com/content/products/productdetails.aspx/pedge_sc440">Dell PowerEdge SC440</a> when they were really cheap ($199 base), and with a small processor and RAM bump, it&#8217;s actually a fairly solid server.  It uses the Intel <a href="http://www.intel.com/Products/chipsets/3000_3010/index.htm">3000 chipset</a>, with a <a href="http://www.intel.com/design/chipsets/datashts/307013.htm">ICH7</a> Southbridge which has 4x 3.0Gbit SATA connectors.  It should also be able to take 8GB of RAM, assuming Dell didn&#8217;t hobble the chipset &#8211; they claim a 4GB max.  If you&#8217;re looking for a server, this isn&#8217;t too bad a choice &#8211; if you&#8217;re an AMD fan the Dell T105, with it&#8217;s optional quad-core Barcelona (Phenom class) Opteron also looks pretty good. </p>
<p>I <a href="http://www.opensolaris.com/get/index.jsp">downloaded</a> a prerelease version (101, rc1b) version, which boots to a live CD and then allows you to install the base system.   It&#8217;s a very nice install process, and fairly painless.  I had no trouble installing on one disk, adding a mirror to the root ZFS pool, and  updating on the system, but beyond that I started running into walls. </p>
<p>Apparently, in this version, <code>zfs list</code> by default only shows filesystems and volumes, and <strong>not snapshots</strong>, unlike every other example I&#8217;ve seen from documentation or on the web.  To list snapshots as well, you have to use <code>zfs list -t all</code> for everything or <code>zfs list -t snapshots</code> for just the snapshots.  </p>
<p>Transferring a files from my Mac and Linux computers was easy via NFS with the <code>zfs set sharenfs=rw rpool/example</code>.  I was slightly perturbed that there were no firewall changes required to do this, as I&#8217;m used to secure by default systems like CentOS or OpenBSD.</p>
<p>I still don&#8217;t really get SMF as Sun&#8217;s replacement for init scripts.  It seems to only be implemented halfway in this release &#8211; you&#8217;d think they would go through the system and get rid of all their legacy boot scripts (as Apple did when they developed <code>launchd</code>), but apparently not.   </p>
<p>For being a company focused on Web 2.0 developers, I&#8217;ve had more trouble trying to get their website working than with any other vendor &#8211; here&#8217;s an error I got when trying to log into the <a href="http://forums.opensolaris.com">OpenSolaris Forums</a>. I also had to enter the same login information twice to get to the error: </p>
<p><img src="http://zackofalltrades.com/wp-content/uploads/2008/11/picture-5.png" alt="Picture 5.png" border="0" width="620" height="110" /></p>
<p>The <a href="http://dlc.sun.com/osol/docs/content/2008.11/getstart//index.html">OpensSolaris install documentation</a> is sufficient, but doesn&#8217;t go much beyond updating the system.  You really have to look around for documentation &#8211; here&#8217;s a few links I&#8217;ve found so far:  </p>
<ul>
<li><a href="http://www.genunix.org/wiki/index.php/OpenSolaris_New_User_FAQ">OpenSolaris New User FAQ</a></li>
<li><a href="http://opensolaris.org/os/community/documentation/docs-index/">Current Documentation at OpenSolaris.org</a></li>
</ul>
<p>That all said, it&#8217;s a well running, stable system.  I&#8217;ll post more as I work with it. </p>
]]></content:encoded>
			<wfw:commentRss>http://zackofalltrades.com/2008/11/trying-out-opensolaris-200811/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Compiling for multiple processor architectures in Mac OS X 10.5 Leopard</title>
		<link>http://zackofalltrades.com/2008/11/compiling-for-multiple-processor-architectures-in-mac-os-x-105-leopard/</link>
		<comments>http://zackofalltrades.com/2008/11/compiling-for-multiple-processor-architectures-in-mac-os-x-105-leopard/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 06:45:26 +0000</pubDate>
		<dc:creator>Zack Williams</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[How-To]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://zackofalltrades.com/?p=149</guid>
		<description><![CDATA[If you're compiling code on Mac OS X 10.5 Leopard from source with standard Unix tools like make, your resulting binary will usually be compiled only for the architecture you're currently running on.   Here's how to fix that. ]]></description>
			<content:encoded><![CDATA[<p>This is probably covered elsewhere in far greater detail, but I thought I&#8217;d drop a note here for my own reference more than anything. </p>
<p>If you&#8217;re compiling code on Mac OS X 10.5 Leopard from source with standard Unix tools like <code>make</code>, your resulting binary will usually be compiled only for the architecture you&#8217;re currently running on.   For example, when I first compiled a copy of <a href="http://sourceforge.net/projects/pwgen/">pwgen</a> for making sets of random passwords, the binary I got was i386 only: </p>
<pre>
$ file pwgen
pwgen: Mach-O executable i386
</pre>
<p>But, if you modify the Makefile to include the 4 architectures that Mac OS X (currently) supports: </p>
<pre>
CFLAGS = -arch i386 -arch x86_64 -arch ppc7400 -arch ppc64
LDFLAGS =  -arch i386 -arch x86_64 -arch ppc7400 -arch ppc64
</pre>
<p>GCC will be run with those options when compiling the code and creating the final binary, and you&#8217;ll get a &#8220;fat&#8221; binary that supports all the processor architectures: </p>
<pre>
$ file pwgen
pwgen: Mach-O universal binary with 4 architectures
pwgen (for architecture ppc7400):	Mach-O executable ppc
pwgen (for architecture ppc64):	Mach-O 64-bit executable ppc64
pwgen (for architecture i386):	Mach-O executable i386
pwgen (for architecture x86_64):	Mach-O 64-bit executable x86_64
</pre>
<p>Note that doing compiling anything on OS X will require that you install the Developer Tools, which you can download from the <a href="http://developer.apple.com/">Apple Developer Connection</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://zackofalltrades.com/2008/11/compiling-for-multiple-processor-architectures-in-mac-os-x-105-leopard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fixing Bluetooth and Optical dropouts on a Mac Mini</title>
		<link>http://zackofalltrades.com/2008/11/fixing-bluetooth-and-optical-dropouts-on-a-mac-mini/</link>
		<comments>http://zackofalltrades.com/2008/11/fixing-bluetooth-and-optical-dropouts-on-a-mac-mini/#comments</comments>
		<pubDate>Sun, 09 Nov 2008 21:24:25 +0000</pubDate>
		<dc:creator>Zack Williams</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[How-To]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[bluetooth]]></category>
		<category><![CDATA[cd]]></category>
		<category><![CDATA[dvd]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[mac mini]]></category>

		<guid isPermaLink="false">http://zackofalltrades.com/?p=147</guid>
		<description><![CDATA[The Bluetooth and Optical Drive stopped working reliably on my Mac Mini a few days ago. Here's what I did to fix it.]]></description>
			<content:encoded><![CDATA[<p>Bluetooth stopped working reliably on my Mac Mini (2.0Ghz Intel Core2Duo) a few days ago.   It would work for a while, then nothing.  Finally I got a menu bar icon that looked like this: </p>
<p><img src="http://zackofalltrades.com/wp-content/uploads/2008/11/bt-menu-x.png" alt="bt_menu_x.png" border="0" width="208" height="53" /></p>
<p>Obviously that&#8217;s not correct, as the bluetooth card is built in, and should always be connected.  </p>
<p>At first I though I just had a bad bluetooth card, but then I started having issues reading CDs and DVD&#8217;s in the optical drive and the lightbulb went on in my head.  </p>
<p>Both these components are electrically connected via a mezzanine board inside the Mac Mini. There are some good pictures of this <a href="http://www.applefritter.com/Mac_Mini_Take_Apart_Guide">here at AppleFritter.com</a>.  Basically, to put memory into a Mini, you have to disconnect and lift off the subframe which contains the optical, hard disk, bluetooth, and a ribbon cable to the audio connectors, all of which connect via the mezzanine board.</p>
<p>To fix, I just popped open the Mini again, lifted the subframe and mezzanine board out then and plugged it back in, and everything was back to normal.  It must have worked it&#8217;s way loose when I installed it, or due to thermal expansion/contraction after using it for the last year. </p>
<p>Moral of the story? If your Mini is acting weird, try reseating the internal components.   </p>
]]></content:encoded>
			<wfw:commentRss>http://zackofalltrades.com/2008/11/fixing-bluetooth-and-optical-dropouts-on-a-mac-mini/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extracting useful dates from bank CSV files</title>
		<link>http://zackofalltrades.com/2008/10/extracting-useful-dates-from-bank-csv-files/</link>
		<comments>http://zackofalltrades.com/2008/10/extracting-useful-dates-from-bank-csv-files/#comments</comments>
		<pubDate>Sun, 12 Oct 2008 04:52:17 +0000</pubDate>
		<dc:creator>Zack Williams</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[How-To]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[bank]]></category>
		<category><![CDATA[csv]]></category>
		<category><![CDATA[date]]></category>
		<category><![CDATA[financial]]></category>
		<category><![CDATA[formatting]]></category>
		<category><![CDATA[spreadsheet]]></category>

		<guid isPermaLink="false">http://zackofalltrades.com/?p=142</guid>
		<description><![CDATA[I download activity from my bank in CSV format to work on it in a spreadsheet, which is pretty useful when you're reconciling accounts, etc.  Unfortunately, the date as given in the file isn't in a format recognizable by a spreadsheet. Here's how to change that. ]]></description>
			<content:encoded><![CDATA[<p>I download activity from my bank in CSV format to work on it in a spreadsheet, which is pretty useful when you&#8217;re reconciling accounts, etc.  Unfortunately, the date as given in the file isn&#8217;t in a format recognizable by a spreadsheet (Excel in this case, but most other spreadsheet programs use an identical formula language).  Here&#8217;s how to change that. </p>
<p>The date format as it comes from the bank looks like this:</p>
<pre>
20081009120000[0:GMT]
</pre>
<p>From a datestamp perspective, it&#8217;s pretty useful &#8211; gives the whole date and time, plus the timezone.  In my bank&#8217;s case, the time and timezone is always noon and GMT, so I&#8217;d much rather have just the date. </p>
<p>Assuming that the above value is in cell B1, this formula will extract a date in the considerably more useful YYYY-MM-DD format:</p>
<pre>
= LEFT(B1,4) &#038; "-" &#038; RIGHT(LEFT(B1,6),2) &#038; "-" &#038; RIGHT(LEFT(B1,8),2)
</pre>
<p>This formula prints 2008-10-09 for the above date string.  If you want to get rid of the original date column, copy the new column of dates, then do a &#8220;Paste Special&#8230;&#8221; selecting &#8220;Values&#8221;, and it will no longer be dependent on the original date column. </p>
]]></content:encoded>
			<wfw:commentRss>http://zackofalltrades.com/2008/10/extracting-useful-dates-from-bank-csv-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Changing to a non-xen kernel in CentOS 5 (so you can run VMware Server)</title>
		<link>http://zackofalltrades.com/2008/09/changing-to-a-non-xen-kernel-in-centos-5-so-you-can-run-vmware-server/</link>
		<comments>http://zackofalltrades.com/2008/09/changing-to-a-non-xen-kernel-in-centos-5-so-you-can-run-vmware-server/#comments</comments>
		<pubDate>Mon, 22 Sep 2008 01:11:02 +0000</pubDate>
		<dc:creator>Zack Williams</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[How-To]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[virtualization]]></category>

		<guid isPermaLink="false">http://zackofalltrades.com/?p=140</guid>
		<description><![CDATA[Quick instructions for changing your kernel out on CentOS 5 so you can run VMWare Server. ]]></description>
			<content:encoded><![CDATA[<p><a href="http://vmware.com/">VMware</a> conflicts with the <a href="http://www.xen.org/">Xen</a> hypervisor in the Linux kernel, making their use mutually exclusive.  This is because they both use the hardware assisted virtualization features of the processor. </p>
<p>Why would you want to do this, when Xen can offer better performance than VMware?  Portability &#8211; I can run a VMware virtual machine on Mac under VMware Fusion, on Windows under VMware Server, Workstation, or Player.  </p>
<p>In my office, I&#8217;ve got a Dell Poweredge 830 with 8GB RAM, but my desktop computer is a Mac Mini which maxes out at 2GB RAM. It&#8217;s a no brainer to use the Dell for setting up the VM&#8217;s and then moving them to other machines when the time comes. </p>
<p>If your CentOS 5 box is running the xen kernel and try to install <a href="http://vmware.com/beta/server/">VMware Server 2.0</a> (currently in beta), you&#8217;ll get the following error when trying to install the RPM:</p>
<pre> You cannot install VMware Server on a system running a xen kernel</pre>
<p>As a result, you need to switch to a non-xen kernel.</p>
<p>To do this, you first need to install the kernel. <code>yum</code> makes this easy:</p>
<pre>yum install kernel</pre>
<p>Then remove xen and the kernel-xen packages:</p>
<pre>yum remove xen kernel-xen</pre>
<p>Then you have to specify which kernel you want to run in <code>/boot/grub/grub.conf</code>. In that file there&#8217;s a list of kernels available to boot from:</p>
<pre>
#boot=/dev/sda
default=1
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-92.1.10.el5)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.18-92.1.10.el5 ro root=LABEL=/1 rhgb quiet
        initrd /boot/initrd-2.6.18-92.1.10.el5.img
title CentOS (2.6.18-92.1.10.el5xen)
        root (hd0,0)
        kernel /boot/xen.gz-2.6.18-92.1.10.el5
        module /boot/vmlinuz-2.6.18-92.1.10.el5xen ro root=LABEL=/1 rhgb quiet
        module /boot/initrd-2.6.18-92.1.10.el5xen.img
</pre>
<p>The line that says <code>default=</code> specifies which kernel to load, where 0 is the first one listed in the file.  In my case, I had to change the line that says <code>default=1</code> to <code>default=0</code> to specify the non-xen kernel. </p>
<p>Reboot, and you&#8217;re good to go &#8211; the VMware RPM will install, and VMware server runs just fine. </p>
]]></content:encoded>
			<wfw:commentRss>http://zackofalltrades.com/2008/09/changing-to-a-non-xen-kernel-in-centos-5-so-you-can-run-vmware-server/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>10 years of multiprocessor computing</title>
		<link>http://zackofalltrades.com/2008/07/10-years-of-multiprocessor-computing/</link>
		<comments>http://zackofalltrades.com/2008/07/10-years-of-multiprocessor-computing/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 15:09:19 +0000</pubDate>
		<dc:creator>Zack Williams</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[smp]]></category>

		<guid isPermaLink="false">http://zackofalltrades.com/?p=139</guid>
		<description><![CDATA[In which I navel gaze about the first computer I built, share specs, and reminisce about multiprocessor computers]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been 10 years since I added a second processor to the computer I built for college, which was my first multiprocessor computer.    Now, almost every desktop or laptop computer you buy has a multicore processor, but back then it was a total rarity.   </p>
<p>The specs for my first machine seem quite mundane compared with what exists today, but this machine was totally awesome for the time.  As this was my college computer, my parents helped out with it some, but I also paid for a good deal of it from summer jobs and savings &#8211; at this time in my life, building a computer from scratch and having it work well was my pride and joy: </p>
<ul>
<li> Tyan Titan ATX S1668 motherboard</li>
<li> Pentium Pro 200Mhz, with 256kb onboard cache</li>
<li> 64MB of ECC EDO RAM</li>
<li> Mylex dual channel fast SCSI-2 card (2x 20MB/sec channels)</li>
<li> Micropolis 4GB Tomahawk 7200RPM hard disk</li>
<li> SCSI CD-ROM</li>
<li> Matrox Millenium 8MB video card</li>
<li> Iiyama 17&#8243; trinitron (Sony tube) monitor</li>
</ul>
<p>To give you an idea of what the computer options out there were in the summer of 1997, the Pentium II had just come out, and there were very few good multiprocessor motherboards available and it had a huge price premium because of it&#8217;s newness.  The PII also ran it&#8217;s cache at half the processor speed, whereas the Pentium Pro ran it at the full speed, so the PPro 200Mhz was often faster in cache-intensive tasks than a comparable PII 233Mhz. </p>
<p>I bought this machine for running Linux, and so the Pentium Pro&#8217;s poor 16 bit performance that pushed Windows 95/98 users away from it wasn&#8217;t a concern for me.   The original Pentium was still out there, but the price/performance ratio wasn&#8217;t as good as the Pentium Pro, and the motherboard chipsets<br />
that existed for it had tradeoffs in terms of supported memory or SMP capabilities.    </p>
<p>The peripheral devices I had were also a bit exotic.  When I bought it, I had no idea that Micropolis had just gone under, so the warranty on my hard disk was pretty much moot at time of purchase.  On the upside, I never had trouble with it, and it was very fast compared to the IDE disks on the market, which had generally horrible performance on a multitasking operating system. </p>
<p>The Matrox Millenium was probably the part I was most proud of.  It was fast, well supported by X11, and had 8MB of VRAM.  This was a time before 3D acceleration was common &#8211; the first functional 3D card, the 3dfx Voodoo 1 was available about this time, and only had 4MB of RAM split between framebuffer and texture storage (some manufacturers made 6MB Voodoo 1 cards with 4MB of texture storage &#8211; those were hot items).    The Millenium was able to run the Iiyama monitor at 1600&#215;1200 resolution, which frankly was fuzzy and tiny, but at the time I didn&#8217;t mind much &#8211; having a lot of pixels meant a lot of xterms on screen.  This card cost about $400 at the time, and was the most I&#8217;ve ever spent on a video card. </p>
<p>When I first assembled that machine, I only had enough money for one processor &#8211; back them a 200Mhz Pentium Pro ran about $500.  In the summer of 1998 (thus the 10 years in the title), I had enough money to buy another Pentium Pro &#8211; by this time the PII was established as the dominant processor architecture, and the prices on a PPro had dropped to more reasonable levels.    I was running Redhat Linux at the time, and if you compiled it from source, the 1.3 kernel series finally had somewhat decent SMP performance rather than single lock over all the kernel.  </p>
<p>Later on, when the Pentium Pro was nearly obsolete I bought two 1MB cache processors, which were a slight performance boost, and upgraded the RAM to 256MB. I still have most of the parts to this machine lying around somewhere. </p>
<p>The multiprocessor boost was much more noticeable back then &#8211; on a single processor system, you&#8217;d hit the &#8220;performance wall&#8221; when running more than one process.  This was mainly due to the fact that most systems would only interrupt the running process 100 times a second or so (see discussions of setting the &#8220;hertz&#8221; in the linux kernel), which resulted in a degradation perceived performance.  Having a second processor lessened this to a great deal &#8211; once you were running a few processes, it didn&#8217;t feel like you hit as much of a wall &#8211; performance tended to degrade more gracefully.  Things would get slower but they wouldn&#8217;t chug.  </p>
<p>This machine was my main machine for all of college &#8211; eventually I bought a laptop, but for the most part I didn&#8217;t really need more. Having that second processor extended the life of the machine to nearly 6 years.  For this reason, I&#8217;m thinking a lot of the current crop of multicore computers are going to easily last 5-7 years (especially the AMD64 processor architecture ones with 4+ GB of memory support), much longer than the 3-5 year lifecycle that their single processor predecessors had.  </p>
<p>That computer was a fun adventure, and a total joy to cut my computer building teeth on.   I kinda miss it. </p>
]]></content:encoded>
			<wfw:commentRss>http://zackofalltrades.com/2008/07/10-years-of-multiprocessor-computing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extending your blog to Facebook</title>
		<link>http://zackofalltrades.com/2008/05/extending-your-blog-to-facebook/</link>
		<comments>http://zackofalltrades.com/2008/05/extending-your-blog-to-facebook/#comments</comments>
		<pubDate>Fri, 09 May 2008 14:00:05 +0000</pubDate>
		<dc:creator>Zack Williams</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[How-To]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[facebook]]></category>

		<guid isPermaLink="false">http://zackofalltrades.com/?p=137</guid>
		<description><![CDATA[It's really easy to have Facebook post your blog's news feed to your Facebook Notes.  Here's how, with pictures!]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s really easy to have Facebook post your blog&#8217;s news feed to your Facebook Notes.  Here&#8217;s how, with pictures! This is a great way to let people who are just on Facebook and not active blog readers know about your blog and what&#8217;s going on with you. </p>
<p>First, you need to find your blog&#8217;s feed URL &#8211; it&#8217;s probably a link labeled something like &#8220;RSS&#8221; or &#8220;Atom&#8221; or &#8220;Feed&#8221; in the sidebar or at the bottom of each blog page.  You&#8217;ll want the one that has just your posts &#8211; some blogging entries will have multiple feeds &#8211; for example, one that is just comments other people have made.   Copy this URL &#8211; you&#8217;ll need it later. </p>
<p>Next, log into Facebook, and in the left hand navigation click on where it says &#8220;Notes&#8221; &#8211; you may have to click the &#8220;more&#8221; link to get it to show up:</p>
<p><img src="http://zackofalltrades.com/wp-content/uploads/2008/05/picture-1.png" alt="Picture 1.png" border="0" width="159" height="257" /></p>
<p>Once your notes have loaded, in the right column where it says &#8220;Notes Settings&#8221;, click &#8220;Import a Blog >>&#8221;:</p>
<p> <img src="http://zackofalltrades.com/wp-content/uploads/2008/05/picture-5.png" alt="Picture 5.png" border="0" width="185" height="95" /></p>
<p>In the next screen, paste the feed URL into where it says &#8220;Web URL:&#8221;, click the checkbox (after reading the copyright warning of course) and then press &#8220;Start Importing&#8221;:</p>
<p><img src="http://zackofalltrades.com/wp-content/uploads/2008/05/picture-7.png" alt="Picture 7.png" border="0" width="447" height="321" /></p>
<p>In a little bit, all the blog posts in your RSS feed should show up as Facebook Notes, with a link back to your blog. When you make a new post, it will be automatically added as soon as Facebook scrapes your RSS feed.  </p>
]]></content:encoded>
			<wfw:commentRss>http://zackofalltrades.com/2008/05/extending-your-blog-to-facebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tradenotes</title>
		<link>http://zackofalltrades.com/2008/03/tradenotes-5/</link>
		<comments>http://zackofalltrades.com/2008/03/tradenotes-5/#comments</comments>
		<pubDate>Tue, 25 Mar 2008 01:13:52 +0000</pubDate>
		<dc:creator>Zack Williams</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[Funny]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[TV]]></category>
		<category><![CDATA[chair]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[last.fm]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[swimming]]></category>

		<guid isPermaLink="false">http://zackofalltrades.com/2008/03/tradenotes-5/</guid>
		<description><![CDATA[Linkdump for 2008-03-24]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a while since I did a linkdump, so here goes:</p>
<p><a href="http://www.kk.org/cooltools/archives/002710.php">This swimming contraption</a> looks pretty neat &#8211; basically a rubber band that holds you back so you can swim in place.   For the price I&#8217;d definitely give it a shot &#8211; if we had a pool. </p>
<p>I bought a <a href="http://www.officemax.com/omax/catalog/sku.jsp?skuId=21101941">new chair</a> &#8211; it was a great deal after being on sale and having a 20% off coupon.  After a few days of use, I&#8217;m quite happy with it. </p>
<p>And now <a href="http://youtube.com/watch?v=Mfr7xG6smhU">a moment of surreal public television</a>.</p>
<p>An <a href="http://www.linein.org/media/screencleaner.swf">automatic screen cleaner</a> for your computer. Shows one of the only good uses of Flash outside of tower defense games and StrongBad. </p>
<p>Additionally, you&#8217;ll notice that I added <a href="http://www.last.fm/">last.fm</a> support to the blog.  The actual program (audioscrobber) is a bit buggy and sometimes crashes or goes into a processor sucking loop, and still won&#8217;t scrobble songs I play on my iPod, but other than that it works pretty well.   I&#8217;m in the middle of a multi-day random music binge, which should explain the eclectic nature of my playlist. </p>
]]></content:encoded>
			<wfw:commentRss>http://zackofalltrades.com/2008/03/tradenotes-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why there&#8217;s no Flash on the iPhone</title>
		<link>http://zackofalltrades.com/2008/03/why-theres-no-flash-on-the-iphone/</link>
		<comments>http://zackofalltrades.com/2008/03/why-theres-no-flash-on-the-iphone/#comments</comments>
		<pubDate>Thu, 20 Mar 2008 18:53:56 +0000</pubDate>
		<dc:creator>Zack Williams</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Wireless]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://zackofalltrades.com/2008/03/why-theres-no-flash-on-the-iphone/</guid>
		<description><![CDATA[I think this screenshot says it all...]]></description>
			<content:encoded><![CDATA[<p>I think this screenshot says it all:</p>
<p><img src="http://zackofalltrades.com/wp-content/uploads/2008/03/picture-3.png" alt="Picture 3.png" border="0" width="531" height="289" /></p>
<p>Flash can and will crash your browser at times.   Watch your CPU usage spike whenever you load a page with flash &#8211; by running someone&#8217;s crappy code, there goes your battery life.   This is especially bad on some platforms (linux, PPC macs).  I can only imagine it would be much worse on the iPhone. </p>
<p>Used sparingly and for certain things where it&#8217;s the only option (games, video) it&#8217;s fine.  </p>
<p>Outside of that, flash breaks a whole lot of what is good about the web.  It&#8217;s not searchable &#8211; text you may want to show up in a search engine dissappears into a black hole if your site is all-flash. This also causes problems with accessibility for the blind. </p>
]]></content:encoded>
			<wfw:commentRss>http://zackofalltrades.com/2008/03/why-theres-no-flash-on-the-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android, another modern phone platform.</title>
		<link>http://zackofalltrades.com/2007/11/android-another-modern-phone-platform/</link>
		<comments>http://zackofalltrades.com/2007/11/android-another-modern-phone-platform/#comments</comments>
		<pubDate>Mon, 12 Nov 2007 20:43:15 +0000</pubDate>
		<dc:creator>Zack Williams</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Wireless]]></category>

		<guid isPermaLink="false">http://zackofalltrades.com/2007/11/android-another-modern-phone-platform/</guid>
		<description><![CDATA[Google recently announced their "Android" phone platform.  It's an interesting gambit - the market currently has several entrenched platforms (Palm, Symbian, Windows Mobile).  Is it an iPhone killer? ]]></description>
			<content:encoded><![CDATA[<p>Google recently announced their &#8220;Android&#8221; phone platform.  It&#8217;s an interesting gambit &#8211; the market currently has several entrenched platforms (Palm, Symbian, Windows Mobile).  Here&#8217;s a video describing the Android API: </p>
<p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/Mm6Ju0xhUW8&#038;rel=1"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/Mm6Ju0xhUW8&#038;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p>
<p>What&#8217;s interesting from my perspective is that it&#8217;s built on many technologies in common with Apple&#8217;s iPhone, such as a Unix-like kernel, WebKit for rendering web pages (also used by some Symbian-based Nokia phones), SQLite for data storage, and a GUI compositing library for rendering data to the screen.   Additionally, Android supports XMPP (aka &#8220;Jabber&#8221;) which is being used by both Apple and Google for interoperable chat &#8211; Apple has shipped a Jabber server in the last two revisions of Mac OS X Server.  I wouldn&#8217;t be surprised if a future version of the iPhone firmware supports chat via Jabber.   From Android&#8217;s API overview, it looks like they also intend to use XMPP for other device-to-device communications (for interactive games, location notification, etc.). </p>
<p>Where Android differes from the iPhone is that Android&#8217;s applications are written in Java and processed into a special bytecode (i.e. not Sun&#8217;s default java bytecode) made to work well on the Dalvik Virtual Machine, which supposedly runs better on slower mobile CPU&#8217;s.  This sounds, to me at least, like a way to allow compatibility between phones, as opposed to the &#8220;write once run everywhere&#8221; idea that Java was designed for. From the design, I wouldn&#8217;t be surprised if someone develops an &#8220;Android Environment&#8221; for the iPhone, but I&#8217;d expect that most applications would look like crud, as they wouldn&#8217;t fit with the iPhone UI style. </p>
<p>So where does this fit in with the larger phone market?  It really depends on hardware support &#8211; if the hardware looks good, the UI looks good, and, more importantly, works really well, Android will be a winner.   Is this likely?  </p>
<p>Looking at the current crop of phones beyond the iPhone, I don&#8217;t think so.   </p>
<p>It&#8217;s a good effort, and I hope it succeeds, but decentralized development in the Linux community hasn&#8217;t come up with a consistent, polished UI as of yet.  From a UI perspective the ideal would be that the default applications from a small team at Google are solid and well designed, to the point that they don&#8217;t get reinvented ever time.  If not&#8230; good luck Android users. </p>
]]></content:encoded>
			<wfw:commentRss>http://zackofalltrades.com/2007/11/android-another-modern-phone-platform/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone guided tour</title>
		<link>http://zackofalltrades.com/2007/06/iphone-guided-tour/</link>
		<comments>http://zackofalltrades.com/2007/06/iphone-guided-tour/#comments</comments>
		<pubDate>Fri, 22 Jun 2007 18:13:30 +0000</pubDate>
		<dc:creator>Zack Williams</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://zackofalltrades.com/2007/06/iphone-guided-tour/</guid>
		<description><![CDATA[They picked this guy for the hands... ]]></description>
			<content:encoded><![CDATA[<p>Is it just me or does this guy have really big hands?</p>
<p><a href="http://www.apple.com/iphone/usingiphone/guidedtour.html"><img src="http://zackofalltrades.com/wp-content/uploads/2007/06/iphone-tour.jpg" border="0" height="453" width="459" alt="iphone_tour.jpg" /><br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://zackofalltrades.com/2007/06/iphone-guided-tour/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick Guide to using diff and patch to update a Wordpress Weblog</title>
		<link>http://zackofalltrades.com/2007/06/quick-guide-to-using-diff-and-patch-to-update-a-wordpress-weblog/</link>
		<comments>http://zackofalltrades.com/2007/06/quick-guide-to-using-diff-and-patch-to-update-a-wordpress-weblog/#comments</comments>
		<pubDate>Fri, 22 Jun 2007 00:16:30 +0000</pubDate>
		<dc:creator>Zack Williams</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[How-To]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://zackofalltrades.com/2007/06/quick-guide-to-using-diff-and-patch-to-update-a-wordpress-weblog/</guid>
		<description><![CDATA[When you start <a href="http://codex.wordpress.org/Upgrading_WordPress">upgrading</a> multiple blogs, you'll soon realize that the standard process of updating Wordpress is time consuming, and requires a lot of manual intervention, so here's a way to automate it using two standard unix tools, <code>diff</code> and <code>patch</code>.  
]]></description>
			<content:encoded><![CDATA[<p>Updates frequently come out for <a href="http://wordpress.org/">Wordpress</a>, such as <a href="http://wordpress.org/development/2007/06/wordpress-221/">this most recent one.</a>  </p>
<p>When you start <a href="http://codex.wordpress.org/Upgrading_WordPress">upgrading</a> multiple blogs, you&#8217;ll soon realize that the standard process of updating Wordpress is time consuming, and requires a lot of manual intervention, so here&#8217;s a way to automate it using two standard unix tools, <code>diff</code> and <code>patch</code>.<br />
<code>diff</code> finds all the differences between two files and folders, whereas  <code>patch</code> takes the output of <code>diff</code> and makes the changes described in the patch file to the files and folders it is run on.  </p>
<p>This example goes from Wordpress 2.2 to Wordpress 2.2.1, but should work for any combination of releases. This won&#8217;t update any of your themes and plugins, and you should definitely make a backup before doing it &#8211; don&#8217;t blame me if you completely screw up your installation!</p>
<p><b>Step 1</b></p>
<p>Obtain copies of both versions of Wordpress you&#8217;re going to be using from the <a href="http://wordpress.org/download/release-archive/">Release Archive</a>,  and decompress them into two folders (we&#8217;ll call these wordpress22 and wordpress221, in this example)</p>
<p><b>Step 2</b></p>
<p>Run <code>diff</code> on the directories to generate a patch file.</p>
<p><code>diff -Naur -x .DS_Store wordpress22 wordpress221 > wp22_221.patch</code></p>
<p>(The <code>-x .DS_Store</code> argument is only needed on the Mac, which stores directory information in that file.  The other options make the diff unified, recurse through the directories, make it ascii, etc. &#8211; read the diff&#8217;s man page for more information)</p>
<p><b>Step 3</b></p>
<p>Apply the patch you created in step 2 using <code>patch</code>.  <code>cd</code> into the directory, and run the patch command:</p>
<p><code> patch -p 1 < /path/to/wp22_221.patch </code></p>
<p>You will get a lot of output like this:</p>
<pre>
...
patching file wp-admin/edit-form-advanced.php
patching file wp-admin/edit-form-comment.php
patching file wp-admin/edit-form.php
patching file wp-admin/edit-page-form.php
patching file wp-admin/export.php
patching file wp-admin/install.php
patching file wp-admin/user-edit.php
patching file wp-admin/users.php
patching file wp-admin/widgets.css
patching file wp-admin/widgets.php
...
</pre>
<p>If there any errors, you'll see them during the patch process. </p>
<p>At this point, you're done.  You can use the patch file you created on any Wordpress weblog that you want to bring from version 2.2 to 2.2.1, but it won't work for other versions.<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://zackofalltrades.com/2007/06/quick-guide-to-using-diff-and-patch-to-update-a-wordpress-weblog/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Software Hall of Shame: ExMerge</title>
		<link>http://zackofalltrades.com/2007/06/software-hall-of-shame-exmerge/</link>
		<comments>http://zackofalltrades.com/2007/06/software-hall-of-shame-exmerge/#comments</comments>
		<pubDate>Tue, 19 Jun 2007 05:11:23 +0000</pubDate>
		<dc:creator>Zack Williams</dc:creator>
				<category><![CDATA[Badly Written Software]]></category>
		<category><![CDATA[Computing]]></category>

		<guid isPermaLink="false">http://zackofalltrades.com/2007/06/software-hall-of-shame-exmerge/</guid>
		<description><![CDATA[Threading gone horribly inefficient ]]></description>
			<content:encoded><![CDATA[<p>So, I&#8217;m moving some exchange mailboxes from one server to another for a customer.  Thankfully, the ExMerge tool that you use to dump each mailbox to a .pst file for easy transport to the new server is threaded, so multiple mailboxes get dumped at once: </p>
<p><img src="http://zackofalltrades.com/wp-content/uploads/2007/06/exmerge-thread0.png" border="0" height="383" width="500" alt="exmerge_thread0.png"  /></p>
<p>It&#8217;s really too bad that pre-assigns the mailboxes to each thread:</p>
<p><img src="http://zackofalltrades.com/wp-content/uploads/2007/06/exmerge-thread1.png" border="0" height="383" width="501" alt="exmerge_thread1.png" /></p>
<p>Thread 0 finished over 6 hours ago.</p>
]]></content:encoded>
			<wfw:commentRss>http://zackofalltrades.com/2007/06/software-hall-of-shame-exmerge/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Come on Adobe&#8230;</title>
		<link>http://zackofalltrades.com/2007/06/come-on-adobe/</link>
		<comments>http://zackofalltrades.com/2007/06/come-on-adobe/#comments</comments>
		<pubDate>Wed, 06 Jun 2007 02:22:01 +0000</pubDate>
		<dc:creator>Zack Williams</dc:creator>
				<category><![CDATA[Badly Written Software]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://zackofalltrades.com/2007/06/come-on-adobe/</guid>
		<description><![CDATA[Adobe can't write a decent update program to save their life... ]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m glad you value my processor cycles&#8230;</p>
<p><img src="http://zackofalltrades.com/wp-content/uploads/2007/06/adobe-stupid.png" border="0" height="308" width="611" alt="adobe_stupid.png"/></p>
<p>&#8230; you&#8217;re sure using a lot of them! </p>
<p>(and no, the &#8220;Download only when my Internet Connection is idle&#8221; option doesn&#8217;t help)</p>
]]></content:encoded>
			<wfw:commentRss>http://zackofalltrades.com/2007/06/come-on-adobe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iTunes Plus music</title>
		<link>http://zackofalltrades.com/2007/05/itunes-plus-music/</link>
		<comments>http://zackofalltrades.com/2007/05/itunes-plus-music/#comments</comments>
		<pubDate>Wed, 30 May 2007 15:49:03 +0000</pubDate>
		<dc:creator>Zack Williams</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://zackofalltrades.com/2007/05/itunes-plus-music/</guid>
		<description><![CDATA[It's higher quality and plays on PSP. 'nuff said.  Pictures inside! ]]></description>
			<content:encoded><![CDATA[<p>Just a short post:</p>
<p>1. You can upgrade your music:</p>
<p><img src="http://farm1.static.flickr.com/231/521639139_06fcce4e5c.jpg?v=0" alt="Upgrade message" /></p>
<p>2. It is 256kbps AAC, and is saved as an .m4a file:</p>
<p><img src="http://farm1.static.flickr.com/192/521639085_2e44980e12.jpg?v=0" alt="iTunes music description" /></p>
<p>3. It plays on a Sony PSP, so all you PSP people have a new source of music:</p>
<p><img src="http://farm1.static.flickr.com/192/521651161_4c3ada9c59.jpg?v=0" alt="Playing on PSP" /></p>
]]></content:encoded>
			<wfw:commentRss>http://zackofalltrades.com/2007/05/itunes-plus-music/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Blog Changes &#8211; Twitter, Akismet, and Flickr integration.</title>
		<link>http://zackofalltrades.com/2007/05/blog-changes-twitter-akismet-and-flickr-integration/</link>
		<comments>http://zackofalltrades.com/2007/05/blog-changes-twitter-akismet-and-flickr-integration/#comments</comments>
		<pubDate>Sat, 12 May 2007 19:16:21 +0000</pubDate>
		<dc:creator>Zack Williams</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://zackofalltrades.com/2007/05/blog-changes-twitter-akismet-and-flickr-integration/</guid>
		<description><![CDATA[Notes on changes to the blog.]]></description>
			<content:encoded><![CDATA[<p>I was bored, so I made some changes to the blog &#8211; previously, I had Flickr using my previous theme, but it didn&#8217;t look quite right.   I also wanted a way to easily post quick notes and links about my exercise progress, so I decided to use Twitter for that, and I wanted it also to show up on the blog.</p>
<p>So&#8230;</p>
<p>1. I created a twitter box for Hemingway&#8217;s Bottombar. I did this by loading <a href="http://alexking.org/projects/wordpress/readme?project=twitter-tools">Alex King&#8217;s Twitter-tools plugin</a>, and making a small hemingway block for that &#8211; here&#8217;s the code:</p>
<pre>
&lt;h2&gt;Twitter&lt;/h2&gt;
&lt;ul class=&quot;twitter&quot;&gt;
&lt; ?php aktt_sidebar_tweets(); ?&gt;
&lt;/ul&gt;
</pre>
<p>Put that in a file  in your wp-content/themes/hemingway/blocks/ folder, and then reload the Hemingway Options, and you will be given the opportunity to add it as a block, then drag it wherever you want. </p>
<p>2. I have the number of <a href="http://akismet.com/">Akismet</a> blocked spam messages in the footer.  The standard counter uses a bunch of div&#8217;s and span&#8217;s to make a nice HTML box, but I just wanted the number.  This function gets you just that number:</p>
<pre>
function akismet_counter_nohtml() {
  echo number_format(get_option(&apos;akismet_spam_count&apos;));
}
</pre>
<p>Add that to the end of the wp-content/plugins/akismet/akismet.php file, and then put some code in the footer like this:</p>
<pre>
 &lt;a href=&quot;http://akismet.com/&quot;&gt;Akismet&lt;/a&gt; has removed &lt; ?php akismet_counter_nohtml(); ?&gt; spam messages so far.
</pre>
<p>3. Flickr integration is built into Hemingway.  All you have to do is install the <a href="http://eightface.com/wordpress/flickrrss/">FlickrRSS</a> plugin, and it just works.  I&#8217;m using 9 square images, with nothing before and after each image, and it makes a nice box. </p>
]]></content:encoded>
			<wfw:commentRss>http://zackofalltrades.com/2007/05/blog-changes-twitter-akismet-and-flickr-integration/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.267 seconds -->
