JavaScript as default language and software stack - <AUTHOR> http://blog.andreipolmolea.com/you-should-choose-javascript/ <comment><USER2> I disagree with some of your points. We tried writing a big web app in JavaScript, and we were extremely sad to see how hard it is to maintain JavaScript code. I like IDE support as well, and JavaScript provides terrible type inference, clear defined structures and other things needed to get it right. People argue that there is Definitely Typed and other things that provide type interfaces for libraries, but it kinda reminds me of header files in C/C++, because it's not defined _with_ the code. We ended up using Dart because of it's interesting take on Web Development (It doesn't just give us the DOM APIs, it improves them and does the polyfilling and that stuff for us). We have been doing this for multiple years and have had a great success. Also, I have strong opinions about JavaScript, including that it looks like a monkey made it, and that someone literally took all the bad things from other languages and put them together. All in all, it's a matter of preference. I've always gone against the crowd too (I think React is just meh, which is not popular), so there is that.

<comment><USER3> Though I like React, I agree with the rest of your points.

I've done small-ish projects in Node. There's tons of ways to do JavaScript that your IDE's static analyzers will not like. If you use IIFEs extensively, most of it will not be auto-completed for you. Needeless to say, same thing goes for function signatures -- good luck quickly getting through the parameters and their order (note: it's possible this has changed in the last 12 months).

I like JS well enough -- the functional aspect of strings, arrays, etc. But IDE support is lacking and it makes it hard to retain control as the codebase grows.

</comment></comment><comment><USER4> It's a matter of opinion. If you get used to strongly typed languages, the idea of having your entire application in something barely typed like Javascript feels horrifying. I may be able to tolerate Javascript-with-a- typesystem (for instance, typescript), but raw JS? I don't see why you'd ever want to do that.

<comment><USER5> I think part of the author's point is that JS has now achieved so much critical mass, so to speak, that in the not too distant future it's just going to be _the_ programming language. Being a programmer will be synonymous with writing JavaScript. So it doesn't really matter how you feel about JS per se; it's the language all the tooling will be built around, it's the language young programmers will have learned in school, it's the language that the people who cut the checks will assume by default you'll be using. So justifying using anything else will be an increasingly difficult uphill struggle as you fight against all these factors.

<comment><USER6> > that in the not too distant future it's just going to be the programming > language. Being a programmer will be synonymous with writing JavaScript.

 _chortle_

Not so long ago they were saying the same about Ruby, and Java before that, and so on down a long and winding history of ludicrous one-language-swallows- the-world predictions.

<comment><USER7> > Not so long ago they were saying the same about Ruby, and Java before that, > and so on down a long and winding history of ludicrous one-language- > swallows-the-world predictions.

In this case it's not so much a prediction as an observation of what has already been happening.

<comment><USER8> There is a language that has largely taken over the "not compiled" segment but it's not JavaScript it's python.

It's _everywhere_ at this point.

<comment><USER7> It's not in my browser. It's not in Nginx. It's not not in my database (Couch). JavaScript is.

<comment><USER6> It might be hard to believe, but the browser is not the be-all and end-all of software.

I'm starting to think theres a JS Bubble forming, inside which people who only ever touch JS and nothing else proclaim that the world and the moon are made entirely of JavaScript.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> "This is not likely to change in the next couple of years while waters still settle. But generally the downsides of using JavaScript are fewer and fewer."

"Give the community time, and they will come up with solutions to most things that are considered impossible today."

Okay, so JavaScript will be better/awesome in the future. I still don't see why my next project should be in JavaScript.

Every time I try to get into full Javascript, I come across so many things that feel half-baked that I decide to wait it out some more and go back to the tried-and-true tools.

<comment><USER10> Can you please enlighten us and name some of those "half-baked" features you frequently encounter in the language?

<comment><USER9> It isn't the language itself. I actually like ES2015 and I'm looking forward to improvements. It is digging through NPM trying to find a decent library. It is trying to reconcile versions of node. It is the feeling that everyone it trying to follow the latest hotness.

I think that there will eventually be an abandoned javascript library for every noun, verb, and adjective in the English language.

<comment><USER10> So you're having issues with a few components of the ecosystem, why are you taking it out on the language itself?

npm modules are not an integral part of the language. It's just an optional add-on that you might explore on your own to get work done for you more easily and more efficiently.

If you're lucky and found a module that fits the bill perfectly for a given project, that's awesome. If not, that's fine too. You can either fork the module and extend it as you like or build a new one from scratch.

I don't know why you would expect to find npm modules that can get the job done 100% for you and all the time?

That's a totally unrealistic expectation and unreasonable.

If everything that we devs need is ready-made and our jobs relegates to only gluing stuff together like entry-level technicians, don't you think that would be detrimental to our profession as a whole as it would be a few clicks away for a bot or an algorithm to automate our jobs away?

<comment><USER8> > I don't know why you would expect to find npm modules that can get the job > done 100% for you all the time?

Get the job I'm doing done 100% of the time, do the job they are supposed to do 90% of the time I'd like that, constant version churn, API changes, strange incompatbilities between things that are supposed to work together not to mention stuff like browserify/watchify which when they work are great and when they don't a complete _pain_.

Also makes me chuckle whenever it throws a ENOENT not because I don't know what it is but that a high level original browser dependent language is throwing it and not "No such file or directory" or _anything_ friendly.

npm/node reminds me of the implementation of a server side scripting language implemented solely in JavaScript written by people who have only ever heard other server side scripting languages described to them on a broken radio.

<comment><USER10> Again you're lashing out at JS due to your experience with node or npm which none is part of the language itself.

That's like someone after ordering a regular Big Mac meal (burger + fries + soda), he complains that the dessert portion of the meal either sucks or there are too many options available and some are not optimal enough when actually there was no dessert included in the meal in the first place.

Can we get real for a moment here?

 _npm /node reminds me of the implementation of a server side scripting language implemented solely in JavaScript written by people who have only ever heard other server side scripting languages described to them on a broken radio._

'Everyone is entitled to his own opinion, but not to his own facts.'

<comment><USER8> 'A witty saying proves nothing.' \- Voltaire.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> > Turns out, the amount of work that has gone into making JavaScript awesome > surpasses every other language.

I still don't see a Ruby on Rails, Symfony, Spring etc.-like framework for JavaScript in terms of maturity. Sure they are some frameworks, however most of them crash and burn when you want to upload a 1GB file or parse large JSON data arriving via HTTP... or try to extend it.

And I didn't even mention NodeJS's multiple loading and memory limit problem.

</comment><comment><USER12> The hard part isn't implementation or building; it's requirements and design. If JavaScript as a default language and software stack gives me more time to design and gather requirements, then hell yes let's do more of it. If it doesn't, well it's about as good as other languages and possibly more dangerous (yay for lack of types -_-)

</comment><comment><USER13> C# dev here. Coming from statically typed language + dynamic support it just doesn't make any sense to switch to full dynamic.

<comment><USER7> Back when I did C# I found trying to do functional stuff painful. Maybe it's gotten a bit better, but I recall creating functions being something like

      new Func<int> => { stuff here .. }

Or something like that. I found moving to dynamic languages to be a breath of fresh air. I never cared too much about code completion and stuff like that.

<comment><USER14> Lambdas and LINQ has made this much simpler:

var foo = (param, anotherParam)=>{ /* do stuff */};

<comment><USER15> Except that this is not working. You have to explicitly type lambdas if you assign them to local variables(or to properties, fields). But I don't see it as big trouble though.

<comment><USER14> Whoops, you're right. Most of the time I'm using them for LINQ filters or maps, or doing quick and dirty event handler delegates. So basically JQuery- esque usage, except with types.

</comment></comment></comment></comment></comment><comment><USER16> Not sure if trolling but... If not trolling, you should always learn how to evaluate what language will be the best tool for the job. If anyone's choice of what language to use is based on a blog post that says "You should use JS" then language choice might be the least of your worries. I'm aware of core contributors of one of the hot new JS frameworks that are swapping out pieces of the back end JS tech for Golang because it makes sense! So this isn't just me pulling nonsense out of a hat.

That said, should you learn JS? Hell. Yes!

<comment><USER17> Which hot new JS framework, and what part?

</comment></comment><comment><USER18> It seems the author forgot to mention one area where server side (read NodeJS/io.js) JavaScript really sucks: debugging.

It's incredible slow to start a debugging session, making you feel miserable. See open issues like [https://github.com/nodejs/node/issues/877](https://github.com/nodejs/node/issues/877)

Instead of arguing in favor of JavaScript as the default language and software stack we should focus on a standard VM to use the language and libraries we prefer.

</comment><comment><USER19> The IOT argument is specious and betrays a lack of understanding the challenges in connecting devices; specifically, the choice of controlling language begins at a lower level of the stack. New languages will arise, but they will be statically typed and speak protocols like LonWorks. Don't confuse hobbyist kits that are well suited to JS for actual, useful-in-production programming stacks for IOT.

<comment><USER2> My company works on an IoT Platform for connecting services and devices together, and I agree. We have found that JavaScript is a poor choice to target. We focus on a language-independent structure. In the real world, nobody is using JavaScript to power anything useful on small devices, it just doesn't fit well with an embedded system.

</comment></comment><comment><USER20> This starts with the blanket statement that you should always use javascript when starting a new web project and then follows up with two examples of using javascript in non-web environments.

While I agree that Javascript has matured a lot, and it has its place in the backend, I strongly disagree that it should always be used. We need to give thought about why we're using it and make it a conscious choice. It can be that its a single language on the frontend and backend. It can be the abundance of developers. It can be it's evented nature. But blindly making a choice without thought leads to a cargo cult mentality.

Additionally, there is no replacement to backend code. We may one day have good enough abstractions to allow us to mostly forget about the backend, but it will still be there. Bugs will arise where we need to understand how it works, and there will always be some sort of API (whether hidden or not) that we need to be mindful of. The web is a client-server system, and we can't forget that.

<comment><USER21> "Default to JavaScript" is not "use JavaScript".

