<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>ultrajoke - Latest Comments</title><link xmlns="http://www.w3.org/2005/Atom" rel="http://api.friendfeed.com/2008/03#sup" href="http://disqus.com/sup/all.sup#forumcomments-73854b8a" type="application/json"/><link>http://ultrajoke.disqus.com/</link><description></description><atom:link href="http://ultrajoke.disqus.com/comments.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Sun, 21 Apr 2013 01:23:31 -0000</lastBuildDate><item><title>Re: Premature Completion: An Embarrassing Problem</title><link>http://blog.spacemanlabs.com/2012/08/premature-completion-an-embarrassing-problem/#comment-870567162</link><description>&lt;p&gt;I'm a bit late but I believe the problem you were facing is that animated scrolling does not use CAAnimations, or if it does, not in the sense we're used to.&lt;/p&gt;

&lt;p&gt;When a scroll view scrolls, animated or by touch, it fires off a bunch of scrollViewDidScroll: messages.  This is critical in cases where you want an element fixed to the top of the scroll view, or in table views where they are constantly shuffling cells around.  To do this, scroll views must be doing a sequence of scroll, evaluate, scroll, evaluate...&lt;/p&gt;

&lt;p&gt;In the case of animated:NO, the scroll view is saying "scroll X pixels instantly", in the case of animated:YES, it is saying something like scroll 10px, in 0.02 seconds.  This is what's tripping you up.&lt;/p&gt;

&lt;p&gt;A general rule you could use is: if you don't layout in a scrollview delegate, use animated:NO.  If you do, use animated:YES and listen for the appropriate scroll view didFinish events for your next action.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brian Nickel</dc:creator><pubDate>Sun, 21 Apr 2013 01:23:31 -0000</pubDate></item><item><title>Re: Integrating Asana and Git</title><link>http://blog.spacemanlabs.com/2013/01/integrating-asana-and-git/#comment-841016838</link><description>&lt;p&gt;Thanks a lot! That sounds reasonable.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vladimir Kovalskiy</dc:creator><pubDate>Sun, 24 Mar 2013 16:47:29 -0000</pubDate></item><item><title>Re: Integrating Asana and Git</title><link>http://blog.spacemanlabs.com/2013/01/integrating-asana-and-git/#comment-841010812</link><description>&lt;p&gt;Good questions. I usually have Asana open anyway, so I do copy the ticket numbers from the URL. There are several advantages over just closing the ticket from there. One, I get the commit text automatically--so the ticket isn't just closed, but whoever reading it knows about the commit that closed it. Two, I get the commit hash as well--so I'll know where in history to look if it breaks again, or I can cherrypick fixes for a branch. Three, I tend to do a lot of intermediate checkins like "progress on X bug; references #1234566789". Once I've copied the ticket number for the first of these, the rest of the checkins are "free" as long as my git client can remember my last checkin message.&lt;/p&gt;

&lt;p&gt;If you want to be able to select which tickets are closed from the command line, check out Bruno Costa's script, which is better suited to a non-gui environment.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">foon</dc:creator><pubDate>Sun, 24 Mar 2013 16:41:25 -0000</pubDate></item><item><title>Re: Integrating Asana and Git</title><link>http://blog.spacemanlabs.com/2013/01/integrating-asana-and-git/#comment-840912729</link><description>&lt;p&gt;Thank a lot for sharing. But you are sampling ticket numbers as 1,2,3 when in real life they can not be remebered and should copy/pasted from the asana url. Cause they look like '4549660050096' And if you are opening ticket to get number, why not close it? &lt;/p&gt;

&lt;p&gt;How do you overcome those terrible numbers issue?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vladimir Kovalskiy</dc:creator><pubDate>Sun, 24 Mar 2013 14:52:34 -0000</pubDate></item><item><title>Re: Mistakes Were Made: Description Isn&amp;#8217;t Enough</title><link>http://blog.spacemanlabs.com/2011/09/mistakes-were-made-description-isnt-enough/#comment-829752603</link><description>&lt;p&gt;Nice post. The debugging link is broken, can now be found here (OSX) (&lt;a href="http://developer.apple.com/library/ios/#technotes/tn2004/tn2124.html#//apple_ref/doc/uid/DTS10003391)" rel="nofollow"&gt;http://developer.apple.com/lib...&lt;/a&gt; and (iOS) (&lt;a href="http://developer.apple.com/library/ios/#technotes/tn2239/_index.html#//apple_ref/doc/uid/DTS40010638)" rel="nofollow"&gt;http://developer.apple.com/lib...&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alistair Leszkiewicz</dc:creator><pubDate>Thu, 14 Mar 2013 23:24:00 -0000</pubDate></item><item><title>Re: Quick Tip: Drawing Right Side Up With Core Text</title><link>http://blog.spacemanlabs.com/2011/08/quick-tip-drawing-core-text-right-side-up/#comment-829214048</link><description>&lt;p&gt;If your lines are drawn in the wrong order, you'll want to apply a transform to your context, and not use the text matrix function. The second snippet of code should sort you out. &lt;/p&gt;

