<?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>Cocoanetics &#187; Tools</title>
	<atom:link href="http://www.cocoanetics.com/category/tools/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.cocoanetics.com</link>
	<description>Our DNA is written in Objective-C</description>
	<lastBuildDate>Wed, 08 Feb 2012 15:51:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Linguan Available, Users in Ecstasy</title>
		<link>http://www.cocoanetics.com/2011/11/linguan-available-users-in-ecstasy/</link>
		<comments>http://www.cocoanetics.com/2011/11/linguan-available-users-in-ecstasy/#comments</comments>
		<pubDate>Wed, 09 Nov 2011 14:12:29 +0000</pubDate>
		<dc:creator>Drops</dc:creator>
				<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.cocoanetics.com/?p=5660</guid>
		<description><![CDATA[When I first formed the idea that evolved into Linguan it was because it was a tedious process to edit strings files with text editors and never being sure if you translated everything. In school my Latin teacher told us (incorrectly) that Ecstacy comes from ex (&#8220;out of&#8221;) and tease (&#8220;cause pain&#8221;) and that is what Ecstasy really means: to be without pain. Many years later I was reminded of that because it was a pain (you know where) to deal with translations, especially if you had more than one extra language or had to deal with translators. As soon as you update your app with some new features you instantly lose track what additional tokens which of the translators has to provide a translation for. Linguan comes to the rescue for all of us pained developers. It&#8217;s basically a very smart editor for .strings files. Plus a validator that is able to find inconsistencies and for example if you saved a strings file as UTF8. Plus an export and merge function that lets you send all untranslated tokens of specific languages to translators and merge their results back into your project. And you can even tell your translator to get Linguan because it gives him a nice interface to work through the strings files you send him. Label Buy an ad here Linguan was my first app on the Mac app store and it was created under a partnership with BytePoets. The reason for this was that I am harboring the notion that more can achieved through partnerships than just by yourself. And the result speaks for itself. http://www.youtube.com/watch?v=98s74CROrMw The first user to voice his ecstasy was Joe Carney who has localization for 41 languages in one app he is working on. You can imagine his surprise about all the missing translations that Linguan informed him about. Linguan validates your project and tells you about: if a file is UTF8 instead of UTF16. iOS ignores UTF8 strings files and might cause a bad surprise if you find that your translations don&#8217;t show up. if a token is translated several times. In this case it is not clear which translation is actually being used by the app. if a token is not translated, i.e. missing a translation. Here iOS will fall back to using the token name itself, which might be &#8220;LOGIN_EMAIL&#8221; and look quite weird on a button. Contrary to what I initially believed the comment you put in front of a token is not used as a primary key. So if you have the same token under two different comments then these are still the same. I have seen two ways to use comments in projects and Linguan supports both. First you can use comments to tell the translator about the context that this string is used in because sometimes that might cause him to translate it differently. For this scenario all the comments would be different and verbose. The second method that I personally prefer is to group multiple tokens (e.g. from one view controller) under one comment. Linguan is able to show you either all tokens or group them by comment. The latter option obviously only makes sense if you use the second modus operandi. For short texts you probably want to use the table grid view for translating. But there is also a Wizard mode that has bigger boxes if you have longer texts or multiple lines of text. Linguan is designed to work for the developer as well as the translator. As such you have two modes, one is to open an xcodeproj which will parse the project file and show you a tree of your strings files. The other is to open a single strings file. We want you to recommend to your translators to use Linguan as well because then they won&#8217;t mess up the file structure of text file and you can easily merge in their changes. This is where Linguan is truly amazing. It adds meta-information to the strings file that lets it know from which source file certain tokens originated from. So you could have multiple strings files in your project and have your Spanish translator deal with these in one go. Then when you merge that back into your project all new translations are put where they belong. If you want to add new languages then you have to do that in Xcode before going into Linguan. The reason for this is that we parse the project file, but we don&#8217;t dare to modify it yet. A new localization means that Xcode adds a new lproj folder and copies all localized files into that. For the initial release version we decided against such risky endeavors. Bear in mind that this is version 1.0. So it is possible that [...]]]></description>
			<content:encoded><![CDATA[<div class="plus-one-wrap"><g:plusone href="http://www.cocoanetics.com/2011/11/linguan-available-users-in-ecstasy/"></g:plusone></div><p>When I first formed the idea that evolved into Linguan it was because it was a tedious process to edit strings files with text editors and never being sure if you translated everything. In school my Latin teacher told us (incorrectly) that Ecstacy comes from ex (&#8220;out of&#8221;) and tease (&#8220;cause pain&#8221;) and that is what Ecstasy really means: to be without pain.</p>
<p>Many years later I was reminded of that because it was a pain (you know where) to deal with translations, especially if you had more than one extra language or had to deal with translators. As soon as you update your app with some new features you instantly lose track what additional tokens which of the translators has to provide a translation for.</p>
<p>Linguan comes to the rescue for all of us pained developers. It&#8217;s basically a very smart editor for .strings files. Plus a validator that is able to find inconsistencies and for example if you saved a strings file as UTF8. Plus an export and merge function that lets you send all untranslated tokens of specific languages to translators and merge their results back into your project. And you can even tell your translator to get Linguan because it gives him a nice interface to work through the strings files you send him.</p>
<p><span id="more-5660"></span></p>
<div class="inner_ad_block">
<div id="advman-7" class="widget Advman_Widget">
<h3 class="widgettitle"></h3>
<p><!-- BuySellAds.com Zone Code --></p>
<div id="bsap_1260346" class="bsarocks bsap_fc3166ea4a479e0fdb4251fbe92a1219"></div>
<p><!-- End BuySellAds.com Zone Code --></div>
<div id="text-21" class="widget widget_text">
<h3 class="widgettitle">Label</h3>
<div class="textwidget">
<div class="advert-notice"><a href="http://buysellads.com/buy/detail/56639/zone/1260346">Buy an ad here</a></div>
</div></div>
</div>
<p>Linguan was my first app on the Mac app store and it was created under a partnership with BytePoets. The reason for this was that I am harboring the notion that more can achieved through partnerships than just by yourself. And the result speaks for itself.</p>
<p><a href="http://www.youtube.com/watch?v=98s74CROrMw">http://www.youtube.com/watch?v=98s74CROrMw</a></p>
<p>The first user to voice his ecstasy was Joe Carney who has localization for 41 languages in one app he is working on. You can imagine his surprise about all the missing translations that Linguan informed him about.</p>
<p><a href="http://www.cocoanetics.com/files/CellULike.xcodeproj.png"><img class="alignnone size-full wp-image-5661" title="CellULike in Linguan" src="http://www.cocoanetics.com/files/CellULike.xcodeproj.png" alt="" width="705" height="513" /></a></p>
<p>Linguan validates your project and tells you about:</p>
<ul>
<li>if a file is UTF8 instead of UTF16. iOS ignores UTF8 strings files and might cause a bad surprise if you find that your translations don&#8217;t show up.</li>
<li>if a token is translated several times. In this case it is not clear which translation is actually being used by the app.</li>
<li>if a token is not translated, i.e. missing a translation. Here iOS will fall back to using the token name itself, which might be &#8220;LOGIN_EMAIL&#8221; and look quite weird on a button.</li>
</ul>
<p>Contrary to what I initially believed the comment you put in front of a token is not used as a primary key. So if you have the same token under two different comments then these are still the same.</p>
<p>I have seen two ways to use comments in projects and Linguan supports both. First you can use comments to tell the translator about the context that this string is used in because sometimes that might cause him to translate it differently. For this scenario all the comments would be different and verbose. The second method that I personally prefer is to group multiple tokens (e.g. from one view controller) under one comment. Linguan is able to show you either all tokens or group them by comment. The latter option obviously only makes sense if you use the second modus operandi.</p>
<p>For short texts you probably want to use the table grid view for translating. But there is also a Wizard mode that has bigger boxes if you have longer texts or multiple lines of text.</p>
<p><a href="http://www.cocoanetics.com/files/png"><img class="alignnone size-full wp-image-5662" title="Linguan Wizard" src="http://www.cocoanetics.com/files/png" alt="" width="368" height="286" /></a></p>
<p>Linguan is designed to work for the developer as well as the translator. As such you have two modes, one is to open an xcodeproj which will parse the project file and show you a tree of your strings files. The other is to open a single strings file. We want you to recommend to your translators to use Linguan as well because then they won&#8217;t mess up the file structure of text file and you can easily merge in their changes.</p>
<p>This is where Linguan is truly amazing. It adds meta-information to the strings file that lets it know from which source file certain tokens originated from. So you could have multiple strings files in your project and have your Spanish translator deal with these in one go. Then when you merge that back into your project all new translations are put where they belong.</p>
<p>If you want to add new languages then you have to do that in Xcode before going into Linguan. The reason for this is that we parse the project file, but we don&#8217;t dare to modify it yet. A new localization means that Xcode adds a new lproj folder and copies all localized files into that. For the initial release version we decided against such risky endeavors.</p>
<p>Bear in mind that this is version 1.0. So it is possible that you find something that&#8217;s not working as expected or that you can think of features that would be nice to have. Hey <em>&#8220;real artists ship&#8221;</em> and so we did.</p>
<p>We believe that Linguan provides a piece of functionality that should have been provided by Apple, but wasn&#8217;t. So we tried to make a tool thats worthy of being mentioned with Xcode on the same breath. Check it out <a href="http://bitly.com/Linguan">on the Mac App Store</a>. If you find any issues or have feature requests then you can use <a href="https://bugs.cocoanetics.com">our bug tracker</a> for that.</p>
 <p><a href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=5660&amp;md5=97e26de64c70387a46f964826e74ef39" title="Flattr" target="_blank"><img src="http://www.cocoanetics.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cocoanetics.com/2011/11/linguan-available-users-in-ecstasy/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		<atom:link rel="payment" href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=5660&amp;md5=97e26de64c70387a46f964826e74ef39" type="text/html" />"
	</item>
		<item>
		<title>Hardware for Developing and Testing</title>
		<link>http://www.cocoanetics.com/2011/08/hardware-for-developing-and-testing/</link>
		<comments>http://www.cocoanetics.com/2011/08/hardware-for-developing-and-testing/#comments</comments>
		<pubDate>Tue, 02 Aug 2011 07:56:26 +0000</pubDate>
		<dc:creator>Drops</dc:creator>
				<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.cocoanetics.com/?p=5309</guid>
		<description><![CDATA[Devin Snipes asks: 1. When it comes to iOS programming, does it matter what type of machine you have? I&#8217;m using a 2010 MacBook Air, and everything feels fine, although I&#8217;ve heard from some developers that xcode feels sluggish on 4GB of ram and they must get every Mac that comes out. 2. When compiling and submitting an app for 3.1.3, is it best to test your apps on all devices (i.e first generation devices) or would my iPhone 4 and the simulator do the trick? Thank you for taking the time to answer my questions. Although I could perform a simple Google search for these questions, I&#8217;d prefer to get the answer from a well-known, trusted iOS developer. It&#8217;s early in the morning and I am extraordinarily grumpy. But since you asked nicely I&#8217;ll try to give you my opinion. Label Buy an ad here What hardware you use to develop on is mostly up to you and your personal tastes. I would draw the distinction between hobbyist and pro by looking at what percentage of income you derive from your development work. Theoretically you could build iOS apps with a text editor and command line compiler, a practice that Erica Sadun has shown us in her earlier books. ONE If you program iOS apps as a hobby then the cheaper you get the better. The minimum hardware requirement is still that you at least have an Intel processor. But since you want to enjoy your hobby it would recommend any hardware that can at least run Lion, which means that its a 64-bit capable CPU. The reason for Lion is that there you get the Mac app store and in this you can find Xcode 4.1 for free. I recommend this for a specific reason: delta updates. Apple has promised us these at WWDC and with that it should be far less painful in the future when a new SDK comes out. So there&#8217;s not really a TECHNICAL reason to get the latest hardware for hobbyists, only that the newest gadgets are possibly enhancing people&#8217;s perceived enjoyment. And enjoyment is what a hobby is all about. And psychologists tell us that we are masters of finding seemingly rational reasons to justify our impulse purchases later. Original: &#8220;Boy my old Mac felt sluggish with the new Xcode. I had to get a new one because I couldn&#8217;t work like this.&#8221;. Translation: &#8220;Boy am I cool because my new Mac is so shiny and I am so hip to already have downloaded the latest cutting edge Xcode build.&#8221; Since cost must be low most hobbyists are getting a MacBook that they can afford. MacMinis would work well too, but it&#8217;s harder to justify 2 Macs to your wife if you don&#8217;t have sufficient income to show for that. Now for professional developers the story is somewhat different. I count you as a professional if you derive sufficient income from your programming to live off it. This should also let you have a budget for devices. Since devices are your working tools their purchase is a business expense and you can deduct a certain depreciation from your annual income. Where I live the accounting lifetime of any device over 400 Euros is 3 years. Below that limit it is 1 year. That means I don&#8217;t pay VAT on my devices and it also means that I am taxed on slightly less annual income. This totals to an estimated 30% of the sticker price of the device that I am spending less as compared to a regular person. Let&#8217;s face it, at 30% off any Mac is a total bargain. Then there&#8217;s also the working efficiency factor. If your hardware lets you churn out more code in less time and debugging is faster then you can get more done. Working faster means earning more money or actually being able to go home at a reasonable time. The current trend I see amongst professionals is to go with a 27&#8243; iMac to put in your office and supplement that with a 11&#8243; MacBook Air for traveling. For all the new panels and editors in Xcode 4 you definitely want to have a large monitor, much larger than what you have with a 17&#8243; MacBook. 27&#8243; work very well for me. Some people are still sticking to the single-Mac approach, but even these would have a large monitor sitting in their office to connect to. I myself belong to the 2 device crowd and I like that I have a working machine to go to during the day. And for anything away from the office I have my Air. I generally try to refresh my hardware every 2 years. If business is going really well and I have some budget left, then I might even [...]]]></description>
			<content:encoded><![CDATA[<div class="plus-one-wrap"><g:plusone href="http://www.cocoanetics.com/2011/08/hardware-for-developing-and-testing/"></g:plusone></div><p><a href="http://www.cocoapedia.org/wiki/Devin_Snipes">Devin Snipes</a> asks:</p>
<blockquote><p>
1. When it comes to iOS programming, does it matter what type of machine you have? I&#8217;m using a 2010 MacBook Air, and everything feels fine, although I&#8217;ve heard from some developers that xcode feels sluggish on 4GB of ram and they must get every Mac that comes out.</p>
<p>2. When compiling and submitting an app for 3.1.3, is it best to test your apps on all devices (i.e first generation devices) or would my iPhone 4 and the simulator do the trick?</p>
<p>Thank you for taking the time to answer my questions. Although I could perform a simple Google search for these questions, I&#8217;d prefer to get the answer from a well-known, trusted iOS developer.</p></blockquote>
<p>It&#8217;s early in the morning and I am extraordinarily grumpy. But since you asked nicely I&#8217;ll try to give you my opinion.</p>
<p><span id="more-5309"></span></p>
<div class="inner_ad_block">
<div id="advman-7" class="widget Advman_Widget">
<h3 class="widgettitle"></h3>
<p><!-- BuySellAds.com Zone Code --></p>
<div id="bsap_1260346" class="bsarocks bsap_fc3166ea4a479e0fdb4251fbe92a1219"></div>
<p><!-- End BuySellAds.com Zone Code --></div>
<div id="text-21" class="widget widget_text">
<h3 class="widgettitle">Label</h3>
<div class="textwidget">
<div class="advert-notice"><a href="http://buysellads.com/buy/detail/56639/zone/1260346">Buy an ad here</a></div>
</div></div>
</div>
<p>What hardware you use to develop on is mostly up to you and your personal tastes. I would draw the distinction between hobbyist and pro by looking at what percentage of income you derive from your development work. Theoretically you could build iOS apps with a text editor and command line compiler, a practice that Erica Sadun has shown us in her earlier books.</p>
<h3>ONE</h3>
<p>If you program iOS apps as a <strong>hobby</strong> then the cheaper you get the better. The minimum hardware requirement is still that you at least have an Intel processor. But since you want to enjoy your hobby it would recommend any hardware that can at least run Lion, which means that its a 64-bit capable CPU. The reason for Lion is that there you get the Mac app store and in this you can find Xcode 4.1 for free. I recommend this for a specific reason: delta updates. Apple has promised us these at WWDC and with that it should be far less painful in the future when a new SDK comes out.</p>
<p>So there&#8217;s not really a TECHNICAL reason to get the latest hardware for hobbyists, only that the newest gadgets are possibly enhancing people&#8217;s perceived enjoyment. And enjoyment is what a hobby is all about. And psychologists tell us that we are masters of finding seemingly rational reasons to justify our impulse purchases later.</p>
<blockquote><p>Original: &#8220;Boy my old Mac felt sluggish with the new Xcode. I had to get a new one because I couldn&#8217;t work like this.&#8221;.</p>
<p>Translation: &#8220;Boy am I cool because my new Mac is so shiny and I am so hip to already have downloaded the latest cutting edge Xcode build.&#8221;</p></blockquote>
<p>Since cost must be low most hobbyists are getting a MacBook that they can afford. MacMinis would work well too, but it&#8217;s harder to justify 2 Macs to your wife if you don&#8217;t have sufficient income to show for that.</p>
<p>Now for <strong>professional developers</strong> the story is somewhat different. I count you as a professional if you derive sufficient income from your programming to live off it. This should also let you have a budget for devices.</p>
<p>Since devices are your working tools their purchase is a business expense and you can deduct a certain depreciation from your annual income. Where I live the accounting lifetime of any device over 400 Euros is 3 years. Below that limit it is 1 year. That means I don&#8217;t pay VAT on my devices and it also means that I am taxed on slightly less annual income. This totals to an estimated 30% of the sticker price of the device that I am spending less as compared to a regular person. Let&#8217;s face it, at 30% off any Mac is a total bargain.</p>
<p>Then there&#8217;s also the working efficiency factor. If your hardware lets you churn out more code in less time and debugging is faster then you can get more done. Working faster means earning more money or actually being able to go home at a reasonable time.</p>
<p>The current trend I see amongst professionals is to go with a 27&#8243; iMac to put in your office and supplement that with a 11&#8243; MacBook Air for traveling. For all the new panels and editors in Xcode 4 you definitely want to have a large monitor, much larger than what you have with a 17&#8243; MacBook. 27&#8243; work very well for me. Some people are still sticking to the single-Mac approach, but even these would have a large monitor sitting in their office to connect to.</p>
<p>I myself belong to the 2 device crowd and I like that I have a working machine to go to during the day. And for anything away from the office I have my Air. I generally try to refresh my hardware every 2 years. If business is going really well and I have some budget left, then I might even go for annually. The great thing about Macs is that they tend to keep their value very well (as long as they are supported by the most recent OS). A PC is next to worthless after 3 years, that&#8217;s why tax law has these 3 year depreciation duration. But Macs of the same age are still totally usable and would still be worth something. So after the Mac is written off you can take it out of your company for free and then sell it privately for profit.</p>
<p>In the past I often lent some replaced hardware to a friend in need or passed it to family members. One can never have too many Macs. <img src='http://www.cocoanetics.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<h3>TWO</h3>
<p>You have to have a physical device available for any OS version you plan to support. Xcode 4.1 on the app store no longer comes with a 3.x simulator. Therefore to support iOS 3.1.3 it is essential to have either a first generation iPhone or iPod Touch available. You probably have set the SDK in all your project to &#8220;Latest OS&#8221; as is recommended. So you will find that all your code builds well, but when it runs on device it crashes with unrecognized selectors. Not testing for these problems on a physical device is asking for trouble.</p>
<p>Supporting older versions of the OS is a very tedious process, with lots of tricks to disable new features when they are not available. Something that I don&#8217;t see any reasonable hobbyist developer do. This is something that&#8217;s more the pro domain. And pros do it not because they enjoy it, but because they are paid by their clients for it because they believe that they will get more downloads like this.</p>
<p>You might think that to support iOS 3 and 4 is only the difference of supporting backgrounding on 4. This is one technology that can be added softly. But what about blocks? Starting with iOS 4 blocks are becoming the de facto standard for completion handlers and such. And there is no 3-compatible way to use these. Same is true for Grand Central Dispatch which is truly awesome once you start using it. So sticking with 3.x keeps you from learning and growing. And probably decrease your enjoyment of your hobby.</p>
<p>So for hobbyists I recommend ditching support for a deprecated iOS version as soon as the majority of users have updated and this usually seems to be the case about 6 to 9 months after the official release. The only reason in my humble opinion why there are still some people holding out is that they had a &#8220;friend&#8221; jailbreak their iPhone and don&#8217;t know how to keep their device unjailbroken when updating. I won&#8217;t go into the reasons people have for that in this article, but suffice it to say that these are a minority.</p>
<p>Requiring 4.x makes your live easier when it comes to testing devices as well. Since 4.3.5 is the latest stable iOS version you can use your main iPhone for testing. Once you have taken this step your question becomes, where to experiment with iOS 5 on&#8230;. several attendees of WWDC 2011 where spotted in the nearby Apple store to purchase a &#8220;sacrificial iPod Touch&#8221; for this purpose. Daredevils like myself don&#8217;t use protection, they <a title="Is it safe to install iOS 5 on your everyday iPhone?" href="http://www.cocoanetics.com/2011/06/safe-to-install-ios5/">test it on their main device</a>.</p>
<p>Again, the answer has to be different for professional developers who actually get paid to bear a certain amount of tedium. The same holds true here as for the Macs. Since you are bound to refresh frequently you will probably have a number of iPhones around to keep an older iOS on. I have had all iPhones: original, 3G, 3GS and 4. All still in working condition. Or if you don&#8217;t then you can easily get an older generation iPod Touch for that purpose.</p>
<p>That much for supporting and enhancing existing software. What about new apps? Just recently Scribd launched the <a title="Start Floating" href="http://www.cocoanetics.com/2011/07/start-floating/">Float Reader</a> and there they decided to be requiring 4.0 and above. And still the app made top 10 in most markets in the News category. This is a perfect case study in how ditching support for an old iOS version as well as deferring iPad support sped up the time to market. Focus.</p>
<p>Long story short: one physical device per iOS version. Hobbyists should try to minimize the number of supported iOS versions. Pros are getting paid for the extra work of keeping backward compatibility.</p>
 <p><a href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=5309&amp;md5=77972b42ad04140de3096ef84c5458fe" title="Flattr" target="_blank"><img src="http://www.cocoanetics.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cocoanetics.com/2011/08/hardware-for-developing-and-testing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<atom:link rel="payment" href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=5309&amp;md5=77972b42ad04140de3096ef84c5458fe" type="text/html" />"
	</item>
		<item>
		<title>UIWebView must die</title>
		<link>http://www.cocoanetics.com/2011/01/uiwebview-must-die/</link>
		<comments>http://www.cocoanetics.com/2011/01/uiwebview-must-die/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 09:18:32 +0000</pubDate>
		<dc:creator>Drops</dc:creator>
				<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.cocoanetics.com/?p=4654</guid>
		<description><![CDATA[Almost always when we iOS developers want to display some rich text we are using UIWebView. That&#8217;s not by choice, since traditionally Apple did not provide any classes to us being able to show formatted text. That changed slightly with the iPad, because in 3.2 we got CoreText as well as CATextLayer. CoreText gives us NSAttributedString which is basically a string that can have different attributes for ranges of characters. Those attributes can either be standard ones, like to describe the font, color, size and paragraph format. Or they can be your own arbitrary attributes. I&#8217;ve shown how to programmatically construct these in my previous article on CoreText. The one thing though that is still missing from making CoreText really useful are ways to create attributed strings. Clearly doing it all in code is not feasable. In this article I am introducing an Open Source project that aims to provide the missing functionality to iOS developers. Label Buy an ad here The Dilemma UIWebView is a wrapper class around Webkit and unfortunately Apple does not want to give us more control over it. Possibly so that nobody goes and breaks it. These are only some of the drawbacks: You cannot properly control generation of thumbnails or bitmaps Webkit is not threadsafe (according to Apple documentation), so you risk blocking your main thread and UI if you render graphics with it No (official) control over the shade shown around the content, like removing it if it does not work well in your app style. It&#8217;s slow compared to regular drawing, even a local HTML document first shows a blank screen until it appears if you ditch the rich and just keep the text, then UITextView seems like an option, but you cannot affect the styling of (detected) hyperlinks and each such links exits your app While there are certain unofficial workarounds the general situation is unbearable if you want to use rich text. Use WebView or render your about screens as PNGs, adding all the additional overhead of having to redo everything if you&#8217;re just changing like a version number of the app. Looking at NSAttributedString.h on the Mac, you find some very interesting methods, commented by Apple as &#8220;The following methods should now be considered as conveniences for various common document types.&#8221; - (id)initWithRTF:(NSData *)data documentAttributes:(NSDictionary **)dict; - (id)initWithRTFD:(NSData *)data documentAttributes:(NSDictionary **)dict; - (id)initWithHTML:(NSData *)data documentAttributes:(NSDictionary **)dict; - (id)initWithHTML:(NSData *)data baseURL:(NSURL *)base documentAttributes:(NSDictionary **)dict; - (id)initWithDocFormat:(NSData *)data documentAttributes:(NSDictionary **)dict; - (id)initWithHTML:(NSData *)data options:(NSDictionary *)options documentAttributes:(NSDictionary **)dict; And convenient they ARE, just not to us. Let this sink in a bit: those Mac types have methods to read RTF, Word Doc and HTML files into NSAttributedStrings. It&#8217;s SO UNFAIR. The Solution We can never hope to duplicate all the richness and features of Webkit, BUT my tests have show that if you have control over the quality of the HTML code &#8211; like if it&#8217;s your own for a credits screen &#8211; then it is absolutely feasable to provide a category on NSAttributedString that generates these from your HTML. For this exact purpose I started an Open Source project on GitHub: NSAttributedString-Additions-for-HTML. Now I have an inkling that Apple will eventually port the above mentioned &#8220;convenient methods&#8221; to iOS as well, maybe as soon as in SDK 5. But when do you think will the majority of your customers have iOS 5 on their devices? If the adoption rate of iOS 4 is any indication then this will take until spring 2012. Using our code literally gives you a one year head start. Also you have an option of falling back to UIWebView on devices running an iOS before 3.2 and falling forward to these official methods &#8211; if they ever come &#8211; if you find them to be available on the users iOS 5 device. Our initWithHTML methods aim to perfectly match the output from the Mac version. This is possible to achieve for characters and I have unit tests in place that make certain this keeps being perfect. Regarding the attributes there are many things that have to be done slightly different on iOS to achieve the same look. I won&#8217;t bother you with the details there. But this is only the first part of the story. You might have thought that all you need is to get these pesky NSAttributedStrings and then CATextLayer will do the rest. &#8216;fraid not. CATextLayer does not obey paragraph formatting and it does not deal with images and link interactivity. This might change in future versions, but so far CATextLayer is only good if you want to display static text on a button or label. This is why we are also developing DTAttributedTextView and DTAttributedTextContentView. The first being a scrollview subclass for longer text and the latter being responsible for the drawing itself. This is [...]]]></description>
			<content:encoded><![CDATA[<div class="plus-one-wrap"><g:plusone href="http://www.cocoanetics.com/2011/01/uiwebview-must-die/"></g:plusone></div><p>Almost always when we iOS developers want to display some rich text we are using UIWebView. That&#8217;s not by choice, since traditionally Apple did not provide any classes to us being able to show formatted text.</p>
<p>That changed slightly with the iPad, because in 3.2 we got CoreText as well as CATextLayer. CoreText gives us NSAttributedString which is basically a string that can have different attributes for ranges of characters. Those attributes can either be standard ones, like to describe the font, color, size and paragraph format. Or they can be your own arbitrary attributes.</p>
<p>I&#8217;ve shown how to programmatically construct these in my<a href="http://www.cocoanetics.com/2011/01/befriending-core-text/"> previous article on CoreText</a>. The one thing though that is still missing from making CoreText really useful are ways to create attributed strings. Clearly doing it all in code is not feasable.</p>
<p>In this article I am introducing an Open Source project that aims to provide the missing functionality to iOS developers.</p>
<p><span id="more-4654"></span></p>
<div class="inner_ad_block">
<div id="advman-7" class="widget Advman_Widget">
<h3 class="widgettitle"></h3>
<p><!-- BuySellAds.com Zone Code --></p>
<div id="bsap_1260346" class="bsarocks bsap_fc3166ea4a479e0fdb4251fbe92a1219"></div>
<p><!-- End BuySellAds.com Zone Code --></div>
<div id="text-21" class="widget widget_text">
<h3 class="widgettitle">Label</h3>
<div class="textwidget">
<div class="advert-notice"><a href="http://buysellads.com/buy/detail/56639/zone/1260346">Buy an ad here</a></div>
</div></div>
</div>
<p><strong>The Dilemma</strong></p>
<p>UIWebView is a wrapper class around Webkit and unfortunately Apple does not want to give us more control over it. Possibly so that nobody goes and breaks it. These are only some of the drawbacks:</p>
<ul>
<li>You cannot properly control generation of thumbnails or bitmaps</li>
<li>Webkit is not threadsafe (according to <a href="http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/DisplayWebContent/DisplayWebContent.html">Apple documentation</a>), so you risk blocking your main thread and UI if you render graphics with it</li>
<li>No (official) control over the shade shown around the content, like removing it if it does not work well in your app style.</li>
<li>It&#8217;s slow compared to regular drawing, even a local HTML document first shows a blank screen until it appears</li>
<li>if you ditch the rich and just keep the text, then UITextView seems like an option, but you cannot affect the styling of (detected) hyperlinks and each such links exits your app</li>
</ul>
<p>While there are certain unofficial workarounds the general situation is unbearable if you want to use rich text. Use WebView or render your about screens as PNGs, adding all the additional overhead of having to redo everything if you&#8217;re just changing like a version number of the app.</p>
<p>Looking at NSAttributedString.h on the Mac, you find some very interesting methods, commented by Apple as <em>&#8220;The following methods should now be considered as conveniences for various common document types.&#8221;</em></p>
<ul>
<li>- (id)initWithRTF:(NSData *)data documentAttributes:(NSDictionary **)dict;</li>
<li>- (id)initWithRTFD:(NSData *)data documentAttributes:(NSDictionary **)dict;</li>
<li>- (id)initWithHTML:(NSData *)data documentAttributes:(NSDictionary **)dict;</li>
<li>- (id)initWithHTML:(NSData *)data baseURL:(NSURL *)base documentAttributes:(NSDictionary **)dict;</li>
<li>- (id)initWithDocFormat:(NSData *)data documentAttributes:(NSDictionary **)dict;</li>
<li>- (id)initWithHTML:(NSData *)data options:(NSDictionary *)options documentAttributes:(NSDictionary **)dict;</li>
</ul>
<p>And convenient they ARE, just not to us. Let this sink in a bit: those Mac types have methods to read RTF, Word Doc and HTML files into NSAttributedStrings. It&#8217;s SO UNFAIR. <img src='http://www.cocoanetics.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h3>The Solution</h3>
<p><a href="http://www.cocoanetics.com/files/Screen-shot-2011-01-21-at-10.16.04-AM.png"><img class="alignright size-full wp-image-4655" title="Read Me in Demo" src="http://www.cocoanetics.com/files/Screen-shot-2011-01-21-at-10.16.04-AM.png" alt="" width="238" height="446" /></a>We can never hope to duplicate all the richness and features of Webkit, BUT my tests have show that if you have control over the quality of the HTML code &#8211; like if it&#8217;s your own for a credits screen &#8211; then it is absolutely feasable to provide a category on NSAttributedString that generates these from your HTML.</p>
<p>For this exact purpose I started an Open Source project on GitHub: <a href="https://github.com/Cocoanetics/NSAttributedString-Additions-for-HTML">NSAttributedString-Additions-for-HTML</a>.</p>
<p>Now I have an inkling that Apple will eventually port the above mentioned &#8220;convenient methods&#8221; to iOS as well, maybe as soon as in SDK 5. But when do you think will the majority of your customers have iOS 5 on their devices? If the adoption rate of iOS 4 is any indication then this will take until spring 2012. Using our code literally gives you a one year head start.</p>
<p>Also you have an option of falling back to UIWebView on devices running an iOS before 3.2 and falling forward to these official methods &#8211; if they ever come &#8211; if you find them to be available on the users iOS 5 device.</p>
<p>Our <strong>initWithHTML</strong> methods aim to perfectly match the output from the Mac version. This is possible to achieve for characters and I have unit tests in place that make certain this keeps being perfect. Regarding the attributes there are many things that have to be done slightly different on iOS to achieve the same look. I won&#8217;t bother you with the details there.</p>
<p>But this is only the first part of the story. You might have thought that all you need is to get these pesky NSAttributedStrings and then CATextLayer will do the rest. &#8216;fraid not. CATextLayer does not obey paragraph formatting and it does not deal with images and link interactivity. This might change in future versions, but so far CATextLayer is only good if you want to display static text on a button or label.</p>
<p>This is why we are also developing <strong>DTAttributedTextView</strong> and <strong>DTAttributedTextContentView</strong>. The first being a scrollview subclass for longer text and the latter being responsible for the drawing itself. This is this the perfect replacement for UITextView or UIWebView.</p>
<p>Another level of improving over what web views give you is the way of customization you can do. DTAttributedTextContentView asks a delegate for a custom UIView for each glyph run on screen, providing the coordinates for it. This way you can add interactivity or custom UIViews to your HTML as you could never do before. An example shows adding a movie player for a HTML5 video tag. Many more options are possible, like adding custom rendering for SVG images.</p>
<p>This project wants to give you an option to NOT use UIWebView where you don&#8217;t actually need the whole browsing experience, but just rich text and hyperlinks.</p>
<p>You have two ways how you can get the source: you can either download a ZIP/TAR or you can clone the git repo. The latter option allows you to get the updates that get added now on a daily basis.</p>
<h3>The Future</h3>
<p>Development on this component continues are more an more people implement it into their iOS apps. If you find some HTML that does not come out right, then please send it to us for inspection so that we can add or tweak the HTML parser to deal with it properly. Let&#8217;s call that &#8220;purpose-driven development&#8221;.</p>
<p>My long term goal for this is actually something even more ambitious: a Rich-Text editor. I am envisioning creating a component that allows you to edit NSAttributedStrings, copy/paste and generate HTML from it. Maybe Apple will finally give us something like this in iOS 5, keeping our fingers crossed. I have the theory that the rich text editing in the iOS apps are a taste of the things to come to iOS 5. But if this fails to materialize then I will endeavor to fill this void.</p>
<p>A US-based company has expressed interest in sponsoring development of additional needed features for displaying digital documents. Add this monetary incentive to the fact that I am now spending mornings adding new features and fixing stuff you will find that this project is growing in leaps and bounds.</p>
<p>As any FOSS initiative it also depends on people making modifications, improvements and fixing bugs to then let me pull these changes into my master repository. So please have a look at the project and begin to replace web views where possible. The snags you might hit there are invaluable feedback to us to know what we still need to work on.</p>
 <p><a href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=4654&amp;md5=6af03fcc94d500bb96a0fe0c17696105" title="Flattr" target="_blank"><img src="http://www.cocoanetics.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cocoanetics.com/2011/01/uiwebview-must-die/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		<atom:link rel="payment" href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=4654&amp;md5=6af03fcc94d500bb96a0fe0c17696105" type="text/html" />"
	</item>
		<item>
		<title>Wooden Stands for iPad and iPhone</title>
		<link>http://www.cocoanetics.com/2010/12/wooden-stands-for-ipad-and-iphone/</link>
		<comments>http://www.cocoanetics.com/2010/12/wooden-stands-for-ipad-and-iphone/#comments</comments>
		<pubDate>Thu, 02 Dec 2010 18:50:50 +0000</pubDate>
		<dc:creator>Drops</dc:creator>
				<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.cocoanetics.com/?p=4195</guid>
		<description><![CDATA[A few days ago I mentioned to my father-in-law Alois (who happens to be a passionate wood tinkerer) that it would be nice to have something to prop up an iPad for watching movies or playing poker. A quick search yielded one at Wired, a website woodenipadstands.com and the one that Matt Legend Gemmell had recomended: WoodPad A mere four days later he presented these prototypes to us. Ingenious! You can see that it works well in portrait and landscape and the iPad stand has two angles at which you can use them, 15 and 25 Degrees. To make it stand even firmer he extended to pieces at the base, so it sits rock-solid on your table. The 15 Degrees also work very well with the picture frame mode which does support landscape as well. Label Buy an ad here Since the iPhone has much less weight the construction of a wooden stand for it was much simpler. Not only does it look nicer than Apple&#8217;s white plastic dock  you can also keep your iPhone sideways and charge it at the same time. Alois enjoys working with wood so much that he is filling larger and larger orders for bird houses (two models, for feeding and breeding). So I asked him if he would be interested in building these docks to order as well and how much he would charge. He quoted 15 Euros. He is a very modest person. If you&#8217;d like to get such a unique hand-crafted stand, made by Alois in Austria, just mail me your order. Shipping is extra, PayPal accepted. UPDATE: Several variations are possible for the iPhone stand. All are made of light and dark beech wood and the angles vary a bit, but the iPhone itself is always at 15 Degrees. We decided to charge 20 Euros plus Shipping for them because. Alois announced that he will donate all proceeds to a good cause anyway because manufacturing these is a hobby for him.]]></description>
			<content:encoded><![CDATA[<div class="plus-one-wrap"><g:plusone href="http://www.cocoanetics.com/2010/12/wooden-stands-for-ipad-and-iphone/"></g:plusone></div><p>A few days ago I mentioned to my father-in-law Alois (who happens to be a passionate wood tinkerer) that it would be nice to have something to prop up an iPad for watching movies or playing poker. A quick search yielded one at <a href="http://www.wired.com/gadgetlab/2010/07/wooden-ipad-stand-doubles-as-kitchen-accessory/">Wired</a>, a website <a href="http://www.woodenipadstands.com/">woodenipadstands.com</a> and the one that <a href="http://www.cocoapedia.org/wiki/Matt_Gemmell">Matt Legend Gemmell</a> had recomended: <a href="http://www.woodpad.co.uk/">WoodPad</a></p>
<p>A mere four days later he presented these prototypes to us. Ingenious!</p>
<p><a href="http://www.cocoanetics.com/files/Holz_iPad.jpg"><img class="size-full wp-image-4196 alignnone" title="Wooden iPad Stand" src="http://www.cocoanetics.com/files/Holz_iPad.jpg" alt="" width="614" height="461" /></a></p>
<p>You can see that it works well in portrait and landscape and the iPad stand has two angles at which you can use them, 15 and 25 Degrees. To make it stand even firmer he extended to pieces at the base, so it sits rock-solid on your table. The 15 Degrees also work very well with the picture frame mode which does support landscape as well.</p>
<p><span id="more-4195"></span></p>
<div class="inner_ad_block">
<div id="advman-7" class="widget Advman_Widget">
<h3 class="widgettitle"></h3>
<p><!-- BuySellAds.com Zone Code --></p>
<div id="bsap_1260346" class="bsarocks bsap_fc3166ea4a479e0fdb4251fbe92a1219"></div>
<p><!-- End BuySellAds.com Zone Code --></div>
<div id="text-21" class="widget widget_text">
<h3 class="widgettitle">Label</h3>
<div class="textwidget">
<div class="advert-notice"><a href="http://buysellads.com/buy/detail/56639/zone/1260346">Buy an ad here</a></div>
</div></div>
</div>
<p><a href="http://www.cocoanetics.com/files/Holz_iPad_2.jpg"><img class="size-full wp-image-4197 alignnone" title="Wooden iPad Stand from Side" src="http://www.cocoanetics.com/files/Holz_iPad_2.jpg" alt="" width="461" height="614" /></a></p>
<p>Since the iPhone has much less weight the construction of a wooden stand for it was much simpler. Not only does it look nicer than Apple&#8217;s white plastic dock  you can also keep your iPhone sideways and charge it at the same time.</p>
<p><a href="http://www.cocoanetics.com/files/Holz_iPhone.jpg"><img class="alignnone size-full wp-image-4198" title="Wooden iPhone Stand" src="http://www.cocoanetics.com/files/Holz_iPhone.jpg" alt="" width="614" height="459" /></a></p>
<p>Alois enjoys working with wood so much that he is filling larger and larger orders for bird houses (two models, for feeding and breeding). So I asked him if he would be interested in building these docks to order as well and how much he would charge. He quoted 15 Euros. He is a very modest person.</p>
<p>If you&#8217;d like to get such a unique hand-crafted stand, made by Alois in Austria, just mail me your order. Shipping is extra, PayPal accepted. <img src='http://www.cocoanetics.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>UPDATE: Several variations are possible for the iPhone stand.</p>
<p><a href="http://www.cocoanetics.com/files/Screen-shot-2010-12-06-at-11.48.57-AM.png"><img class="alignnone size-full wp-image-4237" title="iPhone Stands A, B, C" src="http://www.cocoanetics.com/files/Screen-shot-2010-12-06-at-11.48.57-AM.png" alt="" width="535" height="352" /></a> <a href="http://www.cocoanetics.com/files/Screen-shot-2010-12-06-at-11.49.32-AM.png"><img class="alignnone size-full wp-image-4238" title="iPhone Stands A, B, C from side" src="http://www.cocoanetics.com/files/Screen-shot-2010-12-06-at-11.49.32-AM.png" alt="" width="499" height="354" /></a></p>
<p>All are made of light and dark beech wood and the angles vary a bit, but the iPhone itself is always at 15 Degrees. We decided to charge 20 Euros plus Shipping for them because. Alois announced that he will donate all proceeds to a good cause anyway because manufacturing these is a hobby for him.</p>
 <p><a href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=4195&amp;md5=7c274e435d2e2683ba590677af63bacd" title="Flattr" target="_blank"><img src="http://www.cocoanetics.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cocoanetics.com/2010/12/wooden-stands-for-ipad-and-iphone/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<atom:link rel="payment" href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=4195&amp;md5=7c274e435d2e2683ba590677af63bacd" type="text/html" />"
	</item>
		<item>
		<title>glif duels two other iPhone 4 Tripod Mounts</title>
		<link>http://www.cocoanetics.com/2010/11/glif-duels-two-other-iphone-4-tripod-mounts/</link>
		<comments>http://www.cocoanetics.com/2010/11/glif-duels-two-other-iphone-4-tripod-mounts/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 09:41:27 +0000</pubDate>
		<dc:creator>Drops</dc:creator>
				<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.cocoanetics.com/?p=4167</guid>
		<description><![CDATA[A while back I reviewed the only two tripod mounts I could find to fit my iPhone 4 and to this date its one of the most searched for articles on this blog. So its only fitting that I would also review the glif as soon as it became available. The two previous contenders for the crown of iPhone 4 Tripod Mounts were the Mosy Mount and the U+G4 Holder. There I preferred the latter because of how snug the holder fit my iPhone4 and because of the engineering effort that went into it. You might remember reading how the two inventors of the GLIF wrote their own success story on Kickstarter. Originally they where shooting for $15,000 but with the help of some friendly linking they soon went past the $100,000 mark. When backing the project you had several options. One of the regular options would get you one glif as soon as mass production would start. I opted for the $50 variant where I would also receive a pre-release glif so that I could review it before everyone else. For a while I was tempted to go for the VIP option which would have gotten me a dinner with the guys, but being in Europe made this impossible. The Glif When you first see the Glif you might think that &#8220;there&#8217;s something missing&#8221;, it is that simple. Holders before it would encompass or grab the iPhone 4 in some way to prevent it from obeying gravity. Here is the first major difference. The glif only gribs as much of the iPhone 4 as is absolutely necessary. The material has a somewhat intentional roughness without which the iPhone would simply slide out. But because of the friction and precision molding that much material is all it takes to firmly secure the iPhone in place. Theoretically even upside down, but I would not dare doing that without some extra tape. The first few times it would hold upside-down, but I suspect that insertion of the iPhone flattens the structure of the material slightly over time which would reduce the friction to a point where the iPhone 4 would fall out. Now the material of the final production Glifs might be somewhat different, but generally it would not be wise to risk you iPhone just to boast to your friends: &#8220;weeee! upside down!&#8221; Label Buy an ad here Tripod Holders have one basic function: to fix a standard camera mounting screw onto an iPhone. And this one the glif does very well. Engineers and laymen alike can only marvel at the ingenuity. You can screw the mounting plat of your tripod into the brass screw hole at the bottom without fearing to pull it out of the plastic. And contrasting to other holders this has the screw where a photographer expects it: on the bottom. You have to remove your bumper or other case. This is generally necessary for all reviewed mounts. Then you stick the iPhone 4 into where it fits into the glif and you&#8217;re set. The biggest advantage of the glif over the other candidate holders is that you don&#8217;t have to use a 3-way tripod and also don&#8217;t have to contort the tripod head to strange angles for using it. Also you can use a 2-way tripod head as the mounting screw is positioned at the bottom. It&#8217;s simple and logical. The glif has another bonus feature. You can also use it as an iPhone stand, for example to watch video on a plane/train. To make use of this you put the small part on top of your iPhone. You probably would want to adjust its location such that it is outside of the visible area of your movie because it otherwise would reach into the picture.  Because of its small form factor I can imagine you&#8217;d throw the glif into your backpack when traveling. Since there is no U shape as in the U+G4 holder you don&#8217;t have to fear about breaking it under rough conditions of by accidentally sitting on it. So in conclusion &#8211; after having played with all three holders &#8211; my verdict is that the glif is optimal for 95% of all situations you might find yourself filming or photographing. The glif has some slight advantage over the U+G4 because of its size and robustness. I would generally prefer the glif unless I have a shoot requiring upside down or sideways mounting because there is no place to put a tripod. These are the 5% of situations that most of us probably never face anyway. If you already got a U+G4 you don&#8217;t have to run out and buy a glif as the range of functionality is almost identical. This means that you also already have a tripod with 3-way head because the U+G4 [...]]]></description>
			<content:encoded><![CDATA[<div class="plus-one-wrap"><g:plusone href="http://www.cocoanetics.com/2010/11/glif-duels-two-other-iphone-4-tripod-mounts/"></g:plusone></div><p>A while back I <a href="http://www.cocoanetics.com/2010/08/iphone-4-tripod-mount-shootout/">reviewed</a> the only two tripod mounts I could find to fit my iPhone 4 and to this date its one of the most searched for articles on this blog. So its only fitting that I would also review the <a href="http://www.theglif.com/">glif</a> as soon as it became available. The two previous contenders for the crown of iPhone 4 Tripod Mounts were the Mosy Mount and the U+G4 Holder. There I preferred the latter because of how snug the holder fit my iPhone4 and because of the engineering effort that went into it.</p>
<p>You might remember reading how the two inventors of the GLIF wrote their own success story on Kickstarter. Originally they where shooting for $15,000 but with the help of some friendly linking they soon went past the $100,000 mark. When backing the project you had several options. One of the regular options would get you one glif as soon as mass production would start. I opted for the $50 variant where I would also receive a pre-release glif so that I could review it before everyone else. For a while I was tempted to go for the VIP option which would have gotten me a dinner with the guys, but being in Europe made this impossible.</p>
<h3>The Glif</h3>
<p>When you first see the Glif you might think that &#8220;there&#8217;s something missing&#8221;, it is that simple. Holders before it would encompass or grab the iPhone 4 in some way to prevent it from obeying gravity. Here is the first major difference. The glif only gribs as much of the iPhone 4 as is absolutely necessary. The material has a somewhat intentional roughness without which the iPhone would simply slide out. But because of the friction and precision molding that much material is all it takes to firmly secure the iPhone in place. Theoretically even upside down, but I would not dare doing that without some extra tape. The first few times it would hold upside-down, but I suspect that insertion of the iPhone flattens the structure of the material slightly over time which would reduce the friction to a point where the iPhone 4 would fall out. Now the material of the final production Glifs might be somewhat different, but generally it would not be wise to risk you iPhone just to boast to your friends: &#8220;weeee! upside down!&#8221;</p>
<p><span id="more-4167"></span></p>
<div class="inner_ad_block">
<div id="advman-7" class="widget Advman_Widget">
<h3 class="widgettitle"></h3>
<p><!-- BuySellAds.com Zone Code --></p>
<div id="bsap_1260346" class="bsarocks bsap_fc3166ea4a479e0fdb4251fbe92a1219"></div>
<p><!-- End BuySellAds.com Zone Code --></div>
<div id="text-21" class="widget widget_text">
<h3 class="widgettitle">Label</h3>
<div class="textwidget">
<div class="advert-notice"><a href="http://buysellads.com/buy/detail/56639/zone/1260346">Buy an ad here</a></div>
</div></div>
</div>
<p>Tripod Holders have one basic function: to fix a standard camera mounting screw onto an iPhone. And this one the glif does very well. Engineers and laymen alike can only marvel at the ingenuity. You can screw the mounting plat of your tripod into the brass screw hole at the bottom without fearing to pull it out of the plastic. And contrasting to other holders this has the screw where a photographer expects it: on the bottom.</p>
<p><a href="http://www.cocoanetics.com/files/PICT0001_2.jpg"><img class="alignnone size-large wp-image-4168" title="Glif on Tripod" src="http://www.cocoanetics.com/files/PICT0001_2-1024x768.jpg" alt="" width="614" height="461" /></a></p>
<p>You have to remove your bumper or other case. This is generally necessary for all reviewed mounts. Then you stick the iPhone 4 into where it fits into the glif and you&#8217;re set. The biggest advantage of the glif over the other candidate holders is that you don&#8217;t have to use a 3-way tripod and also don&#8217;t have to contort the tripod head to strange angles for using it. Also you can use a 2-way tripod head as the mounting screw is positioned at the bottom. It&#8217;s simple and logical.</p>
<p><a href="http://www.cocoanetics.com/files/PICT0008_2.jpg"><img class="alignnone size-large wp-image-4169" title="Glif with iPhone 4 on Tripod" src="http://www.cocoanetics.com/files/PICT0008_2-1024x768.jpg" alt="" width="614" height="461" /></a></p>
<p>The glif has another bonus feature. You can also use it as an iPhone stand, for example to watch video on a plane/train. To make use of this you put the small part on top of your iPhone. You probably would want to adjust its location such that it is outside of the visible area of your movie because it otherwise would reach into the picture.  Because of its small form factor I can imagine you&#8217;d throw the glif into your backpack when traveling. Since there is no U shape as in the U+G4 holder you don&#8217;t have to fear about breaking it under rough conditions of by accidentally sitting on it.</p>
<p><a href="http://www.cocoanetics.com/files/PICT0003_2.jpg"><img class="alignnone size-large wp-image-4170" title="Using Glif as stand" src="http://www.cocoanetics.com/files/PICT0003_2-1024x768.jpg" alt="" width="614" height="461" /></a></p>
<p>So in conclusion &#8211; after having played with all three holders &#8211; my verdict is that the glif is optimal for 95% of all situations you might find yourself filming or photographing. The glif has some slight advantage over the U+G4 because of its size and robustness. I would generally prefer the glif unless I have a shoot requiring upside down or sideways mounting because there is no place to put a tripod. These are the 5% of situations that most of us probably never face anyway.</p>
<p>If you already got a U+G4 you don&#8217;t have to run out and buy a glif as the range of functionality is almost identical. This means that you also already have a tripod with 3-way head because the U+G4 positions the mounting screw at the side because there is not enough material on the U elsewhere. Since the Mosy Mount fell behind the U+G4 even in my first review I don&#8217;t have to compare much more. It&#8217;s the same price as the glif and thus no longer competitive.</p>
<p>Now if you don&#8217;t have a tripod yet and are still in the market for an iPhone 4 holder then I can wholeheartedly recommend the glif as it also allows using cheaper less-than-3-way head tripods. The glif costs twice as much ($20 instead of $10) as the U+G4 but it is surely worth it.</p>
<p><strong>glif</strong></p>
<p>Pro: Stylish, small, sturdy, well designed, useful as stand</p>
<p>Con: not made for very odd angles or upside down without extra fastening</p>
<p><a href="http://studioneat.myshopify.com/products/glif-for-iphone-4">$20 by Studio Neat</a></p>
<p><strong>U+G4</strong></p>
<p>Pro: Sturdy plastic, professional screwing hole, allows usage of “steering handle” in tripod, patent pending</p>
<p>Con: Open side might allow iPhone to shake out, not designed for protecting iPhone</p>
<p><a href="http://www.iphone-tripodholder.com/">$9.95 by G Design LLC</a></p>
<p><strong>Mosy Mount</strong></p>
<p>Pro: Stylish, 3 Motives, two mounts let you convert your existing case, great personal support, foldable mini-tripod included</p>
<p>Con: area around screwing hole not flat, inconvenient mounting position for moving targets</p>
<p><a href="http://www.mosymount.com/">$19.95 by Art4Media LLC</a></p>
 <p><a href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=4167&amp;md5=80dbc8c56f82e28693a91ba1f2453e69" title="Flattr" target="_blank"><img src="http://www.cocoanetics.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cocoanetics.com/2010/11/glif-duels-two-other-iphone-4-tripod-mounts/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<atom:link rel="payment" href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=4167&amp;md5=80dbc8c56f82e28693a91ba1f2453e69" type="text/html" />"
	</item>
		<item>
		<title>iPhone 4 Tripod Mount Shootout</title>
		<link>http://www.cocoanetics.com/2010/08/iphone-4-tripod-mount-shootout/</link>
		<comments>http://www.cocoanetics.com/2010/08/iphone-4-tripod-mount-shootout/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 12:30:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.drobnik.com/touch/?p=2983</guid>
		<description><![CDATA[UPDATE: I also reviewed the glif and compared it with these mounts. If you&#8217;re like me then you justified getting an iPhone 4 (on top of the original 2G, 3G and 3GS) by telling your wife &#8220;honey, this has an HD camcorder BUILT IN. By getting this we actually SAVE the money for an extra device.&#8221; And then on the second or third video you&#8217;re shooting you&#8217;ll find that you have the hands of a programmer and not of a surgeon. Meaning that it is next to impossible holding the iPhone perfectly steady. Yet once more we see that technology has advanced to a level where it is no longer the limiting factor, but instead the human body is. For all intents and purposes of my iPhone business I deem the quality of the iPhone 4 video recorder more than sufficient. If only there was something that would help me steady my aim and frame. Well, there is, because this problem is one that photographers and videographers have been having for a long time. And most of the solutions revolve around contraptions that allow you to levitate your lens in a fixed distance from the floor. I am of course talking about the tripod. You might remember from geometry that any surface can be described by 3 points. Tripods define a point by three feet. The point where you can mount a camera usually has two or three degrees of freedom which you an restrict by tightening screws. One or two of these screws might be attached to a handle that would allow you to move the tripod head around and adjust the tightness of one scree by turning your wrist. I shopped around for a 3-way tripod to mount my iPhone 4 on and ended picking the Cullmann Nanomax 250 which is a sturdy but extremely lightweight tripod that almost fits into my backback. Because it is made out of aluminum it weighs only 2.3 lbs (1 kg). So it&#8217;s ideally light and compact to work for a blogging developer like myself. Cullmann in Germany grants you 10 year warranty on the tripod if you register on their website. But this article is not about my choice of tripod. Once you got one you are presented with the challenge to somehow mount your pretty iPhone on it. That&#8217;s where special cam mounts are necessary. I asked around on Twitter and two options were recommended to me. I purchased both and now I&#8217;m going to compare them so that you don&#8217;t have to. Label Buy an ad here Mosy Mount When I received the Mosy Mount package they made it as much an Apple experience as possible. You receive a metal box with a clear window at the top that presents the mount. Or rather, A mount, because inside the box you find another one to make TWO mounts for the price of one. One is already attached to a clear case that fits the iPhone 4&#8242;s rectangular frame. The other is affixed to a temporary piece of cardboard with instructions on how to mount this on your own case. Disclaimer: nothing sticks to silicone. You also get a foldable mini-tripod for use on tables. You have a choice of three motives that all are basically a rectangular foamy plastic piece with an embedded 1/4&#8243; screw. Once the iPhone is in the case there is no chance in hell that it can fall out, removing the case takes a bit of fiddling which is a good thing if you worry about that. A bad thing if you are impatient and are not planning to use it on rough rides. Through the Mosy Mount the mounting screw is placed near the center of gravity on the back of the iPhone. This is the reason why out of the box you require a 3-way head on your tripod. With 2-ways all you can hope to film is the heavens. With the 3-way head of my tripod I can have the camera point at a target with the handling sicking out to the right side. That&#8217;s fine for shots that don&#8217;t require an up and down movement. Horizontal panning and steady shots work perfectly if that&#8217;s all you require. When I ranted on Twitter about this the maker of Mosy Mount contacted me and sent me a list of materials plus plan on how to to convert the Mosy Mount with an right angle bracket. He&#8217;s a very friendly guy, an incredibly personal level of support. He warned me not to tighten the mount screw too much or else I would pull out the metal piece of the mold. The clear case tightly grips the sharp edge of your iPhone 4. The 3D mold is a piece of art but it has a bit of [...]]]></description>
			<content:encoded><![CDATA[<div class="plus-one-wrap"><g:plusone href="http://www.cocoanetics.com/2010/08/iphone-4-tripod-mount-shootout/"></g:plusone></div><p>UPDATE: I also <a href="http://www.cocoanetics.com/2010/11/glif-duels-two-other-iphone-4-tripod-mounts/">reviewed the glif</a> and compared it with these mounts.</p>
<p>If you&#8217;re like me then you justified getting an iPhone 4 (on top of the original 2G, 3G and 3GS) by telling your wife &#8220;honey, this has an HD camcorder BUILT IN. By getting this we actually SAVE the money for an extra device.&#8221; And then on the second or third video you&#8217;re shooting you&#8217;ll find that you have the hands of a programmer and not of a surgeon. Meaning that it is next to impossible holding the iPhone perfectly steady.</p>
<p>Yet once more we see that technology has advanced to a level where it is no longer the limiting factor, but instead the human body is. For all intents and purposes of my iPhone business I deem the quality of the iPhone 4 video recorder more than sufficient. If only there was something that would help me steady my aim and frame. Well, there is, because this problem is one that photographers and videographers have been having for a long time. And most of the solutions revolve around contraptions that allow you to levitate your lens in a fixed distance from the floor.</p>
<p>I am of course talking about the tripod. You might remember from geometry that any surface can be described by 3 points. Tripods define a point by three feet. The point where you can mount a camera usually has two or three degrees of freedom which you an restrict by tightening screws. One or two of these screws might be attached to a handle that would allow you to move the tripod head around and adjust the tightness of one scree by turning your wrist.</p>
<p>I shopped around for a 3-way tripod to mount my iPhone 4 on and ended picking the <a href="http://www.amazon.com/gp/product/B0029LHW2M?ie=UTF8&amp;tag=wwwdrobnikcom-21&amp;linkCode=as2&amp;camp=1638&amp;creative=6742&amp;creativeASIN=B0029LHW2M">Cullmann Nanomax 250</a> which is a sturdy but extremely lightweight tripod that almost fits into my backback. Because it is made out of aluminum it weighs only 2.3 lbs (1 kg). So it&#8217;s ideally light and compact to work for a blogging developer like myself. <a href="www.cullmann-foto.de">Cullmann</a> in Germany grants you 10 year warranty on the tripod if you register on their website.</p>
<p>But this article is not about my choice of tripod. Once you got one you are presented with the challenge to somehow mount your pretty iPhone on it. That&#8217;s where special cam mounts are necessary. I asked around on Twitter and two options were recommended to me. I purchased both and now I&#8217;m going to compare them so that you don&#8217;t have to.</p>
<p><span id="more-2983"></span></p>
<div class="inner_ad_block">
<div id="advman-7" class="widget Advman_Widget">
<h3 class="widgettitle"></h3>
<p><!-- BuySellAds.com Zone Code --></p>
<div id="bsap_1260346" class="bsarocks bsap_fc3166ea4a479e0fdb4251fbe92a1219"></div>
<p><!-- End BuySellAds.com Zone Code --></div>
<div id="text-21" class="widget widget_text">
<h3 class="widgettitle">Label</h3>
<div class="textwidget">
<div class="advert-notice"><a href="http://buysellads.com/buy/detail/56639/zone/1260346">Buy an ad here</a></div>
</div></div>
</div>
<h3>Mosy Mount</h3>
<p>When I received the <a href="http://www.mosymount.com">Mosy Mount</a> package they made it as much an Apple experience as possible. You receive a metal box with a clear window at the top that presents the mount. Or rather, A mount, because inside the box you find another one to make TWO mounts for the price of one. One is already attached to a clear case that fits the iPhone 4&#8242;s rectangular frame. The other is affixed to a temporary piece of cardboard with instructions on how to mount this on your own case. Disclaimer: nothing sticks to silicone. You also get a foldable mini-tripod for use on tables.</p>
<p><a href="http://www.cocoanetics.com/files/Mosy_Solo.jpg"><img class="alignnone size-full wp-image-2984" src="http://www.cocoanetics.com/files/Mosy_Solo.jpg" alt="" width="614" height="459" /></a></p>
<p>You have a choice of three motives that all are basically a rectangular foamy plastic piece with an embedded 1/4&#8243; screw. Once the iPhone is in the case there is no chance in hell that it can fall out, removing the case takes a bit of fiddling which is a good thing if you worry about that. A bad thing if you are impatient and are not planning to use it on rough rides. Through the Mosy Mount the mounting screw is placed near the center of gravity on the back of the iPhone. This is the reason why out of the box you require a 3-way head on your tripod. With 2-ways all you can hope to film is the heavens.</p>
<p><a href="http://www.cocoanetics.com/files/Mosy_Action.jpg"><img class="alignnone size-full wp-image-2985" src="http://www.cocoanetics.com/files/Mosy_Action.jpg" alt="" width="614" height="461" /></a></p>
<p>With the 3-way head of my tripod I can have the camera point at a target with the handling sicking out to the right side. That&#8217;s fine for shots that don&#8217;t require an up and down movement. Horizontal panning and steady shots work perfectly if that&#8217;s all you require. When I ranted on Twitter about this the maker of Mosy Mount contacted me and sent me a list of materials plus plan on how to to convert the Mosy Mount with an right angle bracket. He&#8217;s a very friendly guy, an incredibly personal level of support. He warned me not to tighten the mount screw too much or else I would pull out the metal piece of the mold.</p>
<p>The clear case tightly grips the sharp edge of your iPhone 4. The 3D mold is a piece of art but it has a bit of a drawback. The surface is not flat and thus you don&#8217;t quite feel how much you can tighten the screw. Also it does not feel like there is a good contact which still permits a bit of rotation around the screen. That&#8217;s another con. You might feel that your iPhone is safe in the case when mounting it onto a moving vehicle, but you should take extra precautions because of this weak spot.</p>
<h3>U+G4 Holder</h3>
<p>I found the website for the U+G4 holder even before Mosy Mount because they are more SEO-savvy: <a href="http://www.iphone-tripodholder.com">www.iphone-tripodholder.com</a>. My first impression was to think that the screw is on the wrong place, namely on the small side. Wouldn&#8217;t that mean I can only shoot portrait video?</p>
<p>I received the holder without any trimmings in a padded envelope. But what the packaging understates the holder itself talks all the more loudly. You find the holder to be made out of strong plastic with a professional screw embedded in the smaller side and 2 small 3M <a href="http://products3.3m.com/catalog/us/en001/manufacturing_industry/specialty_tapes/node_GSB3H1YJ8Rbe/root_GST1T4S9TCgv/vroot_GSNYTMLW46ge/gvel_GSSLRYMDZXgl/theme_us_specialtytapes_3_0/command_AbcPageHandler/output_html">Bumpon</a> pads to keep the iPhone from sliding out once you moved it into place. You can slide the iPhone in both ways due to a small window in the mount, a sort of rail fits the device perfectly.</p>
<p><a href="http://www.cocoanetics.com/files/UG4_Solo.jpg"><img class="alignnone size-full wp-image-2986" src="http://www.cocoanetics.com/files/UG4_Solo.jpg" alt="" width="614" height="459" /></a></p>
<p>The bottom of the mount is flat to allow for good fastening of the mounting plate which is standard with all modern tripods. It&#8217;s a plastic rectangle that you screw onto the 1/4&#8243; thingy which itself can be fastened to the tripod by a simple lever. You feel that some thought went into this method, enough to be pending a patent.</p>
<p>Having the mounting screw at the side allows for the tripod handle to be where it should be: in the opposite direction of the lens. Mounted like this you can pan vertical and sideways with ease. In this case tightening the handle will restrict the up/down motion. It&#8217;s logical and intuitive this way which makes this mount my favorite for any kind of moving targets.</p>
<p><a href="http://www.cocoanetics.com/files/UG4_Action.jpg"><img class="alignnone size-full wp-image-2987" src="http://www.cocoanetics.com/files/UG4_Action.jpg" alt="" width="614" height="461" /></a></p>
<p>What remains to be seen is how the life of the pads will go. That&#8217;s only something that repeated use of a longer time span can show us. If you&#8217;re planning to use the U+G4 on a moving vehicle you might want to add an additional rubber band to secure your phone into the mount. While it stays inside against gravity a short jerky movement can move it out of its secure position inch by inch.</p>
<h3>Conclusion</h3>
<p>For both cases you will need to remove any Bumper or other case you might have to fit. The Mosy Mount itself is a case that will protect your phone a bit, at least from scratching and it comes with the benefit of letting you transform a protective case of your choice into a mount (as long it&#8217;s not silicone). The U+4G is way less artsy, straight to the point and gives me more confidence in the screwing. Also it costs half as much as the competitor.</p>
<p>After having evaluated both mounts for some time in direct comparison I formed my opinion. Personally I prefer the U+4G over the Mosy Mount because of the more logical way of &#8220;steering&#8221; via the handle and because of the tighter fit with my tripod mounting plate. You might have noticed that I have a red sticker around the edges of my iPhone (by <a href="http://www.blue-mac.net/">:blueMac</a>) to protect it until I get my official bumper. The Mosy case threatens the life of this sticker because of how tightly it hugs the device.</p>
<p>My summary of the pros and cons of both mounts follows below.</p>
<p><a href="http://www.cocoanetics.com/files/Both_Holders.jpg"><img class="alignnone size-full wp-image-2988" src="http://www.cocoanetics.com/files/Both_Holders.jpg" alt="" width="614" height="461" /></a></p>
<p><strong>Mosy Mount</strong></p>
<p>Pro: Stylish, 3 Motives, two mounts let you convert your existing case, great personal support, foldable mini-tripod included</p>
<p>Con: area around screwing hole not flat, inconvenient mounting position for moving targets</p>
<p><a href="http://www.mosymount.com">$19.95 by Art4Media LLC</a></p>
<p><strong>U+G4</strong></p>
<p>Pro: Sturdy plastic, professional screwing hole, allows usage of &#8220;steering handle&#8221; in tripod, patent pending</p>
<p>Con: Open side might allow iPhone to shake out, not designed for protecting iPhone</p>
<p><a href="http://www.iphone-tripodholder.com/">$9.95 by G Design LLC</a></p>
 <p><a href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=2983&amp;md5=f19464b1240cbd70f66b1ee16abe9003" title="Flattr" target="_blank"><img src="http://www.cocoanetics.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cocoanetics.com/2010/08/iphone-4-tripod-mount-shootout/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		<atom:link rel="payment" href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=2983&amp;md5=f19464b1240cbd70f66b1ee16abe9003" type="text/html" />"
	</item>
		<item>
		<title>Xcode 4</title>
		<link>http://www.cocoanetics.com/2010/06/xcode-4/</link>
		<comments>http://www.cocoanetics.com/2010/06/xcode-4/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 12:44:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.drobnik.com/touch/?p=2710</guid>
		<description><![CDATA[In Austria we have a saying &#8220;Big things throw their shadows way ahead of them&#8221;. While the rest of home-staying iPhone &#8230; pardon iOS developers has only seen the Stevenote, a couple of lucky attendees where able to get their hands on a pre-BETA version of Xcode. They are still under NDA when it comes to discussing it, but you know how it is with Twitter, it&#8217;s not really possible to keep those things under wraps if people are excited and connected. And also, since these details are now on the internet and thus public domain, wannabe journalists can scrape the few available details together and summarize them for you, my dear reader. Generally developers love that Xcode 4 appears to be a total refresh, lots of thought is apparently being put in, all the more reason to look forward to it. Attendees of the WWDC got a download link on the Apple Developer Forums, but us regular folk only gets an error message. Some People think it was changed too much (T, T) for comfort, but a revolution is never easy. But for the most part you find only happy tweets (T) and comments.  Here&#8217;s my rundown on the features we have heard about: Interface Builder becoming part of Xcode for a combined IDE. T T There is a new Counterparts View that is really convenient. T There is a Code Snippet feature, possibly similar to Dashcode. T T LLDB will replace the current GDB debugger. T New LLVM compiler. (2x compile speed improvement. up to 25% runtime speed improvement. On iphone up to 60% faster apps!) T There will be Tabs. T MDI (Multi Document Interface) where you see multiple source files within the same Xcode window. T Great GIT Support. Improved Subversion Support, too. T T You will be able to choose different skins for the IDE. T Revamped project and target settings for choosing build configurations, localizations, deployment target,etc. Installation will takes about one hour (T). Because of the amount of things you can have on screen at the same time, you might want to get a monitor of at least 27&#8243; in size (T). Several people (T T) mentioned June 21st as possible avilability date of Xcode 4 as preview version. But I&#8217;m sure your buddies who made it to WWDC will let you take their Xcode 4 for a spin.]]></description>
			<content:encoded><![CDATA[<div class="plus-one-wrap"><g:plusone href="http://www.cocoanetics.com/2010/06/xcode-4/"></g:plusone></div><p>In Austria we have a saying &#8220;Big things throw their shadows way ahead of them&#8221;. While the rest of home-staying iPhone &#8230; pardon iOS developers has only seen the Stevenote, a couple of lucky attendees where able to get their hands on a pre-BETA version of Xcode. They are still under NDA when it comes to discussing it, but you know how it is with Twitter, it&#8217;s not really possible to keep those things under wraps if people are excited and connected.</p>
<p>And also, since these details are now on the internet and thus public domain, wannabe journalists can scrape the few available details together and summarize them for you, my dear reader.</p>
<p>Generally developers love that Xcode 4 appears to be a total refresh, lots of thought is apparently being put in, all the more reason to look forward to it. Attendees of the WWDC got a <a href="http://bit.ly/boCQgQ">download link</a> on the Apple Developer Forums, but us regular folk only gets an error message. Some People think it was changed too much (<a href="http://twitter.com/MoonSungWook/statuses/15820699744">T</a>, <a href="http://twitter.com/cdevwill/statuses/15807101195">T</a>) for comfort, but a revolution is never easy.</p>
<p>But for the most part you find only happy tweets (<a href="http://twitter.com/mneuwert/statuses/15808116300">T</a>) and comments.  Here&#8217;s my rundown on the features we have heard about:</p>
<ul>
<li>Interface Builder becoming part of Xcode for a combined IDE. <a href="http://twitter.com/ih5/statuses/15814673165">T</a> <a href="http://twitter.com/AaronHawn/statuses/16011870799">T<br />
</a><a href="http://www.cocoanetics.com/files/Xcode4.jpg"><img class="alignnone size-medium wp-image-2711" src="http://www.cocoanetics.com/files/Xcode4-300x189.jpg" alt="" width="300" height="189" /></a></li>
<li>There is a new <strong>Counterparts View</strong> that is really convenient. <a href="http://twitter.com/jenix/statuses/16005310319">T</a></li>
<li>There is a <strong>Code Snippet</strong> feature, possibly similar to Dashcode. <a href="http://twitter.com/KilaByte/statuses/15810044039">T</a> <a href="http://twitter.com/letiemble/statuses/16002574405">T</a></li>
<li><a href="http://twitter.com/AaronHawn/statuses/16011870799"></a><strong>LLDB</strong> will replace the current GDB debugger. <a href="http://twitter.com/Uffekoch/statuses/15938436364">T</a></li>
<li>New <strong>LLVM</strong> compiler. (2x compile speed improvement. up to 25% runtime speed improvement. On iphone up to 60% faster apps!) <a href="http://twitter.com/Tion/statuses/15902790586">T</a></li>
<li>There will be <strong>Tabs</strong>. <a href="http://twitter.com/quser/statuses/15887328783">T</a></li>
<li><strong>MDI</strong> (Multi Document Interface) where you see multiple source files within the same Xcode window. <a href="http://twitter.com/eddienull/status/15880710247">T</a></li>
<li><a href="http://twitter.com/eddienull/status/15880710247"></a>Great <strong>GIT</strong> Support. Improved <strong>Subversion</strong> Support, too. <a href="http://twitter.com/fribirdz/statuses/15886427063">T</a> <a href="http://twitter.com/idealapps/statuses/15870819539">T</a></li>
<li><a href="http://twitter.com/idealapps/statuses/15870819539"></a>You will be able to choose different <strong>skins</strong> for the IDE. <a href="http://twitter.com/GreggJaskiewicz/statuses/15870614681">T</a></li>
<li><a href="http://twitter.com/GreggJaskiewicz/statuses/15870614681"></a>Revamped project and target settings for choosing build configurations, localizations, deployment target,etc.<br />
<a href="http://www.cocoanetics.com/files/114463178-1.png"><img class="alignnone size-medium wp-image-2712" src="http://www.cocoanetics.com/files/114463178-1-300x204.png" alt="" width="300" height="204" /></a></li>
</ul>
<p>Installation will takes about one hour (<a href="http://twitter.com/kawaken/statuses/16114532528">T</a>). Because of the amount of things you can have on screen at the same time, you might want to get a monitor of at least 27&#8243; in size (<a href="http://twitter.com/jenix/statuses/16005310319">T</a>).</p>
<p>Several people (<a href="http://twitter.com/malcommac/statuses/15913398457">T</a> <a href="http://twitter.com/trackingNewTech/statuses/15871990183">T</a>) mentioned <strong>June 21st </strong>as possible avilability date of Xcode 4 as preview version. But I&#8217;m sure your buddies who made it to WWDC will let you take their Xcode 4 for a spin. <img src='http://www.cocoanetics.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
 <p><a href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=2710&amp;md5=74e01f17f76dc2f0b28959295abe4dbe" title="Flattr" target="_blank"><img src="http://www.cocoanetics.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cocoanetics.com/2010/06/xcode-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=2710&amp;md5=74e01f17f76dc2f0b28959295abe4dbe" type="text/html" />"
	</item>
		<item>
		<title>How to setup an SVN repo in Xcode</title>
		<link>http://www.cocoanetics.com/2010/04/how-to-setup-an-svn-repo-in-xcode/</link>
		<comments>http://www.cocoanetics.com/2010/04/how-to-setup-an-svn-repo-in-xcode/#comments</comments>
		<pubDate>Sun, 18 Apr 2010 19:15:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.drobnik.com/touch/?p=2482</guid>
		<description><![CDATA[If you purchase a component from the Dr. Touch&#8217;s Parts Store you will receive a quick start guide which includes the access details to the Subversion repository that keeps my code. The address of the repository uses HTTPS protocol, which confuses some people into thinking that they could use a browser to download the files. That&#8217;s why I made this video showing how to properly set up your Xcode to get the source for any part onto your harddisk. The advantage of following this guide is that you end up with a &#8220;working copy&#8221; of the contents of the repository. That means that you can simply pick &#8220;SCM &#8211; Update Entire Project&#8221; and you get your copy updated to the latest version. There are generally several methods how you could add external code to your own project, besides of simply copying it. The problem with just copying is that it&#8217;s quite hard to keep all the individual copies of a framework updated in all of your projects. In my case I am continuing development on most of my components if I add them to one of my own apps, but I don&#8217;t want to have to make all additions that I put into the new project into the component project a second time. Development is boring if you have to repeat steps. Surely there has to be a method to have the updates stream back from the app project to the component project. In fact, there is. The technique to use is called &#8230; Label Buy an ad here External SVN References You can instruct your Subversion client to treat a specific folder as coming from a different SVN Repo. This is quick to do on the command line, some Subversion clients offer this as well. Xcode does not, yet. I thought that this &#8220;Multiple Project Roots&#8221; feature was supposed to achieve this, but if I set up a folder coming from a different repo I can no longer &#8220;Commit Entire Project&#8221;. Open Terminal and navigate into your project root folder (or any location where you want such an external reference to be). Then type the following, the first being the name of the new folder, the second being the SVN URL. Note that spaces in the URL need to be URL-encoded. Don&#8217;t forget the period at the end telling SVN that you mean the current folder. svn propset svn:externals 'DTChartView https://www.drobnik.com:8443/svn/ChartNG/trunk/DTChart%20Core' . Alternatively you can also uses propedit, if you set up the editor to use for SVN. Though this means that you have to know your way around a Unix text editor like vi. export SVN_EDITOR=vim svn propedit svn:externals . If you now perform an Update then SVN will create a directory with the name DTChartView and will check out the contents of the passed SVN URL into it. From here on forth you can work with these files just like with any other files, for example add them to the Xcode project in which you want to use it. Changes are treated just the same. Local modifications get an M, available updates on the server are marked U, etc. Only thing I noticed is that &#8220;SCM &#8211; Commit Entire Project&#8221; does not commit contents of external SVNs at the same time. Whereas a &#8220;SCM &#8211; Update Entire Project&#8221; seems to get all updates globally. As usual you can commit individual files or multiple files regardless from which repo they stem. So if you tend to modularize your code and find that you keep reusing and refining your core toolbox, then this technique might just be what you need because this way you can update your tools while working on another app. Bug! There also seems to be a bug in Xcode dealing with external references that are on a different server than where your project is residing. The above mentioned steps worked without problem while I was moving around on the same server. But as soon as I had a project on a different server than mine, Xcode started to be unable to authenticate to my own server when it tried to refresh. I kept getting &#8220;Could not authenticate to server: rejected Basic challenge&#8221;. The log file on my SVN server told me &#8220;Password mismatch&#8221;. One theory I pursued for some time is that I have the same user name on both servers, but different passwords. Maybe Xcode got stuck sending the wrong one. Who knows&#8230; At the same time the command line tools as well as the Versions svn client that I was trying out did not have this problem. That&#8217;s how I judge this to be some Xcode weirdness. But for me personally this is not a problem because I tend to  keep all my source code on the same server.]]></description>
			<content:encoded><![CDATA[<div class="plus-one-wrap"><g:plusone href="http://www.cocoanetics.com/2010/04/how-to-setup-an-svn-repo-in-xcode/"></g:plusone></div><p>If you purchase a component from the Dr. Touch&#8217;s Parts Store you will receive a quick start guide which includes the access details to the Subversion repository that keeps my code. The address of the repository uses HTTPS protocol, which confuses some people into thinking that they could use a browser to download the files.</p>
<p>That&#8217;s why I made this video showing how to properly set up your Xcode to get the source for any part onto your harddisk.</p>
<p><iframe title="YouTube video player" class="youtube-player" type="text/html" width="640" height="510" src="http://www.youtube.com/embed/RUFGgxjYmHQ" frameborder="0" allowFullScreen></iframe></p>
<p>The advantage of following this guide is that you end up with a &#8220;working copy&#8221; of the contents of the repository. That means that you can simply pick &#8220;SCM &#8211; Update Entire Project&#8221; and you get your copy updated to the latest version.</p>
<p>There are generally several methods how you could add external code to your own project, besides of simply copying it. The problem with just copying is that it&#8217;s quite hard to keep all the individual copies of a framework updated in all of your projects.</p>
<p>In my case I am continuing development on most of my components if I add them to one of my own apps, but I don&#8217;t want to have to make all additions that I put into the new project into the component project a second time. Development is boring if you have to repeat steps. Surely there has to be a method to have the updates stream back from the app project to the component project.</p>
<p>In fact, there is. The technique to use is called &#8230;</p>
<p><span id="more-2482"></span></p>
<div class="inner_ad_block">
<div id="advman-7" class="widget Advman_Widget">
<h3 class="widgettitle"></h3>
<p><!-- BuySellAds.com Zone Code --></p>
<div id="bsap_1260346" class="bsarocks bsap_fc3166ea4a479e0fdb4251fbe92a1219"></div>
<p><!-- End BuySellAds.com Zone Code --></div>
<div id="text-21" class="widget widget_text">
<h3 class="widgettitle">Label</h3>
<div class="textwidget">
<div class="advert-notice"><a href="http://buysellads.com/buy/detail/56639/zone/1260346">Buy an ad here</a></div>
</div></div>
</div>
<h3>External SVN References</h3>
<p>You can instruct your Subversion client to treat a specific folder as coming from a different SVN Repo. This is quick to do on the command line, some Subversion clients offer this as well. Xcode does not, yet. I thought that this &#8220;Multiple Project Roots&#8221; feature was supposed to achieve this, but if I set up a folder coming from a different repo I can no longer &#8220;Commit Entire Project&#8221;.</p>
<p>Open Terminal and navigate into your project root folder (or any location where you want such an external reference to be). Then type the following, the first being the name of the new folder, the second being the SVN URL. Note that spaces in the URL need to be URL-encoded. Don&#8217;t forget the period at the end telling SVN that you mean the current folder.</p>

<div class="wp_codebox"><table><tr id="p24823"><td class="code" id="p2482code3"><pre class="objc" style="font-family:monospace;">svn propset svn<span style="color: #002200;">:</span>externals <span style="color: #bf1d1a;">'DTChartView https://www.drobnik.com:8443/svn/ChartNG/trunk/DTChart%20Core'</span> .</pre></td></tr></table></div>

<p>Alternatively you can also uses propedit, if you set up the editor to use for SVN. Though this means that you have to know your way around a Unix text editor like vi.</p>

<div class="wp_codebox"><table><tr id="p24824"><td class="code" id="p2482code4"><pre class="objc" style="font-family:monospace;">export SVN_EDITOR<span style="color: #002200;">=</span>vim
svn propedit svn<span style="color: #002200;">:</span>externals .</pre></td></tr></table></div>

<p><a href="http://www.cocoanetics.com/files/Screen-shot-2010-04-18-at-6.48.49-PM.png"><img class="alignnone size-full wp-image-2485" src="http://www.cocoanetics.com/files/Screen-shot-2010-04-18-at-6.48.49-PM.png" alt="" width="644" height="250" /></a></p>
<p>If you now perform an Update then SVN will create a directory with the name DTChartView and will check out the contents of the passed SVN URL into it.</p>
<p><a href="http://www.cocoanetics.com/files/Screen-shot-2010-04-18-at-6.51.43-PM.png"><img class="alignnone size-full wp-image-2486" src="http://www.cocoanetics.com/files/Screen-shot-2010-04-18-at-6.51.43-PM.png" alt="" width="434" height="474" /></a></p>
<p>From here on forth you can work with these files just like with any other files, for example add them to the Xcode project in which you want to use it. Changes are treated just the same. Local modifications get an M, available updates on the server are marked U, etc.</p>
<p>Only thing I noticed is that &#8220;SCM &#8211; Commit Entire Project&#8221; does not commit contents of external SVNs at the same time. Whereas a &#8220;SCM &#8211; Update Entire Project&#8221; seems to get all updates globally. As usual you can commit individual files or multiple files regardless from which repo they stem.</p>
<p>So if you tend to modularize your code and find that you keep reusing and refining your core toolbox, then this technique might just be what you need because this way you can update your tools while working on another app.</p>
<h3>Bug!</h3>
<p>There also seems to be a bug in Xcode dealing with external references that are on a different server than where your project is residing. The above mentioned steps worked without problem while I was moving around on the same server. But as soon as I had a project on a different server than mine, Xcode started to be unable to authenticate to my own server when it tried to refresh. I kept getting &#8220;Could not authenticate to server: rejected Basic challenge&#8221;. The log file on my SVN server told me &#8220;Password mismatch&#8221;. One theory I pursued for some time is that I have the same user name on both servers, but different passwords. Maybe Xcode got stuck sending the wrong one. Who knows&#8230;</p>
<p>At the same time the command line tools as well as the Versions svn client that I was trying out did not have this problem. That&#8217;s how I judge this to be some Xcode weirdness. But for me personally this is not a problem because I tend to  keep all my source code on the same server.</p>
 <p><a href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=2482&amp;md5=140d401dedae6ff6a769d9fe3ef7f2de" title="Flattr" target="_blank"><img src="http://www.cocoanetics.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cocoanetics.com/2010/04/how-to-setup-an-svn-repo-in-xcode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=2482&amp;md5=140d401dedae6ff6a769d9fe3ef7f2de" type="text/html" />"
	</item>
		<item>
		<title>Early Christmas, 27&quot; i7 iMac arrives</title>
		<link>http://www.cocoanetics.com/2009/12/early-christmas-27-i7-imac-arrives/</link>
		<comments>http://www.cocoanetics.com/2009/12/early-christmas-27-i7-imac-arrives/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 21:25:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.drobnik.com/touch/?p=1767</guid>
		<description><![CDATA[I had ordered my 27&#8243; i7 iMac on Black Friday and expected for it to arrive on Dec 22nd as per the information on the Apple Store website. I was happily surprised to suddenly have a UPS lady at my doorstep at 5 pm. I had never gotten a package from any package delivery service that late, that was another first. When I inquired about that, she responded: &#8220;We start at 5 am and we don&#8217;t stop until all packages are delivered&#8221;. I like that kind of service. My brother-in-law helped me record the unboxing on my iPhone 3GS. To get it from 15 minutes down to the maximum allowed 10 minutes for YouTube I already used iMovie on the new machine. I got: 27&#8243; gorgeous LED-lit wide display. It&#8217;s also huge. Almost twice as wide as my 15&#8243; MacBook Pro display. 8 GB RAM, I chose the cheaper variant where all memory banks are full because I don&#8217;t think I will need more RAM for coding i7 CPU, the fastest iMAC machine. It&#8217;s also the greenest because between high-power compiling it can idle more thus using less energy. As a final test of happiness I installed XCode on it and timed a complete build (after clean all) of MyAppSales. I had to first export my certificates including private keys from my MacBook and import them on the iMac&#8217;s keychain. Then I also copied the provisioning profiles and installed all things via double click. MacBook Pro 2.8 GHz Intel Core 2 Duo: 12 seconds iMac 2.8 GHz Intel Core i7: 4 seconds I had to double-check these results, but really the i7 compiles my biggest project 3 times as fast. You wouldn&#8217;t think that having the processor speed rated at the same value. But more cores and 2 generations later give you such a turbo-boost. &#8220;Roarr!&#8221; says the Tiger, pardon, Leopard, pardon SNOW Leopard.]]></description>
			<content:encoded><![CDATA[<div class="plus-one-wrap"><g:plusone href="http://www.cocoanetics.com/2009/12/early-christmas-27-i7-imac-arrives/"></g:plusone></div><p>I had ordered my 27&#8243; i7 iMac on Black Friday and expected for it to arrive on Dec 22nd as per the information on the Apple Store website. I was happily surprised to suddenly have a UPS lady at my doorstep at 5 pm. I had never gotten a package from any package delivery service that late, that was another first.</p>
<p>When I inquired about that, she responded: <em>&#8220;We start at 5 am and we don&#8217;t stop until all packages are delivered&#8221;.</em> I like that kind of service.</p>
<p>My brother-in-law helped me record the unboxing on my iPhone 3GS. To get it from 15 minutes down to the maximum allowed 10 minutes for YouTube I already used iMovie on the new machine.</p>
<p>I got:</p>
<ul>
<li>27&#8243; gorgeous LED-lit wide display. It&#8217;s also huge. Almost twice as wide as my 15&#8243; MacBook Pro display.</li>
<li>8 GB RAM, I chose the cheaper variant where all memory banks are full because I don&#8217;t think I will need more RAM for coding</li>
<li>i7 CPU, the fastest iMAC machine. It&#8217;s also the greenest because between high-power compiling it can idle more thus using less energy.</li>
</ul>
<p><a href="http://www.cocoanetics.com/files/Screen-shot-2009-12-18-at-10.06.42-PM.png"><img class="alignnone size-full wp-image-1770" src="http://www.cocoanetics.com/files/Screen-shot-2009-12-18-at-10.06.42-PM.png" alt="About this Mac" width="321" height="393" /></a></p>
<p>As a final test of happiness I installed XCode on it and timed a complete build (after clean all) of MyAppSales. I had to first export my certificates including private keys from my MacBook and import them on the iMac&#8217;s keychain. Then I also copied the provisioning profiles and installed all things via double click.</p>
<ul>
<li>MacBook Pro 2.8 GHz Intel Core 2 Duo: <strong>12 seconds</strong></li>
<li>iMac 2.8 GHz Intel Core i7: <strong>4 seconds</strong></li>
</ul>
<p>I had to double-check these results, but really the i7 compiles my biggest project 3 times as fast. You wouldn&#8217;t think that having the processor speed rated at the same value. But more cores and 2 generations later give you such a turbo-boost. &#8220;Roarr!&#8221; says the Tiger, pardon, Leopard, pardon SNOW Leopard.</p>
 <p><a href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=1767&amp;md5=7c821ae376a9fdcda604da473334d8b3" title="Flattr" target="_blank"><img src="http://www.cocoanetics.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cocoanetics.com/2009/12/early-christmas-27-i7-imac-arrives/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<atom:link rel="payment" href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=1767&amp;md5=7c821ae376a9fdcda604da473334d8b3" type="text/html" />"
	</item>
		<item>
		<title>The new Whites &#8211; Worthy Polycarbonate Successor</title>
		<link>http://www.cocoanetics.com/2009/11/the-new-whites-worthy-polycarbonate-successor/</link>
		<comments>http://www.cocoanetics.com/2009/11/the-new-whites-worthy-polycarbonate-successor/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 07:26:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.drobnik.com/touch/?p=1486</guid>
		<description><![CDATA[A couple of days ago I got a chance to take a first feel of the new &#8220;low-end&#8221; MacBook. Well, it&#8217;s not so low after all. For a while it looked like Apple would totally abandon the plasticBook line in favor of making everything out of Aluminium Unibodies. Though there still seems to be a magic line for quite a few Mac buyers at $1000. The cheapest Pro starts at $1199 and personally I would prefer if this would be the Thousand-Dollar-Laptop, but there&#8217;s also something psychological or maybe historical that entices Apple to continue the white line. Maybe it&#8217;s because you can more easily affix stickers on a shell that&#8217;s made out of Polycarbonate? Hey it&#8217;s just a fancy pancy word for Plastic, so it would not mind if your kids stick some cartoon characters on it, next to the glowing Apple logo. Reimagining the fruit as just having been handed by the evil queen to Snow White? These days when I get asked, &#8220;Oliver can you recommend a Laptop?&#8221; you can guess my answer: Mac and if you absolutely need Windows, run it in Bootcamp or virtually. Turns out the school director already had been Mac-infected for at home, so my suggestion to also get a Mac for use at school fell on fertile ground. Being the resident Mac-Maniac I was asked to set up E-Mail, printing and install Office. In turn I asked to be recorded while unboxing the beast. I had almost forgotten to mention this video on my blog. But then I saw on YouTube that the views already had surpassed my previous video of Unboxing a Magic Mouse. So I felt compelled to also provide an honorable spot on my blog for it. It appears that while the Magic Mouse is way more hyped as being revolutionary and many people openly discuss if it&#8217;s worth it, the audience for white MacBooks is an order of magnitude larger. Or put differently, way more people are looking for the cheapest method to enter the Apple ecosystem, than are in the market for a fancy new mouse. The White MacBook again pushes the envelope. Now the shell is made of 2 big parts and the top feels like plastic, the bottom like a powdery rubber. No firewire, No more seperate line-in. That&#8217;s now combined into the headphone jack. I supposed to be able to use an iPhone headset for remote-control and external Mic. You now get up to 7 hours worth of battery life with the enclosed big battery. Now all mobile Macs have no user-servicable battery any more. So you will have to bring your favorite toy to the store and get it replaced there in 2-3 years when the retainable charge drops below a useful mobile working endurance. There&#8217;s been much discussion about the user-friendlyness of such an approach, but having now doors or stickers on the bottom of a laptop goes a long way to give you even more the feeling that &#8220;Mac just works&#8221;. Being a Windows administrator by day and seeing lots of notebooks, I honestly believe that even the simplest mobile MacBook blows any other Laptop out of the water in terms of ease-of-use and industrial design. While we are still waiting for Apple&#8217;s answer to the netbook craze &#8211; which will not come this holiday season &#8211; the new white one is the perfect choice to give as a first Mac to your kids or wife. Daddy can still have a shiny aluminum Pro on his lap and thus be the king of the castle. All coming together in perfect Apple-Harmony for Christmas.]]></description>
			<content:encoded><![CDATA[<div class="plus-one-wrap"><g:plusone href="http://www.cocoanetics.com/2009/11/the-new-whites-worthy-polycarbonate-successor/"></g:plusone></div><p>A couple of days ago I got a chance to take a first feel of the new &#8220;low-end&#8221; MacBook. Well, it&#8217;s not so low after all.</p>
<p>For a while it looked like Apple would totally abandon the plasticBook line in favor of making everything out of Aluminium Unibodies. Though there still seems to be a magic line for quite a few Mac buyers at $1000. The cheapest Pro starts at $1199 and personally I would prefer if this would be the Thousand-Dollar-Laptop, but there&#8217;s also something psychological or maybe historical that entices Apple to continue the white line.</p>
<p>Maybe it&#8217;s because you can more easily affix stickers on a shell that&#8217;s made out of Polycarbonate? Hey it&#8217;s just a fancy pancy word for Plastic, so it would not mind if your kids stick some cartoon characters on it, next to the glowing Apple logo. Reimagining the fruit as just having been handed by the evil queen to Snow White?</p>
<p>These days when I get asked, &#8220;Oliver can you recommend a Laptop?&#8221; you can guess my answer: Mac and if you absolutely need Windows, run it in Bootcamp or virtually. Turns out the school director already had been Mac-infected for at home, so my suggestion to also get a Mac for use at school fell on fertile ground.</p>
<p>Being the resident Mac-Maniac I was asked to set up E-Mail, printing and install Office. In turn I asked to be recorded while unboxing the beast.</p>
<p>I had almost forgotten to mention this video on my blog. But then I saw on YouTube that the views already had surpassed my previous video of <a href="http://www.cocoanetics.com/2009/11/magic-mouse-has-landed/">Unboxing a Magic Mouse</a>. So I felt compelled to also provide an honorable spot on my blog for it.</p>
<p>It appears that while the Magic Mouse is way more hyped as being revolutionary and many people openly discuss if it&#8217;s worth it, the audience for white MacBooks is an order of magnitude larger. Or put differently, way more people are looking for the cheapest method to enter the Apple ecosystem, than are in the market for a fancy new mouse.</p>
<p>The White MacBook again pushes the envelope. Now the shell is made of 2 big parts and the top feels like plastic, the bottom like a powdery rubber. No firewire, No more seperate line-in. That&#8217;s now combined into the headphone jack. I supposed to be able to use an iPhone headset for remote-control and external Mic.</p>
<p>You now get up to 7 hours worth of battery life with the enclosed big battery. Now all mobile Macs have no user-servicable battery any more. So you will have to bring your favorite toy to the store and get it replaced there in 2-3 years when the retainable charge drops below a useful mobile working endurance. There&#8217;s been much discussion about the user-friendlyness of such an approach, but having now doors or stickers on the bottom of a laptop goes a long way to give you even more the feeling that &#8220;Mac just works&#8221;. Being a Windows administrator by day and seeing lots of notebooks, I honestly believe that even the simplest mobile MacBook blows any other Laptop out of the water in terms of ease-of-use and industrial design.</p>
<p>While we are still waiting for Apple&#8217;s answer to the netbook craze &#8211; which will not come this holiday season &#8211; the new white one is the perfect choice to give as a first Mac to your kids or wife. Daddy can still have a shiny aluminum Pro on his lap and thus be the king of the castle. All coming together in perfect Apple-Harmony for Christmas.</p>
 <p><a href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=1486&amp;md5=4d3123665432f948f7b1079268e6254c" title="Flattr" target="_blank"><img src="http://www.cocoanetics.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cocoanetics.com/2009/11/the-new-whites-worthy-polycarbonate-successor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=1486&amp;md5=4d3123665432f948f7b1079268e6254c" type="text/html" />"
	</item>
		<item>
		<title>Magic Mouse has landed</title>
		<link>http://www.cocoanetics.com/2009/11/magic-mouse-has-landed/</link>
		<comments>http://www.cocoanetics.com/2009/11/magic-mouse-has-landed/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 17:00:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.drobnik.com/touch/?p=1429</guid>
		<description><![CDATA[After waiting 10 days &#8211; the Apple Store website claimed &#8220;ready in 4 days&#8221; &#8211; my order has arrived. Yesterday I got slightly nervous when I tried tracking the package and found the number was shipped to Manila one month ago. But there was another shipment with a different reference number below it, showing that the package has left Prague and was on it&#8217;s way to Vienna. This morning I found two packages on my desk and so I recorded a quick unboxing ceremony in my lunch break. Thankfully I had a colleague hold my iPhone 3GS, he&#8217;s done a good job capturing my emotions. After you free the Magic Mouse from it&#8217;s Snow White glass coffin you might also feel tempted to kiss it to life. But instead it comes to life if you turn it on and seek with the bluetooth assistant. It gets recodnized as a regular mouse, no gestures yet. Then you need to look for software updates and download the mouse-related update. After a reboot the mouse settings panel changes to something similar to what we are used to from the glass trackpad of the Unibody MacBooks. Label Buy an ad here I was planning to use the Magic Mouse with my work PC, but only half joy for now. You can pair it with code 0000 and it works as a regular dumb mouse. But no gesture support yet. To get vertical and horizontal scrolling and swiping for navigation we need to wait and see if Apple manages to create a driver for Windows-folk. The Magic Mouse feels very stylish and precise when moving around. You get quickly used to having less bulk in your hand and the polycarbonate surface is only sticky while new-toy-excitement makes your palms sweaty. The swiping motion needs some training though. I found it best to grip it firmly with thumb and ringfinger at the sides, placeing the two fingers between onto the surface and then just to a very quick and short flick to a side. Don&#8217;t let go or you might flick your mouse off the table&#8230; With a multitouch surface on the top you naturally suspect that pinch would work as well, but that&#8217;s not the case. Technically it might have been possible but that&#8217;s a kind of movement your fingers aren&#8217;t compatible with. Your thumb is busy guiding the mouse, so it is not available for simultaneous pinch movements. But doing a movement similar to a mouse wheel and holding down a key gives you screen zooming as we are used from other mice. Finally there are the horizontal and vertical scrolling motions you can do for example in Safari. Having more active surface than just a small ball is a definite plus there. Also wheels and the ball did not give you the option to scroll with momentum. Having an iphone and momentum-enabled table views all day this way of scrolling feels much more natural and physical to you than the old way. On the plus side Apple has created a winner for use on all Macs. One minus is lack of driver support for Windows. All in all the mouse does what the Mighty Mouse did but in an even more visually pleasing appearance and there is a major technological jump under the hood. Therefore I can recommend to get it with any new iMac you might be planning to get henceforward and if you prefer a mouse to a glass trackpad then it is also a compelling option.]]></description>
			<content:encoded><![CDATA[<div class="plus-one-wrap"><g:plusone href="http://www.cocoanetics.com/2009/11/magic-mouse-has-landed/"></g:plusone></div><p>After waiting 10 days &#8211; the Apple Store website claimed &#8220;ready in 4 days&#8221; &#8211; my order has arrived. Yesterday I got slightly nervous when I tried tracking the package and found the number was shipped to Manila one month ago. But there was another shipment with a different reference number below it, showing that the package has left Prague and was on it&#8217;s way to Vienna.</p>
<p>This morning I found two packages on my desk and so I recorded a quick unboxing ceremony in my lunch break. Thankfully I had a colleague hold my iPhone 3GS, he&#8217;s done a good job capturing my emotions. <img src='http://www.cocoanetics.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>After you free the Magic Mouse from it&#8217;s Snow White glass coffin you might also feel tempted to kiss it to life. But instead it comes to life if you turn it on and seek with the bluetooth assistant. It gets recodnized as a regular mouse, no gestures yet. Then you need to look for software updates and download the mouse-related update. After a reboot the mouse settings panel changes to something similar to what we are used to from the glass trackpad of the Unibody MacBooks.</p>
<p><span id="more-1429"></span></p>
<div class="inner_ad_block">
<div id="advman-7" class="widget Advman_Widget">
<h3 class="widgettitle"></h3>
<p><!-- BuySellAds.com Zone Code --></p>
<div id="bsap_1260346" class="bsarocks bsap_fc3166ea4a479e0fdb4251fbe92a1219"></div>
<p><!-- End BuySellAds.com Zone Code --></div>
<div id="text-21" class="widget widget_text">
<h3 class="widgettitle">Label</h3>
<div class="textwidget">
<div class="advert-notice"><a href="http://buysellads.com/buy/detail/56639/zone/1260346">Buy an ad here</a></div>
</div></div>
</div>
<p>I was planning to use the Magic Mouse with my work PC, but only half joy for now. You can pair it with code 0000 and it works as a regular dumb mouse. But no gesture support yet. To get vertical and horizontal scrolling and swiping for navigation we need to wait and see if Apple manages to create a driver for Windows-folk.</p>
<p>The Magic Mouse feels very stylish and precise when moving around. You get quickly used to having less bulk in your hand and the polycarbonate surface is only sticky while new-toy-excitement makes your palms sweaty. The swiping motion needs some training though. I found it best to grip it firmly with thumb and ringfinger at the sides, placeing the two fingers between onto the surface and then just to a very quick and short flick to a side. Don&#8217;t let go or you might flick your mouse off the table&#8230; <img src='http://www.cocoanetics.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>With a multitouch surface on the top you naturally suspect that pinch would work as well, but that&#8217;s not the case. Technically it might have been possible but that&#8217;s a kind of movement your fingers aren&#8217;t compatible with. Your thumb is busy guiding the mouse, so it is not available for simultaneous pinch movements. But doing a movement similar to a mouse wheel and holding down a key gives you screen zooming as we are used from other mice.</p>
<p>Finally there are the horizontal and vertical scrolling motions you can do for example in Safari. Having more active surface than just a small ball is a definite plus there. Also wheels and the ball did not give you the option to scroll with momentum. Having an iphone and momentum-enabled table views all day this way of scrolling feels much more natural and physical to you than the old way.</p>
<p>On the plus side Apple has created a winner for use on all Macs. One minus is lack of driver support for Windows. All in all the mouse does what the Mighty Mouse did but in an even more visually pleasing appearance and there is a major technological jump under the hood. Therefore I can recommend to get it with any new iMac you might be planning to get henceforward and if you prefer a mouse to a glass trackpad then it is also a compelling option.</p>
 <p><a href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=1429&amp;md5=3fa3ce79539fd88dc98fff7a0c95715c" title="Flattr" target="_blank"><img src="http://www.cocoanetics.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cocoanetics.com/2009/11/magic-mouse-has-landed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=1429&amp;md5=3fa3ce79539fd88dc98fff7a0c95715c" type="text/html" />"
	</item>
		<item>
		<title>Useful Push Notification for Developers</title>
		<link>http://www.cocoanetics.com/2009/10/useful-push-notification-for-developers/</link>
		<comments>http://www.cocoanetics.com/2009/10/useful-push-notification-for-developers/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 15:33:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.drobnik.com/touch/?p=1388</guid>
		<description><![CDATA[A couple of days ago I put in a feature into MyAppSales so that my server gets pinged anonymously if a user sees a new report. Actually all downloaded reports are reported by date, type and region, but I am keeping track of the first report for a specific key. Turns out the reports really DO get available simultaneously around the globe. That&#8217;s fair. Now what good is this information? Well, if you are like me you are still excited to see the previous day&#8217;s sales figures as soon as they become available. But with Apple sometimes being very slow in processing it could mean that you have to try the download serveral times until finally it is there. Enter Push! You can get the new report availability notification in three ways: Tell me an e-mail to send it to Via the iPhone app Notifications. Tell me your token. By following @myappsales on Twitter. What else could be pushed to be useful to you? Anything relevant to iTunes Connect? Even though MyAppSales was banned forever from the app store with the help of Notifications it still get&#8217;s push. And it works fabulously well for three days straight. Even if you don&#8217;t use MyAppSales you could still benefit from knowing when your new daily report is available and download it via AppViz or any other downloader of your choice. One idea are availability notifications. You would notify a server when you submit an app to apple. Then you would get a notification when Apple tests the app online. Finally you get a notification as soon as the app appears on the app store. I want to hear your needs. Maybe there can be an app for that &#8230; or a service &#8230; or a notification.]]></description>
			<content:encoded><![CDATA[<div class="plus-one-wrap"><g:plusone href="http://www.cocoanetics.com/2009/10/useful-push-notification-for-developers/"></g:plusone></div><p>A couple of days ago I put in a feature into MyAppSales so that my server gets pinged anonymously if a user sees a new report. Actually all downloaded reports are reported by date, type and region, but I am keeping track of the first report for a specific key. Turns out the reports really DO get available simultaneously around the globe. That&#8217;s fair.</p>
<p>Now what good is this information? Well, if you are like me you are still excited to see the previous day&#8217;s sales figures as soon as they become available. But with Apple sometimes being very slow in processing it could mean that you have to try the download serveral times until finally it is there.</p>
<p><a href="http://www.cocoanetics.com/files/logo.png"><img class="alignright size-full wp-image-1389" src="http://www.cocoanetics.com/files/logo.png" alt="Notifications App" width="141" height="171" /></a>Enter Push! You can get the new report availability notification in three ways:</p>
<ul>
<li>Tell me an e-mail to send it to</li>
<li>Via the iPhone app <a href="http://clk.tradedoubler.com/click?p=23761&amp;a=1657538&amp;url=http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=325074137&amp;mt=8&amp;partnerId=2003">Notifications</a>. Tell me your token.</li>
<li>By following <a href="http://www.twitter.com/myappsales">@myappsales</a> on Twitter.</li>
</ul>
<p>What else could be pushed to be useful to you? Anything relevant to iTunes Connect?</p>
<p>Even though MyAppSales was banned forever from the app store with the help of Notifications it still get&#8217;s push. And it works fabulously well for three days straight.</p>
<p>Even if you don&#8217;t use MyAppSales you could still benefit from knowing when your new daily report is available and download it via AppViz or any other downloader of your choice.</p>
<p>One idea are availability notifications. You would notify a server when you submit an app to apple. Then you would get a notification when Apple tests the app online. Finally you get a notification as soon as the app appears on the app store.</p>
<p>I want to hear your needs. Maybe there can be an app for that &#8230; or a service &#8230; or a notification.</p>
 <p><a href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=1388&amp;md5=3cbecfc2d272edaf80406210b03a09bd" title="Flattr" target="_blank"><img src="http://www.cocoanetics.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cocoanetics.com/2009/10/useful-push-notification-for-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=1388&amp;md5=3cbecfc2d272edaf80406210b03a09bd" type="text/html" />"
	</item>
		<item>
		<title>Making (Google) Waves</title>
		<link>http://www.cocoanetics.com/2009/10/making-google-waves/</link>
		<comments>http://www.cocoanetics.com/2009/10/making-google-waves/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 06:39:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.drobnik.com/touch/?p=1382</guid>
		<description><![CDATA[Being a geek at heart I instantly got excited when Google presented Wave to developers attending the I/O Conference. They call Wave a &#8220;personal communication and collaboration tool&#8221; when they unveiled it to the public for the first time. Since then a digital divide has opened up: those who have Google Wave accounts and those who want one. For some reason that has many heads shaking in disgust they opted to not immediately release it to the general public like they would do with BETA versions but instead do it in waves of a couple hundred-thousand each. So besides from working for Google or being close to them in any other way, the only way to get a coveted Google Wave account was to wait to be nominated by one of the few members who have nomination rights. The first bunch of accounts went to people who are looking to write plugins aka &#8220;bots&#8221; to add more functionalities. After a few minutes of experimenting you start to understand how to edit Waves. You can double-click into a body of text to get an option to edit. Once you do, all other people watching the wave will see your named cursor making the modifications almost live. You can also respond to specific blocks by clicking on their lower border. At the end of a thread you get &#8220;Continue this thread&#8221;, on a post in between you see &#8220;Insert Reply here&#8221;. Due to my interaction with the iPhone developer community and me making no secret out of my wish to get on Wave, some friendly colleague blessed me with an invitation and two days later I was on. If you want to use Wave for something more than just a glorified rich text editor, you need to have contacts to &#8220;wave&#8221; at. So I started a wave where I am adding every iPhone developer who also happens to have a Wave account. If you happen to have a Google Wave account yourself then please wave me at oliver.drobnik@googlewave.com. I am still &#8220;collecting&#8221; developers. As of this writing there are 16 developers on it. If you open the wave you see the other participants at the top and by clicking on their icons you can add them to your own contacts. The experiment is to see if some creativity could could be sparked if you just get enough like-minded people in the same place. I am excited about Wave because in daily life I find myself in many situations where I get e-mails with just one line of text that would have been better put in a tweet or instant message. And if you respond to specific parts of the message all the original text is quoted and mangled differently between different e-mail clients. Wave could solve this problem by having one Wave being one topic that is being structured by all its participants. The original bits stay intact. Also you can play back a wave to step through all the changes that where made over time to find out who is responsible for a specific edit. Google Wave can be seen as a the bold attempt to make e-mail and instant messaging obsolete, but it can only achieve this if it reaches critical mass sooner rather than later. It was only 2 years ago, with the purchase of my first iPhone, that I got e-mails working and in sync between my mobile device, my Exchange mail server and my Mac. To make Wave a success over just being a glorified geekery about how cool it is to have multiple cursors editing the same document, there needs to be total integration into the platforms we already use. And I mean BINARY integration. Not just a browser window into a cloud but also offline capability and a mobile UI that will convince people to make Wave their primary means of communication. Yesterday I also experimented around with the mobile version of Wave. If you access it with your iPhone&#8217;s safari you get a warning about it not being supported, but you can proceed at your own risk. Basic reading and responding to threads works well, though after a while you see why its not yet &#8220;officially supported&#8221;. Well, because of the ALPHA status its not even inofficially supported, but you find that some of the functions just don&#8217;t work. For example I found no way how I could enter editing mode for an existing Wave, some miniature buttons don&#8217;t do anything when tapped. But it is clear that Google is making an effort, because at first glance it looks quite usable even over 3G. People, or the current lack thereof, are just one of several factors that need to be addressed to make Wave a success. The other main reason for people writing a [...]]]></description>
			<content:encoded><![CDATA[<div class="plus-one-wrap"><g:plusone href="http://www.cocoanetics.com/2009/10/making-google-waves/"></g:plusone></div><p>Being a geek at heart I instantly got excited when Google presented Wave to developers attending the I/O Conference. They call Wave a &#8220;personal communication and collaboration tool&#8221; when they unveiled it to the public for the first time. Since then a digital divide has opened up: those who have Google Wave accounts and those who want one.</p>
<p>For some reason that has many heads shaking in disgust they opted to not immediately release it to the general public like they would do with BETA versions but instead do it in waves of a couple hundred-thousand each. So besides from working for Google or being close to them in any other way, the only way to get a coveted Google Wave account was to wait to be nominated by one of the few members who have nomination rights. The first bunch of accounts went to people who are looking to write plugins aka &#8220;bots&#8221; to add more functionalities.</p>
<p>After a few minutes of experimenting you start to understand how to edit Waves. You can double-click into a body of text to get an option to edit. Once you do, all other people watching the wave will see your named cursor making the modifications almost live. You can also respond to specific blocks by clicking on their lower border. At the end of a thread you get &#8220;Continue this thread&#8221;, on a post in between you see &#8220;Insert Reply here&#8221;.</p>
<p>Due to my interaction with the iPhone developer community and me making no secret out of my wish to get on Wave, some friendly colleague blessed me with an invitation and two days later I was on. If you want to use Wave for something more than just a glorified rich text editor, you need to have contacts to &#8220;wave&#8221; at. So I started a wave where I am adding every iPhone developer who also happens to have a Wave account.</p>
<p><a href="http://www.cocoanetics.com/files/Wave.png"><img class="alignnone size-medium wp-image-1383" src="http://www.cocoanetics.com/files/Wave-300x152.png" alt="Wave" width="300" height="152" /></a></p>
<p>If you happen to have a Google Wave account yourself then please wave me at <span style="color: #ff00ff"><strong>oliver.drobnik@googlewave.com</strong></span>. I am still &#8220;collecting&#8221; developers. As of this writing there are 16 developers on it. If you open the wave you see the other participants at the top and by clicking on their icons you can add them to your own contacts. The experiment is to see if some creativity could could be sparked if you just get enough like-minded people in the same place.</p>
<p>I am excited about Wave because in daily life I find myself in many situations where I get e-mails with just one line of text that would have been better put in a tweet or instant message. And if you respond to specific parts of the message all the original text is quoted and mangled differently between different e-mail clients. Wave could solve this problem by having one Wave being one topic that is being structured by all its participants. The original bits stay intact. Also you can play back a wave to step through all the changes that where made over time to find out who is responsible for a specific edit.</p>
<p><img class="alignright size-full wp-image-1384" src="http://www.cocoanetics.com/files/MobileWave.png" alt="Wave in mobile Safari" width="248" height="462" /></p>
<p>Google Wave can be seen as a the bold attempt to make e-mail and instant messaging obsolete, but it can only achieve this if it reaches critical mass sooner rather than later. It was only 2 years ago, with the purchase of my first iPhone, that I got e-mails working and in sync between my mobile device, my Exchange mail server and my Mac. To make Wave a success over just being a glorified geekery about how cool it is to have multiple cursors editing the same document, there needs to be total integration into the platforms we already use. And I mean BINARY integration. Not just a browser window into a cloud but also offline capability and a mobile UI that will convince people to make Wave their primary means of communication.</p>
<p>Yesterday I also experimented around with the mobile version of Wave. If you access it with your iPhone&#8217;s safari you get a warning about it not being supported, but you can proceed at your own risk. Basic reading and responding to threads works well, though after a while you see why its not yet &#8220;officially supported&#8221;. Well, because of the ALPHA status its not even inofficially supported, but you find that some of the functions just don&#8217;t work. For example I found no way how I could enter editing mode for an existing Wave, some miniature buttons don&#8217;t do anything when tapped. But it is clear that Google is making an effort, because at first glance it looks quite usable even over 3G.</p>
<p>People, or the current lack thereof, are just one of several factors that need to be addressed to make Wave a success. The other main reason for people writing a blog and trying to interact with readers and friends alike is that you will be able to embed waves into blogs retaining the possibility of commenting and collaborative editing. Somebody could ask me a question and I could elaborate on the answer in a Wave. Once everything has been ironed out I can publish the wave to an article.</p>
<p>One question that&#8217;s been on my mind is if Google Wave will also be capable of replacing Wikis. There are many people who either keep all their &#8220;documentation&#8221; in their mail client or meticulously sort them into their personal Wikis. Or somewhere in between, say text files on harddisks. Wave offers folders and custom searches, but I don&#8217;t see yet how you can organize knowledge on a larger scale with it. But maybe down the road we will also edit Wikis from within Google Wave.</p>
<p>Finally the promise is also to be an open standard based on open source. Companies will be able to set up their own Wave servers and provide identity to users. Still, through a process called federation, the promise is to still be able to interact with Waves hosted on Google or other Wave servers. That is clearly the way ahead because even though Google claims to &#8220;not be evil&#8221; it is simply prudent to keep your confidential data on your own servers.</p>
<p>PS: One video on YouTube was also making waves. Some creative guy used quotes from Pulp Fiction to demonstrate a few of the things you can do in a wave.</p>
 <p><a href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=1382&amp;md5=831a92c9cec023875f684e1c4e6c12d3" title="Flattr" target="_blank"><img src="http://www.cocoanetics.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cocoanetics.com/2009/10/making-google-waves/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=1382&amp;md5=831a92c9cec023875f684e1c4e6c12d3" type="text/html" />"
	</item>
		<item>
		<title>Oh No! All App Sales Data Gone!</title>
		<link>http://www.cocoanetics.com/2009/06/oh-no-al-app-data-is-gone/</link>
		<comments>http://www.cocoanetics.com/2009/06/oh-no-al-app-data-is-gone/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 19:37:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.drobnik.com/touch/?p=1052</guid>
		<description><![CDATA[When I updated my iPhone 3G to OS 3.0 to be used on &#8211; shall we say &#8211; the network of my choosing I found that the signal strength reported is much less. Most of the times it is even &#8220;No Service&#8221;. On various forums you can read that this might be due to restoring the iPhone from backup. So I did a full factory reset hoping to fix the problem, which it did not. But when I wanted to get back to my normal life I found that the wipe also had removed important data like all my daily sales reports since October which I have been faithfully collecting with my trusty MyAppSales app. With the built-in import/export web server it is easy to copy the sqlite database over to your Mac. But then it dawned on me that I had done so the last time 13 days ago. So if I would put this in db in, I would have a gap of 6 days. I needed to find a way to get back to just the single apps.db contained in the iPhone backups that iTunes routinely creates every time you synch. Label Buy an ad here If you only have iTunes at your disposal then you are limited to fully restore all user data including data for apps that you no longer have installed. My tests have shown that iTunes does not check which apps you really install again but instead copies all user data over. In my case I needed a much more fine grained approach. Luckily the iPhone backups usually are not encrypted. This new backup encryption feature of iTunes 8.1 is not on by default and this permits some nifty applications to extract data from the backup files. There are two tools that you find if you go search for &#8220;iphone backup extract&#8221;. One that is based on .NET and will run on Windows with the framework installed and on Linux and OSX if you install Mono. This is called Backup Extractor by Reincubate: Labs. I had been recommending this tool to a couple of clients previously who have successfully recovered a current apps.db, but complained that it would take them upwards of half an hour to extract all files. I am not the patient type so I continued digging for a more fitting solution. I found an old Google Code project with a python script which directed me to a well hidden (i.e. not visible in Google) page with my final solution. The tool that I settled on is also called iPhone/iPod Backup Extractor but the name of the site made me smile: supercrazyawesome.com. But the name fits, because incidentally I find it super and awesome to be able to extract user data for single apps with ease. That&#8217;s all there is to the user interface. You click on &#8220;Read Backups&#8221;, choose the one that fits your device and the correct time and then you choose the app. I chose MyAppSales, and extracted my data into a new directory. After reinstalled MyAppSales from XCode via &#8220;Build&#38;Go&#8221;, I fired up the internal web server on the settings dialog. I connected to the mentioned IP address with Safari, uploaded the previously recovered apps.db and restarted the app. Then finally the one new report from yesterday that I really was after got downloaded and I was happy. That&#8217;s why I can wholeheartedly recommend this tool to anyone who ever gets to be in a similar situation. Just in case I send the author a couple of dollars to show my appreciation.]]></description>
			<content:encoded><![CDATA[<div class="plus-one-wrap"><g:plusone href="http://www.cocoanetics.com/2009/06/oh-no-al-app-data-is-gone/"></g:plusone></div><p>When I updated my iPhone 3G to OS 3.0 to be used on &#8211; shall we say &#8211; the network of my choosing I found that the signal strength reported is much less. Most of the times it is even &#8220;No Service&#8221;. On various forums you can read that this might be due to restoring the iPhone from backup. So I did a full factory reset hoping to fix the problem, which it did not.</p>
<p>But when I wanted to get back to my normal life I found that the wipe also had removed important data like all my daily sales reports since October which I have been faithfully collecting with my trusty <a href="http://www.cocoanetics.com/my-app-sales/">MyAppSales</a> app. With the built-in import/export web server it is easy to copy the sqlite database over to your Mac. But then it dawned on me that I had done so the last time 13 days ago.</p>
<p>So if I would put this in db in, I would have a gap of 6 days. I needed to find a way to get back to just the single apps.db contained in the iPhone backups that iTunes routinely creates every time you synch.</p>
<p><span id="more-1052"></span></p>
<div class="inner_ad_block">
<div id="advman-7" class="widget Advman_Widget">
<h3 class="widgettitle"></h3>
<p><!-- BuySellAds.com Zone Code --></p>
<div id="bsap_1260346" class="bsarocks bsap_fc3166ea4a479e0fdb4251fbe92a1219"></div>
<p><!-- End BuySellAds.com Zone Code --></div>
<div id="text-21" class="widget widget_text">
<h3 class="widgettitle">Label</h3>
<div class="textwidget">
<div class="advert-notice"><a href="http://buysellads.com/buy/detail/56639/zone/1260346">Buy an ad here</a></div>
</div></div>
</div>
<p>If you only have iTunes at your disposal then you are limited to fully restore all user data including data for apps that you no longer have installed. My tests have shown that iTunes does not check which apps you really install again but instead copies all user data over.</p>
<p>In my case I needed a much more fine grained approach. Luckily the iPhone backups usually are not encrypted. This new <a href="http://www.theiphoneblog.com/2009/03/19/iphone-os-30-encrypt-iphone-backups-itunes-81/">backup encryption feature</a> of iTunes 8.1 is not on by default and this permits some nifty applications to extract data from the backup files.</p>
<p>There are two tools that you find if you go search for &#8220;iphone backup extract&#8221;. One that is based on .NET and will run on Windows with the framework installed and on Linux and OSX if you install Mono. This is called <a href="http://www.reincubate.com/labs/iphone-backup-extractor-how-extract-files-iphone-backup-windows">Backup Extractor</a> by Reincubate: Labs. I had been recommending this tool to a couple of clients previously who have successfully recovered a current apps.db, but complained that it would take them upwards of half an hour to extract all files.</p>
<p>I am not the patient type so I continued digging for a more fitting solution. I found an old Google Code project with a <a href="http://code.google.com/p/iphone-backup-decoder/">python script</a> which directed me to a well hidden (i.e. not visible in Google) page with my final solution.</p>
<p>The tool that I settled on is also called i<a href="http://supercrazyawesome.com/">Phone/iPod Backup Extractor</a> but the name of the site made me smile: <a href="http://supercrazyawesome.com/">supercrazyawesome.com</a>. But the name fits, because incidentally I find it super and awesome to be able to extract user data for single apps with ease.</p>
<p><a href="http://www.cocoanetics.com/files/backup_extractor.png"><img class="alignnone size-medium wp-image-1053" src="http://www.cocoanetics.com/files/backup_extractor-300x299.png" alt="Backup Extractor" width="300" height="299" /></a></p>
<p>That&#8217;s all there is to the user interface. You click on &#8220;Read Backups&#8221;, choose the one that fits your device and the correct time and then you choose the app. I chose MyAppSales, and extracted my data into a new directory.</p>
<p>After reinstalled MyAppSales from XCode via &#8220;Build&amp;Go&#8221;, I fired up the internal web server on the settings dialog.</p>
<p><a href="http://www.cocoanetics.com/files/import_server.png"><img class="alignnone size-full wp-image-1054" src="http://www.cocoanetics.com/files/import_server.png" alt="Import Server" width="319" height="137" /></a></p>
<p>I connected to the mentioned IP address with Safari, uploaded the previously recovered apps.db and restarted the app. Then finally the one new report from yesterday that I really was after got downloaded and I was happy.</p>
<p>That&#8217;s why I can wholeheartedly recommend this tool to anyone who ever gets to be in a similar situation. Just in case I send the author a couple of dollars to show my appreciation.</p>
 <p><a href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=1052&amp;md5=ec2d155004e838f6581bc58cdbaf8ea1" title="Flattr" target="_blank"><img src="http://www.cocoanetics.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cocoanetics.com/2009/06/oh-no-al-app-data-is-gone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=1052&amp;md5=ec2d155004e838f6581bc58cdbaf8ea1" type="text/html" />"
	</item>
		<item>
		<title>The Definitive List of Sales Report Tools</title>
		<link>http://www.cocoanetics.com/2009/05/the-definitive-list-of-sales-report-tools/</link>
		<comments>http://www.cocoanetics.com/2009/05/the-definitive-list-of-sales-report-tools/#comments</comments>
		<pubDate>Fri, 15 May 2009 06:42:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.drobnik.com/touch/?p=827</guid>
		<description><![CDATA[I am trying to convince somebody (other than myself) to do an in-depth comparison of all the ways you can download your app sales reports from iTunes Connect. I wonder why no blogger ever thought of this, clearly there lots of people with apps in the store and all of these are fed up with the crappy way of manually downloading the reports from Apple. So far the only blogger who made an effort to compare sales report and ranking tools available was MarkJ.net. Another one can be found on MacStories.net. All of these would benefit if we could nudge Apple towards creating a Web 3.0 open report download API. Because then we could compete on merit of our tools and not of who does the best marketing or who was able to fool Apple or not. Label Buy an ad here So here&#8217;s the list I was able to google together, your comments are invited if you use one of these tools or maybe one that I did not find. And if you are a serious blogger who is interested to create something that does not yet exist on the internet then please use this list as a starting point for a side-by-side comparison in the three major categories: Desktop, Mobile, Online. MOBILE Sales Tracker Sale Report App Sales Mobile MyAppSales DESKTOP Sales Report AppViz AppStore Clerk ONLINE Heartbeat Appstatz AppFigures Applyzer UTILITIES ITunes Connect Scraper App Daily Sales App Store Reports App Store Stats Report Processor Droplet]]></description>
			<content:encoded><![CDATA[<div class="plus-one-wrap"><g:plusone href="http://www.cocoanetics.com/2009/05/the-definitive-list-of-sales-report-tools/"></g:plusone></div><p>I am trying to convince somebody (other than myself) to do an in-depth comparison of all the ways you can download your app sales reports from iTunes Connect. I wonder why no blogger ever thought of this, clearly there lots of people with apps in the store and all of these are fed up with the crappy way of manually downloading the reports from Apple.</p>
<p>So far the only blogger who made an effort to compare sales report and ranking tools available was <a href="http://www.markj.net/sales-stats-tools-for-iphone-apps/">MarkJ.net</a>. Another one can be found on <a href="http://www.macstories.net/2009/05/18/the-ultimate-app-store-sales-tracking-software-roundup/">MacStories.net</a>.</p>
<p>All of these would benefit if we could nudge Apple towards creating a Web 3.0 <a href="http://www.cocoanetics.com/2009/04/petition-itunes-sales-report-api/">open report download API</a>. Because then we could compete on merit of our tools and not of who does the best marketing or who was able to fool Apple or not.</p>
<p><span id="more-827"></span></p>
<div class="inner_ad_block">
<div id="advman-7" class="widget Advman_Widget">
<h3 class="widgettitle"></h3>
<p><!-- BuySellAds.com Zone Code --></p>
<div id="bsap_1260346" class="bsarocks bsap_fc3166ea4a479e0fdb4251fbe92a1219"></div>
<p><!-- End BuySellAds.com Zone Code --></div>
<div id="text-21" class="widget widget_text">
<h3 class="widgettitle">Label</h3>
<div class="textwidget">
<div class="advert-notice"><a href="http://buysellads.com/buy/detail/56639/zone/1260346">Buy an ad here</a></div>
</div></div>
</div>
<p>So here&#8217;s the list I was able to google together, your comments are invited if you use one of these tools or maybe one that I did not find. And if you are a serious blogger who is interested to create something that does not yet exist on the internet then please use this list as a starting point for a side-by-side comparison in the three major categories: Desktop, Mobile, Online.</p>
<p><strong>MOBILE</strong></p>
<ul>
<li><a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=309821578&amp;mt=8">Sales Tracker</a></li>
<li><a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=300011444&amp;mt=8">Sale Report</a></li>
<li><a href="http://code.google.com/p/appsales-mobile/">App Sales Mobile</a></li>
<li><a href="http://www.cocoanetics.com/my-app-sales/">MyAppSales</a></li>
</ul>
<p><strong>DESKTOP</strong></p>
<ul>
<li><a href="http://www.dolejsky.com/sales-report/">Sales Report</a></li>
<li><a href="http://www.ideaswarm.com/products/appviz/">AppViz</a></li>
<li><a href="http://blog.fieryferret.com/2008/10/appstore-clerk.html">AppStore Clerk</a></li>
</ul>
<p><strong>ONLINE</strong></p>
<ul>
<li><a href="http://www.heartbeatapp.com">Heartbeat</a></li>
<li><a href="http://appstatz.com/">Appstatz</a></li>
<li><a href="https://www.appfigures.com">AppFigures</a></li>
<li><a href="http://www.applyzer.com">Applyzer</a></li>
</ul>
<p><strong>UTILITIES</strong></p>
<ul>
<li><a href="http://code.google.com/p/itunes-connect-scraper/">ITunes Connect Scraper</a></li>
<li><a href="http://code.google.com/p/appdailysales/">App Daily Sales</a></li>
<li><a href="http://code.google.com/p/appstorereports/">App Store Reports</a></li>
<li><a href="http://www.nilobject.com/2008/08/07/Group-and-organize-your-iTunes-sales-stats.html">App Store Stats</a></li>
<li><a href="http://michael.tyson.id.au/2009/01/01/apple-itunes-connect-trendtransaction-report-processor/">Report Processor Droplet</a></li>
</ul>
 <p><a href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=827&amp;md5=fc2ac60c74cced004eefdc58a40a9a23" title="Flattr" target="_blank"><img src="http://www.cocoanetics.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cocoanetics.com/2009/05/the-definitive-list-of-sales-report-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=827&amp;md5=fc2ac60c74cced004eefdc58a40a9a23" type="text/html" />"
	</item>
		<item>
		<title>CRACKED! (But Surviving)</title>
		<link>http://www.cocoanetics.com/2009/05/cracked-but-surviving/</link>
		<comments>http://www.cocoanetics.com/2009/05/cracked-but-surviving/#comments</comments>
		<pubDate>Thu, 14 May 2009 07:18:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.drobnik.com/touch/?p=789</guid>
		<description><![CDATA[I woke up this morning finding over two hundred additional LuckyWheel installations. My first thought was that I must have striken a gold mine. I looked around for a new review, or if LuckyWheel got finally featured. Nothing of this sort. Then I responded to a thread on iphonedevsdk forum regarding crack detection when I dawned on me: CRACKED! And if you google “Luckywheel IPA&#8221; you immediately find 3 sites that have posted a cracked IPA: The right question to ask now is: AntiCrack still working? And I can respond resoundingly – with proudly swelled chest – YES! I checked the cracked IPA and found that all copy protection checks are still fully functioning. All those people downloading the cracked IPA are actually getting a limited Lite version without knowing it. So either the cracker used an old version of Crackulous or it simply does NOT (YET) prevent the prevention. It just removed the Apple shrink wrap. So what will happen is that all those people will find after 10 rounds that they have downloaded a Lite version and will be prompted to purchase the Full one. My current conversion rate from Lite to Full is 0.7%, so these more than 1000 additional customers might translate into ten or so additional dollars of sales every day. Not a gold mine, but still more business that I would have done without the additional marketing channel. So the news are good! AntiCrack is still 100% safe and will continue to be because the community forming around it has begun to share knowledge as to make the copy protection even more secure.]]></description>
			<content:encoded><![CDATA[<div class="plus-one-wrap"><g:plusone href="http://www.cocoanetics.com/2009/05/cracked-but-surviving/"></g:plusone></div><p>I woke up this morning finding over two hundred additional LuckyWheel installations. My first thought was that I must have striken a gold mine. I looked around for a new review, or if LuckyWheel got finally featured. Nothing of this sort.</p>
<p>Then I responded to a thread on iphonedevsdk forum regarding crack detection when I dawned on me: CRACKED! And if you google <a href="http://www.google.com/search?client=safari&amp;rls=en-us&amp;q=luckywheel+ipa&amp;ie=UTF-8&amp;oe=UTF-8">“Luckywheel IPA&#8221;</a> you immediately find 3 sites that have posted a cracked IPA:</p>
<p><a href="http://www.cocoanetics.com/files/luckywheel-cracked.png"><img class="alignright size-full wp-image-790" src="http://www.cocoanetics.com/files/luckywheel-cracked.png" alt="LuckyWheel Cracked" width="632" height="514" /></a></p>
<p>The right question to ask now is: <a href="http://www.cocoanetics.com/anticrack/">AntiCrack</a> still working?</p>
<p>And I can respond resoundingly – with proudly swelled chest – YES!</p>
<p>I checked the cracked IPA and found that all copy protection checks are still fully functioning. All those people downloading the cracked IPA are actually getting a limited Lite version without knowing it.</p>
<p>So either the cracker used an old version of Crackulous or it simply does NOT (YET) prevent the prevention. It just removed the Apple shrink wrap.</p>
<p>So what will happen is that all those people will find after 10 rounds that they have downloaded a Lite version and will be prompted to purchase the Full one. My current conversion rate from Lite to Full is 0.7%, so these more than 1000 additional customers might translate into ten or so additional dollars of sales every day. Not a gold mine, but still more business that I would have done without the additional marketing channel.</p>
<p>So the news are good! <a href="http://www.cocoanetics.com/anticrack/">AntiCrack</a> is still 100% safe and will continue to be because the community forming around it has begun to share knowledge as to make the copy protection even more secure.</p>
 <p><a href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=789&amp;md5=755b47cc46774728fc8a778381592a9d" title="Flattr" target="_blank"><img src="http://www.cocoanetics.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cocoanetics.com/2009/05/cracked-but-surviving/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=789&amp;md5=755b47cc46774728fc8a778381592a9d" type="text/html" />"
	</item>
		<item>
		<title>Make Your Apps Crash-Proof!</title>
		<link>http://www.cocoanetics.com/2009/05/make-your-apps-crash-proof/</link>
		<comments>http://www.cocoanetics.com/2009/05/make-your-apps-crash-proof/#comments</comments>
		<pubDate>Wed, 06 May 2009 06:57:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.drobnik.com/touch/?p=702</guid>
		<description><![CDATA[Yesterday when I went into iTunes Connect to download some promo codes for peer reviews if noticed a new announcement. Apple has begun to provide customer&#8217;s crash reports for your apps. That&#8217;s great news as you now can see precisely where your apps need work. Crash logs for applications are now available. To view them, go the Manage Your Applications Module below, click to view the desired application&#8217;s details, then click View Crash Report. You can test all you want, in all likelyhood one of your valued customers will find a method to make your app crash because they use it in a way that you did not anticipate. Label Buy an ad here The crash reports feature is hidden behind the &#8220;Manage Your Apps&#8221; section. Next klick on the &#8220;App Details&#8221; link for any of your released apps. Now it depends whether you have created a crash-resistant app. Because if you did, you are a god amongst programmers. If you a a mere human you will see a blue &#8220;Crash Report&#8221; button in the upper left hand corner. Click the button and you see a terrific overview of what&#8217;s troubling your users. There are two main categories of crash reports related to &#8220;Crashes&#38;Freezes&#8221; and &#8220;Memory Problems&#8221;. You get a statistical analysis on how many percent of reports contain a certain problem. That&#8217;s great to know, because this is what you should fix the soonest. In my case I see that I seem to be having an overreleasing of memory problem, causing a crash on deallocating instances of my TrackPoint class. This might happen upon program exit or if somebody tries to delete a GPS track. I did not know! Now I do! The second problem I am seeing is that sometimes GeoCorder times out on exit. That might be if there is too much data to be saved. I had changed GeoCorder to use SQLite instead of PLISTs and to save the data while it is being recorded, but this crash report tells a tale of a PLIST taking too long to save. Maybe I forgot to take out this old code? Oh no! Again, something to urgently fix. So you can see, you can test all you want, the customer is always right. And now he has the crash reports to prove it! In all likelyhood we will see the quality of code increase dramatically in the near future because as of now developers have hundreds if not millions of BETA-Testers who will submit their crash reports. On the other side, if you are a customer, then starting now it makes totally sense to allow sending of &#8220;diagnostic information&#8221; when your iTunes asks you about if you want to permit transmission. You might not feel inclined to file a bug report on your app vendors web site, but sending a crash report is invaluable to get your problem fixed.]]></description>
			<content:encoded><![CDATA[<div class="plus-one-wrap"><g:plusone href="http://www.cocoanetics.com/2009/05/make-your-apps-crash-proof/"></g:plusone></div><p>Yesterday when I went into iTunes Connect to download some promo codes for peer reviews if noticed a new announcement. Apple has begun to provide customer&#8217;s crash reports for your apps. That&#8217;s great news as you now can see precisely where your apps need work.</p>
<blockquote><p>Crash logs for applications are now available. To view them, go the Manage Your Applications Module below, click to view the desired application&#8217;s details, then click View Crash Report.</p></blockquote>
<p>You can test all you want, in all likelyhood one of your valued customers will find a method to make your app crash because they use it in a way that you did not anticipate.</p>
<p><span id="more-702"></span></p>
<div class="inner_ad_block">
<div id="advman-7" class="widget Advman_Widget">
<h3 class="widgettitle"></h3>
<p><!-- BuySellAds.com Zone Code --></p>
<div id="bsap_1260346" class="bsarocks bsap_fc3166ea4a479e0fdb4251fbe92a1219"></div>
<p><!-- End BuySellAds.com Zone Code --></div>
<div id="text-21" class="widget widget_text">
<h3 class="widgettitle">Label</h3>
<div class="textwidget">
<div class="advert-notice"><a href="http://buysellads.com/buy/detail/56639/zone/1260346">Buy an ad here</a></div>
</div></div>
</div>
<p>The crash reports feature is hidden behind the &#8220;Manage Your Apps&#8221; section. Next klick on the &#8220;App Details&#8221; link for any of your released apps. Now it depends whether you have created a crash-resistant app. Because if you did, you are a god amongst programmers. If you a a mere human you will see a blue &#8220;Crash Report&#8221; button in the upper left hand corner.</p>
<p><a href="http://www.cocoanetics.com/files/crash1.png"><img class="alignnone size-medium wp-image-705" src="http://www.cocoanetics.com/files/crash1-300x216.png" alt="Crash Button" width="300" height="216" /></a></p>
<p>Click the button and you see a terrific overview of what&#8217;s troubling your users.</p>
<p><a href="http://www.cocoanetics.com/files/crash2.png"><img class="alignnone size-medium wp-image-704" src="http://www.cocoanetics.com/files/crash2-300x216.png" alt="Crash Overview" width="300" height="216" /></a></p>
<p>There are two main categories of crash reports related to &#8220;Crashes&amp;Freezes&#8221; and &#8220;Memory Problems&#8221;. You get a statistical analysis on how many percent of reports contain a certain problem. That&#8217;s great to know, because this is what you should fix the soonest.</p>
<p>In my case I see that I seem to be having an overreleasing of memory problem, causing a crash on deallocating instances of my TrackPoint class. This might happen upon program exit or if somebody tries to delete a GPS track. I did not know! Now I do!</p>
<p><a href="http://www.cocoanetics.com/files/crash3.png"><img class="alignnone size-medium wp-image-703" src="http://www.cocoanetics.com/files/crash3-300x282.png" alt="Dealloc Crash" width="300" height="282" /></a></p>
<p>The second problem I am seeing is that sometimes GeoCorder times out on exit. That might be if there is too much data to be saved. I had changed GeoCorder to use SQLite instead of PLISTs and to save the data while it is being recorded, but this crash report tells a tale of a PLIST taking too long to save. Maybe I forgot to take out this old code? Oh no! Again, something to urgently fix.</p>
<p><a href="http://www.cocoanetics.com/files/crash4.png"><img class="alignnone size-medium wp-image-706" src="http://www.cocoanetics.com/files/crash4-300x282.png" alt="Timeout Crash" width="300" height="282" /></a></p>
<p>So you can see, you can test all you want, the customer is always right. And now he has the crash reports to prove it!</p>
<p>In all likelyhood we will see the quality of code increase dramatically in the near future because as of now developers have hundreds if not millions of BETA-Testers who will submit their crash reports.</p>
<p>On the other side, if you are a customer, then starting now it makes totally sense to allow sending of &#8220;diagnostic information&#8221; when your iTunes asks you about if you want to permit transmission. You might not feel inclined to <a href="http://www.drobnik.com/bugs">file a bug report</a> on your app vendors web site, but sending a crash report is invaluable to get your problem fixed.</p>
 <p><a href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=702&amp;md5=b0433635655c809672097599dadca8a2" title="Flattr" target="_blank"><img src="http://www.cocoanetics.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cocoanetics.com/2009/05/make-your-apps-crash-proof/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=702&amp;md5=b0433635655c809672097599dadca8a2" type="text/html" />"
	</item>
		<item>
		<title>Apple Owes Me Millions, or Lucky Women on Top</title>
		<link>http://www.cocoanetics.com/2009/04/apple-owes-me-millions-or-lucky-women-on-top/</link>
		<comments>http://www.cocoanetics.com/2009/04/apple-owes-me-millions-or-lucky-women-on-top/#comments</comments>
		<pubDate>Sun, 19 Apr 2009 08:31:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.drobnik.com/touch/?p=534</guid>
		<description><![CDATA[When you are trying to be successful with something you think a lot. You are researching methods that worked for other people. You are pondering, designing, sweating. You are emulating what caused success in others. And it does not get you anywhere where you would already call yourself successful. But then comes a long a new aquaintence, a little tool called AppRanking for FREE, that turns your world upside down and with this external help you suddenly realize that you are already many times more successful that you thought you are. You just looked in the wrong direction. Label Buy an ad here Or maybe your opinion what really constitutes success is skewed by reports in the media of people who stroke a gold mine with their first app, like this guy that made trism. Oh boy, wouldn&#8217;t it be great to make a quick million dollars from a month&#8217;s work? I promise that I would not let it get to my head. I would found a company, employ multiple people to design, create and market wonderful iPhone apps. And just like John Cormak I still would be touching code more often than not, in between negotiations with venture capitalists. One can dream &#8230; My first app was called DropClock and it would measure the time that your iPhone was in free fall. From this amount of milliseconds it would calculate the fallen height. So this would enable you to quickly measure heights, provided you provide a cushion or other soft surface for your phone to land on. Also I added a joke, which was a picture of a broken screen which would pop up after 3 times falling from a greater height than 30 centimeters. So you could show this app to a friend and when he got the broken screen image you could tell him &#8220;Hey! You broke my iPhone.&#8221; I was sure that millions of people would buy this stupid app, but Apple denyied me this box of gold, but instead made a couple of fart apps&#8217; makers rich. Apple considers joke apps that endager your iPhone too dangerous to permit onto the app store for fear of liability.  At least that&#8217;s my theory because I cannot explain why such a simple app still is &#8220;under review&#8221; after 7 months. When I started making apps my girlfriend had this app iWoman that she totally loved. So I figured, as an exercise, I am going to copy the app and add a couple of personalized touches. I even contacted the original author to see if he would be interested in a cooperation, but he told me that Nullriver had different plans. My iWoman turned out really well and so I submitted it to Apple on my own. I prized it slightly less than the competition which was much more complicated to use and was rewarded by a steady number of purchases every day. Nothing to get rich from, but it did finanze my dev setup costs within 3 months. Now with iWoman out on the market, clearly not being the gold mine I hoped for, I shifted my focus away to other apps. I made iFR Cockpit to play with accelerometer and GPS. I made GeoCorder because I needed GPS data for better understanding of how to improve iFR Cockpit. Both apps added a couple of dollars to my daily income. Again, still no gold mine in sight. The next hope for millions went into MyAppSales. At first I created it as a tool for myself so that I could keep track of those elusive daily reports. In the beginning I was downloading them one by one every day, but then I missed a week and these holes in my history I can never fill again. I added features and did an extensive BETA test with a dozen people to iron out all bugs. I figured that if I could be the first in the store with an app that EVERY developer needs then surely I would get rich this time. Some voices told me that Apple might not approve of MyAppSales, but then somebody showed me Sales Report by Maringo Holdings which essentially also downloads iTunes Reports via HTTPS. This app is still on sale for $14.99 at the time of this writing. So I took heart and poured all of it into MyAppSales, figuring that I could make a better app and sell it at a cheaper price. Again, Apple denied me my gold mine, after submitting it several times. Every time I wrote them I got an additional sentence of information until in the end they cited 3.3.7 of the SDK agreement which prohibits scraping of the iTunesConnect site. I mailed Maringo congratulating them for having successfully fooled Apple and bested me. The maker of Sales [...]]]></description>
			<content:encoded><![CDATA[<div class="plus-one-wrap"><g:plusone href="http://www.cocoanetics.com/2009/04/apple-owes-me-millions-or-lucky-women-on-top/"></g:plusone></div><p>When you are trying to be successful with something you think a lot. You are researching methods that worked for other people. You are pondering, designing, sweating. You are emulating what caused success in others. And it does not get you anywhere where you would already call yourself successful.</p>
<p>But then comes a long a new aquaintence, a little tool called <a href="http://www.cocoanetics.com/index.php/2009/04/appranking-112/">AppRanking for FREE</a>, that turns your world upside down and with this external help you suddenly realize that you are already many times more successful that you thought you are. You just looked in the wrong direction.</p>
<p><span id="more-534"></span></p>
<div class="inner_ad_block">
<div id="advman-7" class="widget Advman_Widget">
<h3 class="widgettitle"></h3>
<p><!-- BuySellAds.com Zone Code --></p>
<div id="bsap_1260346" class="bsarocks bsap_fc3166ea4a479e0fdb4251fbe92a1219"></div>
<p><!-- End BuySellAds.com Zone Code --></div>
<div id="text-21" class="widget widget_text">
<h3 class="widgettitle">Label</h3>
<div class="textwidget">
<div class="advert-notice"><a href="http://buysellads.com/buy/detail/56639/zone/1260346">Buy an ad here</a></div>
</div></div>
</div>
<p>Or maybe your opinion what really constitutes success is skewed by reports in the media of people who stroke a gold mine with their first app, like this guy that made trism. Oh boy, wouldn&#8217;t it be great to make a quick million dollars from a month&#8217;s work?</p>
<p>I promise that I would not let it get to my head. I would found a company, employ multiple people to design, create and market wonderful iPhone apps. And just like John Cormak I still would be touching code more often than not, in between negotiations with venture capitalists. One can dream &#8230;</p>
<p>My first app was called <strong>DropClock</strong> and it would measure the time that your iPhone was in free fall. From this amount of milliseconds it would calculate the fallen height. So this would enable you to quickly measure heights, provided you provide a cushion or other soft surface for your phone to land on. Also I added a joke, which was a picture of a broken screen which would pop up after 3 times falling from a greater height than 30 centimeters. So you could show this app to a friend and when he got the broken screen image you could tell him &#8220;Hey! You broke my iPhone.&#8221;</p>
<p>I was sure that millions of people would buy this stupid app, but Apple denyied me this box of gold, but instead made a couple of fart apps&#8217; makers rich. Apple considers joke apps that endager your iPhone too dangerous to permit onto the app store for fear of liability.  At least that&#8217;s my theory because I cannot explain why such a simple app still is &#8220;under review&#8221; after 7 months.</p>
<p><a href="http://www.cocoanetics.com/files/iwoman_icon.png"><img class="alignleft size-full wp-image-213" style="margin-left: 10px;margin-right: 10px" src="http://www.cocoanetics.com/files/iwoman_icon.png" alt="iWoman Icon" width="100" height="100" /></a>When I started making apps my girlfriend had this app <strong>iWoman</strong> that she totally loved. So I figured, as an exercise, I am going to copy the app and add a couple of personalized touches. I even contacted the original author to see if he would be interested in a cooperation, but he told me that Nullriver had different plans. My <a href="http://www.cocoanetics.com/index.php/iwoman/">iWoman</a> turned out really well and so I submitted it to Apple on my own. I prized it slightly less than the competition which was much more complicated to use and was rewarded by a steady number of purchases every day. Nothing to get rich from, but it did finanze my dev setup costs within 3 months.</p>
<p><a href="http://www.cocoanetics.com/files/ifr_cockpit_icon.png"><img class="alignright size-full wp-image-215" style="margin-left: 10px;margin-right: 10px" src="http://www.cocoanetics.com/files/ifr_cockpit_icon.png" alt="iFR Cockpit Icon" width="100" height="100" /></a>Now with iWoman out on the market, clearly not being the gold mine I hoped for, I shifted my focus away to other apps. I made <a href="http://www.cocoanetics.com/index.php/ifr-cockpit/">iFR Cockpit</a> to play with accelerometer and GPS. I made <a href="http://www.cocoanetics.com/index.php/geocorder/">GeoCorder</a> because I needed GPS data for better understanding of how to improve iFR Cockpit. Both apps added a couple of dollars to my daily income. Again, still no gold mine in sight.</p>
<p>The next hope for millions went into <a href="http://www.cocoanetics.com/my-app-sales/">MyAppSales</a>. At first I created it as a tool for myself so that I could keep track of those elusive daily reports. In the beginning I was downloading them one by one every day, but then I missed a week and these holes in my history I can never fill again. I added features and did an <a href="http://www.cocoanetics.com/index.php/2009/01/mobile-sales-report-app-beta/">extensive BETA test</a> with a dozen people to iron out all bugs. I figured that if I could be the first in the store with an app that EVERY developer needs then surely I would get rich this time.</p>
<p><a href="http://www.cocoanetics.com/files/myappsales-001.png"><img class="alignright size-medium wp-image-335" style="margin-left: 10px;margin-right: 10px" src="http://www.cocoanetics.com/files/myappsales-001-200x300.png" alt="MyAppSales Splash Screen" width="200" height="300" /></a>Some voices told me that Apple might not approve of MyAppSales, but then somebody showed me <a href="http://salesreport.marigoholdings.com">Sales Report by Maringo Holdings</a> which essentially also downloads iTunes Reports via HTTPS. This app is still <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=300011444&amp;mt=8">on sale for $14.99</a> at the time of this writing. So I took heart and poured all of it into MyAppSales, figuring that I could make a better app and sell it at a cheaper price.</p>
<p>Again, Apple denied me my gold mine, after submitting it several times. Every time I wrote them I got an additional sentence of information until in the end they <a href="http://www.cocoanetics.com/index.php/2009/03/apple-rejects-incredibly-useful-itunes-report-app/">cited 3.3.7 of the SDK agreement</a> which prohibits scraping of the iTunesConnect site. I mailed Maringo congratulating them for having successfully fooled Apple and bested me. The maker of Sales Report responded very friendly thanking me and in a later e-mail informed me that his version 2.0 update got denied by Apple on the same grounds.</p>
<p>I considered several methods of still making some money of those three months of work that I put into MyAppSales and ended up putting the <a href="http://www.cocoanetics.com/my-app-sales/">source for sale</a>. Since the customers for MyAppSales are developers anyway they might as well just compile it themselves and put it on their own devices. This also circumvents the problem that somebody might have of putting his secret Apple ID into an untrusted app. With the source code in front of you everybody can verify that MyAppSales is not doing anything criminal with the data.</p>
<p>I was hoping for the power of word of mouth to make MyAppSales famous enough to earn me a couple of thousand dollars. I am still waiting for that. On a good day I have one or two people who send me $15 for the source. Again, a couple of dollars every day, but nothing to <a href="http://www.cocoanetics.com/index.php/2009/04/quit-job-for-coding/">quit your day job</a> for.</p>
<p>Then came along <strong>Michael Dorn</strong> who approached me for cooperating on <a href="http://www.cocoanetics.com/index.php/luckywheel/">LuckyWheel</a>. I was to create the programming while he took care of the graphics. I was somewhat excited, clearly games are making the most people rich on iTunes. But having seen 3 gold mines and 1 oil well crumble in front of my mental eye I did not let myself be too excited about the chance of having a game in my portfolio.</p>
<p><a href="http://www.cocoanetics.com/files/luckywheel_icon.png"><img class="alignright size-full wp-image-207" style="margin-left: 10px;margin-right: 10px" src="http://www.cocoanetics.com/files/luckywheel_icon.png" alt="LuckyWheel" width="100" height="100" /></a>So we made LuckyWheel, in part as a programming exercise, in part because our testing with user&#8217;s showed how much people loved to have such a game to play with one or two other people. Social guessing, only mildly competing. Colorful graphics and a wheel to turn with your finger. When we released it LuckyWheel became an instant Non-Success, because on the very same day it got approved Apple also approved <a href="http://fingergaming.com/2009/03/luckywheel-wheel-of-fortune-battle-it-out-in-app-store/">Wheel of Fortune by Sony Entertainment</a>. Haha, very funny Apple! How do you think we can compete Sony?</p>
<p>We made some improvements, added additional languages and tweaked the gameplay to make LuckyWheel into the best budget wheelturner that we knew how to. With the latest update we now have English, German, Dutch, French, Spanish and Italian content, with the French UI being the last to be added with the next update. We made a Lite Version, which is limited to the first 10 proverbs in all included languages. All of these measures <strong>trippled our sales</strong> of the full version.</p>
<p>We had also added silent copy protection in an earlier version and we saw that the number of cracking attempts double from the previous to the <a href="http://www.cocoanetics.com/index.php/2009/03/luckywheel-103/">current version</a>. And yesterday was the first time in history where LuckyWheel surpassed iWoman in sales. So undenyable there is some momentum building. We are not getting rich from LuckyWheel but in the least the setup costs of Michael can be earned with it.</p>
<p>Speaking of Michael, he was the one who gave us <a href="http://www.cocoanetics.com/index.php/2009/04/appranking-112/">AppRanking for FREE</a> which I now use almost daily to check up on my best selling apps. Without it I would have never known that iWoman is now ranked first in Health&amp;Fitness in Israel and Saudi Arabia.</p>
<p><a href="http://www.cocoanetics.com/files/iwoman_rank.png"><img class="alignnone size-full wp-image-536" src="http://www.cocoanetics.com/files/iwoman_rank.png" alt="iWoman ranked on Top" width="497" height="385" /></a></p>
<p>This is the kind of success where I can honestly say that I <strong>don&#8217;t understand the reasons</strong> for. How are those countries different from USA or western/central Europe? What do women in Israel, Saudi Arabia, Russia, Guatemala and Thailand  have in common? If you have an idea what could be the reason for this phenomenon then please comment. I did not believe it at first, so I changed my iTunes country to Israel and found the information to be accurate.</p>
<p><a href="http://www.cocoanetics.com/files/iwoman_top.png"><img class="alignnone size-full wp-image-537" src="http://www.cocoanetics.com/files/iwoman_top.png" alt="iWoman Number 1 in Israel" width="436" height="330" /></a></p>
<p>So all the while I was focussing on wealth and other manly big ego goals, women in a couple of countries became my main audience and source of income. And I am ignorant and keep complaining that not enought people love <span style="text-decoration: line-through">me</span> my apps. Silly me.</p>
<p>So with all those disappointments, why do <strong>I continue to develop apps</strong> solely for the locked down Apple iPhone platform? That&#8217;s easy to answer, I love my iPhone and I love how easy it is to create applications for it. And besides all these letdowns I am still making a relevant amount of money that other people have to get a second and third job for. Or to put it in manly terms: Apple owes me a couple of million dollars of prevented income and I am going to stick around until I have gotten those out of them. <img src='http://www.cocoanetics.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>That&#8217;s why I would like to make <strong>my future wife</strong> the president of my company. She is the one who tells me I should be satisfied with having a steady stream of income however low it might be. And in any case she will still have me even if I only make a couple of hundred dollars a month from my apps. Be happy with what you&#8217;ve got!</p>
<p>She&#8217;s wiser than she gives herself credit for.</p>
<p>PS: Our wedding date is set to May 29th 2009 and we appreciate your donations to our wedding fund. (PayPal oliver@drobnik.com)</p>
 <p><a href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=534&amp;md5=c0aaa2b3d2440737bb29d161232ef671" title="Flattr" target="_blank"><img src="http://www.cocoanetics.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cocoanetics.com/2009/04/apple-owes-me-millions-or-lucky-women-on-top/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=534&amp;md5=c0aaa2b3d2440737bb29d161232ef671" type="text/html" />"
	</item>
		<item>
		<title>Transfer App Data Back to Your Mac</title>
		<link>http://www.cocoanetics.com/2009/04/transfer-app-data-back-to-your-mac/</link>
		<comments>http://www.cocoanetics.com/2009/04/transfer-app-data-back-to-your-mac/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 06:23:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.drobnik.com/touch/?p=448</guid>
		<description><![CDATA[If you are saving data in your apps then you are saving them to your app&#8217;s sandboxed documents directory. In simulator files you can easily inspect the contents of the directory if you just browse there with finder or cd there in terminal. Note that there is a space in the path, so you need to put exclamation marks around it if you use it with cd in terminal. NSArray *paths = NSSearchPathForDirectoriesInDomains&#40;NSDocumentDirectory, NSUserDomainMask, YES&#41;; NSString *documentsDirectory = &#91;paths objectAtIndex:0&#93;; NSLog&#40;documentsDirectory&#41;; // output documents directory to debug console Copy this path, open terminal and go: MacDrops:~ Oliver$ cd &#34;/Users/Oliver/Library/Application Support/iPhone Simulator/User/Applications/AAC8D0E8-C134-4A94-ACA9-88C7A58DCE1C/Documents&#34; Or if you prefer Finder then use the handy option &#8220;Go To Folder &#8230;&#8221; and paste the path there. Bear in mind that with every new build the documents directory gets moved to a new application ID. The contents will persist, but the path changes. If you navigate to the ../User/Applications folder you will find that the newest directory is the one that belongs to your just-built app. There are some rare cases though when you find that Simulator behaves differently than a device. How can you inspect the files there? Label Buy an ad here Fortunately you don&#8217;t have to jailbreak your iPhone just to be able to retrieve the contents of your app&#8217;s doc dir. This functionality is there, but Apple hid so well in XCode that you&#8217;ll never find it unless somebody points your nose right at it. Like I am doing now. Connect your development device and go to the XCode Organizer window. Select your device with the green light and then expand the triangle next to your app&#8217;s name under &#8220;Applications&#8221;. There pops up a line &#8220;Application Data&#8221; with an even smaller downward arrow on the right side. Guess what, that icon is meant to symbolize DOWN-load! If you click on this you can select a place to put the files. Once the files are saved you also see them appear in the upper left hand corner under &#8220;Projects &#38; Sources&#8221;. They are sorted by the full bundle identifier of your app suffixed with date and time of the transfer. This way you can keep multiple snapshots and inspect how your written files have changed over time. One less reason to jailbreak your iPhone.]]></description>
			<content:encoded><![CDATA[<div class="plus-one-wrap"><g:plusone href="http://www.cocoanetics.com/2009/04/transfer-app-data-back-to-your-mac/"></g:plusone></div><p>If you are saving data in your apps then you are saving them to your app&#8217;s sandboxed <a href="http://www.cocoanetics.com/index.php/2009/03/getting-standard-paths/">documents directory</a>. In simulator files you can easily inspect the contents of the directory if you just browse there with finder or cd there in terminal. Note that there is a space in the path, so you need to put exclamation marks around it if you use it with cd in terminal.</p>

<div class="wp_codebox"><table><tr id="p4487"><td class="code" id="p448code7"><pre class="objc" style="font-family:monospace;"><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/"><span style="color: #400080;">NSArray</span></a> <span style="color: #002200;">*</span>paths <span style="color: #002200;">=</span> NSSearchPathForDirectoriesInDomains<span style="color: #002200;">&#40;</span>NSDocumentDirectory, NSUserDomainMask, <span style="color: #a61390;">YES</span><span style="color: #002200;">&#41;</span>;
<a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/"><span style="color: #400080;">NSString</span></a> <span style="color: #002200;">*</span>documentsDirectory <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>paths objectAtIndex<span style="color: #002200;">:</span><span style="color: #2400d9;">0</span><span style="color: #002200;">&#93;</span>;
NSLog<span style="color: #002200;">&#40;</span>documentsDirectory<span style="color: #002200;">&#41;</span>;  <span style="color: #11740a; font-style: italic;">// output documents directory to debug console</span></pre></td></tr></table></div>

<p>Copy this path, open terminal and go:</p>

<div class="wp_codebox"><table><tr id="p4488"><td class="code" id="p448code8"><pre class="objc" style="font-family:monospace;">MacDrops<span style="color: #002200;">:</span>~ Oliver$ cd <span style="color: #bf1d1a;">&quot;/Users/Oliver/Library/Application Support/iPhone Simulator/User/Applications/AAC8D0E8-C134-4A94-ACA9-88C7A58DCE1C/Documents&quot;</span></pre></td></tr></table></div>

<p>Or if you prefer Finder then use the handy option &#8220;Go To Folder &#8230;&#8221; and paste the path there. Bear in mind that with every new build the documents directory gets moved to a new application ID. The contents will persist, but the path changes. If you navigate to the ../User/Applications folder you will find that the newest directory is the one that belongs to your just-built app.</p>
<p>There are some rare cases though when you find that Simulator behaves differently than a device. How can you inspect the files there?</p>
<p><span id="more-448"></span></p>
<div class="inner_ad_block">
<div id="advman-7" class="widget Advman_Widget">
<h3 class="widgettitle"></h3>
<p><!-- BuySellAds.com Zone Code --></p>
<div id="bsap_1260346" class="bsarocks bsap_fc3166ea4a479e0fdb4251fbe92a1219"></div>
<p><!-- End BuySellAds.com Zone Code --></div>
<div id="text-21" class="widget widget_text">
<h3 class="widgettitle">Label</h3>
<div class="textwidget">
<div class="advert-notice"><a href="http://buysellads.com/buy/detail/56639/zone/1260346">Buy an ad here</a></div>
</div></div>
</div>
<p>Fortunately you don&#8217;t have to jailbreak your iPhone just to be able to retrieve the contents of your app&#8217;s doc dir. This functionality is there, but Apple hid so well in XCode that you&#8217;ll never find it unless somebody points your nose right at it. Like I am doing now.</p>
<p>Connect your development device and go to the XCode Organizer window. Select your device with the green light and then expand the triangle next to your app&#8217;s name under &#8220;Applications&#8221;. There pops up a line &#8220;Application Data&#8221; with an even smaller downward arrow on the right side. Guess what, that icon is meant to symbolize DOWN-load!</p>
<p><a href="http://www.cocoanetics.com/files/transfer_data.png"><img class="alignnone size-medium wp-image-450" src="http://www.cocoanetics.com/files/transfer_data-300x173.png" alt="Transfer Data via Organizer" width="300" height="173" /></a></p>
<p>If you click on this you can select a place to put the files. Once the files are saved you also see them appear in the upper left hand corner under &#8220;Projects &amp; Sources&#8221;. They are sorted by the full bundle identifier of your app suffixed with date and time of the transfer. This way you can keep multiple snapshots and inspect how your written files have changed over time.</p>
<p>One less reason to jailbreak your iPhone. <img src='http://www.cocoanetics.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
 <p><a href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=448&amp;md5=4b2616a221bd955f1eee1a02ebb5703f" title="Flattr" target="_blank"><img src="http://www.cocoanetics.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cocoanetics.com/2009/04/transfer-app-data-back-to-your-mac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=448&amp;md5=4b2616a221bd955f1eee1a02ebb5703f" type="text/html" />"
	</item>
		<item>
		<title>Excursion: Follow 900 Twittering iPhone Developers</title>
		<link>http://www.cocoanetics.com/2009/04/excursion-follow-900-twittering-iphone-developers/</link>
		<comments>http://www.cocoanetics.com/2009/04/excursion-follow-900-twittering-iphone-developers/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 10:10:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.drobnik.com/touch/?p=353</guid>
		<description><![CDATA[After having started this blog a trainee of mine recommended I get started with twitter because I was trying to get connected to other iphone developers. I figured it would probably be useful if you had a network of, say, a thousand guys who are also interested in coding iPhone apps. Label Buy an ad here Now there is this guy Tim Haines who had the smart idea to put up a spreadsheet on Google Documents and link this with an online form where people could add themselves. Everybody who develops for the iPhone is invided to leave his mark. By adding your name and apps you will get an entry in this Google spreadsheet. You could go through the list and follow 900 people manually on twitter, or &#8211; much quicker &#8211; fire up a ruby script written by David Clements to do that automatically. I did not have my Mac with my at the time, so I installed Ruby under Vista and got frustrated right away as it is usual under Windows. First I found that the twitter ruby gem was not working under Windows without some tinkering, some problem with the path. Then I kept getting a &#8220;411 Length Required&#8221; error, but this I was able to fix by turning off the firewall. I hear that all of these issues are not present on OSX. So in the end I doubled the number of people that I am following on twitter in only a few minutes. My hope was that this might dramatically increase the quality of my twitter network because I am only interested in iPhone Dev related tweets. So what was my result besides getting twice as many spam tweets? Of 850 developers who where on the list at that time approx 100 followed me right back. Those I consider the few diamonds that this approach was able to add to my network. Unfortunately there is no way to know who those people are that will actually follow you back and also are interested in your ramblings.  So this method will get you quality through quantity. That sounds to me like pretty much how the Internet in general and twitter specifically seem to work. Addendum, by popular demand: Here are the steps that where necessary on my Mac to get the script running. HOW TO Mac users are lucky because their Mac comes with a fully fledged Ruby system. There where some bumps, but nothing a little RTFM could not fix. First make sure that your Ruby system is fresh. sudo gem update --system sudo gem update Install the Google Spreadsheet Gem as shown in the Read Me. sudo gem sources -a http://gems.github.com sudo gem install gimite-google-spreadsheet-ruby Install Twitter Gem 0.4.1, because the newer versions don&#8217;t work with the script. Otherwise you get something about invalid arguments at line 22. sudo gem install twitter -v 0.4.1 Modify the script to use the 0.4.1 twitter gem instead of the newest one. You can omit this step if you haven&#8217;t installed a newer twitter gem. require &#34;rubygems&#34; require &#34;google_spreadsheet&#34; gem 'twitter','=0.4.1' # inserted to force specific version require 'twitter' Execute the script. ruby iphone-dev-tweeters.rb]]></description>
			<content:encoded><![CDATA[<div class="plus-one-wrap"><g:plusone href="http://www.cocoanetics.com/2009/04/excursion-follow-900-twittering-iphone-developers/"></g:plusone></div><p>After having started this blog a trainee of mine recommended I get started with twitter because I was trying to get connected to other iphone developers. I figured it would probably be useful if you had a network of, say, a thousand guys who are also interested in coding iPhone apps.</p>
<p><span id="more-353"></span></p>
<div class="inner_ad_block">
<div id="advman-7" class="widget Advman_Widget">
<h3 class="widgettitle"></h3>
<p><!-- BuySellAds.com Zone Code --></p>
<div id="bsap_1260346" class="bsarocks bsap_fc3166ea4a479e0fdb4251fbe92a1219"></div>
<p><!-- End BuySellAds.com Zone Code --></div>
<div id="text-21" class="widget widget_text">
<h3 class="widgettitle">Label</h3>
<div class="textwidget">
<div class="advert-notice"><a href="http://buysellads.com/buy/detail/56639/zone/1260346">Buy an ad here</a></div>
</div></div>
</div>
<p>Now there is this guy <a href="http://twitter.com/timhaines">Tim Haines</a> who had the smart idea to put up a spreadsheet on Google Documents and link this with an <a href="http://is.gd/hlhv">online form</a> where people could add themselves. Everybody who develops for the iPhone is invided to leave his mark. By adding your name and apps you will get an entry in this <a href="http://spreadsheets.google.com/ccc?key=p3LA_Q08eM-VAAyq03ZSjYQ">Google spreadsheet</a>.</p>
<p>You could go through the list and follow 900 people manually on twitter, or &#8211; much quicker &#8211; fire up a <a href="http://github.com/digidigo/iphone-dev-tweeters-/tree/master">ruby script</a> written by <a href="http://shortpath.blogspot.com/2009/01/follow-over-100-iphone-developers-on.html">David Clements</a> to do that automatically. I did not have my Mac with my at the time, so I installed Ruby under Vista and got frustrated right away as it is usual under Windows. First I found that the twitter ruby gem was not working under Windows without some tinkering, some problem with the path. Then I kept getting a &#8220;411 Length Required&#8221; error, but this I was able to fix by turning off the firewall. I hear that all of these issues are not present on OSX.</p>
<p>So in the end I doubled the number of people that I am following on twitter in only a few minutes. My hope was that this might dramatically increase the quality of my twitter network because I am only interested in iPhone Dev related tweets. So what was my result besides getting twice as many spam tweets?</p>
<p><a href="http://www.cocoanetics.com/files/twittercounter_increase.png"><img class="alignnone size-medium wp-image-437" src="http://www.cocoanetics.com/files/twittercounter_increase-300x183.png" alt="Increase of Twitter Followers" width="300" height="183" /></a></p>
<p>Of 850 developers who where on the list at that time approx 100 followed me right back. Those I consider the few diamonds that this approach was able to add to my network. Unfortunately there is no way to know who those people are that will actually follow you back and also are interested in your ramblings. </p>
<p>So this method will get you quality through quantity. That sounds to me like pretty much how the Internet in general and twitter specifically seem to work. <img src='http://www.cocoanetics.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Addendum, by popular demand: Here are the steps that where necessary on my Mac to get the script running.</p>
<h3>HOW TO</h3>
<p>Mac users are lucky because their Mac comes with a fully fledged Ruby system. There where some bumps, but nothing a little RTFM could not fix.</p>
<p>First make sure that your Ruby system is fresh.</p>

<div class="wp_codebox"><table><tr id="p35314"><td class="code" id="p353code14"><pre class="objc" style="font-family:monospace;">sudo gem update <span style="color: #002200;">--</span><a href="http://www.opengroup.org/onlinepubs/009695399/functions/system.html"><span style="color: #a61390;">system</span></a>
sudo gem update</pre></td></tr></table></div>

<p>Install the Google Spreadsheet Gem as shown in the <a href="http://github.com/gimite/google-spreadsheet-ruby/tree/master">Read Me</a>.</p>

<div class="wp_codebox"><table><tr id="p35315"><td class="code" id="p353code15"><pre class="objc" style="font-family:monospace;">sudo gem sources <span style="color: #002200;">-</span>a http<span style="color: #002200;">:</span><span style="color: #11740a; font-style: italic;">//gems.github.com</span>
sudo gem install gimite<span style="color: #002200;">-</span>google<span style="color: #002200;">-</span>spreadsheet<span style="color: #002200;">-</span>ruby</pre></td></tr></table></div>

<p>Install Twitter Gem 0.4.1, because the newer versions don&#8217;t work with the script. Otherwise you get something about invalid arguments at line 22.</p>

<div class="wp_codebox"><table><tr id="p35316"><td class="code" id="p353code16"><pre class="objc" style="font-family:monospace;">sudo gem install twitter <span style="color: #002200;">-</span>v 0.4.1</pre></td></tr></table></div>

<p>Modify the script to use the 0.4.1 twitter gem instead of the newest one. You can omit this step if you haven&#8217;t installed a newer twitter gem.</p>

<div class="wp_codebox"><table><tr id="p35317"><td class="code" id="p353code17"><pre class="objc" style="font-family:monospace;">require <span style="color: #bf1d1a;">&quot;rubygems&quot;</span>
require <span style="color: #bf1d1a;">&quot;google_spreadsheet&quot;</span>
gem <span style="color: #bf1d1a;">'twitter'</span>,<span style="color: #bf1d1a;">'=0.4.1'</span>     <span style="color: #6e371a;"># inserted to force specific version</span>
require <span style="color: #bf1d1a;">'twitter'</span></pre></td></tr></table></div>

<p>Execute the script.</p>

<div class="wp_codebox"><table><tr id="p35318"><td class="code" id="p353code18"><pre class="objc" style="font-family:monospace;">ruby iphone<span style="color: #002200;">-</span>dev<span style="color: #002200;">-</span>tweeters.rb</pre></td></tr></table></div>

 <p><a href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=353&amp;md5=5df716647b5f5a569585ce43d124244f" title="Flattr" target="_blank"><img src="http://www.cocoanetics.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cocoanetics.com/2009/04/excursion-follow-900-twittering-iphone-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.cocoanetics.com/?flattrss_redirect&amp;id=353&amp;md5=5df716647b5f5a569585ce43d124244f" type="text/html" />"
	</item>
	</channel>
</rss>

