<?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>Adam Sherman &#187; Software</title>
	<atom:link href="http://www.sherman.ca/archives/category/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sherman.ca</link>
	<description>Mostly random thoughts on software, gear and the great outdoors.</description>
	<lastBuildDate>Fri, 06 Jan 2012 18:39:35 +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>Developer Position Open at Versature</title>
		<link>http://www.sherman.ca/archives/2011/12/05/developer-position-open-at-versature/</link>
		<comments>http://www.sherman.ca/archives/2011/12/05/developer-position-open-at-versature/#comments</comments>
		<pubDate>Mon, 05 Dec 2011 21:11:03 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[careers]]></category>

		<guid isPermaLink="false">http://www.sherman.ca/?p=301</guid>
		<description><![CDATA[Versature is hiring again. <a href="http://www.sherman.ca/archives/2011/12/05/developer-position-open-at-versature/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re hiring again at Versature, take a look:</p>

<p><a href="http://inside.versature.com/2011/12/developer-position-open/">Developer Position Open</a></p>

<p>It&#8217;s a software developer position that gets you working directly with me. Make sure to spread the word!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sherman.ca/archives/2011/12/05/developer-position-open-at-versature/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NullPosts: suds and appengine</title>
		<link>http://www.sherman.ca/archives/2011/08/04/nullposts-suds-and-appengine/</link>
		<comments>http://www.sherman.ca/archives/2011/08/04/nullposts-suds-and-appengine/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 00:01:32 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[gae]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://www.sherman.ca/?p=289</guid>
		<description><![CDATA[I ran into the issue described in NullPosts: suds and appengine today. This is caused by the great Python SOAP API, suds, and Google App Engine not playing together to do some of the restrictions in GAE. Thanks NullPosts!]]></description>
			<content:encoded><![CDATA[<p>I ran into the issue described in <a href="http://omiethenull.blogspot.com/2010/08/suds-and-appengine.html">NullPosts: suds and appengine</a> today. This is caused by the great <a href="http://www.python.org">Python</a> <a href="http://en.wikipedia.org/wiki/SOAP">SOAP</a> API, <a href="https://fedorahosted.org/suds/">suds</a>, and <a href="http://code.google.com/appengine/">Google App Engine</a> not playing together to do some of the restrictions in GAE. Thanks <a href="http://omiethenull.blogspot.com/">NullPosts</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sherman.ca/archives/2011/08/04/nullposts-suds-and-appengine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google App Engine&#8217;s Python Exception Syntax</title>
		<link>http://www.sherman.ca/archives/2011/08/04/gae-python-exception-syntax/</link>
		<comments>http://www.sherman.ca/archives/2011/08/04/gae-python-exception-syntax/#comments</comments>
		<pubDate>Thu, 04 Aug 2011 19:39:46 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[gae]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://www.sherman.ca/?p=285</guid>
		<description><![CDATA[Remember, Python 2.5 has this exception syntax: try: raise FooException("Darn!") except FooException, e print("Error: %s" % e) The newer syntax is: try: raise FooException("Darn!") except FooException as e print("Error: %s" % e) I ran into this when uploading an application &#8230; <a href="http://www.sherman.ca/archives/2011/08/04/gae-python-exception-syntax/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Remember, <a href="http://docs.python.org/release/2.5.4/tut/node10.html#SECTION0010300000000000000000">Python 2.5</a> has this exception syntax:
<pre>try:
    raise FooException("Darn!")
except FooException, e
    print("Error: %s" % e)</pre>
The <a href="http://docs.python.org/reference/compound_stmts.html#the-try-statement">newer syntax</a> is:
<pre>try:
    raise FooException("Darn!")
except FooException as e
    print("Error: %s" % e)</pre>
I ran into this when uploading an application to <a title="Google App Engine" href="http://code.google.com/appengine/">Google App Engine</a>, which then produced this cryptic error:
<pre>&lt;type 'exceptions.SyntaxError'&gt;: invalid syntax (main.py, line 64)</pre>
Where line 64 is the line containing the not-yet-implemented <strong>as</strong> keyword.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sherman.ca/archives/2011/08/04/gae-python-exception-syntax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Get sources and Javadocs</title>
		<link>http://www.sherman.ca/archives/2011/08/01/get-sources-and-javadocs/</link>
		<comments>http://www.sherman.ca/archives/2011/08/01/get-sources-and-javadocs/#comments</comments>
		<pubDate>Mon, 01 Aug 2011 15:12:46 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[J2EE]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://www.sherman.ca/?p=282</guid>
		<description><![CDATA[How to tell Maven to download all Javadoc for your project&#8217;s dependencies: mvn dependency:resolve -Dclassifier=javadoc via Maven Micro-Tip: Get sources and Javadocs &#124; Ted Wise.]]></description>
			<content:encoded><![CDATA[<p>How to tell Maven to download all Javadoc for your project&#8217;s dependencies:</p>

<blockquote>
<pre>mvn dependency:resolve -Dclassifier=javadoc</pre>
</blockquote>

<p>via <a href="http://tedwise.com/2010/01/27/maven-micro-tip-get-sources-and-javadocs/">Maven Micro-Tip: Get sources and Javadocs | Ted Wise</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sherman.ca/archives/2011/08/01/get-sources-and-javadocs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mac OS X 10.7 &#8220;Lion&#8221; Seems to Have a Broken Python easy_install</title>
		<link>http://www.sherman.ca/archives/2011/07/25/lion-broken-python-easy_install/</link>
		<comments>http://www.sherman.ca/archives/2011/07/25/lion-broken-python-easy_install/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 19:11:36 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Mac OS]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.sherman.ca/?p=276</guid>
		<description><![CDATA[One of the first things I needed after upgrading to Mac OS X 10.7 (Lion) was to make some Python scripts work. However easy_install seemed to be broken: $ easy_install psycopg2 Traceback (most recent call last): File "/usr/local/bin/easy_install", line 5, &#8230; <a href="http://www.sherman.ca/archives/2011/07/25/lion-broken-python-easy_install/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>One of the first things I needed after upgrading to <a href="http://www.apple.com/macosx/" target="_blank">Mac OS X 10.7 (Lion)</a> was to make some Python scripts work. However easy_install seemed to be broken:
<pre>$ easy_install psycopg2
Traceback (most recent call last):
  File "/usr/local/bin/easy_install", line 5, in &lt;module&gt;
    from pkg_resources import load_entry_point
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 2607, in &lt;module&gt;
    parse_requirements(<strong>requires</strong>), Environment()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 565, in resolve
    raise DistributionNotFound(req)  # XXX put more info here
pkg_resources.DistributionNotFound: setuptools==0.6c12dev-r88795</pre>
I fixed this by installing <a href="http://packages.python.org/distribute/" target="_blank">Distribute</a> and then the new <a href="http://developer.apple.com/technologies/tools/" target="_blank">Mac OS X Developer Tools</a>.</p>

<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sherman.ca/archives/2011/07/25/lion-broken-python-easy_install/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>RSA finally comes clean: SecurID is compromised</title>
		<link>http://www.sherman.ca/archives/2011/06/07/rsa-finally-comes-clean-securid-is-compromised/</link>
		<comments>http://www.sherman.ca/archives/2011/06/07/rsa-finally-comes-clean-securid-is-compromised/#comments</comments>
		<pubDate>Tue, 07 Jun 2011 10:53:00 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.sherman.ca/?p=271</guid>
		<description><![CDATA[Wow. This is a massive deal and a huge hurdle for RSA: RSA finally comes clean: SecurID is compromised]]></description>
			<content:encoded><![CDATA[<p>Wow. This is a massive deal and a huge hurdle for RSA:</p>

<p><a href="http://arstechnica.com/security/news/2011/06/rsa-finally-comes-clean-securid-is-compromised.ars">RSA finally comes clean: SecurID is compromised</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sherman.ca/archives/2011/06/07/rsa-finally-comes-clean-securid-is-compromised/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Versature is Hiring</title>
		<link>http://www.sherman.ca/archives/2010/05/20/versature-is-hiring/</link>
		<comments>http://www.sherman.ca/archives/2010/05/20/versature-is-hiring/#comments</comments>
		<pubDate>Thu, 20 May 2010 14:59:53 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[versature]]></category>

		<guid isPermaLink="false">http://www.sherman.ca/?p=216</guid>
		<description><![CDATA[Looking for a job? <a href="http://www.sherman.ca/archives/2010/05/20/versature-is-hiring/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Thought I&#8217;d leave a note here that <a href="http://versature.com">Versature</a> is <a href="http://versature.com/about/jobs">hiring</a>. Notably, I&#8217;m looking for a developer with fresh user interface design ideas:</p>

<p style="padding-left: 30px;">Versature is looking for a developer with experience designing and building awesome user interfaces for complex problem domains. Visual analytics tools, integration with Google Apps, Mobile Safari support, real-time user interaction are all topics we cover.  Knowledge of the Java platform and experience using remote service APIs a must. Send your cover letter to the email address listed in the TXT record of hr.versature.net.</p>

<p>I&#8217;m hoping we can leverage the<a href="http://code.google.com/webtoolkit/"> Google Web Toolkit (GWT)</a> for this.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sherman.ca/archives/2010/05/20/versature-is-hiring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solaris Shared Library Troubleshooting Notes</title>
		<link>http://www.sherman.ca/archives/2008/03/25/solaris-shared-library-troubleshooting-notes/</link>
		<comments>http://www.sherman.ca/archives/2008/03/25/solaris-shared-library-troubleshooting-notes/#comments</comments>
		<pubDate>Tue, 25 Mar 2008 15:28:35 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[System]]></category>
		<category><![CDATA[solaris]]></category>

		<guid isPermaLink="false">http://www.sherman.ca/?p=108</guid>
		<description><![CDATA[Recently I have been building a few packages under an OpenSolaris Zone hosted by Joyent. Ran into a few issues with shared libraries, so here are my notes: Telling the Linker Where to Look You will often get an error &#8230; <a href="http://www.sherman.ca/archives/2008/03/25/solaris-shared-library-troubleshooting-notes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Recently I have been building a few packages under an OpenSolaris Zone hosted by <a title="Joyent" href="http://www.joyent.com/">Joyent</a>. Ran into a few issues with shared libraries, so here are my notes:</p>

<h4>Telling the Linker Where to Look</h4>

<p>You will often get an error like <code>ld.so.1: conftest: fatal: libreadline.so.5: open failed: No such file or directory</code>. This simply means the linker can not find your library. The following command will tell the linker to append a new entry to the existing search path:
 
<pre># crle -u /path/to/lib/dir</pre>
You can retrieve the current configuration by simply running <code>crle</code> on it&#8217;s own, output should be something like this:
<pre>$ crle
Configuration file [version 4]: /var/ld/ld.config
  Platform:     32-bit LSB 80386
  Default Library Path (ELF):   /opt/local/lib:/opt/csw/lib:/usr/lib:/lib
  Trusted Directories (ELF):    /lib/secure:/usr/lib/secure  (system default)
Command line:
  crle -c /var/ld/ld.config -l /opt/local/lib:/opt/csw/lib:/usr/lib:/lib</pre>
 </p>

<h4>Getting Yourself Out of Trouble</h4>

<p>You can easily get yourself into a situation where your system is a brick by having an incomplete search path for the linker. For example, if you run <code>crle -l /foo/path/lib</code>, you will no longer be able to run anything at all since the linker will not find basic libraries it needs. I found a <a title="Changing Search Paths with crle(1) - they are a replacement" href="http://blogs.sun.com/rie/entry/changing_search_paths_with_crle">great post</a> on this topic which instructs you do use the <code>LD_NOCONFIG</code> environment variable to tell the linker to use a default configuration. You can then fix the issue:
<pre>$ sudo crle -l /opt/local/lib -l /opt/csw/lib -l /usr/lib -l /lib
ld.so.1: sudo: fatal: libpam.so.1: open failed: No such file or directory
Killed
$ LD_NOCONFIG=yes sudo crle -l /opt/local/lib -l /opt/csw/lib -l /usr/lib -l /lib</pre></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sherman.ca/archives/2008/03/25/solaris-shared-library-troubleshooting-notes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Open Source Includes Support Options</title>
		<link>http://www.sherman.ca/archives/2005/07/24/open-source-includes-support-options/</link>
		<comments>http://www.sherman.ca/archives/2005/07/24/open-source-includes-support-options/#comments</comments>
		<pubDate>Sun, 24 Jul 2005 22:39:43 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.sherman.ca/2005/07/24/open-source-includes-support-options/</guid>
		<description><![CDATA[O&#8217;Reilly&#8217;s ONLamp has a great article which is most interesting. The premise is that Open Source software includes support options instead of support futures. I love it: [Open source is] converting warrants on future maintenance and enhancements into options, which &#8230; <a href="http://www.sherman.ca/archives/2005/07/24/open-source-includes-support-options/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.oreilly.com/">O&#8217;Reilly&#8217;s</a> <a href="http://www.onlamp.com/">ONLamp</a> has a great <a href="http://www.onlamp.com/pub/a/onlamp/2005/07/21/software_pricing.html">article</a> which is most interesting. The premise is that Open Source software includes <em>support options</em> instead of <em>support futures</em>. I love it:</p>

<p style="text-align:justify;text-indent:20pt;">[Open source is]<em> converting warrants on future maintenance and enhancements into options, which means that instead of having a sole supplier (warrants), we have created a third-party market (options) of these derivatives.</em></p>

<p style="text-align:justify;text-indent:20pt;"><em>How capitalistic is that?</em>
</p>

<p style="text-align:justify;">Very well said indeed. Found it from <a href="http://rlove.org/log/2005072301">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sherman.ca/archives/2005/07/24/open-source-includes-support-options/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DrunkenBlog: Behind the Red Shed, with Jonathan &#8216;The Wolf&#8217; Rentzsch</title>
		<link>http://www.sherman.ca/archives/2005/03/28/drunkenblog-behind-the-red-shed-with-jonathan-the-wolf-rentzsch/</link>
		<comments>http://www.sherman.ca/archives/2005/03/28/drunkenblog-behind-the-red-shed-with-jonathan-the-wolf-rentzsch/#comments</comments>
		<pubDate>Mon, 28 Mar 2005 12:06:03 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.sherman.ca/2005/03/28/drunkenblog-behind-the-red-shed-with-jonathan-the-wolf-rentzsch/</guid>
		<description><![CDATA[In this post on DrunkenBlog, Jonathan Rentzsch gives a terrific interview. Notably, he discusses Apple&#8217;s enterprise software development gem, WebObjects, which I&#8217;ve always wanted to know more about. Anyone know if there is a downloadable developer&#8217;s version somewhere? Update: Yes, &#8230; <a href="http://www.sherman.ca/archives/2005/03/28/drunkenblog-behind-the-red-shed-with-jonathan-the-wolf-rentzsch/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In this <a href="http://www.drunkenblog.com/drunkenblog-archives/000513.html" title="DrunkenBlog: Behind the Red Shed, with Jonathan 'The Wolf' Rentzsch">post</a> on <a href="http://www.drunkenblog.com/">DrunkenBlog</a>, Jonathan Rentzsch gives a terrific interview. Notably, he discusses Apple&#8217;s enterprise software development gem, WebObjects, which I&#8217;ve always wanted to know more about.</p>

<p>Anyone know if there is a downloadable developer&#8217;s version somewhere?</p>

<p><strong>Update:</strong> Yes, you can download a 1 month evaluation copy from <a href="http://connect.apple.com/">http://connect.apple.com/</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sherman.ca/archives/2005/03/28/drunkenblog-behind-the-red-shed-with-jonathan-the-wolf-rentzsch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

