Node v6.9.0 (LTS) - <AUTHOR> https://nodejs.org/en/blog/release/v6.9.0/ <comment><USER2> _When a native Promise incurs a rejection but there is no handler to receive it, a warning will be printed to standard error._

Probably the most important change other than improvements in es2015 support.

<comment><USER3> I wish the browsers moved on with the support as fast as Node so that we can get rid of stupid hundreds of MBs dependencies to transform a arrow function.

<comment><USER4> So two things.

First, it doesn't matter how fast browsers moved. Currently they're moving pretty damn quick if you ask me but it doesn't matter because you need to know your audience and what browser(s) they use.

Second, I don't understand the want or need to include "hundreds of MBs dependencies to transform a arrow function". Why do you have to use an arrow function? Yeah it looks nicer but if you're complaining about how much dependency it brings in why not just not use it? Don't get me wrong I like ECMAScript 2015 but if you don't want to bring in the huge amount of transpiler dependencies ECMASCript 5 is still _super easy_ to write.

<comment><USER5> Exactly my point. Arrow functions and destructuring assignments are great, but we've put up with function() { ... } for the last 20 years, so I'm pretty certain we can wait a couple of more years and not get bogged down in these crazy tooling chains to achieve so little.

and if we insist on crazy tooling chains, how about getting some real benefit – like coffeescript (?-operator anyone) or typescript (yes, typing can help, just look at swift)?

