<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2.2" -->
<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/"
	>

<channel>
	<title>TechDev</title>
	<link>http://karlherrick.com/dev</link>
	<description>A Digital Playground</description>
	<pubDate>Tue, 09 Dec 2008 02:23:35 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.2</generator>
	<language>en</language>
			<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[Javascript]]></category>

		<category><![CDATA[Apple]]></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&#038;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 [...]]]></description>
			<content:encoded><![CDATA[<p>My employer recently purchased a set of iPhones from AT&#038;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>
		</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[Linux]]></category>

		<category><![CDATA[Bash]]></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; (&#8221;mac-fdisk -l&#8221; I know works on SystemRescueCD 0.2.0 (PPC) for PPC/Macs (what about Intel Macs?)) and note the internal [...]]]></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; (&#8221;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="bash" style="font-family: monospace;font-size: 110%; color: #000066; border: 1px solid orange; margin: 5px; padding: 5px; background-color: #ffffff;">ifconfig eth0 <span style="color: #000000;">192.168</span><span style="color: #000000;">.1</span><span style="color: #000000;">.50</span> netmask <span style="color: #000000;">255.255</span><span style="color: #000000;">.255</span><span style="color: #000000;">.0</span> up</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="bash" style="font-family: monospace;font-size: 110%; color: #000066; border: 1px solid orange; margin: 5px; padding: 5px; background-color: #ffffff;">route add default gw <span style="color: #000000;">192.168</span><span style="color: #000000;">.1</span><span style="color: #000000;">.1</span></div>
<p>Set a DNS server (if you are in the habit of not strictly using IP addresses):</p>
<div class="bash" style="font-family: monospace;font-size: 110%; color: #000066; border: 1px solid orange; margin: 5px; padding: 5px; background-color: #ffffff;"><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;nameserver 192.168.1.1&quot;</span> &gt; /etc/resolv.conf</div>
<p>Execute the backup command:</p>
<div class="bash" style="font-family: monospace;font-size: 110%; color: #000066; border: 1px solid orange; margin: 5px; padding: 5px; background-color: #ffffff;"><span style="color: #c20cb9; font-weight: bold;">dd</span> <span style="color: #007800;">if=</span>/dev/hda | <span style="color: #c20cb9; font-weight: bold;">ssh</span> username@backupserver.fqdn <span style="color: #ff0000;">&quot;dd of=/directory_of_backups_on_ssh_server/backupfile.iso&quot;</span></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. <img src='http://karlherrick.com/dev/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2008/09/12/dd-backups-over-ssh/feed/</wfw:commentRss>
		</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[PHP]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Cron]]></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 is that spammers were sending email with forged headers. Have you ever received a spam [...]]]></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="bash" style="font-family: monospace;font-size: 110%; color: #000066; border: 1px solid orange; margin: 5px; padding: 5px; background-color: #ffffff;">telnet smtp.example.com <span style="color: #000000;">25</span></div>
