<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <title>hackerific - Home</title>
  <id>tag:my-mili.eu,2009:mephisto/</id>
  <generator uri="http://mephistoblog.com" version="0.8.0">Mephisto Drax</generator>
  <link href="http://my-mili.eu/feed/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://my-mili.eu/" rel="alternate" type="text/html"/>
  <updated>2009-08-01T21:47:11Z</updated>
  <entry xml:base="http://my-mili.eu/">
    <author>
      <name>matt</name>
    </author>
    <id>tag:my-mili.eu,2009-08-01:166</id>
    <published>2009-08-01T21:38:00Z</published>
    <updated>2009-08-01T21:47:11Z</updated>
    <category term="Blog"/>
    <category term="Code"/>
    <category term="bundle"/>
    <category term="make"/>
    <category term="makefile"/>
    <category term="textmate"/>
    <link href="http://my-mili.eu/2009/8/1/textmate-makefile-bundle" rel="alternate" type="text/html"/>
    <title>TextMate Makefile Bundle</title>
<content type="html">
            &lt;p&gt;Recently, I&#8217;ve needed to write and use various Makefiles. I was disappointed to find the TM&#8217;s syntax highlighting lacking, and just not colourful enough, so I set about adding a few bits and pieces.&lt;/p&gt;

&lt;p&gt;You can find the result on &lt;a href=&quot;http://github.com/mattfoster/make.tmbundle/tree/master&quot; title=&quot;mattfoster's make.tmbundle at master - GitHub&quot;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I was pleased to find that most of the official TM bundles are now there, so if you&#8217;re making small (or massive) tweaks and improvements, it&#8217;s should now be easier than ever to get your changes merged into TM proper.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://my-mili.eu/">
    <author>
      <name>matt</name>
    </author>
    <id>tag:my-mili.eu,2009-04-09:165</id>
    <published>2009-04-09T15:46:00Z</published>
    <updated>2009-04-09T15:49:03Z</updated>
    <category term="Blog"/>
    <category term="mac"/>
    <category term="review"/>
    <category term="software"/>
    <link href="http://my-mili.eu/2009/4/9/my-favourite-software" rel="alternate" type="text/html"/>
    <title>My Favourite Software</title>
<content type="html">
            &lt;p&gt;After what seems to have been a super-successful &lt;a href=&quot;http://www.macheist.com/&quot; title=&quot;MacHeist &amp;amp;raquo; Welcome&quot;&gt;macheist&lt;/a&gt;, I thought that now was a good time to describe my all time favourite Mac software. So, here&#8217;s a list of the best bits: the ones that I probably couldn&#8217;t live without:&lt;/p&gt;

&lt;h2&gt;TextMate&lt;/h2&gt;

&lt;p&gt;This is probably obvious, but an extensible editor is one very useful way of turbo charging your computing life. Once you&#8217;ve learned how to use it, you&#8217;ll find that you can automate simple jobs away, leaving you free to focus on getting things right, and done.&lt;/p&gt;

&lt;p&gt;I use project plus, and a shed load of bundles. GetBundles is probably the most notable, as it lets you easily stay up to date, and get new ones.&lt;/p&gt;

&lt;h2&gt;Terminal.app&lt;/h2&gt;

&lt;p&gt;Apple&#8217;s terminal is nice and powerful. I augment this power with Cairan Walsh&#8217;s magical plugins &lt;a href=&quot;http://ciaranwal.sh/2007/11/16/blurminal&quot; title=&quot;Ciarán Walsh’s Blog &amp;amp;raquo; Blurminal&quot;&gt;Blurminal&lt;/a&gt;, and &lt;a href=&quot;http://ciaranwal.sh/2007/11/01/customising-colours-in-leopard-terminal&quot; title=&quot;Ciarán Walsh’s Blog &amp;amp;raquo; Customising Colours in Leopard Terminal&quot;&gt;Terminal colours&lt;/a&gt;. The first lets you add a nice Guassian blur to your terminal, making it easier to distinguish between your terminal&#8217;s text, and whatever you have behind it, and the second lets you use aesthetically pleasing colours. I prefer Tango colours, which you can find in &lt;a href=&quot;http://en.wikipedia.org/wiki/GNOME_Terminal&quot; title=&quot;GNOME Terminal - Wikipedia, the free encyclopedia&quot;&gt;gnome-terminal&lt;/a&gt;, and copy to Terminal.app.&lt;/p&gt;

&lt;p&gt;In my terminal I have &lt;a href=&quot;http://hackerific.net/tags/zsh&quot; title=&quot;hackerific - hacking my way to enlightenment&quot;&gt;zsh&lt;/a&gt;. But then if you&#8217;ve been here before, you know that!&lt;/p&gt;

&lt;p&gt;I heartily recommend from Bash to Z Shell, hence the following affiliate link:&lt;/p&gt;

&amp;lt;iframe src=&quot;http://rcm-uk.amazon.co.uk/e/cm?t=hackerificnet-21&amp;amp;o=2&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=1590593766&amp;amp;md=0M5A6TN3AXP2JHJBWT02&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot;&gt;&amp;lt;/iframe&gt;

&lt;h2&gt;Firefox&lt;/h2&gt;

&lt;p&gt;My browser of necessity is Firefox. I&#8217;ve seen several posts about Firefox being left behind by newer browsers, like Chrome and Safari. Whilst this is true with regards to many things, look and feel in particular. I&#8217;m hoping that Firefox 3.5 will improve the javascript side of things: 3.1b3 is already considerably faster that 3.0.7. &lt;/p&gt;

