Public Transport in Wuhan Suspended Due to Coronavirus Concerns - <AUTHOR> https://www.npr.org/sections/goatsandsoda/2020/01/22/798602296/public-transport-in-wuhan-suspended-due-to-coronavirus-concerns <comment><USER2> Earlier today, researchers at Imperial College in London estimated that a total of 4,000 cases of Coronavirus in Wuhan City (with an uncertainty range of 1,000 to 9,700) had onset of symptoms by January 18. This compares with a Chinese government report of 440 confirmed cases as of January 21: [https://www.imperial.ac.uk/mrc-global-infectious-disease- ana...](https://www.imperial.ac.uk/mrc-global-infectious-disease-analysis/news --wuhan-coronavirus/)

According to the Imperial College researchers: "Exit screening (which reportedly came into force on the 15th January) had no impact on exported cases reported up to 16th January. Exit screening may have reduced exports in recent days, in which case our baseline prediction may be an underestimate of the true number of cases in Wuhan."

The researchers also write: "We assume all cases in travelers flying to destinations outside mainland China are being detected at those destinations. This may well not be the case. If cases are being missed in other countries, our baseline prediction will underestimate the true number of cases in Wuhan."

If anyone has more recent or higher-quality data or information (especially if it contradicts the Imperial estimates), please post it here!

<comment><USER3> > Imperial College in London estimated that a total of 4,000 cases of > Coronavirus in Wuhan City (with an uncertainty range of 1,000 to 9,700)

This is an estimate with a whole bunch of assumptions (may or may not be true) and known factors and applied to a probabilistic formula (a very simple one too.) Some I'd say this is a very rough attempt.

