skysight-inc/HackerNews huggingface dataset:
As a kind of note and response to all of your other responses, the issue isn't actually anonymization, but being able to correlate it with other data.

That is, if health data were anonymized, and was done right, and was made unable to be correlated with any other data, it likely would be sufficient. It's when you start allowing it to be correlated with personally identifiable things that it ceases to be anonymous.

That is, sure, let's take a case where you have a super rare genetic disorder. That, combined with the time in 2005 where you broke your leg, is sufficient to distinguish you from every other person in the country. In short, you have a unique health profile.

So what? Unless there is further information, that can't be traced to you. As an example, it's when we start saying "Ah, and the person is receiving treatment at (facility)" that we now know where you live. It's when we start correlating it with usernames that we start getting an internet trail. It's when we start correlating those with forum profiles that we get a real name, and now we know who you are.

The only other way someone could match that profile with you, is to have access to the profile, and to know you personally. Otherwise it links nowhere.

I agree the risk is huge; people don't do it right. But anonymous health profiles are -not- in and of themselves dangerous; it's when details linking them to further information leaks out that it's a problem.

But, pragmatically, while yes it would be incredibly hard...has anyone here read the rights they're signing away when they go to the doctor? Does everyone here trust every system a doctor uses, every system a health insurer uses, and every system used by marketers and researchers that the feds -do- allow to have access to this data? The real risk of Google would be that they could correlate it with so many other things about you; but the health insurers still have your medical history combined with all your PII.
The Internet has a content diversity problem
Running cable on poles or pulling it through conduit is much, much, much cheaper than fiddling around in someone's attic or crawlspace. The appointment has to be scheduled (i.e., the homeowner has to be there), you have to worry about the three hundred pounds of boxes they've got stored in the way, the crawl space or attic may be brutally hot or cold, have wasps, raw sewage, mud, or any number of other hazards. It's a slow and expensive job.
I'm trying to figure out how much effort went into this. I ran cloc, and here's what I got:

--------------------------------------------------------------------------------
Language files blank comment code
--------------------------------------------------------------------------------
Javascript 1803 66480 85484 423029
HTML 57 847 79 20374
SASS 19 21 8 12114
C++ 38 1011 763 7700
C/C++ Header 45 816 713 5165
CSS 16 133 27 777
PHP 36 330 1048 597
CoffeeScript 14 72 44 326
make 13 91 3 255
YAML 39 8 0 227
Bourne Shell 16 49 42 197
Python 1 32 7 125
m4 1 12 0 61
Bourne Again Shell 5 15 16 38
XML 1 0 0 18
Ruby 1 0 2 4
--------------------------------------------------------------------------------
SUM: 2105 69917 88236 471007
--------------------------------------------------------------------------------

Most of this is obviously third party code, but it looks like you wrote thousands of lines of PHP, plus a bunch of frontend code?

I'm not a web developer, but this seems like a day or two of work? That seems unreasonable to me, and I probably wouldn't have agreed to that level of commitment, especially if they were still interested in me after an interview.

Side note: in the webdev world, is it normal to have third party code mixed with stuff you wrote yourself? In C++ land most of the third party stuff would have gone in a contrib directory or something before being built into a library of some sort.
I hope they come with a helmet.
I don't see how nonlocal could fix this. Could you explain?

More specifically, given a better 'default arguments thing', how would you interpret:

x = [2]
def f(x=x*5):
x.append(4)

With the earlier conversion it's:

x = [2]
def f(x=DefaultArg):
if x is DefaultArg:
x = x*5
x.append(4)

This isn't going to work because the x inside of f() is different than the outside x, and you'll get the error message I mentioned.

If you add a nonlocal, as in:

x = [2]
def f(x=DefaultArg):
nonlocal x
if x is DefaultArg:
x = x*5
x.append(4)

then you'll get "SyntaxError: name 'x' is parameter and nonlocal".

What other solution are you thinking of?
I'm giving away 12 domains for a Bitcoin/cryptocurrency project
I've enjoyed the first couple rounds Surprised me with how it sucked me in. Nicely done!
There's a lot more to astrophysics than Newtonian mechanics. Stellar formation, element abundance, extraterrestrial geophysics, etc.

Have you played Frontier (Elite 2) at all? That seems to be what you're after. Much as I loved that game, the combat was awful. It came down to judging when to switch your autopilot on and off, because there was no way you could manually track your enemy as you passed by at 5000kph.
These are probably too fast (and powered) to be considered pedestrians. They'll like suffer the same limbo the Segway did, and end up with nowhere to go.
I've never hired anyone, so take my thoughts with a bucket of salt, but one concern I'd have is that there's just way too much code here. There only needed to be one or two PHP files for the whole app (assuming you were supposed to use PHP in the first place). If they're not a PHP shop, they likely look down on PHP with severe disdain (as many do) and so this may have led to some premature judgement.

