<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>The Tumblog of one Jim Dovey, iOS Software Chief Architect at Kobo in Toronto, Ontario.
He Twitters, he has an 
//
, and can occasionally be found on LinkedIn or Facebook.
If you have a query, you can ask it here.This blog contains personal opinions, and is not endorsed by any company.
You can buy Jim’s book, Beginning Objective-C, either directly from Apress as an eBook or in print from Amazon:


</description><title>Alan Quatermain</title><generator>Tumblr (3.0; @quatermain)</generator><link>http://tumblr.alanquatermain.me/</link><item><title>"On two occasions I have been asked, ‘Pray, Mr. Babbage, if you put into the machine wrong..."</title><description>“On two occasions I have been asked, ‘Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?’ I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;a href="http://www.softwarequotes.com/showquotes.aspx?id=796&amp;name=Charles%20Babbage"&gt;Charles Babbage&lt;/a&gt;, grandfather of the computer.&lt;/em&gt;</description><link>http://tumblr.alanquatermain.me/post/45422432268</link><guid>http://tumblr.alanquatermain.me/post/45422432268</guid><pubDate>Fri, 15 Mar 2013 11:40:04 -0400</pubDate></item><item><title>New Blog Post: eBook DRM and unDRM</title><description>&lt;a href="http://blog.alanquatermain.me/2013/02/14/ebook-drm-and-undrm/"&gt;New Blog Post: eBook DRM and unDRM&lt;/a&gt;: &lt;p&gt;I had the honour of moderating a panel on eBook DRM technology for the W3C earlier this week, and I’ve taken the liberty of expanding upon my presentation and providing some more talking points.&lt;/p&gt;

&lt;p&gt;The main thrust of the argument: there are good and useful end-user features that we can build using the same technology normally used for restrictions. As long as we’re using this tech, let’s do the good things too.&lt;/p&gt;

&lt;p&gt;Click through the link for the full post on my new blog.&lt;/p&gt;</description><link>http://tumblr.alanquatermain.me/post/43149273321</link><guid>http://tumblr.alanquatermain.me/post/43149273321</guid><pubDate>Fri, 15 Feb 2013 09:59:00 -0500</pubDate><category>eBooks</category><category>DRM</category><category>standards</category></item><item><title>dgaider:

afternoonsnoozebutton:


