How not to prove that P is not equal to NP  - <AUTHOR> http://gowers.wordpress.com/2013/10/03/how-not-to-prove-that-p-is-not-equal-to-np <comment><USER3> Ugh, I don't see what all the fuss is about. Here, let me do you all a favor:

P = NP

P/P = NP/P

N = 1

Which is absurd, because N is a letter. Therefore, P != NP.

You're welcome.

<comment><USER4> Alternative proof:

Suppose, P = NP

P² = P _(NP)

(subtracting (NP)²)

P² - (NP)² = P_(NP) - (NP)²

(dividing both sides by P-(NP)):

P + (NP) =(NP)

since P = NP (initial assumption):

2*P = P

(dividing by P):

2 = 1

which is a contradiction, therefore P \not= NP

<comment><USER5> Gaaah! My eyes! You assumed that P = NP, therefore you cannot divide by P - <USER2> = P - P = 0.

I think that mistake shows that even finding a mock proof for the fact that P != NP is hard.

</comment></comment></comment><comment><USER6> Can any one explain the article? It looks too technical for me and I am not good with advanced maths. I have an idea of what p != NP is but not _very_ knowledgeable about it.

<comment><USER7> In the quest to prove P != NP a great number of techniques have been tried, and many of these techniques have attempted to use circuit complexity. The circuit complexity of a function with n inputs is, roughly, the size of the smallest circuit that computes it. This is a function depending on n, and so we can talk about polynomial size circuits, etc. The important fact is that if we can find a specific problem (a problem in NP) which doesn't have a polynomial size circuit, then P is not NP.

Unfortunately many of the elementary techniques that try to show this don't work, and for a long time nobody knew why. Then in the 90's Alexander Razborov and Steven Rudich proved a general theorem that these elementary techniques could never prove P != NP.

What Gowers explains in his blog post (and the follow-up) is the Razborov- Rudich theorem, called natural proofs. Roughly, it says that all of the attempted techniques use a "natural" property P of boolean functions. A natural property P asserts one specific function needs large circuits, while all small circuits cannot satisfy the property (and P is efficiently computable, in a sense).

The insight is that all of these properties also apply to TOO MANY other functions. Indeed, if P is natural for polynomial size circuits, and it applies to too many functions, then it can be used to violate another well known conjecture in cryptography, a conjecture on the existence of a certain kind of secure pseudorandom number generator. This is the heart of R-R's theorem, and it's quite a beautiful proof.

