Ask HN: Which are the best conferences or summits on ML and AI - <AUTHOR> I have recently started taking interest in Machine Learning, Deep Learning and AI. I would like to attend good ML and AI conferences in Europe. Any recommendations? <comment><USER2> Not sure about conferences in Europe, but NIPS will likely be held in Montréal in December 2018. NIPS is quite focussed on neural networks and tends to get attended by alot of heavy weights in the industry.

ICML and ~ICRL~ ICLR are pretty good too.

<comment><USER3> ICLR* (IC Learning Representations) but yeah. I had to check whether there was something called "International Conference on Reinforcement Learning".

</comment></comment><comment><USER4> For machine learning in general, there's NIPS, ICML, and JMLR. Nowadays these conferences/journal have a nice mix of theory and practice. For natural language processing the top ones are ACL (NACL/EACL) and EMNLP. The computer vision it's CVPR and ICCV. For robotics (which uses lots of machine learning) it's ICRA and IROS. IEEE may also have some relevant material.

<comment><USER5> I would add ICLR as number 3 for machine learning.

</comment></comment><comment><USER6> So there is a great conference series on practical Machine Learning and Data Science called PAPIs. It's organized in locations all over the world. The next one is PAPIs EUROPE in London in April and then PAPIs LATAM in São Paulo in June. The website is [http://www.papis.io](http://www.papis.io) and you can see a selection of talks on the youtube channel [https://www.youtube.com/channel/UCHMa1aYqXIQPnQD34W-ejQg](https://www.youtube.com/channel/UCHMa1aYqXIQPnQD34W-ejQg)

Disclaimer: I am one of the organizers.

<comment><USER7> Attended the one in Boston, great conference with intimate atmosphere where you can personally meet any speaker :)

</comment></comment><comment><USER8> List of conferences on ML (in no particular order) 1\. NIPS 2\. ICLR 3\. ICML

List of Conferences on CV (in no particular order) 1\. CVPR 2\. ECCV 3\. ICCV

<comment><USER9> This guy has them right. I'd probably argue that CVPR is slightly more prestigious than ECCV/ICCV and NIPS is slightly more prestigious than ICLR/ICML, but deciding which conference to submit to is mostly related to "when is this research done".

</comment></comment><comment><USER10> KDD will be in London next year, this is the top conference in applied ML research. Actually solving problems using AI.

WWW will be in Lyon, this is also a tier 1 conference with a similar goal, mostly involved on web problems, eg search ranking.

I've always felt that ECML was the top Europe specific ML conference. Basically the little brother to ICML. ECML will be in Ireland, ICML will be in Sweden.

