HNHacker News
TopNewBestAskShowJobs

asarazan

259 karma · joined February 14, 2011

Mobile Engineer at Cue
submissionscomments
asarazan··on Show HN: Create slide presentations with your voice
Does this mean we have to get rid of Speechless at Google IO?
asarazan··on Show HN: VR-OS is a desktop operating system beyond the limits of your monitor
I'm really hoping somebody at Oculus/HTC/Microsoft sees this and wants to develop it, because I agree the hardware industry needs to step up its game to make this a reality.
asarazan··on Ask HN: Would You Hire an Udacity Nanodegree Graduated?
Android Lead from Capital One SF here. I did and it was one of the best hires I ever made. He's the most enthusiastic and motivated person on my entire team, and is also amazing at UI and performance optimization. I've been begging them to send me more candidates ever since.
asarazan··on Show HN: Ask for a Raise Day
Did this get killed? I can't find it on the list
asarazan··on Show HN: Does Facebook know your friends better than you do?
I failed pretty hard. 1/5
asarazan··on Open source style checker for Objective C
If "most cases" means the average small team (2-3 developers), then you probably have a point. Once you have more than that, I think it's absolutely necessary to enforce code style in this way.
asarazan··on How a bug in ported garbage-collected code trashed our iOS app
Thanks for reading the article so thoroughly.
asarazan··on How a bug in ported garbage-collected code trashed our iOS app
Yeah this is the general idea we went with. We did our best to synchronize around it, but unfortunately we can never have total control, which necessarily introduces race conditions.

