<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">

 <title>The Adventures of Slightly Taller Than Average Man</title>
 
 <link href="http://www.slightlytallerthanaverageman.com/" />
 <updated>2010-03-15T20:26:16-05:00</updated>
 <id>http://www.slightlytallerthanaverageman.com/</id>
 <author>
   <name>Craig Forster</name>
   <email>craigforster@gmail.com</email>
 </author>

 
 <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/TheAdventuresOfSlightlyTallerThanAverageMan" /><feedburner:info uri="theadventuresofslightlytallerthanaverageman" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>TheAdventuresOfSlightlyTallerThanAverageMan</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry>
   <title>We're coming to America, finally</title>
   <link href="http://feedproxy.google.com/~r/TheAdventuresOfSlightlyTallerThanAverageMan/~3/SWmy_KKudPg/" />
   <updated>2010-03-15T00:00:00-05:00</updated>
   <id>id:/2010/03/15/were-moving-finally</id>
   <content type="html">&lt;p&gt;After 11 months of waiting and planning, &lt;a href="http://shinyredthings.tumblr.com"&gt;Rae&lt;/a&gt; and I are finally on our way to Austin. I've never before felt the mix of emotions that I felt on Sunday as we frantically caught up with people before we left.  It's a strange and unsettling mix of nerves, excitement, sadness and fear. Once the last-minute dash into West End to see my close friends from UQ basketball was done, all those emotions gave way to a strange zen-like calm as we did the final pack.&lt;/p&gt;

&lt;p&gt;I'm writing this from LAX as Rae sleeps beside me; the flight from Brisbane has left her exhausted and we have another two and a half hours before our next flight. I'm glad we left ourselves so much time between flights, as the line at the domestic security checkpoint was obscenely long. For those that know Terminal 4 the line was out the door next to the escalator and a good 50 metres down the drop-off lane, which is easily the worst I've ever seen it.&lt;/p&gt;

&lt;p&gt;The flight over was with V Australia, instead of the usual Qantas for business travel, and I can highly recommend them.  It was a newer plane (Boeing 777) with a better fit-out, it had wide-screen monitors (albeit with a smaller selection of movies), the food selection was good and the hostess was really helpful in calming Rae's travel nerves.  To be honest, I don't know why anyone would choose Qantas for the economy-class BNE to LAX trip any more.&lt;/p&gt;

&lt;p&gt;Immigration was painless too, which has been my experience on my last two trips.  The upgrades at Tom Bradley International Terminal have really helped bring the lines down, as has the simple math of adding more immigration officers.  Ours was extremely helpful, even going out of his way to see if he could stamp Rachel's passport for a 12-month entry on her B2 visa instead of the usual 6 months. Turns out he can, and he did; he also had some good advice about what to do when we need to get it re-stamped in a year's time.&lt;/p&gt;

&lt;p&gt;So... one more flight to go.  Next stop -- Austin, TX!&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/TheAdventuresOfSlightlyTallerThanAverageMan/~4/SWmy_KKudPg" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://www.slightlytallerthanaverageman.com/2010/03/15/were-moving-finally/</feedburner:origLink></entry>
 
 <entry>
   <title>Cross-Enterprise Security and Privacy Authorization (XSPA) using IBM Tivoli Security products</title>
   <link href="http://feedproxy.google.com/~r/TheAdventuresOfSlightlyTallerThanAverageMan/~3/8zKjXyp-fQU/" />
   <updated>2010-03-05T00:00:00-06:00</updated>
   <id>id:/2010/03/05/xspa-and-tivoli-security</id>
   <content type="html">&lt;h3&gt;Overview&lt;/h3&gt;

&lt;p&gt;The XSPA technical committee defines profiles of OASIS open standards to enable secure, cross-enterprise exchange of personal healthcare data.  Built on XACML, SAML and WS-Trust the XSPA defined profiles enable healthcare staff to access a patient's data at their "primary care provider" in a manner that is secure, respects the patient's privacy wishes and enforces access control based on organisational constraints.&lt;/p&gt;

&lt;p&gt;This year at RSA 2010 OASIS put together a demonstration booth with three separate interop events -- XSPA being one of them.  IBM participated in this event, along with Oracle (using Sun technology) and Jericho Systems.  As has been the case in previous XSPA demonstrations, Veteran's Affairs (VA) provided the client and server applications that call out to the various vendors' components.&lt;/p&gt;