“Dear Internet” by Tina...</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_lk0tx0TTCl1qa5z1ro1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a class="tumblr_blog" href="http://dgaider.tumblr.com/post/40102338405/afternoonsnoozebutton-dear-internet-by-tina"&gt;dgaider&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a class="tumblr_blog" href="http://afternoonsnoozebutton.com/post/4823396227/dear-internet-by-tina-fey-from"&gt;afternoonsnoozebutton&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;div&gt;
&lt;p&gt;&lt;strong&gt;“Dear Internet” by Tina Fey&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;From PerezHilton.com/Posted by jerkstore on Wednesday, 1/21/2009, 11:21 P.M.&lt;/p&gt;
&lt;blockquote&gt;
&lt;div&gt;
&lt;p&gt;“In my opinion Tina Fey completely ruined SNL. The only reason she’s celebrated is because she’s a woman and an outspoken liberal. She has not a single funny bone in her body.”&lt;/p&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;p&gt;“Dear jerkstore,&lt;/p&gt;
&lt;p&gt;Huzzah for the Truth Teller! Women in this country have been over-celebrated for too long. Just last night there was a story on my local news about a “missing girl,” and they must have dedicated seven or eight minutes to “where she was last seen” and “how she might have been abducted by a close family friend,” and I thought, “What is this, the News for Chicks?” Then there was some story about Hillary Clinton flying to some country because she’s secretary of state. Why do we keep talking about these dumdums? We are a society that constantly celebrates no one but women and it must stop! I want to hear what the men of the world have been up to. What fun new guns have they invented? What are they raping these days? What’s Michael Bay’s next film going to be?&lt;/p&gt;
&lt;p&gt;When I first set out to ruin &lt;em&gt;SNL, &lt;/em&gt;I didn’t think anyone would notice, but I persevered because—like you trying to do a nine-piece jigsaw puzzle—it was a labor of love.&lt;/p&gt;
&lt;p&gt;I’m not one to toot my own horn, but I feel safe with you, jerkstore, so I’ll say it. Everything you ever hated on &lt;em&gt;SNL &lt;/em&gt;was by me, and anything you ever liked was by someone else who did it against my will.&lt;/p&gt;
&lt;p&gt;Sincerely,&lt;/p&gt;
&lt;p&gt;Tina Fey&lt;/p&gt;
&lt;p&gt;P.S. You know who does have a funny bone in her body? Your mom every night for a dollar.”&lt;/p&gt;
&lt;p&gt;(&lt;a href="http://drnorth.wordpress.com/2011/04/14/fragment-22-dear-internet-by-tina-fey/"&gt;source&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;div&gt;
&lt;p&gt;Too bad Tina Fey doesn’t meet jerkstore’s standards. I think she’s incredible.&lt;/p&gt;
&lt;/div&gt;
&lt;/blockquote&gt;</description><link>http://tumblr.alanquatermain.me/post/40104676525</link><guid>http://tumblr.alanquatermain.me/post/40104676525</guid><pubDate>Wed, 09 Jan 2013 13:11:42 -0500</pubDate></item><item><title>parislemon:

brucesterling:

Erik De Nijs conceptual keyboard...</title><description>&lt;img src="http://24.media.tumblr.com/e75ca39c33b9c62168b4d2777f6d7d4d/tumblr_mgd4pnGpOq1s2jikwo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a class="tumblr_blog" href="http://parislemon.com/post/40103988688/brucesterling-erik-de-nijs-conceptual-keyboard"&gt;parislemon&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a class="tumblr_blog" href="http://brucesterling.tumblr.com/post/40094282110/erik-de-nijs-conceptual-keyboard-pants-photo-by"&gt;brucesterling&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Erik De Nijs conceptual keyboard pants, photo by Tim Smit.  A design-fiction from Utrecht School of the Arts.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Just typing on my jock, no biggie.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Can I get these in &lt;a href=”http://colemak.com”&gt;Colemak&lt;/a&gt; please?&lt;/p&gt;</description><link>http://tumblr.alanquatermain.me/post/40104609531</link><guid>http://tumblr.alanquatermain.me/post/40104609531</guid><pubDate>Wed, 09 Jan 2013 13:10:33 -0500</pubDate></item><item><title>Because Jimmy Page just turned 69 today: Stairway to Heaven Live...</title><description>&lt;iframe width="400" height="225" src="http://www.youtube.com/embed/9Q7Vr3yQYWQ?wmode=transparent&amp;autohide=1&amp;egm=0&amp;hd=1&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;showinfo=0&amp;showsearch=0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Because Jimmy Page just turned 69 today: &lt;a href="http://www.youtube.com/watch?v=9Q7Vr3yQYWQ"&gt;Stairway to Heaven Live (HD)&lt;/a&gt;, from The Song Remains The Same.&lt;/p&gt;</description><link>http://tumblr.alanquatermain.me/post/40102799150</link><guid>http://tumblr.alanquatermain.me/post/40102799150</guid><pubDate>Wed, 09 Jan 2013 12:37:00 -0500</pubDate></item><item><title>Developing for iOS in a Server-Centric World</title><description>&lt;a href="http://ashfurrow.com/blog/developing-for-ios-in-a-server-centric-world"&gt;Developing for iOS in a Server-Centric World&lt;/a&gt;: &lt;blockquote&gt;
  &lt;p&gt;&lt;em&gt;Turns out&lt;/em&gt;, developing iOS apps is different from developing web apps. Like, &lt;em&gt;hella&lt;/em&gt; different.
  For any server-side readers out there, I thought I’d hit you with a few big ones: There is no CSS.
  Every part of a design has to be coded in Objective-C.&lt;/p&gt;
  
  &lt;ul&gt;&lt;li&gt;There is no flow layout (like HTML). Everything is &lt;code&gt;position: absolute;&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;Small “cosmetic changes” can mean &lt;em&gt;hours&lt;/em&gt; or &lt;em&gt;days&lt;/em&gt; for developers to complete.&lt;/li&gt;
  &lt;li&gt;No one unit tests in Cocoa. Like, &lt;a href="http://blog.wilshipley.com/2005/09/unit-testing-is-teh-suck-urr.html"&gt;no one&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Likewise, unit testing is a &lt;em&gt;bitch&lt;/em&gt;.&lt;/li&gt;
  &lt;li&gt;No one does automated UI testing. There are some open source projects, but it’s &lt;em&gt;far&lt;/em&gt; from the mainstream.&lt;/li&gt;
  &lt;/ul&gt;&lt;/blockquote&gt;

&lt;p&gt;Truth from Mr. Furrow there. As someone who went the other way, I can absolutely say that folks using some of these new server-side frameworks have a ridiculously easy time of it.&lt;/p&gt;

&lt;p&gt;Things are starting to change on our side, of course: starting back in the late 80’s with Interface Builder and the Application Kit, and more recently with Cocoa Autolayout. There’s still a world of difference between tweaking a CSS file to change a button’s composition and doing that in Cocoa however.&lt;/p&gt;</description><link>http://tumblr.alanquatermain.me/post/39311504101</link><guid>http://tumblr.alanquatermain.me/post/39311504101</guid><pubDate>Mon, 31 Dec 2012 11:24:52 -0500</pubDate><category>iOS Development</category><category>Cocoa</category><category>Cocoa Touch</category></item><item><title>Blade of Manliness +2</title><description>&lt;img src="http://25.media.tumblr.com/aaf8c1269b6321799ef75028b2794ea4/tumblr_mfv37msscZ1qzybpso1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Blade of Manliness +2&lt;/p&gt;</description><link>http://tumblr.alanquatermain.me/post/39240781102</link><guid>http://tumblr.alanquatermain.me/post/39240781102</guid><pubDate>Sun, 30 Dec 2012 15:50:10 -0500</pubDate></item><item><title>wilwheaton:

People of both sexes and all ages play video games and watch movies in every country in...</title><description>&lt;p&gt;&lt;a class="tumblr_blog" href="http://wilwheaton.tumblr.com/post/38317215772/people-of-both-sexes-and-all-ages-play-video-games"&gt;wilwheaton&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span&gt;People of both sexes and all ages play video games and watch movies in every country in the world.&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;Only in America do we have an epidemic of gun violence and repeated mass murder.&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;The problem isn’t video games and movies, guys.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description><link>http://tumblr.alanquatermain.me/post/38413398970</link><guid>http://tumblr.alanquatermain.me/post/38413398970</guid><pubDate>Thu, 20 Dec 2012 17:33:46 -0500</pubDate></item><item><title>giant robots smashing into other giant robots: She Blinded Me with Ruby Science</title><description>&lt;a href="http://robots.thoughtbot.com/post/37837704879/she-blinded-me-with-ruby-science"&gt;giant robots smashing into other giant robots: She Blinded Me with Ruby Science&lt;/a&gt;: &lt;p&gt;&lt;a href="http://robots.thoughtbot.com/post/37837704879/she-blinded-me-with-ruby-science" class="tumblr_blog"&gt;thoughtbot&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;div style="float: right; padding-left: 60px"&gt;&lt;a href="https://learn.thoughtbot.com/products/13?utm_source=giantrobots&amp;utm_medium=blog&amp;utm_campaign=launch"&gt;&lt;img src="http://media.tumblr.com/tumblr_mez6ck7Fkl1qzocnw.png" alt="Ruby Science"/&gt;&lt;/a&gt;&lt;/div&gt; &lt;p&gt;We love Rails, object-oriented programming, and refactoring. We use a process
to develop applications to work faster, introduce fewer bugs, and enjoy what
we’re doing. We blog, Tweet, and talk at conferences on these subjects.&lt;/p&gt; &lt;p&gt;After every post and discussion, there are topics left…&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Hot. Shit.&lt;/p&gt;

&lt;p&gt;Go get it. &lt;/p&gt;</description><link>http://tumblr.alanquatermain.me/post/37838131739</link><guid>http://tumblr.alanquatermain.me/post/37838131739</guid><pubDate>Thu, 13 Dec 2012 11:31:57 -0500</pubDate></item><item><title>wilwheaton:

I posted this on Twitter this morning, because I...</title><description>&lt;img src="http://24.media.tumblr.com/a955e90f9105f31d686b5de4f1622a70/tumblr_metwynt6Aq1qz9bu3o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a class="tumblr_blog" href="http://wilwheaton.tumblr.com/post/37650564961/i-posted-this-on-twitter-this-morning-because-i"&gt;wilwheaton&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I posted this on Twitter this morning, because I believe it’s good advice, but about 1 in 20 or so replies accused me of being selfish or narcissistic, or — worst of all — an Objectivist.&lt;/p&gt;
&lt;p&gt;I’m not a big fan of getting into “Someone is wrong on the Interent,” but I wanted to clarify a little bit in a way that Twitter does not allow.&lt;/p&gt;
&lt;p&gt;What I get out of this quote is this: if there is a toxic person in your life who does nothing but bring you down and hurt you, then you should respect yourself enough to remove that person from your life. Life is too short to maintain toxic and negative relationships.&lt;/p&gt;
&lt;p&gt;This doesn’t mean that you don’t make an effort to work on building and maintaining positive, healthy, fulfilling relationships. It doesn’t mean that you don’t make an effort to be kind and generous and just take take take. It means that if you’re constantly “making up” or something like that with a person, you’re not in a healthy, fulfilling relationship. You’re in a toxic relationship, and time you spend maintaining toxic relationships is time wasted that could be spent — invested — into relationships that bring you joy and make you a better person.&lt;/p&gt;
&lt;p&gt;Know and recognize the difference between healthy and toxic relationships, positive and negative people, and respect — and love — yourself enough to choose the ones that make you happy and inspire you to grow as much as you possibly can. People who drag you down because it makes them feel better about themselves are not worth your time.&lt;/p&gt;
&lt;p&gt;Where I think people may have interpreted this as selfish or narcissistic is in the clumsy wording of people or activities “serving” you. I’d take people out of that portion of the advice and apply it directly to the forehead.&lt;/p&gt;
&lt;p&gt;Or, you know, just apply it to the “activities” part and think about where you’re investing your time and energy — your most precious and limited resource — and what yo’ure getting back from it.&lt;/p&gt;
&lt;p&gt;Mostly, though, this quote encapsulates advice I’ve given my children and applied to my own life: respect yourself enough to leave a romantic or platonic or business relationship that is causing you more harm than good. To borrow a quote from Green Day: “You can’t go forcing something if it’s just not right.”&lt;/p&gt;
&lt;/blockquote&gt;</description><link>http://tumblr.alanquatermain.me/post/37652928842</link><guid>http://tumblr.alanquatermain.me/post/37652928842</guid><pubDate>Mon, 10 Dec 2012 14:45:08 -0500</pubDate></item><item><title>RAProjectTools</title><description>&lt;a href="https://github.com/evadne/RAProjectTools"&gt;RAProjectTools&lt;/a&gt;: &lt;p&gt;&lt;a href="http://blog.radi.ws/post/35542558995/raprojecttools" class="tumblr_blog"&gt;monoceroi&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; Just released &lt;a href="https://github.com/evadne/RAProjectTools"&gt;RAProjectTools&lt;/a&gt;, a collection of Ruby and Bash scripts that make your life easier.&lt;/p&gt;

&lt;hr&gt;&lt;h3&gt;&lt;code&gt;sync-resources&lt;/code&gt; / &lt;code&gt;sync-resources.rb&lt;/code&gt;&lt;/h3&gt;

&lt;p&gt;The script in &lt;code&gt;sync-resources.rb&lt;/code&gt; looks at your Xcode project, and finds a group named &lt;strong&gt;Resources&lt;/strong&gt;.  If it finds one, and the group itself is associated with a directory in your project — for example, &lt;code&gt;Project/Resources&lt;/code&gt; — it will attempt to reconcile the contents of the directory with the contents of the group.  Files added to the directory will be added to the Xcode group, and files no longer found will have their references removed.&lt;/p&gt;

&lt;p&gt;It works well against projects with &lt;em&gt;one single target&lt;/em&gt;.  It’s possible to extend the script so it is more robust.  The script uses the &lt;a href="git://github.com/CocoaPods/Xcodeproj.git"&gt;Xcodeproj&lt;/a&gt; gem from &lt;a href="http://cocoapods.org"&gt;CocoaPods&lt;/a&gt;, and the appropriate &lt;a href="http://gembundler.com"&gt;Bundler&lt;/a&gt; magic is already set up for you.&lt;/p&gt;

&lt;p&gt;Invoke &lt;code&gt;sync-resources&lt;/code&gt; from the root-level directory containing your project.&lt;/p&gt;

&lt;h3&gt;&lt;code&gt;next-version&lt;/code&gt;&lt;/h3&gt;

&lt;p&gt;The script in &lt;code&gt;next-version&lt;/code&gt; bumps the version number by one.  It works with &lt;a href="https://github.com/nvie/gitflow"&gt;Git Flow&lt;/a&gt;, the awesome branching model for software development, and &lt;a href="http://cocoadev.com/wiki/AGVTool"&gt;AGVTool&lt;/a&gt;, Apple’s solution for software versioning.&lt;/p&gt;

&lt;p&gt;It works pretty well if you are already using these tools.  Remember to start this script from the &lt;code&gt;develop&lt;/code&gt; branch, and it’ll make a new Git Flow release with the next version number.&lt;/p&gt;

&lt;p&gt;Invoke &lt;code&gt;next-version&lt;/code&gt; from the root-level directory containing your project.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;That’s a fairly sizeable amount of awesome right there.&lt;/p&gt;</description><link>http://tumblr.alanquatermain.me/post/35567369560</link><guid>http://tumblr.alanquatermain.me/post/35567369560</guid><pubDate>Mon, 12 Nov 2012 11:22:24 -0500</pubDate></item><item><title>RATilingBackgroundView</title><description>&lt;a href="https://github.com/evadne/RATilingBackgroundView"&gt;RATilingBackgroundView&lt;/a&gt;: &lt;p&gt;&lt;a href="http://blog.radi.ws/post/35223449769/ratilingbackgroundview" class="tumblr_blog"&gt;monoceroi&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Summary&lt;/strong&gt;: Just released &lt;a href="https://github.com/evadne/RATilingBackgroundView"&gt;RATilingBackgroundView&lt;/a&gt; which implements a very simple &lt;code&gt;UIView&lt;/code&gt; subclass that takes several background tiles, generates more if necessary, and scrolls them with the containing &lt;code&gt;UIScrollView&lt;/code&gt;.&lt;/p&gt;

&lt;hr&gt;&lt;p&gt;You’ll find &lt;code&gt;RATilingBackgroundView&lt;/code&gt; in this project.  It needs a delegate to work.  Do these things to start using it:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;&lt;p&gt;Drop the project into your app as a static library dependency.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Implement &lt;code&gt;&lt;RATilingBackgroundViewDelegate&gt;&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;- (CGSize) sizeForTilesInTilingBackgroundView:(RATilingBackgroundView *)tilingBackgroundView;
- (UIView *) newTileForTilingBackgroundView:(RATilingBackgroundView *)tilingBackgroundView;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;It’ll ask about the default size for tiles, and will also ask for new tiles whenever the bounds of its containing view has changed and it has no dequeued tiles to cover the area.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Optionally, set the stretching flags so you can use stretchable images for tiles.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;@property (nonatomic, readwrite, assign) BOOL horizontalStretchingEnabled;  //  YES
@property (nonatomic, readwrite, assign) BOOL verticalStretchingEnabled;    //  NO
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If you don’t set any stretching flags, the tiles will be stretched horizontally to the same width of the containing view by default.&lt;/p&gt;

&lt;p&gt;For example, if you have a square or rectangular image you’d like to repeat, set both flags to &lt;code&gt;NO&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/blockquote&gt;

&lt;p&gt;Very useful as a counterpart to AQGridView.&lt;/p&gt;</description><link>http://tumblr.alanquatermain.me/post/35270990052</link><guid>http://tumblr.alanquatermain.me/post/35270990052</guid><pubDate>Thu, 08 Nov 2012 09:33:59 -0500</pubDate></item><item><title>RAReactionKit</title><description>&lt;a href="https://github.com/evadne/rareactionkit"&gt;RAReactionKit&lt;/a&gt;: &lt;p&gt;&lt;a href="http://blog.radi.ws/post/33344622586/rareactionkit" class="tumblr_blog"&gt;monoceroi&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Summary: Just released &lt;a href="https://github.com/evadne/RAReactionKit"&gt;RAReactionKit&lt;/a&gt;, which lets you do blocks-based KVO and key-path binding between objects, and handles premature deallocation cases gracefully without swizzling &lt;code&gt;-dealloc&lt;/code&gt;.  It is spliced from IRFoundations, which has grown too large to be instantly useful in any case.&lt;/p&gt;

&lt;hr&gt;&lt;p&gt;There are three major parts of the Reaction Kit: &lt;strong&gt;Bindings&lt;/strong&gt;, &lt;strong&gt;Observings&lt;/strong&gt;, and &lt;strong&gt;Deallocation Monitors&lt;/strong&gt;.  The entire project is built upon ARC and mandates support for weak references.  It does not swizzle your &lt;code&gt;-dealloc&lt;/code&gt; methods, and work nicely with &lt;code&gt;NSManagedObject&lt;/code&gt; instances.&lt;/p&gt;

&lt;h3&gt;Bindings&lt;/h3&gt;

&lt;p&gt;In &lt;code&gt;NSObject+RABindings.h&lt;/code&gt; you’ll find these methods added to &lt;code&gt;NSObject&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;- (void) ra_bind:(NSString *)aKeyPath toObject:(id)anObservedObject keyPath:(NSString *)remoteKeyPath options:(NSDictionary *)options;
- (void) ra_unbind:(NSString *)aKeyPath;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;For now, the binding is &lt;strong&gt;strictly one-way&lt;/strong&gt;.  Two-way bindings are very interesting to have, though.  :)&lt;/p&gt;

