Don't Settle for Eventual Consistency (2014) - <AUTHOR> https://queue.acm.org/detail.cfm?id=2610533 <comment><USER2> Alternatively, don't require strong consistency everywhere. Instead, make sure to have it places it makes sense, and always reason about it.

I view this as a generalization of optimistic locking on source control. I don't envy my past self for having to checkout code with a lock that I was going to change it.

<comment><USER3> Are you saying that optimistic locking isn't strongly consistent? If so, that's not quite correct. When the locking is optimistic, a serialisable transaction would abort if found conflicting with another transaction.

<comment><USER2> I'm saying that requiring strong consistency is like requiring pessimistic locking in an org. In some ways, it sounds easier and seems to have better guarantees. In practice, it is more work and slows you down.

<comment><USER3> Strong consistency has strong guarantees, not just 'seems' to have -- hence the name.

In practice, strong consistency is less work for the client in many many (most?) cases. If concurrent clients can update the same key concurrently in several places, then the onus is on the client to somehow merge the differing versions at some point. There are few good options to do so correctly and efficiently. Let's consider the options.

a) Timestamps and last writer wins. Every version is time-stamped, and while merging, the latest timestamped version wins out. This is error-prone; a misconfigured clock can cause havoc.

b) Version-vectors: Allow you to track the causal history of different versions, but you still have the problem that if two versions are indeed concurrent, the client has to have code to merge them automatically -- experience with the Bayou system showed that this isn't easy. Your source-code example is in this category; recall how Git cannot always automatically merge conflicting changes ... the developer has to step in for manual changes.

3) Lattices. If you have the good fortune to have your data exhibit lattice properties (like CRDTs), then automatic merging is easy and elegant. However, you still don't get compositionality.

For a vast majority of the examples in recent history that have made a case for eventual consistency, subsequent examples have shown how to achieve strong consistency and still maintain respectable performance, as the subject of this thread indicates. Google Spanner and CockroachDb are linearizable, the strongest possible consistency, and are geo-replicated and unburdened by traditional lock or 2PC issues.

<comment><USER2> Yeah, I'm not saying to completely abandon it. However, folks are well served learning that idempotency is your friend. Not always achievable, to be sure. However, even ec2 lets you launch instances with an idempotency key.

So, where I said "seems" to have. Take that more as these "seem to be required guarantees." In practice, they are not required and you need to have plans for them failing, at any rate. Rather than build up a system so that fluke failures are painful, make one that is constantly checking for failures and doing incremental work.

But, above all, my point was to reason about it. Not to take anything as written in stone.

