HN user

Zev

2,386 karma

Likes the -ish suffix on words.

Mobile Engineer.

In: 415, from: 516

#FFCC00

Posts3
Comments1,376
View on HN
The History of IRC 12 years ago

It does not require encrypted connections, although it does have extensions to indicate that future connections should occur over TLS (through the optional `tls` extension in IRCv3.1) and there is discussion for standardizing IRC over SCTP in IRCv3.3

Psd.rb 13 years ago

I can't speak to its accuracy, but, June 2013 wasn't yesterday. It isn't that old -- and it isn't like there's been a release of Photoshop in the past month and a half, so, it seems pretty recently updated.

I still don't get why this has to be a full-sized TV. What if the AppleTV (sized as it is) had the sensors in it to detect motion?

(Of course, I still don't see the appeal in using motion to control my TV, after using a Kinect on-and-off since it was released. But, there's more to the market than just me, so, who knows.)

Saying "Always rasterize" isn't necessarily the solution, either. Its actually pretty bad advice to follow all the time ;)

I suspect (but can't confirm without the source code to the demo) that shouldRasterize would actually hurt performance in one of the two cases in the article. Specifically, I imagine that it would make the score for adding and removing views from screen even worse than it already is.

Yes, it renders into a bitmap, and reduces CPU usage, once you've paid the upfront rendering cost. But, it doesn't rasterize opacity, and, will use up a ton of memory (because it doesn't result in stretchable images).

Re: 2:

While its great to have a small image that doesn't require much I/O to read, "small" shouldn't only refer to file size.

Instead, a "small" image should be one that has a small resolution, and is stretchable. This lets the GPU tile the portions of the image that are being stretched and reuse GPU memory, instead of having to waste space in ram to hold duplicate pixel data.

(And when something's as small as it can be, it doesn't minify very well anymore -- not much left to strip from the PNG.)

Selected "I read multiple books a few times a week", but, I'm not sure if thats the best fit. I read for some amount of time every day, but, its rare for me to be on the same book for longer than a few days -- and if I finish a book in the evening, I'll probably wait till the next day to pick up another one.

Basically, my target for the year is to read 104 new[1] books cover-to-cover, or, two books a week, and I'm currently a bit ahead of schedule.

1. Books that I haven't read before, not that are published in 2013.

I emailed Tim Cook 13 years ago

The typeface in many new OS X 10.8 apps is Helvetica. The typeface of OS X is Lucida Grande.

I bet this changes in 10.9. At least, for Retina machines. There's a reason why iOS uses Helvetica Neue as the system font, and not Lucida Grande. It looks better on sharper displays.

The new iMessage app in 10.8 lacks instant messenger integration with services such as MSN, AIM, and Jabber, forcing the use of a different application for these features.

Erm. Those services are still there. Same as ever -- which never included MSN in the first place. Hell, theres a new framework, IMServices, which lets you add support for new services to Messages.app.

..sometimes programmers are just different and work environments can be rigid.

No. Just, no.

While I can totally relate to not wanting to have a 9-5 job (and even moreso when it comes to holding out for the right job) a dislike of working 9-5 jobs this is not unique to some (but not all, remember that) programmers.

You can easily do without a protocol[1] -- NSKeyValueCoding doesn't require a protocol to be implemented anywhere. For example:

  @interface MYObject : NSObject
  @property (nonatomic, copy) NSString *foo;
  @property (nonatomic, copy) NSString *bar;
  @end

  @implementation MYObject
  @end
And somewhere else in your code:
  - (MYObject *) buildMYObject {
      MYObject *object = [[MYObject alloc] init];
      [object setValuesForKeysWithDictionary:@{ @"foo": @"purple", @"bar": @"elephant" }];
      return object;
  }
Then you can access it like a regular property:
  - (void) useMYObject {
      MYObject *builtObject = [self buildMYObject];
      NSLog(@"value: %@", builtObject.foo); // will print "value: purple"
      NSLog(@"value: %@", builtObject.bar); // will print "value: elephant"
  }
There are some gotchas to be aware of here (that Parse likely takes care of, since you're subclassing PFObject), such as setting nil values, or attempting to set the value from a key that doesn't have a corresponding property on your object.

1. It looks like the main benefit to the protocol is compatibility with the existing design of -[PFObject objectWithClassName:], and, I don't know enough about Parse to say what that does. But, I bet its nifty.

A lot of Apple stuff may be a black box but it is designed to be subclassed.

Aside from a small number of top-level classes[1] UIKit isn't designed to be subclassed. When you subclass things like UIAlertView, UIButton, UISwitch, UITextField, UIWebView… etc, you're in for a world undocumented gotchas and spending hours to do small simple things.

1. UIView, UIControl, UITableViewCell, UIScrollView, UIGestureRecognizer, UIViewController, UIApplication and maybe one or two other classes.

Mostly a really good list. My only nitpick is:

RegexKitLite - Powerful regular expression support

Use NSRegularExpression instead. It's built into the OS (in Foundation) as of iOS 4, which is below the minimum target you have (if you support the iPhone 5).

Maybe the author had a need for it, built it, and is throwing it out there for anyone else who might have a similar need? Maybe you need to embed a web server in your app for something? Maybe you're really comfortable with ObjC and just want to get a quick server up for prototyping? Maybe you don't find it to be too verbose, and prefer having code that's easily self-documenting instead of relying on framework knowledge? Maybe you like being able to use a framework like Foundation (which has had 20+ years of history)? And so on.

Once you've failed (and maybe, given your post-mortem), what else is there to do? You move on to working on something else.

To extend your analogy: during WW2, they didn't study the same plane every time a plane was shot down. They studied a the one that was hit, and moved on to the next one after that.

Having spoiler tags on everything that possibly discusses a movie is silly. The movie was released 9 months ago. By now, either you cared about the movie enough to have seen it or don't care enough to care about spoilers.

iOS only seems stagnant because they don't have to trumpet every year about how they've finally gotten rid of ui lag..

You might not notice it, but, there is an eighth-of-a-second-ish delay between when you tap on most buttons and when the action occurs. An obvious (to me) example is when you tap on the back button on a navigation controller, and it takes a split second before anything happens..

It isn't much, but it is consistent across the OS, and it drives me crazy.