&lt;p&gt;You use the binding mechanism like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;[cell ra_bind:@"someView.elements" 
    toObject:modelObject 
    keyPath:@"someOtherElements"
    options:@{
        RABindingsMainQueueGravityOption: @YES
}];
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;There are currently two options keys:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;RABindingsMainQueueGravityOption&lt;/strong&gt;: If it is set to &lt;code&gt;@YES&lt;/code&gt;, &lt;code&gt;RABindings&lt;/code&gt; will take care to asynchronously set the value on the receiver from the main queue.  If you have an non-atomic object that gets hit from all the places (mediated with a serial dispatch queue), this can be handy.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;RABindingsValueTransformerOption&lt;/strong&gt;: You can pass a &lt;code&gt;RABindingsValueTransformer&lt;/code&gt; block:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;typedef id (^RABindingsValueTransformer) (id inOldValue, id     inNewValue, NSString *changeKind);
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This allows you to do some very cheap value transforming, for example between &lt;code&gt;NSDate&lt;/code&gt; and &lt;code&gt;NSString&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h3&gt;Observings&lt;/h3&gt;

&lt;p&gt;In &lt;code&gt;NSObject+RAObservings.h&lt;/code&gt; you’ll find a bunch of methods added to &lt;code&gt;NSObject&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;- (id) ra_observe:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(void *)context withBlock:(RAObservingsCallback)block;

