The Bitter Lesson - <AUTHOR> http://www.incompleteideas.net/IncIdeas/BitterLesson.html <comment><USER2> It's not just AI. Our trade's history is chockfull of valiant efforts to solve problems that were overrun by the exponential decline of computing costs by the time they really worked properly.

Remember DSEE / ClearCase? They had all sorts of complicated virtual file systems to deliver tagged and branched contents of source code repositories. But drive space expanded with a Moore's-law style curve and now we have "git pull". Far simpler. System administrators don't hate our guts for adopting git.

Remember PHIGS? We needed display lists for graphics engines because host machines were too slow. Silicon Graphics took the other approach, and now we have GL.

Remember terminal concentrators like Digital's LAT? You don't? Good. I wish I didn't. (Handling 9600 baud interrupts was too big a load for a host machine. Really.)

Remember optical typesetting machines? The digital outlines / images for creating nice-looking letters used to be too big and complex to use for creating the images for actual pages. You want to use Univers or Gill Sans to set a document? Fine. Buy a Selectric typeball. Or go pay Linotype or Monotype a bundle for a little optical thingy with images of all the letters on it. Take the lid off your typesetting machine and put that thingy into it. You want to set Japanese? Too bad for you. Apple, Adobe, Chuck Bigelow and Kris Holmes, and Matt Carter, and Donald Knuth, decided to ride the exponential rocket and the rest is history.

The bright side: Margaret Hamilton and her team on the Apollo moonshot project used simple, reliable, radiation-hardened, and redundant computers with bugfree software to get those guys to the moon and back.

Let's be careful: Generals always fight the last war. Before starting new valiant efforts, we should carefully assess whether the appropriate technology for the planned delivery date is JMOS -- Just a Matter of Software. Sometimes it might not be the case. But most often it will be.