&lt;p&gt;This year the focus was on showing support for the new WS-Trust profile, with IBM and Sun/Oracle providing interchangeable WS-Trust endpoints for the client domain's STS. The infrastructure built for previous interop events for the XACML profile is still in place -- in this event IBM's XACML PDP was used for the client domain, and Jericho's XACML PDP was used for the service provider domain.&lt;/p&gt;

&lt;p&gt;A number of use cases were demonstrated at the event:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Data masking:  allowing a patient to mask parts of their medical history based on role or specific subject identifier;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Emergency override:  if a user is unable to perform a cross-enterprise search under the course of a normal healthcare treatment, they can declare an emergency over-ride and access the data.  This is still under the control of organisational policy -- the user must have the correct HL7 permissions to declare emergencies.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Genomic risk marker filtering -- The genome of some patients have been analysed and markers for being "at-risk" of certain health issues (such as schizophrenia) have been identified.  The patient can choose to hide some of these at-risk markers to protect their privacy.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;h3&gt;XSPA using IBM Tivoli Security solutions&lt;/h3&gt;

&lt;p&gt;IBM participated in this event using a solution built entirely on IBM products.  Tivoli Security Policy Manager (TSPM) provided the runtime WS-Trust, SAML and XACML capabilities; Tivoli Access Manager (TAM) and Tivoli Directory Server (TDS) stored the user credentials and attributes for the use case at hand; and of course the whole solution is hosted on WebSphere Application Server (WAS).&lt;/p&gt;

&lt;p&gt;TSPM contains a number of runtime security services. The ones used in this scenario are the identity service, which is the Security Token Service (STS) for the WS-Trust component, and the authorisation service, which is the XACML PDP.&lt;/p&gt;

&lt;p&gt;The STS component is provided by the Tivoli Federated Identity Manager (TFIM) product.  When a customer purchases TSPM a license to use this component of TFIM is included; however the configuration of the STS is still done via the TFIM console.  The configuration instructions below include references to TFIM for this reason.&lt;/p&gt;

&lt;p&gt;In order for the STS to issue SAML 2.0 tokens containing the XSPA-defined attributes, the LDAP server must be populated with the correct attributes.&lt;br/&gt;
&lt;/p&gt;

&lt;p&gt;Rather than defining a new LDAP schema, the following attributes were used to store the XSPA attributes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;urn:oasis:names:tic:xacml:1.0:subject:subject-id  = cn&lt;/li&gt;
&lt;li&gt;urn:oasis:names:tic:spa:1.0:subject:nip       = uniqueIdentifier&lt;/li&gt;
&lt;li&gt;urn:oasis:names:tic:spa:1.0:subject:organisation  = organizationName&lt;/li&gt;
&lt;li&gt;urn:oasis:names:tic:spa:1.0:subject:organization-id   = organizationalUnit&lt;/li&gt;
&lt;li&gt;urn:oasis:names:tic:xacml:2.0:subject:role        = businessCategory&lt;/li&gt;
&lt;li&gt;urn:oasis:names:tic:spa:1.0:subject:hl7:permission    = mail&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;In a production environment we'd most likely make the effort to clearly define a new schema, however for the purpose of this demonstration overloading existing attributes sufficed.&lt;/p&gt;

&lt;p&gt;The following attributes for the two users in the use case were used:&lt;/p&gt;

&lt;p&gt;Doctor Bob:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;uid           = drbob&lt;/li&gt;
&lt;li&gt;CN            = Doctor,Bob&lt;/li&gt;
&lt;li&gt;uniqueIdentifier  = 100035&lt;/li&gt;
&lt;li&gt;organizationName  = Healthcare Domain A&lt;/li&gt;
&lt;li&gt;organizationalUnit    = 1.0.0.0.0.1&lt;/li&gt;
&lt;li&gt;businessCategory  = MD/Allopath&lt;/li&gt;
&lt;li&gt;mail          = PRD-003, PRD-005, PRD-006, PRD-009, PRD-010, PRD-012, PRD-017&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Nurse Alice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;uid           = nursealice&lt;/li&gt;
&lt;li&gt;CN            = Nurse,Alice&lt;/li&gt;
&lt;li&gt;uniqueIdentifier  = 100040&lt;/li&gt;
&lt;li&gt;organizationName  = Healthcare Domain A&lt;/li&gt;
&lt;li&gt;organizationalUnit    = 1.0.0.0.0.1&lt;/li&gt;
&lt;li&gt;businessCategory  = Registered Nurse (RN)&lt;/li&gt;
&lt;li&gt;mail          = PEA-001, PRD-006&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;A custom TFIM mapping module was written to extract all the attributes for a given user from the LDAP into the STSUU.  This custom module searches for the Principal name (using a configured attribute, for example 'id') under a configured base DN and extracts all the attribute values.  An XSLT mapping rule then maps the required subset of these LDAP attributes to XSPA attribute identifiers as per above.&lt;/p&gt;

