<?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>Whomwah.com &#187; OSX</title>
	<atom:link href="http://whomwah.com/tag/osx/feed/" rel="self" type="application/rss+xml" />
	<link>http://whomwah.com</link>
	<description>The website of Duncan Robertson, currently computing for the BBC</description>
	<lastBuildDate>Fri, 06 Jan 2012 12:55:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Logging/Debug setup in Xcode 4</title>
		<link>http://whomwah.com/2011/05/31/loggingdebug-setup-in-xcode-4/</link>
		<comments>http://whomwah.com/2011/05/31/loggingdebug-setup-in-xcode-4/#comments</comments>
		<pubDate>Tue, 31 May 2011 09:10:22 +0000</pubDate>
		<dc:creator>Duncan</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://whomwah.com/?p=2321</guid>
		<description><![CDATA[Here&#8217;s a little snippet of how I manage logging in my applications with Xcode 4. I&#8217;m sure it works just fine in 3 too, but this is more of a reminder for me as it&#8217;s something I always forget how to do when starting a new project. Firstly I update the *_Prefix.pch file that lives [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a little snippet of how I manage logging in my applications with <a href="http://developer.apple.com/xcode/">Xcode 4</a>. I&#8217;m sure it works just fine in 3 too, but this is more of a reminder for me as it&#8217;s something I always forget how to do when starting a new project.</p>
<p>Firstly I update the <em>*_Prefix.pch</em> file that lives in the <strong>Other Resources</strong> directory so it also contains the snippet below. I use <a href="http://www.cimgf.com/2010/05/02/my-current-prefix-pch-file/">the Prefix code posted by Marcus Zarra</a> which seems to work just fine for me:</p>

<div class="wp_syntax"><div class="code"><pre class="objective-c" style="font-family:monospace;">#ifdef DEBUG
  #define DLog(...) NSLog(@&quot;%s %@&quot;, __PRETTY_FUNCTION__, [NSString stringWithFormat:__VA_ARGS__])
  #define ALog(...) [[NSAssertionHandler currentHandler] handleFailureInFunction:[NSString stringWithCString:__PRETTY_FUNCTION__ encoding:NSUTF8StringEncoding] file:[NSString stringWithCString:__FILE__ encoding:NSUTF8StringEncoding] lineNumber:__LINE__ description:__VA_ARGS__]
#else
  #define DLog(...) do { } while (0)
  #ifndef NS_BLOCK_ASSERTIONS
    #define NS_BLOCK_ASSERTIONS
  #endif
  #define ALog(...) NSLog(@&quot;%s %@&quot;, __PRETTY_FUNCTION__, [NSString stringWithFormat:__VA_ARGS__])
#endif
&nbsp;
#define ZAssert(condition, ...) do { if (!(condition)) { ALog(__VA_ARGS__); }} while(0)</pre></div></div>

<p>Next I update my project by adding the <strong>DEBUG=1</strong> flag to the preprocessor settings. Click on your application target, and select the <strong>Build Settings</strong> tab is selected along with <strong>All</strong> and <strong>Combined</strong>. I then do a search for &#8221;- preprocessing&#8221; which should leave you with the <strong>Preprocessor Macros</strong> remaining. Now just DEBUG-1 to the correct one, as the photo below shows.</p>
<p><img src="http://farm3.static.flickr.com/2615/5779963261_a357c49b64.jpg" alt="DEBUG flag" /></p>
<p>Hope that saves someone some time. Oh, and if anyone has any improvements I can make to this, I&#8217;d love to here them.</p>
]]></content:encoded>
			<wfw:commentRss>http://whomwah.com/2011/05/31/loggingdebug-setup-in-xcode-4/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Introducing TrainMode 1.0, now in the Mac App Store</title>
		<link>http://whomwah.com/2011/03/31/introducing-trainmode-1-0/</link>
		<comments>http://whomwah.com/2011/03/31/introducing-trainmode-1-0/#comments</comments>
		<pubDate>Thu, 31 Mar 2011 08:47:03 +0000</pubDate>
		<dc:creator>Duncan</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[trainmode]]></category>

		<guid isPermaLink="false">http://whomwah.com/?p=2232</guid>
		<description><![CDATA[After the relative success in the iPhone App Store of Hydrate and Keycell, I fancied getting something into the Mac App Store too. I had tried to submit RadioAunty, but had it rejected because it contained Flash! (yeah thanks). I needed other ideas. Whist getting onto the train to work one morning, getting out my [...]]]></description>
			<content:encoded><![CDATA[<p>After the relative success in the iPhone App Store of <a href="http://hydrate.whomwah.com/">Hydrate</a> and <a href="http://keycell.whomwah.com/">Keycell</a>, I fancied getting something into the Mac App Store too. I had tried to submit <a href="http://whomwah.github.com/radioaunty/">RadioAunty</a>, but had it rejected because it contained Flash! (yeah thanks). I needed other ideas.</p>
<p>Whist getting onto the train to work one morning, getting out my <a href="http://www.apple.com/uk/macbookair/">MacBook</a>, and going through the same procedure of, turning off the Wifi, muting the volume, and turning down the screen brightness, it occurred to me that I could streamline this into a simple application that lives in your status bar. One click to turn everything off, one click to turn it back on again. TrainMode was born.</p>
<p><a href="http://www.flickr.com/photos/duncanponting/5537776785/" title="TrainMode #2 by whomwah, on Flickr"><img src="http://farm6.static.flickr.com/5179/5537776785_ac24a652f0.jpg" width="500" height="313" alt="TrainMode #2"></a></p>
<p>The application actually allows you to adjust a few things. Like which things you would like switched off, and how quiet you want the volume muted or how dim you want the screen to go. You can even set it to automatically de-activate after a period of time.</p>
<p>I have been using it every day for about a month now, and whilst it&#8217;s hardly life changing, it is proving convenient. I&#8217;d love to hear what you think? Get it from the App Store using the link below. I have also provided a few promo codes below. First come first serve.</p>
<h4><a href="http://itunes.com/mac/trainmode">Download TrainMode from the App Store</a></h4>
<pre>
# TrainMode promo codes
T7XXEW4A3JPL
HPAHFM9XH9MA
3N6XP9J9FM37
<del datetime="2011-03-31T15:40:00+00:00">EM4PRKAFR64L</del>
3LKYM3NH6HF9
AMLLARNMY94N
4J4P3HA39XJ7
EHTK36FFN3FH
<del datetime="2011-04-06T12:39:29+00:00">7AP3RXETWLWA</del>
4NPEPHLYN4NK
4T3LF9R9AT3X
<del datetime="2011-03-31T15:40:43+00:00">KE9PN7HMK6N4</del>
AXX49PMYP3KX
<del datetime="2011-04-03T17:31:12+00:00">L6XPLN3HY47L</del>
P7PXAKXTRLAY
3M6EWTAXFAJ7
W3LH66P33J9N
<del datetime="2011-04-27T18:29:39+00:00">HA37PW9L3WYP</del>
74NJK69XYNTM
<del datetime="2011-04-02T07:36:34+00:00">HEAJR6TNL99L</del>
<del datetime="2011-04-03T17:31:23+00:00">7X93HRF9LFYJ</del>
<del datetime="2011-03-31T15:40:43+00:00">WRPTNMF7MYP4</del>
<del datetime="2011-04-03T17:31:23+00:00">FJ3HH4K9E7LJ</del>
</pre>
<p>If you could let me know in the comments if you used one, so I can strike it out.</p>
]]></content:encoded>
			<wfw:commentRss>http://whomwah.com/2011/03/31/introducing-trainmode-1-0/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>RadioAunty 2.1 gets 7 day catchup and BBC local radio support</title>
		<link>http://whomwah.com/2010/10/20/radioaunty-2-1/</link>
		<comments>http://whomwah.com/2010/10/20/radioaunty-2-1/#comments</comments>
		<pubDate>Wed, 20 Oct 2010 11:48:48 +0000</pubDate>
		<dc:creator>Duncan</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[BBC]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[radioaunty]]></category>

		<guid isPermaLink="false">http://whomwah.com/?p=2106</guid>
		<description><![CDATA[After the excitement of getting liveText into RadioAunty, I thought I&#8217;d get my head down and implement the two biggest features I get asked for. These being: Choose from any of the 66 online BBC Radio stations Navigate through the past 7 days ondemand listening See more RadioAunty photos So, this update has taken quite [...]]]></description>
			<content:encoded><![CDATA[<p>After the excitement of getting <a href="http://whomwah.com/2010/09/23/radioaunty-2-0-released-bbc-livetext-and-lastfm-scrobbling-added/">liveText into RadioAunty</a>, I thought I&#8217;d get my head down and implement the two biggest features I get asked for. These being:</p>
<ul>
<li>Choose from <strong>any</strong> of the 66 online <a href="http://www.bbc.co.uk/radio/">BBC Radio stations</a></li>
<li>Navigate through the <strong>past 7 days</strong> ondemand listening</li>
</ul>
<p><a href="http://www.flickr.com/photos/duncanponting/5084107436/"><img src="http://farm5.static.flickr.com/4130/5084107436_6e7f1b7090.jpg" alt="local BBC radio" /></a><span class="caption"><a href="http://www.flickr.com/photos/duncanponting/sets/72157615137746093/">See more RadioAunty photos</a></span></p>
<p>So, this update has taken quite a few train journeys, but I hope you&#8217;ll agree with me in thinking the hard work has paid off. I&#8217;m really quite pleased with the results. The application now packs quite a punch feature wise, but still fulfils its primary remit of being really simple to operate, hiding any extra functionality from those that just want to listen to the Radio. </p>
<p>As always, if you&#8217;re not interested in reading this stuff, your current version will autoupdate, or just head off to <a href="http://whomwah.github.com/radioaunty">http://whomwah.github.com/radioaunty</a> and download it. </p>
<p><strong>Local Radio Support.</strong> Currently in RadioAunty, you can only listen to the national stations. There are many more BBC stations available, specifically <a href="http://news.bbc.co.uk/local/hi/default.stm">local ones</a>. You can now go into the <em>preferences</em>, and choose from all the BBC stations, selecting which ones appear in the <em>Listen</em> menu.</p>
<p><a href="http://www.flickr.com/photos/duncanponting/5078998185/"><img src="http://farm5.static.flickr.com/4108/5078998185_6a2e917911.jpg" alt="local radio" /></a><span class="caption"><a href="http://www.flickr.com/photos/duncanponting/sets/72157615137746093/">See more RadioAunty photos</a></span></p>
<p>The ability to now <strong>opt-in</strong> to these extra stations is a design choice. The most important thing for me, is that RadioAunty is just a simple radio (the same goes for <a href="http://whomwah.github.com/tellybox/">TellyBox</a> as a television). All these updates I build bring <a href="http://whomwah.com/2010/09/23/radioaunty-2-0-released-bbc-livetext-and-lastfm-scrobbling-added/">great</a> <a href="http://whomwah.com/2010/09/14/xmppframework-pubsub-radioaunty-livetext/">extra</a> functionality, but my first assumption is that people couldn&#8217;t care less, and just want to listen to the radio. Anything I do to make this more complex, just means they won&#8217;t use it.</p>
<p>So, now, not only do you have the opportunity to listen to these other stations easily, you also get the current schedule and the ability to play catchup shows too, all within a very simple interface.</p>
<p><a href="http://www.flickr.com/photos/duncanponting/5093386826/"><img src="http://farm5.static.flickr.com/4151/5093386826_82a7707567.jpg" alt="7 day catchup" /></a><span class="caption"><a href="http://www.flickr.com/photos/duncanponting/sets/72157615137746093/">See more RadioAunty photos</a></span></p>
<p><strong>7 Day Catchup.</strong> Talking of catchup, this brings me on to the other big feature I have added. I really think this one takes RadioAunty to a new level, and why I still believe native radio listening applications, with their ability to spread the UI around desktop, will always be far superior to anything you could do on a website. The ability to simply see all of the available catchup programs for the last 7 days in simple menus. If you can click them, you can play them. So if you&#8217;re listening to <a href="http://www.bbc.co.uk/iplayer/radio/bbc_radio_one">Radio 1</a> on Monday and would like to listen to the <a href="http://www.bbc.co.uk/programmes/b006wkfp">Essential Mix</a> you missed because you were in bed, you can now simply navigate to the previous Friday, and see the essential mix in the drop down menu.</p>
<p><a href="http://www.flickr.com/photos/duncanponting/5094955468/"><img src="http://farm5.static.flickr.com/4126/5094955468_9f39f6ef11.jpg" alt="catchup" /></a><span class="caption"><a href="http://www.flickr.com/photos/duncanponting/sets/72157615137746093/">See more RadioAunty photos</a></span></p>
<p>Also, as you can see above, when you hover on any of these menu items, you also get a brief synopsis and how long there is left to listen.</p>
<p>So, if you like this application and it&#8217;s features, please spread the word. I really believe this is a great way to listen or catch up on BBC Radio.</p>
]]></content:encoded>
			<wfw:commentRss>http://whomwah.com/2010/10/20/radioaunty-2-1/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>RadioAunty 2.0 released, BBC LiveText and LastFM scrobbling added</title>
		<link>http://whomwah.com/2010/09/23/radioaunty-2-0-released-bbc-livetext-and-lastfm-scrobbling-added/</link>
		<comments>http://whomwah.com/2010/09/23/radioaunty-2-0-released-bbc-livetext-and-lastfm-scrobbling-added/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 22:12:55 +0000</pubDate>
		<dc:creator>Duncan</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[BBC]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[radioaunty]]></category>

		<guid isPermaLink="false">http://whomwah.com/?p=2090</guid>
		<description><![CDATA[After talking about XMPP and pubsub in my last post, the I have just pushed said version 2.0 release of RadioAunty. It took a bit longer than I expected, mostly due to me adding the LastFM scrobbling support I alluded to. A few things I should mention about these new features. RadioAunty is written by [...]]]></description>
			<content:encoded><![CDATA[<p>After <a href="http://whomwah.com/2010/09/14/xmppframework-pubsub-radioaunty-livetext/">talking about XMPP and pubsub</a> in my last post, the I have just pushed said <a href="http://whomwah.github.com/radioaunty/">version 2.0 release of RadioAunty</a>. It took a bit longer than I expected, mostly due to me adding the <a href="http://www.last.fm/api/submissions">LastFM scrobbling</a> support I alluded to.</p>
<p><img src="http://farm5.static.flickr.com/4088/5018270303_f251d2aace.jpg" alt="lastfm" /></p>
<p>A few things I should mention about these new features. RadioAunty is written by me, to try interesting things with the <a href="http://www.bbc.co.uk/iplayer/radio">BBC&#8217;s radio player</a>, that the BBC chooses not to do themselves. This means features may come and go. So the <a href="http://twitter.com">Twitter</a> support is now gone. Due in part to the fact I stopped using the service day-to-day a while back, and didn&#8217;t want to re-implement the OAuth stuff. </p>
<p>The new BBC Livetext support is a little bit experimental. Whilst the service is stable, I can&#8217;t guarantee it will be available all the time, although I&#8217;ve seen no problems to date. This and the fact that it currently will not work if you don&#8217;t have direct access to the internet, for example if you are behind a firewall and go through a proxy. If someone fancies adding SOCKS support, <a href="http://github.com/whomwah/radioaunty">that would be wonderful</a>.</p>
<p>The <a href="http://last.fm">LastFM</a> scrobbling support is also a bit experimental. It&#8217;s using the <a href="http://users.last.fm/~tims/Scrobbling2_0_beta_docs.html">API 2.0 Beta</a> which is still actively being worked on. I created a little <a href="http://github.com/whomwah/radioaunty/blob/master/Radio/Scrobble.h">Scrobble</a> class to do the work. Do note though, that the app will only scrobble based on the now playing information provided by the liveText service. Every tracked played is not always sent via liveText, so you may well see some tracks not showing up in your <a href="http://www.last.fm/user/duncanponting">Recently Listened Tracks</a>.</p>
<p>Enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://whomwah.com/2010/09/23/radioaunty-2-0-released-bbc-livetext-and-lastfm-scrobbling-added/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>My Garmin eTrex Vista HCx and OSX</title>
		<link>http://whomwah.com/2010/06/10/garmin-etrex-vista-hcx-and-osx/</link>
		<comments>http://whomwah.com/2010/06/10/garmin-etrex-vista-hcx-and-osx/#comments</comments>
		<pubDate>Thu, 10 Jun 2010 21:05:00 +0000</pubDate>
		<dc:creator>Duncan</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[garmin]]></category>
		<category><![CDATA[Maps]]></category>
		<category><![CDATA[OSX]]></category>

		<guid isPermaLink="false">http://whomwah.com/?p=1871</guid>
		<description><![CDATA[A quick post of my learnings when researching the best setup for my Garmin eTrex Vista HCx as most of what I initially found was old, PC only, or just plain wrong. I chose this GPS device because it was reasonably cheap, expandable, and allowed me to upload maps to the device, and visa-versa. I [...]]]></description>
			<content:encoded><![CDATA[<p>A quick post of my learnings when researching the best setup for my <a href="https://buy.garmin.com/shop/shop.do?pID=8703">Garmin eTrex Vista HCx</a> as most of what I initially found was old, PC only, or just plain wrong.</p>
<p><a href="http://www.flickr.com/photos/duncanponting/4688613801/" title="Garmin eTrex Vista HCx by whomwah, on Flickr"><img src="http://farm5.static.flickr.com/4016/4688613801_5aaa34bbab.jpg" width="500" height="281" alt="Garmin eTrex Vista HCx" /></a></p>
<p>I chose this GPS device because it was reasonably cheap, expandable, and allowed me to upload maps to the device, and visa-versa. I also wanted to use the power of <a href="http://www.openstreetmap.org/">OpenStreetMap</a>, rather than pay Garmin lots of money, and my research showed me this was possible.</p>
<p>So, rather than talk about all the things that I couldn&#8217;t find or do, I&#8217;ll just run through the good stuff. Here&#8217;s a run down of all the useful software I found.</p>
<ul>
<li><a href="http://touren.mospace.de/kachel.html">OSM/Computerteddy Garmin IMG tile calculator</a>
<p>Create a bounding box on a map of the world, and it will return an OSM IMG to use on your device. There&#8217;s even a great bookmarklet to use on the <a href="http://www.openstreetmap.org/">OpenStreetMap site</a>. This is an awesome site.</p>
</li>
<li><a href="http://download.geofabrik.de/osm/">geofabrik.de</a>
<p>A great resource of maps of the world. I don&#8217;t speak German, but you can get the idea of what you&#8217;re able to download.</p>
</li>
<li><a href="http://fredericbonifas.free.fr/osm/garmin.html">http://fredericbonifas.free.fr/</a>
<p>Detailed map of France. I used this on a recent cycle tour, and it was invaluable.</p>
</li>
<li><a href="http://www.trailrunnerx.com/">TrailRunner</a>
<p>TrailRunner is a route planning Mac software for all kinds of long distance sports like running, biking, hiking, inline-skating, skiing and more. It&#8217;s free, but a donation of 25 Euros will stop prompts. It&#8217;s a fantastic bit of software.</p>
</li>
<li><a href="http://www.cluetrust.com/LoadMyTracks.html">LoadMyTracks</a>
<p>This free utility works hand-in-hand with TrailRunner. It will send and receive data to and from the eTrex. It can also be used to translate data between the popular GPX and KML (Google Earth) formats. </p>
</li>
</ul>
<p>Finally there is <a href="http://wiki.openstreetmap.org/wiki/OSM_Map_On_Garmin">the OpenStreetMap Garmin page</a> which has the useful information about getting all this data onto the device, and much more.</p>
]]></content:encoded>
			<wfw:commentRss>http://whomwah.com/2010/06/10/garmin-etrex-vista-hcx-and-osx/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>nextKeyView and moving between NSTextfield and NSButton</title>
		<link>http://whomwah.com/2010/05/26/nextkeyviewtips/</link>
		<comments>http://whomwah.com/2010/05/26/nextkeyviewtips/#comments</comments>
		<pubDate>Wed, 26 May 2010 15:57:32 +0000</pubDate>
		<dc:creator>Duncan</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[cocoa]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://whomwah.com/?p=1913</guid>
		<description><![CDATA[This caught me out today, so I thought I&#8217;d share to save someone else scratching their head. The problem I was having was thus. In interface builder I had a window with an NSTextField and an NSButton. I want to be able to tab between them. I did what I thought was correct: Set the [...]]]></description>
			<content:encoded><![CDATA[<p>This caught me out today, so I thought I&#8217;d share to save someone else scratching their head. The problem I was having was thus. In interface builder I had a window with an <strong>NSTextField</strong> and an <strong>NSButton</strong>. I want to be able to tab between them. I did what I thought was correct:</p>
<ol>
<li>Set the <strong>intialFirstResponser</strong> for the <strong>NSWindow</strong> to be my <strong>NSTextField</strong></li>
<li>Set the <strong>NSTextField</strong> <strong>nextKeyView</strong> to be the <strong>NSButton</strong></li>
<li>Set the <strong>NSButton</strong> <strong>nextKeyView</strong> to be my <strong>NSTextField</strong></li>
</ol>
<p>But this was not working in the app! It Turns out that in the <em>Apple > System Preferences > Keyboard</em> there is a setting that allows you to press Tab to move keyboard focus between:</p>
<ul>
<li>Text boxes and lists only</li>
<li>All controls</li>
</ul>
<p>I think the top one is set by default. Once changed to <em>All controls</em> everything worked as expected.</p>
]]></content:encoded>
			<wfw:commentRss>http://whomwah.com/2010/05/26/nextkeyviewtips/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fun with Quartz Composer in Snow Leopard and the BBC Radio Schedule</title>
		<link>http://whomwah.com/2009/10/07/fun-with-quartz-composer-in-snow-leopard-and-the-bbc-radio-schedule/</link>
		<comments>http://whomwah.com/2009/10/07/fun-with-quartz-composer-in-snow-leopard-and-the-bbc-radio-schedule/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 12:34:30 +0000</pubDate>
		<dc:creator>Duncan</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[BBC]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[quartzcomposer]]></category>
		<category><![CDATA[Screen Saver]]></category>

		<guid isPermaLink="false">http://whomwah.com/?p=1584</guid>
		<description><![CDATA[I&#8217;ve just posted on the BBC Radio Labs blog about some tinkering with Quartz Composer I&#8217;ve done. Please read the full article there, but in short, I&#8217;ve created a Quartz Composition that you can install as a Screen Saver, that reads in the BBC National Radio Schedule and rolls through each station showing who&#8217;s on [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just posted on the <a href="http://www.bbc.co.uk/blogs/radiolabs">BBC Radio Labs blog</a> about some <a href="http://www.bbc.co.uk/blogs/radiolabs/2009/10/fun_with_quartz_composer_in_sn.shtml">tinkering with Quartz Composer I&#8217;ve done</a>. Please read the full article there, but in short, I&#8217;ve created a <a href="http://en.wikipedia.org/wiki/Quartz_Composer">Quartz Composition</a> that you can install as a Screen Saver, that reads in the <a href="http://www.bbc.co.uk/radio/">BBC National Radio</a> Schedule and rolls through each station showing who&#8217;s on and displays a pretty picture. Oh, and I think it all looks very pretty.</p>
<p><img src="http://farm3.static.flickr.com/2568/3983622551_7ebbf90f30.jpg" alt="BBC Radio Screen Saver" /></p>
<p><a href="http://www.bbc.co.uk/blogs/radiolabs/2009/10/fun_with_quartz_composer_in_sn.shtml">Head on over to the Radio Labs site to download</a> and install on your machine. Please note though, it&#8217;s for <a href="http://en.wikipedia.org/wiki/Snow_Leopard">OSX 10.6 Snow Leopard</a> only.</p>
]]></content:encoded>
			<wfw:commentRss>http://whomwah.com/2009/10/07/fun-with-quartz-composer-in-snow-leopard-and-the-bbc-radio-schedule/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Another iPhone Code Sign Error Fix solution</title>
		<link>http://whomwah.com/2009/05/10/another-iphone-code-sign-error-fix-solution/</link>
		<comments>http://whomwah.com/2009/05/10/another-iphone-code-sign-error-fix-solution/#comments</comments>
		<pubDate>Sun, 10 May 2009 15:10:55 +0000</pubDate>
		<dc:creator>Duncan</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[OSX]]></category>

		<guid isPermaLink="false">http://whomwah.com/?p=1498</guid>
		<description><![CDATA[Dam, this took far to long to suss out !!! I even left the London Open Hack 2009 early because I was unable to install development apps I was working on onto my iPhone, and it was proving so frustrating I decided to go home to try and fix it there &#8230; Dam!!! So the [...]]]></description>
			<content:encoded><![CDATA[<p>Dam, this took far to long to suss out !!! I even left the <a href="http://www.hackday.org/">London Open Hack 2009</a> early because I was unable to install development apps I was working on onto my <a href="http://apple.com/iphone">iPhone</a>, and it was proving so frustrating I decided to go home to try and fix it there &#8230; Dam!!!</p>
<p>So the error I was getting was:</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">Code Sign error: The identity 'iPhone Developer' doesn't match any valid 
certificate/private key pair in the default keychain</pre></div></div>

<p>I won&#8217;t bore you with all the variations, forums, websites read and ways I tried to solve this, and will leave you with the solution in this case. The problem was that the KeyChain App had changed it&#8217;s <em>default</em> keychain over to &#8216;<strong>system</strong>&#8216; and it should have been &#8216;<strong>login</strong>&#8216; as this is where all my keys and certificates are installed. Also, the <em>default</em> keychain is where <a href="http://developer.apple.com/TOOLS/xcode/">Xcode</a> looks.  The default keyChain in the one in the keychains list that is bold. To make one the default, you right click on it and select the &#8216;make default&#8217; item from the list.</p>
<p>Yep, That&#8217;s It!! and to be honest the error message make a little more sense now I&#8217;ve fixed it &#8230; Dam!</p>
]]></content:encoded>
			<wfw:commentRss>http://whomwah.com/2009/05/10/another-iphone-code-sign-error-fix-solution/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Using Cocoa to keep an app window always on top</title>
		<link>http://whomwah.com/2009/04/11/using-cocoa-to-keep-an-app-window-always-on-top/</link>
		<comments>http://whomwah.com/2009/04/11/using-cocoa-to-keep-an-app-window-always-on-top/#comments</comments>
		<pubDate>Sat, 11 Apr 2009 16:39:21 +0000</pubDate>
		<dc:creator>Duncan</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[cocoa]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[OSX]]></category>

		<guid isPermaLink="false">http://whomwah.com/?p=1393</guid>
		<description><![CDATA[Sometimes you want your application to keep one of it&#8217;s windows always-on-top. A chat application like Adium for example, allows you to keep your conversation window always-on-top so you can follow the conversation whilst still using other applications. In the TellyBox application I wrote, this functionality is also very useful, as you can watch tv [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes you want your application to keep one of it&#8217;s windows always-on-top. A chat application like <a href="http://www.adiumx.com/">Adium</a> for example, allows you to keep your conversation window always-on-top so you can follow the conversation whilst still using other applications. In the <a href="http://whomwah.github.com/tellybox/">TellyBox</a> application I wrote, this functionality is also very useful, as you can watch tv whilst still working in other applications.</p>
<p>So the basic implementation was fairly simple. You just use the <a href="http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSWindow_Class/Reference/Reference.html#//apple_ref/doc/uid/20000013-BCIDIEDF">windowDidResignMain notification</a>, and then re-set the window level a more fitting one. Below I have also wrapped around a preference setting:</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span>windowDidResignMain<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #400080;">NSNotification</span> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>notification
<span style="color: #002200;">&#123;</span>
  <span style="color: #11740a; font-style: italic;">// It's always nicer if the user has a choice</span>
  <span style="color: #a61390;">if</span> <span style="color: #002200;">&#40;</span><span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSUserDefaults</span> standardUserDefaults<span style="color: #002200;">&#93;</span> boolForKey<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;DefaultAlwaysOnTop&quot;</span><span style="color: #002200;">&#93;</span> <span style="color: #002200;">==</span> <span style="color: #a61390;">YES</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
    <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>self window<span style="color: #002200;">&#93;</span> setLevel<span style="color: #002200;">:</span>NSFloatingWindowLevel<span style="color: #002200;">&#93;</span>;
  <span style="color: #002200;">&#125;</span> <span style="color: #a61390;">else</span> <span style="color: #002200;">&#123;</span>
    <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>self window<span style="color: #002200;">&#93;</span> setLevel<span style="color: #002200;">:</span>NSNormalWindowLevel<span style="color: #002200;">&#93;</span>;
  <span style="color: #002200;">&#125;</span>
<span style="color: #002200;">&#125;</span></pre></div></div>

<p>My <a href="http://whomwah.github.com/tellybox/">TellyBox</a> application allows you to go fullscreen via the existing Flash application embedded in a webkit view. Using just the basic implementation meant that when going into fullscreen mode the frame of the original window remained in view. To fix this I added this extra bit of code, which gets used via the firing of another useful notification <a href="http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSWindow_Class/Reference/Reference.html#//apple_ref/doc/uid/20000013-BCIEBCEI">windowDidBecomeMain</a> :</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span>windowDidBecomeMain<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #400080;">NSNotification</span> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>notification
<span style="color: #002200;">&#123;</span>
  <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>self window<span style="color: #002200;">&#93;</span> setLevel<span style="color: #002200;">:</span>NSNormalWindowLevel<span style="color: #002200;">&#93;</span>;
<span style="color: #002200;">&#125;</span></pre></div></div>

<p>which sets the window level back to it&#8217;s default value of 0 when it becomes the main window i.e when you select it.</p>
<p>I hope this little snippet helps people trying to achieve the same effect in their apps.</p>
]]></content:encoded>
			<wfw:commentRss>http://whomwah.com/2009/04/11/using-cocoa-to-keep-an-app-window-always-on-top/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Lookup &#8211; A simple Mac utility that wraps ldapsearch</title>
		<link>http://whomwah.com/2009/04/07/lookup/</link>
		<comments>http://whomwah.com/2009/04/07/lookup/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 11:53:14 +0000</pubDate>
		<dc:creator>Duncan</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[cocoa]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[lookup]]></category>
		<category><![CDATA[OSX]]></category>

		<guid isPermaLink="false">http://whomwah.com/?p=1361</guid>
		<description><![CDATA[I work on a Mac at work, and it has always been a bit slow searching for other staff members in our global address book. Like other big organisations we have some directory services which we can use LDAP to interrogate. The seemingly standard way for apps to poll these services is asynchronously every second [...]]]></description>
			<content:encoded><![CDATA[<p>I work on a <a href="http://www.apple.com/mac/">Mac</a> at <a href="http://www.bbc.co.uk/">work</a>, and it has always been a bit slow searching for other staff members in our global address book. Like other big organisations we have some <a href="http://en.wikipedia.org/wiki/Directory_service">directory services</a> which we can use <a href="http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol">LDAP</a> to interrogate. The seemingly standard way for apps to poll these services is <a href="http://en.wikipedia.org/wiki/Asynchronous_I/O">asynchronously</a> every second or so, so that you&#8217;re getting results back quickly in the background. In reality this can be clunky if your network is slow, or the directory is very big.</p>
<p>I wanted something simpler, and a gui that gave me was suited to my work requirements. Lookup displays glance-able contact details straight away, letting you copy, paste and drag this data around. It also has simple shortcuts like double clicking the contact to start a new email to that person.</p>
<p>Lookup does not poll asynchronously, it does one request per search and just looks through some key attributes. It seems to work very well, and has been customised for my workplace, but is generic enough for someone to tweak it to suit their companies needs.</p>
<p><a href="http://www.flickr.com/photos/duncanponting/3420133723/"><img src="http://farm4.static.flickr.com/3302/3420133723_714683acc3.jpg?v=0" alt="Lookup" /></a></p>
<p>It wraps <a href="http://linux.die.net/man/1/ldapsearch">ldapsearch</a>, which is a command line app that comes free on your mac. When I say wraps, it&#8217;s not a complete wrapper, but wraps enough to create an app of this kind. Ldapsearch app did everything I wanted in search terms, and gave me a chance to use <a href="http://developer.apple.com/DOCUMENTATION/Cocoa/Reference/Foundation/Classes/NSTask_Class/index.html">NSTask</a> and <a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSPipe_Class/index.html">NSPipe</a> which I know will be useful in the future.</p>
<p>You can get the <a href="http://github.com/whomwah/lookup/tree/master">source over at Github</a>. Why not try and tweak it to work for your company. You never know, just compiling it and updating the settings in the preferences menu may be enough.</p>
<p class="note">Just to be clear, this app does NOT give you access to the BBC address book, just incase you thought I&#8217;d gone mad.</p>
]]></content:encoded>
			<wfw:commentRss>http://whomwah.com/2009/04/07/lookup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