<comment><USER3> Ironically everything old is new again; now we have [https://vfsforgit.org/](https://vfsforgit.org/) because keeping everything on one disk is too big, and OpenGL ES gets rid of immediate mode because communications with the host CPU is too slow.

<comment><USER4> OpenGL's immediate mode has been discouraged for a very long time, though.

</comment></comment></comment><comment><USER5> This post oversimplifies the story by putting all the emphasis on compute power. Deep Blue using brute force to solve chess obviously fits this pattern, but the others?

Let's take computer vision. Alex Krizhevsky et al destroyed the ImageNet competition with a neural network in 2012, kicking off the current AI hype cycle. Essentially everything in their model had been known about since the late 80s. But we also didn't know how to train deep networks much before this (it turned out how you initialise the neural network was important), and we also didn't have a big enough dataset to train such a deep model on until ImageNet. Since then, we have built models that perform another order of magnitude better than the 2012 model, mainly because of improvements to the architectures (a combination of ingenuity and a lot of trial and error).

So compute is necessary, but it isn't enough, I don't buy that we've 'brute forced' image recognition in the same way as chess.

<comment><USER6> Likewise, the search in Go is a Monte Carlo search, very different from the kind of search used in chess. And the neutral nets in alpha go are guiding where to run the search, which is very very different from brute force search.

Many of these things have required the giant leaks in compute, but still wouldn't work at all without the concurrent improvements in algorithms.

Along these lines, here's a classic blog post: [https://www.johndcook.com/blog/2015/12/08/algorithms-vs- moor...](https://www.johndcook.com/blog/2015/12/08/algorithms-vs-moores-law/)

"Grötschel, an expert in optimization, observes that a benchmark production planning model solved using linear programming would have taken 82 years to solve in 1988, using the computers and the linear programming algorithms of the day. Fifteen years later — in 2003 — this same model could be solved in roughly 1 minute, an improvement by a factor of roughly 43 million. Of this, a factor of roughly 1,000 was due to increased processor speed, whereas a factor of roughly 43,000 was due to improvements in algorithms! Grötschel also cites an algorithmic improvement of roughly 30,000 for mixed integer programming between 1991 and 2008."

<comment><USER7> I think the authors point though is that all our effort into the algorithms where algorithms to do just one thing - search - and that we used that in conjunction with more compute power.

I'll agree that the author emphasizes compute power, but his real point still holds. Monte Carlo search may not be classic brute force, and neural networks guiding it may also not be standard, but the two just let you effectively search on a massive scale.

</comment></comment></comment><comment><USER8> This really needs a better title, or at least a subtitle. (I clicked only because I recognized the domain name; the title itself is vague puffery which gives no promise of being interesting...)

'compute beats clever'? 'fast > fancy'? 'better big than bright'? 'in the end, brute force wins'?

Or at least call it "AI's Bitter Lesson" or _something_!

<comment><USER9> I agree with this fellow. The non-descriptive titles are a glaring issue that needs to be fixed.

</comment></comment><comment><USER10> I know ~nothing about AI. But to me, this seems a great summary. And as a one- time developmental biologist, I'm struck by these observations:

> One thing that should be learned from the bitter lesson is the great power > of general purpose methods, of methods that continue to scale with increased > computation even as the available computation becomes very great. The two > methods that seem to scale arbitrarily in this way are search and learning.

> The second general point to be learned from the bitter lesson is that the > actual contents of minds are tremendously, irredeemably complex; we should > stop trying to find simple ways to think about the contents of minds, such > as simple ways to think about space, objects, multiple agents, or > symmetries.

From what I know about brain development, "search and learning" are key mechanisms. Plus massive overproduction and selection, which is basically learning. Maybe that's the main takeaway from biology.

<comment><USER11> I was thinking the same thing. When I "play" with a new language or tool or concept, I try lots of different scenarios (search), until I can reliably predict how the new thing will work (learning).

<comment><USER10> That's pretty much how our brains develop. Neurons are vastly overproduced, during fetal development through the first few years. Ones that make useful connections, and do useful stuff, survive. And the rest die.

Also, as in evolution, ~random variations occur during neuronal proliferation, so there's also selection on epigenetic differences. The same sort of process occurs in the immune system.

In this way, organisms can transcend limitations of their genetic sequences. There's learning at levels of both structure and function.

</comment></comment></comment><comment><USER12> > _Time spent on one is time not spent on the other._

But from the AI researcher's view, "the other" doesn't require time; someone _else_ is advancing the hardware, which is outside of the AI researcher's area. The general method to-be-run on better hardware is known today; it doesn't have to be researched. So should the AI researcher just twiddle their thumbs, waiting for the hardware to improve?

In games like chess, it has long been known that if you have a big enough database, an optimal game can be played. For each board configuration, the entry in the database supplies the optimal move.

So according to the reasoning in this article, we shouldn't bother looking for improving chess. The hardware will eventually get enough storage that we can store all the moves, and fast enough that we can compute them all to populate the table. Then twenty lines of Javascript doing hashed lookup of chess boards with a giant Redis back end will be the grandmaster. :)

<comment><USER13> I think the author would agree with you, that improving chess-playing is not likely to be a productive domain for advancing AI in future, and for essentially the reasons you give here: it is too formal (this guess is based, in part, on some of the authors' other writing.)

</comment></comment><comment><USER14> You can only reliably say that something which has happened several times is something that will always happen if you know the reason why it happened several times. This article seems to think it's Moore's law, which has ended. I think history tends to go in cycles as people over-index on whatever worked well for the last n decades.

<comment><USER15> This seems to be a trait of humanity in general, not just IT. Look at the finance industry: banks loan based on historical track records, right up until the bubble pops. Every. Single. Time.

Momentum lends itself to easy statistical support, and paradigm shifts are notoriously difficult to predict with any degree of confidence.

No matter how long in the tooth a particular trend might be, matter how certain you are that a reversal is imminent, it's hard to push against the weight of trend-line evidence.

</comment></comment><comment><USER16> I'm suspicious of hindsight bias.

I'm not sure if that had written 10-20 years ago, that "learning" would figure out so predominantly. Who's to say there isn't a third such big method?

Also, while the lesson fit the facts (easy in hindsight), it will hold... until it doesn't anymore. The end of Moore's law has been long heralded, and we're starting to enter this era. Progress can be made, probably, but transistors can't get any tinier, and you can only put so much cores on one chip. Hardware may continue to provide "free gains" but those will likely be at an order of magnitude (or more?) smaller than before.

<comment><USER17> In fact I stopped my research in supervised learning and switched to collaborative agents ~97 because I saw ML as deadended. Agents would be the thing! (hint: not so much, so far)

I think Moore's law is interesting. Technically Moore's law is about transistor density/integration, in effect it became about CPU performance and similar phenom were seen in disc and network performance. Just now we are seeing a move in general architecture away from spinning rust and towards chip based storage - ssd's and optane (or just huge DRAM) which has been much slower than I thought, but is still happening. There will be more progress as we wring out the opportunities in architecture and network devices, but overall you are right - no more Mooore's.

Also there's been a wave of progress funded by excitement - it's really hard to see how Google justified the spend on Deepmind's TPU infastructure, but they did - in contrast to a rational investment from a research council which would never have bought into Alphazero and the rest.

There's opportunity to do more - big gaps in datasets, evaluation metrics, refinement of techniques (mac nets, adversarials etc), but it's back to hardscrabble now - and I'm interested to see if this is a Warren Buffet moment. After all, you only see who's wearing shorts when the tide goes out!

</comment></comment><comment><USER18> I hate the term "AI" (even though I am CTO of a company with "AI" in its name, but since we use machine learning/DCNNs in our systems, it's very trendy). The problem with "AI" is the "intelligence" part. Intelligence is a construct like "porn", like in the famous words of Justice Stewart about defining the latter "...but I know it when I see it". At best, it's very ambiguous -- and misleading at worst. They have been many attempts to quantitatively and qualitatively define intelligence -- none of which I find particularly satisfying and neither do any three given scientists in a room agree on a single interpretation. My problem with TFA is that it is comparing apples to oranges; deep convolutional networks are very different tools useful for a subset of problems than the ones using Bayesian inference and other statistical methods. Brute force methods like image morphology, object counting, and transforms are useful for even yet an entire Other set of problems. To say that one has displaced another is an error, in fact in most useful, modern, production systems a combination of all three is utilized, each to their purpose. To make direct comparisons between them while implying the historical decisions to use one or the other are due to Moore's Law is a false equivalence.

I clearly need my morning coffee.

</comment><comment><USER19> > They said that ``brute force" search may have won this time, but it was not > a general strategy

It seems self-evident to me that 'brute force' is the most general strategy there is. Any (computable) problem is theoretically solvable by just coding the simplest, most obvious solution, which is usually pretty easy. The run- time of brute force is sometimes an issue, but that just means you need more of it!

</comment><comment><USER20> The majority of businesses and governments are insisting on learning this bitter lesson anew.

In the minds of many business executives and government officials, "explainable AI" means, quite literally, "show it to me as a linear combination of a small number of features" (sometimes called "drivers" or "factors") that have monotonic relationships with measurable outcomes.

I would go further: most people are understandably _scared_ and _worried_ of intelligence that arises from scalable search and learning by self-play.

<comment><USER21> If explainable AI is too limiting, what's the alternative? What's going to happen when someone gets hauled into court to be held liable for their non- explainable AI's outcomes? Oh right, I know, they'll hide behind corporate limited-liability shenanigans, until people get tired of that and go straight for the guillotines. Or maybe the non-explainable AI's owners will decide they want to prevent that, and ... do you want Skynet? Because that's how you get Skynet. Maybe spend some time thinking about the various _awful_ ways this could play out before concluding that explainability isn't important.

<comment><USER22> I love the phrase "explainable AI". We still can't explain how our intelligence works with any degree of biological detail.

<comment><USER23> We can't explain the implementation details, but a human system can literally explain the logic she used to reach a decision. For example, for applications in the justice system that AI has been recommended for, this is a highly important quality.

<comment><USER19> Eeeeeeh... what we do is more like parallel construction. We can give a series of plausible steps to explain where we ended up, but sometimes we can't really explain why we did some of the steps.

</comment></comment></comment></comment></comment><comment><USER24> On the other hand at some point we will want AI to learn based on a small number of interactions. IE an AI that beats a human after playing 10 games of chess/starcraft etc. Right now it takes millions of training matches. Many real world situations don't happen that often so this fundamentally limits applications of the current generation of AI.

<comment><USER22> Show me a human that can win a Starcraft championship after only playing ten games. If you find any, they learned the mechanics and strategy somewhere else. That's transfer learning, appears to be in its infancy in the ML community but making progress.

<comment><USER23> The scale matters here. I think a better metric for your parent comment would be the delta in skill per game played.

A human is significantly better on game 11 than game 1 (I recently got into Starcraft). Current ML systems are not. It's up for discussion how to take the human's previous experience into account, but the total amount of experience is significantly less that the computer's.

</comment></comment></comment><comment><USER25> This is a horrible post. It advocates to just throwing out research and replacing it with black boxes. Sure, they approximate (or even fully extract) the actual behaviour, but they are opaque.

I'd like to remind everyone that science is in the business of understanding, making things less opaque, less magic and engineering benefits from both.

<comment><USER26> I think you missed the point. It is saying that when we build AI systems put our understanding of a problem space into the system, we inhibit the development of a system that can create its own understanding of the problem space. He gives three very good examples of that. He also explains why people are tempted to do that: it's satisfying and initially improves the results.

</comment></comment><comment><USER27> Very interested article. I've often railed against putting your thumb on the scale (or even worse, second-guessing) machine learning models by applying too many so-called "business rules," especially _post hoc_ rules. If the model doesn't learn _on its own_ what you consider to be obvious structure of the data, then either you've chosen the completely wrong model and it won't be able to learn non-obvious truths either, OR your expectations were wrong and the "obvious" structure isn't real. Ineed, the model discovering, entirely on its own, the same structure as a human analyst is often the first evidence we see that the model works! In any case it does you no good to try and force it to fit your preconceptions with _post hoc_ adjustments. Either fix your preconceptions (if they are mistaken) or switch to a model which naturally agrees with you.

Sutton takes an even more extreme point of view, suggesting that most human feature engineering is similarly a waste of time. It's hard to argue with if you know the history: some of the best computer vision algorithms use exactly two mathematical operations, convolution (which itself only requires addition and multiplication) and the max(a,b) function. (This is true because both ReLU and MaxPool can be implemented with max(), and because a fully connected layer is a special case of a convolution.) A similar story occurred in speech recognition, with human designed features like phonemes and MFCC are giving way to end-to-end learning. Indeed, even general purpose fully connected neural networks started to work much better once the biologically-motivated sigmoid() and tanh() were replaced with the much simpler ReLU function, which is is just ReLU(x) = max(x, 0). What _really_ made the difference was leveraging GPUs, using more data, automating hyperparameter selection, and so on.

I'm not sure if there's really a lesson there, or if this trend will hold indefinitely, and I'm not sure why the lesson would be "bitter" even if it holds. Certainly opinions are mixed. One the one hand, many researchers such as Andrew Ng are big proponents of end-to-end learning; on the other hand, no one can currently conceive of training a self-driving car that way. But avoiding domain-specific, human-engineered features may be a viable guiding philosophy for making big, across-the-board advances in machine learning.

<comment><USER19> > Sutton takes an even more extreme point of view, suggesting that most human > feature engineering is similarly a waste of time.

In fact, wasn't there an article posted here recently saying that they'd had good results with using learned features to feed traditional non-NN-based machine learning?

</comment></comment><comment><USER28> Open AI said as much when discussing their move to a for-profit LP model.

They anticipate that real advances will be made by massively scaling up the compute power they throw at any given problem. That's driving their fundraising efforts.

If the past 5 years are anything to go by, they're right.

</comment><comment><USER29> What's missing in this account is all the interesting stuff that came from the attempt to emulate human reasoning. Sure, it didn't get us image recognition or chess mastery, but we have Prolog, much of what we now know as Lisp, and proof assistants. Deep, powerful tools that augment, but do not replace, human cognition.

</comment><comment><USER30> So if Moore's Law is slowing down and expected to end in 2025 (per it's Wikipedia entry [https://en.wikipedia.org/wiki/Moore%27s_law](https://en.wikipedia.org/wiki/Moore%27s_law) ), does this "bitter lesson" then need to be reversed?

</comment><comment><USER31> A reply: A better Lesson - [https://rodneybrooks.com/a-better- lesson/](https://rodneybrooks.com/a-better-lesson/)

</comment><comment><USER32> > Early methods conceived of vision as searching for edges, or generalized > cylinders, or in terms of SIFT features. But today all this is discarded.

These aren't discarded, they are part of ML vision networks today. Edges are one of the 3x3 convolutions that a network can learn, SIFT/etc are the dense / clustering nets, I'll admit I just googled Generalized Cylinders (very interesting). There are others like SLAM as well.

</comment><comment><USER33> I learned a similar lesson from working on robots. At first I attempted to devise methods for Robonaut 2 to do things the way I do because it was designed to be like me. It was missing little things that made my approaches unfeasible, and it was infuriating. At that point I decided it only made sense to make methods that allow the agent to discover its own behaviors, because its merkwelt and my own will never be the same.

</comment><comment><USER34> body { max-width: 50em; margin: 1em auto; }

to make this more readable on a desktop...

<comment><USER35> you're not wrong, but I installed bookmarklets on my ipad mini to increase and decrease font size because of _HN_, which sets lower-than-normal font sizes. My eyesight isn't great, but this site is the absolute pits for undersized text without max-width set.

</comment></comment><comment><USER36> I think without specialised CPUs, AI will remain futile.</comment>


The Case for Optimism and Risk at Startups - <AUTHOR> http://www.bothsidesofthetable.com/2014/11/05/the-case-for-optimism-and-risk-at-startups/

<comment><USER2> I really liked this article, specifically as a counter to this pretty annoying thread:

[https://news.ycombinator.com/item?id=8542091](https://news.ycombinator.com/item?id=8542091)</comment>


I am filing today a privacy complaint in twelve EU regions against Coursera - <AUTHOR> https://medium.com/@pdehaye/i-am-filing-today-a-privacy-complaint-in-twelve-european-regions-against-coursera-inc-72580000910c#.yaryk0nvm <comment><USER2> This sounds a lot like the social engineering strategies of an egomaniac.

He submarines a MooC course to see how much attention the mysterious nature of his actions garner. Humans are naturally curious and not accustomed to being blatantly manipulated from a person in a position of authority.

The choice of material that he was supposed to teach is indicative of the premeditated nature of the ruse. The course was intended to appeal directly to profs who are having difficulty transitioning to the new model of online teaching. What better way to recruit followers to an anti-MooC movement?

He states a shaky case about privacy with no evidence to back up the claims. Yet champions the cause as if he is some 'freedon fighter' of privacy rights.

Then follws up by sending legal notices to the MooC's to draw even more attention to his made up cause. All to garner public sympathy and exploit the fact that large organizations default to putting a gag order on public comment when litigation is involved.

For what? Increase twitter followers? Claim the throne as the head of the profs fighting to stop MooCs? Extract a tidy settlement? Collect 'research' to publish some bullshit paper about 'gaming' the system?

Sounds like a prof who who spent too much time studying game theory, is trying _really_ hard to become the Kim Kardashian of academia. Ala sensationalism is the shortcut to fame.

I'd be willing to bet the legal injunctions get dropped before a legal case ever materializes, yet that doesn't matter. He's trying to cash in on the perceived goodwill of his actions.

 _That 's_ the purported experiment that then prof has been 'unconsciously planning for years'.

I wonder what kind of mind fuck of cognitive dissonance a person has to go through to reach this point.

</comment><comment><USER3> A bit of background for context: [https://www.insidehighered.com/news/2014/07/08/massiveteachi...](https://www.insidehighered.com/news/2014/07/08/massiveteaching- mystery-captivates-confuses)</comment>


World's first hack-free software 'developed' - <AUTHOR> http://www.hindustantimes.com/World-s-first-hack-free-software-developed/Article1-655632.aspx?sms_ss=hackernews&at_xt=4d653cf9f809f7c5%2C0 <comment><USER2> Earlier submissions:

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

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

</comment><comment><USER3> In Donald Knuth's words: "I have only proven it correct, not tested it".</comment>


World of Goo Pay-What-You-Want Sale Results - <AUTHOR> http://2dboy.com/2009/10/19/birthday-sale-results/

<comment><USER2> I'm going to sound like a bitter old man when I say this but, well, get off my lawn: I would rather turn away a thousand customers with $0.01 ~ $1.99 in hand than give one user the impression my software was worth only $1.99.

"Pay what you want" is teaching your customers "You know what? Most people pirate our games anyhow, and why wouldn't they. They're not worth anything. We can barely bring ourselves to charge for them. You know, its so exceptional to receive money for these, if you give us a penny, we will award you karma points."

Offering someone a penny for their labor _is not generous_. Why are we teaching our customers to frame their purchases like that? Or like the app store, where software is a disposable commodity item which is overpriced at $2.99?

<comment><USER3> There's a culture in the gaming community that despises what DRM has done to the industry, myself included. By releasing World of Goo without DRM purposefully, 2DBoy sought respect from this niche. By selling it at a "pay what you want" rate, they are saying "I respect what you think, please compensate what you will. I already know you can get it for free. Maybe you just can't afford our 20 dollar price point.".

And they have thus earned this niche's respect and attention, and more importantly, their money. That's quite difficult to earn from an ordinarily pirating gamer.

<comment><USER4> Wow. They've earned the respect of pirating gamers. That's totally worth taking a pricing hit for. I'm sure the pirating gamers will absolutely support them with their next title.

<comment><USER5> Believe it or not, there are those of us who will not pay for DRM'd crap and simply do without rather than obtain unauthorized copies.

 _I_ respect the lack of DRM.

<comment><USER6> I didn't buy a single music track until Amazon had DRM free music available. Was it a moral stance? No, it was a pain-in-my-ass stance against iTunes and it's stupid legacy DRM model which forced me into their ecosystem aka iTunes which blows.

That being said, when you're a poor high school/college student it doesn't really matter what has DRM or not, you're just plain broke as shit and get everything you can that is free.

</comment></comment></comment></comment></comment><comment><USER7> I'd like the people that paid 1 cent and also said that's all they could afford at the time on the survey to say that to one of the WoG developers with a straight face.

It's amazing they can't afford to pay even $5 for the game, but they have hours and hours of free time to play it.

<comment><USER8> I did not buy it so far (for 20$), and if they give it away, they give it away. If they don't want people to pay 0,01 cents, they should put a minimum price of 5$. "Can't afford it" is just a rephrasing of "it is not worth more to me" in that context (I don't think anybody really had not spare $ in that experiment).

Personally I'd prefer them to have an option to give them money after trying the game.

Actually I ended up not buying it (and I was leaning towards 4$), because the PayPal form was too much of a hassle/couldn't get it working. Also I felt a bit like fooling myself - so far I did not buy it, now suddenly I am prepared to spent money? I felt I was falling into a kind of psychological trap...

I seem to remember that an address alone is already worth > 5$, so paying 0,01 cents is actually paying 5$.

<comment><USER9> Many games have incorporated a feature to where you can try the game, and then have the option to give them money.

This is called a demo.

<comment><USER8> Sure, but a demo is not very convenient (download, install, test, uninstall, download full game, install...). I guess they want to get people to buy who were so far not prepared to buy, so a low barrier to entry might be good.

</comment></comment></comment></comment><comment><USER10> I totaled it up to about ~$100k. Not bad for a few days. I wonder how much of their total revenue this is.

2dboy had a strong viral marketing campaign for this game. It's the only game I have downloaded over 6 years or so. They have exploited social networks pretty well, and now they got first dips on the Radiohead scheme in the game industry. If they made a mil they're doing ok (for 4-5 guys?) but this will be hard to repeat, imo.

<comment><USER11> 4-5? "2D Boy is a core team of two guys, Ron Carmel and Kyle Gabler. Their swanky San Francisco office is whichever free wi-fi coffee shop they wander into on a given day."

<comment><AUTHOR> The core team is two guys, but they hired/contracted additional people to help with QA/porting:

        - Allan Blomquist (Wii port)
        - Paul Hubans (QA and Production associate)
        - Maks Verver (Linux port)

<http://goofans.com/world-of-goo/about-2d-boy>

<http://www.mobygames.com/game/windows/world-of-goo/credits>

</comment></comment></comment><comment><USER12> Interesting graph - [http://2dboy.com/blog/wp- content/uploads/2009/10/histogram.p...](http://2dboy.com/blog/wp- content/uploads/2009/10/histogram.png)

Observe skews at multiples of $5 - 5, 10, 15, 20

These tell you how people look for easy anchors to decide pricing. When there is no guidance, easy to think of $5 than $6.21

<comment><USER13> Unless, I guess, a few who will take this occasion to put their lucky numbers.

</comment></comment><comment><USER8> Why are people using odd numbers like 5.99 instead of 6 if they can pick the price themselves. They want to fool themselves?

<comment><USER13> It actually works, when you put 5.99, you see "5" in the confirmation, even putting the amount yourself, you feel like spending less. (Plus, years of such prices everywhere)

</comment></comment><comment><USER14> _PayPal took it all, but they probably ended up losing money on most of those transactions ($0.01) as well, they're not the bad guy._

Heh, Paypal... I could say I don't care so much about them losing money....

Anyway, I'm glad this is going on a little longer; I'd like to see if the average increases, and I get to buy more people the gift [of Goo].

</comment><comment><USER15> I think it would be interesting to run an experiment with this model where some buyers were shown what the last buyer of the game paid and another group of buyers were shown what the average price paid for the game was. My hypothesis is that the group seeing the average price would pay very close the average and have a tight distribution of payers. I think the group being shown what the last buyer paid would have a very wide distribution of payers but I have a hunch that they would see a higher average price paid due to some people seeing a high last price paid and saying, well I should at least pay X (I could comfortably get by with paying this much less) or seeing a low last price paid and saying I'll at least pay Y (I'm a good person for paying above that). Regardless, it would be an interesting experiment.

<comment><USER16> Agreed! Also interesting would be to see how many people from those two groups dropped out of the sale after seeing the last/avg price paid. (And the drop- out % vs. what price was shown relationship, by group.)

</comment></comment><comment><USER17> The Firefox add-ons blog just posted some results from their "Contributions Pilot" where they were testing accepting donations for add-ons. [http://blog.mozilla.com/addons/2009/10/19/contributions-a- lo...](http://blog.mozilla.com/addons/2009/10/19/contributions-a-look-at-some- numbers/) Interestingly, the $5-$10 range seems to be the sweet spot there as well. In this case though the add-on author suggests an amount to donate which might skew the results compared to Goo's results.

</comment><comment><USER18> So I've been thinking about this as a business model recently.

What do you think would happen if you had a some sort of enterprise software that you charged whatever the company wanted to pay for, but you made it very clear that support and feature requests would be prioritized by the amount the company paid for it?

(For the purpose of this thought experiment, let's say the software was very well regarded and actually had a viable customer base.)

Do you think that the amount companies paid would near 0, or do you think you'd be able to find a good pricing level by doing this?

<comment><USER19> I guess many users would pay $0 just so they can skip going through their internal procurement process. (Which in some places can be a hassle when buying software at any non-zero price.)

</comment></comment><comment><USER20> I wonder if part of the success is that World of Goo is relatively well-known. I'm curious if the pay-what-you-want model would work for an unknown game from an unknown company.

</comment><comment><USER21> Altruism (i.e. wanting to support the model) is given as the reason for 1 in 5 payments, and comes up as a factor in a lot of the 'other' responses.

<comment><USER22> Not for 20% of payments, 20% of those who took part in the survey.

</comment></comment><comment><USER23> I paid $5. I have an 8 yr old who likes Wii Sonic and Mario games. I didn't know if I could interest him. I didn't know if I'd like it. The $5 was what I was able to gamble. Now that we've both played it (I like it more than my son), I'm going back right now and adding another $10. I think it's worth $15 given the length of the game. I'd pay more if it were longer.

</comment><comment><USER24> It's worth pointing out that we don't know how much of a success this is without being able to compare it to how much they would have made in the same period of time without the promotion - ie: what were the average weekly sales of the game before this was announced?

</comment><comment><USER25> yay! I had mentioned in the survey that I wanted to see how their "experiment" had fared, but it would've been nice to see how well the game sold pre- birthday sale.

I'm reading the "Other" section for why people chose their amount to donate.

There was a couple that I thought was interesting: "to support Linux games" "iPhone apps are 99 cents" "it's what was left in my PayPal account" and "I plan to more later if I like it/runs on my computer"

I wonder how many of those who planned to donate more later actually did.

<comment><USER13> It's really pity that people nowadays consider that there are "blockbuster" games, to pay 50-60 dollars for, and "cheap games", to pay for a cup of coffee price.

Originally, the term "indie" was just this, independent developers, without a publisher, and most likely people working on new concepts, interesting ideas that you can't do on the mainstream game industry.

Unfortunately, marketers are now abusing the "indie" label, for any "little game". And thanks to that, "indie" is now slipping to "cheap". So if a game is not the latest "Gears of Halo 2010", most of people will say it's only worth a few dollars.

That's sad.

<comment><USER26> Someone noted that there were 2 devs plus a few hires for porting. That versus the millions of USD spent on blockbuster games ... $20 might be high compared to the production costs?

Incidentally your $50 games are usually £50 GBP here.

</comment></comment></comment><comment><USER27> The server says "I am too stressed out. Try again in a minute or two." I guess they are getting some pretty good results. ;)

</comment><comment><USER28> I didn't really like that game :( (Which could explain the sale results)</comment>


Ask HN: Which new webapp do you wish existed and which you'd pay money to use? - <AUTHOR>

I have a built quite a few, small web applications(http://cosmicvent.com/products), but no one seems to be interested in paying for them.
So, I am looking out for ideas to start working on a new web application. What web application would you wish existed, and which you would pay to use? Suggestions that don't involve social networking, video sharing and music would be awesome!
Thank you <comment><USER2> Hello Minhajuddin,

I've taken a quick look at your website and it seems you aren't targetting anyone in particular.

Have a look at these blogs to improve your website: <http://conversionxl.com/blog/> <http://visualwebsiteoptimizer.com/split- testing-blog/>

I'd suggest you read over the blog entries on those sites to see where you can improve your existing business first.

There is no 'one app to rule them all' approach to software/web development. We just magically come across people that complain about something or share in discussion that in turn creates an idea (that we can later monetise).

The truth is, people are spoiled with convenience.

It's also not a great idea to compete directly with the open source market, unless you can learn from its mistakes and make something better, simpler and easier to use.

To get more ideas, you need to get out more and join more communities that are an interest to you (social networks, business networks, pubs, seminars, forums, irc chat servers etc)

Call up your customers and ask them how they are doing/their business is doing. Developers are in the business of developing businesses - software is just part of the process.

In general I have found there are two kind of applications that sell: 1\. Makes money/eases processes to make money 2\. Provides convenience/entertainment

Hope that helps.

Kind regards, Kellros.

</comment><comment><USER3> You know what I want? A really awesome todo webapp. One that supports priorities, nested todo's with dependencies and due dates, templated actions or projects, sms email or ios push notificastions, and is really easy to use. I'd pay a couple bucks a month for that, especially if it had an iPhone companion app. Team integration would be great and time tracking too. Basically, think project management tool, with a heavy "todo item" focus.

</comment><comment><AUTHOR> Would anyone be interested in an inexpensive CMS or blogging system?

<comment><USER4> Can you bring value (solve new problems) to someone over existing solutions? If you can't bring value, can you make it easier to use? There are dozens of blogging platforms available for free, with hosting or without: Wordpress, Tumblr, Posterous...

<comment><AUTHOR> Those are pretty solid apps, however I am building something like <http://get.harmonyapp.com/> but with a better WYSIWYG editor.</comment></comment></comment>


Andrew Yang Becomes 9th Democrat to Qualify for the Next Debate - <AUTHOR> https://www.nytimes.com/2019/08/08/us/politics/andrew-yang-debate-monmouth-poll.html#click=https://t.co/70DELYODsp <comment><USER2> Yang is probably my favorite Democratic primary candidate. I think his $1000/month UBI proposal is unworkable and doesn't survive sober scrutiny[1], but I'm glad he's around making the case for it in a mainstream setting. UBI deserves some mainstream sunlight. We already have UBI in the form of SS/Medicare (which are going bankrupt, but that's another discussion); UBI is a natural extension of that. I believe after enough economic growth and technological progress, UBI will become possible, maybe even necessary.

[1][https://slatestarcodex.com/2019/08/01/squareallworthy-on- ubi...](https://slatestarcodex.com/2019/08/01/squareallworthy-on-ubi-plans/)</comment>


YC stopped working with VC Peter Thiel a year after defending its partnership - <AUTHOR> http://www.businessinsider.com/y-combinator-billionaire-venture-capitalist-and-trump-supporter-peter-thiel-2017-11 <comment><USER2> Extensive discussion here: [https://news.ycombinator.com/item?id=15725108](https://news.ycombinator.com/item?id=15725108)

</comment><comment><USER3> I wonder if he's going to spin up a more libertarian friendly incubator?</comment>


Instapaper 4.2.4 removes 'print' feature - <AUTHOR>

According to the changelog for Instapaper 4.2.4, the rarely-used print feature got removed.
I had actually no idea about this feature, so maybe it was rarely used because of the GUI design? In addition, the lack of AirPrint support with existing printers might be a factor too. Printing via Instapaper on the Web remains of course still possible.
Have you had any use for the print feature in Instapaper? <comment><USER2> Yeah, that was the only way I used Instapaper</comment>


Turbulent Birth of the Personal Computer - <AUTHOR> https://www.nature.com/articles/d41586-019-03082-6 <comment><USER2> The personal computer here is the Olivetti Programma 101 from 1965. This interesting machine has been discussed several times on HN:

[https://hn.algolia.com/?q=olivetti+programma](https://hn.algolia.com/?q=olivetti+programma)</comment>


The Cornfield Bomber - <AUTHOR> https://en.wikipedia.org/wiki/Cornfield_Bomber <comment><USER2> Quite misnamed. It landed in Big Sandy, MT, which is _Chouteau County is the largest winter wheat producer for the state of Montana._ From the pictures [http://www.f-106deltadart.com/71fis_PilotlessLanding_580787....](http://www.f-106deltadart.com/71fis_PilotlessLanding_580787.htm) and others, the field is not one of corn, and I would be willing to bet that there isn't any cornfield in Chouteau County. There just isn't enough water.

</comment><comment><USER3> If anyone else wanted to know what a flat spin looks like: [http://www.youtube.com/watch?feature=player_detailpage&v=qvg...](http://www.youtube.com/watch?feature=player_detailpage&v=qvg- oXsQA4s#t=72)</comment>


Purism laptop – a laptop with hardware kill switches - <AUTHOR> https://puri.sm/ <comment><AUTHOR> Since the KDE slimbook is on the front page I thought I'd share this, looks much more developed and useful to me</comment>


Show HN: Naming and shaming companies who kowtow to Chinese censorship requests - <AUTHOR> https://github.com/caffeine-overload/bandinchina <comment><USER2> so like, everyone basically? The other problem is that these companies competitors aren't necessarily any better, they have just successfully avoided the issue. Very few companies - and probably close to none whom are global - are actually taking a stance that supports Taiwan and HK. I suppose a list of companies whom have taken a positive stance and put something at risk would be more interesting to me.</comment>


Loose project deadlines are driving my anxiety to the wall - <AUTHOR> I work in a DevOps consulting firm. I am a part of a team that is working with a client that is a startup riddled with financial problems because of lack of funding since past ~6 months. I have had some form of anxiety since I was a child and I have come to realize it even strongly since I have been working in this field for a past couple of years, mostly with startups. Every week, my manager has a meeting with the CTO of the startup and comes up with these deadlines without consulting me first. We then have discussion around the deadlines. Which goes something like this
Scenario A: When the deadlines are super tight for me, like I will most likely have to work the weekend type, he will message on our internal slack channel tagging the CEO of our company and asking us to work because of reasons like, hey guys this is really important for them, their business is dependent on us etc.,
Scenario B: When I think the deadlines come out of nowhere as in I know just as little about this as the manager. This is a new thing for everyone. He then comes up with this random deadline that sounds quite tight after discussion with the CTO and discusses this with us. He first tries to convince us as to how this isn't as difficult as it looks with factual information and then closes it with something like this "I think this is totally doable".
Scenario C: When there are no deadlines so to speak and everything is chill. He won't bother us. <comment><USER2> Terrible management. All he has to do is tell then let me speak to the team and get back to you

<comment><AUTHOR> I have brought this up in some form or the other. The response I usually get is something like "hey man, I understand this is stressful for you but their business depends on this" or "this is really important" or some empty promise that things will be easier after this feature is done. I have a feeling (might be wrong) that they want to keep this client because it pays a lot to our company (which is a little absurd to me but assuming a lot for our company isn't too much for them)

</comment></comment><comment><AUTHOR> [Continued...]

PROBLEM 1

Scenario A so far has almost always culminated into us delivering what they asked but they did not use it for like until weeks after that and when I brought this up with my manager, he told me he was just as surprised as us. He did not expect that. And sure enough, I think he's a good guy and most probably isn't lying but the problem isn't solved. We still have to deal with the same problem over and over again. It has gotten to the point that my manager and me both kind of know that this might be one of those fake deadlines but the problem is, he always follows his usual process of tagging the CEO and asking us to work extra with a "sorry". I think the apology is genuine but I am just fed up with it at this point. I have days filled with anxiety and I can't get just shut off my work from my thoughts at all unless I am doing something that really engages me but when that engaging thing (say talking to a friend over the phone) ends, it slowly creeps back in again. It has gotten to the point that I fear every day of the week because it might be one of those days when the fake tight deadline would drop and my manager would ask us to work extra and apologize to us in the daily internal meeting but still want us to do it.

PROBLEM 2

Scenario B has been a recurring problem for me because of anxiety. There have been times when Scenario B has gone close to Scenario A because of my own anxiety and overthinking.

I think Problem 1 worsens Problem 2 for me.

Here are the possible options I have thought of so far 1\. Ask my manager to switch me to a different project and push for it. One thing I believe will miss in this is the work, which I think is quite interesting if not for issues mentioned above. Also, if I transfer projects there's a chance that another project might turn out similar or even worse if I don't get a choice. Pro for this would be, I might actually get into a project which would offer the same level of interesting problems without unreasonable deadlines for my anxious self.

2\. Search for a different job. This is something I have been thinking of on and off for some time now but I like the company I am working at right now. Pros for switching the job might be higher pay and I will probably look for a remote working position which would help me continue working from home even after COVID ends.

3\. Consult a Psychologist/Psychotherapist for my anxiety which I am planning to do anyway.

What can I do to solve Problem 1 at least? Any advice, suggestions or alternatives would be really helpful because at this point I am just tired of facing the same anxiety filled day after day to the point it is starting affect my mental health and my behavior towards the people around me.</comment>


The Spoils of War. Trump Lavished with Praise for Bombing Syria - <AUTHOR> https://theintercept.com/2017/04/07/the-spoils-of-war-trump-lavished-with-media-and-bipartisan-praise-for-bombing-syria/ <comment><AUTHOR> > _" It's certainly true that Trump vowed to involve the U.S. in fewer wars > than Clinton wanted, and for a narrower range of reasons. And that may still > end up happening. Indeed, many of Trump's most vocal supporters yesterday > were expressing anger even over this limited bombing campaign in Syria. But > to take a military action that Clinton herself favored and try to use it to > suggest that Clinton would have been less hawkish is just bizarre and > deceitful beyond belief."_

Just one of the gems of clarity in this piece.

It has very many more such gems, including an application of a quote from the 1787 publication "Federalist No. 4, Concerning Dangers From Foreign Force and Influence" by John Lay, about some things that often happen after leaders start new wars.

<comment><USER2> The US media would be chanting for war even more so than now if Hillary had won, and people might go along with it easier too. This has been my only hope for a while, that through his idiocy Trump will put the spotlight on these wars / the DoD / military contractors and expose them.

<comment><AUTHOR> I understand you feel personally aggrieved by US wars, and I'm sorry about that. War is tragic.

The views you and I currently have about this are very different. I feel like I'd like to convince you otherwise but I don't think that's going to happen, and also, to some extent, I realize it's not respectful to to try to convince you of something else, given what you've experienced. And also, more generally, I wonder, what's the point of trying to convince others? Everyone is and can have their own view. There's nothing wrong with that. So I don't really see any point in stating the differences.

I just hope that things get better for everybody.

<comment><USER2> I'd like to convince you too. But maybe I wasn't clear about what I really meant. I don't actually hope that, that was more of a joke. My opinion is that the arms industry, US military, and US intelligence agencies are out of control. Do we disagree on that?</comment></comment></comment></comment>


A decade-long effort to put a WWII boat back to water - <AUTHOR> https://arstechnica.com/features/2017/04/the-decade-long-6m-effort-to-put-a-70-year-old-wwii-boat-back-to-water/ <comment><USER2> Despite being a programmer, I love reading military history books and visiting museums. Time to plan a visit to New Orleans. Riding in a real PT boat would be a blast. Much more likely than my dream of driving Tiger 131 (the one in Bovington used in movie Fury).

<comment><USER3> Make sure to give yourself plenty of time to go through the WWII Museum there. It is huge and extremely well put together, with tons of artifacts (including entire airplanes) and some of the best exhibit design I've ever seen.

</comment></comment><comment><USER4> This reminds me a great deal of a nautical version of the people who are maintaining "flying museum" operable B-17, B-24 and other WW2 vintage bomber aircraft.

</comment><comment><USER5> 130,000 volunteer hours and $6 million to restore a PT boat? Someone had one for sale for $750,000 on eBay in 2004, and they weren't getting any bids. The going price for an 80 foot yacht is about $1-2 million.

<comment><USER6> The condition matters, though. PT boats were not designed to last.

</comment></comment><comment><USER7> What I find interesting about these restoration efforts is that it took far less time to just build the thing from scratch, many decades ago (when technology was not as advanced).</comment>


Open-sourcing Chrome on iOS - <AUTHOR> https://blog.chromium.org/2017/01/open-sourcing-chrome-on-ios.html <comment><USER2> Its a shame Apple gets away with stifling browser competition and forcing everyone to use Webkit.

Of course it's a brilliant move: by controlling the stagnation of web browser tech, they can force developers to implement apps with their high-lock-in native app frameworks.

Google does the same thing with Android, but it is not nearly as blatant as Apple's flat-out blocking competitive browser implementations.

<comment><USER3> It's tempting to be cynical but there are good reasons for this. The main good reason is power efficiency. As the seller of the device Apple is the chief party held accountable for poor battery life. You or I or other technical folk might point the finger at particular apps but the typical consumer will just bemoan the "poor battery life on my phone". Apple takes ownership of that outcome and if that means forcing it to be a priority for all browsers, so be it. It's what lets them advertise the battery life for web browsing that they do.

Additionally, I would like to challenge the unsupported notion that WebKit is "stagnation of web browser tech". While there may be issues here and there, my impression is that Apple is overall committed to pushing the envelope[1] and adding compelling features.[2]

[1] [https://webkit.org/blog/7122/introducing-riptide-webkits- ret...](https://webkit.org/blog/7122/introducing-riptide-webkits-retreating- wavefront-concurrent-garbage-collector/)

[2] [https://developer.apple.com/library/prerelease/content/relea...](https://developer.apple.com/library/prerelease/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_10_1.html)

<comment><USER4> Um, no. Just look at sites like caniuse.com and see how much farther ahead Chrome and Firefox are than Safari iOS. Safari iOS has become this generations IE 6. It is seriously holding back the web. And worst of all it really only gets one update a year!

<comment><USER5> It's not holding back the web, settle down! It can still render websites perfectly fine and will continue to do so.

Seriously, what horse are you backing where iOS Safari is compared to IE6?!? What oh-so important feature you simply must-have, that would even begin to signify that iOS Safari is "holding back the web"?

The web dev world is absolutely mental at the moment...

<comment><USER6> I'd pay top $$$ if someone could show me how to let a mobile Safari user record audio on their microphone and submit it. iOS doesn't permit this in any way, whether it be with getUserMedia or media capture forms. The only way to do audio recording is to build an iOS app just so I can get this one simple feature which is exactly what they want. Repeat this story for a dozen other features as well.

Apple's total opaqueness on what their plans are for the future functionality of their browser certainly doesn't help either.

<comment><USER5> Web pages that can access the microphone sounds like an absolutely insane idea to me, but then like I said, web dev is absolutely mental at the moment...

get off my lawn etc.

<comment><USER7> So Safari doesn't hold the web back like IE6, because the ways it's hold the web back doesn't count because you don't want those features.

Not buying it.

<comment><USER5> I'm suggesting that the web is fine - its stupid nonsense like javascript access to the microphone that gives the illusion that the web is moving forward, and that some people are freaking out proclaiming the end of days because some ridiculous feature hasn't been implemented.

<comment><USER8> How is it ridiculous just because it's a feature you don't use?

There are plenty of uses for newer standards, that's why they're created, but it only works if the browsers carry their weight and implement them consistently. Safari doesnt, and is thus holding back the progress, just like IE6+ did.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> There seems to be an argument here that runs something like this "I've bought a ticket into this walled garden and I don't like the walls, and why do we only get to eat apples?" Yet, next door is a lovely (by all accounts) meadow where you are free to roam and even plant other fruit trees.

Apple's environment is a walled garden. They don't hide this - in fact they make a virtue of it. And the market is so competitive that there are plenty of viable non-Apple alternatives.

It's one thing to argue the merits or not of a walled garden as a business strategy. However most of the arguments being made here seem... petty?

<comment><USER10> I think the real question is this.

Why do so many prefer the walled garden? Sure, many will easily dismiss them as "stupid" but this can't surely be the case. iPhone owners make up about 43% of smart phone users according to CNN (Take it for what you will).

I don't have an answer, but I think it's worth asking the question.

<comment><USER11> Because they produce amazing beautiful hardware that works well with its software, no difficult configuration needed, a best-in-class UX, a high bar for all of its apps to meet (so thus overall UX is quality), an integrated ecosystem, and a marketing machine that makes you feel good and obtain social status for owning it.

What's the mystery?

<comment><USER12> s/.*/Because it's sexy and trendy above anything else/g

<comment><USER11> You say that as if that's some easy, cheap thing to achieve. Those words are also not concrete at all as to what they mean, exactly. All of these things are designed with purpose and are extremely difficult.

<comment><USER12> >You say that as if that's some easy, cheap thing to achieve.

No, I don't. I say it as if there are more important things to consider in the products you buy.

<comment><USER11> Maybe for YOU, but considering Apple just posted their most revenue ever last quarter, there are billions of reasons to disagree.

(Their products are also not _just_ sexy/trendy, clearly. They basically invented this entire category of modern smartphone despite many previous attempts by others.)

<comment><USER12> Logical fallacy. Just because a product is successful doesn't make it the best product - in fact I'd wager that it isn't more often than not.

<comment><USER11> The question wasn't "what's the best product," it was "Why do so many prefer the walled garden?"

<comment><USER13> Because to the average, non-technically minded user, they bought the phone for the logo on the back.

Sadly, average, non-technically minded users make up a large proportion of the global populace.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> My understanding is that the reason Chrome has to use the iOS webkit view is because that's the only way to get JIT javascript compilation working for apps submitted to the app store. Does anyone have a sense of whether it would be possible to switch to Blink and V8 with a locally compiled and sideloaded version of the app? Would there be any benefit?

<comment><USER15> You're not allowed to provide your own web render engine at all. The JIT issue was solved a couple versions of iOS ago - embedded webviews now get JIT just like Safari.

<comment><USER16> > You're not allowed to provide your own web render engine at all.

Is that true? I understand the security argument against JITs, but I don't see why it would be objectionable to run a copy of e.g. Gecko if you excluded the JS JIT component. (Of course you would never actually do that. But I'm trying to tease apart the separate arguments and see if they're actually connected.)

It seems to me that the root cause for this is all the JIT. If the JIT in iOS has to be exposed via IPC for security (as claimed in a sibling comment) it's simply not going to be a win to try to use it in combination with a separate rendering engine, if it's even possible at all.

<comment><USER17> You're not allowed to ship a interpreter that interprets code that doesn't come from insider your app.

So you can maybe ship Gecko + SpiderMonkey, as long as you only run JS that's part of your app. But if you want to run JS from a website (or indeed any code from anywhere), you're not allowed to do that on iOS.

I haven't checked whether it would be OK to ship a browser engine that doesn't support JS at all, but that's a fairly academic question anyway.

<comment><USER18> > You're not allowed to ship a interpreter that interprets code that doesn't > come from insider your app.

That is not true. Many apps do this. Games have been doing this for a decade. It is not a problem to do this. Apple has never made a big deal of that. Only if you are trying to build a shadow app store.

<comment><USER19> Games interpret code that's shipped with the app. You cannot create an app which downloads code off the Internet (for example) and executes it.

<comment><USER20> not true, checkout codepush from microsoft which enables OTA updates for cordova, react native, etc.

<comment><USER21> Yeah, because JavaScript is exempted from their rules.

<comment><USER17> JavaScript in general, or JavaScript only if it's run via Apple's JavaScriptCore?

<comment><USER19> JavaScript only if it's run via Apple's JavaScriptCore.

Pebble used this quite effectively to add phone-side apps to their product.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER22> How much is there even left for Chrome to do, once you are building on top of a WKWebView? Seems like Chrome would be a very thin layer on top of it, with WKWebView doing most of the work, and Chrome just implementing a thin layer of user interface widgetry on top of that (next and back button, url bar, etc). Sounds to me like it's just a branded "white label" version of Apple's standard Safari browser.

<comment><USER23> > How much is there even left for Chrome to do

Looking at [https://chromium.googlesource.com/chromium/src.git/+/master/...](https://chromium.googlesource.com/chromium/src.git/+/master/ios/chrome/browser/) there is:

autocomplete, autofill, content settings, content suggestions, crash reporting, desktop promotion, device sharing, dom distiller, favicon, find in page, first run, geolocation, history, infobars, metrics, open from clipboard, passwords, payments, physical web, prefs, reading list, search engines, share extension, signin, ssl, suggestions, sync, translate, voice

<comment><USER24> Many of the things that I want removed from Chromium / Chrome.

<comment><USER25> Well now that it's open source you could in theory remove the things you don't want and keep only the good parts. In practice it's not realistic for a single person to do it and even if it was you'd still have to maintain it.

</comment></comment></comment></comment><comment><USER23> Why is it so rare for mobile apps to be open source? I've skimmed the top 100 free iOS apps, and none of them (besides chrome) are open source.

<comment><USER26> How many of the top 100 websites are open source? Sure, it's not zero, but large open source production products are rare to begin with.

<comment><USER27> Of the top 100 websites (I got tired of counting) in the USA, the obvious open source ones from a quick review are,

        4. Wikipedia
        6. Reddit
        33. Wikia
        37. Wordpress
        40. Twitch
        60. Github
        61. Reddit Uploads

I'm not counting Craigslist, though its infrastructure is documented and open source, because you can't just download the engine and run it yourself without a lot of glue. Likewise Pirate Bay. There are probably more marginal cases like that among the top.

And there are open data projects like Stack Exchange and Stack Overflow that essentially publish all their content on open source licenses and offer free download dumps. Both are top 100 sites.

Then there are the news sites available without paywall. Those are just basic blogs with photos, video, and text accessible to the public. They aren't open source; you have to pay to republish their content. But there is essentially no special software you can't match with any open source CMS at CNN or the Washington Post or HuffPo or many, many other top sites.

I'd say the solid majority of the top 100 sites don't have any special closed source software, except for the proprietary search engine projects: Google, Bing, Yahoo, their respective mail and document suite projects, and the like.

<comment><USER28> Wow. I never knew that Reddit was open sauce: [https://github.com/reddit/reddit](https://github.com/reddit/reddit) That's an eye-opener! I always assumed Wikia was Mediawiki powered but apparently nope: [https://github.com/Wikia](https://github.com/Wikia) I guess it's a separate entity to Wikipedia. Twitch don't appear to be open source but they do promote open source clients? [https://www.twitch.tv/broadcast](https://www.twitch.tv/broadcast)

<comment><USER29> IIRC not all of reddit is open source. The code that is in charge of vote fuzzing/scoring and spam is closed source.

</comment></comment></comment></comment></comment><comment><USER30> Would this allow for better ad blocking software (no internal vpn tricks, etc), or would Apple likely reject a forked Chrome with adblocking from their app store?

<comment><USER31> You can have ad blocking, but you can't have the fast JavaScript engine _and_ ad blocking, unless you are Safari. So you can't have a Chrome or Firefox with both, unless Apple fixes their APIs or allows the "real" versions of those browsers.

<comment><USER32> Not true at all, and also nothing is stopping you from building your own ad- blocking logic in to your browser either - iCab Mobile for example does just that.

<comment><USER31> It's not possible to do that and use the fast JavaScript engine from WKWebView. I'm sorry but you have no idea what you're talking about.

<comment><USER11> Why not? WKWebView has a delegate callback for the policy to load any given URL. You can implement ad blocking that way. Or you can chose to inject CSS rules if that's your fancy.

What's the technical issue?

<comment><USER33> Are you referring to the `-[WKWebView navigationDelegate]`?

Thats only used for user initiated navigation, not loading of assets.

You could still inject a JavaScript file or CSS file though to help hide pieces of the view. But that would be content blocking after the HTTP requests have been made.

I don't know of a way to intercept the HTTP requests as they're being made from a WKWebView like Safari does for content blocking.

<comment><USER20> Could attach a service worker if it can load before the assets. I know safari has this under consideration, but it's a w3 standard now anyway.

<comment><USER33> Isn't it still a working draft?

<comment><USER20> you're right, too soon.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER34> I wasn't sure if I read this correctly but does this mean if one compiles it themselves they can use blink on ios? That would be great for all those unsupported ipad 2's out there

</comment><comment><USER35> The reason for Apple to lock the web browser engine is simple: it prevents you to turn an iphone into your bare platform, as much as you turned AT&T into a bare pipe. They know money comes from services not bare platform.

<comment><USER36> How does Chrome or Firefox running on iOS, using WKWebView for its backend rather than their own rendering engines, in any way turn the iPhone into a "bare platform"? How would users even know or care that these 3rd party browsers are not using their own rendering engine?

<comment><USER37> Because all websites with cool features like working offline don't have those features on the iPhone.

Or at least, I hope this will soon be the case. Sadly, it not working on the iPhone will probably mean it's often not worth investing into at all.

</comment></comment></comment><comment><USER38> I stopped using Chrome because I didn't want everything I did on the web sent to them. Now that it's open source I'll probably never look at the code. So idk. Probably just gonna stick with Safari.

</comment><comment><USER39> Does this mean we could see mobile extensions in the future? Not being able to use plugins, userscripts, etc is one of my least favorite things about mobile.

</comment><comment><USER40> Can we change the story's link to the announcement on the Chromium blog?

[https://blog.chromium.org/2017/01/open-sourcing-chrome-on- io...](https://blog.chromium.org/2017/01/open-sourcing-chrome-on-ios.html)

<comment><USER41> Yup. Url changed from [https://techcrunch.com/2017/01/31/google-open-sources- chrome...](https://techcrunch.com/2017/01/31/google-open-sources-chrome-for- ios/), which points to this.</comment></comment>


Why isn't this weather site viral? - <AUTHOR> http://www.nexttv.com.tw/weather

<comment><USER2> Thank you my friend. Thank you.</comment>


"I am quitting Twitter for a while" - <AUTHOR> https://twitter.com/sama/status/743143168615473152 <comment><USER2> I'm quitting for awhile. This is not newsworthy.

I will be back, I just want to break the cycle of the compulsion to check it given that I think it's healthier in much smaller doses.

I also think Twitter will make changes to the behavior the product rewards, and it will make it a much better place to be.

Just to say it, I also think Twitter will be a very valuable company.

<comment><USER3> Interpreting your last sentence - Twitter isn't a valuable company yet?

<comment><USER4> Relative to its peers in the public eye, especially Facebook, it's not.

</comment></comment></comment><comment><USER5> I think this will be a growing trend for all social networks among the more thoughtful crowd (or at least a large curtailing of usage). What value does signing into these platforms many times per day really bring, especially considering the negative effects of distraction?

[https://www.theguardian.com/science/2015/jan/18/modern- world...](https://www.theguardian.com/science/2015/jan/18/modern-world-bad- for-brain-daniel-j-levitin-organized-mind-information-overload)

<comment><USER6> There's always a steady migration to new platforms.

A new platform emerges.

The early adopters find other early adopters. They are all enthusiastic. It's a small community so things stay informally OK.

Word gets out. There's a boom. Growing pains.

Eventually it's a mass platform. Everyone is there. It turns out that lots of people's morality is governed by fear of punishment and not fear of guilt and bam, there's a rising tide of nastiness.

A new platform emerges ...

</comment></comment><comment><USER7> I enjoy Twitter myself but it does reward low-effort, high-dopamine-reward behaviour like snark, sarcasm and trolling. I don't blame him at all.

It's a platform built on easy-mode interaction - getting to know people in depth is more difficult.

</comment><comment><USER8> Twitter's base DNA was building a "broadcast" platform with a simplistic I/O of communication between two parties. (keyword TWO)

This makes sense in the context of Twitter's underpinnings in emergency vehicle / taxi dispatch. (1)

What it's actually becomes is a massive discussion board where information is organized around people rather than topics.

With the genius tweak of limiting to 140 characters to drive word economy and a low commitment tax to open the app and participate.

As such I am baffled why they don't roll some basic community and forum management tools.

People are having discussions! In a group!

So give them some tools to solve the oldest community challenges in the book of trolling, content discovery, relationship development, etc.

(1) [http://www.briansolis.com/2011/04/twitter-co-founder-jack- do...](http://www.briansolis.com/2011/04/twitter-co-founder-jack-dorsey-and- the-ideas-that-sparked-a-revolution/)

</comment><comment><USER9> seems like an important qualifier was dropped from the HN headline: "I'm quitting Twitter _for awhile_."

</comment><comment><USER10> Why is this newsworthy? It seems like the exact same points have been made hundreds of times.

<comment><USER6> Sam Altman is more notable to the HN crowd that the hundreds of other folks.

</comment></comment><comment><USER11> I've pretty much entirely quit using Twitter for communication outside of the NBA Twitter micro-community. Besides that, I use it for news and to follow Pinboard, HN Onion, and other parodies.

</comment><comment><USER12> I am wondering if there's an easy way to sell a great Twitter handle (@simon). Suggestions?

</comment><comment><USER13> And I'm quitting the gym.</comment>


CRM for HR - <AUTHOR> Me and My team have developed a CRM Backend and App which allows enterprises to handle their human resource efficiently for clientele meetups, customer address verification, etc. Anyone interested to come on board as an investor ?<p>Were based out of Chennai, India. and the firm behind the solution is Pupa Clic. <comment><USER2> When you've name two very vague requirements in clientele meet ups and customer address verification, you pretty much lose all rights to use the word "etc".

</comment><comment><USER3> No information on you or your team, barely any info on your company, if you get funding from this post - I've failed at life.

<comment><AUTHOR> Updated (y)</comment></comment>


Crypocurrencies crash - <AUTHOR> https://coinmarketcap.com/ <comment><USER2> It's all relative, isn't it? Since tokens have no utility or intrinsic value, or economic connection to any other thing, then they are almost pure expressions of commodity pricing: at any given moments, they are worth exactly what someone is willing to pay for them, no more or less. They just blow around according to the fleeting whims of the market.

<comment> shit-show Yup I came here to say this. Institutional investors are realizing this and some firm is shorting the shit out of this market: [https://news.ycombinator.com/item?id=17755028](https://news.ycombinator.com/item?id=17755028)

</comment></comment><comment><USER3> A few months back people would have been yelling "BUY THE DIP!"

<comment><USER4> I'd be fascinated to learn how many of those yelling were just bag holders looking for a chance to dump their "assets" and not be the last man standing when the music stopped.

</comment></comment><comment><USER5> Given the timeline and synchronous crash, it seems to be a reaction to the Indian and Saudi ban.

I pray for a crash, because I would love some cheap coins.

Hopefully there will be blood in the streets soon, and that will be time to buy the dip!

<comment><USER6> But how do you know if the dip is $1000.00, $100.00, or $1.00?

<comment><USER5> blood in the street!

Seriously, make your own estimations, and buy a percentage at each price step if you think crypto is interesting (ie if you want to have a positive position)

Assuming I have exactly your expectatooms, at 1000, I would spend half my budget , at 500 25%, at $100 25% leaving 0, because if it goes below 100 I will have some time in front of me to wait for a bump :-)

But seriously, I think your expectations are a bit lowl It already rebounding in a trap. I would say anything below 6 is unlikely to last long, given how quickly similar crashes recovered this summer.

So 4 is my starting point for "blood in the steet"

<comment><USER7> Man, what hubris. I have to say that the most enticing thing to a human is to find a pattern, even where there is none. You cant make predictions purely on prices, because that is the information itself of what predictions were.

Crypto money has some big red-alerts. Billions poured in. Potentially billions in money laundry. Extreme concertation between high-stake players. And you want to guess what the future holds by looking at the historical price?

<comment><USER5> I do not think there is any pattern, just fundamentals that I believe in.

I want to acquire coins not for the price now, but in 20 years from now. I want the cheapest price possible because I have only so much cash to spend on that.

I have an amount earmarked for aqusition, and a rule to spend it. I do not care much about the/3 red alerts. Quite the opposite: I see that as indicators of interest.

Remember the article you submitted in 2013, annoucing Bitcoin was at 650? 5 years later, now, it is at 10x that price. I regret not buying them - even if it later crashed, because markets go up and down.

Bitcoin crashed before, it will crash again. I do not care about making the absolute best possible - just some good enough profits. 10x every 5 years is good enough for me,

<comment><USER7> What fundamentals. I think crypto-people like using that word, but dont really get what it means. There are no fundamentals on bitcoin, there is demand for its future use. If the demand drops the system goes to 0, it doesnt have a strong utility as it is today, and its best utility is money laundrying, which can and will likely dry up eventually.

<comment><USER5> Let's see: several billions worth of infrastructure (asic miners), a technology tried and tested over 10 years soon, a much better acceptance that other cryptos, a worldwide network with terahashes securing it.

Also, on the technical side, a blockchain so small that it can be synced with just an old laptop

The price will always be >0 if only for the historical value - like old coins and bills from foreign countries sold at fairs, or paper bonds that people stick on walls.

And I don't care if criminals use it, in fact that by itself almost ensure it has a bright future because criminals will always want to conduce business, and there is no competition except diamonds (also driven by demand for future use, because otherwise it's just a shiny rock)

I remember how people on HN used to bash the idea behind crypto, and it discouraged me at first. I was very stupid fo listen to them. Not anymore, now I have my plans, and I will execute them.

On and btw, I said yesterday it was unlikely to stay for long under 5.9k, was I right? I regret there was no bigger crash to buy at good prices. I really want to see a good crash!

<comment><USER7> It is unlikely for btc to stay at any price. I can also bet on volatility!

Laundrying is a good usecase, but only because its not being persecuted today. The day the SEC lands some people in jail, or intervenes tether, even that path will get closed out. BTC is not great for laundrying because of btc, but because of slow gov action. It leaves massive papertrails.

Once that usecase goes down, you need to create enough value to justify the salaries and infrastructure investment of all miners, plus the electricity they use. You need to generate the millions of dollars in value, and today, i dont see applications for it, not even wealth transfers. Maybe some storage, but not worth paying so much for, unless they are illegal.</comment></comment></comment></comment></comment></comment></comment></comment>


Let's encrypt and cert-manager reducing unnecessary requests - <AUTHOR> https://github.com/jetstack/cert-manager/issues/407 <comment><AUTHOR> This is a great example why to believe in open standards and open source.</comment>


Proposal of a new concurrency model for Ruby 3 [pdf] - <AUTHOR> http://www.atdot.net/fp_store/f.iu25do/file.2016_rubykaigi.pdf <comment><USER2> Tl;dr The goal is to keep compatibility with Ruby 2. It introduces the concept of guilds and channels to send objects between guilds. The bullet points below are quoted from a couple of slides, the other text is mine:

* Guild has at least one thread (and a thread has at least one fiber)

* Threads in different guilds can run in parallel

* Threads in a same guild can not run in parallel because of GVL (or GGL: Giant Guild Lock)

A guild can't access the objects of other guilds.

About channels:

* We have Guild::Channel to communicate each other

* 2 communication methods

1\. Copy

2\. Transfer membership or Move in short

Copy is a deep copy and the object is duplicated into the destination guild. A transfer removes an object from a guild and makes it available to another.

There are also immutable objects that are available to all guilds. An obvious example are numbers, which are objects in Ruby, booleans and symbols. I think that other objects are frozen with [https://ruby- doc.org/core-2.3.1/Object.html#method-i-freeze](https://ruby- doc.org/core-2.3.1/Object.html#method-i-freeze)

They already did some encouraging benchmarks.

<comment><USER3> > A guild can't access the objects of other guilds.

> 2\. Transfer membership or Move in short

How is this enforced? What exactly happens at runtime if a guild tries to manipulate an object that belongs to another? (Absent a compile-time check, this is always a possibility.)

<comment><USER4> > How is this enforced? What exactly happens at runtime if a guild tries to > manipulate an object that belongs to another? (Absent a compile-time check, > this is always a possibility.)

It would seem that:

(1) Guild ownership would have to be tracked in the runtime, obviously.

(2) Any access from Ruby code in the runtime, the runtime would also know what Guild the access request came from as well as the Guild the object belonged to against which access was sought.

(3) The runtime would be required to fail in some well-defined way (presuming, raising an exception in the requester) when the rules were violated.

It should be reasonably straightforward to assure this for all accesses within the runtime, since you can just make sure that there is no method to _request_ access which isn't always attached to the Guild that the request comes from. It may be possible to break the runtime with poorly-behaved extension code that subverts the normal mechanisms, and it may be impossible to fully protect against that, but that's pretty much always a potential with extension code.

<comment><USER3> How would you transfer ownership of big linked data structures? See my other comment: [https://news.ycombinator.com/item?id=12455566](https://news.ycombinator.com/item?id=12455566)

I'm not particularly worried about C extensions. I already know those are a lost case.

<comment><USER4> > How would you transfer ownership of big linked data structures?

Very carefully?

More seriously, I think with guilds, what you absolutely _don 't_ want to do is build yourself into a position where you ever _want_ to move a big linked data structure (that is, unless you know you are only going to use it in one guild, you never want to _build_ a big linked data structure of mutable objects.)

Big structures of mutable objects should be guild local (or external, in a store that has its own controls for concurrent access.)

<comment><USER5> absolutely.

</comment></comment></comment></comment></comment></comment><comment><USER5> Could you link to [http://www.atdot.net/~ko1/activities/2016_rubykaigi.pdf](http://www.atdot.net/~ko1/activities/2016_rubykaigi.pdf) ? current one is on temporary file space (will be removed soon).

<comment><AUTHOR> Apparently I can't change the link. I'm sorry! :-(

<comment><USER6> The mods can do it. I once left a comment about changing the link. They saw it and changed it on their own. I don't know how to notify them though.

<comment><USER7> I'm reasonably certain they are notified if the article is flagged, but I suppose it may not be the correct way of doing it.

<comment><USER8> AIUI flagging the article can also affect its ranking or kill it entirely, so it's probably not the best way.

</comment></comment></comment></comment></comment><comment><USER9> I worked on a similar proposal during my PhD thesis. It is formalized for a Java-like language and implemented in the Jikes RVM. We also carried a proof of isolation using Coq.

[https://tel.archives-ouvertes.fr/tel-00933072](https://tel.archives- ouvertes.fr/tel-00933072)

<comment><USER10> That looks really useful. If you have time, please chime in on the proposal!

<comment><USER9> The ownership check is requiered for each access to an object. However it is straightforward to understand that successive checks of the same object can be optimized out if the object has not been passed to another owner. In this thesis I describe dynamic and static analyses to remove the unecessary checks.

</comment></comment></comment><comment><USER11> The key points IMHO:

1\. This Ruby 3 proposal says that Ruby 2 compatibility is mission critical, therefore this proposal rejects concurrency solutions from other languages (e.g. Erlang) and concepts (e.g. functions) and data structures (e.g. immutable collections).

2 Instead the proposal is to create a fast copy-on-write with rules to "deep freeze" some kinds of objects and primitives into an immutable sharable state.

<comment><USER12> > This Ruby 3 proposal says that Ruby 2 compatibility is mission critical

Matz has been very public about his fear of a "Python 3" situation occurring in the Ruby community.

<comment><USER13> And rightly so, I should think. Given the presence of languages like Elixir and Go, creating a situation where you are breaking people's code to introduce multicore programming systems is a pretty bad idea.

I can easily see how people might (rightly or wrongly) say "Ruby 3 broke my code, I'm rewriting in Go".

</comment></comment></comment><comment><USER14> Hmm, I am wondering how moving ownership would work in a GC'ed system. You could have arbitrarily many references to the moved object (or subobjects). The slides say that an exception is thrown if an object of a different guild is accessed, but doesn't that mean that Ruby needs to check the guild at every object access?

Transfering ownership would probably also mean that Ruby not only needs to move one object but probably all subobjects recursively as well. I assume here that "moving" just means updating the guild field for each object.

Is this really feasible or wouldn't just copying the object be faster... I don't know of any system with gc that uses moving to transfer mutable objects between threads. Do such systems exist? Are there better ways of implementing this?

<comment><USER15> > The slides say that an exception is thrown if an object of a different guild > is accessed, but doesn't that mean that Ruby needs to check the guild at > every object access?

Ruby is already checking the class of the object on every access. You could combine the guild and the class into a tuple and compare against that instead, so it adds no extra overhead.

There is a paper at OOPSLA this year on doing just that [http://2016.splashcon.org/event/splash-2016-oopsla- efficient...](http://2016.splashcon.org/event/splash-2016-oopsla-efficient- and-thread-safe-objects-for-dynamically-typed-languages)

<comment><USER16> I can't comment on that paper since it doesn't appear to be available publicly yet, so I'm just going to talk about guilds as proposed.

Adding a guild word to each object header is certainly a way to check ownership, and should be a cheap check to perform in the interpreter, but will obviously add some extra overhead to standard program execution.

The thing that concerns me is that explicit ownership passing can introduce as many bugs as it solves. If I have two objects A and B, with A holding a reference to B, then I can freeze A and freely pass it between guilds, but if I try and touch B I'll get an error until that too has been frozen or its ownership transferred. The same problems occurs with explicit ownership transfer of a non-frozen A, which leaves you with the slower option of a deep- copy or a recursive ownership transfer which can have equally unexpected consequences.

The "Ruby global data" slide also gives me the scream heebie-jeebies, as did finding stack overflow answers on how to unfreeze objects in MRI. I'm sure nothing will go wrong. :-)

Having said all that, it probably can work nicely for the common use cases of balancing requests between a group of worker guilds where the request is a simple data structure whose ownership can be safely transferred, but it would be hard to do a general work stealing solution that was always safe.

<comment><USER17> _> Adding a guild word to each object header is certainly a way to check ownership, and should be a cheap check to perform in the interpreter, but will obviously add some extra overhead to standard program execution_

It needn't be done this way. When an object is invalidated it could have its class pointer sneakily changed into a special "invalid object" class. Any attempt to do anything concrete with the object would be rebuffed, but normal object accesses wouldn't be changed.

 _> The thing that concerns me is that explicit ownership passing can introduce as many bugs as it solves. If I have two objects A and B, with A holding a reference to B, then I can freeze A and freely pass it between guilds, but if I try and touch B I'll get an error until that too has been frozen or its ownership transferred._

At least you get an error. Ultimately, the only alternative with comparable performance is sharing mutable references. That avoids this specific problem but is open to the full assortment of problems that can occur with concurrent mutable state, many of which aren't automatically detectable in principle.

 _> The "Ruby global data" slide also gives me the scream heebie-jeebies, as did finding stack overflow answers on how to unfreeze objects in MRI. I'm sure nothing will go wrong. :-)_

If this proposal is adopted it's a simple matter to prohibit unfreezing objects that have been shared. :)

Not that it would really be necessarily. If you're reaching into MRI's internals to unfreeze an object, then it's up to you to make sure that things don't break.

</comment></comment></comment></comment><comment><USER18> Hope thy improve the syntax, it looks horrid -- code in strings and all.

<comment><USER5> Because of current limitation. We'll improve it.

</comment></comment><comment><USER19> How would you use this to parallelize Rails requests? I guess you would need a pool of guilds, each with its own set of controllers, etc.

Since the requests would not be in the "main" guild, it might be painful to call into gems.

<comment><USER20> I guess you could boot up a pool of guilds in your process or better yet get generated on demand as requests are coming in, to process the request, and kill the guild off when the process is done since the request object shouldn't be shared.

It all really depends on how much overhead there is to create and destroy guilds. If it's easy then ideally you could start 100s of guilds or 1000s should your hardware allow it.

I see guilds as a subprocess with its own isolated resources.

<comment><USER2> Ideally guilds could be equivalent to lightweight processes at application level (not OS), much like in Erlang. Then they could be scheduled to run concurrently using OS threads (multiple guilds per thread) and take advantage of multiple cores. That's part of BEAM, the Erlang VM. I think it's going to take a while.

<comment><USER5> Similar to Erlang process, but more heavy weight (because it creates OS thread per Guild).

<comment><USER5> More correctly, making a OS thread per a Ruby thread, and creating a Guild makes 1 Ruby thread.

</comment></comment></comment></comment></comment><comment><USER21> Ok, "guilds"? Is the principle behind this so much different than everything done before that it requires repurposing a completely new word?

On par with That's "crates". Gives the impression some people just want to be remembered as inventing names.

<comment><USER4> > "guilds"? Is the principle behind this so much different than everything > done before that it requires repurposing a completely new word?

Pretty much. I mean, if there is a standard name for a thing between a process and a thread that is not a thread group, I haven't heard it.

</comment></comment><comment><USER22> If I'm reading this proposal correctly, locks will still be needed within multithreaded guilds to guard mutations against complex object graphs.

Here's my reasoning. Since the GVL is insufficient to guard against data races on Ruby 2, under the guild system, locks would be needed to guard against concurrency issues if multiple threads are present.

It would seem like the intention would be to replace usages of Thread with Guild to avoid the concurrency issues inherent with threaded code. Will there be API support to create a Guild that only allows a single thread?

<comment><USER4> > locks will still be needed within multithreaded guilds

It seems to me that is the intent; that is, any Ruby code that exists now is single-guild Ruby 3 code -- if its multithreaded, it needs locks, for the same reason it does now.

> It would seem like the intention would be to replace usages of Thread with > Guild to avoid the concurrency issues inherent with threaded code

I think that'll be a common use case, though running what amount to multiple "legacy" Ruby 2 multithreaded systems in separate Guilds in the same Ruby 3 process seems also to be an intended supported use case.

> Will there be API support to create a Guild that only allows a single > thread?

It certainly sounds like a good idea.

</comment></comment><comment><USER23> This is interesting. It doesn't mention GC, but since frozen objects can be shared between guilds, I assume the GC remains global. Perhaps this will trigger interest in immutable datastructures in ruby.

<comment><USER5> Quoted from slides: > GC/Heap > * Share it. Do stop the world parallel marking- and lazy concurrent sweeping. > * Synchronize only at page acquire timing. No any synchronization at creation time.

<comment><USER23> I stand corrected.

</comment></comment></comment><comment><USER24> How does this compare to the ongoing efforts to remove the GIL in Python? It looks like the Ruby GVL would stay, but be scoped to a Guild, rather than a Process?

<comment><USER20> Anyone correct me if I'm wrong here.

Seems like a guild is just a subprocess with its own resources. And you copy objects over as needed. And when the guild is done it will get garbage collected. Like other objects.

<comment><USER25> I think I would consider implementing it as 1:1 threading where every thread=guild runs its own set of green threads.

That likely would be faster than having OS threads in each guild that use PS locks to prevent running >1 of them concurrently.

<comment><USER5> CRuby/MRI supports C-extension which can use TLS (thread-local-storage). So that each Ruby threads runs on one OS thread.

</comment></comment></comment></comment><comment><USER26> This reminds me in some ways of Eric Snow's (rejected, afaik) proposal to extend "subinterpreters" to allow parallelism in Python.

[https://lwn.net/Articles/650489/](https://lwn.net/Articles/650489/)

</comment><comment><USER27> The PDF appears to have been removed. I'm getting a "Not Found" page.

</comment><comment><USER28> Any idea where the video of the talk is?

<comment><USER29> Ruby Kaigi has just started, so I'm guessing it will be a while.

<comment><USER5> Yes.

</comment></comment></comment><comment><USER30> do we have any date from this new way of doing concurrency in ruby?

<comment><USER31> the new concurrency is part of ruby 3. matz says he wishes for it to be out by 2020. but who knows :).

<comment><USER32> So 4 years to go. Not quite Perl 6 but it could be a bit late in the day considering the rate at which Ruby is losing mindshare.

</comment></comment></comment><comment><USER33> I{HEART}COM</comment>


WordPuzzle for Life - <AUTHOR> http://www.windowsphone.com/en-us/store/app/wordpuzzle-for-life/7c087444-07b7-4c57-a1f3-86001cfa37dd

<comment><AUTHOR> WordPuzzle for Life is a addicted game for those who wanted to increase their English word skills through fun. Simply play different level and choose word length varying from 5-10 to guess a word, based on a hint already available.</comment>