&lt;p&gt;The XSLT mapping rule also extracts any passed Claims in the XSPA namespace and places them into the returned SAML assertion.  Claims are passed in the form:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="xml"&gt;&lt;span class="nt"&gt;&amp;lt;trust:Claims&lt;/span&gt; &lt;span class="na"&gt;Dialect=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;urn:oasis:names:tc:xspa:1.0:claims&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;xspa:ClaimType&lt;/span&gt; &lt;span class="na"&gt;xmlns:xspa=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;urn:oasis:names:tc:xspa:1.0:claims&amp;quot;&lt;/span&gt; 
        &lt;span class="na"&gt;Uri=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;urn:oasis:names:tc:xspa:1.0:subject:purposeofuse&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;xspa:Value&amp;gt;&lt;/span&gt;Emergency Treatment&lt;span class="nt"&gt;&amp;lt;/xspa:Value&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/xspa:ClaimType&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/trust:Claims&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;This feature of the profile allows the client application to insert dynamic values into the SAML assertion, which the service provider may or may not use when authorising the request.  The example given above is specifying the "purpose of use" as "Emergency Treatment"; this might allow otherwise unauthorised users access to data in order to effectively treat the patient.&lt;/p&gt;

&lt;p&gt;The trust chain is then configured as follows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;UsernameToken (validate, authenticate using TAM)&lt;/li&gt;
&lt;li&gt;LDAP attribute extraction (map)&lt;/li&gt;
&lt;li&gt;Default mapping module (map)&lt;/li&gt;
&lt;li&gt;SAML 2.0 (issue, with signature)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;The SAML assertion is signed with the same key that is used for the SSL endpoint (TFIM is configured with WebSEAL as the point-of-contact in the VM we used).&lt;/p&gt;

&lt;p&gt;For this interop, RTSS was only used for the client side's internal authorisation.  The default policy was used, imported straight into the RTSS Storage Service.  No modification was required.  However, the service provider's policy could be modelled in TSPM if desired.&lt;/p&gt;

&lt;h3&gt;Further Reading&lt;/h3&gt;