</comment></comment></comment></comment><comment><USER6> The built in debugger is simply amazing! [https://nodejs.org/dist/latest-v6.x/docs/api/all.html#debugg...](https://nodejs.org/dist/latest-v6.x/docs/api/all.html#debugger_v8_inspector_integration_for_node_js)

<comment><USER7> Wow I had no idea this existed.

<comment><USER8> You can even use VS Code to get a IDE like debugging experience with it.

</comment></comment></comment><comment><USER9> For those using nvm:

nvm install lts/boron && nvm alias default lts/boron

You may need to update nvm before that works:

( cd "$NVM_DIR" git fetch origin git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" origin` ) && . "$NVM_DIR/nvm.sh"

<comment><USER10> If you use zsh I wrote a little wrapper for nvm that adds a few handy features. Upgrades can be done with `nvm upgrade`.

[https://github.com/lukechilds/zsh-nvm](https://github.com/lukechilds/zsh-nvm)

<comment><USER11> I'm trying to install it ( antigen ) but it complains that I already have a nvm installed ( well I do, but should I remove it ? )

<comment><USER10> It should work fine with existing nvm installs, have you commented out the line where you're manually sourcing nvm?

If you have can you paste the exact message you're getting?

<comment><USER11> I haven't commented out any lines.

        λ ~ ◆ antigen bundle lukechilds/zsh-nvm
        .Cloning into '/Users/drinchev/.antigen/repos/https-COLON--SLASH--SLASH-github.com-SLASH-lukechilds-SLASH-zsh-nvm.git'...
        remote: Counting objects: 228, done.
        remote: Compressing objects: 100% (47/47), done.
        remote: Total 228 (delta 16), reused 0 (delta 0), pack-reused 178
        Receiving objects: 100% (228/228), 29.54 KiB | 0 bytes/s, done.
        Resolving deltas: 100% (91/91), done.
        Checking connectivity... done.
        Installing nvm...
        fatal: destination path '/Users/drinchev/.nvm' already exists and is not an empty directory.
        fatal: Not a git repository (or any of the parent directories): .git
        fatal: Not a git repository (or any of the parent directories): .git
        λ ~ ◆

Anyway I think the problem is that it is trying to install nvm, which I already have. Not sure I want to delete my .nvm, since I'm going to loose all my node installs

<comment><USER10> Ahhh, zsh-nvm requires that nvm has been installed via git.

Although it shouldn't be trying to install over your previous installation, it checks if nvm exists first with `[[ ! -f "$NVM_DIR/nvm.sh" ]]`.

Out of interest what does: `[[ ! -f "$NVM_DIR/nvm.sh" ]] && echo "nvm doesn't exist" || echo "nvm exists"` return?

If you wanna try it out you could backup your "$NVM_DIR/versions" folder and restore it. That holds all your node installs and global modules.

<comment><USER11>
        λ ~ ◆ [[ ! -f "$NVM_DIR/nvm.sh" ]] && echo "nvm doesn't exist" || echo "nvm exists"
        nvm doesn't exist
        λ ~ ◆

Yeah, but tomorrow I'm GMT+2 :D

<comment><USER10> Strange...

Is it a symlink or something? Does `ls "$NVM_DIR"` list nvm.sh anywhere?

<comment><USER11> No :(

I've opened an issue, because I think we're polluting HN

[https://github.com/lukechilds/zsh- nvm/issues/11](https://github.com/lukechilds/zsh-nvm/issues/11)

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> > v6.9.0 marks the transition of Node.js v6 into Long Term Support (LTS) with > the codename "Boron"

Welcome, Boron! We've been waiting for you :)

<comment><USER13> Oddly I've had this tab open for a week or so now: [http://madscript.com/boron/](http://madscript.com/boron/)

</comment></comment><comment><USER14> > Support has been dropped for Windows Vista and earlier and macOS 10.7 and > earlier.

Windows Vista was released in 2007, OS X 10.7 in 2011.

For some reason, third-party software seems to support old Windows versions much longer than OS X. Meanwhile, Apple stops supporting old hardware in new OS X versions quite quickly (IMHO), probably for business reasons.

I had one Macbook in the past that I had to put Linux on, just because most software dropped support for the most recent available OS version.

<comment><USER15> Microsoft invests heavily in backwards compatibility. Apple could too since they have more money than they know what to do with but I take it they prefer the ability to iterate quickly and make breaking changes for the sake of moving things forward.

<comment><USER16> For the sake of selling more devices

</comment></comment></comment><comment><USER17> Can we get an estimated time of arrival of ES2015 imports in nodejs? I understand that the support needs to come from v8 first of all.

<comment><USER18> They just had a meeting with TC39 about it. Here's the writeup from the node side:

[https://hackernoon.com/node-js-tc-39-and- modules-a1118aecf95...](https://hackernoon.com/node-js-tc-39-and- modules-a1118aecf95e)

<comment><USER19> > Unlike require(), however, import() returns a Promise, allowing (but not > requiring) the loading of the underlying module to be performed fully > asynchronously.

Promises, afaik, are always asynchronous. Maybe the spec changed (I'd welcome it for sure) but last I read it, resolve or rejection handlers must be called in the next tick. Even if something can be executed immediately, it'll still wait till next tick. This obviously means there's always a wait associated with promises, hence they are always asynchronous.

I wish this article would go into more detail on what the edge cases are with the unambiguous module syntax – I thought that was an unusually elegant solution in this community.

<comment><USER20> > loading of the underlying module to be performed fully asynchronously

Right now, Node uses require(). What he means here is that while this does return a Promise, the underlying loading of the module doesn't _have_ to be asynchronous, you could just do something like this:

        function import(module) {
          return Promise.resolve(require(module));
        }

Which would fill the requirement of returning a Promise, but would actually load the module using the normal synchronous means.

> I thought that was an unusually elegant solution in this community.

The biggest issue with unambiguous module syntax is that, since you have to parse modules before finishing the resolution, it could drastically lengthen startup time.

<comment><USER19> Thanks for the clarification!

Regarding parsing modules – that's a fair point but surely this has to be done _anyway_? For ESMs you have to parse them to build the binding map, and for CJS you have to parse to evaluate; either way the modules get parsed at some point so why would this in any way be an _additional_ overhead?

</comment></comment></comment></comment></comment><comment><USER21> The ES6 improvements make Node a very powerful language. I'm a python developer and the improvements to the language are impressive. No support for array unpacking and import statements just yet though.

</comment><comment><USER22> > Very large arrays are now truncated when passed through util.inspect(), this > also applies to console.log() and friends.

This is a funny one, in conjunction with the facts about npm that 1) npm has no public programmatic API (and zero docs on it), 2) npm devs encourage you to exec() stuff and read stdout, as all the internal methods can be changed/removed at any time, also in non-semver-major.

I used to have script doing `npm view | grep ...` which now fails under node 6. The best solution I guess is to use a hardcoded version of npm as a dependency and rely on programmatic API rather than stdout.

<comment><USER23> The output of npm view is essentially a version of the package.json. That's a pretty standard structure. You can form some of the fields in different ways. But why would you want to grep through json when you can parse it?

<comment><USER22> it's not a standard JSON, it's a `console.dir()`, keys are not quoted hence any JSON parser would choke on it, and due to the change in console methods, you can have "..." in long arrays. It's unparseable (not a valid JSON), and ungreppable too (not full arrays are printed).

</comment></comment></comment><comment><USER24> I am assuming this means they will tag v7 soon so I can easily use it with nvm?

Also, does anyone know if there is a way to get babel to output code targeting Node v7? Like, just stuff in the 'latest' preset that isn't out-of-the-box (with or without the flag).

<comment><USER25> You can use node specific preset like other's have mentioned but working on [https://github.com/babel/babel-preset-env](https://github.com/babel/babel- preset-env) for all future versions as well

</comment></comment><comment><USER26> I'm a little surprised that "LTS" doesn't mean at least five years of support like Ubuntu.

<comment><USER27> It doesn't surprise me considering the speed of development with Node and its ecosystem. It has only been 7 years since its birth.

</comment></comment><comment><USER28> I know it's not completely related, but does anyone know if ExpressJS runs on 6.9?

<comment><USER29> Why wouldn't it?

</comment></comment><comment><USER2> Hopefully an official 'Boron' tagged docker image will follow shortly.

<comment><USER30> It's in a PR here: [https://github.com/docker-library/official- images/pull/2265](https://github.com/docker-library/official-images/pull/2265)

</comment></comment><comment><USER31> I'm stoked about the ES6 support.</comment>


The unemployed will not be considered - <AUTHOR> http://www.huffingtonpost.com/2010/06/04/disturbing-job-ads-the-un_n_600665.html?view=print

<comment><USER2> My reaction to this is that it's not so much "unconscionable" as mind- numbingly stupid. Yeah, I agree that it's unfair to those of us who are looking for work (I was myself most recently) but from the perspective of those doing the hiring this seems like a weird sort of overcautiousness. Some of the most intelligent, accomplished, and qualified people I know have found themselves unemployed at some point in the last two years. Heck, I just got employed again three months ago after five months of unemployment.

I understand that companies get a lot of resumes these days, but the fact is that there are many, many much better ways of culling than to reject the unemployed. In point of fact, by stating up-front that you won't take resumes from those who aren't currently employed, you're cutting out what might be your _best_ hiring pool. My experience is that people (myself included) who've been unemployed, especially for a little while, often have clearer heads going into a job, and tend to want it a whole lot more. Like I said, I was off the job recently for five months. You can take a guess as to how I attacked the work when I finally hit the job again: it was like I was _living_ again. If I'd moved from my old job directly into the new, there would've been a longer adjustment period, I would've been more disoriented, and most importantly it would've taken longer to realign my motivation and ambition.

Being unemployed - being unable to provide for myself - focused me pretty sharply, I can tell you. And it made me eager to get back to work and dive into it. I think other people are the same; the until-recently unemployed can be some of the most motivated people on earth.

This is just to say, to anyone in a hiring position who's considering trying this to cut back on an abundance of resumes: increase the qualifications, streamline your resume review process, and even accept that you might have to pick a handful of resumes to work from at random - but _don't_ throw away what might be the most motivated and willing pool of applicants available to you by asking for resumes only from people that are currently employed.

<comment><USER3> It _is_ mind-numbingly stupid, because there wasn't much thinking involved in coming up with the policy. The companies who post this policy are simply codifying what individual resume screeners have done for eons now.

People who screen resumes tend to assume that you are unemployed because of one or more other undesirable traits you have, like a tendency to be irresponsible or violent and antisocial. This assumption is a mix of broken societal wisdom and an association fallacy. FWIW, there's another fallacy committed when they themselves become unemployed; everyone else unemployed is a antisocial lunatic, but _they_ are a good person who has simply fallen on rough times -- total cognitive dissonance, but they don't notice, even when it is pointed out to them.

It is not necessarily true that a company that is employing this philosophy is necessarily cutting out the best from it's hiring pool; but the inverse isn't necessarily true either. My suspicion is that the mean quality of the unemployed applicants to a company might be _slightly_ worse than the employed applicants, but not enough so to represent anything significant.

What I can more confidently say is true is that most companies, and for that matter most individuals, haven't _thought_ about this at all. What we do right now is the default, and they haven't yet been fired for relying on it, nor have they been rewarded for not doing so. Until they are, nothing will change.

<comment><USER4> "haven't _thought_ about this at all."

If you look at most discussions about how employers weed out prospective employees, and about how employees weed out prospective employers, there isn't much careful thinking involved at all. Even though it is an important decision for both parties, and time deliberately thinking about it is time well-spent, stupid heuristics are usually used.

</comment></comment></comment><comment><USER5> Ugh, come on humanity, stop letting me down. Reminds me of the South Park episode "Night of the Living Homeless":

 _The homeless first started arriving in Evergreen about three months ago. At first there were only a few of them, askin' for change, sleeping in the parks. But then more showed up, and we realized there was somethin' different about them. They fed off of our change to the point that they could actually start renting apartments. We knew it wouldn't be long before the homeless actually started buying homes. And then we'd have no idea who was homeless and who wasn't! The people living in the house right next door to you could be homeless and you wouldn't even know! Nobody could trust anybody! Fights broke out. War! That's when I started suspecting that my own wife, who I'd been living with for twenty years, was actually homeless. So I had to burn her. In her bed while she slept._

<comment><USER6> The fact that there are people writing brilliant satires like this might give some hope for humanity; that, and the fact that there are companies creating jobs that people want, even if hiring policies can be foul, discriminatory, and stupid.

</comment></comment><comment><USER7> I wonder whether the companies that only hire people who are currently employed would also fire any of their existing staff who were looking for a job elsewhere?

The whole thing reminds me of an old story. A young man takes up with an an attractive woman who is married to a older, brutish boor. One thing leads to another and the brute catches them making out.

Honor must be satisfied, so the two men square off for a duel. The young man's aim is true, and he kills the brute, then beds the woman in a celebratory romp. In the afterglow, he asks her why she married such a noxious character.

"Well," she replies, "He won the last duel over me."

I wish these companies well in _retaining_ their hires.

<comment><USER8> "I wish these companies well in retaining their hires."

I suspect that they aren't very good at that, and are counting on the fact that most of the companies that they would like to hire people from aren't very good at it, either.

Even if that's not correct, it's still staggeringly asinine.

<comment><USER7> You're preaching to a choirboy! Some of the unemployed have been laid off because they were the most expensive people on staff when a company needed to cut costs. Sometimes that means that the best people were let go. Other times entire departments get the ax because of a power play, so it's a reflection on the lack of political knife fighting skills of a manager several rungs higher up the ladder.

<comment><USER8> Or the political machinations of lousy management. Not to mention the typical bait and switch that most tech companies pull on talented staff, as was my experience at amazon (which as far as I can tell is the rule there): Job description: develop a sophisticated new system to replace the barely- functional bug-ridden nightmare we're stuck with now Actual job duties: wade into the bug-ridden nightmare and add features to the framework that's designed to break as much as possible if you touch anything.

</comment></comment></comment></comment><comment><USER9> If you needed further evidence, this suggests that there are ridiculous inefficiencies in matching up labor and jobs that you could make money solving. (In this case, caused by the dating site conundrum: there are more men then women, causing men to send out lots of messages without much thought, causing women to be very choosy in responding to messages, causing frustrated men to send more messages, causing women to be even more choosy in replying, etc etc. Though "must already be in a relationship" would not be a very mainstream criteria for dating sites. I hope.)

<comment><USER3> _If you needed further evidence, this suggests that there are ridiculous inefficiencies in matching up labor and jobs that you could make money solving._

There are ridiculous inefficiencies, but they exist do to some completely screwed up assumptions people make, or that they just blindly follow out of deference to common wisdom.

In order for someone to make money solving these problems, they'd need to convince the parties involved that their assumptions are incorrect, and that they need to use a new approach to hiring. For instance, a hiring manager who believes that the clerk they are seeking must have a bachelors degree, n+ years of experience, and whatever else. Why; because this person has a large number of assumptions they are working off of, and each of these requirements is a manifestation of some subset of those assumptions. And, in the case of the companies tied to this article, they have to already be employed.

Changing these assumptions is _amazingly_ hard to do, because their existence represents a cultural problem, not a knowledge problem. This would be like a company trying to make money solving racism when most everyone in society is a racist. It is incredibly hard to do; people will go bankrupt rather than give up what they've believed all their lives.

I'm reminded a number of months ago of a post you made in reply to one of mine where you discussed the cultural implications of quitting a permanent salaryman position in Japan; you pointed out that anyone who does this will likely never find themselves as more than a contractor ever again. This is really just a different manifestation of the same basic cultural bias; if you are unemployed, our cultural mores dictate that this should reflect badly upon you. If there is a solution to this problem here, I think it would have to look similar to the solution to Japan's bias toward unemployed salarymen.

But, I could be wrong about this; in fact, I'd like to be wrong. It would provide me additional faith in the resiliency of humanity. I just can't see us being that ruthlessly introspective without something far more horrible than high unemployment to motivate us.

<comment><USER10> Sorry, but you're horrifyingly correct.

</comment></comment></comment><comment><USER11> We value honesty and telling the truth. And when people do, we express outrage.

Unemployed people also have limited resources and cannot apply for every job. Isn't it better to know you won't be considered instead of wasting your time trying to get through invisible filters?

Employers employ all sorts of arbitrary mechanisms to narrow their choices. And so do you, most likely, when you make your economic decisions.

<comment><USER12> We value honesty and telling the truth because deception and lying are commonly considered to be bad things.

When people honestly tell us the truth that they will not entertain applications for employment from those currently unemployed, we express outrage because that is just {dickish,unconscionable,idiotic}.

If it makes you feel better, I give them full credit for being honest about their moral bankruptcy.

<comment><USER11> When someone is offering a service and everybody wants it, its not unreasonable to conclude that it might be worth more to you than a service that has no line of people waiting to pay for it.

Frankly, I don't see how that's immoral. Its acting in what one thinks is in one's own best interest. There is nothing wrong with that. The job seekers do it all the time whenever they decide to pursue a job at a more stable company rather than one that's been through hard times.

You may not want to present your criteria for hiring openly because you don't want to hurt people's feelings. That's your prerogative.

Just make sure you're consistent about that and avoid giving people feedback that might hurt their feelings while they're employed and when you finally have to let them go.

<comment><USER13> How is it immoral? Ok, lets see. Its cruel. Its selfish. Its corrosive to the social contract. Its probably discrimination. And its unnecessary. Honestly, I get chills when I see so many postings that claim to find morality invisible or unknowable.

</comment></comment></comment></comment><comment><USER14> I wonder how they look at people that were starting their own company, freelancing, etc...?

When I'm not in the fulltime employ of one company, I'm generally working on my own projects, freelancing, consulting, etc. My resume never looks to have blank sections even if I get laid off and the income keeps flowing that way too.

But what does it mean to be employed? Receiving a paycheck? RMS doesn't take a paycheck from MIT, so he's both homeless and unemployed by the standard of receiving a paycheck and having an apartment/home. Yet for the right position, he's infinitely qualified.

Then again, I don't think I want to work for any company that has shitty hiring standards and is so elitist as to not even consider edge cases.

<comment><USER15> I get where they are coming from. I was heavily involved in a big hiring spree shortly after the telecom implosion in Dallas. The sheer volume of resumes that we received was staggering. We'd have literally 100's of resumes within an hour of posting a job ad. Maybe 2% of those actually had anything resembling the qualifications we we're looking for (and had clearly spelled out in the ad). It really did seem like folks, out of desperation, where simply shotgunning resumes and hoping for the best.

We never considered simply tossing out the unemployed, but I get why they're doing it. Particularly at companies that aren't trying to hire absolute top- level talent.

It does absolutely suck for anyone looking for a job tho.

<comment><USER16> One issue is that lots of job ads are really poorly worded or have shoot-for- the-moon requirements that are not _really_ requirements. There are plenty of cases where the most qualified person for the job may be someone that doesn't meet most of the requirements in the posting. Though this is more of a commentary on the state of affairs with respect to the composition of job postings.

<comment><USER17> Sure - employers pad out job openings a bit - but man, people will shotgun- apply for jobs that they are very clearly, to anyone reading the job description, by no stretch of the imagination qualified for. I'm not talking about ridiculous requirements like more years with a technology than the tech has existed, but when you say things like "SENIOR SYSTEMS MANAGER" and "MUST have at last 8 years professional experience" and "MUST have an expert level of knowledge of ProductX"

And the applicants come in, just out of university, never had a job, have never even heard of ProductX, and have no experience........ what are you to do? I mean, if they put in a good cover letter explaining that they recognize that they don't seem to match the qualifications, but explaining why they want a shot at an interview, or something like that, fine.... but they don't.

They hit monster.com or whatever, look for "sysadmin" or "IT" anywhere in the text and then spam out resumes with complete disregard for the requirements.

<comment><USER18> It works the other way too. On a local portal, I get at least one php coder position offer a month, even though I don't do any web stuff (I'm a voip devops, let's say).

</comment></comment></comment></comment></comment><comment><USER19> I have created a solution to this problem.

For $500/mo. you can "work" for me.

The process is similar to basic hosting sites. You can pick from a variety of "companies" and "jobs". They range from BigCo type companies to small startups. Jobs range from developer to management.

We provide a phone number to call for reference checks as well.

Employment is only a click away!

<comment><USER13> I'll do it for $5

<comment><USER20> It only works if the amount you're offering is similar to what a person would make from their unemployment benefits.

</comment></comment></comment><comment><USER21> _Still waiting for a response to the 300 resumés you sent out last month?_

Sending out 300 resumés in a month is the wrong strategy, as it shows you don't care about the posting. If you are willing to invest that little effort, you are basically playing a lottery against all the other people doing the same thing. You are far better off being selective and persistant. If instead of sending out 75 resumes a week, you spend a concerted effort on applying to a couple postings - and doing more than just sending your resume, I'm sure you'll have better results.

<comment><USER22> This is probably true. But then again, if you know that most of your resumes are thrown out at random, you know you need to send out a large population of them in order to have a just few of them end up being read.

</comment></comment><comment><USER23> From the article: "There are about 5.5 people looking for work for every job available, according to the latest data from the Labor Department. "

That's not much. Oh, and OUCH!

</comment><comment><AUTHOR> Entrepreneur or Unemployed? [http://www.nytimes.com/2010/06/02/opinion/02reich.html?pagew...](http://www.nytimes.com/2010/06/02/opinion/02reich.html?pagewanted=print)

</comment><comment><USER24> So, I've sent quite a lot of (pretty much blank, but should I lie?) resumes, mostly didn't get any answer at all, and… what now? :) It's almost funny.

</comment><comment><USER25> The irony of the policy is the company will then ask you loyalty questions in the interview.

</comment><comment><USER26> I find the terms self-employed and freelancing much more satisfying than unemployed.

</comment><comment><USER27> Interesting choice of photo.

<comment><USER28> How so?

<comment><USER27> I probably wouldn't have used a pic of a befuddled looking black guy as the sole picture for an article about the unemployed.

<comment><USER28> Again, why? Blacks are technically just as likely to be unemployed as whites.

<comment><USER29> Technicallly, they're almost twice as likely to be unemployed as whites:

<http://www.bls.gov/news.release/empsit.t02.htm>

Which is why using a black man for the picture isn't particularly smart. It's offensive because it's true, and nearly any conclusion you can draw from it is going to piss off someone.

<comment><USER30> > _It's offensive because it's true ..._

Something about that sentence isn't right.

<comment><USER31> what's wrong with that? true == offensive everybody knows this!

</comment></comment></comment></comment></comment></comment></comment><comment><USER32> I've put up job postings in the past and you get a lot of mindlessly submitted resumes that have nothing to do with what you're looking for. I can only imagine that number of mindless, irrelevant submissions has increased with the recession.

Realistically, a company would take a person with the skillset and credentials they're looking for even if they're unemployed. They just don't want 500 irrelevant submissions for every 5 good ones, and "UNEMPLOYED NOT CONSIDERED" probably works more effective than "PLEASE ACTUALLY FRIGGING READ OUR POSTING AND ONLY APPLY IF YOU'RE A REAL CANDIDATE" - I'd still apply if I thought I was a relevant candidate and wanted a job though, I think this is largely much ado about nothing.

<comment><USER31> UNQUALIFIED APPLICANTS WILL NOT BE CONSIDERED is a neutral, uncontroversial statement that most people would consider fair and reasonable. You can also request the applicant to fill a company specific form so you can search for "qualifiedness" using grep.

UNEMPLOYED NOR CONSIDERED is rude, discriminatory, and barely legal, if at all. Not to mention is bad PR for the company in question.

HR fat cats who push this things on should be fired so they can enjoy their own stupidity first hand.

</comment></comment><comment><USER33> I'm surprised that you can even compel someone to produce this information in an interview setting, considering some other things that are not legal to ask ("how much do you weigh, how tall are you . . .").

<comment><USER34> You're surprised that you can ask for someone's work history in an interview setting?

<comment><USER33> Current employment status, not work history.

<comment><USER34> One's currently employment status is part of one's work history.

</comment></comment></comment></comment><comment><USER35> This should be illegal

</comment><comment><USER36> It's my firm belief that the hottest rooms in hell will be saved for those who kick people when they're down.</comment>


Show HN: Tinker with a Neural Network in Your Browser - <AUTHOR> http://cowpig.github.io/netviz/viz.html <comment><USER2> I don't understand the UI. My guess:

I have to put a few red and green points in the image below. (Actually, at the beginning some of them are added automaticity.)

The neural network tries to find a function that is green where the points are green and red where the points are red.

It's not very clear. I'd put the red-green graph avove the graph of the network.</comment>


Bloomberg U.S. Startups Barometer - <AUTHOR> https://www.bloomberg.com/graphics/startup-barometer/ <comment><USER2> SoftBank is probably a major part of it.

These declines however obviously mean that we're headed for a Russian oligacgyesque tech dystopia where a few companies are too big to fail for the sake of US economy</comment>


QuantLib Python Tutorials for Fellow Quants - <AUTHOR> http://gouthamanbalaraman.com/blog/quantlib-python-tutorials-with-examples.html <comment><AUTHOR> Are there a lot of quants in the US that use QuantLib? I see there is a large community in Europe and Canada. Would like to hear from fellow quants in the US on their experience using QuantLib.</comment>


Startups Vie to Build an Uber for Health Care - <AUTHOR> http://www.wsj.com/articles/startups-vie-to-build-an-uber-for-health-care-1439265847?mod=trending_now_1

<comment><USER2> so you pay 100$-200$ for what you also get at the urgent care for ~2x-3x less...i'm trying, but i just don't get it - are they playing to the paranoid parent with a baby? People who want an hour wait at home instead of the _possible_ 2 hour wait as a walk-in at the office? I really don't understand where a thriving market would exist.

> see in-home care as a way to reduce unnecessary ERs visits and readmissions

Sure. But so does regular check-ups/physicals. In other news water is wet.

Instead of partnering with hospitals, partner with webMD - if someone is on there and embarrassed/unsure they may schedule a discrete inhome visit rather than having to explain to the nurse why they need to see the doctor. I'm sure there's loads of money in amazon-esque single click service there.

<comment><USER3> It depends on what your time is worth... if you need to see someone same day, or near term, you can actually get some work done while waiting. Often when I go to a dr's office I spend an hour+ in the waiting room, then another hour+ in the office mostly waiting. All told, I can have an appointment at 9am, but won't get to work before noon. I'd much rather pay $100 out of pocket and work from home that morning and be in the office in the afternoon, for a 30 minute visit.

It really depends on what you make, and what your time is worth. Beyond that is the convenience factor. People wait extra long in a drive through, when there's no waiting if you walk in... They will order food delivery instead of take-out. They will do any number of things to make it more convenient.

For that matter, I order almost everything practical via Amazon... I go to the store for produce because I prefer to pick my own and for clothes because sizing is hard. I'm not reclusive I just don't enjoy those things as much and would rather be doing something else... if I can recover 3hrs of my time on a work day, or hell after hours as mentioned in the article for < $100, I'll take it.

<comment><USER2> > I'm not reclusive I just don't enjoy those things as much and would rather > be doing something else... if I can recover 3hrs of my time on a work day, > or hell after hours as mentioned in the article for < $100, I'll take it.

I totally agree for something as routine as a physical, but if i'm sick, i probably don't want to squeeze in more to my day. It may be more convenient to stay in bed, but if i'm not doing much that day anyway...

<comment><USER3> Most of my doctors visits are relatively routine... blood work every 3 months, followups on medications, etc. Killing half a day every other month for that drives me nuts... but that's just me.</comment></comment></comment></comment>


UpHabit, Dex, and the Stilted Rise of the Personal CRM - <AUTHOR> https://www.theatlantic.com/technology/archive/2019/11/personal-crm-software-uphabit-dex-google-spreadsheets/601531/ <comment><USER2> Do they offer data enrichment? I wonder what effect will knowing things you didn't learn directly from your friends have on the relationships.

</comment><comment><USER3> Leaves out [https://www.monicahq.com/](https://www.monicahq.com/)</comment>


Show HN: AI Generated SEO Articles - <AUTHOR> http://sdan.io/aigen <comment><USER2> Please don't delete and repost the same article. Deletion is for things that shouldn't have been submitted in the first place.

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

<comment><AUTHOR> Got it!

</comment></comment><comment><USER3> The existence of this technology is bad for the world; the content that's created is a form of pollution. On the other hand, it's a pretty impressive demonstration of technical ability. I hope this project fails quickly, so that you can move onto a different, more prosocial one.

<comment><USER4> Counter-take. Since the SEO content garbage is currently spewed by hordes of content writers making little money, a successful AI can help them find a higher calling.

</comment></comment><comment><USER5> maybe this is actually a good thing if it makes junky SEO articles even more ubiquitous than they already are. it will force search engines to adapt and filter out this kind of noise, increasing quality in the long term.

</comment><comment><USER6> Wow quite amazing. I am thoroughly impressed with the quality. It seems real. I wonder, how do you think you are benefiting society with this technology?

<comment><USER7> Is this an automatically generated comment?

<comment><USER8> I dunno if that was, but this is. :P

</comment></comment></comment><comment><USER9> Search engine algorithms may rank this kind of content highly. If someone disagrees, then their disagreement is with the search engine, not the content creator.

One important job of a search engine is to automatically cut through the "pollution." If it doesn't do that well, then ... it's not such a good search engine.

</comment><comment><AUTHOR> Hey everyone, I'm building [https://sflow.io](https://sflow.io) and part of that includes generating SEO articles to automate the current slow processes of creating (quite) repetitive media (think: "Best Phone to Buy in March of 2020" type of articles).

<comment><USER10> > _I 'm building [https://sflow.io](https://sflow.io) and part of that > includes generating SEO articles_

Honest question, not trying to be rude, but how do you sleep at night knowing that you're actively making the web^H^H^Hworld worse? I assume you must, because you have a super handwavy "ethics" section on your site that says ~"we'll look into it". Do you have a vision of the world where your SEO articles provide net positive value to the public? Or is this just for shits and giggles, consequences be damned?

[edited: you're right. this doesn't just harm the web]

<comment><AUTHOR> In places like India I know that bribery and misinformation is more widespread than anyone could ever imagine.

Instead of a writer writing a clickbait article / low quality SEO (written by someone off-shore) article in 5 minutes, they could generate an article with our AI (provided they give us quotes, context, etc.) within that same 5 minutes. The difference is that we can iterate on our models and integrate our cross referencing fact-checking algorithms to ensure we generate meaningful articles.

<comment><USER10> > _In places like India I know that bribery and misinformation is more > widespread than anyone could ever imagine._

> _Instead of a writer writing a clickbait article / low quality SEO (written > by someone off-shore) article in 5 minutes, they could generate an article > with our AI_

So you acknowledge that there is something harming the world, and you want to make that harm even easier to do. And if you can profit from it, so much the better. Did I get that right?

<comment><AUTHOR> Bribery and misinformation is harming the world. We allow you to have that same pace of writing, but we generate meaningful articles via our cross- referencing models.

Otherwise people would write whatever comes to their mind: clickbait/misinformation without proper cross referencing/fact checking.

<comment><USER10> I am very disappointed that another human being would pitch SEO spam, and automated SEO spam to boot, as something positive when we've seen for years how it rapidly and unequivocally destroys everything it touches. It is spam. It is pollution.

> _Bribery and misinformation is harming the world._

Spam is harming the world, factful or otherwise.

> _but we generate meaningful articles_

It sure sounds like you generate SEO spam. You even advertise that you generate SEO spam. Your Show HN title is even "AI Generated SEO Spam".

> _Otherwise people would write whatever comes to their mind: clickbait_

SEO articles are literally scammy clickbait. Therefore, you generate scammy clickbait. "Fact checking" is orthogonal when your product is SEO spam.

</comment></comment></comment></comment></comment></comment><comment><USER11> Is "AI Generated SEO Articles" the new term for a spam bot?

</comment><comment><USER12> Did you ever stop to think if something like this should be built?

<comment><AUTHOR> [https://wordai.com/](https://wordai.com/)

[https://automatedinsights.com/](https://automatedinsights.com/)

</comment></comment><comment><USER13> It's GPT2 fine tuned on news to my knowledge, then doing an image search to pair the news with an image.

</comment><comment><USER14> I hope projects like [http://gltr.io/](http://gltr.io/) can eliminate this type of content from search results, or at least give me a browser-based alert when I encounter it.

</comment><comment><USER15> Can someone explain in layman's term what the purpose of this is ?

</comment><comment><USER16> My first thought: please don't.

My second thought: let the new SEO war begin! I hope this time the SEO scum gets annihilated.

</comment><comment><USER17> You should be ashamed.</comment>


Ask HN: How does payroll work in US? - <AUTHOR> I'm trying to do a TCO type analysis of income, taxes and what you get for your money in Sweden and US and it strikes me I have no clue how payroll and taxes work.
In Sweden, a decent salary is 50 kSEK (salaries are negotiated per-month rather than per-year). That is pre-income-tax, post-social-taxes.
Company cost per month: 50kSEK salary + 16 kSEK payroll tax + 5 kSEK private pension (optional but 99% of all employers offer this) Employee income: 50 kSEK - 15kSEK (tax) State gets: 15kSEK (income tax) + 16kSEK (payroll tax)
The above is a bit simplified, but accurate. Major benefits are 30 days off, 400 days parental leave,  free health care, free college.
How would the company cost/employee income/state income look in the US? <comment><USER2> Not able to give a very precise answer but it usually looks like this:

Employee Salary: $100,000 Taxes Payable by Employee: Federal, State, Local, Payroll (Social Security, Medicare, other Local taxes like NY Family Leave)

Taxes Payable by Employer: Social Security, Medicare, other Local payroll taxes

Depending on your state, city, income level, married status, children, and type of worker you are (W2, 1099)... these variables will affect how the actual rate is calculated.

So suffice it to say that the income tax calculation alone is complicated enough (to perpetuate the accounting industry of course) and the matter gets extremely complicated when looking at LLC income, Corporation income, Capital Gains income which every Robinhood trader now has and of course compliance with business regulations which is so infinitely complicated that you can almost never be proactive in facing them and instead can only react to a fine when you receive it.

EDIT: A single man working in NYC making 100k will have an effective tax rate closing in on 40%, typically 22% federal, 7% state, 3% local nyc, 7.5% payroll

<comment><USER3> There's a Yonkers tax in NYC, 9% last time I saw, for people who work in the city (Manhattan and maybe more?)

<comment><USER2> Not sure of the specifics because I directly engage in not putting myself in this situation where I would be required to pay this tax ;)

I believe I've heard that anyone leasing or owning a dwelling anywhere in NYC would pay 3-6% of their yearly income depending on how much they make to NYC. On top of their rent/property tax of course :)

That is why many of us choose to live in Jersey City or Nassau/Suffolk county, where in exchange for a longer commute (no problem thanks to COVID-19 now) you pay less taxes and get a bit more air to breathe and less garbage on the streets.

As for living in Yonkers and paying the Yonkers local tax, well, I am not sure why anyone would live in Yonkers ;)

<comment><USER4> It depends on your circumstances.

If you own your home, generally speaking, by the time you factor property taxes, the NYC income taxes aren't as crazy as they seem. Property taxes are 2.5-4x higher in surrounding areas.

The ROI depends on your specifics. Even in low tax locales like the South, people get surprised by things like food sales taxes and HOAs that are responsible for things like sewers.</comment></comment></comment></comment>


Trick Makes You Immune to Illness – Wim Hof on Impact Theory - <AUTHOR> https://www.youtube.com/watch?v=TM6WKeZ43s4 <comment><AUTHOR> Related:

[https://en.wikipedia.org/wiki/Wim_Hof](https://en.wikipedia.org/wiki/Wim_Hof)

[https://www.youtube.com/channel/UCxHTM1FYxeC4F7xDsBVltGg](https://www.youtube.com/channel/UCxHTM1FYxeC4F7xDsBVltGg)

[https://www.wimhofmethod.com/](https://www.wimhofmethod.com/)

Disclaimer: I'm not that saying Wim Hof isn't contraversial -- just submitting this because I find him and his method interesting, that's all...</comment>


Why Analysts Never Give Open Source a Break - <AUTHOR> http://www.danablankenhorn.com/2011/10/why-analysts-never-give-open-source-a-break.html

<comment><USER2> _open source is a direct threat to market research_ \- the kind of "market research" that lets you play a few rounds of Bikini Golf with 20-something sales staff in the Bahamas, you mean.</comment>


Mergeable replicated data types – Part I - <AUTHOR> https://blog.acolyer.org/2019/11/25/mergeable-replicated-data-types-part-i/ <comment><USER2> The "characteristic relations" of a datatype looks really interesting. It's similar to abstract data type (ADT) except you only care about modeling the state but not the operations.

And if you ignore operations, many datatypes reduce down to very simple mathematical objects. For example even though set and priority queues are very different in code, they both only need membership (R_mem) to fully specify because you can rebuild a priority queue knowing just the members. To specify a list/queue/stack, you only need to additionally know ordering (they denote this relationship as R_ob for "occurs before").

The advantage of converting a datatype (bijectively) to this relational domain is that you can essentially do "state-based" merging. You only need to define: how to convert to the relational domain, how to merge within that domain (which is still rich enough for you to specify relational invariants you need preserved), and how to convert back to the concrete datatype. Contrast this with operation-based syncing, where you would need a quadratic explosion of definitions for how any two operations should merge together. Here you don't even need to handle any particular operation individually (e.g., if it works for push_front, you will likely get push_back for free). Essentially it is saying the semantics of an operation is captured by the delta caused to the characteristic relations of the datatype.

</comment><comment><USER3> CRDTs (and I guess MRDTs are no different in this respect) are often touted as an enabling technology for collaborative local-first applications (see e.g. recent discussion: [https://news.ycombinator.com/item?id=21581444](https://news.ycombinator.com/item?id=21581444)) but I fail to see how they are useful beyond the simplest of cases: the emphasis is on automatic convergence, but it seems almost impossible to preserve non-trivial application-specific invariants without manual merging (I am thinking of such applications as collaborative source code editing or vector graphics editing). Am I missing something?

<comment><USER4> The point is often you don't need to. If you use Google docs, the chances are you will be editing it disjointly most of the time and occasionally you'll edit the same bit of the document. Then you don't really care if what comes out is a meaningful sentence, but that all parties involved (regardless in which order they see the operations) see the same version of the document so that they can fix it. That's what CRDTs buy you.

Without them, you have to use either explicit synchronisation which is a bad idea if you want local-first software (doesn't work offline, needs to be done even when editing disjoint bits of the file, etc.) or something like CRDTs. Now there is a great paper by Victor Gomes, Martin Kleppmann, and Dominic Mulligan that proves (in a proof assistant!) that pretty much all other alternatives that do not use strong consistency is flawed in edge cases.

As for triviality of the operations, I know for a fact that Martin Kleppmann has a paper in the works that show (and prove) how to do tree move efficiently as a CRDT. That means you can basically do arbitrary edits on JSON. Hopefully, that should clear up any confusion about for which applications it might be useful.

<comment><USER3> Thanks for your comment!

> The point is often you don't need to. If you use Google docs, the chances > are you will be editing it disjointly most of the time and occasionally > you'll edit the same bit of the document. Then you don't really care if what > comes out is a meaningful sentence, but that all parties involved > (regardless in which order they see the operations) see the same version of > the document so that they can fix it. That's what CRDTs buy you.

Ok, so the hope is that semantic conflicts are rare and if they do happen, users can easily see them and promptly correct them. I guess this works well if the invariants are local and synchronization is fairly frequent (i.e. on the scale of seconds, not weeks).

> That means you can basically do arbitrary edits on JSON. Hopefully, that > should clear up any confusion about for which applications it might be > useful.

Not quite. Of course you can model everything in JSON, but the question remains as to how much additional implicit structure is needed atop the explicit tree-like structure that JSON provides and how easily this implicit structure is disturbed by merges.

<comment><USER5> I think the subtlety with CRDTs is that how you choose to represent your data model via CRDT data structures encodes the semantics of how conflicts are resolved. As a simple example there are multiple versions of Set (remove once, add only, remove observed, etc.) that have different semantics.

As a more concrete example, Apple Notes edits tables and resolves conflicts via CRDTs. Now for editing tables in a word processor, you can have multiple users moving, adding, and deleting columns, in addition to editing the text within a cell. (One user adds a row, another adds a column. One user deletes a column and another moves it. etc.)

If you just naively represent this as a list of lists, the semantics expected by the user breaks. (One user adds a row, another adds a column, and you have a short row with cells in the wrong place.)

Apple ended up representing the columns as an ordered set of ids (piecing this together from other CRDTs) the rows as a second ordered set of ids, and then the text blobs as a map of column id, to a map of row id to a text crdt object. With the additional assumption that any "missing" text is in the blank, initial state. (I might have this transposed, it's from memory, but that's the basic idea.)

It works, and works well, but a lot of thought and effort was put into modeling the domain as CRDTs to capture the required semantics.

(Here, for ordered set, you can use a list CRDT, drop duplicates, and tack on an add-only set of tombstones to keep move/delete conflicts from resurrecting rows/columns.)

</comment></comment></comment></comment><comment><USER6> The paper is based on 3-way merge of relations (sets) but I'm not sure it's uniquely defined. Imagine we have a data structure consisting of two sets A and B, with the invariant that B is a subset of A. Initially A = {1}, B = {}. Imagine this data structure is replicated across two computers. On the first computer, we add 1 to B; on the second computer, we remove 1 from A. Then we try to merge these changes. It seems that the merge result could be either A = {1}, B = {1} or A = {}, B = {} and I don't see how to choose between them.

</comment><comment><USER7> I believe their counter only works when they have 2 replicas:

             0
            / \
        +1 /   \  +2
          /     \
         1       2
          \     /
           \   /
            \ /
             3  <= correct result

With 3 replicas it breaks apart:

                 0
                /|\
               / | \
              /  |  \
             /   |   \
            /    |    \
        +1 /     |+100 \ +2
          /      |      \
         1      100      2
          \     / \     /
           \   /   \   /
            \ /     \ /
            101     102
              \     /
               \   /
                \ /
                203   <= incorrect result, 100 is accounted for twice.
                         It is accounted for twice because the lowest
                         common ancestor is '0'.

My team solved that problem by creating virtual common ancestors. This is similar to what git does in some cases.

<comment><USER8> In this case 100 is the LCA isn't it? Then you'd end up with 100 + (101 - 100) + (102 - 100) = 103, which is correct.

<comment><USER7> Yes, 100 is the LCA.

The problem I should have started with is that regular LCAs are not useable for conflict resolution because there can be multiple different LCAs.

For example, in the graph at [https://cs.stackexchange.com/questions/72538/lowest- single-c...](https://cs.stackexchange.com/questions/72538/lowest-single- common-ancestor-in-a-directed-acyclic-graph) which LCA do you use to merge 3 and 4?

So you have to use some sort of "unique LCA", which is 0 in the example I gave. But even that does not work as I showed in 2nd example.

<comment><USER8> After looking at it for a bit I've determined that it's not so much a problem that you can't pick a unique LCA (you just need a guarantee that either works). However you run into problems when you merge two nodes that already contain some merges. Consider the following example:

            0
            /\
        +1 /  \  +2
          /    \
         1      2
         | \  / |
         |  \/  |
         |  /\  |
         | /  \ |
         3      3
         | \  / |
         |  \/  |
         |  /\  |
         | /  \ |
         ?      ?

Here you've got two choices for LCA (which aren't equivalent but that aside), _both_ will give you the wrong answer. As the correct answer should obviously be 3 as only 1 and 2 were ever added to the counter, exactly once.

Basically the problem is that the merge operation isn't idempotent, hence it doesn't define a semilattice, which seems to be what you want if you want to ensure consistency even over distributed systems.

They could have easily fixed this by picking a better merge operation such as a union or maximum, but it's not encouraging when someone picks an illustrative example that doesn't quite work.

<comment><USER9> You do recursive LCA merge, like git. I give a hand-wavy argument on why the algorithm is semantically correct here: [https://infinity0.github.io/msg- notes/causal/04-state.html#w...](https://infinity0.github.io/msg- notes/causal/04-state.html#way-merge)

<comment><USER8> Okay, I can see the recursive algorithm working provided the merge works correctly if you've got just 1 LCA.

I'm not _entirely_ convinced that the merge for the 'counter' always works if you've got a single LCA though. It seems like it should obviously work, but I'm a bit concerned given that you can easily create a counter example where the formula _doesn 't_ work if you allow for multiple LCA. So somehow having a single LCA is vital for the formula to work and it's not entirely obvious to me why.

Anyway if you end up just calculating something equivalent to the union of the history (+some interpretation) then you're probably fine.

<comment><USER9> The recursive algorithm works for any number of LCAs, as I argued.

If you're referring to having multiple _roots_ , there are two solutions:

(a) define your 3-way-merge primitive (the non-recursive version) to support merging two states against an imaginary "zero" that acts as the single root. So in the counter version you can imagine that everything "actually" starts from 0.

(b) arrange your application so there are never multiple roots. In some cases this not really a constraint, usually one single person starts a document and it doesn't make sense to merge something else in later. In some other cases (group chats, tree histories like git) this is probably not acceptable and you will need (a). But in the examples I just gave, a reasonable (a) is fairly straightforward to think of.

<comment><USER8> If it works for 1 your algorithm works for any number so far I can follow.

It's a bit tricky to show that the 3-way merge always works fine if you've got a single least common ancestor. But yeah it looks like you're fine because any update that both have in common will _also_ have reached the LCA (this was the insight I was missing that explains why a single LCA works and multiple LCA do not if you naively apply the 3-way-merge).

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> I like the phrasing "Mergeable Data" over CRDTs (I've been on the CRDT bandwagon for years now, with [https://github.com/amark/gun](https://github.com/amark/gun) ). Probably worth it as an industry of we shift language to "Mergeable".

<comment><USER11> Holy shit, the creator of GUN lurks HN? Huge fan.

Super cool, I first used the library back in 2015-ish and I remember being blown away by how innovative and unique it was.

I'm working on a serverless, distributed P2P compute network that's basically a PubSub event queue/job system using some hacks on top of Dat protocol right now for a side project.

Do you think I might be able to use or leverage GUN instead?

<comment><USER10> :D glad to know some HNers are fan!

Yeah, absolutely. Tho DAT is one of the better ones. Do you need mutability? That is probably the biggest differentiator.

Either way, you should come chat about it on [http://chat.gun.eco/](http://chat.gun.eco/) super friendly active community discussing stuff like this all the time. :)</comment></comment></comment>


Developer Job Interview Tips - <AUTHOR> http://simpleprogrammer.com/2013/03/24/10-developer-job-interview-tips-to-land-the-best-job-you-can/

<comment><USER2> Just thought I would give my impressions of how this _might_ go down if you interviewed for the large start-up I work for. (I'm speaking from my own experience, not on behalf of the company in any way.)

1.Why? You're resume will be glanced at, not much more. We just care about how much experience you've had, so we can aim the right kind of questions at you. (You like Haskell? Try this) As long as you don't claim to be a master in ten languages after 2 years real world experience, it really wont matter. Just list your alma mater, your previous companies, and what you like working on or with, and you'll do fine.

2\. I'd recommend against it, you'll come off as creepy if you mention or slip up any of the details. And whilst you're at it, avoid looking up common interview questions for the company, everyone uses different ones and it's extremely obvious if you already know the optimal solution. And if you do get asked a question you know the answer, or someone else from the company has already asked you, tell the interviewer and they'll ask you something else. It's worth it, anything sneaky or underhand comes off extremely badly and is usually enough to get you rejected.

3\. I've rejected many candidates from internal referrals, and usually people are pretty honest with their referrals, they'll say if they don't know enough about you. It's not in anyone's interest to hire someone who isn't a 100% fit, so if you ask me for a referral, I'll only fight for you if I know you're good for the job and my colleagues will do likewise. There's a difference between asking for a referral and being asked to apply. If you really want an 'in', find the companies GitHub and start sending pull requests, if your code is good, you take the reviewers advice and get your patches merged, someone will get in contact.

4\. Finally, one I agree with! You'll be asked a range of algorithm based questions, coding based questions and more, so get comfortable with these kinds of questions.

5\. Again, I agree. But it's usually obvious if you're feigning passion, so be passionate and let it show. Push for the optimal solutions, if you don't get there, ask what the best solution was. When they ask if you have any questions, ask what they do, what their role is and what you could end up doing. Figure out if it is for you, and if so, say so!

6\. Maybe this applies to other companies, but we wont ask 'trap' questions. They aren't useful to us, they're too easy to avoid. However, avoiding a question is never a good idea. Also, questions like "What was the result the last time you and a coworker disagreed on a technical issue?" aren't trap questions, they are real life situations. These things happen, and as long as you can demonstrate that you are reasonable and mature, you'll do fine. Even if you say, "I tested both hypothesis, and he was correct, so we went with his way, I apologized and learnt from the situation", that okay! We're engineers interviewing you, we realise people can be wrong, showing an ability to learn is great.

7\. I agree! Don't lie. That should go without saying.

8\. Again, that should go without saying.

9\. Again, as with the algorithms one above, if you don't know what a linked list is, you're applying to the wrong job.

10\. This probably the only non-trivial point of the article. Building things is a great add a bit to your CV. I can't speak for my colleagues, but of I have a candidate that has build something I can take a look at, I'll spare 5 minutes before the interview to take a look, especially if it sounds interesting or complex. From me, expect a question about how you got round a certain problem or how you built it. It gives you a great chance to show your enthusiasm and show that you want to build and ship code.

These are just _my_ impressions, not definitive by any means, I'd be interested to other experiences interviewing(or indeed being interviewed).

</comment><comment><USER3> That picture diminishes the credibility of the article so much!

</comment><comment><USER4> The first tip was to hire someone to create your resume. Who still cares about resumes?

When I am screening resumes, the only things I care about, in order of importance, are: github repos, well-answered stackoverflow questions, a technical blog. I barely even read over the education and experience sections. If a candidate doesn't have documented, public proof of quality, I have no way of assessing their quality and always say no hire in this case.

<comment> head-chef And you likely miss out on a ton of great talent. Not everybody can put up code publicly or speak technically on sites.

<comment><USER4> Then how can I judge them? Saying they did cool stuff? Everyone already says that.

<comment> head-chef You interview them and give them a lab.

</comment></comment></comment></comment><comment><USER5> Pretty good article and I'm looking forward to watching your course on pluralsight. My wifes' friend works as an IT recruiter and we discussed in depth what myself as a developer looks for in recruiters (mixed interests - recruiters favoring employers over hires, basic knowledge regarding the spec the candidate is being interviewed for etc.). After our discussion, she subscribed to pluralsight so she could gain introductory knowledge on some technologies when she is looking for candidates - even though she is not a developer, such knowledge is invaluable (ex. knowing a sharepoint developer requires asp.net experience, or just some basics on JQuery/Scrum/Kanban etc.).

I've only been an interviewer a couple of times for dev positions, but I tend to look at attitude, passion for the job/industry (incl. self improvement regarding practice and learning via books/training courses), participation in communities/projects and freelancing experience aspects. If someone can get regular freelancing gigs that pay money, then it's a good bet that the developer is able to earn his keep and is pretty self-sufficient.

<comment><AUTHOR> Thanks!

I agree with you about the things to look for in a developer. Especially self improvement. I often ask developers how they keep themselves current and I either get really good answers or confounded looks.

</comment></comment><comment><USER6> God... Those pictures... The.. Googles do... nothing!</comment>


Indie Game Dev Embraces Pirates Instead Of Fighting Futile War - <AUTHOR> http://torrentfreak.com/indie-game-dev-embraces-pirates-instead-of-fighting-futile-war-100915/

<comment><USER2> This actually seems like a reasonably common attitude among indie-game devs (not universal, but not uncommon). The biggest problem you're likely to face as an indie-game developer isn't everyone pirating your game, but nobody ever playing it at all: the most common method of failure is the game that just never gets any traction, not even to the level of "niche success". In that context, piracy can often have more publicity upside than sales-losses downside.</comment>


Dropbox Brings Back Support for ZFS, XFS, Btrfs and eCryptFS on Linux - <AUTHOR> https://www.linuxuprising.com/2019/07/dropbox-brings-back-support-for-zfs-xfs.html <comment><USER2> That's good news. Happy to see Dropbox thinking about the people who stuck with them from day 1. In the past few years they have been all over the place, trying to find their next big thing and in the process also neglecting their non-enterprise customers. Their core product is still the best in the market and an important alternative to Google.

<comment><USER3> I feel the same way.

Until recently they seemed to be deprioritizing features I cared about in favor of e.g. Paper, which seems designed for some other type of user. So, when my company was choosing a provider I didn't really have any compelling arguments I could make in favor of Dropbox. Maybe this signals that the tide has turned again.

<comment><USER4> Exactly, I've always preferred Dropbox because unlike Google Drive, Box, etc they handled files and handled them well. The aesthetics were clean and simple (the new site looks like someone killed an eggplant and based a website on it).

But I've always wondered why they don't expand more on their storage basis for new features? Say email storage and backup (with say an optional web client interface) that supported regular email clients like Thunderbird/Outlook (ok, handwavy magic outlook support). Or a password service that sync'ed via Dropbox (1Passwd was great for a long time this way until I moved to a Linux desktop from a macbook). Their MS Office integrations are actually pretty great. Paper was cute at first, but doesn't build on their storage-first basis by storing say regular markdown files somewhere.

<comment><USER5> I still think the killer feature that will actually stratify these perfectly similar services will be seamless entire device sync. I have my files clumsily positioned behind my onedrive folder and use shortcuts, but macos insists on the default folder locations for some things.

As clumsy as it is, its still great to be able to grab any devce in the world with an internet connection and access all my files in a few mins. Refining that would change the game for this type of service.

<comment><USER6> Just in case you've not thought or knew about it, have you tried using folder symlinks on macOS? Might be an answer to those situations where you have to have files in a special folder or its subfolder, but unfortunately will require setup on each device. On Windows there are different folder symlink types available as well (an `mklink` command line program makes them), plus the common things like documents and pictures are actually "collections" where you can add several folders for the Explorer to combine when viewing these collections

</comment></comment></comment></comment></comment><comment><USER7> Gambled away a lot of the good will they garnered over the course of years. I've moved away and doubt will be back.

<comment><USER8> Same. I moved when they wanted me to unencrypt my home directory on linux.

I've had good luck with pCloud. In particular, I can exclude file patterns, which has done wonders for my typical workflow (storing lots of code).

</comment></comment><comment><USER9> Too late. I already moved to a different service and it was a pain.

The only thing that might bring me back is Zero knowledge privacy. There are smaller competitors that have this as a value add, but I'd trust Dropbox more, since Dropbox is a household name.

<comment><USER10> Which Dropbox competitors are zero knowledge?

<comment><USER11> Spideroak one. Use them for quite some time... never had any real trouble but I use it more as a backup service tbh. Customer support is pretty good though!

<comment><USER11> Why would someone downvote this comment? If you don't like spideroak [1] that's fine but downvoting for an informative comment seems childish.

1: [https://spideroak.com/](https://spideroak.com/)

Another e2e encrypted storage solution is keybase.io.

</comment></comment></comment></comment><comment><USER12> A few weeks ago I was setting up my new laptop, and I found out that my (free) Dropbox account had gotten downgraded to only be able to sync between 3 devices ... ?!

I have no idea how long they've had this rule, but I'm absolutely certain that I used to sync between more than 3 devices at some time.

I mean, it's kind of Dropbox's thing to be able to do that. Three is also the absolute minimum to make Dropbox Dropbox. If it was two, it'd be a file transfer protocol between two machines. If it was one, it'd be storage.

Sure I'm not a paying customer so I guess they can technically do this ... But to silently downgrade a user's account to what basically amounts to the minimal setting to demo the service, nah that's just shitty. It's just squeezing out my free account to convince me to convert to a paid account.

Which I guess is their right, but the proper decent way to go about that is to make the paid option that much more desirable that you want to convert, not to squeeze out the features of the free users.

Anyone know when this changed? (It could be years, I don't install Dropbox that often)

<comment><USER13> DISCLAIMER: No association with Dropbox.

There's no real justification for outrage over a free product/service. They've paid your cloud storage and associated compute bills, and continue to pay for it, for whatever your usage is - effectively paying you - which _should_ be incentive enough.

VC funded startups have (wrongfully) conditioned users into expecting the moon for $0.

Just flipping the tables a bit - if you ever build your own product/service, wouldn't you want payment for the value it offers to customers?

</comment></comment><comment><USER14> Fuck em. I've learned my lesson and set up my own nextcloud instance. Couldn't be happier, definitely not going back!

<comment><USER15> Likewise! Been running the snap version on a $5 DO droplet for half a year now and there's been nothing making me want to go back.

Sure the UX can be improved a bit, but it's been rock solid so far and gets the job done.

<comment><USER16> Check out the storage servers at time4vps. I have 1TB for about $15/quarter.

<comment><USER17> That's about the same as Dropbox — do they offer versioning and minimum retention periods?

<comment><USER18> It's literally half than Dropbox, which costs €10 per month (so €30 per quarter) in its Plus variant. And that's if you pay per year; monthly payment costs €12 per month.

<comment><USER17> Half as much for half as much storage unless there's some pricing page adjustments going on.

</comment></comment></comment></comment></comment></comment><comment><USER19> Dropbox squandered all their initial goodwill & completely lost sight of what made them appealing in the first place.

Plus both my logins seem to be broken now anyway - in different ways. One just straight up refuses my pass manager saved password, the other accepts it then wants a 2FA then proceeds to refuse the password that it initially accepted.

I'll take somewhere else...

<comment><USER20> That sounds like something is wrong with your password manager (as in _you_ didn't store your url or update your password correctly).

If you're saying Dropbox's password store process has been compromised, this would be a big accusation to make with your single data point.

</comment></comment><comment><USER21> Can someone explain to me why the choice of filesystem mattered? I would have thought that Dropbox could exist entirely in userspace with FUSE and wouldn't need anything as low-level as direct filesystem stuff.

(I'm speaking out of ignorance both on how Dropbox and filesystems work).

<comment><USER22> This is a very thorough explanation of why it matters [https://danluu.com/deconstruct-files/](https://danluu.com/deconstruct-files/)

<comment><USER21> Ah, this was a good read. Always eye-opening to see how ignorant I am to a lot of stuff in comp-sci :).

Thanks!

</comment></comment></comment><comment><USER23> > The reason cited for this was that "a supported file system is required as > Dropbox relies on extended attributes (X-attrs) to identify files in the > Dropbox folder and keep them in sync".

Given that extended attributes are available in most of the filesystems used in Linux today, Dropbox still hasn't answered why they decided to go "ext4-only" for a while.

<comment><USER24> Probably since desktop Linux users are a tiny fraction of their user base, but create the most headaches and internet outrage.

<comment><USER25> Relevant discussion: " _Linux users were only 0.1% of sales but 20% of crashes and tickets_ "[1]

I feel like in open source this tends to work itself out with community patches, but with closed source it can become a real pain.

1\. [https://news.ycombinator.com/item?id=18845205](https://news.ycombinator.com/item?id=18845205)

<comment><USER26> I think what they may not consider is teams that have a small number of Linux users. In that case, Linux support could be required for the team to use Dropbox, even if the actual number of Linux devices is small.

My point being that the 0.1% of sales might be true per device, but "supporting Linux" might actually bring more revenue than just the devices themselves would indicate because the whole team's revenue would be lost if they didn't support Linux.

<comment><USER27> Doubtful. I work for a major Dropbox competitor and we don't have any Linux support. We aren't loosing any sales over Linux, nor are we under any pressure for Linux support.

Typically Linux support in products like this is organic: It happens when the engineers themselves use Linux and push upwards to support it.

Anyway, with the amount of testing and verification we do on our product, desktop Linux is impractical. We try to verify on as many possible user configurations as possible. (Multiple Windows versions, 32-bit and 64-bit, Multiple Mac versions, remote desktop, ect). Linux is so heterogeneous that we could only really support it if it was a large customer where we targeted their typical configurations.

<comment><USER28> > We aren't loosing any sales over Linux

How would you know if you were?

<comment><USER17> "We decided to go with <other vendor> because they have Linux support"

"The sales team says that's a requirement for the companies they're talking to"

"Competitor X has Linux support and they're growing faster with no other obvious explanation"

<comment><USER29> Most customers never contact your sales team in the first place if they see that you do not support their stuff.

<comment><USER17> This very much depends on the product but note that is exactly why I listed other possibilities. If Linux support was a big opportunity they'd know — maybe not precisely but enough to know it was hurting them.

I've been using Linux for around 25 years, some of that selling commercial software and most buying. There's a very noisy contingent of the community who make a lot of noise but never actually buy anything. You'll go broke chasing their feature requests because there's always one more thing before they can switch.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER30> It was a stupid and arbitrary decision to begin with. Glad support is back but I don't think I'll be back.

</comment><comment><USER31> Too late. I have left Dropbox because of their stance on Linux filesystems, price bump with unnecessary features, and the continuous badgering to upgrade to Dropbox business.

It's great change though for those who are still on Dropbox. Their sync is top-notch.

<comment><USER32> I'm also a Dropbox on Linux user, are there other cloud storage services with better Linux client support? I was considering Google Drive but it doesn't seem to support Linux at all.

<comment><USER33> "are there other cloud storage services with better Linux client support?"

My habit, of course, is to gently remind the reader of the existence of rsync.net[1][2][3] which, I hope, is the service that perfectly matches your unix/linux use-cases.

But in this comment thread, and to my parent specifically: I am genuinely curious - have you not ever heard of our service ? Very interested to learn this ...

[1] [https://www.rsync.net/platform.html](https://www.rsync.net/platform.html)

[2] [https://www.rsync.net/resources/howto/remote_commands.html](https://www.rsync.net/resources/howto/remote_commands.html)

[3] [https://www.rsync.net/resources/howto/unix.html](https://www.rsync.net/resources/howto/unix.html)

<comment><USER32> "have you not ever heard of our service?"

No I hadn't heard of rsync.net before. I even browsed a few 'listicles' and didn't come across it. I admit even if I had, I'd tend to lean towards more established clouds. But I'll certainly take a peek now since it seems to fit my bill. Thanks for the reminder.

<comment><USER33> "I admit even if I had, I'd tend to lean towards more established clouds."

Early winter of this year will mark 18 years that we've been providing cloud storage ... although it wasn't _called_ cloud storage until we created the "rsync.net" corporate entity in 2005 ...

We'll be around if you decide to check us out :)

</comment></comment></comment></comment></comment><comment><USER34> And now Dropbox runs a background web server so they can serve their web-based UI, at least on Windows. I can't believe how none of these huge companies that burn through cash like there is no tomorrow can't afford to pay an intern to write an easy-to-maintain native UI for these simple "dashboard" applications. Ugh.

<comment><USER35> What makes you think an intern would be able to do this? A few of them might, but I imagine most wouldn't. Being able to make something easy to maintain means knowing what is difficult to maintain. Except for the sharpest, who actively learn from others, the best teacher is experience.

<comment><USER34> I fully intended that as hyperbole, but the idea was "use ready-to-use native widgets/controls to represent options/state" with as little "custom" UX as possible. The __user-visible __Dropbox UI is nothing more than a preferences dialog, the real "app" can be written by experts with 30 years of service and systems software expertise under their belts: it runs as an invisible background service using APIs for which well-supported cross-platform abstractions are readily available for all non-interpreted (and most interpreted) languages (inotify, channels, network io, encryption, compression, database serialization, etc).

The preferences and configuration panel is not what anyone thinks of when you say "Dropbox" and does not need to be "let's use css/html to create a custom UI that does not conform to the system ux guidelines so we can shove our branding down users' throats," in turn necessitating "now we need to use a full-blown browser engine to render the UI and an always-running standalone web server to interface with the background service to get backup status and information."

I've been using Dropbox since its first public (beta?) release on multiple different platforms, both supported and unsupported. I uninstalled the application three or four days ago when I found that background process lurking on my PC (in addition to the other background Dropbox processes which I _did_ expect to see). If their application is turning into a web app, I can already use my main browser for that.

</comment></comment></comment><comment><USER36> What a mess. Product mistakes like this generally show that the company is either desperate, or unaware of their customers. I use xfs on Arch, and dumped Dropbox for Google Drive (with Insync) the second they made this announcement. It would be a pain to migrate back, so I won't.

<comment><USER37> > What a mess. Product mistakes like this generally show that the company is > either desperate, or unaware of their customers.

They were very much aware of their customers. They just didn't care.

They intentionally decided to break working customer-setups, thinking it was somehow "ok" just because they got a heads-up warning.

Completely disrespectful. I left for Nextcloud, and I'm not coming back.

</comment></comment><comment><USER38> After fighting with Box for a bit today I'm really happy that Dropbox still exists.

<comment><USER39> What issues did you have with Box? I was considering trying them

</comment></comment><comment><USER40> Why would users of those file systems trust Dropbox not to just remove support again?

<comment><USER41> It would be a bit absurd to remove support in the near future. It would make them seem very flaky.

<comment><USER42> I'd say they got their money's worth the first time, what with the facially obvious false explanation

</comment></comment></comment><comment><USER43> Syncthing is open source and works great - windows, osx, linux, etc...

<comment><USER37> But not iOS.

So for me that means Nextcloud. And that works pretty great too!

<comment><USER44> I can't tell you how much it pains me that syncthing doesn't support iOS. I would donate money to a project that added iOS syncthing support.

<comment><USER43> I've used ios fsync() for some time.

</comment></comment></comment></comment><comment><USER45> I realize there's a lot of speculation happening here, but as a long time (since beta) user who was not looking forward to moving because of the plummeting Linux support...Thank You.

</comment><comment><USER46> Also too late here. As a big fan I was bummed to be forced to leave the free plan. This and the 3 device limit were a deal breaker. Now I'm onto syncthing and keybase FS.

</comment><comment><USER47> To compensate for supporting more filesystems on Linux, they are now switching to a file manager-like application instead of the unobtrusive just-sync current option:

[https://arstechnica.com/gadgets/2019/07/dropbox-silently- ins...](https://arstechnica.com/gadgets/2019/07/dropbox-silently-installs-new- file-manager-app-on-users-systems/)

Luckily they haven't ported it to Linux yet :)

<comment><USER48> "Due to an error, some users were accidentally exposed to the new app for a short period of time."

</comment></comment><comment><USER49> Interesting. I absolutely love DB sync on Linux, but I cleared my data yesterday. I got tired of dealing with the ecryptfs situation and couldn't go all in on DB because of the 2TB cap. I ended up going with Amazon Drive plus ExpanDrive for now.

</comment><comment><USER50> I really hope this means they will add support for SmartSync on Linux.

That is the one new killer feature. Paper and the rest are not interesting to me.

Oh, and they need to turn on full text searching inside files for paid Dropbox Plus accounts. That is a ridiculous crippling.

</comment><comment><USER51> I wouldn't go back even if they brought back the public folder.

</comment><comment><USER52> Seems to be working just fine on the eCryptFS setup I have on an older laptop (which I stopped using a few months back). All we need now are ARM versions of the client.

</comment><comment><USER53> Why not supporting EL7? Is it that demanding? I am running dropbox on a docker container full of hacks and tweaks...

</comment><comment><USER54> Meh, I've already moved on to other tools.

</comment><comment><USER55> OK now I can go back from MEGA

<comment><USER41> Why is Dropbox better for you than MEGA?

<comment><USER55> it's only the paranoia in me of a New Zealand company founded by a guy much resembling John Mcafee in madness vs a publicly traded USA comp</comment></comment></comment>


Why Bigger Isn't Always Better with GANs and AI Art - <AUTHOR> https://www.artnome.com/news/2018/11/14/helena-sarin-why-bigger-isnt-always-better-with-gans-and-ai-art <comment><USER2> Great article! Thanks for the writeup, resources and introducing me to Helena Sarin.

I've been wanting to get into GANs but I've really been turned off by the samey-ness of the work I've been seeing. I'm afraid I'd spend a ton of time getting everything set up only to end up creating more 512x512 jpgs that look like everything else everyone else is making. Helena's work makes me want to give it another shot though.

To me, it really feels like AI-generated artwork is in that hype phase you see with any new tech used in art. Would that work from Obvious sold for nearly half a million dollars if it wasn't a GAN-generated work? Probably not. I'm looking forward to the day an AI work gets that much attention because it's compelling all on its own, not just because of how it was made.

</comment><comment><USER3> For comparison, here's a web app that lets you play with BigGAN:

[https://ganbreeder.app/](https://ganbreeder.app/)

<comment><USER4> appears to be down?

</comment></comment><comment><USER5> One way forward would be _retraining_ the official BigGAN models. You may not have enough compute to train BigGAN from scratch, but you may have enough to finetune/retrain it on a new dataset to get the best of both worlds.

There's an attempt at implementing BigGAN in PyTorch ([https://github.com/AaronLeong/BigGAN- pytorch](https://github.com/AaronLeong/BigGAN-pytorch)) - anyone know how to load & retrain a TF model in that ([https://github.com/AaronLeong/BigGAN- pytorch/issues/2](https://github.com/AaronLeong/BigGAN-pytorch/issues/2))? :)

</comment><comment><USER6> Main point: bigger GANs like BIGGAN don't let you train with your own images because they're so expensive to train. So everyone is creating art from the same pretrained model (and it'll presumably all look somewhat similar)

<comment><USER5> > bigger GANs like BIGGAN don't let you train with your own images because > they're so expensive to train.

I don't think we know that. They're super-expensive to train from scratch, but there have been few experiments investigating GAN transfer learning. In my own very simple personal experiments, when I trained a ProGAN on one anime character's faces and then retrained it on a second anime character's faces (Asuka->Holo), it adapted very quickly and successfully; so I suspect that the released BigGAN models might be retrainable with a tiny fraction of the resources. Training on your own photos should be doable.

The real reason that everyone is using the BigGAN models and not retraining them is because, well, there's no way to retrain them! The BigGAN source wasn't released, and the only implementation so far doesn't support loading them and retraining. So you can't do it, no matter how much you want to, unless you are so good at TF/PyTorch that you can program it yourself. Which apparently no one has so far.</comment></comment>