&lt;p&gt;The killer firefox feature is, of course, extensions. The extensions I can&#8217;t live without are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/3615&quot;&gt;delicious&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/4125&quot;&gt;it&#8217;s all text&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.getfirebug.com/&quot; title=&quot;Firebug - Web Development Evolved&quot;&gt;firebug&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;the &lt;a href=&quot;http://toolbar.netcraft.com/&quot; title=&quot;Netcraft Anti-Phishing Toolbar&quot;&gt;Netcraft toolbar&lt;/a&gt;. Safari 3&#8217;s web inspector offers broadly similar functionality, but doesn&#8217;t feel as powerful.&lt;/li&gt;
&lt;li&gt;greasemonkey&lt;/li&gt;
&lt;li&gt;ghostery: it&#8217;s interesting to see what analytics and tracking different sites use, and this helps by popping up an unobtrusive shadowed div.&lt;/li&gt;
&lt;li&gt;I&#8217;ve also started using User-Agent Switcher, with &lt;a href=&quot;http://webbfunktion.com/upload/AgentStrings(2009-02-04&quot;&gt;http://webbfunktion.com/upload/AgentStrings(2009-02-04).xml&lt;/a&gt;.xml) this functionality is built in to Safari 3&#8217;s develop menu.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;&lt;a href=&quot;http://www.expandrive.com/&quot;&gt;ExpanDrive&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;I realise that there are free alternatives, but ExpanDrive is awesome. It&#8217;s rock solid, and lets you treat SSH servers as disks.&lt;/p&gt;

&lt;h2&gt;LaunchBar 5&lt;/h2&gt;

&lt;p&gt;I was late enough to the Mac party that I missed the massive Quicksilver buzz. Now, I find it too unstable to use. LaunchBar on the other hand, is great. It&#8217;s like a supercharged spotlight, and once you&#8217;re used to search templates, you&#8217;ll be addicted forever. LaunchBar 5 is still in beta, but is now available to buy. The price is a bit steep, but worth every penny.&lt;/p&gt;

&lt;h2&gt;Little Snitch&lt;/h2&gt;

&lt;p&gt;It pays to be paranoid. Little Snitch lets you set custom blocking rules. The practical upshot is that whenever something wants to access the &#8216;net, you know about it.&lt;/p&gt;

&lt;h2&gt;Other Stuff and Conclusions&lt;/h2&gt;

&lt;p&gt;I snapped my menu bar so you can see other things I use. 
&lt;a href=&quot;http://images.hackerific.net/snaps/Menubar-annotated.png&quot;&gt;&lt;img src=&quot;http://images.hackerific.net/snaps/Menubar-annotated.png&quot; alt=&quot;Menubar-annotated&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I used &lt;a href=&quot;http://www.realmacsoftware.com/littlesnapper/&quot; title=&quot;LittleSnapper - Screen and Web Snapping for Mac OS X Leopard&quot;&gt;Little Snapper&lt;/a&gt;, which was in MacHeist, and appears to be fiarly similar, it is actually pretty damn cool, but not as fluffy as skitch! It can upload to sites via SFTP, which I how I included this.&lt;/p&gt;

&lt;p&gt;I got &lt;a href=&quot;http://www.sophiestication.com/coversutra/&quot; title=&quot;CoverSutra at Sophiestication Software&quot;&gt;Coversutra&lt;/a&gt; in a previous heist, and I&#8217;m completely addicted to it, which is why I haven&#8217;t let LaunchBar take over.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://iconfactory.com/software/twitterrific&quot; title=&quot;Iconfactory : Software : Twitterrific&quot;&gt;Twitterrific&lt;/a&gt; is another must. It&#8217;s unobtrustive, and help make twitter what it should be &#8211; there&#8217;s no point in reading peoples tweet 9 hours after they happened! EventBox is an interesting alternative, but I still find Twitterrific more slick (for now).&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://my-mili.eu/">
    <author>
      <name>matt</name>
    </author>
    <id>tag:my-mili.eu,2009-03-23:164</id>
    <published>2009-03-23T16:43:00Z</published>
    <updated>2009-03-23T17:16:40Z</updated>
    <category term="bag"/>
    <category term="make"/>
    <category term="patch"/>
    <category term="qrcode"/>
    <category term="tvbgone"/>
    <link href="http://my-mili.eu/2009/3/23/makerfaire_uk-in-a-diy-frame-of-mind" rel="alternate" type="text/html"/>
    <title>Makerfaire_uk: In a DIY frame of mind</title>
<content type="html">
            &lt;p&gt;I was lucky enough to visit Newcastle Upon Tyne for the Makerfaire_uk this March, and since then I&#8217;ve been brimming with ideas, and feeling the need to make things. This post is partially here to demonstrate that I am, in fact, still alive, and to show off a couple of little things I&#8217;ve made.&lt;/p&gt;

&lt;p&gt;First, I got a &lt;a href=&quot;http://www.p8tch.com/&quot; title=&quot;P8tch: welcome&quot;&gt;p8tch&lt;/a&gt;. This self proclaimed commando nerd patch is an embroidered QR code, which links to a configurable tinyurl style redirect. My first act of making was to sew this onto my &lt;a href=&quot;http://www.timbuk2.co/tb2/products/backpacks/hacker&quot; title=&quot;Timbuk2 Bags - Hacker Daypack - Ballistic Fabric&quot;&gt;Timbuk2 Hacker&lt;/a&gt; bag. Here&#8217;s a picture of the result:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/mattfoster/3373169089/&quot; title=&quot;Timbuk2 Hacker with p8tch! by mattfoster, on Flickr&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3570/3373169089_03fbbf2aab_m.jpg&quot; height=&quot;240&quot; alt=&quot;Timbuk2 Hacker with p8tch!&quot; width=&quot;222&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unfortunately, I don&#8217;t have QR enabled phone (yet), but I tested it by stealing my mothers :).&lt;/p&gt;