&lt;p&gt;A number of times during the expo I was asked to email links where people can find more information about the IBM products used in the interop.  As usual, the IBM Redbooks and Redpapers are the best source of information:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Federated Identity Management and Web Services Security with IBM Tivoli Security Solutions&lt;/em&gt; [&lt;a href="http://www.redbooks.ibm.com/abstracts/sg246394.html?Open"&gt;link&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Understanding SOA Security Design and Implementation&lt;/em&gt; [&lt;a href="http://www.redbooks.ibm.com/abstracts/SG247310.html"&gt;link&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;&lt;em&gt;IBM Tivoli Security Policy Manager&lt;/em&gt; [&lt;a href="http://www.redbooks.ibm.com/redpieces/abstracts/redp4483.html"&gt;link&lt;/a&gt;].  &lt;a href="http://www.slightlytallerthanaverageman.com/2009/01/31/ibm-redpaper-on-tivoli-security-policy-manager/"&gt;I was involved&lt;/a&gt; in the writing of this Redpaper.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Feel free to leave me a comment if you have questions as well, and I'll do my best to answer them.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/TheAdventuresOfSlightlyTallerThanAverageMan/~4/8zKjXyp-fQU" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://www.slightlytallerthanaverageman.com/2010/03/05/xspa-and-tivoli-security/</feedburner:origLink></entry>
 
 <entry>
   <title>The Sublime Nature of Flying</title>
   <link href="http://feedproxy.google.com/~r/TheAdventuresOfSlightlyTallerThanAverageMan/~3/Y95Z311tS9I/" />
   <updated>2010-02-28T00:00:00-06:00</updated>
   <id>id:/2010/02/28/the-sublime-nature-of-flying</id>
   <content type="html">&lt;p&gt;There's something sublime about flying, even if it is in a noisy 747 with a few hundred other people.  The cramped conditions, uncomfortable seats and average food are all made worthwhile by one always present yet everchanging thing.&lt;/p&gt;

&lt;p&gt;The horizon.&lt;/p&gt;

&lt;p&gt;Sometimes it's a hard line; separating two equally blue halves of the world, ocean and late-Summer sky, with my single-serving friends and I suspended somewhere in the middle.&lt;/p&gt;

&lt;p&gt;Sometimes it's lost in the greyish whiteness of the clouds that start just off the port wingtip and continue unchanged until well past where the horizon should be.&lt;br/&gt;
&lt;/p&gt;

&lt;p&gt;Sometimes it's providing the platform for a deep orange sunrise to use as leverage to overcome the cold, black night.  Cold and serene; yet giving rise to the same day I've seen before on the other side of the world.&lt;/p&gt;

&lt;p&gt;It's peaceful up there, isolated from the world.  Isolated from checking Facebook or Twitter every minute; isolated with my thoughts about what the journey ahead will bring.  It fills my head with ideas on which I am unable to act upon until I have returned to civilisation.&lt;/p&gt;

&lt;p&gt;I think that's where the creative bursts I get when I travel come from -- this period of enforced isolation away distractions. It fills me with purpose, and energy, and the excitement of discovery.&lt;/p&gt;

&lt;p&gt;It's wonderful.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/TheAdventuresOfSlightlyTallerThanAverageMan/~4/Y95Z311tS9I" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://www.slightlytallerthanaverageman.com/2010/02/28/the-sublime-nature-of-flying/</feedburner:origLink></entry>
 
 <entry>
   <title>Jekyll, FeedBurner and Global URLs</title>
   <link href="http://feedproxy.google.com/~r/TheAdventuresOfSlightlyTallerThanAverageMan/~3/0i5o5LAq_SY/" />
   <updated>2010-02-22T00:00:00-06:00</updated>
   <id>id:/2010/02/22/jekyll-feedburner-and-global-urls</id>
   <content type="html">&lt;p&gt;One of the advantages of using a &lt;a href="http://www.slightlytallerthanaverageman.com/2010/02/04/static-not-dynamic/"&gt;statically generated website&lt;/a&gt; through a system such as &lt;a href="http://github.com/mojombo/jekyll"&gt;Jekyll&lt;/a&gt; is that you always have a local, working copy of your website.  Of course, to make this seamless you should use relative URLs -- that way when testing locally everything is loaded from local files, not remote files.&lt;/p&gt;

&lt;p&gt;However, if your posts contain relative URLs then your generated RSS or Atom feed does too.  This can be a problem when integrating with a third-party feed management system like &lt;a href="http://feedburner.google.com/"&gt;FeedBurner&lt;/a&gt;.  Any relative URLs in your feed become relative to &lt;em&gt;FeedBurner's domain&lt;/em&gt;; not your domain like they should be.&lt;/p&gt;

&lt;p&gt;The easiest way I found to solve this was to use the unix utility &lt;a href="http://en.wikipedia.org/wiki/Sed"&gt;sed&lt;/a&gt; (short for stream editor).  Sed allows you to find and replace content from the command line.  Integrated into my "build and publish" script, it allows me to detect relative URLs in my generated atom.xml file and replace them with static ones before publishing to my web host.&lt;/p&gt;

&lt;p&gt;I place the following lines in a file called 'absolute_urls.sed':&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="bash"&gt;&lt;span class="c"&gt;# Replace &amp;#39;href=&amp;quot;/&amp;#39; with &amp;#39;href=&amp;quot;http://www.slightlytallerthanaverageman.com/&amp;#39;&lt;/span&gt;

s/ &lt;span class="nv"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="se"&gt;\&amp;amp;&lt;/span&gt;quot;&lt;span class="se"&gt;\/&lt;/span&gt;/ &lt;span class="nv"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="se"&gt;\&amp;amp;&lt;/span&gt;quot;http:&lt;span class="se"&gt;\/\/&lt;/span&gt;www.slightlytallerthanaverageman.com&lt;span class="se"&gt;\/&lt;/span&gt;/g
s/ &lt;span class="nv"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="se"&gt;\&amp;amp;&lt;/span&gt;quot;&lt;span class="se"&gt;\/&lt;/span&gt;/ &lt;span class="nv"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="se"&gt;\&amp;amp;&lt;/span&gt;quot;http:&lt;span class="se"&gt;\/\/&lt;/span&gt;www.slightlytallerthanaverageman.com&lt;span class="se"&gt;\/&lt;/span&gt;/g
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;Remember that relative URLs are indicated by a "/" at the start.  This uses the 's' command to find all instances of &lt;code&gt;href="/&lt;/code&gt; and replace it with &lt;code&gt;href="http://www.slightlytallerthanaverageman.com/&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Sed is then called as follows:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="bash"&gt;&lt;span class="c"&gt;#Replace relative URLs with absolute ones in the feed&lt;/span&gt;
sed -f _scripts/absolute_urls.sed _site/atom.xml &amp;gt; /tmp/atom.xml
mv /tmp/atom.xml _site/atom.xml
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;Magic!&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/TheAdventuresOfSlightlyTallerThanAverageMan/~4/0i5o5LAq_SY" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://www.slightlytallerthanaverageman.com/2010/02/22/jekyll-feedburner-and-global-urls/</feedburner:origLink></entry>
 
 <entry>
   <title>Movin' On Out</title>
   <link href="http://feedproxy.google.com/~r/TheAdventuresOfSlightlyTallerThanAverageMan/~3/mp0iM1sL9_0/" />
   <updated>2010-02-14T00:00:00-06:00</updated>
   <id>id:/2010/02/14/moving-on-out</id>
   <content type="html">&lt;p&gt;The time has finally come when moving to the US is starting to feel "real."  This weekend Rachel and I moved out of our apartment and into our friend Phil's place; marking the second tangible step along the way to getting to the US.&lt;/p&gt;

&lt;p&gt;The first step, of course, was having our big &lt;a href="http://www.slightlytallerthanaverageman.com/2010/01/22/the-great-purge-of-2010/"&gt;garage sale&lt;/a&gt;. Even after this sale the amount of stuff we ended up moving out to Phil's garage was more than expected. A lot of this stuff is going to either of our parent's place for storage, or being given to various friends as gifts, but it still feels like we have a lot of extra stuff to get rid of in one way or another.&lt;/p&gt;

&lt;p&gt;I honestly thought I'd be a lot sadder about moving out of the apartment that I've been at for over four years. It'd really become my home, evolving with me along the changes in my life.  I've changed from a nervous, single graduate to a confident professional engineer with a fantastic girlfriend / co-pilot; and in many ways my home had changed with me.&lt;/p&gt;

&lt;p&gt;Long gone are the inherited couch, tables and bed from my grandparent's estate.  They served me well during my share-house days, and over the years they had been replaced with a smattering of Ikea, a &lt;a href="http://www.slightlytallerthanaverageman.com/2008/05/16/my-own-tnt-flexy-tv-and-home-theatre-stand/"&gt;self-constructed TV cabinet&lt;/a&gt;, and Rachel's refurbished vintage chairs.  Now those too are gone, sold to the lovely girl who has taken over our lease.&lt;/p&gt;

&lt;p&gt;Yet I don't mourn the loss of these possessions -- after all, they are only things and have been willingly sold or donated to charity.&lt;/p&gt;

&lt;p&gt;What I expect to miss, though, is the sense of having a home furnished with the combined tastes of it's tenants. That sense of having somewhere that you belong, where you control the environment and are free to do what you wish within it.  That feeling will return once we find a place in Austin, I'm sure, and in the meantime we get to enjoy the company of friends and the excitement of change.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/craigf/4354922517/" title="From one end... by Craig F, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4043/4354922517_f614afc31c_s.jpg" width="75" height="75" alt="From one end..." /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/craigf/4355668218/" title="... to the other. by Craig F, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2751/4355668218_4c32027e18_s.jpg" width="75" height="75" alt="... to the other." /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/craigf/4355668306/" title="Shot glasses collected on my travels by Craig F, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4051/4355668306_387d44c032_s.jpg" width="75" height="75" alt="Shot glasses collected on my travels" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/craigf/4354922009/" title="Untitled by Craig F, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4054/4354922009_c3b615c5b4_s.jpg" width="75" height="75" alt="" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/craigf/4354921903/" title="Untitled by Craig F, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4047/4354921903_7c94f4d983_s.jpg" width="75" height="75" alt="" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/craigf/4354922699/" title="\m/ by Craig F, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2722/4354922699_0f2b485585_s.jpg" width="75" height="75" alt="\m/" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/craigf/4355668470/" title="Untitled by Craig F, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4058/4355668470_062e3f1624_s.jpg" width="75" height="75" alt="" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/craigf/4355668728/" title="A fake plastic truck guarding my fake plastic guitar by Craig F, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4008/4355668728_08077b070d_s.jpg" width="75" height="75" alt="A fake plastic truck guarding my fake plastic guitar" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/craigf/4355668640/" title="Dancing in the sunshine by Craig F, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2796/4355668640_cf7a5fccfa_s.jpg" width="75" height="75" alt="Dancing in the sunshine" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/TheAdventuresOfSlightlyTallerThanAverageMan/~4/mp0iM1sL9_0" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://www.slightlytallerthanaverageman.com/2010/02/14/moving-on-out/</feedburner:origLink></entry>
 
 <entry>
   <title>Rat Rods</title>
   <link href="http://feedproxy.google.com/~r/TheAdventuresOfSlightlyTallerThanAverageMan/~3/NvyLV-feIg0/" />
   <updated>2010-02-07T00:00:00-06:00</updated>
   <id>id:/2010/02/07/rat-rods</id>
   <content type="html">&lt;p&gt;I've always been a fan of rat rods -- hot rods imitating and exaggerating the early hot rods of the 30's and 40's, but usually left looking rusty and unfinished.&lt;/p&gt;

&lt;p&gt;From the &lt;a href="http://en.wikipedia.org/wiki/Rat_rod"&gt;Wikipedia article&lt;/a&gt; on the topic:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;The rat rod is the visualization of the idea of function over form. Rat rods are meant to be driven, not shown off. Sometimes the customization will include using spare parts, or parts from another car altogether.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I really appreciate the ethos of building a car with whatever spare parts you can get your hands on. It really cuts to the core of favouring simple solutions over complex ones.  It also does't mean you have to compromise on workmanship or quality; check out the pipework on &lt;a href="http://www.flickr.com/photos/craigf/4336314477/in/set-72157623136530746/"&gt;this one&lt;/a&gt; as an example. Attention to detail is just as important as on any other car.&lt;/p&gt;

&lt;p&gt;The car shows around South-east Queensland usually have a good turn-out of rat rods.  I've been to a few over the years, so here are some photos of the rat rods I've seen at the shows.&lt;/p&gt;

&lt;h3&gt;Wintersun 2008&lt;/h3&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/craigf/4337058512/" title="img_2502 by Craig F, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2687/4337058512_c5e2c164ac_s.jpg" width="75" height="75" alt="img_2502" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/craigf/4337058776/" title="img_2506 by Craig F, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2747/4337058776_45120c5a13_s.jpg" width="75" height="75" alt="img_2506" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/craigf/4337059098/" title="img_2503 by Craig F, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2740/4337059098_bf0550f9c9_s.jpg" width="75" height="75" alt="img_2503" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/craigf/4336314111/" title="img_2507 by Craig F, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4057/4336314111_6998b4c2e7_s.jpg" width="75" height="75" alt="img_2507" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/craigf/4336314477/" title="img_2508 by Craig F, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4063/4336314477_372cdd33d4_s.jpg" width="75" height="75" alt="img_2508" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/craigf/4336807705/" title="Untitled by Craig F, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4010/4336807705_d7ae14aca0_s.jpg" width="75" height="75" alt="" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/craigf/4336807691/" title="New England Rods &amp;amp;amp; Customs by Craig F, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2501/4336807691_d1751d0ba8_s.jpg" width="75" height="75" alt="New England Rods &amp;amp;amp; Customs" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Wintersun 2009&lt;/h3&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/craigf/4336319759/" title="IMG_3537 by Craig F, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4001/4336319759_b70051ccc8_s.jpg" width="75" height="75" alt="IMG_3537" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/craigf/4337065776/" title="IMG_3543 by Craig F, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2774/4337065776_8090f9ac53_s.jpg" width="75" height="75" alt="IMG_3543" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/craigf/4244689014/" title="Untitled by Craig F, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2733/4244689014_94e41ffe8f_s.jpg" width="75" height="75" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Greazefest 2009&lt;/h3&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/craigf/4297126182/" title="Untitled by Craig F, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4037/4297126182_06c5fda1ce_s.jpg" width="75" height="75" alt="" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/craigf/4337080278/" title="DSC_0254 by Craig F, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4012/4337080278_338e2db94e_s.jpg" width="75" height="75" alt="DSC_0254" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Twighlight Hot Rod Show 2010&lt;/h3&gt;

&lt;p&gt;For more photos from this show, check out my &lt;a href="http://www.slightlytallerthanaverageman.com/2010/02/05/twilight-hot-rod-show-2010/"&gt;previous post&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/craigf/4337049328/" title="240120101079 by Craig F, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4063/4337049328_2991bd8417_s.jpg" width="75" height="75" alt="240120101079" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/craigf/4302952885/" title="Untitled by Craig F, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2731/4302952885_a80c52a490_s.jpg" width="75" height="75" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Found&lt;/h3&gt;

&lt;p&gt;I've also uploaded a few pictures of cool rat rods that I've found over the years to &lt;a href="http://found.slightlytallerthanaverageman.com/"&gt;found.slightlytallerthanaverageman.com&lt;/a&gt; -- &lt;a href="http://found.slightlytallerthanaverageman.com/post/375694057"&gt;one&lt;/a&gt;, &lt;a href="http://found.slightlytallerthanaverageman.com/post/375693084"&gt;two&lt;/a&gt;, &lt;a href="http://found.slightlytallerthanaverageman.com/post/375692538"&gt;three&lt;/a&gt;, &lt;a href="http://found.slightlytallerthanaverageman.com/post/375691897"&gt;four&lt;/a&gt;, &lt;a href="http://found.slightlytallerthanaverageman.com/post/375690844"&gt;five&lt;/a&gt;, and &lt;a href="http://found.slightlytallerthanaverageman.com/post/375690403"&gt;six&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I've lost the original source for these, unfortunately.  If you know, then let me know and I'll link as appropriate.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/TheAdventuresOfSlightlyTallerThanAverageMan/~4/NvyLV-feIg0" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://www.slightlytallerthanaverageman.com/2010/02/07/rat-rods/</feedburner:origLink></entry>
 
 <entry>
   <title>Twilight Hot Rod Show 2010</title>
   <link href="http://feedproxy.google.com/~r/TheAdventuresOfSlightlyTallerThanAverageMan/~3/j_73VHtWQFM/" />
   <updated>2010-02-05T00:00:00-06:00</updated>
   <id>id:/2010/02/05/twilight-hot-rod-show-2010</id>
   <content type="html">&lt;p&gt;Australia Day means beer, a BBQ in the sun and Triple J's Hottest 100.  This year the weekend also meant the &lt;a href="http://www.robot.com.au/twilight.htm"&gt;Twilight Hot Rod Show&lt;/a&gt; at Rocklea, Brisbane.&lt;/p&gt;

&lt;p&gt;It was a good turnout of Aussie classics, American iron, hot rods, rat rods and kustoms.  Not as big as Wintersun, mind you, but around the size of Greazefest. Plenty big enough for a good afternoon in the sun.&lt;/p&gt;

&lt;p&gt;I managed to snap a few pictures before my camera died, then I had to rely on my iPhone and Fi's camera phone.  That'll teach me to charge my batteries!&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/craigf/4299373865/" title="88 by Craig F, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2746/4299373865_7877e49853_s.jpg" width="75" height="75" alt="88" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/craigf/4299374405/" title="Oil is Doomed by Craig F, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4026/4299374405_5be80a5973_s.jpg" width="75" height="75" alt="Oil is Doomed" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/craigf/4299374671/" title="Untitled by Craig F, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2763/4299374671_273d60a997_s.jpg" width="75" height="75" alt="" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/craigf/4302952031/" title="Untitled by Craig F, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2595/4302952031_cee8e924bd_s.jpg" width="75" height="75" alt="" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/craigf/4303698800/" title="Untitled by Craig F, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4004/4303698800_528a2d1678_s.jpg" width="75" height="75" alt="" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/craigf/4302952599/" title="Untitled by Craig F, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2742/4302952599_4366004e06_s.jpg" width="75" height="75" alt="" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/craigf/4302952885/" title="Untitled by Craig F, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2731/4302952885_a80c52a490_s.jpg" width="75" height="75" alt="" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/craigf/4303699698/" title="Untitled by Craig F, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2751/4303699698_b8311f19d9_s.jpg" width="75" height="75" alt="" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/craigf/4303716712/" title="Untitled by Craig F, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4061/4303716712_32b30975dd_s.jpg" width="75" height="75" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/TheAdventuresOfSlightlyTallerThanAverageMan/~4/j_73VHtWQFM" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://www.slightlytallerthanaverageman.com/2010/02/05/twilight-hot-rod-show-2010/</feedburner:origLink></entry>
 
 <entry>
   <title>shinyredthings</title>
   <link href="http://feedproxy.google.com/~r/TheAdventuresOfSlightlyTallerThanAverageMan/~3/4SdDEAiPJiY/" />
   <updated>2010-02-05T00:00:00-06:00</updated>
   <id>id:/2010/02/05/shinyredthings</id>
   <content type="html">&lt;p&gt;Speaking of Tumblr, Rachel has started up her own account at &lt;a href="http://shinyredthings.tumblr.com"&gt;shinyredthings&lt;/a&gt;.  Enjoy!&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/TheAdventuresOfSlightlyTallerThanAverageMan/~4/4SdDEAiPJiY" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://www.slightlytallerthanaverageman.com/2010/02/05/shinyredthings/</feedburner:origLink></entry>
 
 <entry>
   <title>Found</title>
   <link href="http://feedproxy.google.com/~r/TheAdventuresOfSlightlyTallerThanAverageMan/~3/7oaeOUl_EDU/" />
   <updated>2010-02-05T00:00:00-06:00</updated>
   <id>id:/2010/02/05/found</id>
   <content type="html">&lt;p&gt;I invite you all to have a look at my new tumblog at &lt;a href="http://found.slightlytallerthanaverageman.com"&gt;found.slightlytallerthanaverageman.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I'll be using it to post photos, quotes, videos and assorted other things I find on the Internet. None of the content there will feed into this blog, nor will any of this blog feed into it.  I intend to keep both separate -- this blog for things I create; that one for things I find.&lt;/p&gt;

&lt;p&gt;In a way this is part of my goal to "produce more" this year -- a small part, no doubt, but a part at least.&lt;/p&gt;

&lt;p&gt;For those interested in how it's run, well I cheated a bit and created an account at &lt;a href="http://www.tumblr.com"&gt;Tumblr&lt;/a&gt;.  They make it incredibly easy to get started and re-direct a domain of your choosing as I've done.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/TheAdventuresOfSlightlyTallerThanAverageMan/~4/7oaeOUl_EDU" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://www.slightlytallerthanaverageman.com/2010/02/05/found/</feedburner:origLink></entry>
 
 <entry>
   <title>Static, not dynamic</title>
   <link href="http://feedproxy.google.com/~r/TheAdventuresOfSlightlyTallerThanAverageMan/~3/0_P66DHVrhs/" />
   <updated>2010-02-04T00:00:00-06:00</updated>
   <id>id:/2010/02/04/static-not-dynamic</id>
   <content type="html">&lt;p&gt;I've decided to move the back-end of my blog away from &lt;a href="http://wordpress.org/"&gt;WordPress&lt;/a&gt; to a Ruby-based system called &lt;a href="http://github.com/mojombo/jekyll"&gt;Jekyll&lt;/a&gt;.  The interesting part about Jekyll is that nothing is dynamic; there are no Ruby scripts running on the server.  Everything instead is generated locally as a set of static files which I sync to my hosting using the venerable rsync. If everything's gone to plan you shouldn't see any interruption, and only minor cosmetic changes.&lt;/p&gt;

&lt;p&gt;Why bother?  I have no problems with WordPress, I think it's a fantastic system and one of the shining examples of a well-designed usable open source application.&lt;br/&gt;
&lt;/p&gt;

&lt;p&gt;It's just overkill for my use case.&lt;/p&gt;

&lt;p&gt;This is a personal blog, updated relatively infrequently.  Why have a full-blown PHP framework and a MySQL backend? I don't need all of that complexity sitting between the words I write and the final rendered format. For a while now I've been curious about this class of blogs, and seeing as removing complexity is one of my mantras for this year it seemed like a good project to tackle.&lt;/p&gt;

&lt;p&gt;Another reason is that my blog is now a directory of text files annotated in Markdown stored on my laptop. These files are synced into Dropbox and backed up with Time Machine, meaning I have both on-site and off-site backups for free.  I've never had a backup of this blog before, and the times I tried to set up automatic backups with WordPress I never got anywhere productive.&lt;/p&gt;

&lt;p&gt;However, in order to keep having comments enabled I've had to migrate and integrate with &lt;a href="http://www.disqus.com"&gt;Disqus&lt;/a&gt;.  The migration from WordPress was painless, but it's a third-party system that I'm forced to use where I don't control the data.  Next on my to do list is to automatically extract and save the comments from Disqus into my local repository.  It's not all bad though -- the ability for my readers to authenticate via Facebook Connect and OpenID is pretty cool, as is the ability to track responses to my articles via Twitter.&lt;/p&gt;

&lt;p&gt;The final reason is that this system brings me a lot closer to the final generated HTML.  For the time being I've simply ported my WordPress theme into the &lt;a href="http://www.liquidmarkup.org/"&gt;Liquid&lt;/a&gt; templating mechanism that Jekyll uses without modifying the CSS.  I hope to do a visual redesign soon.&lt;/p&gt;

&lt;p&gt;Overall though I'm pleased with how the migration has turned out.  I'm excited about the simplicity this new system offers, and hopefully the reduced friction between my text editor and a published product will result in more output this year.&lt;/p&gt;

&lt;p&gt;Why not give &lt;a href="http://tom.preston-werner.com/2008/11/17/blogging-like-a-hacker.html"&gt;blogging like a hacker&lt;/a&gt; a go as well?&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/TheAdventuresOfSlightlyTallerThanAverageMan/~4/0_P66DHVrhs" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://www.slightlytallerthanaverageman.com/2010/02/04/static-not-dynamic/</feedburner:origLink></entry>
 

</feed>