- (void) ra_removeObservingsHelper:(id)aHelper;
- (void) ra_removeObserverBlocksForKeyPath:(NSString *)keyPath;
- (void) ra_removeObserverBlocksForKeyPath:(NSString *)keyPath context:(void *)context;

- (NSMutableArray *) ra_observingsHelperBlocksForKeyPath:(NSString *)aKeyPath;

- (void) ra_observeObject:(id)target keyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(void *)context withBlock:(RAObservingsCallback)block;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The main reason for exposure are two-fold:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;The code was written by a more naïve version of myself&lt;/li&gt;
&lt;li&gt;Observings are assumed to be frequently made and broken.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;You use the Observing mechanism by invoking &lt;code&gt;ra_observe:options:context:withBlock:&lt;/code&gt;.  It spins up a temporary, private KVO listener which forwards incoming communication from the Key-Value Binding mechanism to your handler block.&lt;/p&gt;

&lt;h3&gt;Deallocation Monitors&lt;/h3&gt;

&lt;p&gt;The Deallocation Monitor is provided in &lt;code&gt;NSObject+RALifetimeHelper.h&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;- (void) ra_performOnDeallocation:(void(^)(void))aBlock;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If you pass a block to &lt;code&gt;-ra_performOnDeallocation:&lt;/code&gt;, the block will be called when the object is deallocated.&lt;/p&gt;