<p>and then issuing these commands:</p>
<div class="bash" style="font-family: monospace;font-size: 110%; color: #000066; border: 1px solid orange; margin: 5px; padding: 5px; background-color: #ffffff;">ehlo workstation.example.com<br />
mail from:&lt;emailuser@example.com&gt;<br />
rcpt to:&lt;emailuser@example.com&gt;<br />
data<br />
From: &lt;emailuser@example.com&gt;<br />
To: &lt;emailuser@example.com&gt;<br />
Subject: testing a loop<br />
Message text<br />
.<br />
quit</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="php" style="font-family: monospace;font-size: 110%; color: #000066; border: 1px solid orange; margin: 5px; padding: 5px; background-color: #ffffff;">root@server:/<span style="color: #000000; font-weight: bold;">var</span>/local/vmail/example.com/emailuser<span style="color: #808080; font-style: italic;"># cat new/1220557062.P6882Q0M652544.server\,S\=1082</span><br />
Return-Path: &lt;emailuser@example.com&gt;<br />
Delivered-To: emailuser@example.com<br />
<span style="color: #ff0000">Received: from localhost <span style="color: #66cc66;">&#40;</span>localhost <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">127.0</span><span style="color: #cc66cc;">.0</span><span style="color: #cc66cc;">.1</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span> by server.example.com <span style="color: #66cc66;">&#40;</span>Postfix<span style="color: #66cc66;">&#41;</span> with ESMTP id 923E9185F7 <span style="color: #b1b100;">for</span> &lt;emailuser@example.com&gt;; Thu, <span style="color: #cc66cc;">4</span> Sep <span style="color: #cc66cc;">2008</span> <span style="color: #cc66cc;">15</span>:<span style="color: #cc66cc;">37</span>:<span style="color: #cc66cc;">42</span> <span style="color: #cc66cc;">-0400</span> <span style="color: #66cc66;">&#40;</span>EDT<span style="color: #66cc66;">&#41;</span><br />
X-Virus-Scanned: Debian amavisd-<span style="color: #000000; font-weight: bold;">new</span> at server.example.com<br />
Received: from server.example.com <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">127.0</span><span style="color: #cc66cc;">.0</span><span style="color: #cc66cc;">.1</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span> by localhost <span style="color: #66cc66;">&#40;</span>server.example.com <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">127.0</span><span style="color: #cc66cc;">.0</span><span style="color: #cc66cc;">.1</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span>amavisd-<span style="color: #000000; font-weight: bold;">new</span>, port <span style="color: #cc66cc;">10024</span><span style="color: #66cc66;">&#41;</span> with ESMTP id q3tScOaitRoS <span style="color: #b1b100;">for</span> &lt;emailuser@example.com&gt;; Thu, <span style="color: #cc66cc;">4</span> Sep <span style="color: #cc66cc;">2008</span> <span style="color: #cc66cc;">15</span>:<span style="color: #cc66cc;">37</span>:<span style="color: #cc66cc;">42</span> <span style="color: #cc66cc;">-0400</span> <span style="color: #66cc66;">&#40;</span>EDT<span style="color: #66cc66;">&#41;</span><br />
Received: from workstation.example.com <span style="color: #66cc66;">&#40;</span>workstation.example.com <span style="color: #66cc66;">&#91;</span>xx.xxx.xxx.xx<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span> by server.example.com <span style="color: #66cc66;">&#40;</span>Postfix<span style="color: #66cc66;">&#41;</span> with ESMTP id B89E1185EB <span style="color: #b1b100;">for</span> &lt;emailuser@example.com&gt;; Thu, <span style="color: #cc66cc;">4</span> Sep <span style="color: #cc66cc;">2008</span> <span style="color: #cc66cc;">15</span>:<span style="color: #cc66cc;">37</span>:<span style="color: #cc66cc;">25</span> <span style="color: #cc66cc;">-0400</span> <span style="color: #66cc66;">&#40;</span>EDT<span style="color: #66cc66;">&#41;</span><br />
From: &lt;emailuser@example.com&gt;<br />
To: &lt;emailuser@example.com&gt;<br />
Subject: testing a loop</span><br />
Message-Id: &lt;<span style="color: #cc66cc;">20080904193728</span>.B89E1185EB@server.example.com&gt;<br />
<a href="http://www.php.net/date"><span style="color: #000066;">Date</span></a>: Thu, <span style="color: #cc66cc;">4</span> Sep <span style="color: #cc66cc;">2008</span> <span style="color: #cc66cc;">15</span>:<span style="color: #cc66cc;">37</span>:<span style="color: #cc66cc;">25</span> <span style="color: #cc66cc;">-0400</span> <span style="color: #66cc66;">&#40;</span>EDT<span style="color: #66cc66;">&#41;</span></p>
<p>Message text</p></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="php" style="font-family: monospace;font-size: 110%; color: #000066; border: 1px solid orange; margin: 5px; padding: 5px; background-color: #ffffff;"><span style="color: #808080; font-style: italic;">//strip the line break from $address for checks</span><br />
<span style="color: #0000ff;">$addressCheck</span> = <a href="http://www.php.net/substr"><span style="color: #000066;">substr</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$address</span>,<span style="color: #cc66cc;">0</span>,<a href="http://www.php.net/strlen"><span style="color: #000066;">strlen</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$address</span><span style="color: #66cc66;">&#41;</span><span style="color: #cc66cc;">-1</span><span style="color: #66cc66;">&#41;</span>;<br />
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$addressCheck</span>==<span style="color: #0000ff;">$email</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">$log</span>-&gt;<span style="color: #006600;">addLine</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Email address from autoresponder table is the same as the intended recipient! Not sending the mail!&quot;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">break</span>;<br />
<span style="color: #66cc66;">&#125;</span></div>
<p>just before letting the mail being sent&#8230;</p>
<div class="php" style="font-family: monospace;font-size: 110%; color: #000066; border: 1px solid orange; margin: 5px; padding: 5px; background-color: #ffffff;"><a href="http://www.php.net/mail"><span style="color: #000066;">mail</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$address</span>, <span style="color: #0000ff;">$subject</span>, <span style="color: #0000ff;">$message</span>, <span style="color: #0000ff;">$headers</span><span style="color: #66cc66;">&#41;</span>;</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>
		</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 something went wrong.