<comment><USER20> Yes, I agree, if I "Default to javascript" then I'm evaluating options and picking Javascript in the absence of a clear choice.

However, if I "Always default to javascript" then I'm picking Javascript without evaluating any other options.

</comment></comment></comment><comment><USER22> Everybody's fighting about why JS sucks... We know JS sucks. We've ALWAYS known JS sucks. It's not a good language. It's the new PHP. And it will _never_ be good enough to make us all happy.

But you know what? It works... _well enough._ It's fast... _enough._ It's simple enough that mere mortals can use it. (Which is a strength, not a weakness!) And now, it works EVERYWHERE. You can get shit done with JS and having good JS experience means you can always find work. Maybe one day I'll work on a magnum opus requiring a "real" language but for now, I'll stick with what gets the work done. Because I'm not a rocket scientist, I'm more like a computer plumber. And I bet most of us fall into that category.

I don't have to like it. But I do have to get stuff done. So I use JS.

<comment><USER23> I want to enjoy the programming language im working with though. I don't enjoy js, but thats where all the work is! makes me sad

</comment></comment><comment><USER24> I love when the satire just beats you over the head.

</comment><comment><USER25> > it will be the standard language for mobile apps.

For second-class mobile web apps, maybe. But for high-performance native mobile apps that don't waste battery life on interpretation or JIT compilation, plus the overhead of bridging to the native APIs, a dynamically typed language like JavaScript is a bad fit. On iOS, Objective-C has always been compiled ahead-of-time to native code, and so is Swift. Android 5.0 introduced AOT compilation with the Android Runtime. And Windows Mobile has it too, with both C++/CX and .NET Native. Conclusion: All three major mobile platforms prefer AOT compilation, which AFAIK isn't feasible with JavaScript.

</comment><comment><USER26> I do not agree.

1) Web Assembly will make the programming language you use on the front-end an open choice in web development (and, eventually, mobile). Javascript has very poor support for disciplined management of large codebases, and will eventually be abandoned for more sane languages.

2) Technologies like intercooler.js ([http://intercoolerjs.org](http://intercoolerjs.org)) will minimize the amount of javascript necessary for the majority of web development (and, eventually, mobile) which will allow you to simply choose the best back end technology for your project without concern for matching a front-end language.

</comment><comment><USER27> TypeScript is probably a better long-term programming tool and is aligned with future EMCA Script specifications.

Back-end I'm torn. I love Restify (Express without the web parts and just the api parts). But I also like ASP.NET Web API a lot too. They both have sizable benefits.

I think it's less about language though than architecture. Microservices and user-driven UX is the future along with stakeholder-driven agile project management.

</comment><comment><USER28> Ahah, nice joke :)

</comment><comment><USER29> Hi, my name is __________ and I'm a mediocre programmer.

I've just kicked off the first 2 weeks of a significant project using only Javascript. This was entirely my own choice. I knew I'd have to write a lot of JS in the browser. So it made sense for me to bite the bullet and try to become as good as I could at JS. Equally I had to make a choice that I believed would work for my client in the medium-term, especially if I was not able to continue with the project at a future date.

This is my perspective (from the intellectual gutter): Javascript is hard to read and hard to reason about. It's also hard to achieve a style that I am entirely comfortable with. It's changing very fast. You learn things on the backend that are years from being universally useable on the frontend. Also: I seem to write _so many lines of code_.

That said I think I made the right choice. Ultimately the isomorphism argument is correct: at least I'm reasoning about the same kinds of things every day. I just came off 6 months of programming only Elixir and I could have used Phoenix for the backend, but I think I would have found the constant shifts in perspective very disruptive.

Which leads me to my main point: It isn't about the language.

After all, multi-threaded programs in a more conventional language are also very hard to reason about. Shared data is hard to reason about. Immutable data is also hard to reason about (or rather its consequences are hard to reason about). Message passing can also become hard to reason about. Pointers are hard to reason about. Functional composition starts out simple and then...you guessed it: it gets hard to reason about. Once things get to a certain level of complexity, once you get using anything to its full potential you find the place in which it's going to make your head hurt.

And for the plodders among us the answer is: libraries and patterns. Specifically, other people's libraries and other people's patterns.

So my recommendation to anyone that doesn't like Javascript: if you don't have to JS, don't. If you do, at least enjoy the good things:

* Promises: One of those things you only appreciate by trying to do it _the other way_ : [http://callbackhell.com/](http://callbackhell.com/) * ES6: a lot of great features here. Makes an Elixirite feel almost at home: destructuring(pattern matching), arrow functions, generators and iterators * Libraries: Amazing number of libraries. I have barely had to code one really smart thing myself. * JSON: Think in JSON all day - now that's nice. Serializing things to Lists, Maps, Tuples and what have you gets old.

And also read books:

* David Herman: Effective Javascript * Marijn Haverbeke: Eloquent Javascript * Daniel Parker: Javascript with Promises * Douglas Crockford: Javascript, The Good Parts (well actually I found this one hard to reason about :) )...

<comment><USER28> Nice ending ;-)

</comment></comment><comment><USER30> don't waste your time doing thing big in javascript.</comment>


Army called in to help with London Gatwick airport drones problem - <AUTHOR> https://www.theguardian.com/uk-news/2018/dec/19/gatwick-flights-halted-after-drone-sighting <comment><USER2> Anti-drone drones with nets to tangle the propellers, that's what you need

