uhno's comments

uhno | 11 years ago | on: Nim (formerly Nimrod) 0.10.2 released

For simple cases (such as the example in the GP comment) a compiler can easily infer those annotations. Complications are introduced in languages which allow aliasing. Precise alias analysis has been shown to be NP-hard [1] (as are many other compiler problems), and thus in general compilers must make very pessimistic assumptions to avoid making incorrect optimizations, such as allowing two functions to execute in parallel.

Other issues crop up due to the open-world assumption. This is especially true in the presence of separate compilation when trying to reason about global behavior. Example: does function f() in file f.c modify global variable g in file g.c? The compiler may not be able to prove that one way or another at compile-time (consider if file f.c was already compiled to object code f.o, and only g.c was being recompiled), and so it must assume that f() may modify g. This particular example can be solved with link-time optimization, but you get the idea of how complicated the real world can get.

[1] Horwitz, "Precise flow-insensitive may-alias analysis is NP-hard," TOPLAS 1997.

uhno | 12 years ago | on: Recruitment Process for a Google Site Reliability Engineer

>It's not the 70's any more, people rarely solve problems on whiteboards and paper. They solve them on the computer, sometimes through knowledge and their skill-set and other times through luck and Googling.

This isn't universally true. Anecdotally, I often find I'm much better able to think through tough problems if I step away from the keyboard and spend some time sketching out ideas on paper or on a whiteboard. I also keep the on-paper results in a notebook, which is occasionally useful to refer back to later in a project.

Sometimes just introducing some distance between you and the problem is enough to give you a key insight. That said, the interview environment is still nothing like this. There, you're under great pressure on the whiteboard, something which is probably not true in your day-to-day.

uhno | 12 years ago | on: Very funny, gdb. Ve-ery funny

Another userspace tool for process checkpointing is DMTCP: http://dmtcp.sourceforge.net/. From the About page:

"DMTCP (Distributed MultiThreaded Checkpointing) is a tool to transparently checkpoint the state of multiple simultaneous applications, including multi-threaded and distributed applications. It operates directly on the user binary executable, without any Linux kernel modules or other kernel modifications."

uhno | 12 years ago | on: In Defense of Starbucks Squatters

I don't have any strong feelings for or against coffee shop campers, but this article came across as quite self-centered. Perhaps a different approach would be more effective in changing people's opinions.

The argument against campers: "Starbucks and other coffee-shop campers just buy one cheap coffee and then take up a table for hours. We drive up the cost of coffee and inconvenience everybody else. We play loud videos and run our power cords across the floor, creating a safety hazard."

His argument for campers (in my own words): I'm an intellectual/creative person; I need to work in a coffee shop because research has shown it to increase creativity and output; I need to resist the brainwashed masses and their preconceived notions of acceptable coffee shop behavior.

Notice a theme? It's all about him, whereas the argument against campers is about everyone else. He even complains about being expected to clean up after himself (bus his own table). Shouldn't people be expected to act responsibly and clean up after themselves in a public place?

He does attempt to give an economic argument (i.e. coffee shops make more money from campers versus if they were to be banned). However, this is pure speculation on his part, and I suspect he is simply stating what he wants to believe is the truth. For example:

"I'm quite certain that if camping were banned at that store, the place would be deserted and it would make far less money. In fact, there would be no reason at all to even stay open until midnight. A huge percentage of its revenue comes from student squatters."

He has no way of knowing this, offers no supporting evidence beyond speculation, and simply states it as fact because it supports his view.

uhno | 12 years ago | on: Welcome, Freshmen. You Don't Deserve to Be Here

Boy. This is not at all the truth. Anecdotally, what I've discovered from a year at MIT is that the norm is feeling like you don't belong (e.g. here is some previous discussion about it https://news.ycombinator.com/item?id=4890267).

Saying "understand that you are here through very little of your own merit" is a recipe for causing already overly stressed students to do something rash, like jumping out of a building: http://web.mit.edu/~sdavies/www/mit-suicides/ (this list isn't even up to date).

Motivating people to work hard to feel like they've earned their place is a completely different thing than reinforcing the doubts and insecurities almost all of them have anyway.

The pressure at this place (and it's the same at any top-tier place) has been almost too much for me to handle sometimes, and that's without foolish words from foolish people designed to increase it.

uhno | 12 years ago | on: Node OS

I am confused. In what sense of the phrase is this an operating system?

It says things like "Node is the primary runtime---no bash here" which to me betrays a misunderstanding of programming and operating systems on multiple levels. Bash is not a "runtime" or part of the operating system, it's a simple user-level program for managing jobs and navigating your filesystem.

The diagram of "where Node OS lives" points to a layer between kernel and userlevel called "root". What exactly does this mean? Root is a privileged user, not a layer.

Finally, "The primary goal of NodeOS is to provide a working package manager." That is unequivocally not what an operating system is.

If it's a package manager written in Node.js -- fine. If it's a shell written in Node.js -- fine. But from what I can tell, "Node OS" seems to be a misnomer.

page 1