Why not program right? - <AUTHOR> https://bertrandmeyer.com/2018/05/24/not-program-right/ <comment><USER3> I used to love these kinds of articles three decades ago. Then you get a programming job with budgets and deadlines and even stupid decisions based on politics and you hate all that at first until through experience you realize that even poorly engineered cars can get product from point a to point b and do so all over the world. Free markets eventually only have time for perfect solutions. And a perfect solution according to markets is the solution that does the job for the lowest cost over time. For a website that will support a two week marketing campaign, you don't need anything talked about in this article. In fact the only responsible decision is to ignore this type of approach and just build the damn thing with someone that has a track record. And then throw it out and move on. Based on empirical evidence, there isn't really a problem at all with the way people program. Markets have already mostly figured out the rare cases when such robustness is really needed. And it's rare. The only "right" way to program is to take as many stakeholder requirements into consideration as possible. And those requirements are rarely around program correctness. So this article is good (although I think you're really looking at functional programming by this time in history) but first make sure a top priority is program correctness before getting into the mode suggested by the article. One final stakeholder requirement that's always a priority: you have to be able to find qualified developers, and what developers learn is based on popularity and fashion. It's a real world constraint even if it's distasteful to the idealist and well intentioned types who write these articles.

<comment><USER4> And then, five years after you've left the company and some system inevitably collapses with nobody having a clue as to what went wrong you'd finally realize the wisdom of all that.

But it's no longer your problem.

So, please don't take it personal, but 'the well intentioned types who write these articles' tend to be the people that then get called in to clean up the mess.

And then - belatedly - the job gets done properly to keep the company in business, assuming there is still time enough to do so.

Just this week I had a nice inside look at the kind of mess gets left behind when the original duct-tape-and-spit guy leaves the company and lets his former co-workers clean up their mess. It isn't pretty, and a chapter 11 isn't an unlikely scenario, so forgive me if I take a harsher than usual look at the attitude that causes this sort of thing.

Note that the 'free market' doesn't have a horizon much longer than the next quarterly shareholder report, and that your typical software product lives a multiple of that interval. So software made with short term goals in mind will create long term headaches.

Your two week marketing campaign gets a pass. But your decade long backend project does not, nor does your real time medical device controller, ECU, database system or operating system.

<comment><USER3> > And then, five years after you've left the company and some system > inevitably collapses with nobody having a clue as to what went wrong you'd > finally realize the wisdom of all that. But it's no longer your problem.

If that were a problem in reality, the markets would be punishing companies where that happens. It's not a real problem that that happens. Management pretends to be upset, but in reality it's not a huge deal. Entropy is normal in apps and everything else. To continue the analogy from my original comment, do companies really go into crisis mode when one of the many cars in their fleet inevitably "collapses"? No. They build or buy a new one and life goes on.

> nor does your real time medical device controller, ECU, database system or > operating system.

Yep. Those are the rare cases I talked about. It's a tiny fraction of total programmers building databases and stuff like that.

<comment><USER4> > If that were a problem in reality, the markets would be punishing companies > where that happens.

Oh they do, I can show you plenty of examples. But it is never the problem of the people that created the issue in the first place.

Think of these things as time-bombs of technical debt. They'll blow up sooner or later, usually later, and that makes it that much harder to deal with the fall-out.

Also: for all the lessons about economy made here: I would happily argue that doing things right is actually cheaper in the long run and _possibly_ also cheaper in the short term, by applying the techniques described in proper measure you can save yourself a ton of headache.

But of course that would first require a basic understanding of what the article is trying to put across, which if your time horizon is short and your deadlines are looming likely isn't going to be on your agenda.

> It's a tiny fraction of total programmers building databases and stuff like > that.

Software you build tends to live longer than you think and tends to be incorporated into places that you can not foresee when you make it.

The 'tiny fraction of total programmers building databases' should include the _huge_ fraction of programmers building embedded systems, APIs, operating systems, libraries and so on. All of those will have life-spans in the decades if they're done halfway right.

<comment><USER3> You seem to have a poor understanding of both entropy and markets. Even the perfectly built program will soon become useless. Car companies are quite profitable building cars that "collapse" far before the actual potential which might be a car that lasts 50 years. But no longer can pass emissions tests... Zuck is about to surpass Buffet as the third richest person in the world. On an app built with PHP! I don't think much more needs to be said to support my original point.

<comment><USER5> > You seem to have a poor understanding of both entropy and markets.

And you're a bit assuming and rude. Your argument also isn't as bulletproof you want to make it sound. What is the argument here, anyway? There's no need to improve technique for an average programmer because an outlier system (Facebook) is written in a language commonly associated with poor programming practices, with some handwaving about markets and entropy sprinkled on top?

<comment><USER3> Sorry if I came off that way. I was in a rush on the way to an event and I thought I was just being honest about the weakness in his argument.

What's the argument here? That stakeholders have requirements that don't have to do with robustness like budget and deadlines and that your software has a shelf life and sometimes it's ok if it eventually breaks, just like cars and even the laptop I'm typing this on will. Is that an unreasonable perspective?

And Facebook is an outlier? Really? Even when we add Wordpress, Wikpedia, Flickr, MailChimp and a long list of the most successful websites in the world to that list?

<comment><USER6> > _And Facebook is an outlier? Really? Even when we add Wordpress, Wikpedia, > Flickr, MailChimp and a long list of the most successful websites in the > world to that list?_

Yes, FB is an outlier -- one out of million companies. Only 5-10 companies out of those millions made this current model work. So their existence and "success" proves absolutely nothing.

You have a strange understanding of the word "successful".

Facebook is certainly not "successful" _because_ it neglects good tech. If anything, they rewrote PHP itself so as not to have to rewrite their customer- facing software. How is that for your "tech excellence is not important" argument? They rewrote the damned runtime and even added a compiler.

So please define what "successful" means to you. "A lot of people using FB" is a temporary metric, even if it lasts for decades. It's not sustainable per se. It relies on hype and network effect. These fade away.

@jacquesm's points are better argued than yours. Throwing words like "free market" and "entropy" does not immediately prove a point.

I will give you the historical fact that there are many throwaway projects but he's also right that the fallout from the tech debt they incurred is almost never faced by the original author. Throw in the mix the fact that many businessmen are oblivious on what do the techies do in their work hours exactly and one can be easily misled that technology perfection is not important. Seems that you did.

Final point: I am not arguing for 100% technical excellence. That would be foolish. We would still be refining HTTP and the WWW in general even today and internet at large would not exist. But the bean counters have been allowed to negotiate down tech efforts to the bare minimum for far too long, and it shows everywhere you look.

(My local favourite restaurant waiters' smartphone-like devices for accepting and writing orders are faulty to this day because some idiot bought a cheap consumer-grade router AND made the software non-fault-tolerant, being an everyday example.)

<comment><USER3> > Only 5-10 companies out of those millions made this current model work

Stats? Evidence? I mean hundreds of of thousands of companies use PHP and other forms of less than perfect tech.

Websites all over the world seems to get the job done even when JavaScript with all its warts is used. I like JS for the record, but it does have warts.

> even if it lasts for decades.

You're saying the same thing I said. That stuff breaks. That companies come and go in and out of fashion. I also think it's interesting that you're calling FB an example of tech excellence but saying it's going to fade away. Choose one?

> How is that for your "tech excellence is not important" argument?

I never made any such argument. Not even close. I only said quality is not the only requirement and might sometimes not be a requirement at all.

Most of the code I write is high quality. I put a lot of effort into code reviews too. I mentor more junior devs around quality. My original post is actually much more nuanced than you are claiming.

> Final point: I am not arguing for 100% technical excellence. That would be > foolish. We would still be refining HTTP and the WWW in general even today > and internet at large would not exist.

Exactly. That's in the spirit of my original post. Maybe re-read it to see that we mostly agree instead of making my position into something it really isn't?

<comment><USER6> > _Stats? Evidence? I mean hundreds of of thousands of companies use PHP and > other forms of less than perfect tech._

Oh, I meant companies at the scale of Facebook. There aren't too many of them, would you not agree?

> _I also think it 's interesting that you're calling FB an example of tech > excellence but saying it's going to fade away. Choose one?_

FB does a lot of open-source projects. Their devs are excellent. That doesn't mean that their main value proposition is not comprised of code of the kind you speak about. No need to choose one, both can coexist in such a huge company like FB.

> _I never made any such argument. Not even close. I only said quality is not > the only requirement and might sometimes not be a requirement at all._

Well alright then. I am not here to pick a fight, you should be aware that you came off a bit more extremist to me and a bunch of others than you claim. But these things happen, I can't claim your intent because of a few comments, that's true.

Me and several others' point is that quality plays a part bigger than what you seem to claim. I also knew many devs that decided they won't ask for permission to take the [slightly / much] longer road and this decision paid off many times over in the following months and years.

Sometimes businessmen simply must not be listened to. I can ship it next week alright. But I can skip a few vital details, namely that I did not take into consideration some stupid micromanagement attempts to teach me how to do my job ("nobody cares about this arcane thing you call 'error logger' or 'fault tolerance', just get on with it already!"). Such toxic work places should be left to rot, that is a separate problem however.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> I find that a lot of folks only think of programming in terms of variables and executable instructions that modify them. The notion of an invariant is not part of their toolbox, and the exercise of modeling a domain is not something they really engage in: if the program doesn't do what they want it to do, either the instructions are wrong, or there need to be more of them to handle the cases that aren't currently handled.

<comment><USER8> I think this is correct.

It's understandable when it's a physicist or electrical engineer trying to code something up to get something working. What really upsets me is when it's professional software developers who never evolve out of that mindset.

I feel like at the end of the day the trick is to think algebraically -- Your data types and structures are some domain and you define operations over the elements of that domain in such a way that certain properties hold.

<comment><USER9> The big advantage of CS is the accessibility of the domain. You cannot take that away and hope nothing else changes. That, of course, means any idiot or 8 year old can just pick it up and run with it. They may become less of an idiot after a while, but this may not be desirable or expedient, and it's great that that's not much of a problem.

I mean, this is a bit like saying, why doesn't every physicist do everything by just coming up with a random differential equation for their problem then use fixed points to deduce the long-form non-recursive version and isolate out the wanted variables into long form ? It's, after all, usually by far the simpler process, especially since everyone can come up with a few differentials for any situation. Coming up with the correct long form directly, however, is absurdly hard. So if you simply learn to work with differentials, that's the way to approach essentially any problem. With a tiny caveat ... "learn to work with them" is 6 months of study and intensive practice, and that's assuming you already know a lot of math that isn't exactly high school level either, including a significant list of "tricks" that you just need to know by hard. But what you can do with it is amazing.

But the level of knowledge and understanding required is just too high for anything resembling general application.

<comment><USER10> This sounds cool, can you point me to a good primer on the technique?

<comment><USER9> [https://www.youtube.com/watch?v=-_POEWfygmU](https://www.youtube.com/watch?v=-_POEWfygmU)

Don't look at other videos until you've internalized the first sentence. Think long and hard about what that sentence means : differential equations allow you to find any function that you can make enough "what happens when it moves" observations about. Enough usually means one.

For instance you can find Newton's equations from the statement that "falling things keep going linearly faster" (because they're the simplest function that satisfies that differential equation).

On the more complex side, Google's pagerank is also the solution to a differential equation. Very technically it sort-of kind-of qualifies as a first-order one, just not in the real number space.

There's a separate branch of "differential equations" (let's call it "the physics branch") that studies how to work it with discrete time intervals rather than continuous ones, which is also interesting and useful.

