HNHacker News
TopNewBestAskShowJobs

iam

206 karma · joined January 15, 2011

submissionscomments
iam··on 14 Year Old Call of Duty Hacker Hired by Microsoft
Hired a phisher? Thought they were hiring someone who was making wallhacks or aimbots or anything like that. That would've made much more sense. Put a guy like that into security!
iam··on Author of LuaJIT explains why compilers can't beat hand-coded assembly
That's definitely the problem, compiler optimizations are easily O(N^2) on the # of operations in a function, so rather than taking forever to compile they'll turn off optimization if it takes too long.

Ask yourself, do you even need a function that large? You might already be approaching the limits of the L1 cache, at which point you might as well be using separate functions since the call itself will be negligible to the cache miss.

iam··on Why Google's hiring process is broken
I submitted my resume to Google and filled out their top X language survey, but never even so much got back an email from them after waiting for over a month.

Oh well, there's plenty of other companies who were happy to talk to me.

iam··on Rumor: Microsoft To Buy Nokia For $30 Billion
But will they have enough money to buy a mobile network after all this is said and done? Would be pretty interesting to see them buy someone like Sprint.
iam··on The McGurk Effect - An Illusion you will never overcome.
Looks like he's biting his lip in the left video, but not in the right video. I thought it was supposed to be identical except for contrast?
iam··on Mark Mitchell says "Using C++ in GCC is OK"
Feeling the pressure from LLVM? It's programmed almost entirely in C++.
iam··on Machine code monkey patching
Monkey patching is pretty common for when you want to override or get on-change notifications for interfaces that don't support it.

For example, have header files for functions? Want to know when they're called? Monkey patch it in!

Also, from what I've heard monkey patching a function is calling adding a detour, and monkey patching a virtual function is called hooking. "Monkey patching" usually refers to injecting code into dynamic languages, not into compiled languages.

iam··on What Every C Programmer Should Know About Undefined Behavior #2/3
Precisely. This optimization is possible because according to ANSI C, a variable is allowed to point to an address anywhere within an object, or at most one (sizeof) past an object. Anything else is undefined behavior (what they refer to as as "illegal pointer" in the post).

Therefore, buffer through buffer+1 would be valid pointers, but unless they can prove that i-128 is <=1 they can safely assume that the final pointer can be more than 1 past the buffer.

If it was just a pointer (not an array) they could do the same analysis if the pointer was mallocced right then in the same function with a constant size. More likely though, the pointer would be a function argument and then they would not know where the object boundaries were without doing interprocedural analysis (which I assume is outside of the scope of this post) and some other additional propagation (so technically within the C99 spec, but I doubt you would see an optimization that actually would do that).

iam··on Netflix Co-Founder: It isn't lying if you believe it
Sounds like he not only predicted the stock price, but shot well past it!
iam··on Joel Spolsky: Lunch
I interpreted that as the new people don't need to sit by themselves in the corner since they would get invited to lunch from day 1.

It could definitely get lonely if a new person starts and they don't develop a regular lunch routine with a group when they are used to it (from their previous job?).

People who actually prefer to sit alone and aren't making this up should be able to sit alone (or do their own thing).

