HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
jspahrsummers
libextobjc
Objective-C2011–2013
jspahrsummers / libextobjc · Archived

libextobjc

A Cocoa library to extend the Objective-C programming language.

4Distinct people
4Mentions
0Explicit recommenders
4.5KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A Cocoa library to extend the Objective-C programming language.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by month4 dated mentions

Observed mentions: 2011-05-06 12:47:27 UTC to 2013-12-04 01:23:09 UTC.

012011-05-01 00:00:00 UTC to 2011-06-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 commentsMay 20112011-06-01 00:00:00 UTC to 2011-07-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2011-07-01 00:00:00 UTC to 2011-08-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2011-08-01 00:00:00 UTC to 2011-09-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2011-09-01 00:00:00 UTC to 2011-10-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2011-10-01 00:00:00 UTC to 2011-11-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2011-11-01 00:00:00 UTC to 2011-12-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2011-12-01 00:00:00 UTC to 2012-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-01-01 00:00:00 UTC to 2012-02-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-02-01 00:00:00 UTC to 2012-03-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-03-01 00:00:00 UTC to 2012-04-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-04-01 00:00:00 UTC to 2012-05-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-05-01 00:00:00 UTC to 2012-06-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-06-01 00:00:00 UTC to 2012-07-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-07-01 00:00:00 UTC to 2012-08-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-08-01 00:00:00 UTC to 2012-09-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsAug 20122012-09-01 00:00:00 UTC to 2012-10-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-10-01 00:00:00 UTC to 2012-11-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-11-01 00:00:00 UTC to 2012-12-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-12-01 00:00:00 UTC to 2013-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-01-01 00:00:00 UTC to 2013-02-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-02-01 00:00:00 UTC to 2013-03-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-03-01 00:00:00 UTC to 2013-04-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-04-01 00:00:00 UTC to 2013-05-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-05-01 00:00:00 UTC to 2013-06-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-06-01 00:00:00 UTC to 2013-07-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2013-07-01 00:00:00 UTC to 2013-08-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-08-01 00:00:00 UTC to 2013-09-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-09-01 00:00:00 UTC to 2013-10-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-10-01 00:00:00 UTC to 2013-11-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-11-01 00:00:00 UTC to 2013-12-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2013-12-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsDec 2013

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
May 20112011-05-01 00:00:00 UTC2011-06-01 00:00:00 UTC110
Jun 20112011-06-01 00:00:00 UTC2011-07-01 00:00:00 UTC000
Jul 20112011-07-01 00:00:00 UTC2011-08-01 00:00:00 UTC000
Aug 20112011-08-01 00:00:00 UTC2011-09-01 00:00:00 UTC000
Sep 20112011-09-01 00:00:00 UTC2011-10-01 00:00:00 UTC000
Oct 20112011-10-01 00:00:00 UTC2011-11-01 00:00:00 UTC000
Nov 20112011-11-01 00:00:00 UTC2011-12-01 00:00:00 UTC000
Dec 20112011-12-01 00:00:00 UTC2012-01-01 00:00:00 UTC000
Jan 20122012-01-01 00:00:00 UTC2012-02-01 00:00:00 UTC000
Feb 20122012-02-01 00:00:00 UTC2012-03-01 00:00:00 UTC000
Mar 20122012-03-01 00:00:00 UTC2012-04-01 00:00:00 UTC000
Apr 20122012-04-01 00:00:00 UTC2012-05-01 00:00:00 UTC000
May 20122012-05-01 00:00:00 UTC2012-06-01 00:00:00 UTC000
Jun 20122012-06-01 00:00:00 UTC2012-07-01 00:00:00 UTC000
Jul 20122012-07-01 00:00:00 UTC2012-08-01 00:00:00 UTC000
Aug 20122012-08-01 00:00:00 UTC2012-09-01 00:00:00 UTC000
Sep 20122012-09-01 00:00:00 UTC2012-10-01 00:00:00 UTC000
Oct 20122012-10-01 00:00:00 UTC2012-11-01 00:00:00 UTC000
Nov 20122012-11-01 00:00:00 UTC2012-12-01 00:00:00 UTC000
Dec 20122012-12-01 00:00:00 UTC2013-01-01 00:00:00 UTC000
Jan 20132013-01-01 00:00:00 UTC2013-02-01 00:00:00 UTC000
Feb 20132013-02-01 00:00:00 UTC2013-03-01 00:00:00 UTC000
Mar 20132013-03-01 00:00:00 UTC2013-04-01 00:00:00 UTC000
Apr 20132013-04-01 00:00:00 UTC2013-05-01 00:00:00 UTC000
May 20132013-05-01 00:00:00 UTC2013-06-01 00:00:00 UTC000
Jun 20132013-06-01 00:00:00 UTC2013-07-01 00:00:00 UTC110
Jul 20132013-07-01 00:00:00 UTC2013-08-01 00:00:00 UTC000
Aug 20132013-08-01 00:00:00 UTC2013-09-01 00:00:00 UTC000
Sep 20132013-09-01 00:00:00 UTC2013-10-01 00:00:00 UTC000
Oct 20132013-10-01 00:00:00 UTC2013-11-01 00:00:00 UTC000
Nov 20132013-11-01 00:00:00 UTC2013-12-01 00:00:00 UTC101
Dec 20132013-12-01 00:00:00 UTC2014-01-01 00:00:00 UTC101

What Hacker News says

4 sources
> KVO all comes through one method Yes, and it's annoying to have a long list of if statements. However, there's a blocks based alternative since iOS4/10.6, and a number of third-party variations.[1] > KVO is string-ly typed That's a big reason why libextobjc's @keypath() macro is so popular.[2] > KVO requires you to handle superclasses yourself That's a feature, not a bug. If you use observeValueForKeyPath:ofObject:change:context: then you need to call super just like overriding any other method. This also gives you the flexibility to selectively decide to override behavior of your own superclasses. > KVO can crash when deregistering Only if you deregister twice. And yes, it really sucks that you can accidentally deregister the same key path that a superclass deregisters, resulting in a crash. Much has been written about this issue, and
Read the rest
third party libraries address it.[3] > KVO is a pit of failure That's a strong and subjective statement. Yes KVO can be frustrating for new developers - no argument there. But it does have its place. > KVO is implicit Woah, no one (including Apple) is suggesting that apps use KVO for all of their message passing and dependencies. It has its place, especially for monitoring changes to Apple's APIs or when multiple observers need to monitor the same object (again, that's a feature not a bug). > KVO can cause infinite loops Your handler should always avoid triggering the same event that triggered it. That's not unique to KVO. > KVO is the old way I remember when Apple introduced it, so I guess that makes me even older! Actually, Apple's KVO is responsible for some of the newest JS libraries. SproutCore borrowed many of KVO's ideas,[4] and you may be familiar with one of SproutCore's notable forks: Ember.js > When is it okay to use KVO? Agreed that these are great use cases for KVO. But doesn't this counter the title of the post? It's certainly not "harmful" to use KVO for these. [1] https://github.com/search?l=Objective-C&q=kvo&source=cc&type... [2] https://github.com/jspahrsummers/libextobjc/blob/master/exto... [3] http://www.mikeash.com/pyblog/friday-qa-2012-03-02-key-value... [4] http://guides.sproutcore.com/core_concepts_kvo.html
In Key-Value Observing Considered Harmful

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.