HNHacker News
TopNewBestAskShowJobs

natesm

1,047 karma · joined February 6, 2011

pretty okay at objective c
submissionscomments
natesm··on New York Underground
This isn't accurate for the entire city. At Astor Place, you can look through the sidewalk grates directly onto the tracks.
natesm··on Blizzard Network Breached; Change Your Battle.Net Passwords
I'm not talking about Battle.net specifically. I'm talking about in general. That's merely the impression that a password length limit gives to me, on any site. Can you think of any another "rational" reason for limiting password length? I see two possibilities:

1. They're not using hashes.

2. They are using hashes, but they don't understand what that actually does, and that there's no reason to have a limit on input length. The passwords might be more secure, but it calls into question the general competency of their security (do they salt? per user?).

This also applies to character restrictions (no ____ characters). I can understand requiring at least N instances of a class of characters, but the entire UTF-8 character set should be valid input. If I want an emoji password, there's no reason to disallow it. bcrypt will be happy to take those bytes.

So, here's a comparison of site purposes and security practices. This is largely unrelated, but it gives better insight as to what I was talking about, not just making a random assumption about Battle.net (which I theoretically have an account at, but I don't really care about it anymore, I don't play video games anymore).

Chase is a bank. They handle money. They allow up to 32 character passwords, with no "special" (whatever that means) characters whatsoever.

Twitter is a social networking site. I have a 50 character password of various character types, because that's how far 1Password will go.

Bank of America is also a bank. Twenty characters. Twenty. Characters. And none of those are allowed to be "special".

Facebook is user for the same purpose Twitter. I have a 50 character password there as well.

Why do I trust social sites more than my banks? Security is so messed up.

natesm··on Blizzard Network Breached; Change Your Battle.Net Passwords
Any password length limitation (within reason, not allowing a 1MB password is reasonable) says to me "we are not using hashes". That may or may not be the actual case, but it's the only reason I can think of for limiting password length. Hashes used for passwords have fixed lengths regardless of input, so any length password will "fit" in a database column.

If you're using hashes, limiting the lengths of passwords is extra work.

natesm··on Responsive Design Bookmarklet
This doesn't work correctly - on my iPad, rotating my site to landscape from portrait just makes everything slightly larger, rather than triggering a different layout, as this does.
natesm··on Gnome: Staring into the abyss
This isn't true for everyone. I like making nice things. That's the "itch" that I'm scratching, not a hole in my life that I'm trying to fill.
natesm··on Apple To Release Mountain Lion On July 25
The Messages app still isn't something I'd consider beta quality.

Messages show up and seemingly random times on all devices. Sometimes, they don't both to show up on a device (typically the Mac). Sending still works fine, until over the weekend, when I became unable to initiate iMessage conversations on my Mac. I'm told that the other person is "offline", while I'm having a conversation with them on my iPhone.

It's really bad. I hope there have been some fixes, but since I'm running "Gold Master", maybe not.

natesm··on Tweetbot for Mac - Public Alpha
It's okay, I guess. It's a lot less smooth when scrolling and animating than Twitter for Mac is, and this trend of Mac apps not looking like Mac apps is really tiring.
natesm··on Dear Marketers: Enough with the QR codes
My favorite New York subway ad (besides Zizmor) is something like "Have bedbugs?" and it offers you some "bedbugs apps" if you scan it, which is great because:

1. I've recently been looking for a good way to let a crowded train know that I probably have bedbugs on my clothing.

2. Internet access is really good underground.