&lt;p&gt;Please note that for static NSString instances (the &lt;code&gt;@""&lt;/code&gt; string literals you specified in code), or special cases like &lt;code&gt;@YES&lt;/code&gt; and &lt;code&gt;@NO&lt;/code&gt;, they will never be deallocated.&lt;/p&gt;

&lt;p&gt;If you have zombies on, nothing will be deallocated — as well.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Looks very interesting indeed.&lt;/p&gt;</description><link>http://tumblr.alanquatermain.me/post/33372023828</link><guid>http://tumblr.alanquatermain.me/post/33372023828</guid><pubDate>Thu, 11 Oct 2012 13:42:36 -0400</pubDate></item><item><title>Squashed: Mitt Romney thinks you need to take responsibility for your life</title><description>&lt;a href="http://squashed.tumblr.com/post/31757816989/mitt-romney-thinks-you-need-to-take-responsibility-for"&gt;Squashed: Mitt Romney thinks you need to take responsibility for your life&lt;/a&gt;: &lt;p&gt;Via &lt;a href="http://www.marco.org/2012/09/18/squashed-romney"&gt;Marco&lt;/a&gt;— &lt;a href="http://squashed.tumblr.com/post/31757816989/mitt-romney-thinks-you-need-to-take-responsibility-for" class="tumblr_blog"&gt;squashed : Mitt Romney thinks you need to take responsibility for your life&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Generally, there’s nothing wrong with asking people to take responsibility for their actions to avoid social ills. Stop littering. Spay or neuter your pets. Vaccinate your children. Get up early enough to eat breakfast so you’re not so grouchy at work. If your diet is making you sick, change it….&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Apparently anyone earning less than 3x the minimum wage is an underachiever, and thus not worthy of the Republican candidate’s attention…&lt;/p&gt;</description><link>http://tumblr.alanquatermain.me/post/31803093330</link><guid>http://tumblr.alanquatermain.me/post/31803093330</guid><pubDate>Tue, 18 Sep 2012 13:31:28 -0400</pubDate></item><item><title>"Some of the briefs again reminded Mr. Bush that the attack timing was flexible, and that, despite..."</title><description>“&lt;p&gt;Some of the briefs again reminded Mr. Bush that the attack timing was flexible, and that, despite any perceived delay, the planned assault was on track.&lt;/p&gt;

