Metabase: Why we picked Clojure - <AUTHOR> https://medium.com/@metabase/why-we-picked-clojure-448bf759dc83#.w1uqkz6sp <comment><USER2> " However, we had a strong aversion to using Java itself, so the real short list was Scala or Clojure."

Sadly they couldn't articulate any actual problems with Java...

I find it weird that so many developers focus on the "writability" of the language. I mean stuff that java gets criticized for, like verbosity etc. Which I don't even find so bad especially since the newer jdk versions.

But in my opinion the _readability_ of the result is the most important factor. I rather read copy/pasted code than some smart clojure onliner which nobody dares to touch or really understands.

You only write the program once, but you have to read it over and over again when maintaining it and developing new features, and java's maybe a little verbose syntax really helps here, and also the fact that there really is only one way to do a thing (unlike eg. perl).

The tooling, documentation, frameworks, libraries and runtimes are all top notch with java. All other languages seem to have problems in one (or more) of these areas.

<comment> j-pb Clojure allows me to express thoughts that I wouldn't know how to express in for, while, if, variables and objects.

And on readability, what do you prefer?

      List<Integer> even = new List()
      for(int i = 0; i < 100; i++){
        if((i%2)==0){
          even.add(i);
        }
      }
      return even;

vs.

      (filter even? (range 0 100))

<comment><USER3> But what is even?

I am sure functional programming has its natural appealing in areas like recursion, but this example doesn't seem too convincing for winning readability, I can always write this in python

filter(even, range(0, 101)))

where even is a function I wrote.

Please give an example for "Clojure allows me to express thoughts that I wouldn't know how to express in for, while, if, variables and objects." if you can.

<comment> j-pb We were talking about java here. ^^ So python is offering a lot more already with it somewhat first class functions. What would you guess even? does, btw?

But sure, let's make things a bit harder. As below, let's produce a sequence of the form [true false false true true true false false false false ...] of exact length 1000 without computing any more than exactly 1000 elements.

      (take 1000 (mapcat (fn [i] (repeat i (odd? i))) (range)))

Of course the really interesting stuff is hard to do in one liners. But I think one of the more mind bending things is probably core.async. Go style coroutines and channels implemented as a library on top of the language. Which allows for concurrent programming inside clojurescript which is compiled to JS and thus inherently single-threaded.