&lt;p&gt;Next, whilst in Newcastle, at the Makerfaire (during time which I snapped some &lt;a href=&quot;http://www.flickr.com/photos/mattfoster/sets/72157615228193893/&quot; title=&quot;Makerfaire UK - a set on Flickr&quot;&gt;pics&lt;/a&gt;). I bought a &lt;a href=&quot;http://www.ladyada.net/make/tvbgone/&quot; title=&quot;TV-B-Gone Kit - DIY Universal Remote&quot;&gt;tvbgone&lt;/a&gt; kit, which I built. This is a subversive little thing which switches of TVs. Lots of them. It also has a range of about 45 metres, and knows 46 different IR remote control codes. I intend to have a lot of fun switching off TVs in shops with this. Here&#8217;s a macro shot I took using a screw on +10 filter, and my 50 mm lens:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/mattfoster/3373251351/&quot; title=&quot;completed tvbgone by mattfoster, on Flickr&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3567/3373251351_6e05cde383_m.jpg&quot; height=&quot;169&quot; alt=&quot;completed tvbgone&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In other news, I hope to start posting content to &lt;a href=&quot;http://zshbits.com&quot; title=&quot;ZSH Bits: a tutorial and reference site for ZSH&quot;&gt;zshbits.com&lt;/a&gt; once I&#8217;ve finished my thesis, and had time to create some more screencasts. If anyone&#8217;s interested in contributing, mail me, or comment with disqus.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://my-mili.eu/">
    <author>
      <name>matt</name>
    </author>
    <id>tag:my-mili.eu,2009-02-19:163</id>
    <published>2009-02-19T20:19:00Z</published>
    <updated>2009-02-19T21:02:13Z</updated>
    <category term="Blog"/>
    <category term="Code"/>
    <category term="learning"/>
    <category term="perl"/>
    <category term="textmate"/>
    <link href="http://my-mili.eu/2009/2/19/learning-perl-and-perlcritic-for-textmate" rel="alternate" type="text/html"/>
    <title>Learning Perl (and Perlcritic for TextMate)</title>
<content type="html">
            &lt;p&gt;Now, just just leave straight away, but I&#8217;m learning &lt;a href=&quot;http://www.perl.org/&quot; title=&quot;The Perl Directory - perl.org&quot;&gt;perl&lt;/a&gt;. I know I&#8217;ve only just started waxing lyrical about python, but bear with me, I&#8217;ve not got any plans to dump anything else: I just need to learn perl for work. (If you read on in this post, you&#8217;ll find some ruby code, too!)&lt;/p&gt;

&lt;p&gt;So, armed with some of the ideas from comments on my &lt;a href=&quot;http://my-mili.eu/2009/2/15/best-practices-and-patterns&quot; title=&quot;hackerific: Best Practices and Patterns&quot;&gt;last post&lt;/a&gt;, I&#8217;ve tried to build make use of some of the most trendy web resources to help me on my way. Ideally, I&#8217;d like to pick up on best practices as I go along.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3397/3293063926_736d8c02ba.jpg?v=0&quot; alt=&quot;information overload&quot; /&gt;&lt;/p&gt;

&lt;p&gt;So far though, I&#8217;m not having a huge amount of luck. I&#8217;ve worked through &lt;a href=&quot;http://oreilly.com/catalog/9780596001322/&quot; title=&quot;Learning Perl | O'Reilly Media&quot;&gt;learning perl&lt;/a&gt;, and I&#8217;ve finished reading it feeling like I don&#8217;t know anything like the whole story. To be perfectly honest, I&#8217;m quite surprised at the complexity of what seems like a small language!&lt;/p&gt;

&lt;p&gt;I&#8217;ve got a huge pile of books to help though, so I&#8217;m going to start digging through &lt;a href=&quot;http://oreilly.com/catalog/9780596000271/&quot; title=&quot;Programming Perl | O'Reilly Media&quot;&gt;programming perl&lt;/a&gt;, and setting myself programming goals. My aim is to work out how to write simple modules and unit tests by the end of next week. I&#8217;d also like to find some &lt;a href=&quot;http://rake.rubyforge.org/&quot; title=&quot;Rake -- Ruby Make&quot;&gt;rake&lt;/a&gt;/&lt;a href=&quot;http://www.blueskyonmars.com/projects/paver/&quot; title=&quot;Paver: Easy Scripting for Software Projects &amp;amp;mdash; Paver v0.8 documentation&quot;&gt;paver&lt;/a&gt; equivalent, and work out how to effectively use &lt;code&gt;Devel::REPL&lt;/code&gt; (which &lt;a href=&quot;http://stackoverflow.com/&quot; title=&quot;Stack Overflow&quot;&gt;stackoverflow&lt;/a&gt; helped me find.) 
Soon I&#8217;ll have my automation / test safety net at the ready, so things can proceed a little faster.&lt;/p&gt;

&lt;p&gt;Whilst casting around, I found &lt;a href=&quot;http://search.cpan.org/dist/Perl-Critic/&quot; title=&quot;Elliot Shank / Perl-Critic - search.cpan.org&quot;&gt;Perl::Critic&lt;/a&gt;, a module (and front-end) for checking your code&#8217;s adherence to best practices (incidentally, there&#8217;s a great book called &lt;a href=&quot;http://oreilly.com/catalog/9780596001735/&quot; title=&quot;Perl Best Practices | O'Reilly Media&quot;&gt;perl best practices&lt;/a&gt; &#8211; another one on the pile!). &lt;/p&gt;

&lt;p&gt;I decided to write a TextMate command for the perl bundle to run code through &lt;code&gt;perlcritic&lt;/code&gt;, since there isn&#8217;t one. After a little help from the bundle developers mailing list, I came up with the following:&lt;/p&gt;

&lt;p&gt;To run this, you will &lt;em&gt;need&lt;/em&gt; a new copy of the TextMate Support directory. I&#8217;d suggest using GetBundles. I&#8217;ve sent a patch to the perl bundle to the ML, but in the mean time, if you paste the above code into a bundle command, set the scope to &lt;code&gt;source.perl&lt;/code&gt;, and trigger to &lt;code&gt;⇧⌘C&lt;/code&gt;, you should get it working fine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: I&#8217;ve just started reading programming perl, and I wish I&#8217;d started with it! I&#8217;m already feeling like I&#8217;m learning more useful stuff than was contained in learning perl. I guess I&#8217;m not the target audience of that, but I wish I&#8217;d known last week!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://my-mili.eu/">
    <author>
      <name>matt</name>
    </author>
    <id>tag:my-mili.eu,2009-02-15:162</id>
    <published>2009-02-15T12:31:00Z</published>
    <updated>2009-02-15T12:53:18Z</updated>
    <category term="best_practices"/>
    <category term="idioms"/>
    <category term="learning"/>
    <link href="http://my-mili.eu/2009/2/15/best-practices-and-patterns" rel="alternate" type="text/html"/>
    <title>Best Practices and Patterns </title>
<content type="html">
            &lt;p&gt;&lt;a href=&quot;http://files.my-mili.eu/Best_Practices.m4a&quot;&gt;Listen to this post&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;lt;object height=&quot;25&quot; width=&quot;100%&quot;&gt;
        &amp;lt;param /&gt;
        &amp;lt;param /&gt;
        &amp;lt;param /&gt;
        &amp;lt;param /&gt;
        &amp;lt;param /&gt;
        &amp;lt;embed src=&quot;http://podcastpickle.com/.assets/flash/Anjuna_Episode_Player.swf&quot; height=&quot;25&quot; width=&quot;100%&quot;&gt;
        &amp;lt;/embed&gt;
&amp;lt;/object&gt;&lt;/p&gt;

&lt;p&gt;One of the things I&#8217;ve noticed during the course of my studying for my PhD is that there&#8217;s is a gulf between knowing how to do something, and knowing how to do in a way that&#8217;s acceptable to others. I think that this gulf is one of &lt;em&gt;best practices&lt;/em&gt;. &lt;/p&gt;

&lt;p&gt;If that&#8217;s not clear, then let me illustrate it with an example. I believe that almost anyone can do research which is suitable for publication (honestly, anyone!), but the actual process of publication is far more difficult (I&#8217;m speaking as someone who without a huge amount of experience in this area). &lt;/p&gt;

&lt;p&gt;To have work published, you must follow a complex sequence of both explicit and implicit rules. These rules represent the best practices of scientific writing, and without knowing how to follow them, even if you don&#8217;t know what &lt;em&gt;they&lt;/em&gt; are, you will have a hard time getting things published. &lt;/p&gt;

&lt;p&gt;This process boils down to &#8216;learning how to play the game&#8217; or pick up the idioms, and seems to generalise to almost every other problem domain &#8211; at least those that I&#8217;ve come across. &lt;/p&gt;

&lt;p&gt;Does my description above sound familiar to you? I thought so. Maybe you&#8217;ve tried to commit to a well established open-source project; you probably had to study the coding style, look at how tests were implemented, maybe even learn how they use source code management. &lt;/p&gt;

&lt;p&gt;In my experience, a normal part of any learning process, perhaps even more important that the initial, and traditional &lt;em&gt;learning&lt;/em&gt; stage, is finding out how things actually get done. I&#8217;m hoping that by building finding out about this kind of issue into my learning processes, I&#8217;ll be able to get to a useful state, one where my output is usable by others, quicker, and perhaps not have to unlearn bad habits which I picked up when I started out.&lt;/p&gt;

&lt;p&gt;How do you find out about best practices? How do you build them into your learning processes? Let me know in the comments below.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://my-mili.eu/">
    <author>
      <name>matt</name>
    </author>
    <id>tag:my-mili.eu,2009-02-10:161</id>
    <published>2009-02-10T17:03:00Z</published>
    <updated>2009-02-11T08:45:01Z</updated>
    <category term="Blog"/>
    <category term="Code"/>
    <category term="grammar"/>
    <category term="language"/>
    <category term="textmate"/>
    <link href="http://my-mili.eu/2009/2/10/adverb-detection-in-textmate" rel="alternate" type="text/html"/>
    <title>Adverb Detection in TextMate</title>
<content type="html">
            &lt;p&gt;After seeing &lt;a href=&quot;http://lifehacker.com/240522/lifehacker-code--the-ly-detector-greasemonkey-user-script&quot;&gt;lifehacker&lt;/a&gt;, I was inspired to add an adverb detector to TextMate&#8217;s markdown grammar, since that&#8217;s the format I use to write blog posts. &lt;/p&gt;

&lt;p&gt;Far from being a couple of hours work, this was dead simple, and involved adding a couple of tiny bits to the grammar, here&#8217;s how to do it:&lt;/p&gt;

&lt;p&gt;First, fire up TextMate&#8217;s &lt;code&gt;Bundle Editor&lt;/code&gt;, press &lt;code&gt;⌃⌥⌘B&lt;/code&gt;. Then scroll to markdown, expand it, and find the Markdown Language grammar. This will be marked with a small grey &lt;code&gt;L&lt;/code&gt;. Add the following to the &lt;code&gt;repository&lt;/code&gt; section:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;    adverb-detector = {
        name = 'invalid.adverb';
        match = '(?!\b(supply|apply|family|only|prolly|folly|sully|rally|waverly|reply|early|probably)\b)\b(\w+ly)\b';
    };
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Now scroll to the section headed &lt;code&gt;inline&lt;/code&gt;, and add:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;    {   include = '#adverb-detector'; },
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;To the &lt;code&gt;patterns&lt;/code&gt; part. Finally, check you have a rule called &lt;code&gt;Invalid&lt;/code&gt; in your TextMate theme, with the scope selector &lt;code&gt;invalid&lt;/code&gt;. This rule is used to highlight a multitude of sins, so it&#8217;s probably already in your theme. Mine looks like this:&lt;/p&gt;