&lt;p&gt;Yet, the White House failed to take significant action. Officials at the Counterterrorism Center of the C.I.A. grew apoplectic. On July 9, at a meeting of the counterterrorism group, one official suggested that the staff put in for a transfer so that somebody else would be responsible when the attack took place, two people who were there told me in interviews. The suggestion was batted down, they said, because there would be no time to train anyone else.&lt;/p&gt;

&lt;p&gt;That same day in Chechnya, according to intelligence I reviewed, Ibn Al-Khattab, an extremist who was known for his brutality and his links to Al Qaeda, told his followers that there would soon be very big news. Within 48 hours, an intelligence official told me, that information was conveyed to the White House, providing more data supporting the C.I.A.’s warnings. Still, the alarm bells didn’t sound.&lt;/p&gt;”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;a href="http://www.nytimes.com/2012/09/11/opinion/the-bush-white-house-was-deaf-to-9-11-warnings.html?_r=1"&gt;Kurt Eichenwald&lt;/a&gt; (via &lt;a class="tumblr_blog" href="http://soupsoup.tumblr.com/"&gt;soupsoup&lt;/a&gt;)&lt;/em&gt;</description><link>http://tumblr.alanquatermain.me/post/31398180937</link><guid>http://tumblr.alanquatermain.me/post/31398180937</guid><pubDate>Wed, 12 Sep 2012 09:30:59 -0400</pubDate></item><item><title>WIL WHEATON dot TUMBLR: Catan Junior - For ages four and up!</title><description>&lt;a href="http://wilwheaton.tumblr.com/post/30102100388/catan-junior-for-ages-four-and-up"&gt;WIL WHEATON dot TUMBLR: Catan Junior - For ages four and up!&lt;/a&gt;: &lt;p&gt;&lt;a class="tumblr_blog" href="http://seenontabletop.tumblr.com/post/29972387657/catan-junior-for-ages-four-and-up"&gt;seenontabletop&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I’ve been playing Catan for years and it was nice to see it featured on Tabletop. Being the father of a rapidly evolving, small humanoid, I of course want to start impressing upon him my love of board games.&lt;/p&gt;
&lt;p&gt;This past week, at GenCon, I got the opportunity to try out Catan…&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;My daughter is four right now… I therefore need this game. Like, *medically need* it.&lt;/p&gt;</description><link>http://tumblr.alanquatermain.me/post/30107861643</link><guid>http://tumblr.alanquatermain.me/post/30107861643</guid><pubDate>Fri, 24 Aug 2012 12:27:24 -0400</pubDate><category>catan</category><category>kids</category></item><item><title>"You see, what I said was, “If it’s a legitimate rape, the female body has ways to try to shut that..."</title><description>“&lt;p&gt;You see, what I said was, “If it’s a legitimate rape, the female body has ways to try to shut that whole thing down.” But what I meant to say was, “I am a worthless, moronic sack of shit and an utterly irredeemable human being who needs to shut up and go away forever.” &lt;/p&gt;