</comment></comment></comment></comment></comment><comment><USER11> I wish we had tools for proving object invariants widely available. But such tools tend to come from people pushing their latest type theory or functional programming or something. They're too complex and abstract for most programmers. I tried to fix this once, but it was too soon in the early 1980s.[1] (That was before objects. We would have had object invariants if objects had existed back then. We had function invariants and module invariants.)

This stuff is useful is when you have lots of modifiable data structures which need to be consistent. Window managers. Operating systems. Game engines. Database internals. Most of the things you need to prove are trivial. But you need tools to check that invariant A is maintained by code far distant from where invariant A is defined. Maintenance programmers will miss that.

[1] [http://www.animats.com/papers/verifier/verifiermanual.pdf](http://www.animats.com/papers/verifier/verifiermanual.pdf)

<comment><USER12> Is there a viable solution that isn't type theory or functional programming or something? If it were feasible to do so, wouldn't we see progress in "everyday" common language?

<comment><USER11> There was for Modula III. DEC SRL in Palo Alto did a nice verification system for Modula III. But Modula III went down with Digital Equipment Corporation.

C/C++ has too much undefined behavior. Ada died off. The scripting languages don't need it as much. Rust had potential for proof work, but went off in a different direction. There are modern proof systems, but they're rarely integrated with the programming language.

<comment><USER13> "Ada died off. "

On the verification side, it's never had more users that I'm aware of. SPARK and Frama-C are very active compared to almost non-existent use of formal methods in industry decades ago. Rust could similarly have a subset integrated with Why3 platform to make the formal methods easier to use. Further, I've seen extraction done from Coq to C and Rust. There's also one person modeling C in WhyML to write the algorithms in the latter but extract to former. Or something like that. Could be done for Rust, too.

</comment></comment></comment></comment><comment><USER14> [https://web.archive.org/web/20180705200232/https://bertrandm...](https://web.archive.org/web/20180705200232/https://bertrandmeyer.com/2018/05/24/not- program-right/)

<comment><USER14> I guess my default answer is: because I have to solve some business problem to get paid, and I never have enough information or time to do it right - <USER2> phrased differently: If I took enough time to do it right, someone else would have already done it wrong and moved on.

Is there a "better" answer than worse is better?

<comment><USER15> Worse is better doesn't sound so bad for just a single (small) project.

Where it starts to go badly off the rails is when there's a company culture of worse is better and one quickfix, bandaid solution is piled on top of another.

They then wind up with one or more Leaning Towers of Pisa made up of bandaids, hacks, and quick fixes, and everyone running around like headless chickens putting out fires and trying to bandaid all the failures as the towers are constantly in the process of collapsing.

This leads to an ever widening spiral of hacks upon hacks upon hacks as company culture, lack of manpower, and pennypinching never gives them the luxry of doing it right, and cutting the gordian knot by scrapping everything and doing it right from the start becomes ever more impractical.

<comment><USER12> The whole web is "worse is better". You can say "worse is worse", but that implies you think the web is worse than something that.. what, would have sprung into existence if the current web was suppressed?

<comment><USER16> Project Xanadu?

</comment></comment></comment></comment></comment><comment><USER17> I was an Eiffel fanboy in the early 90s, when the only alternatives were Smalltalk and C++. It was obvious to me that garbage collection was necessary for modular systems, and that Eiffel assertions were the sweet spot in formal specification: lightweight enough to be usable in the real world, but formal enough to let you state and demonstrate useful things about your code.

However I was still always bothered by mutation. Everything was fine as long as you didn't change any data structures, but as soon as you added mutation to the mix everything fell apart. You could state an invariant, but if you shared a reference to an internal structure then you had to trust everything else in the system not to change anything.

Then I discovered functional programming in the shape of Haskell. Its still not perfect, but it's fundamentally better than OO.

<comment><USER18> I have also learned eiffel and read Meyer's book. The terrible standard library with the deep inheritence trees was my main complaint about this language. All his critics about C++ were very insightful. At that time almost nobody was speaking about immutability (GRAAL was called a language without variable). Java was almost revolutionary with its immutable strings.

</comment></comment><comment><USER19> > The only way to achieve demonstrable correctness is to rely on mathematical > proofs performed mechanically.

This is guaranteed to fail. What are you going to prove by your mathematical proof performed mechanically? That the program performs correctly? How do you define "correctly"? At bottom, it is defined by an informal specification in peoples' heads. You cannot mathematically prove correspondence to that, even in principle.

At best, you can prove correspondence to the most-high-level _formal_ specification. But how do you prove that _that_ specification is "what the program should do"?

The next problem with this approach is that it has costs. Having to write a mathematically rigorous formal specification for all the behaviors of a program takes non-trivial time and effort. As others have said, that effort could have been put into other things, like more features. Would we rather have more perfect software, or more feature-rich software? Above a certain level of quality, we'd rather have more features. (Yes, software often drops below that level of quality...)

<comment><USER20> You can prove performance properties, memory properties, and formal properties, or any combination of the above.

The question of 'what the program should do' is not a mathematical one; it's a philosophical one in the most general sense, and most likely a business one.

</comment></comment><comment><USER21> Contracts were just recently voted into C++20 ([https://herbsutter.com/2018/07/02/trip-report-summer-iso- c-s...](https://herbsutter.com/2018/07/02/trip-report-summer-iso-c-standards- meeting-rapperswil/))

With the addition of contracts, C++ will natively support this style of programming without ASSERT macros.

</comment><comment><USER22> > ...and examine the evidence.

And the evidence is that people write working, even reliable software without Eiffel.

<comment><USER4> Well, yes. But they do that by replicating a lot of functionality that might as well be pushed down a level. Because _every_ program with output that people or other systems rely on needs that level of reliability and yet only very few provide it to a degree that the company behind it would accept liability if it doesn't.

Usually 'working' and 'reliable' get redefined to 'working with what we've tested it with' and 'reliable insofar as our statistics indicate'. Without knowing for sure that you've really covered all your edge cases you're a typo away from some disaster. Fortunately most software isn't that important. But for software that is that important these strategies, even if imposed from the outside rather than embedded in the language will pay off.

<comment><USER22> Oh, I am not saying there are no problems. And I don't deny a certain emotional appeal to having safety features provided by the language.

However, great (quality) is delivered with those kinds of features and without, and crap software is delivered with those kinds of features and without. And more importantly, I have seen little to no _evidence_ that having those sorts of features actually substantially changes the statistical distribution of crap/quality software, no matter what we feel should be the case.

People can use these safety features or not, and they can use them well or not. Just like they can use non-linguistic safety mechanism, such as really good test-suites...or not.

Elsewhere, he writes:

> This is where I stop understanding how the rest of the world can work at > all. And so you probably need to upgrade your understanding.

If the world doesn't conform to your understanding of it, the thing that's lacking is almost certainly your understanding of the world. Because it does work.

<comment><USER4> > And more importantly, I have seen little to no evidence that having those > sorts of features actually substantially changes the statistical > distribution of crap/quality software, no matter what we feel should be the > case.

I have. Our company has done a fairly large number of studies on the internals of companies producing software and the better companies are at the tech the better they do in the long run.

Note that there is such a thing as 'good enough', and once that bar is cleared I'm fine with cutting a corner here or there to meet a deadline. But I'm _not_ fine with categorically ignoring quality and security in favor of short term wins.

<comment><USER22> Hmm...not sure we are disagreeing.

You:

"the better companies are at the tech..."

"categorically ignoring quality and security"

That is about _doing_ something about quality and security, and I agree wholeheartedly.

Me:

"having those sorts of features [in the language]"

That's whether having some specific language features is determinant for _doing_ things. I don't think it is.

</comment></comment></comment></comment></comment><comment><USER23> > This is where I stop understanding how the rest of the world can work at > all. Without some rigorous tools I just do not see how one can get such > things right. Well, sure, spend weeks of trying out test cases, printing out > the structures, manually check everything (in the testing world this is > known as writing lots of "oracles"), try at great pains to find out the > reason for wrong results, guess what program change will fix the problem, > and start again. Stop when things look OK. When, as Tony Hoare once wrote, > there are no obvious errors left.

Most businesses put their data in a DBMS, so you have integrity constraints "to ensure database consistency with the business rules or, in other words, faithful representation of the conceptual model of reality."[4] The relational model is both complete and a lot easier to understand than using the predicate calculus directly.

The other shortcoming of any language's invariants is that it lives in your source repo. As coders, we often forget that your production data represents contracts with customers, and you have to take account of the real data when migrating your business rules. That's why the M is in DBMS.

More directly answering the question, most languages can employ property tests [1][2][3] that, very closely to how Eiffel does it, allow you to specify the precise invariant and validate it under randomly generated tests.

But, honestly, a great deal of code, even math heavy code, doesn't have nice general invariants. Real functions dealing with business logic and bugs are piecewise and messy.

And then that only covers the handful of functionality that is even remotely expressible in mathematical form. You still have the user interface to deal with, dependency management, your entire deployment story, and all the problem extant between chair and keyboard.

Technology can't substitute for the grunt work of testing, testing, actually using your system and talking to your customers.

[1]: [https://hackage.haskell.org/package/QuickCheck](https://hackage.haskell.org/package/QuickCheck) [2]: [https://hypothesis.readthedocs.io/en/latest/](https://hypothesis.readthedocs.io/en/latest/) [3]: [https://github.com/HypothesisWorks/hypothesis- java](https://github.com/HypothesisWorks/hypothesis-java) [4]: [http://www.dbdebunk.com/2017/06/what-meaning-means- business-...](http://www.dbdebunk.com/2017/06/what-meaning-means-business- rules_11.html)

<comment><USER24> > But, honestly, a great deal of code, even math heavy code, doesn't have nice > general invariants. Real functions dealing with business logic and bugs are > piecewise and messy.

At the edges, the invariants are going to be messy, but it would seem like this gives you ample excuse to define functions with strong, narrow invariants as the core of your application, with input transformation functions at the edges.

<comment><USER4> And, very importantly: input validation at the edges. Way too many systems assume that the data they are fed is consistent.

</comment></comment></comment><comment><USER25> Why not? Because provably correct software is not necessarily correct software. One of the biggest classes of defects in programs is missing details in specifications, and provable correctness against the wrong specification doesn't help with that problem at all.

Provable correctness is one technique in software development, it's not the only technique nor even the most important technique nor even a _required_ technique.

<comment><USER22> Yep.

Provable correctness can be useful iff you have a formal specification, and iff that formal specification is more likely to be a correct reflection of the requirements than the code + some tests.

While there are times when that's the case, those are rare.

</comment></comment><comment><USER16> I find contracts interesting, but it seems to me that they're only useful for transformations that are easier to check than to implement, no?

</comment><comment><USER26> I have heard of property based testing (e.g. QuickCheck). Is the main innovation of Eiffel that the author is referring to that these invariants are written alongside the actual code AND are configurably checked at runtime? Because ordinarily, you might sprinkle assertions throughout your code, but these are checked only at the point you add them, rather than between statements as I assume Eiffel does. In that case, I see some benefits in the form of documenting logical assumptions which are actually validation when code is run (also during manual testing).

I could imagine this being implemented in other languages by hooking into statement execution much like a profiler or debugger and executing the checks. Does anyone know of such tools for other languages, e.g Python or JS?

Does anyone have real-world experience with this development technique on an actual project in production?

<comment><USER17> Eiffel dates back to the 1990s. Java was going to have Eiffel-style invariants, but they got chopped out because Bill Joy had a deadline to meet.

</comment></comment><comment><USER27> "The future is here, it's just not evenly distributed yet." ~W. Gibson

We are like lumberjacks who so love our axes that we refuse to even consider chainsaws. Many of us don't even know they exist, or if we do, think of them as esoteric and nearly magical. And then there's the fellow who says, "I'm too busy chopping down trees to learn use a chainsaw. I've got to get these trees chopped today!" (So learn to use a chainsaw on the weekends maybe? They really aren't that hard.)

<comment><USER6> I agree with you, however the chainsaws in your example are definitely hard as hell... consensus algorithms, net splits -- and you already have much more a single programmer could handle (most of us anyway).

</comment></comment><comment><USER28> One thing I'd really like to see is a debate between Meyer and his predecessor Niklaus Wirth. The latter was definitely willing to sacrifice some correctness if that means making the system easier to implement and learn. Just compare Oberon and Eiffel, or, heck, "Algorithms and Data Structures" and "Object- Oriented Software Construction".

<comment><USER29> I'm not sure Wirth has ever sacrificed correctness. He has been willing to sacrifice performance though, that is, if a simpler solution was fast enough he went with that (e.g. linked list instead of hash table for symbol lookup in a compiler). He's also not been afraid to question established wisdom and practice if it lead to simpler implementations (e.g. the file API in Oberon).

I suspect Wirth would not object to codifying pre/post-conditions and invariants per se. But I think he would object to using them as a band-aid around complicated implementations. It's hard to convince yourself that your implementation is correct when the pre/post-conditions and invariants are themselves complicated and hard to understand.

</comment></comment><comment><USER30> OT: what is the definition of a "root" of a multigraph? In a regular graph, the most common definition I've seen is that a node is a root iff you can reach every other node starting from it. In the graph in the article, that is true both of nodes 1 and 2, but he says 1 is the only root.

</comment><comment><USER31> Yes, I get he thinks his language is the best, and maybe it really is. Constraint-based programming sounds cool. Then again, so does logic-based programming, but I'd wager most people have never written a single line of Prolog, and for good reason. It's hard and slow to write, and to run for that matter.

Maybe his language would be more popular if he wasn't such a snob about it.

</comment><comment><USER32> Looks like algebraic query language AQL. Anyone familiar with both this and AQL who can give the comparison?

</comment><comment><USER33> If I had to develop software like that, I'd quit and dig ditches for a living.</comment>


Why GitHub say that a file have x lines but show x-1? - <AUTHOR> I don't know if this is a bug.
https://i.stack.imgur.com/iBmkG.png
https://i.stack.imgur.com/YCcIA.png
https://i.stack.imgur.com/LBapI.png
https://i.stack.imgur.com/p8dvi.png
The strange thing is when I clone the repo this file have 400 lines, the last is a classical
 blank newline.
The real problem is when someone did a change, it happen https://i.imgur.com/LwoeKYk.png and I could think, "oh a newline is missing" <comment><USER2> Last empty line is skipped by UI.

<comment><AUTHOR> Yea, but why.

The real problem is when someone did a change, it happen [https://i.imgur.com/LwoeKYk.png](https://i.imgur.com/LwoeKYk.png) and I could think, "oh a newline is missing"</comment></comment>


We're losing perspective on 3D CSS - <AUTHOR> http://logicalfriday.com/2013/08/27/were-losing-perspective-on-3d-css/

<comment><USER2> I think as an art project it's interesting, like building the Sistine Chapel out of lego blocks, but every time I read about one of these demos there are always several people in the thread who complain that it maxes out their CPU, so it's not very practical. This problem may one day be solved, but using CSS as a programming language would for me be a horrible prospect. That being said, if you told me several years ago that people would be using JavaScript on the server I would have laughed.

<comment><USER3> No one is going to solve the problem unless there's a need for it. Developers jumping in and using CSS now creates the need. It's probably just a matter of getting enough hardware acceleration. I sort of agree that WebGL is probably a better solution. However, people experimenting can lead to serendipity. At the very least, browser vendors now have other to optimize their CSS implementations.

<comment><USER2> > Developers jumping in and using CSS now creates the need.

Agreed. That's a good thing. I haven't looked into why it's so slow but I can't think of a reason why it can't be faster.

</comment></comment></comment><comment><USER4> Is anyone actually using 3D shapes in CSS in practice for anything more than novelty? If they are, I haven't seen it. It's been more of a "look what I can do with just CSS", because it's fun to hack around with new technology.

<comment><USER5> I played around creating a flippable-card based UI for use on mobile:

[http://experimenting.alastair.is/cardswipe/](http://experimenting.alastair.is/cardswipe/)

I think it has potential. And yes, I know it doesn't feel quite right (or work on desktop), it was the result of a few hours of work. The hardware- accelerated nature of it means that it does feel very smooth indeed.

</comment></comment><comment><USER6> Not sure I buy the "anything outside of flat objects is a hack" statement. After all most 3d engines boil everything down to triangles...

</comment><comment><USER7> If you are creating an app with node-webkit, you could probably find a use for 3D shapes without worrying about cross browser issues.

</comment><comment><USER8> I think that creating 3D content using a WebGL-based application and then allowing export to 3D CSS may be a better solution rather than just creating the 3D in a CSS special purpose application. But admittedly, I'm biased because I'm a developer behind [http://clara.io](http://clara.io)

<comment><AUTHOR> You're right, 3D CSS still has a usecase though, it's just very restricted. Clara.io looks like a pretty sweet tool btw!

<comment><USER8> Be sure to apply for the beta, I can let you in immdiatel....

Clara.io is built using ThreeJS as your article recommends. I'm actually the third largest contributor to ThreeJS by commmits, so we are giving back where it matters too.</comment></comment></comment>


These men may revolutionize how you shop - <AUTHOR> http://qz.com/257752/these-men-may-revolutionize-how-you-shop-theres-a-reason-theyre-all-chinese/

<comment><USER2> _the idea of buying things online and picking them up at stores may not seem very exciting_

It's great for clothes even if they don't deliver within hours. You get the full selection from the whole chain/manufacturer but can still try them on without shipping back when they don't fit.

</comment><comment><USER3> I always find it annoying when people use needlessly personal titles like this. "May revolutionize how people shop" is a reasonable, defensible statement. "May revolutionize how _you_ shop" assumes too much.</comment>


How to Train Your Spouse Like an Animal - <AUTHOR> http://priceonomics.com/how-to-train-your-spouse-like-an-animal/ <comment><USER2> How to get tech guys to treat their next girlfriends like dogs.</comment>


The Egg – In Animation Format - <AUTHOR> https://www.youtube.com/watch?v=h6fcK_fRYaI <comment><AUTHOR> Very happy to see one of my very favorite short stories turned into a short video animation by Kurzgesagt.</comment>


Lucas Film - filmmaking scenes get rendered out in real time - <AUTHOR> http://www.thatvideosite.com/v/11118/lucasfilm-shows-off-the-future-of-filmmaking-scenes-get-rendered-out-in-real-time-removing-the-need-for-post-production

<comment><USER2> Cosplay to the masses in 15 years</comment>


In Astounding Test, Scientists Revive Damaged Lungs for Transplant - <AUTHOR> https://www.nytimes.com/2020/07/13/health/organ-transplants-lungs.html <comment><USER2> The lead (or lede, if you will) is brilliant:

> The six lungs were taken from brain-dead patients and offered to transplant > surgeons. But at major medical centers, one surgeon after another refused > the organs.

> They were damaged, swollen and soggy with fluid. Like 80 percent of lungs > offered for transplant, these were just too far gone for the operation.

> But researchers at Columbia and Vanderbilt saw an opportunity. They had been > working for eight years on a system to restore damaged lungs.

</comment><comment><USER3> [http://archive.is/9kZ7Y](http://archive.is/9kZ7Y)</comment>


New App Tells Which Stephen King Novels You Will Like - <AUTHOR> https://www.wsj.com/articles/which-stephen-king-novels-are-you-most-likely-to-like-a-new-app-will-tell-you-1528801200 <comment><USER2> Cool, I like It.</comment>


Eventjoy (YC W14) Is A One-Stop Shop For Organizing Events - <AUTHOR> http://techcrunch.com/2014/02/18/yc-backed-eventjoy-is-a-one-stop-shop-for-organizing-events/

<comment><USER2> Ridejoy, Pathjoy, Homejoy, Eventjoy. There's something about YC and a certain suffix...

<comment><USER3> You forgot Tipjoy (W08) and Snapjoy (S11).

Another thing YC companies love is using "hello@" for their contact email address.

<comment><USER4> Tipjoy cofounder here.

"joy" is a three letter word that is incredibly positive.

To come up with the name, I wrote down every word that was about money and payment, and every one about happiness, and tipjoy was the shortest combo. I bought it for $8.

The reason you see so many now is that these characteristics haven't changed.

<comment><USER5> Agreed about it being positive. Event organizing can be tough and we want to make it easy. I think "joy" helps emphasize this.

</comment></comment></comment></comment><comment><USER6> I tried it out, and appreciated the category "Just Testing." I don't know how many things I've signed up for just to test.

The only events I organize are get-togethers with friends. What I was hoping for was an Evite 2.0, but I suppose there's no money in organizing potlucks. Good work and good luck!

</comment><comment><USER7> As someone who organizes a lot of events and uses eventbrite now I would love to see a price break for sub $10 tickets. A $5 ticket, the $.99 fee is almost 20% + 5% in cc fees gets tough to swallow.

So things I would want to see in order to switch from EB: \- Better ticket sales at the door (like square integration) \- Better check-in/scanning systems \- More flexible ticket types \- hmm i could go on, just need more coffee right now.

sidenote: I generate hundreds of dollars a month for eventbrite but their support is abysmal.

<comment><USER5> Hey Brian - I'm Todd, one of the founders at Eventjoy. This is awesome feedback and I'd like to chat with you more. We can probably even help you out with that coffee situation. Could you send me an email at todd[AT]eventjoy[DOT]com

Thanks!

</comment></comment><comment><USER8> Obviously only one angle, but for paid events, looks slightly cheaper than the main incumbent, EventBrite: 5% + $0.99 (including CC processing) rather than 5.5% + $0.99.

<comment><USER9> Seems like this price should get driven to near free.

<comment><USER8> My guess is that PayPal's pricing is close to a floor on the price at which you could profitably offer general CC processing (2.9% + $0.30). But PayPal doesn't handle event billing, which they argue has a higher risk of fraud. How much higher risk I don't know, but it seems vaguely plausible that 5.0% + $0.99 isn't a huge profit margin, when dealing with the whole mess of merchant fees + chargebacks + fraud.

</comment></comment></comment><comment><USER10> Can someone please explain to me how they already have HomeDepot as a client? Its been around less than a year and HomeDepot already uses it? Am I missing some angle here?

<comment><USER5> Sure thing. I'm one of the co-founders at Eventjoy. We created a mobile app for one of their internal meetings last month.

</comment></comment><comment><USER11> Who's the customer base for something like this? Why would I use this as opposed to one of the many other event apps out there?

<comment><USER5> We work a lot of with independent/non-professional organizers since they need tools that are a) affordable and b) are simple/do not have a large learning curve. Their events include everything from conferences to food and wine tastings.

Event app wise, we have all the features you'd expect (event info, social integration, attendee profiles, etc). We also have some unique capabilities given that we handle ticketing/registration as well. Not to mention, it's completely free compared to $1000s.

</comment></comment><comment><USER12> Were we not able to come up with something more descriptive than "easiest way to organize..."

<comment><USER13> Events made easy was taken.</comment></comment>


The U.S. is withdrawing from the World Health Organization - <AUTHOR> https://www.wsj.com/articles/white-house-says-u-s-has-pulled-out-of-the-world-health-organization-11594150928 <comment><USER2> I don't know what the cost/benefit ratio is with WHO but as a non-expert, I found the WHO's leadership during this unprecedented times as weak, un- authoritative and frankly misguided/misinformed. Without stirring up conspiracy theories, everyone should watch this WHO official who just hangs up when they're asked about Taiwan: [https://www.youtube.com/watch?v=UlCYFh8U2xM](https://www.youtube.com/watch?v=UlCYFh8U2xM)

That makes me think that the whole organization has been bought out and sold off. But, that's just my knee-jerk reaction and a gut feeling.

That said, what's there to pay to be a member? Why not just stay in there like everyone else?

<comment><USER3> Asking these sorts of political questions to scientists puts them in a difficult position.

If he answers in the affirmative, he pisses off China, and will likely see them retaliate by withdrawing from cooperation at a time when that could have severe impacts on the world's ability to deal with a pandemic.

If he answers in the negative, he pisses off Taiwan, a lot of people, and a lot of countries who are also not willing to stand up to China on this issue.

And what's the benefit for asking this of an epidemiologist. He's not there to give personal political opinions, he's there to be an expert on a specific subject.

As for the rest of the issues - I know you're not specifically saying it, but there's a lot of folks that blame the WHO for not warning people about this, or delaying announcements.

The WHO were quite early in warning that countries should be prepared for this, that there should be greater efforts put in attempting to limit it's spread.

There is some truth that they didn't declare it a pandemic as early as everyone wanted, they had to wait for it to meet official definitions of being a pandemic.

The WHO declaring a pandemic, however, didn't mean countries couldn't act earlier to stop it.

<comment><USER4> Why did he not say so?

"I'm sorry, but this is a political question which I'm not able to answer.".

or

"You know this question puts me in a difficult position and it is not up to me."

To me it seems his mind is made up. He does what China wants. He doesn't try to appear neutral. To him Taiwan is China.

But either way - it shows how great power China has over international bodies and it is scary.

Besides questions of WHO competency, we have to ask ourselves whether WHO even has good intentions in the first place.

<comment><USER3> The reporter wasn't stupid, they were hoping for some kind of reaction.

It's not too dissimilar to taunting someone hoping they'll do something you can latch onto.

The lack of reaction / dodging was clearly enough to drive up a shitstorm. Any attempt to acknowledge and answer the question, even in deflecting it, was going to cause more trouble.

> it shows how great power China has over international bodies and it is > scary.

It shows how much power China has in general.

Look at Hong Kong. Most countries are doing nothing except making vague statements for peace, at most some are offering refuge for some who want to escape.

<comment><USER4> > Any attempt to acknowledge and answer the question, even in deflecting it, > was going to cause more trouble.

This is certainly not true. WHO lawyer gave later lengthy explanation of WHO position on Taiwan on a press conference and nobody cared. It wasn't the issue of Taiwan that shocked people. Everyone following news knows that UN is politically paralyzed institution.

What was shocking, to me and people I know, was the extend of fear and disingenuity of a member of WHO. He has clearly western roots and we expect from him western political culture. He is the man in authority position who we are supposed to trust. But this behavior was all but trustworthy. He was deceiving. He was laying and he was voluntarily following Chinese party line.

The reporter was not stupid, indeed. It's her job to ask difficult questions.

I applaud her for opening my eyes to the fact that I should trust WHO only about us much as I trust China.

> Look at Hong Kong. Most countries are doing nothing except making vague > statements for peace, at most some are offering refuge for some who want to > escape.

Again, this is something that I tend to expect. Western states have nothing to gain there and we have no obligations to these 7.5 million people.

> It shows how much power China has in general.

I guess maybe I was naive, but my a prior would be that USA would have a lot more power. The fact that western people are bowing before China in this way is new to me.

</comment></comment></comment></comment></comment><comment><USER5> This is so, so stupid. The world has a limited number of fragile, deeply flawed but utterly necessary coordination mechanisms. To throw one of them aside in a fit of pique is the act of an angry toddler, smashing things he doesn't understand.

<comment><USER6> How in the world can you really say or think that? This was the WHO's official stance in January 2020: "Preliminary investigations conducted by the Chinese authorities have found no clear evidence of human-to-human transmission of the novel #coronavirus (2019-nCoV) identified in #Wuhan"

If that isn't clear evidence that they are beyond useless, then I don't know what is.

<comment> dylan-m Taking that quote at face value: at the time, they trusted the Chinese authorities. This isn't terribly unreasonable. I think in retrospect we can say, yeah, they obviously shouldn't have trusted the Chinese authorities then, and they definitely shouldn't trust them in the future. But at the time, the idea that trusting them was a bad idea was more a thing people said than something backed by solid evidence.

Alas, sometimes large bureaucracies take a while to catch up with common sense. (See also, fax machines).

There actually _is_ solid, undeniable evidence now, which is great! Let's see how they apply that in the future.

<comment><USER7> 'Health officials in Taipei said they alerted the WHO at the end of December about the risk of human-to-human transmission of the new virus but said its concerns were not passed on to other countries.'

[https://www.ft.com/content/2a70a02a-644a-11ea-a6cd- df28cc3c6...](https://www.ft.com/content/2a70a02a-644a-11ea-a6cd-df28cc3c6a68)

[paywalled - but going via a google search gets round it]

'Wuhan virus probably is spreading between people (2020-01-04)

Wuhan officials also said on Friday that no evidence of human to human transmission has been found so far.

But Ho said it is possible that the virus can be passed from person to person, and this is likely to have already happened in the Wuhan outbreak.'

[https://news.rthk.hk/rthk/en/component/k2/1500994-20200104.h...](https://news.rthk.hk/rthk/en/component/k2/1500994-20200104.htm)

'Wuhan pneumonia: what we know about the new virus and how you can stop yourself getting sick (2020-1-9)

Dr Ho Pak-leung, from the University of Hong Kong, said the new coronavirus was believed to be spread through droplets.

"The public should wear disposable surgical masks in crowded places," Ho said. "They should also clean their hands frequently."

[https://today.line.me/hk/article/Wuhan+pneumonia+what+we+kno...](https://today.line.me/hk/article/Wuhan+pneumonia+what+we+know+about+the+new+virus+and+how+you+can+stop+yourself+getting+sick- PoWrD5)

'Q&A with HK microbiologist Yuen Kwok-yung who helped confirm coronavirus' human spread

Tell us what you saw in Wuhan (on 17th Jan).

Let me tell you what I think is the truth. All the places we visited in Wuhan looked like they were putting on a show. Whatever we asked them, they answered as if they had prepared hard with well-thought-out replies. However, Zhong Nanshan was extremely sharp - he kept asking follow-up questions, like: "Is there anything else?" "Are there any more cases?" "Is it really like you're saying, just that many cases?"

Eventually, under pressure, they relented and told us it seemed that there was one patient in the neurosurgery department who had infected 14 medical workers. But they also said those medical staff had not had their diagnoses confirmed.

...

We met a deputy-level national leader and officials from the National Health Commission. They were all quite frank. Our expert group reported that the situation was severe, and there must have been cases of human transmission, and that preventive measures needed to be taken immediately.'

[https://www.straitstimes.com/asia/east-asia/exclusive-qa- wit...](https://www.straitstimes.com/asia/east-asia/exclusive-qa-with-hong- kong-microbiologist-yuen-kwok-yung-who-helped-confirm)

<comment><USER8> > 'Health officials in Taipei said they alerted the WHO at the end of December > about the risk of human-to-human transmission of the new virus but said its > concerns were not passed on to other countries.'

> [https://www.ft.com/content/2a70a02a-644a-11ea-a6cd- > df28cc3c6...](https://www.ft.com/content/2a70a02a-644a-11ea-a6cd- > df28cc3c6a68)

The Guardian disagrees: [https://www.theguardian.com/world/2020/apr/18/caught- in-a-su...](https://www.theguardian.com/world/2020/apr/18/caught-in-a- superpower-struggle-the-inside-story-of-the-whos-response-to-coronavirus)

> "Why did the WHO Ignore an email from Taiwanese health officials in late > December alerting them to the possibility that coronvirus could be > transmitted between humans?" the president asked in a tweet on Friday, > echoing a claim made by Taipei.

> However, the Taiwanese email appears to have made no such warning. It was > sent from Taiwan's CDC to its WHO liaison officer on 31 December, hours > after the first official report of a cluster of pneumonia cases in Wuhan > were published online.

> According to the text provided to the Guardian, the email said: "News > resources today indicate that at least seven, atypical pneumonia cases were > reported in China."

> It restates the details of Chinese report, adding "I would greatly > appreciate it if you have relevant information to share with us."

> The email did not contain new information, and certainly nothing about > human-to-human transmission. The WHO had picked up the same report on the > night of 30 December and was urgently seeking more information. On 1 January > it activated its incident management support team, putting the organisation > on an emergency footing.

I feel like this whole "it said/it said" thing with all these various organizations and their shifting messages is going to take years, at least, to disentangle.

<comment><USER7> Thanks for the update, I haven't looked at it for a while, these were my bookmarked sources from that time:

[https://www.taiwannews.com.tw/en/news/3904054](https://www.taiwannews.com.tw/en/news/3904054)

[https://news.yahoo.com/taiwan-accuses-failing-heed- warning-1...](https://news.yahoo.com/taiwan-accuses-failing-heed- warning-143800176.html)

'The officials said doctors in Taiwan had learned from their colleagues in mainland China that medical staff were falling ill from the as-yet unnamed coronavirus, a sign of human-to-human transmission that Taiwan says it passed on to the WHO and Chinese authorities on December 31. However, the WHO did not communicate the information with other nations.'

So I guess it comes down to semantics; whether a mention of atypical cases and request for confirmation is effectively a warning - or not.

Whatever the interpretation, it seems like the lack of response from the WHO to that email indicates the WHO were in the dark at the time, or not willing to share what they had. If the former then the email could be said to have formed a warning of some kind.

>[https://www.theguardian.com/world/2020/apr/18/caught-in-a- su...](https://www.theguardian.com/world/2020/apr/18/caught-in-a-superpower- struggle-the-inside-story-of-the-whos-response-to-coronavirus)

I love how The Guardian tries to twist the facts in the service of an anti Trump screed. Personally I feel the report from Reuters was far more balanced (it doesn't even mention Trump)

[https://www.reuters.com/article/us-health-coronavirus- taiwan...](https://www.reuters.com/article/us-health-coronavirus-taiwan- idUSKCN21T0BA)

(curious about the downvotes btw...)

</comment></comment></comment></comment></comment></comment><comment><USER9> This administration is using the WHO as a scapegoat for its mishandling of the pandemic. But I am for increasing funding to NIH.gov instead of politics ridden WHO. WHO has made this crisis worse with confusion, misinformation and incompetence.

<comment><USER10> But isn't the obvious domestic institution for public health crises/epidemics the CDC, not the NIH? And hasn't the current administration interfered with the CDC's response (including e.g. stopping them from doing their own regular press briefings, removing a leading researcher after he expressed skepticism in response to the president's comments on hydrochloroquine, etc)?

If your complaint is the crisis being made worse by confusion, misinformation and incompetence, I hardly see how removing resources and trying to favor hamstrung American institutions is an improvement.

</comment></comment><comment><USER11> Mirror: [https://archive.is/c2Yb0](https://archive.is/c2Yb0)

</comment><comment><USER12> Withdrawal from the WHO takes at least a year.

which means that no, we haven't fully withdrawn from the WHO.

With luck and given the last 6+ months of polls, we have just added "unfuck this, too" to the to-do list of the first two years of a new adminstration's agenda.

</comment><comment><USER13> Bottom line: How is it the WHO did not declare a pandemic until Mar 11?

<comment><USER14> I don't know, but everybody panicked about the same time and came to the conclusion it was a crisis right about on Friday the 13th. I personally was worrying about why a lot of authorities were dragging their feet that week, but none of them were the WHO.

Maybe take an inventory of where you were and what you were doing and thinking that week?

<comment><USER15> > I don't know, but everybody panicked about the same time and came to the > conclusion it was a crisis right about on Friday the 13th.

The sudden switch was fascinating to me. One theory is Tom Hanks getting it coupled with the NBA shutting down on the 11th turned it from abstract to very concrete for a lot of folks:

[https://www.bloomberg.com/news/articles/2020-03-12/tom- hanks...](https://www.bloomberg.com/news/articles/2020-03-12/tom-hanks-and- the-nba-finally-wake-america-up-to-the-coronavirus)

<comment><USER14> Passing a threshold doesn't happen because something happened at exactly that point; it happens because an accumulation of things reaches a tipping point.

For instance, with my workplace there were (unseen) negotiations with the union on how to respond. For at least a week or more, us peons were saying (or I was to myself) what the hell is the governor doing? Well, in all fairness, lots of people were doing things behind the scenes.

<comment><USER15> I'm saying "celebrities are getting hit now" pushed a lot of folks past that tipping point.

If a random person wins the lottery, no one blinks an eye. If Tom Hanks and the NBA win the lottery, people start wondering if a) it's more common than they thought to win the lottery or b) the lottery is rigged, because statistically celebs should have a low chance of winning it.</comment></comment></comment></comment></comment>


Zwift's Virtual Tour de France Broadcast - <AUTHOR> https://www.dcrainmaker.com/2020/07/behind-the-scenes-on-zwifts-tour-de-france-tv-broadcast-plus-zwifts-new-raceview.html <comment><AUTHOR> This isn't overly technical, but it's a good look behind the scenes at how the virtual race is being produced in real-time.

TL;DR: just like everybody else, they use Zoom (and then some...)

But what I find more striking is how a tech company in the fitness industry really hit the big time and because of the virus, has expanded their platform from amateurs cycling/training at home, to running a top pro cycling event. Apparently, it's "only" a 6-stage demonstration of the technology, to fill the media void over the summer when it usually runs. The real race is still planned for the fall.</comment>


The Decline and Fall of 'Draw Something' - <AUTHOR> http://www.theatlanticwire.com/technology/2012/05/decline-and-fall-draw-something/51792/

<comment><AUTHOR> How fitting the name "OMGPOP" turned out to be.

<comment><USER2> Sounds like they sold at just the right moment.

</comment></comment><comment><USER3> I just downloaded this game the other day. It was fun for awhile (it still kinda is), but there are only so many words. I get repeats every day. And some words are just bizarre. How am I supposed to draw iCarly (some Nickelodeon show), when my opponent and I are both over the age of 13?

I assume Zynga's CEO didn't ever play the game. I knew it wouldn't last the first day I played it.

<comment><USER4> Agreed. Some of the words are ridiculous. The repeats are so bad after a few days playing, you didn't even have to try any more.

The free version was acceptable in the beginning. They show ads in return for it being free. I get that. I am fine with that. Then, it got to the stage where they were FORCING ads down your throat after every turn. It became unplayable, so I just removed it from my phone.

</comment></comment><comment><USER5> A drop from 14.5M to 10M is significant, but that graph is misleading because of the y-axis range. It only shows the range between 15M and 10M. 10M users is still nothing to scoff at. I think it was inevitable that the initial hype would wear off a little and the game would settle in to a smaller, dedicated fan base.

</comment><comment><USER6> I would be very surprised if Zynga didn't consider this kind of a growth/ decline curve when buying. This is very common in viral spreading Facebook and iPhone games which zynga have many.

</comment><comment><USER7> "The game's popularity peaked almost exactly on the day that the company was bought"

Given the timing did the new association with Zynga hurt them? Seems like consumers, in general, are probably not that in tune with the press but this all went pretty mainstream, and Zynga's rep seems to be taking blows at all levels now . . .

Also appears from the recent reviews that lots of folks are having issues with crashing:

[http://itunes.apple.com/us/app/draw-something- free/id4886282...](http://itunes.apple.com/us/app/draw-something- free/id488628250?mt=8)

<comment><USER6> Doubt that would be the primary driver, the average app user just wouldn't be that in time with behind the scenes movement. Nothing was put in app or in the download description to indicate that it was now a Zynga property.

<comment><USER8> Shortly after Zynga bought OMGPOP, my profile disappeared. If I wanted to play games, I would have had to create a new profile with no way of knowing if all of my coins/colors/current games would carry over.

I didn't care enough to sign up, and this time around I was forced to link it to either my email address or Facebook, which I did _not_ want to do (before I could just create a username without linking it to anything else).

This friction is what led to my uninstall and is no doubt a consequence of the sale.</comment></comment></comment>


Too Much CO2 Has an Unnerving Effect on the World's Trees, New Study Finds - <AUTHOR> https://www.sciencealert.com/too-much-co2-makes-trees-live-fast-and-die-young-says-study <comment><USER2> Two of the three peer reviewers didn't agree with how the study extrapolated results to predict the effect on carbon. One reviewer wrote, "The conclusion about neutralizing the carbon sink ignores forest management ..."

Using a static analysis to predict complex system behavior seldom works.

I'm wondering about how a tree becomes unnerved.

</comment><comment><USER3> A friend of mine some years ago, who is a civil engineer now, at the time a student was telling me that timber is getting less and less reliable as a building material. At the time we thought this was about how it was harvested. Which to some degree I guess it kind of is, but the CO2 causing overgrowth and less strength makes a ton of sense.

<comment><USER4> I hope we switch to concrete and brick like the rest of the world. To pay a million dollars for a glorified wooden shed is undignified.</comment></comment>


GitHub for Government (2013) - <AUTHOR> http://zen.id.au/github-for-government/?hn=true <comment><USER2> Wouldn't work...Requires citizens to be informed and engaged.

Most people care only for football, TV/film, and celebrity gossip...</comment>


Show HN: Krucible – Kubernetes clusters for testing and development - <AUTHOR> https://usekrucible.com <comment><AUTHOR> Author here. At the last two companies I've worked at we really needed—and didn't have—a solution for spinning up throwaway Kubernetes clusters that we could use for testing and development. Krucible is an attempt to solve that problem.

We've just released a really cool feature called Snapshots that allows you to image a running Kubernetes cluster, including the state of all applications, and then create new clusters from that image. It's great for creating consistent development environments or quick starting test environments.

Happy to answer any questions people might have.

<comment><USER2> > Krucible is an attempt to solve that problem.

For me, this was always ops smell - why do devs need to spin up k8s clusters? As long as you're not working on some low-level k8s features (your own operator, or testing cluster-wide resources, or developing k8s components themselves), then why not use a 'real' cluster for testing? k8s multitenant/process isolation is definitely good enough for semi-trusted users like developers, as long as you take sensible measures (ephemeral low-priv namespaces, podsecuritypolicies, networkpolicies, quotas, etc).

<comment><USER3> From what I've seen reviewing k8s clusters some of the items in your "sensible measures" list aren't considered easy to manage and deploy.

In particular good RBAC design, that doesn't end up leaking information across namespaces, PSPs that are flexible enough for developers but strict enough to prevent privesc and strong network policies present challenges.

For those, less mature, organizations, a solution like this might present an easier option.

<comment><USER2> I don't want to gatekeep, but in my opinion organizations that can't afford to set this up correctly _likely_ shouldn't be running k8s in the first place.

From my experience with companies that haven't done their organizational or engineering homework: half-assedly deploying Kubernetes ends generally ends up being an unmaintainable disaster.

One of the high-return-value aspects of k8s is having little clusters available to multiple tenants. Without this in place k8s really stops making, being too complex for its actual usecase - so you might be much better of using something simple like Nomad.

<comment><USER4> Whether they (the user) should (run Kubernetes) or not, there are many systems and products out there that are meaning to make Kubernetes as accessible as possible.

In fact, the goal of many solutions (GKE, AKS, EKS, etc) is meant to be "We managed the entire cluster for you, just deploy your workloads!".

In many situations, if a company is running a single application in their cluster, many of the these management aspects (networkpolicies, quotas, etc) are not at all necessary for their use-case.

You say they shouldn't be running k8s in the first place, and I half agree with you. They don't _need_ to be running k8s. Large platforms have done a lot of work to make "Run in a Kubernetes Cluster" as approachable as "Run in Heroku".

Regarding Nomad, sure, but if someone hasn't done their engineering homework, the chance that they are even familiar with Nomad is slim (no offense to Nomad)

Edit: A bit of clarity in the first sentence

</comment></comment></comment></comment></comment><comment><USER5> I have been setting up something recently using k3s (more specifically k3d for k3s in Docker) and it seems great so far. I'm having to use k3d since I'm not in Linux but as soon as WSL2 is available then I can even get rid of the Docker part I think.

I like the idea of having a developer be able to play entirely with their own local infrastructure to get as close to production as possible.

A hosted service will definitely make this less painful but once you get up to speed with k3s then I doubt there is anything faster than using it.

<comment><AUTHOR> There are definitely some use cases where having a local-to-your-machine development environment is more suitable but, as you say, Krucible is easier to set up and comes with features that just running k3d doesn't, like snapshots. Our experience is that ensuring that developers are all running in the same environment is pretty valuable by itself.

</comment></comment><comment><USER3> This could be quite a handy service for throwaway cloud clusters. In the past I've used [https://labs.play-with-k8s.com/](https://labs.play-with-k8s.com/) but the availability on that service has been a bit spotty of late.

</comment><comment><USER6> How well is this suited to use in classes? We are searching for a good way to learn students cloud stuff (asw/azure/... but also kubernetes) without high $$$

<comment><USER7> I'm the CTO of msb.com, we're building a k8s learning platform, and are now expanding into a larger ecosystem of adjacent technologies, from CI/CD pipelines to istio and such. We regularly spin up hundreds of clusters on demand which are free to use. Feel free to try out the platform at learn.msb.com or contact me at mislav @domain

<comment><USER6> Thanks to both, right now we are having a hard time and lot of work with exams and end of semester but I will look into this in the summer months for next year. It would be really cool to give them a sneak peek ;) Thanks again!

</comment></comment></comment><comment><USER8> Looks neat. May I ask what the tech stack is?

</comment><comment><USER9> How does this differ from Kind and Rancher k3s? The Krucible snapshot feature seems neat!</comment>


Kickstarter accepts anti-gravity device campaign - <AUTHOR> http://www.kickstarter.com/projects/1887069385/a-silent-anti-gravity-device-can-now-lift-99-of-it?ref=category <comment><USER2> There is a goal of $15000, but only 400 slots of $25 available, which means best case scenario, he will be $5000 short...

<comment><USER3> Nice. Maybe he's doing a research project on how people fund things that are ridiculous, but doesn't want the possibility of accidentally really taking money from anyone.

Or maybe he's SO BAD AT MATH that he didn't realize.

</comment></comment><comment><USER4> I am not sure how serious Kickstarter is in regards of its review process. I submitted a project half a year ago - the website(<http://klekr.com>) was designed to help amateur photographers expand art taste by showing them photos taken by their favorite photographers as well as photos liked by their favorite photographers. A rep from Kickstarter rejected it claiming it's not a creativity project which Kickstarter is trying to focus on.

Now this antigrativity. Really? I mean really?

<comment><AUTHOR> Well, it certainly shows _creativity_.

</comment></comment><comment><USER5> To be fair, he isn't selling the device. He's basically asking for funding for an experiment. Why should he be removed from Kickstarter? If someone wants to throw their money down that hole they should be free to.

<comment><USER6> I'mma start a breathmint birth control kickstarter.

They'll be made with honey and you won't have any babies if you donate $25 or more. __

<comment><AUTHOR> Homeopathic asthma rescue?!

D-:

Photograph that and spread the photo far and wide. I'm asthmatic and I'm horrified.

<comment><USER7> google for safecare asthmacare.

Note that they are smart enough to put in bold print "not a rescue inhaler" but then there's a page or two of weasel words about "might" and "may" cause virtually any miracle a sufferer could desire.

They claim the bottle is BPA free but diluting the BPA actually makes the effect stronger according to homeopathic theory so I am not sure about all that.

</comment></comment></comment></comment><comment><USER8> I like his answer to the first question of the FAQ:

 _What evidence do you have that this actually works even though it defies the laws of physics?_

"You are going to have to spend some time figuring what I mean."

</comment><comment><USER9> I honestly want to know, who is his target audience? Does all of that talking in circles he does in his description really sound like science to an absolute layperson? More importantly, does he believe what he is saying? We'll probably never get the answers.

<comment><USER7> Whats odd about it is most psuedo-science involves magnets and conspiracy theories and this has neither. I can see a new fresh startup trying one at a time, but trying to innovate by giving it a go without both, seems a bit over ambitious. He really needs to add magnets and the CIA if he wants other alternative scientists to take him seriously.

He does have luminiferous aether, which is a plus.

Also don't waste your time on reverse image searches, I didn't find anything interesting.

On the other hand he is playing games with heat and calorimetry is notorious both semi-professionally and in psuedoscience land as being some hard to interpret stuff. So that is semi-traditional.

If you google him you'll find his G+ which has photos one of which is a scan of some UFO book.

<comment><USER10> Thank you for this analysis. "no magnets... no conspiracy theories". Priceless.

</comment></comment></comment><comment><AUTHOR> Spotted by antfarmer12 on Reddit /r/skeptic: [http://www.reddit.com/r/skeptic/comments/1ch8zd/a_kickstarte...](http://www.reddit.com/r/skeptic/comments/1ch8zd/a_kickstarter_for_an_antigravity_levitation/)

</comment><comment><USER11> Did a little bit of Googling about the person behind the Kickstarter and came across this: [http://scienceblogs.com/goodmath/2010/06/08/gravity- shmavity...](http://scienceblogs.com/goodmath/2010/06/08/gravity-shmavity-its- the-heat/)

Considering he couldn't (or wouldn't) even publish his results to arXiv makes me very sceptical about the merits behind his theory.

</comment><comment><USER12> I feel like the statement:

"Neither Einstein's fundamental premise that mass can warp space nor Newton's fundamental premise that mass can attract other mass can comprehend this easily repeatable table top experiment."

is the crazy person way of saying:

"This experiment disproves classical mechanics and relativity."

I'd be more apt to believe the crazy assertion if it weren't worded crazily.

</comment><comment><USER13> Kickstarter is probably hasn't finished reading his description. I could see that taking days.

</comment><comment><USER14> I don't see how this is "anti-gravity" - making something that floats isn't necessarily anti-gravity. He wants to create a microversion of a weather system, so I don't see how this is going to work beyond being a few cms over the ground.

</comment><comment><USER15> Is it me or is it just a metallic hot air balloon?

<comment><USER16> He has a FAQ entry about that:

> With my device I bring the "cold parcel of air outside the balloon" inside > my device.... The pressure difference between the the two parcels provides > the force that lifts my device. By being able to bring the cold parcel of > air inside my device two advantages are obtained over the hot air balloon. > First, my device is not restricted to only moving in the atmosphere as is > the hot air balloon.... Second, I am able to control how cold the cold > parcel of air can get. Thus a greater pressure difference can be obtained > which will in turn provide a much greater upward force.

Sounds to me like he's essentially hooking up a fan to a sail boat like in a Looney Tunes cartoon.

<comment><USER17> I think he's trying to describe a pulse jet with an external heat / fuel source?

<comment><USER18> I don't think he understands Brownian Motion.

</comment></comment></comment></comment><comment><USER19> I hope he publishes his results in the Journal of Irreproducible Results [1]

[1] <http://www.jir.com/>

</comment><comment><USER20> Maybe I can start a project "A simple angle trisection" or something like that.

<comment><USER21> The problem has already been solved: <http://goo.gl/NLdou>

<comment><USER22> Not the compass and straightedge construction. It has been proven impossible: <http://en.wikipedia.org/wiki/Angle_trisection>

<comment><USER21> I know, I was being facetious. I just like the thought of the campaign finishing and runn1ng posting each of his sponsors a $0.99 protractor.

</comment></comment></comment></comment><comment><USER23> Hypothesis: The thermoelectric effect is screwing with his force sensor.

</comment><comment><USER24> Reported to Kickstarter as "Miscategorized: Comics"</comment>


Ask HN: What are the best resources to learn basic HTML/CSS for a total newbie? - <AUTHOR>

A colleague (who isn't technical at all) is trying to understand better how what we do on the technical side works and has asked me for some references.<p>I've found several but I'm not sure if they're appropriate for someone with pretty basic or no knowledge of anything that is CS related. Is there any resource that has helped some of you in the past? <comment><USER2> I really liked the Webmonkey lessons, but that was a very long time ago, and I have no idea if the lessons they had are at all useful these days.

I've heard the Head First books are good for people who are pretty new to web development, but I have to say that their iPhone development book didn't work for me at all.

Ultimately, the best thing is to save a webpage that someone else made, and to then start tweaking it, and to compare the differences between the old and new versions (use multiple tabs). Then, begin to plan what changes you'd like to see, and see if you can change the page appropriately.

In Chrome or Firefox, the "inspect element" tool is really really useful.

Good luck to your colleague.

</comment><comment><USER3> I found this book by Duckett to be very helpful. It provides a good visual overview of the stuff you're learning. [http://www.amazon.com/HTML-CSS-Design- Build-Websites/dp/1118...](http://www.amazon.com/HTML-CSS-Design-Build- Websites/dp/1118008189/ref=sr_1_1?ie=UTF8&qid=1368456903&sr=8-1&keywords=html+and+css)

</comment><comment><USER4> I would recommend you codeacademy too for HTML/CSS. It is a pretty quick and easy markup language and presentational language. Both easy to learn if you really focus the learning on the code and what it does instead of the cool result you gonna get.

</comment><comment><USER5> This page on the codeacademy site:

<http://www.codecademy.com/tracks/web>

</comment><comment><USER6> <http://www.codecademy.com> is a great start for someone completely new.

</comment><comment><USER7> <http://learncss.tutsplus.com/>

</comment><comment><AUTHOR> Thanks for all the answers! I got a couple of friends to mention codeacademy as well...

</comment><comment><USER8> I recommend Head First HTML/CSS. It's what I used - great book!</comment>


Programming Challenge: Letter frequency - <AUTHOR> http://blog.p-jansson.com/2009/06/programming-challenge-letter-frequency.html

<comment><USER2> What can we learn from this challenge?

\- decide what your benchmark shall cover and what not (computation? I/O? startup time?)

\- publish compiler version and compiler options

\- if the benchmark involves disk i/o, start with disk cache in a defined state (full, empty)

\- avoid ambiguities in the specification ("case insensitive" -- but in which encoding? Latin-1?)

<comment><AUTHOR> Yes. It is always good practice to involve more than one person when defining specifications for anything.</comment></comment>


Here's everything Tesla has done to the Model S' software since 2012 - <AUTHOR> http://venturebeat.com/2014/06/08/heres-everything-tesla-has-done-to-the-model-s-software-since-2012/ <comment><USER2> "Creep Mode. This new feature mimicked the slight forward motion of a standard car when idling, and could be toggled on or off by drivers."

I'm curious why anyone would want this? My understanding (based on a few minutes of googling) is that "standard" cars creep forwards so that the engine stays running when neither pedal is down - but an electric engine doesn't need to do this. Is this just to make the Tesla seem more familiar to people used to "standard" cars, or is there a more useful reason?

<comment><USER3> If you are in heavy stop-and-go traffic you can slowly ease forward in a car with an automatic transmission (no idea if this works with a DCT) by letting up on the brake pedal, which is slightly easier and smoother than going brake- accel-brake.

The same force also keeps cars from rolling back on a hit between when you let off the brake and hitting the accelerator. Not sure if a Tesla would roll back in that case, some cars have "hill" features to prevent that rollback.

Edit: "standard"/manual transmissions will move forward in gear but they are not really meant to get going without gas and that would require a lot of effort on the clutch pedal to move in slow traffic without gas/brake. I think they misused the term "standard" and meant "car with conventional automatic transmission."</comment></comment>


Functional Programming Principles in Scala with Martin Odersky - <AUTHOR> https://www.coursera.org/course/progfun

<comment><USER2> Enrolled in current iteration and think it's good enough to finish.

A great excuse to learn Scala. A serviceable introduction to functional programming. Middle of the road in quality relative to other computing coursrs on Coursera I've taken. Work load toward the lighter end for a Coursera course focused on programming [among those I've taken]. Use of IDE encouraged. Use of SBT required.

Of note: assignment structure and IDE encourage and facilitate testing practices. Also for a later iteration of a programming course the discussion forum is very active.

</comment><comment><USER3> I would love to hear from someone who took (and completed) this class with no prior experience in Scala or FP.

<comment><USER4> I wasn't a fan of the course. For context, I've got a lot of experience in FP, but no experience in Scala. I took the course hoping to learn Scala.

The course didn't teach me Scala. I suppose if I was an FP beginner, I would have learned something, but not much. It had about the same depth in FP as my college Programming Languages course, except that course also covered a ton of other topics.

Part of how dissatisfied I was is because I took the course immediately after Dan Boneh's cryptography course, in which I learned a _ton_. I was very disappointed how little content was actually in the course.

<comment><USER5> There was very little content or you already knew fp so you didn't learn much?

<comment><USER4> I felt like there wasn't much content. Some of it was also very misguided, like having an Int => Bool set representation, and then having part of the assignment say "pretend the domain is limited to 0-10000 for this next part". It took 4 or 5 weeks to get to examples of using map. That just felt remarkably slow.

</comment></comment></comment></comment><comment><USER6> I did most of the course and was pretty new to FP. I have no plans to do Scala development, but the course did help me become a better programmer in the languages I do use.

I've been a developer for 10+ years but have been ignorant to FP. It just opened my eyes a little bit.</comment>


Information Security Materials Recommendations - <AUTHOR> I am looking for recommendations on good books, video tutorials or even articles on information security aspects such as: web exploitation, reverse engineering, binary exploitation, networking security.
PLEASE DO NOT RECOMMEND MATERIALS YOU HAVE NOT REALLY READ/WATCHED! THANK YOU!
Everyone can do a Google search and get the mainstream ones as a result. I am looking for really valuable materials, with good ROI, written properly or with really good information.
I am sure this can benefit a lot of people around! <comment><USER2> We've collected some a large list of cybersecurity training and education resources, available here: www.accesscyber.org. Good luck!</comment>


What should we learn from past AI forecasts? - <AUTHOR> http://www.openphilanthropy.org/focus/global-catastrophic-risks/potential-risks-advanced-artificial-intelligence/what-should-we-learn-past-ai-forecasts <comment><USER3> What I find interesting is that Hacker News manages to hold the same mentality that there's a startup bubble, _this time it 's not different_, while at the same time holding the mentality that AI is going to take over, _this time it 's different_ (in aggregate, I'm not saying everyone holds this view, this seems to be the plurality view).

Many of the same arguments used to argue how AI is different this time around are the exact same arguments you can use to justify that it's not a startup bubble this time.

My guess is something about the fantastical sci-fi aspect of AI captures the deep-seated imagination and wishful-thinking of many engineers, whereas the rush of money, business-people, and focus on sales/growth aspect of startups draws out deep-seated disdain from many engineers.

<comment><USER4> The reason HN probably thinks that with the startup bubble, this time it's not different, while with AI, this time it's different is because that's what the facts indicate and HN tends to be well informed.

The bubble is same old and it's debateable whether it even is a proper bubble or just some frothy valuations. Such periods of overvaluation have happened many times and will come and go.

The AI thing is quite different. If you accept the human brain is effectively a biological computer and that normal computers get more powerful every year then inevitably there's a point when they get more powerful (in terms of processing power and memory) than the biological ones. This is happening over the next twenty years roughly. No one said that is happening before. It's a one off inevitable event that will happen once and only once in human history, of a significance comparable to the evolution of multicellular life forms say. It should be interesting to see.

<comment><USER5> >If you accept the human brain is effectively a biological computer and that normal computers get more powerful every year then inevitably there's a point when they get more powerful (in terms of processing power and memory) than the biological ones.

That doesn't give you anything like the right algorithms to run on the computers. MOore's Law has been ending, so that free ride to avoid taking asymptotic complexity seriously is over.

</comment></comment></comment><comment><USER6> No! Be quiet and let me raise money via overfitting my datasets and making short demo vids!

More seriously though, even if there's a lot of undeserved hype (I don't think so, I just think non-technical people are making up foolish expectations), all this work and investment into technical development of statistical machine learning algorithms and software is going to pay off. Much in the same way that overinvestment in internet infrastructure during the dot-com bubble paid off.

<comment><USER7> > undeserved hype (I don't think so, I just think non-technical people are > making up foolish expectations),

That's what undeserved hype is and where it comes from..

> Much in the same way that overinvestment in internet infrastructure during > the dot-com bubble paid off.

Sure. The longer the hype can be tempered with articles like this, the more reasonable the investments, the bigger the pay off.

</comment></comment><comment><USER8> The difference this time is that 1) AI is profitable, and 2) everything is on a much larger scale.

As I've mentioned before, I went through Stanford CS in 1985, just as it was becoming clear that Expert Systems were not going to yield Strong AI Real Soon Now. Back then, AI research was about 20 people at Stanford, and similar sized departments at MIT and CMU, with a few other small academic groups and some people at SRI. There were a few small AI startups including Teknowledge and Denning Robotics; few if any survived. Everybody was operating on a very small scale, and nobody was shipping a useful product. Most of this was funded by the US DoD.

Now, machine learning, etc., is huge. There are hundreds of companies and hundreds of thousands of people in the field. Billions are being spent. Companies are shipping products and making money. This makes the field self- sustaining and keeps it moving forward. With all those people thinking, there's forward progress.

Also, we now have enough compute power to get something done. Kurtzweil claims a human brain needs about 20 petaFLOPS. That's about one aisle in a data center today.

<comment><USER9> >> Also, we now have enough compute power to get something done. Kurtzweil claims a human brain needs about 20 petaFLOPS. That's about one aisle in a data center today.

It's a bit late over here so what I want to say may not come out as I mean it, but, basically, who cares how much computing power we have? Most people are not trying to simulate the human brain anymore. And even if Kurzwail's maths were good (I doubt it - the whole idea of measuring anything about brains in bytes sounds just silly) it would just mean that all the computing power in the world is no good if you don't know how to connect the dots.

And we don't. Lots of computing power is good for machine learning, obviously, but strong AI is never going to happen like that, by brute-forcing crude approximations from huge data sets while pushing our hardware to its limits. That's a dumb way to make progress. Basic computer science says if you want to go anywhere with a problem, you need to solve it in linear time at the very worse. Look at what we have instead: machine learning algorithms' complexities start at O(n²) and go up. We just don't have good algorithms, we don't have good solutions, we don't have good anything.

We have "more powerful computers" today. So what. Today we solve the stuff that's possible to solve, the low-hanging fruit of problems. Tomorrow, the next problem we try to tackle is ten times bigger, a hundred times harder, we need machines a thousand times more powerful... and it takes us another fifty years to make progress.

So, no, it doesn't matter how powerful our computers are. We can't cheat our way around the hard problems. Because they're just that: hard. We're just gonna have to be a lot smarter than what we are right now.

<comment><USER10> > Today we solve the stuff that's possible to solve, the low-hanging fruit of > problems. Tomorrow, the next problem we try to tackle is ten times bigger, a > hundred times harder, we need machines a thousand times more powerful...

Nah, if you can't handle the huge amount of data, it's possible to just switch to a sparse model or do MC-like sampling. Take AlphaGo as an example for that - a huge state space, yet it was tractable to beat the human expert. That way the network doesn't scale linearly with the size of the domain being learned.

These kinds of solutions don't rely on improving the hardware. What is needed is datasets, competitions and grants to get people to try and improve state- of-the-art results on them. It's been demonstrated that when a good benchmark appears, a lot of papers follow and top results improve massively. Another useful component would be simulators for training agents in RL.

A promising direction is extending neural networks with memory and attention, in order to focus its work more efficiently and to access external knowledge bases. As we improve on these knowledge bases and ontologies, all we have to learn is how to operate on them.

Thus, improvements can come in various ways, by sampling, sparsity, external knowledge bases, better research frameworks, and improving the hardware (such as having a better GPU card or a dedicated device) is just one factor.

<comment><USER9> >> Nah, if you can't handle the huge amount of data, it's possible to just switch to a sparse model or do MC-like sampling... That way the network doesn't scale linearly with the size of the domain being learned.

That's useful when your domain is finite, like in your example, Go. If you're dealing with a non-finite domain, like language, MC won't save you. When you sample from a huge domain, you eventually get something manageable. When you sample from an infinite domain - you get back an infinite domain.

That's why approximating infinite processes is hard: because you can only approximate infinity with itself. And all the computing power in the world will not save you.

>> It's been demonstrated that when a good benchmark appears, a lot of papers follow and top results improve massively.

Mnyeah, I don't know about that. It's useful to have a motivator but on the other hand the competitions become self-fulfilling prophecies, the datasets come with biases that the real world has no obligation to abide by and the competitors tend to optimise for beating the competition rather than solving the problem per se.

So you read about near-perfect results on a staple dataset, so good that it's meaningless to improve on them - 98.6% or something. Then you wait and wait to see the same results in everyday use, but when the systems are deployed in the real world their performance goes way down, so you have a system that got 99 ish in the staple dataset but 60 ish in production, as many others did before it. What have we gained, in practice? We learned how to beat a competition. That's just a waste of time.

And it's even worse because it distracts everyone, just like you say: the press, researchers, grant money...

Well, OK, I'm not saying the competitions are a waste of time, as such. But overfitting to them is a big problem in practice.

>> A promising direction is extending neural networks with memory and attention

That's what I'm talking about, isn't it? Just raw computing power won't do anything. We need to get smarter. So I'm not disagreeing with you, I'm disagreeing with the tendency to throw a bunch of data at a bunch of GPUs and say we've made progress because the whole thing runs faster. You may run faster on a bike, but you won't outrun a horse.

(Oh dear, now someone's gonna point me to a video of a man on a bike outrunning a horse. Fine, internets. You win).

</comment></comment></comment></comment><comment><USER11> One of my favorite comic artists put it more appropriately than I could - <USER2> the form of a flow chart: [http://www.smbc- comics.com/index.php?id=4122](http://www.smbc-comics.com/index.php?id=4122)

TL;DR - once strong AI arrives, we're as good as dead. ;-) Can't argue with a flow chart!

</comment><comment><USER12> I remember reading the famous book by McCorduck and Feigenbaum about the Japanese fifth generation project in the early 1980s. That book had a strong influence on my career and I recall that I resolved to become an AI expert. As it happened, it turned out that the Japanese fifth generation project achieved pretty much nothing.

<comment><USER13> I think it was Bruce Porter in an AI class at UT Austin who described the fifth generation project as "we need to do machine translation and planning and...so therefore we will build a Prolog machine."

<comment><USER14> Some of the decisions made were considered strange even at the time: the choice of Prolog instead of Lisp seemed to be largely down to it not being American. The main hardware they wanted to develop was dataflow, for which Prolog isn't a particularly good match.

</comment></comment></comment><comment><USER15> Our bar for achieving true Artificial Intelligence is set way to high in my opinion. This talk from CCC 2015 is very relevant [https://www.youtube.com/watch?v=DATQKB7656E](https://www.youtube.com/watch?v=DATQKB7656E)

<comment><USER7> lol, yes it is. Can't believe you're being downvoted on HN. Just shows how hyped it is. People can't handle disagreement.

This video looks good to me from the intro. I'm going to check it out. Thanks!

</comment></comment><comment><USER16> "That we don't know what the hell we're talking about."</comment>


Cablegate: Microsoft spied for USA - <AUTHOR> http://www.cablegatesearch.net/cable.php?id=06CARACAS1778&q=microsoft%20venezuela

<comment><USER2> The cable says " Microsoft's General Manager, Gonzalo Fernandez (protect), showed EconOff an internal PDVSA memo which claimed that all U.S. software companies had a "back door" mechanism whereby the U.S. government could at any time access information, citing the supposed CALEA Law (United States Law of Assistance in Communications for Security Systems)." This seems fishy to me

<comment><AUTHOR> Many different things on that are fishy... The claims that the Microsoft GM did are at the very best, completely inexact.... But the thing is, Microsoft got access to internal documents of one of the biggest foreign companies in the world, and went to the USA embassy with that information. Scary -and illegal-.

<comment><USER3> What is illegal about it? That's wasn't made clear in the memo.

<comment><AUTHOR> Those internal documents are property of PDVSA; it even say so in each of those internal documents, that the information is confidential and property of PDVSA. Microsoft is not legally allowed to get the memos -which is not clear if they did through backdoors in the software or just with spies inside the company-. And of course, is not allowed to pass/use that information.

<comment><USER4> > Those internal documents are property of PDVSA; it even say so in each of > those internal documents, that the information is confidential and property > of PDVSA

I have no idea about Venezuelan law, but in the U.S., that's more of a statement of intent than a legally dispositive statement. Try this google search:

[http://www.google.com/search?q=this+document+is+confidential...](http://www.google.com/search?q=this+document+is+confidential+and+proprietary)

Am I breaking the law by reading those?

A search for "internal PDVSA memo" shows that journalists inside and outside Venezuela have published information from them before, so maybe the law is not so different there.

> which is not clear if they did through backdoors in the software or just > with spies inside the company

Well, probably somebody emailed it to him with a comment like "Is there any truth to this?" or "Any comment?" or "You might be interested in this." I suppose you could call them "spies", but I doubt they got compensated for it!

</comment></comment></comment></comment></comment><comment><USER5> "According to Microsoft, no government in the world has successfully used Linux for large operations (Brazil and Cuba reportedly attempted this, but then abandoned the effort)."

:)</comment>


Why Veronica Mars embraced UltaViolet and angered fans - <AUTHOR> http://www.techhive.com/article/2108800/why-veronica-mars-embraced-ultraviolet-and-angered-fans.html

<comment><USER2> > If you're a fan of both Apple and Veronica Mars who wants to watch your > Kickstarter reward on the TV, using the Flixster or Vudu apps for the > PlayStation or Xbox might be your best bet.

No, your best bet is just download it on BitTorrent. If you have a legal right to it what difference does it make how you get it?</comment>