&lt;p&gt;CGContextTranslateCTM(context, 0.0f, contextHeight);&lt;br&gt;CGContextScaleCTM(context, 1.0f, -1.0f);&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jerry Jones</dc:creator><pubDate>Thu, 14 Mar 2013 11:26:03 -0000</pubDate></item><item><title>Re: Quick Tip: Drawing Right Side Up With Core Text</title><link>http://blog.spacemanlabs.com/2011/08/quick-tip-drawing-core-text-right-side-up/#comment-829101468</link><description>&lt;p&gt;Hi Jerry,&lt;/p&gt;

&lt;p&gt;in the last screenshot my situation is the third square but i want my text to be like in the fourth square.&lt;br&gt;can you help me please?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Iosdevpt</dc:creator><pubDate>Thu, 14 Mar 2013 08:56:59 -0000</pubDate></item><item><title>Re: Premature Completion: An Embarrassing Problem</title><link>http://blog.spacemanlabs.com/2012/08/premature-completion-an-embarrassing-problem/#comment-787164311</link><description>&lt;p&gt;I'm late to this party, but there's a pretty reasonable workaround to this behavior:&lt;/p&gt;

&lt;p&gt;Explicit CATransactions&lt;/p&gt;

&lt;p&gt;Since some of the Apple APIs don't provide a completion block for animated methods (the ideal solution), you can cheat with CA a bit. Most/all of these calls will themselves create either an implicit or explicit transaction under the hood. Because transactions are naturally nestable, we can inject a bit of order into the chaos by creating our own explicit CATransaction and adding a completion block. Whatever transactions occur during the Apple-animated method will be a part of our transaction, and we can take advantage of that.&lt;/p&gt;

&lt;p&gt;Obviously your mileage may vary, and I haven't tested this on anything but a UIProgressView. Also, in animation-heavy contexts, this probably breaks down. It ought to work for simple enough cases though. I'm using it to wait until my progress view finishes filling up before dismissing the view controller that it lives in.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;        #import &amp;lt;quartzcore quartzcore.h=""&amp;gt;&lt;/p&gt;

&lt;p&gt;        [CATransaction begin];&lt;br&gt;        [CATransaction setCompletionBlock:^{&lt;br&gt;            NSLog(@"Got completion block");&lt;br&gt;        }];&lt;br&gt;        [myUIProgressView setProgress:progress animated:YES];&lt;br&gt;        [CATransaction commit];&lt;br&gt;&amp;lt;/quartzcore&amp;gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Josh Converse</dc:creator><pubDate>Sun, 03 Feb 2013 03:23:39 -0000</pubDate></item><item><title>Re: Integrating Asana and Git</title><link>http://blog.spacemanlabs.com/2013/01/integrating-asana-and-git/#comment-783340581</link><description>&lt;p&gt;There is also an Google Chrome Extension to add Time Management to Asana tasks...&lt;br&gt;&lt;a href="https://chrome.google.com/webstore/detail/tic-task-time-management/nmeknhfcopojabnoibcjgnkaapclmndm?utm_source=chrome-ntp-icon" rel="nofollow"&gt;https://chrome.google.com/webs...&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Greg Rubin</dc:creator><pubDate>Wed, 30 Jan 2013 11:04:03 -0000</pubDate></item><item><title>Re: SMPageControl: UIPageControl&amp;#8217;s Fancy One-Upping Cousin</title><link>http://blog.spacemanlabs.com/2012/10/smpagecontrol/#comment-763972693</link><description>&lt;p&gt;I suggest grabbing the sample code from the repo, it's got all the proper assets in place to function properly with the sample code you pasted here. That should help you get started.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jerry Jones</dc:creator><pubDate>Fri, 11 Jan 2013 13:37:50 -0000</pubDate></item><item><title>Re: SMPageControl: UIPageControl&amp;#8217;s Fancy One-Upping Cousin</title><link>http://blog.spacemanlabs.com/2012/10/smpagecontrol/#comment-760655903</link><description>&lt;p&gt;Im not sure how to use this?  I thought I would create a new class with xib, of uiviewcontroller type, load it in the appdelegate instead of the current one, in its viewdidload add the sample code:&lt;/p&gt;