&lt;p&gt;It is clear to me now that I did not choose my words with care and did not get across the point I was trying to convey. In hindsight, I guess instead of using the words “legitimate rape,” I should have used the words “I am an unforgivable, unrepentant, and unconscionable subhuman dickhead.” Or better yet, “I am an evil, fucked-up man who should never have been elected to the United States Congress, and anyone who would vote for me is probably a pretty big fucking dumbshit, too.” See how much more sense that makes? It’s amazing how a few key word changes can totally alter the meaning of a statement. &lt;/p&gt;

&lt;p&gt;Because, of course, it’s all about context. And yes, when you take what I said out of context, I can see how it might sound like I’m denying that women can be impregnated via rape. This is, I assure you, not what I was trying to express at all. Such is the age we live in that one little sentence excerpted in a news report can come back to haunt a person in a pretty big hurry. But if you actually go back and look at the remarks closely, you’ll see that what I was actually trying to convey in my statement was that &lt;/p&gt;

&lt;p&gt;(1) I am a big fucking idiot, &lt;/p&gt;

&lt;p&gt;(2) I am a nauseating slug of a human being who doesn’t deserve to live, and &lt;/p&gt;

&lt;p&gt;(3) I am essentially everything that’s wrong with this country and with humanity in general. &lt;/p&gt;

