How do I learn to think better? (2019) - <AUTHOR> https://www.quora.com/How-do-I-learn-to-think-better/answer/Alan-Kay-11?share=1 <comment><USER2> Perhaps the greatest document addressing this question is Plato's "Sophist." Therein, Plato demonstrates that the ability to reason well amounts to knowing which of the most general classes of things go together. He compares this ability to musical ability, or knowing which notes harmonize with each other. The imposter can only repeat specific combinations, lacking as he does knowledge of the underlying structure.

> Then he who is able to do this has a clear perception of one form or idea > extending entirely through many individuals each of which lies apart, and of > many forms differing from one another but included in one greater form, and > again of one form evolved by the union of many wholes, and of many forms > entirely apart and separate. This is the knowledge and ability to > distinguish by classes how individual things can or cannot be associated > with one another. [Sophist, 253d]

<comment><USER3> This. Perhaps i'm biased, since i'm supposed to graduate from philosophy department this year, but i do think that reading ancient philosophy (Plato & Aristotle are the most representative example of what was going on there) is the best way to think better -- and get in touch with origins of European culture.

My recommendations, apart from "Sophist" (which is a difficult, very technical dialogue regarding problems with platos theory of ideas) would be "Nicomachean Ethics" (Joe Sachs' translation), "Philebus", "Phaedrus", and of course "The Republic", Platos' magnum opus.

<comment><USER4> > "Sophist" (which is a difficult, very technical dialogue regarding problems > with platos theory of ideas)

For the general lay reader, is there a more accessible equivalent you can recommend?

<comment><USER3> I would start with Philebus. It is considered a pretty late dialogue, so problems with theory of ideals are considered (and musical metaphors play a prominent role). Also, its topic is worthy; Socrates & Protarchus discuss a role that pleasure and reason play in furhishing a good life.

<comment><USER4> Thanks for the recommendation - I'll have a look for it.

</comment></comment></comment></comment></comment><comment><USER5> Strange to mention the differences between perceptions and reality without mentioning the philosphers that explored it. Leaving a notion of confusing concepts without a way to explore it is not particularly productive.

Philosophy is a way to ask better questions.

Thinking better implies you can think correctly and defining that is half the battle.

</comment><comment><USER6> Writing a short one here cause almost time to leave office hehe

I am a software engineer and I use DDD (Domain Driven Development) Before becoming a software engineer I read books on Philosophy. The thinking methods are very important.

Well I really out of time here Maybe I will write more later :P

<comment><USER7> Which ones would you recommend? Plato/Socrates, Kant, Foucault, de Tocqueville?

<comment><USER8> I had the same question and came across a book called "Sophie's World" which tells the story of philosophy in human history, starting with Socrates and coming all the way to modern times. [https://en.wikipedia.org/wiki/Sophie%27s_World](https://en.wikipedia.org/wiki/Sophie%27s_World)

I'm currently about half way through, i think the book is geared towards a younger audience but i'm finding it really enjoyable.

Once you have a high level view of the highlights of philosophy, you can answer for yourself which philosophers to deep dive on.

</comment></comment></comment><comment><USER9> There is a course "The Philosopher's toolkit - how to be the most rational person in any room" at TheGreatCourses.com by Philosophy Professor Patrick Grim.

The first lecture is about about this very topic. How we think and how to think better.

I've ~~listened to some audio lectures once~~ taken the course and since then I am thinking a lot better.

No seriously He teaches a lot of tricks and techniques. FOr insstance: Ironclad, airtight validity. Thought experiments. Statistics. Really applying all this takes some effort of course

</comment><comment><USER10> Underlying the process of thinking is a flow of sensory data that comes into contact with memory. There is a matching process taking place. Laughter is an example of a mismatch between sensory input and memory. The mismatch triggers jerks in the motor control system. The matching process goes on for a while, giving rise to what has been described by Kahneman as fast thinking and slow thinking. A lot of the brain is incoming somatic sensory signals and outgoing motor control signals. Thinking with words and symbols is a tiny part of the brain's receptive and expressive ability. A baby pulls itself to stand and experiences an exhilarating thrill as the balance organs and muscle circuits fire away to hold her body upright. That is why opera singers stand up to sing, that is why the bailiff in a court says "All Rise". And we haven't even begun to do thinking in the academic sense.

<comment><USER10> I'll add this. I work with severely disabled kids as a classroom aide. I keep getting the impression that the difference in their thinking and mine is quite small. I am geting to be 73 years old and the medical fact is I am probably losing brain cells. But the illusion that I can think remains pretty complete. I see an increasing time delay in the process of summoning detail from old memories. I can also see an increasing fragility in the old memories.W With warmth, I can tell the student I work with "I'm getting a little slower now too.

</comment></comment><comment><USER11> I read half the post before I realised who wrote it. Don't really want to spoiler it, but it was interesting to explore my biases.

</comment><comment><USER12> Play chess.

It helps you think strategy before execution. It also helps you keep focussed on the bigger picture.

In the last 2 years, I have gone from being ranked 800ish points to now 1200 on chess.com and it has definitely developed my thinking.

<comment><USER13> There was research in brain training apps. The conclusion of the study was that they simply made you better at them, rather than generalizing to other tasks. How is that different to Chess?

<comment><USER8> of course training and only training to be good at a game won't lead to wisdom/insights, but anything can be generalized to other tasks if you take the time to reflect on it.

I think Chess is ripe with lessons that apply to common, real life scenarios. Off the top of my head:

\- early/mid/end game; you apply a different strategy based on the stage of the game you are in, relates to software product lifecycles.

\- tempo; when your moves don't just profit, but set you up with momentum to continue making more good moves.

\- zugzwang; being in a position where any move you make results in a loss.

\- The value of your position can exceed the value of your material based on context.

\- You can still play a game where you're down to a draw.

The list goes on :)

<comment><USER14> Seems like starcraft would be an even better game to play then, considering that it has all of this, but also forces you to think in realtime.

Come to think of it, the information asymmetry in starcraft that is lacking in chess would teach you a lot more lessons as well.

</comment></comment></comment></comment><comment><USER15> I took Dr. Barbara Oakley's Mooc, "Learning How to Learn" a while back. It's truly an interesting class, and I'd like to think it gave me some good tips.

<comment><USER16> Like what?</comment></comment>


Tens of thousands of Chromebooks fail because of Symantec BlueCoat problem - <AUTHOR> http://www.zdnet.com/article/tens-of-thousands-of-chromebooks-fail-because-of-symantec-bluecoat-problem/ <comment><USER2> > So, was it Google's fault? Not so fast.

I feel like I'm tripping over every sentence in this article. It doesn't flow well.</comment>


Microsoft and Oracle link up their clouds - <AUTHOR> https://techcrunch.com/2019/06/05/microsoft-and-oracle-link-up-their-clouds/ <comment> n-exploit Days after the announcement of antitrust suit against Facebook, existing champions within the technology sector jump into the arena with a groundbreaking alliance.

Unprecedented industry collaboration or an overlooked antitrust risk?

What could come out of a partnership between the largest enterprise software company and the largest consumer software company?

<comment><USER2> Nitpick: at this point, Microsoft is also an enterprise software (and services) company. What software are they making _for_ consumers? Windows exists as the client to lure enterprises into Azure; Office is a subscription that only makes back its development costs from volume subscriptions.

(You could say the operating system of the Xbox—but they're not _selling_ that. It's a free complement to a consumer _hardware_ play, just like any of Apple's OSes are.)

<comment><USER3> This! Windows got split up internally under Nadella into Azure and Office groups.

If anything, a lot of this means they're also boosting Azure even more by doing the same thing with their enterprise database areas. This is a boon for any organizations stuck in Oracle data land that haven't gotten heavily into cloud yet or are unsure about jumping to Azure.

Now moving to Azure doesn't just mean sticking with the SQL Server landscape, and possibly also means you can get some analytical and data replication stuff tied into Azure Data Factory, CosmoDB, etc. a little more cleanly.

Amazon has a tool to migrate or duplicate from Oracle to RDS, but with Azure you can just be cloud native! (Not sure it will work that well, but could be a selling point).

</comment></comment></comment><comment><USER4> Only in US East region. Oracle knows their main target is DC government

</comment><comment><USER5> TBH, I wish there were more/better published information on where different clouds intersected for higher throughput and/or lower latency.

It could be very useful for planning on systems that run across multiple cloud providers.

For example, If I could run compute nodes on DO, but leverage another cloud's SaaS offering, etc.

</comment><comment><USER3> TIL: Oracle has a cloud service.

<comment><USER6> Fun story about Oracle's cloud service:

A few years ago, Oracle was trying to push their cloud compute services hard, so they were offering hefty lump-sum bonuses to their sales people for selling it. As I recall it was something like $6000 extra for selling any cloud subscription, regardless of size. My fiance worked as a regional sales rep, and gamed this for three or four quarters by getting a succession of cousins and other relatives to sign up their small businesses for the minimum paid subscription, about $300, right before the end of the quarter, and then canceling it once the bonus checks cleared.

I should probably feel bad about that, but Oracle was a soulless, destructive place to work, and they didn't pay her well enough anyway, not to mention playing all kinds of games to try to claw back commissions from salespeople on their legitimate deals. It's very much an example of what happens when you put out a snake bounty.

<comment><USER7> Funny that Oracle would not notice this from either an accounting or ethics perspective.

</comment></comment></comment><comment><USER6> Ah, that's why VSTS was down this morning, the Oracle infected it... /s</comment>


Why VCs Aren't More Brave - <AUTHOR> http://mattmaroon.com/?p=354 <comment><USER2> This is dead on about the copyright infringement.

<comment><USER3> Saying VC's _love_ startups that infringe copyright is a bit too crass, maybe even dense. They're shooting themselves in the foot with that kind of argument. I think it makes more sense to say VCs value social media startups a lot more; it would just happen that social media has more cases of reproducing protected media than anything.

</comment></comment><comment><USER4> In the words of pg himself "Never attribute to malice what can be explained by math" ( <http://www.paulgraham.com/ideas.html> )

</comment><comment><USER5> And the solution is simple, remove the annual fees, and/or require that the GP invest their own money into the fund.

<comment><USER4> Fat chance of that! Not until those funds are driven to death by successful, innovative funds that provide better returns because of better incentives. Even then, there's so much capital out there that the old style funds would still exist.

<comment><USER5> If there's one thing I learned it's that to drive people to better results you need to align their interests with yours as perfectly as possible.

And I find it astonishing that there is an entire industry whose interests are so far removed from that of their clients. This kind of inefficiency just screams for a disruptive player.

</comment></comment></comment><comment><USER6> One thing i know is that Matt writes pretty damn well, and he also does a bit of Google search to prepare his posts.</comment>


Ask HN: What are the first steps to report, take online content down and sue? - <AUTHOR>

I'm considered to be a good developer in Brazil and I'm very active in the local Startup scene. I'm now being harassed by fake facebook/google accounts trying to defame me and my girlfriend. I want to get the content down and sue for every damage he's been doing.
Long story short:
This year I made an MVP for a Israeli/Brazilian guy without getting paid (plus having actually paid other developers to help me as well). Later I realized I was not the only victim (the guy is a serial con man in the startup scene, with several fake investment news all around the web), so I exposed the fraud on facebook, mentioning every person he has tricked before. From that moment on, he couldn't fool anyone anymore. He swore revenge.
Now, "Someone" has discovered my girlfriend is a former porn star and has made a video with mixed content (old porn video + pictures of us) and spread all over the startup scene (mostly facebook groups and directly to many company emails). This attack has made my life a living hell yesterday, with over 14K views and actually having me hospitalized.
I can already point he's most likely the author (as dozens of other startup scene people here in Brazil can say this as well) with many indirect proofs, I just don't have the IP proof coming from Facebook/Google. Also, he is in California now, so I don't even know if I should start looking at any USA (FBI or what?) forms.
I've asked Facebook to take down the fake profile (and lots of friends helped report too), but it's still up. Same thing with the blogspot account holding the pictures and video. The fake gmail account used to spread the video via email (and the Dropbox account used for this) is still active, too.
HN, what should I do??? Where should I start?
ps: this story is pretty real and you can check me out and contact me at roberto.cr <comment><USER2> First of all, this situation sucks because this person is not just defaming you, but dragging a loved one into his shitty antics. I really feel sorry for you guys! I think the best thing to do is write a short blog post explaining why someone would find shady things about you and your girlfriend. Don't expose too many details, just a short neutral story like you've written here. When people ask you questions directly about your alleged pasts, refer to this blog post. For the rest of it, ignore the badmouthing. It will diminish fast enough once you don't give this person a reason to continue.

Continue to be awesome, not only is this a much quicker way to rebuild your reputation (although I think you're exaggerating how much people care about these kind of things), it's also much, much more rewarding.

Remember: Karma's a bitch. These people will get what they deserve in the end.

<comment><AUTHOR> Thanks for the answer. I think I might write the neutral blog post and redirect people to it instead of explaining every time, thanks for the tip. It's not me in the video, but the editing makes it look like it is. I didn't really do anything wrong... if anything, I only try to help people, even if via misunderstood ways.

My friends are all saying this is nothing (both personally and professionally), but I know people do care about this, especially older / conservative people. If people get to know me, they understand I am very good professionally and also as a person.

I'm doing my best to focus on working, as I always do.

</comment></comment><comment><USER3> It's true what they say about fighting with pigs. You both get dirty but they like it.

If you know your legal boundaries well, you could expose this person further. (I notice you haven't mentioned their name etc.)

<comment><AUTHOR> Thanks for the answer. Your advice is wise and people have been telling me the same: not to fight any further. The problem is the fake accounts are still active, despite all reports. The attacks continue (I've just received another email).

I've exposed the person before (when I warned people about his scams) and people in the Brazilian Startup scene know about this con man, I just don't think it's legally right for me to accuse him here without formal proof (IP address from Google, Facebook, Dropbox, etc), but pretty much everyone know who he is.</comment></comment>


The best anagram finder in the world - <AUTHOR> https://anagrams.io/ <comment><USER2> I like to use _an_ in terminal for all of my anagram needs [https://packages.debian.org/stretch/games/an](https://packages.debian.org/stretch/games/an) \- I tried this site and the UI is nice but didn't work as well as using _an_ locally - probably because I have a lot of dictionaries.</comment>


Ask HN: Can my GPL webapp be a paid iPhone app? - <AUTHOR>

I have created a webapp which I'm wondering if would be possible to turn into a paid app on the iPhone app store?
My web app is an open source multiplayer strategy game for the web. The app is released under the GNU General Public License.
I would like to turn this app into a web app for the iPhone, available here: http://www.apple.com/webapps/
However, the guidelines for the app store states the following:
- "You must either own all rights to your submission and the content displayed in or through the submission or have written authorization from the owner(s) thereof."
- "Your submission (and the content displayed in or through your submission) must not violate or infringe the intellectual property rights (including trademark rights) of others."
So do you think an open source civ-clone violates any of these terms?
My web app can be found on http://www.freeciv.net/ <comment><USER2> 1: I am not sure you understand what the App store is. The page you reference is not the App store; it is just a page where apple promotes URLs of web applications.

2: You probably are the best to judge whether your clone complies with those requirements. Who wrote the code? Who created the graphics?

3: Finally, there is the issue whether cloning an existing application infringes on somebody's rights. On the one hand the right holders probably are aware of the existence of freeciv, and haven't acted against it yet. On the other hand, you are saying you want to charge for using it. That may mve you over a limit the right holders have set.

</comment><comment><USER3> I am not a license expert- but I am pretty sure if you can only release your app as GPL (either it requires a GPL component you did not write or you are unwilling to release it non-GPL) then you can not make it an iPhone app (Apple seems to be hostile to this). In principle there is nothing wrong with charging for GPL apps, so if it wasn't for Apple's license issues you would be fine. However, if you wrote the app yourself (or somehow own it) then there is nothing in the GPL preventing you from releasing a non-GPL version on the iPhone app store (dual licensing).

<comment><AUTHOR> Ok. The code has to be GPL licensed, because the webapp is based on an existing GPL codebase.

Do you have any other suggestions for a business model? Alternatives to the iPhone app store? Should I try the Android Market?

<comment><USER3> Actually now I wondering. It looks like GPLv3 is not compatible with the iPhone (the anti-Tivo clause: [http://www.fsf.org/blogs/community/why-free- software-and-app...](http://www.fsf.org/blogs/community/why-free-software-and- apples-iphone-dont-mix) ) but I am less clear if GPLv2 is incompatible (or if people just hope it is, see: [http://www.geoffeg.org/wordpress/2009/10/07/the- iphone-and-t...](http://www.geoffeg.org/wordpress/2009/10/07/the-iphone-and- the-gpl-v2-are-not-incompatible/) ). So you may want to look a bit deeper into the license of the library you are using (LGPL, GPLv2, GPLv3 ...).

</comment></comment></comment><comment><AUTHOR> The web application in question can be tested here: <http://www.freeciv.net/></comment>


Making space power pay  - <AUTHOR> http://cosmiclog.msnbc.msn.com/archive/2009/09/18/2075033.aspx

<comment><USER2> Drat you, space power! I will make you PAAAAAAAAAAY!!</comment>


How To Use Authority To Persuade People To Do Something - <AUTHOR> http://davidshawblog.com/2013/05/30/part-four-6-principles-of-persuasion-authority/

<comment><USER2> I like the concept of taking on the role of a teacher to give the impression of authority.

</comment><comment><AUTHOR> I am happy to discuss this post if anyone has any points to raise!</comment>


Ex-NSA hacker builds AI tool to hunt hate groups' symbols online - <AUTHOR> https://nakedsecurity.sophos.com/2018/01/08/ex-nsa-hacker-builds-ai-tool-to-hunt-hate-groups-symbols-online/ <comment><USER2> > Right now, It's a proof of concept; a concept which obviously is very > controversial (which tells me I'm doing something right.)

This is so obviously arrogant. How could one defend reasoning that if people find certain action controversial, it's in any way right? A controversial action just means that there's something about it that causes different opinions - it might as well be very wrong.

</comment><comment><USER3> Glad she made this tool public so there can be a discussion about its capabilities, which won't go away.

How long before someone replaces "black sun" with "black lives matter"?

</comment><comment><USER4> As always with such technologies that are prone to abuse, I want to know what's the false positive rate?

</comment><comment><USER5> No mention of left-wing hate groups.

<comment><USER6> No terrorist attacks committed by left-wing groups either.

<comment><USER7> That's not remotely true.

[https://research-repository.st- andrews.ac.uk/handle/10023/37...](https://research-repository.st- andrews.ac.uk/handle/10023/3720)

[http://www.spiegel.de/international/germany/the-return-of- th...](http://www.spiegel.de/international/germany/the-return-of-the-radicals- crisis-fuels-rise-in-left-wing-extremist-violence-a-695415.html)

[http://edition.cnn.com/2017/06/14/opinions/leftist- terrorism...](http://edition.cnn.com/2017/06/14/opinions/leftist-terrorism- bergen-sterman-opinion/index.html)

[https://www.thenation.com/article/remembering-left-wing- terr...](https://www.thenation.com/article/remembering-left-wing- terrorism-1970s/)

Of course this also depends how you define left vs right wing. "Nazi" was short for "National Socialist" after all but they are frequently (re?)defined as right wing.

So I'm not sure why gadders was downvoted beyond the ambient bias on Hacker News. There is "hate" on all sides of the political spectrum. She only appears to care about very specific groups, though. No surprise it's controversial.

<comment><USER8> > Of course this also depends how you define left vs right wing. "Nazi" was > short for "National Socialist" after all but they are frequently > (re?)defined as right wing

Using "socialist" in your name doesn't mean that you have any left-wing-ness in your substantive policy, or even your public platform.

<comment><USER9> "We are socialists, we are enemies of today's capitalistic economic system for the exploitation of the economically weak, with its unfair salaries, with its unseemly evaluation of a human being according to wealth and property instead of responsibility and performance, and we are all determined to destroy this system under all conditions."

\-- Adolf Hitler

Questions?</comment></comment></comment></comment></comment>


Is The Indiegogo Outpost Their First Move To Equity Funding? - <AUTHOR> http://crowddistrict.com/indiegogo-outpost-equity-crowdfunding/

<comment><USER2> Great article. This is going to be a huge breakthrough for Crowdfunding.</comment>


Ask HN: Is TDD or BDD used in AAA gaming industry? - <AUTHOR> TDD, BDD, or any other form or development driven by tests first are very popular approaches in web development or even non-web developments.
I'm curious to know if these approaches are also considered a MUST for AAA game development.
Is there anyone that has worked with these approaches while developing games or know any big AAA game company that uses test first approaches as something required during the development? <comment><USER3> In my experience, no, they don't write tests first, and in fact AAA game companies write almost no automated tests at all.

Instead, AAA teams have large staffs of cheap manual testers--high school and college kids who think they're getting paid to play video games. The managers in charge of these QA teams work their manual testers to the bone, encouraging them to work late and do unpaid overtime. These testers inevitably burn out, and but there's always a new batch of kids coming in to replace them.

When manual QA is that cheap, it turns the economics of automated testing on its head. Why maintain an automated regression suite when you have humans who will do the testing for you?

There's a similar effect on the dev side. A lot of inexperienced developers are willing to take a significant pay cut to work at a AAA game company, just for the dream of working on a AAA game. The devs, too, are notoriously managed as an expendable human resource. "You'd better keep working overtime, or I'll just replace you with another kid who'll work harder than you for less money."

As a result, AAA game developers burn out pretty quickly, too, leaving the game industry for other software companies that both pay better _and_ offer a better work/life balance.

As a result, you'll find that a lot of AAA teams are relatively inexperienced. Sure, there's a core of long-time devs on every team, technical leads who can point the way, but it's not an environment where you can get solid mentoring on the best practices of software development.

Even if one team does pick up TDD, who knows if the same team will even be there in another year or two? Good software practices are regularly "rediscovered" on AAA dev teams, and then forgotten, as the team turns over and their tribal knowledge fades away.

<comment><USER4> This is my impression too. There's also good reasoning: TDD is poorly suited to the industry.

For example, how would you test your renderer? Do you run the pipeline and check it against a final image? No, strict TDD would require that the asserted image be hand-crafted. Do you check that each part of the pipeline works as a unit? You can't without running shaders on the GPU (requiring the previous image test).

What game developers are slowly starting to master (already far more than anyone else) is integration testing. Instead of requiring detailed repro steps, just record the testing session in extreme detail and replay it - <USER2> anything goes wrong this can be turned into an automated test case.

There are no golden hammers and that includes TDD. TDD is an amazing solution that can provide value in 99.99% of scenarios. We should be scrutinizing areas where it doesn't add value; there is interesting stuff going on there.

<comment><USER5> In my opinion it's the integration tests that provide 99.99% of the value in 99.99% of the cases. Maybe not full integration tests (which can be expensive to run) but at least subsystem tests. These are the ones that find the real bugs. A very high percentage of unit tests once passing tend to continue to pass and only fail when you intentionally change the implementation. i.e. they impede your progress. Low level unit tests are very good for testing an algorithm or something like a parser, say, but that's not a high percentage of the code on the systems that I have worked on.

<comment><USER6> That matches my intuition. The espousal of unit testing vs other types of tests as "the one true way" actually impeded my adoption of testing in general as I couldn't wrap my head around how to approach it without suffering a huge productivity hit. I thought it was just me "not getting it" but I sense the pendulum is beginning to reverse direction.

</comment></comment></comment></comment><comment><USER7> If you want to experience that in the AAA game industry, I work at Rare Ltd (UK, part of Microsoft Studios). We've been doing TDD and Continuous Integration for about 5-6 years now starting with Kinect Sports Rivals. For Sea of Thieves[0] (our current project), we've extended that to Continuous Delivery and it's been just a complete game changer in regards to overtime and crunch. For example, the onboarding exercise is basically a TDD kata that has to use our coding guidelines and build farm so you get to know how we work without having to dive right away into Unreal Engine 4. We use TeamCity for our CI solution.

And yes, we are recruiting : [https://www.rare.co.uk/careers](https://www.rare.co.uk/careers)

[0]: [https://www.seaofthieves.com](https://www.seaofthieves.com)

<comment><USER8> Can you give some examples of what you're actually testing? Perhaps an example of a specific test statement, the kind of level the tests sit at etc, what gets covered and what doesn't etc?

Are you testing the rendering engine? Lighting / physics / shaders / collision detect?

Are you testing scripting? Win conditions? AI (probably not for SoT I guess)?

Are you testing the core engine? File mgmt? memory mgmt? input reading etc?

As someone who is a developer and a gamer but has never combined the two, the idea of TDD in that scenario is fascinating.

<comment><USER7> We are unit testing all new code that can be unit tested, trying to do dependency injection when possible so mocking is easier.

We are testing the rendering engine, lighting, shaders, etc. in a visual test framework we created ourselves that compares each run of the tests with the previous and uses SSIM to output a comparison metric. At the moment, that's still checked by someone every week but could be automated. However, when changing rendering code or shaders, we do require that a test result is shown during code review.

For physics and collision detection, we do have tests covering that too, a lot of them involving our FFT water simulation as well.

We are testing the whole flow of the game from start menu to entering a session, matchmaking, loading a map etc. I think AI also has some good coverage, notably for the navmesh which is essential.

The core engine is Unreal Engine 4. It's not an engine made for testing unfortunately, even though the vanilla version has some (but not nearly enough). We've stuck with a specific version for a while now as upgrading usually meant that we'd also get new bugs from the new version. All the core is covered by all the existing tests, we've added tests where we thought it was critical and where we fixed or improved internal code of the engine.

Before joining Rare, I really wasn't aware of any testing whatsoever in the video games industry. It's been an eye opener and I wouldn't do it any other way.

Reading other comments, we might not follow TDD all the time or to the letter but the point is that testing itself is a very part of everything we do as engineers. That allows our QA team to focus on stuff that is actually broken and can't be tested (such as if a feature is actually fun).

<comment><USER8> Thanks for your reply.

> We are testing the rendering engine, lighting, shaders, etc. in a visual > test framework we created ourselves that compares each run of the tests with > the previous and uses SSIM to output a comparison metric

So would this be something like rendering a frame of a test scene (utah teapot? real in-game scene?) in various states of rendering (with / without lighting, with / without specular / normals etc), and then making sure they look the same each time?

> Before joining Rare, I really wasn't aware of any testing whatsoever in the > video games industry. It's been an eye opener and I wouldn't do it any other > way.

You should definitely consider a GDC/etc talk, I imagine it would be an eye opener for a lot of people.

<comment><USER7> > So would this be something like rendering a frame of a test scene (utah > teapot? real in-game scene?) in various states of rendering (with / without > lighting, with / without specular / normals etc), and then making sure they > look the same each time?

Yes, exactly, it's small test scenes we setup ourselves whenever we add a new rendering feature or fix a rendering bug. Some of them are still not deterministic as we're using Compute Shaders for some stuff which is hard to make deterministic.

> You should definitely consider a GDC/etc talk, I imagine it would be an eye > opener for a lot of people.

We are currently looking for topics. We'll see what comes out of that discussion internally :)

</comment></comment></comment></comment></comment><comment><USER9> I work on a game called Path of Exile.

At our studio we don't do TDD, but we do continuous integration with a lot of asset testing.

In the early days, we tried doing unit tests, but honestly, it's very hard in a game. We had little success testing gameplay code.

What we have a huge amount of is asset tests.

We have 4 times more non-programmers than programmers working on the game, so most of what is created isn't code anyway.

Every time anyone commits anything, it goes through our continuous integration pipeline, and any asset that changed, or is dependent on an asset that changed, is loaded and tested. This includes test loading entire levels.

Test loading every asset catches most types of failures.

We try, where possible, to add specific tests for common mistakes in order to catch things as early as possible.

For example, if an animation has "walk" or "run" in the name, then we test it also contains footstep events in the animation somewhere. If a model is used as a monster we test that it has an attachment point called "frame_upper" onto which various effects can be attached. We look for things like bounding box of an object being far away from the co-ordinate origin (a common mistake when making a big maya scene with lots of exported objects in it).

We also do a test start of the servers, which includes loading all of their data, and a test start of the client.

All of this means that a build that goes through green is unlikely to cause crashes for other people trying to work on the game.

We do, of course, also have an excellent QA team.

<comment><USER10> Let me take this opportunity to say "you guys do some damn good work". Certainly one of the more impressive games I play, stability/longevity/feature growth wise, especially considering the size of GGG.

Topical question; however, since the thread on a whole has focused on the more visible but more finniky-to-test aspects of these games. Do your same statements apply more or less to the backend/networking infra? I remember the decent ball of work you guys wrote about a while back when introducing the lockstep change, was curious what went on behind the scenes to support and validate that from an ops/maintainability perspective, if you can speak on that at all.

<comment><USER9> For backend we test with a load testing bot, but we don't do it every commit, just after making larger changes to the backend. I would like to test more, and I'm actually working on better automation for load testing at the moment so that it's easier for us to run them.

Testing lockstep was quite an endeavour. The approach I used was to add a very verbose log to the client and the server which logs basically every gameplay relevant decision. That includes moving a single unit, updating a stat, etc.

Then every time a line is logged, we update a hash, and then send the hash to the client. The client, being in lockstep, should be able to come up with the same hash. If the hash is different, then the client and server both break and we can then analyse the state and see what is different.

As we discovered issues, we added more and more log lines and fixed bugs until everything ran perfectly the same on the client and server.

</comment></comment></comment><comment><USER11> As a one-time indie game developer who went to work at a 250-person games studio, my answer based on limited experience is "probably not".

BDD in particular is tricky, because beyond the level of abstraction of the engine, you don't really know what you're building. How do you express that a thing should be fun, or weapons reloads feel punchy, in a BDD spec? How do you automatically test that?

Games code exists purely to elicit reactions in human brains. We don't have the technology yet to examine the desired state change in the target system.

Regular apps have the same problem, but with less expensive assets and less iteration. "As a user, I should feel that the login transition is slick" is a spec I can imagine that is UX-related. However, we can probably all agree on what slick is, and failing that you could user-test it to prove that the implementation is acceptable. A game is made of many complex adaptive interacting systems, so every change needs subjective validation.

On the subject of complex adaptive systems: many games feature them and so exhibit fundamentally unpredictable emergent behaviour. This can be hard to test for.

The most testing I've done in a games project is to figure what it is you're trying to build, then unit test the implementation when you've worked out if it's fun.

</comment><comment><USER12> Short answer: No. Gamedevs have to keep showing testing zealots the door.

Long answer: The problems with the approach are manyfold. There are a few points where testing is automatable, but they don't describe entire game projects well.

* What are you testing when you add gameplay? You are testing for a whole set of design concerns across the project, not just a technical specification or quality of service metric. You cannot do it in isolation and get the results you want at the speed you need, because you need tons of feedback to discover what a complex game is currently strong or weak at. The only reasonable way to gain the necessary feedback is to allow prototyping code to drive near-term changes, manually playtest it, and then factor out the most stable parts of the resulting soup where you can. This works against test-first because you don't really know what you're testing. You throw in a feature on a hunch - "maybe this will give the experience we're looking for" \- and see how it behaves hands-on. If it works, there are still usually ramifications and elaborations that didn't surface up-front. And once it does work it's hard to break out into a sandbox because the interesting part of the behavior is in the coupling to other systems and features.

* Games deal with vast quantities of mutable state strapped onto relatively straightforward data pipelines: the parts that are most testable are engine and toolchain core elements like asset builds and rendering systems. These parts do see unit tests and integration tests, although there isn't total consensus on how much testing is needed or how it should be done. They are the most like business and application software, though, since their development can be more structured around technical goals and quality metrics.

* Many bugs are ultimately data bugs. Some designer or artist set up the wrong binding of assets or made a valid yet broken combination of parameters. Games tend to fly apart very suddenly when they operate on bad data. But the code is doing exactly what it should do for that set of inputs - and if it's a failure it's at the level of process and tooling, not the runtime code.

</comment><comment><USER13> I worked for a AAA game company in the game server department and I would say that with the schedule and how the shop was directed it was nearly impossible to do TDD. I can't speak for the engine side, but my guess is that it was not possible over there either.

I bet like anything through, if you go to shops that have strong direction, can work with a small team and over deliver, those standards paradigms are used.

Check out the tests in the Quake3 Source Code. It is a shining example for sure.

[https://github.com/id-Software/Quake-III-Arena](https://github.com/id- Software/Quake-III-Arena)

</comment><comment><USER14> My biggest observation with AAA games is that the coding is actually a fairly small part of the work. Most of it is one huge asset pipeline. And I don't think we have particularly good tech for testing what "looks right". Maybe computer vision will get that good eventually, but it's not even a thing right now. The same applies to the gross properties of renderers.

Even in big-spec-up-front triple-A games, there's a lot of exploratory work where you honestly don't know what you want. BDD and TDD don't help there either, rapid prototyping does. (TDD presupposes you know what you want, BDD presupposes someone does and you need to find and talk to them.)

None of which is to say that there aren't many places where test friendly design and regression tests wouldn't help. But the surface isn't the same as the average business app.

</comment><comment><USER15> Hi, this article [1] isn't quite what you're after but you might be interested in it anyway.

[1] [https://engineering.riotgames.com/news/automated-testing- lea...](https://engineering.riotgames.com/news/automated-testing-league- legends)

<comment><USER16> Nice !

Looks, like they also automatically create tickets for defects ! !

</comment></comment><comment><USER17> Croteam applied lots of automated testing by bots in The Talos Principle to ensure that changes in level design cannot lead to a situation where the game cannot be completed anymore:

> [https://venturebeat.com/2014/11/04/the-talos-principle- > under...](https://venturebeat.com/2014/11/04/the-talos-principle- > underwent-15000-hours-of-playtesting-but-not-by-humans-interview/)

> [http://www.gdcvault.com/play/1022784/Fast-Iteration-Tools- > in...](http://www.gdcvault.com/play/1022784/Fast-Iteration-Tools-in-the)

<comment><USER18> That's not TDD, really, but it's a clever way of testing both the AI, and level changes, to a certain extent. If you drop a fucking boulder and you can't cross it yeah, it will light you up with red floodlights, but if a certain corner drops you into the nether...

Unless the AI also knows to check each possible interaction, movement, etc.

<comment><USER19> Can you clarify why you do not consider this TDD?

<comment><USER17> I think that if one is meticulous, sk0g is actually right (source: [https://en.wikipedia.org/w/index.php?title=Test- driven_devel...](https://en.wikipedia.org/w/index.php?title=Test- driven_development&oldid=790275486#Test-driven_development_cycle)): In TDD one _begins_ anything (in particular any new feature) with writing a test for it, then one runs all tests to see if something fails and only _then_ starts to write code if necessary until all tests pass.

</comment></comment></comment></comment><comment><USER20> Having never worked at a gaming company but having a friend who was the head of testing at one very recognizable shop, the answer was definitely no, at least not there. Its definitely a big enough industry that I'm sure some does though.

Also, last time I wrote any 3D code, it at least appeared to be incredibly hard to test that some visual thing was just so. Of course there are still things like business logic that surely could be tested, but it's just not going to be as straight forward as having some code generate some HTML string and then asserting things against it. Those last-mile things you might want to test are always a challenge IMHO.

I learned a lot of my coding chops at a Rails shop that was very in to testing, so that's definitely my perspective, YMMV.

</comment><comment><USER21> In my experience no. Testing was not even considered. I worked on mobile games 5 years ago so things may have changed.

Most of the time we had strict timelines with feature milestones. We were building mobile apps of licenced titles.

The lack of TDD was replaced with full time QA, sometimes multiple on the one game.

</comment><comment><USER22> Factorio is a good example of a test driven developed game:

[https://www.factorio.com/blog/post/fff-186](https://www.factorio.com/blog/post/fff-186)

<comment><USER23> factorio doesn't really qualify as coming from AAA gaming industry. and factorio devs are on another level.

<comment><USER22> Yes, I agree. I forgot the AAA part after reading several comments before I posted mine.

</comment></comment></comment><comment><USER24> I'm not in the game industry, but from what little I know, this is probably going to be a tricky question to answer.

Reason being, a high proportion of AAA game development is done using off-the- shelf game engines. Of course it's still necessary to write code for the game logic and features, but because of the stable base this code is written against, it might not be seen as necessary to follow a strict TDD/BDD approach.

<comment><USER25> > a high proportion of AAA game development is done using off-the-shelf game > engines.

I don't think this is particularly true. A high proportion of game development is, but many AAA studios are using either home-rolled engines, or started with an existing engine (Unreal or iDTech) and what they're currently running looks absolutely nothing like the original engine.

<comment><USER18> I agree with both of you, sorta?

The problem is, most of the major game dev companies have their own engines. Unreal Engine is __massive __in AAA games, but most EA titles use Frostbite, Valve: Source, Ubisoft: Anvil, Crytek: CryEngine, Bethesda: Gamebryo, and the CoD devs use IW, which is a fork of id tech engine.

However, this doesn't mean that they aren't using off-the-shelf engines. As long as you count in-house "shelves".

</comment></comment></comment><comment><USER26> A colleauge working at a AAA Soccer game gave some insight about that a few years back.

Their automated testing was mostly bruteforce stuff like,

* Placing a character at penalty spot and making it shoot with every possible angle and strength, making sure the ball didn't launch to space.

* They would leave a computer vs. computer game running for hours / days to make sure no kind of random crash would happen.

</comment><comment><USER27> I worked on a AAA game. I controlled the networking code (web services really) down and the entire server infra for our project. All of that was full TDD but it was also all greenfield by me who had done heavy TDD before and working with an external team who was all TDD. I even wrote integration tests from a stub client that ran on the playstation as part of the build to hit my server and a stub server to do wire testing for the client as part of my builds. Also had a full load regression test as part of my build that ran every checkin on a smaller slower cluster.

The main game had no tests... except that you need to realize that we had 480GB of asset compiler integration tests and 32GB of game engine integration tests.

As a heavy TDD person it took me a long time to realize that this can be very sufficient though it's a longer turn around loop. The test coverage just from being able to boot the game up is quite large. This is something that many non-game type programs have real issues with, they can't easily just "run all the user data". I know we had one project where we did a lot of TDD but it wasn't actually as good as just running the entire input set every build which I eventually switched us to. This was a non-game data processing system. Doing this + unit testing gave us great coverage and few bugs.

Generally major bugs were found within 15 minutes by another engineer, eg the next person to sync, build or run the engine or art compiler.

I do think we could have unit tested the core collections libraries in the engine to great effect and faster turn around but the build was not really segregated in a way that we would take advantage of this. It was just a monolithic build; the collections objects were heavily header included so there really would have been a build step to built them into their own test exe, run them then build the game. So I'm not sure how much benefit we would have gotten. I think in 4 years I saw one collections issue that lasted past just launching the engine and not having it crash.

</comment><comment><USER28> I am not working directly in gamedev but I have some insights.

I've seen growing interest in automated testing from mobile apps.

Basically guys were writing regression testing with framework like Selenium (UI testing) that goes throughout most common scenarios. (I think that was described by huuugegames.com on some presentation)

The main idea was to let QA focus on "exploratory" tests. (Testing rules of the game, design decisions or performance)

TDD & BDD can be used gamedev but not in places you will think of first.

I will simplify it vastly: programmers make tools for designers to use.

Tools are made by programmers - tools can be done with TDD and/or BDD. Games are made by designer - they use tools to make rules, systems etc.

Therefore gameplay is make mostly out of data (designer's parameters set in engine/tools) - you can't test your data with TDD/BDD.

</comment><comment><USER29> Kind of related: [http://www.eurogamer.net/articles/2017-07-19-a-devs-eye- view...](http://www.eurogamer.net/articles/2017-07-19-a-devs-eye-view-of-bugs)

</comment><comment><USER30> Game development projects are usually focused on tech/data/network/engine, asset creation/pipeline, behaviors and gameplay.

In the tech/data/network/engine areas there may be TDD/BDD if the engine is to run multiple titles beyond the current project, if not the budget may not even allow for time. Possibly other areas may have tests in the behavior/gameplay areas: components, AI etc, this depends on the current dev culture usually.

Really the main thing in game development is _shipping_ and building _fun_ , if tests help you do that faster/better then you do them. I think most devs developing anything that is not game specific but tech/data/network/engine related likes to have tests to rely on, time permitting.

Most studios I have worked with that do some TDD/BDD/automated testing it usually happens on the "tech" or core/engine teams rather than the "production" or "live" teams. The tech teams are working on engine/network/data while the live/production teams are using the engine/tools/scripts to make assets and gameplay. The tech team isn't as locked to game launch dates/crunches and has more time to be thorough because most of their code will last across multiple titles.

For the most part, in the asset creation/pipeline, behaviors and gameplay area, more of that is visual and QA based. There are testing companies and departments setup just for the gameplay/feature testing. So much of game development is going for fun and a good mechanic that actually playing it and testing it live is more effective than automated tests in some areas. Although there are some automated test tools in Unity[1], Unreal[2] and custom engines maybe for very rote areas of gameplay (physics engine, collectables, asset loading, very common unchanging actions etc).

Many times on the production/live side of game development, gameplay and behaviors change so much that any automated testing becomes a lag on dev/iteration time, or aren't updated and stagnate as the changes happen so quickly day to day. This is especially true in iterative development during prototyping or pre/post-production, since it is mostly visual the benefits are outweighed by the speed required to ship.

[1] [https://unity3d.com/unity/qa/test- tools](https://unity3d.com/unity/qa/test-tools)

[2] [https://docs.unrealengine.com/latest/INT/Programming/Automat...](https://docs.unrealengine.com/latest/INT/Programming/Automation/)

<comment><USER16> > Many times on the production/live side of game development, gameplay and > behaviors change so much that any automated testing becomes a lag on > dev/iteration time, or aren't updated and stagnate as the changes happen so > quickly day to day. This is especially true in iterative development during > prototyping or pre/post-production, since it is mostly visual the benefits > are outweighed by the speed required to ship.

So you think, you if you do testing you are overall slower ? Skipping tests makes youufaster short term.

Long term, you are slow as hell because of the lack of coverage and manual effort.

Also, especially test help you with large scale changes. Because, these tell you what breaks what shouldn't have been broken.

Further, test is not the same as test.

In order to do efficiently testing you need to apply the test-pyramid.

i.e. have lots of unittest. less integration test. less system tests. less e2e tests.

another guiding principle is to focus automated testing on the things are most curicial for the success of the product, or the most difficult to do manually.

also, you need to chose the tools that support your testing stratgey. if you work against your tooling. oh boy, you have a journey ahead.

(For example unity unittesting framework was pretty crappy last time i check -- 3 years ago )

<comment><USER30> > So you think, you if you do testing you are overall slower ? Skipping tests > makes you faster short term.

Not at all long run, but in the prototyping stage it may be a hindrance or when you are going for a fun gameplay mechanic over coverage. When you lock something down then tests make sense in this scenario. You'd always want tests for unit testing data, network, core tech, but might not need it when you are building gameplay that the test is really a user experiencing it/tuning it. Even writing some rendering or gameplay tests it takes time to get them right before they are actually useful tests.

Agree on all the other items there are many levels of testing. Usually core libraries are covered, when it comes to in-progress prototyping/pre- production, it can definitely slow you down (by adding weight to changes) if it is changing constantly and not yet locked down. Another area that weighs into it is how much budget and time that the code might be in use, if it is just a tool or something that isn't needed for live code (something prototyping or to help develop it, i.e. asset packing or the like) it might not be worth it to surround it with unit/integration testing.</comment></comment></comment>


Yoga Effects on Brain Health: A Systematic Review of the Current Literature - <AUTHOR> https://content.iospress.com/articles/brain-plasticity/bpl190084 <comment><USER2> I think it's probably non-controversial that exercise (posing, stretching), and mindful activity (meditation, thoughtful breathing) are good for us. Certainly it's something I feel happy encouraging patients to do, particularly if they enjoy it or feel that it benifits then.

What I find thought-provoking though is the use of the phase "health approach" in the first line of the abstract:

> Yoga is the most popular complementary health approach practiced by adults > in the United States.

I wonder what exactly qualifies as a "health approach". The paper acknowledges exercise is well know to be good for people, particularly in ageing - so it's heathy, but is exercise an "approach"? What about reading, or caring for young children (both also good for your health) can that be a "health approach"?

I usually try to talk about these practices as being part of a heathy lifestyle, rather than being therapies. I feel that we're over-medicalising when we start to say that riding a bicycle or hugging our friends are therapies, rather than just being healthy.

<comment><USER3> What I often see is something like "exercise and yoga are good self care, but for serious mental illness you need professionals." And "professionals" in 2019 usually translate to psych meds and talk therapy (eg CBT), both of which have extremely shoddy science but get far less skepticism.

I got involuntarily committed for mania/psychosis, didn't sleep for weeks, hallucinations etc so of course I was prescribed the intense cocktail of mood stabilizers, antipsychotics etc and told I needed that and intense therapy for the rest of my life. I stopped all meds and therapy and focus on mindfulness, sobriety, routine etc and feel it's the stable path.

I entered a super deep depression when released but read everything about mental health I could get my hands on. And I now believe the best "therapy" for serious mental health issues is things like yoga and meditation, plus lifestyle changes.

It gets reduced to stress reduction and mild exercise, but mindfulness is about developing awareness of feelings which leads to better emotional regulation. If you can develop more space between your thoughts and feelings and your consciousness you stop being so controlled by them.

The skeptics will say it's a bunch of new age mumbo jumbo but they don't apply that same skepticism to psych meds even though psych meds are not understood at all, mostly work by placebo, and have awful side effects. Not so long ago doctors were ordering lobotomies and overprescribing OxyContin because an attractive pharmaceutical rep sold it to them but now when they overprescribe psych meds and talk therapy they are seemingly infallible.

<comment><USER4> The thing that you're missing is that most health professional will still include things like "exercise and yoga" in their treatment plans because that's what is required. Usually it's the patients that expect pills and therapy to show magical, immediate results. Nobody (well, I'm sure there are doctors that would, but at the risk of invoking a No True Scotsman, some doctors are pretty bad at their job) is going to tell a depressed person or a person with severe ADHD to just pop pills and not exercise, meditate or otherwise not do any self-care. The pills are there to help the ill person get to a place where they can start working towards those things, pills are step one of a long process, they're not the only step. The thing psych meds are not taken with much skepticism is that they can show results incredibly quickly, even if getting the right results cant take months of fine-tuning and trial and error due to the fact that the mechanisms aren't well understood.

A very good analogy for mental illness and psych meds is diabetes and insulin. Most people who are prediabetic or have diabetes will have type 2, adult-onset diabetes, which can be stopped or reversed with lifestyle changes, but those are hard. If an obese person is feeling terrible and goes to a doctor and gets diagnosed with diabetes, the doctor will give them insulin because they need it to live and function, but it's not actually going to solve the problem. Insulin is just step one for such a person, step 2 involves exercise and diet, maybe surgery in severe cases, but many people can't commit to such lifestyle changes and just keep taking insulin as a stop-gap measure to keep living in relative comfort, while other people will manage to use their new feeling to take up the needed lifestyle changes and get cured (or go into remission, as they say), possibly to a point where they no longer need insulin or other medication.

In the same vein, just as there is type 2 diabetes, there is type 1 diabetes, whether it manifested because of environmental factors or was purely inherited, these people need insulin to live. The state of medical science today means they will need insulin and other medication for the rest of their lives, but they still need the diet changes and exercise, nobody is expecting them to just sit on medication and nothing else.

With mental illness it's the same way, some people can get better with just exercise and lifestyle changes, but some people need professional help (meds and therapy) to be able to implement those lifestyle changes and maybe get to a point where the no longer need the help. Other people, however, will need meds for the rest of their lives to have a chance at normal life, at least with the current state of medicine. One can hope for a breakthrough in the future but people need to live their lives right now, and if that involves taking a pill or two every day, so be it.

In my particular case, I think that I was pretty lucky that me and my psychiatrist only took 4 or so months to find the proper combination of meds for me, but at no point did he tell me that was all I needed. He always insisted that diet, exercise and mindfulness were part of the treatment and the meds were there to help me get started. Now it's been roughly a year since I started and I lost a ton of weight, exercise regularly (including yoga) and eat healthy. I'm down to only taking my ADHD meds because the others did their job and I don't need them anymore, but even if I have to take this pill daily for the rest of my life I'm okay with it because my quality of life skyrocketed. This was not possible for me a couple of years ago when I thought that I could power through my issues with yoga and exercise alone and didn't trust psychiatrists.

I think it's incredibly irresponsible to tell people that things like yoga, meditation, exercise and diet changes are a replacement for professional mental health help. This may be true for some people, but I suspect the percentage is close to the amount of people who are able to stop being alcoholics without help. The two things are orthogonal, professional medical help is one thing and a healthy lifestyle is another. Having a healthy lifestyle may mean that you don't need professional help, but professional help may be required for a person to be able to get a healthy lifestyle. Finally, professional help usually involves all those nice things like plenty of exercise and a good diet, sometimes yoga or mindfulness/meditation (even if they call it something else the principles are usually the same, CBT for example is basically mindfulness by another name). You go to the a professional so he can help you get going with all of that, because sometimes you just can't by yourself.

<comment><USER5> > most health professional will still include things like "exercise and yoga" > in their treatment plans because that's what is required.

Wow, that is not my experience at all. Neither do I think it is irresponsible to suggest that yoga, meditation, exercise and diet change can substitute for "serious" mental health treatment -- Anyone who can maintain wellness activities (exercise, sleep, diet) is in a much better state of wellness than a person who is seeing a psychiatrist -- by definition. While it may be that psychiatry could help patients exercise, I have not seen any studies on the efficacy of psychiatrists in motivating patients to maintain a regular exercise routine. I'd imagine your average yoga instructor would do better.

</comment></comment></comment></comment><comment><USER6> I started yoga two years ago after suffering a small back injury while weight lifting (I lift 4 times weekly). I was looking for an exercise routine which was: 1) Easy to do while traveling 2) I could do well into my old age (I can't lift heavy weights forever) 3) Would build back strength to counteract the degeneration of my desk job (developer)

I enjoy yoga immensely and I feel that I have granted myself a gift that will last a lifetime. I am not spiritual and was not flexible before starting so I wouldn't count those are barriers for getting benefit from the practice. I do try to suspend my beliefs about spirituality as well as I can during practice which has worked well for me.

I started with the C1 classes at CorePower which I'd recommend to beginners who are interested.

<comment><USER7> Similar desires (no back injury, thankfully!) and got into a "Les Mills"-brand "BodyFlow" class at my gym about eight months ago.

Really glad I did! MUCH improved balance, much less overall pain, stronger in lots of ways, etc. Nice little guided relaxation exercise at the end, too. Recommended.

</comment></comment><comment><USER8> I've developed a daily practice over the past 8 months and the two most important pieces of anecdotal evidence that I have noticed that keep me coming back are:

1) I am happier. No doubt about it. Situations where my memory recalls that my self was typically unhappy in have been turned around. I find myself content when I am "supposed to be" frustrated at various things like traffic, intense situations, etc.

2) Older people at the studio look younger than me. Not everybody of course. But a significant number of the elderly people who have a daily practice look as young and spry as any one of the youngest children who come into the studio. (They host kids yoga classes occasionally).

I am laying here in half lotus right now actually, counting down the last few minutes at home here until I leave for today's class.

I can hardly wait!

<comment><USER9> > Older people at the studio look younger than me.

Not a rebuttal of your experience but don't forget that people doing yoga regularly are also most likely to eat healthier and exercise more than the average.

<comment><USER8> Absolutely!

And becoming a part of a local community of people who all align with living that way, makes it really easy to live that way yourself.

Which is just another one of the many reasons that I enjoy going.

Everything from my physical fitness, to my mental health, to my nutrition, sleeping habits, and everything in between have improved significantly since committing to a daily practice.

</comment></comment></comment><comment><USER10> this is not meaningful work, because there is no "brain health" outcome in the papers they reviewed that is clinically relevant.

For example: "Increase in right hippocampal GM density among yoga group." Why is this a good thing? Let's not even talk about the physical inappropriateness of using "density" to discuss MRI results.

Using meaningless-but-easy measurements as a surrogate / proxy for meaningful- but-hard measurements is an entire field called "biomarkers". It's incredibly challenging in neurology, and we don't have many good, validated biomarkers. If you want to use "MRI density" (sic), or "fMRI activation", then first you need an entire study to prove that the biomarker is valid. This a subtle point, but it's as if you're counting lines of code to determine the best programming language: yes, it's a measure, but how does it relate, and what does it mean?

We all (including doctors) want things that are natural, wholistic, and give us a subjective sense of well-being (like exercise and mindfulness) to be magically effective. But that doesn't change the need for rigorous science in order to know that it's the case.

And the formula is always the same: a double-blind, placebo-controlled trial within a representative population using a directly meaningful outcome.

This review failed the "meaningful outcome" part, even if (and I personally don't care to look further) they got the rest of pieces right.

<comment><USER11> It's not a total wash:

"The studies reviewed also implicate the role of yoga in functioning of the dlPFC and the amygdala (see Fig. 4). Gothe et al. [24] found that yoga practitioners demonstrated decreased dlPFC activation during the encoding phase of a working memory task in comparison to the controls. Froelinger et al. [30] also found yoga practitioners to be less reactive in the right dlPFC when viewing the negatively valanced images on the affective Stroop task. Task-relevant targets activate the dlPFC, whereas emotional distractors activate the amygdala [49]. Exerting cognitive control over emotional processes leads to increased activation in the dlPFC, with corresponding reciprocal deactivation in the amygdala [50, 51]. The studies suggest that when emotional experience occurred within the context of a demanding task situation, yoga practitioners appeared to resolve emotional interference via recruitment of regions of the cortex that subserve cognitive control. Plausibly, these findings may indicate that yoga practitioners selectively recruit neurocognitive resources to disengage from negative emotional information processing and engage the cognitive demands presented by working memory and inhibitory control tasks demonstrating overall neurocognitive resource efficiency." [discussion, ¶5]

To a literate outsider, this does not seem like hand-wavey bullshit and seems to establish the signal->source->implication chain you request. This just happened to be where I was in the article when I read your comment.

<comment><USER12> none of these things are directly important. it's hard to recognize, because they sound very advanced and scientific, but it amounts to how bright a spot is on a brain scan. why is brightness there intrinsically good? well... it's not. I know the authors then project the actual measurements into some kind of hand wavy interpretation about how that affects the individual, but it's just hand waving.

no medication would ever be approved by the FDA using these outcomes, nor should they be (unless the community first establishes that it's a biomaker of some kind).

<comment><USER11> Fair enough. But isnt their statement (and citation) that exerting emotional control directly correlates with measured increases in a particular region ... exactly what we want to see? If all people exerting emotional control exhibit red ears, and yoga practcioners have less red ears when under stressful focused tasks, it does seem reasonable that less emotional control is required. That logic is sound, right?

</comment></comment></comment></comment><comment><USER13> For 60 minutes of hot yoga, the effort and challenge is occasionally so intense and nearly overwhelming, that it reminds me of the power of doing hard things. I often think if I just did 2-3 super hard things a day with this intensity, then I could master various skills, knowledge and perhaps life itself.

Although it's harder to study and learn a programming language, even just for 2-3 hours a week, than it is to do something physically intense with group pressure. I think mostly the ease of studying and practicing is what limits me. Going to yoga is the hardest part, once there it's relatively straightforward to complete it.

If I setup a system to intensely learn with limited technical friction (ie frustration of a slow environment with a clear path to what to learn), then I could overcome this. Of course, ultimately it just comes down to my choice.

<comment><USER14> Doing Brazilian Jiu-Jitsu is one of those super hard things I try to do a day. It's not as "super hard" physically as one might think, especially as one improves their technique. Rather, for me and many others, it's very mentally and emotionally challenging in a fun and approachable way. The mental benefits I have realized since doing it very much speak to what you say about mastering various other skills, knowledge, and life itself. I've realized that for most of my life I've really doubted myself and that has held me back. BJJ has showed me that I _can_ do this thing that I doubt I can do. I need only try. I might not succeed at first but with focus and persistence I will get there.

That's not to suggest everyone do BJJ. But, to your point, I think everyone should find things that really challenge them and try to engage in them on a near daily basis.

<comment><USER15> I did BJJ for 6 months. During that time, the students and my teachers frequently came in injured (we had rotating teachers). Broken fingers, toes, sprained things, etc. Then one day one of the teachers was hurt so bad that she was out for awhile. I concluded that BJJ wasn't worth the risk of these kinds of injuries, especially ones that prevent me from working with my hands. Which is a shame because I loved how BJJ engaged the body and the mind, and the camaraderie with others.

<comment><USER16> Maybe find a different dojo?

I've seen the same with yoga, crossfit, cycling, dance, etc.

I'd argue those teachers shouldn't be teaching.

Yes, the martial arts are way more injury prone. (My SO tore a shoulder muscle working a punching bag.) But it doesn't have to be the norm.

<comment><USER14> I second this. I rarely see injuries like OP described at my academy.

</comment></comment></comment></comment></comment><comment><USER17> Here are some research findings related to yoga practices, what difference does it make to human system is well documented here: [https://www.innerengineering.com/research](https://www.innerengineering.com/research) Go through it if you are interested.

</comment><comment><USER18> This is super interesting to see.

I try to be open minded about stuff and am always interested in various ways to take care of ones body. But by far the most difficult part of figuring out what to do is that information sources touting benefits are also like.... telling me that this jade bracelet is good for my aura or something.

I mean I'm not a geologist but.... pretty sure there's not much basis in some of this stuff.

Anyways I try to give the benefit of the doubt to things I don't know about but a lot of sources make that realllly tough!

</comment><comment><USER19> As the authors wrote in the discussion section, it is not very surprising that a combination of light physical activity and meditative mindset has general positive effects. However, you could probably obtain the same result by walking and reciting Goethe poems because what people in the west understand by yoga is not very far from that. Like the Taichi stuff. Nobody knows what they are doing, but at least it doesn't harm too much and, as noticed in the paper, it has some positive effects. Anyway, better than doing nothing.

<comment><USER20> Not sure how yoga counts as light physical activity similar to walking. If you go to an advanced class it is a pretty hard workout.

</comment></comment><comment><USER21> I'm no brain healthologist, but yoga has been absolutely, irrefutably, amazingly transformative to my mental health.

I started with no prior experience at age 39 nine months ago, and have gone to 140 classes since.

My happiness, attentiveness, and friendliness have all increased to the point that I am hardly recognizable, mentally, as the same person I was one year ago.

In addition to the effort and focus you have to put in during class there are other benefits, like seeing and feeling muscles you never knew existed growing and strengthening, having better posture and balance, and getting a good night's sleep every night after practice (because you're so damned tired).

On top of all of that, my studio is full of very friendly and welcoming instructors and my fellow students are just as nice, so I've made tons of new friends-- which is really hard to do when you are a working adult.

I've also lost 40lbs since March. Because I'm so tall, one hour of yoga burns about 580 calories on average for me, and I feel better afterwards-- not worse like with some other forms of physical activity.

But I didn't go for weight loss so that's just a nice bonus.

I'm relatively sure that the same could be said for many forms of physical activity, but yoga seems more suited to a variety of people regardless of age or physical ability.

Having become a bit enamored by yoga, I've started recommending to everyone I know, including my elderly parents, that they at least try it.

</comment><comment><USER22> Being a martial arts / sports teacher with about 20 odd years of experience dealing with both soft and hard styles. I can't really speak from a formal medical background but only really from an experience and results based perspective.

I see more and more people attending these types of activities because of "doctors orders". And in many cases I see sports of any from just compliment whatever regiment the doctor has set out for the patient to begin with. I guess this is where physio has its place in the medical world as well, where patients need specific exercises to help with specific injuries.

Anyway, I want to point out the differences between the soft and hard approaches in the martial arts because I think it's relevant. Not only are both approaches pretty much contradictory to each other but I find that what people find case-by-case within each practice can differ completely, which makes the whole thing quite subjective and difficult to measure.

The hard approaches are more fueled around explosive movements and repetitive training. From the students' perspective the left to right body movement from this type of training is something that I've seen people with strokes or brain related illnesses use as a tool to help rebalance their motor coordination. In some cases I've heard people recommend dance because of the left right approach that comes with dancing, so not much to do with the style itself but rather the constant reshifting from the left to the right during training helps in this area, which has more to do with training methodology.

Where as for the softer arts, although you usually have to explain the advantages to the student, soft arts are more geared around slow movement and are aimed around longevity.

Personally I'm a bigger fan of the softer arts, simply because I prefer low resistance training myself, plus anyone with an injury who is looking for a sport, low resistance will be the better approach.

The issue I have with soft styles is that I have read a bit about Tai Chi and the medical studies surrounding Tai Chi. Sufficed to say the medical studies in this particular area have not gone well, in many cases citing little to no evidence that soft styles help with age reduction.

Although the evidence us martial arts teachers rely on are the case studies of our masters, for instance master x from martial art y lived until he was 100 and that's because he practiced martial art y since he was 10, and so fourth. What I'd find interesting is if there are more substantial studies made in this area, I mean after all finding the fountain of youth is pretty much everyone's dream.

</comment><comment><USER23> Here's the tl;dr (from the article):

> This review of literature reveals promising early evidence that yoga > practice can positively impact brain health. Studies suggest that yoga > practice may have an effect on the functional connectivity of the DMN, the > activity of the dorsolateral prefrontal cortex while engaged in cognitive > tasks, and the structure of the hippocampus and prefrontal cortex- all > regions known to show significant age-related changes [65, 66]. Therefore, > behavioral interventions like yoga may hold promise to mitigate age-related > and neurodegenerative declines. Systematic randomized trials of yoga and its > comparison to other exercise-based interventions, as well as long term > longitudinal studies on yoga practitioners are needed to identify the extent > and scope of neurobiological changes.

With studies like this, my reaction is to assume that it's not really about _yoga_ , but rather just making a habit out of doing exercise and spending some time focused on something other than your cell phone or a computer.

There are plenty of good ways to get exercise and manage your attention, but you don't need buzzwords to accomplish that. Taking long walks without bringing your cellphone along (or leaving it in your pocket with notifications off) is a simple, cheaper (assuming you pay for yoga classes), and equally effective way to do this.

<comment><USER24> Something came out in the NYTimes recently that walking three times a week for a half hour had positive effects.

Can't remember everything about it.

I love walking.

What I think is nice about yoga is you get mindfulness, flexibility, strength, balance, and endurance all in one session which seems like a pretty decent bang for your buck.

<comment><USER25> Have you read anything by Cal Newport about the benefits of daily walks? I loved some of his books and he is always talking about using his walks as a time to reflect and solve problems: [https://www.calnewport.com/blog/2015/03/17/deep-habits- think...](https://www.calnewport.com/blog/2015/03/17/deep-habits-think-hard- outside-the-office/)

</comment></comment></comment><comment><USER26> Edit: I'm a bit long-worded and too heavy with using fancy words. I typed fast and didn't edit at all. Writing succinctly and in easy to understand English is more difficult, for me.

\---

I could predict that yoga has a good effect on brain health since I have the following hypothesis: whatever you do with a serious attentive concentration will be good for your brain in that specific area.

One question I have left is: to what extent will one be able to go beyond that area and use their cognitive benefits for similar but different pursuits?

I also have a hypothesis for that (I just don't know to what extent it's true, I read some research on it but it's all quite tentative). It is: if one specifically focuses on an area, then the benefit will be specific. However, if one chooses a meta-topic (e.g. learning as fast as possible, increasing memory or increasing attention span), then that meta-topic will be trained and that person will be good in the meta-topic across all cognition. This presumes they are immersed in training this meta-topic though (i.e. it's everywhere in their life).

Examples:

1 (normal topic). One chooses to be amazing at chess, and just at chess. Then, the brain benefits will only be helpful for chess.

2 (meta-topic). One chooses to learn as fast as possible, and chooses chess as the medium to measure progress. That person will be able to learn as fast as possible on many more domains. In part, also I presume that such a person is actively trying to use the meta principles from learning chess as fast as possible to solve other problems in their life.

So they're not doing the same things. One is learning chess, and the other one is learning to play chess as fast as possible with the broader scope to learn anything as fast as possible.

One complicating factor is that the normal chess player can try to organize the meta-topics they have learned while playing chess. While this helps, I'd argue it's simply less effective than what the second person would be doing. It's similar to architecting a software product to do certain things from the get go (person 2) or patching your software product afterwards to do that same thing (person 1).

<comment><USER27> Usually when you learn a topic, you pick up skills in the process that are useful outside of that specific domain. For example, as a software engineer, I have refined the skill of being able to break down a problem into smaller, workable parts. Even if that problem isn't specifically related to software. I am also much better at reading documentation for products that I am unfamiliar with and learning how to do things myself. These are not things that I ever specifically practiced. They are just things that I _had_ to practice in the process of learning to be effective in my job.

If you learn Chess, it will likely have the benefits on your memory, reasoning, and ability to hold more information in your head at once.

So, overall I believe that pretty much every topic you learn will have a positive impact on various meta-topic skills and that's how most people generally improve those skills.

<comment><USER26> I would agree as you can see in my final paragraph. I'm simply saying it's not optimal. Moreover, knowledge transfer is tougher than you think. I have seen software engineers fail to use their logic they've learned with software engineering and apply it to other domains on a consistent basis.

But the reason I'm staring it is because the current opinion in academia is that knowledge transfer is tough.

Edit: in me finding sources, I found something that counteracted my claim [1]. I suppose it's back to the drawing board for me. I remember from serious game research that expanding general cognitive abilities through games were hard (I'd need to search for the sources). So I figured if this is true for dual n back (DNB), then it is most likely to be true for a lot of things. But it wasn't true for DNB.

[1] [https://www.gwern.net/DNB-meta-analysis#paymentextrinsic- mot...](https://www.gwern.net/DNB-meta-analysis#paymentextrinsic-motivation)

</comment></comment></comment><comment><USER28> Meditation is a tribal act in a screentime age: quietly facing the same direction, obeying a common leader - together. Just like yoga, dancing, climbing & hiking.

I think tribal socialization is a better explanation for meditation's growing popularity than "watching your thoughts like a river."

<comment><USER29> What you are describing is the "Westernized version" of Yoga. The Yoga practiced over thousands of years in India did not involve "obeying" a common leader except for the few months that you spent learning it. There was nothing tribal about Yoga. Far from it. Most Yogis would retire to forests or caves in Himalayas to practice Yoga in "solitude". And when Yoga was done for extended periods of time (months if not for years) it was called Tapasya. None of this applies to the commercialized Yoga that is practiced in the West. It was especially not for "freeing your mind" or "mindfulness" or "for calming your nerves" or "fixing an ailment". Those were side effects. The real goal of Yoga was achieving Moksha.

Do any of the centers/groups you have seen ever advertise that Yoga is for achieving Moksha? Never. That would defeat the purpose of commercialization.</comment></comment>


Gabor on how engineering decisions get made - <AUTHOR> http://www.gaborcselle.com/blog/2009/01/how-engineering-decisions-get-made.html

<comment><USER2> I feel that #1 usually happens not necessarily because a developer is trying to show off but because #2 and #3 aren't working well. If the process for coming to design decisions is too cumbersome and slowing down development too much, developers will simply circumvent that process entirely.

</comment><comment><USER3> I happen to prefer 1, combined with an attitude of ruthlessly throwing away things (e.g. the prototype) that have been proven not to work.

<comment><USER4> the basic tenet here is that #1 produces something that allows improvement and iteration, where #2 and #3 result in decisions based on abstractions.

</comment></comment><comment><USER5> It's certainly a difference if you decide to use Ruby on Rails, or Django. I would take the second route then.

But when you need to get something done in one of the framworks, the first route probably is better. The second one is very dangerous as you can spend so much time discussing things that you end up spending hours not having done anything productive.</comment>


NASA nuclear Dragonfly's drone for search of alien life on Saturn's moon Titan - <AUTHOR> http://www.dailymail.co.uk/sciencetech/article-4821200/Dragonfly-drone-explore-Titan-alien-life.html <comment><USER2> WTF DailyFail for a scientific topic? [https://ti.arc.nasa.gov/news/IRG- Dragonfly-robot-UI/](https://ti.arc.nasa.gov/news/IRG-Dragonfly-robot-UI/)

</comment><comment><USER3> This title is a mess. Looking forward to the mission though!</comment>


Ask HN: Need a good podcast catcher for Android phones. (And a bit of a rant.) - <AUTHOR>

Hello everyone.
With the imminent closure of Google Reader, I need to replace my podcast player, Google Listen, which uses the Reader API to manage feeds and track what I've listened to.
I've downloaded a handful of alternative apps, but they all lacked a feature I find essential - The "In the order I want" sort criteria. Not sort-by-name or sort-by-time, but sort-by-what-I-want.
For context, I drive to work, around 45 minutes each way. There's no-one in the passenger seat and there are very few places I could safely pull-over. Pushing buttons on the display while I'm driving is right out.
With Google Listen, new episodes start at the back of the queue. Often, there's one episode I want to move to the head of the queue. Sometimes, I won't be in the mood for the next episode in line so I'll shuffle something else ahead. Google Listen does this by showing a menu for each episode with a 'Move to the top of queue' option.
Once I'm happy with the next hour or so worth of stuff at the top of the queue, I hit play and drive off. As the first show finishes, its taken off the queue and the next episode I had queued up starts playing, all without any interaction.
The few alternative apps I downloaded did not offer this.
Some people reading this, I'm sure, are thinking "He wants a playlist manager". No. Create Playlist. Add episode to playlist. Play Playlist. Delete Playlist. No. Take those away.
All I want is a button on each episode labelled 'Move to the top of the queue'. That's it. If I have to perform some ritual every day to create a new playlist or whatever before I can get that button, I'm not going to be happy. Life is too short for pointless ritual.
So, follow-HN-peeps. Does anyone know of a good podcast catcher that works this way please? <comment><USER2> Sorry that I don't have an answer that fits your reasonable requests - but I really like Pocket Casts on Android. It does the auto-play stuff, but you can only order by date.

<comment><AUTHOR> Thanks for the warning. I'll take Pocket Casts off my list.</comment></comment>


The Fountainhead and Software Engineering - <AUTHOR> https://medium.com/@ard_adam/the-fountainhead-and-software-engineering-d991b269af2e <comment><USER2> As someone who's got an Architecture degree, read _The Fountainhead_ , and works as a Software Engineer, my response to this is pretty hearty skepticism.

To make a response to the article's summary, which is

> I am confident that giving engineers more autonomy and ownership will > transform the way software is created and increase the quality of the > results, and The Fountainhead provides an excellent example of what real > autonomy and ownership look like.

It is already well known that giving Software Engineers more autonomy and ownership can be excellent for productivity and software quality, and it's a bit laughable that the author says _The Fountainhead_ is what "real" autonomy and ownership look like.

Howard Roark is far less realistic a person than the majority of protagonists in fiction books, who themselves aren't of course realistic. Howard Roark is an argument in character form, and the universe of _The Fountainhead_ is built to forward Rand's worldview, not be a vehicle for the exploration of life's conflicts and complexity.

<comment><USER3> > the universe of The Fountainhead is built to forward Rand's worldview, not > be a vehicle for the exploration of life's conflicts and complexity.

This. I've also read _The Fountainhead_ , and Roark's personality would not get him the same result in the real world. It's fantastic and fictional.

</comment></comment><comment><USER4> The Fountainhead is written to appeal to adolescent fantasies. It has worked very well for that purpose. Adolescents adore it for making them feel superior to everybody actually doing anything.

Most people lose their adoration when they find that actually doing things is hard and takes actual, you know, work. Some don't, because they have discovered that not doing anything does not keep one from fantasizing about having done it.</comment>


The sliding window minimum algorithm - <AUTHOR> http://richardhartersworld.com/cri/2001/slidingmin.html

<comment><USER2> This reminds me of the following problem:

Given a list of numbers, for each number n print (n, k) where k is the first number following n that is larger than n.

There is a linear solution</comment>