natesm··on Reddit is now banning entire high-quality domains
Reddit presents themselves as a "platform for communities", not as a singular "community" (I'm paraphrasing kn0thing, I believe). This is directly in opposition to that ideal: previously, the administrators have only really interfered with, well, a bunch of subreddits targeted at pedophiles. Now, they're imposing blanket domain bans across every single Reddit community. I don't think that anyone would have a problem with allowing subreddit moderators to ban domains. I'd love to see image and meme hosts banned from almost everything to enforce high quality articles.

The Atlantic is a common sight on TrueReddit. I don't care if it was posted by an employee, because TrueReddit subscribers are pretty good about downvoting anything that doesn't fit. What I do care about is being able to read the great articles from The Atlantic that are upvoted on TrueReddit. However, the Reddit administrators have decided that I, and every other TrueReddit subscriber, shouldn't be allowed to anymore.

This is a fine technological decision, instead of spending years on heuristics, but it's implemented at the wrong level.

natesm··on New Apple Macbook Pro RAM is soldered to the motherboard | Ian Chilton
Accept that you may not be the target market?
natesm··on Violate Twitter Brand Guidelines
The favicon on that page violates the brand guidelines.
natesm··on Show HN: Underscore.js for Objective-C
Uh, I did read it. Yes, it's a bad idea. So is adding random things to NSObject for protocols that it does not conform to. That's actually worse, I'd argue, since you suddenly have -[UIColor map:]. What does that do? Pass RGBA NSNumbers to the block and return a new color? Throw an exception? Silently disregard the message and return nil? At least this approach has type checking.

Just declare a normal function, which can correctly throw a compiler warning if you try to pass anything that does not conform to NSFastEnumeration to it.

natesm··on Show HN: Underscore.js for Objective-C
What's the advantage of implementing map/filter as property accessors of a wrapper object instead of just doing:

    NSArray* map(id<NSFastEnumeration> enumerable, id(^)(id object) block);
?

Obviously, you'd still want to have a prefix of some sort for namespacing.

natesm··on Show HN: Underscore.js for Objective-C
Objective-C is a superset of C, functions can be just that - a function. Especially for higher-order functions like map and filter. Not everything needs to be glued to an object.
natesm··on Parse launches JavaScript SDK: Parse for Websites
It would probably work pretty well for a game based around creating and sharing levels.
natesm··on Clang 3.1 released today
When will this be usable (ie not earn you an App Store rejection)?
natesm··on NSRails - Rails + Objective C Framework
The names of all of your classes and messages can be found with `strings` anyways, if they did want to reject based on those.
natesm··on The security hole in sudo
I agree that removing implicit fallthrough is good, since it's a 90%/10% feature, but my problem is that the "break;" is meaningless extra syntax, since the lack of it generates a compiler error.

C# already implies no implicit fallthrough, so there's no need to explicitly state that you're not falling through. A better solution (for every language, really) would be a "fallthrough;" statement or "goto case x;", which C# does get right.

natesm··on The security hole in sudo
C# doesn't have fallthrough at all, but it won't compile without "break;". I'm really not sure what they were going for there.
natesm··on Subpixel vs. Greyscale Antialiasing
By the way, Mac OS seems to turn of subpixel AA on a lot of external monitors (it did it for me on a Dell Ultrasharp), making text look really bad.

    defaults -currentHost write -globalDomain AppleFontSmoothing -int 2
To fix it.
natesm··on Github's modifications to Twitter's TwUI pulled into master
It means that they're just an empty view. No implicit subviews with bizarre undefined behavior (no titleLabel, backgroundColor actually works).
natesm··on In war for talent, 'brogrammers' will be losers
> "Wanna bro down and crush some code?"

What? Who would say that, ever?

> San Francisco-based Klout

Oh. Carry on then.

"Brogrammers" are pretty hilarious though. I mean, aside from the utility of being a "warning, we're a company of homophobes and sexists" alert, I think that it started as a joke? Then, there were people that didn't realize it was a joke and started actually using it. I think that's pretty funny.

natesm··on Spry: Obnoxiously Easy iOS Development With RubyMotion
It's debatable that it even saves keystrokes. Xcode's autocompletion is very good, assuming it's actually working at the time.
natesm··on Demo of how to debug code inside a mobile webview
That won't compile under ARC unless you declare +_enableRemoteInspector somewhere:

    objc_msgSend(NSClassFromString(@"UIWebView"), @selector(_enableRemoteInspector));
natesm··on Why RubyMotion Is Better Than Objective-C
Also, the || operator can be written ?: in Objective-C.
natesm··on Why RubyMotion Is Better Than Objective-C
Is it true that those are only available in 10.8? It thought they just compiled to +[NSArray arrayWithObjects:count] calls, which would work anywhere.
natesm··on Why RubyMotion Is Better Than Objective-C
> Why do I have to have huge statements like this?

Uh, because you're declaring six static color variables. Also, they could be collapsed into one line.

> Introspection is unavailable at runtime

Not sure what this means. Everything is introspectable in Objective-C. #import <objc/runtime.h>

The cell dequeueing comparison uses a one liner for Ruby and an if statement for Obj-C. That's not a fair comparison. "dequeue ?: allocate" would be fair.

> dequeueReusableCellWithIdentifier, ugh.

What is wrong with this?

• I am dequeueing something from the receiver.

• It is a reusable cell.

• The first (and only) argument is the identifier for the cell.

What would be a better name, without losing the descriptiveness?

> Without tab completion, you do a lot of copying and pasting from the documentation when you find a method name you like, just to ensure you don’t accidentally typo it.

This is a huge problem, not a minor thing! The whole point of those "long" message (not method, btw, but that's minor) names is that you don't have to read documentation. If you want to append a format to a string, but don't know the name, just start typing "stringby" and the names are the documentation.

natesm··on Facebook Is Urging Members to Add Organ Donor Status
This isn't private medical information. Every single bouncer that I've encountered knows that I'm an organ donor.
natesm··on Parents: Read the damn box
Good reply to the original comment:

> Do you have a big sign on your head that says "CONTAINS BIGOTRY. DO NOT APPROACH THIS PERSON IF BIGOTRY OFFENDS YOU."?

natesm··on Reclaiming your commute
Articles like this are a major reason why I decided to move to New York. Commuting? Sure, but it's also free exercise!
← PreviousPage 2 of 8Next →