<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>NSBlog</title><link>http://www.mikeash.com/pyblog/</link><description>Mac OS X and Cocoa programming</description><lastBuildDate>Sun, 21 Mar 2010 10:37:06 GMT</lastBuildDate><generator>PyRSS2Gen-1.0.0</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Friday Q&amp;amp;A Skips a Week
</title><link>http://www.mikeash.com/pyblog/friday-qa-skips-a-week.html</link><description>Due to the unfortunate actions of a large, shadowy government conspiracy, there will be no Friday Q&amp;amp;A this week. I plan to resume the regular schedule next week. Sorry to disappoint, but check back next Friday.&lt;br&gt;&lt;a href="http://www.mikeash.com/pyblog/friday-qa-skips-a-week.html"&gt;(Read More)&lt;/a&gt;</description><guid isPermaLink="true">http://www.mikeash.com/?page=pyblog/friday-qa-skips-a-week.html</guid><pubDate>Fri, 19 Mar 2010 22:01:00 GMT</pubDate></item><item><title>Friday Q&amp;amp;A 2010-03-12: Subclassing Class Clusters
</title><link>http://www.mikeash.com/pyblog/friday-qa-2010-03-12-subclassing-class-clusters.html</link><description>Welcome to another chewy edition of Friday Q&amp;amp;A. This week, Gwendal Roué has suggested talking about the techniques of subclassing class clusters.&lt;br&gt;&lt;a href="http://www.mikeash.com/pyblog/friday-qa-2010-03-12-subclassing-class-clusters.html"&gt;(Read More)&lt;/a&gt;</description><guid isPermaLink="true">http://www.mikeash.com/?page=pyblog/friday-qa-2010-03-12-subclassing-class-clusters.html</guid><pubDate>Fri, 12 Mar 2010 18:51:00 GMT</pubDate></item><item><title>Friday Q&amp;amp;A 2010-03-05: Compound Futures
</title><link>http://www.mikeash.com/pyblog/friday-qa-2010-03-05-compound-futures.html</link><description>Welcome back to another thrilling edition of Friday Q&amp;amp;A. This week I want to extend my &lt;a href="http://www.mikeash.com/pyblog/friday-qa-2010-02-26-futures.html"&gt;discussion from last week&lt;/a&gt; about futures, and talk about compound futures, an extension to the basic futures system that I developed previously.&lt;br&gt;&lt;a href="http://www.mikeash.com/pyblog/friday-qa-2010-03-05-compound-futures.html"&gt;(Read More)&lt;/a&gt;</description><guid isPermaLink="true">http://www.mikeash.com/?page=pyblog/friday-qa-2010-03-05-compound-futures.html</guid><pubDate>Fri, 05 Mar 2010 13:53:00 GMT</pubDate></item><item><title>Friday Q&amp;amp;A 2010-02-26: Futures
</title><link>http://www.mikeash.com/pyblog/friday-qa-2010-02-26-futures.html</link><description>Welcome back to another shiny edition of Friday Q&amp;amp;A. &lt;a href="http://kickingbear.com/"&gt;Guy English&lt;/a&gt; suggested taking a look at implementing futures in Objective-C using blocks, and for this week's post I'm going to talk about the futures implementation that I built.&lt;br&gt;&lt;a href="http://www.mikeash.com/pyblog/friday-qa-2010-02-26-futures.html"&gt;(Read More)&lt;/a&gt;</description><guid isPermaLink="true">http://www.mikeash.com/?page=pyblog/friday-qa-2010-02-26-futures.html</guid><pubDate>Fri, 26 Feb 2010 18:19:00 GMT</pubDate></item><item><title>Friday Q&amp;amp;A 2010-02-19: Character Encodings
</title><link>http://www.mikeash.com/pyblog/friday-qa-2010-02-19-character-encodings.html</link><description>It's another Friday and another Friday Q&amp;amp;A. For this week's post, Joshua Pokotilow has suggested that I talk about character encodings, so I want to give a basic tour of just what a character encoding is, how it works, and useful details about common encodings.&lt;br&gt;&lt;a href="http://www.mikeash.com/pyblog/friday-qa-2010-02-19-character-encodings.html"&gt;(Read More)&lt;/a&gt;</description><guid isPermaLink="true">http://www.mikeash.com/?page=pyblog/friday-qa-2010-02-19-character-encodings.html</guid><pubDate>Fri, 19 Feb 2010 22:15:00 GMT</pubDate></item><item><title>Friday Q&amp;amp;A 2010-02-12: Trampolining Blocks with Mutable Code
</title><link>http://www.mikeash.com/pyblog/friday-qa-2010-02-12-trampolining-blocks-with-mutable-code.html</link><description>Welcome to another edition of Friday Q&amp;amp;A, where deep technical talk and complete insanity combine! This week, I'm going to take a quick break from my usual reader-driven format and talk about a little toy I built earlier in the week, an adapter between &lt;a href="http://www.mikeash.com/pyblog/friday-qa-2009-08-14-practical-blocks.html"&gt;blocks&lt;/a&gt; and more traditional function-pointer-based callback systems.&lt;br&gt;&lt;a href="http://www.mikeash.com/pyblog/friday-qa-2010-02-12-trampolining-blocks-with-mutable-code.html"&gt;(Read More)&lt;/a&gt;</description><guid isPermaLink="true">http://www.mikeash.com/?page=pyblog/friday-qa-2010-02-12-trampolining-blocks-with-mutable-code.html</guid><pubDate>Fri, 12 Feb 2010 18:20:00 GMT</pubDate></item><item><title>Friday Q&amp;amp;A 2010-02-05: Error Returns with Continuation Passing Style
</title><link>http://www.mikeash.com/pyblog/friday-qa-2010-02-05-error-returns-with-continuation-passing-style.html</link><description>The Earth has moved 6.9 degrees around the Sun since my last post, which means it's time for another edition of Friday Q&amp;amp;A. This 6.9-degree segment, Guy English has suggested that I talk about the use of continuation passing style to simplify error returns in Objective-C code.&lt;br&gt;&lt;a href="http://www.mikeash.com/pyblog/friday-qa-2010-02-05-error-returns-with-continuation-passing-style.html"&gt;(Read More)&lt;/a&gt;</description><guid isPermaLink="true">http://www.mikeash.com/?page=pyblog/friday-qa-2010-02-05-error-returns-with-continuation-passing-style.html</guid><pubDate>Fri, 05 Feb 2010 18:36:00 GMT</pubDate></item><item><title>Friday Q&amp;amp;A 2010-01-29: Method Replacement for Fun and Profit
</title><link>http://www.mikeash.com/pyblog/friday-qa-2010-01-29-method-replacement-for-fun-and-profit.html</link><description>It's that time of the week again. For this week's Friday Q&amp;amp;A Mike Shields has suggested that I talk about method replacement and method swizzling in Objective-C.&lt;br&gt;&lt;a href="http://www.mikeash.com/pyblog/friday-qa-2010-01-29-method-replacement-for-fun-and-profit.html"&gt;(Read More)&lt;/a&gt;</description><guid isPermaLink="true">http://www.mikeash.com/?page=pyblog/friday-qa-2010-01-29-method-replacement-for-fun-and-profit.html</guid><pubDate>Fri, 29 Jan 2010 19:00:00 GMT</pubDate></item><item><title>Friday Q&amp;amp;A 2010-01-22: Toll Free Bridging Internals
</title><link>http://www.mikeash.com/pyblog/friday-qa-2010-01-22-toll-free-bridging-internals.html</link><description>It's been a week, and once again, it's time for a Friday Q&amp;amp;A. For this week's edition, I'm going to talk about how toll-free bridging works, a topic suggested by Jonathan Mitchell.&lt;br&gt;&lt;a href="http://www.mikeash.com/pyblog/friday-qa-2010-01-22-toll-free-bridging-internals.html"&gt;(Read More)&lt;/a&gt;</description><guid isPermaLink="true">http://www.mikeash.com/?page=pyblog/friday-qa-2010-01-22-toll-free-bridging-internals.html</guid><pubDate>Fri, 22 Jan 2010 16:57:00 GMT</pubDate></item><item><title>Friday Q&amp;amp;A 2010-01-15: Stack and Heap Objects in Objective-C
</title><link>http://www.mikeash.com/pyblog/friday-qa-2010-01-15-stack-and-heap-objects-in-objective-c.html</link><description>Welcome to another Friday Q&amp;amp;A. I survived my travel and am (just barely) ready to write another exciting edition. This week's topic comes from &lt;a href="http://www.qmd-lang.org/"&gt;Gwynne&lt;/a&gt;, who asked why Objective-C only uses heap objects, and no stack objects.&lt;br&gt;&lt;a href="http://www.mikeash.com/pyblog/friday-qa-2010-01-15-stack-and-heap-objects-in-objective-c.html"&gt;(Read More)&lt;/a&gt;</description><guid isPermaLink="true">http://www.mikeash.com/?page=pyblog/friday-qa-2010-01-15-stack-and-heap-objects-in-objective-c.html</guid><pubDate>Fri, 15 Jan 2010 21:58:00 GMT</pubDate></item><item><title>Friday Q&amp;amp;A 2010-01-08: NSNotificationQueue
</title><link>http://www.mikeash.com/pyblog/friday-qa-2010-01-08-nsnotificationqueue.html</link><description>It's that time of the week again. No, it's not just time to go get drunk, but time for Friday Q&amp;amp;A! This week's topic, suggested by Christopher Lloyd of &lt;a href="http://www.cocotron.org/"&gt;Cocotron&lt;/a&gt; (a really neat open source project that lets you write Objective-C/Cocoa code for non-Mac platforms like Windows), is &lt;a href="http://developer.apple.com/mac/library/documentation/cocoa/Reference/Foundation/Classes/NSNotificationQueue_Class/Reference/Reference.html"&gt;&lt;code&gt;NSNotificationQueue&lt;/code&gt;&lt;/a&gt;, a little-known, poorly-understood, but handy Foundation class.&lt;br&gt;&lt;a href="http://www.mikeash.com/pyblog/friday-qa-2010-01-08-nsnotificationqueue.html"&gt;(Read More)&lt;/a&gt;</description><guid isPermaLink="true">http://www.mikeash.com/?page=pyblog/friday-qa-2010-01-08-nsnotificationqueue.html</guid><pubDate>Fri, 08 Jan 2010 07:21:00 GMT</pubDate></item><item><title>Friday Q&amp;amp;A 2010-01-01: NSRunLoop Internals
</title><link>http://www.mikeash.com/pyblog/friday-qa-2010-01-01-nsrunloop-internals.html</link><description>It's the first Friday of the new year, and that means it's time for the first Friday Q&amp;amp;A of 2010. This week, I'm taking Dave DeLong's suggestion of talking about &lt;code&gt;NSRunLoop&lt;/code&gt; internals.&lt;br&gt;&lt;a href="http://www.mikeash.com/pyblog/friday-qa-2010-01-01-nsrunloop-internals.html"&gt;(Read More)&lt;/a&gt;</description><guid isPermaLink="true">http://www.mikeash.com/?page=pyblog/friday-qa-2010-01-01-nsrunloop-internals.html</guid><pubDate>Fri, 01 Jan 2010 10:43:00 GMT</pubDate></item><item><title>Friday Q&amp;amp;A 2009-12-18: Highlights From a Year of Friday Q&amp;amp;A
</title><link>http://www.mikeash.com/pyblog/friday-qa-2009-12-18-highlights-from-a-year-of-friday-qa.html</link><description>It's hard to believe that it's been a full year (minus a day) since &lt;a href="http://www.mikeash.com/?page=pyblog/friday-qa-2008-12-19.html"&gt;my first Friday Q&amp;amp;A&lt;/a&gt;. It's become more successful than I thought possible, and many kind and obviously deluded people have said great things about it to me. Since I'm feeling lazy this week, I thought I'd pull up some highlights from the past year rather than write anything new.&lt;br&gt;&lt;a href="http://www.mikeash.com/pyblog/friday-qa-2009-12-18-highlights-from-a-year-of-friday-qa.html"&gt;(Read More)&lt;/a&gt;</description><guid isPermaLink="true">http://www.mikeash.com/?page=pyblog/friday-qa-2009-12-18-highlights-from-a-year-of-friday-qa.html</guid><pubDate>Fri, 18 Dec 2009 11:18:00 GMT</pubDate></item><item><title>Rogue Amoeba Is Hiring
</title><link>http://www.mikeash.com/pyblog/rogue-amoeba-is-hiring.html</link><description>As some of you already know, I work for &lt;a href="http://www.rogueamoeba.com/"&gt;Rogue Amoeba&lt;/a&gt;, and it just so happens that &lt;a href="http://www.rogueamoeba.com/company/jobs.php"&gt;we're hiring&lt;/a&gt;.&lt;br&gt;&lt;a href="http://www.mikeash.com/pyblog/rogue-amoeba-is-hiring.html"&gt;(Read More)&lt;/a&gt;</description><guid isPermaLink="true">http://www.mikeash.com/?page=pyblog/rogue-amoeba-is-hiring.html</guid><pubDate>Fri, 18 Dec 2009 06:54:00 GMT</pubDate></item><item><title>Friday Q&amp;amp;A 2009-12-11: A GCD Case Study: Building an HTTP Server
</title><link>http://www.mikeash.com/pyblog/friday-qa-2009-12-11-a-gcd-case-study-building-an-http-server.html</link><description>It's time for another wintry edition of Friday Q&amp;amp;A. From the comfort of your toasty-warm homes, you can read about building an HTTP server using Grand Central Dispatch, a topic suggested by Steven Degutis.&lt;br&gt;&lt;a href="http://www.mikeash.com/pyblog/friday-qa-2009-12-11-a-gcd-case-study-building-an-http-server.html"&gt;(Read More)&lt;/a&gt;</description><guid isPermaLink="true">http://www.mikeash.com/?page=pyblog/friday-qa-2009-12-11-a-gcd-case-study-building-an-http-server.html</guid><pubDate>Fri, 11 Dec 2009 23:58:00 GMT</pubDate></item><item><title>Friday Q&amp;amp;A 2009-12-04: Building Standalone iPhone Web Apps
</title><link>http://www.mikeash.com/pyblog/friday-qa-2009-12-04-building-standalone-iphone-web-apps.html</link><description>Welcome to another edition of Friday Q&amp;amp;A. This week I'm going to talk about building standalone iPhone web apps, web apps that have an icon on the home screen, and which start a separate program when tapped, just like native apps, a topic suggested by Mike Shields.&lt;br&gt;&lt;a href="http://www.mikeash.com/pyblog/friday-qa-2009-12-04-building-standalone-iphone-web-apps.html"&gt;(Read More)&lt;/a&gt;</description><guid isPermaLink="true">http://www.mikeash.com/?page=pyblog/friday-qa-2009-12-04-building-standalone-iphone-web-apps.html</guid><pubDate>Fri, 04 Dec 2009 19:29:00 GMT</pubDate></item><item><title>Friday Q&amp;amp;A 2009-11-27: Using Accessors in Init and Dealloc
</title><link>http://www.mikeash.com/pyblog/friday-qa-2009-11-27-using-accessors-in-init-and-dealloc.html</link><description>It's Black Friday, and that means it's time for another Friday Q&amp;amp;A. Today I'm going to talk about the use of accessors in Objective-C init/dealloc methods, a topic suggested by &lt;a href="http://outerlevel.com/blog/"&gt;Jon Trainer&lt;/a&gt;.&lt;br&gt;&lt;a href="http://www.mikeash.com/pyblog/friday-qa-2009-11-27-using-accessors-in-init-and-dealloc.html"&gt;(Read More)&lt;/a&gt;</description><guid isPermaLink="true">http://www.mikeash.com/?page=pyblog/friday-qa-2009-11-27-using-accessors-in-init-and-dealloc.html</guid><pubDate>Fri, 27 Nov 2009 16:32:00 GMT</pubDate></item><item><title>Friday Q&amp;amp;A 2009-11-20: Probing Cocoa With PyObjC
</title><link>http://www.mikeash.com/pyblog/friday-qa-2009-11-20-probing-cocoa-with-pyobjc.html</link><description>It's another Friday and time for another Friday Q&amp;amp;A. This week, fellow Amoeba Jeff Johnson suggested talking about using Cocoa from the command line using Python and PyObjC.&lt;br&gt;&lt;a href="http://www.mikeash.com/pyblog/friday-qa-2009-11-20-probing-cocoa-with-pyobjc.html"&gt;(Read More)&lt;/a&gt;</description><guid isPermaLink="true">http://www.mikeash.com/?page=pyblog/friday-qa-2009-11-20-probing-cocoa-with-pyobjc.html</guid><pubDate>Sat, 21 Nov 2009 02:44:00 GMT</pubDate></item><item><title>Deconstructing Apple's Copyright and Trademark Guidelines
</title><link>http://www.mikeash.com/pyblog/deconstructing-apples-copyright-and-trademark-guidelines.html</link><description>It's well known that every member of the official iPhone developer program is bound by Apple's iPhone SDK agreement. What seems to be much less well known is that the agreement also binds developers to follow Apple's "Copyright and Trademark Guidelines", which add a huge list of restrictions to what an iPhone developer can and cannot do.&lt;br&gt;&lt;a href="http://www.mikeash.com/pyblog/deconstructing-apples-copyright-and-trademark-guidelines.html"&gt;(Read More)&lt;/a&gt;</description><guid isPermaLink="true">http://www.mikeash.com/?page=pyblog/deconstructing-apples-copyright-and-trademark-guidelines.html</guid><pubDate>Tue, 17 Nov 2009 02:08:00 GMT</pubDate></item><item><title>Friday Q&amp;amp;A 2009-11-13: Dangerous Cocoa Calls
</title><link>http://www.mikeash.com/pyblog/friday-qa-2009-11-13-dangerous-cocoa-calls.html</link><description>It's another Friday, and so time for another Friday Q&amp;amp;A. This week, Quentin Carnicelli (one of the guys who signs my paychecks) suggested that I talk about dangerous API calls in Cocoa.&lt;br&gt;&lt;a href="http://www.mikeash.com/pyblog/friday-qa-2009-11-13-dangerous-cocoa-calls.html"&gt;(Read More)&lt;/a&gt;</description><guid isPermaLink="true">http://www.mikeash.com/?page=pyblog/friday-qa-2009-11-13-dangerous-cocoa-calls.html</guid><pubDate>Fri, 13 Nov 2009 20:38:00 GMT</pubDate></item></channel></rss>