Drawing the grid with Javascript wasn't necessary at all: that could have been pure HTML/CSS.

No use of jQuery is probably a red flag - not that it's inherently bad to avoid jQuery if you don't need it, but using it would have made your code substantially cleaner/easier to maintain. If a quick and dirty project like this is your assignment, I'd be a little concerned if you didn't install a tool that would help you complete it as quickly as possible - especially one that's (for better or worse) pretty much a given on any project that involves Javascript.

Finally, while I understand that you may not be a UI designer, there's a pretty severe lack of polish on this interface. Part of being a full-stack developer is being a front-end developer; part of being a front-end developer is some sense of design; and part of being a "senior" full-stack developer is being able to set a strong example across the entire stack (including the front-end). The arrow keys for navigation was a nice touch on the interaction side, but visually it was amateur hour.

I'm not a strong PHP developer so I won't speak to your back-end skills, but hopefully this has given you some perspective on why they made the decision they did. For what it's worth, I agree with their feedback. I know that's hard to hear, but just pick yourself back up and keep getting better.

In the mean-time, I suggest applying for lower-level positions. Find somewhere that will provide a good learning environment, alongside some strong senior developers that can mentor you without expecting you to perform at a senior level. Then, in a few years (or months if you're a quick study), get back on the horse and apply for some more senior positions. You'll get there someday.
The key to all things is "Keep it Simple".
Assuming you did this in a day or less I think your prospective employer kind of missed the point of the exercise. Turning out a (fairly well put-together) working prototype in this timeframe shows that you can code, your first-pass level of quality, and that you know how to prioritize.

The output of this project should have been a starting point for further discussion. Instead what you describe tells me the company you interviewed with is probably a "one-pass" (it's expected to be perfect the first time) shop and likely have loads of technical debt. Competent software shops understand the long term nature of development and the tradeoffs involved. They missed an important opportunity to learn about your true depth and ability to work with others by not having you do a paired refactoring of some aspect they didn't like.

Just as people are often bad at being the interviewees people can be equally as bad (or worse) interviewers. There are loads of jobs out there for you. Don't let things like this discourage you.
I agree that it's money. I agree that Silk Road facilitated money laundering. The plain text of the law in question doesn't cover Bitcoin, though. That doesn't mean the ruling was wrong.
These look like foot-sized Segways.
Thanks. I am a French expat in Hongkong
Sounds like it could be a bilateral (A/B) extortion game: celebrities pay to be delisted and hidden, and people pay to have access, and the extorter collects from both sides (and favors the "winner").

I'm surprised that some Valley wunderkind hasn't yet created what could be a profitable market (an evil one that I wouldn't touch with a ten-foot pole) for illicit Yes/No auctions, e.g. someone makes some decision whether or not to do something horrible based on whether more "Yes" or "No" dollars get bid, and collects from both sides. Travis Kalanick should get on that. It's a libertarian wet dream.
Thoughtrock ITIL certification trustworthy?
Anyone has experience with thoughtrock ITIL certification? The price seems too good to be true compared to the ones I have seen locally with a instructor led classroom and exam fees.
Most importantly I miss SFTP. There's already a github project for sftp, but at the moment it's almost unusable. https://github.com/jules-r/atom-sftp

I also really miss bracket highlighter, it's a super small tool, but very useful. You could tackle the bracket highlighter plugin, it might even be possible with pure less/css depending on if Atom already has this built-in.

And I miss being able to run a Python REPL in Atom. Python and JS are my main programming languages.
The other thing to keep in mind, especially for programmer types, is that the law is not a computer program. There is certainly argument around wording in law, no doubt, but the courts do try to consider the intent when making a ruling. ("Well, this is currency, but not the currency of Another Country, so... case dismissed." That might happen, but it also might not, because it's pretty clear that the author of the law wasn't imagining cryptocurrency when drafting it.)
I dabbled with pink sheets back in the late 90s. I had a little circle of friends online that I worked with to research the companies. We'd call up the companies and quiz their investor relations people, find everything we could on the backgrounds of the principals, and so on. That only goes so far though, and we narrowly dodged a bullet with a company that had like $140 in their checking account.

That whole world is so strange. It's kind of fun, in a way, but it's super risky.
siganakis's explanation is correct, with a minor caveat [0]. We do some clever things (diffing, compressing), but if large amounts of data are always changing, the network transfer will take time. We have folks comfortably using Domino with about 50GB of data in their project directories. And it's only the amount of data in the current revision -- not cumulative across all revisions -- that matters. Anyway, if you have a use case with more than ~50GB, let us know, we're eager to engineer a more advanced solution -- just haven't had the need yet ;)

If your code pulls data from a database (e.g., kelv's test cases), one option is to save the DB snapshot out to a file when the code runs. After we finish executing your code, we snapshot all the new/changed files in your working directory (we call those the "results" of the run). Using this approach, you'd have a record of the DB snapshot for each run of your tests. But, again... if your snapshot is more than 10s of GB, the network transfer time could get annoying.

[0] We treat the working directory as a git repo, but since git breaks down with large files, we only use it to track your directory structure; we store actual file contents elsewhere.
The man responsible for explaining OS and Network topics for masses. The professor who "attacked" programmer.

From Computer Networks Book DNS section

"Take the pro domain,for example. It is for qualified professionals. But who is a professional? Doctors
and lawyers clearly are professionals. But what about freelance photographers,piano teachers, magicians, plumbers, barbers, exterminators, tattoo artists, mercenaries, and prostitutes? Are these occupations eligible? According to whom?"
Is CYNK the new BitCoin? Inquiring minds want to know.

(I'm joking. It obviously is the new BitCoin, so maybe they'll crash and burn together.)
The Real Risk
I will switch when Atom gets more stable (I still encounter bugs everywhere), and more performant.

I have already developed a plugin for Atom, I hate the living shit out of Coffeescript, but I like Atom's API. It's a shame that the spacepen API was built in such a way that it's unbearable to write plugins with it in pure js.
I own two HD 280s: one at the office, one at home.
Regardless of its "technical" or "economic" definition, to the layman and all its users, Bitcoin is treated, traded, and consumed as money.

The exact origins of Bitcoin do not change its utility, which is as a unit of exchange, which is what money is in its most general and flexible definition.
The web is nice, but news sites need native apps too
cell.js line 21 actually does leak a global, its an undeclared var reference, and will be attached to window in the browser.
I was actually put off by the great pains they took to make them look cool in their video. It reminds me of the early promos for the Segway.
Perhaps framework was the wrong choice of word. I wouldn't call jQuery a framework, but it certainly would have helped. A library like Rivets.js or similar would have been great to see as well, since at that point there'd be (close to?) 0 manual DOM manipulation required (thus obviating the need for jQuery), and he could still keep the page weight easily under 10k.
How is fiber to the curb that helpful though? Why not just run it up and put the box on the side of the house like they currently do? This requires an extra modem.
Not to mention legal hooplah and potential billing. Digging up the streets requires permission from the city, and maybe you send them a bill for some of your services.

Digging up people's front lawns requires permission from every homeowner, and if you are offloading cost you have to bill each homeowner...
So using abstraction is not something a senior does ? It seems to me like the contrary. The more experience I have the more I like to abstract things instead of making them from scratch.
But even so it seems a bit heavy of judgement to disqualify me with such strong word over this choice.
Pinboard Turns Five
Not yet, they promised to work on performance after proper Windows support though.
Finding loopholes?
Yeah and more crap like Yo! and Make a Potato Salad kickstarters will get funded by people who have 20 bucks to waste. I am not hating on the idea because this isn't new at all. Spend 15 minutes on Alibaba and you'll see most of what most hardware kickstarters are sourcing their stuff. .. And yeah I watched the slickly edited video, but they aren't getting my money.

Also this has nothing to do with optimism vs pessimism, it's that stuff like this shouldn't be on hackerne,ws unless they really are hacking something/creating something/showing something innovative (semi innovative works also).
The angry masculine look of these isn't my style but I really like the idea. A 10 mile range is much better than I expected. I could see these becoming quite popular on college campuses.

I don't know about "zipping along the sidewalk" at 12mph -- that seems kind of rude anywhere there are pedestrians traveling at more pedestrian speeds. There is also an interesting gray area as far as traffic laws.
I've heard Bill Gates state this as one of his philanthropic goals; to fund things with a cost/benefit analysis that doesn't make sense in the developed world but does elsewhere.

I've worked with people involved in HIV vaccine trials overseas and, in fact, things really don't change as much as you might think.

The basic tenant "first do no harm" is ingrained at an many different ethical, institutional and legal levels that it isn't like you can, say, justify a more risky vaccine in an area with a higher risk for HIV or whatever.

In fact trials have been cut short and research into entire vectors (ie the cold virus used as a transport for the HIV related material) cut off when trials in Africa started to appear (statistically) to be slightly harmful in any way.

I feel this is a good thing. Scientists and medical people holding themselves to this high standard is the reason the anti-vaccine crowd really doesn't have a leg to stand on.
A suggestion to help you avoid building something out right now. Use a public Trello board. Add each idea as a card and have one card specific for people to comment on. The cards you add can go into a list called "potential stuff" and people can vote on them.

(This is kind of how to the Trello team works as well. They have a public dev board for people to see what's coming up and what's just been released.)

Good luck with the project. Thank you so much for this. It's extremely useful
> Tuples were supposed to have a structure (at least that's what all the rest of the world thinks of them)

No, a structure is, you know, a structure -- what C calls a struct. Python calls it a namedtuple. If some people call it just a tuple, well, that's a difference in terminology, but it doesn't mean Python is confused about the concepts, it's just using terminology you're not used to.

Also, if we're going to be pedantic about the meaning of data types, your blog post is wrong about lists. You say "position in the list doesn't matter", but that means ordering doesn't matter, and an unordered collection of similar objects is a set, not a list. Python makes this distinction clear: a list is ordered, a set is not.
1. When your comments are longer than your code, either you're putting in too many comments, or your code is too hard to read. (The former seems to be the case here.)

2. Why is the spacing convention all over the place in some files?
https://github.com/m4nuC/memGame/blob/master/app/controllers...
https://github.com/m4nuC/memGame/blob/master/app/database/mi...

3. Why are there so many folders that only have .gitignore's inside them? In fact, why are there so many folders at all?

4. In my glances at some of your files I didn't find a single function with a lot of "meat" inside it, so it doesn't show much about your ability to write something that actually does something.
The code didn't scream senior developer, but given the constraints it looks like you're an able developer and worth the time to at least interview.

Sorry for the bad experience, hope it turns out better.
A more important principle than "abstract everything away" is "write only what you need". You don't always need abstraction.
I'm not the one who came up with this quote, but it's a good one: the market can stay irrational longer than you can remain solvent. If you short it, and it triples in a day, you get hit with margin calls (put more money in the account, or close out in a loss). Margin calls are terrible things to have happen to you. They typically mean, "you lose a lot of money making bad trades where you have no choice in the matter". The meltdown of 2008 was heavily powered by margin calls creating a cascading failure that, while it started in the mortgage-backed derivate market, spread into a much larger set of financial markets.

People went bankrupt shorting the NASDAQ at 3000 in the '90s. They were right, but it didn't matter. Margin calls are bad.

Then, there are the hard-to-borrow stocks (people know it's rotten, and it becomes expensive to short it) and various edge cases that are resolved based on relationships (i.e. out of your favor, unless you sucked the right dicks in MBA school) and while those relationship-oriented, obviously-inefficient corner cases almost never happen with decent liquid stocks (for which the Efficient Market Hypothesis is close to true, unless your timeframe is microseconds) they happen all the time with shitty penny stocks.
Bitcoin is based of cryptography which is completely broken before implementation so, this would have to be a discussion about before time.

No one has experienced security.
The message you are responding to never mentioned abstraction. You did not address any of the (multiple) issues it did raise.
Without seeing the prompt they gave you and not knowing the context you would have gained from the technical interview, we're all just guessing here.

My guess is that they were expecting a much simpler application for a simple problem. Also for a JS game with a tiny backend, the Github project code is heavily weighted toward PHP (73% PHP vs 20% JS). Perhaps in their internal discussions, a word like "over-engineered" was brought up.

I'm not saying that it's bad code. It looks fine to me.

Other point is that the technical interview is a time to ask questions for the interviewee (when they allow). What is their development process? Do they iterate and prototype a lot, or is their process closer to waterfall? Assuming their stack is primarily PHP, do they use a framework? Do they follow MVC? Do they use a JS framework? Etc... Having known the answers to these questions would have helped you create an application that looked closer to their comfort zone. (Even if you don't know a coding test is coming, you still should want to know the answers to these questions so that you can know if you are getting into a situation where you might have to maintain old applications written in PHP 4, for instance.)
Funny you mention Trello, because that is what I'm using right now for all my ideas ;) I have lots of lists with cards for the different idea types. It's actually really nice because behind each card you can have notes, checklists, etc. So, as I'm researching the ideas I'm updating the cards.
I have run into this at least twice this week alone with both Nginx and HAProxy pointing at Amazon Elastic Load Balancers. Amazon occasionally rotates out IPs for ELBs, so everything's working fine for weeks and then boom, now we're having a bad day.
Agreed w/ honestfeedback.

- Overall project structure seems a bit unorganized IMO (no centralized build process, gulpfile inside subfolder). Overall this makes it fairly hard to dive right into the project. It might be my lack of experience in PHP project structure.

- I think pulling in a server & a db might be an overkill. Local storage will do the job perfectly.

- Mix of tabs & spaces is also very messy.

- Styling is pretty sloppy too I believe. No clear organization/reusability in the stylesheets.

- Vendor scripts/generated scripts should not be committed to the repo IMO. There're already bower & CDNjs & a bunch of other services.

- Your JS is also very module/singleton-based although some of them are clearly object-oriented. Also seems to be a mix of jQuery usage & DOM directly, why not 1?

I think what they're looking for is a couple of simple JS that's easily tested, maintained & expanded which IMO is more important for senior candidates. Less senior ones can always bang this out quickly but senior ones care way more about other attributes of a project than just getting it done asap.