Sitting at my administrative workstation I:

looked at Apple Remote Desktop and noticed that [...]]]></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&#038;cat=57&#038;platform=osx&#038;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. <img src='http://karlherrick.com/dev/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2008/09/01/recovering-after-an-os-x-update/feed/</wfw:commentRss>
		</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[Python]]></category>

		<category><![CDATA[Apple]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Bash]]></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 mileage may vary).
My main issue was that I needed to remotely adjust my OS X [...]]]></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="bash" style="font-family: monospace;font-size: 110%; color: #000066; border: 1px solid orange; margin: 5px; padding: 5px; background-color: #ffffff;">rsh -l remote_username mac_workstation.fqdn <span style="color: #ff0000;">&quot;osascript -e &#39;set Volume 4.6&#39;&quot;</span></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="python" style="font-family: monospace;font-size: 110%; color: #000066; border: 1px solid orange; margin: 5px; padding: 5px; background-color: #ffffff;"><span style="color: #808080; font-style: italic;">#!/usr/bin/env python</span><br />
<span style="color: #808080; font-style: italic;">#pyLiMaSound.py</span></p>
<p><span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">os</span><br />
<span style="color: #ff7700;font-weight:bold;">import</span> gtk<br />
<span style="color: #ff7700;font-weight:bold;">import</span> pygtk<br />
pygtk.<span style="color: black;">require</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;2.0&quot;</span><span style="color: black;">&#41;</span></p>
<p><span style="color: #dc143c;">user</span>=<span style="color: #483d8b;">&quot;remote_username&quot;</span><br />
host=<span style="color: #483d8b;">&quot;mac_workstation.fqdn&quot;</span></p>
<p><span style="color: #ff7700;font-weight:bold;">def</span> scale_set_default_values<span style="color: black;">&#40;</span>scale<span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; scale.<span style="color: black;">set_update_policy</span><span style="color: black;">&#40;</span>gtk.<span style="color: black;">UPDATE_DELAYED</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; scale.<span style="color: black;">set_digits</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; scale.<span style="color: black;">set_value_pos</span><span style="color: black;">&#40;</span>gtk.<span style="color: black;">POS_BOTTOM</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; scale.<span style="color: black;">set_draw_value</span><span style="color: black;">&#40;</span><span style="color: #008000;">True</span><span style="color: black;">&#41;</span></p>
<p><span style="color: #ff7700;font-weight:bold;">class</span> pyLiMaSound:<br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">def</span> delete_event<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, widget, event, data=<span style="color: #008000;">None</span><span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;delete event occurred&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">False</span></p>
<p>&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">def</span> destroy<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, widget, data=<span style="color: #008000;">None</span><span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;destroy signal occurred&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; gtk.<span style="color: black;">main_quit</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></p>
<p>&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">def</span> rsh_vol_cmd<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, data<span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; payload = <span style="color: #483d8b;">&quot;rsh -l &quot;</span> + <span style="color: #dc143c;">user</span> + <span style="color: #483d8b;">&quot; &quot;</span> + host \<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + <span style="color: #483d8b;">&quot; <span style="color: #000099; font-weight: bold;">\&quot;</span>osascript -e &#39;set Volume &quot;</span> + \<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>data.<span style="color: black;">value</span><span style="color: black;">&#41;</span> + <span style="color: #483d8b;">&quot;&#39;<span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">print</span> payload<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #dc143c;">os</span>.<span style="color: black;">system</span><span style="color: black;">&#40;</span>payload<span style="color: black;">&#41;</span>;</p>
<p>&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">window</span> = gtk.<span style="color: black;">Window</span><span style="color: black;">&#40;</span>gtk.<span style="color: black;">WINDOW_TOPLEVEL</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">window</span>.<span style="color: black;">set_default_size</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">50</span>, <span style="color: #ff4500;">200</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">window</span>.<span style="color: black;">connect</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;delete_event&quot;</span>, <span style="color: #008000;">self</span>.<span style="color: black;">delete_event</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">window</span>.<span style="color: black;">connect</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;destroy&quot;</span>, <span style="color: #008000;">self</span>.<span style="color: black;">destroy</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">window</span>.<span style="color: black;">set_border_width</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">10</span><span style="color: black;">&#41;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; adj1 = gtk.<span style="color: black;">Adjustment</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">0.0</span>, <span style="color: #ff4500;">0.0</span>, <span style="color: #ff4500;">10.1</span>, <span style="color: #ff4500;">0.1</span>, <span style="color: #ff4500;">0.1</span>, <span style="color: #ff4500;">0.1</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; adj1.<span style="color: black;">connect</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;value_changed&quot;</span>, <span style="color: #008000;">self</span>.<span style="color: black;">rsh_vol_cmd</span><span style="color: black;">&#41;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">vscale</span> = gtk.<span style="color: black;">VScale</span><span style="color: black;">&#40;</span>adj1<span style="color: black;">&#41;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; scale_set_default_values<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">vscale</span><span style="color: black;">&#41;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">window</span>.<span style="color: black;">add</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">vscale</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">vscale</span>.<span style="color: black;">show</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">window</span>.<span style="color: black;">show</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></p>
<p>&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">def</span> main<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; gtk.<span style="color: black;">main</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></p>
<p><span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">&quot;__main__&quot;</span>:<br />
&nbsp; &nbsp; control = pyLiMaSound<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; control.<span style="color: black;">main</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></div>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2008/08/20/pylimasound/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Autoresponders - 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[PHP]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Cron]]></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 in RT that I wanted to resolve.
I set the form to cc the comment to a group [...]]]></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>
		</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[XUL]]></category>

		<category><![CDATA[Exch]]></category>

		<category><![CDATA[Firefox]]></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 3.0 compatibility, and submitted this new version.