&lt;div class=&quot;thumbnail&quot;&gt;&lt;a href=&quot;http://skitch.com/mattfoster/brgqd/invalid-selector&quot;&gt;&lt;img src=&quot;http://img.skitch.com/20090210-fu4tuujj2inxge1994f3mfxx1m.preview.jpg&quot; alt=&quot;invalid_selector&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span&gt;Uploaded with &lt;a href=&quot;http://plasq.com/&quot;&gt;plasq&lt;/a&gt;&#8217;s &lt;a href=&quot;http://skitch.com&quot;&gt;Skitch&lt;/a&gt;!&lt;/span&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;http://img.skitch.com/20090210-b42mb5qkccbqa2xg6gib53361q.png&quot; alt=&quot;adverb_detection.mdown&quot; /&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://my-mili.eu/">
    <author>
      <name>matt</name>
    </author>
    <id>tag:my-mili.eu,2009-02-10:160</id>
    <published>2009-02-10T10:40:00Z</published>
    <updated>2009-02-10T13:03:52Z</updated>
    <category term="Blog"/>
    <category term="python"/>
    <category term="site"/>
    <category term="template"/>
    <link href="http://my-mili.eu/2009/2/10/static-site-generation" rel="alternate" type="text/html"/>
    <title>Static Site Generation</title>