&lt;p&gt;Honestly, that’s all I was trying to get across there. It was a simple misunderstanding, really.&lt;/p&gt;”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;p&gt;&lt;a href="http://www.theonion.com/articles/i-misspokewhat-i-meant-to-say-is-i-am-dumb-as-dog,29256/?ref=auto"&gt;I Misspoke—What I Meant To Say Is ‘I Am Dumb As Dog Shit And I Am A Terrible Human Being’&lt;/a&gt; (via &lt;a href="http://wilwheaton.tumblr.com/" class="tumblr_blog"&gt;wilwheaton&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;Gor’ bless the Onion, sir.&lt;/p&gt;&lt;/em&gt;</description><link>http://tumblr.alanquatermain.me/post/29897921002</link><guid>http://tumblr.alanquatermain.me/post/29897921002</guid><pubDate>Tue, 21 Aug 2012 10:26:49 -0400</pubDate></item><item><title>wilwheaton:

mattfisher:

My Sister Paid Progressive Insurance...</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_m8jmc8okep1qzoki7o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a href="http://wilwheaton.tumblr.com/post/29348393936/mattfisher-my-sister-paid-progressive-insurance" class="tumblr_blog"&gt;wilwheaton&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;a class="tumblr_blog" href="http://mattfisher.tumblr.com/post/29338478278/my-sister-paid-progressive-insurance-to-defend-her"&gt;mattfisher&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;My Sister Paid Progressive Insurance to Defend Her Killer In Court&lt;/strong&gt;&lt;/p&gt;
&lt;p align="left"&gt;I’ve been sending out some impertinent tweets about Progressive Insurance lately, but I haven’t explained how they pissed me off. So I will do that here as succinctly as possible. There’s a general understanding that says, “insurance companies— oh they’re awful,” but since Progressive turned their shit hose on my late sister and my parents, I’ve learned some things that really surprised me.&lt;/p&gt;
&lt;p align="left"&gt;I’ll try to cleave to the facts. On June 19, 2010, my sister was driving in Baltimore when her car was struck by another car and she was killed. The other driver had run a red light and hit my sister as she crossed the intersection on the green light.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://mattfisher.tumblr.com/post/29338478278/my-sister-paid-progressive-insurance-to-defend-her"&gt;Read More&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is appalling. Please read the entire thing (it’ll just take a minute) and tell your friends.&lt;/p&gt;
&lt;p&gt;Let’s get enough attention focused on this to force Progressive Insurance to do the right thing for Matt and his family.&lt;/p&gt;
&lt;p&gt;And if you’re shopping for auto insurance, don’t give your money to this morally bankrupt company.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Words cannot adequately describe this.&lt;/p&gt;

&lt;p&gt;For the record, when the rest of the world looks at America’s insurance-based health services, &lt;em&gt;this&lt;/em&gt; is what we see. After all, in a social healthcare system the government is on the hook for the costs using taxpayer money. They’re legally obliged to do what’s best for the country and its populace.&lt;/p&gt;

&lt;p&gt;The insurance companies are paying using money they bring in &lt;em&gt;as profit&lt;/em&gt;, and they’re legally obliged to serve their shareholders by increasing the value of their stock over time.&lt;/p&gt;

&lt;p&gt;Which of those is going to care more about healing people, and which is going to care more about saving money?&lt;/p&gt;</description><link>http://tumblr.alanquatermain.me/post/29358643296</link><guid>http://tumblr.alanquatermain.me/post/29358643296</guid><pubDate>Mon, 13 Aug 2012 17:18:09 -0400</pubDate></item><item><title>5 reasons to play D&amp;D</title><description>&lt;a href="https://grimmwisdom.wordpress.com/2012/08/05/5-reasons-to-play-dd/"&gt;5 reasons to play D&amp;D&lt;/a&gt;: &lt;p&gt;&lt;a href="http://wilwheaton.tumblr.com/post/28796813928/5-reasons-to-play-d-d" class="tumblr_blog"&gt;wilwheaton&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;This is great. A guy shares five reasons he wants his children to play D&amp;D.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Reblogging in the hope that my wife will see it &amp; be convinced… ;o)&lt;/p&gt;</description><link>http://tumblr.alanquatermain.me/post/28909649530</link><guid>http://tumblr.alanquatermain.me/post/28909649530</guid><pubDate>Tue, 07 Aug 2012 10:45:13 -0400</pubDate><category>D&amp;amp;D</category></item><item><title>wilwheaton:

As far as I am concerned, this is the canonical...</title><description>&lt;iframe width="400" height="225" src="http://www.youtube.com/embed/AtIBZNl3DY4?wmode=transparent&amp;autohide=1&amp;egm=0&amp;hd=1&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;showinfo=0&amp;showsearch=0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a href="http://wilwheaton.tumblr.com/post/28140487625/as-far-as-i-am-concerned-this-is-the-canonical" class="tumblr_blog"&gt;wilwheaton&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;As far as I am concerned, this is the canonical version of Set the Controls for the Heart of the Sun.&lt;/p&gt;
&lt;p&gt;It’s from Live at Pompeii, which also has probably the best non-bootleg recording of Echoes that I’ve ever seen or heard.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I’m just blissing out quietly now…&lt;/p&gt;</description><link>http://tumblr.alanquatermain.me/post/28141335173</link><guid>http://tumblr.alanquatermain.me/post/28141335173</guid><pubDate>Fri, 27 Jul 2012 15:08:49 -0400</pubDate></item></channel></rss>