Nowadays there are three known "barriers" to proving P is not NP, and any proposed method for solving the problem first needs to argue that it bypasses all of these barriers. The first is called relativization (having to do with oracles), the second naturalization (this natural proofs barrier), and the third algebrization (which I'm not familiar with).

Tim Gower's is actually using this post as a platform to propose a new method for separating P from NP, and so he's studying these barriers to argue why his method bypasses them. For more on his new proposal, see: [http://gowers.wordpress.com/2013/10/24/what-i-did-in-my- summ...](http://gowers.wordpress.com/2013/10/24/what-i-did-in-my-summer- holidays/)

<comment><USER8> > Indeed, if P is natural for polynomial size circuits, and it applies to too > many functions, then it can be used to violate another well known conjecture > in cryptography, a conjecture on the existence of a certain kind of secure > pseudorandom number generator

Has this completely stopped the search for a natural proof that P!=NP, or are there (real--not crackpot) researchers who now simply think "Cool...now I've got a shot at both proving that P!=NP and disproving a widely believed conjecture that is vital to modern cryptography! That gets me tenure and a Field's medal for sure!"

<comment><USER7> The open conjecture (officially, the existence of subexponentially strong pseudorandom function families), is a weaker variant of some stronger conjectures (the existence of polynomially-strong pseudorandom number generators) which actually imply P != NP. So in some sense the problems are very close to equivalent. But yes I think you're right, that nobody would take such an approach seriously.

</comment></comment></comment></comment><comment><USER9> Wow, a double negative! Does this mean that the article shows how to prove that P _is_ equal to NP? :P

<comment><USER10> No, because the the two negatives don't cancel out in this case. "I didn't prove that 3 isn't prime" doesn't mean the same thing as "I proved that 3 is prime" (because one negation is in the matrix clause and the other is in the embedded clause).

<comment><USER9> Yes, hence the emoticon.

<comment><USER11> >P is equal to NP? :P

I thought it was a poorly constructed ternary operator? :D</comment></comment></comment></comment>


A SQL console for your Heroku app - <AUTHOR> http://github.com/ddollar/heroku-sql-console

<comment><USER2> A directory for heroku plugins out in the wild: <http://herocutter.heroku.com> and guide to writing heroku plugins: [http://hone.heroku.com/heroku/2010/01/09/guide-to-heroku- plu...](http://hone.heroku.com/heroku/2010/01/09/guide-to-heroku-plugins.html)

<comment><USER3> I second the thanks! I thought that I had read every bit of Heroku documentation, but I managed to miss this.

</comment></comment><comment><USER4> The cool thing about this is -- browsing quickly through the source -- it looks like it's real easy to make your own Heroku plugins. Their addon system seems to be going gangbusters, and this is the icing on the cake ;)</comment>


ECMAScript 2018: final feature set - <AUTHOR> http://2ality.com/2017/02/ecmascript-2018.html <comment><USER2> I'm not sure about this named capture group proposal. The idea behind the proposal is that regexp engines parse using the old grammar, but if a GroupName is found, re-parse using a different grammar:

 _If the result of parsing contains a GroupName, reparse with the goal symbol Pattern[~U, +N] and use this result instead._

But "the result of parsing" by definition cannot contain a GroupName because GroupName is not part of the initial grammar.

Furthermore it appears that the named capture group backreference syntax `\k<groupname>` is in fact valid under the "old" (no-named-capture-group) syntax. Thus the interpretation of `\k<groupname>` depends on the future parts of the expression, similarly to how `\3` can be an octal escape or a backreference depending on the rest of the expression.

JS regexp parsing is already underspecified [1] and requires two passes to disambiguate backreferences from octal escapes. Now it appears we potentially need a third pass to disambiguate named capture groups.

[1]: [https://blogs.msdn.microsoft.com/ie/2010/08/25/chakra- intero...](https://blogs.msdn.microsoft.com/ie/2010/08/25/chakra- interoperability-means-more-than-just-standards/)

</comment><comment><USER3> A quick summary of what's new:

* Asnyc Iteration: Looping over async lists, e.g, reading lines from file or an async generator.

Allows code like:

      for await (const x of asyncIterable) { foo(x) }

* Spread/Rest (`...`): Makes FP easier.

      const a = { foo: 1 }
      const b = { bar: false, ...a }
      // b is { bar: false, foo: 1 }

Works on arrays (spread operator for literals) or objects (rest operator for destructuring)

* RegEx features like named capture groups

* `Promise.prototype.finally()` - Callback function is always executed, regardless of what promise returns.

<comment><USER4> I honestly thought object/array spread/rest were already in ES2017. Maybe it's because I'm in my own little Babel/React world. I literally just had to stop and go create-react-app and see if that specific use of rest/spread works and it does. Then I went to babel's docs and found it's part of TC-39.

Maybe this is meta, but I wonder what it means for us in this ecosystem. Some of us have totally lost touch with whether the language features we use are supported by the runtime, or are even "canon". Right now I'm probably using a bunch of language features in different projects that are still proposals. I have a few handwoven .babelrc's in different projects that use all manner of things.

I'm almost 40 now and looking back on my programming career, what we do with JS and language features is truly bizarre.

<comment><USER5> "Right now I'm probably using a bunch of language features in different projects that are still proposals. I have a few handwoven .babelrc's in different projects that use all manner of things."

This is one of the main reasons why I am increasingly interested in TypeScript: it gives you more features than JS, but in a way that is consistent and manageable between projects.

It seems inevitable at this point that any large project is effectively going to be using a particular flavour of JS, with language or library extensions.

<comment><USER6> Typescript has been very good at sticking to Stage 3 proposals likely to be adopted by browsers, and providing "off ramps" if the specs change between Typescript implementation and browser adoption. (For instance, Typescript module syntax still recognizes a predecessor to ES Module import/export syntax, but it provides good warnings for the out-of-date syntax and between Typescript strict modes and tslint warnings as errors you can very quickly migrate a project over to the standard syntax.)

</comment></comment></comment></comment><comment><USER7> The async iterators look very powerful to me. That's essentially Streams/Rx Observables right in the language, amirite? Pretty cool, and feels very lightweight. Like, an async generator is how you can write a map/filter/etc over existing streams (eh, async iterators), seems quite nice.

But I bet I'm missing something important. Rx is pretty huge and it looks like this feature isn't really. Does anyone know more, from the trenches? What are the downsides? Does Babel compile it well? Are all important use cases covered?

<comment><USER6> Async Iterators are orthogonal to Streams/Rx Observables. Async Iterators are async "pull" operations (think disc I/O; pulling data record at a time from disc) and Streams/Observables are async "push" (think events like mouse clicks).

They work great together, using each's strengths to specific needs in an application.

Additionally, a lot of the weight of Rx is its large set of "higher order functions" beyond the basics of map/filter/reduce. Similar higher order functions are possible for async iterators. One such library for that is Ix, maintained by some overlap with the Rx team, and maintaining some consistency in operator names and APIs.

I've been using Async Iterables fairly heavily lately in an application in combination with Rx-like Observables (using the xstream library, rather than Rx) and Ix operators. I've been letting Typescript do all the downlevel compilation, and have been pretty happy with it in the use cases where I've been using it.

<comment><USER7> Hmm I don't follow. Wouldn't a generator function producing async iterators be "push"? Without any Rx involved?

I mean, ever since JS got generators, it has support for unlimited length iterables. Isn't an unlimited iterable of promises precisely what you describe as a push stream?

I didn't dive deep, but I do believe I was able to cook up a generator function that produces an async iterable of mouse events. It was able to `for await` it and console log the event data.

<comment><USER6> Certainly there are overlaps in what you accomplish with both technologies, and the push/pull analogy isn't necessarily the best analogy to explain the distinction, but it's the best one I currently have.

Async Iterators/Generators are seen as "pull" because your "main thread" has to actively consume it (you `for await` results), whereas with Rx Stream/Observables your "main thread" passively subscribes to updates.

It probably still seems like a semantic distinction at that, especially as you can relatively easily convert between them. However, a lot of the big differences come down to how each technology deals with A) pressure (lots of items/events), and B) scheduling "intermediate" work (iterables do more work on the "main thread"; streams/observables are better at/have more tools for chunking work on a scheduler/thread pool outside of the "main thread").

Which is also why JS isn't exactly the best language to discuss the differences between async iterators and streams/iterables, because a lot of those biggest differences/distinctions aren't very important in mostly-single- threaded browser JS, which is its most common problem domain.

</comment></comment></comment></comment><comment><USER8> Have been using the spread operator via Babel for several months now. It's definitely convenient - saving me from writing several extra lines of code.

I worry that spread operators make code less readable. You really have to squint and think more when confronted with one.

They also make your code less understandable to a beginner, or people coming from other languages.

One of my favorite ways to use them:

      const foo = {};
      if (bar) {
        foo.bar = bar;
      }

Turns into:

      const foo = {
        ...bar && {bar},
      };

<comment><USER9> … Wouldn't

        const foo = bar ? {bar} : {};

be both more efficient and more readable?

<comment><USER8> Well typically there are more parameters being set than just the one.

</comment></comment></comment><comment><USER10> All I want is a datetime literal: #2018/01/31 17:00:21.2234233#.

I don't even care that it isn't backwards compatible. Eventually platforms will catch up... so the sooner it's added the sooner everything will catch up.

<comment><USER11> Is that because you want date/times in JSON? Shouldn't it include a timezone, and maybe implement ISO8601?

<comment><USER10> 2 things I want in JSON:

1\. Datetime

2\. Expand the encoding to escape '<' and '>'

Being able to specify a datetime as local vs utc would also be nice... so "2018/01/31 17:35:21.2222Z" for UTC and "2018/01/31 17:35:21.2222" for local.

As to the actual format used... that it's just a bikeshed argument waiting to happen. I picked y/m/d for no particular reason (well... other than my ancient preference for a simple sort key). I also picked 24 hour time for no particular reason (well... other than my ancient preference for a simple sort key).

No one would really care too much one way or another what the format was (so long as it was easy to generate using common server side technologies... node, php, java, .net).

<comment><USER12> You can use Unicode escapes for < and > if you need them to be escaped. (Which is unfortunate, but defense in depth I guess.)

</comment></comment></comment></comment><comment><USER13> I understand JS was an experiment and that there was much to add to make it a proper language, but isn't it good enough now? Can we expect the pace of changes to slow down (specially in light of WebAssembly)? I'm not a JS developer and/or language developer, honestly just curious.

<comment><USER14> If it's not breaking backwards compatibility then what's the problem with improvements?

<comment><USER15> It obsoletes older browsers. For a while it used to be you could browse the web with almost anything, even a 10-year old Netscape. Now it's the norm that a 4 year old browser isn't supported, because of new APIs and JS syntax.

<comment><USER16> Why do people like you feel that's acceptable? Software can work from anywhere between a few hours to a decade before an update is required, and it entirely depends on what you're doing.

Websites evolve, and that's the choice of developers around the world. You have no right to complain if you don't keep your software up to date to a reasonable level.

If you want to use 4 years old software, you MUST accept things are broken and that it's your fault. Try downloading Firefox 1-10 and see if they work today ;)

<comment><USER15> I'm not necessarily against forcing upgrades because it comes with advantages, but I was explaining the tradeoff. It's one good thing about Apple and if say, domestic power outlets could change every few years, we could get higher voltages, DC, built in networking, more compact connectors, metering features, etc...

But if everything operated like the web ecosystem, we might consume 100% of our time and money just on upgrades.

And it pretty much guarantees there will only be a handful of vendors, because it's very expensive to stay current.

</comment></comment></comment></comment></comment><comment><USER17>
        RegExp Lookbehind Assertions

Finally... I've had to lookaround it's absence too many times.

<comment><USER18> I've always been baffled by the absence of lookbehinds. Made a lot of regex searching unwieldy, so I'm glad they finally added it together with named capture groups.

</comment></comment><comment><USER19> I couldn't immediately see any proposals for list/set/object comprehensions at [https://github.com/tc39/proposals](https://github.com/tc39/proposals), are there any?

<comment><USER20> I don't think those are happening, but how about basic set arithmetic? The fact that you can't do difference / union / intersection using the standard library is frustrating.

<comment><USER21> There's a proposal for that.

<comment><USER22> Two of them now. One to add Set-specific methods, and another to port the usual Array.prototype methods over to Set and Maps. Can't wait!

[https://github.com/tc39/set-methods](https://github.com/tc39/set-methods) [https://github.com/tc39/collection- methods](https://github.com/tc39/collection-methods)

</comment></comment></comment></comment><comment><USER23> Thank you so much for "finally"!

</comment><comment><USER24> WASM will eventually completely replace the need to use JS for any web development. That will be a good day.

</comment><comment><USER25> Are there polyfills available for any of this?

<comment><USER26> You generally can't polyfill an operator or things that require changes to language parsing, but you can run it through a transpiler like Babel so it converts everything to an earlier version like ES5 with more widespread and stable feature support.

</comment></comment><comment><USER27> The Rest and Spread operators are interesting, I think they're cool syntactic sugar and they've got reasonable use for some types of functional programming, but they feel like a ticking time bomb. It doesn't exactly promote resilience if objects are being passed around many different contexts. It seems like it promotes clunky boilerplate checks over more explicit logic

</comment><comment><USER28> Funny how the "final feature set for 2018" is nailed near enough Feb 2018.

Call me stupid, when I'll get whiteboard tested on these shiny new concepts, but I really don't (and you shouldn't also) give a rats ass about all of this.</comment>


Using AI for Map Marker Labeling - <AUTHOR> http://tech.adstruc.com/post/54481728760/using-ai-for-map-marker-labeling

<comment><USER2> The term "artificial intelligence" should not be used when what's meant is "optimization of a not terribly complicated function in a not terribly large number of dimensions".

[EDIT: I see someone disagrees with this, or with the fact that I said it out loud, or something, strongly enough to downvote it. I would be interested to know why, though I don't guarantee to be persuaded.]

<comment><AUTHOR> Thanks for your comment. I don't see how the difficulty of a problem alters the class of the algorithm that is applied towards finding a solution; the algorithms that we used here are mentioned in almost every classic textbook on AI (Russel, Norvig etc.). If you're alluding towards the difference b/w weak and strong AI, then that's another discussion (btw, I didn't down-vote your comment).

<comment><USER2> (Sorry for the slow reply.)

Yes, these optimization algorithms are used in AI. But that doesn't make _them_ AI. Loops are used in AI; strings are used in AI; but a loop isn't an "AI algorithm" and a string isn't an "AI data structure", and writing a program that uses strings and loops wouldn't be "using AI to [do whatever]".

Simulated annealing is a less trivial thing than loops and strings. But it still isn't specifically an AI technique. Simple hill-climbing optimization, even less so. I'm pretty sure that a hefty majority of the uses of these things is unambiguously not AI unless AI is defined super-broadly (e.g., as "doing something tricky with a computer").

(No, I wasn't alluding to the distinction between "weak" and "strong" AI. I'm perfectly happy to call things AI that don't come close to actually implementing human-like intelligence!)

</comment></comment></comment><comment><USER3> It seems to me like a spring-mass system would be another good thing to try here. That would give you similar behavior to hill climbing, but would also be better at avoiding local minima since I can push neighboring labels away.

<comment><USER4> I thought the article was well written and interesting but I had the same reaction you did: the first thing I would have tried would have been a force- graph.

<comment><AUTHOR> Thanks for your comments. Plugging in a Physics engine to do just that did cross my mind but I ended up using more traditional optimization algorithms b/c they're incredibly easy to implement. Plus, I had worked with them before.</comment></comment></comment>


Obfuscate JavaScript Code Using Node.js - <AUTHOR> https://codeforgeek.com/how-to-obfuscate-javascript-with-node-js/ <comment><USER2> Would have been nice to include links to the source.

[https://obfuscator.io/](https://obfuscator.io/)

[https://github.com/javascript-obfuscator/javascript- obfuscat...](https://github.com/javascript-obfuscator/javascript-obfuscator/)</comment>


Scientists Seek Ban on Method of Editing the Human Genome - <AUTHOR> http://www.nytimes.com/2015/03/20/science/biologists-call-for-halt-to-gene-editing-technique-in-humans.html

<comment><USER2> Of note, an excerpt on a related blog (excerpted from a paywalled article: [http://www.sciencemag.org/content/347/6228/1301.full](http://www.sciencemag.org/content/347/6228/1301.full))

... Rumors are rife, presumably from anonymous peer reviewers, that scientists in China have already used CRISPR on human embryos and have submitted papers on their results. They have apparently not tried to establish any pregnancies, but the rumors alarm researchers who fear that such papers, published before broad discussions of the risks and benefits of genome editing, could trigger a public backlash that would block legitimate uses of the technology.

... But scientists don't yet understand all the possible side effects of tinkering with germ cells or embryos. Monkeys have been born from CRISPR- edited embryos, but at least half of the 10 pregnancies in the monkey experiments ended in miscarriage. In the monkeys that were born, not all cells carried the desired changes, so attempts to eliminate a disease gene might not work. The editing can also damage off-target sites in the genome.

Those uncertainties, together with existing regulations, are sufficient to prevent responsible scientists from attempting any genetically altered babies, says George Church, a molecular geneticist at Harvard Medical School in Boston. Although he signed the Science commentary, he says the discussion "strikes me as a bit exaggerated." He maintains that a de facto moratorium is in place for all technologies until they're proven safe. "The challenge is to show that the benefits are greater than the risks."

... Although many European countries ban germline genetic engineering in humans, the United States and China do not have such laws. Research with private funds is subject to little oversight in the United States, although any attempts to establish a pregnancy would need approval from the U.S. Food and Drug Administration. In China, any clinical use is prohibited by the Ministry of Health guidelines, but not by law.

<comment><USER3> So, redesign them after they're born. Isn't that how this technology works - it can spread through your body and change the working DNA you have right now?

Sure its more effective to change DNA while its still building the scaffolding - after you're born its too late for some things. But that leaves a lot to be done.

<comment><USER4> It is really, really, really hard to target DNA changes to a small number of specific cells reliably.

</comment></comment></comment><comment><USER5> We should carefully build up the knowledge and experience on genome editing. If we can prevent children to be born with genetic defects, we should. And I don't care if the rich and powerful get to make their kids extra smart and beautiful if that means millions of other children don't have to live with a disability.

<comment><USER6> one man's defect is another's feature. the old bug vs. feature debate, applies here. maybe my thinking has been horribly warped by over exposure to computing.

<comment><USER7> Bullshit. I'm in my early 20s and have MS. That is not a feature.

<comment><USER8> What is MS?

<comment><USER6> [https://en.wikipedia.org/wiki/Multiple_sclerosis](https://en.wikipedia.org/wiki/Multiple_sclerosis)

</comment></comment></comment></comment></comment><comment><USER9> Can't express coherently how much the idea of "not going with this research 160 mph" irritates me.

Human genetic variation is so profoundly unfair. There is such a wide IQ range, such a wide physical development range, such a wide 'beauty' range. To think of condemning one extra person to be in the bottom of those ranges is painful.

What the hell can such a benefit be measured against ? The aesthetic objection of 'ethicists' ? (read: filosophers trying to answer unanswerable questions armed just with 'common sense')

\</comment><comment></comment><comment>

Btw: I am not sure that, given the possibility of writing genes, we'd know the right genes to alter. Just answering to the article on its terms

<comment><USER3> When the alternative is 'allow random chance to produce a possibly-deformed child with no particular chance of success' its not hard to decide. Of course we want to improve our children! We spend our lives doing that after they're born. Now we have a chance to do it before. It obvious what we will choose.

And we know more about genes literally every day. We will start with small changes (remove defects). Then we will tune physical details (height, weight, strength, skin). Then we will turn to the serious stuff - IQ, longevity, disease resistance.

To complain that some children will suffer, is to ignore all the children that already suffer.

</comment></comment><comment> philipp-de Well if they do test this on humans, and if something goes wrong - they can easily fix it. Just apply a wetware update. Maybe we can even deploy wetware updates wirelessly soon. Just think of the possibilities. "Have you installed the Starbucks(tm) Wetware upgrade that makes you able to digest our latest drink, yet ?"

<comment><USER10> Or... "the latest patch for <brand>(tm) protects your genome against future cell aberrations so you can safely consume our (carcinogenic) products. Update _your_ system now?"

</comment></comment><comment><USER11> If you're having difficulty understanding what all the fuss is about, try watching Gattaca.

[http://www.imdb.com/title/tt0119177/](http://www.imdb.com/title/tt0119177/)

</comment><comment><USER12> Let us, the average intelligence, start building even better flat screens and HE systems so in the near future we can sit back and watch the battle between AI (robotics) and MI (modified intelligence).

</comment><comment><USER13> The world has changed significantly since the 70ies, when such a moratorium worked. I don't think that it would in today's world, where information is more free than ever.

<comment><USER14> People sure move fast when there's a potentially promising technology. [http://crisprtx.com](http://crisprtx.com)

</comment></comment><comment><USER15> You can't honestly expect people to observe a ban on technology, voluntary or otherwise. Just look at the music and movie industry. As soon as the technology existed to bypass DRM, people embraced it whole-heartedly. If people have a chance to rid themselves and their descendants of defective genes, they sure as hell are going to do it, regardless of whether it's legal.

<comment> vezzy-fnord The barrier to entry simply isn't comparable. The technology to bypass DRM and copy protection has existed since the day of its invention. You've always had black-box analysis.

Amateur genetic engineering (so-called "biohacking") is in its very early infancy, and it's early to tell how accessible it might become.

<comment><USER15> Back in the 70's when you had people phone phreaking, the barrier to entry was high. You would need access to a box of Cap'n Crunch along with the knowledge on how to phreak. The barrier to entry was low with DRM-bypassing. You didn't need special knowledge; all you needed was a computer and the right software program. In this case the barrier to entry is high: by necessity you need to be a scientist with years of training. The principle, however, is the same. Once set lose, technology cannot be put back in the box.

Unless you're the steam engine.

</comment></comment></comment><comment><USER16> This article made me want to try human genome editing. It's obvious that given the possibility people are not going to be able to resist.

<comment><USER17> When subcultures like furries or bronies get hold of it, things may get more than a bit odd.

<comment><USER18> Any genome edit large enough to make you look like a dog would most likely kill you, or _at least_ render any embryos you may conceive non-viable.

GENETICS IS HARD.

<comment><USER3> Simultaneously its easy. We modify bacteria, fish, dogs all the time with success. Sure you can go wrong sometimes, but you can go very right too. Add limbs to flies. Make them glow in the dark. And so on.

<comment><USER19> But there are limits to what genes can express, based on the cell's capabilities. For instance, you could make someone a wolfman by adding hair, but you couldn't have them grow leaves like the Jolly Green Giant. Our cells just don't have the kernel level support or whatever you want to call it.

<comment><USER20> We share half our genes with the banana. Granted the scientists are (probably) only talking about editing the 0.3% of the genome that makes humans different from each other, but with so much of our DNA shared with other eukaryote celled life, adding leaves may not be that difficult.

<comment><USER17> _We share half our genes with the banana._

Given that the other half come from monkeys, is this why babies try and eat their toes?

</comment></comment></comment></comment></comment></comment></comment><comment><USER3> Its easy and inevitable. Better than a moratorium: an open database to help track what works and what doesn't, to help you decide.

<comment><USER17> While building this database and working out what doesn't work, would you not have a moratorium?

<comment><USER3> Not if it was built from practical experience.

</comment></comment></comment><comment><USER21> This perspective is interesting:

"Many ethicists have accepted the idea of gene therapy, changes that die with the patient, but draw a clear line at altering the germline, since these will extend to future generations."

Doesn't this imply that ethically you can alter your own geneline as long as from that point on you cannot have progeny?

<comment><USER22> It's a weird situation. Why wouldn't I want to edit out BRCA1/2 for myself _and_ my downline? Who gets to say that my progeny have to live with the significant risk of dying from breast cancer?

That's why this is so touchy. Who gets to draw these lines, and why? Bans on anything are rarely helpful.

<comment><USER6> > Bans on anything are rarely helpful.

ban on theft seems to be working out pretty good here, thanks.

<comment><USER23> The intellectual property debate would beg to differ.

<comment><USER6> I think you are doing both sides of the intellectual property debate a disservice by calling it theft, don't you?

copyright infringement = theft? sure, industrial espionage is theft, but that's not what you are talking about.

EDIT: this is probably the best essay I've read on it:

[https://www.gnu.org/philosophy/not- ipr.html](https://www.gnu.org/philosophy/not-ipr.html)

</comment></comment></comment></comment></comment><comment><USER11> > "We worry about people making changes without the knowledge of what those > changes mean in terms of the overall genome," Dr. Baltimore said. "I > personally think we are just not smart enough — and won't be for a very long > time — to feel comfortable about the consequences of changing heredity, even > in a single individual."

Yet, we're suppose to trust that GMOs are safe for consumption?

<comment><USER24> Because I do believe that this is the next step in our human evolution. Be able to modify our DNA to increase our chance of survival in the future. Fungi, bacteria, and viruses modify at an alarming rate and outpace us humans. Humans are complex creatures and it takes many generations for enhancements. We may not be fast enough in the future without some modification help.

</comment></comment><comment><USER25> but aren't crops already genetically modified to give better yields etc? Whats wrong with making people smarter? Of course the safety of such procedures should thoroughly be checked but i still think this kinds of things should not be banned over moral and ethical grounds</comment>


HNSearch API Contest - <AUTHOR> http://www.hnsearch.com/contest

<comment><USER2> Every hnsearch contestant gets a dotCloud account to run their app easily, and for free.

Email firstname.lastname@example.com to get started.

</comment><comment><USER3> I sadly don't have time to implement it, but I'm still suggesting the idea.

You enter a keyword - say Python.

It shows a graph where nodes are submitted articles and comments intermixed. On each "Comment" node, we see the picture of the author (obviously if found), the karma and other possible information about him/her (Blog, website, startup company, etc.).

Also, on each nodes start new related nodes.. So, if I search for python, I might have a link to a new node called Django which would then link to useful comments and other articles/comments.

So, the overall idea is to really be able to "visually browse and learn through hacker news". "Vim" would give all plugins, author's plugin, etc.

</comment><comment><USER4> Just for curiosity's sake, how is this dataset populated? Is ThriftDB just scraping HN? Is there some kind of back-end DB feed?

</comment><comment><USER5> Well this is as far as I got in about an hour for adding a /hn tag to Unscatter.com - <http://www.unscatter.com/search/?q=%2Fhn+facebook>

Javascript paging still isn't and it needs to be prettied up, but I figure not bad for about an hours worth of work. And a good demonstration of the framework Unscatter.com is built on being suitable for rolling out new apis pretty quickly.

I'd wrap it up today but I got family stuff today, should be complete by 6/20. Until I finish the javascript and layout /hn won't be advertised on the sidebar, but anyone is free to start using it, I won't be turning it off.

<comment><AUTHOR> Awesome! It would be great to start a discussion about ranking algorithms in the HNSearch developer forum (<http://groups.google.com/group/hnsearch>). We'd like to implement some ThriftDB features to tweak ranking algorithms automatically but that won't be ready for a while.

<comment><USER5> I haven't even gotten into ranking yet. I took the example url and rolled with that. I think the first thing I'll focus on is seeing if I can also offer /hncomment and /hnlinks to help people search different types, then work on the algorithms for all 3. Once I have /hn display looking good I can roll it out to the other 2 pretty quickly.

</comment></comment></comment><comment><AUTHOR> We just changed the contest date from June 15th to June 20th to give people more time to work on apps.

</comment><comment><USER6> OK - I have no illusions about winning the contest, but just for fun I gave it a go by adding support to my existing Android app, SocialMediaTicker. My app is designed for when your device is charging or otherwise idle and is a bit of an eye-candy display. It's a 3D, interactive ticker-tape type display that scrolls facebook feeds, twitter streams, news headlines, photos, rss feeds, etc. Click once to stop an item, click on it again to call up the full photo, story, rss feed, etc.

For HN, I added a headline search capability and also made it part of my experimental Twitter Trends mashup where the search terms for content automatically come from the currently trending topics under Twitter. This can be hit-and-miss for HN as oftentimes Twitter trending terms don't match well to the topics found under HN, but other times I've been surprised about what pops up.

If you want to give the mashup a try, I'd turn most other content off, turn the mashup on, sit back and watch what happens! Configuration of all content can be found in the preferences menu. By default HN is off.

To give it a try on your Android, download the app here:

<http://www.socialmediaticker.com/SocialMediaTicker.apk>

Feedback appreciated!

</comment><comment><USER7> Anyone wanna team up on this? I'm thinking of a WordPress plugin that shows links to related articles or discussions based on a post's title or tags ...

</comment><comment><USER8> Here's my simple HNSearch API JavaScript example. It lists submissions from the last 3 hours and sorts by points.

<http://www.hnjs.dotcloud.com/>

<http://news.ycombinator.com/item?id=2663282>

</comment><comment><USER9> This probably won't win, but it would be great if someone could write a tiny app that converts search results sorted by date into RSS feeds. I might hack something up myself after I'm done with exams, if no one else does.

<comment><USER10> Does this work? <http://news.ycombinator.com/rss>

<comment><USER9> That is for all(?) of Y Combinator, whereas you might be interested in new posts with some criterion (keyword, points, etc.)

<comment><USER10> Interesting. I wonder how you go about setting up an rss feed.

</comment></comment></comment></comment><comment><USER11> What makes the monitor "hacker-optimized"?

<comment><AUTHOR> It's really big.

</comment></comment><comment><USER12> _disclaimer: this is shameless self promotion for something i coded some time ago_

well, is somebody hacks up something nice via node.js why not transform the whole hnsearch api into a nice npm package using

<https://github.com/franzenzenhofer/apimaker>

basically you put some nice URLs in -> magic -> a wrapped API comes out.

</comment><comment><USER13> Hello I've spent the last two days hacking together a mobile site for hacker new search API... the mobile site is fully function but still needs some UI updating I currently working on integrating into twilio to allow you to pull search results via TEXT kinda over kill but why not!

<http://hnsearch.mobi>

</comment><comment><USER9> What are reasonable rates for querying the API?

<comment><AUTHOR> For now, don't worry about rate limits.

</comment></comment><comment><USER11> If this is successful, will you consider running a similar contest for Arc Forum? <http://news.ycombinator.com/item?id=2620297>

_Edit:_ Fixed link to have correct URL. Sorry for the mistake.

<comment><AUTHOR> Has someone written a crawler for the forum? If so, I can help with the ThriftDB setup.

<comment><USER11> That would be amazing! I think there have been at least a couple crawlers written for it. (One being SearchYC's.) I'll let you know when I find something more concrete.

Is there anything else that would help make the ThriftDB setup go more smoothly?

<comment><AUTHOR> I don't think so. Once we have the data it'll be easy to upload it. I'm emailing with the SearchYC creator so I'll ask him about arc forum data.

<comment><USER11> Kartik is happy to contribute his crawler, but wonders if it wouldn't be easiest to reuse the HNSearch crawler (since both forums have the same structure). <http://arclanguage.org/item?id=14774>

</comment></comment></comment></comment></comment><comment><USER14> Here is one: <http://HNTop100.com> \-- the top Hacker News posts of all time! Sort by most up voted or most commented on. This took me way longer than it need to because I kept finding awesome articles to read! Enjoy xD

</comment><comment><USER15> Put in a quick first entry for the contest (HNInstant.com):

<http://news.ycombinator.com/item?id=2621144>

More coming...

</comment><comment><USER14> Looks like fun, gears are churning.

</comment><comment><USER16> anyone looking for a coding buddy to do something or ideas? i have some free time atm

<comment><USER16> How are group entries supposed to share the prize? Refund for dinero?</comment></comment>


HN Guideline Reminder: Please remove numbers from post titles - <AUTHOR>

Just a gentle reminder that we are encouraged to remove non-meaningful numbers from post titles before submission. I thought this reminder was necessary because of a decent-size group of front-page submissions including top [X] lists, see:
http://skitch.com/sant0sk1/bssdm/hn-lists
From the guidelines page:
'If the original title begins with a number or number + gratuitous adjective, we'd appreciate it if you'd crop it. E.g. translate "10 Ways To Do X" to "How To Do X," and "14 Amazing Ys" to "Ys." Exception: when the number is meaningful, e.g. "The 5 Platonic Solids."' <comment><USER2> I disagree if the title of the article being linked to contains numbers so should the post title. It is more misleading and awkward to click the link and then do a double take when the article names don't match.

I think this is a bad guideline.

<comment><USER3> Eh? Submitters routinely submit a different title than the original article (eg. to give more context) - if that makes you do a double take, you must be doing it a lot. I don't even notice.

The N in "N ways to" is usually noise, so I can see why the guideline is there.

</comment></comment><comment><USER4> This has always been my favorite of HN's editorial conventions. It's interesting how the tone changes with the tiny alteration from e.g. _20 Common Mistakes Java Developers Make_ to just _Common Mistakes Java Developers Make_.

<comment><USER5> Why? It seems very similar to me...

<comment><USER6> Numbered lists imply completeness, omniscience etc. - it's a literary gimmick, both in terms of attracting the lazy reader and in giving the writer a convenient structure they can fill out easily, with the last few points usually being fluff. A famous example is the '7 habits of highly effective people' followed by 'the 8th habit' (strangely, not titled 'oh wait, I forgot one').

Of course, you could argue that leaving the numbers in informs HN readers about which articles are mere gimmickry rather than carefully written essays.

<comment><USER7> I disagree with this. At least from my own perspective, numbered list imply one thing: that I can expect a specific number of items.

In fact, in the given example, the non-numbered version of the title sounds like it should be more authoritative. It goes from an interpretation of, "a list of 20 common mistakes," to one of, "a list of /the/ common mistakes." I.e., to me at least, the second option has an implication of being a list of all the common mistakes, while the former implies that this while this is a list of 20 mistakes, there could be more.

It is the adjective ("amazing," "killer," "must-have," etc.) present in the title and NOT the number that conveys authority, completeness, etc.

Perhaps I am the exception, though, and not the rule.

</comment></comment></comment></comment><comment><USER8> Numbers in the title of a blog post reliably indicate bad writing, because they indicate that the writer used a template rather than original thought. I would prefer not to see "N ways to X" articles on HN at all.

</comment><comment><USER9> Important difference among "Some N of something" and "Somethings" is that I can see, without looking at the link, that it's a "Some N of something" type article, which are mostly crap (I don't know, but I didn't see any interesting article titled "N of something" yet), so it saves time, a little.

</comment><comment><USER10> This makes no sense. You should instill good writing, yes, but good linking should respect the original title. I come across the same articles from different sources; it would be nice to be able to quickly understand that it's the same article (because of the identical title).

</comment><comment><USER11> If only churnalists did the same thing.

I've seen it done a staggering 100 million times.

</comment><comment><USER12> i love rules

<comment><USER13> I only like some rules.

</comment></comment><comment><USER14> do we also need to do a secret handshake when posting?</comment>


Injecting Liquid Metal Could Help Kill Tumours - <AUTHOR> https://medium.com/the-physics-arxiv-blog/e6359e48e9e3 <comment><USER2> O.o

Drain the blood, fill the mammal with formaldehyde. That will kill the tumors. There "might" be a problem with liquid metals arriving at the heart and lungs via a blood channel? Just start human trials. Nothing could go wrong with this. Maybe try heavier metals like mercury which would sink to the feet instead of going to the heart and lungs.

<comment><USER3> Who said anything about saving the patient? This is just about killing tumors.

</comment></comment><comment><USER4> I wondered if you could use computer controlled magnets in a harness to keep the metal in place for a couple weeks, then remove it. Unfortunately, transition metals appear not to be magnetic. However, why not just stick glue into the veins? It won't migrate after curing...

<comment><USER5> They addressed glue in the article. Apparently it never completely seals the vein.

<comment><USER4> reading is hard; i'm gonna get on that one day =P

</comment></comment></comment><comment><USER6> Anyone know how China arrived at the 75% cell survival standard for safety? What is it in the US?

</comment><comment><USER7> Curing cancer, Wolverine style.

Seems like a clever way to starve tissues. Dying of metal poisoning almost always beats dying of cancer.</comment>


Facial recognition is coming to US airports, fast-tracked by Trump - <AUTHOR> http://www.theverge.com/2017/4/18/15332742/us-border-biometric-exit-facial-recognition-scanning-homeland-security <comment><USER2> So this will be an additive check I imagine. So after waiting in line to show a TSA person your ID, you will have to wait in line to for your turn at the facial recognition system, before waiting in line at the conveyor belt for bag screening and waiting in line for the one body scanner.

The article states:

>"We currently have everyone's photo, so we don't need to do any sort of enrollment. We have access to the Department of State records so we have photos of US Citizens, we have visa photos, we have photos of people when they cross into the US and their biometrics are captured into [DHS biometric database] IDENT.""

If this is the case then why can't we just dispense with the whole security theater nonsense and spare regular honest folks the indignity of the current TSA berating and harassment?

There's also a case that could be made for reclaiming the loss of time and productivity that the current security theater takes from the country ever year.

</comment><comment><USER3> This has been long in the works. Automatic entrance and exit screening was required by the Illegal Immigration Reform and Immigration Responsibility Act signed by President Clinton in 1996. In 2004, the 9/11 Commission recommended it, too.

</comment><comment><USER4> Like fingerprints face recog is riddled with unknown and known weaknesses. Placing such a low bar in such a place where the highest standard of protocol should be used, seems like folly to me</comment>


Digg Changes Algorithm: No More Group Voting Up Stories - <AUTHOR> http://www.techcrunch.com/2008/01/23/digg-changes-algorithm-no-more-group-voting-up-stories/

<comment><AUTHOR> Interesting mostly in a meta way.

Did it ever make sense to have voting circles mean more than diversified voting on the site? If I had to choose an initial bias, I'd choose the latter. News.YC chooses neither, I guess.

<comment><USER2> So was group voting actually favorably weighted on Digg?

<comment><USER3> The article seems to suggest that there was no preference one way or the other previously, but that larger groups still up-voted stories together, which influenced the diversity of the site towards them more than was wanted by everyone.

For example, there is a strong ron paul supporting group of people that use that site, and their voice is drowning out the rest of the audience. A few hundred vocal ron paul supporters are all that are needed to over influence the thousands+ that visit the site. Now it sounds like they're checking for diversity of friend groups to ensure that the most popular stories are the stories most popular amongst the most diverse amount of people will float to the top.

Then again this is all speculation, and I still think it could be a better algorithm.

As for the worries of the Drill Down show, there will probably always be problems with spammers and fraudulent stories on social sites like that, it's just a race of AI development on both sides of the site.</comment></comment></comment>


World's Most Powerful Desktop Supercomputer - <AUTHOR> http://fastra2.ua.ac.be/

<comment><USER2> Not anymore, I'd assume. It's running 2 year old hardware by now and Fermi- based GPU's pretty much trounce the GT200 family when it comes to double precision. That said, another good example of how GPU computing can provide a lot of horsepower for (relatively) little cash, especially for certain classes of problems. I built a Tesla Desktop SuperComputer (Dual Xeons, 3 Tesla's and a Quadro 4800) for my school's Computer Vision lab back in '09, and it cost us ~8K for a ridiculous amount of performance.</comment>


Using LLVM Code Generation To Speed Up Query Performance In Impala  - <AUTHOR> https://blog.cloudera.com/blog/2013/02/inside-cloudera-impala-runtime-code-generation/

<comment><USER2> Awesome explanation of LLVM!</comment>


A Worker in Amazon's New York Warehouse Has Died of the Coronavirus - <AUTHOR> https://www.vice.com/en_ca/article/y3zmp7/a-worker-in-amazons-new-york-warehouse-has-died-of-the-coronavirus <comment><USER2> Disclosure: Amazon employee posting from a throwaway account.

First off, it is extremely sad that a coworker died. Obviously every death is a tragedy and I would not want to diminish that at all.

With that said, I have been reading the same news stories you have and was curious to know how well Amazon is doing at keeping my coworkers in essential roles safe.

This article, and others I've read, cite 2 fatal Covid Cases. I believe the most recent estimates for Amazon's employee count put it at around 1,000,000 employees. To be conservative I'll say 950,000. 2/950000 = 0.0000021053, so __0.0002% __of Amazon employees have died that we know of.

70,000 people in the USA have died of Covid from the numbers I see today. Assuming a US population of 330,000,000 we do the math (70000/330000000) and get 0.000212121 or __0.02% __of US residents have died of Covid.

This obviously does not weigh things like age range, etc. but I seeing that my fellow employees are 1/100 as likely to have died of Covid as the average US resident makes me feel good about how effective the protective measures are.

<comment><USER3> Does your 1 million employee number include those in roles that have the ability to work from home or otherwise in an environment outside of the delivery/warehouse sphere?

Additionally, it is likely better to look at rates of infection or number of cases among Amazon warehouse employees. The "protective measures" implemented by Amazon are intended to prevent the spread and contraction of COVID. We can sidestep the difficulties of controlling for age and other factors with respect to mortality as you mentioned and instead evaluate the efficacy of Amazon's protective measures by examining infection rates.

</comment></comment><comment><USER4> From the title, it reads like the warehouse worker died at the warehouse. According to the article "company said that the employee who died hadn't been at the warehouse since April 11". 'providing "inadequate" protections to its workers under state law'...

What is "adequate"? What would be adequate from any company? We are quick to say inadequate, but at what level would we say "sure XYZ company did adequate job at protecting employees"? The answer is never. The only "permitted solution" is complete company shutdown. But, would we stand for that? Would we tolerate Amazon shuttering her doors until this is over? I highly doubt it.

This bothers me not only for Amazon for pretty much any politician's perspective. What is "adequate"?</comment>


Ask HN: rules for storing banking info? - <AUTHOR>

There are a lot of rumors about rules that companies must abide by security-wise to store banking information - say, checking account and routing numbers. It's very difficult to dig up anything factual on the matter, though.
It seems to me that it must work one of three ways:
1.) The government provides a set of security standards which must be met to legally store banking information.
2.) Banks provide security standards which must be met to retain their business.
3.) There are no specific standards, but you are liable to be sued for any breech in security.
I know how important it is to have near impenetrable security when storing important information. I'm looking specifically to demystify the legal end of things. Have I hit the target with one of these three theories? <comment><USER2> The case is mostly #3.

PCI-DSS is the most commonly used standard, is aimed at retailers and payment processing systems. And while it is credit card based, much of what is in it covers other stuff that you should be thinking about if you're storing banking information.

One book to look at is Cryptography in the Database. There is a section about laws that cover data security such as GLBA (which says nothing that a developer finds useful) and SOX (which, for software development, is more about background checks and version/configuration control). [http://www.amazon.com/Cryptography-Database-Defense- Symantec...](http://www.amazon.com/Cryptography-Database-Defense-Symantec- Press/dp/0321320735/)

Another book that may help with keeping the data away from hackers (and rogue employees) is Translucent Databases. I have the 1st edition, and the 2nd just came out last month: [http://www.amazon.com/Translucent-Databases-2nd- authenticati...](http://www.amazon.com/Translucent-Databases-2nd- authentication-steganography/dp/1441421343/)

In support of #1, check out NIST's 800 series of standards. When we were looking to bid on a government computing contract, they included a long list of them by reference, effectively turning a 3k page RFP into about 6k pages: <http://csrc.nist.gov/publications/PubsSPs.html>

</comment><comment><USER3> The phrase you want is "PCI Compliance"

<http://www.pcicomplianceguide.org/>

<comment><AUTHOR> Thanks a lot for the link.

It looks like going for PCI compliance is what's necessary for credit card information storage - any idea whether there are similar regulations around bank routing / account information?

<comment><USER3> There are, but I personally have no experience of them. I'd be surprised tho' if you were PCI compliant and _not_ compliant with whatever that is.

</comment></comment></comment><comment><USER4> If you are thinking about doing this yourself, I would hire some programmer who used to work for a bank (lots of those around nowadays).

I don't recall if there are any Federal or industry guidelines for banking encryption, but there is FIPS for general security. There is also explicit law about audit trails, chains of custody, access controls, reporting breaches, etc. In general you are legally obligated to know you were pwned and how.

Access to a system must not allow access to data. Access to one account must not allow access to another (ie, use a different encryption key for each account). Physical access to a system must be secured and audited, etc.</comment>


AT&T Using Web Bugs to Track Customer Email - <AUTHOR> http://www.zdziarski.com/blog/?p=1137

<comment><USER2> This isn't really anything special. Using bugs to track email open rates in any kind of marketing-related email is standard procedure in any sufficiently large company. There are a lot of perfectly benign ways to use tracking bugs in emails, and it's somewhat silly to assume that AT&T is being malicious with it. If you hate and distrust AT&T quite that much, then perhaps you shouldn't be giving them your business.

<comment><USER3> Agreed. I would be shocked to see an email from any mass mailing that did not include this kind of tracking. If you don't like this sort of thing, turn of images and HTML.</comment></comment>


Mexican Cartels Enslave Engineers to Build Radio Network - <AUTHOR> http://www.wired.com/dangerroom/2012/11/zeta-radio/

<comment><USER2> All the more reason to end the drug war and stop giving Mexico money to fight it too.</comment>


Did the NOSQL Wave Fail or Succeed? - <AUTHOR> http://tapes.scalevp.com/did-nosql-fail-succeed-roger-bodamer-mongodb-mariadb/ <comment><USER2> I think a lot of the hate for NoSQL comes from 2 places:

1\. Imperfect implementations. For example Mongo with it's lack of transactional safety (if that's still an issue, haven't worked with Mongo in a long time). Since then several different ideas and implementations have come forward and if you're looking for NoSQL right now and you have a good use case for it, you will almost certainly find a product that does just what you need.

and 2. People not understanding what NoSQL is good for and when to use it over relational. If you try to use a document store to store heavily relational data you're going to quickly give yourself a headache. The real use case of document stores is that they let you have the immense scalability of key-value stores (due to the nature of key-value stores) while also giving you some nested data and basic relational abilities.

In our stack we use a combination of SQL (Postgres), key-value store (Redis), and document store (DynamoDB), each picked to solve a certain problem and not go out of the bounds of what it's good for.

<comment><USER3> So, your take is that NoSQL's problems boil down to a mix of not working at all and a general inability to get it to actually work.

<comment><USER2> That's not what I said at all. And I think you're really misconstruing my words with the goal of declaring that NoSQL, an extremely large category of databases, is bad, which is a dangerous generalization. I never said anything about difficulity getting NoSQL databases to work, i talked about how they are put to use in problems that don't warrant them as a solution.

The problems that I said are as follows: 1. One of the most popular NoSQL databases early on (MongoDB), is imperfect, but a lot of people decided to use it without really reading into what it does and the flaws it as because:

2\. people got so hung up on hype for NoSQL that they did not think about what makes it great for certain use cases. Key-value stores offer unrivaled scalability, allowing you to store extreme amounts of data and cluster it efficiently, something that is simply not possible in relational databases. However, they do not offer the relational capabilities of SQL (and i'd say for most apps and services these days the vast majority of data is relational). The nice part about document stores, which are really what got the hype going about NoSQL, is that they offer the extreme scaling potential of key-value stores and offer _some_ relational capabilities. Thus they are great for high volume nested data which will be looked up almost always by it's primary key. People ignored that this was the optimal use case and just used Mongo it when it seemed convenient and cool, which led to problems down the line when the realized they didn't have relational capabilities and they didn't have a schema to keep things organized.

I use a key-value store (NoSQL) and a document store (NoSQL) every day as well as a relational store (SQL). You just need to pick the right DB for the situation. No database is a jack of all trades.</comment></comment></comment>


Steam for Mac released today, Linux user base soon to explode - <AUTHOR> http://www.telegraph.co.uk/technology/apple/7715209/Steam-for-Mac-goes-live.html

<comment><USER2> Lots of places reporting this...there is still no download link.

<comment><USER3> Well, I have the closed beta installed steam (i wasn't accepted) and it did give an error message about Steam being in closed beta, and it would lock everything up. Now, it opens up fine, there are just no games I can add or play.</comment></comment>


Show HN: Python Utility for Simple Text Analysis - <AUTHOR> https://github.com/GotoCode/text-analyzer <comment><USER2> Hi, I find your text analysis code very interesting, and have tried your repo, but it does not work as expected, '_tkinter' and 'py3-gt' causes import errors.

<comment><AUTHOR> Hi, thanks for your interest in the code.

With regards to the repo not working as expected, could you give some more detail?

Is there some particular use case that fails?</comment></comment>


Ask HN: Thoughts on journalists blaming cloudflare for the el paso shooting? - <AUTHOR> First of all, the el paso shooting is disgusting and I pray that the survivors find strength to heal.
I came across this tweet by a guardian journalist : https://twitter.com/juliacarriew/status/1157835371016671232
I'll leave out my opinion on this matter, but what responsibility should corporations take for their platfroms used for illegal activities, even though cloudflare itself does not host the content? Do you think once companies start giving in to social media pressure, it might become a weapon to censor people? What practical measures can we take as tech companies and more generally the government to bring mass shootings to zero? <comment><USER3> Censorship is disgusting, we should all oppose it.

Its literally removing the ability for the populace to educate itself.

Journalists blaming cloudflare should be ashamed of themselves, they've just basically called out their lack of intelligence and we should shun those journalists.

<comment><USER4> > Censorship is disgusting, we should all oppose it.

> Its literally removing the ability for the populace to educate itself.

By running around, yelling the N word and not worrying about repercussions?

<comment><USER3> I agree its gross to run around and yell the N word but there's a saying - "sunlight is the best disinfectant". I'd rather know where the badguys are.

</comment></comment></comment><comment><USER5> This is a pretty un-charitable/misleading reading of the original Tweet. The journalist in question did not say that CloudFlare was responsible for the shooting (that would be a pretty outrageous claim), but that 8chan is able to still exist, in part, due to the fact that they are a CloudFlare customer. Two fundamentally different things.

That being said, the wording that 8chan "receives protection" from CF is also a bit misleading, because it's not a gift from CF, but a service the admins presumably pay for.

I don't think CF should be receiving the blame for this incident at all - <USER2> protection isn't what's hosting hateful content, letting it sit and fester unmoderated, letting terrorists get their hands on high-powered weapons, sitting in Congress avoiding taking any actual action, etc.

</comment><comment><USER6> What a weird angle. "If CF didn't protect them from DDOS, we could take care of the issue vigilante style".

The only issue I have with CF in that regard is their anonymization service: you can generally hide behind their shield both technically and legally. As I understand, that's not the issue with this 8chan site? If it's known who is running it, go after them the normal way the legal frameworks provide.

</comment><comment><USER7> Imagine the mental gymnastic you have to go through to convince yourself that shootings are caused by cloudflare....

It's a societal issue, there are literally hundreds of measures that should be taken before even considering banning websites for wrongthink.

</comment><comment><USER8> In many of these shooting instances, I have noticed a bit of hypocrisy in that small sites like 8chan are attacked as being highly nefarious and evil, but the mainstream sites that have hosted accounts of several mass shooters are mostly given a pass by journalists and Silicon Valley, et al... I don't understand why they are not all treated the same.

</comment><comment><USER9> Knowingly hosting credible threats of violence I think carries some responsibility (although I wouldn't enforce it by law).

Beyond that I think it is a dangerous idea to take it much further.

</comment><comment><USER10> Would you want to live in a world without Section 230 of the Communications Decency Act is the real question. The journalist seems like he would. I wouldn't.</comment>


Hoverboard responsible for destroying Tennessee home, officials say - <AUTHOR> http://www.foxnews.com/us/2016/02/10/hoverboard-responsible-for-destroying-tennessee-home-officials-say.html <comment><USER2> Please. We must stop calling these things Hoverboards. Even if the newspaper did, just copy paste it and replace Hoverboard with "rolling retard vehicle" or something. Its not hovering, nor a board.</comment>


Ask HN: Do you use Instagram? And if yes – what for? - <AUTHOR> <comment><USER2> For the same reason that you like things that other people don't. People are different and like different things. Some people like sharing their own images and following images from people/companies they like.

Some people don't. It's not a great mystery. People enjoy different things.</comment>


Ask HN: Books about industrial control systems - <AUTHOR> I know that control systems exist and I could find two companies that make those - Fujitsu and Mitsubishi. But I don't know anything else about how these systems are made. Books, reading-lists, articles / article sources most welcome. <comment><USER2> This was one someone once recommended to me regarding cyber-security of ICS systems.

[https://www.amazon.com/Cybersecurity-Industrial-Control- Syst...](https://www.amazon.com/Cybersecurity-Industrial-Control-Systems- SCADA/dp/1439801967)

If you are looking at building them that is something else.

</comment><comment><USER3> Not books, but Honeywell, Foxboro are two other manufacterers.</comment>


Ask HN: Best alternative to Excel for analyzing data? - <AUTHOR> <comment><USER2> LibreOffice Calc?</comment>


Coding in color - <AUTHOR> https://medium.com/@evnbr/coding-in-color-3a6db2743a1e#.skji55uvd <comment><USER2> I was hoping this would be about colorForth

[https://blogs.msdn.microsoft.com/ashleyf/2013/11/02/the- beau...](https://blogs.msdn.microsoft.com/ashleyf/2013/11/02/the-beautiful- simplicity-of-colorforth/)</comment>