<?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>David Simpson &#187; David</title>
	<atom:link href="http://davidsimpson.me/author/admin/feed/" rel="self" type="application/rss+xml" />
	<link>http://davidsimpson.me</link>
	<description>Developing the web, one page at a time.</description>
	<lastBuildDate>Thu, 02 Feb 2012 13:02:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>On converting wiki markup based user macros for use with Confluence 4</title>
		<link>http://davidsimpson.me/2012/01/24/on-converting-wiki-markup-based-user-macros-for-use-with-confluence-4/</link>
		<comments>http://davidsimpson.me/2012/01/24/on-converting-wiki-markup-based-user-macros-for-use-with-confluence-4/#comments</comments>
		<pubDate>Tue, 24 Jan 2012 21:58:21 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[atlassian]]></category>
		<category><![CDATA[confluence]]></category>

		<guid isPermaLink="false">http://davidsimpson.me/?p=1392</guid>
		<description><![CDATA[Thomas Emil Hansen recently wrote How do I write a user macro with &#8220;sections&#8221; and &#8220;panels&#8221; using the 4.0 HTML template? With Confluence 4, the storage format has changed from traditional wiki markup to an XML based storage format. This means that all those old wiki-markup based user macros are now overdue some TLC. Luckily, [...]]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton1392" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fdavidsimpson.me%2F2012%2F01%2F24%2Fon-converting-wiki-markup-based-user-macros-for-use-with-confluence-4%2F&amp;via=dvdsmpsn&amp;text=On%20converting%20wiki%20markup%20based%20user%20macros%20for%20use%20with%20Confluence%204&amp;related=&amp;lang=en&amp;count=horizontal&amp;counturl=http%3A%2F%2Fdavidsimpson.me%2F2012%2F01%2F24%2Fon-converting-wiki-markup-based-user-macros-for-use-with-confluence-4%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://davidsimpson.me/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;"></a></div><p><a href="https://answers.atlassian.com/users/4750/thomas-emil-hansen/">Thomas Emil Hansen</a> recently wrote <a href="https://answers.atlassian.com/questions/27632/how-do-i-write-a-user-macro-with-sections-and-panels-using-the-4-0-html-template">How do I write a user macro with &#8220;sections&#8221; and &#8220;panels&#8221; using the 4.0 HTML template?</a></p>
<p>With Confluence 4, the storage format has changed from traditional wiki markup to an XML based storage format.  This means that all those old wiki-markup based user macros are now overdue some TLC.  Luckily, there&#8217;s always the &#8220;Insert Wiki Markup&#8221; dropdown in the Confluence editor to fall back on.</p>
<p>To convert your macro&#8230;</p>
<ol>
<li>Create a new page and use the &#8220;<b>Insert Wiki Markup</b>&#8221; function to add your wiki markup:
<pre class="brush: plain; title: ;">
{section}
  {column}
    $body
  {column}
  {column:width=300px}
    {panel}
      *Contents:*
      {toc:maxLevel=3}
    {panel}
  {column}
{section}
</pre>
</li>
<li>Save the page</li>
<li>From the <b>Tools</b> menu, select <b>View Storage Format</b>. This will give you:
<pre class="brush: xml; title: ;">
&lt;ac:macro ac:name=&quot;section&quot;&gt;
    &lt;ac:rich-text-body&gt;
        &lt;ac:macro ac:name=&quot;column&quot;&gt;
            &lt;ac:rich-text-body&gt;
                &lt;p&gt;$body&lt;/p&gt;
            &lt;/ac:rich-text-body&gt;
        &lt;/ac:macro&gt;
        &lt;ac:macro ac:name=&quot;column&quot;&gt;
            &lt;ac:parameter ac:name=&quot;width&quot;&gt;300px&lt;/ac:parameter&gt;
            &lt;ac:rich-text-body&gt;
                &lt;ac:macro ac:name=&quot;panel&quot;&gt;
                    &lt;ac:rich-text-body&gt;
                        &lt;p&gt;&lt;strong&gt;Contents:&lt;/strong&gt;&lt;/p&gt;
                        &lt;ac:macro ac:name=&quot;toc&quot;&gt;
                            &lt;ac:parameter ac:name=&quot;maxLevel&quot;&gt;3&lt;/ac:parameter&gt;
                        &lt;/ac:macro&gt;
                    &lt;/ac:rich-text-body&gt;
                &lt;/ac:macro&gt;
            &lt;/ac:rich-text-body&gt;
        &lt;/ac:macro&gt;
    &lt;/ac:rich-text-body&gt;
&lt;/ac:macro&gt;
</pre>
</li>
<li>Paste this into your user macro rather than the old-fangled wiki markup.</li>
<li>Repeat this procedure for all user macros you wish to convert.</li>
</ol>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://davidsimpson.me/2012/01/24/on-converting-wiki-markup-based-user-macros-for-use-with-confluence-4/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to reverse the order of comments on Confluence pages</title>
		<link>http://davidsimpson.me/2012/01/24/how-to-reverse-the-order-of-comments-on-confluence-pages/</link>
		<comments>http://davidsimpson.me/2012/01/24/how-to-reverse-the-order-of-comments-on-confluence-pages/#comments</comments>
		<pubDate>Tue, 24 Jan 2012 14:15:56 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[atlassian]]></category>
		<category><![CDATA[confluence]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://davidsimpson.me/?p=1382</guid>
		<description><![CDATA[From a recent comment on Atlassian Answers, Norman Hills asked &#8220;Is it possible to reverse the order in which comments appear?&#8221; This is straightforward if done client-side, so I&#8217;ve written it up here. If you just want to reverse the order for good, browse to Confluence Admin &#124; Look &#038; Feel &#124; Custom HTML Add [...]]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton1382" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fdavidsimpson.me%2F2012%2F01%2F24%2Fhow-to-reverse-the-order-of-comments-on-confluence-pages%2F&amp;via=dvdsmpsn&amp;text=How%20to%20reverse%20the%20order%20of%20comments%20on%20Confluence%20pages&amp;related=&amp;lang=en&amp;count=horizontal&amp;counturl=http%3A%2F%2Fdavidsimpson.me%2F2012%2F01%2F24%2Fhow-to-reverse-the-order-of-comments-on-confluence-pages%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://davidsimpson.me/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;"></a></div><p>From a recent comment on <a href="https://answers.atlassian.com/">Atlassian Answers</a>, Norman Hills asked &#8220;<a href="https://answers.atlassian.com/questions/28999/is-it-possible-to-reverse-the-order-in-which-comments-appear">Is it possible to reverse the order in which comments appear?</a>&#8221;</p>
<p>This is straightforward if done client-side, so I&#8217;ve written it up here.<br />
<span id="more-1382"></span><br />
If you just want to reverse the order for good, browse to <b>Confluence Admin | Look &#038; Feel | Custom HTML</b></p>
<p>Add this to <b>At the end of the HEAD</b>:</p>
<pre class="brush: jscript; title: ;">
&lt;script&gt;
  AJS.toInit(function(){
    $comments = AJS.$('#page-comments');
    $comments.children().each(function(i,li){$comments.prepend(li)});
  });
&lt;/script&gt;
</pre>
<p>Job done.</p>
<h2>For extra points</h2>
<p>If you want to be able to reverse the order, then it&#8217;s slightly more effort.</p>
<p>Browse to <b>Confluence Admin | Look &#038; Feel | Custom HTML</b></p>
<p>Add this to <b>At the end of the HEAD</b>:</p>
<pre class="brush: jscript; title: ;">
&lt;script&gt;
  function reverseCommentOrder(){
    $comments = AJS.$('#page-comments');
    $comments.children().each(function(i,li){$comments.prepend(li)});
  }

  AJS.toInit(function(){
    // reverse the comment order
    reverseCommentOrder();

    // add a link to reverse the order
    AJS.$('#comments-section-title').append('&lt;a id=&quot;page-comments-reverse&quot; href=&quot;#&quot;&gt;(Reverse Order)&lt;/a&gt;');
    AJS.$('#page-comments-reverse').css({ 'color':'#999','font-size':'0.65em'})
                                   .click(function(e){
      reverseCommentOrder();
      e.preventDefault();
    });
  });
&lt;/script&gt;
</pre>
<p>That&#8217;s all. Have fun.</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://davidsimpson.me/2012/01/24/how-to-reverse-the-order-of-comments-on-confluence-pages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wiki web fonts</title>
		<link>http://davidsimpson.me/2011/12/09/wiki-web-fonts/</link>
		<comments>http://davidsimpson.me/2011/12/09/wiki-web-fonts/#comments</comments>
		<pubDate>Fri, 09 Dec 2011 10:09:17 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[atlassian]]></category>
		<category><![CDATA[confluence]]></category>
		<category><![CDATA[fonts]]></category>
		<category><![CDATA[wiki]]></category>

		<guid isPermaLink="false">http://davidsimpson.me/?p=1346</guid>
		<description><![CDATA[Want to use some &#8220;hot&#8221; new web fonts to pimp your Confluence wiki? It&#8217;s really straightforward. This post describes a method by which you can change all the headings to use web fonts hosted by Google. Site-wide web fonts Using Rokkitt font Browse to Confluence Administration &#124; Look and Feel &#124; Custom HTML In At [...]]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton1346" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fdavidsimpson.me%2F2011%2F12%2F09%2Fwiki-web-fonts%2F&amp;via=dvdsmpsn&amp;text=Wiki%20web%20fonts&amp;related=&amp;lang=en&amp;count=horizontal&amp;counturl=http%3A%2F%2Fdavidsimpson.me%2F2011%2F12%2F09%2Fwiki-web-fonts%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://davidsimpson.me/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;"></a></div><p>Want to use some &#8220;hot&#8221; new web fonts to pimp your Confluence wiki? </p>
<p>It&#8217;s <em>really</em> straightforward.  This post describes a method by which you can change all the headings to use web fonts <a href="http://www.google.com/webfonts">hosted by Google</a>.<br />
<span id="more-1346"></span></p>
<h2>Site-wide web fonts</h2>
<h3>Using <a href="http://www.google.com/webfonts/specimen/Rokkitt">Rokkitt font</a></h3>
<p>Browse to <b>Confluence Administration | Look and Feel | Custom HTML</b></p>
<p>In <b>At end of the HEAD</b> paste:</p>
<pre class="brush: xml; title: ;">
&lt;!-- Fonts for headings --&gt;
&lt;link href='http://fonts.googleapis.com/css?family=Rokkitt:400,700'
      rel='stylesheet' type='text/css'&gt;
&lt;style&gt;
#com-atlassian-confluence h1,
#com-atlassian-confluence h2,
#com-atlassian-confluence h3,
#com-atlassian-confluence h4,
#com-atlassian-confluence h5,
#com-atlassian-confluence h6 {
	font-family: 'Rokkitt', serif;
	font-weight : bold;
}
&lt;/style&gt;
</pre>
<p>Please note that adding inline styles is <a href="http://line25.com/articles/10-html-tag-crimes-you-really-shouldnt-commit">not big or clever</a>, but it is quick and easy for the purpose of this blogpost.</p>
<p>This results in a layout similar to the screenshot below:</p>
<p><a href="http://davidsimpson.me/wp-content/uploads/2011/12/wiki-web-fonts.png" rel="lightbox[1346]" title="Rokkitt headings in Confluence"><img src="http://davidsimpson.me/wp-content/uploads/2011/12/wiki-web-fonts.png" alt="" title="Rokkitt headings in Confluence" width="100%"  /></a></p>
<h3>Using <a href="http://www.google.com/webfonts/specimen/Leckerli+One">Leckerli One font</a></h3>
<p>Was that too corporate? Then lets have some handwriting&#8230;</p>
<p>Browse to <b>Confluence Administration | Look and Feel | Custom HTML</b></p>
<p>In <b>At end of the HEAD</b> paste:</p>
<pre class="brush: xml; title: ;">
&lt;!-- Fonts for headings --&gt;
&lt;link href='http://fonts.googleapis.com/css?family=Leckerli+One:400'
      rel='stylesheet' type='text/css'&gt;
&lt;style&gt;
#com-atlassian-confluence h1,
#com-atlassian-confluence h2,
#com-atlassian-confluence h3,
#com-atlassian-confluence h4,
#com-atlassian-confluence h5,
#com-atlassian-confluence h6 {
	font-family: 'Leckerli One', cursive;
}
&lt;/style&gt;
</pre>
<p>Now, you&#8217;ll get something like this:</p>
<p><a href="http://davidsimpson.me/wp-content/uploads/2011/12/wiki-web-fonts2.png" rel="lightbox[1346]" title="Leckerli One headings in Confluence"><img src="http://davidsimpson.me/wp-content/uploads/2011/12/wiki-web-fonts2.png" alt="" title="Leckerli One headings in Confluence" width="100%" /></a></p>
<p>I&#8217;m not sure that this is a good look, but never mind.</p>
<h2>Web fonts for a single space</h2>
<p>Want to just mess up the fonts in a single space?</p>
<p>Then, duplicate the content of  the Google hosted stylesheet &#8212; for example <a href="http://fonts.googleapis.com/css?family=Leckerli+One:400">http://fonts.googleapis.com/css?family=Leckerli+One:400</a> and add to the space stylesheet&#8230;</p>
<p>Browse to <b>Browse | Space Admin | Look and Feel | Stylesheet</b>.</p>
<p>Click on <b>Edit</b> and paste in:</p>
<pre class="brush: css; title: ;">
/* Duplicated from http://fonts.googleapis.com/css?family=Leckerli+One:400 */
@font-face {
  font-family: 'Leckerli One';
  font-style: normal;
  font-weight: normal;
  src: local('LeckerliOne'), url('http://themes.googleusercontent.com/static/fonts/leckerlione/v2/S2Y_iLrItTu8kIJTkS7DrKRDOzjiPcYnFooOUGCOsRk.woff') format('woff');
}

/* Targetting Confluence heading  */
#com-atlassian-confluence h1,
#com-atlassian-confluence h2,
#com-atlassian-confluence h3,
#com-atlassian-confluence h4,
#com-atlassian-confluence h5,
#com-atlassian-confluence h6 {
	font-family: 'Leckerli One', cursive;
}
</pre>
<p>This will only affect the space in which you add the CSS and will override the global styles.  </p>
<p><a href="http://davidsimpson.me/wp-content/uploads/2011/12/wiki-web-fonts3.png" rel="lightbox[1346]" title="Space only web font"><img src="http://davidsimpson.me/wp-content/uploads/2011/12/wiki-web-fonts3.png" alt="" title="Space only web font" width="100%" /></a></p>
<p>I&#8217;m not sure whether the <a href="http://themes.googleusercontent.com/static/fonts/leckerlione/v2/S2Y_iLrItTu8kIJTkS7DrKRDOzjiPcYnFooOUGCOsRk.woff">URL</a> for the font will remain constant in the long term though, so you <em>may</em> have to repeat this process.</p>
<h2>Be careful</h2>
<p>There are plenty of web font services and many, many fonts to choose from.  With <a href="http://www.youtube.com/watch?v=IKmQW7JTb6s">great power comes great responsibility</a>, so be careful.</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://davidsimpson.me/2011/12/09/wiki-web-fonts/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mobile First by Luke Wroblewski</title>
		<link>http://davidsimpson.me/2011/12/07/mobile-first-luke-roblewski/</link>
		<comments>http://davidsimpson.me/2011/12/07/mobile-first-luke-roblewski/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 00:53:33 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://davidsimpson.me/?p=1236</guid>
		<description><![CDATA[This is the second book by Luke Wroblewski that I&#8217;ve bought. His previous Web Form Design: Filling in the Blanks is a book that I&#8217;d still recommend to anyone who&#8217;s likely to write a &#60;form&#62; tag. However the speed of change in browsing habits has been extraordinary since that book was published in 2008. This [...]]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton1236" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fdavidsimpson.me%2F2011%2F12%2F07%2Fmobile-first-luke-roblewski%2F&amp;via=dvdsmpsn&amp;text=Mobile%20First%20by%20Luke%20Wroblewski&amp;related=&amp;lang=en&amp;count=horizontal&amp;counturl=http%3A%2F%2Fdavidsimpson.me%2F2011%2F12%2F07%2Fmobile-first-luke-roblewski%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://davidsimpson.me/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;"></a></div><p><img src="http://davidsimpson.me/wp-content/uploads/2011/11/mobile-first-iphone.jpg" alt="" title="mobile-first-iphone" width="100%" class="alignnone size-full wp-image-1238" /></p>
<p>This is the second book by Luke Wroblewski that I&#8217;ve bought.  His previous <a href="http://rosenfeldmedia.com/books/webforms/">Web Form Design: Filling in the Blanks</a> is a book that I&#8217;d still recommend to anyone who&#8217;s likely to write a <b>&lt;form&gt;</b> tag.  However the speed of change in browsing habits has been extraordinary since that book was published in 2008. </p>
<p>This leads us nicely onto his current book &#8212; <a href="http://www.abookapart.com/products/mobile-first">Mobile First</a>.  Elaborating on <a href="http://www.lukew.com/ff/entry.asp?933">a very concise blogpost from November 2009</a>, it is such a simple idea that almost anyone in your organisation can easily grasp (with minimal persuasion).</p>
<blockquote><p>Embracing constraints (rather than fighting them) will ultimately get you to better designs</p></blockquote>
<p>The rise of mobile has lead to very different usage patterns and this book succinctly documents the current state of affairs.  For example, Luke describes mobile users&#8217; engagement with content on a mobile device as being &#8212; </p>
<blockquote><p>one eyeball, one thumb</p></blockquote>
<p>This forces you to remove distractions and simplify the interface to the task at hand &#8212; even in distraction free environments, this is helpful.</p>
<p>He quotes usage data from <a href="http://readitlaterlist.com/">Read it later</a> showing when people are reading saved articles. </p>
<ul>
<li>Desktop &#8211; builds til noon &#038; falls off after work</li>
<li>Mobile &#8211; 4 peaks &#8211; breakfast, commute/start of work, end of work/commute, couch time/prime time/bed time </li>
<li>iPad &#8211; small peak at breakfast, but mostly evening-bed time.</li>
</ul>
<p>He firmly agrees with Rachel Hinman from Nokia&#8217;s analogy &#8211;</p>
<blockquote><p>the desktop is “diving” while mobile is &#8220;snorkeling&#8221;</p></blockquote>
<p>My experience would also extent this to rock climbing vs. bouldering too.</p>
<p>There are sections on navigation; touch-target sizing; the familiar topic of form design (use smart defaults); input labeling (top aligned labels are good, labels within text fields sometimes not so); input masks; and responsive design.</p>
<p>I was particularly taken by the chapter on &#8220;Organization&#8221; (partially for the inclusion of a favourite <a href="http://xkcd.com/773/" title="Things on the front page of a university website">xkcd comic</a>).    This aligns well with the positive changes I&#8217;ve noticed in successive versions of mobile applications (e.g. from LinkedIn or Facebook).  The first generation of these applications started with a list or grid of navigation options.  Subsequent versions of these companies apps emphasize content to be of primary importance so navigational options have become much smarter. </p>
<p>Reading this slender volume suggests that Luke really practices what he preaches. He has embraced the <a href="http://www.abookapart.com/">A Book Apart</a> constraints and fitted so much that is currently so very relevant into such a small package.  </p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://davidsimpson.me/2011/12/07/mobile-first-luke-roblewski/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OS X: Moving from Finder to Terminal and back</title>
		<link>http://davidsimpson.me/2011/12/03/os-x-moving-from-finder-to-terminal-and-back/</link>
		<comments>http://davidsimpson.me/2011/12/03/os-x-moving-from-finder-to-terminal-and-back/#comments</comments>
		<pubDate>Sat, 03 Dec 2011 20:17:01 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Finder]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[Terminal]]></category>

		<guid isPermaLink="false">http://davidsimpson.me/?p=1305</guid>
		<description><![CDATA[Here&#8217;s a quick and simple timesaver&#8230; 1. Open the current Finder folder in Terminal Setup Download &#8220;> cd to &#8230;&#8220;, copy it to your Applications folder, and then from the applications folder drag it into the Finder toolbar. Usage To use, just click the &#8220;> &#8230;&#8221; button on the toolbar 2. Open the current Terminal [...]]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton1305" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fdavidsimpson.me%2F2011%2F12%2F03%2Fos-x-moving-from-finder-to-terminal-and-back%2F&amp;via=dvdsmpsn&amp;text=OS%20X%3A%20Moving%20from%20Finder%20to%20Terminal%20and%20back&amp;related=&amp;lang=en&amp;count=horizontal&amp;counturl=http%3A%2F%2Fdavidsimpson.me%2F2011%2F12%2F03%2Fos-x-moving-from-finder-to-terminal-and-back%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://davidsimpson.me/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;"></a></div><p>Here&#8217;s a quick and simple timesaver&#8230;</p>
<h2>1. Open the current Finder folder in Terminal</h2>
<h3>Setup</h3>
<p>Download  &#8220;<a href="http://code.google.com/p/cdto/wiki/InstallAndUsage">> cd to &#8230;</a>&#8220;, copy it to your Applications folder, and then from the applications folder drag it into the Finder toolbar.</p>
<h3>Usage</h3>
<p>To use, just click the &#8220;> &#8230;&#8221; button on the toolbar</p>
<h2>2. Open the current Terminal directory in a new Terminal tab</h2>
<h3>Setup</h3>
<p>First, we&#8217;ll need to add some AppleScript to <b>~/.profile</b></p>
<pre class="brush: bash; title: ;">
# Open a new tab on Terminal with the current  directory
# See: http://elsethenif.wordpress.com/2009/06/11/open-a-new-tab-on-terminal-with-the-same-path-on-mac-os-x/
function nt {
        osascript -e &quot;
                tell application \&quot;System Events\&quot; to tell process \&quot;Terminal\&quot; to keystroke \&quot;t\&quot; using command down
                tell application \&quot;Terminal\&quot; to do script \&quot;cd \\\&quot;$(PWD)\\\&quot;\&quot; in selected tab of the front window
        &quot; &gt; /dev/null 2&gt;&amp;1
}
</pre>
<h3>Usage</h3>
<p>In terminal, now type: </p>
<pre>nt</pre>
<h2>3. Open the current Terminal directory in Finder</h2>
<p>To get back to the Finder window, type&#8230;</p>
<pre>open .</pre>
<h2>And finally&#8230;</h2>
<p>To wrap it up, a demo video:</p>
<p><iframe width="100%" height="400" src="http://www.youtube.com/embed/I0d6vEKBHmA" frameborder="0" allowfullscreen></iframe></p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://davidsimpson.me/2011/12/03/os-x-moving-from-finder-to-terminal-and-back/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making the Atlassian SDK growl</title>
		<link>http://davidsimpson.me/2011/11/29/making-the-atlassian-sdk-growl/</link>
		<comments>http://davidsimpson.me/2011/11/29/making-the-atlassian-sdk-growl/#comments</comments>
		<pubDate>Tue, 29 Nov 2011 22:15:10 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Featured]]></category>

		<guid isPermaLink="false">http://davidsimpson.me/?p=1253</guid>
		<description><![CDATA[When writing plugins using the Atlassian SDK, sometimes the builds take a little while and you go off doing other things. Maybe you&#8217;ll get diverted and lose a few minutes. It would be nice to have some kind of feedback/notification to let you know when the build is a success, fails or just when Tomcat [...]]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton1253" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fdavidsimpson.me%2F2011%2F11%2F29%2Fmaking-the-atlassian-sdk-growl%2F&amp;via=dvdsmpsn&amp;text=Making%20the%20Atlassian%20SDK%20growl&amp;related=&amp;lang=en&amp;count=horizontal&amp;counturl=http%3A%2F%2Fdavidsimpson.me%2F2011%2F11%2F29%2Fmaking-the-atlassian-sdk-growl%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://davidsimpson.me/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;"></a></div><p>When writing plugins using the Atlassian SDK, <em>sometimes</em> the builds take a little while and you go off doing other things. <em>Maybe</em> you&#8217;ll get diverted and lose a few minutes.  </p>
<p>It would be nice to have some kind of feedback/notification to let you know when the build is a success, fails or just when Tomcat is finally up and running. <span id="more-1253"></span></p>
<p>On OS X, Growl is my first choice for notifications, so this post shows you how to hook together the Atlassian SDK (well, maven really) with Growl</p>
<p>You will need:</p>
<ul>
<li><a href="https://developer.atlassian.com/display/DOCS/Atlassian+Plugin+SDK+Documentation">Atlassian SDK</a> of course</li>
<li><a href="http://growl.info/">Growl</a> &#8212; a notification system</li>
<li><a href="http://growl.info/extras.php">growlnotify</a> &#8212; a command-line tool to post Growl notifications</li>
<li><a href="#icons">Some pretty icon images</a></li>
</ul>
<p>Install all of the above.</p>
<p>The Atlassian SDK acts as a wrapper for maven functionality. It uses a copy of maven 2.1.0 located at:</p>
<pre class="brush: bash; title: ;">/path/to/atlassian-plugin-sdk-3.x/apache-maven/bin/mvn</pre>
<p>This path appears to be hard coded into a lot of the <b>atlas-</b> prefixed commands, so we have to get a bit hacky and move the original mvn file elsewhere and swap in a new <b>mvn</b> wrapper command.</p>
<pre class="brush: bash; title: ;">
cd /path/to/atlassian-plugin-sdk-3.x/apache-maven/bin/
mv mvn mvn.DIST
</pre>
<p>The new <b>mvn</b> file should look something like this:</p>
<pre class="brush: bash; title: ;">
#!/bin/bash

# See: http://blank.jasonwhaley.com/2009/02/growl-maven-integration.html

mvn.DIST $* | awk '
{
print;
if($0 ~ &quot;.*BUILD ERROR.*&quot;)       system( &quot;echo \&quot;Build failed : (\&quot; | growlnotify \&quot;Maven\&quot; --name maven --image /Users/david/Pictures/mvn-growl/fail.png &gt; /dev/null 2&gt;&amp;1&quot;  )
if($0 ~ &quot;.*BUILD SUCCESSFUL.*&quot;)  system( &quot;echo \&quot;Build completed successfully : D\&quot; | growlnotify \&quot;Maven\&quot; --name maven --image /Users/david/Pictures/mvn-growl/success.png &gt; /dev/null 2&gt;&amp;1&quot; )
if($0 ~ &quot;.*CTRL-C.*&quot;)            system( &quot;echo \&quot;localhost is now available : D\&quot; | growlnotify \&quot;Maven\&quot; --name maven --image /Users/david/Pictures/mvn-growl/atlassian-charlie.png &gt; /dev/null 2&gt;&amp;1&quot; )
}
END {
}'
</pre>
<p>Note that we&#8217;ve got some hard coded image paths here.  Store them wherever suits best and update the mvn script.</p>
<p>Add execute permissions</p>
<pre class="brush: bash; title: ;">
chmod +x mvn
</pre>
<p>That&#8217;s about it really.</p>
<p>Next time you successfully build from maven, you should get this:</p>
<p><img src="http://davidsimpson.me/wp-content/uploads/2011/11/build-success.png" alt="" title="build-success" width="341" class="alignnone size-full wp-image-1263" /></p>
<p>A build failure should give this:</p>
<p><img src="http://davidsimpson.me/wp-content/uploads/2011/11/build-failed.png" alt="" title="build-failed" width="361" class="alignnone size-full wp-image-1264"   /></p>
<p>When you type <b>atlas-run</b> and Tomcat is ready, you should get this:</p>
<p><img src="http://davidsimpson.me/wp-content/uploads/2011/11/localhost-is-now-available.png" alt="" title="localhost-is-now-available" width="500"  class="alignnone size-full wp-image-1265" /></p>
<p>I know, this is not exactly a life changer, but it is a really handy way to get some feedback on build progress &#8212; particularly for when localhost is ready.  </p>
<p>If you have a more elegant solution, let me know.</p>
<p>&#8212;</p>
<p><b id="icons">Note:</b></p>
<p>Here are the icons used:</p>
<p><img src="http://davidsimpson.me/wp-content/uploads/2011/11/success.png" alt="" title="success" width="32" height="32"  /> <img src="http://davidsimpson.me/wp-content/uploads/2011/11/fail.png" alt="" title="fail" width="32" height="32" " /> <img src="http://davidsimpson.me/wp-content/uploads/2011/11/atlassian-charlie.png" alt="" title="atlassian-charlie" width="36" height="34"  /> </p>
<ul>
<li><a href="http://memoryboy.deviantart.com/gallery/?q=icons#/d17k26g">RubiksIcons</a> by  <a href="http://memoryboy.deviantart.com/">memoryboy</a> (I just converted them to PNG)</li>
<li>The Charlie figure was mangled from the <a href="http://www.atlassian.com/company/press">Atlassian website</a></li>
<li><a href="http://www.flickr.com/photos/lincolnblues/1250752805/in/photostream/">Growling polar bear</a> (while featured on the <a href="/">home page</a>) by <a href="http://www.flickr.com/photos/lincolnblues/">lincolnblues</a></li>
</ul>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://davidsimpson.me/2011/11/29/making-the-atlassian-sdk-growl/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Bicycle Animation</title>
		<link>http://davidsimpson.me/2011/11/25/bicycle-animation/</link>
		<comments>http://davidsimpson.me/2011/11/25/bicycle-animation/#comments</comments>
		<pubDate>Fri, 25 Nov 2011 17:09:30 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://davidsimpson.me/?p=1246</guid>
		<description><![CDATA[via: Collossal]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton1246" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fdavidsimpson.me%2F2011%2F11%2F25%2Fbicycle-animation%2F&amp;via=dvdsmpsn&amp;text=Bicycle%20Animation&amp;related=&amp;lang=en&amp;count=horizontal&amp;counturl=http%3A%2F%2Fdavidsimpson.me%2F2011%2F11%2F25%2Fbicycle-animation%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://davidsimpson.me/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;"></a></div><p><iframe width="100%" height="400" src="http://www.youtube.com/embed/r6XbhIRtUjQ" frameborder="0" allowfullscreen></iframe></p>
<p>via: <a href="http://www.thisiscolossal.com/2011/11/animation-on-a-bike/">Collossal</a></p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://davidsimpson.me/2011/11/25/bicycle-animation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A simple Webtrends event tracking tip</title>
		<link>http://davidsimpson.me/2011/11/04/a-simple-webtrends-event-tracking-tip/</link>
		<comments>http://davidsimpson.me/2011/11/04/a-simple-webtrends-event-tracking-tip/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 14:50:31 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[analytics]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webtrends]]></category>

		<guid isPermaLink="false">http://davidsimpson.me/?p=1220</guid>
		<description><![CDATA[In Webtrends, events that happens after the page loads can be tracked using dcsMultiTrack. This takes the following form: dcsMultiTrack( key1, value1, key2, value2, key3, value3, ... ); But what if you don&#8217;t know how many key/value pairs you&#8217;ll be sending into dcsMultiTrack? How do you call it then? Take advantage of the JavaScript apply [...]]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton1220" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fdavidsimpson.me%2F2011%2F11%2F04%2Fa-simple-webtrends-event-tracking-tip%2F&amp;via=dvdsmpsn&amp;text=A%20simple%20Webtrends%20event%20tracking%20tip&amp;related=&amp;lang=en&amp;count=horizontal&amp;counturl=http%3A%2F%2Fdavidsimpson.me%2F2011%2F11%2F04%2Fa-simple-webtrends-event-tracking-tip%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://davidsimpson.me/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;"></a></div><p>In Webtrends,  events that happens after the page loads can be tracked using <b><a href="https://tagbuilder.webtrends.com/Help/EventTracking/DcsMultiTrack.aspx">dcsMultiTrack</a></b>.</p>
<p>This takes the following form:</p>
<pre class="brush: plain; title: ;">dcsMultiTrack( key1, value1, key2, value2, key3, value3, ... );</pre>
<p>But what if you don&#8217;t know how many key/value pairs you&#8217;ll be sending into <b>dcsMultiTrack</b>? How do you call it then? </p>
<p>Take advantage of the JavaScript <a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/function/apply">apply</a> function.  Create an array of key/value pairs and then apply that array to the <b>dcsMultiTrack</b> function:</p>
<pre class="brush: plain; title: ;">
var webtrendsArgs = [
	'DCSext.w_event_type', 'Video Started',
	'DCSext.w_video_id', 'xxxx-yyyy-zzzz-1234',
	'DCSext.w_video_name', 'Kitten Video'
	];

dcsMultiTrack.apply(this, webtrendsArgs);
</pre>
<p>This is equivalent to:</p>
<pre class="brush: plain; title: ;">
dcsMultiTrack(
	'DCSext.w_event_type', 'Video Started',
	'DCSext.w_video_id', 'xxxx-yyyy-zzzz-1234',
	'DCSext.w_video_name', 'Kitten Video'
);
</pre>
<p>If needed, you can add the key/value pairs to <b>webtrendsArgs</b> array incrementally and when complete, apply this to <b>dcsMultiTrack</b> at the end.</p>
<p><cite>Source: <a href="http://stackoverflow.com/questions/6078103/webtrends-analytics-implementation-using-variables-in-an-async-tracking-call-p">StackOverflow</a></cite></p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://davidsimpson.me/2011/11/04/a-simple-webtrends-event-tracking-tip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to draw a penguin</title>
		<link>http://davidsimpson.me/2011/11/03/how-to-draw-a-penguin/</link>
		<comments>http://davidsimpson.me/2011/11/03/how-to-draw-a-penguin/#comments</comments>
		<pubDate>Thu, 03 Nov 2011 18:07:01 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[illustration]]></category>

		<guid isPermaLink="false">http://davidsimpson.me/?p=1208</guid>
		<description><![CDATA[I recently spotted this fantastic Guardian article by Oliver Jeffers on how to draw penguins. Oliver is an illustrator and the author of Lost and Found &#8212; one of my favourite childrens book &#8212; brilliantly adapted for TV. Here&#8217;s the trailer.]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton1208" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fdavidsimpson.me%2F2011%2F11%2F03%2Fhow-to-draw-a-penguin%2F&amp;via=dvdsmpsn&amp;text=How%20to%20draw%20a%20penguin&amp;related=&amp;lang=en&amp;count=horizontal&amp;counturl=http%3A%2F%2Fdavidsimpson.me%2F2011%2F11%2F03%2Fhow-to-draw-a-penguin%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://davidsimpson.me/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;"></a></div><p><a href="http://www.guardian.co.uk/childrens-books-site/gallery/2011/jun/27/how-to-draw-penguins-oliver-jeffers"><img src="http://davidsimpson.me/wp-content/uploads/2011/11/Oliver-Jeffers-How-to-dra-001.jpg" alt="How to draw a penguin - Oliver Jeffers" title="How to draw a penguin - Oliver Jeffers" width="640" class="alignnone size-full wp-image-1209" /></a></p>
<p>I recently spotted <a href="http://www.guardian.co.uk/childrens-books-site/gallery/2011/jun/27/how-to-draw-penguins-oliver-jeffers">this fantastic Guardian article</a> by <a href="http://www.oliverjeffers.com/">Oliver Jeffers</a> on how to draw penguins.   </p>
<p>Oliver is an illustrator and the author of <a href="http://www.oliverjeffers.com/shop/book01.html">Lost and Found</a>   &mdash; one of my favourite childrens book &mdash; brilliantly adapted for TV.  Here&#8217;s <a href="http://www.youtube.com/watch?v=BaOqMuOTsOc">the trailer</a>. </p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://davidsimpson.me/2011/11/03/how-to-draw-a-penguin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VNC Screen Sharing on OS X gives a white screen</title>
		<link>http://davidsimpson.me/2011/10/27/vnc-screen-sharing-on-os-x-gives-a-white-screen/</link>
		<comments>http://davidsimpson.me/2011/10/27/vnc-screen-sharing-on-os-x-gives-a-white-screen/#comments</comments>
		<pubDate>Thu, 27 Oct 2011 13:02:44 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://davidsimpson.me/?p=1200</guid>
		<description><![CDATA[I&#8217;ve been accessing a Red Hat box via Mac Screen Sharing. All was good until it started just displaying a white screen. I assumed it was the fault of the Red Hat server, but couldn&#8217;t fix it at that end. It turns out that there&#8217;s some kind of bug in 64-bit Screen Sharing on Snow [...]]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton1200" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fdavidsimpson.me%2F2011%2F10%2F27%2Fvnc-screen-sharing-on-os-x-gives-a-white-screen%2F&amp;via=dvdsmpsn&amp;text=VNC%20Screen%20Sharing%20on%20OS%20X%20gives%20a%20white%20screen&amp;related=&amp;lang=en&amp;count=horizontal&amp;counturl=http%3A%2F%2Fdavidsimpson.me%2F2011%2F10%2F27%2Fvnc-screen-sharing-on-os-x-gives-a-white-screen%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://davidsimpson.me/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;"></a></div><p> I&#8217;ve been accessing a Red Hat box via Mac Screen Sharing. All was good until it started just displaying a white screen.  I assumed it was the fault of the Red Hat server, but couldn&#8217;t fix it at that end. </p>
<p>It turns out that there&#8217;s some kind of bug in 64-bit Screen Sharing on Snow Leopard (and maybe Lion too?), so here&#8217;s the work around:</p>
<ol>
<li>In Finder, go to /System/Library/CoreServices/Screen Sharing.app</li>
<li>Right click &#038; &#8220;Get Info&#8221; on the application</li>
<li>Check the box &#8220;Open in 32-bit mode&#8221;.</li>
</ol>
<p><a href="http://davidsimpson.me/wp-content/uploads/2011/10/screen-sharing-white-screen-fix.png" rel="lightbox[1200]" title="screen-sharing-white-screen-fix"><img src="http://davidsimpson.me/wp-content/uploads/2011/10/screen-sharing-white-screen-fix-300x235.png" alt="" title="screen-sharing-white-screen-fix" width="300" height="235" class="alignnone size-medium wp-image-1203" /></a></p>
<p>By the way, I&#8217;m currently running Mac OS X 10.6.8</p>
<p><a href="https://discussions.apple.com/thread/2414203">More info</a></p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://davidsimpson.me/2011/10/27/vnc-screen-sharing-on-os-x-gives-a-white-screen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

