skysight-inc/HackerNews huggingface dataset:
That implies that you're interviewing for a position that requires Unix sysadmin tasks. Without knowing anything about your interviewee, he might've grown up programming only in Eclipse/Visual Studio/XCode/etc., and might not even be aware of the Unix tool suite. In this case, I wouldn't find it surprising that he uses the tools that he knows.
My favorite way to learn a new topic (which consistently works well for me) is to read several books about the same topic back to back.

I find that if I read three books by different authors on let's say React for example, which are all meant to cover the basics, I learn much more than by reading one book three times. The difference in the authors voices and inevitable variability of emphasis and style throughout, really helps me stay engaged and pick up the things I might have missed in the last book.

I'll usually do this first, then move on to tutorials and deep dive type books which are mostly a breeze by the time I get to them because of the very solid fundamental foundation provided by the initial book set.
I prefer Perl over Awk.
Even assuming that working a low-paying job is worse than not working at all, it doesn't mean that low-paying jobs should be illegal. Adding more options doesn't generally make things worse. Maybe for some people having a low-paying job is better than not having a job at all.
Sure; the thing I want from Nintendo is mostly 1. build quality and 2. the assurance of the games and emulators being tweaked to run at 100% speed + 100% fidelity, 100% of the time, on the system.

A random collection of parts can be made to run a random collection of games at "decent" fidelity+speed, but you get much better results by cloning the output of a megacorp's QA pipeline.

I'd much rather give Nintendo my money for the work they did designing the system, if they'll let me. But if they won't, their design will still likely be better, such that the best third-party device to get will be the one that most closely rips it off.
Yep, a United Club agent is where I got the idea originally.
I feel like that is different though. In-fact, that transition increased innovation capability in my view as someone who wrote some of the largest reaching on-campus applications at CMU during my time there.

Andrew was pretty dated and virtually everyone I knew was already forwarding their emails through their Gmail anyways. Transitioning to Google Apps was basically cutting out the middle-man while adding on some interesting functionality.

1. Now everyone also had a better calendar system and file sharing with Google Drive within the CMU namespace. This meant that clubs, for example, could create Google Forms that were restricted to actual CMU students with CMU email addresses, and they could use that guarantee to do more interesting things like adding information from the Directory on top of those emails without having to ask for it (such as Major and School).

2. We also got a way to allow people to use their Andrew logins on any student-made website with simple OAuth2 that restricted to using the @andrew.cmu.edu emails on Google Accounts. Before this, apps like ScheduleMan and the StuGov apps (which I developed on when I was there) had to get special permission to use Shibboleth and there were a bunch of restrictions for having those certs including having to run on CMU infrastructure.

Now, any student can create applications with the same login guarantees of only being accessed by CMU students and allow for one-click login and registration (since most relevant information can be obtained by looking up their email in the Directory), vastly increasing the usability of these apps.

In my view, that transition was definitely a net-positive to the CMU ecosystem, in both usability and development.
Ask HN: Best use of $100 AWS Credits expiring in a few days?
With their IPv4 /8 they had 2^24 IPv4 addresses to work with, or, from a network perspective, 2^16 /24 (65K) networks, each network containing no more than 254 hosts.

If they had requested a boring /48 IPv6 allocation (that anybody can have just by asking) - they would have had 2^16 /64 networks, and each network could have had basically an infinite number of hosts.

But, this is the IPv6 world, so I would have expected MIT to claim they were a LIR (Local Internet Registry - equivalent of a small ISP or larger) - and asked for a /32 - which would have given them 2^32 networks - or 4 Billion networks to work with. They probably would have assigned the networks by segmenting them on a per site basis - so each site would have had a /48 assigned, so they could have up to 65K sites, each site having 65K networks, each network having (effectively) infinite number of hosts. That is, a /32 would have been far, far, far larger than their /8 was. Easier to manage as well (no VLSM - nothing ever smaller than a /64) And, keep in mind, with a single, no contest request, they could have gotten the /32 adjacent to theirs (another 4 Billion networks, or 65K /48s) so they could aggregate on a /31.

Instead, they've asked for a /24. And I'm just darn intrigued as to why they think they can make use of such an address space. If they weren't constrained with their /8, then a /32 would have been far more than they ever required. (And odds are a /48 would have been sufficient with even modest address management).

I mean, I work with really large mesh networks, millions of nodes, some of our subnets have 20K nodes each on them - we roll out /48s like they are nothing, and even after deploying a couple hundred customers over 10 years, and 25 million nodes, I think we've used up maybe 1500 /48s.

BTW - this doesn't even take into account that they can use RFC 4193 up the wazoo for all sorts of interesting non-globally routable experimental internal networks.