</comment><comment><USER3> 69+ comments here [https://news.ycombinator.com/item?id=18723383](https://news.ycombinator.com/item?id=18723383)</comment>


Timesplice 3D Effect Examples - <AUTHOR> http://www.timesplice.com.au/film-producers.html

<comment><USER2> "Quick Time required."

Oh well, I guess I miss out.</comment>


Inside the prison system's illicit digital world - <AUTHOR> http://fusion.net/story/41931/inside-the-prison-systems-illicit-digital-world/

<comment><USER2> What is the point of prison if we can't keep guards from smuggling (drugs|cell phones|weapons|information), or prisoners from beating and raping each other, etc?

Prisons are some of the least secure environments in the world. They do not rehabilitate, nor do they effectively punish - violent criminals thrive so long as they are more violent than the next guy and able to buy the guards.

People are talking about radio jammers and Faraday cages. As part of a defense-in-depth strategy, maybe. But _if we can 't stop corruption among prison guards_, if we can't expect even basic professionalism, what is the point? I don't want to be subsidizing the creation of a paradise for the most powerful violent criminals to rule over people who lost their way while poor. I don't want to be subsidizing something that fails spectacularly at _everything_ it might be construed as trying to do, except make money for contractors.

We are doing something horribly wrong. Maybe we need to replace guards with a small handful of well-paid professionals in a heavily monitored, regularly audited control room. At least electronic locks and cameras can't be corrupted as easily. Maybe we need shorter sentences served entirely in isolation - there seems to be nothing good about the social life of prison. Maybe we should give up on the communications ban and let them Skype their families and browse Reddit all day - who can they really hurt that way? Maybe we should make prison more or less like day-to-day life, except that you can't leave. I don't know, but it seems like _anything_ other than the status quo is worth trying.

We _definitely_ need to incarcerate fewer people, though.

<comment><USER3> Prisons are a dark and sad place. the guards inevitably turn into monsters that treat the inmates as subhuman, and the inmates develop all kinds of mental issues from being locked in a cage 24/7\. Putting a person in a cage is a horrifying act. It's a relic of the dark ages that has no place in an enlightened society. Reforming the prison system ultimately has to be about turning prison into a place of rehabilitation instead of punishment.

</comment></comment><comment><USER4> One very interesting paragraph from the article:

"Managed access systems can cost more than a million dollars apiece to install. But some prisons have found a way to lower the cost by partnering with outside vendors. In California, for example, Global Tel _Link – a private company that operates phone systems at many state and federal prisons – installed managed access systems in correctional facilities at no cost to the state, as part of a five-year exclusive contract. (Which makes sense: Global Tel_ Link believes it will make more money from pay-phone fees if inmates' wireless access is cut off.)"

Fascinating that one of the companies involved in helping to cut off inmate cell phone use stands to make a profit from their activities. I have many gripes with the American institutional prison system, and this is just one small slice of the corruption that drives it.

</comment><comment><USER5> Seems like prisons would have enough clout to get an exception from the FCC to run a radio jammer. This would also help stop the problem of drones carrying stuff into prisons. Surely jammers are selective enough to not interfere with guards' radios. My other thought was metal paint everywhere to act as a Faraday cage, but this wouldn't work when inmates were outside, and would interfere with guards.

<comment><USER6> Jammers are not selective at all - they basically DoS a local area with a signal that makes it so a particular range of devices cannot receive any data due to the jammer being closer/more powerful than whatever device they normally would be able to reach.

<comment><USER7> *On a particular frequency band.

You can have guard radios talking on another band.

<comment><USER8> So then people just switch the settings/models of radios being smuggled.

<comment><USER7> Perhaps, I didn't know they were smuggling radios.

</comment></comment></comment></comment></comment><comment><USER9> Meanwhile in Germany failed attempts to bring in a phone (and drugs) through drones were caught

(Link in German) [http://www.spiegel.de/panorama/hamburg-drohne-mit-drogen- stu...](http://www.spiegel.de/panorama/hamburg-drohne-mit-drogen-stuerzt-auf- gefaengnis-a-1014660.html)

</comment><comment><USER10> Why don't they implement their own local, monitored, cell network. They could still charge for minutes and data, but control what can be accessed and also monitor communications. Disney cruise ships have something similar called a 'wave phone'.

</comment><comment><USER11> Do prisoners typically have access to power outlets? This seems like an easy way to curtail the problem.

<comment><USER12> Inmates do the actual day-to-day work to maintain the prison and its population, such as cooking, vacuuming, laundry, etc. Those often require access to electricity to perform, and guards cannot be everywhere at once.</comment></comment>


There's no good way to kill a bad idea - <AUTHOR> https://qz.com/966006/theres-no-good-way-to-kill-a-bad-idea/ <comment><USER2> The article demonstrates a specific way that "bad" ideas can become more deeply ingrained.

I am mildly agnostic towards the amount of contribution man is making towards temperature change, I've read reasonable people with various opinions on it. I consider myself an environmentalist, I think the clean air act was a good thing and I am fine with government regulations around the environment, since it is a commons towards which we have an intergenerational stewardship relationship.

However, when I see skepticism towards man-caused climate change lumped in with believing in lizard people, I can feel myself _physically_ becoming more dug in in my skepticism.

This is not rational, of course: it's a "yeah, well fuck _you_ " reaction. And perhaps it reflects poorly on me. Certainly it will earn me no karma here, nor among the people I usually associate with. But, nonetheless, it is a phenomenological reality, pushing me more deeply _into_ what the author considers a bad idea.

 _> Once a view is popular with the general public, or just within your own 'tribe,' it takes a lot of courage even to question it to yourself_

Indeed. One wishes this criticism was raised more frequently to self- criticism.

<comment><USER3> > However, when I see skepticism towards man-caused climate change lumped in > with believing in lizard people ...

As it should be. It should be viewed as even worse. The lizard conspiracy people aren't destroying our planet.

<comment><USER4> There's three things wrong with this:

\- you're failing to heed the warning that demonising your opponents makes them further entrenched in their position. If you're trying to save our planet by persuading climate change skeptics, you should stop doing that.

\- You're equating the plausability of the lizard conspiracy to the plausability of climate change being man-made. Don't, because they're not equally implausible, and it's counterproductive.

\- Your argument that climate change skeptics are destroying the planet is only true if climate change is indeed man-made, and therefore has no relevance to the determination of climate change's existence and causes.

<comment><USER5> > Your argument that climate change skeptics are destroying the planet is only > true if climate change is indeed man-made

Even if climate change is man made (and I believe it is), the argument is only true if the _predicted dire outcomes of climate change in the predicted timescales_ are also true (this I'm not as convinced of). There are likely currently unknown variables that will retroactively devalue the predictive strength of our models one we observe how the future _actually_ is vs. the predictions.

Also, skeptics aren't destroying the planet any more than non-skeptics - everybody still drives cars, eats meat, and uses electricity.

It can be argued that skeptics are hindering government policies that could help mitigate negative effects of climate change, but so far the policies I've seen proposed would have a near negligible effect other than making us feel good for doing something.

</comment></comment></comment></comment><comment><USER6> Edit: My point is that killing an idea is necessarily hard, because ideas automatically have moral superiority over humans. We as humans must intentionally choose to endorse certain ideas which serve our interests, and we must do so knowing that we are indelibly influenced by those same ideas.

Pirsig, from Lila:

"Just as it is more moral for a doctor to kill a germ than patient, so it is more moral for an idea to kill a society than it is for society to kill an idea."

Persig elaborates, explaining how e.g. civil rights in the USA are an example of an idea coming to kill off a societal practice (racism) in favor of an idealized society (post-racist egalitarianism).

Hofstadter, from GEB:

"It is not such a bad image, the brain as an ant colony! ... It is not such a bad image, the brain as an ATN-colony!"

In this section, Hofstadter explains that the brain could be viewed analogistically to symbol networks, and explores how individual symbols could exist in many different contexts but are nonetheless coalesced in meaning when doing actual computation.

Similarly, ideas are like symbols in the network of humans, and the computation carried out by humans communicating in their daily lives automatically gives rise to higher-level idea networks which use humanity as a substrate, not unlike how Hofstadter's anteater perceives the intelligence of an ant colony on top of the individual ants in the colony.

A final tweet [0]:

"Nobody _likes_ hearing that they are merely an idea-forge, a virus-hold for memetic mutation, a propagator of the idea-marketplace, do they?"

[0] [https://twitter.com/corbinsimpson/status/733424172651581441](https://twitter.com/corbinsimpson/status/733424172651581441)

</comment><comment><USER7> [http://rationalwiki.org/wiki/Backfire_effect](http://rationalwiki.org/wiki/Backfire_effect)

[https://youarenotsosmart.com/2011/06/10/the-backfire- effect/](https://youarenotsosmart.com/2011/06/10/the-backfire-effect/)

What should be evident from the studies on the backfire effect is you can never win an argument online. When you start to pull out facts and figures, hyperlinks and quotes, you are actually making the opponent feel as though they are even more sure of their position than before you started the debate. As they match your fervor, the same thing happens in your skull. The backfire effect pushes both of you deeper into your original beliefs.

<comment><USER8> > you can never win an argument online

This is true online and it's true in person. As you said even if you "win" by getting the other person to concede, the net result is often that they are more walled into their position than before.

I've come to believe the real issue is that you should not be trying to "win" a discussion in the first place.

Rather, you should assume (or at the very least pretend) for the moment that their position is justified and they are "right". Under that presumption, ask questions and allow them to elaborate on their position. In short, instead of talking, listen without judging until you really, truly understand and have acknowledged and accepted their position.

At that point you have a tool very few people ever acquire in a discussion. You have the ability to frame your argument in their terms.

Now, that doesn't mean you will convince them you are right and they are wrong, but it does mean they are going to be far more likely to listen to you and consider what you've said more fairly than if you had simply bombarded them with facts and figures, i.e. "logic".

<comment> vertex-four Or, in other words, "have conversations, not debates". It's surprising how many otherwise smart people don't realise that only a very, very small minority actually enjoys debating.

</comment></comment></comment><comment><USER9> _"Once a view is popular with the general public, or just within your own 'tribe,' it takes a lot of courage even to question it to yourself," says Blackford. For example, just 50 years ago, homosexuality was banned in many western countries. "It would have been a very brave person to put their hand up and say, 'There's nothing wrong with being gay.'"_

And there you have it. The absolutes slither and shift. One generation's unquestioned truth is another's indisputable anathema. Today, it would take a very brave person to put his or her hand up and say, "There's something wrong with being gay".

<comment><USER10> in Blue America, yes. In Red America, no.

social cohesion (or lack of it) and ideological balkanization has dramatically intensified lately.

</comment></comment><comment><USER11> Here is the funny part. This article is a bad idea and it now can't be killed.

Turtles all the way down.

P.S. If you believe you are the rational one and that other people are irrational, you are acting irrationally.

<comment><USER12> Interesting postscript you have there. If I can predict the irrational actions of other people, can I not be rational?

This certainly appears to happen frequently in the stock market, when only a few people will be rational while the hordes are irrational (e.g. market tops and market bottom being the most visible points of this behavior).

</comment></comment><comment><USER8> I suppose it's in the title, but I was disappointed the article doesn't even attempt to provide some solutions.

The one proposal the article makes is poorly thought out.

It's become clear that in today's political culture ignoring or dismissing bad ideas without properly addressing them with at least feigned respect pushes the on the fence population into echo chambers where the idea can be confirmed as good, e.g. anti-vaxxers, flat world believers, etc...

<comment><USER13> I think you might find some solutions in a great negotiation book called "Never Split the Difference". Written by a former hostage negotiator. If you can negotiate with someone who thinks they are the Messiah and has a gun you might stand a chance online.

The problem is negotiation requires care and a lot of work. It's hard. And in public forums others will probably mess up your progress.

My best guess in a public forum would be to play the "good cop" and quote and defend the person I wanted to persuade. And while looking like I'm defending them, and being their friend, I would put forth an idea that is more moderate and thus move them towards being persuaded. This would be hard to do in the chaos of an online forum like HN or Reddit though.

<comment><USER8> Thanks I'll have to check out that book.

I agree, a public forum really complicates the issue.

</comment></comment></comment><comment><USER14> Yep, we still believe in the humors theory of medicine. In fact, there is a popular app to help remind people to get their blood drained regularly. There are also billboards reminding everyone that washing your hands is a waste of water. We also believe that the sun rotates around the Earth. As such, since we are the center of the universe, everyone laughs at the crackpots who suggest that we would ever want to travel to other planets or even the moon. /s

Of course, there has been a good way to kill ideas - evidence with real world effect and patient engagement of naysayers over time. It makes me sad as from the 1500s - 1900s we had so much invention and progress and revolutionized people's thinking about the world, and we the heirs of all of that despair that we can't get rid of bad ideas. If so, the fault lies with us, and this fatalistic view is a bad idea that needs to be killed.

<comment><USER5> > We also believe that the sun rotates around the Earth.

Is it possible to prove that the sun _doesn 't_ rotate around the earth other than saying "the supporting mathematics are much, MUCH easier if the earth rotates around the sun"? From a relativistic perspective, couldn't you define the earth as being still and everything else as moving relative to it?

<comment><USER15> What do you mean by "prove"? Yes, you can define the earth as stationary, but if you're taking that definition seriously – rather than just doing it to make the math easier within that frame of reference, or for rhetorical purposes – if you're taking it seriously then you've got a whole host of implications that you have to explain. For example, why is Earth stationary, with the sun rotating around it, while all the _other_ planets rotate around the sun? Given what else we know about gravity, how do you account for the sun with its huge mass orbiting the relatively tiny mass of Earth?

One response is that you throw _those_ "known" things out as well, and so on down the rabbit hole.

We prefer theories to be coherent with the rest of our knowledge. Depending on the extent to which you're willing to dispense with that – and to dispense with a huge number of claims we take as settled – sure, you can choose to hold on to basically any view. The question is why you're holding on to that and throwing out the rest.</comment></comment></comment>


Using machine learning to estimate lost demand in a fulfillment chain - lil-scamp https://tech.instacart.com/modeling-the-unseen-6a51c9a02430?gi=2b1c2c2c8646 <comment><AUTHOR> It's censored data. Statisticians have been working with that for at least half a century. All they've done is reinvent the wheel, and I have no confidence that they've made something that's as good as what we already have.

Anybody who's interested in this should read up on the Kaplan-Meier estimator ([https://en.wikipedia.org/wiki/Kaplan%E2%80%93Meier_estimator](https://en.wikipedia.org/wiki/Kaplan%E2%80%93Meier_estimator)). If you want to see it used for a problem that's very similar to demand estimation, see Censored Exploration and the Dark Pool Problem ([https://www.cis.upenn.edu/~mkearns/papers/darkpools- final.pd...](https://www.cis.upenn.edu/~mkearns/papers/darkpools-final.pdf)).

<comment><USER2> Plenty of software has reinvented something that was done prior. Even if the outcome hasn't improved significantly, how the outcome was achieved still has plenty of value. Just as we've seen in software, repeatedly finding better and efficient processes to achieve largely the same technical outcome.

Throwing the machine learning label into the mix always pushes the expected results to a higher standard.

<comment><USER3> In contrast, demand estimation is a statistical or rather econometric problem that targets exactly the areas that ML has yet to explore: Causal analysis, censoring of dgp and related to this but distinct in the literature, identification and endogeneity.

The authors in this article do not show any ML, its all mainline stats.

ML is used, even in these areas, for the things it does best. So it is a misnomer to separate nowadays.

But i disagree that one wozld expect ML to do better in this area.

Look at websites doing ab testing, which is certainly not ML but experimental stats.

<comment><USER2> I should note that I meant people tend to expect more from ML outputs when they hear the words ML/AI while that may not be the case and while it could simply be a process optimizations making the whole original output easier to achieve for personal new to it or gives experts a shorter path.

</comment></comment></comment></comment><comment><USER4> Reminds me somewhat of that AirBnB paper [1] around demand estimation for optimal price setting. In both cases the regression target was unobservable. In the instacart case: the counterfactual demand if all delivery options had been available. In the AirBnB case: the counterfactual demand if a house had been listed at a different price. In both cases, it appears the solution was to build bind models and score those to estimate what the demand would have been under the counterfactual case.

[1] [https://www.kdd.org/kdd2018/accepted- papers/view/customized-...](https://www.kdd.org/kdd2018/accepted- papers/view/customized-regression-model-for-airbnb-dynamic-pricing)

</comment><comment><USER5> It reminds me of the time that I went to the store to buy numbers for my mailbox and they had a "4" and a "2" but they didn't have a "7" so I didn't buy any of them.

<comment><USER6> Oddly profound

</comment></comment><comment><USER7> I worked for an 'on-demand' startup facing this problem and we simply ran a limited experiment which showed users full availability. We tried to back-fill any appointments for which we didn't have real supply, but otherwise sent out an 'oops' email and rescheduled.

While there was clearly a negative experience for the customers who went through the experiment and had appointments rescheduled, we did get a very good measure of true demand and were able to optimize some of our supply dynamics.

</comment><comment><USER8> I'd be more engaged in what Instacart has to say on ML if they managed to get my deliver correct and within the delivery window at least once. Is this meta- lost-demand?</comment>


Ask HN: Any help with ideas for the college science fair? - <AUTHOR>

I've been reading HN for 2 years now and finally decided to hit the login button.  I have one month to prepare for the science fair.  I'm a bioinformatics major.  Though, I'm not quite sure how to present a comp sci project in a science fair. (re: science fair project > dissertation)<p>Any links or ideas to get the creative juices flowing would be excellent.  Most of the resources I found online were middle school or high school based. <comment><USER2> You're in college now, so it's time to get serious. I'd treat your "science fair" like its grad-school and postgraduate equivalent: The "poster session".

Which is to say: You can probably go far by reading a page like this one:

<http://www.swarthmore.edu/NatSci/cpurrin1/posteradvice.htm>

Definitely not for middle school students. You're in the big leagues now! Unfortunately, you may not cease to feel like a dressed-up middle schooler on parade until after you get tenure, if then. ;)

Don't worry about the fact that your project is highly abstract. Almost any science project which is not a toy is highly abstract. [1] But do try to bring it down to earth. Pretend that you're trying to explain the project to the average HN reader's parents -- probably generally smart, but probably barely know what "bioinformatics" means and may not even use the computer that much.

\---

[1] If you can explain your science project completely to a kindergartener _and_ it is not a toy, you've got it made, because the grant money is going to _fly_ in.</comment>


eBook of Logic Riddles That Ruined Technical Interviews in the 80s and 90s - <AUTHOR> http://bertolami.com/index.php?engine=portfolio&content=paperwork&detail=insight-puzzles <comment><USER2> Unfortunately I continue to be asked these kinds of questions in programming interviews...</comment>


Study: Do Software Developers Understand Open Source Licenses? (pre-print) [pdf] - <AUTHOR> http://www.cs.ubc.ca/~daa/licensing/resources/2017_ICPC_DoSoftwareDevelopersUnderstandOpenSourceLicenses_preprint.pdf <comment><AUTHOR> See also: [http://www.cs.ubc.ca/~daa/licensing/](http://www.cs.ubc.ca/~daa/licensing/)</comment>


Watch How an iPad Was Used to Paint This Stunning Hologram - <AUTHOR> http://gizmodo.com/5637776/watch-how-this-hologram-was-painted-with-an-ipad

<comment><USER2> Not a hologram, but a very nice technique.</comment>


Iceland's Water Cure - <AUTHOR> http://www.nytimes.com/2016/04/24/magazine/icelands-water-cure.html <comment><USER2> I'm an Icelander and I quite like this article, it is one of the better written pieces I have seen on a cultural phenomenon I relate with - and it is no exaggeration, swimming pools are quite central to our culture. I have two young kids and I take them to an outdoors swimming pool nearly every week, also in the wintertime. Since I live in the capital area we have a few swimming pools to choose from and we rotate between them.

The title hints that this is the reason for the country's high score in happiness surveys such is this one: [http://www.independent.co.uk/news/world/europe/denmark- happi...](http://www.independent.co.uk/news/world/europe/denmark-happiest- country-for-third-time-united-nations-report-a6934196.html) . While I don't think it's that simple I can forgive the author, the title "A survey on Icelandic swimming pool culture" just doesn't have the same ring to it. Usually when I see these surveys the first question that pops up is "How do they measure that?" and it seems journalists generally are not to keen on pursuing that question.

My point is that isolating one thing from a culture and pinning that down as a "cause for happiness" seems a bit silly to me. But apart from that the article is pretty accurate.

<comment> saiya-jin I did car trip around Iceland few years ago in may, having most of inner part still unreachable due to metres of snow. Running tiny Chevrolet Spark in places like Western fjords on their dirt roads with meeting car overy 1-2 hour, good memories. Communal pools could be found in most small villages around, I recall a big one in Akureyri, second largest city (population 18,000). Definitely part of the culture and considering overall ridiculous prices there, pretty cheap.

But all pools are standard treated clean water although whole island has natural hot springs with bluish hot water coming straight form he ground all over it (it's basically like a big volcano all over). Very few places to enjoy those. I guess tourists want to have different experiences than those living there.

<comment><USER3> >second largest city (population 18,000)

Could a SMALL population increase bonding / a sense of belonging amongst countrymen thereby creating happiness?

<comment><USER4> I would definitely agree with that. In the US large parts of the country seem fairly alienated from each other. Not only do they seem to not be able to relate to each other but often times actively vilify. I have only lived at the West coast which largely seems at odds which some other parts of the country. Parts of the South come to mind immediately. The circumstances people live I seem so very different and thus are their needs and concerns. I rarely meet people who have social bonds to the South who fondly talk about them. I fact that might have never happened. For contrast on Iceland life also send to be very different if you live in Reykjavik rather than I a farm in the rural South East. However, even during my few visits I've heard people talk about how they will go to their cousins farm in spring scabs help with the lambs. I think that that kind of relationship is needed to keep political discussions from resulting in discontent if there is a conflict of interest. That's something that send took be lacking their larger the country is. Originally being from Germany I found my home country to be somewhere I the middle in this regard. There sometimes would be a little bit of conflict between regions but never even close to the almost dehumanizing things I hear in the US.

<comment><USER5> > I have only lived at the West coast which largely seems at odds which some > other parts of the country. Parts of the South come to mind immediately. The > circumstances people live I seem so very different and thus are their needs > and concerns. I rarely meet people who have social bonds to the South who > fondly talk about them. I fact that might have never happened.

I think that might be an artifact of living on the West coast: the Southerners you meet are likely to be those who hated the South, hated their neighbours, hated their families — and moved as far away as they could. Believe it or not, a lot of folks love the South: good, decent, kind people who take an interest in one another (of course, if one is neither good nor decent nor kind, that wouldn't be appreciated, and if one is private then one might find them nosy).

Everyone's different.

</comment></comment></comment></comment></comment><comment><USER6> I've been to Iceland and tried the pool, and it was one of my favorite experiences (well, pretty much the whole trip was a favorite experience, Iceland is amazing). It was very invigorating to stand up from the 35 C water into the 2 C air and back.

If you haven't tried it, you need to.

</comment><comment><USER7> _Can the secret to the country's happiness be found in its communal pools?_

If you use suicide rate as an indicator, Iceland doesn't seem to be so happy.

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

<comment><USER8> Iceland gets next to no sun November-February, leading people to depression, drinking, etc. It would likely affect you much more than the winter you know from other countries.

If anything, the social aspect of going to a hot pool in the winter is likely to keep people from committing more suicides.

<comment><USER9> This explanation of little sun => suicides doesn't work, at least as directly as most would think:

 _Research on seasonal effects on suicide rates suggests that the prevalence of suicide is greatest during the late spring and early summer months, despite the common belief that suicide rates peak during the cold and dark months of the winter season._

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

<comment><USER10> People with some level seasonal affective disorder (SAD) and people with depression react to change differently.

For people suffering from SAD symptoms typically start in the fall and stay during winter months. For people with clinical depression it's the springtime that throws them off.

I live in Finland and I have clear SAD symptoms in the fall and winter (very tired and low energy). Using Philips light therapy lamp completely fixes it for me as does trip to Spain in the winter.

</comment></comment></comment></comment><comment><USER11> A very interesting article. It made me look up some facts, actually. In Finland, there are 218 public swimming halls. There are 313 administrative districts (communes, towns or cities) in the country. Thus, practically even the smallest of the communes with population of only a few thousand have a swimming hall; big cities have several. Lacking geothermal heat, the pools are indoors and explicitly heated obviously.

This isn't generally talked about much. I didn't realize it myself before reading this article: Finland probably isn't famous for its swimming and swimming hall culture, but it's everywhere. Except for people who don't specifically like water practically grow into a culture of swimming at halls. Nobody really thinks much about it. Everyone knows how to behave there. Old people gather at swimming halls for bathing, swimming and aquajogging. Physical education classes at school swim at the local hall, kids are brought to swimming halls in the first year, regular people go to swimming halls to exercise... There's nothing much special about it. We swim outdoors, in lakes and the sea, mostly for fun but swimming halls are the place for a more focused physical exercise. I would assume Sweden and Denmark are similar, roughly.

I've had subpar experiences trying to find an abundance of swimming options when travelling abroad. My culture might not be that common after all.

</comment><comment><USER12> Augh. Almost 100% unrelated to the article, but:

"There are ramshackle _cement_ rectangles squatting under rain clouds..."

It's _concrete_ [1] not _cement_. Even the word _cementing_ can mean "settle or establish firmly", which is what happens to the _aggregate_ in _concrete_. Augh.

[1]: [http://www.todayifoundout.com/index.php/2011/12/the- differen...](http://www.todayifoundout.com/index.php/2011/12/the-difference- between-cement-and-concrete/)

<comment><USER13> +1 for the information, but I don't think all the "Augh"s are warranted.

One of the widely accepted, dictionary definitions of "cement" is simply "concrete." (In fact, Merriam Webster has this listed as definition #1.) I understand that the terms have different technical meanings, but in common English they are simply synonyms.

E.g., [http://www.merriam-webster.com/dictionary/cement](http://www.merriam- webster.com/dictionary/cement)

There may be an opportunity for a Battle of the Dictionaries here, but I think this skirmish in the language wars may be over.

<comment><USER12> Fair enough :/ it just feels like 'misusing' words is disrespectful to their source, as though a lack of effort was taken to use it 'properly' (air quotes since those are highly subjective terms). In a detached sense, I suppose seeing semantic change [1] in action is neat, but it is still just the tiniest bit depressing.

edit: Ah! Also cool is dental cement [2] which is, as the name would imply, used in dentistry (but without any aggregate equivalent!).

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

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

<comment><USER13> Totally agree. Even if "concrete" and "cement" can "properly" be used interchangeably, I myself prefer to use words in a way that recognizes these sorts of distinctions. It keeps language more information rich and historically connected. (And keeps me from being looked down upon by well- educated people who, like myself, incline towards language snobbery :))

</comment></comment></comment></comment><comment><USER14> A type of Japanese communal bath house [https://en.wikipedia.org/wiki/Sent%C5%8D](https://en.wikipedia.org/wiki/Sent%C5%8D)

</comment><comment><USER15> I cycled around Iceland in may of last year. Slipping into a hotpool after a day of pedaling against the wind in barely above freezing temperature was simply amazing.

</comment><comment><USER16> Saturday in Icelandic is laugardagur - literally 'pool day'. Gives you an idea how central this is to the culture.

<comment><USER5> I thought it meant 'washing day' originally …

</comment></comment><comment><USER17> Geothermically heated water often contains lithium. This could contribute to the good vibes coming from the water.

</comment><comment><USER18> Where exactly is my 'undercarriage'?</comment>


Use SQLite for public databases instead of CSV - <AUTHOR> https://trackchanges.postlight.com/big-data-small-effort-b62607a43a8c <comment><USER2> Datasette is a great idea. Just wish the SQL parser was more strict. The following produce results which aren't exactly expected:

      select breed, count(*) from [Adelaide-City-Council-dog-registrations-2013]
      order by count(*) desc

      select breed, count(*) from [Adelaide-City-Council-dog-registrations-2013]
      group by breed, order by count(*) desc

The well formed, unsurprising query is:

      select breed, count(*) from [Adelaide-City-Council-dog-registrations-2013]
      group by breed order by count(*) desc</comment>


Functional HTML templating with Clojure+Enlive+Compojure - <AUTHOR> http://github.com/swannodette/enlive-tutorial

<comment><AUTHOR> I cover scraping Hacker News and the New York Times. The templating examples show how Enlive keeps a clean separation between HTML and code. Template inheritance is just function composition.

</comment><comment><USER2> So beautiful :)

Edit: the tutorial is very well written; I can follow it even without firing up the repl or anything like that (given I do have some background already).

Edit2: thank you swannodette!

<comment><AUTHOR> Thanks for checking it out :)

</comment></comment><comment><USER3> I've been using enlive for a "learning clojure" project myself and love the approach it takes.

<comment><USER3> also jrockway's <http://search.cpan.org/~jrockway/Template-Refine-0.02/> works similarly. I've used it before in some perl stuff.

</comment></comment><comment><USER4> I haven't tried this yet but the docs look awesome. The Clojure community is attracting a lot of creative developers and projects.

</comment><comment><USER5> Oh my god yes! This is exactly the kind of tempting I've been gravitating towards lately. In Lisp, with macros no less! Thank you so much for putting this tutorial together.

</comment><comment><USER6> This is beautiful. I've heard a lot about Clojure but, alas, I've been too lazy to really check it out.

This tipped my interest, kudos!</comment>


Why is LXDE losing its popularity among Linux users? - <AUTHOR> After trying out all the DEs including KDE, Unity, GNOME, XFCE and LXDE, I've found that the last one is a marvelous piece of engineering and is the only Desktop that follows the unix philosophy in the true sense.
In fact, it is not as much a DE as a meta-package consisting of components like openbox, lxpanel and lxappearance that you may as well assemble on your own! In other words, simplicity and minimalism which you don't find anywhere else.
But I was truly astonished when I visited LXDE forums (http://forum.lxde.org/) and found that it is quite inactive. There hasn't been a single post in the month of february. This indicates that lots of people have shifted to GNOME or KDE and forsaken this wonderful DE.
And the interesting part is that in most phronix benchmarks, LXDE turns out to be the fastest, then why do people insist on installing bloated monsters like Unity and GNOME. If all I use my machine to do "actual things" like browsing the Internet, checking emails, working with spreadsheets and other apps, then why is the choice of DE such an important thing? <comment><USER2> Because if you want a simple Desktop Environment you can get it with XFCE, which integrates better (or at least used to) with Gnome/KDE apps and has some extra goodies (like a decent panel plugin selection) and many useful xfce- configuration apps.

Maybe for old devices LXDE makes sense because it's even more lightway, but I have the feeling XFCE fills the same niche (minimalist, cut the bullshit, down to earth thing) a bit better for the general case.

Disclosure: XFCE user who tried LXDE and hates the bloated monsters of Gnome/KDE.

</comment><comment><USER3> LXDE has something of a quiet revolution in the last year or so. Thanks to various issues surrounding GTK3, they shifted their focus to Qt and merged their efforts with Razor-Qt to form LXQt.

Also, while XFCE has made some moves to stay free of the systemd gravity well (forking the depreciated Consolekit and making it compatible with Logind's dbus protocol for example), LXQt seems to have embraced it.

This may well have turned some away that don't want to deal with systemd.</comment>


Show HN: A weekly newsletter curating great Wordpress guides - <AUTHOR> http://wpstack.io/ <comment><USER2> I tried to subscribe using the top form. It opened a new window, redirecting me back to the homepage, and I never got a confirmation email. I just tried again using the form at the bottom, and it seemed to work. Looking forward to the newsletter!</comment>


Ask HN: What are good CS journals that publish source code with papers? - <AUTHOR>

What are some good computer science research journals that actually publish source code with their papers? I would like to causally read research papers (most likely involving image processing, video encoders etc) and follow along in the source code to better understand how to implement DSP algorithms etc. Any ideas? I may get into major journals through my school (just need help narrowing down which ones publish source code) and i am willing to purchase a subscription to good ones. <comment><USER2> The actual codes are not published within the articles: to big, and pointless. However, the practice is to give the URI to where they are publicly hosted (usually on the forge of your research lab, like [https://gforge.liris.cnrs.fr/](https://gforge.liris.cnrs.fr/)).

You only put in your article what is immediately relevant, for example an algorithm you are discussing. If if it big and really necessary, you put in the annexe.

Except for specific areas, source code are present in research: they are more an engineering problem. What you will see are demonstrators, prototypes, and examples. But very rarely clean production code, because that is not the objective.</comment>


80+ Hours a Week: The Follow-Up - <AUTHOR> http://jtame05.wordpress.com/2008/07/07/80-hours-a-week-the-follow-up/

<comment><USER2> _Entrepreneurs have a code written in their DNA that says "make the world a better place than it was before you came here." That's what drives us, and if we can't do that, we feel like failures, and we look like failures._

I'm not clear how working long hours is a precondition for making an impact on the world around you. I'd argue instead that barreling headlong in a single direction for years on end might rob you of the necessary perspective to tell what does and does not have a positive impact.

It's admirable to take pride in the work that you do. But like anything else, entrepreneurship done for its own sake contributes only to your own sense of accomplishment. If that's what drives you, that's dandy, but I think there are more things in heaven and earth than are dreamt of in your philosophy.

<comment><USER3> It's not. It's usually a route to failure rather than success to begin with, but it's so culturally ingrained into the illusion of a work ethic that we've become a society of butt-in-seat workaholics.

Getting stuff done is a prerequisite for changing the world. Growing your ass, burning yourself out, and neglecting your life and that of your loved ones (if you have any left by the time you burn yourself out) is not the way to get stuff done. It's the way to get stuff dumb, to paraphrase Steve Yegge...

<comment><AUTHOR> Of course, don't forget to exercise ;)

</comment></comment></comment><comment><USER4> Aside from the fact that my wife would kill me... I would neglect my daughter which is perhaps the most unappealing aspect of this whole business... I guess a compressed 30 years of 9-5 does not sound good to me.

<comment><USER5> Like you, spending time with my daughters is the single most important thing to me in the world. It probably means I won't be rich, or change the world with my startup but I'm okay with that.</comment></comment>


Best approach to set up adserver for blog network - <AUTHOR>

Hi I have about 5 seperate websites owned by 5 people on different domains. I wanted to set up an adserver and establish a network of blogs. Has anyone done this before? If so any advice/pitfalls... I should know about. I was thinking about using OpenX and using the wordpress plugin to distribute the ads over the sites (they are all wordpress sites).<p>tyvm :) <comment><USER2> Look at Google dfp too: <http://www.google.com/intl/en/dfp/info/sb/index.html> \- I've not tried it but it looks good.

OpenX is a serious pain in the ass, but seems to be the go-to option. This area is ripe for open source innovation.</comment>


China's facial recognition rollout reaches into mobile phones, shops and homes - <AUTHOR> https://www.reuters.com/article/us-china-technology-explainer-idUSKBN1Y60MN <comment><USER2> Having spent many years in prison, there is a weird level of comfort experienced in a highly controlled environment. When the CCP falls from power, the Chinese people will feel just as uncomfortable and worried about being found in the wrong place as a newly released prisoner.

</comment><comment><USER3> The entire world is going to look back with a 20/20 hindsight - why did the we allow funding and funneling billions of dollars into China's economy to allow it rise up as a terrifying dystopian regime. Companies like Cisco made billions by selling surveillance equipment to China's Xianjin concentration camps.

These are the things you could do:

\- Fearlessly criticize the CCP, share your thoughts freely, openly and without fear on social media. Let me give an example - I posted on IG about supporting HK and I got 10% of likes as my other posts. Not 10% less, 1/10th as many likes. I am consipiring that has to do with people in the west are afraid to speak up? Not sure.

\- Support HK protests, donate to Hong Kong Free Press and other newspapers

\- Boycott Made in China goods as much as possible (I understand it is difficult)

\- Create awareness of CCP's ambitious goals to supress freedom around the world

\- Call your representatives

\- Do not be afraid to offend pro-CCP Chinese immigrants in your country. It is a one-sided game - political correctness is a western concept

\- If you're working in a Tech firm, promote high strength encryption methods, security practices, and surveillance awareness within your company

\- Shut down whataboutism, usually about US. This is unfortunately rampant on HN, despite of one of the most intellectual communities online. Americans already criticize their government - just go to NYTimes, LATimes, WashingtonPost, etc. American spirit is in the ability to express freely, free press, fair justice, look back and talk about atrocities committed by US govt., expose American war crimes and many more. There is already a _very_ active debate. We don't need distraction when talking about CCP which is entirely on a different scale - 2 million people in detention camps, Uigher wives forced to sleep with Chinese citizens (state sponsored rape on a mass scale), etc. Please, I plead you

\- Vote politicians that are against Chinese influence

\- Expose Chinese "investments" in your company to gain power

Now is the time to wake up, and act.</comment>


The Design of the Mac OS X Shutdown Feature - <AUTHOR> http://arno.org/arnotify/2006/11/the-design-of-the-mac-os-x-shutdown-feature/

<comment><AUTHOR> I thought this was worth a post due just to this quote

"A lot of the difficulties that Apple ran into with Copland were due to an inability to manage this complexity. The scope of the project was just more than the organization and processes we had could deal with."

It turns out technology is the easy part. Organization and management is the hard bit. As companies and products have grown, I'm curious what things other HNers have seen that works/doesn't work?

</comment><comment><USER2> [2006]</comment>


The Future of America Is Freelance - <AUTHOR> http://www.theatlantic.com/business/archive/2010/09/the-future-of-america-is-freelance/63171/

<comment><USER3> I agree in that there will be on one looking out for anyone - <USER2> included.

Everyone will have to train and market themselves, fight for their raises/rates, and choose the most profitable jobs.

In the end, I wouldn't frame it as "the future is freelance," as much as "the future depends solely on you" which is not a bad thing if you are in the social darwinist camp.

<comment><USER4> "the future depends solely on you"

It always has. Unless you were born with a silver spoon in your mouth, you always had to make your way on your own. And this will continue to be the case for the foreseeable future.

And as long as employers are promising stable employment, there will those who take them up on the offer.

I know a freelancer who never has trouble finding work, but I can't imagine that he doesn't worry about the economy preventing him from finding freelance work. In a company, I only have to worry if that particular company is doing well.

</comment></comment><comment><USER5> Has anyone actually used Solvate - either as talent or a buyer? Experiences?</comment>


Announcing Rust 1.16 - <AUTHOR> https://blog.rust-lang.org/2017/03/16/Rust-1.16.html <comment><USER3> Probably the most significant addition in this release is the cargo check subcommand, which does all the type/safety checking part of rustc, but skips the LLVM part of generating the actual binary.

If you just want to make sure you code compiles, this is the command for you.

There's also a bunch of API stablilizations around Strings, Vectors etc, complete changelog: [https://github.com/rust- lang/rust/blob/master/RELEASES.md#ve...](https://github.com/rust- lang/rust/blob/master/RELEASES.md#version-1160-2017-03-16)

Congratulations to everyone involved on the release!

<comment><USER4> Yes, this is huge. It dramatically reduces the code/does-it-compile cycle, which is far more important than the code/run cycle, for rust development.

</comment></comment><comment><USER5> -Z time-passes

Well played, Rust devs, well played. [https://imgur.com/a/lK1BQ](https://imgur.com/a/lK1BQ)

<comment><AUTHOR> Ha! I am pretty sure this is serendipity; -Z is our catch-all "unstable/internal flags" marker.

</comment></comment><comment><USER6> I might be a minority here, but can someone please update me on there state of Rust on iOS? I develop C++ cross platform iOS/Android apps and would love to use Rust if possible.

The last time I checked Rust didn't support .frameworks creation, didn't support Bitcode and calling the main thread from Rust wasn't easy.

I would love to hear if these issues have been resolved.

<comment><USER7> > The last time I checked Rust didn't support .frameworks creation

From a purely "how do I get something I can link to" perspective, you can still build a cdylib and a header for it, Xcode will let you include the header in your Objective-C code or in the Swift bridging header, and then you can link to the cdylib and copy it into the "Frameworks" subdirectory in the bundle at build time. I've been doing that in an OS X app for several months and it works out very well.

> calling the main thread from Rust wasn't easy.

If you want to schedule code to run in the main queue/thread/runloop, that's an Apple-specific thing Rust wouldn't be aware of by default, but I did find a wrapper for libdispatch/GCD, and it seems to support calling things on the main queue which should do what you want.

[https://crates.io/crates/dispatch](https://crates.io/crates/dispatch)

You can also have your app provide a C callback to the Rust code (even a Swift closure with captured variables, with some clever workarounds since you can't do that by default), and then in the callback you can schedule code to run on the main queue/thread if you want.

<comment><USER8> You can't use dynamic libraries on iOS because they fail iTunes Connect validation. The only dylibs it allows are the Swift standard library. You can, however, use clang to take a static library and throw it into anything you want (framework, dylib, executable).

<comment><USER7> It looks like you're right, Apple says you can't bundle dylibs outside of a Framework on iOS :\

What would be the difference though, why make the distinction?

> Dynamic libraries outside of a framework bundle, which typically have the > file extension .dylib, are not supported on iOS, watchOS, or tvOS, except > for the system Swift libraries provided by Xcode.

[https://developer.apple.com/library/content/technotes/tn2435...](https://developer.apple.com/library/content/technotes/tn2435/_index.html)

<comment><USER8> From my understanding, the limitation is purely because of how Apple designed iTunes Connect validation, and not for technical reasons.

</comment></comment></comment></comment></comment><comment><USER9> I am glad that FreeBSD is on the "Tier 2" list of supported platforms [1] but am wondering, is there any way to convince you guys to make it "Tier 1"? If so, how?

I am willing to dedicate _some_ amount of my own time to make it happen but am not convinced that my skills [2] and the amount of time I have available to spend is sufficient to make a difference.

[1]: [https://forge.rust-lang.org/platform-support.html](https://forge.rust- lang.org/platform-support.html)

[2]: [https://www.github.com/eriknstr](https://www.github.com/eriknstr)

<comment><USER10> I think it is unlikely we will make FreeBSD tier 1 any time soon. The project is stretched beyond its limits with its platform support commitments, and FreeBSD is historically difficult for us to support.

The next tier 1 is going to be ARM, probably for both Android and Linux, and then I personally don't see any others on the horizon. I actually see our tiers being redefined soon to be more graduated, and not have so many tier 2 commitments (we're happy to build artifacts for obscure platforms, less happy to be on the hook for guaranteeing obscure platforms continue to build - <USER2> saying FreeBSD specifically is 'obscure').

That said, the differences between tier 1 and tier 2 are not so great. If a platform has testing on CI then it is pretty close to tier 1, even if it's technically tier 2. The problem here is that testing the FreeBSD targets requires running FreeBSD in some way and that has been hard for our CI to do. Anything that can be crossed from Linux is easy, everything else is a painful special case. So with FreeBSD we do the the cross-building, but not the cross- testing. So the most effective thing to do to take Rust FreeBSD support to the next level is to figure out a way to get the CI to run tests.

There may be opportunities in the future for paid Rust platform support, where if a motivated party donates the right amount of money, we'll make it happen. I think that will have to happen to get some of the remaining platforms up to production quality.

<comment><USER9> >So the most effective thing to do to take Rust FreeBSD support to the next level is to figure out a way to get the CI to run tests.

If I were to set up my own FreeBSD buildbot for commits to the Rust repos, would result reports from my buildbot be welcome? Would automatic reports be useful to you, or should I manually inspect failures and write up a bug report / pull request with fixes for issues that arise? If automatic, how could I best integrate reports of failure with your development process for Rust?

>There may be opportunities in the future for paid Rust platform support, where if a motivated party donates the right amount of money, we'll make it happen. I think that will have to happen to get some of the remaining platforms up to production quality.

I like this idea though I don't have a lot of money to spend myself currently.

<comment><USER10> We no longer use buildbot for our CI.

We have a "meta CI" system called bors/homu that integrates with other CI, currently Travis and AppVeyor. bors works with any service that can post a result to a GitHub PR.

So the plan for supporting further architectures is to create a small custom runner that builds, tests and posts to the PR. That code does not exist yet, but if it appeared there are likely several upcoming architectures that could make use of it.

With that tool, we could allow contributors to set up their own integration bots and hook into our CI.

</comment></comment></comment></comment><comment><USER11> I like rust a lot, but even hello world web apps compile (and recompile) so slowly. I barely get a single step down my to do list before recompiles take more than a second, and it makes it functionally unusable compared to other tools. I know this sounds silly, but it's true. I don't want the check, I want to see the webpage changed after my code changes. I keep hearing about incremental compiles but when I used nightly and tried turning it on, I guess it didn't work because compile times barely changed.

<comment><AUTHOR> Incremental recompilation is still underway; expect some news on it reasonably soon. Even then, it's just the start, and there's more that we can do.

<comment><USER12> When it's out, can we actually get the same responsiveness as, let's say Java? I assume it also depends on the IDE but I would really like to see instant hints during coding session, ex. when I make mistakes.

<comment><USER13> You can already get instant hints now with VS Code and the Rust Language Server (RLS). It's still in alpha and the initial setup is a bit involved, but it already works very well for me.

[https://github.com/rust-lang-nursery/rls](https://github.com/rust-lang- nursery/rls)

[https://github.com/jonathandturner/rls_vscode](https://github.com/jonathandturner/rls_vscode)

For some reason, code completion via Racer doesn't work yet for me via RLS, so I use the "old" RustyCode extension for that ([https://github.com/saviorisdead/RustyCode](https://github.com/saviorisdead/RustyCode)).

<comment><USER12> I am not talking about code completion. I am talking about mistakes. Currently I have to build a project. With new Rust 1.16 I can check, but that's still a separate task that has to be launched manually. Yet, IntelliJ with Java will show you problems instantly, as well as gives you most probable options to solve them.

<comment><USER13> I wasn't only talking about code completion either - when I make any syntax/type error I get a red squiggly after about a second and hovering shows the compiler error (which often has hints for solving it). Same goes for compiler warnings (e.g. green squigglies for dead code). Feels quite close to IntelliJ already (I use PyCharm...).

</comment></comment></comment></comment></comment></comment><comment><USER14> Thank you SO MUCH for 'cargo check'! 5-times faster for our biggest project.

<comment><USER14> Although you broke your promise about avoiding breaking changes. I know I know, it wasn't promise and wasn't about breaking changes, it was something else about something else.

"The attribute `export_macro` is currently unknown to the compiler" \- what a surprise in beta 1.17.

<comment><AUTHOR> It's macro_export, not export_macro [https://github.com/rust- lang/rust/issues/40487](https://github.com/rust-lang/rust/issues/40487)

That said, regressions happen, which is why beta exists. If you find them, please file them!

<comment><USER14> It's not in my lib and issue is filled. That said, thanks :)

</comment></comment></comment></comment><comment><USER15> I'm eagerly awaiting a release of RLS that is installable via rustup.

<comment><USER16> It will probably end up being installed by `cargo install` anyway.

What I can't wait for is Tokio for Diesel and Rocket.

<comment><USER17> Have you found any good tutorials for Rocket? The one on Rocket's website is detailed but doesn't go beyond an extremely basic website.

<comment><USER18> The examples in the repo[1] are fairly extensive, and you can always ask questions in the IRC channel[2]. I've found #rocket to be extremely gracious with their time.

[1] [https://github.com/SergioBenitez/Rocket/tree/master/examples](https://github.com/SergioBenitez/Rocket/tree/master/examples)

[2] [https://riot.im/app/#/room/#mozilla_#rocket:matrix.org](https://riot.im/app/#/room/#mozilla_#rocket:matrix.org)

</comment></comment></comment></comment><comment><USER19> I'm wondering if the following will be one day possible with Rust. I want to build a fast data-store with the basic data-structures offered by Rust (e.g., std::collections), which are stored in a memory-mapped file. The problem with mmapped files is that they don't always appear at the same address (this is not always possible, especially if you open multiple stores at once). So in order to use the standard data-structures, Rust must provide some mechanism to make this possible (I realize that this can be tricky). Alternatively, I could write my own data-structures, but of course, I'd prefer to use the standard ones.

<comment><USER20> >I want to build a fast data-store

Usually this means you want to build things build on arrays.

>The problem with mmapped files is that they don't always appear at the same address

i.e. you use arrays and then index into the array instead of using pointers.

> So in order to use the standard data-structures, Rust must provide some > mechanism to make this possible

Well, arrays exist in Rust. Or you're going to have to be more specific about what you're trying to do.

<comment><USER19> > Or you're going to have to be more specific about what you're trying to do.

I want to allocate arrays, maps, etcetera inside the region of a memory mapped file. Then, later, when I mmap the same file to a different region in memory, I want the arrays and maps to still work. That's all.

<comment><AUTHOR> There are several mmap crates, but they won't let you transparently use std::collections on top of them.

I imagine this will be possible once the custom allocators work sorts out.

<comment><USER21> Just having custom allocators won't automatically fix the pointer issue: remapping the file later will leave the previously "allocated" pointers pointing into old memory, which may not be where the file was remapped.

The allocators and data structures would need to support using non-raw-pointer pointers types, including not even platform-pointer sized types.

<comment><AUTHOR> Right. Makes sense.

</comment></comment></comment></comment></comment></comment><comment><USER22> This releases fixes the #derived mess, right? Meaning we don't need to mess with weird build scripts to get serialization and json support?

Edit: so it was 1.15! I've been running 1.14 on my laptop and didn't realize it!

<comment><AUTHOR> That came out in the last release, 1.15: [https://blog.rust- lang.org/2017/02/02/Rust-1.15.html](https://blog.rust- lang.org/2017/02/02/Rust-1.15.html)

</comment></comment><comment><USER23> Since Rust people read hn... the version 1.16 is at the bottom of [https://thanks.rust-lang.org/](https://thanks.rust-lang.org/), while it should appear before 1.15

<comment><AUTHOR> There's a bug open about this, and I am literally deploying the fix right now. It'll probably be fixed by the time you read this comment :) (EDIT: deployed successfully, refresh the page)

Thank you!

<comment><USER23> Hi Steve, thank you. Can you link the bug so that I know where to look at the next time?

<comment><AUTHOR> [https://github.com/rust-lang- nursery/thanks/issues/61](https://github.com/rust-lang- nursery/thanks/issues/61)

</comment></comment></comment></comment><comment><USER24> 1.16 already! Do they sleep ?

<comment><AUTHOR> We used a time-based release schedule; each minor version comes out every six weeks. We believe this approach is better for a number of reasons, including quality.

<comment><USER24> But this is a thing that amazes me: the rust community manage to be incredibly productive while maintaining a culture of rigorous quality. In a world of "move fast and break things" at best and just of "I don't know what I'm doing" at worst I find it fascinating to witness.

<comment><USER10> Honestly, it's extremely taxing to maintain this pace without everything falling apart. The size of the team employed by Mozilla is quite modest. Firefox, which has a similar release schedule, has an entire team dedicated to just getting the releases out (though Firefox is yet the significantly larger product). We have no entire people, but employ some very rigorous testing.

<comment><USER25> >We have no entire people

You mean people dedicated to releases, or just that everyone must cut off an appendage to join the team? :)

<comment><USER26> I suspect Niko is part alien

</comment></comment></comment></comment></comment></comment><comment><USER27> The speed up for diesel appears mistyped.

<comment><AUTHOR> Gah, I can't do basic math it seems. I'll fix it tomorrow.

</comment></comment><comment><USER28> _If you have a previous version of Rust installed, getting Rust 1.16 is as easy as:_

        $ rustup update stable

Nah. The old "rustup.sh" script doesn't install "rustup", the application.

Rust isn't in the Ubuntu distribution, either.

Stop rolling your own installer and use the distro programs. You are not a special snowflake.

<comment><AUTHOR> > Nah. The old "rustup.sh" script doesn't install "rustup", the application.

rustup.sh has been deprecated for months now.

> Rust isn't in the Ubuntu distribution, either.

It's in Debian now, so (as far as I know) that means it should end up in Ubuntu soonish.

> Stop rolling your own installer and use the distro programs.

Not everyone is on Linux.

<comment><USER29> FWIW, Debian unstable is stuck on rustc 1.14.0. You need experimental to, at the moment, get 1.15.1 (no 1.16 yet, but it's a tad early for that ; but in multiple occasions it took weeks to get new rustc releases into Debian).

Cargo in Debian, on the other hand, is stuck on 0.15.0... (current version for "stable rust" is 0.17.0) ; no newer version in experimental...

<comment><AUTHOR> Yeah, Stretch just missed 1.15, it's a shame IMHO. They're fine with it though.

Now that we've gotten a lot of the kinks worked out, hopefully it won't be weeks in the future.</comment></comment></comment></comment>


Bryan Cantrill Interview: On Performance (July 2019) - <AUTHOR> https://www.youtube.com/watch?v=h_TVcQwaKyE&t=21s <comment><AUTHOR> Note this is part 1 of 2, 2nd part will be up later in the week</comment>


Ask HN: How-to make solid profits from niche websites? - <AUTHOR>

I often see newspaper articles and current affairs television programs, which tell the "success stories" of niche website and/or blog operators who earn six- to seven-figures each year directly from their sites.
I (and I think many HN regulars) would love to do something like this full-time and have some good ideas for sites but don't know where to start...
O learned HN gurus, if someone tasked you with starting a successful niche website from scratch, what would you do?
Any advice or links to relevant resources is greatly appreciated. Thanks.
P.S. For the purposes of discussion I define successful as: good enough to provide you $100k+ annually for working 40hrs per week on average. <comment><USER2> I'd start with <http://www.thirtydaychallenge.com/>

I know many people and couple close friends that are making very decent living by learning seo/adwords/copywriting(or getting really really good at one of 'em).

The biggest hurdle that holds a lot of us back from this industry is our own intelligence. That is why we shrug in disbelief that a website with a cheesy 2000 word copy makes thousands of dollars in sales. For the time I dabbled with this stuff, that was the most challenging part: putting myself in my avg customer's shoes.

ie. if you goto the site I am recommending, most of us would dismiss it as a "scam." Hey, I did--it took a lot of convincing and showing by my friends before I learned that may be should put my suspicion on hold and explore further.

With that said, getting the initial sales funnel going is not easy and can require lots of patience.

<comment><AUTHOR> Thanks for the advice. Can you please provide links to some of your friends' sites so I can see examples of what their "successful" sites offer? Thanks again.</comment></comment>


AWS Intends for Their New Project to Be an Elasticsearch Fork - <AUTHOR> https://www.influxdata.com/blog/aws-intends-for-their-new-project-to-be-an-elasticsearch-fork/ <comment><USER2> Has Amazon's actions led Elastic to be more protective of its IP?

From my understanding and looking at Elastic's documentation, it seems like most of the enhancements have been higher value tools, machine learnings, etc. AWS doesn't open source everything so why expect Elastic to? Why does AWS deserve to capture the value on Elastic? Why didn't AWS merge upstream changes into Postgres for columnar storage?

Long term, I just think a singularly focused company is going to do a better job maintaining and improving the project than a large one. Who is going to want to commit to a FOSS project is Amazon captures all the value? Why would Amazon continue to enhance the project if they put Elastic out of business?</comment>


Why the CEO of Caraway Sends Himself 20 Emails a Day - <AUTHOR> https://www.branchfurniture.com/blogs/turn-key/why-ceo-caraway-sends-himself-20-emails-day <comment><USER2> TL;DR: he (ab)uses his inbox as a task list

<comment><USER3> He says he uses Gmail, which literally has a task list built in</comment></comment>


A 300-person human tweet to protest an Internet tax in Mexico [PIC] - <AUTHOR> http://twitpic.com/mw9cl

<comment><USER2> If it's 300 people, it's not a tweet.

<comment><AUTHOR> Well, it is and overflow tweet. =)

</comment></comment><comment><AUTHOR> via @leolaporte and @jmatuk</comment>


Bronx Girl Seen Kidnapped in Video, and in Amber Alert, Admits It Was a Hoax - <AUTHOR> https://www.nytimes.com/2019/12/17/nyregion/karol-sanchez-bronx-amber-alert.html <comment><USER2> Some of the comments here make it sound like these things are going off all the time, so I looked up the stats [1]. Here are some highlights from the 2018 and 2017 stats. They seem to be fairly typical years.

In 2018, there were 161 Amber Alerts. 112 of those were state-wide and 49 were regional. 155 resulted in a recovery, 28 of which were as a direct result of the Amber Alert.

There were 37 states that had alerts. The most were Texas (23), Ohio (15), and California (11).

2017 had 195 alerts, 154 state-wide, 40 regional, and 1 local. 193 resulted in a recovery, 39 as a direct result of the Amber Alert.

The top 3 states were Texas (26), California (19), and Georgia (14).

[1] [https://amberalert.ojp.gov/statistics](https://amberalert.ojp.gov/statistics)

</comment><comment><AUTHOR> Millions of people's days were disturbed by the "Amber Alert" system. How much productivity was lost? How many people will (like me) disable Amber Alerts because they're disturbing?

Will she ever be held accountable?

<comment><USER3> How many Amber alerts are just custody battles where no one in danger. How many people suffer the consequences of being misidentified by the general public sleuths that follow these alerts. It seems that the entire system is built on unsound reasoning.

<comment><AUTHOR> There was a California one yesterday that was a domestic dispute. Father vs Mother. The father was stopped when some people surrounded his car at a gas station. Does law enforcement really want people to be "deputized" as law enforcement officers? The whole system is crazy.

</comment></comment></comment><comment><USER4> > She told police she had set up the kidnapping because of her > "overprotective" mother

Man. How bad was her mother for her to thing this was a good idea?

</comment><comment><USER5> This reactionary outrage bait doesn't belong on HN</comment>


Soundness and Completeness: With Precision - <AUTHOR> https://bertrandmeyer.com/2019/04/21/soundness-completeness-precision/ <comment><USER2>
        > An analysis is sound if it reports all errors, and complete if it only reports errors.

This seems backwards. Soundness and completeness are terms from logic:

 _sound_ = every provable statement is true

 _complete_ = every true statement is provable

A statement is _provable_ if and only if it can be derived within the system. For example, the statement "SS0 + SS0 = SSSS0" (i.e. 2+2=4) is provable in Peano Arithmetic (PA) because it can be derived from the axioms of PA.

A statement is _true_ if and only if it is actually true. For example, Goodstein's Theorem ([https://en.wikipedia.org/wiki/Goodstein%27s_theorem](https://en.wikipedia.org/wiki/Goodstein%27s_theorem)) is true. However, Goodstein's Theorem is not provable in PA.

By definition, a logical system that allows you to prove anything, even nonsense, is complete. Also, a logical system that doesn't allow you to prove anything is, by definition, sound.

In a comment at the bottom of the article, the author says:

        > Soundness means: passed => not erroneous
        > Completeness means: not erroneous => passed
        >
        > or equivalently, since rejected = (not passed):
        >
        > Soundness means: not rejected => not erroneous
        > Completeness means: not erroneous => not rejected

This seems wrong. For one thing, _rejected_ is not necessarily equivalent to _not passed_ , because there is a third possibility: the algorithm might fail to terminate. This is analogous to a statement which can neither be proved nor disproved in a given logical system.

</comment><comment><USER3> This article seems to confuse the concept of precision somewhat. Per Michael Hicks' post on the same topic [1], precision is generally approaching soundness whereas recall or sensitivity is approaching completeness. Admittedly, I've also seen the term precision used far more loosely, including to describe approximate completeness (e.g. sound and precise).

[1] (also cited in linked article) [http://www.pl- enthusiast.net/2017/10/23/what-is-soundness-in...](http://www.pl- enthusiast.net/2017/10/23/what-is-soundness-in-static-analysis/)</comment>


High-speed railways are revolutionizing trade in Eurasia - <AUTHOR> http://salon.com/2014/12/31/go_west_young_han_how_chinas_new_silk_road_threatens_american_imperialism_partner/

<comment><USER2> Pepe Escobar is great he blogs here [http://www.atimes.com/atimes/Others/Escobar.html](http://www.atimes.com/atimes/Others/Escobar.html)

</comment><comment><USER3> This article makes it look like bullet trains will transport goods from China to Spain... which is a very stupid idea, as the cost of transport is so much higher than by sea.

<comment><USER4> Indeed,

The article seems a confused mishmash of various possibilities and so paints various absurd possibilities like this.

Bullet trains are slower than planes and more expensive than container ships - much of China's bullet train building has been to facilitate internal transport and as make-work infrastructure creation. China building-up overall rail infrastructure might bring more trade with various Asian nations but a number of other factors still have to come together for this. China still isn't a first world nation by any means - China's vast industrial capacity is focused on "final assembly" and so China still is dependent on other nations for things like, say, the chips that go in the iPhones it assembles. The situation doesn't resemble "a new empire flexing its muscles" or similar rot.

</comment></comment><comment><USER5> >Go west, young Han. One day, if everything happens according to plan (and according to the dreams of China's leaders), all this will be yours — via high-speed rail, no less.

Comparing the opening of a new global trade route to the Manifest Destiny conquest and colonization of the American west is propagandistic and inflammatory. If anything, this will only serve to encourage investment in the rail transport infrastructure we desperately need here in North America.

<comment><USER6> What makes you think that a) all of the (e.g.) 131 ethnicities in Kazakhstan will welcome this and b) that the Chinese would build something like this without being prepared to defend it using military force?</comment></comment>


Dumping that good-for-nothing co-founder of yours - <AUTHOR>

<comment><AUTHOR> Now, i am sure some of you have encountered a good-for-nothing co-founder who seems like a good fit early on but turns out to be a disappointment as time dictates. Assuming you've decided enough is enough and you decided to look for a new co-founder, what should be your course of action. Note that your existing co-founder has some equity in your startup.

Should you start a new company with the new co-founder replicating the old startup (which should take about a month at most) or stick with the old company?

P.S. I'm assuming a web startup here. So replication here means doing a similar site.</comment>


Dubai plans 'moving' [skyscraper] - <AUTHOR> http://news.bbc.co.uk/1/hi/world/middle_east/7472722.stm <comment><USER2> Kind of cool but I prefer engineers creating these structures rather than architects.

Also, what's going to happen to Dubai when the oil boom ends?

<comment><USER3> They'll settle for being a favorite tourist and business destination for Europe, the Middle East, and Asia. Being Las Vegas, Atlanta, Houston, Miami, and Orlando for 4 billion people isn't a bad economic base.

</comment></comment><comment><USER3> I figured gibsonf1 would submit this. He's our resident architect.</comment>


Negative Zero may or may not be equal to Positive Zero - <AUTHOR> http://abrkt.posthaven.com/according-to-java-negative-zero-may-or-may-not-be-equal-to-positive-zero

<comment><USER2> Someone else surprised that computer arithmetic is an inaccurate model of theoretical and mathematical arithmetic.

Computer arithmetic is implemented to be convenient, not to be an accurate reflection of mathematical arithmetic. Thus it's the source of many, many "gotchas."

The usual reference to this sort of thing:

        What Every Computer Scientist Should Know
        About Floating-Point Arithmetic[0][1]

Not really limited to computer scientists - actually more relevant to programmers.

[0] [https://news.ycombinator.com/item?id=4815399](https://news.ycombinator.com/item?id=4815399)

[1] [http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.ht...](http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html)</comment>


Beeminder loves Boss as a Service - <AUTHOR> https://blog.beeminder.com/baas/ <comment><AUTHOR> This combines Beeminder's akrasia and self-binding ("If I don't do X every Y days, I'll donate $100 to a political candidate I hate" [1]) with monitoring/reporting from a neutral third party. The combo really is a boss for hire, complete with real-world consequences.

[1]: [https://blog.beeminder.com/akrasia/](https://blog.beeminder.com/akrasia/)</comment>