</comment></comment></comment></comment></comment><comment><USER4> See previous comments here [https://news.ycombinator.com/item?id=7632303](https://news.ycombinator.com/item?id=7632303)

</comment><comment><USER5> I would love to see a Jepsen evaluation of this system. I am not an expert in this area, but it still strikes me as eventually consistent. Discussions around data stores need to be bounded by what the data store can guarantee. Not what optimistic conditions allow for. The paper is pretty light on details about how the dependency graph works. I think that in theory, there is an interesting idea here that basically packages a dependency graph along with every message. But consider this failure case:

t0: alice "I lost my wedding ring." t1: alice "Nevermind, I found it."

Because of the peculiar circumstances around traffic at this moment, the nodes closest to Alice don't get that second message. Instead, the nodes closest to bob receive the message, and bob sees the message before alice does. Bob replies, and because everything is okay with the nodes close to him, the message gets passed back to alice. What happens? The node alice is reading from is having issues, so things are re-routed to bob's cluster. Bob's message has a timestamp that legitimately puts it in between the two messages from alice because the server clocks are off a little.

Now, whatever was going wrong with the cluster close to alice has repaired and it receives bob's message with a node in the graph that alice's cluster is completely unaware of because it hasn't caught up.

Bob's message is telling the cluster, "You can't display this message (c) unless you have already acknowledged prior messages (a and b)." Alice's cluster says, "I have message a, but b doesn't exist."

According to the paper, bob's message will never be delivered to alice until the cluster closest to alice sync's up with some other remote cluster and her second message is restored. Which, of course, we know can fail to happen with Cassandra, and the projects mentioned are forks of Cassandra.

I can't prove it formally, but this feels like the problems you run into with messaging queues: you can guarantee at least once delivery or at most once delivery, but not both at the same time. But a different set of tradeoffs: under this theoretical model, you can deliver in order or not at all.

Obviously, this is a use case facebook would care about. But I don't know that it's generally applicable for very many use cases.

Unless I'm missing something important, transmitting the graph doesn't really do anything to change the fact that this is eventual consistency and brings all of the problems that come with that. I guess the difference between this and eventual consistency and causal consistency is that one provides out-of- date/out-of-order data in an error condition, and the other presumably provides nothing but an error. YMMV.

But to a larger point, calling a combined system of client libraries with a forked version of Cassandra some other-category-of-consistency datastore seems to me to be disingenuous. You're no longer talking about a data store. You're talking about an ecosystem of libraries and developer practices and a datastore that work together to provide some workarounds for the challenge that CAP theorem presents. This is, unless I'm badly misreading the article, granting a lot of leeway.

I also find it unfortunate that the optimized version of this only compared throughput without discussing failure cases at all. CAP theorem is all and only about what can be guaranteed in failure cases. We need to agree from now on that if we're going to talk about CAP theorem, that we are talking about guarantees in failure modes, not optimistic modes. Otherwise, there is no value found by invoking the theorem.

And this strikes me as a particularly bold assumption given almost anyone's real-world experience: "It is partition-tolerant because all reads are in the local data center (partitions are assumed to occur only in the wide area, not in the local data center)."

No, kind sir. It is not partition tolerant if that is your assumption. It has already failed the P part of CAP if that's an assumption you are relying on.

I'm not trying to shoot the article or the authors down here. Now that CAP theorem has been proved to be a conceptual "pick 2" situation, of course we have to do everything we can to make up for that and do our best, and this seems like a great effort at that.

But I think that the authors fundamentally misunderstand the point of writing a paper about a data store and its relationship to CAP theorem. It's not about optimistic cases, software development patterns, or libraries that sit on top of the data store.

It's about guarantees of what happens in failure modes. From reading this paper, all I can tell with certainty is that it's not consistent, and it's not partition-tolerant. It's highly available. To me that seems like it's a step backwards from platforms that are, or at least aim to be, CA or AP.

<comment><USER6> That is good point, so far I see one potential explanation, but it presumes that clients are on equal footing with other peers in the system. Whenever you send a write and destination discovers that it doesn't have all of writes operations this write depends on, you send them as well. On the other hand, if clients are tracking only dependencies without actual data behind them, then I don't see how to ensure availability - maybe with fixed entry point to the system (one for each client), but then it is not exactly available.

EDIT:

I did look at the actual paper [0], they provide a strong consistency within local data center, and a causal consistency with convergent conflict handling across data centers. They presume that each client resides within a data center, so it is essentially a variant of fixed entry point solution I mentioned earlier.

Additionally, what it quite important, you lose causal consistency if client connects to different data centers.

[0] Don't Settle for Eventual: Scalable Causal Consistency for Wide-Area Storage with COPS</comment></comment>


SliderNav: iPhone-Style Contact Lists Using JQuery and CSS - <AUTHOR> http://devgrow.com/slidernav/

<comment><USER2> Interesting. I built a webapp with jqtouch, which does something similar: <http://jqtouch.com/></comment>


Labels used to suppress ideas - <AUTHOR> http://www.paulgraham.com/labels.html

<comment><USER2> I found this essay little more than ableist abnormal abusive adult age- inappropriate ageist aggressive annoying anti-arab anti-black anti-disability anti-gay anti-intellectual anti-semitic atheistic biased bigoted blasphemous bourgeois classist coarse communist corrupting critical crude dangerous degenerate degrading defamatory defeatist demeaning derogatory destructive deviant dirty disabilist discriminatory disgusting disloyal disrespectful disruptive distasteful disturbing divisive elitist ethnocentric erotic eurocentric exclusionary explicit extremist fascist fifth columnist filthy frivolous foul gay genderist graphic gross harmful harrassing hateful hate-ist heterosexist holocaust-denying homophobic homosexual hostile hurtful illegal immodest immoral impertinent impious impolite improper impure in bad taste inappropriate indecent indecorous indelicate inflammatory insensitive insulting intimidating intolerant irregular irreverent judgemental lecherous lesbian lesbophobic lewd libellous licentious lookist low lubricious lustful malicious menacing militant misogynistic mocking morbid nationalistic nazi negative objectifying objectionable obscene off-color offensive orientalist out of line patriarchal perverted phallocentric pornographic prejudiced profane provocative prurient questionable racial racially insensitive racist radical reactionary revisionist risque rude sacrilegious salacious satanic scandalous scatalogical scurrilous selfish sexist sexual sexually explicit sexually oriented shameful sinful sizeist slanderous smutty speciesist stereotyping subversive suggestive supremacist tactless tasteless threatening treasonous unacceptable unamerican unauthorized unbecoming uncalled-for unchaste unchristian uncivil unclean undemocratic undesirable undignified unethical unfair unfit unfitting ungenteel unhealthy unlawful unnatural unnecessary unmentionable unpatriotic unprofessional unrefined unscientific unseemly unsuitable untasteful unthinkable untoward unwanted unwelcome unwholesome outdated violent vulgar wanton xenophobic claptrap.

</comment><comment><USER3> What the Hays Code was for movies in 1930, the Comics Code Authority was for comics in 1954: <http://en.wikipedia.org/wiki/Comics_Code_Authority>

I find it even more shocking because it was created a quarter century later, and it seems even more ridiculous. Hays covers the content of movies, but the CCA dictates even the title: "No comic magazine shall use the word horror or terror in its title".

I'm sure my grandchildren will say exactly the same thing about my generation, but I cannot imagine how that one word would cause anybody to even blink.

Other awesome things the CCA prohibits: gruesome, gory, unsavory, evil.

<comment><USER4> I find that less shocking, since while films were aimed at a general audience, comic books were aimed at children. If you read it as a list of things that are unsuitable for small children then a lot of it still sounds fairly reasonable (with certain obvious exceptions).

</comment></comment><comment><USER5> The contents of this post are unconscionable and must be taken down immediately! Although he claims to condemn the suppression of ideas, Paul Graham merely provides this community with the most effective tools for such behavior. Perhaps this is nothing more than a calculated way to profit from the censure of others all the while claiming to disapprove of such censorious acts.

</comment><comment><USER6> Labels? How incredibly crude! Around here we've got much more sophisticated method of suppressing unpopular ideas. Like karma.

<comment><USER7> How true... I've actually typed out a few comments before and decided not to post them because I figured they would just result in a bunch of down-voting without any response.

These weren't trolling comments either, but legitimate arguments that popular opinion would probably disagree with.

If pg is really concerned about suppressed ideas, he should require that people give a response when they downvote and have a separate flag for "trolling" or "spam"-like comments.

<comment><USER8> My understanding is that downvoting is only for trolling or spam-like comments. Disagreement is good, disagreement can be healthy. A well-spoken (or even not-poorly-spoken) argument that is contrary to popular opinion should be _upvoted_.

If we don't allow, or punish, unpopular ideas we'll become a homogeneous mass with no new ideas.

</comment></comment></comment><comment><USER9> Should orientalist be orientalism? An orientalist is a person who studies oriental culture, whereas orientalism is the fallacy of constructing ideal types and then going out into the world to look for confirmatory examples. Unless orientalist can also mean anti-oriental; that definition isn't in Merriam-Webster and I don't have web access to the OED right now to check.

<comment><USER10> I took "orientalist" to be a pejorative in line with Edward Said's _Orientalism_ \-- i.e., accusing its target of attitudes shaped by Western imperialism. It's not really correct to use it this way, since "Orientalist" already has the meaning you describe, but I've seen it a handful of times in an idea-suppressing context.

</comment></comment><comment><USER11> "Is it wrong to call something unscientific?"

I'm surprised PG didn't follow this with: "Is it wrong to call something wrong?"

I think that:

wrong, bad, good, evil, should, right, etc.

Form the oldest and most commonly used category of meaningless, superficial, idea/difference suppressing labels.

<comment><USER8> Being unscientific isn't always bad or wrong. Science isn't the One True Path to Everything Meaningful. Calling something unscientific can be entirely correct, meaningful, and not derogatory. Using the label 'unscientific' to demean something that is scientific-but-worthless-or-wrong does a disservice to everything of value that isn't scientific.

This post wasn't created scientifically, that doesn't mean it's worthless. Ok, bad example (this post is probably worthless). All art gains it's value from something outside of science. That doesn't make all art worthless.

Science is an incredibly powerful tool, but it isn't the only one. When all you have is science, you start to see everything as a nail. Or something like that...

</comment></comment><comment><USER12> Not one of the better essays. Reminds me of somebody poorly channeling Chomsky.

Labels are nouns. That's all. Nouns have meaning based on how we use them. Guess what? Nouns are always imprecise. Language is slippery, my dear friends, as those of you who ever tried to write a system based on somebody else's input know.

So we're stuck debating and talking about things with words that flex a lot. That's why the #1 thing to do in a discussion, debate, or whatever is talk about terms. It sounds silly, but you have to say things like "when you say 'cat', what exactly do you mean?"

As a political junkie, let me offer an example. Reagan rallied against "tax and spend liberals" -- folks who thought of solving problems from the top-down using government funds and power, instead of from the bottom-up. He was so successful, he inspired a lot of radio commentators who beat the "liberal" phrase to death. As of today, the best word that describes what "liberal" used to describe is "progressive", although there are many who are proud to still be called "liberal"

The kicker is that "liberal" doesn't _really_ mean what Reagan used it for at all. It originally meant somebody supportive of free speech and action. Heck, as a libertarian, I am a classic liberal. We all probably are.

But most of us real people who live in the real world are stuck with messy words like these because humans are not machines. So we say wonderfully obscenely mushy things like "as a liberal I'm not at all supportive of the current progressive agenda"

There's a reason the Lincoln-Douglas debates went on for four hours or more. Language is tough to do. It does not reduce to something like p or ~ q. Labels only shut you down if you're damn fool enough not to qualify the label as soon as its used. I'm just glad I'm not writing AI to figure all of this out.

</comment><comment><USER13> progressive liberal conservative concensus centre extremist far-right respect

</comment><comment><USER14> Funny, the two most common labels I am hearing these days are not on the list: 'liberal' and 'conservative'. In political discussions a lot of ideas are suppressed - or at least verbally dismissed - using these labels.

<comment><USER15> Don't forget "moderate." Nobody liked Giuliani's being moderate, no no no. You're not safe ANYWHERE in the scale. Avoid it and you're "apathetic." Get too complex and you're "elitist" or "flip-flopping" or "hostile" (if the right crowd catches you trying to explain things).

...Man. I miss George Carlin.

<comment><USER4> _Nobody liked Giuliani's being moderate, no no no._

While he was too moderate for some (as was, for instance, Clinton on the other side), can you find me an example where "moderate" was used as a term of abuse against Giuliani?

"Moderate" really doesn't seem to belong on the list. I can't imagine anyone ever looking shocked and saying "That's such a _X_ thing to say" when X is "moderate", but it seems to fit for most of the other examples.

<comment><USER15> This might just be on reddit, but I've heard it said before. "If you weren't such a moderate perhaps you'd be more prone to logic."

But reddit is a bit wonky nowadays anyway, sadly.

</comment></comment></comment></comment><comment><USER16> Nice list, pg.

I'd like to offer a few "extensions"; that is, words that appear to mean one thing, but really mean something else altogether. Probably fit neatly into the idea suppression category...

      side effects
      2 party system
      best of breed
      Department of Defense
      early detection
      diversity
      Patriot Act
      war on drugs
      98% fat free
      politically correct
      national pasttime
      news
      right to life
      choice
      road rage
      baby boomer
      SUV
      write your congressman
      fast food
      HMO
      insurance
      alternative music
      higher education
      affirmative action
      moral majority
      side dish
      soft drink
      cure
      cofactor
      cause
      leading indicators
      inalienable rights
      with liberty and justice for all
      sitcom
      expert
      talking head
      preferred provider
      copay
      deductible
      IRS
      legal right of way
      public servant
      impartial
      defense of marriage

<comment><USER17> Huh? This sounds like a list of things that annoys you, not words used to dismiss otherwise relevant arguments.

<comment><USER18> I take it as a list of things that are used to suppress ideas by attaching misleading labels to them.</comment></comment></comment>


jQuery 3.0 Release Candidate - <AUTHOR> https://blog.jquery.com/2016/05/20/jquery-3-0-release-candidate-released/ <comment><USER2> Exciting news for jQuery.

Last night, I was working on a side project. For the front-end, I'm using React, React-Route, and I'm working on figuring out Fluxible. superagent to wrap XmlHttpRequest. browserify to compile what I serve to the front-end. I don't run a reverse-proxy with a node backend since the API is in PHP, I just served the minified JS files.

Honestly, it's a huge pain. And every module I toss in there seems to limit compatibility with the next one. The barrier of entry to doing things right is HUGE. Also, if you disable JS the site would be useless, 100%.

If I were to go with angular it would be even worse. I honestly may go back to jQuery on this project yet. I don't expect it to be huge, and since most Foundation plugins use jQuery anyway it should work. I honestly loathe how much crap I'm loading for two pages: sign-up / register.

<comment><USER3> > I honestly loathe how much crap I'm loading for two pages: sign-up / > register.

Sorry, but this is entirely your fault. You don't need any of what you mentioned to do this. You can just use jQuery if that works for you. No one except really bad junior devs on here or Reddit will say you are doing things "wrong".

PS: Use fetch instead of superagent.

<comment><USER4> Fetch support is awful. Rachel McAdams knew the future.

<comment><USER5> +1 for fetch. Use the good github fetch polyfill for old browsers [https://github.com/github/fetch](https://github.com/github/fetch)

<comment><USER6> I tried fetch, the polymorphic-fetch module that builds on this github one and found it doesn't support .finally(), or work with the promise.finally polyfill (yes I know it's not in the spec, but seriously).

Also sinon.js couldn't mock it, and dealing with error cases is inelegant (it doesn't look like much extra code, but is hard to justify if you're just writing a small component that hits one endpoint, in terms of weird new code to explain to your teammates that is).

I have gone back to $.ajax for now, though I do mean to try out qwest [1] when I get the chance. Seems to be both tiny and also have a sane promise-y API.

[1] [https://github.com/pyrsmk/qwest](https://github.com/pyrsmk/qwest)

<comment><USER5> Why you want stuff which is not in the spec? It's not in the spec it's not in the polyfill :/ Why the fetch from Github is not good enough for you?

<comment><USER6> Because needing to do something regardless of success or failure is incredibly common (e.g. stop a progress bar, re-enable form inputs & buttons).

The (promises) spec is lacking w.r.t. this use-case, and most ajax libraries (and a lot or promise libraries) recognise this by implementing a 'finally' equivalent.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> Major Changes:

.load, .unload, and .error, deprecated since jQuery 1.8, are no more. Use .on() to register listeners.

jQuery.Deferred is now Promises/A+ compatible

Error cases don't silently fail

Animations now use requestAnimationFrame

Massive speedups for some jQuery custom selectors

<comment><USER8> Is anyone using custom selectors? quick googling only returns 5+ years old results

<comment><USER9> I use :visible. The notes say it can increase speed 17x in certain cases.

<comment><USER7> The notes say it is computationally expensive and bad for performance.

        Using this selector heavily can have performance implications, as it may force the browser to re-render the page before it can determine visibility. Tracking the visibility of elements via other methods, using a class for example, can provide better performance.

To be clear, it is 17x faster than it _was_.

</comment></comment></comment></comment><comment><USER10> jQuery sizes by version and compression: [https://mathiasbynens.be/demo/jquery- size](https://mathiasbynens.be/demo/jquery-size)

<comment><USER11> Wow compression ends up working really well for JQuery. Almost all the post-2.0 code size increases get totally absorbed.

<comment><USER12> I'm not surprised, JavaScript is compression-friendly. Usually minification brings the file size down by about a x3 ratio, and gzipping does the same.

What always impresses me with jQuery is the amount of features they're able to pack in 250 Mb of uncompressed code. They've got browser events, ajax and a crapload of selectors. Compatible with most browsers. Oh and performance is nice as well. Kudos to the jQuery developers!

<comment><USER13> I think it's 250 Kb rather than Mb.

<comment><USER14> I did a double take at that as well.

Imagine trying to maintain 250mb of JavaScript spaghetti!

</comment></comment></comment></comment></comment><comment><USER15> This looks intersting: [https://github.com/jquery/jquery/issues/2653](https://github.com/jquery/jquery/issues/2653)

we use jquery in an angular code base and have long wanted a build without Ajax which is huge and that is useless in angular

</comment><comment><USER16> I'm finding I don't need jQuery anymore. What are the reasons people still use it?

<comment><USER17> jQuery also tends to handle a lot of assorted browser quirks, giving you a consistent api to call.

<comment><USER18> Yeah, initially they was one of its biggest selling points.

<comment><USER19> And now it isn't?

<comment><USER18> Read the ancestor comments.

</comment></comment></comment></comment></comment><comment><USER20> Since I used d3.js for one project a few years ago, I have not touched jQuery ever since. d3 offers key jQuery features, but goes much more beyond that.

<comment><USER21> I've often head this and it would probably be in my next-side project. Do you have an AJAX API bundled with D3 or are you using some custom functions ?

<comment><USER22> you can use whatwg-fetch instead of jquery ajax

<comment><USER23> native fetch is not available in IE<11

<comment><USER22> whatwg-fetch polyfill works well

</comment></comment></comment></comment></comment><comment><USER24> Good reason to make jquery.com design mobile friendly.

</comment><comment><USER23> If you look for simplicity have a look at DOM99

[https://github.com/GrosSacASac/DOM99](https://github.com/GrosSacASac/DOM99)

</comment><comment><USER25> Since the oldest supported version of IE is now 11:

[http://youmightnotneedjquery.com/](http://youmightnotneedjquery.com/)

"jQuery and its cousins are great, and by all means use them if it makes it easier to develop your application.

"If you're developing a library on the other hand, please take a moment to consider if you actually need jQuery as a dependency. Maybe you can include a few lines of utility code, and forgo the requirement. If you're only targeting more modern browsers, you might not need anything more than what the browser ships with."

<comment><USER26> According to the upgrade guide ([https://jquery.com/upgrade- guide/3.0/#browser-support](https://jquery.com/upgrade-guide/3.0/#browser- support)), jQuery 3 still supports IE 9+, not 11+.

</comment></comment><comment><USER27> it's jQuery not JQuery

<comment><USER28> I think HN auto-capitalizes the title.</comment></comment>


Cars are more dangerous than guns and should be banned immediately. - <AUTHOR> http://www.heritage.org/Press/Commentary/ed113099b.cfm

<comment><USER2> Cars _are_ banned in most places. They're only allowed in roads and parking lots, and even then with severe restrictions. Start driving your car on the sidewalk or across someone's front yard and you'll be rapidy arrested.

<comment><AUTHOR> Cars are dangerous with those rules already in place. Should we ban cars from more places such as city centers?

<comment><USER3> Yes, of course. That would be a nice start.

</comment></comment></comment><comment><USER4> I'm _very_ strongly pro-gun, but I don't want to see political articles on Hacker News. Take it to reddit.

<comment><USER5> I second that. I've blocked Reddit (even programming.reddit) because it's a productivity killer for me. Coming here still feels work-related and gives me a tremendous motivation boost, and I'd like News.YC to stay that way.

</comment></comment><comment><USER6> The danger of something is not the only factor in banning it. It's the danger : utility ratio. Cars are dangerous, but their utility is very high. Guns are also extremely dangerous, and their only utility is their danger - they are made to kill people (and protect, as a side effect). We ban guns because we consider their utility low compared to their danger (replacing them with police and a civil society).

</comment><comment><USER7> This kind of posts just make me laugh, can someone really compare cars and guns?

I don't have the numbers but I'm pretty sure that heart attacks kills more people than cars and guns together, should we ban Mc Donalds?

<comment><USER8> or hearts? ;-)

</comment></comment><comment><USER9> Amichall, are you a troll? I mean this in the nicest possible way, but when I look at your submission record, you either don't think things through before posting, or you're deliberately trolling.

<comment><USER2> He seems to be like a troll in the sense that he likes to stir up controversy, but I don't think he has the same bad intentions as a troll. The hallmark of a troll is to engage people in long, acrimonious back-and-forths that push the thread to the right side of the page.

</comment></comment><comment><USER10> This post doesn't belong on this service - can anyone delete it?

<comment><USER4> The editors mark content they really don't want here as "dead", which means you don't see it unless you have the "showdead" option turned on in your profile. I don't think they ever delete posts.

</comment></comment><comment><USER11> What we need are robot cars and robot guns. Folks are working on both :) cars: <http://www.darpa.mil/grandchallenge/index.asp>

guns: <http://www.youtube.com/watch?v=pMkV8E2re9U> <http://www.youtube.com/watch?v=hQf0Q0JEdtE>

<comment><USER4> Far more appropriate for this site! I'm fairly impressed with this homemade automated sentry gun myself: <http://www.youtube.com/watch?v=Al-4_1kUBLc>

<comment><USER11> Yah, I've had a number of email threads with Aaron Rasmussen, the guy behind that system. Smart guy, now working on a startup call US Mechatronics <http://www.usmechatronics.com>

I love that it was "just" a summer project and I love that he tested on his brother.

They also did a pretty cool Wii controled samurai sword slashing robot arm. <http://www.youtube.com/watch?v=0qEotHQgUsg>

</comment></comment></comment><comment><USER12> The danger of something must be balanced with its utility. Cars are (sadly) unavoidable.

<comment><USER13> The "externalities" (CO2, traffic) are less extreme - at least on a per-unit basis, than threatening someone, or actually shooting them. We have the means, if not the will to make some attempts at calculating and taxing them. I wonder what those sorts of calculations would look like if you calculated a value for each person killed by guns in a given year and spread that out over their sales in a tax of some kind. Hrm. Anyway, yeah, cars are useful, guns I can and do live without.

<comment><USER4> Your comparison is invalid because you're comparing externalities from legal use of cars to externalities from illegal use of guns. Compare the externalities of legal use of cars (pollution, traffic, some crashes) to legal use of guns (pollution from lead and propellants, some accidental shootings) and illegal use of cars (crashes due to DUI, reckless driving, racing) to illegal use of guns (assault, murder).

<comment><USER13> Ok, so throw them all in there and see what comes out, it would be interesting.

Oops... I saw your other post about it not belonging here. I agree, let's drop it.

<comment><USER4> And I'm even more guilty for continuing it _after_ posting that.

Dropped.

</comment></comment></comment></comment></comment><comment><USER14> Cars aren't designed to kill. Guns are.

That said, take it to Reddit.

<comment><USER15> Guns are designed to propel bullets quickly and accurately. This is used for whatever people want to use it for, including sport, murder, and saving lives.

<comment><USER7> and I'm sure the gun industry earns billions of dollars each year just from people who loves sports!

<comment><USER15> why do you focus on sports instead of self defense?

<comment><USER7> I don't have a gun, in fact I believe that having a gun for self defense may increase your possibilities of getting killed, let me explain it.

Where I come from people are not trying to kill you, they are trying to steal your wallet or something, and if someone points a gun on me, i would prefer to give that person my wallet than to take out a gun.

Its just my opinion and I don't want to take the risk of someone shooting me because I pulled out a gun.

<comment><USER12> _let me explain it._

And let _me_ explain pi:

Pi is exactly THREE.

Actually, there's no "you" or "me" explaining it. The math behind the question is complicated and most people instantly fall into the mistake of pretending it is simple.

<http://www.google.com/search?q=more+guns+less+crime>

From Amazon's review,

 _In retrospect, it perhaps should not have been surprising that increasing the number of civilians with guns would reduce crime rates. The possibility of armed victims reduces the expected benefits and increases the expected costs of criminal activity._

Well, maybe. Maybe not.

<comment><USER7> It is in fact a complicated question, let me say that you are focusing only in US statistics.

That assumption may not work in other countries.</comment></comment></comment></comment></comment></comment></comment>


Ask HN: Which MOOCs are often overlooked? - <AUTHOR> Which online courses/MOOCs are of superb quality but aren't well-known (regardless of topic)? <comment><USER2> I think it's been taken down, but the Startup Engineering MOOC on Coursera taught by Balaji Srinivasan (of Stanford + a16z) was extremely valuable to go through, both from a technical and non-technical standpoint. It was kinda like the "How To Start A Startup" course going on right now except slightly more preparatory for the technical challenges involved.

<comment><USER3> Here is the course page [http://online.stanford.edu/course/startup- engineering](http://online.stanford.edu/course/startup-engineering) and [http://startup.stanford.edu/](http://startup.stanford.edu/)

and

the course videos [https://www.youtube.com/playlist?list=PL58C6Q25sEEFVyISrZc80...](https://www.youtube.com/playlist?list=PL58C6Q25sEEFVyISrZc80RhYFpyMF_DYl)

</comment></comment><comment><USER4> Citizen Maths: [https://www.citizenmaths.com/](https://www.citizenmaths.com/)

> Citizen Maths is for people who want to improve their grasp of maths, and > become more confident in using maths at work and in life. Maths may have > passed you by at school. Or you may be rusty. Maybe you've passed maths > exams but find it hard to apply what you know to the types of problem you > need to solve now. Problems like using spreadsheets, judging amounts or > assessing odds.

> If so, then Citizen Maths may be for you.

> The course is at 'Level 2' — the level that a 16-year-old school leaver is > expected to achieve in maths.

It's from the UK.

<comment><USER5> How would you compare this to Khan Academy, which also has math up to (and beyond) 9th grade

</comment></comment><comment><USER6> For entrepreneurship, I would recommend: (a) Technology Entrepreneurship, and (b) Venture Deals with Brad Feld -- both are team and project-based experiential courses offered via novoed.

Technology Entrepreneurship is focused on the lean startup. The next session is expected around June.

Venture Deals is sponsored by Kauffman Fellows Academy and TechStars and is all about funding. A new offering just started and you can still join at [https://app.novoed.com/kfa-venture-deals- spring17/](https://app.novoed.com/kfa-venture-deals-spring17/)

</comment><comment><USER7> [https://www.educative.io/learn](https://www.educative.io/learn)

<comment><USER8> He said MOOC, not platform.

<comment><USER7> Yep. I don't no why, but I always misunderstood the term MOOC. Thanks :)

</comment></comment></comment><comment><USER9> Apparently, MOOC is a "massive open online course."

</comment><comment><USER10> fast.ai

<comment><USER11> I'm thinking of taking the course. How is the course when compared to other mooc?

</comment></comment><comment><USER12> For me, MOOC were initially a bet that the way we work, would shift from the classical way where you are employed for years at the same place, to a gig economy. The reasoning goes like that: If you spend only a short time with employers, then you do no need to waste long time in universities. On contrary you could take a quick course on the needed subject and would prove your fitness to a job by other means (Github/Hackaday/...)

Unfortunately all classical long term jobs will not disappear overnight, companies are social constructs because they have customers that are human, they need people they can trust. In addition, the gig economy had frightened many so many people, that they thought that having a university degree is the best way to escape it. So much for the MOOCs.

I think that as usual (and as Paul Graham said in 2012) universities will be challenged by new comers, but for me it will not be MOOCs. Universities are becoming more and more commodities (as reported in another HN discussion which says that the average IQ of the increasing masses going to university, is diminishing simply as the result of the IQ distribution law). Employers will trust them less and less to select the best individuals.

This is not new, I remember during the mid 90', there was a recruiting crisis, there was not enough people mastering the C language, the answer was not to make everybody to learn it, it was to invent new languages (Java/PHP/Python) that were much less demanding and also new tooling (IDE) making it possible for less gifted but more numerous people to enter this industry.

So the next thing will not be MOOCs or more people to universities, but tooling like DARPA's AIDA [0] applied to science. On a lesser scale, tooling like Galaxy[1] in biology, are excellent steps in the right direction.

There are many benefits for the society at large to create tools to plan, assist, track and audit the intellectual processes, the science replication crisis is a good example.

[0] [https://padiracinnovation.org/2017/04/07/362/](https://padiracinnovation.org/2017/04/07/362/)

[1] [https://en.wikipedia.org/wiki/Galaxy_(computational_biology)](https://en.wikipedia.org/wiki/Galaxy_\(computational_biology\))

<comment><USER13> > This is not new, I remember during the mid 90', there was a recruiting > crisis, there was not enough people mastering the C language, the answer was > not to make everybody to learn it, it was to invent new languages > (Java/PHP/Python) that were much less demanding and also new tooling (IDE) > making it possible for less gifted but more numerous people to enter this > industry.

Python was invented in 1991, not in response to any crisis in the mid-1990s, none were innvented for that purpose, and IDEs were invented in the 1980s. The narrative you are weaving is creative, but doesn't really hold up to even modest scrutiny.

<comment><USER12> [https://en.wikipedia.org/wiki/Guido_van_Rossum#Computer_Prog...](https://en.wikipedia.org/wiki/Guido_van_Rossum#Computer_Programming_for_Everybody)

Excerpt:"In 1999, Van Rossum submitted a funding proposal to DARPA called Computer Programming for Everybody, in which he further defined his goals for Python:

        an easy and intuitive language just as powerful as major competitors
        ...
        code that is as understandable as plain English"</comment></comment></comment>


Ask HN: DevOps as service - <AUTHOR> So the past weeks I've been working on a product for startups and companies transitioning out of the startup mode.
Many probably remember being in "one big server" mode or "just bash and install mode".
And that's where the product comes in: it let's you import existing servers and transform that into a beautiful DevOps version.
Now roast me
On a serious note, for those just crafting a new startup my project can also spin up fully working infrastructure for running a modern Dev company.
Personally I love it because it is what I would have wanted in all the startups I founded but what do you guys think?
Honest opinions please. <comment><USER2> These kinds of products are extremely hard to get right.

You likely end up in an awkward position where big or serious companies don't take you seriously because they have their own ways and methods and teams and baggage and don't want someone else's magic touch.

And on the other end of the spectrum you have noobs who need way more hand holding than your stuff provides so your product is too technical for them.

Another problem is a case of "death by a thousand cuts". You inherently end up dealing with an infinite combinations of environments and requirements and you can't fully satisfy any one group of customers because each one is just different enough to cause a problem.

So put simply I would say something like this is too abstract and too general for a small operation.

Perhaps companies like Amazon can afford to dump resources into projects of this nature because they have the resources and they have the eco-system to put it into. But I would recommend against trying to bootstrap projects of this nature.

As a generic advice I would suggest attempting more concrete problems that have bright and clear boundaries and a finite and small domain so that you have a very clear "finish" point (and you will still never be finished).

A completely made up example to demonstrate generic vs specific, instead of "DevOps as a service" think "Hosted Redis as a service".

<comment><AUTHOR> Thanks, this has really been helpful input!</comment></comment>


Wired's Review of the Motorola Xoom - <AUTHOR> http://www.wired.com/reviews/2011/02/motorola-xoom/

<comment><USER2> I had a chance to experiment with a display model tonight, after a week of testing Honeycomb programs with the emulator.

It's definitely a slick piece of hardware, and it's very fast. Video looks good. Without a Google account or a network connection, I could only test a few applications. The first-party Google apps looked great. The third-party apps looked promising but immature, though I expect them to improve rapidly. The glass seemed to hold a few more fingerprints than the iPad, or perhaps they're just more noticable against the dark holographic theme of the desktop.

As consumer, I'd be drooling over the hardware but holding off for a month or two. As a developer, I'm buying one tomorrow—this is a _sweet_ machine to hack for, and I can live with a few rough edges.

</comment><comment><USER3> Loved the Anandtech review of the Xoom:

[http://www.anandtech.com/show/4191/motorola-xoom-review- firs...](http://www.anandtech.com/show/4191/motorola-xoom-review-first- honeycomb-tablet-arrives)

He always goes into great detail about display quality, performance and geeky stuff like that. In rendering webpages the Xoom really kicks the iPad's ass. The must be using the latest JavaScript engine from Chrome, together with the dual core CPU, it's amazing how much faster it is. iPad 2 will need some upgraded software and hardware to compete on that front. Altogether a solid device!

</comment><comment><USER4> My personal thoughts, which have been mirrored by a few other commenters, are that it will be hard to compete with a higher price and lower quality product (vs the iPad).

There was some discussion here recently, and an article on Slate (<http://www.slate.com/id/2286005/>) that talked about some of the reasons why Apple has managed to keep their costs low, and the fact that they had shifted from the premium end of the market to a mid-range cost point (which is always easier when you largely create the market).

Does this mean the Motorola Xoom and others to come will be to Apple what Apple computers were to PCs in the '90s?

If that anaology stacks up, there are lessons that can be applied - if you're going to cost more, be better, and be WAY cooler. But Apple itself really only started to grow again when they moved out of that paradigm - the iPod etc defined a market in the way the Mac never did. (That's why they ran Mac v PC ads, but never iPod v ???)

Apple learned that competing with a dominant player wasn't going to deliver the business profits and growth that they wanted. Yet Motorola etc are here, in the tablet space, giving it a try.

<comment><USER5> What's interesting in this case, compared to Mac vs. PC, is how the roles have changed - and I don't mean "Apple is on top", either.

On the desktop, the OS that ran on commodity hardware was the dominant force, even though there was no 'dominant' hardware supplier. And this made sense, since the desktop is very 'general-purpose'.

With tablets, the hardware is inextricably linked to the OS. The experience between different Android tablets is more variable than Windows ever was, as well as being largely dictated by the manufacturers - both by locking down the OS and the lack of hardware customisation.

Maybe this will settle down in a few years, but Apple have always been in better control of their experience, so naturally they're far ahead on this one.

</comment></comment><comment><USER6> Feels like it was rushed out - LTE upgrade needs that you send the hardware back to Motorola, the OS seems a bit buggy and there are not many optimized apps available yet.

On the other hand the hardware is great, the OS is mostly there and apps will most likely be there before long. The iPad's existence for a year and the looming 2nd gen makes situation worrying for Motorola - if it wasn't for the iPad, these would've been the points that would be ignored.

<comment><USER7> If they had waited for an optimized Flash implementation and spent more time fixing the OS bugs, they would have been beaten to market by the iPad 2 by a couple of months - most likely a death sentence at that point. Rushing it out is the smartest option, even if it means bizarre stuff like having a non- functional microSD slot.

<comment><USER8> > Rushing it out is the smartest option ...

Maybe if they just want to sell to early adopters and technical folks. All the non-techos I know who bought iPads have done so because they see it works pretty much flawlessly and doesn't have all the annoying problems that plague PCs. Motorola can't really expect to sell many devices in the consumer market with serious issues like these. People will just pick the iPad because it's cheaper _and_ works better.

</comment></comment></comment><comment><USER9> I wish I could make this comment longer, but it's only the high price stopping me. It needs to be cheaper than the market leader, the iPad.

<comment><USER10> Judging by the specs, they went for the "more powerful" route rather than the "cheaper" route. Also, in light of that Slate article (linked elsewhere in the thread) on Apple's control of hardware supply, it might be very difficult to make a cheaper tablet with both a good experience and a decent profit.

<comment><USER9> The iPad experience is equally or more powerful in the consumer's eye.

On the technical front, Apple accomplished performance with code elegance as opposed to throwing hardware at the problem, as the Android team often does.

This is due to generally better code & more elegant, tightly-tied-to-hardware frameworks. Android will get there, but Honeycomb ain't.

</comment></comment></comment><comment><USER11> Speaking as someone who has no intention of buying a tablet right now and probably won't buy a Motorola or 3G enabled one anyway, the reviews all sound pretty good to me. At some point in the future it seems there will be a cheap Android tablet that meets my needs.

All the downsides seem trivially fixable, but no-one will be able to fully assess it until after the iPad 2 gets revealed. I'm guessing though that Google have done enough to bring it down to highly subjective hair-splitting about "feel" with only a few clear pros and cons on each side.

</comment><comment><USER12> 1\. Mentioned nothing about battery life or performance. I'll admit performance is possibly a geeky request but for a mobile device going up against the battery-life king, that is annoying.

2\. Moto should have started with the WiFi only version first, seen if people were interested and moved up from there... but entering the market at $800 with no appreciable "big win" over the comparable iPad (that is cheaper)?

Why would you do that.

<comment><USER6> Engadget and Walt Mossberg got around 8 hrs battery life which is quite acceptable.

<comment><USER13> CrunchGear said 18-20 which really sounds like a typo. Or they think the locked state counts.

<comment><USER11> I don't think it's a typo, just an estimate. They say they used it normally (i.e. not a rigourous benchmark like Anandtech) for 10 hours and had 67% battery left. I guess they just extrapolated from there.

</comment></comment></comment></comment><comment><USER14> I'm curious to see how Flash will effect batter life when the Honeycomb version is released.

<comment><USER15> Considering, it's optional, the browser lets you load it on demand, and I rarely ever have to use Flash, ever, nowadays... I'm guessing not much.

<comment><USER8> Hopefully so. It will also depend on how good the OS is at swapping out any running Flash processes in the background. If a website with Flash left open in the background drained your battery quickly without you realising it, it would be quite irritating.

</comment></comment></comment><comment><USER16> I like Engadget's review better: <http://www.engadget.com/2011/02/23/motorola- xoom-review/>

Summary: Apple's March 2 announcement better be good.

<comment><USER17> "Is the Xoom a real competitor to the iPad? Absolutely. In fact, it outclasses the iPad in many ways. Still, the end user experience isn't nearly where it needs to be, and until Google paints its tablet strategy and software picture more clearly, we'd suggest a wait-and-see approach. Honeycomb and the Xoom are spectacular -- unfortunately they're a spectacular work in progress."

Given their closing words, and the high price of the Xoom, I think they wouldn't have as strong words as you</comment></comment>


Running Proxmox? Interested in Kubernetes? Ansible Project to Build a Cluster - <AUTHOR> https://github.com/zimmertr/Bootstrap-Kubernetes-with-QEMU <comment><AUTHOR> Hi all, OP here with some more context.

I've recently been working on an Ansible project to declaratively build a 4 node Kubernetes cluster. I feel like it's getting to be stable and I would love some testers and some ideas for how it can be improved.

My goal in all of this is to help get people started with running Kubernetes in their bare metal homelab environments as I feel like the learning curve to create a fully functional environment is quite steep at the moment. Especially since the Kubernetes ecosystem is so fragmented.

The project is currently capable of configuring the virtual machines through cloud-init and provisioning them with a custom networking definition so you can put them on specific VLANs. It uses Calico as the CNI and has support for provisioning an array of additional deployments such as an NFS Storage Class, MetalLB Load Balancer, NGINX-Ingress Controller, and DataDog Stateful Set.

If you're interested in contributing, there are two big things I could use help with right now.

1\. Adding multi-node support as I only have a single Proxmox compute node. 2\. Working out how to dynamically build the MetalbLB configuration file based on whether the user wants to use BGP or Layer 2 and how many Address Pools the user wishes to configure.

More to come in the future, as soon as I better understand what the community is looking for. :)

PS: Here is another repository containing my other Ansible projects for deploying common home server applications to Kubernetes. Currently I have support for Unifi Controller, Plex Media Server, Deluge, Radarr, & Sonarr. All of which work well with this deployment method. [https://github.com/zimmertr/Kubernetes- Manifests](https://github.com/zimmertr/Kubernetes-Manifests)</comment>


Show HN: Drupal/ubercart based webshop - <AUTHOR>

Not built by yours truly but by a very good friend and possibly one of the best Drupal Dev's I've come across.
It's built with Drupal 7 e-commerce solutions using the ubercart module.
User feedback is one thing but what he's really keen to see if some feedback from people who genuinely understand the tech behind these builds and I figure this is as good a place as any for that.
I'll forward him the link so he can see the feedback and he'll happily answer any questions via myself.
URL: http://www.leschoixderomy.com/ <comment><AUTHOR> Clicky: <http://www.leschoixderomy.com/></comment>


Can we tokenize behavior? - <AUTHOR> http://arnoldwaldstein.com/2017/12/can-tokenize-behavior/ <comment><USER2> There is some good substance buried here, but it's phrased in a voice thick with hype and slathered with emergent jargon/slang pidgin of folks mentally and emotionally invested in the loftier suppositions of the cryptocurrency movement. It's indistinguishable from a parody, but it's probably sincere.

By my reading -- and this is hard to glean -- the central thesis seems to be that cryptocurrencies shouldn't be used to one-to-one reimplement currently present systems of digital social interaction; instead, think about what can be accomplished from the ground-up when your individual, small-time holders are vested.

It's both cutely observant, and painfully oblivious to nearly all of human history, where individuals pooled together resources to build, invest, serve as a patron to the arts, etc -- a range of activities from basic survival to abstract societal good.

</comment><comment><USER3> I can't really find any substance here to latch onto. But the idea of distributed crypto remaking society is nothing new. I first ran into it in the early nineties via Bruce Schneier's "Applied Cryptography". All these algorithms could provably make voting, anonymous cash, messaging, and more totally secure and unbreakable! We were on the cusp of a technolibertarian utopia! The internet was going to make it happen and this new "world wide web" would make it accessible to the masses.

Turns out, as Schneier himself long ago realized, it's more complicated than that, and the combination of malicious actors and human nature render every technological solution ultimately fallible.

The blockchain is not going to solve the basic issues of human fallibility and gaps in trust. Further attempts to quantify human experience, this time into cryptographic tokens, will not change the goals or capabilities of governments, criminals, corporations, or individuals.

We won't code our way out of our problems. We need to stop fooling ourselves and start looking for real solutions.

<comment><USER4> > The blockchain is not going to solve the basic issues of human fallibility > and gaps in trust

Yet here we are. With a globally traded decentralized token. What more evidence do you need that "the game has changed"?

<comment><USER5> Time; the coin sees little use in any fundamental market. If it were to crash and vanish tomorrow, relatively little would be affected.

It's difficult to claim "Something has changed the game", if it can't even accomplish being noticable in its absence.

It exists, and it can sometimes be used, and some people think it will be used. Thats about all you can say about it.

<comment><USER4> I'm speaking broadly to decentralized "blockchains". If any or all were to crash _a new one will replace it_. In that sense the cat is out of the bag and "the game has changed". It doesn't matter if any websites from the 90's still operates, the internet was a game changing invention regardless of when mass adoption took place.

<comment><USER5> Well no, bitcoins current value is clearly primarily based on speculation, and distinctly divorced from its value in usage. If it vanished tomorrow, and was replaced, the new coin will likely _not_ reach the same height as bitcoin; its speculative valuation would vanish, and it would reach merely bitcoins true value (based on its utility). And its true value is likely quite low; at least nowhere near where its at today.

That is, bitcoin doesn't yet justify its own existence. A new one will replace it, but hardly _out of necessity_ , rather simply because it is trivial to do so. If its existence was suddenly erased, few systems would be affected (mostly layer 1 actors, those directly associated with bitcoin: miners, coin devs, a few startups, etc) and most corrected quite quickly. there's not yet a true _dependency_ on cryptocoins or blockchaind; the game is the almost exactly the same as it was with or without the bitcoin paper.

Its not _yet_ changed.

<comment><USER4> > If it vanished tomorrow, and was replaced

But it won't vanish. I'm still waiting. If you can make bitcoin vanish I'd give you some credibility. Until then you're amongst a sea of journalists declaring the death of crypto. I'm waiting for it and I mean that sincerely. Yet here we are.

<comment><USER5> What in the hell are you going on about? Im just talking about whether or not you should call it "game changing". Vanishing bitcoin is just a hypothetical.

<comment><USER4> [http://blog.ycombinator.com/building-for-the- blockchain/](http://blog.ycombinator.com/building-for-the-blockchain/)

The phrase "paradigm shift" seems to be thrown around quite a bit ;)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> I think we need to be careful about integrating blockchain into the fabric of societies, especially the social and emotional aspects.

'Think not of how to replumb or rewire the world, but how to create the environment where interactions can be different, social, within a new economic order.'

This gets me thinking of the episode Fifteen Million Merits (S1, Ep2) of Black Mirror.

<comment><USER7> Given the clusterfuck that was Facebook, I fear that there is less incentive to be careful than one would hope.

</comment></comment><comment><USER8> Bret Weinstein, the evolutionary biologist, recently discussed similar ideas in this interview: [https://www.youtube.com/watch?v=LzAgSp_O03I](https://www.youtube.com/watch?v=LzAgSp_O03I)

Here is a shorter piece of the interview that focuses a bit more on the specific idea: [https://www.youtube.com/watch?v=z4j-jRDTlJg](https://www.youtube.com/watch?v=z4j-jRDTlJg)

If anyone has links to more discussion about this subject, I would love to hear about it.

</comment><comment><USER9> We would do well to remember that BitTorrent came from Mojo Nation, which attempted to tokenize distribution long before Filecoin and the like.

Ultimately, "too cheap to meter" was the problem they encountered, so they stripped out the tit-for-tat portion and Bittorrent was released.

[https://elaineou.com/2017/10/14/the-transaction-costs-of- tok...](https://elaineou.com/2017/10/14/the-transaction-costs-of-tokenizing- everything/)

</comment><comment><USER10> I was hoping this was tokenize as in compiler theory, and was about interpreting body language with ML or so. Disappointed :(

</comment><comment><USER11> I stopped at 4th paragraph because I couldn't understand the author's ideas. Can anyone explain the following bit to me?

> _Like the inevitability of collective micro-ownership of commodities like > real estate, art, storage, even energy. These feel natural to the innate > structure of the blockchain itself_ [...]

<comment><USER12> This relates to the tokenization of all forms of ownership so it becomes easy to sell fractional ownership of otherwise difficult things.

<comment><USER13> We already have this, though: cooperative businesses. The most common being credit unions. Some grocery stores operate on this principle.

It's a good model and has been scaled up to large multinational corporation size in the Mondragon Corporation, but we don't need blockchain or cryptocurrency to do it.

I've been incredibly well-served by both credit unions and cooperative grocery stores.

Corporations exist to serve the interests of their shareholders. If you are a customer or employee of a corporation that you are not a shareholder of, then that corporation is not necessarily trying to do business in my interest but quite possibly could be operating at the _expense_ of my interests in order to serve the interest of the shareholders. We _hope_ that these interests are aligned, but often we see that they aren't. Cooperative businesses naturally align these interests by making the workers or consumers (or both) shareholders. And they remain voluntary.

It addresses many of the drawbacks of unionization, of traditional capitalist corporations, and socialism. It really should be copied more widely. Given my positive experiences with the cooperative business model, I would gladly seek out such businesses if they were more widely available.

<comment><USER14> "Why do we need Facebook? Friendster already did social networks. Why do we need google? Alta Vista already did search."

Crypto allows you to tokenize assets on a much more efficient, streamlined approach than structuring an entire business model in a formal co-op. The two are similar only in vague terms.

<comment><USER13> That'd be missing much of the benefit, though. If you don't restructure the business as a co-op, then the consumer or worker is not likely to see the same benefits. The structure of the co-op gives its small-time shareholders a similar level of acknowledgement/voice that big-time shareholders would have in a conventional business (and similar to what a union does for workers, except without the large amount of friction and unnecessary antipathy between management and the workers). Simply tokenizing ownership would not have this benefit.

<comment><USER15> Well that would depend on the token and its implementation details wouldn't it. If you own x% of the pool you get a voice at the table with x being adjustable. Or alternatively all the small token holders can choose a rep or series of reps to vote on decisions on their behalf.

<comment><USER13> Agreed! But now you're talking about changing the structure of the business somewhat. That is no longer "mere" tokenization. Something along these lines could work.

<comment><USER7> SingularityNET.io uses this approach somewhat:

> " _Democratic Governance._ Although token holders will not have equity or > voting rights in the Foundation itself, they will be allowed to vote on > specific decisions affecting the Platform. The decisions subject to holder > vote will be limited at first, but will eventually expand to a point where > the token holders and the Foundation share nearly equal control of all > aspects of the Platform's functionality. Even in the Platform's early > stages, following the token sale, token holders will be able to rate the AI > Services they use, affecting the success of those services and providing > feedback that is necessary for the service to improve. This role further > contributes to the continued improvement of the Platform and its offerings, > without any involvement of the Foundation."

<comment><USER13> In a coop, the members have full voting rights in all aspects. This is the better model.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> All this because we still haven't learned how to share?

<comment><USER17> We know how to share. We also know naively scaling up sharing to 7-billion participants doesn't work.</comment></comment>


TypeScript: New Compiler and Moving to GitHub - <AUTHOR> http://blogs.msdn.com/b/typescript/archive/2014/07/21/new-compiler-and-moving-to-github.aspx <comment><USER2> And while they move, they are filing issue bankruptcy.

574 open issues exist for TypeScript on Codeplex. [https://typescript.codeplex.com/workitem/list/basic](https://typescript.codeplex.com/workitem/list/basic)

"Please note: since we're moving to a new issue tracker and a new codebase, we are not copying all issues over. If you have issues in the current CodePlex issue tracker, please try them against the new codebase and file them in the GitHub issue tracker if they still repro."

Github is back up to 117.

Managing an open source community is something that the TypeScript leadership still have yet to learn. They weren't concerned about coordinating with TC39 on module syntax (they shipped 1.0 with an arbitrary snapshot), they were never very interested in accepting code, and they don't value the time users take to document bugs and edge cases.

tl;dr the move to Github is lipstick on a pig. It is a distraction from the real changes they must make on order to collaborate well with others.

<comment><USER3> all of that seems true for most repos on github. At least in my experience. I've spent the last 2 months learning node, checking out npm modules, finding bugs, seeing the projects abandoned, lots of issue filed, pull requests ignored, etc.. Maybe I've just been unlucky but this hardly seems like an MS specific thing?

<comment><USER4> I think this is partially due to the informality that many GitHub users tend to have with respect to managing their projects.

It's rare to see a GitHub-hosted project that offers proper releases, proper planning for those releases, proper documentation, and the organization and project management efforts that enable such things.

The lack of such basic project management structure leads to projects that see very erratic development, or outright abandonment. Many GitHub-hosted projects are barely more than a hobby, rather than an ongoing concern. Their code may be somewhat usable, but it's rarely comparable to what we see from more organized projects.

<comment><USER5> Proper release planning for tiny one man fifteen users project is very little planing.

Those projects do not get erratic development or get abandoned because they lack "proper planing". That is reversing cause and effect. They lack heavy planing because their development depends too much on free time of one or two people, who have other life priorities. No amount of planning will change that.

</comment></comment></comment></comment><comment><USER6> The move to Github is interesting. I'm wondering if this is harbinger of Codeplex's doom very soon.

<comment><USER7> This is part of the new face of Microsoft. They realised that they are losing their followers in the developer community by sticking to their old ways. They've been 'listening' to the public opinion a lot lately.

<comment><USER8> I just got off the phone with a recruiter who offered me a chance at a Ruby job based on my ASP.NET experience because, quote "they have a lot of old C# guys there and they're willing to train anyone willing to cross over".

This means I can make a lateral (stack) move without having to revert back to "junior" status. Hey, I love me some C# and .NET but the offers from the open- source community are just too tempting.

I booked an interview.

<comment><USER9> Isn't Ruby considered a passing technology nowadays?

<comment><USER10> Isn't just about everything? Hypothesis: For any language X, there exist articles claiming either "X is too immature for real-world use" or "X is no longer a good choice for new development".

<comment><USER4> Ruby on Rails is somewhat of a special case, though.

Early web technologies like CGI, PHP, JSP, ColdFusion, ASP and ASP.NET arose due to real-world needs.

Ruby on Rails, on the other hand, arose mainly due to hype.

From a technological perspective, there really wasn't anything special about Ruby on Rails. Many of us who had been doing web development for some time had already built or used proprietary/in-house frameworks that offered the same functionality, but were written in Perl, Python or Tcl instead.

If it weren't for strong and very loud personalities within the Ruby on Rails community, combined with some very lucky timing with respect to the rise of the so-called "Web 2.0", it likely wouldn't have been seen as "special", and wouldn't have garnered the hype that it did.

Technologies that come out of an environment of hype, rather than solving real problems, tend not to stick around as long. Systems built using technologies that solve real problems continue to be used and maintained. Systems built using technology chosen purely because some manager or executive saw a webcast full of nice-sounding buzzwords tend not to survive very long.

<comment><USER10> The idea that Rails' popularity came from managers hearing buzzwords doesn't match my recollection of history. Rails' early support came from backend web developers who hated working in enterprise Java frameworks. Ruby on Rails offered them a pleasant and easy-to-jump-into alternative to that environment.

I remember Pythonistas at the time raised similar complaints about how Python already had all this stuff — but the thing is, Rails did a nice job of packaging it up in a way that was easy for disaffected Java jockeys to get into and start having fun, while the Python approach at the time was more along the lines of "take this thing and that thing — or maybe one of these five other things, we can't decide — then make this other piece yourself and stick them together with chewing gum."

Rails did come to prominence largely through social channels rather than technical superiority, but it wasn't a marketing-driven hype train targeted at nontechnical managers — it appealed to hackers who wanted to have fun but did not already have a homebrew Perl stack at the ready.

That's how I remember it, anyway.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> Slightly off topic, but can anyone share a link to a large, well designed (open-source) codebase written in TypeScript? Github incorrectly/mistakenly tags C projects at TypeScript thanks to the `.ts` files present (thanks for picking a unique TLA Microsoft ;)

[0] [https://github.com/trending?l=typescript](https://github.com/trending?l=typescript)

<comment><USER12> This beta product for a firebase security compiler is written in typescript (by me) for node.js

[https://github.com/firebase/blaze_compiler](https://github.com/firebase/blaze_compiler)

Typescript has been a joy to develop in. The codebase is a mix of typescript and plain JS for some of the parsing.

There are a few interesting architectures patterns like a work around for no subclassing of Error by wrapping an error with a backwards chained decorator

[https://github.com/firebase/blaze_compiler/blob/master/src/e...](https://github.com/firebase/blaze_compiler/blob/master/src/error.ts)

(thanks to mindplay for that idea here [https://typescript.codeplex.com/discussions/465345](https://typescript.codeplex.com/discussions/465345))

That product is still in it's infancy so gradually being refactored towards full modularisation, so its still a work in progress.

FYI: I use pycharm with the node.js plugin, and typescript compiles in the background without intervention, and I can step debug the program, and the line at the top off all the files transparent changes the stack traces back into TS.

</comment></comment><comment><USER13> Good news. Compiler performance is pretty horrible at scale.

I hope that they implement in-memory compilation, so that the compiler can work properly with Gulp (which would also increase build times). I also hope that they'll support automatic generation of ambient external declaration files. TypeScript doesn't work well with npm modules just yet because of that.

<comment><USER14> The really slow compiler performance was quite surprising. I switched back to coffeescript (then eventually switched to ScalaJs where they are much faster) because they were so long.

<comment><USER15> Having tried using JavaScript and TypeScript, I settled with Scala.js, too.

Stuff just worked better on all accounts: Language, tooling, fast compilation, good error messages, not having to touch JavaScript-related mess, etc.

</comment></comment></comment><comment><USER16> I still think - Dart is a better response to JS issues:

a) good SDK and package system (pub.dartlang.org)

b) clean break from JS (what if future JS will be incompatible with current TS ?)

c) perf - realted to b) you can't eg. add property on the fly accidently and will not get perf penalty for this

d) proper IDE for ALL mainstream OSes (vs. best IDE on Windows and substandard on OSX/Linux => various plugins)

<comment><USER17> Never heard anyone say Dart's package system is better than NPM.

Latency makes Eclipse unusable on every machine I've tried, including a current Haswell MBA with 8GB RAM and a half terabyte SSD.

Also: how many web developers do you know that use Eclipse?

<comment><USER16> >Never heard anyone say Dart's package system is better than NPM

neither do I - just say Dart has good dedicated (npm is for JS AFAIK) package system

>Latency makes Eclipse unusable on every machine I've tried

It's not as good as lets say IntelliJ (best IDE I've ever seen) but it's "good enough"

Besides - it seems long term goal for Dart team is chromedeveditor [https://github.com/dart-lang/chromedeveditor](https://github.com/dart- lang/chromedeveditor) (another point for Dart it's open source) which will be pretty fast when DartVM will come to Chrome

<comment><USER17> Trying Chrome Dev Editor I'm impressed - but generally, I don't think new languages should require new editors - better plugins for existing popular ones. I use Sublime, it's configured how I like, they can add the Dart AST for autocomplete etc to provide tab completion, renames, method lookups etc. if they want to.

<comment><USER18> We're working on exactly that - it involves making the Dart analysis engine run as a standalone server that that talk to different editors and provide code-completion, errors & warning, etc.

</comment></comment></comment></comment></comment><comment><USER19> I'm excited by this. I think that moving to Github will help the image problem Typescript has and make it a little more accessible, and it's actually a very useful + powerful technology. Compiler errors on refactors are great :)

</comment><comment><USER7> This is great news. Typescript compiler's slowness negatively affected my work flow. Hopefully 5x is fast enough.

<comment><USER20> I haven't used Typescript yet, but I'm very keen on it. How fast is the compiler currently for you? (eg. seconds or minutes?, and how big is your codebase? (eg. 10k or 100k?)

<comment><USER19> On a 7kloc codebase it was around 3 seconds before the new compiler, seems to be about 1 second after.

<comment><USER21> I haven't tried the new compiler yet, but note that a lot of the compiler's slowdown comes from parsing lib.d.ts each time it's invoked. So the time taken for compiling X lines of code doesn't scale in a linear fashion - a helloworld will probably take a long time for you to compile too, but remove the dependency on lib.d.ts and the same helloworld will compile very much faster.

</comment></comment></comment></comment><comment><USER22> In the playground, the following:

class Greeter { greeting: string; constructor(message: string) { this.greeting = message; } greet() { return "Hello, " \+ this.greeting; } }

Compiled to the following:

var Greeter = (function () { function Greeter(message) { this.greeting = message; } Greeter.prototype.greet = function () { return "Hello, " \+ this.greeting; }; return Greeter; })();

So I have a question about this: what is the reason why it doesn't become the following instead?

function Greeter(message) { this.greeting = message; } Greeter.prototype.greet = function () { return "Hello, " \+ this.greeting; };

In other words, why is the extra function put around it? There must be a good reason... Thanks!

<comment><USER23> It's a closure, so stuff doesn't escape unless it's explicitly returned.

It doesn't seem to be needed here, but their transpiler could use the same structure for more evolved classes/module too, where it would make sense.

</comment></comment><comment><USER24> The closure compiler is also pretty slow, a way around it is to keep a warm jvm and compile that way (70% performance increase over time). I assume a similar strategy is not possible for typescript, which is a pity.

Typescript seems pretty cool, lack of dead code analysis and the inability to write my own compiler passes (I have looked for this, but it does not seem to be an option - would love to stand corrected) puts me off it.

</comment><comment><USER25> Great to see typescript evolving. It's a nice approach developing software for browsers. Now we need tools bringing the bits (angular, breezejs, typescript etc) together.

</comment><comment><USER26> I know there's this 'dont host on github' ethic from some people, but it's undisputable that it lowers the barrier to entry for contributions.

I cant speak for anyone else but on github I will now almost always submit a pull request for a fix instead of filing bugs.

Great move for typescript~

</comment><comment><USER27> How is TypeScript compiled? I only find .ts files in the repo.

<comment><USER28> TypeScript is bootstrapped. Precompiled version of TypeScript compiler is at bin/tc.js.

</comment></comment><comment><USER29> Moving to GitHub!!?? As a open source project, at least it's on the right track now!

</comment><comment><USER30> Seeing Microsoft on Github feels like some weird parallel universe.

</comment><comment><USER31> The negative/cynical take: They're rearranging their internal deck chairs and spending time and effort on making their code pretty, rather than changing TypeScript (maligned, little-used, and little-loved) to be more relevant somehow.

I have no doubt that the slowness is a major complaint they get from TypeScript users, but at their current level of success/failure, they probably should be listening more to TypeScript non-users than users.

<comment><USER32> A project having enough time to schedule big rewrites (instead of new features) is often a bad sign.

<comment><USER33> I'm not sure that makes sense for typescript. It's aiming to be a very conservative extension of JS. Adding new features moves away from that goal.</comment></comment></comment>


The Pet Ravens of Charles Dickens - <AUTHOR> https://lithub.com/meet-the-beloved-pet-ravens-of-charles-dickens/ <comment><USER2> > Actually, Dickens made a bit of a habit of stuffing his dead pets. When his > cat Bob died, for example, he had one of his paws made into a letter > opener.

Being a guy with a couple of aging cats, this actually had me stroking my figurative beard. I wonder if this letter opener paw had one shiny, sharpened, metal claw as I'm led to imagine it? Sounds pretty cool, something any reasonably awesome family would keep as a cherished heirloom.

(And how did I overlook such a great name for a cat)

</comment><comment><USER3> If you love the idea of Dickens' Ravens, check out Drood by Dan Simmons. It's a fictionalized account of the last five years of Dickens life told through the opioid addled haze of fellow author Wilkie Collins, a Dickensian-David Lynch mashup dripping with Victorian detail and luscious shadows.</comment>


At Least Half of Americans Diabetic or Pre-Diabetic by 2020 - <AUTHOR> http://singularityhub.com/2011/02/17/at-least-half-of-americans-diabetic-or-pre-diabetic-by-2020/

<comment><USER2> Here is the actual study (3 links deep): <http://www.unitedhealthgroup.com/hrm/UNH_WorkingPaper5.pdf> . Take a look at page 8, the one that contains this prediction. It was made by taking the rates of diabetes and pre-diabetes in 2007 and in 2010 (37.0% and 39.9% respectively), and drawing a line through them to get 51.9. That includes a 26.3% (2007) and 28.4% (2010) rate of "pre-diabetes", which really just means a HbA1c test that was higher than average.

But between 2007 and 2010, the diagnostic test for pre-diabetes, the HbA1c, got much cheaper and became part of routine screenings where it wasn't before, so the slight uptick observed may actually be an artifact of increased testing, and it is definitely _not_ part of a trend that can be linearly extrapolated ten years out.

</comment><comment><USER3> It's true that obesity is a growing problem, and it is likely also true that nearly all cases of type II diabetes can be prevented with dietary changes. But, the article repeats the 'reduce saturated fat' meme, which lately has been called into question.

Gary Taubes [http://higher-thought.net/complete-notes-to-good-calories- ba...](http://higher-thought.net/complete-notes-to-good-calories-bad- calories/)

Robert Lustig <http://www.youtube.com/watch?v=dBnniua6-oM>

Cynthia Kenyon [http://donmatesz.blogspot.com/2009/12/how-insulin- controls-a...](http://donmatesz.blogspot.com/2009/12/how-insulin-controls- aging.html)

Nutrition and Vision Research at Tufts (Allen Taylor) [http://hnrc.tufts.edu/1192109687036/HNRCA-Page- hnrca2ws_1192...](http://hnrc.tufts.edu/1192109687036/HNRCA-Page- hnrca2ws_1192109688533.html)

Kurt Harris <http://www.paleonu.com/get-started>

Mike Eades <http://www.proteinpower.com/drmike/>

Uffe Ravnskov, "fat and cholesterol are good for you" <http://www.ravnskov.nu/cholesterol.htm>

LivinLaVidaLowCarb <http://www.thelivinlowcarbshow.com/shownotes/>

Weston A Price [http://www.westonaprice.org/dentistry/289-invisible- toothbru...](http://www.westonaprice.org/dentistry/289-invisible- toothbrush.html)

William Davis <http://heartscanblog.blogspot.com/>

etc.

<comment><USER4> Also, Marion Nestle: <http://www.foodpolitics.com/>

</comment></comment><comment><USER4> This article has a bad smell. One commenter said it best -- the author is confusing 'risk factor' with 'cause'.

<comment><USER5> Which is less bad, but still bad and doesn't change the fact that obesiety is a major problem that is growing rapidly.

<comment><USER4> Curiously, problems aren't solved with weak methods of inquiry. They're also not solved by pointing at them, jumping up and down, saying, "THIS IS A PROBLEM! SOMEBODY FIX IT!"

There's this thing our parents said to us, "Whenever you point a finger, there's three pointing back at you."

I guess they had a point, after all. Yes, there are FAT people. Yes, there are MORE fat people than there used to be. There are also more alcoholics, drug addicts, poorly educated children and incidents of road rage. These problems have more in common than not. And one thing they have in common is that people write articles about them using words like, "Scared yet?"

Useless tripe.

(eta: no pun intended)

</comment></comment></comment><comment><USER6> What fraction of "pre-diabetics" develop diabetes?

Note that people who live a long time actually consume more health care than folks who don't. Yes, even if the oldsters are "healthy" because they get more expensive and they keep consuming.

Black men in the US are pretty close to ideal from the public perspective. Their biggest contribution is that they die right around retirement, so they never see a dime of what they paid for govt retirement programs. However, not only do they pay the taxes that the rest of us pay (SSI and medicare), they also pay a disproportionate share of "lifestyle" taxes.

Yes, dying from lung cancer at 65 is cheaper from the public health perspective than living to 95.

</comment><comment><USER5> Is this limited tomthe US or is this a global phenomenon?

I would guess that all developed countries suffer from these issues to some degree, but the homeland of fast food and food franchises is probably world champion.

Nevertheless, you can't really blame McDonalds--People choose what they do and eat. Choose poorly, die young. But how can you argue for actual cooking with fresh ingredients in a society that does not value these activities? How can you make people see that fresh food actually tastes better _and_ literally makes you a more happy person? How can you show people that light workout can do more to enhance your life than any drug or TV show ever will?

<comment><USER7> What I don't get is why mcdonalds, with all their clout, doesn't make value meals that are good for your health at the same time. People are lazy, so if you allow them to be lazy and eat healthy food at the same time, there must be a goldmine of potential revenue there. McDonalds could create a market for healthy fast food and dominate it for decades to come, but they just sit there like couch potatoes.

Typical innovator's dilemma I suppose.

<comment><USER5> Fat, salt and sugar make stuff taste 'good' because these were rare resources when humanity was young. This is the simple recipy of McDonalds and it is true for all food, including healthy stuff. If McDonalds were to use less fat and sugar they would have to use more delicate and more expensive ingredients to keep it yummie.

Sadly, many people care more for simple and cheap (i.e. fat and sugar) than delicate and healthy (i.e. unprocessed food). Even though every doctor, cook and common sense would advise otherwise.

</comment></comment></comment><comment><USER8> This article also links to the following article on "Blue Zones", which is also very interesting:

[http://singularityhub.com/2009/07/20/blue-zones-places-in- th...](http://singularityhub.com/2009/07/20/blue-zones-places-in-the-world- where-people-live-to-100-and-stay-healthy/)

</comment><comment><USER9> Do you know how difficult and motivate oneself to an exercise routine, much less change diet to a healthy and more expensive one?

Yes, it's the individual's fault that he didn't do much about it. However, we must also recognize the obstacles that made it difficult for individuals to do something about it.

I drive to school. I don't ride bikes or walk to school. The road aren't bike friendly. The suburban landscape in which I live in, doesn't have sidewalks to anywhere. There are sidewalks, and there's the uncomfortable feeling of walking too close to traffics.

Whose fault is to promote and subsidize the car industry at the expense of human health and everything else?

Someday, I will move to a town where I can walk and ride bikes to my heart's content. Until then, I am focusing on becoming a viable programming freelancer.

Meanwhile, million of Americans don't have the same option. They got a house mortgage to pay, family to take care of..

<comment><USER10> FWIW: I have lived without a car for about three years. There are precious few sidewalks where I live. I considered getting a bike but decided that would be far worse than walking. At one point, I purchased a skateboard but failed to learn to use it. I leave for work on foot every morning and we do our shopping regularly on foot. Humans developed the ability to walk long before sidewalks were invented. They aren't really necessary, though, certainly, some terrain is more pedestrian-friendly than others.

If you are "unmotivated" and think it's hard, then it's possible you are already more unhealthy than you think: Lack of energy and mental focus for accomplishing goals is an early indicator of not really being well. And if you think eating healthier is too expensive, you should look into what it costs for medical care for a really serious chronic condition like diabetes. Google "diabetic ulcer". People get their feet amputated after these ulcers have eaten away flesh all the way to the bone. I guess having one or both feet amputated is a good reason to not walk anywhere. I would rather keep my feet though.

Giving up my car turned out to be wildly anti-climactic. The transition was really not that big a deal -- though I already lived close to work and shopping, so not everyone can just do it. But the first time I walked with my sons to the local grocery store, on the way back, my oldest said "That's IT?" He really thought it would be a lot longer walk than it was. My sons both prefer walking to being in a car. They get out more now than when we owned a car.

Peace.

<comment><USER9> _Giving up my car turned out to be wildly anti-climactic. The transition was really not that big a deal -- though I already lived close to work and shopping, so not everyone can just do it. But the first time I walked with my sons to the local grocery store, on the way back, my oldest said "That's IT?" He really thought it would be a lot longer walk than it was. My sons both prefer walking to being in a car. They get out more now than when we owned a car._

It took me 20 miles to drive to school. I can't imagine walking there.

BTW, I love to walk.

<comment><USER10> As I said: Not everyone can just do it. But you did not initially state "it's 20 miles to school". Your objections were things like lack of sidewalks, which I have found to be quite insignificant. Walking long stretches on pavement is actually quite hard on the feet and joints. My sons and I have endless criticisms of the "pedestrian highway" our city created. We have scathing things to say about most of their "improvements", which essentially turned a perfectly serviceable walking route into a bike path. Sigh.

</comment></comment></comment></comment><comment><USER11> Two highly-recommended resources for those struggling with diabetes:

<http://www.rawfor30days.com/> <http://www.drfuhrman.com/>

</comment><comment><USER12> Take 1000 mg Metformin twice a day. Walk 30 minutes every day. You'll be fine.</comment>


What Mary Had - <AUTHOR> https://stallman.org/articles/what-mary-had.html <comment><USER2> I think the fear of being watched by hacked IoT devices running closed-source software which is under control of a vendor will go a long way to help many people understand RMS' thesis, if they haven't done so before now. People tend to pay attention when the problem is on their doorstep (or in their living room, car, etc...).

<comment><AUTHOR> _Hypponen 's law_: Whenever an appliance is described as being "smart", it's vulnerable

[https://twitter.com/mikko/status/808291670072717312](https://twitter.com/mikko/status/808291670072717312)</comment></comment>


Sorting Algorithm Animations - <AUTHOR> http://www.sorting-algorithms.com/

<comment><USER2> Obviously a favorite - it turns up so often:

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

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

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

<http://news.ycombinator.com/item?id=555549> <\- This has some comments

There are more:

[http://searchyc.com/submissions/sort+algorithm+animation?sor...](http://searchyc.com/submissions/sort+algorithm+animation?sort=by_date)

<comment><USER3> Out of curiosity, are you keeping a log of popular HN posts or just remembering them and searching? You're always first on the scene and comprehensive, it seems.

<comment><USER2> I remember and search. My memory's pretty good, and my search-fu is also usually pretty good, although not always.

I'm currently looking at automating some of the process, but I do find that searching for stuff I think I remember occasionally turns up a gem I missed, and so I'm reluctant to automate it fully unless they still get found.

That's why I'm starting to feed items into a Bayesian classifier to find good stuff - by my standards and according to my interests. I continue to experiment.

<comment><USER3> I'd love to hear more details on your classifier. I've been interested in trying something like that for myself: a sort of automatic attention filter which brings both unmodeled outliers and probably-good articles to my attention.

</comment></comment></comment></comment><comment><USER4> Here's what different sorting algorithms sound like - <http://www.youtube.com/watch?v=t8g-iYGHpEA>

Bubble sort takes the most time. :)

<comment><USER5> Only because bogosort wasn't tried.

</comment></comment><comment><USER6> Another approach for visualizing sorting algorithms is <http://sortvis.org/>

</comment><comment><USER7> So is there an ideal case for selection sort that isn't shown or does it just suck?

 _Edit_ : Never mind they explained:

From the comparions presented here, one might conclude that selection sort should never be used. It does not adapt to the data in any way (notice that the four animations above run in lock step), so its runtime is always quadratic.

However, selection sort has the property of minimizing the number of swaps. In applications where the cost of swapping items is high, selection sort very well may be the algorithm of choice.

</comment><comment><USER8> In what sense are sorting algorithms more fundamental than say font rendering algorithms? Nowadays, they are both supplied in standard libraries and few programmers would implement either.

<comment><USER9> They are used in many more situations. A lot of problems can be reduced[1] to or contain a sorting problem. The same cannot be said about font rendering algorithms.

[1] <http://en.wikipedia.org/wiki/Reduction_(complexity)>

<comment><USER8> Rendering text is even more useful than sorting.

<comment><USER9> You are right in the sense that there is no formal definition for what makes an algorithm fundamental (AFAIK - I am no expert on the matter). However, the general consensus seems to be that since a large number of problems make use of or can be reduced to a sorting problem, it is more fundamental than font rendering which solves exactly one problem. In fact, I wouldn't be surprised if font rendering algorithms use sorting in some way.

</comment></comment></comment></comment><comment><USER10> Are there any other algorithms that can have these kinds of animations applied? Sorting works well and is easy to animate. What about graph traversal or network flow? I guess my real question is 'can all algorithms be animated in some way'? If not what decides it? If there were more than 4 dimensions I could see that being a problem right there.

<comment><USER11> What's the best way to instrument an algorithm for visualization? Snapshot its state at periodic, well-named points, and render illustrations?

I can imagine doing this with an A* search: snapshot the graph, including which nodes are open or already visited, along with the heap ranking of the next nodes to visit. You might also want to show all the newly neighboring nodes and annotate them with their updated cost estimate.

</comment></comment><comment><USER12> what, no love for bogosort?

</comment><comment><USER13> Aldo Cortesi has some striking images going on here <http://corte.si/posts/code/sortvis-fruitsalad/index.html> and here <http://sortvis.org/>

He explains his anti-animation rationale here: <http://corte.si/posts/code/visualisingsorting/index.html>

</comment><comment><USER14> Excellent work!</comment>


Ask HN: How do you manage vendor selection process? - <AUTHOR> Perhaps most of the startups here don't do this enterprise-ish due diligence process of selecting a 3rd party vendor (or it boils down to a SO / HN question (like this one ironically) or simply looking for the most starred GitHub project)
But in Enterprise scenarios, choosing a backup solution, a BI solution, any 3rd party solution (open source + support or fully commercial) needs some due diligence selection process (getting RFPs, asking questions, installing demos, following up with vendors on all types of criteria when there is a time crunch to find the right vendor in a limited time)
Well, this is part of my day job, and I found out that excel spreadsheets seems to be the only standard way of doing it.
It has several issues, which are pretty obvious if you ever tried to use Excel as a collaborative database with many people (we can't use Google Docs for some reason) e.g. if you filter it and save on the shared drive, everyone sees your filter. also you can't share it directly with vendors as you don't want them to know which other vendors are competing and you don't want them to see their answers either. (and your private comments)
My question is this - is there any software out there that helps you choose software? e.g. something that comes out of the box with ready made criteria checklist, and lets you expose a URL for vendors to answer questions, track status of questions, put %VENDOR_NAME% placeholders so the question looks like it's directed to them, etc. Also you can prioritize features / questions and rank the response etc.
Also it will let you team member rank vendors based on functional and technical criteria and give the CTO / CIO a dashboard with a final decision.
Sounds like something any CIO / CTO / technical purchasing department will be happy to have.
Seems like an open niche, is there any SAAS product (or self hosted) out there to do this? Or should I just take any ticket / helpdesk system and manage questions as tickets? <comment><USER2> @eranation: We are a Techstars startup (Vetted) focussed on vendor selection and on-boarding. We have automated 80% of this, plus supplier on-boarding (e.g., compliance checks, contracting workflow, security review). We have found that this is a real need and are now live at two Fortune 500 firms among others.

We follow the lean startup methodology and would love to partner with you on remaining 20% of the functionality. Will you be open to a quick call? Jag (jl at thevetted dot com).

Thanks @eranation.

</comment><comment><USER3> I don't have experience in this area, but from your description it sounds like something you could use a CRM (like Salesforce) for.

If you envision a vendor as what the CRM would typically refer to as a "lead", then you should be able to use the CRM to add info fields to the lead, track it through different phases (like due-diligence, etc), contact the lead using premade templates (like you suggested above), and resolve or delete the lead at the end. At the same time you'd be able to view all your leads (vendors) at once, search through them, search by field, etc.

Hope that helps.</comment>