<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Rob Allen&#039;s DevNotes &#187; Software</title>
	<atom:link href="http://akrabat.com/category/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://akrabat.com</link>
	<description>Developing PHP software in the Real World, by Rob Allen</description>
	<lastBuildDate>Fri, 11 May 2012 12:52:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Sublime Text 2 Plugin: Function Name Display</title>
		<link>http://akrabat.com/software/sublime-text-2-plugin-function-name-display/</link>
		<comments>http://akrabat.com/software/sublime-text-2-plugin-function-name-display/#comments</comments>
		<pubDate>Mon, 27 Feb 2012 07:58:39 +0000</pubDate>
		<dc:creator>Rob...</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://akrabat.com/?p=1829</guid>
		<description><![CDATA[As I'm using Sublime Text 2 more and more, I thought it would be useful to display the current method name in the status bar. I poked around on the forums and created a plugin from ideas I found in a couple of different threads. This plugin is imaginatively titled Sublime Function Name Display! As [...]]]></description>
			<content:encoded><![CDATA[<p>As I'm using <a href="http://www.sublimetext.com/2">Sublime Text 2</a> more and more, I thought it would be useful to display the current method name in the status bar. I poked around on the <a href="http://www.sublimetext.com/forum/">forums</a> and created a plugin from ideas I found in a couple of different threads.</p>
<p>This plugin is imaginatively titled <a href="https://github.com/akrabat/SublimeFunctionNameDisplay">Sublime Function Name Display</a>!</p>
<p>As I've hooked into the <tt>on_selection_modified</tt> event handler, I was keen to avoid slowing down the editor too much when you move your carat quickly. As a result, I have used a simple waiting system from forum member 'facelessuser', to ensure that the plugin only updates the status bar 100ms after you've stopped moving the carat. </p>
<p>As I don't know Python, I copied the code from other people but I'm happy with the way my first plugin has turned out.</p>
 <p><a href="http://akrabat.com/?flattrss_redirect&amp;id=1829&amp;md5=2bd8d9e4efc3426f5db5cab6fd44c1e3" title="Flattr" target="_blank"><img src="http://akrabat.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://akrabat.com/software/sublime-text-2-plugin-function-name-display/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=akrabat&amp;popout=1&amp;url=http%3A%2F%2Fakrabat.com%2Fsoftware%2Fsublime-text-2-plugin-function-name-display%2F&amp;language=en_GB&amp;category=text&amp;title=Sublime+Text+2+Plugin%3A+Function+Name+Display&amp;description=As+I%27m+using+Sublime+Text+2+more+and+more%2C+I+thought+it+would+be+useful+to+display+the+current+method+name+in+the+status+bar.+I+poked+around+on+the...&amp;tags=blog" type="text/html" />
	</item>
		<item>
		<title>Two new Sublime Text 2 packages for PHP</title>
		<link>http://akrabat.com/software/two-new-sublime-text-2-packages-for-php/</link>
		<comments>http://akrabat.com/software/two-new-sublime-text-2-packages-for-php/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 08:04:34 +0000</pubDate>
		<dc:creator>Rob...</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://akrabat.com/?p=1698</guid>
		<description><![CDATA[Stuart Herbert has written two new Sublime Text packages for PHP: Additional PHP Snippets PHPUnit The best way to install these is to install Package Control first and then use shift+cmd+P -> install package. Even better, Stuart has rolled my getter/setter creation snippet into Additional PHP Snippets, so you can now have it without any [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.stuartherbert.com/">Stuart Herbert</a> has written two new Sublime Text packages for PHP:</p>
<ul>
<li><a href="https://github.com/stuartherbert/sublime-phpsnippets">Additional PHP Snippets</a></li>
<li><a href="https://github.com/stuartherbert/sublime-phpunit">PHPUnit</a></li>
</ul>
<p>The best way to install these is to install <a href="http://wbond.net/sublime_packages/package_control">Package Control</a> first and then use shift+cmd+P -> install package.</p>
<p>Even better, Stuart has rolled my getter/setter creation snippet into Additional PHP Snippets, so you can now have it without any hassle!</p>
<p>Update: Also, <a href="https://twitter.com/#!/benmatselby">Ben Selby</a> has created a package for <a href="http://www.soulbroken.co.uk/blog/2012/02/docblox-plugin-for-sublime-text-2/">DocBlox</a>!</p>
 <p><a href="http://akrabat.com/?flattrss_redirect&amp;id=1698&amp;md5=40e5bf37e77ff751fb8e95ee3aaa62d4" title="Flattr" target="_blank"><img src="http://akrabat.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://akrabat.com/software/two-new-sublime-text-2-packages-for-php/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=akrabat&amp;popout=1&amp;url=http%3A%2F%2Fakrabat.com%2Fsoftware%2Ftwo-new-sublime-text-2-packages-for-php%2F&amp;language=en_GB&amp;category=text&amp;title=Two+new+Sublime+Text+2+packages+for+PHP&amp;description=Stuart+Herbert+has+written+two+new+Sublime+Text+packages+for+PHP%3A+Additional+PHP+Snippets+PHPUnit+The+best+way+to+install+these+is+to+install+Package+Control+first+and+then+use...&amp;tags=blog" type="text/html" />
	</item>
		<item>
		<title>Sublime Text 2 Snippet for PHP getter and setter generation</title>
		<link>http://akrabat.com/software/sublime-text-2-snippet-for-php-getter-and-setter-generation/</link>
		<comments>http://akrabat.com/software/sublime-text-2-snippet-for-php-getter-and-setter-generation/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 07:45:05 +0000</pubDate>
		<dc:creator>Rob...</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://akrabat.com/?p=1677</guid>
		<description><![CDATA[I've been playing with Sublime Text 2 recently and have quite enjoyed how quiet my ageing laptop is when the fans aren't running due to a Java-based IDE. As with a lot of editors, Sublime Text supports snippets which are essentially text expansions of a short phrase into more text. I needed to create a [...]]]></description>
			<content:encoded><![CDATA[<p>I've been playing with <a href="http://www.sublimetext.com/">Sublime Text 2</a> recently and have quite enjoyed how quiet my ageing laptop is when the fans aren't running due to a Java-based IDE.</p>
<p>As with a lot of editors, Sublime Text supports snippets which are essentially text expansions of a short phrase into more text. I needed to create a few getXxx() and setXxx() methods for some properties of a class and decided that the easiest way to do this would be with a snippet.</p>
<p>To create a snippet, go to Tools->New Snippet... and replace the code example provided with this:</p>
<pre class="phpcode"><span style="color: #0000BB">
</span><span style="color: #007700">&lt;</span><span style="color: #0000BB">snippet</span><span style="color: #007700">&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000BB">content</span><span style="color: #007700">&gt;&lt;![</span><span style="color: #0000BB">CDATA</span><span style="color: #007700">[public&nbsp;function&nbsp;</span><span style="color: #0000BB">get</span><span style="color: #007700">${</span><span style="color: #0000BB">1</span><span style="color: #007700">/(.*)/\</span><span style="color: #0000BB">u</span><span style="color: #007700">$</span><span style="color: #0000BB">1</span><span style="color: #007700">/}()
{
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;\</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;${</span><span style="color: #0000BB">1</span><span style="color: #007700">:</span><span style="color: #0000BB">$SELECTION</span><span style="color: #007700">};
}

public&nbsp;function&nbsp;</span><span style="color: #0000BB">set</span><span style="color: #007700">${</span><span style="color: #0000BB">1</span><span style="color: #007700">/(.*)/\</span><span style="color: #0000BB">u</span><span style="color: #007700">$</span><span style="color: #0000BB">1</span><span style="color: #007700">/}(\$$</span><span style="color: #0000BB">1</span><span style="color: #007700">)
{
&nbsp;&nbsp;&nbsp;&nbsp;\</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;$</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">=&nbsp;\$$</span><span style="color: #0000BB">1</span><span style="color: #007700">;
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;\</span><span style="color: #0000BB">$this</span><span style="color: #007700">;
}
]]&gt;&lt;/</span><span style="color: #0000BB">content</span><span style="color: #007700">&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;</span><span style="color: #0000BB">Optional</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">Tab&nbsp;trigger&nbsp;to&nbsp;activate&nbsp;the&nbsp;snippet&nbsp;</span><span style="color: #007700">--&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000BB">tabTrigger</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">getset</span><span style="color: #007700">&lt;/</span><span style="color: #0000BB">tabTrigger</span><span style="color: #007700">&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;</span><span style="color: #0000BB">Optional</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">Scope&nbsp;the&nbsp;tab&nbsp;trigger&nbsp;will&nbsp;be&nbsp;active&nbsp;in&nbsp;</span><span style="color: #007700">--&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000BB">scope</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">source</span><span style="color: #007700">.</span><span style="color: #0000BB">php</span><span style="color: #007700">&lt;/</span><span style="color: #0000BB">scope</span><span style="color: #007700">&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;</span><span style="color: #0000BB">Optional</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">Description&nbsp;to&nbsp;show&nbsp;in&nbsp;the&nbsp;menu&nbsp;</span><span style="color: #007700">--&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000BB">description</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">Create&nbsp;getter&nbsp;</span><span style="color: #007700">and&nbsp;</span><span style="color: #0000BB">setter&nbsp;methods</span><span style="color: #007700">&lt;/</span><span style="color: #0000BB">description</span><span style="color: #007700">&gt;
&lt;/</span><span style="color: #0000BB">snippet</span><span style="color: #007700">&gt;
</span>
</span></code></pre>
<p>Save the file as <tt>getset.sublime-snippet</tt> and you're done.</p>
<p>To use, simply type getset followed by tab (in the latest dev builds, at least) and it will automatically expand. Alternatively, select some text and use shift+cmd+p -> getset to automatically replace the selected text with the get and set methods completed for the text that was selected.</p>
 <p><a href="http://akrabat.com/?flattrss_redirect&amp;id=1677&amp;md5=64b3ac51b8352fb766a950dc6b2f10df" title="Flattr" target="_blank"><img src="http://akrabat.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://akrabat.com/software/sublime-text-2-snippet-for-php-getter-and-setter-generation/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=akrabat&amp;popout=1&amp;url=http%3A%2F%2Fakrabat.com%2Fsoftware%2Fsublime-text-2-snippet-for-php-getter-and-setter-generation%2F&amp;language=en_GB&amp;category=text&amp;title=Sublime+Text+2+Snippet+for+PHP+getter+and+setter+generation&amp;description=I%27ve+been+playing+with+Sublime+Text+2+recently+and+have+quite+enjoyed+how+quiet+my+ageing+laptop+is+when+the+fans+aren%27t+running+due+to+a+Java-based+IDE.+As+with...&amp;tags=blog" type="text/html" />
	</item>
		<item>
		<title>Using PDT with Zend Framework Projects</title>
		<link>http://akrabat.com/software/using-pdt-with-zend-framework-projects/</link>
		<comments>http://akrabat.com/software/using-pdt-with-zend-framework-projects/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 06:36:29 +0000</pubDate>
		<dc:creator>Rob...</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://akrabat.com/?p=983</guid>
		<description><![CDATA[I original wrote this as a comment on Victor Nicollet's blog, but I thought I should document it here too so that I can refer other people to the information. These are some tips and tricks when using PDT with Zend Framework that make my life easier: Autocompletion for dynamic properties Zend_Db_Table_Row_Abstract uses __get() and [...]]]></description>
			<content:encoded><![CDATA[<p>I original wrote this as a <a href="http://www.nicollet.net/2010/03/why-i-gave-up-on-the-zend-framework/#comment-21302">comment</a> on Victor Nicollet's blog, but I thought I should document it here too so that I can refer other people to the information.</p>
<p>These are some tips and tricks when using PDT with Zend Framework that make my life easier:</p>
<h4>Autocompletion for dynamic properties</h4>
<p><tt>Zend_Db_Table_Row_Abstract</tt> uses <tt>__get()</tt> and <tt>__set()</tt> magic in order to map to the underlying database table row in question. This means that you can use property autocompletion on an instance of it. You can however tell your your table class which class to use for the row objects:</p>
<pre class="phpcode"><span style="color: #0000BB">class&nbsp;Application_Model_Users&nbsp;</span><span style="color: #007700">extends&nbsp;</span><span style="color: #0000BB">Zend_Db_Table_Abstract
</span><span style="color: #007700">{
&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;</span><span style="color: #0000BB">$_name&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'users'</span><span style="color: #007700">;&nbsp;</span><span style="color: #FF8000">//&nbsp;database&nbsp;table&nbsp;name
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">protected&nbsp;</span><span style="color: #0000BB">$_rowClass&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'Application_Model_User'</span><span style="color: #007700">;&nbsp;</span><span style="color: #FF8000">//&nbsp;row&nbsp;class&nbsp;to&nbsp;use
</span><span style="color: #007700">}
</span>
</span></code></pre>
<p>With your row class, you can take advantage of the <tt>@property</tt> docblock element to document the fields in the class:</p>
<pre class="phpcode"><span style="color: #0000BB"></span><span style="color: #FF8000">/**
&nbsp;*&nbsp;@property&nbsp;string&nbsp;$user_id
&nbsp;*&nbsp;@property&nbsp;string&nbsp;$username
&nbsp;*&nbsp;@property&nbsp;string&nbsp;$password
&nbsp;*/
</span><span style="color: #007700">class&nbsp;</span><span style="color: #0000BB">Application_Model_User&nbsp;</span><span style="color: #007700">extends&nbsp;</span><span style="color: #0000BB">Zend_Db_Table_Row_Abstact
</span><span style="color: #007700">{
}</span>
</span></code></pre>
<p>Autocomplete on instances of <tt>Application_Model_User</tt> will now work.</p>
<p><tt>Zend_View</tt> scripts are more complicated as they use <tt>$this</tt> to access magic properties. You can do however use the <tt>@var</tt> trick at the top of the .phtml file:</p>
<pre class="phpcode"><span style="color: #0000BB">$user&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">user</span><span style="color: #007700">;&nbsp;</span><span style="color: #FF8000">/*&nbsp;@var&nbsp;$user&nbsp;Application_Model_User&nbsp;*/
</span><span style="color: #0000BB">$page&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">page</span><span style="color: #007700">;&nbsp;</span><span style="color: #FF8000">/*&nbsp;@var&nbsp;$user&nbsp;Application_Model_Page&nbsp;*/
</span><span style="color: #0000BB">etc</span><span style="color: #007700">...</span>
</span></code></pre>
<p>You can now autocomplete on <tt>$user</tt> and <tt>$page</tt>. This also has the side-effect of documenting  which view properties are used in this view script.</p>
<h4>Opening an arbitrary method</h4>
<p>View helpers are also magic methods on Zend_View's <tt>$this</tt> within a script file. This means that you can't cmd+click( or press F3) on the view helper's method name to jump directly to the code for that method. You can however take advantage of PDT's <em>Navigation->Open Method</em> feature. Simply select the method name and then press <strong>shift+cmd+m</strong>. The "Open Method" dialog appears and usually the view helper is selected as the first item. Just press <strong>return</strong> to go directly to the code for that view helper.</p>
<h4>Opening an arbitrary file</h4>
<p>For opening up an arbitrary file that's in my project, I find that PDT's <em>Navigation->Open Resource</em> (<strong>shift+cmd+r</strong>) is handy. For TextMate users, this is similar to the cmd+t feature.</p>
<h4>Opening an arbitrary class</h4>
<p>Using <em>Navigation->Open Type</em> (<strong>shift+cmd+t</strong>), you can also jump to classes easily. e.g. I regularly hit <strong>shift+cmd+t</strong> followed by "<tt>*Model_</tt>" and I get a list of all my models and can jump to the one I want using the down arrow key and then return.</p>
<h4>Finding the current open file in the project tree</h4>
<p>Just press <strong>cmd+option+w</strong>. You have to be careful here as it's very similar keyboard shortcut to close and close all! However if you have an entity file open and you name your files like I do, then the mapper is next to it in the project list, so it's only a couple of keystrokes to open it up.</p>
<h4>Conclusion</h4>
<p>These tips obviously work with all frameworks and any PHP coding :) Netbeans also has similar features, so I would guess all IDEs do. If you are wedded to vim or such like, then <a href="http://ctags.sourceforge.net/">ctags</a> is helpful for jumping around your code. </p>
<p>If you have a favourite tip that I haven't mentioned, let me know in the comments!</p>
 <p><a href="http://akrabat.com/?flattrss_redirect&amp;id=983&amp;md5=1cc27c448480665c622818f265e2f600" title="Flattr" target="_blank"><img src="http://akrabat.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://akrabat.com/software/using-pdt-with-zend-framework-projects/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=akrabat&amp;popout=1&amp;url=http%3A%2F%2Fakrabat.com%2Fsoftware%2Fusing-pdt-with-zend-framework-projects%2F&amp;language=en_GB&amp;category=text&amp;title=Using+PDT+with+Zend+Framework+Projects&amp;description=I+original+wrote+this+as+a+comment+on+Victor+Nicollet%27s+blog%2C+but+I+thought+I+should+document+it+here+too+so+that+I+can+refer+other+people+to+the+information....&amp;tags=blog" type="text/html" />
	</item>
		<item>
		<title>The watch Linux command line tool</title>
		<link>http://akrabat.com/software/the-watch-linux-command-line-tool/</link>
		<comments>http://akrabat.com/software/the-watch-linux-command-line-tool/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 07:42:34 +0000</pubDate>
		<dc:creator>Rob...</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://akrabat.com/?p=706</guid>
		<description><![CDATA[I'm sure everyone else already knows about watch, but it's new to me. This little utility executes a program repeatedly at a set interval and displays its output. I've been using it with mysqladmin's processlist command like this: watch&#160;-n&#160;1&#160;/usr/bin/mysqladmin&#160;-uroot&#160;-pMYPASSWORD&#160;&#160;processlist Note that this does put your password on display at the top of the command window [...]]]></description>
			<content:encoded><![CDATA[<p>I'm sure everyone else already knows about <tt>watch</tt>, but it's new to me. This little utility executes a program repeatedly at a set interval and displays its output.</p>
<p>I've been using it with <tt>mysqladmin</tt>'s <tt>processlist</tt> command like this:</p>
<pre class="phpcode"><span style="color: #0000BB">
watch&nbsp;</span><span style="color: #007700">-</span><span style="color: #0000BB">n&nbsp;1&nbsp;</span><span style="color: #007700">/</span><span style="color: #0000BB">usr</span><span style="color: #007700">/</span><span style="color: #0000BB">bin</span><span style="color: #007700">/</span><span style="color: #0000BB">mysqladmin&nbsp;</span><span style="color: #007700">-</span><span style="color: #0000BB">uroot&nbsp;</span><span style="color: #007700">-</span><span style="color: #0000BB">pMYPASSWORD&nbsp;&nbsp;processlist
</span>
</span></code></pre>
<p>Note that this does put your password on display at the top of the command window whilst <tt>watch</tt> is running. If you don't want that, you could write a little bash script instead like this one from a friend of mine:</p>
<pre class="phpcode"><span style="color: #0000BB">
</span><span style="color: #FF8000">#!/bin/sh

</span><span style="color: #007700">while&nbsp;:
do
</span><span style="color: #0000BB">sleep&nbsp;1
clear
mysqladmin&nbsp;</span><span style="color: #007700">-</span><span style="color: #0000BB">uroot&nbsp;</span><span style="color: #007700">-</span><span style="color: #0000BB">pMYPASSWORD&nbsp;processlist&nbsp;
done
</span>
</span></code></pre>
<p>Either way, we get a display of the MySQL process list every second in a Terminal window and it becomes very easy to see which processes are causing trouble.</p>
 <p><a href="http://akrabat.com/?flattrss_redirect&amp;id=706&amp;md5=e9d73f1ee318318177577e53c558e878" title="Flattr" target="_blank"><img src="http://akrabat.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://akrabat.com/software/the-watch-linux-command-line-tool/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=akrabat&amp;popout=1&amp;url=http%3A%2F%2Fakrabat.com%2Fsoftware%2Fthe-watch-linux-command-line-tool%2F&amp;language=en_GB&amp;category=text&amp;title=The+watch+Linux+command+line+tool&amp;description=I%27m+sure+everyone+else+already+knows+about+watch%2C+but+it%27s+new+to+me.+This+little+utility+executes+a+program+repeatedly+at+a+set+interval+and+displays+its+output.+I%27ve+been...&amp;tags=blog" type="text/html" />
	</item>
		<item>
		<title>Flickr Uploadr</title>
		<link>http://akrabat.com/software/flickr-uploadr/</link>
		<comments>http://akrabat.com/software/flickr-uploadr/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 18:29:26 +0000</pubDate>
		<dc:creator>Rob...</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://akrabat.com/?p=243</guid>
		<description><![CDATA[The new Flickr Uploadr was written using Xul. Richard Crowley has put up a post at the Flickr blog with links to various articles that he's written about devloping with XUlrunner. Fascinating stuff and a must read for anyone who writes Xulrunner apps. Even better, the full source to Uploadr is available!]]></description>
			<content:encoded><![CDATA[<p>The new Flickr Uploadr was written using Xul. Richard Crowley has put up a <a href="http://code.flickr.com/blog/2008/04/16/flickr-uploadr-start-to-finish-now/">post at the Flickr blog</a> with links to various articles that he's written about devloping with XUlrunner.</p>
<p>Fascinating stuff and a must read for anyone who writes Xulrunner apps. Even better, the <a href="http://code.flickr.com/trac/browser/trunk/uploadr/">full source to Uploadr</a> is available!</p>
 <p><a href="http://akrabat.com/?flattrss_redirect&amp;id=243&amp;md5=72e04c98576dbce412f9f51cd4d2eb65" title="Flattr" target="_blank"><img src="http://akrabat.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://akrabat.com/software/flickr-uploadr/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=akrabat&amp;popout=1&amp;url=http%3A%2F%2Fakrabat.com%2Fsoftware%2Fflickr-uploadr%2F&amp;language=en_GB&amp;category=text&amp;title=Flickr+Uploadr&amp;description=The+new+Flickr+Uploadr+was+written+using+Xul.+Richard+Crowley+has+put+up+a+post+at+the+Flickr+blog+with+links+to+various+articles+that+he%27s+written+about+devloping+with...&amp;tags=blog" type="text/html" />
	</item>
		<item>
		<title>On Mail.app</title>
		<link>http://akrabat.com/software/on-mailapp/</link>
		<comments>http://akrabat.com/software/on-mailapp/#comments</comments>
		<pubDate>Sat, 22 Mar 2008 19:58:22 +0000</pubDate>
		<dc:creator>Rob...</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://akrabat.com/2008/03/22/on-mailapp/</guid>
		<description><![CDATA[As I mentioned a while ago, I'm now using a MacBook Pro. All is going well, and I like Mail.app's search and data detectors very much. There are some niggles though that I miss from Thunderbird. My top 3 are: * GPG integration (Thunderbird's Enigmail) * Mail.app's insistence on attached PDFs and images inline * [...]]]></description>
			<content:encoded><![CDATA[<p>As I <a href="http://akrabat.com/2007/11/09/the-move-to-mac/">mentioned</a> a while ago, I'm now using a MacBook Pro. All is going well, and I like Mail.app's search and data detectors very much. There are some niggles though that I miss from Thunderbird. My top 3 are:</p>
<p>* GPG integration (Thunderbird's <a href="https://addons.mozilla.org/en-US/thunderbird/addon/71">Enigmail</a>)<br />
* Mail.app's insistence on attached PDFs and images inline<br />
* Filing mails to arbitrary folders using the keyboard (Thunderbird's <a href="https://addons.mozilla.org/en-US/thunderbird/addon/2487">nostalgy</a>)</p>
<p>It turns out that there are solutions to all three issues for OS X's Mail.app:</p>
<p>* <a href="http://www.sente.ch/software/GPGMail/">GPGMail</a> from Sente. (Not for Leopard, yet though)<br />
* <a href="http://lokiware.info/Mail-Attachments-Iconizer">Mail Attachments Iconizer</a> from Lokiware<br />
* <a href="http://www.tow.com/msgfiler/">MsgFiler</a> from tow.</p>
<p>I had found GPGMail a while ago and I"m looking forward to the Leopard release. In the meantime, I am getting by using the Services->GPG menu. I only learnt about the other two by accident.</p>
<p>Lokiware is sponsoring the <a href="http://daringfireball.net/">Daring Firebal</a>l RSS feed this week and John Gruber's write up about this event, pointed at <a href="http://www.macworld.com/article/132112/2008/02/msgfilermai.html">Dan Frakes’s Macworld article</a> which not only persuaded me to download Mail Attachments Iconizer also mentioned MsgFiler too.</p>
<p>I've bought both! Clearly sponsoring DF's RSS feed is worthwhile :)</p>
<p>Now, I'm trying to decide if I should buy Yojimbo...</p>
 <p><a href="http://akrabat.com/?flattrss_redirect&amp;id=235&amp;md5=ff5f22866b70fd20c4b4370ef9280646" title="Flattr" target="_blank"><img src="http://akrabat.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://akrabat.com/software/on-mailapp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=akrabat&amp;popout=1&amp;url=http%3A%2F%2Fakrabat.com%2Fsoftware%2Fon-mailapp%2F&amp;language=en_GB&amp;category=text&amp;title=On+Mail.app&amp;description=As+I+mentioned+a+while+ago%2C+I%27m+now+using+a+MacBook+Pro.+All+is+going+well%2C+and+I+like+Mail.app%27s+search+and+data+detectors+very+much.+There+are+some+niggles...&amp;tags=blog" type="text/html" />
	</item>
		<item>
		<title>Site Stats</title>
		<link>http://akrabat.com/software/site-stats/</link>
		<comments>http://akrabat.com/software/site-stats/#comments</comments>
		<pubDate>Sun, 09 Mar 2008 08:39:03 +0000</pubDate>
		<dc:creator>Rob...</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://akrabat.com/2008/03/09/site-stats/</guid>
		<description><![CDATA[One thing I get asked a lot about at work is site stats. Usually, the client wants to know how many visitors they get on any other day along with other data such as where the visitors came from and which search terms they may have used. So far, I've used Google Analytics and PHPMyVisites [...]]]></description>
			<content:encoded><![CDATA[<p>One thing I get asked a lot about at work is site stats. Usually, the client wants to know how many visitors they get on any other day along with other data such as where the visitors came from and which search terms they may have used.</p>
<p>So far, I've used <a href="https://www.google.com/analytics">Google Analytics</a> and <a href="">PHPMyVisites</a> JS based logging along with <a href="http://www.analog.cx/">Analog</a> on the logs themselves. I've also experimented with <a href="http://haveamint.com/">Mint</a> on one site. </p>
<p>Generally, I've found that Analytics requires lots of drilling down to find anything, PHPMyVisites can be a little simplistic (though it is getting more features with each release) and Mint doesn't provide enough history.</p>
<p>Are there better solutions out that that are cost-effective for relatively small clients?</p>
 <p><a href="http://akrabat.com/?flattrss_redirect&amp;id=225&amp;md5=c4d3406e319f31aa69bb164294ad2bdd" title="Flattr" target="_blank"><img src="http://akrabat.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://akrabat.com/software/site-stats/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=akrabat&amp;popout=1&amp;url=http%3A%2F%2Fakrabat.com%2Fsoftware%2Fsite-stats%2F&amp;language=en_GB&amp;category=text&amp;title=Site+Stats&amp;description=One+thing+I+get+asked+a+lot+about+at+work+is+site+stats.+Usually%2C+the+client+wants+to+know+how+many+visitors+they+get+on+any+other+day+along+with...&amp;tags=blog" type="text/html" />
	</item>
		<item>
		<title>Notes to self, re: IE6</title>
		<link>http://akrabat.com/software/notes-to-self-re-ie6/</link>
		<comments>http://akrabat.com/software/notes-to-self-re-ie6/#comments</comments>
		<pubDate>Thu, 27 Dec 2007 22:19:43 +0000</pubDate>
		<dc:creator>Rob...</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://akrabat.com/2007/12/27/notes-to-self-re-ie6/</guid>
		<description><![CDATA[I've just spent way too long today debugging stuff in IE6 that I already knew once I found the problems! So, next time I have vertical spacing issue in IE6, I can come here and remind myself that in IE, &#60;form&#62; has margin on it by default... Also, the YUI panel doesn't seem to work [...]]]></description>
			<content:encoded><![CDATA[<p>I've just spent way too long today debugging stuff in IE6 that I already knew once I found the problems!</p>
<p>So, next time I have vertical spacing issue in IE6, I can come here and remind myself that in IE, &lt;form&gt; has margin on it by default...</p>
<p>Also, the YUI panel doesn't seem to work properly in IE6 if it's contained within an element that is positioned "relative" with CSS.</p>
<p>Now that Christmas is over, I'm going to be dedicating significant time to completing my outstanding copy for my development editor to make her happier with me! </p>
 <p><a href="http://akrabat.com/?flattrss_redirect&amp;id=209&amp;md5=842325adc026b44bfd0c4ccfbad7cb09" title="Flattr" target="_blank"><img src="http://akrabat.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://akrabat.com/software/notes-to-self-re-ie6/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=akrabat&amp;popout=1&amp;url=http%3A%2F%2Fakrabat.com%2Fsoftware%2Fnotes-to-self-re-ie6%2F&amp;language=en_GB&amp;category=text&amp;title=Notes+to+self%2C+re%3A+IE6&amp;description=I%27ve+just+spent+way+too+long+today+debugging+stuff+in+IE6+that+I+already+knew+once+I+found+the+problems%21+So%2C+next+time+I+have+vertical+spacing+issue+in+IE6%2C...&amp;tags=blog" type="text/html" />
	</item>
		<item>
		<title>TaskPaper</title>
		<link>http://akrabat.com/software/taskpaper/</link>
		<comments>http://akrabat.com/software/taskpaper/#comments</comments>
		<pubDate>Sun, 18 Nov 2007 16:40:49 +0000</pubDate>
		<dc:creator>Rob...</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://akrabat.com/2007/11/18/taskpaper/</guid>
		<description><![CDATA[One of the apps that I've found that I'm using daily is TaskPaper from Hog Bay Software. It's a brilliantly simple idea where all it does is format up a standard text file to make it easier to use as a todo list. You just start each item with a dash and it will automatically [...]]]></description>
			<content:encoded><![CDATA[<p>One of the apps that I've found that I'm using daily is <a href="http://hogbaysoftware.com/products/taskpaper">TaskPaper</a> from Hog Bay Software. It's a brilliantly simple idea where all it does is format up a standard text file to make it easier to use as a todo list.</p>
<p>You just start each item with a dash and it will automatically provide a checkbox next to the item. When you tick the checkbox, then a tag, @done, is added to the end of the line and it is crossed out. To aid organisation, any title that ends in a colon is automatically made bold and considered a project. Tags start with a @ symbol and can be used for filtering.  For instance, you can get it to display all tasks with the tag of @town to provide a list of items to be done when you next go into town. </p>
<p>All in all, TaskPaper is very simple and very easy to use. You start it up and you can get going straight away.</p>
<p>Obviously, there are a few niggles! Three that I've noticed are:</p>
<ul>
<li>Dragging and dropping of tasks to reorder isn't as smooth as it could be as TaskPaper tends to put the task you are moving into the same line as the task you are trying to insert above.</li>
<li>If I've completed all sub-tasks, it would be nice if it automatically marked the parent task as done too. In reverse, it would be handy if it would auto-mark-done all child tasks when I mark their parent task as done.</li>
<li>The context menu contains items that don't make sense, such as font and colours.</li>
</ul>
<p>Niggles, really is the word, isn't it?! I need to stress the application more so that I can find an important thing to complain about!</p>
<p>Hog Bay Software is run by Jesse, who is a really nice guy as he even answered my emailed bug report even though I was just a trial user. I've since bought the product as to my mind it's well worth the money.</p>
<p>I'm now looking for a "diary" type program that will present me with a blank page every day automatically. Bonus points if it allows tagging of pages to help me find stuff I've stored and I'd also like it to store its files in RTF files or similar so that I can take them to Pages with no hassle. So far, I've looked at Journler, Jotter and MacJournal so far, but all require me to start a new entry manually.</p>
 <p><a href="http://akrabat.com/?flattrss_redirect&amp;id=200&amp;md5=dd0f2c58d3d4404122090fcf168bf0f0" title="Flattr" target="_blank"><img src="http://akrabat.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://akrabat.com/software/taskpaper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=akrabat&amp;popout=1&amp;url=http%3A%2F%2Fakrabat.com%2Fsoftware%2Ftaskpaper%2F&amp;language=en_GB&amp;category=text&amp;title=TaskPaper&amp;description=One+of+the+apps+that+I%27ve+found+that+I%27m+using+daily+is+TaskPaper+from+Hog+Bay+Software.+It%27s+a+brilliantly+simple+idea+where+all+it+does+is+format+up+a...&amp;tags=blog" type="text/html" />
	</item>
	</channel>
</rss>