iam··on Why I, Jeff Bezos, Keep Spending Billions On Amazon R&D
If only thrift had some sort of signal/event support :(.
iam··on Netflix Is Killing BitTorrent in The US
Netflix has a long way to go before their quality is even as good as the "HD" channels on a Cable network.
iam··on Morph C++ into Javascript
Good luck, last time I tried nested lambdas in VC10 they weren't able to capture local variables from any context except the immediate outer context.

This makes doing something like e.g. map(map(...)) extremely annoying.

Javascript (nor does, really, any other proper closure implementation) has no such issues.

iam··on The Ideal Interviewer
Right, as you said the technical question is unnecessary if they've already looked at the code. Which would be pretty hard unless the candidate kept his/her code up somewhere (linked from the resume) or had former coworkers essentially vouch for his/her code quality.

And even if the candidate does have the code up, not all interviewers would bother spending the time to look at it. At the end of the day I think it is based off some kind of reputation on whether or not people believe in the technical chops enough to skip asking the candidate the question.

And it's really hard to draw the line between belief and sloppy interviewing where they simply forget to ask.

I wonder, in your cases where you experienced the ideal interview, which factors do you think contributed to it?

iam··on The Ideal Interviewer
Lets look at the "Ideal interview" examples, it doesn't look like any of those involved asking technical questions (e.g. coding on the whiteboard)?

The trouble is that unless someone is highly referred from a technical coworker you trust, it's going to be hard to know in advance if you have the technical chops or not.

Anyone can write down on their resume they've done A, B, C and are well-versed in X, Y, Z. They might even be able to talk the talk. But when it comes to writing code they might completely freeze or write something that would make college students blush.

Finally, the time is limited (could be 45 mins, could be 1 hour) during the interview, and the most important thing in most peoples minds is technical chops. That's why I'll usually start out with that (unless the candidate was referred or seems highly qualified, in which case I'll merely get into that later), since it could just weed out the candidate before getting very far.

With your regard of "Convince me why I want to work at your company," I think that only happens once a candidate has proven to be worthy. At least in my last company we would be in "sell" or "buy" mode for a candidate (sell meaning we try to convince him/her to join, buy meaning we try to convince ourselves if he/she should join) and it would start out in buy mode.

There's nothing worse than interviewing and hiring a candidate with a great personality than just finding out he/she couldn't code their way out of a paper bag. That being said, I do dislike interviews where they spend the entire time just asking technical questions as it should be obvious after one or two, so a particular balance needs to be sought.

iam··on Dropbox Encryption with TrueCrypt
I don't profess to know much about security, but unless TrueCrypt does block-level encryption, AND dropbox does block-level syncing, wouldn't this scheme work out really poorly for storing large TrueCrypt volumes?
iam··on If average salaries are 80-100k why does everyone keep getting 40-60k offers?
This is gold, I wish I read this before my last interview!
iam··on How I learned to stop worrying and write my own ORM
It's hard to foresee which parts of the framework will need optimizing, it's not like they go and build a website with stackoverflow level of performance requirements as part of the development process.
iam··on How I (almost) got an internship at Google
To be fair, binary search is pretty simple. It's not like he was asked to code max-flow (e.g. Ford-Fulkerson) off the top of his head.

The problem I'm sure, was being rusty at C, not the algorithm implementation. I make all kinds of silly mistakes on the whiteboard if it's with a language I haven't used for a while.

iam··on How I (almost) got an internship at Google
Google's loss is some other company's gain. Apply to places like Facebook or Microsoft or Amazon instead. Or in your case The New York Times.

Personally I was in between jobs recently, so I sent Google my resume using their online application site. After about a month, Google still didn't get back to me -- meanwhile I managed to interview at 6 different places (all the way) and found a new job.

"I heard nothing for a month and a half" is the key problem I think. It's going to be very hard for any full time employees that are any good to stay off the market that long, they'd have to apply to Google before quitting their last job.

As for interns, I am not overly surprised since you applied in December. At my school we had the hiring booms in October/November and then again in March/April (that's when we had the 2 engineering job fairs), so anytime between that people weren't really finding a new internship (unless it was on their own).

One last thing, what exactly is a Google spreadsheet beta candidate form? Is that the same one as the optional Google "survey" where you had to rank your skills (1-5 or 1-10 was it)?

iam··on Has C++ jumped the shark?
I believe this is called Identical COMDAT Folding in VC++
iam··on What is this all about? - Our website is officially launched.
I think they make different iPhone apps (like a Groups and Calendar management app), click through the links on top.

Wouldn't have guessed that from the blog post though.

iam··on Writing an LLVM Pass
I think this is actually really old, it's been around since the early LLVM versions.

Still, it's definitely the best way to get exposed to writing optimizations using LLVM. Writing optimization passes ends up being really self-contained too (just that one file/class, and it 'automatically' gets registered into the optimizer), so it might be just one of the better ways of learning LLVM overall.

iam··on Working at Microsoft – Day to Day Coding
Everyone certainly does not get their own office. The way it works is that people are given offices sorted by their seniority (years at Microsoft, not your pay grade). So it goes:

* 2 people in a non-windowed office

* 1 person in a non-windowed office

* 1 person in a windowed office

* 1 person in a corner windowed office.. etc

and people just starting out do end up getting paired up with someone else.

iam··on How to Land an Internship at a Top Tier Software Company
Spot on. Excellent advice for those who think they have what it takes, but aren't sure how to best express it. I think this advice applies to a full-time job as well (at least for the first few years).

And remember, once you have at least one internship under your belt the rest will be as easy as cutting a knife through butter.

iam··on Crunchies Winners: Twitter Takes Best Startup Of 2010
Kinect didn't win best device? How disappointing, since it was the only actually novel thing on there.
iam··on Feature branch code reviews
Reviewing code by writing your comments inline with the diffs is definitely the way to go. I'm averaging one code review a day (about 200+ lines of code) lately and it would take me several times longer if I had to do it in person or even without a good code review tool.

That being said, being on the same page as the rest of your coworkers for what constitutes correctly-styled code is invaluable.

iam··on Compiling to lambda-calculus: Turtles all the way down
I was confused a while till I saw you talking about Moses Schönfinkel. From everything I've seen people usually refer to those as SK combinators not SC combinators.
iam··on Compiling to lambda-calculus: Turtles all the way down
Nothing like posting a picture of the y-combinator on a ycombinator.com site :)
iam··on Programmers think differently than non-programmers
I'm not sure how I feel about the "killed or injured" bit under obsession.

Every couple of weeks, I get into the zone while driving my car. For this the situation needs to be just right, i.e. the road can't be empty, but it can't be full of cars either. Basically the ideal situation is that there's just enough cars that you can't stay in the same line while maintaining your preferred speed, but there's enough switching lanes is viable.

On those days I might get 'in the zone' and have intensely heightened situational awareness. I 'feel' the cars around me and can easily navigate the road like I was flowing through a river (aside: 'flow' is a synonym for 'zone').

Situational awareness is also a key trait in becoming proficient in an FPS. In fact, almost anytime a video gamer goes on a kill streak it's because they were able to tap into heightened situational awareness (e.g. you 'feel' your enemies, know where they're going to come from, so you take them out before they take you out). The only difference is that since it's front of a computer screen it's easy to be misled that you are ignoring everything.

You are just ignoring everything irrelevant.

← PreviousPage 5 of 5