Hopefully it can get approved soon. I tested functionality [...]]]></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:<br />
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>
		</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[Linux]]></category>

		<category><![CDATA[Bash]]></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
&#160; &#160; &#160; &#160; convert -crop 1280X985+0+24 $file $&#40;basename $file .png&#41;.jpg;
done
Basically this does the following:

Makes a listing of all .png files in the current directory
Runs the &#8220;convert&#8221; command [...]]]></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="bash" style="font-family: monospace;font-size: 110%; color: #000066; border: 1px solid orange; margin: 5px; padding: 5px; background-color: #ffffff;"><span style="color: #808080; font-style: italic;">#!/bin/bash</span><br />
<span style="color: #000000; font-weight: bold;">for</span> <span style="color: #c20cb9; font-weight: bold;">file</span> <span style="color: #000000; font-weight: bold;">in</span> `<span style="color: #c20cb9; font-weight: bold;">ls</span> -d *.png` ; <span style="color: #000000; font-weight: bold;">do</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; convert -crop 1280X985<span style="color: #000000;">+0</span><span style="color: #000000;">+24</span> <span style="color: #007800;">$file</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">basename</span> <span style="color: #007800;">$file</span> .png<span style="color: #7a0874; font-weight: bold;">&#41;</span>.jpg;<br />
<span style="color: #000000; font-weight: bold;">done</span></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>
		</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 href='http://karlherrick.com/dev/wp-content/uploads/2008/06/2008-05-30_1053-dual-800-mhz.jpg' title='Leopard on a Dual 800 MHz PowerPC G4'><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>
		</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 export seemed quite plain, though I didn&#8217;t push it. I wonder how it would have [...]]]></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>
