<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title>Omphe.com</title>
  <link href="http://www.omphe.com/atom.xml" rel="self"/>
  <link href="http://www.omphe.com/"/>
  <updated>2011-12-30T22:27:13+00:00</updated>
  <id>http://www.omphe.com/</id>
  <author>
    <name>Branden Faulls</name>
    
  </author>

  
  <entry>
    <title>Help me upcycle my old technology</title>
    <link href="http://www.omphe.com/blog/2011/12/29/help-me-upcycle-my-old-tech/"/>
    <updated>2011-12-29T18:04:00+00:00</updated>
    <id>http://www.omphe.com/blog/2011/12/29/help-me-upcycle-my-old-tech</id>
    <content type="html">&lt;p&gt;As an old and seasoned geek, I&amp;#8217;ve accumulated my fair share of outdated technology over the years. You know the stuff: old laptops, giant mobile phones and thousands of ethernet cables and kettle plugs.&lt;/p&gt;

&lt;p&gt;Given the fact that I&amp;#8217;ve moved 25 times in 21 years, you&amp;#8217;d think that I&amp;#8217;d have jettisoned more of this stuff along the way.  But in my last few moves, I was so sick of sorting and packing, that it all ended up coming with me.&lt;/p&gt;

&lt;p&gt;Two years ago I moved into my countryside home, the cruft found a cupboard, and has been there since.  New Years 2012 is only 24 hours  away and I&amp;#8217;m determined to be shut of this clutter by then.&lt;/p&gt;

&lt;p&gt;Help me to free my life of this stuff, while providing yourself with opportunities to upcycle some of this stuff into cool hack projects.  Let&amp;#8217;s keep as much of this copper  out of the landfill as possible.&lt;/p&gt;

&lt;p&gt;Please help me to find homes for the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Black Epson Stylus C42UX/C42+/C44UX print cartridge&lt;/li&gt;
&lt;li&gt;Color Epson Stylus C42UX/C42+/C44UX print cartridge&lt;/li&gt;
&lt;li&gt;512 MB PC133 Laptop RAM&lt;/li&gt;
&lt;li&gt;128 MB PC133 Laptop RAM&lt;/li&gt;
&lt;li&gt;Morphy Richards White &amp;#8220;Digital Messenger&amp;#8221; answerphone&lt;/li&gt;
&lt;li&gt;Belkin N1 USB Wireless Adaptor&lt;/li&gt;
&lt;li&gt;Dell Inspiron 1150 Laptop: No HDD, Screen in good order, MOBO overheats&lt;/li&gt;
&lt;li&gt;Aiwa MniDisc Recorder: AM-F80 includes battery pack&lt;/li&gt;
&lt;li&gt;2 x Parallel cable&lt;/li&gt;
&lt;li&gt;USB power source from wall adapter to two USB sockets&lt;/li&gt;
&lt;li&gt;6 pin to keyboard and mouse splitter cable&lt;/li&gt;
&lt;li&gt;4 x  RCA cable&lt;/li&gt;
&lt;li&gt;1 metre 6 pin extension cable for mice/keyboards/etc&lt;/li&gt;
&lt;li&gt;Bag of assorted server rack nuts&lt;/li&gt;
&lt;li&gt;Parallel cable male-to-male adapter&lt;/li&gt;
&lt;li&gt;2 x UK telephone to modem RJ45 cable&lt;/li&gt;
&lt;li&gt;Microsoft PS/2 mouse&lt;/li&gt;
&lt;li&gt;Digital camera adapter for Sony Ericsson mobile (Communicam MCA-25)&lt;/li&gt;
&lt;li&gt;Modem to Modem (US style RJ45 cable)&lt;/li&gt;
&lt;li&gt;3 x 2 metre parallel printer cable&lt;/li&gt;
&lt;li&gt;PS/2 to Serial Mouse adapter&lt;/li&gt;
&lt;li&gt;Uniross X-Press 1000 battery charger&lt;/li&gt;
&lt;li&gt;Linksys Bluetooth USB dongle w/ integrated antenna&lt;/li&gt;
&lt;li&gt;4 x Walkman&lt;/li&gt;
&lt;li&gt;PS/2 to USB mouse adapter&lt;/li&gt;
&lt;li&gt;Garmin Etrex GPS handheld: Sadly cracked/leaky LCD, but unit in perfect working order&lt;/li&gt;
&lt;li&gt;ATI AGP Graphics card&lt;/li&gt;
&lt;li&gt;BT R70 Answerphone&lt;/li&gt;
&lt;li&gt;Blackberry mini-USB wall charger&lt;/li&gt;
&lt;li&gt;QuickCD PCMCIA External CD drive&lt;/li&gt;
&lt;li&gt;2 x iomega ZIP Drives&lt;/li&gt;
&lt;li&gt;Netgear MA401 802.11b PCMCIA wireless card&lt;/li&gt;
&lt;li&gt;4 x 2 pin plugs&lt;/li&gt;
&lt;li&gt;AT to PS/2 keyboard adapter&lt;/li&gt;
&lt;li&gt;2 x Parallel to 9 pin serial adapter&lt;/li&gt;
&lt;li&gt;US to Australian Phone adapter&lt;/li&gt;
&lt;li&gt;Thinkpad 365X Laptop: No HDD, screen in working order&lt;/li&gt;
&lt;li&gt;LinkSys WPC11 PCMCIA 802.11b wireless adapter&lt;/li&gt;
&lt;li&gt;Altec Lansing PC speaker set with Subwoofer and 2 desktop speakers. Beige and ugly but lend tunes to a busy workshop&lt;/li&gt;
&lt;li&gt;6 x Kettle plugs&lt;/li&gt;
&lt;li&gt;Solwise SAR110 ADSL router&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;NB - Anything that can&amp;#8217;t be upcycled by a hackspace, will be offered on Freecycle. As a last resort I&amp;#8217;ll take it all to a decent recycling centre in my bicycle trailer. At least the last mile of this junk&amp;#8217;s life will be low-carbon.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>An emacs helper function for theming Drupal views</title>
    <link href="http://www.omphe.com/blog/2011/12/14/drupal-views-emacs-helper/"/>
    <updated>2011-12-14T15:12:00+00:00</updated>
    <id>http://www.omphe.com/blog/2011/12/14/drupal-views-emacs-helper</id>
    <content type="html">&lt;p&gt;Theming Drupal Views can be a long and tedious process.  Every friendly configuration click that the CMS user is given, comes at the cost of grey hairs and expletives for the hapless Drupal themer or developer.&lt;/p&gt;