<content type="html">
            &lt;p&gt;There seems to have been a recent glut in static site generators. It looks like you can pick your templating language, and find a generator to go with it. Recently, I discovered &lt;a href=&quot;http://github.com/lakshmivyas/hyde/tree/master&quot; title=&quot;lakshmivyas's hyde at master - GitHub&quot;&gt;hyde&lt;/a&gt; via the &lt;a href=&quot;http://github.com/blog/342-hyde-the-python-static-site-generator&quot; title=&quot;Hyde - The Python Static Site Generator - GitHub&quot;&gt;github blog&lt;/a&gt;, and decided it was worth trying out on a project I&#8217;m working on. That project is &lt;a href=&quot;http://zshbits.com&quot;&gt;zshbits&lt;/a&gt;, a tutorial/screencast site for ZSH. I&#8217;ll be unveiling some zshbits content soon (for now I&#8217;m waiting for a cold to let up, so I don&#8217;t sound quite so nasal, and a &lt;a href=&quot;http://www.samsontech.com/products/productpage.cfm?prodID=1904&quot; title=&quot;Samson Audio - C01U Recording Pak&quot;&gt;new microphone&lt;/a&gt;) and readers here will be the first to know.&lt;/p&gt;

&lt;p&gt;Recent versions of hyde, which is a fork of 
&lt;a href=&quot;http://www.webmasterworld.com/content_management/3825584.htm&quot; title=&quot;Any CMS with Feature Comparison function?&quot;&gt;any-cms&lt;/a&gt;, have support for &lt;a href=&quot;http://code.google.com/p/typogrify/&quot; title=&quot;typogrify - Google Code&quot;&gt;typogrify&lt;/a&gt;, a must for pretty posts, a sitemap generator, and other goodness. If, like me, you&#8217;re looking for something lightweight, which supports markdown, it&#8217;s probably worth taking a look. It&#8217;s probably also a good way of learning about django templates.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://my-mili.eu/">
    <author>
      <name>matt</name>
    </author>
    <id>tag:my-mili.eu,2009-02-06:159</id>
    <published>2009-02-06T15:32:00Z</published>
    <updated>2009-02-06T17:07:20Z</updated>
    <category term="Blog"/>
    <category term="blog"/>
    <category term="comments"/>
    <link href="http://my-mili.eu/2009/2/6/comment-strangeness" rel="alternate" type="text/html"/>
    <title>Comment Strangeness</title>
<content type="html">
            &lt;p&gt;As my blog still has a slightly dual personality, you might not see your comments listed in under the article in which you commented. This is because disqus uses the referrer to link comments to the articles, which means it things &lt;code&gt;my-mili.eu&lt;/code&gt; and &lt;code&gt;hackerific.net&lt;/code&gt; are different. Well, they aren&#8217;t, but please note that they&#8217;ll only be listed if the url begins with hackerific… sorry for any inconvenience!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://my-mili.eu/">
    <author>
      <name>matt</name>
    </author>
    <id>tag:my-mili.eu,2009-02-06:158</id>
    <published>2009-02-06T12:48:00Z</published>
    <updated>2009-02-06T23:13:18Z</updated>
    <category term="Blog"/>
    <category term="Code"/>
    <category term="bundle"/>
    <category term="macheist"/>
    <category term="numpy"/>
    <category term="python"/>
    <link href="http://my-mili.eu/2009/2/6/my-macheist-release-estimate" rel="alternate" type="text/html"/>
    <title>My MacHeist Release Estimate</title>
<content type="html">
            &lt;p&gt;Like a lot of mac users, I get excited about MacHeist, and why not, it&#8217;s fun and a good bargain.&lt;/p&gt;

&lt;p&gt;Since we&#8217;re snowed out of work, and a MacHeist Bundle release seems imminent, I decided to hack up a quick script to find out how wide the progress bar thing is, and use that to estimate the release time. Here&#8217;s what I&#8217;ve been up to for the last half hour or so:&lt;/p&gt;

&lt;div class=&quot;thumbnail&quot;&gt;&lt;a href=&quot;http://skitch.com/mattfoster/bd2ut/macheist-mainframe&quot;&gt;&lt;img src=&quot;http://img.skitch.com/20090206-nd331ywttf11ypf684ehdr5scr.preview.jpg&quot; alt=&quot;MacHeist: Mainframe&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span&gt;Uploaded with &lt;a href=&quot;http://plasq.com/&quot;&gt;plasq&lt;/a&gt;&#8217;s &lt;a href=&quot;http://skitch.com&quot;&gt;Skitch&lt;/a&gt;!&lt;/span&gt;&lt;/div&gt;

