skysight-inc/HackerNews huggingface dataset:
Why is it ridiculous? Wikipedia really isn't that expensive to run and clearly they have no problem raising the money. Funding based on volunteer donations seems a very equitable and reasonable way to fund something like Wikipedia - if it were to become totally useless for some reason people would stop donating, and that's good. If it was funded by the UN it'd become a zombie organisation that could never die even if it became irrelevant.

If anything Wikipedia is an example of the opposite problem - a charity that is too successful. Do you really think 300 people are needed to maintain the Wikipedia servers and software? No, of course not, the Wikimedia organisation has grown massively over time and almost all of those staff are working on things the average Wikipedia donator wouldn't even recognise.

I stopped donating to Wikipedia a long time ago, because it was clear that their fund-raising drives had stopped being connected to what the organisation actually needed to perform its mission and simply become a way to channel people's love for the work they had themselves produced together into a giant and very expensive party for a self-important management class.
GDPR does not prohibit tracking. GDPR prohibits not disclosing that you're doing it (and naming 3rd parties that you use).

I like to look at it as a rethink moment for when you build in the mechanism to track. Do I really need this? Is there data I don't need to collect here? Do I need a user's consent?
Better is not universal nor uniformly distributed, therefore evolution occurs, therefore death has adaptive value even in otherwise ideal conditions, and there is no reason to believe in truly ideal conditions even assuming arbitrarily high technology.
I haven’t checked but I wouldn’t be surprised if they are duplicated.

(Edit to add: if this done, it’ll be part of the link-time optimization step, which I think is relatively new in all the major C++ compilers.)

If you include debugging symbols, there will probably be multiple copies of the duplicated code just because it has different names.

You certainly should be able to merge duplicated functions after stripping symbols but I don’t know if that’s a standard thing. I’ve definitely been disappointed in the past by the performance of “dead code stripping” optimization. It’s not quite as trivial a problem as it sounds because when you have groups of functions that call each other, you need to unify two graphs rather than just look for individual identical blobs. The obvious implementation (multiple passes looking for identical leaf functions) is slow and will miss some cases.
Agreed.

The closest they've come was when they started limiting app access to the account to two devices. I almost pulled the trigger. If they lower it to one device, I will strongly consider paying.

There is one big thorn in my side though. It is their synchronization. Way too often I end up with two conflicting notes. They get sent to different places and they are not linked together. Before starting to pay, I will give on the of the Evernote alternatives a try, solely because their synch sucks. I understand that synch is a difficult feature, but at least try to make the post-conflict user experience more pleasant. Cross-link the conflicting notes at least.

Another problem for me is their text handling of lists. Eery so often, after I paste something in, bullet points appear or disappear. Things get merged in and are impossible to de-indent. It feels lie Microsoft Word from 1998.
Barely readable but I think there's a lot of optimization going on here... I don't think that optimization is done correctly but that is why it's hard to read.
std::vector<std::string> is a pointer-chase cache-miss every compare.

In my testing unordered_map is faster so long as numberOfStrings > stringLength. This true for any size string greater than roughly 4. As stringLength grows the unordered_set advantage grows.

Original post says vector is faster until 75 elements. By my test the unordered_set is 4x faster with 64 char strings/75 elements. At 250 numberOfStrings its ~10x faster.

Sorted vectors + binary search are very very good though. Author said vector faster until 20,000 elements. My testing finds the numberOfStrings > stringLength limit is still basically true. But the unordered_set's advantage grows only to 1.9x by 20,000 numberOfStrings.

This advantage will grow as number of matches / near-matches grows. Random strings are not a great test case. Data sets matter!

Author is fixing a couple of bugs and will be updating their post. Curious to see if his updated results match mine. :)
Hi!

Happy to share some more information to clear up some comments here - We're a publicly traded company with 3000+ employees worldwide and a very much independent!