&lt;p&gt;Getting the themes to behave as your designers intend them, requires searching through the views interface, creating the appropriate theme files, flushing the cache and then coercing the markup so that it (just about) matches the designs. To be on the safe side, it might help to cast a virgin into a volcano or sacrifice small barnyard animals if you want quick results.&lt;/p&gt;

&lt;p&gt;But Drupal&amp;#8217;s gods favour the tenacious and persistent, so these skills will become second nature to any experienced and determined themer. Regardless of the journey you took to get to your desired theme file, you&amp;#8217;re bound to do a lot of typing once you&amp;#8217;ve arrived, as the Views fields are buried in a Russian doll of objects, arrays, hashes, lists and more.&lt;/p&gt;

&lt;p&gt;To ease the RSI for any of you emacs users out there, I&amp;#8217;ve pulled together a quick helper function for Emacs that will output your field.  Here&amp;#8217;s the code:&lt;/p&gt;

&lt;figure class=&#8217;code&#8217;&gt;&lt;figcaption&gt;&lt;span&gt;Drupal Views Field helper  &lt;/span&gt;&lt;/figcaption&gt;
 &lt;div class=&quot;highlight&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre class=&quot;line-numbers&quot;&gt;&lt;span class=&#8217;line-number&#8217;&gt;1&lt;/span&gt;
&lt;span class=&#8217;line-number&#8217;&gt;2&lt;/span&gt;
&lt;span class=&#8217;line-number&#8217;&gt;3&lt;/span&gt;
&lt;span class=&#8217;line-number&#8217;&gt;4&lt;/span&gt;
&lt;span class=&#8217;line-number&#8217;&gt;5&lt;/span&gt;
&lt;span class=&#8217;line-number&#8217;&gt;6&lt;/span&gt;
&lt;span class=&#8217;line-number&#8217;&gt;7&lt;/span&gt;
&lt;span class=&#8217;line-number&#8217;&gt;8&lt;/span&gt;
&lt;span class=&#8217;line-number&#8217;&gt;9&lt;/span&gt;
&lt;span class=&#8217;line-number&#8217;&gt;10&lt;/span&gt;
&lt;span class=&#8217;line-number&#8217;&gt;11&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&#8217;code&#8217;&gt;&lt;pre&gt;&lt;code class=&#8217;cl&#8217;&gt;&lt;span class=&#8217;line&#8217;&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;defun&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;drupal-view-field&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;field_name&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;conditional&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;span class=&#8217;line&#8217;&gt;  &lt;span class=&quot;s&quot;&gt;&amp;quot;Build the markup for outputting a Drupal views field&amp;quot;&lt;/span&gt;
&lt;/span&gt;&lt;span class=&#8217;line&#8217;&gt;  &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;interactive&lt;/span&gt;
&lt;/span&gt;&lt;span class=&#8217;line&#8217;&gt;   &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;list&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;read-string&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;quot;Field Name: &amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;span class=&#8217;line&#8217;&gt;   &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;y-or-n-p&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;quot;Wrap in a conditional?&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)))&lt;/span&gt;
&lt;/span&gt;&lt;span class=&#8217;line&#8217;&gt;  &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;conditional&lt;/span&gt;
&lt;/span&gt;&lt;span class=&#8217;line&#8217;&gt;      &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;progn&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;insert&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;quot;&amp;lt;?php if($fields[&amp;#39;&amp;quot;&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;field_name&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;quot;&amp;#39;]-&amp;gt;content): ?&amp;gt;\n&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;span class=&#8217;line&#8217;&gt;       &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;insert-tab&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)))&lt;/span&gt;
&lt;/span&gt;&lt;span class=&#8217;line&#8217;&gt;  &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;insert&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;quot;&amp;lt;?php print $fields[&amp;#39;&amp;quot;&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;field_name&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;quot;&amp;#39;]-&amp;gt;content; ?&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;span class=&#8217;line&#8217;&gt;  &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;conditional&lt;/span&gt;
&lt;/span&gt;&lt;span class=&#8217;line&#8217;&gt;      &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;insert&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;quot;\n&amp;lt;?php endif; ?&amp;gt;\n&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)))&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;The function will prompt you for the field name you want to insert and ask you whether you want it wrapped in a conditional.&lt;/p&gt;

&lt;p&gt;To use this helper add it to your .emacs file and call it from within a buffer by entering &lt;em&gt;M-x drupal-view-field&lt;/em&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Outlook Web Access InboxZero Smackdown</title>
    <link href="http://www.omphe.com/blog/2009/11/24/outlook-web-access-inboxzero-smackdown/"/>
    <updated>2009-11-24T00:00:00+00:00</updated>
    <id>http://www.omphe.com/blog/2009/11/24/outlook-web-access-inboxzero-smackdown</id>
    <content type="html">&lt;h2&gt;Playing nice with email&lt;/h2&gt;

