<?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>ObjectClarity.com</title>
	<atom:link href="http://www.objectclarity.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.objectclarity.com</link>
	<description>On Linux, programming and the web.</description>
	<lastBuildDate>Mon, 20 Feb 2012 18:27:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Spamassassin</title>
		<link>http://www.objectclarity.com/2012/02/spamassassin/</link>
		<comments>http://www.objectclarity.com/2012/02/spamassassin/#comments</comments>
		<pubDate>Mon, 20 Feb 2012 18:27:42 +0000</pubDate>
		<dc:creator>mvoorberg</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.objectclarity.com/?p=60</guid>
		<description><![CDATA[I&#8217;ve recently seen an influx of spam on several of the sites that I run. This led to a closer investigation of the default settings in Spamassassin. The description in CPanel isn&#8217;t as clear as it could be so I had to look further. The numeric value is the measure at which Spam gets deleted.  [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently seen an influx of spam on several of the sites that I run. This led to a closer investigation of the default settings in Spamassassin. The description in CPanel isn&#8217;t as clear as it could be so I had to look further.</p>
<p>The numeric value is the measure at which Spam gets deleted.  Messages are assigned points based on how &#8216;spammy&#8217; they appear.  Given that piece of info, the lower the number, the fewer messages get through.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.objectclarity.com/2012/02/spamassassin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hey, Where did my VBA Immediate Window go?</title>
		<link>http://www.objectclarity.com/2011/12/hey-where-did-my-immediate-window-go/</link>
		<comments>http://www.objectclarity.com/2011/12/hey-where-did-my-immediate-window-go/#comments</comments>
		<pubDate>Thu, 08 Dec 2011 22:11:31 +0000</pubDate>
		<dc:creator>mvoorberg</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.objectclarity.com/?p=65</guid>
		<description><![CDATA[While debugging a grossly complicated Excel 2010 workbook my Immediate window disappeared completely. If it ever happens to you, here’s an easy way to get it back: Open the VBE and select Tools, Options Select the Docking tab and make sure the window in question has no checkmark in that tab Close the options window. [...]]]></description>
			<content:encoded><![CDATA[<p>While debugging a grossly complicated Excel 2010 workbook my Immediate window disappeared completely. If it ever happens to you, here’s an easy way to get it back:</p>
<ul>
<li>Open the VBE and select Tools, Options</li>
<li>Select the Docking tab and make sure the window in question has no checkmark in that tab</li>
<li>Close the options window. If you don’t see it yet, select Window, Cascade.</li>
<li>Now open the Options dialog again and check the docking property of the window you just (hopefully) got back.</li>
<li>Drag it to where you want it docked.</li>
</ul>
<p>Done!  Now get back to work!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.objectclarity.com/2011/12/hey-where-did-my-immediate-window-go/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Framework Quickstart on Ubuntu 11.10</title>
		<link>http://www.objectclarity.com/2011/11/zend-framework-quickstart/</link>
		<comments>http://www.objectclarity.com/2011/11/zend-framework-quickstart/#comments</comments>
		<pubDate>Thu, 17 Nov 2011 20:58:35 +0000</pubDate>
		<dc:creator>mvoorberg</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.objectclarity.com/?p=62</guid>
		<description><![CDATA[Running through the Zend Framework quickstart on Ubuntu 11.10, I ran into a few issues. Granted they&#8217;re not huge issues, but they slowed me down nonetheless. 1) Make sure that the php.ini for the cli is updated to include the zend framework. See the /etc/apache2/php.ini for the changes required. 2) When creating the /data and [...]]]></description>
			<content:encoded><![CDATA[<p>Running through the Zend Framework quickstart on Ubuntu 11.10, I ran into a few issues.  Granted they&#8217;re not huge issues, but they slowed me down nonetheless.</p>
<p>1) Make sure that the php.ini for the cli is updated to include the zend framework.  See the /etc/apache2/php.ini for the changes required.</p>
<p>2) When creating the /data and /scripts folders, they need to be in the root of your quickstart app, beside your &#8220;public&#8221; folder.</p>
<p>3) I didn&#8217;t have the Sqlite driver installed on my machine so that had to be installed before I could create the database.</p>
<p>AN ERROR HAS OCCURED: The sqlite driver is not currently installed</p>
<p>To fix this, I installed the &#8220;php-mdb2-driver-sqlite&#8221; package from Synaptic.</p>
<p>After fixing these 3 problems, the data loading script worked like a charm!</p>
<p>There was one more glitch getting the Quickstart app completed.  Apparently in Ubuntu 11.10, Sqlite has been upgraded to Sqlite3 where Zend is still using the older version.  Here&#8217;s a workaround to add the prior version to get through:  <a href="https://bugs.launchpad.net/ubuntu/+source/php5/+bug/875262/comments/10" title="Sqlite workaround" target="_blank">https://bugs.launchpad.net/ubuntu/+source/php5/+bug/875262/comments/10</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.objectclarity.com/2011/11/zend-framework-quickstart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gimp Plug-ins</title>
		<link>http://www.objectclarity.com/2011/11/gimp-plug-ins/</link>
		<comments>http://www.objectclarity.com/2011/11/gimp-plug-ins/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 20:04:25 +0000</pubDate>
		<dc:creator>mvoorberg</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.objectclarity.com/?p=58</guid>
		<description><![CDATA[I stumbled across this set of plugin&#8217;s today. It&#8217;s got a million ways to slice photos and it&#8217;s in the Debian repositories. Sweet! See the details.]]></description>
			<content:encoded><![CDATA[<p>I stumbled across this set of plugin&#8217;s today.  It&#8217;s got a million ways to slice photos and it&#8217;s in the Debian repositories.  Sweet!</p>
<pre class="qoate-code">
sudo apt-get install gimp-plugin-registry
</pre>
<p>See the <a href="http://packages.debian.org/sid/gimp-plugin-registry" title="Debian package details" target="_blank">details</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.objectclarity.com/2011/11/gimp-plug-ins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Easy Monitor calibration</title>
		<link>http://www.objectclarity.com/2011/10/easy-monitor-calibration/</link>
		<comments>http://www.objectclarity.com/2011/10/easy-monitor-calibration/#comments</comments>
		<pubDate>Thu, 27 Oct 2011 19:26:03 +0000</pubDate>
		<dc:creator>mvoorberg</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.objectclarity.com/?p=59</guid>
		<description><![CDATA[I spend a lot of time in front of my monitor and if it&#8217;s too bright my eyes get tired quickly. As a result, I keep my brightness down so low that people have thought I had a broken monitor. However, when viewing pictures I need it to look as accurate as possible. Here&#8217;s a [...]]]></description>
			<content:encoded><![CDATA[<p>I spend a lot of time in front of my monitor and if it&#8217;s too bright my eyes get tired quickly.  As a result, I keep my brightness down so low that people have thought I had a broken monitor.  However, when viewing pictures I need it to look as accurate as possible.  Here&#8217;s a quick and dirty way to be sure that my Contrast and Brightness are set to reasonable values.</p>
<p><a href="http://www.photofriday.com/calibrate.php" >http://www.photofriday.com/calibrate.php</a></p>
<p>It won&#8217;t be perfect, but the price is right and you have nothing to lose but a few minutes of fiddling.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.objectclarity.com/2011/10/easy-monitor-calibration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Handy PL/SQL</title>
		<link>http://www.objectclarity.com/2011/10/handy-plsql/</link>
		<comments>http://www.objectclarity.com/2011/10/handy-plsql/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 14:33:35 +0000</pubDate>
		<dc:creator>mvoorberg</dc:creator>
				<category><![CDATA[Database]]></category>

		<guid isPermaLink="false">http://www.objectclarity.com/?p=57</guid>
		<description><![CDATA[Every now and then I need to write a block of PL/SQL that&#8217;s a little more involved. I&#8217;ve had this block of script put aside as an example of how to include functions and procedures in an anonymous block.]]></description>
			<content:encoded><![CDATA[<p>Every now and then I need to write a block of PL/SQL that&#8217;s a little more involved.  I&#8217;ve had this block of script put aside as an example of how to include functions and procedures in an anonymous block.</p>
<pre class="qoate-code">
BEGIN
   DECLARE
       -- Equivalent of a package level variable
       i   INTEGER := 0;

      PROCEDURE doStuff (description IN VARCHAR2)
      IS
         i   INTEGER;
      BEGIN
         DBMS_OUTPUT.put_line ('description is ' || description);

         i := i + 1;
      END;

      FUNCTION calcStuff (i_value IN INTEGER)
      return integer
      iS
         i_dummy   INTEGER;
      BEGIN
         i := i + 1;
         DBMS_OUTPUT.put_line ('Function called ' || i || ' time(s)' );

         return i_value + i;
      END;

   BEGIN
      -- Call our shiny new procedure
      doStuff ('one');
      doStuff ('two');
      doStuff ('three');

      -- Call our new function
      DBMS_OUTPUT.put_line ('Function returned: ' || calcStuff(100));
      DBMS_OUTPUT.put_line ('Function returned: ' || calcStuff(150));
      DBMS_OUTPUT.put_line ('Function returned: ' || calcStuff(200));

   END;
END;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.objectclarity.com/2011/10/handy-plsql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dumping EXIF with exiftool and Nautilus</title>
		<link>http://www.objectclarity.com/2011/10/dumping-exif-with-exiftool-and-nautilus/</link>
		<comments>http://www.objectclarity.com/2011/10/dumping-exif-with-exiftool-and-nautilus/#comments</comments>
		<pubDate>Mon, 03 Oct 2011 18:48:58 +0000</pubDate>
		<dc:creator>mvoorberg</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.objectclarity.com/?p=54</guid>
		<description><![CDATA[When sharing digital images online, I often find myself looking for an easy way to copy and paste the EXIF data. This little script when put into my ~/.gnome2/nautilus-scripts folder will create a text file of the most commonly used EXIF information.]]></description>
			<content:encoded><![CDATA[<p>When sharing digital images online, I often find myself looking for an easy way to copy and paste the EXIF data.  This little script when put into my ~/.gnome2/nautilus-scripts folder will create a text file of the most commonly used EXIF information.</p>
<pre class="qoate-code">
#!/bin/bash
files=$#
count=1
message=`echo "Dumping EXIF from $files files"`

(while [ $# -gt 0 ]; do

	# Strip off the file extension, including the "."
	upperExt=`echo $1 | sed 's/.*\(\..*\)/\1/' | tr '[a-z]' '[A-Z]'`

	if [ -f "$1" ]
	then
		# Get the file name without the extension
		# trimmed=`echo $1 | sed 's/\(.*\)\..*/\1/'`

		if [ $upperExt = ".JPG" -o  $upperExt = ".JPEG" -o  $upperExt = ".PPM" -o $upperExt = ".CR2" -o $upperExt = ".NEF" -o $upperExt = ".OTHER_RAW_EXTENSION" ]
		then
			# Output EXIF data to a new text file named the same as the original image.
			exiftool -canon -S "$1" &gt; "$1.txt"
		fi
	fi
	# Output the zenity progress bar
	sav=`echo "(($count / $files) * 100)" | bc -l`
	echo $sav
	count=`expr $count + 1`
shift
done) | zenity --progress --auto-close --auto-kill --text "$message"
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.objectclarity.com/2011/10/dumping-exif-with-exiftool-and-nautilus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fixing POST errors that seem almost random</title>
		<link>http://www.objectclarity.com/2011/09/fixing-post-errors-that-seem-almost-random/</link>
		<comments>http://www.objectclarity.com/2011/09/fixing-post-errors-that-seem-almost-random/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 19:25:39 +0000</pubDate>
		<dc:creator>mvoorberg</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.objectclarity.com/?p=50</guid>
		<description><![CDATA[Recently my webhost installed mod_security on my webserver. It seemed like a non-event until I started getting calls from a few clients who had been merrily working for a long time. When they tried to update content in either Open-cart or WordPress, they were getting strange errors such as &#8220;501 Not Implemented&#8221; or &#8220;406 Not [...]]]></description>
			<content:encoded><![CDATA[<p>Recently my webhost installed mod_security on my webserver.  It seemed like a non-event until I started getting calls from a few clients who had been merrily working for a long time.  When they tried to update content in either Open-cart or WordPress, they were getting strange errors such as &#8220;501 Not Implemented&#8221; or &#8220;406 Not acceptable&#8221;.</p>
<p>The fix is to sidestep mod_security for those requests.  Ideally it should be limited to the offending request, but in the interest of getting people running, I simply added a .htaccess file in the /admin folder of the broken sites with the following contents.</p>
<pre class="qoate-code">
&lt;IfModule mod_security.c&gt;
    SecFilterEngine Off
    SecFilterScanPOST Off
&lt;/IfModule&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.objectclarity.com/2011/09/fixing-post-errors-that-seem-almost-random/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing a 3.0 kernel on Ubuntu 11.04 (natty)</title>
		<link>http://www.objectclarity.com/2011/09/installing-a-3-0-kernel-on-ubuntu-11-04-natty/</link>
		<comments>http://www.objectclarity.com/2011/09/installing-a-3-0-kernel-on-ubuntu-11-04-natty/#comments</comments>
		<pubDate>Sat, 03 Sep 2011 04:45:38 +0000</pubDate>
		<dc:creator>mvoorberg</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.objectclarity.com/?p=48</guid>
		<description><![CDATA[Ok, I saw the warning but didn&#8217;t think it applied to me. Don&#8217;t assume it doesn&#8217;t apply to you! Remove any proprietary ATI/AMD drivers from your Natty installation. You can put them back on after we install the new kernel. Now that you&#8217;ve checked for anf removed any ATI proprietary drivers, visit this URL and [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, I saw the warning but didn&#8217;t think it applied to me.  Don&#8217;t assume it doesn&#8217;t apply to you!</p>
<p>Remove any proprietary ATI/AMD drivers from your Natty installation. You can put them back on after we install the new kernel.</p>
<p>Now that you&#8217;ve checked for anf removed any ATI proprietary drivers, visit this URL and pick out the kernel that you want to try. <a href="http://kernel.ubuntu.com/~kernel-ppa/mainline/" >http://kernel.ubuntu.com/~kernel-ppa/mainline/</a></p>
<p>In my case, I was running the latest natty kernel on a new (but low-end) Toshiba C650D laptop.  It was crashing constantly, never running for more than an hour.  As there weren&#8217;t any clear indicators in the logs, and the hardware worked fine on Windows, I wanted to try a different kernel.  I wanted to the newest kernel possible in the hopes that whatever issue had been resolved.</p>
<p>I opened the above Url and scrolled way down to the bottom of the page. All the way to &#8220;v3.0.4-oneiric&#8221;.  It was dated four days ago &#8211; that ought to be new enough!  As I&#8217;m running 64 bit 11.04, I need the &#8220;amd64&#8243; binaries.  Download the appropriate ones, &#8220;headers&#8230;all&#8221; and the &#8220;headers&#8221; and &#8220;image&#8221; file for my architecture.</p>
<pre class="qoate-code"> linux-headers-3.0.4-030004_3.0.4-030004.201108301138_all.deb linux-headers-3.0.4-030004-generic_3.0.4-030004.201108301138_amd64.deb linux-image-3.0.4-030004-generic_3.0.4-030004.201108301138_amd64.deb </pre>
<p> Next, open a terminal window and cd to the folder where your binaries are located.  Run the following command to install the new kernel:
<pre class="qoate-code"> /sudo dpkg -i /linux-headers-3.0.4-030004_3.0.4-030004.201108301138_all.deb linux-headers-3.0.4-030004-generic_3.0.4-030004.201108301138_amd64.deb linux-image-3.0.4-030004-generic_3.0.4-030004.201108301138_amd64.deb </pre>
<p>Let it run for a minute or two and if there are no errors reboot.  If you have errors, fix them, try the install command again and reboot.  If Grub doesn&#8217;t prompt you to choose a kernel, check it from terminal once you&#8217;re logged in.  with the following:
<pre class="qoate-code"> /uname -r /</pre>
<p>There you have it!  Running a 3.0 kernel on Ubuntu 11.04, Natty.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.objectclarity.com/2011/09/installing-a-3-0-kernel-on-ubuntu-11-04-natty/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Domain Registration &#8211; on my schedule!</title>
		<link>http://www.objectclarity.com/2011/08/domain-registration-on-my-schedule/</link>
		<comments>http://www.objectclarity.com/2011/08/domain-registration-on-my-schedule/#comments</comments>
		<pubDate>Thu, 18 Aug 2011 18:53:15 +0000</pubDate>
		<dc:creator>mvoorberg</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.objectclarity.com/?p=45</guid>
		<description><![CDATA[Working as a freelance web developer means that I work really strange hours. I may not get to a project until my kids are in bed and keep working late into the evening. When there&#8217;s something that needs to be done, nothing ticks me off quite like a broken website that requires a phone call [...]]]></description>
			<content:encoded><![CDATA[<p>Working as a freelance web developer means that I work really strange hours.  I may not get to a project until my kids are in bed and keep working late into the evening.  When there&#8217;s something that needs to be done, nothing ticks me off quite like a broken website that requires a phone call to customer support.  Once or twice I&#8217;ll let someone get away with it, after-all sometimes stuff breaks.  That&#8217;s just the way it is. But when it came time to renew my website domain &#8211; the face of my freelancing business, and I discovered yet again that the domain renewal pages of my registrar *still* would not allow me to renew online I nearly lost it.  I called up their customer support where the person on the other end asked me for my username and password so that they could enter the transaction for me.  Yeah right.  It was time to find myself a new registrar.  After the usual poking around the Internet and some discussion among my associates, I settled on <a href="http://www.namespro.ca/" >http://www.namespro.ca/</a>. They&#8217;ve been in the business since 2003 and are a Canadian business so I feel like I can trust them to manage my domains properly.  I signed up and was able to quickly and easily move over my domain.  The website is easy to follow and the domain management pages are clean and easy to use.  I sent a couple questions out to their tech support and received prompt replies that made me very happy with my choice.  I&#8217;ve since moved a couple more domains to them and will continue to chance my domains over to namespro as they come due. Managing my domains from a proper web interface on my own schedule has never been simpler!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.objectclarity.com/2011/08/domain-registration-on-my-schedule/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