To see more information about our working environment for the roles mentioned here - You can check out Glassdoor for our Berlin reviews (https://www.glassdoor.com/Reviews/HelloFresh-Berlin-Reviews-...).
I generally just start down my favorite path and then use the additional data to decide if I should switch paths or make that 51st path that I didn't think about when I had less data to go off of. Being flexible has generally worked in my favor.
If it's anonymised well enough it wouldn't be possible to delete it, which may well be the case.
I have a lot of issues with this blog post:

- Compiler, c++ library, compilation options, and platform are missing

- The author doesn't benchmark vector and unordered_map insertions with reserve()

- If I read correctly, the author benchmarks up to 32,768 items. This is way too low. There should be tests with millions of entries.

- Random string/numbers isn't a realistic scenario and very favourable to unordered_map. I would use data from real life examples, e.g. list of cities, list of people, etc.

- Ordered arrays are missing from the benchmark (e.g. boost::container::flat_set), it's a very powerful data structure. Why just do a sorted vector at the end?

- Vector outperforms unordered_set probably because of the hashing function used.
While I definitely agree that there are large privacy concerns when collecting health related data, I disagree with the sentiment that it's always a bad idea. There is a huge net benefit to modernizing medicine and getting to an AI that is more accurate then doctors. Creating those datasets is a leap towards that direction.
To be more specific, most tests are designed around venous blood samples. Theranos' finger-prick would gather blood from capillaries in the finger, where the vessels are very narrow (changing the balance between blood cells and plasma) and also where diffusive processes into and out of cells are extremely active - and so assays like blood glucose level may be significantly off from what you would see in a venous draw, if for example your finger is curently burning a lot of energy ...
There's an optimization that targets specifically this case: identical code folding. It's not safe in general, because the standard requires that the different versions must have different addresses, but if the compiler can prove that at least one of the functions doesn't have its address taken (or if the user passes in a flag saying "no, I don't care about that bit of the standard"), they can be merged.
Probably. I wonder though if they are trying not to use any libraries and Image was just easier than xhr.
>The US has freedom of speech like no other in the world.

The fundamental communication issue there is that the EU is not the US, not culturally or in history. Freedom, and as a consequence, Freedom of Speech, are defined different here. Or in some cases you have Freedom of Opinion not Freedom of Speech.

People in Europe have simply agreed that in polite and free society, certain speech is not desirable and corrodes the fundamentals of our democratic process and values.

People in the US think that all speed is allowed or else you corrode the fundamentals of their democratic process and values.

Both opinions are valid. But people in the EU will think that the US isn't doing free speech well and people in the US will think the EU isn't doing free speech well. Ultimately, neither of those is the objectively right way to do freedom because there is none.
It's just a pile of functions; no actual processes are scripted to execute.
Page opens to geoip set language with no obvious way to change it... so I gave up.
Hacker News was launched 2007.

XMLHttpRequest has been around for about 7 years then and using it was called Ajax for about 2 years already.
Why do you think your churn rate is high? Do you know ow what is the average churn rate of other apps or similar apps? (No, your churn rate is not that bad, it is normal in apps). Another good question is the life time value of each customer and how long your users stay in your app (like since they installed it until they uninstalled it). Create an engagement metric for user use case and try to I prove it, more engage means less churn.

Focus on your target market and measure the churn rate in your target market. Forget the rest of the users, those are noise. Develop what you need for your target market.
It removes the brackets and the return keyword, const is in fact a constant but this not ES6 it is just doing a function expression instead a function declaration (you create a const variable and assign an anonymous function to it instead of using the keyword 'function')

This is used for readability and to avoid hoisting that can be confusing.
How are two mechanically separate components "the same unit" exactly ?

The Puffin displays are replicable, which is how Pegasus crossings work (a person on a horse obviously can't reach down to the level of a pedestrian button, the crossing is functionally similar to a Puffin but adds a picture of a horse & rider, and is replicated higher up the pole)
"In July 1838, Charles Darwin, then 29, sat down to make a decision that would alter the course of his life [...] Should he get married?"

Incidentally, Kierkegaard kinda tried to answer this question 5 years later in Either/Or. A couple of related snippets:

"I see it all perfectly; there are two possible situations — one can either do this or that. My honest opinion and my friendly advice is this: do it or do not do it — you will regret both" [0]

And a more long-winded version:

"Marry, and you will regret it; don’t marry, you will also regret it; marry or don’t marry, you will regret it either way. Laugh at the world’s foolishness, you will regret it; weep over it, you will regret that too; laugh at the world’s foolishness or weep over it, you will regret both. Believe a woman, you will regret it; believe her not, you will also regret it… Hang yourself, you will regret it; do not hang yourself, and you will regret that too; hang yourself or don’t hang yourself, you’ll regret it either way; whether you hang yourself or do not hang yourself, you will regret both. This, gentlemen, is the essence of all philosophy" [1]

[0] https://www.goodreads.com/quotes/28780-i-see-it-all-perfectl...

[1]https://www.goodreads.com/quotes/7141047-marry-and-you-will-...
gmail at 158, facebook at 56.

I don't think React is the problem.
I think you have a very good point, and one the term 'Sitzfleisch' kinda misses. The point is to be actually productive, not just to be seen working long hours - the 'ass in seat' mentality. The former actually actually achieves something, the latter mostly wastes your time, but is a low-effort way to stay in a job where management has a hard time measuring actual progress. It's a pathological way to game a system that can only reward perceived effort.
You can't contain me: elevation-of-privilege vulnerability in Docker for Windows
This is completely useless if you don't mention what STL library version you're using.

C++ sets define the interfaces and not the implementation.
For the record, jQuery 3.3.1 (production, normal) is at 30kb [1]; if you don't want effects (production, slim), you can get it for less than 24kb [2]. For the value it provides, that does not sound "too big" to me.

[1]: https://code.jquery.com/jquery-3.3.1.min.js
[2]: https://code.jquery.com/jquery-3.3.1.slim.min.js
‘Five Eyes’ nations quietly demand government access to encrypted data
SOUNDBOKS Searching for React Native Developer
Or something that has features?
tldr;

internet/smartphone success comes from low hanging fruit made possible by revolutions in communication technology. it does not translate to hard domains like biomedical science. these problems are legitimately hard. and quite orthogonal to soda and chatbots.
I wonder how Gmail as it originally came out (during the invite-only stage) compares to Gmail now? That already had a lot of the functionality (but not, say, chat).

Of course, it's rather difficult to go back in time to measure the old interface now.
> function addClass (el, cl) { if (el) { var a = el.className.split(' '); if (!afind(cl, a)) { a.unshift(cl); el.className = a.join(' ')}} }

Why does it use `unshift` rather than `push` ?

The only reason I can think of is that the last class added will be faster to remove when iterating over the array...
I came to conclusion that the smaller the obvious difference between the two options, the less the choice matters.

The actual decision can matter a lot, but if you don't know, then it, unfortunately, depends on luck.

We tend to worry about the future, so we tend to think about decisions by the way they will affect us in the future. But the truth is you can have all four options, including obviously correct decisions that lead to small or no difference in outcome, as well as very unclear decisions that lead to big difference in outcome.

I think you should just focus on the decision itself, make sure you have all the information, and if the two options come very close to each other, just make the call, regardless how big the influence of the decision on your life is going to be.
No, the sad chapter in human history was the era of fiat money in whereby governments monopolized and printed/inflated money supplies unchecked and without recourse. Thankfully that era is over, there is now competition in money itself which will help to peacefully remove this dangerous tool which has resulted in economic devastation & disparity worldwide; not to mention its financing of black ops, wars, cartels, and the grandest scams of all.
Ya, well, at this point this is no surprise. They were finished long ago.
Might be useful to add "mobile" before "carriers" in the title. It's still bad, but not as bad as if wired ISPs were doing it, since mobile carriers (usually) tell the customers that they throttle, and under what circumstances.
youtube has cctv4 shows going back years and also livestreams

https://m.youtube.com/user/cctvch

i learnt chinese pretty much just watching Homeland Dreamland 远方的家 and Across China 走遍中国 from about 2016 to mid 2017 after which i was able to watch purely chinese shows without english subtitles

these are travel and tech shows so you learn about people places and lot more than just the language

also keeps it fresh and never boring so you never lose motivation for long

100s of hours of content all dual subtitled
But I thought we were talking about different things. Mainly the value of the car after 8-10 years, long after any warranty expires. Low priced cars don't have much resale value after a decade because they had lower value as new. And that's a lot of money saved with the initial purchase.

But when it comes to warranty you should take care, people imagine this is like the warranty on their phone. It's not, basically it says the body won't rust. The rest is covered by dozens of other clauses that more or less just guarantee than almost nothing gets replaced under warranty.
function aeach (fn, a) { return Array.prototype.forEach.call(a, fn) }

Does this win anything over using forEach directly?
This style is very similar to one which is used by expert C programmers, it seems that most people that write like this have had experience writing parsers and compilers too. It's not their fault that most people don't just think purely in terms of function composition :P
> "I feel way more in control of fiat then of crypto."

I have to agree. I know it wasn't meant to turn out this way, but with crypto almost all the wealth and power has been concentrated in the hands of a tiny number of unelected often anonymous and largely corrupt individuals. At least with the government we have (limited) role in their selection, know who they are, and let's face it they're almost certainly less corrupt than the shady characters now in control of crypto.
Flat sets are great.

By writing my own implementation (to avoid boost dependency) I kinda understood why they aren't standard: iterators have different invalidation rules and some special sorted-vector-derived useful properties, the map/multimap keys can't be const as in other standard associative containers, etc.
Yeah, a callback approach like this is actually one of common strategies for data structures implemented in C. Others include a requirement that both the key and value should be byte sequences or equivalent (you can always `memcpy` primitives from/to byte sequences).
I am totally fine with PCs, which allow me to install any OS I prefer. And I am totally fine with smartphones, which allow me to flash any ROM I prefer. This way I get both, secure hardware and private software.
Premium business card template
Your code is not more readable, it is just shorter.

In fact, using the online babel transpiler, it transpiles the es6 version you provided precisely into hn's version:

https://bit.ly/2MPmjK7

To use es6 to achieve what this tiny piece of javascript could already do, you probably need to introduce some tremendous dependency like babel just to be compatible with all kinds of weird browsers out there. What does es6 give here? Not very much in my opinion.
This large scale data analytics is probable the best (or at least usually fastest) way to solve the worlds big health challenges I would guess. Nobody forced anyone to wear a smart watch or health tracker. I for one thinks the world is slightly better off because of companies like Fitbit!
This is interesting, but it's not the whole story. Apps that are media heavy can often use large amounts of memory outside the JavaScript heap.

E.g., if you load and decode a 3MB MP3 with the Web Audio API you can easily find yourself swallowing 30MB of RAM, depending upon the uncompressed sample rate. Another example: image decompression can lead to large amounts of GPU memory being swallowed.

You can see the effect of situations like this by using Chrome Task Manager, which will give you a more realistic view of total memory usage by a page.
Show HN: Unwelcome Gaze – Visualizing Google, Facebook, and Amazon
For longish strings (length 64 qualifies), binary_search is missing an important optimization: it ends up walking the same prefix over and over.

A better algorithm is called "radix quicksort with a three-way partition." Rather than the classical qsort < and >= partition, you maintain three regions of <, =, and >. Crucially, at each step, you sort based only on a single character: the whole range via the first char, then the = region via the second char, then that = region via the third char, etc. This allows for super-fast comparisons without re-walking prefixes.

All of these data structures (std::binary_search, std::set, and and set::unordered_set) are quite sub-optimal. The design of unordered_set with closed-hashing separately-allocated buckets is especially distressing.

For a much more efficient take, see LLVM's DenseSet which does NOT separately allocate buckets. This burdens the client with finding two values to represent empty and tombstone entries, but if perf is a concern that's much better than additional mallocs.
Not my experience. Further, while it doesn't happen routinely, it's definitely not uncommon for me to end up with a nice big bruise at the site of the blood draw. I know which one I'd pick given the choice.
> Europeans drink alot of wine. Just sayin’

I really wish scientist would stop “just sayin’” things like this. With all this value in data and possible contributions to the understanding of our vascular system, I find it quite dangerous to counter that with the suggestion that drinking alcohol is a healthy option to reduce stress.
I hadn't seen that. Thanks.

It's a great review. But I've read much of the covered literature. And I'm not aware of anything published which shows traffic analysis being effective in practice. On the actual Tor network. If there is, I'd love to see it.

Also, as I've said, it's dangerous to rely solely on Tor. It's trivial to identify all Tor users, from ISP data. And with a honeypot website or .onion site, an adversary can modulate to help with traffic analysis. But if users are hitting Tor through nested VPN chains, the universe of traffic to analyze becomes much larger. And so false positives interfere with correlation.
Cycle commuter (30km+ each way) here in Tokyo.

I find yelling effective, but this might just be of my location where music is played at a reasonable level. Don't need to move my hands to activate and easy to modulate from "passing through" to "I'm here, don't back into me!".

Another effective item is a 1,400 lumen lamp. Set to strobe as needed.

You know, I would pay for something that integrates a two stage horn (announce or loud) and push to strobe lamp; remotely switched by buttons in the handlebar wrap on the brifter. (think electronic shifting buttons and remote shifting buttons).
> you're only fucked if your OPSEC is weak

The problem is that actually implementing not-weak OPSEC is much harder than most people understand (even those with technical backgrounds). For example, is your "secret" activity on TOR easily tied to your non-secret activity from a search of network entry/exit times (i.e. "secret" activity is the complement "non-secret" activity)?

I recommend Zoz's DEFCON talk, "Don't Fuck It Up!"[1], for a very good overview of how hard OPSEC has become.

[1] https://www.youtube.com/watch?v=J1q4Ir2J8P8
It seems some of the one-liners are simply renaming JavaScript built-ins like forEach to aeach and slice to acut. Maybe this is to make it look more like the Lisp backend? But taken on its own it does not really improve readability.
>The study was of dismissal rates, not redundancies. So none of the 50% reduction found in dismissals can be explained by redundancies.

The paper you linked specifically points out that unions reduce employee turnover, as mentioned because unions do try to work with companies, and as mentioned, try to keep workers employed. This fully explains a lower turnover rate. The paper however doesn't really go deep into that territory so I'm afraid you can't simply say that the explanation is invalid.

Specifically the paper mentions "Our data does not allow us to explicitly test for the channel by which individual trade union membership alters dismissal probabilities." So again, saying the paper finds that redundancy can't explain the reduction is simply incorrect.

>Your speculation about cops and teachers is also irrelevant,

It's not speculation, it's german employment and civil servant law, but thanks anyway. I'm merely raising the point that using teachers and cops are bad examples considering they don't have unions here.
I think the main reason this is somewhat readable is because there's hardly any code. Which is fine.
Also, I added example sentences to the flashcards (early version of the tool didn't have them) and it seemed to help with this problem. Still, all valid points and I appreciate your input :)
No, not really. More popular than ever if anything.
>"Anonymized". Just with the data posted above, it seems like it'd be pretty easy to correlate the data to a person.

Yep. Location at 3am tells you where they live, and you're basically done already.