</comment><comment><USER11> [https://dotai.io](https://dotai.io) (Paris, May 31st) stands out because it is primarily targeted to developers building apps, not researchers or framework authors.

Disclaimer: I'm the organizer, but don't take my word for it, watch the videos from last year: [https://www.dotconferences.com/conference/dotai](https://www.dotconferences.com/conference/dotai)

</comment><comment><USER12> The Spark + AI summit is awesome: [https://databricks.com/blog/2017/12/06/spark-summit-is- becom...](https://databricks.com/blog/2017/12/06/spark-summit-is-becoming-the- spark-ai-summit.html)

</comment><comment><USER13> SOCML (Self-Organizing Conference on Machine Learning) is really nice. Open discussions and interesting people. It's not the classic academic conference.

</comment><comment><USER14> For the AI side there's

ECAI [https://www.eurai.org/activities/ECAI_conferences](https://www.eurai.org/activities/ECAI_conferences)

ECAL [http://alife.org/conferences/ecal](http://alife.org/conferences/ecal)

SAB [http://alife.org/conferences/sab](http://alife.org/conferences/sab)

<comment><USER15> ECAL and SAB are not mainstream AI conferences. They are niche artificial life / adaptive behaviour meetings and have a very different flavour and history.

IJCAI and AAAI are the mainstream long-running AI meetings.

NIPS and ICML are the recently-ascendent NN-heavy meetings.

</comment></comment><comment><USER16> For a robotics focus, ICRA and IROS are the big ones. IMHO ICRA is a bit bigger and better than IROS but it's close.

Robotics: Science and Systems (RSS) is smaller but its paper acceptance is much more selective and it is becoming a very prestigious conference. It's also single-track, which makes it nice as an attendee (ICRA and IROS run probably eight to ten parallel tracks).

</comment><comment><USER17> CCF, the counterpart of ACM in China, has an official ranking for computer science conferences and journals classified into ABC.

The A class conferences in AI field are: AAAI, CVPR, ICCV, ICML, IJCAI, NIPS, ACL.

[http://www.ccf.org.cn/xspj/rgzn/](http://www.ccf.org.cn/xspj/rgzn/)

</comment><comment><USER18> I already attended two PAPIS conferences in Boston, and are pretty good. It's not a massive conf, so I made great contacts from ML & AI-based companies.

Check their website, next conf is in London [http://www.papis.io/](http://www.papis.io/)

</comment><comment><USER19> NIPS, ICML, ICLR, CVPR. Can't recall which are will be jn Europe off the top of my head..

</comment><comment><USER20> If I may, what is the best ML/AI group on meetup with local presence in your city?

<comment><USER21> In MN, MinneAnalytics holds several good conferences and there are a good number of meetups too! [http://minneanalytics.org](http://minneanalytics.org)

</comment></comment><comment><USER22> COLT, ICML, IJCAI, and AAMAS will all be in Stockholm in July 2018.

</comment><comment><USER23> For less academic conferences look at ODSC, AnacondaCon, or UseR!

</comment><comment><USER24> Anyone know how good qcon.ai is?

<comment><USER25> This is their first time running it. I went to qCon SF this year and I thought it was alright. They talked a bit about qCon AI and said that it was a machine learning conference that is targeted towards software engineers, not data scientists. They also mentioned that they would have a hands on lesson track.

</comment></comment><comment><USER26> there is ai.withthebest.com which is all online. it had some good talks.

<comment><USER27> do you know how to access the actual content? Clicking on "access replays" brings you to "sale ended". Clicking on "access platform" leads to nowhere...

<comment><USER26> Some of the content is paid and some of the talks are posted on their youtube channel [https://www.youtube.com/channel/UCAKID7sQr-EVjCu- Bg62Hjg](https://www.youtube.com/channel/UCAKID7sQr-EVjCu-Bg62Hjg)</comment></comment></comment>


FINN: A Framework for Fast, Scalable Binarized Neural Network Inference [pdf] - <AUTHOR> http://www.idi.ntnu.no/~yamanu/2017-fpga-finn-preprint.pdf <comment><USER2> They report image classification speeds of 20K - 12.3 million images / second. Good! That means we might see robots that don't stumble or take 2 minutes to open a door. Here's what you can do with 1000fps vision:

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

(and that was 7 years ago!)

I'm wondering why fast vision applied to robotics hasn't been more researched in the meantime.</comment>


Ask HN: What do people use for managing a software project at the beginning? - <AUTHOR> Its easy to reason about tickets/issues/stories for something that's established. Maybe in JIRA, Basecamp etc... what about the very beginning? Do you create JIRA tickets? straight to Github issues? TextEdit/Excel? Curious how other teams get started. <comment><USER2> I use a basic Markdown document, with a bullet-point list of "todo" items.

For things that need further breakdown, I use indented sub-items to decompose features into achievable chunks.

I then use strikethrough formatting to mark things as done. On GitHub this is done with tilde characters; other (proper) Markdown parsers might need to use <del>.

I find it usually means a 1-page overview of the initial scope of the project, which helps me refine the concept as well as the todo list.

Once the initial work is done, I tend to use GitHub issues. That might not be until I've done a few iterations of the Markdown doc though.</comment>


Luke Wrobleski's 1h talk about Web Form Design at MIX09 [mp4] - <AUTHOR> http://videos.visitmix.com/MIX09/C17F

<comment><USER2> Is there a non silverlight version of this?

<comment><USER3> You can just download the .mp4 at the bottom of the post. I don't know if you noticed it or not but just making sure _shrug_ :)</comment></comment>


Culdesac: Building car-free neighborhoods from scratch - <AUTHOR> https://medium.com/culdesac/introducing-culdesac-3fbfe7c4219c <comment><USER2> What's the solution for unloading your car after a costco trip? How do I load my car for a camping trip? How do I unload lumber for my DIY home improvement projects? This project seems to have a very narrow view of how people live their lives.

<comment><USER3> By not having a gigantic costco a car-distance away, but by having smaller stores a bicycle-distance away. Making trips to the store becomes easier and more frequent allowing your shopping to fit in the saddle bags.

Barring that a big cargo bike can easily fit a couple car loads worth of cargo for the last-mile transport.

</comment></comment><comment><USER4> There are parts of downtown Salem, MA that are like this, specifically Essex St from the east side of Salem Common to Washington St (Summer St if you're being generous). Newburyport, MA has some similar areas. Both are absolutely delightful places to live and work.

</comment><comment><USER5> I'm not seeing any information on people are supposed to physically move into their house or how deliveries will be managed. Cities have had roads long before cars were a thing, and they were never that pedestrian friendly.

<comment><USER6> It depends on the traffic frequency. My father-in-law recalls childhood memories in medium sized town in central Italy in the 50s when kids played soccer in the middle of the main road and just moved the goal when a car or truck had to pass. The road was the main artery for Carrara marble from the quarry to the port. I guess the economy was way smaller then.

</comment></comment><comment><USER7> They push the scooter and ridesharing options pretty hard, but how is that supposed to be a "real alternative" when all those services are massive VC- cash bonfires?

</comment><comment><USER8> [http://www.carfree.com/](http://www.carfree.com/) .. looks cool, i think the main problem is what to do about freight / large deliveries

<comment><USER4> Many highly-walkable cities handle this by allowing freight deliveries in the very early morning, say 3am-6am. This can get a little annoying if it's a mixed use commercial/residential space, as the residents then have to deal with freight truck backup noises in the wee hours. Fair trade off, I'd say, to live in a highly desirable and human-scale neighborhood.</comment></comment>


Unboxing in Guile - <AUTHOR> https://wingolog.org/archives/2016/01/19/unboxing-in-guile <comment><USER2> This is an excellent post, I found the documentation around Guile implementation[1] to have a lot of really valuable information about the implementation details of dynamically typed languages. I highly recommend perusing it to anyone who's interested.

[1] [http://www.gnu.org/software/guile/manual/guile.html#Guile- Im...](http://www.gnu.org/software/guile/manual/guile.html#Guile- Implementation)

<comment><USER3> Im building a VM and I am reading this blog (and related resources) constantly. Its great.

</comment></comment><comment><USER4> An excellent post, and a great blog for anybody interested in modern dynamic language implementations</comment>


In 'Star Wars,' Was the Death Star Too Big to Fail? - <AUTHOR> http://mobile.nytimes.com/2016/01/03/opinion/in-star-wars-was-the-death-star-too-big-to-fail.html <comment><USER2> That's ok, they'll try again in episode VIII. I'm sure the 4th death start won't have this one fatal flaw _this_ time.</comment>


Ask HN: How does one find developer positions in San Francisco? - <AUTHOR>

I'm looking to move from the northeast US to San Francisco - I'm totally pumped.
My background is primarily in development and application security - what are the best sites to use to find startup jobs?
I currently have applied to some on Indeed, but there has to be better sites. <comment><USER2> There is an official "Who is hiring?"/"Freelancer?" monthly post the first day of each month. It was only 5 days ago, so most of the information may be useful and you may find something in SF.

Who is hiring? [https://news.ycombinator.com/item?id=7679431](https://news.ycombinator.com/item?id=7679431) (291 points, 5 days ago, 478 comments)

Freelancer? Seeking freelancer? [https://news.ycombinator.com/item?id=7679422](https://news.ycombinator.com/item?id=7679422) (106 points, 5 days ago, 163 comments)</comment>


Ask HN: How would you take on Oracle? - <AUTHOR>

In their last quarter Oracle made $8.1 billion in revenue on software. My experience when I run across Oracle software is not one of amazement, elegance, or being impressed. I am more impressed by things I see on Hacker News or in the open source software area. It is almost like there is an arbitrage opportunity to bring the cunning and smarts of the hn/oss to the world of stodgy but lucrative business software. So I ask you, hacker newsers, if you were going to take on one Oracle software segment which would it be? (Some segments include: Fusion Middleware; PeopleSoft, Hyperion, or other Applications; CRM; Enterprise Management). How would you do things differently than Oracle? Corollary question: If Oracle is throwing out $1billion to acquire companies like ATG should we be encouraging each other to build more enterprise-y software as opposed to the next twitter client? <comment><USER2> _Corollary question: If Oracle is throwing out $1billion to acquire companies like ATG should we be encouraging each other to build more enterprise-y software as opposed to the next twitter client?_

No, don't be silly. The last thing the world needs is more startups producing enterprise software. The future is Social Media and real-time geo-located, location-aware activity-stream checkins with gamification and photo-sharing, plus Q+A, and a AJAX enabled TODO list. So, yeah, everybody should be working on building something like that, not enterprise crap.

 _/me_ whistles quietly to himself, and goes back to building enterprise software that he can sell for money, secure in the knowledge that the threat of additional competitors has now been abated.

<comment><AUTHOR> I'd like to hear more your experiences about breaking into the enterprise world and selling your knowledge management software.

<comment><USER2> Me too. :-)

All joking aside, I'm still VERY early in this process... I'm in what Steve Blank would call "Customer Discovery," so I don't have a lot to talk about yet. But as I get more into it, and when I have some time, I'll be blogging and writing about my experiences.

</comment></comment></comment><comment><USER3> I'm going to quote a Paul Graham quote that I came across in another item (<http://news.ycombinator.com/item?id=2423054>) just a few minutes ago:

> The "next Google" is unlikely to be a search engine, however, just as the > "next Microsoft" was not a desktop software company. I used competing > directly with Google as an example of a problem with maximum difficulty, not > maximum payoff. Maximum payoff is more likely to come from making Google > irrelevant than from replacing it. How exactly? I have no more than vague > ideas about that. I wouldn't expect to be able to figure out the right > answer, just as I wouldn't have expected anyone to figure out in 1990 what > would make Microsoft irrelevant.

Don't try to take on Oracle, try to make Oracle irrelevant. Or make the million features their huge, enterprisey systems have irrelevant. Joel Spolsky wrote an essay years ago where he argued that software has to either be cheaper than $500 (the amount a manager can put on their corporate card) or more expensive than $25,000 or so (the amount you must charge if you need to wine and dine and buy lap dances for potential customers).

Do you want to hire a salesforce (and raise the money to pay them) to give blowjobs to IT directors? No, I didn't think so.

<comment><USER4> I think people should use software like oracle and look and read (some of) its enormous amount of documentation to understand what it can do BEFORE saying it is shit.

Oracle is a very very very good database. Stop with this non sense

<comment><USER3> I wasn't thinking about Oracle-the-database but all the other stuff they sell that makes huge, faceless corporations go. No YC-style company is in a position to take on Oracle toe-to-toe, in the lapdance-and-BJ market. The only option is some sort of incremental disruption where a product takes market share from Oracle at the low end, where Oracle is probably happy to see these not-very-valuable customers desert them. (This is straight from Clayton Christensen's _Innovator's Dilemma_.)

And for the record, I programmed against Oracle using oraperl back in 1994.

</comment></comment></comment><comment><USER5> Breaking into the enterprise market has it's own difficulties as I am sure you are already aware of. Having been directly and indirectly involved in several large IT software purchases I can tell you that more often than not, large purchases/contracts are not made based on features and/or price. They are made 3 levels above you by personal relationships.

That is why you have huge IT shops wasting countless hours dealing with clearcase UCM inadequacies when there are comparable and even better options available for free or cheap.

At the time of purchase the argument given is that the staff required to administer the free software will cost more than the license and support contract but in the end you still end up hiring a full time staff of 14 to manage that clearcase system and blame issues on the hardware.

In the case you can break through the gold-ol-boy sales process with your revolutionary product the cycle for a product costing as little as 20k can be upwards of 18 months and if it is terminated at the zero hour you have literally wasted hundred of man hours chasing a deal that you will not be getting paid for.

To answer the original question, If I where to take on oracle or attempt to make them irrelevant I would be Atlassian software (JIRA/Confluence/etc.). While they are not offering competing products to oracle or IBM they do have the ability to work from the developer upwards to find there way into even the largest enterprises.

</comment><comment><USER6> Often having a large sales team (and operations in general) is as challenging as the technical hurdles, if not harder.

</comment><comment><USER7> Oracle doesn't sell software. Oracle sells suits with warm fuzzy feelings.</comment>


AlphaGo beats Lee Sedol 3-0 [video] - <AUTHOR> https://www.youtube.com/watch?v=qUAmTYHEyM8 <comment><USER2> In a recent interview [1], Hassabis (DeepMind founder) said they'd try training AlphaGo from scratch next, so it learns from first principles. Without the bootstrapping step of "learn from a database of human games", which introduce human prejudice.

As a Go player, I'm really excited to see what kind of play will come from that!

[1] [http://www.theverge.com/2016/3/10/11192774/demis-hassabis- in...](http://www.theverge.com/2016/3/10/11192774/demis-hassabis-interview- alphago-google-deepmind-ai)

<comment><USER3> That would be amazing if it could achieve the same levels (or higher) without the bootstrapping.

The niggling thought in my mind was that AlphaGo's strength is built on human strength.

<comment><USER4> Human strength is also "built on human strength" so I don't see the problem? :)

<comment><USER5> It's not truly artificial if it's using a human playbook. (Is the problem posed by the parent, I believe.)

<comment><USER6> What is 'truly artificial'?

Neural networks are modeled after biological systems to begin with, I don't the that's a meaningful concept at all.

<comment><USER7> Well, we can extend that to say the biological systems are self-assembled randomly and selected through evolutionary algorithms, starting from random molecules on the sea floor.

</comment></comment></comment></comment></comment></comment><comment><USER3> Perhaps the last big question was whether AlphaGo could play ko positions. AlphaGo played quite well in that ko fight and furthermore, even played away from the ko fight allowing Lee Sedol to play twice in the area.

I definitely did not expect that.

Major credit to Lee Sedol for toughing that out and playing as long as he did. It was dramatic to watch as he played a bunch of his moves with only 1 or 2 seconds left on the clock.

<comment><USER8> > as he played a bunch of his moves with only 1 or 2 seconds left on the > clock.

That's on purpose to make full use of time and think about the next move

<comment><USER3> As a spectator, I was on the edge of my seat :)

As a 3d amateur, I'm really curious about when he resigned. It really seemed like he was playing the position out to go for the win (or perhaps to see how AlphaGo would fare in ko). It didn't look like he was searching for a place to resign.

<comment><USER9> The AGA commentator (Cho Hyeyeon 9p, at [https://www.youtube.com/c/usgoweb/](https://www.youtube.com/c/usgoweb/)) had already been calling the game completely hopeless for Lee Sedol for nearly 2 hours at that point, estimating Lee down by at least 20–30 points before komi, unless by some miracle he could win the ko fight.

<comment><USER10> Right, all about one or two wrong moves by AlphaGo. He still had a chance around the time Lee started to play the bottom of the board. But AlphaGo did not fall for the trick. I believed the English commentator said Lee could build a ladder but wasn't sure if he meant to say whether that technique would defeat AlphaGo or not.

<comment><USER11> I did not watch that stream, but IIRC the first move Sedol played in the bottom was a ladder breaker, specifically because _white_ had a difficult-to- see ladder that worked a move earlier than black's ladder on the right side. At that point, there was no way Sedol could win, so the commentator you referenced probably did not mean any such ladder would defeat AlphaGo.

Edit: M5 was definitely played as a ladder breaker, so the above is correct.

</comment></comment></comment></comment></comment></comment><comment><USER12> Once again, I am so glad that I caught this on the live-stream because it will be in the history books. The implications of these games are absolutely tremendous. Consider GO: it is a game of sophisticated intuition. We have arguably created something that beats the human brain in its own arena, although the brain and AlphaGO do not use the same underlying mechanisms. And this is the supervised model. Once unsupervised learning begins to blossom we will witness something that is as significant as the emergence of life itself.

<comment><USER13> > Consider GO: it is a game of sophisticated intuition

It's still a game that can be described in terms of clear state-machine rules. The real challenge for AI is making sense and acting in the real world, which can't be described in such way. I consider advances in self-driving cars much more interesting in that sense - even if, even there, there are at least some rule-based constraints that can be applied to simplify the representation of the "world state".

<comment><USER14> Yeah, I think it's accurate to say that driving a car is harder in some sense than playing Go, based on the fact that the AI for Go came first. A lot of people have been working on self-driving cars for a long time now, and it's very monetizable, unlike Go.

<comment><USER14> Also, it should be noted that in Go, we're trying to beat the BEST human player, and have done so. In driving, we're just trying to be "good enough" or safe enough -- it doesn't have to be the safest driver in the world.

Beating the average human Go player was probably accomplished decades ago, whereas it's not even clear if we're safer than the average human driver (under all conditions).

These tasks are just wildly different, and yes I think it's basically all due to the fact that Go's state is so easily represented by a computer, and the goal is so concrete.

<comment><USER15> Sort of a tangent from the thread: I get the point about "good enough" at the moment, but I wonder if car AI really does need to perform _much_ safer than any human driver before truly autonomous vehicles should be allowed to see widespread adoption. I'm thinking about the difficult problems re: legal and moral responsibility for human written/guided/trained programs like car AI. As well as the fact that, unlike in Go, real people's very lives are at stake in the program's successful performance. We already seem to have met the requirements for a research project---which is still unbelievable to me!---and I wonder how long the last leg will take.

<comment><USER16> AI cars could be safer now in most cases by simply not doing dumb illegal stuff.

The real problem is dealing with all the edge cases. Think of this edge case. You pull up to a red light, a guy with a gun starts running at your car in a manner you perceive to be threatening.

You as a human are most likely going to step on the gas and get the hell out of there saving yourself, at some risk of causing a traffic accident.

The car will just sit there till the light turns green while the windows get shot out and you get dragged out of the car.

</comment></comment></comment></comment></comment></comment><comment><USER11> It's important to remember that this is an accomplishment of humanity, not a defeat. By constructing this AI, we are simply creating another tool for advancing our state of being.

(or something like that)

<comment><USER17> What is our purpose if computers can do everything better than us?

It feels like computers have taken one aspect of humanness: logic. Computers could do arithmetic, do algebra, play chess, and now they can play go.

It hurts because logic is usually thought to be one of the highest of human characteristics. Yes computers might never be able to replicate emotion, but even dogs have that.

There's still some aspects we have left to call our own. Computers perform poorly at language-based tasks. They can't write books, write math papers, compose symphonies. I hope it stays that way.

<comment><USER18> You're implying that if something can be outdone it doesn't have a purpose, which seems to rule out purposes for pretty much everything.

I'm sure there's always someone that can write books or maths papers or symphonies better than you. I don't think this robs you of purpose, unless your purpose is to be the absolute best at something.

Anyway, I find it curious that you would say logic is a quintessentially human trait, because humans are naturally quite bad at logic.

<comment><USER19> The difference between being outdone by another human and being outdone by a computer is that the computer's efforts are nearly infinitely reproducible, given the processing power.

So a more apt analogy would be if there was someone inside every cellphone who could write books, papers, or symphonies better than you. That day is coming.

<comment><USER20> And it would be great. Think of all the great symphonies and books!

<comment><USER21> And the economic preduction. And the influx of wealth into underdeveloped countries. And all of the people not dying.

</comment></comment></comment></comment></comment></comment><comment><USER22> While he may not be number one in the Go rankings afaik, Lee Sedol will be the name in the history books: Deep Blue against Garry Kasparov, AlphaGo against Lee Sedol. Lots of respect to Sedol for toughing it out.

</comment><comment><USER23> I really like the moments when Alpha-Go would play a move and the commentators would look stunned and go silent for a 1-2 seconds. "That was an unexpected move", they would say.

<comment><USER24> In game 2 there was a point where Michael Redmond seemed to do a triple take and couldn't believe the move AlphaGo played.

<comment><USER23> Yeah they seem to forget that Alpha-Go is looking deep into the future. I have not read the Nature paper but I assume it's playing out possible moves way into the future.

At some point it figured that the Ko fight at the bottom was already won. Hence that white move at the top which nobody saw coming.

Another interesting moment was when Michael Redmond said "A human would typically not spend too much time thinking on this obvious move". This was the move on the right-hand side somewhere. What this tells me is that human players rush through some moves because they seem obvious but since Alpha-Go is a machine, it does not care about obvious and non-obvious. It's calculating the entire board through to the end and is not interested in "local fights".

<comment><USER25> > I have not read the Nature paper but I assume it's playing out all possible > moves.

To some relatively small depth, right? I hear the estimate that all possible moves in a Go game probably can't be physically represented in the universe (unless we learn much more about the structure of games' evolution).

<comment><USER26> No, it plays deep but only so broad. It uses a neural net (which playing by itself without MCTS already beats Pachi with like 80% probability) to sketch out the best moves until the end and then rates each move on its chance of winning.

This objective function is why Go playing AI jumped hugely in the last 10 years.

</comment></comment></comment></comment></comment><comment><USER27> The Chinese 9 Dan player Ke Jie basically said the game is lost after around 40 mins or so. He still thinks that he has a 60% chance of winning against AlphaGo (down from 100% on day one). But I doubt Google will bother to go to China and challenge him.

<comment><USER2> Challenging Ke Jie is way too small a goal for DeepMind at this point.

I wonder if even the idea from the AGA stream today, to get all the best pros in the world together and challenge AlphaGo as a team, is enough.

Perhaps releasing the core AlphaGo as open source (to the extent it's not dependent on internal Google machinery), or at least publishing its trained model, may be the next step. Let people "challenge themselves" however they want.

EDIT: Also, Lee Sedol had his time in the sun, but commiserations to Ke Jie. He's just 19, already number #1 in the world, his whole career in front of him... and this happens.

<comment><USER28> _I wonder if even the idea from the AGA stream today, to get all the best pros in the world together and challenge AlphaGo as a team, is enough._

Has this been tried? That is, have Players 2-9 (or some subset) ever competed as a group against a dominant Player 1? Unless it's been tested, I wouldn't take it for granted that a group would beat an individual.

<comment><USER29> Too many chiefs in a village. Can you imagine trying to explain why this move is correct because "20 moves in the future" it proves to be right. It would probably take an hour per move.

Also I mentioned in a previous post...the human style of playing go needs to adapt to AlphaGo. That's why the commentators say "oh that was odd" since a human would not make that move as its unorthodox, but turns out to be right.

If the top 1-10 had a chance to play AlphaGo privately for months they may have a better chance.

<comment><USER30> It works somewhat well in con-go.net, even if I disagree with a lot of the move ordering as of late. But I am on the white team and we're winning, so I guess the black team made more mistakes.

</comment></comment></comment></comment></comment><comment><USER31> Based on all the commentaries, it seems that Lee Sedol was really not ahead during the game at any point during the game... and I think everybody has their answer regarding whether AlphaGo can perform in a Ko fight. That's a yes.

</comment><comment><USER32> Go was the last perfect information game I knew where the best humans outperformed the best computers. Anyone know any others? Are all perfect information games lost at this point? Can we _design_ one to keep us winning?

<comment><USER33> Why bother? It's working with radically incomplete and imperfect information where the core of human intelligence actually lies.

<comment><USER32> > Why bother?

Because the process might tell us something interesting and useful about AI and ourselves.

</comment></comment></comment><comment><USER34> It is interesting how fast this has happened compared to chess.

In 1978 chess IM David Levy won a 6 match series 4.5-1.5 - he was better than the machine, but the machine gave him a good game (the game he lost was when he tried to take it on in a tactical game, where the machine proved stronger). It took until 1996/7 for computers to match and surpass the human world champion.

I'd say the difference was that for chess, the algorithm was known (minimax + alpha-beta search) and it was computing power that was lacking - we had to wait for Moore's law to do its work. For go, the algorithm (MCTS + good neural nets + reinforcement learning) was lacking, but the computing power was already available.

</comment><comment><USER35> Some professionals labeled some AlphaGo moves as being unoptimal or slow. In reality, Alpha Go doesn't try to maximize its score, only its probability of winning.

<comment><USER36> From watching it I'm almost inclined to say it maximizes its chances of _not losing_ over necessarily winning.

<comment><USER37> Sorry, but what's the difference?

<comment><USER38> There really isn't, from the point of view of AlphaGo. But for someone playing Go (or any game), it's a hint that perhaps one should focus on things that can go wrong more than furthering your own aggressive plan.

It's certainly a feature of the best Magic: the Gathering pros, for example - their play is marked by the cards they play around, even when seemingly far ahead.

<comment><USER39> interesting that "not losing" (avoiding mistakes that lead to "blowing up") also seems to be common philosophy shared among very successful investors of wildly differing styles, who are playing another sort of game in the markets

</comment></comment></comment></comment></comment><comment><USER40> My (long) commentary here:

[https://www.facebook.com/yudkowsky/posts/10154018209759228](https://www.facebook.com/yudkowsky/posts/10154018209759228)

Sample:

At this point it seems likely that Sedol is actually far outclassed by a superhuman player. The suspicion is that since AlphaGo plays purely for _probability of long-term victory_ rather than playing for points, the fight against Sedol generates boards that can falsely appear to a human to be balanced even as Sedol's probability of victory diminishes. The 8p and 9p pros who analyzed games 1 and 2 and thought the flow of a seemingly Sedol-favoring game 'eventually' shifted to AlphaGo later, may simply have failed to read the board's true state. The reality may be a slow, steady diminishment of Sedol's win probability as the game goes on and Sedol makes subtly imperfect moves that _humans_ think result in even-looking boards...

The case of AlphaGo is a helpful concrete illustration of these concepts [from AI alignment theory]...

Edge instantiation. Extremely optimized strategies often look to us like 'weird' edges of the possibility space, and may throw away what we think of as 'typical' features of a solution. In many different kinds of optimization problem, the maximizing solution will lie at a vertex of the possibility space (a corner, an edge-case). In the case of AlphaGo, an extremely optimized strategy seems to have thrown away the 'typical' production of a visible point lead that characterizes human play...

<comment><USER41> This is reminding me more and more of the central theme of the book Echopraxia, which was that when dealing with superhuman intelligences, you are _by definition_ not smart enough to even know whether you're winning.

<comment><USER42> When I play chess against a computer I can see very easily that I'm not winning.

<comment><USER43> But that is most likely be because of the structure of Chess. The evaluation of single board position is more "linear" and certainly easier than in Go.

If the utility function is about winning, going though easily-evalutable board positions might be the straightforward route.

If the utility function is to win while minimizing your estimate of of you losing, you might see different results.

Plus if you know that you are playing against a stronger opponent, your prior might bias your perception of the board situation.

<comment><USER44> It would be interesting to see how computers fare against humans on a 19x19 chess board, and how easily a human could evaluate such a board.

</comment></comment></comment></comment></comment><comment><USER45> Impressive work by Google research team. I'm both impressed and scared.

This is our Deep Blue moment folks. a history is made.

<comment><USER46> Give credit where credit is due. This is DeepMind's research, and Google acquired them in 2014. Of course, Google gave them a lot of resources to train AlphaGo. But let's not bury the subsidiary, or I guess they would both be subs to Alphabet now making the two even less related.

<comment><USER47> If they wanted ultimate credit, they shouldn't have sold. They made a judgment call and part of that is Google gets a share of the congratulations.

<comment><USER48> Yes, but the team is Google DeepMind, not "Google research team".

</comment></comment></comment></comment><comment><USER49> It would be nice if AlphaGo emitted the estimated probability of it winning every time a move is made. I wonder what this curve looks like. I would imagine mistakes by the human opponent would give nice little jumps in the curve. If the commentary is correct, we would expect very high probability 40-60 minutes into the game. Perhaps something crushing, like 99,9%

<comment><USER50> It did, apparently. I wish that information was public.

[http://www.nature.com/news/the-go-files-ai-computer-wins- fir...](http://www.nature.com/news/the-go-files-ai-computer-wins-first-match- against-master-go-player-1.19544)

 _For me, the key moment came when I saw Hassabis passing his iPhone to other Google executives in our VIP room, some three hours into the game. From their smiles, you knew straight away that they were pretty sure they were winning – although the experts providing the live public commentary on the match that was broadcast to our room weren't clear on the matter, and remained confused up to the end of the game just before Lee resigned. (I 'm told that other high-level commentators did see the writing on the wall, however)._

</comment></comment><comment><USER51> We are indeed witnessing and living a historic moment. It is difficult not to feel awestruck. Likewise, it is difficult not to feel awestruck at how a wet 1.5 kg clump of carbon-based material (e.g. Lee Sedol brain) can achieve this level of mastery of a board game, that it takes such an insane amount of computing power to beat it. So, finally we do have a measure of the computing power required to play Go at the professional level. And it is immense, or to apply a very crude approximation based on Moore's law, it requires about 4096 times more computing power to play Go at the professional level than it does to play chess. Ok, this approx may be a bit crude :)

But maybe this is all just human prejudice... i.e. what this really goes to show is that in the final analysis all board games we humans have inveted and played are "trival", i.e. they are all just like tic-tac-toe just with a varying degree of complexity.

<comment><USER52> I don't think it is human prejudice, Deepmind can play Go and it cannot drive a car, Lee Sedol's brain can do both. Understanding the nature of cognition will open up new capabilities just as understanding the nature of genetics will open up new capabilities or understanding the nature of the cosmos Etc.

What is most interesting for me is that the nature of solving the problem "how do I win at Go?" is one that has not been, historically, one that computers could solve. Compute the ballistic trajectory of an artillery shell? Easy. Compute a winning strategy on the fly? Impossible. But by creating tools that allow computers to work on those problems we open up the things that can be improved and automated and that has historically improved the experience.

<comment><USER51> I wholeheartedly agree. I just had a "we feeble humans" moment when I made my comment about our prejudice. And as you point out Sedol's brain can of course do a lot more than just play Go. So, my feeling of feebleness on behalf of humanity was thoroughly unfounded! In fact, it can be argued that our brains are probably too powerful computers for our own good. But who knows, maybe things will conspire and turn us into seals living of some obscure beach on the Galápagos in about a million years. ([https://en.wikipedia.org/wiki/Gal%C3%A1pagos_%28novel%29](https://en.wikipedia.org/wiki/Gal%C3%A1pagos_%28novel%29))

</comment></comment></comment><comment><USER53> Cho Hyeyeon 9p's commentary on the American Go Association YouTube channel: [https://www.youtube.com/watch?v=CkyVB4Nm9ac](https://www.youtube.com/watch?v=CkyVB4Nm9ac)

</comment><comment><USER54> AlphaGo won solidly by all accounts. This is an incredible moment. We are now in the post-humanity go era.

The one solace was that Lee Sedol got his ko =) however, AlphaGo was up to the task and handled it well.

</comment><comment><USER55> Super interesting to watch this unfold. So what game should AI tackle next? I've heard imperfect information games are harder for AI...would the AlphaGo approach not work well for these?

<comment><USER56> Hassabis discusses some StarCraft here ... [http://www.theverge.com/2016/3/10/11192774/demis-hassabis- in...](http://www.theverge.com/2016/3/10/11192774/demis-hassabis-interview- alphago-google-deepmind-ai) ... good interview.

<comment><USER55> I read that too. It's interesting StarCraft is suggested instead of any classic board games. It sounds like Go is the pinnacle of board games then.

Would StarCraft be the last game AI has to beat?

<comment><USER57> No, after StarCraft they suggested 3D games (eg: Call of Duty, ...). Mind you, this is playing based on the pixels, not based on direct access to the game structures as bots do today.

The from playing Call of Duty to controling a robot with a gun in the real world it's a small step :)

<comment><USER58> I don't like the idea of FPS'. We'd expect them to behave the humans when they play FPS - they run looking forward and will occasionally look left or right and follow some predetermined pathing that they are familiar with.

With an AI, if we base it on pixels, what they will do is spin around 360 degrees about 60 times a second while moving forward so that it can maximize all of the pixels inputted at a time. It would compare it against the stored level design and shoot at anything that is off (or against character models). I can just see that it's not going to behave like anything we'd expect.

<comment><USER59> The same would likely be true of an RTS. An AI could scroll the viewport around and click units to issue orders at ludicrous speeds. Even if it had to use the same interface as a human, it'd still have a huge mechanical advantage.

</comment></comment></comment></comment></comment></comment><comment><USER35> I don't think Ke Jie would win against Alpha Go either.

<comment><USER60> I agree. Lee lost a title 3-2 to Ke Je recently but he lost very convincingly against AlphaGo. Ke Je is not that stronger than Lee. He's going to lose too but he's 18 so I understand that he's feeling he can do anything.

My feeling is that AlphaGo could be a couple of stones stronger than the best pros. Considering that dans are capped at 9 but there are 9 dans that always win against some other 9 dans, the best pros could be 10 dan on their scale. That would also be 10 dan on the amateur scale (European, Americans are usually one stone gentler and Japanese much more than that). AlphaGo could be 12d amateur or, don't know, 14-15 dan pro? (pro levels are on a finer scale)

<comment><USER61> Do you know what the current limit is on a handicap that a professional player can overcome? Is there a known theoretical limit? That's a possible 'endgame' for go ai.

<comment><USER60> There must be some limit because the number of the possible moves is finite. How many handicap stones the current professionals are from that limit... who knows. Apparently AlphaGo could set a better lower limit but it should play with many more pros, and start giving handicap if needed.

I wonder if Google will make it available to pros outside these official matches. It's not that Deep Blue played so much after winning with Kasparov in 1997, right? Kasparov asked a rematch and IBM refused. Deep Blue never played again.

Our computers are stronger than it now, mainly thanks to advances in the algorithms. Deep Blue used to crunch many more positions per second than the current chess engines do on standard PC. Still they're stronger. AlphaGo is running on 1920 CPUs and 280 GPUs, so either research trims down its algorithms or we wait for CPUs with 1024 cores. But at the current size they won't fit below the keyboard of a laptop :-)

<comment><USER62> This hardware setup is crazy. Given alone 280 GPUs is insane.

<comment><USER63> That's just for the training phase. In play mode it only uses 40. And the top supercomputer has 3 million cores, so, AlphaGo is not such a big computer either.

</comment></comment></comment></comment></comment></comment><comment><USER8> Seems to be playing at super-human levels.

I'm no where near a strong player but it seems like AlphaGo is far ahead of Lee Sedol.

<comment><USER64> It seems like in all three games, AlphaGo plays a thick move that looks a bit baffling to the commentators, but then miraculously those moves become hugely profitable somewhat later on in the game.

<comment><USER65> Is it possible that _all_ of AlphaGo's strength is in these baffling moves? If humans played enough games against AlphaGo and discovered how to counter the baffling moves, is it plausible that AlphaGo's strength would be lost?

<comment><USER66> Watching the game and the commentary there's an eerie sensation that AlphaGo is just going along playing the petty local games with Lee Sedol. It's very anthropocentric, but you could imagine AlphaGo saying "I could have crushed you from the start ... but I'll just play along and do that one move to give you the illusion that it was close".

But maybe it could have 40 of those moves to play an incredibly confusing game for humans. I think giving the machine a big handicap against pros might reveal it's true colours ...

<comment><USER8> It was stated by one of the developers that AlphaGo doesn't play to maximize the number of points it wins by. It's satisfied to win by one point. It maximizes the probability of winning. It plays thick moves and tries to simplify the board.

If the player forces it to a fight, it will fight back, but that's only because losing the fight will definitely lose the game.

</comment></comment></comment></comment></comment><comment><USER67> One can only hope that in the final battle between the remaining humans and the robots, it won't be a game of Go that decides the fate of humanity.

</comment><comment><USER24> I'm very interested to see what the Google DeepMind team applies themselves to in the future.

<comment><USER68> That's going to be getting to know even more about you and the probability of you clicking on an advertisement, stakeholder, shareholder profits!

<comment><USER24> I don't understand your comment.

<comment><USER68> I'm saying that thing is created for Google and it's shareholders and will ultimately be used to read your mind and sell you advertisements.

</comment></comment></comment></comment><comment><USER3> I am really curious about the reviews from An Youngil 8p and Myungwan Kim 9p. The commentary by Redmond always tend to leave something to be desired.

<comment><USER53> Myungwan Kim 9p and Cho Hyeyeon 9p's commentary on the American Go Association YouTube channel:

Game 1: [https://www.youtube.com/watch?v=6ZugVil2v4w](https://www.youtube.com/watch?v=6ZugVil2v4w)

Game 2: [https://www.youtube.com/watch?v=EitoPhtGWJQ](https://www.youtube.com/watch?v=EitoPhtGWJQ)

Game 3: [https://www.youtube.com/watch?v=CkyVB4Nm9ac](https://www.youtube.com/watch?v=CkyVB4Nm9ac)

<comment><USER3> Thanks, jonah!

I recall Andrew mentioning that Myungwan will be back to comment games 4 and 5?

</comment></comment></comment><comment><USER69> I really want to see how a team of humans would do against alpha-go with a 3 or 4 hour time limit.

<comment><USER70> Yeah, if AlphaGO wins all 5, I'd next like to see some Blitz Go (if that's a thing).

<comment><USER71> Blitz go would be even more heavily favored toward AlphaGo. AG didn't spend more than 10 seconds or so per move until the meat of the midgame. Human pros were losing blitz chess long before they were losing long game chess.

</comment></comment></comment><comment><USER72> How long before AlphaGo also participates in the post-match press conference I wonder...

<comment><USER73> In the first press conference I was half expecting that Google would translate and speak the Korean for the livestream, and not even point it out as a very big deal. If anyone asks, it's just an "oh yeah, we solved that problem ages ago." But more seriously, those translators were very good, they didn't seem troubled at all by the long speeches.

</comment></comment><comment><USER10> I wonder what if you put the top 10 players in a room, team up and play with Alpha-Go. They are allowed to make one move within a 1-hour period and they can only play up to 8 hours a day. I wonder what the outcome would be.

Anyway, I think AlphaGo is a great training companion. I think Lee felt he's learning.

Finally, I also feel that while experience is crucial, the older generation would flush out by the younger generation every decade. I wonder if age really play a role in championship - not that AlphaGo isn't considered a 1000 years old "human" given it has played thousands of games already.

</comment><comment> mikhail-g-kan Interestingly, I feel proud of AI, despite humans lost. It's the progress toward our end as classic human species

</comment><comment><USER74> Its a matter of language.

Our model of representation of Go fails at expressing the game/strategies of AlphaGo is showing, we are communicating in the board in different languages, no wonder everyone looking the at games is stomped by the machine "moves".

Our brains lack the capacity of implementing such algorithms (understanding such languages), but we can still create them. We might see in the future engine A played against engine B and enjoy the matches.

No one is surprised by a machine doing a better job with integer programming/operational research/numerical solutions etc.

</comment><comment><USER75> Next move: how about beating human at online dating?

<comment><USER76> Pretty sure that's already been done

[http://gizmodo.com/how-ashley-madison-hid-its-fembot-con- fro...](http://gizmodo.com/how-ashley-madison-hid-its-fembot-con-from-users- and-in-1728410265)

</comment></comment><comment><USER77> What happens if you give the human player a handicap? I wonder if the games are really as close as the commentators say, or if it's just a quirk of the MCST algorithm.

<comment><USER78> The great go champion Otake Hideo famously said that if he were to play go against God Himself, he would take only a three stone handicap, and if his life depended on it, he would take four. Alphago's not perfect, but it would still be very interesting to watch such a handicapped game.

<comment><USER79> Can it even play a handicapped game? I'm assuming the handicap means the other play can begin with several stones on the board. AlphaGo would have no training on such a configuration and would likely not know how to approach it.

<comment><USER80> Well the same thing was mentioned about Kos and game three showed that AlphaGo was very effective by both having few Ko threats and playing them when imperative. It also demonstrated effective gameplay as black with 4.4 & 4.3 opening.

Considering the large training data set, handicap games would certainly be included. It's a great way to test aggressiveness and the effectiveness to reduce the opponents' territory whilst building your own.

As an amateur, handicap games where you try to overcome 3 or 4 stones are some of the most educational experiences. It requires a lot more creative thinking and perseverance to come back from such a disadvantage.

</comment></comment></comment></comment><comment><USER81> This is a milestone of AI in history. The ability of AlphaGo is amazing and far beyond to human.

<comment><USER62> I dont know if AlphaGo is "beyond" all human players.

Given AlphaGo has learned all played games from a database, its more like AlphaGo is the essence or the sum of all experience gained from those games played. AlphaGo is better than every player (perhaps), but it has not pushed the game further by itself.

<comment><USER71> Not all games came from a database. It was initialized with a database. It has played millions of games against itself to improve beyond that. Next they will skip the bootsrap initialization and use all self play.

</comment></comment></comment><comment><USER82> Does anyone know if the AlphaGo team is saving the probability of winning assignments that AlphaGo gave its moves?

It would be fascinating to see how early AlphaGo assigned very high probability of it winning. It would also be interesting to see if there were particular moves which changed this assignment a lot. For instance, are there moves that Lee Sedol made for which the win probability is very different for the AlphaGo moves before and after?

<comment><USER83> In the introduction to the third match, the project lead talked about how Alphago evaluated the controversial 37th move in the second match. Apparently the policy network decided that it had a one in 10,000 chance of a human making that move, But the value network overrode this. So it seems like they are recording this kind of data and looking at it in cases where it's interesting.

<comment><USER82> Thanks, I'm only just watching match 2 and hadn't seen that. I really hope they publish this data. It would be incredibly interesting to construct a "review of the game by AlphaGo" from this data.

</comment></comment></comment><comment><USER84> Ke Jie's gonna be next.

[http://www.shanghaidaily.com/national/AlphaGo-cant-beat- me-s...](http://www.shanghaidaily.com/national/AlphaGo-cant-beat-me-says- Chinese-Go-grandmaster-Ke-Jie/shdaily.shtml)

"Demis Hassabis, Google DeepMind's CEO, has expressed the willingness to pick Ke as AlphaGo's next target."

</comment><comment><USER85> Full video will be available here shortly:

[https://www.youtube.com/playlist?list=PLqYmG7hTraZA7v9Hpbps0...](https://www.youtube.com/playlist?list=PLqYmG7hTraZA7v9Hpbps0QNmJC4L1NE3S)

(It also includes the videos of the first 2 matches)

</comment><comment><USER86> We had Godel on the limitation of logic and Turing on the limitation of computation. I think AI will only change the way human calls intelligence. We used to call people who can mentally calculate large numbers genius. Lots of that has to be re-defined.

</comment><comment><USER87> Is anyone also asking themselves when they'll be able to play against this level of AI on their mobile phone? Or formulated differently: when will an "AlphaGo" (or equivalent) app appear in the play/app store?

In 2 years? In 1 year? In 3 months?

<comment><USER88> A version of AlphaGo that beat Fan Hui ran on a single machine, but a very beefy one (48 CPUs and 8 GPUs).

Unless they can optimize it quite a bit, we won't be seeing this on a mobile phone anytime soon. Perhaps you'll be able to pay a good hourly rate for the cloud version.

<comment><USER30> A mobile phone version will still trounce the current AIs like CrazyStone considering the single machine version is competitive with the cluster (can take some games off of it)

</comment></comment></comment><comment><USER89> Congratulations to AlphaGo team, curious to see if Lee Sedol will be able to defeat it in the next matches.

</comment><comment><USER90> I was using machine learning in computer chess some time ago. My commentary: [http://arekpaterek.blogspot.com/2016/03/my-thoughts-on- alpha...](http://arekpaterek.blogspot.com/2016/03/my-thoughts-on-alphago.html)

</comment><comment><USER91> All this excitement makes me want to learn a little bit about those algorithms. I don't know anything about neural networks (but I've already implemented a chess game a while ago). Would it be difficult to implement a similar algorithm for a simpler game?

</comment><comment><USER92> Does AlphaGo run in the cloud or is it a machine onsite at the match? I wonder how small AlphaGo could be scaled down and still beat Lee Sedol. How competitive would AlphaGo be running on an iPhone? :)

</comment><comment><USER93> My impression is that Sedol was psychologically defeated at 1-0. Computational machines don't crack under pressure - at most they get exhausted.

</comment><comment><USER94> Incredible news. We have all heard all of the positive coverage and how tremendous it is. What I find interesting is that how come nobody is talking about the potential of AlphaGo as a war strategizing AI?

If you provide terrain(elevation etc.) information, AlphaGo can be used to corner opponents into an area surrounded by mountains where AlphaGo is sitting on the mountains. We all know what happens after that.

Don't want to kill the party but I am completely surprised with the lack of chatter in this direction.

<comment><USER95> This is because of ethical reasons: one of the conditions that Deepmind made with Google in their deal was for an "embargo on using its technology for military and intelligence applications."

Source: [http://www.theguardian.com/technology/2016/feb/16/demis- hass...](http://www.theguardian.com/technology/2016/feb/16/demis-hassabis- artificial-intelligence-deepmind-alphago)

</comment></comment><comment><USER68> If one allowed AlphaGo to train forever, what would happen? Would it constantly just tie against itself ?

</comment><comment><USER96> Watching this felt like watching a funeral where the commentary was the eulogy.

</comment><comment><USER3> I guess the next question on my mind is how AlphaGo might fare in a blitz game.

</comment><comment><USER97> Does anyone have insights on how a game between two Alpha-Gos would play out?

<comment><USER98> One would win and another loose. It plays itself all the time to train.

</comment></comment><comment><USER99> Was I in a "prophetic mode" yesterday? ;)))

</comment><comment><USER100> Kind of a shame the tournament isn't closer.

<comment><USER61> I think so too. I actually feel really bad for Lee Sedol if he loses 5-0.

<comment><USER101> The avalanche has already started, it is too late for the pebbles to vote.

<comment><USER61> Lee Sedol will have his place in history, but it would be nice if it were as 'the last human to win a game of go against AI'.

</comment></comment></comment></comment><comment><USER99> Strictly speaking, "just" because Alphago finally won, that doesnt mean it was right when claiming being ahead already.</comment>


Colour or Color – Which Is Correct? - <AUTHOR> https://www.grammarly.com/blog/color-colour <comment><USER2> I write 'colour' most of the time. But when I comment on US websites, I use 'color'.

I suppose that's a case of 'When in Rome ....'.

Still, there are some words whose meaning changes completely whether you use US or British spelling. In British English, the US-spelling 'pedophile' becomes British-spelling 'paedophile'. But British-word 'pedophile' means 'somebody who loves feet' (a foot-fetishist), from the same Greek root as 'pedal','pedestrian','centipede', etc.</comment>


NASA Calls on APL to Send a Probe to the Sun - <AUTHOR> http://www.jhuapl.edu/newscenter/pressreleases/2008/080501.asp <comment><USER2> If you're like me, this is not the APL you expected to read about.</comment>


Tiny Wins - <AUTHOR> http://joelcalifa.com/blog/tiny-wins/ <comment><USER2> Sometimes I'm a little stunned that quick fixes that would massively improve daily use of applications never seem to happen. Windows 10 is an example of somewhere a lot of seemingly "Tiny Wins" have started to happen, like after 20+ years, being able to Ctrl-C and Ctrl-V out of Command Prompt.</comment>


Show HN: Bepis – a crazy way to write HTML in JavaScript - <AUTHOR> https://github.com/crislin2046/bepis <comment><USER2> This reminds the early days of PHP/Perl where everything was $o or print $output

Makes me laugh, definitely will not use.

</comment><comment><USER3> This makes me itch.</comment>


CowboyNeal Responds to Your Questions - vezzy-fnord https://soylentnews.org/article.pl?sid=15/07/06/0424245

<comment><AUTHOR> I've been reading slashdot for over a decade and I just wasn't feeling this... honestly not sure if Slashdot can be rescued at this point. SourceForge is in the same boat.</comment>


Ask HN: Convince me that TypeScript is better than JavaScript - <AUTHOR> I recently started working at a company whose legacy project was built in .NET/Angular, so the codebase is largely written in C#/Typescript. My first project is built in React, and the other developers are convinced that we should continue developing in Typescript. It just so happens that the combination of tools we're using is not too conducive to Typescript code, and I end up spending most of my day wrestling with the tooling rather than building React components. That may be because I'm new to Typescript, but that's not why I'm posting this question here.
I've asked the other devs why they think we should continue using Typescript, and no one has been able to convince me. I'm not a stubborn person, and I'd really like to understand the benefits of typed JavaScript enough to be swayed into using it, but I haven't heard a single convincing argument as to the benefits of spending time on the cruft that Typescript adds to my code, or the benefits of spending time getting all the tooling to work properly so that I can get some real work done.
That's where you come in. Convince me. <comment><USER2> I usually explain TypeScript to others as helping the next person working with the code, be it me or another developer. I've found that diving in to source code is made easier when it's in TypeScript, and although it may slow down my initial development speed, it improves the ease with which I understand foreign code and get back into my old code (which sometimes may as well be foreign).

> It just so happens that the combination of tools we're using is not too > conducive to Typescript code

Maybe the problem is the tools, not the TypeScript. What's the combination of tools that's giving you trouble?

<comment><AUTHOR> Mainly create-react-app, styled-components, react-styleguidist (which uses react-docgen). I'm okay with writing .d.ts files for my React components, but trying to _develop_ these components in this ecosystem... oof.

</comment></comment><comment><USER3> It's not. Strong typing is overrated. Lisp has lived without it for more than 50 years. People are obsessed with typing as though it were the solution to all dev problems. It's not.

<comment><AUTHOR> Those have been my thoughts exactly, except I might need to buckle down and use Typescript because the devs at work favor it. I don't want to _hate_ coding in Typescript, which is why I posted this Ask HN. I still wouldn't use it on any projects where I have full control. But, if I _need_ to use it, I might as well try to see the bright side of it.

On the other hand, all this "safety" that Typescript imparts just gets in the way of productivity. It's a language to show off to your boss, not to get shit done.

</comment></comment><comment> d--b One single reason: refactoring.

When the types of objects being passed to and returned by functions are known, you can modify the type of an object and know at compile time that you forgot to update a usage of this type.

If objects have no known type, you may have some code that accesses properties that do not exist anymore.

<comment><AUTHOR> This is only a problem when you _remove_ properties from an object. Ok, in this particular case, I buy your theory... but I'll ask again: is all the added cruft really worth this small safety? I mean, when you say "when the types of objects (...) are known"... isn't this the kind of stuff that tests are supposed to catch? You check to see if the object being passed into a function has all the properties it needs to have. Right? And if you need that kind of safety, couldn't you just enforce the use of constructors for "important" objects, and use instanceof to check for proper usage? All while using the constructs provided by JavaScript itself?

</comment></comment><comment><USER4> \- You can do very aggressive manual refactoring and be confident you haven't broken anything.

\- You don't have to write as many tests to get the same coverage.

\- Many potential runtime errors become compile time errors before they get a chance to happen in production.

\- Machine checked types replace lots of manual documentation.

\- Automated refactoring shortcuts.

I'm sure you've heard of some of these. What don't you find convincing? Coming from strong functional programming languages, I don't understand why people like dynamic types at all.

<comment><AUTHOR> > potential runtime errors (...) before they (...) happen in production

I seriously can't think of an example of this. If all testing is done properly, from unit testing to integration, etc, the compile time safety for front end development is just a nuisance. Runtime errors will happen, that's what tests and error tracking are for.

To put it differently, are all of these reasons that you cited worth turning this:

// </comment></comment><comment>====

import React from 'react';

const Welcome = ({ name }) =>
Hello, {name}
;

// </comment><comment>====

into this?

// </comment><comment>====

import * as React from 'react';

interface WelcomeProps { name: string }

const Welcome: React.SFC<WelcomeProps> = ({ name }) =>
Hello, {name}
;

// </comment><comment>====

In the second example, gone are the years of making Javascript an elegant and straightforward language, adorned by the intuitive syntactic sugar that is JSX.

<comment><USER4> > I seriously can't think of an example of this. If all testing is done > properly, from unit testing to integration,

Those tests take time to write, time to maintain and must be updated when you refactor. They're not free. It's very unlikely you're writing tests to cover every case of e.g. a variable being undefined or the wrong type either which happen often.

> In the second example, gone are the years of making Javascript an elegant > and straightforward language, adorned by the intuitive syntactic sugar that > is JSX.

You'd be better looking at examples that mix strings, numbers, arrays and potentially undefined variables.

For the small amount of time annotations would take to write you're getting all the benefits I mentioned. Those benefits are worth a huge amount on projects with lots of code and team members. I wouldn't say JavaScript is elegant and straightforward when simple looking code can be full of subtle bugs.

</comment></comment><comment><USER5> with ES6 and the new JS these days I indeed see no reason for Typescript, still:

[https://www.educba.com/typescript-vs-es6/](https://www.educba.com/typescript- vs-es6/)

<comment><USER6> The article is email-walled, and it's a terrible, unedited article full of superfluous sentences, redundant info, punctuation errors, etc. Just bad English.

</comment></comment><comment><USER7> Nope, not going to convince you. Convince yourself or keep using javascript.</comment>


Ask HN: How to get started with creating your own recommendation systems? - <AUTHOR> <comment><USER2> Are you asking for feedback on which algorithm to choose OR advice on implementing it?

<comment><AUTHOR> Basically on how to decide which algorithm to use after considering the data.

</comment></comment><comment><USER3> GIYF

<comment><AUTHOR> I was hoping for a more organized approach rather than going through one blog after another.

<comment><USER3> I understand. But if you're going to ask a community like this for help, it usually helps to show that you've done some leg-work of your own already. Otherwise you risk having your question come off as a variation of "do my homework for me".

Saying "I read these 6 blog posts, and came up with these 3 ideas about how to start, but I'm not sure how to pick between them", for example, would be a question that people would generally be more motivated to respond to. YMMV of course.

FWIW, to give you one concrete suggestion, the _Programming Collective Intelligence_ book is pretty good.

<comment><AUTHOR> Thanks for the advice @mindcrime. Will keep that in mind.

And will surely give that book a read.</comment></comment></comment></comment>


Alternative Objective-C object allocation for large arrays - <AUTHOR> http://cocoawithlove.com/2010/08/alternative-objective-c-object.html <comment><USER3> If you work on a video game, you almost always have to do something like that. In fact you never rely on malloc/new/delete/free for a big portion of the code. And it's usually 3rd party libraries, or the sdk itself that goes and uses malloc/free (new/delete) directly.

Basically we do a statistic, and keep it over time - for a given level what object sizes there are, and what's their count, then we preallocate arrays with these sizes, or allocate them in big chunks (or instead of even allocating them, just increase a pointer a to buffer with the size).

Another example would be a CGI. Instead of having malloc/free just have one big block and just increase a pointer and pretend to be just allocating, no free. Then just exit the application, and obviously whatever memory was used is gone. (This is for short running CGI scripts).

<comment><USER4> Indeed - for realtime allocation at runtime is a no no.

I like your technique of using statistics to guide your allocations. Another form of profile guided optimisation :) I guess this could be applied generally to programs which used a similar amount of memory every time.

Many well designed libraries let you supply a malloc/free/realloc/calloc/etc. You can also patch system ones in other ways... but it's best to be explicit I think. When you start using multiple malloc/free implementations, you have to be very careful you use the correct malloc/free on each bit of memory.

Other common techniques are memory pools, and using mmap.

mmap allows multiple processes to possibly use the same memory(and file system cache! woot). You can get realtime behaviour on most OSen if you're careful too. You can even get some video cards to use the mmap'd area of memory! (many apple cards have an opengl extention that allows you to do this for textures etc). That can be a 1/3rd memory saving because you can use less file system cache, and video memory. The best saving though, is less copying between the different subsystems.

Memory pools let you do another tricky optimisation... your init method does not need to do all the work each time. Since it's possible to move your object into a sane state doing less work. Like the article mentions, you can initialise all of your objects at once too (it's always faster to do things in batches).

Many systems use memory pools (including python, heaps of game engines etc). You can even make it transparent to the programmer - so they get the advantages without having to do extra work.

Some people who do game programming in C allocate everything statically - <USER2> don't do any malloc/free at all. I've seen them write very nice, and clean code that works perfectly fine using this technique.

I think memory techniques are where you can gain the most performance these days :)

</comment></comment><comment><USER5> I was talking to someone about this article on IRC a few days ago. He mentioned that Apple has something similar to this, NSZone (which has been around since 10.0 (likely NeXT)). However, NSZone's usage isn't really recommended anymore (if ever). Nor is it very documented -- just function and parameter names, not usage patterns[1].

1\. Search for NSZone on [http://developer.apple.com/mac/library/documentation/Cocoa/R...](http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Functions/Reference/reference.html)

<comment><USER3> Could it be because of the garbage collecting? I'm not sure whether it's that related

<comment><USER5> Garbage collection likely has something to do with NSZone's (perceived on my part) deprecation. My understanding (although I can't find it documented) is that NSZone doesn't have any effect on allocations handled by the GC. This is also the default (found-documented) behavior for CFAllocator (although this can be changed, which might be why CFAllocator is better documented).

Also, NSZone is an opaque C structure -- you don't get to see its fields without getting your hands (slightly) dirty. It's defined as:

      typedef struct _NSZone NSZone;

Random thought: If you have a lot of objects that can take advantage of toll- free bridging, I wonder how well it would work to use your own CFAllocator that doesn't use the GC in a GC'd environment.

<comment><USER6> I'm pretty sure NSZone was unofficially deprecated well before Objective-C added garbage collection.

Essentially, they were a good idea in theory, but not in practice. For one thing the Cocoa frameworks wouldn't play along with your carefully considered zone strategy. Then you get objects in zones with pointers to non-zoned objects and vice versa.

<comment><USER5> I think we might be thinking about the same time period, 4 or 5 years ago.

CoreFoundation had something vaguely resembling garbage collection introduced in 10.4, with CFMakeCollectable[1]. I've always thought of that time period as being when NSZone was more or less deprecated. There were a lot of other big (and small) design changes that were in that era as well; bindings were introduced, calendars changed, etc.

1\. [http://developer.apple.com/mac/library/documentation/CoreFou...](http://developer.apple.com/mac/library/documentation/CoreFoundation/Reference/CFTypeRef/Reference/reference.html#//apple_ref/c/func/CFMakeCollectable)

<comment><USER7> That wasn't "something vaguely resembling garbage collection" — it was a no-op until garbage collection was finally introduced half a decade later.

And NSZone was already out of favor when I started programming Cocoa, on OS X 10.1. It just didn't have any advantages under OS X's memory model. It certainly wasn't a preallocated object pool like this. As it was explained to me at the time, the main point of NSZone originally was that it let you to blow away the whole zone at once without needing to release every single object. This was no longer the case in 10.1 (and I don't think it was even the case in 10.0).

<comment><USER8> NSZone was born when memory was small and paging to disk was expensive & frequent. Zones were to help you group objects that would likely be used together onto the same virtual memory page so you could decrease the likelihood of thrashing.</comment></comment></comment></comment></comment></comment></comment>