I"m just hoping someone from MIT is reading HN and will clue us in.
Ok, but where is the "redo" option?
I ask candidates to sketch an API (program, not REST, i.e. an outline of classes, functions and module structure) for a problem similar to those we solve, but smaller in scope.

I also ask about things like test coverage and programming paradigms they have an affinity for. Some things I look for that can be negative signals are:

* Propensity to choose classes and OO programming in a domain it isn't really suited for, or functional/procedural programming where OO might fit better

* Propensity to build for what might be rather than what is (e.g. always have an abstract class even if only one concrete class is necessary)

* Propensity to maximize test coverage (e.g. splitting the logic of functions into smaller ones just to generate test cases, even when those smaller functions are only called at one location) rather than to design for a solution
Thanks! It is a good example)
Gotcha. Thankyou
No, this is not a good way to think about relativity and its implications.

When we talk about time in the sense of things happening "now" or "in the past" or "after", we have to think about reference frame, _not_ location. Reference frames are inherently global, as opposed to an "event", which encodes both location and time relative to all possible inertial reference frames.

The typical metaphor is imagine that you infiltrate space with a three-dimensional grid of clocks that are kept a fixed distance from each other (say by a rigid rod). Those clocks are not moving relative to each other, and it is trivial to synchronize them, because the distance between them is fixed -- fire a light pulse to your neighbor with the current time, and you neighbor will know when you sent the symbol by subtracting off the time it takes light to travel the distance. This grid, that covers all of space, represents a single reference frame.

So if Betelgeuse had in fact exploded six hundred years ago, then the clock grid in Earth's inertial frame would have recorded the event of the Battle of Orewin Bridge on Earth at the same time as the event of the beginning of the Betelgeusian supernova in the Betelgeuse system.

The complexity of this comes in the fact that the inertial frame travelling towards Betelgeuse from Earth at some significant fraction of the speed of light would, with its clock grid, measured Orewin Bridge well before the supernova's start. That's independent of the amount of time it would take for those two clocks to communicate with each other -- we can almost imagine a scientist who finally downloads the logs for all the clocks in a given reference frame collating the data.