I would imagine this is what leads to the 0.4% crash rate I mentioned at the top of the article :-(

asarazan··on How a bug in ported garbage-collected code trashed our iOS app
I was going for more of a sly joke with the title, but it appears to have not gone over well. I now regret my decision.
asarazan··on How a bug in ported garbage-collected code trashed our iOS app
I agree. Would be nice to stop having to worry about this crap at every turn when developing on iOS.
asarazan··on How a bug in ported garbage-collected code trashed our iOS app
We do this for various other reasons (clearing possibly corrupted state, etc), but we've never uploaded the statistics to the servers. We may begin doing this in the future.
asarazan··on How a bug in ported garbage-collected code trashed our iOS app
We've been using Crittercism in the past and recently switched to Crashlytics, unfortunately memory crashes are one of the few exceptions (hah) to the rule, as they are SIGKILLs from the OS.

Another commenter recommended touching a file at launch and at sleep to track untraceable crashes, which we do for various other reasons, but don't upload the stats. We may begin doing this.

asarazan··on How a bug in ported garbage-collected code trashed our iOS app
I won't argue too strongly on this, as you're far more knowledgable about it than I am.

However, imo the intention and semantics behind a call like CFMakeCollectable implies a transfer of ownership to an external system. A newbie Apple coder could be forgiven for thinking it would still transfer ownership in RC environments, just to the autorelease pool instead of a collector. In all likelihood this is what happened. An intern got at the code and didn't know the details about GC.

Obviously the point stands that this interpretation is well-documented to be false, but its naming is definitely misleading.

Double edit: I see from your edit that some of my basic assumptions about CFMakeCollectable were wrong, having never actually worked with it. My bad.

asarazan··on How a bug in ported garbage-collected code trashed our iOS app
I would disagree pretty strongly with that. The function CFMakeCollectable is explicitly a function for dealing with the garbage collector, and its unpredictability in non-garbage-collected code is the direct cause of the bug.

Doesn't it make sense to say that without the existence of Apple GC, the bug never would have existed? Doesn't that at least somewhat justify the title?

edit: Furthermore the original intent of including garbage collection in the title was as an ironic twist based on the fact that ios has never had garbage collection. Maybe that didn't convey as well as I would have liked.

asarazan··on How a bug in ported garbage-collected code trashed our iOS app
I should clarify. iOS does not have garbage collection and has never had garbage collection. The root of this bug is in old legacy cruft from the garbage collected days of OSX. The code is dormant in a lot of old CoreFoundation classes, and still causes unexpected behavior from time to time.
asarazan··on How a bug in ported garbage-collected code trashed our iOS app
I should note that, while we saw something like 0.4% increased crash rate, we actually don't have a number to compare it against for memory crashes.

This is because if memory usage gets too high, the OS will send a kill signal to the process, which can be neither detected nor caught.

This means that in our original decision to use this fix, all we had was anecdotal evidence of untraceable crashes. Luckily we had dedicated QA that was keeping pretty solid track of them all, and they piled up.

In our case I think it was worth it.

asarazan··on The Open Source Report Card: Dynamic progress reports for Github developers
Worked quite well for me, then started 404'ing. Load issues I presume.

Either way bravo, great idea.

asarazan··on TheKitchenSync - A Tool Belt for iOS Concurrency
I've been thinking about this since yesterday, and it seems like a really good solution for some use cases, but isn't there quite a bit of overhead to using a dispatche queue for fine-grained operations? I mean it seems like the overhead of cross-thread communication would severely outweigh a simple synchronous lock call.

Then again, if you can do things like background non-essential operations, then the higher-level benefits can probably outweigh that.

asarazan··on TheKitchenSync - A Tool Belt for iOS Concurrency
Hah, good catch! Fixing.
asarazan··on TheKitchenSync - A Tool Belt for iOS Concurrency
That would certainly be an interesting project, although the performance implications on a mobile platform may be an issue (although that's becoming more moot with each generation).

In this case, however, our goal was to take common, familiar interfaces and idioms in Objective C, and make them safer/more powerful.

Something more like channels-like would be quite useful, but it would likely be published under a different project.

asarazan··on TheKitchenSync - A Tool Belt for iOS Concurrency
Fascinating. I'll have to give that a shot. Thanks!
asarazan··on TheKitchenSync - A Tool Belt for iOS Concurrency
As opposed to using a simple or recursive mutex while forgoing concurrent reads, in this case. There was an order of magnitude speed difference in raw lock/unlock performance.

Obviously this can still be useful in read-heavy systems where the lock has to be held for long spans, but for our synchronized collections, we switched to std::mutex, which was massively faster.

asarazan··on TheKitchenSync - A Tool Belt for iOS Concurrency
As a small post-mortem, one interesting thing we learned while building this library: The reason Apple never included a read/write lock.

They're hard to get right (probably not a problem for Apple), and their overhead usually counterbalances any potential performance gains (possibly a problem for the unwary developer).

We've got some optimization work to do :-)

asarazan··on Google Nexus 4 goes on sale in US/Canada
My fiance and I had to tag team the site to finally get an 8GB after the 16GBs ran out. Got a confirmation number and receipt, but haven't received the confirmation email yet.

It's like trying to get a bag o crap, but with a phone!(tm)

asarazan··on How not to launch your company
I'm a big fan of Minefold.

Also, being no stranger to... "problematic" launches, I can totally sympathize here.

Can't wait to see what you guys have in store with the new update, and as long as Cook or Schiller doesn't suddenly kick the bucket, I think you'll be fine with this one :-)

asarazan··on Automatically Check In To (get an awesome seat on) Your Next Southwest Flight
Will this check in both people travelling under the same confirmation number?
asarazan··on The Apple Reaper
Square employs a significant number of ex-Apple guys. That might have something to do with it :-)
asarazan··on PayPal CEO writes personal response
I think you're both underestimating how long it takes to really get settled in and take charge of a huge corporation, as well as overestimating just how long 5 months really is.

Seems like about the right amount of time for him to start really kicking things into high gear imo.

asarazan··on Why I don’t use Google+ (as a woman)
Thank you!

The fact that this "Look I'm a woman" and "Stuck up bitch" crap has been sitting here not getting downvoted (and even getting upvoted evidently), is a glaring indictment of the HN community overall. This is the kind of malicious shit people value, I guess.

asarazan··on Why I don’t use Google+ (as a woman)
I think it's just a difference in the way the two companies do "public".

Because Facebook hates Google, you're far less likely to see public posts turn up in Google results.

Google, on the other hand, created their network for the sole purpose of bolstering their search results. This leads to a much more adversarial relationship with the service, where you have to constantly fight to keep yourself out of the spotlight.

Page 1 of 2Next →