<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Nir Zion Pengas</title>
	
	<link>http://pengas.com</link>
	<description>Creative Technology</description>
	<lastBuildDate>Sat, 21 Apr 2012 03:48:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ThePengasBlog" /><feedburner:info uri="thepengasblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>auto reference counting with iOS 5.0</title>
		<link>http://feedproxy.google.com/~r/ThePengasBlog/~3/AmUa-7t8ns8/</link>
		<comments>http://pengas.com/2012/04/19/auto-reference-counting-with-ios-5-0/#comments</comments>
		<pubDate>Thu, 19 Apr 2012 20:23:40 +0000</pubDate>
		<dc:creator>Nir Pengas</dc:creator>
				<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://pengas.com/?p=666</guid>
		<description><![CDATA[iOS 5.0 introduced us to ARC for mobile. this is a major change (advantage) in the way developers  work. what was once a source for memory leaks, which required diligent memory allocation and management, becomes easier and much simpler of a task, allowing developers to focus on the code. LLVM rocks indeed. think of it [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="border-image: initial; border-width: 1px; border-color: black; border-style: solid; margin: 10px;" title="ARC" src="https://img.skitch.com/20110905-d7rkar175n2g6y5e7gycm5nn7k.png" alt="" width="422" height="293" /></p>
<p style="text-align: justify;">iOS 5.0 introduced us to ARC for mobile. this is a major change (advantage) in the way developers  work. what was once a source for memory leaks, which required diligent memory allocation and management, becomes easier and much simpler of a task, allowing developers to focus on the code.</p>
<p style="text-align: justify;">LLVM rocks indeed.</p>
<p style="text-align: justify;">think of it as new &#8216;best practices&#8217; one should incorporate into their coding habits, while disallowing other practices:</p>
<ul style="text-align: justify;">
<li>no more retain, release, autorelease nor dealloc</li>
<li>no more custom retain nor release method implementations</li>
<li>do not store obj pointers in C structures (use objects instead)</li>
<li>no more direct casting between objects and non objects (e.g. id and void*)</li>
<li>you are done with NSAutoreleasePool. use @autoreleasepool keyword to mark the block in curlies.</li>
</ul>
<p style="text-align: justify;">what ARC should encourage you to do is start thinking about the relationship between objects and object graphs, and not so much in terms of retain/release. there is now a new lifetime qualifiers for objects, which includes <strong>zeroing weak references</strong>. the value is automatically set to nil when the object it points to is deallocated. we now have qualifiers for vars and new <strong><em>weak</em></strong> and <strong><em> strong</em></strong> declared property attributes.</p>
<p style="text-align: justify;">apple is providing developers with migration tools which are build into xcode:</p>
<p style="text-align: justify;"><a href="https://developer.apple.com/library/ios/documentation/DeveloperTools/Conceptual/WhatsNewXcode/00-Introduction/Introduction.html#//apple_ref/doc/uid/TP40004626" target="_blank">https://developer.apple.com/library/ios/documentation/DeveloperTools/Conceptual/WhatsNewXcode/00-Introduction/Introduction.html#//apple_ref/doc/uid/TP40004626 </a>.</p>
<p style="text-align: justify;">switching to ARC means neglecting support for iOS &gt;5.0.<br />
add custom containers to the mix, much more control over customizing UIKit elements, storyboards, tableView&#8217;s new flexibility and much more.</p>
<p style="text-align: justify;">
<p style="text-align: justify;">happy coding.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/sjegU0KJVGtgou0tN2rNk4PX5aY/0/da"><img src="http://feedads.g.doubleclick.net/~a/sjegU0KJVGtgou0tN2rNk4PX5aY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/sjegU0KJVGtgou0tN2rNk4PX5aY/1/da"><img src="http://feedads.g.doubleclick.net/~a/sjegU0KJVGtgou0tN2rNk4PX5aY/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/ThePengasBlog/~4/AmUa-7t8ns8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pengas.com/2012/04/19/auto-reference-counting-with-ios-5-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://pengas.com/2012/04/19/auto-reference-counting-with-ios-5-0/</feedburner:origLink></item>
		<item>
		<title>self.brain-&gt;reset()</title>
		<link>http://feedproxy.google.com/~r/ThePengasBlog/~3/f7CqWVoo420/</link>
		<comments>http://pengas.com/2012/04/11/why-taking-time-off-is-crucial-to-ones-health/#comments</comments>
		<pubDate>Wed, 11 Apr 2012 20:52:02 +0000</pubDate>
		<dc:creator>Nir Pengas</dc:creator>
				<category><![CDATA[inspiration]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[photography]]></category>
		<category><![CDATA[whatever]]></category>

		<guid isPermaLink="false">http://pengas.com/?p=656</guid>
		<description><![CDATA[our brains need the time to reset just like the gadgets and computers we use and operate. by experimentation i&#8217;ve learned that a minimum of 2-3 weeks vacation twice a year pretty much does the trick. think about it, in today&#8217;s day and age we are always on, always connected, always tapping into sources of data [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><a href="http://pengas.com/wp-content/uploads/2012/04/nir_playing.jpeg"><img class="alignright size-medium wp-image-658" style="border-image: initial; border-width: 1px; border-color: black; border-style: solid; margin: 10px;" title="nir_playing" src="http://pengas.com/wp-content/uploads/2012/04/nir_playing-300x156.jpg" alt="" width="300" height="156" /></a>our brains need the time to reset just like the gadgets and computers we use and operate. by experimentation i&#8217;ve learned that a minimum of 2-3 weeks vacation twice a year pretty much does the trick. think about it, in today&#8217;s day and age we are always on, always connected, always tapping into sources of data to keep us engaged. from the moment we wake up and check our smart phone which aggregates data from multiple social and professional networks, to email, text and voice mail &#8211; we are constantly engaging with our peers, families and consume multiple sources of data, easily streamlined for our convenience, easily shared and re-propagated. and this is just the digital disturbance <img src='http://pengas.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: left;">the human story for today is our need to focus. the need to do just one thing at a given moment and stick with it for many hours. developers know how to do so (hey nir, can you turn off the music and ask andrew to put his headphones on please?). i know that for me playing music does the trick and specifically practicing yoga. calming the mind is an art that requires constant and un interrupted practice. i cannot imagine the brain enjoying 100% capacity at any given moment, just as much as it enjoys 0% capacity. the truth is pretty much always in the middle. face it, we have learned to respond to these interruptions better than focus, and it goes back to the days where the telephone was invented.</p>
<p style="text-align: left;">sleeping is the best time for the brain to not consume new streams of data and process all it has been bombarded with, make new connections and archive/store the data. from a quick survey with close friends and family, i learn that sleeping patterns are very much affected and do worsen with time. how many of you out there in the internets sleep with the TV on?</p>
<p style="text-align: left;">this is why i take two long breaks from my work and focus on relaxing my mind and body, explore new geographical areas of our planet, meet new people, study a new language, and more often then not play/write music and expand my photography skills. this works in phases though and i find that it takes some time to re-adjust the mind and relax &#8211; slow down. the longest break i have ever taken from life was a 3 months trip to brasil. no iphone, no laptop, no internet connection. would you be surprised if i told you that it did not take long to re-adjust to the new situation and that i loved it? i took my best photos and wrote my best music while taking these breaks from life.</p>
<p style="text-align: left;">much like a hard reset, browser cache cleaning and the application of a new style sheet &#8211; one may immerge back with fresh energy and a newly re-wired brain. so &#8211; for the sake of your career, mental health and own happiness &#8211; plan on taking a longer time off. you deserve it.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/a0YHr6nBXVwFoAAs4N63Kx0scYY/0/da"><img src="http://feedads.g.doubleclick.net/~a/a0YHr6nBXVwFoAAs4N63Kx0scYY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/a0YHr6nBXVwFoAAs4N63Kx0scYY/1/da"><img src="http://feedads.g.doubleclick.net/~a/a0YHr6nBXVwFoAAs4N63Kx0scYY/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/ThePengasBlog/~4/f7CqWVoo420" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pengas.com/2012/04/11/why-taking-time-off-is-crucial-to-ones-health/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://pengas.com/2012/04/11/why-taking-time-off-is-crucial-to-ones-health/</feedburner:origLink></item>
		<item>
		<title>iPad 3 predictions</title>
		<link>http://feedproxy.google.com/~r/ThePengasBlog/~3/5hz3_SYSjx0/</link>
		<comments>http://pengas.com/2012/03/01/ipad-3-predictions/#comments</comments>
		<pubDate>Thu, 01 Mar 2012 16:42:20 +0000</pubDate>
		<dc:creator>Nir Pengas</dc:creator>
				<category><![CDATA[ipad]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[whatever]]></category>

		<guid isPermaLink="false">http://pengas.com/?p=636</guid>
		<description><![CDATA[the ipad3 is around the corner as apple just announced a media event on march 7th. what will we possibly get? retina display: 2048×1536 pixels will make pretty much everything more gorgeous and engaging. A6 quad core processor: this means tremendous performance and response boost. LTE support. let&#8217;s face it &#8211; 4G network is where it&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>the ipad3 is around the corner as apple just announced a media event on march 7th.</p>
<p><img class="alignright" style="border-image: initial; margin-left: 30px; margin-right: 30px; margin-top: 10px; margin-bottom: 10px; border-width: 1px; border-color: black; border-style: solid;" title="ipad3 event invitation" src="http://cdn.hypebeast.com/image/2012/02/apple-ipad-3-event-san-francisco-1.jpg" alt="ipad3 event invitation" width="372" height="248" /> <strong>what will we possibly get?</strong></p>
<ul>
<li style="text-align: left;">retina display: 2048×1536 pixels will make pretty much everything more gorgeous and engaging.</li>
<li style="text-align: left;">A6 quad core processor: this means tremendous performance and response boost.</li>
<li style="text-align: left;">LTE support. let&#8217;s face it &#8211; 4G network is where it&#8217;s all heading,<br />
as the internet will blend better and tighter with the device and our lifestyle.</li>
<li style="text-align: left;">better front and back camera. flash.</li>
<li style="text-align: left;">equal or better battery life.</li>
<li style="text-align: left;">unified GSM/CDMA support.</li>
<li style="text-align: left;">bluethooth 4.0 chip.</li>
</ul>
<p><strong><br />
what we may get:</strong></p>
<ul>
<li>smart bezel virtual buttons:<br />
imagine the bezel and back cover of the ipad responding to customized buttons which lit up.<br />
so you can setup the top left .bezel button to launch maps. more <a href="http://www.patentlyapple.com/patently-apple/2011/04/apple-blows-us-away-with-smart-bezel-details.html" target="_blank">here</a>.</li>
<li>NFC chip (not likely IMHO).</li>
<li>airdrop feature from ipad to mac.</li>
</ul>
<p><strong><br />
what we probably won&#8217;t get yet:</strong></p>
<ul>
<li>haptic feedback display. the game changer. it will be a great day when it arrives (though the image from apple may hint at it&#8230;).</li>
<li>solar charging of the device</li>
<li>new map system which apple has been <a href="http://www.padgadget.com/2011/03/25/apple-working-on-new-maps-app-for-iphone-and-ipad/" target="_blank">working on</a></li>
</ul>
<p><strong>final thoughts:</strong></p>
<ul>
<li>how does siri fit in? i am not sure yet&#8230;<br />
will iOS 6.0 be announced as well? if so, developers will a beta by early next week&#8230;</li>
</ul>

<p><a href="http://feedads.g.doubleclick.net/~a/we1P0oWdjFPsNQO6gp8XpIe7tB0/0/da"><img src="http://feedads.g.doubleclick.net/~a/we1P0oWdjFPsNQO6gp8XpIe7tB0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/we1P0oWdjFPsNQO6gp8XpIe7tB0/1/da"><img src="http://feedads.g.doubleclick.net/~a/we1P0oWdjFPsNQO6gp8XpIe7tB0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/ThePengasBlog/~4/5hz3_SYSjx0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pengas.com/2012/03/01/ipad-3-predictions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://pengas.com/2012/03/01/ipad-3-predictions/</feedburner:origLink></item>
		<item>
		<title>from: iphone -&gt; ipad; a quick guide.</title>
		<link>http://feedproxy.google.com/~r/ThePengasBlog/~3/i3MXb_QDZvQ/</link>
		<comments>http://pengas.com/2011/08/30/migrating-your-iphone-app-to-a-universal-application/#comments</comments>
		<pubDate>Tue, 30 Aug 2011 20:28:46 +0000</pubDate>
		<dc:creator>Nir Pengas</dc:creator>
				<category><![CDATA[All Mac]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[user experience]]></category>
		<category><![CDATA[whatever]]></category>

		<guid isPermaLink="false">http://pengas.com/?p=565</guid>
		<description><![CDATA[it&#8217;s time to expand your iphone app and introduce it on the ipad. that is an interesting move for any product as the ipad is not an iphone &#8211; it is used for different things at different circumstances. yeah &#8211; you are going to practically re-think your app&#8230; which is great because you get to revisit [...]]]></description>
			<content:encoded><![CDATA[<p><span><span style="font-family: symbol;"><span class="Apple-style-span" style="border-style: initial; border-color: initial;"><a href="http://ipadstory.net/wp-content/uploads/2011/05/Pages-Universal-App.jpeg"><img class="alignright" style="border-style: initial; border-color: initial; border-width: 0px; margin: 10px;" title="universal app (photo by ipadstory.net)" src="http://ipadstory.net/wp-content/uploads/2011/05/Pages-Universal-App.jpeg" alt="" width="283" height="221" /></a></span>it&#8217;s time to expand your iphone app and introduce it on the ipad. that is an interesting move for any product as the ipad is not an iphone &#8211; it is used for different things at different circumstances. yeah &#8211; you are going to practically re-think your app&#8230; which is great because you get to revisit your code and make sure your pipeline is tight, secure, fast and reliable. all that with the elegance of the ipads &#8211; split view controllers</span></span></p>
<p><span style="font-family: symbol;"> where do one starts? well, you can start be designing your app for the ipad and take by thinking about the following:</span><br />
<span style="font-family: symbol;"><span style="text-decoration: underline;"> orientation</span>, <span style="text-decoration: underline;">layout</span> and <span style="text-decoration: underline;">gestures</span>. all of which vary significantly from the iphone (unfortunately). side note: one thing i really like about webOS is that you develop your mobile app once and the system takes care of adjusting the interface to a slated device.</span></p>
<p><span style="font-family: symbol;">next thing to learn about the ipad is it&#8217;s split views, popovers and specific hardware features &#8211; all of which are ipad unique. you will need to use conditional coding to learn if a specific hardware feature you are looking for is available. this is necessary as you will need to load the right resources to handle that hardware. more specifically one should write conditional coding for:</span></p>
<p><span style="font-family: symbol;"><strong>resources</strong>: in your code, recognize which platform is running and load the right nib files. you will also need to load the right graphics that match the screen size and resolution.</span><br />
<span style="font-family: symbol;"> <strong>classes</strong>: check for class availability based on the device you are running on as some are iPad/iPhone specific.</span><br />
<span style="font-family: symbol;"> <strong>methods</strong>: weak-link any device specific methods and perform a check at runtime for the availability of that method and wether the object responds to a specific selector.</span></p>
<p><span style="font-family: symbol;"><strong>hardware</strong>: test for cmarea/gps/gyro support before utilizing it.</span></p>
<p><span style="font-family: symbol;">okay &#8211; we are done with the overview. let&#8217;s roll up our sleeves and dig right into it.</span></p>
<p><span style="font-family: symbol;">first thing&#8217;s first &#8211; lets let xcode help us start the process by duplicating the current target (an iphone target) into an ipad one.<br />
</span>right click on your target and choose &#8220;duplicate&#8221;. two options here &#8211; duplicate only and duplicate and transitoin to ipad. let&#8217;s go with the later.<br />
what xcode does here is create a new virtual folder (i.e. group) called &#8220;Resources-iPad&#8221; and copies the main nib file there. xcode really takes care of the main nib file and creates it for us. no other nib files to be touched. why? because the rest of the nib files are usually tied right into apps view controller so xcode leaves it up to us to define both the view and it&#8217;s controller. xcode sets the targeted device family (TDF) build settings to iphone/ipad and modify the base SDK of the project which will support both device types. no need to touch nor worry about the deployment target. you will see a new plist for the ipad app with it&#8217;s relevant settings.</p>
<p>in order to see it in action &#8211; run the app using the ipad simulator. what you will see is the iphone app running inside the ipad simulator and you can x2 time it to fit. boooo. one more step necessary (thanks apple for leaving it up to us) is to update the scheme to use the new and shiny ipad target. so go ahead and duplicate your iphone scheme (or create a new one) and under run  - choose the ipad executable. boom. wait &#8211; it really looks bad here.</p>
<p>well &#8211; as you may know iOS uses the MVC design pattern heavily. you may not know that MVC is actually a compound design pattern which includes 5 patterns. luckily this abstraction makes the process of porting an iphone app to an ipad a bit easier, as potentially one needs to take care of the view &#8211; making sure the right outlets are updated based on the design of the UI, and also heavily touch upon the controller to see which device is used and then follow a specific code path to match. the good news is the model can stay untouched <img src='http://pengas.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>if you are happy with the IBOutlet you currently have on the iphone and would like to only use those (i cannot image why, but yeah&#8230;) all you need to do at this point is adjust the springs and struts in the size inspector when loading up your nib in IB. you should also make sure to support the orientations required for the app. in order to do this you will need to  implement <em><strong>s</strong><strong>houldAutorotateToInterfaceOrientation: </strong></em> and test for the device running the code and allow rotation. if you have singleton object place this code in it&#8217;s header file:</p>
<pre class="brush: objc; title: ; notranslate">
#define IS_IPAD   (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
</pre>
<p>ipod touch returns UIUserInterfaceIdiomPhone. FYI.</p>
<p>or place it wherever works for you, as long as you have access to this macro from wherever. this is useful as you will need to update your controllers to test for the hardware running and follow a specific code path to update your view and outlets.</p>
<p>one example of using this code and auto rotating is this:</p>
<pre class="brush: objc; title: ; notranslate">
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

	 if (IS_IPHONE)
	 {
		 if (interfaceOrientation == UIInterfaceOrientationPortrait ||
			 interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
		 {
			 return YES;
		 }
	 }

	 if (IS_IPAD)
	 {
		 if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
			 interfaceOrientation == UIInterfaceOrientationLandscapeRight)
		 {
			 return YES;
		 }
	 }

	 return NO;
 }
</pre>
<p>pretty easy and straight forward right? moving along.</p>
<p><em><strong>cautionary tale:<br />
</strong></em>the app now must be careful with the symbols it uses. if you want to use <em><strong>UISplitViewController</strong></em> while running on iOS 3.1 &#8211; your app will crash as there are no split VCs on 3.1.<br />
the way you should be thinking about this is by mentally tuning into the &#8216;runtime checks&#8217; zone, where you will test if a particular symbol exists. more about that later.</p>
<p><em><strong>updating VC and views:<br />
</strong></em>this is where the bulk of the work really is &#8211; redoing your views and adding code (or creating new) view controllers. what can we do &#8211; the view size varies between the iphone and the ipad and that certainly needs to be taken into consideration. so start off by redesigning the views for the ipad. if you plan on scaling the existing view could work okay, but more often than not will not be the result you are hoping for. think of it this way &#8211; the new ipad interface should make use of the new available space and the elements which only exist on the ipad (splitVCs and popovers for example). the outcome is good UI and top UX.</p>
<p>also consider the following. for view controllers:<br />
a) create new nib files for each device (if you use nib files that is).<br />
b) if you code your views &#8211; make sure you support both devices when you do so.</p>
<p>for views:<br />
a) if you override <em><strong>drawrect: </strong></em>make sure the method can draw to different view sizes.<br />
b) if you implemenet the <strong><em>layoutSubviews</em></strong> method, the code must adapt to different view sizes.</p>
<p><em><strong>symbol checking during runtime:   </strong></em>if deep down inside you had hoped that this step will somehow be avoidable &#8211; fear not <img src='http://pengas.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  runtime checks for newer symbols is easy as pie and is the type of topic you can discuss with your boss and sound really clever.<br />
all of this is under the assumption you support different versions of the OS. just like a good soldier &#8211; you MUST protect your code from using symbols that do not exist. this happens all the time when you update an app to use new features and want to continue to support previous versions running on older OSs. all you need to do is create different code paths to follow, based on the OS currently running on the device executing your app. if you don&#8217;t do that your app is guaranteed to crash and that is not something us pros do, so let us quickly look into an example of how one goes about creating a code path when checking for newer symbols during runtime:</p>
<p>if you are linking against iOS 4.2 you are in luck my friend. that version has a weak linking support built right in, which allows you to check for the existence of a given class object and determine if it&#8217;s usable to you. like so:</p>
<pre class="brush: objc; title: ; notranslate">
if ([UIPrintInteractionController class]) {
   // Create an instance of the class and use it.
}
else {
   // The print interaction controller is not available.
}
</pre>
<p>seriously now &#8211; how simple was that?<br />
bare in mind that if you want to use this feature of the OS you must build your app with LLVM and Clang.<br />
deployment target should be 3.1 or later. sorry.</p>
<p>if your app links against &lt; 4.1, use <em><strong><span class="Apple-style-span" style="font-family: Consolas, Monaco, monospace; font-size: 12px; line-height: 18px; white-space: pre;">NSClassFromString</span></strong></em><span class="Apple-style-span" style="font-family: Consolas, Monaco, monospace; font-size: 12px; line-height: 18px; white-space: pre;"> to see if a class is defined. if nil is returned &#8211; you&#8217;re shit out of luck.</span></p>
<p>for example:</p>
<pre class="brush: objc; title: ; notranslate">
Class splitVCClass = NSClassFromString(@&quot;UISplitViewController&quot;);
if (splitVCClass)
{
   UISplitViewController* mySplitViewController = [[splitVCClass alloc] init];
   // Configure the split view controller.
}</pre>
<p>for testing if an object  can be sent a specific message (i.e. has implemented that method), use the oh so convenient <strong><em>instancesRespondsToSelector:</em></strong> class method (yes, it is a class method, it&#8217;s not a type).</p>
<p>if you are a registered iphone developer and have not done so &#8211; check out the <a href="http://developer.apple.com/library/iOS/documentation/DeveloperTools/Conceptual/cross_development/Introduction/Introduction.html#//apple_ref/doc/uid/10000163i" target="_blank">SDK compatibility guide</a> by apple.</p>
<p><em><strong><br />
runtime checks &#8211;&gt; conditional code paths:<br />
</strong></em>based on the interface idiom described earlier &#8211; let&#8217;s start creating cool code paths to support both devices. a simple <em><strong>if-else</strong></em> statement will do just fine thank you very much. moving right along.</p>
<p>This concludes this first steps required to port your app from iphone to an ipad. next is a quick rundown on how to use split view controllers in your ipad app.<br />
<strong> </strong></p>

<p><a href="http://feedads.g.doubleclick.net/~a/76rJ_7KFc2qbkH706SLy-istQmo/0/da"><img src="http://feedads.g.doubleclick.net/~a/76rJ_7KFc2qbkH706SLy-istQmo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/76rJ_7KFc2qbkH706SLy-istQmo/1/da"><img src="http://feedads.g.doubleclick.net/~a/76rJ_7KFc2qbkH706SLy-istQmo/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/ThePengasBlog/~4/i3MXb_QDZvQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pengas.com/2011/08/30/migrating-your-iphone-app-to-a-universal-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://pengas.com/2011/08/30/migrating-your-iphone-app-to-a-universal-application/</feedburner:origLink></item>
		<item>
		<title>irene passing by timelaps</title>
		<link>http://feedproxy.google.com/~r/ThePengasBlog/~3/w0mRf-jc78s/</link>
		<comments>http://pengas.com/2011/08/29/558/#comments</comments>
		<pubDate>Mon, 29 Aug 2011 20:39:17 +0000</pubDate>
		<dc:creator>Nir Pengas</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://pengas.com/?p=558</guid>
		<description><![CDATA[here is a quick timelaps i have taken post hurricane irene from NYC on the upper west side. the setup: 1. iphone4 2. the glif mount and a tripod 3. iTimeLaps setup to shoot 1000 frames in 2s intervals]]></description>
			<content:encoded><![CDATA[<p>here is a quick timelaps i have taken post hurricane irene from NYC on the upper west side.</p>
<p>the setup:<br />
1. iphone4<br />
2. the glif mount and a tripod<br />
3. iTimeLaps setup to shoot 1000 frames in 2s intervals</p>
<p><object width="500" height="280" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="src" value="http://www.facebook.com/v/10150771151450068" /><embed width="500" height="280" type="application/x-shockwave-flash" src="http://www.facebook.com/v/10150771151450068" allowfullscreen="true" /><br />
</object></p>

<p><a href="http://feedads.g.doubleclick.net/~a/PD_npl9X9hFyQmvou0e_tU2Ve2A/0/da"><img src="http://feedads.g.doubleclick.net/~a/PD_npl9X9hFyQmvou0e_tU2Ve2A/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/PD_npl9X9hFyQmvou0e_tU2Ve2A/1/da"><img src="http://feedads.g.doubleclick.net/~a/PD_npl9X9hFyQmvou0e_tU2Ve2A/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/ThePengasBlog/~4/w0mRf-jc78s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pengas.com/2011/08/29/558/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://pengas.com/2011/08/29/558/</feedburner:origLink></item>
		<item>
		<title>what i’d like to see in the iphone5 (and probably won’t)</title>
		<link>http://feedproxy.google.com/~r/ThePengasBlog/~3/PHfYvFxhbxA/</link>
		<comments>http://pengas.com/2011/08/17/what-id-like-to-see-in-the-iphone5-and-probably-wont/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 16:26:03 +0000</pubDate>
		<dc:creator>Nir Pengas</dc:creator>
				<category><![CDATA[All Mac]]></category>
		<category><![CDATA[inspiration]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[online services]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[user experience]]></category>
		<category><![CDATA[whatever]]></category>

		<guid isPermaLink="false">http://pengas.com/?p=543</guid>
		<description><![CDATA[Good chance of getting: - 4G LTE: 100Mbit up, 50Mbit down (peak). this will be huge for everyone. streaming made easy, uploading live videos and pretty much change the rules of the game when it comes to utilizing the phone. the big question is &#8211; can the carrier(s) handle the demand? - HD front and [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="border-width: 1px; border-color: black; border-style: solid; margin: 5px;" title="iphone5" src="http://dc136.4shared.com/img/o7Hjkg5x/s7/iphone5.jpg" alt="" /></p>
<p><strong>Good chance of getting:<br />
</strong><br />
- <em><strong>4G LTE: 100Mbit up, 50Mbit down</strong></em> (peak). this will be huge for everyone. streaming made easy, uploading live videos and pretty much change the rules of the game when it comes to utilizing the phone. the big question is &#8211; can the carrier(s) handle the demand?</p>
<p>- <em><strong>HD front and 8MP rear camera with a dual flash system</strong></em>. HD facetime &#8211; thank you very much. better photos at low light condition? yes please. no doubt apple will introduce major improvements to the camera, both hardare and software. by now the iphone is the most popular camera on flickr and it&#8217;s growing fast. we want to be able to take better photos easily, at different conditions and share them quickly. as the pixel count rises so the demand for bandwidth (see 4G LTE) and a quick turn around for large file sharing. we can ex (cpect something unique with this feature&#8217;s new offering. the inherit problem is the small chip for the camera and it&#8217;s ability to shoot in lower light conditions.</p>
<p>- <em><strong>wider screen</strong></em>: has been rumored for a while with some fake prototypes etc. can&#8217;t wrap my head around a wider screen unless it&#8217;s up to full HD, which will be, no doubt, incredible (i&#8217;ll rate this as 1% chance of happening). if i&#8217;ll have to guess it will be retina 2.0 with a slightly higher pixel density and a more crisp display than the current 960 x 640 at 326 ppi.</p>
<p>- <em><strong>better battery life: </strong></em>with iCloud and push across the board, there is no doubt apple is pouring tremendous effort behind making their devices stay up and running longer. expect something unexpected.</p>
<p>- <em><strong>built in noise cancelation mic</strong></em>: a la jawbone, it&#8217;s time for the iphone to become a better phone. and please let&#8217;s take care of the proximity sensor issue. please.</p>
<p>- <em><strong>NFC with eWallet OR BLE (4.0) + APIs</strong></em>: this will be very exciting to have. finally. eWallet patents are around for a while and android is a head of the curb. if we look east to japan we see clearly how mobile is used and credit cards are gone. yes &#8211; gone. the phone will be THE payment system in the very near future. it&#8217;s the credit companies that should be on their toes with this one. it is really all a matter of timing no? can&#8217;t enter too soon and definitely not too late.</p>
<p>there has been much discussion over Bluetooth Low Energy, otherwise known as BLE, which is the 4th version of bluetooth, now available in the just released macbook airs. what the new standard means is low energy consumption and wider range (50m) which means awesome apps and peripheral devices are heading our way. this is an interesting strategic call by apple, do they go with NFC and RFID or do they bet on BLE? based on the this recent move of incorporating BLE chips within the new line of macbook air&#8230; well&#8230; let&#8217;s see what happens <img src='http://pengas.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong> Little chance of getting:</strong><br />
- <em><strong>solar charging</strong></em>: apple has been working on this for a while now. heck, there is a prototype out in the wild that is solar enabled (<a href="http://www.patentlyapple.com/patently-apple/2010/06/apples-vision-of-a-solar-cell-iphone-supports-prototype-in-the-wild.html" target="_blank">link</a>). this is a game changer and the reason why there&#8217;s little chance of getting this one is because it&#8217;s probably required to perform much more tests and phase out gradually. maybe a device which combines both battery and solar charging a la hybrid first.</p>
<p>-<em><strong> haptic display + APIs</strong></em>: probably the advancement i would like to experience the most. haptic displays will revolutionize the way we interact with smart devices and their touch screen as they provide feedback to our touch sensory system. imagine that each button you click on a touch screen feels real. this is huge for UX across the board and opens the doors for some unique applications. android has immersion &#8211; a great company to follow with a great mix of products, worth mentioning are their medical related haptic devices. check it out <a href="http://www.immersion.com/markets/medical/index.html" target="_blank">here</a>.</p>
<p>- <strong><em>new map application: </em></strong>apple has made significant moves to become a player and tighten their vertical integration. this app should be nothing but fantastic and introduce features never seen before on smart devices. one option could be an augmented reality turn by turn navigation, integrated with location meta data and the users social graph.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/_3GJsyi8egt8VLjaPJ53Hy-u1-A/0/da"><img src="http://feedads.g.doubleclick.net/~a/_3GJsyi8egt8VLjaPJ53Hy-u1-A/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/_3GJsyi8egt8VLjaPJ53Hy-u1-A/1/da"><img src="http://feedads.g.doubleclick.net/~a/_3GJsyi8egt8VLjaPJ53Hy-u1-A/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/ThePengasBlog/~4/PHfYvFxhbxA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pengas.com/2011/08/17/what-id-like-to-see-in-the-iphone5-and-probably-wont/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://pengas.com/2011/08/17/what-id-like-to-see-in-the-iphone5-and-probably-wont/</feedburner:origLink></item>
		<item>
		<title>ipod 3g is near? (don’t blow this opportunity ATT)</title>
		<link>http://feedproxy.google.com/~r/ThePengasBlog/~3/qbS3vwVRkUY/</link>
		<comments>http://pengas.com/2011/07/23/ipod-3g-is-near-dont-blow-this-opportunity-att/#comments</comments>
		<pubDate>Sat, 23 Jul 2011 19:54:52 +0000</pubDate>
		<dc:creator>Nir Pengas</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://pengas.com/?p=530</guid>
		<description><![CDATA[the new iOS5, turns out, has a toggle for 3g/wifi for the ipod touch. can it be? are the carrier(s) finally caving in to their monopoly and stronghold over users? will our phone bill be replaced by a data bill and no longer experience a blocking incoming call, which terminates the app you currently using? [...]]]></description>
			<content:encoded><![CDATA[<p>the new iOS5, turns out, has a toggle for 3g/wifi for the ipod touch.<img class="alignright" style="border-width: 2px; border-color: black; border-style: solid; margin: 10px;" src="http://pengas.com/wp-content/uploads/2011/07/screen-shot-2011-07-23-at-11-41-58-am.png" alt="" width="385" height="323" /></p>
<p>can it be? are the carrier(s) finally caving in to their monopoly and stronghold over users?<br />
will our phone bill be replaced by a data bill and no longer experience a blocking incoming call, which terminates the app you currently using?</p>
<p>i sure hope so. i wrote about this move <a href="http://pengas.com/2010/07/15/the-next-stage-for-smart-phones/" target="_blank">a year ago</a>. it could just be that this is the time for us to lower our costs. as long as the device is as strong as the iphone (A6?) and, most importantly, the carrier pick up their game with delivering solid connectivity, faster download/upload &#8211; we can expect this device to be revolutionary. as it should.</p>
<p>with the price point of $30 a month i am 100% switching to a 3g enabled ipod touch. i currently pay $75 a month where i have the least minutes ATT allows (400) and the good old unlimited data plan. the ipod touch will slice my bill down by more than 50%. over a year&#8217;s worth of bills its around $400. not bad at all.</p>
<p>if ATT will not take matters to heart, someone else will. and customers are not as loyal as one may think, especially if the savings are that significant.</p>
<p>the real caveat again &#8211; is the quality of the connection. the carrier to figure that one out is golden. and they all will because this is where we are heading &#8211; smart devices with a permanent connection. no minutes no bullshit.</p>
<p style="text-align: center;">

<p><a href="http://feedads.g.doubleclick.net/~a/d5KxvdElp6KmoZo4CaPYbRjvQ38/0/da"><img src="http://feedads.g.doubleclick.net/~a/d5KxvdElp6KmoZo4CaPYbRjvQ38/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/d5KxvdElp6KmoZo4CaPYbRjvQ38/1/da"><img src="http://feedads.g.doubleclick.net/~a/d5KxvdElp6KmoZo4CaPYbRjvQ38/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/ThePengasBlog/~4/qbS3vwVRkUY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pengas.com/2011/07/23/ipod-3g-is-near-dont-blow-this-opportunity-att/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://pengas.com/2011/07/23/ipod-3g-is-near-dont-blow-this-opportunity-att/</feedburner:origLink></item>
		<item>
		<title>iOS 5 is around the corner (updated)</title>
		<link>http://feedproxy.google.com/~r/ThePengasBlog/~3/B3tVbNoMi5w/</link>
		<comments>http://pengas.com/2011/06/05/ios-5-is-around-the-corner/#comments</comments>
		<pubDate>Sun, 05 Jun 2011 15:57:34 +0000</pubDate>
		<dc:creator>Nir Pengas</dc:creator>
				<category><![CDATA[All Mac]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[online services]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[user experience]]></category>
		<category><![CDATA[whatever]]></category>

		<guid isPermaLink="false">http://pengas.com/?p=510</guid>
		<description><![CDATA[update: this post was written thursday of last week. it is now semi confirmed the developer of mobileNotifier is hired by apple and that iCloud will be presented by jobs tomorrow. one major revamp is the bare minimum as there are areas lacking where either android or cydia leaves the current OS lagging. and no [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="margin-top: 5px; margin-bottom: 5px; border: 1px solid black;" title="iOS 5" src="http://www.todaysiphone.com/wp-content/uploads/2011/05/ios5.jpg" alt="iOS 5 image" width="320" height="200" /></p>
<p><em><strong>update: </strong></em>this post was written thursday of last week. it is now semi confirmed the developer of mobileNotifier is hired by apple and that iCloud will be presented by jobs tomorrow.</p>
<p>one major revamp is the bare minimum as there are areas lacking where either android or cydia leaves the current OS lagging. and no doubt we will get what we are expecting.. just a gut feeling&#8230; here is my short list of enhancements that i&#8217;d like to see:</p>
<p>1. <em><strong>improved notification system</strong></em>: bar non that most important and required change to iOS. face it, the current notification system sucks big time. in the past, the real incentive to jailbreak your phone was mywi, my3g and going even further back, multitasking and naturally the most important feature &#8211; sim freeing your phone (Screw you apple and ATT for violating FCC regulations). now-a-days, mobileNotifier is THE reason why my phone is jailbroken. aggregate all notifications into a single window utilizing the empty space created when you double click the home page. apple &#8211; pls take note, this guy has done a great job.</p>
<p>2. <em><strong>dynamic home icons: </strong></em>ala windows8. yes you heard right. big chunky icons that actually display content and not just a static image. one good example is available on cydia and is called &#8216;weather icon&#8217;. it changes the degrees on the weather icon to display the current temperature. it also allows the temperature to be displayed on the status bar. really useful stuff. apple, please expose an API to do so.</p>
<p>3. <em><strong>OTA updates: </strong></em>not likely but definitely nice to have&#8230; over the air updates makes lots of sense. please &#8211; no more plugging in to itunes and backing it all up. this ties up to the next item that is most definitely making an appearance on monday:</p>
<p>4. <em><strong>iCloud content sync: </strong></em>this will probably make a big eco. iCloud can and will take cloud services to the next level. apple doing what they do tiered up, may see music sync and later down the road app sync.. so iCloud will probably allow you to purchase music from iTunes and stream it directly from your cloud storage. no need (or an option) to download and sync stuff. fantastic. one viable option is to open a US front against spotify, the EU-stream-the-song-you-want kind of service in the US. imagine a yearly/monthly plan ($20-$50/year) where you can listen to what you want&#8230; that&#8217;s a nice one.</p>
<p><em><strong>WHAT&#8217;S MISSING? </strong></em>iphone5 with 4G, NFC and iWallet, A5, double down on RAM, larger display and IR.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/P-9v2mN-WD1Fna2YEKabL8l4tFw/0/da"><img src="http://feedads.g.doubleclick.net/~a/P-9v2mN-WD1Fna2YEKabL8l4tFw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/P-9v2mN-WD1Fna2YEKabL8l4tFw/1/da"><img src="http://feedads.g.doubleclick.net/~a/P-9v2mN-WD1Fna2YEKabL8l4tFw/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/ThePengasBlog/~4/B3tVbNoMi5w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pengas.com/2011/06/05/ios-5-is-around-the-corner/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://pengas.com/2011/06/05/ios-5-is-around-the-corner/</feedburner:origLink></item>
		<item>
		<title>useful xcode debugging methodologies</title>
		<link>http://feedproxy.google.com/~r/ThePengasBlog/~3/JbScjNu6IpQ/</link>
		<comments>http://pengas.com/2011/05/18/useful-xcode-debugging-methodologies/#comments</comments>
		<pubDate>Wed, 18 May 2011 15:10:35 +0000</pubDate>
		<dc:creator>Nir Pengas</dc:creator>
				<category><![CDATA[All Mac]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[user experience]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[leak]]></category>
		<category><![CDATA[leaks]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[objective c]]></category>
		<category><![CDATA[xcode]]></category>
		<category><![CDATA[zombie]]></category>

		<guid isPermaLink="false">http://pengas.com/?p=500</guid>
		<description><![CDATA[developing for the iponhe is not a simple thing. cocoa is designed with specific patterns in mind, a dominant model-view-controller, performance oriented with specific ways of going about things. xcode is your best friend, believe it or not. the apple documentation is there for you as well, and many hours were spent to create coherent [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://pengas.com/wp-content/uploads/2011/05/xcode-logo.jpeg"><img class="alignright size-full wp-image-503" style="margin: 5px; border: 1px solid black;" title="xcode-logo" src="http://pengas.com/wp-content/uploads/2011/05/xcode-logo.jpeg" alt="" width="270" height="203" /></a>developing for the iponhe is not a simple thing. cocoa is designed with specific patterns in mind, a dominant model-view-controller, performance oriented with specific ways of going about things. xcode is your best friend, believe it or not. the apple documentation is there for you as well, and many hours were spent to create coherent manuals that will assist us in doing a great job. and doing a great job is a must, because mobile devices are not as browsers. memory foot print is really important. if you over due it, your app will be removed by the OS and UX breaks. bad karma indeed.</p>
<p>dealing with memory leaks and zombies is an important issue, and below i will provide a couple of useful tips to setting up xcode in such a way, and arranging your code, so you have more control and understanding of what&#8217;s going on under the hood.</p>
<p>first up, i assume you are familiar with:</p>
<p>- reading a call stack<br />
- play around with the expression window<br />
- use the memory browser when needed</p>
<p>if you are not, you probably should read up on those and play around with them. very useful tools to get the gist of what is going on with your app.</p>
<p><span style="text-decoration: underline;"><em><strong>tip #1:</strong></em></span><br />
- always archive your dSYM (short for debug symbols) along with the app you send for your QA guys (the &#8220;testers&#8221;). this is really useful, as once they email you back crash logs (which they will), the data in the log will actually make sense, i.e. the symbols are mapped correctly and you will see actual method names rather than HEX addresses.</p>
<p><span style="text-decoration: underline;"><em><strong>tip #2:</strong></em></span><br />
use the symbolicatecrash script and pass it the .crash file and .dSYM file. this will allow you to mesh the two together and review what had happened. from the command line, execute &#8216;find /Developer/ -iname symbolicatecrash&#8217;. grab the path and add it to your ~/.profile (if you are a bash kind of a guy). add this line: &#8220;PATH=/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/ \<br />
Versions/A/Resources/:$PATH&#8221; and don&#8217;t forget to &#8220;source ~/.profile&#8221; before you try and access the script.</p>
<p><em><span style="text-decoration: underline;"><strong>tip #3:</strong></span></em><br />
enable malloc_error_break so xcode will halt when you double release an object or release a stomped memory. this directive for the debugger is actually a breakpoint. think about it, what we are asking xocde to do, is break on a memory allocation error as if it were a breakpoint (rather than crashing). this is very useful as the program will halt on the line of code that tried to perform the illegal action. add this to your project from the breakpoint view. easy as pie.</p>
<p><span style="text-decoration: underline;"><em><strong>tip #4:</strong></em></span><br />
party with the zombies. edit your schema (xcode4 people can you hear me?) and add NSZombieEnabled = YES to the &#8220;environment variables&#8221; list. what happes here is fun. xcode will not release your objects when their reference count is zero, but will keep them for safekeep within the framework of the app. if any of the pseudo released objects is being sent a method, xcode will halt your application, load the debugger and point you to the line of code that tried to access what is suppose to be a zombie. how cool is that? caution! this method is a heavy memory foot print so take it under consideration when you enable them zombies to roam your lands.</p>
<p>on my next post i will show you a nifty header file that allows for fast turning on and off of debug calls from within your app.</p>
<p>good luck!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/Pnhawki0u6v54L8s4uJtI_yjMrs/0/da"><img src="http://feedads.g.doubleclick.net/~a/Pnhawki0u6v54L8s4uJtI_yjMrs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Pnhawki0u6v54L8s4uJtI_yjMrs/1/da"><img src="http://feedads.g.doubleclick.net/~a/Pnhawki0u6v54L8s4uJtI_yjMrs/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/ThePengasBlog/~4/JbScjNu6IpQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pengas.com/2011/05/18/useful-xcode-debugging-methodologies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://pengas.com/2011/05/18/useful-xcode-debugging-methodologies/</feedburner:origLink></item>
		<item>
		<title>top picks for 2010 from the appStore</title>
		<link>http://feedproxy.google.com/~r/ThePengasBlog/~3/BH050-fLCYg/</link>
		<comments>http://pengas.com/2010/12/28/my-top-picks-for-2010-from-the-appstore/#comments</comments>
		<pubDate>Tue, 28 Dec 2010 07:02:00 +0000</pubDate>
		<dc:creator>Nir Pengas</dc:creator>
				<category><![CDATA[All Mac]]></category>
		<category><![CDATA[home tech]]></category>
		<category><![CDATA[inspiration]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[photography]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[user experience]]></category>
		<category><![CDATA[VoIP]]></category>

		<guid isPermaLink="false">http://pengas.com/?p=463</guid>
		<description><![CDATA[2010 has been an incredible year for the mobile space, and as crazy as things may appear, this is only the beginning. with the advent move of the smart TVs and slated devices, we are bound to see more innovation for both corporates and consumers alike. here is my short list of top apps for the [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="size-medium wp-image-464 alignright" style="margin: 10px;" title="top-10-iphone-apps" src="http://pengas.com/wp-content/uploads/2010/12/top-10-iphone-apps-300x105.jpg" alt="" width="300" height="105" /><span style="font-family: verdana, geneva;">2010 has been an incredible year for the mobile space, and as crazy as things may appear, this is only the beginning. with the advent move of the smart TVs and slated devices, we are bound to see more innovation for both corporates and consumers alike.</span></p>
<p style="text-align: justify;"><span style="font-family: verdana, geneva;"><br />
here is my short list of top apps for the iphone first, at random order:</span></p>
<p style="text-align: justify;"><span style="font-family: verdana, geneva;"><em><strong> VOIP</strong></em>:<br />
<a href="http://itunes.apple.com/app/skype/id304878510?mt=8">skype</a>: veteran at it&#8217;s field. skype is affecting the bottom line by saving money. $3/month for unlimited calls in the US, the ability to work over 3g and soon facetime is where the industry will be, no matter how much carriers want to extort the end users. bar none, skype is keeping us all connected. with PBX integration and a future IPO this company will continue to dominate and lead the way in it&#8217;s field.</span></p>
<p style="text-align: justify;"><span style="font-family: verdana, geneva;"><strong><em>SOCIAL</em></strong>:<br />
<a href="http://itunes.apple.com/us/app/facebook/id284882215?mt=8&amp;ign-mpt=uo%3D2" target="_blank">facebook</a>: this facebook app is a fantastic example of how apps can pack zest with style. this is the top used app because it&#8217;s well done. nothing much to say, we are all on it and loving it.</span></p>
<p style="text-align: justify;"><span style="font-family: verdana, geneva;"><a href="http://itunes.apple.com/us/app/foursquare/id306934924?mt=8" target="_blank">foursquare</a>: i am a big fan of the NY based company. real time, location based (and soon NFC), 4squre has started something great that is echoing throughout. mayorships, badges and a solid business plan. i hope for more goodness from these guys.</span></p>
<p style="text-align: justify;"><span style="font-family: verdana, geneva;"><em><strong>PHOTOGRAPHY</strong></em>:<br />
<a href="http://itunes.apple.com/us/app/fotomecha-multi-lens-simulated/id375369148?mt=8" target="_blank">fotomecha</a>: probably my favorite camera app (for still photos) in the appStore, because it allows me to be creative and capture moments i.e. more than one moment, and create a flow in time.</span></p>
<p style="text-align: justify;"><span style="font-family: verdana, geneva;"><a href="http://itunes.apple.com/us/app/itimelapse-pro-time-lapse/id335866860?mt=8" target="_blank">itimelapse</a>: for video capable iphones, this app allows timelaps video creation with some nifty features for creative control. you need to be patient and stable, or maybe you need <a href="http://www.theglif.com/" target="_blank">the glif</a>.</span></p>
<p style="text-align: justify;"><span style="font-family: verdana, geneva;"><strong><em>MUSIC</em></strong>:<br />
<a href="http://www.google.com/url?sa=t&amp;source=web&amp;cd=1&amp;ved=0CBYQFjAA&amp;url=http%3A%2F%2Fitunes.apple.com%2Fus%2Fapp%2Ffire-field-recorder%2Fid309378684%3Fmt%3D8&amp;ei=_YkZTe7gLY27hAeYsty2Dg&amp;usg=AFQjCNFii4squ6JVStMozKozTrt3jYRYdg&amp;sig2=xLsqtko_BTomkHdoHOh7ew" target="_blank">FiRe</a>: top recorder which integrates well with soundcloud. i use it often to record music,conversations etc. these guys are fantastic with performance and know the audio frameworks well. money well spent.</span></p>
<p style="text-align: justify;"><span style="font-family: verdana, geneva;"><a href="http://www.google.com/url?sa=t&amp;source=web&amp;cd=1&amp;ved=0CBYQFjAA&amp;url=http%3A%2F%2Fitunes.apple.com%2Fus%2Fapp%2Fspl-meter%2Fid309206756%3Fmt%3D8&amp;ei=GIoZTYnZMNOChQfcqPi3Dg&amp;usg=AFQjCNHpqA6BL8hqjGGRnXeLiQUJbpVDIg&amp;sig2=5LhD85LechwxJlFtiD8Z6Q" target="_blank">SPL meter</a>: i use this app to know when the sound around me is affecting my hearing. hearing gone bad cannot be regained. those tiny hairs in the hearing tube will not grow back. sounds particular and you may call me old fashioned, but no concert/club in the world is worth loosing our hearing for.<br />
<strong><em> </em></strong></span></p>
<p style="text-align: justify;"><strong><em><span style="font-family: verdana, geneva;"> </span></em></strong></p>
<p style="text-align: justify;"><span style="font-family: verdana, geneva;"><strong><em>READING</em></strong>:<br />
<a href="http://www.google.com/url?sa=t&amp;source=web&amp;cd=1&amp;ved=0CBIQFjAA&amp;url=http%3A%2F%2Fitunes.apple.com%2Fus%2Fapp%2Fgoodreads%2Fid355833469%3Fmt%3D8&amp;ei=LooZTdGoLciHhQew4pG3Dg&amp;usg=AFQjCNEf0AxbYWYN6ICHGp9FxPfKftuuHw&amp;sig2=pd4vbB8Ke4ANXyt6UyJigg" target="_blank">goodreads</a>: bar none, the top app to sync your pdf files for offline reading. i also sync movies to it and this is the reason i get more done. 30m on the subway is a great time to launch this app (both iphone and ipad). with the ability to sync documents from <a href="http://www.google.com/url?sa=t&amp;source=web&amp;cd=1&amp;ved=0CBYQFjAA&amp;url=http%3A%2F%2Fitunes.apple.com%2Fus%2Fapp%2Fdropbox%2Fid327630330%3Fmt%3D8&amp;ei=TIoZTa35BY26hAfq6OC3Dg&amp;usg=AFQjCNG6cRqjd2uMk9j-dQMgBBJh_Juuow&amp;sig2=QQ4a2DuApb1dyxploJvxSw" target="_blank">dropbox</a>, google docs and others, this app packs a punch of useful features.<br />
<strong><em> </em></strong></span></p>
<p style="text-align: justify;"><strong><em><span style="font-family: verdana, geneva;"> </span></em></strong></p>
<p style="text-align: justify;"><span style="font-family: verdana, geneva;"><strong><em>HOME</em></strong>:<br />
<a href="http://www.google.com/url?sa=t&amp;source=web&amp;cd=1&amp;ved=0CBIQFjAA&amp;url=http%3A%2F%2Fitunes.apple.com%2Fus%2Fapp%2Fairphones%2Fid302080903%3Fmt%3D8&amp;ei=XooZTYu6N8GyhAfCgu22Dg&amp;usg=AFQjCNEbadC4rHIWw7re9ISiNsAzjudeHw&amp;sig2=N7SPlQfT82tTfbdpKyoHWw" target="_blank">airphones</a>: great little app that turns the iphone into a wireless headset over wifi. you will need to install a server on your mac or windows machine.</span></p>
<p style="text-align: justify;"><span style="font-family: verdana, geneva;"><a href="http://www.google.com/url?sa=t&amp;source=web&amp;cd=1&amp;ved=0CBYQFjAA&amp;url=http%3A%2F%2Fitunes.apple.com%2Fus%2Fapp%2Fmobile-mouse-pro-remote-trackpad%2Fid289616509%3Fmt%3D8&amp;ei=booZTbiXBtOxhQegmaC3Dg&amp;usg=AFQjCNFVjEKI1yQ79QUyOZQeh1WozmiDEw&amp;sig2=erkLHo_-HIlqGtQCPX1aGw" target="_blank">mobile mouse</a>: while you have airphones streaming audio from your mac mini, which is hooked up to a 50&#8243; plasma, you will need to launch a browser and go on <a href="veetle.com" target="_blank">veetle.com</a>. this app is the best i&#8217;ve seen and worth every penny. again, you will need a server running on your machine.</span></p>

<p><a href="http://feedads.g.doubleclick.net/~a/InukwzsLbW9pQgAWjlksnvawHHY/0/da"><img src="http://feedads.g.doubleclick.net/~a/InukwzsLbW9pQgAWjlksnvawHHY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/InukwzsLbW9pQgAWjlksnvawHHY/1/da"><img src="http://feedads.g.doubleclick.net/~a/InukwzsLbW9pQgAWjlksnvawHHY/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/ThePengasBlog/~4/BH050-fLCYg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pengas.com/2010/12/28/my-top-picks-for-2010-from-the-appstore/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://pengas.com/2010/12/28/my-top-picks-for-2010-from-the-appstore/</feedburner:origLink></item>
	</channel>
</rss>