[http://swannodette.github.io/2013/08/02/100000-processes/](http://swannodette.github.io/2013/08/02/100000-processes/)

<comment><USER3> My point was "even" and "filter" can be built by someone, just to be fair about the whole readability. If "even" is already built into the language, then that's a given.

Readability and language understanding are not separable. I for one have a hard time actually understand what the code does above (although I can guess it). But I am not sure how ^ translate into [true false false true true true false false false false ...] sequence because, I thought we were calculating oddity of 1000 numbers.

[1 2 3 4 5 6 7 8 9 10 ...] ==> [T F T T F T F T T T ]

Perhaps the lack of understanding Clojure syntax to comprehend what the code is doing.

<comment><USER4> Exactly the point. In many other languages, every programmer can write their own "even" and "filter" with their own idiosyncrasy. However, in Clojure, every one uses the same set of high level functions in the standard library, because they are sufficiently rich to express most of the programming concepts, without having to roll your own.

In Clojure, readability is obtained through standardization. Every Clojure programmer instantly knows what the functions in the standard library do. Because there's not much syntax in a Lisp, code is very easy to read once one knows the functions.

<comment><USER5> > In many other languages, every programmer can write their own "even" and > "filter" with their own idiosyncrasy.

"filter" is incredibly useful, and most modern languages (including Java 8) have it built in.

"even?" is sometimes useful, and languages are kind of hit-and-miss about it, but its usually small enough to inline, and the biggest cost of not having it built-in is probably things like people using modulus rather than first-bit testing in Java which, IIRC, produces somewhat slower code for that check.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> It's great to see such an "exotic" programming language like Clojure getting some serious traction. And by exotic I mean a language that stands out from the imperative or object-oriented crowd.

I like how Clojure challenges established paradigms with a surprisingly mature ecosystem.

Being a hosted language on the JVM has its pros and cons, but the cleverness and pragmatism of Rich Hickey (creator of Clojure) really stands out. He decided to go with an industry strong, battle-tested environment, effectively standing on the shoulders of giants, while providing a lot of fresh ideas.

Also, the fact of being a Lisp can be seen from different angles: for some it's lots of weirdly nested parentheses, for others it has a beautifully simple, yet extremely powerful and expressive syntax.

But don't let those aspects fool you. Once you scratch a little bit the surface, you will see the extraordinary power of its persistent data structures. For those who don't know what persistent data structures are: in Clojure, oversimplifying, there is no mutation to data structures. Every time you "add" or "remove" a key from a hash map, you are actually creating a copy of it. And in order to make this efficient, you need special data structures with "superpowers", that are not actually creating a whole copy of themselves, but rather modify atomically only a part (hint: trees).

And having those data structures leads to the next big feature of Clojure: concurrency. Not only does Clojure provide a mechanism to dispatch thread-like constructs (core.async), but the whole language is designed around supporting concurrency.

I also want to add that what really surprised me about Clojure is its thriving community and smart people using it. I am pretty sure that if you want to hire great, highly motivated talent, going Clojure will help you with that.

<comment><USER7> > Once you scratch a little bit the surface, you will see the extraordinary > power of its persistent data structures.

I've heard this repeatedly, yet in the examples I've read (for web servers and for web ui work with cljs), they're using atoms with `swap!` to provide "current state".

Could you provide an example of using persistent data structures in a web app? Or am I mis-understanding?

<comment><USER8> You're compare-and-swapping out persistent values with an atom (it holds a succession of immutable values over time). It's not an example of people shirking persistent data structures for mutation.

<comment><USER7> Yes, I understand that. I guess my original question would have been better put: can the notion of "current state" be avoided with persistent data structures, and if so, how?

<comment><USER9> I'm a hardcore imperativist right now, so don't take this as authoritative, but here's my understanding of how that works:

Think of your data as one reality in the set of all possible realities. None of them exist or don't exist, they'll just receive human attention or they won't. Instead of an inbox with an ID and a current state, you just store events that happened and a user might say show me the end state of the timeline that started at event d79se5k. They might also ask you for the timeline starting at a different point.

There's no "current state". You're just ready to answer questions about hypothetical realities. And while some realities are more likely to be computed (and cached) that's only because they correspond to some key facts that a human is going to look up.

Put another way, imagine a soup of unrelated facts. Your code is a way to project those facts into different mathematic spaces. You never just say "what's the current state" you have to actually write out specifically what you mean as a query.

Sorry for the vagueness. I'm just putting out there my fuzzy understanding until someone else can write something better. :)

I'm really interested this approach, and I think a lot of data should be immutable. Sadly, a lot of people are treating immutability as a religion these days, which causes problems when computation is better suited to imperative structures.

</comment></comment></comment></comment></comment><comment><USER10> I read this article yesterday because I am having a language choice issue, between Ruby and Clojure.

I am in my (almost) mid 60s, and except for being on retainer for advice I don't really accept consulting work anymore. I have a __long __list of projects that I want to do, mostly open source, and settling on one language for a few years would make things easier.

Clojure and Ruby both support DSL development very well which is important to me and both play very well with Java (via JRuby). I am starting to ask myself though if I wouldn't just be better off with Java 8, even without good support for writing DSLs. I have mostly stopped using Haskell and Scala.

When I was much younger I totally enjoyed learning and using many programming languages but as I get older I feel more like just getting stuff done, especially since I dedicate much less time now to technical pursuits. So in a sense I am facing roughly the same type of decision as the Metabase people.

<comment><USER11> I follow your blog. I'm a month from 40 and agree. After several years working mostly in Clojure, Scala, and F#, I am finding myself most productive in traditional languages even though they're less interesting. And am finding _projects_ more interesting than _implementations_ , which is probably the way it should be.

I'm finding now that OOP is actually a pretty good model for most things. Loops and mutation reflect reality: you do a task N times and write down each result; you don't take the first N results from an infinite seq of tasks. IoC is useful. In addition having a much larger set of things to copy/paste from github/stackoverflow is nice.

That said, most (all?) of my paid work is pretty banal, nothing that's really begging for functional style. And for whatever reason I've never had much success with REPLs. Getting them updated correctly with the code and dependency changes, typing in what I want to test, then running it always seems to take me longer than just executing the app and testing changes directly.

</comment></comment><comment><USER12> _> .. However, we had a strong aversion to using Java itself .. _

Honestly, why? Seems odd given Java's great track record for exactly this problem and huge library and developer share. The code itself is forced to be static and explicit which makes for easy onboarding for new developers.

It's a bit strange to just dismiss Java in the context of the rest of the article. You're kind of staking your company on decisions like these, and making them because of some unquantifiable 'strong aversion' seems like a poor choice.

That said, Clojure or other lisp base definitely seems like the correct choice for a query language / dsl. That's the shining point of lisps after all.

<comment><USER13> personally, i find java pretty painful to use; it's definitely capable of doing whatever job you have in mind, but when i use it i have the constant feeling i'm using a suboptimal tool. and then it leads to reams of boilerplate all of which has to be maintained, so it's not just a development-time cost; there's the depressing feeling of having to deal with it every time you want to read the code. clojure would be worth it just for the joy of using a tool that fits well into your hand.

<comment><USER12> It's kind of like building a model with clay or with sticks. The clay model is going to look nicer with rounded curves and no wasted points. The stick model will have bits sticking out.

However when you get 30 people working together to make a big model, the clay model is going to start looking very strange indeed. Different people will have different finger pressure and shape the clay differently. Some people will make more right angled parts with the clay which will clash with the parts of the clay that are carefully smoothed out. Someone might spend a week fixing a perfect parabola for a curve at the top of the model just for someone else to bend it off to the side with an ugly twist to fit with the other side of the model.

30 people on the stick model? Not really a problem. All the sticks look the same. Anybody who needs to attach one side of the stick model to something else just needs to grab a stick and tie it on. You won't see a perfect stick parabola, but then you also won't be stuck with a strangely twisted piece of clay.

You can always create a style guide for using the clay - always keep between a 30 and 60 degree angle on joins. Apply one finger of pressure when doing joins. And so on. Sometimes this works with very diligent reviews that keep everything in place, but as soon as a crisis comes up or the model needs to pivot urgently? Everyone rushes to touch up the model in the quickest way possible and your model starts to get a bit thinner on one side than the other, etc.

So there's nothing wrong with choosing a great clay model that fits well into your hand and you can shape effortlessly - but you need to remember that sometimes the 'painfulness' of using a model made out of sticks can be a big blessing when you're trying to massage a bit of clay that someone else pressed a bit too firmly on.

EDIT:

Also, when you've been making and using models for awhile, the stick models get an added benefit: you can browse through the stick models really fast based on only their outline and be able to understand very quickly how they work. Pretty clear why: the rigid sticks form a very distinct outline (think interfaces and forced directory structure in Java). Being a stick model expert therefore has very good job mobility and high demand.

Each clay model is generally more unique and requires some study to understand even if it does look nicer.

<comment> a-saleh I will try to continue your clay/sticks parable, but in my limited clojure experience, you seldom create a clay model, it resembles more a creation of a custom clay brick-set.

Most of the time, all of the team is either building bricks or using those bricks.

The biggest plus of using clay instead of sticks is that when you find yourself in a corner, it is easy to invent a new brick shape that fits.

The drawback is, that without the style-guide, you can easily end up with brick-shape per developer. But I see a difference between "Hey, why did you invent a new brick type again?" and "Apply one finger of pressure when doing joins."

When crisis comes and model needs to pivot urgently, there are two possibilities. Either you just need to rearrange your bricks. Or you realize there is something fundamentally wrong with your bricks, and then you create a new brick-type and carefully replace old bricks with new bricks.

Ok, programming parables are weird. I might write a more concrete example, if I have time.

<comment><USER12> Nice extension! Feels right too, clojure does feel a lot like passing around similar clay bricks. When all the bricks line up, it's kind of like Lego?

The analogy also opens up another difference. In clojure, you often end up passing around a lot of maps with string keys. What are those keys exactly? You have to crack open the clay brick to take a look at how it works. With the stick model, you can often see how the sticks work if the bundle of sticks has been color coded nicely - eg, well constructed generics. Luckily cracking open a Clojure brick is as simple as ctrl-clicking, so it's not nearly as bad as it sounds!

Programming parables are definitely weird though - programming does not have true analogies with the real world. It's more of a superset of the real world and the use of programming languages is more akin to defining physical laws than building bridges with clay or sticks. I don't think we as humans have really come to understand exactly what we are unlocking with the development of programming and how vast it really is.

</comment></comment></comment></comment></comment><comment><USER14> "So, in summary, we chose Clojure for JVM threads + Database drivers, the ability to ship an uberjar and the _ease of expressing tree manipulations_ which were the core piece of complexity in our backend."

for people who may not know clojure here is an example of tree manipulations, it's really powerful especially in UI programming which is all about manipulating recursive structures: [https://gist.github.com/dustingetz/c11ae4edb9e0d14787d2](https://gist.github.com/dustingetz/c11ae4edb9e0d14787d2)

Scala has answers to this too (I would love for someone to reply with the best scala way) but for whatever subjective reasons the clojure way makes me happier for ui work.

As to scala pushing towards typed object mappers, here is one example of generating untyped queries with Anorm [1], I'd be surprised if this couldn't be made to work for their query language, but that said the scala ecosystem has a lot of, shall we say "diversity of opinion" about the Proper Way To Do Things, so I am not surprised that newcomers to the language had a bad time.

[1] (2013) [http://www.dustingetz.com/2013/03/26/orm.html](http://www.dustingetz.com/2013/03/26/orm.html)

</comment><comment><USER15> This is probably going to be a very unpopular opinion here, but I think Clojure is a horrible language to work with.

I don't have the experience with non imperitive languages which makes learning clojure a really steep curve. Also the error you can recieve with clojure are many times a big mystery, I've never seen as bad error reporting as I've seen with Clojure. Other issues I have with it is that Clojure-fans tends to want to write EVERYTHING in clojure or lisp style code. That includes stuff like Javascript, HTML and similar stuff. Things that just makes it even more complicated.

I have really tried to learn it several times but got so frustrated I quit. We have a small thing at work which is written in Clojure and no one knows how to fix issues with it since no one has any experience with Clojure.

Clojure does not fit my brain.

<comment><USER16> I think your criticisms are definitely valid.

The learning curve is steep (intentionally so) but definitely worth it. Your programs will become more reliable and you'll get more done as a consequence. Please push through!

The error messages are terrible, and there are a lot of ongoing conversations about them at the moment in the Clojure community[1]. The Clojure[script] toolchain does tend to be all-in but there's work happening now to break that up — stay tuned. StackOverflow and the Clojure Slack channel also full of people who know how to fix issues :)

Stick with it, when you'll have an "ah-ha!" moment soon enough!

[1]: This talk is a good backstory as to _why_ the errors are so bad, and useful no matter what language you use [https://www.youtube.com/watch?v=FihU5JxmnBg](https://www.youtube.com/watch?v=FihU5JxmnBg)

</comment></comment><comment><USER17> Kind of shocked that building database libraries for python (homebrew install gcc? pip install foo) was "hard" for them.

I find the Python ORM options (sqlalchemy/Django/etc) lot better evolved than what is available for clojure and couldn't image that being a roadblock. Korma is basically a query builder and lacks a lot of things I was used to, and I had to engineer a declarative layer for defining models in the ways I wanted.

Pain in setting up developer machines could be simplified with an ansible playbook pretty easily.

OTOH, one of the worst things I hate is trying to figure out how to automatically get around Sun's paywalls and fiddle with Java classpaths :)

I do feel some level of want to avoid vagrant in the development workflow, in which cases I'm usually fond of just logging into a real VM. I do think it's potentially good for tests.

IDK, I always want to solve the idea of "fragile deploys" with immutable systems in prod. Uberjar was cool, I'll give it that -- but the startup time of clojure was often not worth the wait.

My biggest complaints with clojure is documentation quality, inconsistency in return types (or just willingness to return nil in error scenarios), and tracebacks that are very difficult to sort through.

Clojure also presents some problems with the idiomatic nature of trying to roll up everything into one statement, whereas adding debug and debugging require unrolling it, than packing statements up again to be socially acceptable idiomatic clojure.

Testing in clojure also strikes me as painful, as it tends to punish you with "let" causing an indentation every time you need to assign a variable, something that is useful in tests that want to check results a lot along the way.

My gut feeling is clojure was good for a little light scripting on top of a big Java codebase (kind of like you might use Lua in a game engine) but would not be something I'd pick for a primary language. Primarily using Java libs would also solve some of the ecosystem problems.

<comment><USER18> It's not hat "homebrew install gcc? pip install foo" is hard for us, it's that we didn't want to support 1000s of people trying to set it up on their machines.

Every possible source of error we eliminated meant we'd need to spend less time on twitter debugging installation problems. It's useful to remember that our target install base isn't python developers who might want to hack away on a python project, but rather analysts, end users, DBAs and all kinds of people who've never heard of homebrew and who might not even be comfortable with using a terminal in Mac OS X let alone compiling things.

<comment><USER3> So why can't you release an installer? You are not compiling .NET. If many desktop applications are either written in Python, Java, or C++, so what prevents you from releasing an installer? Heck, even Go programmers have to think about compile cross-platform.

<comment><USER19> > Heck, even Go programmers have to think about compile cross-platform.

Not that much in Go 1.5 :) On the last project I worked, just setting GOARCH and GOOS worked out of the box.

</comment></comment></comment></comment><comment><USER20> > Python's Mysql and Postgres database drivers required compilation. This made > both developer machine setup as well as deployment more complicated than it > really needed to be.

Am I missing something - this was really a such a problem that it was a factor in switching languages?

<comment><USER21> I've started interpreting a lot of these "Why we use X" posts as less 'bragging' and more these companies trying to justify their own choices. In part because it perhaps makes them feel less isolated in their choices, and in part also because by hoping that others follow them they'll find it easier to recruit, something that is easily underestimated especially outside of major hubs such as NY, SF, or London.

Perhaps I am being uncharitable. I note with interest they say, "However, we had a strong aversion to using Java itself", but don't explain why they had that aversion, or whether it was based on anything but the fact that Java isn't trendy.

<comment><USER18> Off the cuff, I'd estimate that between the team members at the time, we'd shipped perhaps 100k+ LOC of java into production systems at past jobs.

It didn't seem interesting to rehash why we didn't want Java's verbosity in a small team.

</comment></comment></comment><comment><USER22> One of the things that I love about Clojure is Leiningen. It just takes away the headaches of setting up projects in Clojure. I think the only other tool I'm aware of for another language that is quite as useful is probably NuGet. I've never had issues using lein, just drop it into my ~/bin/ folder (I'm using openSUSE so that folder is in the system path by default), open up a terminal and type in lein and it works. I don't even need clojure installed, just the JVM, it will download clojure for you as needed!

Props to those working on lein.

<comment><USER23> And yet maven does the same thing but gets no love from anyone (including me!)

<comment><USER22> Not sure if Maven can be compared to lein, never personally used it, not knowingly at least. I've heard great things about Gradle though.

<comment><USER24> If Gradle's so great, then why does it use a JVM language that wasn't considered by Metabase.

> The shortlist really came down to "something on the JVM" [...] However, we > had a strong aversion to using Java itself, so the real short list was Scala > or Clojure

Gradle requires the configuration files to be written in Groovy, and is itself written in Java and lots of Groovy.

<comment><USER22> I do know Android Studio likes to rock Gradle. Clojure has Lein though, why would you use Maven then? :)

</comment></comment></comment></comment></comment><comment><USER25> Can someone expand on what they mean by lightweight threads for Clojure? My understanding is that lightweight threads (green threads) is what java/jvm explicitly moved away from way back when; it's user-mode threads bound to one processor, so if the processor gets busy, then all of the lightweight threads for that processor get blocked. Meanwhile, Java/jvm uses kernel threads and context-switching so you can do real multi-threading.

I'm aware of how Quasar purports to be the best of both worlds, and it looks like Pulsar is a Clojure API for Quasar, maybe that's what they're using.

It doesn't appear Scala has something comparative, but I have a hazy sense that Scala people believe that Akka and monads are better for easy asynchronous programming.

<comment><USER26> Clojure's core.async has "go routines", (this is more or less the same as in go), basically you can put and take messages on a channel. These operations will block the green thread, so you end up writing synchronous code. The idea is that synchronous, blocking code is easier to understand then async code. Since these are lightweight threads it will scale better than using real threads. I'm pretty sure it's fine to have hundreds of thousands of go routines.

This abstraction sits on top of java's real threads, so you can have several real threads doing the work and they can switch between the go routines once the go routine hits one of the blocking operations.

Or something like that... read this: [http://clojure.com/blog/2013/06/28/clojure-core-async- channe...](http://clojure.com/blog/2013/06/28/clojure-core-async- channels.html)

</comment></comment><comment><USER27> _Now, choosing a programming language for a project is usually decided on a mix of what a team is most comfortable with, beer-fueled debates on dynamic vs static typing, benchmarks of marginal relevance and that elusive quest for Dev-Hipster points._

How about this for an interview strategy: Have these discussions. Hire the people that realize most of the above mentioned things are meaningless.

(Clarification: Only the "comfortable" part isn't meaningless. But there too, it's only as meaningful as the placebo effect is significant.)

<comment><USER28> How is "dynamic vs static typing" meaningless?

<comment><USER27> For most applications, either can work. They both have to be managed correctly.

<comment><USER28> What are "most applications"?

How do they have to be managed?

<comment><USER27> [http://bfy.tw/36aT](http://bfy.tw/36aT)

</comment></comment></comment></comment></comment><comment><USER29> Considering their criteria Erlang/Elixir seems like a huge omission from the contender list.

<comment><USER30> > Wide variety of mature database drivers

That requirement was probably not met when they started.

<comment><USER31> Does Erlang lack a variety of mature database drivers?

<comment><USER32> I'm not an Erlang dev, but a quick look at the Erlang docs shows:

"If you need to access a relational database such as sqlserver, mysql, postgres, oracle, cybase etc. from your erlang application using the Erlang ODBC interface is a good way to go about it."[0]

"It is built on top of Microsofts ODBC interface and therefore requires that you have an ODBC driver to the database that you want to connect to."[0]

"But currently it is only regularly tested for sqlserver and postgres."[1]

"But currently it is only tested for Solaris, Windows 2000, Windows XP and NT"[2]

[0] - [http://www.erlang.org/doc/apps/odbc/databases.html](http://www.erlang.org/doc/apps/odbc/databases.html)

[1] - [http://www.erlang.org/doc/man/odbc.html](http://www.erlang.org/doc/man/odbc.html)

[2] - [http://www.erlang.org/doc/apps/odbc/getting_started.html](http://www.erlang.org/doc/apps/odbc/getting_started.html)

</comment></comment></comment></comment><comment><USER33> Lisp has been around a while, Java has been around a while. Clojure is the perfect combination and I predict it will be around a while.

</comment><comment><USER33> Lisp has been around a while. Java has been around a while. Clojure is the perfect combination and I predict it will be around a while. It's exhilarating to program in Clojure. That's the only word I can find to describe what I feel to program in that language.

</comment><comment><USER34> I had this conversation on twitter already: typed object mappers seem like a questionable choice for the problem space. Since it seems like all of their work in Scala used them, I'm not surprised they hated it.

(Disclaimer: I have no particular liking for Scala.)

</comment><comment><USER11> I'd be interested to understand how Korma solves their problem. It's macro- based so I wouldn't think it would be particularly good at dynamically restructuring queries based on runtime variables.

<comment><USER35> Yeah, clojureql was much better for this sort of thing but is to all intents and purposes abandoned.

</comment></comment><comment><USER36> Why wasn't Erlang/Elixir even considered? It checks off all their initial set of requirements

</comment><comment><USER37> You know what else is easy to work with and deploy? PHP.

<comment><USER36> I wouldn't call a language that encourages writing spaghetti code and creating dependency hell to be "easy to work with", much less one which _doesn 't even pass its own test suite_, which implies that even if you do everything 100% correctly, the spec itself is faulty, so you WILL have non-deterministic "3AM phone call, up till 3PM fixing" type bugs... No thanks

</comment></comment><comment><USER38> Has anyone here ever heard of Metabase before? Their github page indicates there are 3 (three) contributors. Wouldn't it be safe to assume this post is primarily a marketing venture?

<comment><USER39> I've used Metabase before, it's a super easy way for a non-technical to do sql queries.</comment></comment>


Everything you thought you knew about gravity is wrong - <AUTHOR> https://www.washingtonpost.com/outlook/everything-you-thought-you-knew-about-gravity-is-wrong/2019/08/01/627f3696-a723-11e9-a3a6-ab670962db05_story.html <comment><USER2> Looks interesting, but is there a paywall-free mirror of this article?</comment>


A detailed description of why a Credit Crisis is a "bad thing" - <AUTHOR> http://ceruleansanctum.com/2008/10/flunked-econ-101-read-this.html

<comment><AUTHOR> I'm very sorry for _another_ post about the credit crisis, but this was really helpful in explaining a large part of what the issue was...

I promise it's the only one I'll post.</comment>


--All You Zombies-- - <AUTHOR> http://en.wikipedia.org/wiki/%E2%80%94All_You_Zombies%E2%80%94

<comment><USER2> <http://ieng9.ucsd.edu/~mfedder/zombies.html> (story link, without spoiler)

Also read: <http://www.xs4all.nl/~pot/scifi/byhisbootstraps.html>

<comment><USER3> I've heard of _By His Bootstraps_ but it appears I had never actually read it - thanks!

</comment></comment><comment><AUTHOR> Here's the story - <http://ieng9.ucsd.edu/~mfedder/zombies.html>

It's a real fun story exploring the peculiar paradoxes of time travel :), where a man becomes his own father and mother and son :D !!

<comment><USER4> That could have used a spoiler warning vinutheraj.

<comment><USER5> The entire Wikipedia article posted is a giant spoiler...

<comment><USER6> Folks... It's not the destination that matters, but the journey.

That said, some people would prefer to figure out what is going on by themselves.

<comment><USER5> I'm just pointing out that the original comment was no more of a spoiler than the article all these comments are posting about. It would have been different if the post was pointing to the story, and someone dropped the Wikipedia article/spoiler in a comment there.

</comment></comment></comment></comment></comment><comment><USER7> Appears as Escape Pod episode 200: <http://escapepod.org/2009/07/02/ep-200-all-you-zombies/> for people that would rather listen than read.

</comment><comment><USER8> Here is the previous discussion of this at hacker news:

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

</comment><comment><USER9> A while back I read Michio Kaku's _Hyperspace_, which makes mention of this short story but not by name. Thanks!

</comment><comment><USER10> Well, even if it wasn't totally original, the Futurama where Fry becomes his own grandfather was hilarious.

</comment><comment><USER11> Ah, perfect for a lazy Saturday morning.

Thank you.</comment>


Onboarding new employees differently at Bizzabo - <AUTHOR> http://geeks.bizzabo.com/post/128481928604/onboard-different

<comment><USER3> Does Bizzabo help others onboard employees? Or just employees hired by Bizzabo?

<comment><AUTHOR> Just our own employees. We can help by sharing what we've learned - <USER2> detailed in the post.</comment></comment>


Google finance upcoming revamp – Deprecating portfolio feature - <AUTHOR> https://support.google.com/finance <comment><USER2> Mods, link is incomplete, should probably be:

[https://support.google.com/finance/answer/7534448](https://support.google.com/finance/answer/7534448)

</comment><comment><USER3> I hope they fix their charts!</comment>


Navy denies it pirated 558K copies of software, says contractor consented - <AUTHOR> http://arstechnica.com/tech-policy/2016/11/navy-denies-it-pirated-558k-copies-of-software-says-contractor-consented/ <comment><USER2> Intentionally disabled the license validation to run 558,000 copies on licenses for 39. Feds.

I hope they are forced to pay for every single license, back to the date of install. There should be an additional penalty for criminal hypocrisy.</comment>


Ask HN: How to make quick $$ with front-end skills during paternity leave? - <AUTHOR> My wife and I recently had our second baby. Despite having an HMO insurance plan, we got hit with a bill that was for thousands more than we had saved for. I want to use some of my 6 week paternity leave to make some of that money to pay it off. I am a software engineer with React and Javascript knowledge and experience although by no means an expert.
What can I do over a period of about a month (plan to take 2 weeks relaxing with family) in order to generate $$ to pay the bill?
I have looked on upwork but it doesn't seem to be a good fit. They want skills like shopify or wordpress or environments I'm not familiar with. I know they might not be too hard to learn, but I don't have much time to learn a new thing. <comment><USER2> With only 6 weeks the greatest payoff will be to study leetcode and CS fundamentals. Reach out to your network and get some interviews. Due to the nature of the industry chances are you are leaving anywhere from 40-150k on the table by staying at your job.

The hardest part of freelancing is building out your network and getting clients. Sure you might be able to find a gig making $40-90/hr, but 4-6 weeks is just not enough time to really make much. I reccomend investing the time in your skills.

</comment><comment><USER3> The tragedy of the US health system right here: working a second job during paternity leave to pay the medical bills.

<comment><USER4> Somebody on Reddit called it a 'Battle Royale in real life'

</comment></comment><comment><USER5> One place where I've found better work is with Topcoder Challenges[0]. I took a long break between jobs and worked on a wide range of jobs, mostly to try out new tech and get paid for some of my effort. I was planning to do it anyway. The rub is that you don't land a contract and rather do the work, submit it and if it's in the top 3 get a 1st, 2nd, 3rd prize. Some challenges are first to finish and only one gets paid. Often there will be units of work all for the same project so once you get familiar with the dev setup and codebase can be more productive. Remember that you're still competing globally with places having a much lower cost of living. The management of the process is very well organized with each challenge having a shared Q/A forum with posted materials and often provide VM access to dev/demo work.

I was mostly doing back-end work and dabbling in front-end, hybrid, or mobile dev. There are bigger tasks for UX and data science work but I'm less versed or productive there.

[0] [https://www.topcoder.com/challenges](https://www.topcoder.com/challenges)

<comment><USER6> Seems like a dev apocalypse.. a barren wasteland where you compete for scraps and only the strongest survive.

<comment><USER5> It's not nearly as movie-cool as that. Maybe the small problems have more than a handful of valid/correct solutions posted but the more interesting ones usually fall short then they go through a process of Q&A where selected qualifying entries can make their case and the final selected one may get an update.

There were some porting challenges to which I eagerly wrote a Swift/Java and Java/C++ translators to do the heavy lifting. The generated C++ used const return references & copying but the performance was actually quite good.

</comment></comment></comment><comment><USER7> Are you asking for a way to make money without a bunch of job-search and ramp- up time?

[https://codementor.io](https://codementor.io) would let you offer your expertise to get other developers un-stuck or to give them design advice.

</comment><comment><USER8> assuming you are in the USA (i am not) i believe you should not take the bill at face value. you can attempt to negotiate either a discount, or a delayed payment schedule, or both. various people on the internet can recommend tactics for this.

some clues here: [https://ask.metafilter.com/161024/Hospital-bill-over-a- year-...](https://ask.metafilter.com/161024/Hospital-bill-over-a-year-later- Really)

and here: [https://ask.metafilter.com/307259/Best-way-to-pay-a- medical-...](https://ask.metafilter.com/307259/Best-way-to-pay-a-medical-bill)

apologies for not answering your actual question if this isn't news to you

<comment><USER9> This is still worth trying (you do have to call in), but it's rarer to get a discount if you already have insurance (discounts are typically available only if you're a self-pay patient).

</comment></comment><comment> em-bee the fact that you have paternity leave suggest that you are regularly employed.

in which country are you, and what are your employment terms? are you paid while on leave?

if the leave is unpaid, can you opt out and get back to your paid work?

if the leave is paid, are you even allowed to earn extra money on the side? check your contracts carefully. while it is conceivable that you are allowed to have two jobs, one which is giving you leave and another which is not. it is more likely that you are not allowed to work, or that doing so would make your current employer very unhappy.

i would certainly be unhappy if my employees use paid time off to moonlight and instead of getting a rest, work to make more money because that will affect their productivity when they come back.

</comment><comment><USER10> Can you take up a contractor role? There are lots of consulting companies that place contractors with companies and FE skills are frequently in demand. Just don't tell them that you are available only for a month.

</comment><comment><USER11> You should push back on your HMO to cover the costs, and double check with your employer that your newborn has been added as one of your dependents in the plan.

</comment><comment><USER12> Reach out to me I might have a job for you.</comment>


Macsyma: A Personal History - <AUTHOR> http://esd.mit.edu/Faculty_Pages/moses/Macsyma.pdf <comment><USER2> Absolutely fascinating paper about one of the more interesting pieces of software created, and the people involved with it. Extends from early days of LISP (back then) through to how culture might influence AI approaches.

</comment><comment><USER3> What an incredibly horrible interface that is. Here's something which is readable: <http://esd.mit.edu/Faculty_Pages/moses/Macsyma.pdf>

<comment><AUTHOR> Isn't that the same link as the original?

<comment><USER3> Yes, that's the point. This is the actual PDF which people can now go read without clawing open their veins from horror & despair with the Scribd Flash mess. Was my comment really that hard to understand?

</comment></comment></comment><comment><USER4> I had the privilege of working for Joel in the late 70's (he was the EECS department chair at the time) sysadmin'ing their student DEC-20 and Lisp Machines.

A delightful fellow.</comment>


Mt. Gox Finds 200,000 Missing Bitcoins - <AUTHOR> http://on.wsj.com/1fL9Lqf <comment><USER2> In case paywall is blocking the text:

 _TOKYO—Major bitcoin exchange Mt. Gox announced Thursday it had discovered 200,000 missing bitcoins in a wallet that the company no longer uses, reducing the total number of bitcoins still missing to 650,000 from 850,000.

"We believed there were no bitcoins left in old wallets, but found 199,999.99 bitcoins on March 7," Mt. Gox chief executive Mark Karpelès said in a document released Thursday.

Mt. Gox said it reported the discovery of the bitcoins to its lawyers on March 8, and moved the discovered bitcoins to offline storage between the March 14 and 15.

The exchange filed for court protection on Feb. 28. At the time, Mr Karpeles told a news conference it had lost 750,000 bitcoins owned by users and 100,000 held by the company, citing the possibility the bitcoins had been withdrawn without authorization.

The exchange was shut down Feb. 25. _

<comment><USER3> Thanks. There really should be some rule on HN against posting links that hide the text, although I've heard it's not obvious to those who post the links as apparently coming from Google it displays the full article.

<comment><USER4> Seems like if it were irritating enough to people, lack of upvoting might naturally take care of the issue.

<comment><USER5> The problem is most people upvote based on the title without reading the article.

<comment><USER4> Yeah, exactly. Meaning it's probably not irritating at all to a lot of people.

Not my ideal situation, but HN is gonna be HN.

</comment></comment></comment></comment></comment><comment><USER6> I am borderline speechless in the face of the incomprehensible carelessness. The lack of records is amazing. The lack of accounting is amazing. The lack of professional standards is amazing. The lack of common sense is amazing.

If you'll excuse me, I have to go to the bank. I just realized that I left a million dollars in the pockets of the jeans that I just washed. I suppose I should dry them out and deposit them, along with the $100,000 I just found fallen between then cushions of my couch.

<comment><USER7> This is why there is regulation of the finance sector, and exactly what happens when companies and individuals try to pretend the regulation doesn't apply to them.

If you want to start an online financial services business, the first thing to do is start researching the legal requirements for doing so, both where your business is located and where most of your likely customers will be. Not looking at them doesn't mean the rules don't apply, it's just grossly—potentially criminally—negligent.

In fact, that's the case for anyone starting almost any business. You need to examine the legal and regulatory environment in which you'll be operating as the very first step of your due diligence. Anything else is negligent.

<comment><USER8> >This is why there is regulation of the finance sector

This is why there are bailouts of the finance sector. A bank loses this kind of money, they get it back for free.

<comment><USER9> Except that taken as a whole, the bailout money was already been paid back in full, with interest over 2 years ago.

But that doesn't stop this old sore being rolled out regularly. Who need the truth when you've got Truthiness on your side, eh?

[http://www.politifact.com/new- hampshire/statements/2012/oct/...](http://www.politifact.com/new- hampshire/statements/2012/oct/25/barack-obama/barack-obama-says-banks-paid- back-all-federal-bail/)

<comment><USER10> Paying it back is great and all, but it shouldn't have had to be done in the first place.

<comment><USER11> It shouldn't have. But the pain the economy would have felt would have been 10X worse.

Banks supply capital to firms, the government bailed them out (and the automakers) because no one else was willing to supply capital to get the economy rolling.

</comment></comment></comment></comment></comment></comment><comment><USER12> Although it's taken Mt. Gox two weeks to report this, amazingly, it was public knowledge as soon as it happened on March 7/8, because the movement of over $100,000,000 was instantly visible on the public Blockchain. Reddit noticed it immediately: [http://redd.it/1zshct](http://redd.it/1zshct)

Most of it was in this transaction of 180,000 bitcoins -

[https://blockchain.info/tx/4ee89f7cf824a85ad5f11d52604ffdebe...](https://blockchain.info/tx/4ee89f7cf824a85ad5f11d52604ffdebe9f01302bcea8ddec0af450f9185ddf1)

From that evidence alone, it wasn't clear who had control of the money. Mt. Gox, or a hacker, but the Mt.Gox API was still up, and the API confirmed that this was a Mt.Gox-controlled transaction. Reddit saw that, too: [http://redd.it/1zswul](http://redd.it/1zswul)

</comment><comment><USER13> Many people are expressing surprise by the events that have unfolded here with Mark Karpeles and Mt. Gox, but I'm not surprised in the least.

I've known several web developer "enthusiasts" over the years who know just enough PHP (usually it's PHP, but this applies to other technologies as well) to build things that _mostly work_ and feel confident that they can solve anything with "a little PHP." Working mostly alone, these people prefer to spend their time building constantly, and little time learning or keeping up with current best practices (or in this case, cryptography).

There are a large number of companies (many of them doing very well) built by people like this, and even when they bring on other developers, no one has the courage to tell the original developer (who is often CEO) that their code sucks and needs to be scrapped completely. They keep throwing more crap onto the pile because the machine "works" and customers are demanding new features. The original (incompetent) developer feels a sense of pride for his or her work, and nothing short of _total failure_ (in this case, spectacular failure) will convince them that their work is anything less than genius.

It's unfortunate that some companies thrive in situations like this (it sets them up for failure), but it happens all the time.

I don't know Mark personally, but from everything I've read from him over the years, he seems to fit the description above. It doesn't necessarily mean he's a terrible person or a thief (he could be that as well, but I have no knowledge to prove one way or the other). It just means he got in over his head, and kept the site running on deeply flawed assumptions and implementations (e.g., no standard accounting, little understanding of security, etc). It's a shame that people kept coming back to Mt. Gox and entrusted the site with their money, even after those behind Mt. Gox proved themselves to be incompetent _over and over again_.

Is it sad? Yes. Is it surprising? The only surprising thing is how people _kept going back_.

As for the missing and suddenly reappearing coins, I honestly think they just had absolutely no idea where everything was. I've heard people describe Mt. Gox's infrastructure as a hodgepodge of random scripts and servers duct-taped together, and it's easy to imagine a dozen hard drives filled with an unorganized mess of Bitcoin wallets, private keys, database dumps, etc. I believe they're honestly trying to pick up the pieces, but the pieces are scattered everywhere.

<comment><USER14> We're definitely in that position, except we know our stuff is shit and we're rebuilding it and hiring furiously to rebuild it. 99% percent of life is knowing the difference isn't it?

<comment><USER15> There's a big difference between making an app that loops an MP3 (no offense - certainly well done and well marketed) and one that handles millions of financial transactions. Don't feel bad - if something goes wrong with yours, nobody loses their life savings.

<comment><USER16> I think it's fair to say at this point that if somebody placed all their life savings in Mt Gox, they themselves probably deserve at least some of the blame for their loss.

</comment></comment></comment></comment><comment><USER17> It seems unlikely that Karpeles randomly stumbled across 200,000 missing bitcoins. It seems at least plausible that he attempted to steal them and is now backpedaling since people aren't buying his malleability story.

This is the first ray of hope regarding customers recovering any of their missing bitcoin though.

<comment><USER18> _> It seems at least plausible that he attempted to steal them and is now backpedaling since people aren't buying his malleability story._

Or that they lost the keys to some wallets and have managed to crack one.

<comment><USER19> _> >Or that they lost the keys to some wallets and have managed to crack one._

No cracking. They just found a wallet.dat somewhere, that's all. If they lost the keys(as in, lost the wallet.dat with the keys in it) and were able to generate a valid private key given only a public bitcoin address... bitcoin is dead, game over, pack it up.

Now instead, if we're talking about a passphrase to a wallet.dat...

<comment><USER20> > If they lost the keys(as in, lost the wallet.dat with the keys in it) and > were able to generate a valid private key given only a public bitcoin > address... bitcoin is dead, game over, pack it up.

Yeah. This wouldn't be a fail on the MTGox league; this would be a "Satoshi Nakamoto _and all the cryptographers who took a look at the code_ failed". Cracking a wallet is supposed to be something that requires the resources of a state-sized entity.

<comment><USER12> >Cracking a wallet is supposed to be something that requires the resources of a state-sized entity.

A _galaxy-sized_ entity, maybe? The only known way to find a private key from a public key is brute force. That's way beyond the abilities of a state, unless they've made a massive breakthrough in quantum computing.

[http://i.imgur.com/fYFBsqp.jpg](http://i.imgur.com/fYFBsqp.jpg)

<comment><USER21> Obpedantry: In theory rho allows you to recover private keys with work-factor 2^128 (times some small constant depending on how much storage you wish to use), which is significantly less than the 2^256 you might expect from "brute force".

Still completely infeasible.

<comment><USER22> But first you have to obtain the public key by finding a preimage of the SHA-256-hashed address. And SHA-256 (with the full number of rounds) currently has no known preimage attacks that are even marginally better than brute force.

</comment></comment></comment></comment></comment></comment></comment><comment><USER23> FWIW, no paywall: [https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&c...](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CC0QqQIwAA&url=http%3A%2F%2Fonline.wsj.com%2Farticle%2FSB10001424052702303802104579452062699281046.html&ei=iLArU630DpbmoASEtQI&usg=AFQjCNE_4tYG_o0DALZLIwnVrkpq_3ewoQ&sig2=fITbQe8Rn1zsQLeWxMSlwg&bvm=bv.63316862,d.cGU)

</comment><comment><USER24> That lends some more plausibility to this theory: [http://chrispacia.wordpress.com/2014/02/28/this-is-what- most...](http://chrispacia.wordpress.com/2014/02/28/this-is-what-most-likely- happened-to-mtgox/)

<comment><USER25> This is the most plausible theory I have heard yet.

tl;dr: Wallets were in cold storage at Japanese bank, US govt seized them while investigating Silk Road.

</comment></comment><comment><USER26> Their official announcement is even more ridiculous. [https://www.mtgox.com/img/pdf/20140320-btc- announce.pdf](https://www.mtgox.com/img/pdf/20140320-btc-announce.pdf)

The have more coins and there is evidence for that in the blockchain. Many people know about that for weeks. After they figured people were on to them they released this lie.

Nobody just forgets about 200,000 btc.

</comment><comment><USER27> "Oh there's that $116 million I was looking for!". I suppose that given the level of incompetence and/or malfeasance at Mt.Gox, this shouldn't be that suprising. What is actually more surprising is that they ever became the primary BTC exchange in the first place.

I first wrote them off as a scam years ago when I read a Bitcointalk thread wherein Gox tried to explain away their aggressive "tainted" coin confiscation policy. They essentially explained that they were confiscating all coins that they deemed to be tied to theft or illegal activity at any point in the blockchain - in their sole discretion. Yet somehow, with that and many more very public red flags, they just kept growing.

</comment><comment><USER28> MtGox: We lost all the coins! We have no idea were they are...

Random person: Have you tried looking in your wallet?

MtGox: Found it!

<comment><USER29> Kinda:

MtGox: We lost all the coins! What must have happened is a very complex sequence of events where people were able to take money from us without noticing. We complained to the wallet manufacturer. But it's very complex, and umm, we're sorry, and umm, bye.

Random person: Have you tried looking in your wallet?

MtGox: Found it!

</comment></comment><comment><USER30> I would suggest people to try to avoid the "regulation = 1% bailouts" equation.

It would be more useful to think of regulation for bitcoin actors more in the sense of required car insurance, or not being allowed to sell food with poisonous chemicals in it.

There can be a certain amount of regulation that helps avoiding incompetent or fraudolent actors even without a money-emitting FED or a socialize-losses- privatize-gains government.

</comment><comment><USER31> Every new story about this makes Mt. Gox look worse. Now they're not even competent enough to steal them or have them stolen, they just _lost_ a hundred million dollars?

<comment><USER32> "You know, I think you're missing the point, man. They found them again, man."

</comment></comment><comment><USER33> Since they are in receivership, what will happen when the adjudicator liquidates th to pay off debts? What will happen to the exchange rate when these get dumped on the market?

<comment><USER34> It's a good question, but they would be obligated to seek the best return they can which means recognizing that they can't just sell them on the open market. It's unclear to me whether the BTC liabilities or the hard currency liabilities rank higher (my guess the hard currency) in which case maybe they can just sell to a big investor like the guy who offered to buy the FBI's coins: [http://www.businessinsider.com/falcon-global-capital- offers-...](http://www.businessinsider.com/falcon-global-capital-offers-to- buy-the-fbis-bitcoins-2014-2)

</comment></comment><comment><USER35> Can someone post a full version of the article? I only get the first two lines...

<comment><USER36> The easiest way to get around this is by googling the headline and clicking on the article from the google results.

It almost always works for some reason.. my best guess is that sites allows these crawled links to see the full content because doing otherwise would harm their SEO.

<comment><USER37> Not only that, people who use this tactic are helping improve the pay-walled article's page ranking, because most search engines will record that click and account it as a good search result.

So from publisher's perspective, they are getting more SEO by pay-walling!

</comment></comment></comment><comment><USER38> Old trick, giving customers false hope: [http://cryptopic.tumblr.com/post/80210959301/cryptopic-003](http://cryptopic.tumblr.com/post/80210959301/cryptopic-003)

</comment><comment><USER39> Just like finding a $20 in your laundry!

<comment><USER40> Mark: Honey, I was cleaning out the couch and found 117,000,000 USD!

One a serious note: How do they not have a program that monitors all wallets they control? This seems beyond ridicule.

<comment><USER41> Or even a text file with the all their public keys listed, so they could verify where their money was without giving access to move it.

I take better care of my dogecoins, and they are only worth a few hundred at best.

<comment><USER40> Yes, that would be the safest option! This level of incompetence is astounding.

</comment></comment></comment></comment><comment><USER42> All of us who look down upon Accountants take a hard look in the mirror (I am one of them who used to). Most of us are like..."meh...its just +'s and -'s with some tax component here and there, how hard can it be. I will get to it when I get to it."

Turns out all those tough exams and practices are in place to mitigate this exact scenario.

The above assuming no malicious intent on part of MtGox and the recent revelation was pure stupidity.

<comment><USER43> Actually there's no solid evidence how much help an accountant is with regards to safely using Bitcoins.

Would an accountant know enough to safely store "wallets", to monitor "blockchains". Is this in their training? No. You can have perfect accounting and still turn out you lost the wallets.

Bitcoin's problem is that there's no other asset in human history so easily misplaced, lost, or stolen. A bunch of numbers on a bunch of vulnerable computers.

</comment></comment><comment><USER44> Imagine telling this story to someone that time travelled from the time Magic: The Gathering first appeared in the mid-nineties.

MtGox: "Funny story ... internet ... website to trade Magic cards ... digital currency ... so that's how we found the $100,000,000 that we accidentally misplaced. Still looking for the other $300,000,000 or so -- must be around here someplace."

<comment><USER45> Apparently MtGox, despite the name, was never used for anything other than bitcoin. It was just a domain the owner had.

<comment><USER46> Sidebar: I know the motivations of people who post in every single goddamn thread that MtGox stands for "Magic the Gathering: Online eXchange" (ie, "tee- hee! giggle giggle! laugh!").

However, there is also someone in every thread who replies to this assertion to say that they never actually traded Magic cards. My question is, what is your motivation for this? I could think of three off the top of my head:

      a.  Emotional need to defend MtGox
      b.  Intellectual need to correct misinformation
      c.  Refocusing; it's an ad hominem and detracts from the real problems with MtGox

<comment><USER45> I appreciate the directness of the question. Can't speak for others, but in my case, it's (b) - I was one of the gigglers until I read one of the rebuttals you mention. Just trying to help the meme flow.

</comment></comment></comment></comment><comment><USER47> This story keeps getting more ridiculous. First, Gox loses a huge amount of BTC...now all of a sudden they have found some of it?

I assume this wasn't stolen and isn't already in the blockchain somehow. I do not believe that Gox was this blind to the problem in their systems. Something seems very, very fishy about this.

</comment><comment><USER48> This might as well be a comedy sketch. Can someone explain how this is even remotely possible?

<comment><USER16> Truth is sometimes funnier than fiction.

</comment></comment><comment><USER49> Let me guess, they were under the couch cushions, with some Lego pieces and stale Cheetos.

</comment><comment><USER50> This is what happens when you only have contractors in your company and no one with equity. No one cares about the business and the founder ends up with 87% equity of nothing.

</comment><comment><USER51> Being limited to reading the first paragraph of the linked article (paywall) and the other comments here, I can't resist to point out for those Pratchett fans among us, that this feels like the stunt Moist von Lipwig pulled in "Going Postal" in order to pay for the reconstruction of the post office.

While I feel really bad for those who lost money with MtGox, there were so many signs pointing at such an outcome: Unexperienced programmer asking all the wrong questions, background in "Magic the Gathering" card trading, zero background in banking or security.

None of that sounded particularly trustworthy and look where it went.

</comment><comment><USER52> In other shocking news it was also revealed by MtGox the first 100k BTC in the old wallet were actually the ones owned by MtGox and were thought stolen.

</comment><comment><USER53> Sadly, I would have to pay $1 a week for 12 weeks to read the story. I think it would probably be old news by then.

<comment><USER54> WSJ stories are 100% of the time available by doing a google search for the headline.

<comment><USER55> It's ridiculous that we should have to do that.

<comment><USER56> If you've got a better way for them to keep the lights on, there are wheelbarrows of money waiting for you.

<comment><USER57> What about the Netflix/Spotify model? Pay a monthly subscription for "premium news" and then let the content providers divvy up the monies based on pageviews.

<comment><USER58> That would simply accelerate existing trends. All the money would go toward pumping out more celebrity gossip because that's what gets eyeballs. There would be no remaining incentive to engage in actual journalism.

Profit-based news is irretrievably broken.

<comment><USER55> There's nothing wrong with profit news. That is how all news generally works - journalists generally don't work for free. However they should rely on adverts like the other online news sources.

<comment><USER58> Journalists get paid, that doesn't mean the news organization that pays them must be a for-profit entity.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER59> Hold on. They just LOST over 100 million dollars? Give me back my 5 bitcoins now!

</comment><comment><USER60> These amounts are lost all the time in governments in conventional currency..

</comment><comment><USER61> How were you able to trigger the double spend on mtgox anyways?

</comment><comment><USER62> Never mind that, where do I get one of those big sofas?

</comment><comment><USER63> I can't help laughing at all this shit. I was saying for years people shouldn't be trusting their money to Mt Gox, and constantly got mocked for it. Common sense wins again.

</comment><comment><USER64> Current market value of about $116M. Wow.

</comment><comment><USER65> Anyone that believes they "simply found" those coins should PM me about a bridge I have for sale.

</comment><comment><USER66> any versions of this article that i don't have to pay for?

</comment><comment><USER67> loginwalled article.

<comment><USER68> Same. Google cache: [https://webcache.googleusercontent.com/search?q=cache:o7jSx_...](https://webcache.googleusercontent.com/search?q=cache:o7jSx_DEvKgJ:online.wsj.com/news/articles/SB10001424052702303802104579452062699281046+&cd=5&hl=en&ct=clnk)

</comment></comment><comment><USER69> Great jokes, keep them coming! :-)

</comment><comment><USER70> bitcoin advertising and promoting operation: success !

</comment><comment><USER43> I actually envy Mark Karpeles' ability to not give a fuck throughout this whole situation.

In fact, I think it's some sort of super power.

<comment><USER46> Hyperbole and a Half has a interesting monologue on this sort of superpower:

[http://hyperboleandahalf.blogspot.com/2013/05/depression- par...](http://hyperboleandahalf.blogspot.com/2013/05/depression-part- two.html)</comment></comment>


Strange messages coming from the stars are probably from aliens, scientists say - <AUTHOR> http://www.independent.co.uk/news/science/aliens-proof-evidence-facts-stars-scientists-extraterrestrial-life-et-intelligence-a7377716.html <comment><USER2> I could not glean from the arxiv paper how far away these anomalous stars were from Earth.

Assuming c is a hard limit, the ETI would have to be roughly 50 LY away to catch our first signals and send a beacon signal.

If instead they observed Earth as a possible life-bearing planet, which could have been made thousands or millions of years ago, then disregard above paragraph.

Or maybe they are just generating signals in more than one direction.

Or maybe our interpretation of the anomalies needs adjustment.

</comment><comment><USER3> It would be a fun project to set up a genetic algorithm to solve for the object(s) and star.

We have: a star, an object, a signal, knowledge of the physics involved.

Set the GA to change the star and object consistencies and goal match the signal to the true signal received.

If it works you will have changed the use of computing in astronomy.

</comment><comment><USER4> Anyone got a better source with more info on what they're talking about?

<comment><USER5> There's the unpublished paper.

[https://arxiv.org/ftp/arxiv/papers/1610/1610.03031.pdf](https://arxiv.org/ftp/arxiv/papers/1610/1610.03031.pdf)

But to say "'probably' from aliens, scientists say"

Either they or the reporter are idiots.

<comment><USER5> [http://www.universetoday.com/131557/either-stars- strange-234...](http://www.universetoday.com/131557/either-stars- strange-234-aliens-trying-contact-us/)

"The Breakthrough team don't seem that excited about Borra's findings. They've already poured cold water on it, trotting out the old axiom that "Extraordinary claims require extraordinary evidence" in a statement on Borra's paper. They also give Borra's findings a score of 0 to 1 on the Rio Scale. The Rio Scale is something used by the international SETI community to rank detections of phenomena that could indicate advanced life beyond Earth. A rating of 0 to 1 means its insignificant.

Better reign in the headline writers."</comment></comment></comment>


Can Chess Survive Artificial Intelligence? - <AUTHOR> https://www.thenewatlantis.com/publications/can-chess-survive-artificial-intelligence <comment><USER2> Chess is today more popular than ever, with online playing platforms like chess.com or lichess.org, where you can find an opponent in seconds and easily analyze the game afterwards.

The short time formats like Rapid 15 minutes with 10 seconds increment per move is my favorite, but the most popular format is Blitz, which is say 5 minutes with 5 seconds increment.

You can play even bullet of 2 minutes with 1 second increment, or even no increment formats. You can play chess anywhere, at the bus stop, in the dentist office, take video lessons, do practical drills, puzzles.

Via the rating system, you are always matched to an opponent of near- equivalent strength. The rating system is build so that a 200 point difference means that the higher-rated player will on average win 3 out of 4.

Most opponents are less than 100 points apart, so it's typically a 50/50 chance that you will win a given game.

Chess only looks dull for those who don't play it, it can be super exciting. But the classical format, with a physical board, and 5 hour games? I think that will become less and less of a thing.

<comment><USER3> On the contrary I promised myself to only play chess over the physical board.

Playing online started to feel like an addiction. Most people end up playing blitz or rapid which even reinforces the addictive behaviour. Over time I felt like there's not much difference in the way I play chess to playing any other online game.

But there's nothing better than meeting a friend in a cafe and have a good game over the board.

Such game forces you to focus even more because you have that friendly rivalry going on and you've been keeping a score. I can imagine real competitions are even more intense.

That's something different than playing against some anonymous nickname online.

Paul Morphy said "ability to play chess is a sign of a gentleman. The ability to play chess well is a sign of a wasted life"

I personally get much more of what I expect from chess when playing in person. Playing online has become a compulsive behaviour and quite a meaningless activity once you reach certain level in ratings - the point when you learned the most chess can teach you about life and strategy but getting better requires harder and harder work while lower and lower return other than bettering your ratings.

So no, for me the classical format must live on else chess will become replaceable.

PS: I encourage everyone to grab a board, go to the nearest cafe or wherever, open a nice bottle of your favourite beverage and have some good battle with a friend over the board.

<comment><USER4> I have a decent amount of friends. Of the ones who live nearby, none play chess.

There are some chess players in my city, but I haven't the time for that level of commitment.

Playing online via an app with up to 24 hours per move and in-app chatting is best for me. Sure the person can cheat, but I assume most would rather play fairly and win of their own accord rather than a meaningless win via cheating.

<comment><USER3> I got a friend of mine into chess. First, I beat him easily.

Turned out he's competitive and while I was abroad for 6 months he trained hard to beat me.

When I got back the games became competitive and while playing chess we ended up having a business idea and we started a business.

Now 6 months later it earns both of us about what's an average salary here + pays another employee.

He in turn played his cousin while I was away. They got together after since childhood and started going rafting and other adventures.

I know a bunch of stories like that.

All sorts of things can happen that won't happen online. Of course I played online too, and them also ... to improve.

I think even if you think you don't have friends it's good to just play anybody who's down for it. Or join a chess club generally inquire who knows chess when you meet some new cool people.

</comment></comment></comment></comment><comment><USER5> A great example at how computers affect chess commentary is the currently ongoing tournament in St. Louis. On youtube, the game is broadcast by people using an engine to evaluate the position they're looking at, and on twitch, two grandmasters are providing commentary without an engine. The youtube stream can be easier to follow, but it takes some of the drama out when the story appears to be "look at this guy, missing the best move when he's #4 in the world, how could this happen?" for every game. On the other hand, the grandmasters' commentary might be closer to what the players are actually thinking (what would be deemed "human moves"), but sometimes even they aren't sure what exactly is going on.

[https://www.youtube.com/user/STLChessClub](https://www.youtube.com/user/STLChessClub) [https://www.twitch.tv/stlchessclub](https://www.twitch.tv/stlchessclub)

<comment><USER6> It's a shame Alejando Ramirez isn't on comms for this one, as I think he's the main draw for STL commentary for me - extremely well versed in current theory, able to balance human and computer analysis perfectly, and (with all the love in the world) doesn't bumble about as much as Yasser Seirawan.

Of course, the dream team remains Jan Gustafsson and Peter Svidler over on Chess24 when they're able to get together:

[https://www.youtube.com/watch?v=T6aP- wa1q20](https://www.youtube.com/watch?v=T6aP-wa1q20)

<comment><USER5> Ramirez is doing the twitch stream, though you're right that he was able to balance out how the computer analysis affected his commentary. OTOH, I felt that as an event dragged on, he'd rely more and more on the machine to tell the story of the game. Conversely, it'd be nice if they made Maurice Ashley comment without the engine for a while, maybe he'd have more interesting things to say again.

</comment></comment></comment><comment><USER7> The 'AI beats worldchampion in ...' is a story that has diminishing newsvalue as time progresses as people will just come to expect this to be the case.

Competitive games survive AI not because humans are a good match to the AI, but because people like playing other people, or watch humans playing each other. A Dota 2 championship does not wane in interest because there exists an AI model that can beat most human teams. Cycling races did survive the advent of the motorcycle just fine.

What does change is the scrutiny that needs to be deployed for catching fraudsters using automation assistance in human competitions. But is looking out for a hidden computer or communications device in a chess tournament different from looking for hidden motors in a cycling race?

<comment><USER8> >A Dota 2 championship does not wane in interest because there exists an AI model that can beat most human teams.

I just want to make this clear, because it's something that a lot of people misunderstand, there exists no such AI currently. Not even close. What exists is an AI that can play with and against 17 out of 115 heroes, which allows a tiny fraction of the possible hero combinations, and those 17 heroes are specifically chosen because they are relatively AI-friendly. This AI is also only extremely strong if you're not allowed to repeatedly play against it and figure out 1. where the AI is exploitable and 2. what picks/items/playstyles are even good in this 17 hero meta that no human has ever given much thought before. Plus, as it stands now, the AI has quite the interface advantage, since it doesn't just get the rendered screen as an input, but the internal game values through an API - which allows much more precise reactions.

I'm not saying that the OpenAI achievement isn't great, it absolutely is and I enjoyed the matches quite a lot (even if I don't really play DotA 2), but we are a long, long way from AI supremacy in DotA 2. And if we reach it, we have no idea how it is going to influence the popularity of DotA 2 competitions. After all, younger people playing chess now already grew up with the idea that they will never be able to even come close to the strength of a computer, but DotA 2 players have seen bots as useless pushovers for all their lives.

<comment><USER7> You are absolutely right and I did not mean to say that the current OpenAI Five today can beat most human teams in a full DotA 2 game. My point is I do not believe the eventual existence of such an AI player would impact the interest in Human to Human competitions, either as players or as spectators, for that game.

</comment></comment></comment><comment><USER9> Yes, but its in a new form.

Hardcore "no rules bared" chess is correspondence chess, where you have 24-hours between moves and can use whatever means necessary to make the best move.

If you think just buying a supercomputer and running Stockfish (or LeelaZero) will win, then you don't know anything about opening databases. All the good correspondance chess players have already run Stockfish / LeelaZero across many different openings, and have collected statistics on which openings will lead to situations where Stockfish (or LeelaZero, or Komodo, etc. etc) will inevitably fail.

These computer AI chess programs have weaknesses. A "Cyborg" team, composed of a human guiding Stockfish (or LeelaZero) through opening books can get further than any computer alone, and likely push the opponent into a subtly failing position.

\</comment><comment>-

The article talks about it a bit in Centaur Chess section. That's probably where the biggest challenge lies in the future. Centaurs have access to the 8-man database, you keep opening-books secret, and you spend time studying how Stockfish, Leela Zero, or Komodo (or other engines) makes mistakes.

Or, you write your own engine, and try to use that as an edge.

<comment><USER10> > These computer AI chess programs have weaknesses.

> ... have collected statistics on which openings will lead to situations > where Stockfish (or LeelaZero, or Komodo, etc. etc) will inevitably fail.

In case of Stockfish and other "conventional" engines, yes.

However, with engines like LeelaZero those weaknesses gets much harder to exploit, since you can create your own version of Lc0 by training a new model with tensorflow.

<comment><USER9> LeelaZero struggles with endgames. I'd probably use LeelaZero through the beginning and middle games, but switch to Stockfish whenever I feel like a tactical situation comes up, especially if the position starts to drop down to 10-man or 9-man. 7-man Syzygy Tablebase are less than 10TB, a RAID-array of M.2 drives will access those quickly. If Stockfish evaluates any 8-man trade, it will simplify into a 7-man situation and you have guaranteed perfection after that.

No one knows how to integrate the endgame tablebases into LeelaZero by the way. So if we both play LeelaZero for the first 40 moves, but I switch to Stockfish + 7-man Tablebase for the ending, I'm probably going to beat you. LeelaZero's endgame really is quite weak.

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

If you are a programmer, and can figure out how to integrate the Neural-Net evaluation into MCTS to evaluate tablebases, you probably would do great. Its currently unsolved (to my knowledge).

It seems solvable... I don't see any reason why MCTS couldn't have a if(popcnt(bitboard) < 8) doTablebase() statement somewhere. The question is how to do it as quickly as possible, and how to do it asynchronously and integrate the statistics to the rest of the MCTS tree.

BTW: A research team has created the 8-man Tablebase, although it takes probably 100s of TB to store. This means that 8-man Tablebases will remain as Hard-drive only for now.

</comment><comment><USER11> > The impact of computer chess on the game — as still played by humans — has > been twofold. First, computers have helped to flatten chess, increasing pure > understanding of the game at the expense of creativity, mystery, and > dynamism. Second, they have become intertwined with every aspect of chess, > from play at the highest level to amateur study and the spectator's > experience.

This speaks more about the players than computers. It is still very possible to play 'human' chess at an extremely high level. Look at the number of London systems at the top level, the way Carlsen decides to play a Czech Benoni against a lesser grandmaster. He won that game out of human skill, not computer mastery.

The human element of chess is alive and well. The computerisation of chess started to sky rocket when computers and humans were at similarish playing strengths. As computers have far overtaken humans at chess now, I think chess will start to humanise itself once more.

</comment><comment><USER12> Will the 100 m dash survive the car?

<comment><USER13> I think it's different. In physical sports, we already have categories, because we have to overcome physical limitations. For example we have separated human sprinting into Male and Female categories forever. In boxing or martial arts we even have weight categories. So you can be good "for a woman" and it doesn't carry much stigma.

For chess, it's supposed to be a purely intellectual game, and even though there are categories, the top women can play with the top men. This wouldn't make sense in 100m dash where the Women world's record is beaten by highschool boys.

Essentially this places the entire human species in a second-tier category. Human champions are now good, "for a human". Humans are in the lower league and we must make sure they only play between each other because of their inferior cognitive capabilities. They are no longer competing for the genuine title of best chess player in the World, they wouldn't even qualify to enter the tournament. The World best human in history can be beaten by the equivalent of a highschooler machine player.

<comment><USER14> I think the comparison with the 100m dash is very apt.

We have machines that can obviously beat any human runner but the point of the race is to race other humans, not machines.

The point and fun of chess will remain to play against other humans.

<comment><USER15> Cars don't change how humans run. Computer chess does change how humans play. While yes, the interesting part is watching humans play humans, the concern is that computers will influence players, be it in chess or competitive videogames, into less interesting play. I think that's a real concern as artificial intelligence improves, though right now I don't think it's a problem.

<comment><USER6> Yeah, a better comparison would be the triathlon, if instead of one part being on a bike, you instead got a motorbike and every year new tech made that faster. Sure you still have 2/3 down to humans but 1/3 is sort of automated.

But as you say, this doesn't seem to be an issue currently, and 2019 has been quite exciting in classical chess. I think right now there are more potential openings on the table than any time this century, as new engines (re)introduce lines that Stockfish didn't think highly of, and that can continue for quite a while.

<comment><USER12> Surely people don't use computers WHILE playing? So it's like having the coach ride in the car, yelling at the runner while he practices. Quite innocuous.

<comment><USER6> Sure, and remembering 20 moves of computer prep in various different lines is a skill in itself, and knowing _which_ lines to prep or innovate in is part of the metagame. But it still feels a _bit_ unnatural, no?

<comment><USER12> Well yes, but not really much different from memorising openings from a book. Personally I find all kinds of professional sports and competition a bit boring, it was more fun when people were amateurs.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> I imagine there will come a point where algorithmic chess (I wouldn't call it AI) results in perfect play, where every match ends as a draw. Much like the scene in War Games where the computer plays tic-tac-toe against itself and every game ends in a draw. Given sufficient resources, and the fact that there is no chance at all in chess (save choosing who moves first), it seems to me it's only a matter of time before every move is the perfect move. That would mean one of two things: either every game ends in a draw, or every game ends with white winning.

The end result of this is that every game will be the same. Given two effectively infinitely-skilled computer players, there's no more game to play. There's always a best move, and the best one could hope for is the draw (or, again, white would always win; I'm not sure if it's been proven that first move guarantees a win with perfect play--but it's one case or the other).

Human vs. human will remain a compelling game, both for players and observers, but computer-vs-computer will cease to be interesting at all. As will human- vs-computer, except maybe as a way to see who can survive the longest before losing or drawing; no human can win against the best computers even today, and never will again.

<comment><USER17> > I'm not sure if it's been proven that first move guarantees a win with > perfect play

It has not, chess is an unsolved game: [https://en.wikipedia.org/wiki/Solving_chess](https://en.wikipedia.org/wiki/Solving_chess)

<comment><USER13> In this scenario human vs human is not very compelling when all they do is make mistakes. The only analysis left is how bad their mistakes are.

<comment><USER18> There are positions in chess that have been disputed for decades or more which are just now coming alive because of the ability of engines to analyse lines. The thing that's interesting about high-level chess is how players play out particular strategic themes that result from known positions (eg initiative vs material, the open H file for white in the London system vs not being able to castle kingside, play in the center versus counterplay on the flanks etc etc etc).

My recommendation would be watch a really good game analysis like Agadmator's youtube channel. One like this might be fun to start [https://youtu.be/vztVylqnBSo](https://youtu.be/vztVylqnBSo) or one of the Capablanca vs Lasker games. Alternatively John Bartholomew and Eric Rosen have fun channels where they play and commentate on their thought process.

<comment><USER19> Good to see Agadmator getting a shout out

</comment></comment></comment></comment></comment><comment><USER6> I personally think this is an extremely exciting time in chess, especially when you take into account the surprising amount of doom and gloom that occurred around the World Championship. We've recently moved from long, boring theoretical battles in the Berlin or Petrov to revive various lines in the Sicilian, and Magnus Carlsen's classical revival since retaining his title seems to be based on very interesting positional sacrifices, instead of just grinding out wins from mostly-equal positions as he may have done in the past. It's hard not to want to acknowledge the invisible hand of AlphaZero (and indeed Leela) in these changes. I'd like to think that opening theory is going to go through something of a renaissance as more top players get access to these new engines with a better long term strategic sense of the game. It's hard to believe we're going to run out of new, interesting positions in our lifetimes.

Between those changes at the board, and the wider changes of people pushing chess as an esport, and growing prize pools from St Louis and the Grand Prix circuit, there's never been a better time to be a player or fan at any level of the game.

</comment><comment><USER20> The answer to the question is yes, most chess players have accepted computers play the game better and don't care. High level chess will eventually just change the rules if forced drawing lines make it too dull.

<comment><USER21> > High level chess will eventually just change the rules if forced drawing > lines make it too dull.

If it hasn't happened already, it may never. People were complaining of the draw death of chess decades ago, and it's worse now than ever.

</comment></comment><comment><USER22> My personal theory as to why chess isn't that popular in the US - and why the US produces _relatively_ few world-class players given its very large talent pool - is that chess at a high level involves a large number of draws. The last championship was entirely bloodless in the main games and had to go to tiebreaks (rapid + blitz games). At IM+ level more than half of games end with draws. And this goes contrary to the US mentality where everyone is either a 'winner' or a 'loser' and competition is seen as a highest ideal. A game where most of the time it is impossible to tell the better player must feel frustrating to amateurs. And indeed, many many _many_ times some laymen will complain that there are 'too many draws' and 'the rules must be changed' so spectators see some blood.

Another common complaint related to draws is the number of 'grandmaster draws', or 'comfort draws', whereby two players, usually at a high level, agree to leave it at that after a low number of moves (Chess is one of the few games featuring 'draw by agreement', meaning both players may agree to a draw at any point in the game without justification). Almost every grandmaster is guilty of that, and players who do that often get derided by their coaches, the media and amateurs: how dare you, you are a disgrace to the sport, I didn't pay to watch this, etc. I daresay the complainers are either hypocritical or have never been involved in high-level long-form tournaments (7+ days of 4+ hour games each plus rapid/blitz side events etc.). Sometimes both players feel tired and don't want to play it out (usually due to _having played it out_ 6+ hours the game before) and objecting to that is just unrealistic. Chess isn't a gladiatoral arena. Then there are the famous accusations of collusion from Fischer against his Soviet counterparts but Fischer has always been slightly mad his whole life so I wouldn't take anything he said seriously.

</comment><comment><USER23> It's a bit like asking if athletics will survive the cars, because no one can outrun a car. Well, as long as you play chess against other humans AI is irrelevant, isn't it?

<comment><USER24> Anyone can outrun a car... In a sufficiently dense forest. AI always have had this problem that reality is a very dense forest.

</comment></comment><comment><USER25> This article misses the actual problem. It suggests that computers are gradually yielding a perfection of play which is implied to lead to a draw. But that's not really what's happening. In fact computer chess now already has fewer draws than top level human chess. The issue is that chess is unimaginably vast. The article talks about people having the first 15 moves prepared. That's true, and false. In each position there are somewhere around 30 legal moves on average and 3-4 decent moves. That means after just the first 15 moves there are 3.5^30 reasonable moves to explore. That's 20 quadrillion reasonable options. And obviously the entire search space, 30^30 is rather larger.

No human has explored more than a minuscule fraction of that domain, and today computers are already much stronger than the strongest humans. In times past this was not such a big deal. You play what looks good or promising, and even once you get outside of your preparation it'll still be human against human or, at worst, human against team of humans. But this is where computers now come in. Now if you enter into a complex position that your opponent has analyzed with a computer and you haven't, you stand a very real chance of losing without your opponent ever having to think for himself or you having any real chance.

As a result of this players are increasingly preferring lines which tend to be very "solid" with much less room for your opponent to find 'surprise moves' or novelties. And even if they happen to find such a move you stand a good chance of being able to somewhat safely navigate the waters since the position is, again, "solid." The problem should be obvious. This sort of chess is _extremely_ prone to draws.

\---

You can even see this in chess events when a player loses. Modern world championship matches are very short (usually 12 games). So a single loss is huge because you just don't have much time to catch up. As a result once a player loses the calculus of the match significantly changes and now even if you do get caught out - well you were going to lose anyway. And so the players will put aside computer fears and return to more 'traditional' views of chess. And as a result you often see a decisive game end up being followed by another decisive game. At worst one decisive game is often followed by much more interesting games.

This is one of the reasons there have been suggestions like returning to draw odds in favor of the champion (as used to be the case in some matches). Now a days instead to resolve draws in the slow chess we go to increasingly rapid time controls and even, at the extreme end, a times-odd game where black gets draw odds. As variance ostensibly becomes larger in those sort of games, the challenger is often happy to just draw the probably stronger champion in slow chess and hope to get lucky in the fast tie-breaks. Other ideas have been to play the tie-breaks _before_ the real match starts, or to have a tie-break for every single game so they're always decisive. Again, it's always the same goal - to remove drawing as an acceptable outcome for at least one of the players.

You can also see this exact affect even in tournament events. When there is no leader all the games tend to be draw heavy because the calculus is directed towards the value of 'not losing' over winning. But once a player starts to pull ahead of the pack, the calculus starts to change more towards winning. And so one player winning ends up triggering a cascade of decisive games or, again, at worst much more interesting games.

\---

The problem isn't computers - it's fear of computers and somehow removing the value of draws in chess. But nobody's found any really great way to solve these problems.

<comment><USER9> > removing the value of draws in chess

Armageddon chess (Black wins in all draws) is one such solution, although it leads to a major Black advantage.

But there are 4-kinds of draws: Repetition, Stalemate, Insufficient Material, and 50-moves. No other draws exist in chess.

Perhaps instead of giving Black a win in all kinds of draws, maybe Black should win in two or three of the draws (Black wins on Stalemate and Insufficient Material), while White wins on Repetition and 50-moves.

This suggestion hasn't been studied yet. But it seems like the natural progression after Armageddon chess.

Note: This is not my idea, but one being discussed somewhere else. Its interesting though, so I like it.

</comment></comment><comment><USER26> [https://en.wikipedia.org/wiki/Betteridge%27s_law_of_headline...](https://en.wikipedia.org/wiki/Betteridge%27s_law_of_headlines)</comment>


Gradle-Spring-Rest CRUD generator - <AUTHOR> Hey, I had this idea of making a CRUD generator, which generates gradle-spring-mariadb-JPA-microservices based on JSON strings. Think front-end having FormGroups need serving. This was mainly such that I didn't have to write endless boilerplate code, but then I thought hey! I'll use my free trial on google app engine and share with you guys! Give it a try, and say honestly what you think. PS! I suck at front-end and there's no JSON validator + the JSON string can't include arrays yet.
TL;DR: Try this webpage, it's free for a limited ammount of time..
https://www.solrest.no/ <comment><AUTHOR> bump?</comment>


Amazon's global shoppers just can't get enough of made-in-India products - <AUTHOR> https://qz.com/1229086/copper-glasses-handicraft-bed-sheets-amazons-global-shoppers-just-cant-get-enough-of-made-in-india-products/ <comment><USER2> You can place orders in amz.in</comment>


Peerspace Covid-19 Policy: not entitled to cancel, receive a refund - <AUTHOR> https://www.peerspace.com/legal/terms/cancellation-policy <comment><USER2> Here is a humorous piece on how to get a refund:

"From a friend, a few days ago:

We were supposed to be in Vienna today for a short vacation, but the city is at high risk and we would have had to be quarantined on the way back.

The hotel refused to refund the payment. I called and asked to extend from 3 nights to 10 nights. When they asked the reason, I replied that I just got back from Italy and am looking for a place to stay until the 14-day quarantine period is over. "I want to stay in one place and not move around," I told them.

They canceled my reservation immediately."

From:

[https://philip.greenspun.com/blog/2020/03/16/how-to-get- your...](https://philip.greenspun.com/blog/2020/03/16/how-to-get-your-money- back-on-a-non-refundable-hotel/)

And the thread on it:

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

</comment><comment><AUTHOR> A friend noticed this while attempting to cancel a booking earlier today. The specific section reads:

Guests who cancel Bookings confirmed, updated or rescheduled prior to March 25, 2020, for Events scheduled to occur on or following April 30, 2020, will not be entitled to cancel and will not be eligible to receive a refund due to COVID-19.

This is very frustrating as their poly up to today (3/26) was to allow a FULL refund in case of a state of emergency.

<comment><USER3> It makes some sense to restrict cancellation of bookings made, confirmed, or altered during the same emergency. There's a difference between an emergency that the customer could not have reasonably expected when making arrangements and one that they should have known existed and factored into their planning.

<comment><AUTHOR> But this also covers bookings made in January, for example. While I agree with what you are saying the new policy does not exclude bookings made months ago to occur this summer.

<comment><USER3> Sorry, I must have misread "prior to" as "after" somehow. I agree that this is odd.

The thinking may be that they are presuming the emergency will be passed by April 30, or at least that, at this moment, cancelling that far out is not justified by the present emergency. Not endorsing, just speculating on the thought process.</comment></comment></comment></comment>