<div style="font-size: 9px;">
<div class="php" style="font-family: monospace;font-size: 110%; color: #000066; border: 1px solid orange; margin: 5px; padding: 5px; background-color: #ffffff;">&lt;html&gt;<br />
&nbsp; &lt;head&gt;<br />
&nbsp; &nbsp; &lt;meta http-equiv=<span style="color: #ff0000;">&quot;Content-Type&quot;</span> content=<span style="color: #ff0000;">&quot;text/html; charset=utf-8&quot;</span> /&gt;<br />
&nbsp; &nbsp; &lt;meta name=<span style="color: #ff0000;">&quot;generator&quot;</span> content=<span style="color: #ff0000;">&quot;Aspose.Words for .NET 4.4.2.0&quot;</span> /&gt;<br />
&nbsp; &nbsp; &lt;title&gt;An on-line document&#8230; with&lt;/title&gt;<br />
&nbsp; &lt;/head&gt;<br />
&nbsp; &lt;body&gt;<br />
&nbsp; &nbsp; &lt;div <span style="color: #000000; font-weight: bold;">class</span>=<span style="color: #ff0000;">&quot;Section1&quot;</span>&gt;<br />
&nbsp; &nbsp; &nbsp; &lt;p style=<span style="color: #ff0000;">&quot;margin-left:0pt; margin-right:0pt; margin-top:0pt; margin-bottom:0pt; &quot;</span>&gt;&lt;span style=<span style="color: #ff0000;">&quot;font-family:&#39;Times New Roman&#39;; font-size:12pt; &quot;</span>&gt;An on-line document&#8230; with Buzzword&#8230; &nbsp;An online document&#8230; with Buzzword&#8230; &nbsp;An online document&#8230; with Buzzword&#8230; &nbsp;An online document&#8230; with Buzzword&#8230; &nbsp;An online document&#8230; with Buzzword&#8230; &nbsp;An online document&#8230; with Buzzword&#8230; &nbsp;An online document&#8230; with Buzzword&#8230; &nbsp;An online document&#8230; with Buzzword&#8230; &nbsp;An online document&#8230; with Buzzword&#8230; &nbsp;An online document&#8230; with Buzzword&#8230; &nbsp;An online document&#8230; with Buzzword&#8230; &nbsp;An online document&#8230; with Buzzword&#8230; &nbsp;An online document&#8230; with Buzzword&#8230; &nbsp;An online document&#8230; with Buzzword&#8230; &nbsp;An online document&#8230; with Buzzword&#8230; &nbsp;An &lt;/span&gt;&lt;span style=<span style="color: #ff0000;">&quot;font-family:&#39;Times New Roman&#39;; font-size:12pt; font-weight:bold; color:#ffb300; background-color:#303030; &quot;</span>&gt;online document&#8230; with Buzzword&#8230; &nbsp;An online document&#8230; with Buzzword&#8230; &nbsp;An online document&#8230; with Buzzword&#8230; &nbsp;An online document&#8230; with Buzzword&#8230; &nbsp;An online document&#8230; with Buzzword&#8230;<br />
&nbsp; &nbsp; &lt;/div&gt;<br />
&nbsp; &lt;/body&gt;<br />
&lt;/html&gt;</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://karlherrick.com/dev/2008/06/02/adobe-buzzword-html-export/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
