1,047 karma · joined February 6, 2011
I wish that there was an OS with the core of iOS and the appearance of WP7[1].
1. except Helvetica.
The ivar was in a public header, and was not marked @private, which is the only correct way to designated an ivar as private in Objective-C. Putting a comment above it saying "this is private" (which they did) doesn't count. It's protected, by definition.
NSActionCell.h, I think.
They point this out and it's philosophically true, but are there actually any licenses that meet the definition of "open source" but not the definition of "free software" (or vise versa)?
All of the ones that people actually use (GPL, LGPL, BSD, MIT, ISC, and Apache, I think that basically covers it) appear to pass both DFSG and OSI definitions.
> The way iOS codes are structured is like a breadboard, everything is hard-wired, you still can change a few things here and there, but if you change the wrong wire, the whole board might stop working
Seems very wrong. It sounds like something that someone that doesn't really understand Objective-C would write. It's a very dynamic language, using features like first-class classes should help prevent that C++-esque nightmare.
A Facebook like button is not a fair comparison at all. In a web app, you can just paste it in. If you had to implement the button yourself it would take just as long as implementing it from scratch on iOS.
Instead, consider a data type. If we're writing a Facebook clone, let's say we only have status messages and now we want to add photos. On the web, you'll need to write the template to generate HTML for that in the news feed. On iOS, you need to write a cell class. It's true that the iOS one will probably take longer, but that doesn't make it less flexible. It's just the nature of declaring your interface in code instead of in markup.
You could do it with the real API, but it could also probably be done with a few lines of Javascript pasted into the URL bar on your profile.
Any takers?
* you can't actually ask them that, since you can't talk.
Joking. But the Timeline view in the iOS app places all items in a single column.
That said, Facebook has basically become a place where I sync my tweets and other services like Instagram so that people that I know who don't use Twitter yet can see them.
My dumbphone pretty much did that in like, 2005 or so: https://s3.amazonaws.com/ns_pixels/blag/old-phone-volume.jpg
http://en.wikipedia.org/wiki/General_Motors_streetcar_conspi...
Or... I could put a card in my wallet. I could tap my wallet on a turnstile[1], a gate slides open, a train arrives every 5 minutes or so, and I ride anywhere in the city for a flat rate. This seems a lot "cooler" than dealing with maintaining my own personal transport pod.
[1] in Boston, in New York you still have to take it out and swipe.
Maybe that's a "young person thing" though. My parents watch a decent amount of TV, the only channel that appeals to me out of the hundreds that they get[1] is Comedy Central... for one hour a day. After going to college and being without TV, I really have no stomach for commercial breaks anymore.
[1] not actually sure about this, Comedy Central is 600-something, I guess they might not all be used though. Still probably hundreds.
[1] I use Twitter for Mac, the website is kind of a mess actually.
> I'm guessing there's no easy way to replace the definition of the deleteToEndOfParagraph: action with something else...
with DYLD_INSERT_LIBRARIES and method_exchangeImplementations (and maybe launchd to apply that DYLD_INSERT_LIBRARIES to everything?).
What you have to do is:
Implement a category message that does what you want (my_deleteToEndOfParagraph:).
Write a function that uses method_exchangeImplementations to replace deleteToEndOfParagraph: with my_deleteToEndOfParagraph:. deleteToEndOfParagraph: probably depends on class (NSTextView, NSTextField, WebView, etc.)
Create a shared library that uses your function as an initialization routine.
Inject that shared library into every app on the system.
As you can see this is very easy. Har har har.
Instead of reinventing its own selfupdate functionality, Homebrew just uses git. Updating Homebrew is really just fast forwarding a git repository. Finally, the maintainers explicitly do not duplicate the libraries/tools that ship with OS X.
This is a big step up on OS X from Macports, which installs itself in /opt/local and rebuilds everything possible. Homebrew is instantly understandable. Packages are files, you just match them by name. apt is admittedly more complex, but at least you get something for that complexity.
[1] really what's slow is building from source. Homebrew itself is very fast.
1: http://www.reddit.com/r/programming/comments/l0ml6/nodejs_ha...