What we _can_ say, though, is that once the event of someone on Earth seeing the supernova occurs, then that event is strictly _after_ the supernova -- no inertial reference frame will ever see that event, "observation of supernova", occur before the "initiation of supernova".
Done (#680).
For my own use. In case I want to apply for a new job, I'll try to avoid white boarding stuff.
please:

alias hnquote='pbpaste | fold -s -w 77 | sed "s/^/ /" | pbcopy'

Then your quote will be

Don’t waste time showing [prospects] the step-by-step process of doing
something. Create a vision of what benefit they can get by using your
product. Then demonstrate how they achieve that benefit. Only if they ask
for more should you get into the “step-by-step” process of how to set things
up.
> Tablets, OTOH, have been becoming obsolete within a year or so of use and don't seem to have much value after that.

Huh? A persistent problem of all tablet manufacturers was that tablets change so little over the years, that people are perfectly content with continuing to use their 4-year-old iPad.
What really sucks is that the 3DS special editions I loved were JP only, such as the Pikachu ones and the Eevee one. Granted, I didn't totally love the Eevee one. My favorite is that the R/B 20th anniversary editions are only $300 on Amazon. And here's probably the coolest one for an easy $340 [0]. Sucks to be a Pokemon fan.

[0] https://www.amazon.com/Nintendo-New-3DS-Solgaleo-Lunala-Blac...
Shutting off redisplay was not an uncommon technique on the Alto (the first time I saw it I was somewhat disconcerted, and though the machine had crashed as that wasn't all that uncommon in those days).

The key, if you read Thacker's original design paper, is that screen refresh rate was 2/3 of the bus bandwidth. This was considered absurd: why so much resource devoted to I/O (many machines in those days still had channel controllers, a design which has implicitly returned).

These old tidbits are fun because they make you think about different design tradeoffs. I love the line in K&R (IIRC -- is it still in there?) where they explain that the standard library is required (and say, including the quotes "you mean I have to call a function to do I/O?"). And the implicit defense in the 801 paper (the original RISC paper) that yes, the compiler really could do a good job.
Are there actually experienced developers who still overengineer? I always thought of that as something that happens from the lack of experience. Straight from university developers, or people who never worked with a team before tend to do that, but I can't see how you will hold off this attitude after a bit of experience. And unless you're letting an inexperienced developer lead your team I can't see the problem. As long as the team leader eventually communicates and pushes an overengineer in the right direction (make it work > make it simple > make it generic), is this really a problem?
But do you really want to spend your precious time talking to people who can't get something as simple as a job req right?

If they can't communicate coherently at that stage in the process (and/or just as likely, don't really know what they went from the person they're hiring) then they're probably confused and/or uncommunicative about a whole lot of other things internally, is my general take.
Some people have strong opinions about media ownership and DRM. For that set of people, what I mentioned is just that: a caveat.
You can let them decide? Then follow agile principles to make sure they are delivering prototypes/features.

Ideally you would get a grasp of what they need to do and some idea on how they need to do it. If you don't then you should hire someone that does, or who you can feel almost absolute confidence in. Then let them do the hiring.

Just my two cents.
Seconded - very well written, funny and easy to follow along.
I think people are uncomfortable with the idea of Google controlling every aspect of your website down to the presentation. It'd be better for this to be centralized and standardized independently of Google's tendrils.

Part of what makes AMP fast is the preloading, so any AMP competitor would need to tackle that problem. You'd also need to demonstrate that websites rank better if they use your solution. And they should, if Google plays fair. If not, then at least this would be a public demo of that fact.
Am I the only one sitting here thinking that maybe one of the qualifications for the position should be someone with some domain knowledge or experience? Yeah, that's probably hard to come by, but this doesn't sound like the author's even trying.

Despite all the public hand-wringing, Uber's problem isn't all the bad press. The problem is that it's an immature business that hasn't figured out how to make money yet. It doesn't matter how progressive the captain is or how happy the crew is or how much fanfare the trip gets if they still steer the ship into an iceberg.

Maybe the theory is that the head of a company that big doesn't really need to know the problem domain, just be a "good manager"? That's hard for me to believe; it certainly hasn't been true at any scale I have experience with.
Lots of state and city jurisdictions in the U.S., for example.
and this may be even more problematic that it appears.

the ones from category one might have difficulty knowing what to do - unless we're talking about the lyft CEO they know success from something other than uber. that might not necessarily be good.

the ones from category two might have the same trouble as one, but add to that that they will have to compete/convince the board of probably every little move.

and if they don't do something fairly dramatic, fairly quickly, the good people at the mid and lower levels will start to flee for greener pastures.
From the article:

NAT deployment doesn't benefit the Institute in any way,...

I have often had changes foisted upon me that when I looked at them I could see no benefit. In every instance the 'benefit' I didn't see was one that I typically didn't approve of and so hadn't listed in my set of 'possible benefits'.

From reading the article though it sounds like MIT has had a very open and loosely (if at all) documented set of features around network access. And in today's world network access is many things more than it was 10 years ago. But perhaps the process of going through and documenting all of the things they do was 'too expensive' compared to setting it up the way the institution wanted it to work and then dealing with any fallout as it arose.

Another in a series of signs that the Internet is moving from science project to critical infrastructure.
You're assuming this person has in-depth knowledge of shell commands. If that's what you're testing for then fine, but I wouldn't say it's a good measure of over-engineering. They might have tons of python experience on Windows and haven't used grep in years, so that 100 line Python script might be the most efficient solution they can think of.

Also, any interview where I'm expected to have memorized obscure shell flags and one-liners with no access to so much as a man page can go fuck itself. That's just an IT/DevOps spelling bee.
I often check in my bag anyway if I have a long flight and a layover long enough that I can have lunch at my connection airport. I only bring a light backpack that can fit under the seat in front of me.
> How do you suggest to make up the gap?

How about first reducing the gap by reducing taxation of labor income, including employer-side payroll taxes (which both reduces the nominal wage necessary for livable income and makes it less expensive for employees to hire workers at any given nominal wage.)
Interesting, I hope that the archives end up available to the public. It'd be really neat to build some kind of functional emulator like the visual 6502 to play around in. Do it on a block level for the CPU so you can examine the state as things happen.
> I almost always only learn things that I can immediately apply afterwards, because otherwise I find I don't retain enough useful knowledge that I have to go through the same learning resources again by the time I need the knowledge.

This. A friend of mine (senior sysadmin on a different team) has ranted about how his boss put tasks like "Learn Docker" in his list of goals for the year. First, such a task is hilariously underdefined. Second, if you're not going to apply the knowledge, it will be forgotten within a few weeks, and time spent studying it will be wasted.
1 megaton? Even the largest LNG tankers can hold only 67 kilotons, so even if you had a perfect stoichiometric mixture somehow and detonated all of it at one you'd get maybe a 130 kiloton explosion.
I have seen experienced developers that overengineer. It's hard to definitively know why, but I suspect sometimes it's so they can get some new "thing" on their resume or added to the approved toolbox for their team.
>I don't care how esteemed someone is in their industry, if they have to completely destroy their life to get there I question their judgement and don't want their advice.

Well, the best way to negate that advice is to put out your own and show that someone can achieve the same with a much lesser workload. Any other argument is simply an opinion. I certainly don't want to work 80 hours a week, even if I know that I can get a lot more done in that time. However, depending on what it is you're trying to do, putting in 80 hour weeks might be perfectly appropriate. If you want to be simply the best in the world in anything, you simply have to put in a LOT of work. I'm not saying its 80 hours or 56 hours, but yeah, if being average or good-enough is OK, then work-life balance is very achievable.
Ask them to make some simple yet non-trivial feature, like a contact form on a web page.

The overengineer will introduce a build system, several functional programming utilities, an HTTP client wrapper library, a DOM abstraction library, and maybe a full blown framework.

The competent developer will write a <form> element with inputs.
I am really glad to know you appreciated it. I updated the post and also made some other little improvements based on other feedback!

Cheers
If its really about helping you with the command line then use fish.

If you need to automate something use your favorite programming language.
$ perl -wle "print 'hello world'"
DEFCON 25: Breaking Bitcoin Hardware Wallets
Good thing I don't write code for a living.
Actually, the question is related to employee, not a candidate:) He is working with us quite for a long time, and he writes really good code.
But he can't make simple solutions, only the hardest way to solve a problem. And because of it, we can't plan work and estimate tasks.
Does Orbit do anything to protect contractors from bad code bases?

One benefit of contracting through a company is a long due diligence process before starting. This is helpful to set realistic expectations. Is there any process at Orbit for something similar, or is it Grindr for devs and work?
It's not just about being able to keep that up, either - it's less efficient to work 80 hours consistently and you end up with a large number of hours worked that you get a negative return on because they contribute to burnout without increasing the amount of work you get done by much at all.
Pardon my ignorance, but does the Alto multi-task between user programs? If the answer to that question is affirmative, how does the machine cope with simultaneously running two programs that load different custom microcode? Does it load and unload and reload at every context switch? Or does it simply not multi-task?
Bug: Create snake of length two. Move RIGHT. Quickly press UP LEFT in quick succession. Lose.

Similar bug with RIGHT->DOWN->LEFT

And so on for all the other initial directions.
I attended a two day Elm workshop a while back. There is a lot there to love, I just think it's Haskell inspired syntax is a major impediment to it's mainstream adoption. I however would love to be proven wrong as the webs reliability would be so remarkably improved.
You don't pay until you win the big, just like business class seat auctions.
~~consumers~~ (nay, citizens) prefer to have no ads or subscription costs etc.

The fact is: ad-based model just puts the burden on those most susceptible to advertising. It's similar enough to funding schools through state lotteries in that the money comes from somewhere or the results go underfunded, and if you accept state-run lotteries or anything that looks even slightly like today's ad-based internet, you are talking about a funding source that is deeply and fundamentally unethical.
Don't agree with the approach because using a proven solution can be superior and net a simpler code base than rolling your own.

Fyi, by using webpack, couple loaders, babel, etc I net 100s of dependencies just for the build. Ymmv.
Not yet, but I'd love to see it.

Having moved to Texas recently, I was really impressed by the electricity set up.

There's one company which, I assume, is granted a local monopoly on power distribution (Oncor for my area, IIRC), and they handle the actual lines to the buildings/meters etc. I've never had to deal with them directly.

I can choose from probably 40+ companies and different plans offering different rates, expected usage, contract terms, etc. and whatever other criteria I care about, all listed in one place and compared side-by-side on one website.

It was really depressing having just gotten my head around that wealth of choice to then be told "for internet, you will have Spectrum."
Theres a mu.run on (at least) one of the disks archived at the Computer History Musuem, listed at

http://xeroxalto.computerhistory.org/_cd8_/alto/.index.html

http://xeroxalto.computerhistory.org/_cd8_/alto/.mu.run!2.ht...

but I don't know if there's any way to transfer it from a disk image to an actual Alto disk?
He is experienced developer with great coding skills
Read what I said: this article may be full of misdirection and half truths.
"Deserve" is pretty subjective and vague, borderline meaningless. One could argue that they only deserve the value they create.

The problem is that automation increases inequality (I think). Between individual workers (software engineers vs factory workers) - and between capital and labour.

The solution is income redistribution. To me, the negative income tax with no minimum wage makes most sense. Minimum wage is a weird, hard-to-analyze hack.
Less interesting than you'd expect, as it was for a rapid mobile app prototyping class.

We had a telesync'd demo that let you play along with a Jeopardy episode by yelling answers at your phone. The app knew the timing markers for when the question was asked + when a contestant answered, so would only give you credit if you beat the contestant with the correct answer.

Our model user was "people who yell answers at the screen when Jeopardy is on."

Still think it would have made a decent companion app to the show though...

Trebek's elocution is just something you pick up on after rewatching an episode enough times. He has really interesting ways of emphasizing things, but they seem normal if you're just listening to them once through.
Word.
Anyone who's not famous and tries stepping out of line will be put through the same meat-grinder. The majority seem to think that the way to get anywhere in this world is to make sure that no one else gets there first, which couldn't be further from the truth. That being said, there will never be any progress without people stepping out of line.