<?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/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
>

<channel>
	<title>Aral Balkan &#187; Tools and Utilities</title>
	<atom:link href="http://aralbalkan.com/category/tools-and-utilities/feed" rel="self" type="application/rss+xml" />
	<link>http://aralbalkan.com</link>
	<description>Passionate geekisms.</description>
	<lastBuildDate>Wed, 01 Feb 2012 18:53:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<creativeCommons:license>http://creativecommons.org/licenses/by-nc/2.0/uk/</creativeCommons:license>
		<item>
		<title>HSBC Prepare CSV bookmarklet for FreeAgent: Download previous statements on HSBC Personal accounts</title>
		<link>http://aralbalkan.com/3744</link>
		<comments>http://aralbalkan.com/3744#comments</comments>
		<pubDate>Tue, 15 Feb 2011 12:00:57 +0000</pubDate>
		<dc:creator>Aral</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[account]]></category>
		<category><![CDATA[bank]]></category>
		<category><![CDATA[csv]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[downloadable]]></category>
		<category><![CDATA[freeagent]]></category>
		<category><![CDATA[hsbc]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[previous statements]]></category>
		<category><![CDATA[statements]]></category>

		<guid isPermaLink="false">http://aralbalkan.com/?p=3744</guid>
		<description><![CDATA[I have an HSBC Advance account. It's a premium personal current account (ok, you can stop looking at me like I'm a fool – I get travel insurance and stuff. OK, OK, and I'm gullible!) You would think that one feature of a current account in this day and age, whether premium or not, would [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />I have an HSBC Advance account. It's a premium personal current account (ok, you can stop looking at me like I'm a fool – I get travel insurance and stuff. OK, OK, <em>and</em> I'm gullible!) You would think that one feature of a current account in this day and age, whether premium or not, would be the ability download previous statements in a data format or some sort. </p>
<p>In fact, for some inexplicable reason which must make perfect sense to you if you're a fat cat making billions after being bailed out by taxpayer's – i.e., our – money, HSBC allows you to do download statements in a variety of formats but only for recent transactions. As of this writing, my recent transactions only go as far back as the start of January, 2011. I also have access to "previous statements" that date back to the start of last year but – and it's a big but – I can't download them. I can print them but that's about it. WTF indeed.</p>
<p><span id="more-3744"></span></p>
<p>Since I've recently started using the excellent <a href="http://fre.ag/3aixj8xt">FreeAgent</a> and I really want to get a grip on my finances and accounting, I need to import my personal bank transactions into FreeAgent alongside my business accounts. This braindead artificial limitation imposed by HSBC was stopping me from doing that. So I fixed it. And with that, I give you the HSBC Prepare CSV bookmarket.</p>
<h2>Installation</h2>
<p>&rarr; <a href="javascript:function loadScript(scriptURL) { var scriptElem = document.createElement('script'); scriptElem.setAttribute('language', 'JavaScript'); scriptElem.setAttribute('src', scriptURL); document.body.appendChild(scriptElem);} loadScript('http://dl.dropbox.com/u/5269427/savestatement.js');" title="HSBC Prepare CSV">HSBC Prepare CSV</a> &larr;</p>
<p>You see the link above? (Yes, the one pointed to by the arrows!) <strong>Drag it</strong> to your browser's bookmark toolbar to create a bookmarklet.</p>
<p><img src="http://dl.dropbox.com/u/5269427/HSBC%20blog%20post/hsbc-bookmarklet.png" alt="Install the bookmarklet by dragging it to your browser's toolbar"></p>
<p>That's it, you're done!</p>
<h2>Usage</h2>
<p><img src="http://dl.dropbox.com/u/5269427/HSBC%20blog%20post/hsbc-copy-to-clipboard2.png" alt="The copy to clipboard icon"></p>
<ol>
<li>Sign in to your HSBC Personal account and navigate to a previous statement.</li>
<li>Click the "HSBC Prepare CSV" bookmarklet you created earlier.</li>
<li>A little copy-to-clipboard icon will be inserted into your statement. Click it to copy the generated CSV to your system clipboard.</li>
<li>In your text editor of choice, create a new file and paste the generated CSV into it.</li>
<li>Save the file with a meaningful name like <em>2011-02-07-HSBC-Personal.csv</em> (as opposed to a generic <em>statement.csv</em> or <em>transactions.csv</em> as HSBC's system insists on naming files when it does allow you to download them<code>&lt;/rantOff&gt;</code>).</li>
</ol>
<p>Once you've downloaded your statements using the above process, you can upload them to <a href="http://fre.ag/3aixj8xt">FreeAgent</a>.</p>
<p>I hope you enjoy using the bookmarklet and that it helps you with your bookkeeping/accounting.</p>
<p>(It is my sincerest hope that HSBC will fix this huge oversight and that this bookmarklet will not be needed for much longer. If this blog post helps to shame them into doing it, all the better.)</p>
<h2>Freeagent</h2>
<p>If you like the bookmarklet and haven't heard of <a href="http://fre.ag/3aixj8xt">FreeAgent</a> yet, why not sign up with my referral code – 3aixj8xt – (or via one of the links in this article), and we'll both get 10% off.</p>
<h2>Details</h2>
<p>The generated CSV is in <a href="http://www.freeagentcentral.com/support/kb/banking/file-format-for-bank-upload-csv">the AMEX CSV format</a> published by <a href="http://fre.ag/3aixj8xt">FreeAgent</a>. This is the simplest CSV format they accept and the only one that is currently published. </p>
<p>You can see <a href="http://dl.dropbox.com/u/5269427/savestatement.js">the source code for the HSBC Prepare CSV script</a> here to make sure that it's not doing anything nefarious with your bank data. </p>
<p>I am talking to the lovely folks at <a href="http://fre.ag/3aixj8xt">FreeAgent</a> at the moment to see if we can't capture a bit more of the information from HSBC personal accounts in a slightly more involved CSV format in the future.</p>
<h2>Credits</h2>
<p>The HSBC Prepare CSV bookmarklet would not have been possible without the following resources and components:</p>
<ul>
<li><a href="http://twitter.com/roanlavery">Roan Lavery</a> for FreeAgent and for pointing me to the CSV file format and for general friendship, help, and patience with a guy who currently hates accounting but is trying to hate it less.</li>
<li><a href="http://jquery.com/">jQuery</a>, the awesome JavaScript library that makes DOM traversal (as well as other things) a CSS-selector-esque piece of cake.</li>
<li><a href="https://github.com/mojombo/clippy">Clippy</a>, the little Flash-based copy-to-clipboard component.</li>
<li><a href="http://flowplayer.org/tools/toolbox/flashembed.html">jQuery FlashEmbed</a>, which I'm using to embed Clippy into the statement.</li>
<li>The Squidoo article by echo85 for showing me <a href="http://www.squidoo.com/load-jQuery-dynamically">how to lazy load jQuery</a> and, similarly, the Coding in Paradise article on <a href="http://codinginparadise.org/weblog/2005/08/ajax-creating-huge-bookmarklets.html">Creating Huge Bookmarklets</a>.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://aralbalkan.com/3744/feed</wfw:commentRss>
		<slash:comments>19</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>Installing Mac Application Tools 1.1 with non-standard Xcode installs</title>
		<link>http://aralbalkan.com/3722</link>
		<comments>http://aralbalkan.com/3722#comments</comments>
		<pubDate>Wed, 19 Jan 2011 22:17:42 +0000</pubDate>
		<dc:creator>Aral</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[application tools]]></category>
		<category><![CDATA[dmg]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[installer]]></category>
		<category><![CDATA[mac app store]]></category>
		<category><![CDATA[not found]]></category>
		<category><![CDATA[XCode]]></category>

		<guid isPermaLink="false">http://aralbalkan.com/?p=3722</guid>
		<description><![CDATA[Workaround for a known Application Tools 1.1 installation issue.]]></description>
			<content:encoded><![CDATA[<p id="top" />If you, like me, don't like to install Xcode into the /Developer folder (maybe because you have several versions of it on your computer at one time), you will run into a problem while trying to install Application Tools 1.1 to build apps for the Mac App Store.</p>
<p>Like a number of installers I've encountered, the Application Tools 1.1 installer fails if it cannot find Xcode in the /Developer folder. In my case, I already had a /Developer folder with a few system items in it but Xcode was in a separate folder off the root of my drive called /Xcode3.2.5iOS4.2. </p>
<p><span id="more-3722"></span></p>
<p>To cut a long story short, I merely renamed /Developer to /Developer-temp and the Xcode folder to /Developer, ran the installer, and then named the two folders back again (you'll need to use <code>sudo mv /Developer /Developer-temp</code> and enter your system password).</p>
]]></content:encoded>
			<wfw:commentRss>http://aralbalkan.com/3722/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>XAuthTwitterEngine deprecated, use MGTwitterEngine (&amp; new MGTwitterEngine demo app released)</title>
		<link>http://aralbalkan.com/3612</link>
		<comments>http://aralbalkan.com/3612#comments</comments>
		<pubDate>Tue, 02 Nov 2010 16:55:33 +0000</pubDate>
		<dc:creator>Aral</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[mgtwitterengine]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[xauth]]></category>
		<category><![CDATA[xauthtwitterengine]]></category>

		<guid isPermaLink="false">http://aralbalkan.com/?p=3612</guid>
		<description><![CDATA[In March of this year, I created a Twitter library called XAuthTwitterEngine based on Matt Gemmell's awesome MGTwitterEngine library and the excellent work (and with the assistance) of a number of great developers (including Ben Gottlieb, Jon Crosby, Chris Kimpton, and Isaiah Carew, Steve Reynolds, and Norio Nomura). Back then, MGTwitterEngine didn't have oAuth/xAuth support [...]]]></description>
			<content:encoded><![CDATA[<p id="top" /><img src="/images/mgtwitterenginedemo.png" alt="MGTwitterEngineDemo UI" style="float:right; margin-left:1em;margin-bottom:0.5em;width:50%" class="transparent">In March of this year, I created a Twitter library called <a href="http://aralbalkan.com/3133">XAuthTwitterEngine</a> based on <a href="http://mattgemmell.com">Matt Gemmell</a>'s awesome <a href="http://github.com/mattgemmell/MGTwitterEngine">MGTwitterEngine</a> library and the excellent work (and with the assistance) of a number of great developers (including Ben Gottlieb, <a href="http://code.google.com/p/oauth/">Jon Crosby</a>, <a href="http://github.com/kimptoc/MGTwitterEngine-1.0.8-OAuth-MyTwitter/tree/master">Chris Kimpton</a>, and <a href="http://github.com/yourhead/OAuth_ObjC_Test_App/tree/master">Isaiah Carew</a>, <a href="http://www.reynoldsftw.com/">Steve Reynolds</a>, and <a href="http://github.com/norio-nomura/ntlniph/commit/5ce25d68916cd45254c7ff2ba9b91de4f324899a">Norio Nomura</a>). Back then, MGTwitterEngine didn't have oAuth/xAuth support and I built XAuthTwitterEngine as a stop-gap, with the intension of back-porting to MGTwitterEngine at some point.</p>
<p>Well, MGTwitterEngine has had excellent oAuth/xAuth for some time now and I finally got round to checking it out today only to realize just how much progress they've made. It's definitely time to deprecate XAuthTwitterEngine and start using MGTwitterEngine again (so I am back-porting <a href="http://feathersapp.com">Feathers</a> to MGTwitterEngine at the moment).</p>
<p><span id="more-3612"></span></p>
<h2>New demo</h2>
<p>One of my goals in releasing XAuthTwitterEngine was to have a simple demo that developer's could use as a reference – something that "just works". I still think that's necessary for MGTwitterEngine so I created a new one based on the demo project in XAuthTwitterEngine. </p>
<p><a href="http://github.com/aral/MGTwitterEngineDemo">Check out the MGTwitterEngine demo project on Github</a>.</p>
<p>Some notes on the demo:</p>
<ul>
<li>It's an iPhone project.</li>
<li>I've removed the (frankly pain-in-the-ass) YAJL sources from the compile sources for the main target</li>
<li>I've added TouchJSON and enabled it.</li>
<li>It stores the oAuth token returned from the initial xAuth call securely in the keychain using the <a href="http://github.com/ldandersen/scifihifi-iphone/tree/master/security/">SFHFKeychainUtils helper class</a> by <a href="">Justin Williams</a>.</li>
<li><strike>I kept most of the XAuthTwitterEngine code in comments to show you the differences between the two libraries in hopes that it will aid you in migrating your apps.</strike></li>
<li>I've done minimal testing on it <strike>and haven't had a chance to clean up the code. There are blatant memory leaks, etc. which I will look into after finishing off this blog post.</strike><ins>I've cleaned up the project and removed the commented-out XAuthTwitterEngine code – it was more confusing than anything else.</li>
</ul>
<p><strike>As the first step in porting <a href="http://feathersapp.com">Feathers</a> back to MGTwitterEngine, I'm planning on evolving XAuthTwitterEngine into a façade that simply proxies calls to MGTwitterEngine. When that's ready, I'll release it as a drop-in replacement to get those of you using XAuthTwitterEngine to seamlessly and transparently switch to using the latest and greatest MGTwitterEngine (or, if you don't want to wait, </strike> <ins>Scratch that, I just had a look at it and it's definitely more trouble than it's worth – it's easier to</ins> just use the demo I liked to above as a guide to port your apps yourselves. <strike>The façade should just be an intermediary step anyway.</strike>)</p>
<p>Hope you find the demo project useful in getting up and running with MGTwitterEngine.</p>
<h2>Links</h2>
<ul>
<li><a href="http://github.com/mattgemmell/MGTwitterEngine">MGTwitterEngine</a></li>
<li><a href="http://github.com/aral/MGTwitterEngineDemo">MGTwitterEngine demo project</a></li>
<li><a href="http://aralbalkan.com/3133">XAuthTwitterEngine (deprecated)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://aralbalkan.com/3612/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>iPad + Air Display app = iPhone app testing nirvana</title>
		<link>http://aralbalkan.com/3293</link>
		<comments>http://aralbalkan.com/3293#comments</comments>
		<pubDate>Tue, 15 Jun 2010 11:19:39 +0000</pubDate>
		<dc:creator>Aral</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Articles]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[air display]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[dual]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[mirroring]]></category>
		<category><![CDATA[monitor]]></category>
		<category><![CDATA[screens]]></category>
		<category><![CDATA[simulator]]></category>
		<category><![CDATA[stretch]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[touch]]></category>
		<category><![CDATA[touches]]></category>

		<guid isPermaLink="false">http://aralbalkan.com/?p=3293</guid>
		<description><![CDATA[The iPhone Simulator is a handy development tool for debugging your iPhone and iPad apps as you develop them. It is not, however, in any way an alternative to testing on an actual device. One of the reasons that the iPhone Simulator doesn't give you the actual device experience is because your Mac's screen is [...]]]></description>
			<content:encoded><![CDATA[<p id="top" /><img src="/images/air-display-iphone-testing.jpg" alt="Testing my iPhone app on an iPad using Air Display app"> </p>
<p>The iPhone Simulator is a handy development tool for debugging your iPhone and iPad apps as you develop them. It is not, however, in any way an alternative to testing on an actual device. One of the reasons that the iPhone Simulator doesn't give you the actual device experience is because your Mac's screen is not a touch screen. Until now, if you wanted that, you would have to either test on your actual device or use an app like <a href="http://click.linksynergy.com/fs-bin/click?id=USWiahm1z0M&subid=&offerid=146261.1&type=10&tmpid=3909&RD_PARM1=http%3A%2F%2Fitunes.apple.com%2Fus%2Fapp%2Fisimulate%2Fid306908756%3Fmt%3D8">iSimulate</a> to send touches (and other device data) to your app. While iSimulate and its ilk are still a good alternative, I've found a setup that serves me well for 90% of my debug-time testing: an iPad, coupled with the <a href="http://click.linksynergy.com/fs-bin/click?id=USWiahm1z0M&subid=&offerid=146261.1&type=10&tmpid=3909&RD_PARM1=http%3A%2F%2Fitunes.apple.com%2Fus%2Fapp%2Fair-display%2Fid368158927%3Fmt%3D8">Air Display</a> app.</p>
<p><span id="more-3293"></span></p>
<p><a href="http://click.linksynergy.com/fs-bin/click?id=USWiahm1z0M&subid=&offerid=146261.1&type=10&tmpid=3909&RD_PARM1=http%3A%2F%2Fitunes.apple.com%2Fus%2Fapp%2Fair-display%2Fid368158927%3Fmt%3D8">Air Display</a> is an iPad app that lets you use your iPad as a second monitor. It actually works really well (I also bought iDisplay, earlier, and did not enjoy the experience at all). To test your app, simply drag the iPhone Simulator to your iPad (make sure mirroring is turned off so that your screen stretches to the iPad). The coolest thing is that because your iPad has a touch screen, you can test your app in the iPhone Simulator with touches instead of mouse clicks. </p>
<p>Of course, this doesn't mean that you shouldn't test as often as you can on an actual device (as the iPad doesn't recreate the ergonomics of the iPhone perfectly). Also, if you need other sensor data (like the accelerometer, etc.) then also consider getting an app like <a href="http://click.linksynergy.com/fs-bin/click?id=USWiahm1z0M&subid=&offerid=146261.1&type=10&tmpid=3909&RD_PARM1=http%3A%2F%2Fitunes.apple.com%2Fus%2Fapp%2Fisimulate%2Fid306908756%3Fmt%3D8">iSimulate</a> to compliment your toolbox.</p>
<p>Hope you find this useful!</p>
<p>If you have time-saving development tricks of your own, please feel free to share them in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://aralbalkan.com/3293/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>Getting Terminal Visor for OSX working with Snow Leopard</title>
		<link>http://aralbalkan.com/2366</link>
		<comments>http://aralbalkan.com/2366#comments</comments>
		<pubDate>Fri, 28 Aug 2009 11:13:23 +0000</pubDate>
		<dc:creator>Aral</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Articles]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://aralbalkan.com/2366</guid>
		<description><![CDATA[Visor for OSX (Visor.bundle) is a lovely Quake-like interface for Terminal that I absolutely couldn't live without. Unfortunately, upgrading to Snow Leopard disables it. Re-enabling it, thankfully, is very easy: Go to Applications &#x2192; Utilities, &#x2318;-click Terminal.app and select Get Info (or press ⌘-i) and check the Open in 32-bit mode checkbox. Finally, start Terminal.app [...]]]></description>
			<content:encoded><![CDATA[<p id="top" /><a href="http://visor.binaryage.com/" title="Visor for OSX">Visor for OSX</a> (Visor.bundle) is a lovely Quake-like interface for Terminal that I absolutely couldn't live without. Unfortunately, upgrading to Snow Leopard disables it. </p>
<p>Re-enabling it, thankfully, is very easy: Go to Applications &#x2192; Utilities, &#x2318;-click Terminal.app and select Get Info (or press ⌘-i) and check the <em>Open in 32-bit mode</em> checkbox. Finally, start Terminal.app and you should have your beloved Visor back.</p>
<p><span id="more-2366"></span></p>
<p><em>This tip comes to you courtesy of Tanja (the last comment in <a href="http://www.metaskills.net/2009/8/18/visor-terminal-on-snow-leopard" title="MetaSkills.net Visor Terminal on Snow Leopard">this blog post</a>).</em></p>
]]></content:encoded>
			<wfw:commentRss>http://aralbalkan.com/2366/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>On, of all things, favicons</title>
		<link>http://aralbalkan.com/2347</link>
		<comments>http://aralbalkan.com/2347#comments</comments>
		<pubDate>Tue, 25 Aug 2009 10:54:18 +0000</pubDate>
		<dc:creator>Aral</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://aralbalkan.com/2347</guid>
		<description><![CDATA[Favicons, those little icons that you see next to the address bar of your browser, are one of those things that I can safely forget about for ages unless I'm launching a new site. Like anything else that I use rarely, it means that I forget everything about them by the time I need to [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />Favicons, those little icons that you see next to the address bar of your browser, are one of those things that I can safely forget about for ages unless I'm launching a new site. Like anything else that I use rarely, it means that I forget everything about them by the time I need to create one again.</p>
<p>So, here's some quick information from my latest foray into creating a favicon:</p>
<p><span id="more-2347"></span></p>
<ul>
<li>It looks like neither Firefox nor Safari likes Windows format ico files with both 16x16 and 32x32 images in them (as created by default by <a href="http://www.html-kit.com/favicon/" title="FavIcon from Pics -- free favicon.ico for your website (animated, static, text, iPod icons)">html-kit.com's FavIcon from Pics tool</a>, which is the best PNG to ICO convertor I could find in my brief search).</li>
<li>Safari seems to like 16x16 Windows favicon.ico files but I couldn't get Firefox to read one in to save my life.</li>
<li>I ended up using a PNG instead of ICO after the ICO headaches with Firefox/Safari.</li>
<li>Don't forget to add <code>&lt;link rel="icon" type="image/png" href="/favicon.png"&gt;</code> to your HTML files (I seem to remember favicon.ico files being automatically read if you placed them in the root of your site but neither Safari nor Firefox read the one I had)</li>
</ul>
<p>There you go. Not having delved into the depths of favicon.ico voodoo (and not wanting to, really), I hope this at least helps me out next time I need to create a favicon file.</p>
]]></content:encoded>
			<wfw:commentRss>http://aralbalkan.com/2347/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>Developer Color Picker for iPhone dev</title>
		<link>http://aralbalkan.com/2282</link>
		<comments>http://aralbalkan.com/2282#comments</comments>
		<pubDate>Mon, 27 Jul 2009 11:07:12 +0000</pubDate>
		<dc:creator>Aral</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://aralbalkan.com/2282</guid>
		<description><![CDATA[@drewm just tweeted about a very cool free utility for developers called Developer Color Picker (DCP) by Wade Cosgrove, courtesy of Panic (developers of, among others, the excellent Transmit FTP client for OS X that I own and love). DCP supports copying a color in a number of formats, including NSColor, UIColor, CGColorRef, CSS, and [...]]]></description>
			<content:encoded><![CDATA[<p id="top" /><img src="http://aralbalkan.com/wp-content/uploads/2009/07/developer-color-picker-in-photoshop.jpg" alt="Developer Color Picker in photoshop" height="442" width="241" style="float:right;"></p>
<p><a href="http://twitter.com/drewm">@drewm</a> just <a href="http://twitter.com/drewm/status/2868329278" title="">tweeted about a very cool free utility for developers</a> called <a href="http://www.panic.com/~wade/picker/" title="Developer Color Picker">Developer Color Picker</a> (DCP) by <a href="http://twitter.com/wadeco" title="Wade Cosgrove's twitter account">Wade Cosgrove</a>, courtesy of <a href="http://www.panic.com/" title="Panic - Shockingly Good Mac Software.">Panic</a> (developers of, among others, the <a href="http://www.panic.com/transmit/" title="Panic - Transmit 3 - The next-generation Mac OS X FTP client!">excellent Transmit FTP client</a> for OS X that I own and love). </p>
<p><span id="more-2282"></span></p>
<p>DCP supports copying a color in a number of formats, including NSColor, UIColor, CGColorRef, CSS, and HTML style colors. </p>
<p>For iPhone dev, the UIColor feature is a real convenience. </p>
<p>To use DCP with Photoshop, simply copy the DeveloperColorPicker.colorPicker app that you download to ~/Library/ColorPickers as per the installation instructions. Then, in Photoshop, set the Color Picker to Apple in Preferences &#x2192; General. </p>
<p>When you click on a color swatch, the Apple color picker should pop up. DCP is the last tab on the right. </p>
<p>The Copy with Declaration option creates code similar to the following and copies it to your clipboard:</p>
<pre>UIColor *aColor = [UIColor colorWithRed:0.367 green:0.504 blue:0.681 alpha:1.000];</pre>
<p>Very handy, thanks Wade! :)</p>
]]></content:encoded>
			<wfw:commentRss>http://aralbalkan.com/2282/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>Mogenerator latest version, 1.13.1 installer, and build instructions.</title>
		<link>http://aralbalkan.com/2268</link>
		<comments>http://aralbalkan.com/2268#comments</comments>
		<pubDate>Mon, 13 Jul 2009 19:59:06 +0000</pubDate>
		<dc:creator>Aral</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Articles]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://aralbalkan.com/2268</guid>
		<description><![CDATA[Mogenerator is a very useful utility that creates model classes for you when working with Core Data. I've written about Mogenerator before but what I didn't realize is that I wasn't working with the latest version (the version I was using was 1.6.1 and the latest version as of this writing, compiled from trunk, is [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />Mogenerator is a very useful utility that creates model classes for you when working with Core Data. <a href="http://aralbalkan.com/2152">I've written about Mogenerator before</a> but what I didn't realize is that I wasn't working with the latest version (the version I was using was 1.6.1 and the latest version as of this writing, compiled from trunk, is 1.13.1). </p>
<p>It's easy to get confused as there are several outdated downloads and project pages floating around the web. It appears, however, that <a href="http://github.com/rentzsch/mogenerator/tree/master" title="rentzsch's mogenerator at master - GitHub">this github repository is where Mogenerator is being actively developed</a>.</p>
<p><span id="more-2268"></span></p>
<p>If you're in a rush, here's the <a href="downloads/mogenerator-1.13.1.dmg">Mogenerator 1.13.1 DMG installer</a> (104KB) I built (only tested on my MBP running OS X 10.5.7). </p>
<p>If you'd rather build your own, here are some simple instructions for building and installing the latest version from trunk:</p>
<ol>
<li>Clone the github repository: <code>git clone git://github.com/rentzsch/mogenerator.git</code></li>
<li>Switch to the installer folder: <code>cd mogenerator/installer</code></li>
<li>Build the installer: <code>./make_installer.command</li>
<li>Run the installer: <code>open build/mogenerator-1.13.1.pkg</code></li>
</ol>
<p>Hope this helps!</p>
<p>PS. By the way, in case you're wondering what changed, I didn't see too much difference. A diff between two generated model classes – albeit simple ones – follows (mind you, the insertInManagedObjectContext: had bitten me before):</p>
<pre class="diff"><span style="color: #440088;"><span style="">6</span>,8d5</span>
<span style="color: #991111;">&lt; @implementation SectionID</span>
<span style="color: #991111;">&lt; @end</span>
<span style="color: #991111;">&lt;</span>
<span style="color: #440088;"><span style="">11</span>,19d7</span>
<span style="color: #991111;">&lt; + <span style="">&#40;</span>id<span style="">&#41;</span>insertInManagedObjectContext:<span style="">&#40;</span>NSManagedObjectContext*<span style="">&#41;</span>moc_ <span style="">&#123;</span></span>
<span style="color: #991111;">&lt; 	return <span style="">&#91;</span>NSEntityDescription insertNewObjectForEntityForName:@&quot;Section&quot; inManagedObjectContext:moc_<span style="">&#93;</span>;</span>
<span style="color: #991111;">&lt; <span style="">&#125;</span></span>
<span style="color: #991111;">&lt;</span>
<span style="color: #991111;">&lt; - <span style="">&#40;</span>SectionID*<span style="">&#41;</span>objectID <span style="">&#123;</span></span>
<span style="color: #991111;">&lt; 	return <span style="">&#40;</span>SectionID*<span style="">&#41;</span><span style="">&#91;</span>super objectID<span style="">&#93;</span>;</span>
<span style="color: #991111;">&lt; <span style="">&#125;</span></span>
<span style="color: #991111;">&lt;</span>
<span style="color: #991111;">&lt;</span>
<span style="color: #440088;"><span style="">195</span>,196d182</span>
<span style="color: #991111;">&lt;</span>
&nbsp;</pre>
<p>Update: Hmm, and a bunch of 10.5 specific retains in the generated.h:</p>
<pre class="diff">...
<span style="color: #991111;">&lt; #if defined<span style="">&#40;</span>MAC_OS_X_VERSION_10_5<span style="">&#41;</span> &amp;&amp; MAC_OS_X_VERSION_MAX_ALLOWED &gt;= MAC_OS_X_VERSION_10_5</span>
<span style="color: #991111;">&lt; @property <span style="">&#40;</span>retain<span style="">&#41;</span> NSString *rawSource;</span>
<span style="color: #991111;">&lt; #endif</span>
...</pre>
]]></content:encoded>
			<wfw:commentRss>http://aralbalkan.com/2268/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>An easier way to sign in to T-Mobile UK WiFi HotSpots</title>
		<link>http://aralbalkan.com/2232</link>
		<comments>http://aralbalkan.com/2232#comments</comments>
		<pubDate>Thu, 04 Jun 2009 19:49:47 +0000</pubDate>
		<dc:creator>Aral</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[User Experience]]></category>

		<guid isPermaLink="false">http://aralbalkan.com/2232</guid>
		<description><![CDATA[I can access T-Mobile UK WiFi HotSpots with my T-Mobile Mobile Broadband account (I have a 3G USB stick) but I find the signing in process rather painful. It goes something like this: I have to remember my phone number (I never call my USB Stick so I've never memorized it) and type in my [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />
<div style="float:right; margin-left:1.5em;"><div id="flashcontent1160" style="width:215px; height:180px;"> </div><script type="text/javascript">
<!-- // <![CDATA[
var so = new SWFObject("http://aralbalkan.com/wp-content/plugins/air-badge/AIRInstallBadge.swf", "Badge", "215", "180", "9.0.115", "#FFFFFF");
so.useExpressInstall("http://aralbalkan.com/wp-content/plugins/air-badge/expressinstall.swf");
so.addVariable("airversion", "1.0");
so.addVariable("appname", "TMobileHotSpotSignInAIR");
so.addVariable("appurl", "http://aralbalkan.com/downloads/TMobileHotSpotSignInAIR.air");
so.addVariable("appid", "TMobileHotSpotSignInAIR");
so.addVariable("pubid", "");
so.addVariable("appversion", "1.1");
so.addVariable("imageurl", "http://aralbalkan.com/images/tmobile-air-install-badge.jpg");
so.addVariable("appinstallarg", "installed from web");
so.addVariable("applauncharg", "launched from web");
so.addVariable("helpurl", "help.html");
so.addVariable("hidehelp", "true");
so.addVariable("skiptransition", "false");
so.addVariable("titlecolor", "#00AAFF");
so.addVariable("buttonlabelcolor", "#00AAFF");
so.addVariable("appnamecolor", "#00AAFF");
so.addVariable("str_err_airswf", "<u>Running locally?</u><br/><br/>The AIR proxy swf won't load properly when this demo is run from the local file system.");
so.write("flashcontent1160");
// ]]&gt; -->
</script>
</div>
<p>I can access T-Mobile UK WiFi HotSpots with my <a href="http://www.t-mobile.co.uk/shop/mobile-broadband/" title="Mobile Broadband on Your Laptop">T-Mobile Mobile Broadband account</a> (I have a 3G USB stick) but I find the signing in process rather painful. It goes something like this:</p>
<p><span id="more-2232"></span></p>
<p>I have to remember my phone number (I never call my USB Stick so I've never memorized it) and type in my crazy long password (which I <em>have</em>, apparently memorized). This means that I bring up dashboard, copy my phone number from a sticky note, paste it into the form and then type my password and remember to tick the checkbox so that I agree to T-Mobile's terms and conditions for the millionth time.</p>
<p>Needless to say, this gets old fast. </p>
<p>So, I took a little time out and built a little AIR app to automate the process. You can install it using the AIR badge (works on Mac, Windows, and Linux), above, and you can see it in action in the screencast below.</p>
<p><center><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="576" height="402" id="viddler_aral_11"><param name="movie" value="http://www.viddler.com/player/f5fd9bd5/" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><embed src="http://www.viddler.com/player/f5fd9bd5/" wmode="transparent" width="576" height="402" type="application/x-shockwave-flash" allowScriptAccess="always" allowFullScreen="true" name="viddler_aral_11" /></embed></object></center></p>
<p>I hope someone else out there finds it useful and T-Mobile, if you're listening, get in touch with me at aral@aralbalkan.com if you'd me to make an app like this for you guys.</p>
<p><strong>Update:</strong> Exactly 11 minutes after I tweeted about this, <a href="http://blog.natebeck.net/">Nate Beck</a> from T-Mobile US contacted me and, before the night is over, the app is getting prepped for an internal demo at T-Mobile US next week. </p>
<p>Moral of the story? Never underestimate the power of the Twitternets or the importance of apps, even simple ones, that improve user experience. :)  </p>
<p><img src="http://aralbalkan.com/wp-content/uploads/2009/06/tmobile-hot-spot-sign-in-air.jpg" alt="Tmobile hot Spot Sign in air" height="190" width="295" style="display:none;"></p>
]]></content:encoded>
			<wfw:commentRss>http://aralbalkan.com/2232/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>T-Mobile Web &#8216;n&#8217; Walk [sic] stick manager on OS X (and why you don&#8217;t need it)</title>
		<link>http://aralbalkan.com/1934</link>
		<comments>http://aralbalkan.com/1934#comments</comments>
		<pubDate>Tue, 27 Jan 2009 10:49:22 +0000</pubDate>
		<dc:creator>Aral</dc:creator>
				<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://aralbalkan.com/1934</guid>
		<description><![CDATA[If you're on T-Mobile Web 'n' Walk on a Mac, you probably use the imaginatively-named "stick manager" to connect to the Internet. While it is a remarkable piece of software engineering (with helpful alerts like "Success to Connect!", "Fail to Connect!", and, my favorite, "Success to Disconnect"), it is actually an entirely unnecessary bit of [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />If you're on T-Mobile Web 'n' Walk on a Mac, you probably use the imaginatively-named "stick manager" to connect to the Internet. While it is a remarkable piece of software engineering (with helpful alerts like "Success to Connect!", "Fail to Connect!", and, my favorite, "Success to Disconnect"), it is actually an entirely unnecessary bit of bloatware. </p>
<p>To connect without it, simply open System Preferences, select the HUAWEI Mobile device, and enter the phone number *99# in the Telephone Number section, click Apply, and then Connect.</p>
<p><span id="more-1934"></span></p>
<p>Voilà, you're online! </p>
<p>Or, as they say it in T-Mobile speak: Success to Connect!</p>
]]></content:encoded>
			<wfw:commentRss>http://aralbalkan.com/1934/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc/2.0/uk/</creativeCommons:license>
	</item>
	</channel>
</rss>

