Things I Learned from World of Warcraft - <AUTHOR> http://johnaugust.com/archives/2007/seven-things-warcraft

<comment><USER3> Seven Things I Learned From WoW (The Business):

1) Put _obsessive_ attention into making the first five minutes of use of your product awesome. It is the five minutes people are most likely to see. It is also a gate through which all subsequent use of your product must pass. (Seriously, folks, if you value conversion optimization, I want you to play five minutes of WoW and five minutes of any other MMORPG, and take notes on what happens. WoW will drag you around by the nose. WoW will point you in the direction of the next thing to do. WoW _will_ show you success in those five minutes, even if you're terrible at what you're doing. We should all aspire to making products that nail those first five minutes as much as WoW does.)

2) Do not devote disproportionate developer resources to content/systems which the majority of the user base will not interact with. (It took them years to learn this, but they eventually go around to it.)

3) Make it simple. Then, make it simpler. WoW is one of the most complicated pieces of engineering the world has ever known, but six year olds can pick up and play it.

4) People will put up with any amount of drudgery if you give them small, frequent, random rewards for doing so. This is in fact so powerful I'm kind of scared of doing it.

5) If people are bringing their boyfriends into your product so that they can spend more time together, that is probably a good sign you have reached mass market success.

6) Monthly. Billing. Minor discounts for cashflow in advance.

7) High quality visual design can be made rot-proof by using iconic representations, bright colors, and timeless aesthetics. If you chase the leading edge of graphical sophistication, on the other hand, three years from now plan on doing a total graphical rip-out or you'll look dated.

<comment><USER4> As a game developer, I'd argue that thinking along the lines of #2 is very dangerous. Great games have a ton of subtle touches and content that only a small percentage of players will appreciate. The trick is that each player will notice a completely different set of features/content, and it makes them really happy when it feels like the developers went out of their way to polish some little bit of the game.