&lt;p&gt;SMPageControl *pageControl = [[SMPageControl alloc] init];&lt;br&gt;    pageControl.numberOfPages = 10;&lt;br&gt;    pageControl.pageIndicatorImage = [UIImage imageNamed:@"appleDot"];&lt;br&gt;    pageControl.currentPageIndicatorImage = [UIImage imageNamed:@"currentAppleDot"];&lt;br&gt;    [pageControl sizeToFit];&lt;br&gt;    [self.view addSubview:pageControl];&lt;/p&gt;

&lt;p&gt;But then I saw the iPhone xib and saw labels that say drop replacement for UIPageControl.  So im confused.  Please help. :)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">mars</dc:creator><pubDate>Tue, 08 Jan 2013 20:28:52 -0000</pubDate></item><item><title>Re: SMPageControl: UIPageControl&amp;#8217;s Fancy One-Upping Cousin</title><link>http://blog.spacemanlabs.com/2012/10/smpagecontrol/#comment-706633983</link><description>&lt;p&gt;I suspect it doesn't handle variably sized dots very well right now - I remember thinking of this part way through, and I never came back to it.&lt;/p&gt;

&lt;p&gt;Do me a favor, open an issue on the GitHub repo (&lt;a href="https://github.com/Spaceman-Labs/SMPageControl/issues)" rel="nofollow"&gt;https://github.com/Spaceman-La...&lt;/a&gt;, and I'd be happy to get that added.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jerry Jones</dc:creator><pubDate>Fri, 09 Nov 2012 19:06:01 -0000</pubDate></item><item><title>Re: SMPageControl: UIPageControl&amp;#8217;s Fancy One-Upping Cousin</title><link>http://blog.spacemanlabs.com/2012/10/smpagecontrol/#comment-706080470</link><description>&lt;p&gt;How about using dots of different sizes. Say currentDot is bigger than other dots? I get problems with distances. Seems dots are not placed as centered in its own place but left aligned.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">sebastian</dc:creator><pubDate>Fri, 09 Nov 2012 07:38:51 -0000</pubDate></item><item><title>Re: SMPageControl: UIPageControl&amp;#8217;s Fancy One-Upping Cousin</title><link>http://blog.spacemanlabs.com/2012/10/smpagecontrol/#comment-701663557</link><description>&lt;p&gt;This is awesome! Thank you very very much!!!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Thomas Hempel</dc:creator><pubDate>Tue, 06 Nov 2012 05:24:02 -0000</pubDate></item><item><title>Re: SMPageControl: UIPageControl&amp;#8217;s Fancy One-Upping Cousin</title><link>http://blog.spacemanlabs.com/2012/10/smpagecontrol/#comment-701217739</link><description>&lt;p&gt;Honestly, it's pretty flexible - whatever best suits your app's appearance. We're using it in a project right now at about 12pt x 12pt, and I'm quite happy with it.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jerry Jones</dc:creator><pubDate>Mon, 05 Nov 2012 17:54:17 -0000</pubDate></item><item><title>Re: Cancel dispatch_after</title><link>http://blog.spacemanlabs.com/2011/12/cancel-dispatch_after/#comment-700145141</link><description>&lt;p&gt;Thanks, ran into this problem myself and this helped!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Mark</dc:creator><pubDate>Sun, 04 Nov 2012 01:12:21 -0000</pubDate></item><item><title>Re: SMPageControl: UIPageControl&amp;#8217;s Fancy One-Upping Cousin</title><link>http://blog.spacemanlabs.com/2012/10/smpagecontrol/#comment-697722079</link><description>&lt;p&gt;Just awesome dude. Was wondering what size is best for the page bot. 12x12?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Colin Pierse</dc:creator><pubDate>Thu, 01 Nov 2012 07:19:55 -0000</pubDate></item><item><title>Re: US States in an NSArray</title><link>http://blog.spacemanlabs.com/2011/07/us-states-in-an-nsarray/#comment-696512360</link><description>&lt;p&gt;Thanks, Leo! You rock.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">ultrajoke</dc:creator><pubDate>Tue, 30 Oct 2012 17:45:03 -0000</pubDate></item><item><title>Re: US States in an NSArray</title><link>http://blog.spacemanlabs.com/2011/07/us-states-in-an-nsarray/#comment-696509027</link><description>&lt;p&gt;And here's the state abbreviations matching that array:&lt;/p&gt;

&lt;p&gt;[NSArray arrayWithObjects:@"AL", @"AK", @"AZ", @"AR", @"CA", @"CO", @"CT", @"DE", @"FL", @"GA", @"HI", @"ID", @"IL", @"IN", @"IA", @"KS", @"KY", @"LA", @"ME", @"MD", @"MA", @"MI", @"MN", @"MS", @"MO", @"MT", @"NE", @"NV", @"NH", @"NJ", @"NM", @"NY", @"NC", @"ND", @"OH", @"OK", @"OR", @"PA", @"RI", @"SC", @"SD", @"TN", @"TX", @"UT", @"VT", @"VA", @"WA", @"WV", @"WI", @"WY", nil];&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Leo</dc:creator><pubDate>Tue, 30 Oct 2012 17:39:47 -0000</pubDate></item><item><title>Re: SMPageControl: UIPageControl&amp;#8217;s Fancy One-Upping Cousin</title><link>http://blog.spacemanlabs.com/2012/10/smpagecontrol/#comment-686249022</link><description>&lt;p&gt;No, not at all. In fact, I'm 99% sure that most of the API used in the class has been around since iOS 2.0. This should be safe to use with any version of iOS.&lt;/p&gt;

&lt;p&gt;However, I'm not sure if the classes will _compile against_ an SDK earlier than 5.0, given the use of UI_APPEARANCE_SELECTOR in the interface.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jerry Jones</dc:creator><pubDate>Thu, 18 Oct 2012 11:40:44 -0000</pubDate></item><item><title>Re: SMPageControl: UIPageControl&amp;#8217;s Fancy One-Upping Cousin</title><link>http://blog.spacemanlabs.com/2012/10/smpagecontrol/#comment-685392490</link><description>&lt;p&gt;Is this for iOS 6 only?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jeffrey Moran</dc:creator><pubDate>Wed, 17 Oct 2012 13:32:41 -0000</pubDate></item><item><title>Re: Premature Completion: An Embarrassing Problem</title><link>http://blog.spacemanlabs.com/2012/08/premature-completion-an-embarrassing-problem/#comment-633330190</link><description>&lt;p&gt;Whoops, I seem to be switching between disqus users. Foon and ultrajoke are both the author :)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">foon</dc:creator><pubDate>Wed, 29 Aug 2012 13:11:14 -0000</pubDate></item><item><title>Re: Premature Completion: An Embarrassing Problem</title><link>http://blog.spacemanlabs.com/2012/08/premature-completion-an-embarrassing-problem/#comment-633328384</link><description>&lt;p&gt;Not synchronization, just UI timing. I disagree that the word "completion" should be read so strictly, but I see your point. For me it's just about what the user of the API will expect. I think people won't necessarily think through all the implications of "completion", but I could certainly be wrong.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">ultrajoke</dc:creator><pubDate>Wed, 29 Aug 2012 13:09:30 -0000</pubDate></item><item><title>Re: Premature Completion: An Embarrassing Problem</title><link>http://blog.spacemanlabs.com/2012/08/premature-completion-an-embarrassing-problem/#comment-633323854</link><description>&lt;p&gt;Hahaha,&lt;/p&gt;

&lt;p&gt;I'll argue that creating software making synchronisation based on timer is really bad ;-)&lt;/p&gt;

&lt;p&gt;Also I want to say that it is a completion block and as it's name supposed it's a block that has to be called when the animation complete. And for me - and apparently for Apple too -, when there is nothing to animate, the job is already done ;-) so the animation duration is useless. That parameter as a good name too: animationDuration, so if there is nothing to animate it should take no time to do it ;-)&lt;br&gt;(Just a note: if you use the delay parameter, you'll see that the animation block is called after the delay, which is completely logic.)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Johann Fradj</dc:creator><pubDate>Wed, 29 Aug 2012 13:05:07 -0000</pubDate></item><item><title>Re: Premature Completion: An Embarrassing Problem</title><link>http://blog.spacemanlabs.com/2012/08/premature-completion-an-embarrassing-problem/#comment-633311540</link><description>&lt;p&gt;The other option--and I would argue, the more reasonable option--is to fire the completion block after the duration passed to the UIView method, whether or not an animation has been created. &lt;br&gt;Consider a situation where the user animates a view that may or may not be onscreen. Is it better to do what the user expects, and run the completion after the animation duration regardless? Or should he have to special case and set up his own dispatch_after only if the view won't animate due to implementation details in CA?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">foon</dc:creator><pubDate>Wed, 29 Aug 2012 12:53:13 -0000</pubDate></item></channel></rss>