&lt;p&gt;Anyone who works with clients or full-time employers, will sooner or later, find themselves faced with the supposed convenience of using web-based Exchange email. Almost without exception, you will be provided with a login to an Outlook WebAccess account where you can, allegedly, get the full functionality of the desktop version.
&lt;img class=&#8217;right &#8217; src=&#8217;http://www.omphe.com/images/posts/outlook.png&#8217; width=&#8217;192&#8217; height=&#8217;139&#8217; alt=&#8217;Outlook Web Access&#8217; title=&#8217;Outlook Web Access&#8217;&gt;&lt;/p&gt;

&lt;p&gt;Quite enough vitriol and bile can be found online, concerning the value and quality of Microsoft tools. Microsoft try to do quite a lot, and some of it they do very well (Excel) and quite naturally there are places where they fail. But, in the case of Outlook WebAccess, the product is truly painful to use.&lt;/p&gt;

&lt;h2&gt;GTD&lt;/h2&gt;

&lt;p&gt;Anyone following the GTD method (David Allen&amp;#8217;s &lt;em&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Getting_Things_Done&quot;&gt;Getting Things Done&lt;/a&gt;)&lt;/em&gt;, will be a big fan of the &lt;em&gt;Inbox Zero&lt;/em&gt; approach, where you keep your email inbox clear by processing, filing or deleting incoming messages with relentless kung-fu precision. GTD intends for us to &amp;#8220;Do, Delegate, or Defer&amp;#8221; everything using the appropriate system. Whether a GTD fanatic or not, any knowledge worker will tell you that a full email inbox is only appropriate for generating stress.&lt;/p&gt;

&lt;p&gt;Frustration runs highest in people who like, and have become used to, Gmail. It basically comes down to the ability to search, quickly and effectively. Outlook WebAccess, despite its calendaring and groupware integration, has dreadful search capabilities. Since we all receive such high volumes of email and constantly need to recall information, search is no longer a nice to have.&lt;/p&gt;

&lt;h2&gt;Outlook and GTD in harmony&lt;/h2&gt;

&lt;p&gt;An enlightened colleague (&lt;a href=&quot;http://twitter.com/lordcope&quot; title=&quot;LordCope on Twitter&quot;&gt;@LordCope&lt;/a&gt;) recently shared with me, his three step plan to email nirvana. Like me, he hates email and feels an &lt;em&gt;Inbox Zero, &lt;/em&gt;is the only liberation. Here&amp;#8217;s how his Outlook WebAccess workflow runs:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Starting from the top, open your first message.&lt;/li&gt;
&lt;li&gt;If the message needs a reply, do so immediately and then delete the message.&lt;/li&gt;
&lt;li&gt;If the message needs action from you, record this in another system like &lt;a title=&quot;Things website&quot; href=&quot;http://culturedcode.com/things/&quot;&gt;Things&lt;/a&gt;, &lt;a title=&quot;Tracks GTD App&quot; href=&quot;http://getontracks.org/&quot;&gt;Tracks&lt;/a&gt;, or a &lt;a title=&quot;Hipster PDA at 43 folders&quot; href=&quot;http://www.43folders.com/2004/09/03/introducing-the-hipster-pda&quot;&gt;HipsterPDA&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;If the message is a reference document you might need later, forward it to your search enabled webmail account of choice, and immediately delete the email.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;With this method you get all the information pack-rattery that you could want, while maintaining the inner-calm and serenity of an empty inbox. Get forwarding!!!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Fabric first steps - Directory creation</title>
    <link href="http://www.omphe.com/blog/2009/11/20/fabric-first-steps-directory-creation/"/>
    <updated>2009-11-20T00:00:00+00:00</updated>
    <id>http://www.omphe.com/blog/2009/11/20/fabric-first-steps-directory-creation</id>
    <content type="html">&lt;p&gt;Fabric is a tidy tool for deployment that neatly wraps up fussy, manual tasks into a tidy Python syntax. The simple API wraps up most of your common deployment tasks into contexts which allow you to perform tasks either locally or sequentially on remote servers, using a transparent SSH mechanism.&amp;nbsp; Magic.&lt;/p&gt;

&lt;p&gt;Because its all Python syntax, my temptation was to perform local tasks like directory creation using native Python. To initiate a local &amp;#8216;build&amp;#8217; directory, I tried:&lt;/p&gt;

&lt;figure class=&#8217;code&#8217;&gt; &lt;div class=&quot;highlight&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre class=&quot;line-numbers&quot;&gt;&lt;span class=&#8217;line-number&#8217;&gt;1&lt;/span&gt;
&lt;span class=&#8217;line-number&#8217;&gt;2&lt;/span&gt;
&lt;span class=&#8217;line-number&#8217;&gt;3&lt;/span&gt;
&lt;span class=&#8217;line-number&#8217;&gt;4&lt;/span&gt;
&lt;span class=&#8217;line-number&#8217;&gt;5&lt;/span&gt;
&lt;span class=&#8217;line-number&#8217;&gt;6&lt;/span&gt;
&lt;span class=&#8217;line-number&#8217;&gt;7&lt;/span&gt;
&lt;span class=&#8217;line-number&#8217;&gt;8&lt;/span&gt;
&lt;span class=&#8217;line-number&#8217;&gt;9&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&#8217;code&#8217;&gt;&lt;pre&gt;&lt;code class=&#8217;python&#8217;&gt;&lt;span class=&#8217;line&#8217;&gt;&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;fabric.api&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;
&lt;/span&gt;&lt;span class=&#8217;line&#8217;&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;os&lt;/span&gt;
&lt;/span&gt;&lt;span class=&#8217;line&#8217;&gt;
&lt;/span&gt;&lt;span class=&#8217;line&#8217;&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;init&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;span class=&#8217;line&#8217;&gt;    &lt;span class=&quot;n&quot;&gt;build_directory&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;quot;./build&amp;quot;&lt;/span&gt;
&lt;/span&gt;&lt;span class=&#8217;line&#8217;&gt;    &lt;span class=&quot;nb&quot;&gt;dir&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;os&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dirname&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;build_directory&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;span class=&#8217;line&#8217;&gt;
&lt;/span&gt;&lt;span class=&#8217;line&#8217;&gt;    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;not&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;os&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;exists&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;dir&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;span class=&#8217;line&#8217;&gt;        &lt;span class=&quot;n&quot;&gt;output&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;os&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mkdir&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;dir&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;For reasons that are not immediately apparent to me, this process fails rather silently. But reading the &lt;a title=&quot;Fabric manual&quot; href=&quot;http://docs.fabfile.org/0.9.0/index.html&quot;&gt;Fabric manual&lt;/a&gt;, it does specify that Fabric is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A tool that lets you execute &lt;strong&gt;arbitrary Python functions&lt;/strong&gt; via the &lt;strong&gt;command line&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;A library of subroutines (built on top of a lower-level library) to make executing shell commands over SSH &lt;strong&gt;easy&lt;/strong&gt; and &lt;strong&gt;Pythonic&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;As it turns out, the preferred way of doing this, is to use a local() task to drive the command line tools more directly. So instead, our fabfile looks like:&lt;/p&gt;

&lt;figure class=&#8217;code&#8217;&gt; &lt;div class=&quot;highlight&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre class=&quot;line-numbers&quot;&gt;&lt;span class=&#8217;line-number&#8217;&gt;1&lt;/span&gt;
&lt;span class=&#8217;line-number&#8217;&gt;2&lt;/span&gt;
&lt;span class=&#8217;line-number&#8217;&gt;3&lt;/span&gt;
&lt;span class=&#8217;line-number&#8217;&gt;4&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&#8217;code&#8217;&gt;&lt;pre&gt;&lt;code class=&#8217;python&#8217;&gt;&lt;span class=&#8217;line&#8217;&gt;&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;fabric.api&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;
&lt;/span&gt;&lt;span class=&#8217;line&#8217;&gt;
&lt;/span&gt;&lt;span class=&#8217;line&#8217;&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;init&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;span class=&#8217;line&#8217;&gt;    &lt;span class=&quot;n&quot;&gt;local&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;mkdir ./build&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;Simple, straightforward and pretty intuitive.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Fabric - Installation</title>
    <link href="http://www.omphe.com/blog/2009/11/16/fabric-installation/"/>
    <updated>2009-11-16T00:00:00+00:00</updated>
    <id>http://www.omphe.com/blog/2009/11/16/fabric-installation</id>
    <content type="html">&lt;p&gt;In this article from our &lt;a href=&quot;http://www.omphe.com/taxonomy/term/17&quot; title=&quot;Fabric articles&quot;&gt;Fabric&lt;/a&gt; series, I&amp;#8217;m going to show you how to get set up with Fabric on your development environment. We&amp;#8217;ll get down to installing the &lt;em&gt;fab&lt;/em&gt; commands and preparing you for writing your first &lt;em&gt;fabfile&lt;/em&gt;. But, as ever, there are &lt;a title=&quot;Definition of yak shaving&quot; href=&quot;http://en.wiktionary.org/wiki/yak_shaving&quot;&gt;Yaks to shave&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Installing the installers&lt;/h2&gt;

&lt;p&gt;Before we can get down to actually installing Fabric, we need to install some Python libraries that will help us get everything that we need. For this article, I&amp;#8217;ll be installing on OSX 10.5 Leopard, but the steps should be roughly similar for any *nix like operating system. Best of all, we&amp;#8217;ll stay well clear of my arch enemy, the infuriating &lt;em&gt;macports&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;First, let&amp;#8217;s install &lt;a title=&quot;pip homepage&quot; href=&quot;http://pip.openplans.org/&quot;&gt;pip&lt;/a&gt;, a clever packaging tool replacement for &lt;em&gt;easy_install&lt;/em&gt;. I&amp;#8217;m not overly familiar with &lt;em&gt;easy_install&lt;/em&gt;, but James Bennett&amp;#8217;s article &lt;a title=&quot;Why I like pip&quot; href=&quot;http://www.b-list.org/weblog/2008/dec/15/pip/&quot;&gt;Why I like pip&lt;/a&gt;, has me convinced its the way to go.&lt;/p&gt;

&lt;p&gt;To get pip, we&amp;#8217;ll use easy_install. Open your terminal of choice and type:&lt;/p&gt;

&lt;figure class=&#8217;code&#8217;&gt; &lt;div class=&quot;highlight&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre class=&quot;line-numbers&quot;&gt;&lt;span class=&#8217;line-number&#8217;&gt;1&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&#8217;code&#8217;&gt;&lt;pre&gt;&lt;code class=&#8217;bash&#8217;&gt;&lt;span class=&#8217;line&#8217;&gt;&lt;span class=&quot;c&quot;&gt;# sudo easy_install pip&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;Once pip has installed, let&amp;#8217;s use it to install Fabric:&lt;/p&gt;

&lt;figure class=&#8217;code&#8217;&gt; &lt;div class=&quot;highlight&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre class=&quot;line-numbers&quot;&gt;&lt;span class=&#8217;line-number&#8217;&gt;1&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&#8217;code&#8217;&gt;&lt;pre&gt;&lt;code class=&#8217;bash&#8217;&gt;&lt;span class=&#8217;line&#8217;&gt;&lt;span class=&quot;c&quot;&gt;# sudo pip install fabric&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;On my machine this grabbed a dependency, pycrypto, and set about downloading and compiling all the needed libraries.&lt;/p&gt;

&lt;h2&gt;Wrapup&lt;/h2&gt;

&lt;p&gt;Like most Python endeavours, it almost feels too easy to get the tools set up and ready to go. In the next article, we&amp;#8217;ll set up our first fabfile and shift some code to our target server.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ANT vs Fabric - Evolving tools for website deployment</title>
    <link href="http://www.omphe.com/blog/2009/11/13/ant-vs-fabric-evolving-tools-for-website-deployment/"/>
    <updated>2009-11-13T00:00:00+00:00</updated>
    <id>http://www.omphe.com/blog/2009/11/13/ant-vs-fabric-evolving-tools-for-website-deployment</id>
    <content type="html">&lt;p&gt;In my development work for &lt;a href=&quot;http://www.clockworkrobot.co.uk&quot; title=&quot;Clockwork Robot - Web Consultancy&quot;&gt;Clockwork Robot&lt;/a&gt;, I have always used the &lt;a href=&quot;http://ant.apache.org/&quot;&gt;ANT build tool&lt;/a&gt; for packaging and deploying client sites. I chose ANT for its platform independence and its XML syntax, which cleanly decoupled build and deployment from the language that the websites were built in, usually PHP.&lt;/p&gt;

&lt;p&gt;While ANT was developed for Java development, it works equally well for the deployment of applications written in any language. I reasoned that the limitations of ANT scripts would provide useful constraints for any developer/release manager trying to bend the build and deployment process to do inappropriate things.&lt;/p&gt;

&lt;p&gt;Furthermore, at the time that I adopted ANT, it was far superior to the current alternatives, which were usually cryptic and brittle &lt;a title=&quot;GNU Make&quot; href=&quot;http://www.gnu.org/software/make/&quot;&gt;GNU Make&lt;/a&gt; files or, worse yet, Perl scripts that guaranteed employment for an incorrigible and obstreperous sysadmin. Plus, XML promised to be a &lt;em&gt;lingua franca&lt;/em&gt;, a sort of utopian language that would solve all our problems and serve umbrella cocktails poolside.&lt;/p&gt;

&lt;h2&gt;New Tools&lt;/h2&gt;

&lt;p&gt;Well, &lt;a title=&quot;Esperanto - Wikipedia entry&quot; href=&quot;http://en.wikipedia.org/wiki/Esperanto&quot;&gt;Esperanto&lt;/a&gt; was supposed to be a problem solving universal language, but it is only dear to tenacious eccentrics who find its constraints useful, and harbour delusions of semantic elegance. Which, as it has recently and painfully been pointed out to me, is how I have been behaving about ANT.&lt;/p&gt;

&lt;p&gt;The problem is that while ANT is independent of the language &lt;em&gt;du jour&lt;/em&gt; of your current web app, that usually means that the skillset to develop and maintain the build and deployment scripts, is also independent of the experience or ambition of your developers.&lt;/p&gt;

&lt;p&gt;Increasingly, Clockwork Robot clients are using PHP applications written in popular frameworks like &lt;a href=&quot;http://www.symfony-project.org/&quot; title=&quot;Symfony&quot;&gt;Symfony&lt;/a&gt;, or CMS like &lt;a title=&quot;Drupal CMS&quot; href=&quot;http://drupal.org/&quot;&gt;Drupal&lt;/a&gt; or &lt;a title=&quot;Joomla CMS&quot; href=&quot;http://www.joomla.org/&quot;&gt;Joomla&lt;/a&gt;. These frameworks may provide their own deployment tools, otherwise PHP projects like &lt;a title=&quot;Phing&quot; href=&quot;http://phing.info/trac/&quot;&gt;Phing&lt;/a&gt; provide ANT-like alternatives.&lt;/p&gt;

&lt;p&gt;Meanwhile, for server administration and heavy lifting on the command line, Python has become the language of choice. Since it reads like executable pseudo-code, PHP developers are generally comfortable with picking up Python skills, and since Google and NASA use Python, it must be cool.&lt;/p&gt;

&lt;h2&gt;Move over ANT&lt;/h2&gt;

&lt;p&gt;Enter &lt;a title=&quot;Fabric documentation&quot; href=&quot;http://docs.fabfile.org/0.9.0/&quot;&gt;Fabric&lt;/a&gt;, a build and deployment tool written in Python. While the syntax is just bog-standard Python, it carries a lightweight API that gives just enough useful functionality without getting in the way. The syntax is less verbose than ANT, given there&amp;#8217;s no need to open and close tags, and execution of the commands on the command line are just as easy in Fabric.&lt;/p&gt;

&lt;p&gt;Since Python has become a commodity skill for developers and sysadmins alike, I&amp;#8217;m now considering a move from ANT to Fabric. It makes more sense for project resourcing, that the scripts can be built and maintained by whomever is closest to the deployment coalface at the time; developers or sysadmins.&lt;/p&gt;

&lt;p&gt;In upcoming posts, I&amp;#8217;ll be demonstrating the installation and use of Fabric, and running a closer comparison of the two tools.&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;ANT&lt;/th&gt;
&lt;th&gt;Fabric&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Advantages&lt;/th&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a title=&quot;Ant Manual&quot; href=&quot;http://ant.apache.org/manual/index.html&quot;&gt;Excellent documentation&lt;/a&gt;

&lt;li&gt;Wide availability of extension tasks and libraries

&lt;li&gt;Widespread integration with popular continuous integration and deployment tools such as Hudson

&lt;/ul&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;Simple Python syntax

&lt;li&gt;Superior SSH integration built in

&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;Disadvantages&lt;/th&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;Complicated or custom tasks require Java coding

&lt;li&gt;Verbose syntax

&lt;li&gt;Java implementation makes it inaccessible and unwieldy for systems administrators

&lt;/ul&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;Relatively new project

&lt;li&gt;Scant documentation

&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

</content>
  </entry>
  
  <entry>
    <title>Ghoulishly Geeky Gourds : The Mac-O-Lantern</title>
    <link href="http://www.omphe.com/blog/2009/10/30/ghoulishly-geeky-gourds-the-mac-o-lantern/"/>
    <updated>2009-10-30T00:00:00+00:00</updated>
    <id>http://www.omphe.com/blog/2009/10/30/ghoulishly-geeky-gourds-the-mac-o-lantern</id>
    <content type="html">&lt;p&gt;&lt;img class=&#8217;left &#8217; src=&#8217;http://www.omphe.com/images/posts/DSC_0831.img_assist_custom-300x449.JPG&#8217; width=&#8221; height=&#8221; alt=&#8217;right 300 448 Mac-O-Lantern&#8217; title=&#8217;right 300 448 Mac-O-Lantern&#8217;&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mac-O-Lantern&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As a special Halloween treat, we&amp;#8217;ve carved out another home for the Mac on our festive pumpkin.&lt;/p&gt;

&lt;p&gt;Only be afraid if you&amp;#8217;re a PC.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Highs and Lows - DrupalCon Paris 2009</title>
    <link href="http://www.omphe.com/blog/2009/09/04/highs-and-lows-drupalcon-paris-2009/"/>
    <updated>2009-09-04T00:00:00+00:00</updated>
    <id>http://www.omphe.com/blog/2009/09/04/highs-and-lows-drupalcon-paris-2009</id>
    <content type="html">&lt;p&gt;&lt;img class=&#8221; src=&#8217;http://www.omphe.com/images/posts/drupal_dude_on_post.jpg&#8217; width=&#8217;640&#8217; height=&#8217;428&#8217; alt=&#8217;Festival Atmosphere&#8217; title=&#8217;Festival Atmosphere&#8217;&gt;&lt;/p&gt;

&lt;p&gt;The presentations and coding sessions have been going strong for four days now, and the atmosphere was buoyant as the crowd gathered for the big group photo.&lt;/p&gt;

&lt;p&gt;&lt;img class=&#8221; src=&#8217;http://www.omphe.com/images/posts/drupal_crash.jpg&#8217; width=&#8217;640&#8217; height=&#8217;428&#8217; alt=&#8217;Drupal crash&#8217; title=&#8217;Drupal crash&#8217;&gt;&lt;/p&gt;

&lt;p&gt;But no party is without its casualties and some of the Drupalnauts were showing signs of wear this morning.&lt;/p&gt;

&lt;p&gt;&lt;img class=&#8221; src=&#8217;http://www.omphe.com/images/posts/drupal_group.jpg&#8217; width=&#8217;640&#8217; height=&#8217;428&#8217; alt=&#8217;Drupal Crowd&#8217; title=&#8217;Drupal Crowd&#8217;&gt;&lt;/p&gt;

&lt;p&gt;Whether its stickers, MacBooks full of code or DrupalCon tshirts, no one needs a reminder that Drupal is at the centre of it all.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Drupal an Enterprise ready solution</title>
    <link href="http://www.omphe.com/blog/2009/09/04/drupal-an-enterprise-ready-solution/"/>
    <updated>2009-09-04T00:00:00+00:00</updated>
    <id>http://www.omphe.com/blog/2009/09/04/drupal-an-enterprise-ready-solution</id>
    <content type="html">&lt;p&gt;Amid all the hype and momentum that is building around adoption of Drupal for sites of all sizes, there remains a bitter skepticism that Drupal is, or ever will be appropriate for large deployments in Enterprise environments. This year&amp;#8217;s attendance and presentations at DrupalCon Paris 2009 should put many of those doubts to rest, as flagship publishers like Economist.com and consultancies with Enterprise clients, open up about what they&amp;#8217;ve achieved with Drupal.&lt;/p&gt;

&lt;p&gt;The presentation schedule has interleaved content for newcomers to Drupal as well as seasoned coders, with business focussed discussions on introducing and managing Drupal within the productive flow of large organisations. There has been a significant emphasis on the use of Agile techniques, specifically with Scrum.&lt;/p&gt;

&lt;p&gt;Within Drupal 7 there are a number of new features and tools that are aimed specifically for larger sites with performance challenges. New deployment APIs, extended debugging and unit testing tools and exciting changes to caching and database replication tools are all part of the new bag of tricks for Enterprise developers.&lt;/p&gt;

&lt;p&gt;In talking to some of the teams from larger sites, a common toolkit is emerging for supporting rigorous development processes. Most of these tools focus on an Agile approach to development, emphasizing constant quality review and a frequent need to integrate and deploy. Recipes for success include:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Hudson for Continuous Integration&lt;/li&gt;
&lt;li&gt;ANT for deployment scripting&lt;/li&gt;
&lt;li&gt;JMeter for performance testing&lt;/li&gt;
&lt;li&gt;Selenium and Selenium Grid for functional testing&lt;/li&gt;
&lt;/ol&gt;

</content>
  </entry>
  
  <entry>
    <title>Goodie Bag - DrupalCon Paris 2009</title>
    <link href="http://www.omphe.com/blog/2009/09/03/goodie-bag-drupalcon-paris-2009/"/>
    <updated>2009-09-03T00:00:00+00:00</updated>
    <id>http://www.omphe.com/blog/2009/09/03/goodie-bag-drupalcon-paris-2009</id>
    <content type="html">&lt;p&gt;No convention is complete without a giveaway bag of knick-knacks and propaganda handed to you at the door. DrupalCon Paris 2009 is no exception, with a custom printed cloth bag with a good selection of Drupally kit.&lt;/p&gt;

&lt;p&gt;&lt;img class=&#8217;right &#8217; src=&#8217;http://www.omphe.com/images/posts/DrupalConGoodies.jpg&#8217; width=&#8217;428&#8217; height=&#8217;640&#8217; alt=&#8217;DrupalCon Paris 2009 Goodie Bag&#8217; title=&#8217;DrupalCon Paris 2009 Goodie Bag&#8217;&gt;
This year&amp;#8217;s bag includes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Cloth carrier bag with DrupalCon Paris 2009 logo&lt;/li&gt;
&lt;li&gt;Aluminium drinks bottle&lt;/li&gt;
&lt;li&gt;Pamphlets from convention sponsors&lt;/li&gt;
&lt;li&gt;DrupalCon frisbee&lt;/li&gt;
&lt;li&gt;Tin of mints&lt;/li&gt;
&lt;li&gt;Plastic pen&lt;/li&gt;
&lt;li&gt;Conference schedule and floorplan&lt;/li&gt;
&lt;li&gt;Tokens for meals and refreshments&lt;/li&gt;
&lt;/ol&gt;

</content>
  </entry>
  
  <entry>
    <title>Free Beer - DrupalCon Paris 2009</title>
    <link href="http://www.omphe.com/blog/2009/09/03/free-beer-drupalcon-paris-2009/"/>
    <updated>2009-09-03T00:00:00+00:00</updated>
    <id>http://www.omphe.com/blog/2009/09/03/free-beer-drupalcon-paris-2009</id>
    <content type="html">&lt;p&gt;&lt;img class=&#8221; src=&#8217;http://www.omphe.com/images/posts/DrupalConBeer.jpg&#8217; width=&#8217;428&#8217; height=&#8217;640&#8217; alt=&#8217;DrupalCon Paris 2009 - Refreshment Tokens&#8217; title=&#8217;DrupalCon Paris 2009 - Refreshment Tokens&#8217;&gt;&lt;/p&gt;

&lt;p&gt;They say that, &amp;#8220;There&amp;#8217;s no such thing as a free lunch&amp;#8221;, but judging by the refreshment tokens in the DrupalCon goodie bag, &lt;strong&gt;they&lt;/strong&gt; would be wrong.&lt;/p&gt;

&lt;p&gt;The presence of beer tokens in the selection not only shows the great community spirit of the Drupal community and the conference organisers, but proves that Drupal is &lt;em&gt;free as in Open Source&lt;/em&gt; and &lt;em&gt;free as in beer&lt;/em&gt;.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Five tips for attending geek conferences</title>
    <link href="http://www.omphe.com/blog/2009/09/03/five-tips-for-attending-geek-conferences/"/>
    <updated>2009-09-03T00:00:00+00:00</updated>
    <id>http://www.omphe.com/blog/2009/09/03/five-tips-for-attending-geek-conferences</id>
    <content type="html">&lt;p&gt;From time to time, work creeps up on you and sucks every last drop of knowledge and energy from you as you push from project to deadline to client to deliverable. A lonesome geek can get stale quickly, so its important to find some inspiration from the development community as often as you can manage.&lt;/p&gt;

&lt;p&gt;Conferences are a great source of information and provide plenty of opportunities to pick up tips from the pros and rub shoulders with your contemporaries. But while looking for the perfect solution to your technical problems, its easy to neglect the basics and end up having a day that feels increasingly hassled.&lt;/p&gt;

&lt;p&gt;Here&amp;#8217;s five tips to help you along, the next time you attend a conference:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Always show up with business cards.&lt;/strong&gt; Lets face it, you might be the business when it comes to technical delivery, but if you introduce yourself at a conference without a card, you&amp;#8217;re forgotten by the time your new friend turns their head. Always bring cards and always follow up with an email to the cards you&amp;#8217;ve taken from people. Its also a good idea to jot a reminder on the back of the card you&amp;#8217;ve received as a reminder about the conversation you&amp;#8217;ve opened with.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Don&amp;#8217;t show up with a full bag/rucksack/briefcase.&lt;/strong&gt; Conferences are great for goodies, and you&amp;#8217;ll be handed plenty of clobber throughout the day. If your bag is full to bursting when you arrive, you&amp;#8217;re going to end up weighed down and avoiding some of the best freebies later in the day.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Know which talks you&amp;#8217;re attending when you arrive.&lt;/strong&gt; Or at least have a short list. Otherwise you risk missing the stuff that is pivotal to you.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Leave gaps in your day for schmoozing.&lt;/strong&gt; Let&amp;#8217;s face it, you could probably learn everything you&amp;#8217;ll see in a presentation from the web. Leave a little time to chat with people, seek out some opportunities, or even see a little bit of the host city of the conference.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Slack off, with purpose.&lt;/strong&gt; If decorum allows it, attend sessions you are only moderately interested in and work you your laptop during the session. Keep one ear open for valuable gems of information and get things done at the same time.&lt;/li&gt;
&lt;/ol&gt;

</content>
  </entry>
  
  <entry>
    <title>Day 3 wrapup - DrupalCon Paris 2009</title>
    <link href="http://www.omphe.com/blog/2009/09/03/day-3-wrapup-drupalcon-paris-2009/"/>
    <updated>2009-09-03T00:00:00+00:00</updated>
    <id>http://www.omphe.com/blog/2009/09/03/day-3-wrapup-drupalcon-paris-2009</id>
    <content type="html">&lt;p&gt;&lt;img class=&#8221; src=&#8217;http://www.omphe.com/images/posts/DrupalEntryway.img_assist_custom-640x428.jpg&#8217; width=&#8217;639&#8217; height=&#8217;428&#8217; alt=&#8217;DrupalCon Paris 2009 - Foyer&#8217; title=&#8217;DrupalCon Paris 2009 - Foyer&#8217;&gt;&lt;/p&gt;

&lt;p&gt;Its been a big day at DrupalCon Paris 2009 and all the delegates are slowly trickling out of the venue, seeking restaurants and bars to refuel themselves for tomorrow&amp;#8217;s geekery. The die hards are being asked to leave some of the coding rooms, as they finish patches and code sprints for the core Drupal functionality.&lt;/p&gt;

&lt;p&gt;Excellent presentations were delivered all around with a great mix of content for front-end, back-end, newcomers, die-hards and those with a real business emphasis. There are a number of the usual suspects from the key consultancies like 4 Kitchens and Lullabot, as well as a solid offering of commercial enterprises who are leveraging Drupal in the Enterprise.&lt;/p&gt;

&lt;p&gt;The team from Economist.com carry a rock-star reputation here at DrupalCon, being held as a flagship adopter in almost every presentation. The use of Drupal, and Agile practices, from such a highly respected and technically savvy organisation has legitimised Drupal as an Enterprise-ready technology. The presentation by the Economist.com team itself was a brilliant case study on how to effect significant change in a commercial organisation while delivering real business value at the same time. The site will be one to watch as the Drupal migration continues through the latter half of 2009.&lt;/p&gt;

&lt;p&gt;Lullabot consultant, Jeff Eaton gave an entertaining and candid presentation about the need for an Architectural focus when delivering Drupal sites. He turned the microscope inward at points, challenging the community to bring more clarity and direction to the work that we all do, through examining the goals and objectives of the work we do on Drupal itself.&lt;/p&gt;

&lt;p&gt;David Strauss, of 4 Kitchens, gave a comprehensive look at the performance improvements that Drupal 7 has to offer and highlighted the other technologies that can lend a hand. For those of us working on Enterprise sites, it was a roll call of applications that we should or already are using to keep our Drupal sites running under pressure.&lt;/p&gt;

&lt;p&gt;Today&amp;#8217;s quotes:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;If you can only find one solution to a problem, you&amp;#8217;re doing it wrong. There should always be additional ways to do things, even if they&amp;#8217;re bad solutions.&lt;/p&gt;&lt;footer&gt;&lt;strong&gt;Jeff Eaton&lt;/strong&gt;&lt;cite&gt;Drupalcon&lt;/cite&gt;&lt;/footer&gt;&lt;/blockquote&gt;




&lt;blockquote&gt;&lt;p&gt;Silos are good if they are planned and allow people to specialise. But are BAD if they emerge on their own.&lt;/p&gt;&lt;footer&gt;&lt;strong&gt;Jeff Eaton&lt;/strong&gt;&lt;cite&gt;Drupalcon&lt;/cite&gt;&lt;/footer&gt;&lt;/blockquote&gt;




&lt;blockquote&gt;&lt;p&gt;Offloading page cache duties to a pre-drupal infrastructure layer is ideal&lt;/p&gt;&lt;footer&gt;&lt;strong&gt;David Strauss&lt;/strong&gt;&lt;cite&gt;4 Kitchens&lt;/cite&gt;&lt;/footer&gt;&lt;/blockquote&gt;

</content>
  </entry>
  
  <entry>
    <title>Day 3 of DrupalCon Paris 2009</title>
    <link href="http://www.omphe.com/blog/2009/09/03/day-3-of-drupalcon-paris-2009/"/>
    <updated>2009-09-03T00:00:00+00:00</updated>
    <id>http://www.omphe.com/blog/2009/09/03/day-3-of-drupalcon-paris-2009</id>
    <content type="html">&lt;p&gt;&lt;img class=&#8221; src=&#8217;http://www.omphe.com/images/posts/DSC_0650.img_assist_custom-640x428.JPG&#8217; width=&#8221; height=&#8221; alt=&#8217;&quot;Cite Universite - Drupalcon&quot;  639 438&#8217; title=&#8217;&quot;Cite Universite - Drupalcon&quot;  639 438&#8217;&gt;&lt;/p&gt;

&lt;p&gt;Its day two of DrupalCon Paris 2009, and it is a beautiful day in Paris as the sun rises on this years geekfest at the Cite Universite. The delegates seem slow to get started while the sessions kick off.  The free caffeine on tap should wake up the crew as the Drupal information starts to flow.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Relaunch of omphe.com</title>
    <link href="http://www.omphe.com/blog/2009/09/01/relaunch-of-omphe-com/"/>
    <updated>2009-09-01T00:00:00+00:00</updated>
    <id>http://www.omphe.com/blog/2009/09/01/relaunch-of-omphe-com</id>
    <content type="html">&lt;p&gt;Regular visitors to omphe.com will notice that we&amp;#8217;ve undergone a major overhaul of the site.  All of the professional information pertaining to freelance web design and development has been shelved and will soon be updated on the parent site: &lt;a href=&quot;http://www.clockworkrobot.co.uk/&quot; target=&quot;_blank&quot;&gt;www.clockworkrobot.co.uk&lt;/a&gt;.  Similarly, expect to see the photo content finding a new home on &lt;a href=&quot;http://www.faulls.com&quot;&gt;faulls.com&lt;/a&gt; in the near future.&lt;/p&gt;

&lt;p&gt;&lt;img class=&#8217;right &#8217; src=&#8217;http://www.omphe.com/images/posts/DSC_0177.img_assist_custom-301x201.JPG&#8217; width=&#8221; height=&#8221; alt=&#8217;Noodles and Chopsticks 300 201&#8217; title=&#8217;Noodles and Chopsticks 300 201&#8217;&gt;&lt;/p&gt;

&lt;p&gt;Omphe.com is undergoing this big change just prior to the Clockwork Robot team attends &lt;a href=&quot;http://paris2009.drupalcon.org/&quot; target=&quot;_blank&quot;&gt;DrupalCon 2009&lt;/a&gt; in Paris.  The convention promises to provide plenty of information and inspiration around the &lt;a href=&quot;http://drupal.org&quot;&gt;Drupal&lt;/a&gt; content management system and this new site will start its life by acting as a journal of the event itself.&lt;/p&gt;

&lt;p&gt;In coming months, watch for updates to news and tutorials here at omphe.com to support the web development community.&lt;/p&gt;
</content>
  </entry>
  
</feed>