The 440 confirmed cases released by the daily official press release is a fact, with all of them confirmed with lab tests and been quarantined. Those are live numbers: [https://3w.huanqiu.com/a/c36dc8/9CaKrnKp248?agt=8](https://3w.huanqiu.com/a/c36dc8/9CaKrnKp248?agt=8)

There is no reason to believe the simply probabilistic model would be accurate (this is also why they suggested that the accuracy is between 1000-9700, almost an order of magnitude difference). And there is no reason to believe their assumptions were right either.

So you are comparing Apples to Oranges.

The best modeling for estimates about infectious disease is to use ordinary differential equation (ODE) to model and estimate with a set of assumptions. It talks about why the ICL's model only applicable to the early stage of the outbreak.[1]

[1]: [https://mp.weixin.qq.com/s/Ab0fLOWr_9AvU4RA15rMCg](https://mp.weixin.qq.com/s/Ab0fLOWr_9AvU4RA15rMCg) (in Chinese)

<comment><USER4> Given the reports of patients being turned away from hospitals, and the images of flooded hospital corridors and ERs, it would be highly odd to conclude that the Chinese gov't "confirmed" cases represent the extent of those infected.

The _only_ accurate method at this point is a probabilistic method.

</comment></comment></comment><comment><USER5> China needs to crackdown on the ridiculous open air weird animal markets, and have people stop sleeping with their goddamned poultry. Seafood, fine -- no one's breathing in fish feces, getting some squid diseases. But birds, reptiles, weird shit like that running around contaminating the air people are breathing. I've seen it firsthand. Please, enough already.

It's demonstrably hurting their own interests at this point, after 3 recent outbreaks of world news-worthy diseases originating in such circumstances.

<comment><USER6> This sounds like a first-world comment, those open-air markets form because the merchants are subsistence farmers or people living outside the city without a lot of money and have to travel into the city. The farming in China isn't as industrialized or corporatized as in America and you will encounter poorer farmers or small traders who basically sell at these markets without having to spend a lot of money for rent because it isn't a high-margin business. Think farmers' market but filled with poor farmers. These merchants aren't forming open-air markets for fun, it's because they have to. If you force them out, then you will end up destroying poor people's lives.

The food and grocery companies in China who are selling in supermarkets are already in the supermarkets.

EDIT: I dislike eating 'exotic' meats and discourage the practice, however there's a fine line when you enforce the ban live animal market policy. Note that it has been enacted in Wuhan when the disease started. I also support stronger regulations and animal protections on these live animal markets and am not deflecting blame from these live animal markets but straight-up banning is not the right solution.

<comment><USER5> This sounds like an uber-liberal comment, from the mentality that no one should be blamed and no one should be made to change their behavior because it's not their fault. By that logic we would never be able to have any regulations at all.

There are objective health and safety standards that countries need to impose to move their development forward. As the other commenter stated below, when it affects others internationally is one such time when the need becomes painfully obvious. People will deal, and move forward. You underestimate how people will deal with it.

China overnight banned gasoline powered motorcycles and mopeds, in the name of public health. Show me how that destroyed the lives of millions of people.

Sometimes you can't live with all the excuses why it can't be done, and just do it and see why it can.

<comment><USER7> You need to come up with an alternative for people to keep getting their income, before imposing knee-jerk regulations. Which is something that I'd guess you've accused "uber-liberals" of before.

<comment><USER8> No, I don't think an alternative is necessary. It might be enough to say 'this harm is unacceptable; finding an alternative is the people's responsibility'.

For example, this is how the law treats people who sell drugs. Do you make the same argument re: drug dealers needing an alternative source of income before we criminalize it?

<comment><USER9> > Do you make the same argument re: drug dealers needing an alternative source > of income before we criminalize it?

Unfortunately, yes, I've seen people make that argument.

I've had people tell me drug dealing is the only job available to some people in some communities, thereby making it acceptable morally and it shouldn't be prosecuted criminally (at least not so harshly).

</comment></comment></comment></comment></comment></comment><comment><USER10> I've seen panic buying of face masks in Palo Alto and San Jose, mostly by people who appear of Chinese ancestry. I was doubtful on its efficacy, but it appears there is some benefit combined with hand-washing. It's probably a good idea to have hand sanitizer and face masks on-hand rather than waiting until they're sold out.

<comment><USER11> But it certainly has altruistic value: if you are a carrier, wearing a mask should greatly reduce the chance of infecting others.

</comment></comment><comment><USER12> Isn't this overreacting?

In the US, the common flu has killed up to 61,000 people each year. This new virus has so far only killed 15 as of 2020/1/22.

[https://www.cdc.gov/flu/about/burden/index.html](https://www.cdc.gov/flu/about/burden/index.html)

<comment><USER13> You have to look at the CFR(case fatality rate) and how wide it will be spreading.

For flu, case fatality rate is usually <0.1% [1]. As comparison, SARS in 2003 is 15% [2]. This time it's still developing (17 of 444 as of today[3]) so hard to know for sure, but nature of this 2019-nCoV virus is close to SARS.

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

[2] [https://www.who.int/csr/sars/archive/2003_05_07a/en/](https://www.who.int/csr/sars/archive/2003_05_07a/en/)

[3] [http://www.xinhuanet.com/english/2020-01/22/c_138727379.htm](http://www.xinhuanet.com/english/2020-01/22/c_138727379.htm)

</comment></comment><comment><USER14> It is reported that some Chinese are taking antipyretics to suppress symptoms of fever to evade quarantine checks, to get into other places like France (in traditional Chinese [1] and Google translated [2]), Japan (in traditional Chinese [3] and Google translated [4]) or other cities in China (in simplified Chinese [5]).

Edit: change one source.

[1]: [http://www.rfi.fr/tw/中國/20200122-武漢發熱女承認用退燒藥降溫後入境法國](http://www.rfi.fr/tw/中國/20200122-武漢發熱女承認用退燒藥降溫後入境法國)

[2]: [https://translate.google.com/translate?sl=auto&tl=en&u=http%...](https://translate.google.com/translate?sl=auto&tl=en&u=http%3A%2F%2Fwww.rfi.fr%2Ftw%2F中國%2F20200122-武漢發熱女承認用退燒藥降溫後入境法國)

[3]: [https://hk.on.cc/hk/bkn/cnt/news/20200116/bkn-20200116084329...](https://hk.on.cc/hk/bkn/cnt/news/20200116/bkn-20200116084329841-0116_00822_001.html)

[4]: [https://translate.google.com/translate?sl=auto&tl=en&u=https...](https://translate.google.com/translate?sl=auto&tl=en&u=https%3A%2F%2Fhk.on.cc%2Fhk%2Fbkn%2Fcnt%2Fnews%2F20200116%2Fbkn-20200116084329841-0116_00822_001.html)

[5]: [https://i.lih.kg/540/https://na.cx/i/U1uhtVv.jpg](https://i.lih.kg/540/https://na.cx/i/U1uhtVv.jpg)

<comment><USER15> Three of your four non-duplicative sources are LTN or LIHKG, which are both _extremely_ biased against China. I'd take what you're hearing with a grain of salt.

<comment><USER14> Thanks for explaining reasons for downvote.

I just changed one news source from LTN to a pro-Beijing news source Oriental Daily News, which reported the same news.

Also, although the image (1 out of 3 non-duplicative sources) is hosted and curated by LIHKG, the image is allegedly a screenshot on Weibo (Chinese twitter), which unfortunately is behind a login wall and hence must be screenshot.

I don't think Weibo is extremely biased _against_ China, unless you're questioning the authenticity of the image, which yourself could verify by searching 逃離武漢 on Weibo.

I hope people can engage in a civil discussion instead of/after downvoting.

</comment></comment></comment><comment><USER16> Given this SARS 1.5 has already spread around the world, what's the mathematics behind this?

</comment><comment><USER17> Think about people who went there as a tourist and are suffering.

</comment><comment><USER18> The last two books I read were Station 11 and Severance, and they make it tough not to be at least a little paranoid about this.

Great books, though.</comment>


Why can't you guys comment your fucking code? - <AUTHOR> https://www.reddit.com/r/MachineLearning/comments/6l2esd/d_why_cant_you_guys_comment_your_fucking_code/ <comment><USER2> I have to comment my code so future-me will understand it. I'm often grateful to 2-weeks-ago-me for them. But this awesome rant isn't actually about comments, it's about academic writing in general.

I've always thought that academic writing is designed to impress rather than educate. I haven't read much academic code, but it seems the trait has carried over.

I really can't stand code that is designed to make the programmer look smart. I stopped messing about with CodeWars for this reason. All this dick-measuring about how few instructions you can use to implement a problem _eyeroll_. It misses the important thing: when some poor sap comes back to maintain the code in 2 years' time, can they?

<comment><USER3> Believe me, very few grad students are writing code to "look smart".

First of all, coding isn't exactly a high class activity in most of academia. Any implementation that's not an uncommented mathematica notebook or matlab mess is in the top 1% of academic code.

Second of all, no one reads the code. So while there are incentives to intelli-obfuscate papers to trick naive reviewers, those incentives don't exist with code. (Oh, and it doesn't really work out well in papers either most of the time.)

<comment><USER4> Don't forget about the third type of shitty academic code: the gigantic pile of undocumented C++ that doesn't even build anymore.

</comment></comment></comment><comment><USER5> I hate to disagree but that's fairly clean code. It's not doing anything tricky or exceedingly clever, so the code speaks for itself. They're even polite enough to separate their implementation from their interface, which is rare for projects in dynamic languages. It reads like idiomatic, OO, pep8'd python. Python is basically executable pseudocode as it is, provided the method names and parameters convey the semantics of the code.

[https://github.com/facebookresearch/end-to-end- negotiator/bl...](https://github.com/facebookresearch/end-to-end- negotiator/blob/master/src/agent.py)

<comment><USER6> The code speaks for itself, so there is no way to confirm it works as intended. Because the intention is undocumented.

The code tells what the program does. The comments should state what it is supposed to be doing and why it should do it. When they don't match you have found a bug.

<comment><USER7> "Code never lies. Comments sometimes do."

I forget who that quote is attributed to.

</comment></comment></comment><comment><USER8> > When naming things, are you charged by the character? Do you get a bonus for > acronyms?

Funny you're saying this, because it took me a while to understand what you meant by "DL" (which is required to understand what code you're complaining about).

<comment><USER9> Kind of a hypocrite mentality. Uses abbreviations in a forum where others will read too. But a coder cant use abbreviations. Cool.

</comment></comment><comment><USER10> I'm not sure that (gasp!) comments are a good thing these days.

See "Comments are Lies" [http://www.codingblocks.net/podcast/clean-code- comments-are-...](http://www.codingblocks.net/podcast/clean-code-comments-are- lies/)

</comment><comment><USER11> I'm a programmer that hates to comment his code so I don't do it. Most programmers feel the same way. Basically the reason we don't do it is because we don't have to. I suspect the only way it will happen is if our code needs it to properly compile.

<comment><USER12> Strangely, I really like to comment my code, although it frustrates me that even the best IDEs have zero support for keeping comments up to date with the code.

Changing, say, a function should prompt the IDE to somehow "tag" the associated comment so that you remember to check its accuracy, at the bare minimum. Other nice-to-haves would be having references to code, e.g., if you talk about variable x in your comment and then rename it, the comment reference should be updated.

You can feel the disdain for code commenting in the industry by looking at the anemic tool support for comments.

<comment><USER13> Agreed. One of my projects is about updating a specific code editor to manage comments as a "meta-data" of the code itself. Otherwise, maintaining comments becomes a nightmare in the maintenance regime.

</comment></comment></comment><comment><USER14> Because comments can get outdated and developers don't bother to sync them with their code.

The best compromise is to make your code readable and only comment about the "why", not the "how".

<comment><USER15> That isn't a compramise, it's the goal. Your comments _should_ be about the "why", and not the "how". We already know how, that's what code is - instructions about how something works.

What we don't know is _why_ it was done in the first place, or _why_ it was done a particular way, or _why_ I shouldn't change that line that looks wrong but is really correct.

</comment></comment><comment><USER16> This is less a problem with the code being well commented and more a problem with it being difficult to understand. Comments can help clarify a difficult to understand block of code, but they don't make that code more readable, which doesn't really solve anything when you go to maintain it.

The fact that the code is unreadable is because it's written by a ML expert. I'd say it's actually higher quality than you'd usually get from academia, but nowhere near what you'd see outside of that. Academic code serves a very different purpose than production code. It's meant to prove a point and usually not used after. There simply isn't incentive to write well tested maintainable code.

</comment><comment><USER17> We run an Incubator for university students, helping them bridge the gap between "academic" and "useable" code, so I have to deal with this topic all the time.

Why is code coming out of research labs/universities so bad?

1\. DON'T WANT TO WRITE CLEAR CODE

Different incentives between _academic research_ (publications count, citation count, fear of being scooped if research too clear...) and _industry_ (code maintainability, clarity, robustness, handling corner cases, performance...).

2\. DON'T SEE WHY CLEAR CODE MATTERS

Academic projects are one-offs, not grounded in a wider context. Even if the researcher would _like to_ build something long-term useful and robust, they don't have the _requisite domain knowledge_ to go that deep. This external knowledge, the subject matter expertise, is hard to come by.

In lieu of that, researchers start solving _artificial problems_ on _artificial datasets_. The proper project cycle is broken, there's no feedback from other people using the fruits of your labour.

3\. DON'T KNOW HOW TO WRITE CLEAR CODE

Lack of programming experience. Choosing the right abstraction boundaries and _expressing them clearly and succinctly in code_ is HARD. Naming things is hard, structuring things is hard -- clarity in your head first, the code follows naturally.

But it's a skill like any other. When we put students to work on real ML projects, they are shocked. Many have never seen a properly designed piece of code in their life, don't know any tools, how to share or collaborate (git, SSH...). It's not like they'd sprinkle some extra comments here and there and be done -- the whole _code structure_ and how they attain clarity of thought is different.

The GOOD NEWS is, _it doesn 't cost any more time to write good code than bad code_.

So once they learn, everyone wins. That's the main purpose of our Incubator programme. It's not like researchers write crap code on purpose, no need to assume bad faith. Seeing the fruits of your labour useful and used by others is immensely rewarding!

</comment><comment><USER18> Wow, the reddit mobile site is totally unusable. Can someone paste the content?

</comment><comment><USER19> As a general rule I comment code that I don't find self-explanatory, and that I can work up a meaningful comment for.

The first condition is of course a problem that one has to deal with if the person writing code finds things self-explanatory that to you are highly complicated.

The second condition is of course a problem for those people who are not able to explain things well in human language.

edited: for clarity (prior actually my really clever example of people who are not able to explain things well in human language)

</comment><comment><USER20> The majority of my work is written clearly and named well, so it doesn't (in my opinion) merit comment.

That being said, if I'm doing some obscure calculations or something ambiguous, I'll usually comment on it (for future me to understand the context).

<comment><USER13> By whose standard is your work written clearly and named well? All code merits comment, even if only to say why it exists at all.

</comment></comment><comment><USER21> My rant to patch trans-piler did throw a error at line 42.

Error: Not enough emotional investment to fix a single line, but enough to write several paragraphs of rant.

Nobody gets a free lunch, not even those trying to get a free lunch from free academic software.

</comment><comment><USER3> This comes off as extraordinarily entitled.

Academics are not rewarded for good software engineering. The incentives are not properly aligned. And more-over, the that's not necessarily a bad thing! Research is research, not engineering.

Stop expecting production quality code out research groups. _The purpose of research is to explore ideas, not implement some epsilon of your product._

If you want a perfect exposition in addition to a high quality implementation, there are ways to get it. Pay the consulting fees. Or pay the tuition. Or hire the students, Or if you can't afford that, wait for the thesis/book.

 _> Is pseudo-code a fucking premium?_

In a paper? Well... yes. Categorically, emphatically, yes. If you want to read an exposition where space does not come at an extreme premium, you'll have to wait for the thesis/journal article.

Space comes at a premium for stupid reasons (artificial page limits) but also for good reasons (expositions cost time, which costs money and grad student time, and fuck if I'm doing a 10 year Ph.D. at $7/hr because you're irritated at some python code.

 _> Can you at least try to give some intuition before showering the reader with equations?_

Either 1) no because you're not the intended audience, in which wait for the thesis/TR/dissemination blog post where I'll work every gory detail; or 2) no because the equations are hard for all of us to understand and no one has solved the exposition problem yet.

 _> How the fuck do you dare to release a paper without source code?_

So all the products you work on all totally open source, eh? Either fully commit to Stallmanism while living off less than minimum hourly wage or get off your high horse.

 _> Why the fuck do you never ever add comments to you code When naming things, are you charged by the character? Do you get a bonus for acronyms? Do you realize that OpenAI having needed to release a "baseline" TRPO implementation is a fucking disgrace to your profession? Jesus christ, who decided to name a tensor concatenation function cat?_

Because they're being paid 30k a year at best for 80 hour weeks under intense pressure to implement new ideas and the prop firms and Googles are knocking with 200k comp packages and honest to god 5 day work weeks. Time is (SERIOUS) money when you're slogging through grad school. Again, walk a mile.

And again, really, the point is to test ideas. For every publicly release line of code coming out a research group there's 5x or 10x unreleased code implementing dead ends.

If you want all this, stop bitching at over worked and absurdly under-paid grad students, and start calling your congressman to support higher NSF budgets so research groups can hire more permanent research support staff.

<comment><USER22> You might be conflating software graduate students with research developers. I have translated a lot of research code into production code; whether it be sourced in Matlab, incomprehensible C, confused C++, or convoluted Numpy.

Okay - so grad students have very little incentive to write readable code... fine, understandable. They are usually lucky if they can write an algorithm which isn't finely tuned to a very narrow dataset. In that sense, most Ph.D papers are outright fabrications lying about capabilities written by authors seeking paychecks. If people were able to investigate the underlying source code, that would be fairly apparent.

That said, why do so many professional research developers also suck as writing comprehensible code? They have fat paychecks, what's the problem now? There absolutely exist research developers who write very high quality software. They may still use very terse nomenclature (due to high cognitive load), but their code can be logically comprehended by those who do not understand the field. There are a lot of reasons (I think) for this; no incentive to improve, poor understanding of their own discipline, no acknowledgment of the problem, expectation that such work is for "engineers".

In reality - a lot of research developers are simply incompetent, but they find a way to regularly convince others they are not.. often through obfuscation. They're stringing together implementations from various publications (which themselves might be total fabricated lies) with relatively little comprehension.

That's okay, a lot of software engineers are incompetent too.

Own it.

<comment><USER3> _> You might be conflating software graduate students with research developers_

I'm not conflating. The vast majority of research software is written by grad students.

 _> why do so many professional research developers also suck as writing comprehensible code?_

Because incentives aren't aligned. And it's not even clear they _should_ be aligned.

 _> There absolutely exist research developers who write very high quality software... In reality - a lot of research developers are simply incompetent_

There absolutely exist software developers who write very high quality software... In reality - a lot of software developers are simply incompetent.

 _> If people were able to investigate the underlying source code, that would be fairly apparent... Own it_

1\. A huge amount of research software _is_ open-sourced and _does_ work as advertised.

2\. You don't get it both ways. Either no open source demands, or no expectation that grad students should "own their work" \-- and then making demands that they _literally_ don't own their work.

</comment></comment></comment><comment><USER23> Rant on, but I tuned you out.</comment>


New Camera Can See Around Corners - <AUTHOR> https://www.technologyreview.com/s/603314/new-camera-can-see-around-corners/ <comment><USER2> One of the potential applications here could be security, however that might prove to generate a wide breadth of false-positive results..</comment>


Why hackathons are essentially useless - <AUTHOR> https://www.fastcompany.com/90430416/this-is-why-hackathons-are-essentially-useless <comment><USER2> > Hackathons in and of themselves do generally have structure. But what I'm > referring to here is a structure that integrates innovation into your day- > to-day, versus one day a year. If you're going to infuse a culture of > innovation throughout your organization, you'll need to keep at it. > Otherwise, it's like going all out at the gym once a year in pursuit of > physical fitness. You won't see nearly the same results you would if you > make it a consistent, regular habit.

Perfectly sums up how I feel about hackathons. I'd rather have a little time every week to work on whatever I want rather than binge once a year.</comment>


GoAngular - build realtime, collaborative apps with AngularJS and GoInstant - <AUTHOR> https://goinstant.com/blog/new-release-angularjs--goinstant--goangular-

<comment><USER2> GoInstant is like firebase, realtime db in the cloud.

Not golang related as I can tell.

<comment><USER3> Something related to golang would have been called golangular ;)

</comment></comment><comment><USER4> This looks awesome.

I just signed up for GoInstant, won't have time to play with it for a bit but now the signup email should remind me :)

<comment><USER5> Thanks Tehwebguy, I'd love to hear your feedback once you've had that 'reminder' ;)

<comment><USER6> submitting the blue "get updated" signup just went to a 404 for me.

[https://goinstant.us2.list- manage.com/subscribe/post?u=HASH&...](https://goinstant.us2.list- manage.com/subscribe/post?u=HASH&id=HASH)

<comment><USER7> We'll take a look ASAP, thanks for letting us know.

</comment></comment></comment></comment><comment><USER8> I would love to use this for the app I am building, only thing thats preventing me from using this is, I already have some data , and I need a way to use my exiisting data ( may be offering an import solution would serve the purpose )

<comment><USER9> We are preparing to launch an API in the coming weeks that will allow you to import(and export) your data into GoInstant. We'd love to give you a sneak peak by giving you access to the beta. If you're interested please drop me an email (available in my profile).

</comment></comment><comment><USER10> Why do these kind of tools have tendency to appear on HN about a month too late? :)

<comment><USER11> WebSocket book(oracle press) at the beginning of this month, TogetherJS a few days ago and now GoAngular/Instant. For me the timing couldn't have been better. TogetherJS has references to hosting your own server, but I couldn't find something similar on GoInstant. I am still digging around on their site though.

BTW, what did you end up doing? Did you build something of your own? Any gotchas you would like to share? I am investigating if Nginx will co-operate with the websocket connections and what will be the price of maintaining live connections to a bunch of clients. I am kind of inclined to build and run my own server...

<comment><USER9> You don't need a server, we offer our realtime collaborative stack as a service. We're cooking something up right now similar to TogetherJS, if you'd like a sneak peak drop me a email (in my profile).

If you want to build and host your own realtime application take a look at HAProxy (tcp mode in 1.4) for load balancing the incoming websocket connections to your application stack. There has been a lot of success using Node.js with engine.io, socket.io, or take a look at the meta Primus module.

<comment><USER11> Thanks a lot for all the pointers. Really appreciate it.

BTW any plans to zero-in on the pricing anytime soon? I saw that for one app you will always keep it free, but it will be nice to know what happens beyond that..

<comment><USER9> We're working on pricing now. No timetable at the moment, but you do get 1 app for free. We know its really important and we're working on it now.

We'd be happy to talk to you further about it and get your feedback.

<comment><USER11> No worries. I will keep following it up on your website. Thanks,

</comment></comment></comment></comment></comment></comment><comment><USER12> I don't understand what GoInstant does, the "How it Works" page tells me nothing. How does the real time functionality work? Is it MVCC, Operational Transformation, just a locking protocol?

<comment><USER9> GoInstant offers a hierarchical key-value store that is synchronized between all users inside your application. We offer a couple of mechanisms when last- to-write is not sufficient.

You can use set overwrite[1] (similar to redis SETNX) with key expiry[2] to create locks and then leverage our ACL[3] to secure[4] which users and groups can modify the data.

We are currently planning to implement MVCC based transactions and operational transformation primitives into our core Key interface. I can't say when these features will be ready, but we definitely want to get to them!

[https://developers.goinstant.com/v1/javascript_api/key/set.h...](https://developers.goinstant.com/v1/javascript_api/key/set.html) [https://developers.goinstant.com/v1/javascript_api/key/expir...](https://developers.goinstant.com/v1/javascript_api/key/expire.html) [https://developers.goinstant.com/v1/guides/creating_and_mana...](https://developers.goinstant.com/v1/guides/creating_and_managing_acl.html) [https://developers.goinstant.com/v1/overview/security.html](https://developers.goinstant.com/v1/overview/security.html)

</comment></comment><comment><USER13> Any plans to offer security rules similar to Firebase? Really love what you're doing but that's a deal-breaker for me unfortunately..

<comment><USER9> We currently have a comprehensive security model in place which is detailed in our developer documentation at [https://developers.goinstant.com/v1/overview/security.html](https://developers.goinstant.com/v1/overview/security.html).

We offer fine-grained access control lists that work with our authentication mechanism that gives the developer the ability to determine exactly which users and groups can modify data. You can read more about our ACL implementation at [https://developers.goinstant.com/v1/guides/creating_and_mana...](https://developers.goinstant.com/v1/guides/creating_and_managing_acl.html).

Security is a huge priority for us and will continue to be moving forward, we will continue to work towards building features that enable and documentation that focuses on building secure realtime applications using our Platform.

</comment></comment><comment><USER14> So is GoInstant a javascript wrapper around an XMPP service? I wonder if they use ejabberd.

<comment><USER9> We're built on a custom architecture and internal protocol, it allows us to internalize a lot of concerns.

<comment><USER14> Neat.

</comment></comment></comment><comment><USER15> Nice work guys - Looks very slick!

</comment><comment><USER16> How does this differ from Firebase?

</comment><comment><USER17> what's the difference between this and parse?

</comment><comment><USER18> sounds like angularjs with golang backend,kind of irritating :/

<comment><USER11> My first impression is that it is like extending the two-way binding of AngularJS across the wire. Not sure though...

<comment><USER5> That is pretty much bang on Kops :)

</comment></comment></comment><comment><USER19> go?

<comment><USER20> GoInstant

<comment><USER19> so it's an instant way of hosting go? I think not.

<comment><USER7> GoInstant isn't related to Go (the programming language), just has "Go" in the name of the company. It's a realtime, collaborative stack.

<comment><USER19> totally agree with you, but why take the name GoAngular? now a protect that ties go and angular can't be called goangular

<comment><USER21> Sure it can.

<comment><USER22> They can call it GoLangular</comment></comment></comment></comment></comment></comment></comment>


AirBnB: Reply on weekend or banned for life - <AUTHOR> https://twitter.com/omeid_/status/1022067285001785344 <comment><USER2> Creating a new account is trivial. I did this after a host posted a malicious review (because I didn't accept his cash-only option) and AirBnB did zilch about it.

<comment><AUTHOR> After some searching around the web, it seems like AirBnB is now too big to care for anyone.

Now with many alternatives, I don't see why give my money to people who would cut me like so. I have paid airbnb thousands in the past few years.</comment></comment>


FIXME: zero ideas in the dept. of education's open government idea board - <AUTHOR> http://www.openeducation.ideascale.com/

<comment><USER2> All "CFO Act" agencies have these pages, full list is here: <http://www.usa.gov/webcontent/open/tool_poc.shtml>

Real people at these agencies are using these pages to develop their prospective open government plans, in response to the Open Government Directive ([http://www.whitehouse.gov/omb/assets/memoranda_2010/m10-06.p...](http://www.whitehouse.gov/omb/assets/memoranda_2010/m10-06.pdf))

These agencies also have their own open government pages where you can find out about their respective plans. Here's NASA's page as an example: <http://www.nasa.gov/open>

</comment><comment><USER3> How about the idea that there shouldn't be any public schools?

<comment><USER4> Education is guaranteed under article 26 of the Universal Declaration of Human Rights, which the US signed and helped author. Not providing a public option for education would mean redefining what we believe to be fundamental freedoms. How are you going to provide education to the poor without public schools? Will the government give the poor money for education? Will you subsidize the "private" schools with government money? That would defeat the whole purpose of having private schools as you aren't allowing them the operate in the free market. It's not clear 100% bastardized "private" schools would be any more competitive than the current hybrid system. Public schools and the belief that education is a fundamental human right are inextricably intertwined.

EDIT: I'm going to edit this comment to refuse the arguments below, as there are multiple posters with similar points of view.

The claim is that restoring "choice" to the educational market will increase the quality of education for all. This choice is already happening. Wealthy families choose to move to areas with high property taxes that fund excellent public schools. I grew up and was educated in such a neighborhood; when I was in HS the average salary of a teacher at my "public" school was $100k. Each year, students from inner-city Chicago try and register for the schools in my HS area. They are not allowed because the schools are full with residents. Therefore, they have to go the public school in the neighborhood they reside in.

In a private system, the same behavior happens, except the barrier to entry becomes price not the geographical location of your residence. Several people have suggested government vouchers to help defray the cost of education. Do you really think these vouchers will be able to buy a higher quality of education than what is current available? The best private schools will raise their price to the most efficient market point where they charge their students the most and enroll exactly enough students.

Now some might argue that we already have a private system by proxy. People are still paying for higher education, they are just doing it though home ownership. Why not just covert to a private system? The answer is this: the quality of the weakest school is far more important than the quality of the strongest school. People with money will _always_ be able to find a way to get their kids an excellent education. As a society we don't need to worry about these kids. Society does need to worry about the bottom line. The long term cost of failed education to society is immense: increased crime rate which leads to prison costs, lower voter literacy which results in less qualified politicians, the list goes on. In a private system, the low end is forgotten about. The idea that a government voucher would be large enough for the bottom end is ridiculous. In the public system there is a constant struggle to push the low end higher. _This is (part of the reason) why the public system costs so much_. The public system has to bear an extra burden (for the good of society) that the private system eliminates through efficiency.

The bottom line: Choice is already taking place in the hybrid school system by proxy through property tax or expensive private schools. The 100% private system would be exactly the same, with the added disadvantage of a forgotten low end. Vouchers are just a half-assed replacement for the public part of the system already in place. If the vouchers were high enough to raise the low end to an acceptable level, the cost would be equal to the public part of the current system. In order to raise the low end of education above the fair market value, government regulation is by definition necessary. A small correction must be made for the failure in free market forces.

<comment><USER5> _"Will you subsidize the "private" schools with government money? That would defeat the whole purpose of having private schools as you aren't allowing them the operate in the free market."_

I don't understand this. The most common proposal I've heard is a voucher system that would allow people to defray the cost of an education at a school that has some sort of certification. In what meaningful ways is that not a free market? How will competition be any less effective?

It is clear to me that restoring choice to the education market will allow competition to occur, which will likely result in increased quality.

<comment><USER6> Maybe. Public education is a good way to mix student though, otherwise you have segregation. Ghetto schools are bad, because the bad students get worse, and the good students don't learn any street smarts.

Cutting school time, then supplementing it with tutoring vouchers would be my preference. You get a bit of both worlds. It would be tricky for teachers, who would need 2 jobs (one of which they would actually be accountable in) but that could be partly positive. Exposing teachers to a bit of business might be good.

<comment><USER5> Segregation is alive and well. Public schools don't solve that at all. Human beings naturally stratify by class. Regardless, improving education is a greater good than increasing diversity. If there is actually a trade-off between the two, it's an easy choice.

</comment></comment></comment></comment></comment><comment><USER7> We should dismantle the Department of Education. I suggest waiting until next year on February 6th, which would be fitting.

</comment><comment><USER8> I think it might be empty because ed.gov doesn't seem to actually link it anywhere on their site.

<comment><USER2> They do, it's just hard to find.

<http://www2.ed.gov/about/open-submit-idea.html> via <http://ed.gov/open>

<comment><USER8> Thanks. Great catch. Admittedly, I'm still disappointed though. If they were taking it seriously, I'd expect something bright and shiny on that front page of theirs.

<comment><USER9> or rephrased : idea no.1 - redesign ed.gov and associated programs.

:)

I'm not trolling; this is an actual idea. I'll construct a better, longer version of this and post it soon on the site. A better portal could make ed.gov a fantastic place for all to visit.</comment></comment></comment></comment>


How Walmart Keeps an Eye on Its Massive Workforce - <AUTHOR> http://www.bloomberg.com/features/2015-walmart-union-surveillance/ <comment><USER2> I read this with an eye out for what electronic surveillance they did but it doesn't seem like there is anything documented here that is too outrageous.

</comment><comment><USER3> I was under the mistaken assumption that there aren't people in this world that would be asked to do things like this and would refuse out of virtue.

I don't think I'll ever hire anyone who's ever worked for Lockheed Martin. They simply have no morals.

<comment><USER4> Why do they have no morals? If you have worked hard to build up a business and then you find out that some of your workforce is engaging in efforts that will destroy your business, would you not want to be kept abreast of it? If you do not feel that the union efforts would destroy business, witness the revenue issue Wal-Mart is experiencing now with a $10/hr wage floor; something the unions would like to start at and move to $15/hr.

Unions have on a consistent basis driven the operating costs of low cost companies through litigation, union negotiations, and other minutiae to bankruptcy. Witness the default process of the Haggen Grocery Store, where union rules drove a business into the red through non-negotiable states.

<comment><USER5> If the health of your business is predicated on strong-arming your way against market pricing of labor, then perhaps something is wrong with your business.

</comment></comment></comment><comment><USER6> Of course, the title is a bit misleading.

More like: How Walmart colludes with the surveillance state to suppress labor activities against it.</comment>


FEMA Bought 44,000 Flood-Prone Homes. They May Have to Buy Millions More - <AUTHOR> https://www.bloomberg.com/news/articles/2019-10-09/fema-may-have-to-buy-millions-of-homes-due-to-climate-crisis <comment><USER2> Or we could stop subsidizing people who build in flood prone areas.

</comment><comment><USER3> Tangentially related: a neighbouring town has a 100 year flood plain around a river that runs through the town.

A few years back a developer chummy with the planning authority convinced the council that modern water resource management meant the floods were no longer a threat, and that the prime real estate in the middle of town was suitable for residential development.

You know where this is going.

So the developer manages to win the bidding for this land (funny that he managed to guess one dollar over the highest bid in a blind auction) and developed it to medium density housing. They were typical cheap crappy houses: four walls and a roof erected as quickly and cheaply as possible while still complying with building code. Prices were set high because they were riverfront properties, best location ever!

Anyhow at about this time there was some work going on upstream to remove willow trees from the river corridor. Willows are considered an invasive species here, especially since they can sprout from broken off roots that float downstream. The catchment area where these willows were being removed from was rugged country: out of town, in a steep valley, so hauling the logs out on truck was not an option, it all had to be done by helicopter.

The catch with hauling lumber out with helicopters is that helicopters only fly in good weather. So the forestry folks headed in, cutting trees in whatever weather they deemed safe because they were on a fixed price contract. Forests of willow massacred with logs and detritus everywhere, waiting for better weather to allow it all the be lifted out by helicopter.

Only the better weather didn't come. The rain settled in and stayed. The dam upstream flowed over the top, so the effective size of the catchment for the town's flood plain was now tripled.

So when the 100 year flood arrived, there were people living in these houses by the river, the developer had long since taken the money and moved on to greener pastures, and the flood was accompanied by hundreds of tons of willow logs, loose branches, leaves and mud.

The 100 year flood level in town was 5 metres. At that level these houses would have had wet floors, and some would have lost doors or windows. With the logjam from the forestry work and the extra water from the flooded dam, the water rose over 8m.

It was not a pretty sight.

So government approves some developer's crazy idea of building on a flood plain, and years later the government has to cover the cost of emergency services coping with houses being flooded and people displaced from their homes.

Some facts have been enhanced for dramatic effect, but the essentials of the story are true.

TLDR: Queanbeyan River peaked at 8.4m December 2010, partly aided by logjams due to forestry works upstream. 100 homes were evacuated due to flooding.</comment>


Ray – Smart Stores - <AUTHOR> http://www.madewithray.com

<comment><AUTHOR> Get free access to 250+ Smart Stores for your app with Ray!</comment>


Show HN: My 11th grade research project: faster DNA sequence duplicate removal - <AUTHOR> https://peerj.com/articles/8275/ <comment><AUTHOR> I am a high school student, and this is a published paper that I wrote. If you want to read a shorter blog version of my work, go here: [https://blog.liudaniel.com/n-grams-BK- trees](https://blog.liudaniel.com/n-grams-BK-trees).

The general problem is grouping similar DNA/RNA sequences based on something known as a Unique Molecular Identifier, and then collapsing those groups into consensus sequences. This helps estimate the number of unique sequences while efficiently accounting for errors in sequencing or PCR amplification.

If you have any questions, feel free to ask me!</comment>


Round 1 submissions to NIST post-quantum crypto competition - <AUTHOR> https://csrc.nist.gov/projects/post-quantum-cryptography/round-1-submissions <comment><USER2> What's wrong with mceliece? Quote secure and post quantum.</comment>


On bananas and string matching algorithms - <AUTHOR> http://www.wabbo.org/blog/2014/22aug_on_bananas.html <comment><USER2> Really interesting post and good debugging work. A couple of take-aways:

1\. This is one reason it's a good idea to use signed ints for lengths even though they can never be negative. Signed 64-bit ints have plenty of range for any array you're actually going to encounter. It may also be evidence that it's a good idea for mixed signed/unsigned arithmetic to produce signed results rather than unsigned: signed tends to be value-correct for "small" values (less than 2^63), including negative results; unsigned sacrifices value-correctness on all negative values to be correct for _very_ large values, which is a less common case – here it will never happen since there just aren't strings that large.

2\. If you're going to use a fancy algorithm like two-way search, you really ought to have a lot of test cases, especially ones that exercise corner cases of the algorithm. 100% coverage of all non-error code paths would be ideal.

<comment><USER3> > This is one reason it's a good idea to use signed ints for lengths

I disagree. Types are a form of documentation, and a constraint on proper program behavior. Length types can't be negative; that doesn't make any sense. If you end up with a negative length, you are doing something wrong. One should just write correct code and use the proper length type. In C that's `size_t`, and in Rust it's `uint`.

<comment><USER4> The problem is that C (and many other languages) only have the notion of "signed" vs. "unsigned" values, and nothing else. For example, if 'len' is a variable that holds the length of something, then its range is defined by (len >= 0). So far so good. But what is the range of the expression (len - 1)?

In a perfect world, its range is {-1, 0, 1, ...} (up to some maximum value), but C(++) doesn't have such notion. If we used uint, -1 will silently change to MAX_UINT. Oops.

<comment><USER3> >But what is the range of the expression (len - 1)?

Ill-defined, which is as it should be. Naturals are not closed under subtraction or negation, and therefore you should never negate or subtract a length.

<comment><USER5> You subtract lengths from other lengths all the time. How far have you gone recently? How much taller are you than your wife? Subtracting a length from another length isn't a problem at all; a problem would be if you wanted to subtract a length from a weight.

This

> Naturals are not closed under subtraction or negation, and therefore you > should never negate or subtract a length.

assumes that a paramount goal in having types is to make function signatures like the following impossible:

        public static String format(String format, Object... args);

Infinite-dimensional vectors (in which the first element is a String) sure aren't closed under format -- it maps them to scalars! But somehow string formatting is wildly popular. Or think of

        public Color(int r, int g, int b);
        public Color(int rgb);

Are you comfortable having a mapping from ℤ to Color, _and_ from ℤ^3 to Color? If so, why does it bother you less than a mapping from ℤ ∩ [0, ∞) to ℤ ∩ [-1, ∞)?

Try a simple rewording of your argument: Hash tables aren't closed under access. Therefore, you should never retrieve values from a hash table.

<comment><USER3> >You subtract lengths from other lengths all the time.

Indeed. Notice that all your examples are physical lengths. This is of a different type than the naturals (digital lengths). We generally consider physical lengths to be in the domain of Reals, usually defined along a particular path or dimension. This is closed under subtraction, while naturals are not.

> a problem would be if you wanted to subtract a length from a weight.

That is _also_ a problem, not the only problem.

>assumes that a paramount goal in having types is to make function signatures like the following impossible: [vomit-inducing variadic signature]

I would sure like it if function signatures like that were impossible :)

> Infinite-dimensional vectors (in which the first element is a String) sure > aren't closed under format

It's very generous to call a set of arguments to variadic function a "vector" at all, and they certainly aren't infinite-dimensional. They are practically bounded by machine memory.

>it maps them to scalars

How?

>But somehow string formatting is wildly popular.

Lots of mathematically ill-defined things are wildly popular.

>Hash tables aren't closed under access.

Not sure what you mean by this.

<comment><USER5> > We generally consider physical lengths to be in the domain of Reals, usually > defined along a particular path or dimension. This is closed under > subtraction

This is wrong. We consider physical lengths to be nonnegative real numbers, which are not closed under subtraction. Trying to use negative numbers for physical lengths will get you very funny looks.

> It's very generous to call a set of arguments to variadic function a > "vector" at all

It's not an element of a mathematical vector space, but it's a vector in the common sense of an ordered collection of values. The other examples I gave you, like (int, int, int), are vectors even in the algebraic sense.

> I would sure like it if function signatures like that were impossible :)

That was the signature for Java's String.format, the equivalent of C's sprintf (which, like String.format, maps an infinite-dimensional vector to a single string). If you really didn't understand this, you can tell that the return type from String.format is a scalar by looking at the return type declaration, "String". To understand the precise mapping, I can only recommend you read the javadoc.

>> But somehow string formatting is wildly popular.

> Lots of mathematically ill-defined things are wildly popular.

I'm willing to grant this, but it's certainly not relevant to string formatting.

>> Hash tables aren't closed under access.

> Not sure what you mean by this.

Accessing a hash table isn't guaranteed to get you another hash table. Just like subtracting two positive numbers won't necessarily get you a positive number.

<comment><USER6> Subtracting two length doesn't give you a length, it gives you a difference of length, which can be any real number.

So by analogy subtracting two unsigned ints should give you a signed int by default (unless you specifically ask for the unsafe unsigned int, and then it's on you to make sure the preconditions are met).

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> There are many comments discussing whether length should be unsigned or signed. There are arguments for and against it. This a prototypical carpet bump, you squash it in one place it raises its head somewhere else.

I see it _not_ as a question whether lengths should be signed or unsigned but whether subtraction, assignment etc should be polymorphic w.r.t signed and unsigned. I think the issue here is the polymorphic variants of these binary operators are inherently risky.

Casting gets a little tedious, but languages that do not have operator overloading should disallow subtraction from unsigned and subtraction that return unsigned. You either cast it up, or if possible reorder the expression/comparison so that the problem goes away. Even assignment can be a problem. Ocaml can get irritating because it takes this view but I think it is safer this way. It is very hard to be always vigilant about the unsigned signed issue, but hopefully a compiler error will mitigate risks, not completely, but it is better than nothing.

That leaves languages that allow operator overloading, in those cases if you are overloading an operator you better know what you are doing, and watch out for cases where the operator is not closed.

<comment><USER8> What is the signed value of 0-UINT_MAX?

There is no way to handle this issue on machine types, unless part of the range is reserved for overflow and checked. But performance nuts intentionally discard safety for performance.

<comment><USER7> As I suggested there should not be a '-' that returns unsigned. If you want to cast it back to unsigned you would have to do it explicitly, and ideally a checked cast, though I am not averse to a more verbose unchecked cast.

I am not averse to binary operators with wrap around / modulo arithmetic, but they should be look different from the usual '+', '-' etc. This only applies to languages that do not allow overloading operators.

<comment><USER9> I agree. It seems to me that saying unsigned - unsigned is unsigned is just asking for trouble.

</comment></comment></comment></comment><comment><USER10> I've seen some very strange things in my career. I find posts like this delightful, because I can point to them and say "see, here is proof that even code written with the best of intentions can still have bugs."

Programmers tend to fall into (at least) two camps: the skeptics and the pragmatists.

Sometimes when I report a finding, programmers accuse me in one way or another of messing something up because "that can't possibly be failing." Those are the skeptics, using incredulousness almost like a shield to protect their worldview. They tend to have an up-close/what's right in front of them approach to programming, are prolific and usually take a positive stance on programming.

At other times, reporting a finding is met with resignation, almost like "please work around it because we just don't need this right now". Those are the pragmatists, taking the long view/forest for the trees approach, knowing that programming is more than the some of its parts but also that it's a miracle it even works at all. They are the daydreamers and sometimes are perceived as negative or defeatist.

I was a pragmatist for as long as I could remember, but had a change of heart working with others in professional settings. I saw that certain things like databases or unix filesystems could largely be relied upon to work in a deterministic manner, like they created a scaffolding that helps one stay grounded in reality. They help one command a very mathematical/deliberate demeanor, and overcome setbacks by treating bugs as something to be expected but still tractable.

But here is one of those bugs, where the floor seemed to fall out from under our feet. One day I mentioned that "SSL isn't working" and about half the office flipped out on me and the other half rolled their eyes and had me track it down:

[https://bugs.debian.org/cgi- bin/bugreport.cgi?bug=694667](https://bugs.debian.org/cgi- bin/bugreport.cgi?bug=694667)

The gist of it is that OpenSSL was failing when the MTU was 1496 instead of 1500, because of path MTU discovery failing and SSL thinking it was a MITM attack and closing (at least, that is how I remember it, I am probably futzing some details).

That was odd behavior to me, because I see SSL as something that should be a layer above TCP and not bother with the implementation details of underlying layers. It should operate under the assumption that there is always a man in the middle. If you can open a stream to a server, you should be able to send secure data over it.

Anyway, we fixed the router setting and got back to work. All told I probably lost a day or two of productivity, because the office network had been running just fine for years and so I discounted it for a long time until I ruled out every other possibility. I've hit crazy bugs like this at least once a year, and regret not documenting them I suppose. Usually by the time they are fixed, people have forgotten the initial shock, but they still remember that you are the one weirdo who always seems to break everything.

<comment><AUTHOR> Yeah, I like the phrase "suspecting a compiler bug is the principle of last resort". (Maybe there should be an "unless you're using Rust" thrown in there.)

It's not that compilers can't have bugs. It's that you're more fallible than the compiler, and should use that likelihood when deciding where to investigate to fix the bug you're seeing.

<comment><USER11> I remember a long day tracking down a bug in some low level networking code that turned out to be bad RAM on a test machine. I remember thinking "This is probably what going crazy feels like." But, I still trusted the compiler more than the HW.

</comment></comment></comment><comment><USER12> Why is this code so damn fancy? Shouldn't the fanciness be offset by proofs or extended testing? Open loop!

<comment><USER13> Agreed, this seems like a case of excessive complexity. I hadn't even heard of "two-way" before, but I don't think an algorithm the paper claims to be "remarkably simple" should require _twenty-five pages_ to describe.

"two-way" isn't all that fast either, so I don't see any good reason for its use; in the benchmarks I could find, the simpler BMH easily beats it (and optimised BMH variants go even faster): [http://volnitsky.com/project/str_search/benchmark-4.5.1.png](http://volnitsky.com/project/str_search/benchmark-4.5.1.png) [http://blog.phusion.nl/2010/12/06/efficient-substring- search...](http://blog.phusion.nl/2010/12/06/efficient-substring-searching/)

<comment><USER12> It would be interesting to put a trace on `strstr` for a couple days and see what the distribution of arguments look like.

ToDo: Profile libc for various workloads, record arguments and code coverage

</comment></comment></comment><comment><USER14> I try to never look at GPL/LGPL code if I'm going to implement something at work or under another license.

Sorry for suggesting a good practice to avoid legal liability.

<comment><USER15> > Sorry for suggesting a good practice to avoid legal liability.

Why is this good practice? Has anyone ever been exposed to a legal liability that could be creditably attributed to their merely _looking at_ (as opposed to using) such code? (Although my suspicion is that the answer is 'no', this is an honest question.)

<comment><AUTHOR> I think the idea is that it's going to be difficult, having looked at the code, to implement a version that is not similar enough to the original to trigger a copyright "derivative work".

For example, I believe it used to be the case (just a few years ago) that Microsoft employees were contractually prohibited from looking at GPL'd code.

But if alayne is planning on bringing that up every time someone shares a post that might contain GPL code, alayne is quickly going to become the most tedious person at the party, and that's why the downvotes are happening.

If your situation prevents you from studying and learning from GPL'd code, then just don't study it, and don't brag about not studying it.

<comment><USER15> To be clear, I didn't mean "why might there be _fear_ about this?" (which I can understand, though it sounds a bit hysterical to me), but rather "has this ever actually _happened_ (outside of a lawyer's dreams / nightmares)?", as a weaker version of the question "is avoiding this really good practice?".

P.S. Perhaps a good defence against a claim of copyright infringement would be "you can tell that my version isn't a copy, because it correctly finds 'nana' as a substring of 'banana'"? ;-)

<comment><AUTHOR> I see. I'm not aware of any case law either.

I don't think it's good practise, and agree that it's hysterical, and think it stems from unthinkingly believing Microsoft's anti-OSS claims during their decade-long freakout about open source and the GPL.

I think that attempting to convince people not to participate in sharing and studying code with the rest of the world is an evil thing that they did, especially since the GPL was the most popular OSS license at the time.

<comment><USER14> I'm absolutely not anti-OSS. I personally think it is against the spirit of the GPL to copy code that is GPLed, though.

I'm just saying be careful about how you do your engineering. This seemed like an inexperienced developer and he mentioned glibc vocally along with the comment "I'll admit that originally I copied this logic from glibc's implementation without fully understanding it, but I've now taken a closer look at the Two-Way paper and understand what it does." It's certainly not good software engineering to copy implementation like that. It is good that he read the paper.

Now I regret even bringing it up. I don't feel that I deserve your ad hominem comments or characterizations of my motivations.

<comment><USER15> > I personally think it is against the spirit of the GPL to copy code that is > GPLed, though.

Why? I assume that you don't mean _literatim_ copying, which is obviously the whole point of OSS, but rather copying with modification; but, even then, a quick read suggests that [http://www.gnu.org/copyleft/gpl.html#section5](http://www.gnu.org/copyleft/gpl.html#section5) explicitly _permits_ this activity, as long as you meet certain conditions. Maybe I should have understood an implicit insertion "to copy, _without acknowledgement_ , code that is GPLed"?</comment></comment></comment></comment></comment></comment></comment>


World's Oldest Blood Found in Famed "Iceman" Mummy - <AUTHOR> http://news.nationalgeographic.com/news/2012/05/120502-oldest-blood-otzi-iceman-mummy-oetzi-zink-science/

<comment><USER2> Red blood cells are pretty useless for forensic/archeology science. There's no nucleus and no mitochondria and therefore no DNA. There may be some hemoglobin left but not very useful.

There is DNA bound to and stablished in the bones and if I remember correctly some DNA extraction and analysis has been done already on this specimen and it matched closely with people still in the region.

Which is interesting. For much of Southern Europe (greece, Italy, Spain) the current inhabitants are not related to the ancient inhabitants. But for isolated areas like the alps and Northern Europe the genetics are similar.

<comment><USER3> _For much of Southern Europe (greece, Italy, Spain) the current inhabitants are not related to the ancient inhabitants. But for isolated areas like the alps and Northern Europe the genetics are similar._

Interesting. Do you have any sources?

</comment></comment><comment><USER4> Though from a publication which seems entirely shady (click-whoring, shallow content etc), this article [0] really sucked me in. Absolutely astonishing that we have such a clear view of his last days.

[0][http://www.livescience.com/24666-otzi-iceman-mummy-life- deat...](http://www.livescience.com/24666-otzi-iceman-mummy-life-death.html)

</comment><comment><USER5> You can actually stop and look at Ötzi in Bolzano/Bozen if you're ever in the area. The museum is very nicely done, and of course the area is gorgeous (Italy is overflowing with 'gorgeous') and interesting because 100 years ago, it was still very much part of the Austro-Hungarian empire, and culturally, still is in many ways.

</comment><comment><USER6> What does it say about mankind that Ötzi was murdered? Considering all the current day conflicts, we're not much more "civilized" than 5000 years ago!

<comment><USER7> [http://freakonomics.com/2011/10/04/the-decline-and-fall- of-v...](http://freakonomics.com/2011/10/04/the-decline-and-fall-of-violence/)</comment></comment>


Google Readies Ambitious Plan for Web-Data Exchange - <AUTHOR> http://adage.com/article/digital/google-readies-ambitious-plan-web-data-exchange/228637/

<comment><USER2> I really don't understand why so many tech savy people fall for google+ at all. I believe its simply a privacy nightmare... The circles feature allow for a lot more precise data collection on a persons social network and thus better ad targeting and profiling.</comment>


It's All Just Beginning - <AUTHOR> https://thepointmag.com/examined-life/its-all-just-beginning/ <comment><USER2> Tough situation to be in, I feel bad for the author. TBH I only read the article up to the point it became a rant IMO.

Still I don't want to discourage anyone from writing and sharing their experience and feelings as I believe it will provide valuable insight for future generations to understand how people experienced the great quarantine of 2020.</comment>


"Think of it as Napster for education" - <AUTHOR> http://cnx.org/

<comment><USER2> Featured on TED.</comment>


Award-Winning GIFs by Micaël Reynaud Warp Space and Time - <AUTHOR> http://www.thisiscolossal.com/2014/06/award-winning-gifs-by-micael-reynaud-warp-space-and-time/

<comment><AUTHOR> This blows my mind. And one of them gives me a headache. I know it might seem like fluff by HN standards, but I submitted it because I think some folks will find this intriguing.</comment>


Ask HN: Competing with the crowd and not becoming RIM. - <AUTHOR>

I work in a content industry that is in a massive revenue transition.  Our old very profitable customer base is moving to newer sources of content that are much cheaper to produce than our internal costs.  The quality is nowhere near the same standard but the new market segment doesn't need high quality, the barrier to good enough is getting close. The writing is on the wall although likely 18-36 months out.  I don't want my company to be another RIM/Palm/Motorola disaster that just ignores the problems. We're working on automating as much as possible to reduce our own internal costs but there is a limit to lowering our costs.
We're about to be stampeded by the crowdsourced companies using nearly "free" users/workers. So how do we survive and thrive in the future?  I'm hoping to hear from others in similar scenarios.  This is the same issue of newspapers, radio, etc...
So far we are considering: 1. Moving from a customer paying model to an advertising model.
2. Creating an eco-system around us to provide our content in new forms. (P.S. Sorry for the throw-away email) <comment><USER2> If you're not familiar with the "Innovator's Dilemma" read/skim the book ASAP (<http://www.amazon.com/gp/product/0060521996/>) for it sounds like that's what your company is facing.

It'll be really hard to survive, at least that's what history says as of when Clayton Christensen did this book.

I'll also give you some advice obtained from watching my father over the years: one key thing is to realize when you've got to sell your company or shut it down in an orderly fashion. A whole lot of people would be a lot more wealthy if they'd not ridden their companies into the ground; at least you've realized your predicament and will avoid a controlled flight into terrain crash.

<comment><USER3> I was just about to recommend that book as well. In my opinion, it's a must read for every entrepreneur. It made me realize a few very important things.

Clearly, Netflix's CEO understand its principles and Blockbuster's CEO didn't

</comment></comment><comment><USER4> Lowering costs to compete with the near free alternative makes your company a poor competitor in comparison to them. This is because you have much higher costs and probably are not sufficiently different to justify it.

Options: 1\. lower costs and essentially adopt the crowdsourced model 2\. increase costs and quality and sell a premium product

Either way, the main thing is that you have identified that you do not want to tread water.</comment>


Ask HN: What's Bitcoin's use case for average users if KYC is mandatory? - <AUTHOR> If Bitcoin were to become mainstream so that average users can start using it, what's the value proposition of BTC over USD?
* You own the BTC since you hold the private keys. Since most users will use a hosted wallet, it's not true for the majority of users.
* With KYC norms, it becomes risky to use it on dark net markets for whatever purposes. The only use case will be legal use cases which any credit card does a decent job of with lower transaction fees.
To me it seems like BTC's primary use cases are :
* Use it on dark net markets anonymously
* As a way to store value without dealing with tax aka money laundering
What people really seem to want is an anonymous, unregulated currency without being taxed.
I fail to see the value of Bitcoin. <comment><USER2> Bitcoin is the most popular currency that no one can take from you (as in Greece), that you can carry in your mind (brain wallets), that is deflationary instead of inflationary. It is censorship-resistant currency. Bitcoin weighs nothing. Unlike other currency, it is not subject to the whims and monetary policy of a government regime. Fiat can be taken, transfers blocked, accounts closed, administratively lost.

Bitcoin is the "World Wide Ledger" for the World Wide Web.

Take a look at Monero for the best tool for the anonymity use-case.

</comment><comment><USER3> What about the fact of a open system, unregulated by the feds and off-course zero middle men in transferring internationally. No need of a hosted wallet if the BTC address is registered for every individual and he/she can keep a encrypted key on dropbox or some shit.

Also it would be a deflationary economy allowing people to avoid mutual funds, investment funds to beat the growing cost of living when they retire.</comment>


Waterfox browser - <AUTHOR> https://en.wikipedia.org/wiki/Waterfox <comment><USER2> Previous Comments: [https://news.ycombinator.com/item?id=20047170](https://news.ycombinator.com/item?id=20047170) (Just over a month ago)

</comment><comment><USER3> I have observed a big anti-waterfox and anti-fork atmosphere in the Firefox Community. I don't think the criticism of Waterfox is honest, because the browser has been doing exceptionally well (always including critical bugs) for a one-man project and every Firefox Fork should be welcomed.

The official response by Mozilla has always been to avoid ALL forks and ALL old versions like the plaque. I know why Mozilla wants to suppress them, but the community shouldn't. Waterfox is basically the result of the decision by Mozilla to abandon a part of their most loyal userbase.

In theory a diverse set of browsers actually increases security due to the lack of attack surfaces with which you can target a wide audience.

Because basically all attacks that you have to fear from normal browsing as an average user are actually non-targeted attacks, and those attacks usually focus on a large user-base, in order to be financially viable. Also a script- blocker is probably the only thing needed to reduce attack surface to basically zero for non-targeted attacks.

The security argument is actually the only case one can make against Waterfox. While it is partially valid, there are many other reasons why people use a browser, which is exactly why Waterfox has so many users. Not everyone wants to focus on high level and mostly theoretical security.

By the way, the founder of Waterfox has published an alpha-version based on Firefox 86 ESR.

<comment><USER4> Also worth mentioning IceCat: [https://www.gnu.org/software/gnuzilla/](https://www.gnu.org/software/gnuzilla/)

> GNU IceCat is the GNU version of the Firefox browser. Its main advantage is > an ethical one: it is entirely free software. While the Firefox source code > from the Mozilla project is free software, they distribute and recommend > non-free software as plug-ins and addons.

EDIT: removed a clause about the relationship with IceWeasel, thanks for the historical context @quadrangle and @war1025

<comment><USER5> > IceCat, formerly IceWeasel

Nope. IceWeasel was a Debian rebranding of Firefox which has been discontinued. GNU IceCat was always GNU IceCat and was not formerly IceWeasel.

(I still upvoted your mention of IceCat here)

</comment></comment></comment><comment><USER6> The project started as a 64-bit version for Windows (was supposed to be faster). Then, when Firefox changed the add-on framework, it became the "Firefox" version you can use to keep all your old add-ons working. They are merging all relevant security issues quickly, as well as bug fixes.

<comment><USER7> If people just wanted to use the old addon system then all that requires is changing a few options when building Firefox (in official Firefox builds, only moz can deploy such addons). So keeping up with security updates shouldn't be hard at all if that's the only difference.

Of course the old type of addons may break from time to time as the browser's internals change but that was always a problem with the old addon system.

<comment><USER8> If I understand [1] correctly, the XUL code that those old addons use as an interface into the browser is nearly gone. And that's the entire point of deprecating the old addons: to be able to refactor Firefox internals away from XUL towards pure HTML/CSS/JS-based UI.

[1] [https://bgrins.github.io/xbl- analysis/graph/](https://bgrins.github.io/xbl-analysis/graph/)

</comment></comment></comment><comment><USER9> yes, the browser that claims to improve your privacy by being 12 versions out of date compared to firefox stable.

<comment><USER10> As jusob noted, "They are merging all relevant security issues quickly, as well as bug fixes." So why does "12 versions out of date" matter?

The advantage of Waterfox is more freedom to use extensions that increase privacy and security. And sure, also extensions that totally pwn you. But that's just how it is, when you have autonomy.

I'm not arguing, however, that the Waterfox approach is best. Tor browser adds lots of great stuff to increase privacy and security, and they stay ~up to date with Firefox releases.

<comment><USER11> > As jusob noted, "They are merging all relevant security issues quickly, as > well as bug fixes." So why does "12 versions out of date" matter?

If you're retaining code that has since been ripped out upstream, that means that there are no security fixes for you to uptake, but you still contain the same potential for security issues. This isn't an idle concern--the NSA used an exploit in code that was ripped out of Firefox to attack the Tor Browser, which was (at the time) stuck on an older version that retained code generally known to be much more poorly secured (E4X, specifically).

Security is also orthogonal to privacy concerns. For privacy, what matters most is how similar or dissimilar you are to the normal crowd. Using an unorthodox web browser that is observably different from the mainstream browsers is going to reduce your privacy more than any actual benefit you get from extra features.

<comment><USER10> That's a good point. So Tor Project's approach, starting from the latest release, is overall better.

I still miss some old extensions, though. Especially RefControl, which let me supply a site's root as referer to it. Smart Referer just drops referer, with some whitelist exceptions where sites break. RefControl never broke sites.

</comment></comment></comment></comment><comment><USER12> I do not get why ppl are so obsessed about this legacy extensions, by now there is almost a extension for everything and I do not need that much consolidation of the UI.

Tab mix plus is basically now a light extension that just points you to about:config setting that are more then enough for me. The most important setting for me is to open all popups in tabs.

Also Mozilla has deprecated that old APIs for security purposes! Maintaining it with a small team of volunteers or some little donations is not gonna cut it. I am not "Anti" everything its just that I do not see the point of this AT ALL.

// Ok its not even a team its a one man project, makes it even worse. And isn't ESR now also build on a version without the old APIs? If not already that day will come and especially then the using it will be a big security risk.

</comment><comment><USER13> What extensions are people using that they're so dependent on that haven't been able to migrate to webextensions? Genuinely curious. I used to use an old version of Firefox in order to use vimperator, but since tridactyl became available, I have been on Firefox stable.

<comment><USER14> LinkLocationBar, panorama tab groups, websocket inspector, none of which have working replacements in webextentions.

<comment><USER15> > panorama tab groups

How about [https://addons.mozilla.org/en-US/firefox/addon/panorama- tab-...](https://addons.mozilla.org/en-US/firefox/addon/panorama-tab-groups/) ?

</comment></comment></comment><comment><USER16> I find it funny that their site more or less contradicts itself.

[https://www.waterfox.net/](https://www.waterfox.net/)

> No Telemetry Waterfox does not collect ANY telemetry, meaning you don't have > to worry about any tracking or usage information about what you do inside > YOUR browser.

> Limited Data Collection The only thing that Waterfox sends back is your OS > and browser version to check for updates.

[https://www.waterfox.net/about/](https://www.waterfox.net/about/)

> absolutely no data or telemetry is sent back to Mozilla or the Waterfox > project.

<comment><USER17> I mean, of course the browser knows its own version, this is totally not dependent on user data. And you already give away your OS when you download it, right? Of course it knows what OS it's executing on.

I honestly think that can still be truthfully called "No data or telemetry."

> "You don't have to worry about any tracking or usage information about what > you do inside YOUR browser"

That still holds up, if all it sends is info the browser already knows about itself.

<comment><USER18> It's still telemetry. It's irrelevant what the browser "knows about itself", because the browser is not the organization receiving the data. You do not automatically "give away your OS" when you download. User agent strings can be set to whatever you like, and you can run the software on a different system from the one used to download it. If the Waterfox developers want to track usage they should request the user's permission, like Debian does with their opt-in Popularity Contest software.

<comment><USER10> Well, Debian knows whether you're using x86 or x64.

Also, do we know whether Waterfox gets a custom OS report, or just uses the user agent string?

</comment></comment></comment></comment><comment><USER19> Using it right now, since probably a year or so. Does the job fine and so far I found no compatibility issues with FF extensions I use.</comment>


The Silk Road's Dark-Web Dream Is Dead - <AUTHOR> http://www.wired.com/2016/01/the-silk-roads-dark-web-dream-is-dead/ <comment><USER2> Yeah, I guess, like all "countercultural" revolutions, the dark markets ran out of steam a bit. So did Bitcoin.

But the paradigm has shifted. Dark markets are possible.

We now know a lot about the risks/benefits of such marketplaces.

What's missing is a solid technological implementation of a distributed, peer- to-peer, trust-less marketplace. It's possible to do it, it's just not that easy.

An even better alternative would be total drug legalization.

Personally, I think that drugs are good for society more than they are bad and most of the "negative" effects of drugs comes from the prohibition itself.

Full legalization would create a true marketplace and the "bad" drugs would be slowly rejected by the market. It would also allow us to openly and professionally deal with the consequences of drug abuse, addiction, etc..

Countries like Portugal have done that (to a more or less acceptable extent) and the results are remarkable.

Combine legal drugs with modern e-commerce technologies + reputation systems and we've practically "solved" the drug problem. Welcome to the Brave New world ;).

<comment><USER3> I get legalizing drugs that don't have addiction potential, but drugs like meth and heroin have the effect of placing a large portion of the population under the control of their suppliers.

We found this problem very quickly with legal opioid manufacturers - in the 90s, we had very lax rules on prescription painkillers, and the results were predictable. These companies bribed doctors into prescribing them to as many people as possible, lobbying resulted in a refusal to look at the problem, and now we face the fact that these pharmaceutical companies are effectively legal drug dealers to a large portion of the population. Same thing with overprescribing amphetamines to kids for ADHD.

Predictably, we've clamped down harshly on these drugs, and now addicts are turning to heroin because it's cheaper and easier to get. It's just a massive clusterfuck, and it's all due to the fact that slick-talking marketers basically said, "No, don't worry - it's just medicine. No one's going to get addicted from this. Here's a fantastic vacation package while you think it over!"

Addicts make good customers. They'll pay whatever you want, and they'll be with you for life as long as you make the product easily available to them. There's just way too much money at stake to keep companies from acting in a predatory manner, which is why we ended up with Joe Camel and other ads aimed at kids.

I don't like bringing up the "Won't someone please think of the children" argument because it's usually fallacious, but the fact is that tobacco companies have known for a long time that children are very susceptible to advertising and very likely to sustain long-term addiction if they're hooked early. I'm sure that the same is true for harder drugs than nicotine.

The only real question is "Is that state of affairs preferable to the current serious problems of the War On Drugs?" I think that there should be a middle ground. Decriminalize possession totally, go after dealers. This avoids the typical junkies getting busted and sent to long prison terms for having a dime bag, but it prevents regular business from hooking people by the millions.

All I can say is that if we totally legalize drugs, I'm investing heavily in whoever's marketing heroin. One cubic centimeter cures ten gloomy sentiments and all that.

<comment><USER4> Alcohol has been socially acceptable for so long that we often forget how harmful it is to our society, much more so than other hard drugs [0]

All these problems that you state about overprescription and users turning to unsafe harder drugs is all due to the fact that these drugs are illegal. The same concerns were voiced about alcohol during prohibition. Now no one treats alcohol like a medicine and they understand it is a drug. Alcohol is a "hard drug" by any definition as it causes dependence and can have a very negative impact on your life. It was even more dangerous when it was illegal.

The choice isn't between making drugs legal and having a drug free world. The choice is between making it legal or spending resources throwing those who choose to use drugs in jail.

[0] [http://www.economist.com/blogs/dailychart/2010/11/drugs_caus...](http://www.economist.com/blogs/dailychart/2010/11/drugs_cause_most_harm)

<comment><USER5> > The choice isn't between making drugs legal and having a drug free world. > The choice is between making it legal or spending resources throwing those > who choose to use drugs in jail.

That's a legitimate way to look at it, but there are other points of view too eg. the choice is also between a rather limited user base and widespread usage once it becomes legal. I guess it could be argued that marijuana is already everywhere, but what about 'stronger' stuff.

<comment><USER6> 1) Do we know if it will be more widespread? Although the stronger stuff is also illegal in the Netherlands, it's very easy to find and I don't think the Netherlands have more drug addicts then another country (no source for this, just my opinion how I know the country).

2) Is it a problem if it's more widespread? Some stronger stuff can be used responsibly (for example MDMA). Just like only a small portion of alcohol users have alcohol problems. You also got stronger stuff like heroin which is very addictive, but then there's still common sense. Whether it's legal or illegal, I can get it very easily where I live. Yet, I don't take it because I know it's not good for me.

<comment><USER5> The Netherlands have quite a bit of "drug tourism", with people from across Europe going there to party and/or bring some stuff back home--so small wonder that it's quite easy to find pretty much anything there.

As for whether usage would get more widespread, I believe it's to be expected, since legalization means more resellers, more legit businesses that you are not reluctant to deal with, and a de facto approval from governement that the stuff is clean, so less fear of poisoning.

> Whether it's legal or illegal, I can get it very easily where I live. Yet, I > don't take it because I know it's not good for me.

Not everyone got the connections, and not everyone use good judgment. That's the whole point: to what extent can society decide what to authorize and what to forbid.

</comment></comment></comment></comment></comment></comment><comment><USER7> I don't understand the reasoning of wire.

They claim the darkweb black markets are dead because apparently in their opinion the silk road was some sort of honorable black market where buyers could trust sellers. This is ludicrous.

An anonymous market will only ever be as good as sellers and moderators make it. It has the obvious disadvantage of being anonymous but that's a systematic problem when dealing with this type of darkweb.

The silk road was shutdown amidst murder conspiracy and using a brute force method of simply swiping the laptop from under the nose of the mediocre administrator operating it.

If anything this episode has opened the door for more disciplined and experienced people to operate their own darkweb markets and actually get away with doing so without having to lower themselves to the deeds of their predecessor.

From what I can gather the root problem is not attacks against the anonymity but rather human problems. Human admins, making human mistakes or succumbing to human temptation. So with that in mind, it's only a matter of time before we see proper darkweb marketplaces come into their own.

Parallels can be drawn to the world of software and media piracy, everyone should be familiar with the rate of which piracy sites have been coming and going the last 15 years.

</comment><comment><USER8> Yet, the markets are bigger than ever. Volumes are skyrocketing and prices for various substances are lower than in years (see acid).

.onion markets are far from dead.

</comment><comment><USER9> If Bitcoin is ever going to get used by the masses, it needs to be easier to secure your coins. My dad can barely check his email without clicking on an obvious phishing scam.

I can't imagine him with a Bitcoin wallet..

<comment><USER10> Most people will just use Bitcoin-enabled (and probably dollar-denominated) bank accounts with limits on daily withdrawals, same way they use bank accounts and debit cards instead of stuffing $40,000 in bills in their mattress.

Fraud and theft will happen but I don't see why it would be much more of an issue than it is in the current system of debit cards and cash.

<comment><USER11> I guess it is up to if the customer wants the dollar-denomination. I wouldn't want that, I would rather keep my cash tied to btc.

If the customer doesn't want to tie his wealth to btc, why would he/she want to use bitcoin at all? The only reason I can think about is remittance, and there the benefit is cost-saving.

<comment><USER10> > why would he/she want to use bitcoin at all

Remittances, discounts from merchants who pass on the savings vs. processing credit cards, transactions which are considered too risky for current payment methods (ie. buying a MacBook online with your US credit card and having it shipped to your cousin in Romania), buying things online anonymously (porn, VPNs, sex toys), internet gambling (which is legal in most places outside the USA), etc.

</comment></comment></comment></comment><comment><USER12> Well, it was also Wired who said "browsers were about to croak"... in the late 90's</comment>


Zstandard v1.4.1 - <AUTHOR> https://github.com/facebook/zstd/releases/tag/v1.4.1 <comment><AUTHOR> Context: Zstandard is a compression algorithm invented by Yann Collet, with the goal to exceed zlib's compression performance along every dimension (those being compression ratio, compression speed, and decompression speed). Although that bar was cleared long ago, we've continued to work to improve Zstd, and with this release, we've made Zstd just that little bit more hardened/better/faster/stronger.

<comment><USER2> How does it compare in binary size?

<comment><AUTHOR> On my system, the gzip binary is 100KB and my zstd binary is 1.0MB. There are a number of reasons for this:

\- By default, the Zstd binary has a lot of additional functionality that gzip doesn't. For example: Zstd includes benchmarking capabilities, the ability to train compression dictionaries, support for legacy (pre-1.0) formats, etc. You can strip all that stuff out with compile flags, and the binary gets a lot smaller.

\- Zstandard tries to cover a much wider range of compression speeds than zlib does. To do this, the Zstd compressor actually has eight or so different LZ match-finding implementations under the hood (which get inlined in various ways, resulting in >100 actual versions in the binary), and 5+ different entropy encoding implementations.

For really size-conscious use-cases (like decompressing Zstd content in a mobile app), you can get a minimal Zstd decompressor library down to ~30KB.

</comment></comment></comment><comment><USER3> Zstd is awesome. I'd love to see desktop archive software include these algorithms. There's a fork of 7-Zip called 7-Zip ZS that includes zstd and some other algorithms and I found they performed really well for my use case, proving fairly comparable compression to alternatives at a much, much faster speed. Handy for when you want to archive a massive directory of files or a small number of really large files.

</comment><comment><USER4> Previouslies: [https://hn.algolia.com/?query=Zstandard&sort=byPopularity&da...](https://hn.algolia.com/?query=Zstandard&sort=byPopularity&dateRange=all&type=story&storyText=false&prefix&page=0)

</comment><comment><USER5> I really wish there was a small simple implementation of zstd

<comment><AUTHOR> Out of curiosity, why? Zstd performs as well as it does because of the enormous effort that has been invested into it. That necessarily brings complexity.

We do actually have a simple "educational" decoder implementation [0], but I wouldn't recommend its use in production. And then there are two re- implementations in Java [1] and Go [2].

[0] [https://github.com/facebook/zstd/tree/dev/doc/educational_de...](https://github.com/facebook/zstd/tree/dev/doc/educational_decoder) [1] [https://github.com/airlift/aircompressor/tree/master/src/mai...](https://github.com/airlift/aircompressor/tree/master/src/main/java/io/airlift/compress/zstd) [2] [https://github.com/klauspost/compress/tree/master/zstd#zstd](https://github.com/klauspost/compress/tree/master/zstd#zstd)

</comment></comment><comment><USER6> is decompression faster than gzip/zlib?

<comment><USER7> Funnily enough, zstd can also decompress gzip-compressed data faster than gzip can.

      $ du -h data.gz
      324M data.gz
      $ time -p unzstd -k data.gz
      real 1.43
      user 1.24
      sys 0.19
      $ time -p gunzip -k data.gz
      real 4.85
      user 2.28
      sys 0.19

It's even faster at decompressing its own format.</comment></comment>


"site:bartpoa.com inurl:.asp?": BART Police was French girl's first hack. - <AUTHOR> http://blogs.sfweekly.com/thesnitch/2011/08/bart_police_site_break-in_was.php

<comment><USER2> I think we can assume whatever gender/nationality the person claims they are is probably not what they actually are.

<comment><USER3> Would a real French teenager claim that BART should be embarrassed because the attacker was French (vs any other nationality)?

<comment><USER4> _Mais oui!_ It is an embarrassment _not_ to be French, _n'est ce pas?_

<comment><USER5> Fabulous. Can we shut down the Paris Metro for revenge?

<comment><USER6> Just start spreading a rumour about raising the retirement age, they'll all not turn up for work anyway

</comment></comment></comment></comment></comment><comment><USER7> What is the "one page PDF" that was referred to in this article?

</comment><comment><USER8> La maline, hah hah cute nickname she is probably young</comment>