&lt;p&gt;I used &lt;a href=&quot;http://crummy.com/software/BeautifulSoup&quot; title=&quot;Beautiful Soup: We called him Tortoise because he taught us.&quot;&gt;BeautifulSoup&lt;/a&gt; with &lt;a href=&quot;http://docs.python.org/library/urllib2.html&quot; title=&quot;urllib2 — extensible library for opening URLs &amp;amp;mdash; Python v2.6.1 documentation&quot;&gt;urllib2&lt;/a&gt; and a tiny regular expression, and here&#8217;s the result:&lt;/p&gt;

&lt;p&gt;I&#8217;m running it in a simple shell loop:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;  while true; do sleep 60; python heist_parse.py &amp;gt;&amp;gt; heist_countdown; done
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Which is collecting the width every minute (that doesn&#8217;t seem too often).&lt;/p&gt;

&lt;p&gt;Now that I&#8217;ve had this loop running for a while I&#8217;ve got 34 data points, so I can do a bit of simple linear regression, with &lt;a href=&quot;http://www.scipy.org/&quot; title=&quot;SciPy -&quot;&gt;scipy&lt;/a&gt;. Here&#8217;s a graph:&lt;/p&gt;

&lt;div class=&quot;thumbnail&quot;&gt;&lt;a href=&quot;http://skitch.com/mattfoster/bd2ik/macheist-release-estimate&quot;&gt;&lt;img src=&quot;http://img.skitch.com/20090206-8cess4fmajn5b741bgf1w8mqkg.preview.jpg&quot; alt=&quot;macheist_release_estimate&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span&gt;Uploaded with &lt;a href=&quot;http://plasq.com/&quot;&gt;plasq&lt;/a&gt;&#8217;s &lt;a href=&quot;http://skitch.com&quot;&gt;Skitch&lt;/a&gt;!&lt;/span&gt;&lt;/div&gt;

&lt;p&gt;And here&#8217;s the code used to do the regression, and generate the plot.&lt;/p&gt;

&lt;p&gt;It&#8217;s important to remember that this is based on the assumption that the bar is full up at &lt;strong&gt;500&lt;/strong&gt; pixels wide. This may or may not be reasonable.&lt;/p&gt;

&lt;p&gt;If it is though, I&#8217;d tentatively estimate that the bundle will be release at &lt;strong&gt;3AM (GMT) on the 7th Feb 2009&lt;/strong&gt;. You read it here first!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Well, it looks like they cheated! Here&#8217;s a graph of the bar&#8217;s length with time:&lt;/p&gt;

&lt;div class=&quot;thumbnail&quot;&gt;&lt;a href=&quot;http://skitch.com/mattfoster/bd49m/rounded-up&quot;&gt;&lt;img src=&quot;http://img.skitch.com/20090206-k9eynh3auxkny255jttwtdafcm.preview.jpg&quot; alt=&quot;Rounded up!&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span&gt;Uploaded with &lt;a href=&quot;http://plasq.com/&quot;&gt;plasq&lt;/a&gt;&#8217;s &lt;a href=&quot;http://skitch.com&quot;&gt;Skitch&lt;/a&gt;!&lt;/span&gt;&lt;/div&gt;

&lt;p&gt;As you can probably see, it was rounded up. Ahh well. So much for the estimate!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://my-mili.eu/">
    <author>
      <name>matt</name>
    </author>
    <id>tag:my-mili.eu,2009-02-06:157</id>
    <published>2009-02-06T10:43:00Z</published>
    <updated>2009-02-06T10:44:29Z</updated>
    <category term="Blog"/>
    <category term="administration"/>
    <category term="python"/>
    <category term="ssh"/>
    <link href="http://my-mili.eu/2009/2/6/paramiko-scripting-ssh-with-python" rel="alternate" type="text/html"/>
    <title>Paramiko: Scripting SSH with Python </title>
<content type="html">
            &lt;p&gt;Python Scriptable SSH &lt;/p&gt;

&lt;p&gt;For a simple way of remotely administering machines, over SSH, with &lt;em&gt;Python&lt;/em&gt;, have a look at &lt;a href=&quot;http://jessenoller.com/2009/02/05/ssh-programming-with-paramiko-completely-different/&quot; title=&quot;jessenoller.com - SSH Programming with Paramiko | Completely Different&quot;&gt;paramiko&lt;/a&gt;. You can grab it using &lt;code&gt;easy_install&lt;/code&gt;, which can itself be grabbed from &lt;a href=&quot;http://pypi.python.org/pypi/setuptools&quot; title=&quot;Python Package Index : setuptools 0.6c9&quot;&gt;PyPi&lt;/a&gt;, and installed using &lt;code&gt;sudo sh easy_install_filename.egg&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Here&#8217;s a simple script I rustled up, based on the tutorial. It fires up &lt;a href=&quot;http://mediatomb.cc/&quot; title=&quot;MediaTomb - Free UPnP MediaServer&quot;&gt;mediatomb&lt;/a&gt;, on my server &lt;code&gt;microwave&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;If you don&#8217;t like using password-less &lt;code&gt;sudo&lt;/code&gt;, don&#8217;t worry, it can cope with that too. That&#8217;s what the second half of the gist above does.&lt;/p&gt;

&lt;p&gt;So, if you use SSH for any kind of repetitive system administration, give the 
&lt;a href=&quot;http://jessenoller.com/2009/02/05/ssh-programming-with-paramiko-completely-different/&quot; title=&quot;jessenoller.com - SSH Programming with Paramiko | Completely Different&quot;&gt;article&lt;/a&gt; a read, and give paramiko a try.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://my-mili.eu/">
    <author>
      <name>matt</name>
    </author>
    <id>tag:my-mili.eu,2009-02-03:156</id>
    <published>2009-02-03T13:33:00Z</published>
    <updated>2009-02-03T14:38:37Z</updated>
    <category term="Blog"/>
    <category term="Screencasts"/>
    <category term="bibdesk"/>
    <category term="bibtex"/>
    <category term="google"/>
    <category term="launchbar"/>
    <category term="mac"/>
    <category term="reference"/>
    <category term="screencast"/>
    <link href="http://my-mili.eu/2009/2/3/screencast-launchbar-bibdesk-and-google-scholar" rel="alternate" type="text/html"/>
    <title>Screencast: LaunchBar, BibDesk and Google Scholar</title>
<content type="html">
            &lt;p&gt;I spend quite a bit of time looking for references on &lt;a href=&quot;http://scholar.google.com/&quot; title=&quot;Google Scholar&quot;&gt;Google Scholar&lt;/a&gt;, and decided to see what I could do with &lt;a href=&quot;http://www.obdev.at/products/launchbar/index.html&quot; title=&quot;LaunchBar 5 Beta&quot;&gt;LaunchBar 5&lt;/a&gt; to make my life easier. Here&#8217;s a quick screencast to show what I&#8217;ve got going on: &lt;/p&gt;

&lt;p&gt;&amp;lt;object height=&quot;375&quot; width=&quot;600&quot;&gt;&amp;lt;param /&gt;&amp;lt;param /&gt;&amp;lt;param /&gt;&amp;lt;embed src=&quot;http://vimeo.com/moogaloop.swf?clip_id=3066905&amp;amp;amp;server=vimeo.com&amp;amp;amp;show_title=1&amp;amp;amp;show_byline=1&amp;amp;amp;show_portrait=0&amp;amp;amp;color=00ADEF&amp;amp;amp;fullscreen=1&quot; height=&quot;375&quot; width=&quot;600&quot;&gt;&amp;lt;/embed&gt;&amp;lt;/object&gt;&lt;br /&gt;&lt;a href=&quot;http://vimeo.com/3066905&quot;&gt;LaunchBar, BibDesk and Google Scholar&lt;/a&gt; from &lt;a href=&quot;http://vimeo.com/user750148&quot;&gt;Matt Foster&lt;/a&gt; on &lt;a href=&quot;http://vimeo.com&quot;&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you view this video on &lt;a href=&quot;http://www.vimeo.com/3066905&quot; title=&quot;LaunchBar, BibDesk and Google Scholar on Vimeo&quot;&gt;vimeo&lt;/a&gt; you can see it in HD goodness.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://my-mili.eu/">
    <author>
      <name>matt</name>
    </author>
    <id>tag:my-mili.eu,2009-01-30:155</id>
    <published>2009-01-30T13:41:00Z</published>
    <updated>2009-01-30T13:42:05Z</updated>
    <category term="Blog"/>
    <category term="git"/>
    <category term="github"/>
    <category term="prompt"/>
    <category term="zsh"/>
    <link href="http://my-mili.eu/2009/1/30/git-ready-and-the-zsh-prompt" rel="alternate" type="text/html"/>
    <title>Git Ready and the ZSH Prompt</title>
<content type="html">
            &lt;p&gt;Git is one of those programs, like, say &lt;a href=&quot;http://www.vim.org/&quot; title=&quot;welcome home : vim online&quot;&gt;vim&lt;/a&gt;, which contains more functionality than it seems humanly possible to grasp. Thankfully, there are sites like &lt;a href=&quot;http://gitready.com/&quot; title=&quot;git ready &amp;amp;raquo; daily tips for the noob to the guru&quot;&gt;gitready&lt;/a&gt;, which are designed to help us mere mortals to grasp the awesomeness.&lt;/p&gt;

&lt;p&gt;I&#8217;m very pleased to be able to report that a bit of awesomeness that I&#8217;ve been involved in has been listed. Have a look at the &lt;a href=&quot;http://gitready.com/advanced/2009/01/28/zsh-git-status.html&quot; title=&quot;git ready &amp;amp;raquo; zsh git status&quot;&gt;ZSH Git Status&lt;/a&gt; page and you might see what I mean. That&#8217;s right: zshkit is mentioned.&lt;/p&gt;

&lt;p&gt;If you&#8217;ve not read any of my other posts on it, zshkit is a project, started by &lt;a href=&quot;http://brycekerley.net/chronicle/&quot; title=&quot;Bryce Kerley&quot;&gt;Bryce &#8220;BonzoESC&#8221; Kerley&lt;/a&gt;, and forked by various people (I think I just had the honour of being the furthest up the &lt;a href=&quot;http://github.com/bkerley/zshkit/network&quot; title=&quot;The zshkit Network - GitHub&quot;&gt;network&lt;/a&gt; graph). &lt;/p&gt;

&lt;p&gt;Over the next few days, I&#8217;m hoping to implement the &lt;code&gt;vcs_info&lt;/code&gt; stuff mentioned in the &lt;a href=&quot;http://gitready.com/advanced/2009/01/28/zsh-git-status.html&quot; title=&quot;git ready &amp;amp;raquo; zsh git status&quot;&gt;git-ready&lt;/a&gt; comments.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://my-mili.eu/">
    <author>
      <name>matt</name>
    </author>
    <id>tag:my-mili.eu,2009-01-30:154</id>
    <published>2009-01-30T11:43:00Z</published>
    <updated>2009-01-30T11:47:34Z</updated>
    <category term="Blog"/>
    <category term="comment"/>
    <category term="discus"/>
    <category term="forum"/>
    <link href="http://my-mili.eu/2009/1/30/hackerific-is-now-disqus-enabled" rel="alternate" type="text/html"/>
    <title>Hackerific is now Disqus enabled</title>
<content type="html">
            &lt;p&gt;I&#8217;ve just enabled &lt;a href=&quot;http://disqus.com/&quot; title=&quot;DISQUS | Turn Blog Comments into a Webwide Discussion with a Powerful Comment System&quot;&gt;disqus&lt;/a&gt; support in the blog template. Now, instead of the mephisto form, you should see a disqus one.&lt;/p&gt;

&lt;p&gt;I&#8217;m hoping this should speed up the commenting process, and make it easier for discussions to happen. So please, comment away! &lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://my-mili.eu/">
    <author>
      <name>matt</name>
    </author>
    <id>tag:my-mili.eu,2009-01-25:152</id>
    <published>2009-01-25T19:48:00Z</published>
    <updated>2009-01-25T19:53:42Z</updated>
    <category term="Blog"/>
    <link href="http://my-mili.eu/2009/1/25/migrated-rss-feeds" rel="alternate" type="text/html"/>
    <title>Migrated RSS Feeds</title>
<content type="html">
            &lt;p&gt;I just &lt;a href=&quot;http://www.dailyblogtips.com/time-to-switch-from-feedburner-to-google/&quot; title=&quot;Time To Switch from Feedburner to Google?&quot;&gt;discovered&lt;/a&gt; that it was time to migrate my feedburner RSS feeds to google, so I did. Hopefully nobody will notice, anything different, but &lt;a href=&quot;mailto:&amp;amp;#x6D;&amp;amp;#x61;&amp;amp;#x74;&amp;amp;#x74;&amp;amp;#x2E;&amp;amp;#x70;&amp;amp;#x2E;&amp;amp;#x66;&amp;amp;#x6F;&amp;amp;#x73;&amp;amp;#x74;&amp;amp;#x65;&amp;amp;#x72;&amp;amp;#x40;&amp;amp;#x67;&amp;amp;#x6D;&amp;amp;#x61;&amp;amp;#x69;&amp;amp;#x6C;&amp;amp;#x2E;&amp;amp;#x63;&amp;amp;#x6F;&amp;amp;#x6D;&quot;&gt;please drop me&lt;/a&gt; a line if you do! &lt;/p&gt;

&lt;p&gt;If you aren&#8217;t subscribed to hackerific&#8217;s RSS feeds, then why not &lt;a href=&quot;http://feeds2.feedburner.com/hackerific&quot; title=&quot;hackerific - Home&quot;&gt;subscribe now&lt;/a&gt;? You won&#8217;t regret it :)&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://my-mili.eu/">
    <author>
      <name>matt</name>
    </author>
    <id>tag:my-mili.eu,2009-01-23:151</id>
    <published>2009-01-23T16:05:00Z</published>
    <updated>2009-01-23T16:06:46Z</updated>
    <category term="Blog"/>
    <category term="Code"/>
    <category term="config"/>
    <category term="shell"/>
    <category term="tips"/>
    <category term="zsh"/>
    <link href="http://my-mili.eu/2009/1/23/zsh-abbreviations" rel="alternate" type="text/html"/>
    <title>ZSH Abbreviations</title>
<content type="html">
            &lt;p&gt;Abbreviations are ZSH feature I just stumbled across, whilst proselytising about &lt;a href=&quot;http://grml.org/&quot; title=&quot;grml.org - Linux Live-CD for sysadmins and texttools-users&quot;&gt;GRML&lt;/a&gt;, a cool linux distro. &lt;/p&gt;

&lt;p&gt;Here&#8217;s a snippet to show you the &lt;a href=&quot;http://www.realultimatepower.net/&quot; title=&quot;Are you ready to get pumped&quot;&gt;ultimate power&lt;/a&gt; they offer:&lt;/p&gt;

&lt;p&gt;OK, so it may not make much sense as it stands, but bear with me. Suppose you want to get some information about the size of the directory tree you&#8217;re in. Now, you want to use something like &lt;code&gt;du -sch&lt;/code&gt;, traditionally, you might have &lt;code&gt;alias da='du -sch'&lt;/code&gt; in a config. file, but what if you want to edit it at the last minute. The abbreviation lets you do just that. If you type &lt;code&gt;da,.&lt;/code&gt;, the &lt;code&gt;,.&lt;/code&gt; trigger expands the abbreviation to give you &lt;code&gt;du -sch&lt;/code&gt; on the command line, and then you can further edit the command, to add that extra &lt;code&gt;x&lt;/code&gt;, or whatever, afterwards. This is obviously a somewhat contrived example, but the effort saving, productivity enhancing idea is still there, and it fits in well with the &lt;a href=&quot;http://www.zsh.org/&quot; title=&quot;Zsh&quot;&gt;ZSH&lt;/a&gt; philosophy, or my version of it at least. &lt;/p&gt;

&lt;p&gt;To see what I mean, look at the &lt;code&gt;magic-space&lt;/code&gt; command. If you use:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;    bindkey ' ' magic-space
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Then use history, or some other shell expansion, it will be fully expanded when you hit space. Did you miss the colon on the end of that &lt;code&gt;scp&lt;/code&gt; command three lines ago? No problem, hit &lt;code&gt;!-3␣&lt;/code&gt;, add it, and hit return. It feels similar to the abbreviation mechanism above, and is very powerful too.&lt;/p&gt;

&lt;p&gt;It&#8217;s worth noting that the &lt;a href=&quot;http://github.com/strcat/dotfiles/blob/ea3521faeb94d91ae84186b00d2a660ef6bdac48/zsh/zshmisc&quot; title=&quot;zsh/zshmisc at ea3521faeb94d91ae84186b00d2a660ef6bdac48 from strcat's dotfiles - GitHub&quot;&gt;original sighting&lt;/a&gt; of this trick doesn&#8217;t seem to be compatible with the &#8216;magic-space&#8217;, since it rebinds space. &lt;/p&gt;

&lt;p&gt;You can find all of this, and more, in my &lt;a href=&quot;http://github.com/mattfoster/zshkit&quot;&gt;zshkit&lt;/a&gt;.&lt;/p&gt;
          </content>  </entry>
</feed>
