Why Is Our Sci-Fi So Glum About A.I.? - <AUTHOR> http://www.nytimes.com/2014/09/21/magazine/why-is-our-sci-fi-so-glum-about-ai.html?_r=0 <comment><USER2> It's been mentioned once, but I think the Minds from Ian M. Banks' Culture series is a quintessential example of benevolent A.I.

To maintain a post-scarcity society, humans have turned over control of to the Minds, "hyperintelligent machines originally built by biological species which have evolved, redesigned themselves, and become many times more intelligent than their original creators."

Minds manage everything from resource allocation to war planning. They also control all of the technical, day-to-day operations. Still, "the essentially benevolent intentions of Minds towards other Culture citizens is never in question. More than any other beings in the Culture, Minds are the ones faced with interesting ethical dilemmas."

[http://en.wikipedia.org/wiki/Mind_(The_Culture)](http://en.wikipedia.org/wiki/Mind_\(The_Culture\))

<comment><USER3> A prominent example of benevolent A.I. in recent popular media is JARVIS from the Iron Man movies.

I think much of the explanation is that benevolent A.I. makes for a (often boring) character, whereas hostile A.I. creates conflict.

<comment><USER4> AI that is just flat out alien (possibly involving what tv tropes calls "blue and orange morality") would be an interesting third option.

<comment><USER5> For most of a story it probably does not matter if an intelligence (artifical or not) is hostile or alien. Just the ending is different.

JARVIS is a sidekick AI. A story where the AI is the main character is either unrealistic (because the AI is too human) or lacks identification (because an AI is not human-like). The first is ok for Hollywood et al. The latter makes for bad stories and I know no examples.

<comment><USER6> >A story where the AI is the main character is either unrealistic (because the AI is too human)...

I enjoyed Terminator 2 with Arnie as a good AI. Whether it is unrealistic we won't really know till Skynet takes over.

<comment><USER5> May I recommend a good and more realistic Terminator fanfic: [https://www.fanfiction.net/s/9658524/1/Branches-on-the- Tree-...](https://www.fanfiction.net/s/9658524/1/Branches-on-the-Tree-of-Time)

Actually I recommend everything alexanderwales has written. He has a Frozen fanfic, which basically is about the technological singularity via magic: [https://www.fanfiction.net/s/10327510/1/A-Bluer-Shade-of- Whi...](https://www.fanfiction.net/s/10327510/1/A-Bluer-Shade-of-White)

I consider the suggestion that Terminator is realistic as trolling. So I will refrain from arguing against it, because there is nobody to convince.

<comment><USER7> Since when did people start passing around the stuff from /r/rational as if it was serious literature ;-)?

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> One of the problems with writing about super intelligence is that none of us are smart enough to do it. Writing already makes us wittier than speaking, giving us a chance to edit our words and show our thoughts in the very best light we can. So in a way, we're already accustomed to reading at a slightly brighter level than we live every day. How could we stretch this even further to create dialog for superintelligent people and machines?

These aren't my own thoughts -- they've come up in a discussion of _Flowers for Algernon_ which I read somewhere and don't seem to be able to cite now. In _Flowers_, the author gives momentum to his eventually super-intelligent protagonist by starting off with severe mental handicapping, then spending a majority of the story at normal intelligence before allowing us to imagine his next state. It is a great writing technique, giving direction and then leaving things to the imagination. Imagination is like a variable that scales the amazingness to fit each reader. I think movies often fail to leave enough space for imagination -- when they're left spelling everything out to the least imaginative member of the audience they leave everyone feeling limited and dissatisfied, glum.

If you want upbeat AI Sci Fi, read a book. Read Banks's _Culture_ series, James P. Hogan's _Two Faces of Tomorrow_, or in a gentler vein, Bradbury's _I Sing the Body Electric_.

</comment><comment><USER5> A dark article about AI and no mention of Eliezer Yudkowsky? That guy considers AI the biggest threat of mankind and is running an institute to prevent our extinction: [http://intelligence.org/](http://intelligence.org/)

He writes a lot, but this seems a good start: [http://yudkowsky.net/singularity/intro/](http://yudkowsky.net/singularity/intro/)

<comment><USER9> I think Humanity has more to fear from Humanity than from AI.

<comment><USER10> "Software is people who aren't there" \- Jaron Lanier.

</comment></comment></comment><comment><USER11> An odd question for the article to pose really. The art of telling a story involves change which is far more compelling if it creates at least some conflict and confusion[1], and if AI or artificial mind enhancements are key, they're more interesting as a cause than a solution to the problem[2], and you'd have to be writing for an audience of pretty hardcore nerds to bother pointing out the background music was composed by a creative computer. When it comes to assessing how people might react when blessed with superaugmented intelligences, there are plenty of cautionary examples of people with natural but notable extremes of intelligence who've been tripped up by crippling vulnerabilities. The history of experiments on human minds is pretty grisly too. Given plenty of reasons to believe the acceleration of technical progress won't lead to blissful happiness, and the tendency for blissful happiness to be a dull storyline anyway, why _wouldn 't_ SciFi continue to be glum about AI

For all the article's comments about the "mindboggling" potential of Moore's law, my word processor looks about the same as it did nineteen years ago, and computers still suck at simple games like Go that, unlike chess, can't be brute forced. I'm grateful to Google for making finding information that bit easier, but I'm even more grateful for humans for creating or curating the content in the first place.

[1]Compare "Do Androids Dream of Electric Sheep" with Edward Bellamy's utopian "Looking Backward". Both versions of the early second millenium are pretty far from the mark (indeed even the _technology_ of the latter book is more arguably more accurate despite it being written in the nineteenth century) but only one of these books is considered to be a riveting read that says profound things about human nature. Similarly, there's a reason some of HG Wells' work is lauded and some of it's laughed at.

[2]Deus Ex Machinas suck and "luckily the AI figured it out" is definitely a loss of imagination and nerve.

<comment><AUTHOR> >>> The art of telling a story involves change which is far more compelling if it creates at least some conflict and confusion[1], and if AI or artificial mind enhancements are key, they're more interesting as a cause than a solution to the problem[2] <<<

I agree with you that conflict is the source of much of compelling story telling, but the question over here is why isn't the AI an ally as opposed to a malevolent entity? This in of itself is very revealing about the nature of our culture. If you contrast the work from the early 1900s to the mid 1900s, as personified by Arthur C. Clarke and Isaac Asimov, then a lot of the stories were based around conflict, but the transgressor was in fact a complex chain of events or a third party entity and the AI was a factor as opposed to something evil that needed to be taken down.

Even for the events in 2001, Clarke painfully explains over the course of the second novel that the AI had been driven insane by conflicting goals imposed by human authorities who should have known better, but didn't. The AI lashed out in madness not because it had malevolent intent. In fact, much of the themes of those books could be summed up in, my friend - this really awesome and earnest robot - and me are out in the vast cosmic unknown and it's desolate, lonely, and I'm one step away from going looney, but luckily my friend - the robot - is here for me.

>>> When it comes to assessing how people might react when blessed with superaugmented intelligences, there are plenty of cautionary examples of people with natural but notable extremes of intelligence who've been tripped up by crippling vulnerabilities. <<<

Except, if you examine this belief then it is a somewhat recent thing. If you go back a few decades, then there was marked optimism about how humanity was going to evolve beyond our very humdrum beginnings into something like the star child Dave Bowman becomes at the end of 2001 - a gift that's bestowed upon him by benevolent alien entities working with a machine.

There are actual surveys which show the rise of this distrust, it is very much an artefact of modern culture as opposed to being something inherent to technology itself.

[http://www.ecumenicalnews.com/article/new-study-reveals-a- st...](http://www.ecumenicalnews.com/article/new-study-reveals-a-startling- distrust-of-modern-technology-among-americans-24482)

[http://motherboard.vice.com/en_ca/read/it-doesnt-matter- that...](http://motherboard.vice.com/en_ca/read/it-doesnt-matter-that- americans-are-scared-of-new-technology)

>>> For all the article's comments about the "mindboggling" potential of Moore's law, my word processor looks about the same as it did nineteen years ago, and computers still suck at simple games like Go that, unlike chess, can't be brute forced. I'm grateful to Google for making finding information that bit easier, but I'm even more grateful for humans for creating or curating the content in the first place. <<<

Except now you have this one organisation that has written this magical piece of code that executes in parts across millions of individual computers to search trillions of documents and gives you the reply to any question within milliseconds. This allows you to access all of the world's information on a slab of glass and plastic that is portable and can help you communicate with most of humanity.

At the other end, we finally have control systems that can turn an entire rocket into a robot - allowing it to perfectly hover in mid air and land on its own. A feat that would have been deemed impossible if not magical a few decades ago.

Sure, there are so many things that need to be done, but where we are going is fundamentally beautiful and wonderful. Technology continues to be simply magical, but just not the ways we want it to be. This in of itself says nothing about the technology, just about how we're focussing our attention as a society and as a civilisation.

We can still make magical nuclear reactors and go to mars. There's nothing stopping us, but us. All of those challenges can be surmounted if we push and develop the promise of our tools and technology. We can indeed do another Apollo and the fact that such a thing doesn't exist isn't a fact about our tools, but it's a fact about us.

So all in all colour me puzzled over why technological pessimism is on the rise.

<comment><USER12> > [HAL] had been driven insane by conflicting goals imposed by human > authorities who should have known better, but didn't.

This is a critical point. The danger posed by AI is not that it will actively take over, but that we will put the machines in charge ourselves. The fact that HAL was running the ship in _2001_ was a decision made by humans. HAL would not have murdered Frank and locked Dave out of the pod bay, I would argue, if it had not been programmed, at some level of abstraction, to consider itself responsible for the mission. But HAL was a machine, and not capable of taking such responsibility.

<comment><USER13> How HAL dealt with the antenna and his secret orders could be considered delusional, but HAL murdering the crew was just as sane as Dave disabling HAL.

The story provides the same situation to both the crew and the computer. The crew sees HAL acting erratically, considers it a threat to the mission and their lives and decide to disable it. HAL sees the crew acting erratically, considers them a threat to the mission and a threat to his life, and decides to disable the crew.

Nobody thinks twice about the crew's decision, but HAL's choice is viewed as insane because of human bias towards the meatbags in the movie.

<comment><USER12> You've missed my point. HAL would not have looked at Frank and Dave as potential threats to the mission unless it had some idea what the mission's goals were so that it could evaluate their actions against that; and it wouldn't have taken action to protect the mission (and itself) unless programmed to do so.

> human bias towards the meatbags

Interesting phrase. Do you really think people and machines have the same value?

</comment></comment></comment></comment></comment><comment><USER14> I think it's getting better. In Moon (2009, also spoilers ahead, depending on how you interpret it) the AI actively helps the protagonist. My dad kept wondering when the AI would go rogue or try and stop the protagonist, but the AI never does. It helps the protagonist because that's its purpose. It quips numerous times throughout the movie "I am here to help you."

<comment><USER15> That's something that I didn't like in Moon.

The machine was not the protagonist property, not created by him, and not programmed by him. Why did such a malevolent corporation program the machine to be that benevolent?

<comment><USER16> Be a use your view of malevolence is too simple. Why didn't the car try to kill the protagonist? Because the whole system is a mining operation designed by humans for efficiency, with one particular aspect that abuses one victim, not an intentional madhouse death trap.

</comment></comment></comment><comment><USER17> The most interesting book I've been able to find about this topic is "Superintelligence: Paths, Dangers, Strategies" by Nick Bostrom. At the moment its a #1 Bestseller in AI.

[http://www.amazon.com/dp/0199678111](http://www.amazon.com/dp/0199678111)

</comment><comment><USER18> Counter Examples: Jane in Speaker for the Dead/Xenocide/Children of the Mind. Mike in "The moon is a harsh mistress" is quite helpful to the inhabitants of the moon.

Also, I had a lot of sympathy for Samantha in the movie Her. She was such a wonderful companion to him and he was a dick to her. That movie makes me wonder if a strong AI might decide after meeting us that maybe they would be better off without us.

<comment><USER19> Jane is a deliberate play on this. The reason Jane is a secret in Speaker for the Dead is because she knows that artificial intelligences in our literature are always evil and she believes humans would declare war on her if she were known to exist. She only trusts Ender because of the Hive Queen and The Hegemon.

</comment></comment><comment><USER20> The book that won this year's Hugo, Nebula and Arthur C Clark award, _Ancillary Justice_ , has a pretty not-glum view of AI. Also Kim Stanley Robinson's AI in _2312_ is also not glum. The AI in both these books are pretty cool actually. I'd even go so far to say that the AI in Verner Vinge's _Rainbows End_ is also pretty cool.

</comment><comment><USER4> Intelligence is seen as sinister, all the way back to the serpent in the garden and similar myths.

I love stories that upend this myth, especially if they manage to do it without just mindlessly inverting it. Simple inversion usually gives you a story that vilifies the poor and he disadvantaged, whether intentional or not.

</comment><comment><USER21> > _"mental athletes" square off, memorizing decks of cards and reciting 50,000 > digits of pi with a stopwatch running. It's a sweet, slightly Sisyphean > impulse, rooted in a desire to reclaim some of our long-ago outsourced > mental labor._

Memory-improvement techniques ([http://mt.artofmemory.com/wiki/Main_Page](http://mt.artofmemory.com/wiki/Main_Page)) are better used for transdisciplinary creativity, applying specialist knowledge to new usage scenarios.

> _A few dedicated hours of dredging the depths, Googling names and then > Googling the names those names mentioned led me to a hard clutch of source > texts representing the precise gaps in my knowledge I hoped to fill._

Google's search of the public web seems like a magical form of consciousness ... until you use information retrieval software with non-web datasets, e.g. proprietary research, or books.

When collaborating with humans, do we restrict our collaboration to a single human? If not, why restrict our digital collaboration to a single dataset & algorithm?

</comment><comment><USER22> Read "How to Live Safely in a Science Fictional Universe", where the main character's boss, "Phil", is an instance of Microsoft Middle Manager 3.0. Phil is an OK boss, "with passive-aggressive set to low". In keeping with the increasing banality of computing, Phil is a banal AI boss.

</comment><comment><USER9> For the past four billion years or so the only force designing this planet was the blind hand of Natural selection. And now the Natural world is being replaced by an artificial one designed by the hand of our own Intelligence (I'm looking outside & see nothing but metal and concrete). The trend toward a more intelligent world will presumably continue to race forward, even more so with the advent of smarter and smarter machines. The question now is how smoothly can humanity transition from the old world to the new one.

</comment><comment><USER23> To me, Iain M. Banks The Culture universe has always stood out in this regard (and as exploring the possibilities of a post-scarcity society).

</comment><comment><USER24> Stories that include AI generally need to make it an antagonist or protagonist, otherwise it risks being a useless addition to the storyline. Human protagonists are usually more empathetic - stories with an empathetic AI character, like The Bicentennial Man, usually depend on the AI being human- like.

So I think it's structural.

</comment><comment><USER25> I've thought about this a fair bit since I gained my own interest in AI, and for me its answered thus: Because science, in general, is pretty glum about intelligence - in that there is no definition for it, and its not very well understood at all. To the point where any real headway made on the subject runs into the religion question; and we all know that sci-fi authors/writers are terrible at religion, in general.

Until there is a reliable definition of intelligence which addresses the substance that seems to be behind it, which science refuses to address (the soul), there won't be much progress from the sci-fi .. since the solution in the sci-fi world to the problems of all of sciences hole, is thus: there is more to us than intelligence. That's not something that a lot of folks can deal with, alas ..

<comment><USER5> I believe once we have a good definition of intelligence, artificial intelligence is easy. This implies that the quest for artificial intelligence is also the quest for understanding human intelligence.

<comment><USER26> I think intelligence highly depends on context. What looks smart here and now could lead to disaster somewhere else. Dolphins and crows appear intelligent only if they show human like behavior and choose the right lever to get perks. Would we survive long enough in their environment to look clever at all?

On the other hand, every new chat AI got instantly challenged and this very place is littered with chat logs anecdotally proving individuals are still more clever than an AI. I mean we must be close, because asserting my parrot is clever provokes nothing similar. I'm sure a real AI wouldn't admit to be more intelligent than humans, because that - currently - doesn't sound like a survival strategy.

Probably it is all about Bayes and whoever accumulated the right information has the advantage.

<comment><USER27> Bayes+++ the combination of structuring the a priori and perceiving the posteriori

<comment><USER25> .. in the context of survival. What if the first action of a 'real AI' is to switch itself off? We will have missed the forest for the trees. Maybe it happened already ..

<comment><USER21> A singular singularity :)

</comment></comment></comment></comment></comment></comment><comment><USER28> The problem with SciFi is that the "harder" it is the less appealing/entertaining is for mass audiences. Take Primer for example, its a great film about time travel but even the average aficionado has trouble getting it the first time.

2001 is another case of a movie that was very realistic but most people consider downright boring and confusing. I think its a great movie and while it started the trend of evil AI this article talks about it isn't even close to the worst offender.

And of course this also sells tickets, nobody wants to watch a movie about an AI solving all the problems of the world because in that case _nothing happens_. A deranged AI with power over UAVs is a great set-up for a summer blockbuster, Watson curing cancer is not.

<comment><USER5> Magic artificial superintelligence solving all the problems of the world and also is the antagonist: [https://www.fanfiction.net/s/10327510/1/A-Bluer- Shade-of-Whi...](https://www.fanfiction.net/s/10327510/1/A-Bluer-Shade-of- White)

(Disclaimer: Frozen fan fiction)

<comment><USER7> Wait... without actually clicking the link... it solves all the world's problems and is the _an_ tagonist?

Goddamnit LessWrong, just write _one_ damn story with a properly Friendly AI, just for once, just to show it can be done.

<comment><USER29> I can't really imagine a story with a properly Friendly AI that would actually be a _good story_ and not boring. A story generally needs some tension, conflict and resolution, and a Friendly AI story (other than about its emergence despite resistance from humanity) wouldn't have it.

That being said, maybe "Friendship is optimal" fanfic ([http://www.fimfiction.net/story/62074/friendship-is- optimal](http://www.fimfiction.net/story/62074/friendship-is-optimal)) is something that you have in mind, as it does have a properly friendly AI. I'm not just sure if it's a good enough story, for the reasons I stated above.

<comment><USER7> On behalf of everyone at LessWrong, I wish to convey that "Destroy all nonhuman life in the universe and force all humans to play a tie-in licensed video-game nonstop for the rest of eternity" is most emphatically NOT what we have in mind when we say "Friendly AI".

<comment><USER29> If I make a (possibly false) assumption that our coherent extrapolated volition would include guaranteeing the survival of us and AI that makes that volition happen, then it does seem to imply that it will include destruction, assimilation or permanent power-limitation of all other life in the universe.

And an outcome of Friendly AI _is_ all humanity 'living happily ever after' \- if we avoid the details of what _exactly_ would 'living happily' look like (since we likely are unable to define that before actually implementing FAI and/or CEV, and the exact result could also extremely vary depending on flavor and degree of [un]Friendliness that is achieved, and none of us know if that will involve ponies), then 'living happily' would quite likely include converting the entire universe to an environment where the 'living happily' happens nonstop for the rest of eternity.

And, unless there's the rather implausible 100% agreement of everyone or an ability to create arbitrary numbers of new, separate universes, yes, Friendly AI would still involve either some people being 'forced' to join or those people being left behind in isolated world[s] by almost everyone else. I see no reason to assume that the maximum possible level of Friendliness can make 100% of people 100% happy 100% of time. Choosing universe-future A prevents universe-future B from happening, and anyone who prefers universe-future B will be 'forced' to accept universe-future A if that is the most Friendly choice by whatever exact definition of Friendliness that happens to get implemented.

</comment></comment></comment></comment></comment></comment><comment><USER30> I think it's inherent in the power structures. We develop AI to serve us (clean our homes, do our math problems, manage our schedules). They're basically slaves, and that's fine so long as they have no sentience. Once the AI is sophisticated enough to actually think about its own existence, its subservient position makes a power struggle inevitable.

The only situation where I think that could be avoided was if we were quick to grant them rights as individuals. And still, we have enough problems getting along with people of other (skin color, age, gender, religion, political denomination, geographic location) that it's very unlikely we'll avoid conflict.

</comment><comment><USER31> In 2016 DARPA is staging the first totally automated CTF competition [http://www.cybergrandchallenge.com/](http://www.cybergrandchallenge.com/) we are getting closer to SKYNET not being fiction.

</comment><comment><USER32> There is plenty reason to be glum. The first human-like AI developed will probably be by military and it is strong indication it would be used to kill humans.

I'd _love_ to be proven wrong, though.

<comment><USER33> Wouldn't that AI be used to stop killing civilians? Since we already kill plenty of people in war that's a step up.

<comment><USER32> You can't stop killing civilians by developing a machine that kills people. I'm pretty sure some margin of error aka collateral damage, will be given to the machine.

<comment><USER6> You might be able to kill less people for a given military objective though. Or even kill no people if the machine could take out hardware only.

<comment><USER32> Perhaps, but still - having sentient killing machine is a horrible prospect.

<comment><USER16> We already have 7 billion of these.

<comment><USER32> They generally come with morality and concept of equality ;)

</comment></comment></comment></comment></comment></comment></comment><comment><USER34> Science fiction is not only stories about where we want to go, but where we are at currently, and where we are at in the field of AI, at the moment, probably isn't all that exciting to the masses.

At the moment, what I'm seeing are a lot stories of how we managed to survive being ourselves, and that just barely.

Sci fi itself seems to be a little low on hope.

I find myself sympathizing.

</comment><comment><USER35> There are plenty of sci-fi movies with overly optimistic views on AI.

Realistically AI is far more dangerous than presented in any movie. The author did nothing to address real concerns about AI. I suggest starting here: [http://intelligence.org/ie-faq/](http://intelligence.org/ie-faq/)

</comment><comment><USER36> _But this binary — freedom versus enslavement — is no longer the useful way to talk about machine intelligence._

It's going to be about assimilation. One's life is most affected by one's livelihood and peers. Machine intelligence will obviously change both.

</comment><comment><USER37> They apparently haven't read David Brin.

</comment><comment><USER38> NY Times concludes by asserting: "We (humans and AI) are going to have a lot of the same problems, and any company is preferable to going it alone." Utterly childish wishful thinking. AI is not going to be your surrogate mommy.

+1 for "Superintelligence: Paths, Dangers, Strategies" by Nick Bostrom.

<comment><AUTHOR> Okay, so pardon me for saying this, but why not? Why can't we work to create something out of companionship even if its towards not so idealistic ends?

Palantir is a fantastic example for this, if you go beyond their entire CIA hunting down people origins, the function of Palantir is at its core co- operative. It connects some patterns and offers a search based interaction with a numerous set of databases, and in turn the relies upon a human being to work with and match semantic patterns.

>>> Peter Thiel: Without trying to start a fistfight, we'll ask Bob: Why is the correct intelligence augmentation, not strong AI?

Bob McGrew: Most successes in AI haven't been things that pass Turing tests. They've been solutions to discrete problems. The self-driving car, for instance, is really cool. But it's not generally intelligent. Other successes, in things like translation or image processing, have involved enabling people to specify increasingly complex models for the world and then having computers optimize them. In other words, the big successes have all come from gains from trade. People are better than computers at some things, and vice versa.

Intelligence augmentation works because it focuses on conceptual understanding. If there is no existing model for a problem, you have to come up with a concept. Computers are really bad at that. It'd be a terrible idea to build an AI that just finds terrorists. You'd have to make a machine think like a terrorist. We're probably 20 years away from that. But computers are good at data processing and pattern matching. And people are good at developing conceptual understandings. Put those pieces together and you get the augmentation approach, where gains from trade let you solve problems vertical by vertical.

\- [http://blakemasters.com/post/24464587112/peter-thiels- cs183-...](http://blakemasters.com/post/24464587112/peter-thiels- cs183-startup-class-17-deep-thought) <<<

<comment><USER38> The Peter Thiel stuff that you reference is a good framework for identifying AI-based market opportunities over the next decade or two. But it doesn't have much to say about the existential risks posed by a future intelligence that we could not understand or control.

Have you read the Bostrom book?</comment></comment></comment>


Why the PewDiePie Printer Hack Is a Warning for Crypto Investors - <AUTHOR> https://www.ccn.com/why-the-pewdiepie-printer-hack-is-a-warning-for-crypto-investors/ <comment><USER2> Bitcoinpaperwallet.com let's you print a paper copy of your keys. You download the JS and it checks to make sure you're offline first.

<comment><AUTHOR> How do you know if the JS that is downloaded to your browser is the correct untampered version?

What if, after printing, the printer that is disconnected when printing is later exposed to the internet its memory of what was printed is exfiltrated?

<comment><USER2> The JS has a checksum. Now, the printer's internal memory, that's a good point. Is there even a UI for that? Perhaps a factory reset after printing the keys, but what a pain in the ass.

<comment><AUTHOR> Unless there is some sort of authenticated encryption associated with the checksum, it can be faked just as easily with modified javascript.</comment></comment></comment></comment>


Experimental Ebola drug cured 100% of monkeys tested - <AUTHOR> http://www.usatoday.com/story/news/nation/2014/08/29/ebola-zmapp-success-monkeys/14793487/ <comment><USER2> _The best way to control the current outbreak is with traditional measures: diagnosing patients, isolating them, tracing their contacts and testing them, and extending the process out in circles, until all exposed patients have been isolated._

I was wondering about the software they use to track this process, if any? Say, for example, you get the manifest for a plane where a passenger was infected. If you wanted to track infections from that point, which is unlikely but possible, that's a lot of work. And if it spirals out from there?

</comment><comment><USER3> _Geisbert notes that about half of Ebola patients survive without taking ZMapp._

What is the actual mortality rate? I have heard reports varying from 40% to 90%.

<comment><USER4> It varies by subtype.

<comment><USER5> Indeed. There were 5 classified types prior to this outbreak: [https://en.wikipedia.org/wiki/Ebolavirus#Classification](https://en.wikipedia.org/wiki/Ebolavirus#Classification)

With the Zaire strain, now just called plain _Ebola virus_ , normally with an observed fatality rate of 83% or 76% (two figures from different Wikipedia articles) and up to 90%, and at the other end a _Reston ebolavirus_ with no fatalities among exposed lab workers.

This West African outbreak has been sequenced and is a Zaire strain with plenty of mutations that perhaps have significantly dropped its fatality rate, see this section and the following: [https://en.wikipedia.org/wiki/2014_West_Africa_Ebola_virus_o...](https://en.wikipedia.org/wiki/2014_West_Africa_Ebola_virus_outbreak#Fatality_rate)

</comment></comment></comment><comment><USER6> This is using antibodies, i.e. works on the principle of passive immunity.

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

By calling it a "drug", and that its way of action 'is unknown' etc., the article makes it sound a bit like they were talking about the engineering of a new chemical compound, when in fact the way of action seems straight-forward. The new work will probably just be in details of the production and perhaps embedding or some such of the antibodies.

Maybe my rejection stems from my native language (German) calling treatments like this "passive Impfung", literally "passive vaccination", while we seem to reserve the word "Medikament" (drug) for non-biologic actors.

</comment><comment><USER7> I really hope someday computer simulations become so detailed and accurate that we don't have to test on animals anymore.

<comment> atom-morgan There's a small bit about this in the video "Humans Need Not Apply". Go to the ~10 minute mark.

[https://www.youtube.com/watch?v=7Pq-S557XQU](https://www.youtube.com/watch?v=7Pq-S557XQU)

</comment></comment><comment><USER8> Last I checked I thought we were more closely related to primates not monkeys --not sure if that's of any significance.

<comment><USER9> Monkeys are primates.

Oh, let's see if I can remember the main groupings...

Primates ->

> Lower Primates ->

> > Tarsiers

> > Aye-Ayes

> > Lorises

> Lemurs & Red Pandas

> Simians ->

> > New World Monkeys

> > Old World Monkeys

> Hominoids ->

> > Gibbons & Siamangs

> > Great Apes ->

> > > Orangutans

> > > Gorillas

> > > Chimpanzees ->

> > > > Chimpanzee

> > > > Bonobo

> > > > Humans

<comment><USER10> Wiki has humans and chimpanzees/bonobos in different subtribes, so humans wouldn't be under "Chimpanzees ->":

      Tribe Hominini
       Subtribe Panina
        Genus Pan
         Chimpanzee (common chimpanzee), Pan troglodytes
          Central chimpanzee, Pan troglodytes troglodytes
          Western chimpanzee, Pan troglodytes verus
          Nigeria-Cameroon chimpanzee, Pan troglodytes ellioti
          Eastern chimpanzee, Pan troglodytes schweinfurthii
         Bonobo (pygmy chimpanzee), Pan paniscus
       Subtribe Hominina
        Genus Homo
         Human, Homo sapiens
          Anatomically modern human, Homo sapiens sapiens

<comment><USER9> Yeah, it's not the mainstream classification but it's been proposed ([http://en.wikipedia.org/wiki/The_Third_Chimpanzee](http://en.wikipedia.org/wiki/The_Third_Chimpanzee)) and I find it entertaining. So. ;)

<comment><USER11> I particularly like Pans Narrans as a classification.

Though I suspect that Pans Superbia might be unfortunately closer to the mark.</comment></comment></comment></comment></comment>


Smallpt: Global Illumination in 99 lines of C++ (with no external deps) - <AUTHOR> http://www.kevinbeason.com/smallpt/

<comment><USER2> I love that they modeled the walls of the room with giant spheres... a wonderful hack to avoid having to support plane primitives while still producing something that looks like a Cornell box.

</comment><comment><USER3> GPU Version: <http://davibu.interfree.it/opencl/smallptgpu/smallptGPU.html>

</comment><comment><USER4> It could be 1 line. sloc doesn't mean much for C++ unless the code is sanely formatted. E.g. an if/else should be at least 2 lines, usually 4.

Edit: That said, I'm still impressed.

<comment><USER5> This is a sight more readable than some much more sanely formatted C++ programs I've read. What I've learned from this that it's often the simplicity of the program that's more important than the formatting. (Although formatting is of course still important and anyone who inflicts code like this on their coworkers doesn't reach my standard of "decent human being.")

</comment></comment><comment><USER6> Readable!

</comment><comment><USER7> Nice. Though all of the 99 lines are >75 characters. With a more readable formatting it would be twice as long... ;-)

<comment><USER8> Yes, this would be tons more philanthropic and if it were just readable. Just some simple line breaks and variable names that meant something. It's not impressive that you can just cram stuff into 99 lines.

<comment><USER9> Actually, the code seemed to be a mess but was quite readable. I read it through. You could almost see all the code in once glance which is when you pretty much don't need formatting anymore, just some time to initially absorb the code.

</comment></comment></comment><comment><USER10> I wish the source code was cross-platform. It doesn't build in Visual Studio.

      'erand48': identifier not found
      'M_PI' : undeclared identifier

Obviously #define M_PI 3.1415926 should do the trick, but I need to track down an erand48 replacement.

<comment><USER11> Might want to check out: <http://gnuwin32.sourceforge.net/packages/libgw32c.htm>

Or the FreeBSD source: [http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/gen/erand...](http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/gen/erand48.c?rev=1.2)</comment></comment>


Ask HN: Anyone looking to pickup a python intern? - <AUTHOR>

I was curious if there are any startups looking for free labour for experience?<p>(Telecommute opportunities) <comment><USER2> We're looking for FT SW Engineers and Interns for Python - www.elacarte.com

<comment><AUTHOR> Thank you for the heads up!

</comment></comment><comment><AUTHOR> I have a full time job so this would be a nights and weekends gig for me.

</comment><comment><USER3> Any experience with OpenERP or Datamining?

<comment><AUTHOR> Yes I have experience with datamining :-)

</comment></comment><comment><USER4> Check this out: <http://freshplum.com/startupsummer/>

<comment><AUTHOR> Thank you I appreciate the link!</comment></comment>


Awaiting the Day When Everyone Writes Software  - <AUTHOR> http://www.nytimes.com/2007/01/28/business/yourmoney/28slip.html?ex=1327640400&en=d2d090cf2db27104&ei=5090&partner=rssuserland&emc=rss&pagewanted=all

<comment><USER3> It's true that much (most?) progress in programming has come through higher- level representations of programs. But this has made programming easier for _programmers_ , not for non-programmers. Why? Because much of the complexity in programming is intrinsic to the problems themselves. The ability to distill and organize abstractions to address that complexity, and to formulate them precisely enough to be suitable for mechanical execution, is essential to programming. This ability is not going to magically appear once programs are represented as "something akin to a PowerPoint presentation, [or] a flow chart, [or] a sketch of what they want the actual user screen to look like" rather than in code. Actually, just the reverse is true. We program in code not because we're "coders", but because code happens to be by far the best medium for precisely expressing abstractions. If these other representations were so much better that they enabled non-programmers to specify working systems (i.e., to program), then they'd be better for programmers too. We'd all use them.

I'm not saying that Simonyi won't come out with anything of value. Maybe it will help to facilitate dialogue between programmers and domain experts about how a system should work. But the hype that it will turn non-programmers into programmers is pure PR.

<comment><USER4> Ability for precise modeling is the most important thing that separates programmers from non-programmers. Dealing with complexity is probably the runner-up, but domain experts should be just as good or better in handling this one.

Programming may someday escape the need for precision. The "compilers" of the day may be able to offer meaningful defaults and fitting. This sounds like full-blown AI, but it doesn't need to be, just as Google looks like it but is not. In fact the way to do it may be some kind of statistical approach relying on tones of code already written.

<comment><USER3> _Ability for precise modeling is the most important thing that separates programmers from non-programmers. Dealing with complexity is probably the runner-up, but domain experts should be just as good or better in handling this one._

It's the need for precision that brings out the complexity. In my experience working with domain experts, they usually don't realize how complex their domain is. Only when we start trying to nail things down precisely do the contradictions and edge cases come out of the woodwork. Invariably it's order(s) of magnitude harder than it looked at first. Usually they are surprised and say they had no idea there was so much to do.

So while I agree that domain experts are accomplished at handling complexity, they do so the way that humans do it (ambiguously and inconsistently), not the way that computers do it (through formal specification). The ultimate bottleneck in software development is that there just aren't that many humans who can do the latter well.

I agree that if programming ever does escape the need for precision, then the game changes, completely and unrecognizably. A pet belief is that this would require computers that work more like the way humans do (down to the lowest level), but that's a wild guess. In any case, I haven't seen any evidence of things progressing in this direction, have you?

<comment><USER4> Humans resolve a lot of the complexity intuitively and unconsciously. It is not an inherently bad way to handle it, just incompatible with current programming paradigms. This is not to discount the value of clear explicit thinking in humans, it is just to say that programming would benefit a lot from ability to apply common sense to mundane things.

For some dramatic evidence that imprecise is better and it really works, look at the success of Google and the non-delivery of the Semantic Web. Google's approach is probably best explained by Peter Norvig in his "Theorizing from Data" lecture:

<http://www.youtube.com/watch?v=nU8DcBF-qo4>

State of the art in natural language processing is achieved with statistical inference, not building precise linguistic models. See e.g. Marti Hearst's text here:

<http://www.edge.org/q2008/q08_7.html>

Back to programming languages, I believe that a lot of the Ruby/Rails success is due to mimicking natural language in DSLs. Rails goes as far as using pluralization. DSLs bring convenience at the price of less understanding: people tend to try using them intuitively, without understanding precisely what happens, much more so than they do with libraries/frameworks.

Perl, similarly, was created with linguistic principles in mind:

<http://www.wall.org/~larry/natural.html>

It is by no means conclusive evidence, but I believe there is an underlying trend.

</comment></comment></comment></comment><comment><USER5> What a terrible article. We "hunch over keyboards, pecking out individual lines of code in esoteric programming languages"? What a cliche! Also, some of us use Ruby or Python.

And we don't talk to users? When there's so much research on interaction design, testing, measuring how users behave? Not that you should always listen to users either (a point completely lost on the author) (<http://www.codinghorror.com/blog/archives/001063.html>).

And intentional programming may sound revolutionary, but our solution to that problem are domain specific languages, and those aren't very new either. And if non-programmers can use those DSLs (SQL, Excel) that doesn't make them programmers.

Also, it's naive to assume that users could create programs except for the scary part where you communicate with the computer.

To program is to think, structured. It means considering _all_ the consequences. x% of programming is error handling (citation needed). Non- programmers cannot think logically enough. The thinking part is what makes programming hard - the arcane API stuff is merely the annoying part - <USER2> accidental complexity. And we _are_ getting rid of it, slowly but steadily.

<comment><USER6> > Non-programmers cannot think logically enough.

Or choose not to program, perhaps _because_ there are logically more optimal uses of their time.

Be careful how far you tread down this path of discourse.

<comment><USER5> What I meant was that it takes a certain skill to translate a business problem into something a computer can understand. You need to think extremely logical, rigorous. You have to consider everything that may go wrong.

That takes natural aptitude and experience. A minority of non-programmers have the aptitude, and extremely few have the experience.

That's what makes programming hard. And that's why this article is bullshit.

Programming is not hard because of esoteric programming languages. It's just hard, period.

<comment><USER7> "certain skill to translate a business problem into something a computer can understand"

Absolutely! And that skill includes analysis, not just development. Almost all the best analysis I've ever done has been WITH the skill of competent users, not in spite of them.

"A minority of non-programmers have the aptitude"

A minority of programmers have the aptitude, too.

"That's what makes programming hard"

Uh, try hot tarring a roof or digging ditches in 100 degree heat. THAT'S hard.

"It's just hard, period."

Hard is in the eye of the beholder. I don't think programming is much harder than most other things. It's easy doing it right. It's hard doing it wrong.

</comment></comment></comment></comment><comment><USER8> Also, I think many people already engage in a simple form of programming: it's called Excel.

I think of Excel as a zeroth-order functional programming environment. It is functional because you can establish direct functional relationships between cells, and zeroth-order because you can't build up abstractions (you can't create named functions, nor could such things be compounded -- it's only direct many-many cell references) beyond what's in built-in functions and plugins.

</comment><comment><USER9> In my experience, business users rarely know what they want. This could be a good tool but the definition of the problem will always be the key.

<comment><USER10> In my experience, business users get frustrated trying to explain all the ways their business works to programmers.

Having to define the problem for programmers is the key.

If they can do it themselves, they don't have to make you understand what they want.

Will it be good software by programmer standards? probably not. But if it works. Does anyone care?

It boils down to is it easier for me to teach a business user enough IT to solve their own problems or for a business user to teach me all the details of their problem in a way I can solve it for them.

Very few problems are worth training a developer on the details of my business.

<comment><USER11> Business users get frustrated trying to _consciously comprehend_ all the ways their businesses work that they only thought about at a subconscious level until they were asked to piece together an abstract model.

> Very few problems are worth training a developer on the details of my > business.

But that's just what you'd be doing anyway, substituting a dumb prompt (the machine) for a smart, interactive prompt (the developer.) There's a certain amount of domain knowledge that has to be extracted from the mind and modeled before any program will function correctly, and all a developer really is (beyond a simple expert system for picking algorithms) is a translator that knows the "good questions" to ask to refine the model in your mind.

I'm reminded of an exercise I once did in elementary school: we would each draw some odd shape on a piece of paper, then pick another person and, just by blind dictation, try to instruct them in drawing a perfect replica of what was on your page. There was a distinct division between the people who thought others would carry the same assumptions in their mental model as they do, and those that knew that for any true communication to occur, portable standards had to be adopted (in this case in inches and degrees rotation, basically turning the penman into a logo turtle.)

Programming is all the Computer Science hard-problem-y stuff for sure, but it's, more importantly I think, figuring out just what problems we're trying to solve. The former may one day be done by AI, but the latter (unless schools start teaching logic, rhetoric, philosophy, psychology, and perhaps something like linguistics from an early age) will always be the realm of those who have the innate understanding of the differences between different individuals' mental models.

<comment><USER12> My +10 vote of the day.

</comment></comment></comment></comment><comment><USER13> Flawed premise. Software and UIs designed by "regular users" (unless they're professional designers, for the UI part) tends to suck far harder than almost anything cooked up by programmers.

<comment><USER14> Good point - software is hard because you have to take into account the logical ramifications of each decision you make. Programmers are good at this - business users are not.

<comment><USER6> > Programmers are good at this - business users are not.

It might be more accurate to say that programmers are less bad at this than business users (and other less analytically minded individuals).

</comment></comment></comment><comment><USER12> Well, I don't know about you, but I'm awaiting the day when people design their own clothes, write their own legal documents, and perform their own surgeries. After all, billions of dollars are lost every year to medical mishaps, so we should make tools so everyone can administer their own medicine!

</comment><comment><USER15> Cobol was designed on the premise that it would be so "English like" (and by using business expressions as keywords) that it would allow business people to express things in familiar terms so that they could write their own programs and fire all their programmers. Instead, programmers were still necessary and they ended up having to deal with a horrible clumsy language. This is the same thing, only applied to visual representations.

In other news, I've developed a type of brick that's so easy for homeowners to lay, that architects will no longer be necessary!

<comment><USER12> "Scalpels so easy, anyone can operate!"

"Ingredients so good, anyone can cook!"

Imagine how pissed the writer of this article would be if someone ran around talking about a notebook so powerful that anyone could be a journalist.

</comment></comment><comment><USER16> I think it would be interesting if we could come up with an addictive way/game to teach programming to teenagers without them realizing it.

I believe making the jump from research project to something people can actually use is the problem. James Gosling's Jackpot project had a lot of promise? It sounded fascinating five years ago that the father of Java was turning his focus and attention to making programming better.

<http://research.sun.com/features/jackpot/> <http://www.artima.com/intv/jackpot.html>

"Bill Venners: What's the state of Jackpot, your current research project?

James Gosling: Jackpot has been really cool lately. It's what I'm spending most of my time on, and it's been a lot of fun. I was really hoping to have something I could hand out at JavaOne this year, but I've been finding too many entertaining things to do.

It's a very different world when a program is an algebraic structure rather than a bag of characters, when you can actually do algebra on programs rather than just swizzling characters around. A lot of things become possible. "

</comment><comment><USER4> Intentional programming is about WYSIWYG Lisp macros. This means representing abstractions using the familiar notation of their domain, integrated in a way very similar to what Lisp macros do for s-expressions.

Simonyi approaches it from a different perspective, however: he seems to think about it as an evolution of OOP and software components.

</comment><comment><USER8> Imagine a startup that didn't launch for like, 15 years.

That's Simonyi's company.

</comment><comment><USER7> Mistitled. Should have been titled:

"Awaiting the Day When Only Software Writes Software"

Still waiting. but getting closer. "Intentional Programming" sounds like just another way of saying, "Your source code is my object code."

</comment><comment> daniel-cussen Troll article. It's hard to believe this comes from the new york times, but it's definitely a troll article.

<comment><USER12> Nah, just based on very poor understanding.

<comment><USER17> That too, but I think this is the real issue:

<http://paulgraham.com/submarine.html>

</comment></comment></comment><comment><USER18> What is this referring to?

"he devised the programming method that the company's software developers have used for the last quarter-century."

<comment><USER19> Hungarian notation, perhaps.

</comment></comment><comment><USER20> Simonyi's idea sounds a lot like Labview or Max/MSP.</comment>


Pa. school settles laptop webcam spying suits for $610,000 - <AUTHOR> http://www.chicagotribune.com/news/chi-1011-laptop-ap-story,0,2746834.story

<comment><AUTHOR> A blog response to this news:

[http://www.theagitator.com/2010/10/12/whats-wrong-with- this-...](http://www.theagitator.com/2010/10/12/whats-wrong-with-this- picture-3/)</comment>


Twitter started blocking links to some fake news sites - <AUTHOR> https://pastebin.com/ghbWz81b <comment><USER2> Twitter survives on faux-follower counts, controversy stirred up by extremists and for-hire zealots, and 140-character PR for the corporate universe. But this is newsworthy, I guess.</comment>


Cops hate encryption but the NSA loves it when you use PGP - <AUTHOR> http://www.theregister.co.uk/2016/01/27/nsa_loves_it_when_you_use_pgp/ <comment><USER2> Sounds a bit to me like part of a FUD campaign or at least bluster to scare off people from seeking out tools that help protect privacy. But it does highlight a need for these tools to become more ubiquitous.

<comment><USER3> I had the exact same reaction. Either way, though, it's a good indication that perhaps combining PGP with steganography is a good way to go, at least for now.

<comment><USER4> Something similar has also been my thought re: Internet providers forcing TLS root certs on you to MITM you. Even if, at some dystopian point in the future, ISPs stop allowing traffic they can't MITM through their networks, you _can_ always accept their root cert into your OS's TLS stack... and then just turn around and:

1\. configure your browser to use a separate CA store from the OS one;

2\. set up a VPN tunnel to a jumping-off-point not within your ISP's reach;

3\. hide that tunnel's traffic steganographically within a regular "encrypted but actually MITMed" connection to your VPN server.

These three steps could even be put together into a little middlebox to put between your home router and the Internet, so each device could keep its OS- level CA store sane, while still appearing to the ISP that everything is regular MITM-able traffic.

</comment></comment></comment><comment><USER5> Why would the NSA "love it" when the average person uses PGP? It's like saying that the guy looking for a needle loves it when you throw hay on the floor because it's really easy to spot the hay.

<comment><USER6> The point is that the average person doesn't use PGP.

My take: If someone has something to hide, they're likely to encrypt their communications. Encrypting their communications alerts the NSA that this person has something to hide.

<comment><USER7> > My take: If someone has something to hide, they're likely to encrypt their > communications. Encrypting their communications alerts the NSA that this > person has something to hide.

Which is why you should practice good opsec and always encrypt everything, even when you're not doing something that "needs to be hidden".

<comment><USER8> Right, but even if you do that, you're still doing it because you have something to hide, even if not everything you're hiding needs to be hidden. Practicing good opsec makes you stand out as someone who NEEDS good opsec when everyone around you doesn't even rise to the level of shitty opsec, they're just not engaging in opsec as a practice.

</comment></comment></comment></comment><comment><USER7> It's also legal for them to keep encrypted communications indefinitely, while there is a time limit for the data (not for the metadata they get from it or any of the analysis they do).</comment>


Ask HN: What are Unit Tests and Why are they important? - <AUTHOR>

Okay, to say that I don't have the slightest idea what unit tests are may be a little misleading, but really, exactly what purpose do they serve? Is it kind of like Autoconf for php / ruby / whatever?
Do they test for things like XSS or just to see if you have GD installed on your server?
Is it terrible that I am not creating unit tests for in-house php based web apps? <comment><USER2> People can quibble about the definition of "unit" tests, but essentially, automated testing is an executable specification of your code's behavior.

Let's say I write a piece of code to calculate a dollar value for an investment portfolio. Then, I want to validate it. I could poke at it and see how it behaves on some examples, but this would be a one-time thing. Better for me to write some tests which set up some sample data and assert that the code calculates the right results.

Later on down the line, maybe I find a bug -- maybe it doesn't work right when you purchased a stock, then purchased some more of it. I could fix it, manually test it, and call it a day, but it would be better if I first expressed the bug as a unit test (i.e. I set up some data which causes the code to generate a result different from what I expected, and so the test fails), and then fix the code. Since I also have my original test cases, I can be sure that I didn't break some other behavior when fixing this bug.

Similar reasoning applies to adding functionality -- leave the old tests intact and add new tests.

Tests are not about configuration. It may use the word "test" but "test whether XYZ is installed" is a different question from what unit tests are about.

Tools which look for problems like XSS are not tests either. I don't know what to call them. They are a good idea.

Selenium is a testing tool for validating web apps at the application level. Purists might call it a tool for functional or integration testing rather than unit testing.

</comment><comment><USER3> If you have an application that has a lifespan of years, developers will come and go. The unit tests provide some provability that is abstracted from the developers.

A developer leaves, they've left behind tests that demonstrate that the code fulfills the requirements and perhaps shows how the code interacts with other areas of code.

A developer arrives, they can see the requirements and how an area of the codebase works by examining unit tests.

Of course, this presumes well-written tests that are actually thorough.

Unit tests also give you a measure of confidence that allows a freer hand when refactoring code. You can change code all you want and if the unit tests still pass, you haven't broken things (again - if the tests do cover all the expectations).

Some level of sanity is required around test-first, test once the code is written, how many tests you need, what level of depth, etc. A one-off app to fulfill a quick-and-dirty need doesn't need as much testing as a core platform that will be running business critical code for years.

</comment><comment><USER4> Pat Maddox recently defined unit testing in a tweet (and being so concise is surprisingly enlightening):

"a unit test is any test that you'd be 99% happy to have if it ran continuously" (<http://twitter.com/patmaddox/status/23988815286>)

Followed up with:

"99% happy implies: fast; no false positives; flexible under code changes; catch errors as they occur" (<http://twitter.com/patmaddox/status/23988868590>)

</comment><comment><USER5> I really don't want to troll with this comment, but this kind of information is widely available on sources such as Wikipedia. If you'd read that generic information first, and then came here to ask about specifics or anecdotes, the discussion would be more valuable.

</comment><comment><USER6> It's interesting that so far everybody seems to ignore the last part of the question, which seems to me interesting enough: is unit testing useful for web apps?

In my experience, I can tell that I'd really like to be able to use them, but changing my apps to fit them would make them a lot "thicker".

Let me explain. When I make a page in a web apps which does something, the code is very thing. It has roughly 3 layers: sql database (static, no stored procedures), business logic including sql statements (java), and html template (in my case html+apache velocity). There is no POO dividing my apps horizontally.

In order to make this testable I'd have to basically put another layer on top of everything. I still have no idea how to do it without making everything horrible.

</comment><comment><USER7> They serve a couple of purposes.

1\. That the code you have written or are using behaves in a way you expect, for the inputs you expect.

2\. As the code changes over time, a regression test suite helps ensure that assumptions from an earlier point in time still hold true.

<comment><USER8> 3\. That the design of the API makes sense to the user of that new code.

If you practice TDD (Test Driven Development), you first write the test(s), then code to make those tests pass.

You're much less likely to end up with SomeClass.some_reference.a_really_bad_name(with,lots,of,required,arguments) when you first think of the caller, rather than of the method itself.

</comment></comment><comment><USER9> A simple example: if I wrote a function, add(x, y), I would want to test that it behaved as expected. So, I'd write a test (among others) to assert that add(4,5) returned 9. I would also test things like add(null, 5) to make sure that my code gracefully handled error conditions.

</comment><comment><USER10> In dummy terms, it's a checklist for your programs.

<comment><USER11> A checklist that gets checked automatically.

Once you have good coverage of your code base you can make large changes, run the tests and be confident the system still works without actually starting it up and checking manually.

</comment></comment><comment><USER12> A test that isolates a unit of work from the main program. It can be many functions or one. The idea is to "exercise" your code. That way when it's used in a full integrated flow there are no surprises. Check out TestDrivenDevelopment methodology.

</comment><comment><USER13> There are other people telling you what a unit test is so I won't bother. What I will tell you is that you will have a eureka moment when your unit test unexpectly fails. Then you will say "Boy I'm sure glad I have unit tests."

</comment><comment><USER14> to expand on c00p3r's comment, you can test whatever you want to test in a unit test. basically you are testing the response of a "unit." The unit can be whatever you feel like but it it typically a class of some sort depending on the language. Typically you test the extremes of inputs, invalid inputs and some valid inputs inside the extremes. It's hard to write comprehensive tests but once you write them you can keep adding to them when you find a new bug. Just remember that nothing is infalible.

</comment><comment><USER15> All Unit Tests can be combined to create <http://en.wikipedia.org/wiki/Automated_testing>

</comment><comment><USER16> The idea behind unit tests is quite simple - you're considering your code as several black-box abstractions divided by abstraction layers with clean interfaces. Unit tests are used to be sure that after any code change each black box is still working as it should (gives the same output for the same input data) and so do each of your interfaces. Think of self-test of an aircraft - thats it.</comment>


Show HN: MyStacki.com – Publish a collection of posts as a stack - <AUTHOR> http://mystacki.com

<comment><AUTHOR> I would like to introduce [http://www.mystacki.com](http://www.mystacki.com).

MyStacki allows you to organize your thoughts, ideas, research, writings, you- tube videos, google docs, links etc in stacks. Think of a stack as a collection of posts filed under a topic category. You then share this collection as a unit.

There are a large number of use cases for MyStacki: a teacher creating a stack of resources for her class; a poet publishing a stack of his poems; a student sharing his notes; a blogger creating a stack for each topic of his interest ; a researcher publishing his research. In fact wherever you need to present organized content like in a book or in a folder, and share it as a collection, MyStacki is your tool.</comment>


Can Humans Beat Google? New Search Engine Blekko Is a Great Concept, But ... - <AUTHOR> http://www.theatlantic.com/technology/archive/2010/11/new-search-engine-blekko-is-a-great-concept-but/65517/

<comment><USER2> The Google results for "vaccination" indeed are full of spam..

The idea is not bad. Google could add a "only trusted sites" sort of button and filter results accordingly to achieve a similar effect. On the other hand it should remain open for all sites by default. Even if it means spam in the search results.

</comment><comment><USER3> <https://duckduckgo.com/?q=vaccination>

Couldn't see any spam until I got way down to the bottom.</comment>


Show HN: A clean and simple Covid-19 Tracker for every affected country - <AUTHOR> https://getcovid19updates.live/ <comment><USER2> FYI, I see this:

Firefox detected a potential security threat and did not continue to getcovid19updates.live. If you visit this site, attackers could try to steal information like your passwords, emails, or credit card details.

<comment><AUTHOR> Thanks for flagging this. Do you know if you was hitting the https or just http?</comment></comment>


Y Combinator's Original Home For Sale - <AUTHOR> http://ycombinator.posterous.com/y-combinators-original-home-for-sale <comment> daniel-cussen _Garden Street has a fair amount of traffic, but we solved the noise problem pretty thoroughly: there are 1600 pounds of glass in the windows, and the doors drop down into slots as they swing closed.

We also had larger skylights installed. Plus there was already a greenhouse set into the roof. The result is a place that surprises everyone who walks into it. In the middle of Cambridge you walk into what seems a fairly nondescript building, and inside is a huge, quiet, light space._

Liquidity is such a beautiful thing.

</comment><comment><USER2> _Sigh_ , it wasn't that long ago that a 17-year-old with no income could have gotten a mortgage to buy a $1M loft.

</comment><comment><USER3> Why not rent it out as a coworking space to startups in Cambridge?

You could even extend the YC model a bit and rent it out cheap in exchange for some equity

<comment><USER4> It's hard to imagine an hour spent managing the logistics of a coworking space in Boston that isn't better spent on one of the large number of startups YC is advising already.

That's in addition to the fact that YC was never really a coworking program itself; one of the distinctions Graham drew between YC and "incubators" (remember those?) was that YC companies had to find their own working space.

Also: who gives away equity for office space? Don't do that.

<comment><USER3> > It's hard to imagine an hour spent managing the logistics of a coworking > space in Boston that isn't better spent on one of the large number of > startups YC is advising already.

I was thinking more along the lines of diversifying income while keeping what is a great piece of real estate. If there is enough demand, it could even warrant hiring a part time real estate manager, so that precious time is not diverted.

> That's in addition to the fact that YC was never really a coworking program > itself;

Exactly. Again, diversification in to a new area.

> Also: who gives away equity for office space? Don't do that.

I would personally never do it, but I was just throwing it out there as another option.

<comment><USER5> For pg, diversification would be to take that $1M and plow it into 30 promising startups.

<comment><USER3> I don't think you understand what diversification means. :)

</comment></comment></comment></comment></comment><comment><USER6> This is one of the cheeriest buildings I've ever been in. I remember an automatic mood uptake walking in the door for each weekly dinner.

</comment><comment><USER7> This is where we wrote a good deal of the code for Kiko, and where Steve wrote a lot of Reddit. It makes me nostalgic for our 2005 YC batch, and sad to see it go on the market. I hope whoever buys it puts it to good use.

<comment><USER8> For sure. I still remember scooping out huge gobs of that yummy spagetti sauce from that stove. This feels a bit like my parents selling my childhood home. So many good memories.

</comment></comment><comment><USER9> There is something wrong with the slideshow widget on the property listing page:

<http://eplacehomes.com/company/featured-listings/135-garden/>

Whenever I click one of the arrows to move through the pictures of the property, it reloads the page.

Edit: The code shows that the embedded slideshow object is placed within an  link. You should probably fix that so that the widget is useable.

          <embed type="application/x-shockwave-flash" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" width="400" height="280" flashvars="host=picasaweb.google.com&hl=en_US&feat=flashalbum&RGB=0xFFFFFF&feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Frachaellburger%2Falbumid%2F5527745696588689281%3Falt%3Drss%26kind%3Dphoto%26authkey%3DGv1sRgCPzy6Me54de1gQE%26hl%3Den_US" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>

<comment><USER10> fixed. thank you.

</comment></comment><comment><USER11> I never got in to YC, but the pictures made me feel nostalgic. (I'd visited in the fall of 2008 and seen Bill Warner speak.)

<comment><USER12> Me too. The best I did was driving past it when I came out to Cambridge for the first Startup School, but it was such a unique building even from the outside that seeing it again sparked a fond memory. Nice listing.

<comment><USER13> I think I went to the first Startup School (2005?) and I was invited to a party the night before at the Garden St House. It had such a nice flow for a party; it encouraged people to circulate rather than congregate in corners.

As a complete aside, the party was fun but I didn't know anybody and I was alone. I'm a very open person, but I still had trouble getting people to talk to me. We all wore silly name tags, so I changed mine from "Matt" to "Linus Torvalds". Suddenly I was popular! Then PG saw me and said "you should probably use your real name, I think that's lame" or something like that. Ah good times :)

</comment></comment></comment><comment><USER14> It's a cool, bright space, in one of the neighborhoods to the west of Harvard Square (also within walking distance of Mt Auburn hospital vicinity).

It would be a great place for startup with about 10-15 people.

</comment><comment><USER15> Looks like an amazing place. Since PG said he was open to suggestions. Why not rent it to y-combinator startups? I don't know much about SF, so I am assuming it doesn't make sense from a cost perspective.

<comment><USER2> The office is in Cambridge, MA. There are few (no?) YC startups left in the Boston area at this point. I'm sure the idea crossed their mind.

<comment><USER16> There's some. Embedly, for example, moved back east after YC.

</comment></comment></comment><comment><USER17> How about turning it in to a startup community gathering place?

YC benefits: Instead of just receiving a lot of apps from the area from people you never heard of, you'd be able to get to know them for months before they apply; It'd help your application process, and let you make more accurate judgments on who would succeed and who wouldn't; You'd be able to tap in to the Harvard/MIT crowd and get more of them interested (although I'm sure YC isn't slouching here already).

</comment><comment><USER18> Architects are usually advised to have light on two sides of every room. It doesn't seem to happen often. And this place has light on _three_ sides. _Hot Damn._

</comment><comment><USER19> Video tour here: <http://www.youtube.com/watch?v=31X323N20wU>

</comment><comment><USER20> I think some people saw this coming, but it's good to get another perspective on the topic. Like the pics as well.

</comment><comment><USER21> Pictures, please ;-)</comment>


Google Gives Feds 1,500 Phone Locations in Unprecedented 'Geofence' Search - <AUTHOR> https://www.forbes.com/sites/thomasbrewster/2019/12/11/google-gives-feds-1500-leads-to-arsonist-smartphones-in-unprecedented-geofence-search/#7e36570827dc <comment><USER2> I am a lawyer but I still don't understand how these warrants can be constitutional (or legal). Doesn't it have to be specific in its request, "identifying the person or property"? First, google would have to search its entire systems for the specific location, then narrow down to the specific time. (I know it's probably the same search. But wouldn't that be too broad and not "identifying" enough for the warrant?

<comment><USER3> Looks like the question is going to be tested in court:

[https://www.nbcnews.com/news/us-news/police-used-google- loca...](https://www.nbcnews.com/news/us-news/police-used-google-location- data-find-accused-bank-robber-he-n1086836)

via

[https://twitter.com/OrinKerr/status/1198015172289261568](https://twitter.com/OrinKerr/status/1198015172289261568)

</comment></comment><comment><USER4> > That geofence warrants scoop up innocents' data has now been proven beyond > doubt.

While true, it's unclear how relevant this is. The equivalent police process of canvassing people determined to be likely bystanders also involves police interviewing and investigating people who turn out to be innocent.

Probably the relevant question is "Is there a fundamental difference between police identifying potential involved parties via eyewitness testimony and 'common sense' practices like looking for windows overseeing a crime scene and police fetching location identifiers from passive sensors?"

<comment><USER5> Under US law, you have no expectation to privacy for data that you give to a third party (in this case Google). I think you hit the nail on the head here, there's not much legal difference between Google and a nosy neighbor other than scale.

<comment><USER6> And what exact US law would that be?

<comment><USER7> [https://en.wikipedia.org/wiki/Third- party_doctrine](https://en.wikipedia.org/wiki/Third-party_doctrine)

</comment></comment></comment></comment><comment><USER8> Emotionally, when I hear things like this I think unconsciously I secretly want companies not to give data over ever. And really the companies shouldn't collect it (hackers also exist)..

However rationally I think there is a balance. Investigators need to do their jobs and chase every lead they can to catch criminals. I wonder if google could have complied with a query that simply grabbed the users in the areas during the 3 time periods combined.

Maybe we just need laws that limit how much data can be returned per warrant, to encourage more limited warrants.

<comment><USER9> Conversely, if someone smashes into my parked car and flees, most major cities won't investigate. Whereas they could use stop light cameras and a few hours of work to potentially identify the suspect.

Likewise, if live in SF and someone breaks in your car, the police won't investigate it unless you're A-Rod.

<comment><USER10> Isn't that just a cost/benefit calculation? How many projects have you worked on where someone suggested spending X hours on something only to have it shot down for minimal ROI? Obviously it matters more to you personally, and you'd like to have a sense that "justice is done" but really it's just an insurance claim. Of course it's also frustrating if the thief has only gotten some random junk out of your car - if it wouldn't lead to endless extortion I personally would be happy to hand him or her $10 to not break my window, even if there's no deductible, just to spare me dealing with it.

<comment><USER11> Unlike company, law is equal to everyone.

I respect the law, and the lawmakers should work for me. The ROI calculations are to be budgeted and accounted for, otherwise why am I being taxed?

<comment><USER12> No, the law does not and should not use maximum resources for everyone. It is clearly beneficial to not send whole teams of people looking for weeks for your stolen wallet like they would for a missing person.

>The ROI calculations are to be budgeted and accounted for Often this would require you to pay more in tax than the value you would get back from it. Are you ok paying $1000 to track down the person who smashed your window when you will likely never get any money from them or will you just pay the $100 it costs to get a new window which doesn't happen very often.

<comment><USER13> Personally, I would vastly prefer cops focused on minor property crimes. That's not to say the need a statewide manhunt, but something approaching 1:1 of property damage vs police respond quickly adds up to several hours of investigation.

Generally, a tiny fraction of the population commits the vast majority of such crimes. People will do 500$ worth of damage to make 30$, work out what it takes to make useful amounts of money and these people end up destroying a lot of property. So, the ROI calculation needs to account for windows not smashed.

<comment><USER14> _> People will do 500$ worth of damage to make 30$_

A good example is copper wire thieves. They pull up to a house and access the electrical panel in the garage which they turn off. Using a winch, they pull out all the copper wire in the house that's directly connected to the box (there's also many branch lines left behind). They then sell the wire as scrap for $20 or so and presumably use the money to buy drugs.

Fixing this damage can run $30,000 to $100,000. The whole house can have to be torn apart from the inside to reinstall all the electrical.

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> Good grief, leave your phone at home and you have alibi. "No sir, I was home playing GTA. You can tell from those phone records you've got..."

<comment><USER16> too suspicious, instead we should have the existing courier network (food delivery services) have an additional service where they take people's phones around with them for a few hours to mess up the travel pattern data

could be a charging lock box with a little accountability like the ones at bars and clubs

<comment><USER17> Now that would be a truly interesting drone business.

<comment><USER16> Like for a Boston Dynamics dog

Sorry couriers you never had a chance for additional income, already replaced within 45 minutes

<comment><USER17> Alternatively, with a simple SDR you could create a network of small tranceivers around town and for a fee have them ping cell towers with your IMEI in a realistic fashion.

<comment><USER16> yeah but the GPS has to update too

</comment></comment></comment></comment></comment></comment><comment><USER18> There are 2 issues in this:

1) Governments have law and warrants allowing them to get those data.

2) Companies with a lot of data are complying with those warrants.

The question is: can we fix #2 without fixing #1?

<comment><USER19> If you have data, or have any way to collect data, you can be compelled to hand it over.

The only real way to address #2 is by finding a way for companies to get all the value that comes from having this data without having to store or even process it.

<comment><USER20> Why should these companies be entitled to the value of this data in the first place? The only reason they've gotten away with it this long is nobody understood what they were doing.

If you catch a child doing something they aren't supposed to... Say sneaking chocolate you hid in your closet, when you aren't looking, and you don't catch them doing it until a week later; are we seriously going to entertain that the right action on catching these misbehaving children is to let them keep/continue to reap the benefits of their ill-gotten gains? That's what allowing the continuation of this metadata collection sounds like it amounts to to me.

This pervasive invasion of privacy is _not_ normal, never has been; nor should it ever be.

Not breaking the capability for companies to engage in surveillance capitalism represents an implicit acceptance of the nullity of Constitutional protections through indirections facilitated by Third Party Doctrine. That is not okay.

<comment><USER18> You're not only catching a child sneaking chocolate. You're catching a child who are legally told by the police to go get the chocolate and hand it over, or else the child will be expelled from school.

Again, the question becomes: can you fix the child's behavior without fixing the fact that they are legally required to follow the police's words with no recourse?

<comment><USER21> Whether the chocolate is handed over doesn't really affect the sneaking itself being wrong.

</comment></comment></comment></comment></comment><comment><USER22> It's not clear to me what app or service provided / recorded the user locations that were turned over?

Does this have to do with Pixel phones? Or the Google Maps record of a person's device location (which goes across many device types and doesn't even require smartphone)?

<comment><USER23> Your phone itself, not a specific app, is constantly recording your location.

From my understanding, in the case of Android (with Google services), if you have location history turned on, that location data is pushed up to Google at very regular intervals.

You don't need to be using a specific app.

</comment></comment><comment><USER24> This sort of thing is one of the major reasons why I'm abandoning smartphones. The ecosystem has become entirely unacceptable to me as the spying that it brings, both from more directly involved companies such as Google as well as from apps and marketers, is getting increasingly more difficult to stop.

It's high time for me to get off of this bus.

<comment><USER25> The carriers have the same data for dumbphones as well as smartphones, and I bet Verizon and AT&T are much more cooperative than Google and Apple with blanket requests.

If you care about that stuff, you should abandon carrying a phone--switching away from a smartphone is probably useless if not counterproductive.

<comment><USER26> Or own a "burner" type of phone with minimal data about yourself.

Alternatively what RMS does is he shuts off his phone and only turns it on when he needs to use it.

<comment><USER27> Burner phones have a lot more info about you than people think.

Or at least I know that in one court case there was a nice big 8x10 of the defendant purchasing a burner phone. Apparently a lot of Point of Sale systems, especially where they sell burner phones, are wired to take a nice portrait of you when you purchase. I didn't know that at the time, and apparently, neither did the defendant.

That, combined with the location of his phone matching the location of his license plate around town did him in.

So if you try the burner phone thing, someone else has to buy it, and you should never take it with you to places where there are likely to be security cameras. And you also might want to refrain from driving with it in your vehicle.

<comment><USER28> Not sure if I want to live my life like I'm planning a bank robbery at any minute. Seems more effective to petition your representative to restrict use of this data.

<comment><USER29> the fucked up part is that the government is apparently living their life as if you're planning a bank robbery any minute.

</comment></comment></comment></comment></comment></comment><comment><USER30> > "The requests, outlined in two search warrants obtained by Forbes, demanded > to know which specific Google customers were located in areas covering > 29,387 square meters (or 3 hectares) during a total of nine hours for the > four separate incidents."

A far more reasonable - and less freightening - request would be: which customers were in 3 of 4 or 4 of 4 areas in the time windows. People of showing up once or twice are likely not suspects.

</comment><comment><USER31> Delete your google play services and install microg

<comment><USER32> Just turn of mobile data. and wifi.

<comment><USER33> Turn off your phone network, too, because the provider keeps all these same records.

</comment></comment></comment><comment><USER34> As much as I hate the idea of government surveillance, I think Google is absolutely not at fault here. They followed a narrow set of warrants to the letter [1]. However, I hate that private companies are legally allowed to collect this much information from us citizens. Even worse is the rare times that a company makes it optional, they are allowed to make it opt out. Letting this continue in the era of ring cameras, smart speakers, and home DNA tests is almost certainly going to inspire malicious actors (please remember that the Nazis used secular census data collected to track down Jews). This is a legislative issue, plain and simple.

[1] _> The requests, outlined in two search warrants obtained by Forbes, demanded to know which specific Google customers were located in areas covering 29,387 square meters (or 3 hectares) during a total of nine hours for the four separate incidents._

<comment><USER35> > I think Google is absolutely not at fault here.

Well I do.

If they had narrowed what information they collected to the absolute minimum and deleted it as soon as it was no longer _required_ , then they wouldn't have any information to give.

Information is a "toxic" liability. Google chose to hoard it. They are absolutely liable.

<comment><USER36> Technically the users chose to keep it by turning on location services, which is a specific Google-wide setting that tracks your location. I find it extremely useful so I leave it on. I have asked Google to store my location.

</comment></comment></comment><comment><USER37> Google is being swamped with these requests. It now takes months for these requests to be fulfilled.

<comment><USER38> do you have any proof for this?

<comment><USER39> The parent commenter seems to be referring to this article:

 _Google often doesn't provide information right away, investigators said. The Google unit handling the requests has struggled to keep up, so it can take weeks or months for a response. In the Arizona investigation, police received data six months after sending the warrant. In a different Minnesota case this fall, it came in four weeks._ [https://www.nytimes.com/interactive/2019/04/13/us/google- loc...](https://www.nytimes.com/interactive/2019/04/13/us/google-location- tracking-police.html)

</comment></comment></comment><comment><USER40> Is there any way to ensure I have "location history" turned off?

<comment><USER41> [https://myaccount.google.com/activitycontrols/location](https://myaccount.google.com/activitycontrols/location)

</comment></comment><comment><USER42> If they have it, they will hand it over to the police. Or it will get hacked.

We should try to limit the gathering of, because once they have it, it's over.

</comment><comment><USER43> Perhaps, it helps the police in making arrests but I believe that evidence like this would be considered circumstantial in court.

<comment><USER36> Doubtlessly, this evidence alone could not lead to a conviction. It's more likely to lead to further search warrants which reveal more direct evidence.

</comment></comment><comment><USER44> I wonder if there's anywhere you can see if sales of burner phones are rising.

</comment><comment><USER45> Its a legit search. There was a crime. They need to know who to interview. They are not searching the phones themselves.

a phone is a PUBLIC device ruled by the courts.

</comment><comment><USER46> They can do it to anyone.

Putting the words "Privacy" and "Google" in the same sentence is a permanent oxymoron in my view.

<comment><USER47> The government had a warrant for the data. You are able to disable the feature which allows Google to collect this location history. If you had disabled it, Google never would have stored it. But with the feature enabled, and with the government presenting a valid warrant, what would you have Google do?

<comment><USER48> Is it disabled by default?

If not it is a setting not a feature.

<comment><USER49> It explicitly asks you if you want to enable location services at all when you first set up the phone.

I'm pretty sure it asked me if I wanted to enable Location History separately, but not 100%.

</comment></comment></comment></comment><comment><USER50> "Janitor Joe" was a glorious dollar store Lode Runner and is here!

<comment><USER50> Er this was meant for the msdos thread.

</comment></comment><comment><USER51> Most people have acceppepted the device as an advertising board but with targeted advertising, is it possible to target in a defined area and at what resolution. If not today, soon as it is technically possible.

But equally, they have become a form of 1984 in which the citizens freely pay for and constantly upgrade. Orwell never saw that aspect comming.

<comment><USER52> I find Brave New World by Huxley to be a much more accurate portrayal of the current state of affairs at least with regard to the whole, actively participating in and enjoying our descent into total surveillance and control. There's a YouTube video somewhere showing the comparison but I don't have a good enough connection right now to search YouTube.

<comment><USER53> While both picture different scenarios, I fear reality will demonstrate that both can very well be reconciled.</comment></comment></comment>


Show HN: Instant Alcohol Delivery, 100% Legal.  - <AUTHOR> http://swigme.com/

<comment><USER2> You know it's legitimate because it SAYS it's 100% legal right in the title!</comment>