Think of Super Mario Brothers, one of the best selling games of all time. There are a stunning amount of hidden areas, tricks etc (even using an emulator with save+load, and a guide, it's not easy to explore the entire game world), but this is very closely related to how stunning the game world felt (especially for the time). An average player may only come across 10-20 secrets in the game, out of hundreds, but each time they'll have that warm fuzzy feeling where they are thinking, wow, they went to all the trouble to put this here?

Another good example is No One Lives Forever. They did a TON of funny lines with the guards talking to each other and notes that were left around (eg a note to employees saying no fornicating in the evil death ray storage facility). The chance of picking up on each of those was low, say around 10%, but since there were hundreds the game world, each player will have 20-30 moments where they were exploring some back room and they found something cool, which gave the game world immense amounts of character. If they instead made 20-30 moments and forced the players through them linearly, it would have felt cheap.

I'd also like to mention that, unlike many forms of software, it IS actually a requirement that game developers have fun making the games they play, because otherwise making the game itself fun is pretty much impossible. I don't think it's a coincidence that the developers of Diablo 2 took the time to put in the cow level, which most people never see, and spent a huge amount of resources tweaking leveling up for characters all the way up to level 90+, at the same time that they made such a fantastic game for the average player. If they made the game specifically for the average player, I think a lot of that magic that goes into development would have been lost, and paradoxically the game wouldn't have been as fun for anyone.

Of course you have to be somewhat rational about where you spend your development resources, but if you try to make sure that the majority of the players see the majority of the content, it's so easy to make a sterile game. And if you are often completely irrational about where you spend your time in the name of being artistic, it's surprisingly easy to make a game that is actually fun and gets attention. The difference in sales between the former and the latter, without a marketing plan B, will be orders of magnitude.

(I agree with the rest of your post)

<comment><USER3> WoW was spending literally tens of millions of dollars on content seen by a fraction of a percent of its player base. That was unjustifiably bad. That it continued for quite some time was a problem of the dev team culture and also, probably, a symptom that they did not have good metrics. (I have been there, done that, and got the T-shirt. Not to the tune of tens of millions but I've certainly frittered away man months on things seen by less than .1% of customers and, even worse, 0% of trial users.)

<comment><USER4> It does sound like they took it too far (I've not played WoW after losing a significant percentage of my time as a teenager to Diablo 2).

But I was talking about the general rule. I'd say that the opposite mistake is much more common amongst game developers, and it's a big reason why so many crappy games are released.

Certainly 0.1% of customers is too low. But I wouldn't call 1% too low - <USER2> of the best games ever made include lots of 1% content. And I think that's no coincidence - the mindset that results in developers putting 1% content into a game also results in a fun core game. 1% content only happens when developers care a lot about the game.

I should clarify that by 1% content I mean a different 1% of the audience will see each piece of content.

</comment></comment></comment></comment><comment><USER5> One thing I learned from playing Diablo 2:

It is a real waste of time.

Having learned this important lesson I never played WoW, thank god.

<comment><USER6> A lot of people think playing wow is a complete wast of time. But when you ask them what they do all day, they just watch television.

<comment><USER7> Not practicing what you preach doesn't say much about the truth of what you're preaching.

<comment><USER8> I'm not sure if that applies here. Most people "waste" a certain amount of their week on downtime, and that's probably healthy for them. Whereas in ages past that was checkers at the general store or a bard's stories at dinner or listening to the radio, today it's TV and video games. A person who watches 40 hours of TV a week for fun is in just as much trouble as a guy who plays WoW or EVE for 40 hours a week.

</comment></comment></comment></comment><comment><USER9> I'm always a little confused about how much people love to bash WoW, and call it such a waste of time. Sure, there are people who throw away massive amounts of time into the game, but there are plenty of other people who play a reasonable amount.

I spend 2 evenings a week raiding, with 1-2 hours throughout the week (plus another hour or two on the weekends, when I can) doing other things. Twice a week, a group of 10 friends get together, log onto WoW and a Ventrilo server, and mess around for a few hours. I think of it a lot like a bowling/poker night for some guys, except you're significantly more likely to invite a new, potentially interesting person to a WoW raid than you are to your weekly game.

Honestly, I find the whole "If it does not have direct monetary value, or somehow advance my career/list of contacts, it isn't worth doing" stance that many people take rather disturbing. No, playing WoW doesn't directly benefit me, but the indirect benefits have been pretty awesome. I've kept in touch with several old friends I otherwise wouldn't have, met a lot of interesting people, and it gives me something I can talk about with at least 10% of the population. And that's all on top of just playing a well designed, pretty fun game.

</comment><comment><USER10> The trouble is that no matter how much accomplishment I've seen in life (college, wife, job), I still miss playing - a lot.

<comment><USER11> maybe you should do something else instead of your wife and job.

<comment><USER12> Or maybe he should do his wife more.

</comment></comment></comment><comment><USER13> Please read the post before making a comment on what you don't like about the game. He just used WoW examples to contrast with life lessons.

The #1 lesson is probably the most important to life success, "Don't start something you don't intend to finish." is another way to word it.

This is even more important to startups -- if you are constantly getting features half way done and then scrapping them you should spend time figuring out why.

Yes the "new feature" you thought of today might be better measured side by side than the one that is half way done, but is it better for the effort required?

</comment><comment><USER14> "Grinding is part of the game ... but grinding is not the game."

Would that I had the wisdom to tell the difference between the grinding I _have_ to do to move me forward, and the grinding I _keep doing_ because it's there in front of me as an option.

<comment><USER15> That's what made me give up WoW myself a few months ago, after playing for about year and getting my sister hooked worse than me. I played rather leisurely until Blizzard added Achievements. My play style changed drastically afterwards, especially with regards to holiday events. My desire to get titles (especially the Loremaster one) really burned me out. Brewfest was the final straw, since you have to do several annoying grind quests every stinking day for the two week duration. Really ruined the game for me. (Blizz had to extend the holiday for a few days even due to glitches that really screwed up the acquisition curve.)

I pity the players having to deal with the Valentine's Day event coming soon; that was the second worst, IMHO.

<comment><USER14> I've never actually played (long story, but essentially my gaming tastes have been permanently stuck in 1998), so I was referring to the broader lesson in life. Glad to know the lessons continue to apply specifically and generally.

</comment></comment></comment><comment><USER16> The post is not about WoW. It is about his take-away from the game which applies to everything in daily life and for bigger things.

The list is terrific advice and preaching it through the example of a game is smart thing as one is hooked on to the reading part. Seems like most people just had a negative feel for the whole thing as they detest WoW as a waste of time. In the process they missed the gem of advice.

</comment><comment><USER17> I found this quote:

"With my newfound time, I had a kid, wrote a couple of movies and directed one of my own."

intriguing enough to dig up this imdb search: < <http://www.imdb.com/name/nm0041864/#writer> >. I'm sure the proper list is actually on Mr August's site too, but ... This might have more trivia. :)

</comment><comment><USER18> The biggest thing I learned from world of warcraft:

If you quit wow and spend all of that time that you would have been playing WoW on other tasks, you can actually accomplish some pretty amazing stuff.

(Get in shape, become a hacker, learn music, get girls... pretty much anything.)

Grinding levels in WoW takes discipline. Grinding levels in WoW can be a time investment similar to a second job. You can literally waste YEARS of your life playing WoW.

If you have the energy and discipline to sit at a computer for 8 hours or whatever after you've done all of your daily stuff, you could just as easily be spending that time accomplishing something great or learning.

And you will have tangible rewards that you can take with you everywhere, not just bits on a server.

<comment><USER3> Bug report: I quit WoW and all I got was bits. Bits in SVN, bits in MySQL, etc...</comment></comment>


Is there any ritual programmers do before launching an app or startup? - <AUTHOR> I have build my first app from scratch. Not very complex , but not easy either, it took me years to learn all the technologies required plus one year of university previously. I don't demand my first product to be successful, but the time is coming to launch an initial version and having spent so much time alone, I want to know what others have done before releasing the program. <comment> bulte-rs backup everything; hit the big red button and pray to <<insert deity of choice here>> that the world will not burn down in the next few minutes.

That... But for an initial release: enjoy! ;-)</comment>


People are the Problem, not Operator Overloading - <AUTHOR> http://www.jakevoytko.com/blog/2008/03/01/people-are-the-problem-not-operator-overloading/

<comment><USER2> This is why C++ is so great for big projects. You start to run into many cases where overloading operators is the only natural thing to do, and almost all of the semantic information (type, constness, etc.) is kept track of for you so if someone later comes and tries to modify a const parameter in some method, for example, the error is caught in compile-time! Sure, it takes a lot more code than Python or Ruby or PHP, but it definitely has its advantages.

</comment><comment><USER3> The trouble with the C++ paradigm that the implementor of a class does a bit more work so that the user of a class doesn't have to is that it's recursively extra work: I do extra work in a low-level class so it's user can do less - but wait! I'm the user of this class. And in the class in which I use the class I just worked hard on, I further have to do extra work for the benefit of the users of the second class. And so on - a hall of mirrors of extra work. Not to say that it's zero-sum, but the effect is more one of shifting the work downward in the hierarchy and I only get a net benefit if I reuse the most basic classes roughly at least 3 times. Not all classes are created for re- use; some are created just to divide up the code into smaller human-readable chunks, and that's where the extra work for the implementor of a class is more overhead than it saves.</comment>


I Used to Be a Human Being - <AUTHOR> http://nymag.com/selectall/2016/09/andrew-sullivan-technology-almost-killed-me.html?mid=twitter-share-selectall <comment><USER2> I'd be interested to hear everyone's strategies to combat this, as I assume many of us that work in the industry encounter similar problems of distraction and inundation.

First, I don't use any devices directly after waking up. I meditate for about 20 minutes upon waking and then try to read fiction for 40 minutes. So, all in, somewhere around an hour of no device distractions before starting my day.

Slack is one of the biggest interrupting factors while coding these days, more so than IRC ever was for me, so I try to have chunks of time during the day with it closed. This is something I've struggled with recently as co-workers always expect to be able to get in touch, but often I really need 30-60 minutes of uninterrupted focus for real tasks.

For personal things, I deleted Facebook and feel quite a bit better. I still scroll Instagram too much. I deleted the Twitter app from my phone and will only check it from time to time on the web. I try to turn on Do Not Disturb mode in the evenings, but it's hard when you have systems that potentially could go down and things could get escalated to you.

On top of that I try to take psychedelics a few times per year, not in any type of party settings, but with people that are close to me. Screens tend to turn up this feeling of disgust when I look at them in that state, so I automatically disengage with them. I find that for at least a short while after the trip my usage of distracting Internet things goes down a lot as well.

Interested to hear other strategies!

<comment><USER3> One thing that has helped me is a "digital purge." I do mine on New Years Day, and I go through every app and ruthlessly un-follow/unfriend anyone who doesn't isn't contributing positively to me in some way (sometimes deleting entire apps).

At the end of the day I'm offering these people direct access to me multiple times daily. If I don't get a positive outcome from these interactions, why keep them around?

<comment><USER4> That's something I do consistently but I've not really consciously thought it through. I just delete any apps or "unfriend" people that I determine to be a negative force in my life even in a small way. This one everyone should do even if they don't want to get into the digital 12 step program. I'm waiting to hit digital rock bottom before I quit.

</comment></comment></comment><comment><USER5> I read somewhere recently that smart phones have essentially become random gratification engines in the same way as slot machines. Sometimes on a slot machine you win the jackpot, because of this every pull gives you an endorphin kick, each time we pick up our phones or get a notification it might be an important/interesting thing, therefore we get a little endorphin kick that keeps us checking.

Because of this I turn off all notifications apart from phone calls and text messages. I don't have app badge counters or notifications for email either, if it is that important the person would ring me.

<comment><USER6> This is the daily reminder that technology is not politically or socially "neutral".

<comment><USER7> What was the origin of that quote? I mentioned it offhand in conversation the other day but couldn't remember where I'd heard it.

<comment><USER8> I'm familar with it from Jerry Mander, Neil Postman, and Joyce and Michael Heusemann, who address it specifically and at length in their book _Techno- Fix_. Also in Marshall McLuhan (of whom Postman was a student).

I think you'll find a philosophical basis in Jaques Ellul among others (Foucalt is also mentioned).

From Postman:

 _[E]very technology has an inherent bias. It has within its physical form a predisposition toward being used in certain ways and not others. Only those who know nothing of the history of technology believe that a technology is entirely neutral._

French philosopher Jacques Ellul, who...

 _...cautions that technology brings with it a great number of unforeseen effects [4]. This is because "technology leads a double life, one which conforms to the intentions of designers and interests of power and another which contradicts them—proceeding behind the backs of their architects to yield unintended consequences and unintended possibilities" [5]. It is difficult then for us to control what we cannot always see._

[http://www.helwyssocietyforum.com/?p=1360](http://www.helwyssocietyforum.com/?p=1360)

There's a related concept of Technological Determinism, originating with Thorstein Veblen:

[https://en.m.wikipedia.org/wiki/Technological_determinism](https://en.m.wikipedia.org/wiki/Technological_determinism)

More reading:

[http://www.worldcat.org/title/techno-fix-why-technology- wont...](http://www.worldcat.org/title/techno-fix-why-technology-wont-save-us- or-the-environment/oclc/709681580&referer=brief_results)

[http://www.worldcat.org/title/four-arguments-for-the- elimina...](http://www.worldcat.org/title/four-arguments-for-the-elimination- of-television/oclc/3240263&referer=brief_results)

[http://www.worldcat.org/title/technopoly-the-surrender-of- cu...](http://www.worldcat.org/title/technopoly-the-surrender-of-culture-to- technology/oclc/24694343&referer=brief_results)

[http://www.worldcat.org/title/this-is-marshall-mcluhan- the-m...](http://www.worldcat.org/title/this-is-marshall-mcluhan-the-medium- is-the-message/oclc/2998154&referer=brief_results)

</comment></comment></comment></comment><comment><USER9> The number one thing I've found to be effective in combatting this is sleep. I have to get 8 hours of uninterrupted, unmedicated sleep. 9 hours is even better. And I have to do it for a few nights in a row.

If I do anything at all that interferes with the quality of my sleep, I'm screwed, and The Stream will suck me in. Conversely, things that increase the quality of my sleep -- exercise, diet, not using gadgets after a certain hour -- all increase my ability to fight off Stream-induced distraction.

So that's my recommendation. YMMV.

<comment><USER10> Yes. Lack of sleep weakens my discipline and makes it easier to get sucked in and it's a vicious cycle after that.

</comment></comment><comment><USER11> To me, this reads like an alcoholic ranting about how everyone should stop drinking. Yes, technology can be addicting. That doesn't mean we're "helpless" or even that it's _bad_. I'm really sick of these hyperbolic luddites.

Personally, it's not at all a problem. I'm not a technophobe—I have an iPhone, use Facebook, etc.—but it's done nothing but positively improve my life. I can keep in touch with friends around the world and work remotely from anywhere, all thanks to the beauty of these "distracting" technologies.

However, even though my life is heavily entangled with technology I certainly don't feel "addicted" to it. I have no problem going out into the wilderness for a week and having 0 contact with the world. I certainly don't interrupt conversations to check my phone.

If technology is hurting your life, the problem could just as easily be with _you_ as it is with technology.

<comment><USER12> Respectfully disagree with your view.

Technology in and of itself is not bad. But when technology is run by _technology companies_ whose motive is profit, it can be bad.

I think what we're seeing is new externalities caused by technology. I think junk food + soda + obesity is a more apt analogy than alcoholism. It's easy to say "don't get addicted to junk food or soda" but you have to remember that these companies specifically formulate their products to hack your body and make you crave more. Then they bombard you with ads. All so they can sell you more.

In the same way, technology companies make more money the more you use their products. So they specifically architect their products to hack your brain so you will use it more. It's easy to _say_ "don't get addicted to Facebook" or "the problem is you" but, frankly, I don't think its that simple.

<comment><USER13> But with your junk food analogy, there are still alternatives and it's up to you to decide how you live your life.

<comment><USER12> Apologies if I'm using the wrong terms, but this comes off as a kind of myopic, libertarian view.

Do you have children? I have 4. A lot of this is easier to understand by watching them. Yes, I know it's my job to teach them how to make good choices. But why do devices suck them in so easily if I don't direct or enforce their behavior?

Of course there are alternatives to junk food. But am I completely, 100% in control of my decisions without any influence from external sources?

There is an entire industry whose sole purpose is to influence your decision making. People in this industry spend about half a trillion dollars a year globally. It's called "advertising" and it wouldn't keep growing if it didn't work.

<comment><USER14> > But why do devices suck them in so easily if I don't direct or enforce their > behavior?

Advertising had nothing to do with my addiction to gaming.

When I was a kid I played games nonstop on atari before I got an apple ][. Then I played games on that until I got a nintendo, then a PC clone, then a sega genesis, then PS2, and then at some point I had to cut myself off. Cold turkey. I would honestly play the dumbest simple game for hours and hours. I'd beat the same game over and over sometimes.

Young children don't understand moderation. They will eat a bag of cookies or play on a tablet for hours at a time without guidance.

You must direct them and always have an activity at the ready. Set an old school egg timer for say 60 minutes and when it goes off, go shut off the game, take away the tablet/phone, and suggest their next task. Don't wait for them to save the game or fall for the "I'm almost done with the level" nonsense.

<comment><USER15> > Young children don't understand moderation. They will eat a bag of cookies > or play on a tablet for hours at a time without guidance.

Yeah... this was/still is my problem. haha

<comment><USER16> so do I...

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> "I used to be a human being": I like this phrase. It captures, poetically, the existential despair of losing the conditions of humanity. Regardless of if the author's particular conditions necessitates the implicit drama, each of one us, I'm sure, have felt like we lost what made us "real" or "authentic" at some point or another.

<comment><USER18> People have complained about the loss of authenticity for much longer than the internet (much less social media) has been around.

It happens around any time of great change. We happen to be living through a period of some of the fastest changes in human history, so it's not surprising a lot of people are confused and feel like they've lost something.

<comment><USER19> > We happen to be living through a period of some of the fastest changes in > human history

Couldn't this have been said accurately at just about every point in human history? I'm not asking to try and refute what you said - I think that supports the first point you made. The world is always changing at an exponential rate and we are always on the curve, so people will continue to lament loss of the past until the end of time.

<comment><USER20> Not necessarily - before the industrial revolution the pace of change was very very very slow comparatively. In fact, our rate of change now is pretty slow and minor compared to the changes during the time that Victoria was the queen of England.

</comment></comment></comment></comment><comment><USER21> What I would say to this guy is this.

Your "virtual" life is also real. The news that you read, happen in real world. The people whom you talk to are real people. There's no "real life" and "non-real life". Everything that happens to you is "real life" by definition. That includes social networks etc.

The only thing that matters is whether it is a life that you're comfortable with, or not. And there is certainly a point that many people are not actually comfortable, but forced into comforming.

Being uncomfortable about it because it's "not real" is a fallacy, though.

</comment><comment><USER22> Did this really need a 7000+ word essay? If you don't like Facebook, don't use it. If you're concerned about "distraction overload" then remove things from your life you find distracting. Nobody is putting a gun to your head and forcing you to use smartphone apps and 10 different text messaging systems. If you want to live as a technology-free hermit, go right ahead. But don't try to argue that I should live like you.

The author instead seems to be taking his personal opinions about technology and trying to apply them to everyone. It's not enough that he doesn't like these things. We should not like them either and here's why. Time with my kid is invalid because I also have the TV on? GPS leads me to stop remembering things? Emojis are unsuitable replacements for voicemail? The author imagines restaurants where smartphones must be surrendered upon entering. Cool, you've described a place I'll actively avoid. Where's that "stop liking things I don't like" GIF when you need it?

"Our enslavement to dopamine?" \-- how about YOUR enslavement to dopamine? Leave me out of it.

<comment><USER23> Or, how about the writer has experienced something very personal which their editor thought would appeal to an audience as wide as that of NYMag? Perhaps, instead of just saying the writer is wrong, you could try and empathise with the position, see if you feel better after some time apart from the internet. Try and understand another perspective.

Writing is 1 to many, the author was most certainly not writing just for you. No need to be so incensed.

<comment><USER22> It's fine to say, "Hey, I don't like this--here's the personal story about how I had a huge problem with it." It goes off the rails when he starts calling it "our" [collective] problem. Sorry, I just think that's assuming an awful lot about one's audience.

<comment><USER24> I'm a recovering info addict (not the author) & here's what I mean when I describe it as our collective problem:

1\. We're living in the Information Age.

2\. Information can be addictive?! Holy shit!

3\. And we barely have a clue as to how to deal with people addicted to anything else, let alone addicted to that thing we're defining this entire age of humanity on?!

It doesn't have to be a problem you suffer from to see that information being addictive implies significant potential for collective harm.

</comment></comment></comment></comment><comment><USER25> > The interruptions often feel pleasant, of course, because they are usually > the work of your friends. Distractions arrive in your brain connected to > people you know (or think you know), which is the genius of social, peer-to- > peer media.

Silly as it will sound I'd never thought of it that way. Cunning , brilliant and cunning again.

<comment><USER26> A related thought: for any app, there's a question ~ "How do I get the user to open the app regularly? How do I turn checking the app into a habit?"

Messaging apps have a nice solution to this: they allow your friends to summon you to the app by sending you a message.

<comment><USER27> From a business point of view, that's an important goal. The more a user depends on your product, the more you stay in business. And the goal of a business is to survive indefinitely.

But from a human perspective, I'd argue it's completely unethical. As a business, your goal isn't merely to encourage potential customers to choose your brand over another. It's also to get them to buy it even if they don't want it. And it's to get them hooked so they come back and buy more.

Now, what if your product is vodka? Your job suddenly became to make as many high-functioning alcoholics out of customers as possible (high-functioning so that they can continue to buy).

This may be a stretch from a mobile game or social media platform, but not much. They both have negative effects with real impacts on the health and happiness and sometimes even safety of the consumers.

</comment></comment></comment><comment><USER28> I fixed my brain by cancelling my internet services. All I had was 1gb of cellphone data.

Never been happier.

Right now I am back with an internet subscription and I'm miserable. I am an internet addict and having internet at home is very bad for me. I strongly consider cancelling my internet suscription again.

<comment><USER29> I've had good success putting my laptop away and only using an inconveniently- located desktop when I want to do Computer Stuff. I can still go spend a lot of time on it (sometimes you need to, sometimes you actually _want_ to), but it's a conscious _choice_ to go do that. I can't just carry the cancer that is the Internet around the house with me, flip the lid open "just to check something" and surface two hours later having accomplished nothing.

</comment></comment><comment><USER30> I spent the weekend working on my Honda, replacing the timing belt, water pump, clutch cylinders. It's been a long time since I've come up for air, so to speak, and spending the entire weekend off the computer was immensely gratifying. I found more satisfaction in fixing my car than I have in anything for a long time. I found myself thinking that perhaps being on the internet constantly has caused me to lose some taste for life.

I'm taking a vacation soon, 9 days with no computer will be a much needed reset.

</comment><comment><USER31> What's clicked for me is:

[https://selfcontrolapp.com/](https://selfcontrolapp.com/)

It's an open source project either:

[https://github.com/SelfControlApp/selfcontrol/](https://github.com/SelfControlApp/selfcontrol/)

What I do is, essentially, the following: every day at around 0-1 am (before I go to sleep) I set a timer so that it would fire at 7-8 pm (that's when I would get home). This allows me to force myself from browsing unnecessary sites (facebook, twitter, HN, reddit etc.) that would otherwise distract me from doing meaningful work.

As for the other devices, not long ago I would have twitter, facebook, VK, and a few others social media apps on my iPhone. I deleted everything except twitter which I check rarely (<= 10m a day). Deleting the facebook app contributed greatly to my smartphone's battery life either.

<comment><USER32> Is it really bad if you aren't doing meaningful work at 8 pm after you get home from work?

</comment></comment><comment><USER33> Shameless plug: I created a Chrome extension which makes me wait 1 minute before proceeding to the one of distracting websites, helps me a lot. Maybe it will help you too: [https://chrome.google.com/webstore/detail/better-things- to-d...](https://chrome.google.com/webstore/detail/better-things-to- do/begggblpkegcnammjagcmplfnpopocla).

<comment><USER34> Thank you so much! This is great

</comment></comment><comment><USER35> I rather like the internet connected version of living.

<comment><USER36> How so?

<comment><USER35> Well at the everyday level you can keep in touch with your friends, catch Pokemon, access the world's information and the like.

More speculatively you have the points made by Louis C.K in the article, that "Underneath in your life there's that thing … that forever empty … that knowledge that it's all for nothing and you're alone …" "you just feel … kinda satisfied with your products. And then you die." As an engineering type I think a lot of that can be fixed by technology, that as computers equal and pass human brain capacities a lot of cool stuff will be possible maybe including fixing the alone and dying stuff and it's interesting to see things progress.

</comment></comment></comment><comment><USER37> Meditation, meditation, meditation. These devices/games/stimuli are training your brain, so it's up to you to actively combat that with your own training. That's how I view it - you are being programmed one way or another, either by outside forces or by your own doing.

</comment><comment><USER38> I swim. Often. No phone. No internet for 2 solid hours.

After that my mind is clear. And I do not want to reach for a smartphone.

One great feature on this phone is the ultra energy saving feature. Basically turning it into a black and white display reminiscent of a Nokia 3310.

Notifications are turned down for everything.

My life is better. Walking the dog and looking at the scenery is feeling good.

I like to have my life back from the social internet blackhole.

</comment><comment><USER3> The problem is that these technologies are increasingly necessary to function within normal society. Do we somehow regulate the allowable behaviors of apps? Is it on us to improve our self control so we can act as engaged, but distant participants?

There's also the ethical question around people not being aware of their obsessions/addictions (especially in the mobile gaming space)

</comment><comment><USER39> One suggestion for people who ask if there is a better way than cutting yourself off from social networks:

Try to practice "memory walk meditation" \- I made up the word to combine two things I have learnt about, essentially to combat distraction. (And I have been generally successful - but I also don't need it a whole lot)

Next time you read a book, or just anything you feel would be good to remember - take the key points and associate them with objects in the room that you spend the most time in, or where you usually sit/stand when you interact on the social network. If you are completely unfamiliar with the field of memory training, I recommend picking up some old copy of any book written by Harry Lorayne to learn how people usually commit things to memory when doing memory training. (For example, creating outrageous and vivid images is key to retrieval. Learning the major system will help memorize arbitrary numbers)

The actual memory walk meditation consists of traversing those objects first physically, then eventually mentally in a certain order - as you approach the object, use the image to retrieve the concept/idea associated with it. Hopefully you can identify at least 10 or so objects in your room.

After a while, it becomes a bit (too) easy. Read another book, do it for something else you wish to learn.

The point is, it is easier to move away from a bad habit like too much FB by building something else that you look forward to than using denial.

A very nice advantage of this technique is that you can decide, for example, that you will at least go around the room (mentally) once before logging in to the social network, and increase it to two, three etc. So you can slowly build up your resistance, so to speak. A second advantage is that since the objects are usually right in front of your eyes, it gives you triggers all over the environment to help you build the habit.

</comment><comment><USER40> I'm considering writing a plugin which, much like an ad-blocker, removes click bait links. There would be various black lists one could use. Any feedback on implementation appreciated.

<comment><USER8> My thinking is leaning toward a few concepts:

* Quantified content utilisation. I've been looking at measures of just how much content people can engage with in a day, and it's much smaller than you might think. Stephen Wolfram and Walt Mossberg both hit about 150 - 300 emails. The NY Times comment moderation crew tackle about 800 comments each per day. That latter means 36 seconds per comment, assuming an 8-hour day. At some point, your brain simply becomes full. I suspect a much smaller number of detailed items, and a small number (10-30) medium, and perhaps 100 or so trivial items, is about the sane limit.

* A quality metric for content, based on some finite, depletable, periodically renewed resource. "Time" might be one such metric (you've only got 86,400 seconds today, but you'll have more tomorrow!). I have a 5-6 point ranking of content, from '0' (actually makes you stupid for having read it) to 5/6 (defines a field, 6 == extends it). Most news articles fall in the 1-2 range, a good news article perhaps 3, a _solid_ technical paper a 3-4. Key is to _not_ assign everything a top-of-the-scale range.

* Assignment of reputations to sources based on those ratings. Both authors and publishers.

Increasingly, I'm simply adding clickbait sites to my firewall's blocklist.

[https://ello.co/dredmorbius/post/wgtaltzorrurzat3wf- lwa](https://ello.co/dredmorbius/post/wgtaltzorrurzat3wf-lwa)

Iwould very much prrefer to have that capacity on my tablet itself (Google and Samsung say I cannot, fuck 'em, fuck 'em hard), or in some brwoser-like tool (really a next-gen browser).

[https://ello.co/dredmorbius/post/ubkidr7yuc7azg9hdnl7lq](https://ello.co/dredmorbius/post/ubkidr7yuc7azg9hdnl7lq)

</comment></comment><comment><USER41> reminds me of the poem "The World is Too Much With Us", by William Wadsworth:

>The world is too much with us; late and soon,

Getting and spending, we lay waste our powers;—

Little we see in Nature that is ours;

We have given our hearts away, a sordid boon!

This Sea that bares her bosom to the moon;

The winds that will be howling at all hours,

And are up-gathered now like sleeping flowers;

For this, for everything, we are out of tune;

It moves us not. Great God! I'd rather be

A Pagan suckled in a creed outworn;

So might I, standing on this pleasant lea,

Have glimpses that would make me less forlorn;

Have sight of Proteus rising from the sea;

Or hear old Triton blow his wreathèd horn.

<comment><USER42> I believe this is William Wordsworth.

<comment><USER41> Whoops. Edited to correct.

</comment></comment></comment><comment><USER43> Just wait until machine learning gets really good at providing information that's of value that you "must have" to get through the day.

<comment><USER44> This service does a rather good job of summarising individual articles:

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

<comment><USER45> I'm not sure nxzero (and I) think that is a good thing.

<comment><USER44> I got the impression that nxzero thought it was a good thing. Filtering out the signal from the noise.

<comment><USER46> There are two value judgements in there: that there is a such thing as "must have" information that could be provided by such technology, and that a technology's ability to provide that information means it's getting "good."

</comment></comment></comment></comment></comment><comment><USER40> The best thing I found to combat this is make distraction difficult. To that end, the best two things I did was write an FF plugin to hide FB's news feed and removed the News feed from my iPhone. Now I actually have to type a URL if I want distraction, which becomes something of a deterrent.

</comment><comment><USER4> I see his point and used to read his blog. But could he have been just as effective online while scheduling in a real life? That is, he could have achieved as much or more with some measure of balance. Easier said than done.

I'm not saying I have a life but I'm hoping to get one real soon now.

<comment><USER47> > But could he have been just as effective online while scheduling in a real > life? That is, he could have achieved as much or more with some measure of > balance.

I'd like to believe it's _possible_ , but I think he had to accept the fact that, he didn't know how. Maybe he'll figure it out, now that he has some more free time?

</comment></comment><comment><USER48> Gossip + Random Rewards = Addiction

</comment><comment><USER49> This article could have been called "here's all the thoughts I have after watching anime for the first time"

</comment><comment><USER50> > _I couldn't check my email or refresh my Instagram_

> _... trying to describe what I was feeling. The two words "extreme > suffering" won the naming contest in my head..._

<comment><USER47> The "extreme suffering" was in relation to his emotional crisis, not because he was unable to use his phone.

<comment><USER51> Hyperbole makes a point weaker, not stronger.

<comment><USER24> And judging someone's self-described suffering as hyperbole misses the point altogether.</comment></comment></comment></comment>


Russia says satellite launch failure due to programming error - <AUTHOR> https://www.reuters.com/article/us-space-launch-russia-mistake/russia-says-satellite-launch-failure-due-to-programming-error-idUSKBN1EL1G2 <comment><USER2> > The rocket carrying the satellites had been programmed with the wrong > coordinates, he said, saying it had been given bearings for take-off from a > different cosmodrome

More a failure in communication than a programming error. Also a failure in testing and reviewing procedures.

<comment><USER3> Yes. Unfortunately, the distinction eludes many, and most critically the Journalists reporting such information.

</comment></comment><comment><USER4> Since the article neglected to say how it failed, or how it affected the other satellites, it looks like the rocket never quite reached orbit.

<comment><USER5> The rocket carrying the satellites had been programmed with the wrong coordinates, he said, saying it had been given bearings for take-off from a different cosmodrome - Baikonur - which Moscow leases from Kazakhstan.

<comment><USER4> That's the cause, not the effect.

Such a mistake could have ended with the rocket in the wrong orbit.

The article is ambiguous.

<comment><USER6> You should read it as: "some programmer was fired instead of management", just a message to cover their asses.</comment></comment></comment></comment>


Hamiltonian for the Zeros of the Riemann Zeta Function - <AUTHOR> http://journals.aps.org/prl/pdf/10.1103/PhysRevLett.118.130201 <comment><USER2> > If the analysis presented here can be made rigorous to show that ˆH is > manifestly self-adjoint, then this implies that the Riemann hypothesis holds > true.

At least the date is not April 1st, but it's far too specialised to know whether this is significant or not.</comment>


Ask HN: Did your sideproject generate revenue thanks to HN? - <AUTHOR> <comment><USER2> Well yes. I just need to delete this comment. What should I do?

<comment><USER3> That doesn't the answer the question at all.</comment></comment>


Uber drivers face long hours, no benefits and sometimes danger - <AUTHOR> https://www.cnbc.com/2019/06/01/how-much-do-uber-drivers-really-make-three-drivers-share-the-math.html <comment><USER2> Uber is a scam, fleecing drivers and investors alike. While Uber creams off billions.</comment>


Flux Architecture Visual Cheatsheet - <AUTHOR> http://danmaz74.me/2015/07/27/flux-architecture-visual-cheatsheet/ <comment><USER2> This is a really great visual!

In my experience, the toughest thing to grasp about Flux was how to handle async server actions. It's something that a lot of tutorials (including, unfortunately, this graphic) handwaves, but it's one of the first things you need to nail down if you want to do anything exciting in an SPA.

The todos usually make it seem like you have to to have this flow of information:

ActionCreator -> ApiUtil -> ActionCreator -> Store

...but if you use the same action creator, you end up with a circular dependency. So you actually have to create a separate file of ServerActionCreators, that are only called with ApiUtils:

ViewActionCreator -> ApiUtil -> ServerActionCreator -> Store

This seems like a lot of boilerplate. At my job, we've simplified this a lot by using Reflux, which has async actions that run one Store callback when a call gets initiated, and another related one when it gets completed. But it's not ideal.

Personally, I'd rather see a bigger app than a TodoMVC implementation with a "correct" example of async server actions.

<comment><USER3> There is some amount of boilerplate with rolling your own, but I think people might benefit from rolling their own flux implementation when they first try to play with react. The best solution I think for this is to have multiple dispatches in your actions.

Create action -> action[dispatch 'action pending' -> async action -> dispatch 'action complete with data'] -> stores.

Keep your stores completely sync, and the data in a single object, and maybe have them all be pure functions, and suddenly there is no web of anything and theres a single source of truth, and bam. nice.

</comment></comment><comment><USER4> This flow chart explain things that are hard to grasp in words.

Dan Roam's Back of a Napkin is a good guide to thinking and communicating in this visual way. You can get quite a long way with the freebies on his site, but it's worth shelling out for the whole book.

[http://www.danroam.com/the-back-of-the-napkin/](http://www.danroam.com/the- back-of-the-napkin/)

When I studied the diagram, I found myself running through an imaginary scenario in my head. The Overview text makes it hard to do this. If you don't create a diagram and want to explain a process clearly, don't explain the components -- follow an example action through the process, and your readers will grasp it much better.

</comment><comment><USER5> I used React+Flux for a level editor for a game recently. It seemed to me like there was one or two too many levels of indirection.

Specifically, I'm not sure what problem the Dispatcher is actually solving. It seems to just add boilerplate and indirection for little benefit.

<comment><USER6> The most popular library to implement Flux, reflux, actually does away with the dispatcher. But during my research I read many posts showing that having the dispatcher is actually a good idea; just off the top of my head: it makes debugging easier, and it allows you to enforce the "waitFor" mechanism to coordinate the update order of the different stores.

I even think it could also be used for one more goal.

With standard Flux, if an action updates multiple stores, and a ModelController is dependent on those multiple stores, that ModelController will get rendered (to the virtual DOM) multiple times, which is inefficient.

If instead the stores notified the dispatcher that they were updated, and then it was the dispatcher to dispatch all the "change" events to the ViewControllers only once (ie: if a ViewController is dependent on two different stores, and they were both "changed", it would still only get one "change" event) this would make those situations much more efficient.

</comment></comment><comment><USER7> The problem here is the horizontal arrow between two stores. This leads to a web of connections, the usual spaghetti of data binding. There should either be a "store of stores" or another element that would direct the data flow so that it is unidirectional.

If anyone knows about a flux implementation that solves this - I'd love to hear about it!

<comment><USER8> redux composes stores into one, and discourages the "web of connections": [https://github.com/gaearon/redux](https://github.com/gaearon/redux)

It is rather immature, but we are using it in production without a problem, and the API is stable as of the 1.0 RC.

<comment><USER9> We're also using redux in production, after having switched from reflux. In redux, it's so much more clear where to put stuff.

In reflux, it was never clear to us whether certain async server operations should be handled in stores or in the actions. In general, you would always want them to be with your actions. Though every time you need a store variable to do the server call, you end up putting code in the store again (or passing the needed state through your react components, which is even uglier).

Not so in redux, where you have access to the stores in your actions. This way, stores get really dumb, which is the way they should be IMO.

And, btw, replacing reflux by redux is relatively easy and straightforward, as the same general concepts (flux) apply.

I also find the redux code easier to read, as the whole library is doing less (while achieving the same).

</comment></comment></comment><comment><USER10> If you're wondering about which flux implementation to start with, I'd highly recommend checking out Redux : [https://github.com/gaearon/redux](https://github.com/gaearon/redux)

The main idea is to think of stores as reducers (redux = reducers + flux). He also gave a very good talk on it at react-europe: [https://www.youtube.com/watch?v=xsSnOQynTHs](https://www.youtube.com/watch?v=xsSnOQynTHs)

<comment><USER11> Where is a good place for an experienced JS dev to start learning about Flux/React without having prior exposure to either of them?

Any video/article recommendations?

I usually wait ~1yr before trying out any new JS library/framework and wait to see if they stick around - given the constant hype machine that generates them.

</comment></comment><comment><USER12> This is great! We dove into React and Flux a few months ago and it took way too long to come to the realization that this flowchart puts together.

One of the big things I think a lot of React/Flux tutorials miss out on are the "Smart and Dumb" components. This was the missing "view controller" that I am used to with MVC and the flowchart illustrates it nicely.

<comment><USER13> I totally missed the concept of having _high-level_ Controller-Views when I first started playing around with React. Just understanding the concept is only half the battle too; you have to have the self-control to keep lower- level components immutable using props and pass in the 'state' via the higher- level controller-views. Has anyone had experience with Flex and the Cairngorm Framework (from back in the day)? I find Flux borrows heavily from its design.

</comment></comment><comment><USER14> The little "Tweet/etc this" box is so awesome, it actually half covers the first letter of each line and follows you down the whole page! How user friendly.

</comment><comment><USER15> Somebody knows if the proposed library in the article, Alt, with ReactJs makes a full solution (like AngularJs for instance)?

<comment><USER6> I'm not an expert about AngularJS and we're still studying/experimenting with Alt, but AFAIK the combination is comparable, except maybe for the AJAX communication with the server - if Angular also manages that (which I don't know): with Alt you need to manage the server calls yourself, preferably by creating some API helper functions and calling them from inside the Actions.

EDIT: clarification

<comment><USER15> Thanks for your answer.

Angular have a specific service ($http) for that.

<comment><USER6> You're welcome.

By the way, when I did my research, I found out that some people are using React with Meteor, instead of Flux. That way, server synchronization should become a non-issue (but you need to like the Meteor way).

</comment></comment></comment></comment><comment><USER6> OP here, if you have any questions/comments feel free to ask

<comment><USER16> What you did looks great, I just wish there was a way to download this. Maybe I missed it but I couldn't find a way to save a local copy.

<comment><USER6> Glad you like it; I just added to the post a link to an exported PNG file - it's uglier but I understand it can be useful. There you go: [http://danmaz74.me/wp-content/uploads/2015/07/flux- architect...](http://danmaz74.me/wp-content/uploads/2015/07/flux-architecture- visual-cheatsheet-full.png)

PS just wished mural.ly allowed to export a PDF instead of a PNG

<comment><USER16> Yes I hoping there was a way to save it as a PDF. This will still be useful however. Thank you.

I was just concerned about going back to the link in a couple months and finding a dead url.

</comment></comment></comment></comment><comment><USER17> This is a really great intro. I like how it expands on the basic flux diagram that I see everywhere.

One thing missing from many flux tutorials and sample applications that I would love to see included is error handling. How do you manage errors in your flux applications? Do you keep them in the store? If using something like react-router, how do you ensure you flush errors from the store as your routes change and they are no longer applicable to the data in view?

</comment><comment><USER18> Holy fuck that javascript completely breaks me actually seeing that image, can you just link straight to the .png?

Thanks.

<comment><USER6> You mean you can't see the "mural" on mural.ly? Because that's the original, the PNG is only a low-res screenshot... I can export a high-res screenshot if it would work better for you, but in general the mural is much better for zooming.

<comment><USER19> I could see the image on mural.ly, but it got stuck on a certain zoom level (I'm using my android). Thanks for posting the high resolution png.

</comment></comment></comment><comment><USER20> This is actually all you really need to know about flux:

[https://twitter.com/substack/status/621818725159710720](https://twitter.com/substack/status/621818725159710720)

[https://twitter.com/substack/status/621832733564628992](https://twitter.com/substack/status/621832733564628992)

[https://twitter.com/substack/status/621639688919515136](https://twitter.com/substack/status/621639688919515136)

That first tweet succinctly explains flux in less than 140 characters.

At the end of the day, pretty much every react "best practice" I've seen converges on approaches that raynos/mercury offer out-of-the-box.

React's decision to allow local state inside components was an "original sin" and every single engineers that decides to author a library to make React/Flux simpler is really just engineering around the poor decision of allowing local state.

Have of those should, might, could update if they felt like it react class props are unnecessary complexity that had to be bolted on to overcome issues with local state.

Here's a better approach:

(1) components that are pure functions that take in state that they should render. state hasn't changed? don't call the function

(2) components that have state that needs to be tracked can export a function that produces an instance of the state that component consumes

(3) compose the state of the UI, by calling the state instantiating function of all the components in your UI. Nest as appropriate.

(4) Make sure all these state instances are bijective lenses that keep one source of truth for a certain state value. Everywhere that state is needed or could be modified receives that "cursor" via dependency injection. The simplest example demonstrating a state cursor is the raynos/observ library.

The composed state object is the waist of your app hourglass, just like IP is the waist of the Internet. All I/O modifies state and that state propagates from there. Anything rendered to the screen is the O in I/O. Any events coming from your mouse or other peripheral is the I in I/O. Any syncing via XHR or websockets can be the I and the O in I/O. All I/O flows to the state.

Anything that needs to react to changes in that state have two options: subscribe to state change events (push) or read the current state as necessary (pull).

This really isn't all that hard and React/Flux has overcomplicated things immensely and given it a flashy name. The myriad libraries that purport to make it easier and simpler are just overcompensating for something that fundamentally needs to be re-engineered, but won't because it breaks backwards compatibility and requires people to move state logic (read: business logic) out of the component classes (that probably shouldn't have been there in the first place).

<comment><USER21> I mostly agree, but I don't think you're entirely correct about component local state.

I do flux and I keep everything in stores or some variation, and my components take everything as props, so they're usually pure functions. However, for my base (i.e. heavily reusable) components, I use local state to track ephemeral component state. One such example, if I'm doing an animation when someone clicks on an input, such as a material design textfield.

<comment><USER20> That too is solvable by eliminating local state and has an advantage of making animation time travel debugging possible.

So in my comment above I mentioned having a component export two functions. One function is a pure render function and one function creates a state instance. The state of the animation would be one of the things tracked in the state instance:

        var Observable = require('observ');
        var svg = require('virtual-dom/virtual-hyperscript/svg');

        module.exports = state;
        module.exports = render;

        function state(initialPosition) {
            return new Observable(initialPosition || [0,0]);
        }

        function render(positionState) {
            var center = positionState();
            return svg('circle', {
                'fill': 'rgba(255, 0, 0, 0.1)',
                'stroke': 'black',
                'stroke-width': '2',
                'cx': center[0],
                'cy': center[1],
                'r': 10
            });
        }

The parent component would export its state in the same way. Its own state would be composed by calling the state() function of its own subcomponents. Turtles all the way down.

At the top of the app, the saved state would be injected into the state of the top level component, which would decompose it into parts and inject it into the state functions of its subcomponents such as the one above.

This single composed state object tree makes it trivial to record diffs in state for playback or to serialize and save the state to localStorage or the network.

It's trivial to work with the approach above. As trivial as the local state approach of react. It's extremely consistent about where state lives. It doesn't sometimes live in a global place and sometimes live in some other place. Another developer joining the project doesn't have to hunt around for where state for a particular value is being maintained. It also makes it simple to do far more complex things with animation, like build a complex animation editing application where an animation might be controlled by knobs, buttons, sliders, dials, etc. With local state you'd have to wire up those controls directly to the internal state of a component, completely messing up separation of concerns. With the composed state object, you just write one function that maps the state of two sliders (x&y) to the state of the circle and have it listen to change events on the slider position. It's trivial to wire things up in both directions by having them listen to each other.

Time travel (undo/redo) is also trivial to implement: [https://github.com/Raynos/mercury/blob/master/time- travel.js](https://github.com/Raynos/mercury/blob/master/time-travel.js) 67 LOC with generous whitespace.

You could wire up the time-travel state to a slider as well to accomplish something like this: [https://www.youtube.com/watch?v=ri614C_Buwg](https://www.youtube.com/watch?v=ri614C_Buwg)

For the viewing state over time features in the froggato level editor you simply take the series of state over time, use it to instantiate state() multiple times and render them all in the same frame.

Show one circle:

        scene -> circleRender(circleStateAtTimePosition(now));

Show one circle over time:

        scene -> circleRender(circleStateAtTimePosition(now - 2));
              -> circleRender(circleStateAtTimePosition(now - 1));
              -> circleRender(circleStateAtTimePosition(now));
              -> circleRender(circleStateAtTimePosition(now + 1));
              -> circleRender(circleStateAtTimePosition(now + 2));

Local state simply makes everything much harder to reason about as you move beyond all but the most trivial apps.

Lastly, for long running ephemeral state animations, you gain the ability to "cancel" the animation. Imagine you have a "card" animating out from the right to show a panel, but you click on something else that would close that panel and open another one. It's much simpler to cancel that animation midway, close the first card and animate out the second card. The alternative is to add a bunch of methods to the card class to handle the cancellation logic. If you need that cancellation logic in other components you need a mixin, but it's all brittle because its tied to the key names on this.props as opposed to being able to make a animation controlling function used in an animation coordinator that merely needs to receive cursors (i.e. nothing is hard coded to key names)

You might say "but I have no reason to track ephemeral state in that way" and you would be correct, you don't need to. But there are no disadvantages of doing so relative to local state. Furthermore you gain predictability about where state lives and the ability to not worry about refactoring if one day decide that you want to now control a particular piece of ephemeral state.

</comment></comment></comment><comment><USER22> I'm upvoting this because I find reactjs a good development tool and would like to see more of those articles. That said, the article only explain a simple case that is not a real world scenario. Others have commented on this issue in the comments.

</comment><comment><USER23> This is out-dated from my perspective. Check Redux [https://www.youtube.com/watch?v=xsSnOQynTHs](https://www.youtube.com/watch?v=xsSnOQynTHs) [https://github.com/gaearon/redux/tree/rewrite-docs- again](https://github.com/gaearon/redux/tree/rewrite-docs-again)

Many Flux implementation lucks of isomorphic, proper hot-reloading, etc. ES6 transition is on its way. Most code will be abandoned. Alt, Reflux, etc are all in trouble.

</comment><comment><AUTHOR> Yes please facebook team, update the Todo tutorial.

</comment><comment><USER24> Great! thanks

</comment><comment><USER25> React is a good view layer, but React doesn't help me architecture a web application. React creates an impedance mismatch between how it is supposed to work(unidirectional data-flow + immutable collections) and how javascript actually works(everything's mutable). If Flux actually solved something the right way, we wouldn't need 10 different implementations (reflux,redux,alt,......). React is extremely smart but clearly not a lot of thoughts has been put into that flux thing.</comment>


Show HN: Better Unit Testing for .NET - <AUTHOR> https://github.com/benjamin-bader/ExpectBetter

<comment><AUTHOR> After writing unit tests using Jasmine and great-expectations, I've never wanted to go back to NUnit assertions. Instead, I built my own version for .NET languages.

<comment><USER2> Looks interesting, but can you give an example using MS Tests/NUnit that's much simpler/clearer with ExpectBetter?

<comment><AUTHOR> Thanks! I don't have any publishable code samples handy, but will add them soon. Off the top of my head, it could be clearer to say `Expect.The(graph).Not.ToHaveCycles()` than it would be to implement using basic assertions.

I'll put something together to illustrate - thanks for the feedback.</comment></comment></comment>


'Collapse of Civilisation Is the Most Likely Outcome': Top Climate Scientists - <AUTHOR> https://www.resilience.org/stories/2020-06-08/collapse-of-civilisation-is-the-most-likely-outcome-top-climate-scientists/ <comment><USER2> I feel so helpless about this, I try to limit my own impact on the environment (not flying, not owning a car) but I know that it's basically useless to solve this bottom up.

The problem is that the people who are most able to actually tackle this problem earn their money by causing it, and will be the least affected personally. The fact that Bezos would rather spend all his money on rockets instead of mitigating the climate catastrophe is super depressing.

<comment><USER3> Every time a doom thread like this comes up, and I read a comment from someone who has taken the initiative to limit their own damage, I think back to Idiocracy and the beginning montage of that film with the educated, professional couple. I can't help but feel sorry for the couple because in the end, they are the ones who tried the hardest to "make things right" and have suffered the most. Now I'm reading this comment and I'm wondering - what is the lesson here, really?

<comment><USER2> I don't know man, just kinda depression posting from my tiny room. I want to do something about it, because I haven't lost all hope yet, but I don't see a clear way how I personally could have any real impact.

I wish I had enough cash to quit my job for a while and figure where I could make a difference, but I'm kinda barely hanging on as it is.

It just bums me out that so much time and effort in the tech-sphere is spent on improving the efficiency of our destruction of the planet, and that the people who got rich of this destruction seem very content sitting on their pile of cash.

</comment></comment></comment><comment><USER4> Note that this is _not_ the consensus view among climate scientists. The IPCC has never embraced the notion of civilization-ending runaway effects. And even the pessimistic among climate economists (who rely on IPCC projections about the effects of climate change) have predicated impacts somewhere along the lines of 10-15% of global GDP: [https://www.abc.net.au/news/2020-02-06/are- economists-unders...](https://www.abc.net.au/news/2020-02-06/are-economists- understating-or-overstating-climate-change-cost/11929098).

<comment><USER5> I've followed the IPCC and knew some scientists. From what I gathered the IPCC seemed to be toning down their scenarios to make them politically palatable. Just an impression.

> the pessimistic among climate economists have predicated impacts somewhere > along the lines of 10-15% of global GDP

Economists decided to disregard externalities. I've zero faith in official economics. And newspapers try not to scare people, that's where they make their money from.

Added: the climate scientists I knew were borderline panicking 15 years ago at least.

<comment><USER6> Economists people who believe in infinite growth in finite world.

They made up Nobel in Economics to pretend to be scientists.

They might start wearing mystical robes and give themselves funny titles. Since they are as useful at guessing how economy works and how to steer as other 'officials' who wear mystical robes and have funny titles. Both are also always 100% they are right about everything.

Sorry about ranting, reading about climate change always puts me in depressing mood.

<comment><USER4> The economics of climate change aren't about prognostication. The climate scientists produce projections about impacts on, e.g. agriculture. Economists simply estimate what the economic impacts would be if those impacts in those economic sectors happened.

<comment><USER5> Many economists and politicians were deaf to the phrase 'tipping point'. Again, they chose not to hear it.

<comment><USER4> The tipping point analysis is encapsulated into the IPCC projections the economists are relying on. If by "tipping point" you mean "runaway" effects-- IPCC scientists have not embraced such effects as likely.

</comment></comment></comment></comment></comment></comment><comment><USER7> My God what a bleak read. It summarises everything that I fear: that our "height of civilisation" is an uncharacteristic blip (coincidentally solving the Fermi Paradox, but I digress), that various thresholds have already been crossed, that the nonlinear dynamics of the system will push inevitably towards a new attractor ("Hothouse Earth", in this lexicon), and that we've societally collectively blundered into this outcome and that we lacked the collective willpower to inflict upon all of ourselves an absolutely unfathomable setback.

<comment><USER5> Blunder implies not seeing. We chose not to see.

</comment></comment><comment><USER8> Been hearing this for 40 years now. Will we be reading this in another 40 years? Call me a skeptic, get angry at me, but I'll believe it when I see it.

<comment><USER9> The coronavirus was the trial run for climate change.

If you thought in February that it wasn't a big deal, if you listened to folks who said "the cases will go to zero soon", well, perhaps you should check your epistemology and listen to folks who know what they are talking about.

<comment><USER10> What is bothering me now, is that the coronavirus response provides damning evidence against our ability to act on climate change, but it is also stealing our time to act.

<comment><USER11> I think it's maybe slowing it down. The more we lockdown, the less emissions we're using. It's kind of a win/win...except for the economic fallout.

<comment><USER12> Reducing air pollution actually accellerates external input leading to global warming. Also, pollution is back higher than before in China "after" Corona. Latest development is rising infection rates in countries opening up. There's a balancing act how much we "open up", vs what measures have most impact. The last part should be solvable.

</comment></comment></comment></comment></comment><comment><USER13> The upside is now I can finally buy that hummer I have been eyeing. Gas prices at historic lows, it wil be even more of a bargain!

Incredible word-salad here:

 _" "Given the momentum in both the Earth and human systems, and the growing difference between the 'reaction time' needed to steer humanity towards a more sustainable future, and the 'intervention time' left to avert a range of catastrophes in both the physical climate system (e.g., melting of Arctic sea ice) and the biosphere (e.g., loss of the Great Barrier Reef), we are already deep into the trajectory towards collapse," said Steffen."_

Momentum in human systems? Reaction time? Trajectory of collapse? This is what gives science a bad name. Scientists were against masks because of "lack of evidence". Result: 10s of thousands are dead who could have survived. No consequences for said scientists who simply forgot that absence of evidence is not evidence of absences. Now other scientists want to flip lack of evidence on its head and spin up grotesque scenarios that require wholesale planetary changes, sacrifices, death and economic destruction not to mention inter- governmental coordination. Scientism at its finest.

Climate change when it happens and devastates us will owe more to this _activist_ catastrophic doom-mongering and condescension than human apathy or inaction. If climate scientists really care about the environment, they need to come down from their high horse and talk to people respectfully as scientists instead of as activists [1]. Do science not activism and don't exceed your brief.

[1] [https://mindmatters.ai/2020/06/twenty-years-on-aliens- still-...](https://mindmatters.ai/2020/06/twenty-years-on-aliens-still-cause- global-warming/)

</comment><comment><USER14> Coronavirus has taught us two clear lessons: nothing will be done until the effects are clearly visible, and the measures will be removed as soon as the effects subside. If civilization was driving a car it wouldn't hit the breaks until it heard its front bumper getting crushed.

</comment><comment><USER15> Searching terms like "neoliberal" is a great way to vet articles like these. I don't care about your "scientific" opinion if you're more interested in generating this type of political discussion.

</comment><comment><USER16> So if we could develop a global carbon tax which 100% of the funds goes into atmospheric carbon capture and over a 10 year timeframe bring our Co2 levels back to 1900 levels what then? Still too late?

<comment><USER17> We can't even get people to believe that global warming is happening. We've had multiple tax cuts in the USA since 2000. We have an elected president that doesn't believe it global warming, we have an electorate that is more concerned about stupid meaningless crap rather than real policy and change. Policy ideas are not the problem. There is insufficient political will on the part of voters. WE are the problem.

It's not just the USA, but we are the second largest polluter, and the largest economy in the world, and the worst polluters per capita. If people who vote don't demand this, or hold massive protests to bring the economy to a screeching halt then no policy change will happen.

</comment></comment><comment><USER18> I really wish this article included the argument behind the claim that "+4°C world would support < 1 billion people". I can understand why it'd be a very _different_ world, and why there might be a lot of struggles on the way, but the idea that it'll be literally impossible to grow enough food doesn't make much sense to me. Why couldn't we support the same number as today by planting slightly more heat-tolerant crops?

<comment><USER19> I certainly can't justify the actual number, but we have very little in the way of drought tolerant crops. Most plants that produce a lot of calories - from potato to avocado - require plenty of fresh water. If there is suddenly a shortage of water for irrigation, and of natural rainfall, most crops will fail. I am talking about crops failing in Europe, the areas that are already arid are totally fucked.

There are two possible remedies: cultivation of new drought resistant breeds, and glasshouses.

Cultivation of neew breeds takes decated, even with GMOs. To date we have never demonstrated adding drought resistance to a staple crop to the extent that it would survive significant droughts. Could it be done if suddenly unlimited funding became avaliable? Who knows.

Regarding glasshouses, they are technically capable of supplying food with massively reduced water usage, because evaporation can be cobtrolled. Per unit area, a glasshouse can be >10x as productive as a field.

The challange is that they are massive and take a long time to build because of scale required. There is also a massive difference how advanced and effective a glasshouse might be. Your average glasshoe in a backyard isn't gonna cut the mustard. However, netherlands is the world's second largest exporter of fruit & veg and they are a tiny country, this is all due to glasshouses.

Currently only a miniscule amount of your caleries come from greenhouses. We are talking about a decade-ish to cover enough agricultural land to make a difference.

<comment><USER20> > If there is suddenly a shortage of water for irrigation, and of natural > rainfall, most crops will fail.

Are climate change scenarios predicting less rainfall on average? It seems that the total volume of precipitation is going to _increase_ , not decrease.

[https://www.theguardian.com/environment/2011/dec/15/climate-...](https://www.theguardian.com/environment/2011/dec/15/climate- change-rainfall)

<comment><USER19> That's a good point, and that's an area I don't understand. It's important to look at length of dry spells, which will kill crops, rather than just average precipitation.

<comment><USER20> Anyway, it seems that for the time being the world is getting greener:

[https://www.thezip.org/wp- content/uploads/2019/07/20190722_1...](https://www.thezip.org/wp- content/uploads/2019/07/20190722_115825.jpg)

Article: [https://www.forbes.com/sites/trevornace/2019/02/28/nasa- says...](https://www.forbes.com/sites/trevornace/2019/02/28/nasa-says-earth- is-greener-today-than-20-years-ago-thanks-to-china-india/)

Some of it might be due to human intervention (India is mentioned in this sense) but much else obviously isn't: most of Siberia, Europe (especially souther Europe, Italy and Greece), Turkey, China _and_ South & North Korea _and_ Japan[1], the central US and Canada, and even Australia.

[1] I stress these because the article claims the greening follows country borders and therefore it's due to active human intervention: in fact from the map it's clear that it doesn't, the whole pacific coast of Asia seems to be extremely greening.

</comment></comment></comment></comment></comment><comment><USER21> I saw this [https://voiceofaction.org/collapse-of-civilisation-is-the- mo...](https://voiceofaction.org/collapse-of-civilisation-is-the-most-likely- outcome-top-climate-scientists/) in HN a few days ago but cannot seem to find it anymore; looks dupe and the other link in HN already had a discussion.

</comment><comment><USER11> Couldn't we, basically build a mega structure to block out the sun, and put us in a near ice-age to build up ice stores? We maybe have 5 years of horrible winters and ice, but then after we have enough ice we can leave the shade down for a bit.

<comment><USER17> we don't even spend money to maintain our infrastructure, and we're running a massive deficit, and the current leadership in the US has been removing regulation connected to environmental protection. How the hell are we going to get the largest governments of the world or this country to build a mega structure to block out the sun?

<comment><USER22> To make a .1mm (1/32") aluminium foil that shadows all the Earth, the cost is approximately 84 trillion dollars [https://www.wolframalpha.com/input/?i=pi+*+%28%28earth+radiu...](https://www.wolframalpha.com/input/?i=pi+*+%28%28earth+radius%29%5E2%29+*+0.1mm+*+%28density+aluminium%29+*+%28price+aluminium%29+in+dollars) and that does not include the material to provide some structural support for the thin surface.

And it doesn't include shipping and handling that is at least 10000 more if you put it at a geostationary orbit [1].

(And later remember to consider some maintenance cost, fuel for orbit adjustment...)

If you want to cover only a 1% of the surface, just divide that by 100, that is about 8400 trillions dollars.

[1] It's a big structure, so the calculation is more complicated than the calculation with a small satellite. Ask a rocket scientific before launching.

</comment></comment></comment><comment><USER23> I just accept that there's no fix, we're killing the planet, and we have maybe a few generations left before we go extinct.

The universe doesn't care.

<comment><USER22> Extinction is outside the prediction of most (all?) serious models. A big reduction of population and perhaps nasty living conditions are possible, anyway.

<comment><USER23> For climate change, perhaps. But as with COVID-19, the most serious threats to our species will come with little to no warning.

It's kind of miraculous that we've survived this long.

</comment></comment></comment><comment><USER24> According to Mauna Loa, CO2 was 417 ppm in May, 2.4ppm higher than peak of 2019. The rise has occurred irrespective of the global economy shutdown. Air travel grounded. Factories closed and huge numbers of cars off the road.

Keeling at the Scripps Institute has said "People may be surprised to hear that the response to the coronavirus outbreak hasn't done more to influence CO2 levels,". Seems that any reduction in CO2 levels is pretty much impossible to distinguish from natural variability. So what's next? A permanent shutdown?

</comment><comment><USER25> Climate science models are as inaccurate as corona virus models and for the same reasons.

</comment><comment><USER26> My views on this are unlikely to make anyone happy. They do not make _me_ happy. I am in the very grim Club of Rome, "the 29th Day," group. Very pessimistic. I think the ship probably sailed by about 1950. We staved off Malthus here and there, but to do it indefinitely requires geometric advancements not just in agriculture but in literally every field in the supply chain, such as energy and mining, even physical space.

It's all about tradeoffs. The largest tradeoff is "population as a function of lifestyle." You can support a lot more miserable people in lousy conditions receiving poor medical care than you can one person living well. It's about resources expended per person. Even after you get hyper-efficient, it's still about resources expended per person. There's no escaping that reckoning ... you can delay it with marginal improvements to efficiency here and there, but once you've squeezed those out, it's "how well do you want this person to live?"

While you can _briefly_ support a large populace, you might not be able to sustainably, over generations, _carry_ that population. This is the "carrying capacity." Put bluntly, you can have a lot of goats on an island munching away faster than the vegetation regrows, but their populace will not collapse until the vegetation is gone. And I believe that our carrying capacity for "living like Americans" is far under a billion.

In 1950, our populace was about 2.5 billion, but "living like an American" was a lower bar. Now we're approaching eight billion, quickly, and the USA (as well as much of the first world) has been quite busy exporting lifestyle aspirations via Hollywood or their respective film industries. Even if we could snap our fingers and cause a zero population growth rate, more and more of that populace will have growing aspirations.

My guess is that around 1950, civilization could have adopted some kind of one world government with some very drastic control over reproduction and allocation over resources. By 1990, that control would have been that much more draconian. By 2030, the kind of control required to drop the world to that carrying capacity would be unconscionable by almost any ethical standard other that "have a functioning civilization still in 2150." It's a kind of grim Orwellian dystopia with no chocolate rations to lie about, and no spare capacity for war, one in which a human's viability would be solely decided by their ability to produce calories and resources in excess of what they have already consumed, wherein people would have only cots, sleeping in shifts, rather than a bed of their own. Submarine living. If your only talent is UX design, you had best hope that you can bend it to overhauling the control interface for some kind of harvester, wherein the panel will be staffed by someone who does not know how to read in a now-common hurricane downpour. If you are selected to reproduce, it will be only on the basis of genetic fitness to produce small individuals who probably don't need a lot of calories, in addition to being very healthy -- that almost goes without saying. And there will be no "inner party" having a grand time -- we simply wouldn't be able to sustain it.

In short, we had a pretty good time, but we did it for so long that now we're on lifeboat ethics that are completely at odds with the kind of liberties that we're used to and revolted over in the past. China's one child per couple will look like a pipe dream. Think "the Mona Lisa burned to heat this evening's soup" levels of subsistence after vast swaths of the populace were quietly euthanized. _That_ might be our "soft landing." In the 1950s, we might have avoided gigadeaths. The hard landing looks like your basic Road Warrior cosplay, with some desperate nukes thrown around, a few biological agents escaping, and so forth on top of freshwater scarcity and so on.

At this point, I can only consider myself fortunate to be too old to have to witness it. I haven't reproduced and I have been ringing this particular bell since the day I apprehended our situation, but like most bad news, nobody wants to hear it, and especially if it goes against our basic instincts and philosophies.

If we do not control our populace, Nature will do it for us, and we are aware of Nature's methods. We have been for centuries. We willfully elected not to look at the difficult problem and have done so for generations. Let the good times roll, until we hit the brick wall. Then the Horsemen will ride.

<comment><USER27> Would it be sustainable if we all go on a pilgrimage to the

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

edit: Of course i'd prefer to ride in on

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

(because reasons, amongst them [https://duckduckgo.com/?t=ffsb&q=Denver+Airport+Murals&iax=i...](https://duckduckgo.com/?t=ffsb&q=Denver+Airport+Murals&iax=images&ia=images) )

</comment></comment><comment><USER28> And it's all your fault, middle class America!

<comment><USER29> Not at all what the article says. No mention of anyone at fault even.

<comment><USER19> i think the author is being sarcastic.

<comment><USER29> Low grade troll rather</comment></comment></comment></comment>


Google now giving priority to fast ads - <AUTHOR> http://adwords.blogspot.com/2008/06/landing-page-load-time-now-affects.html <comment><USER2> This is a strong case for using distinct landing pages for your AdWords campaigns. I've never been opposed to that -- it's good strategy -- but I don't like feeling obligated to do so from a competitive standpoint.

SEO firms are loving this.

</comment><comment><USER3> So who's building a howfastdoesmypageload.com around the world application?

<comment><USER4> <http://developer.yahoo.com/yslow/>

</comment></comment><comment><USER5> If you're in a competitive industry, I'm not sure how much effect this will have. The Quality Score only effects your minimum bid settings. For example, most of my minimum bids are $0.05 and I'm bidding $1.50 a click. Even if my load times are a bit slower than my competitors, I can't imagine they will send my minimum bids to $1.00. Even if they send them to $0.25, I don't think it will have much impact (hopefully).

</comment><comment><USER6> Wow. So unless you've got the cash and know-how to build a sleek page that's cached and all that junk...adsense is going to be a low earner for you?

<comment><USER2> This is about AdWords and effects those who advertise on search results pages and in the content network.

You're thinking of AdSense, which is a different animal.</comment></comment>


5/3nm Wars Begin - <AUTHOR> https://semiengineering.com/5-3nm-wars-begin/ <comment><USER2> The article states:

>"Originally, the node name was tied to the transistor gate length dimensions."

then further down:

>"CPP, a key transistor metric, measures the distance between a source and drain contact."

I have mistakenly thought that node designations were based on distance between source and drain. Could someone say why gate length dimensions are the more significant measurement? The distance between source and drain somehow feels more intuitive to me. But maybe because this is easier to visualize?

<comment><USER3> "Gate length" referred to the width of the sandwiched semiconductor band with different doping, (i.e. the "N" part of a PNP CMOS transistor). Traditionally (which is to say, so long ago that it doesn't really matter) these were the finest features present in the mask set and were a good metric for fab sophistication.

That CPP metric is measuring how close together the contact vias for the two halves of the transistor can be. It's a much bigger number, but still probably just as good as a proxy for transistor density.

<comment><USER4> > "Gate length" referred to the width of the sandwiched semiconductor band > with different doping, (i.e. the "N" part of a PNP CMOS transistor).

Something doesn't feel quite right.

</comment></comment></comment><comment><USER5> Is this just further marketing malpractice or will there actually be 5 or 3nm features?

<comment><USER6> > Today, the node names are little more than marketing terms. 'The node > designation is becoming more misleading and meaningless," said Samuel Wang, > an analyst at Gartner. "For example, at 5nm or 3nm, there is no single > geometry that is actually 5nm or 3nm."

<comment><USER7> So what is 5nm or 3nm?

<comment><USER8> The process marketed as 5nm has roughly twice the density as the process marketed as 7nm and so on up and down the line; that's how they justify it.

<comment><USER9> How can they double the density without decreasing the feature size?

<comment><USER8> The feature side usually does decrease every generation; it's just that the feature size for, say, a "7nm" process is not exactly 7nm.

<comment><USER10> The power of recursive reasoning. Induction tells us that Intel's 10nm process probably wasn't 10nm features...

</comment></comment></comment></comment></comment></comment></comment><comment><AUTHOR> Is Moore's Law still alive?

<comment><USER11> To quote Intel CEO Robert Swan (on CNBC); the Moore's law is going to come back live in the 5/3nm Fab capabilities. Intel is at 11nm, aiming for 7nm. Whereas Texas Instruments is going for 5nm. Per Robert, they had lot of learnings from 11nm to 7nm but expect the move to 5/3nm much faster.

<comment><USER12> But realistically it can't go on much longer, right? The diameter of a silicon atom is like 0.21 nanometers, so we're almost within an order of magnitude from rock bottom, right? I don't actually know anything about this stuff so I could be hopelessly confused, but that's my impression.

<comment><USER13> Past that, it is various forms of chiplets, 3-d stacking, high bandwidth memory to intensify densification at some cost.

In the wings there are a few semiconductor materials, from Si-Ge to In-P and Ga-A and Ga-N that are used in optical transceivers, cell phone base stations, power electronics, and military electronics. Silicon is a good, not great superconductor, and it dominates because we are good at making things out of Silicon.

An In-P microprocessor as complex as a 6502 should be able to clock upwards of 80 GHz and could run with a fully populated address space of static RAM on the chip and be able to react to fast events in real time like nothing else.

Such a chip would replace 16 5GHz cores for more mainstream computation, so if cost gaps narrowed, the In-P part might compete with a Si part in a complex chiplet architecture. (e.g. the In-P chip can be built at 1/16 the density of the Si chip and not have all this multiple-patterning and lasers trouble that Si is getting into)

<comment><USER14> Hmm ... I wrote my Ph.D. thesis on low temperature grown III-V material (GaAs to be precise) and studied InGaAs, and other variations.

GaAs would make for awesome switching systems, as it is a direct bandgap semiconductor, as opposed to Silicon, which requires phonon mediation. While this is a tremendous technological advantage, you have that minor problem of fabrication.

For GaAs, you need ~5 atmospheres of As gas at 550C. Not something anyone wants in their backyard, for good reason.

For InP, you need to worry about your supply of rare earth (In) elements, and all the surrounding tech needed to grow ingots of an appropriate orientation material for InP. You have to worry about the role of defects (which is what I simulated), how to dope, how to build structures.

Its not simply that it is technologically better, its that there is a whole massive ecosystem around Silicon, that for better or worse, pretty much guarantees that we are going to be running silicon based units for a long ... long time.

The joke, and there was one when I was in grad school, about GaAs and other non-Si materials was, they are the materials of the future. And always will be.

<comment><USER15> How do industries typically break out of that kind of path dependence?

<comment><USER16> First, it's not really a path dependency. Silicon is easier to work with than gallium arsenide, not just because we have more practice. We have more practice because it's easier.

How do we break out? By gallium arsenide offering enough more than silicon does to be worth the effort. So far, that hasn't happened. It may never, except for small niches.

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> I don't think the 7nm one is complete yet.

<comment><USER18> I'm not entirely convinced that intel with their 10nm (equivalent to TSMC 7nm) will be able to catch up in time to the transition to Intel 7nm,TSMC 5nm unless that process is shortlived. The first 7nm processor, the iPhone XS's A12 was shipped back in fall of 2018 but intel has yet to ship a widely released 10nm so far.

The next process could flip for Intel or TSMC as each process has it's own problems, but for now I would put TSMC much further ahead of Intel in the Intel 10nm/TSMC 7nm battle.

<comment><USER19> >but intel has yet to ship a widely released 10nm so far.

This is not correct. 10nm Ice Lake laptops have been in stores for a quarter or more now. For example: [https://www.costco.com/hp-14%22-laptop---10th-gen- intel-core...](https://www.costco.com/hp-14%22-laptop---10th-gen-intel- core-i7-1065g7---1080p.product.100511530.html)

<comment><USER20> But where's Comet Lake? The fact that there aren't any 10nm non-mobile Intel Core CPUs makes me think Intel's having production issues.

</comment></comment></comment></comment><comment><USER21> I was looking for the type of device that the chips will be used for, but couldn't find any mention.

Sadly laptops are always behind in the manufacturing queue when it comes to knew technology.

I'm excited that Zen 2 is coming out on 7nm, but at the same time my mobile phone is already good enough in energy efficiency, and I don't expect real practical speed increase for the 5nm version.

<comment><USER22> Smaller transistors use less power, it's not always about increasing speed. Your smartphone, if it's anything like mine, would be better if it had a longer running time between charges.

Having said that, the very first users will be high end servers. It's no accident that IBM were the first to demonstrate 5nm wafers a few years ago[1], because they'll use them in their top of the line POWER chips. Those chips have incredible single thread performance, but also incredible prices (and apparently very low yields). If you're the sort of person who wonders who would pay money for that, then you're not the target customer :-) (Disclosure: I now work indirectly for IBM)

[1] [https://www.ibm.com/blogs/think/2017/06/5-nanometer- transist...](https://www.ibm.com/blogs/think/2017/06/5-nanometer-transistors/)

<comment><USER23> > Smaller transistors use less power.

Don't the smaller transistors also have higher leakage? I thought that below 10nm scaling down further would not give power benefits.

<comment><USER24> It's called Dennard Scaling [0] and it ran out about 15 years ago

[0] [https://en.wikipedia.org/wiki/Dennard_scaling](https://en.wikipedia.org/wiki/Dennard_scaling)

<comment><USER25> Having constant power density with continuous performance improvements broke down.

But we're not yet at the point where power density increases as fast as transistor density.</comment></comment></comment></comment></comment>