Ask HN: Books you read in 2017? - <AUTHOR> I'd like to know which books HN read in 2017. Which of these would you recommend? Which of these surprised you, because they are not the usual suspects. <comment><USER8> This year I read:

1\. The Thrilling Adventures of Lovelace and Babbage: The (Mostly) True Story of the First Computer - A steampunk graphic novel about Ada Lovelace and Charlie Babbage. Fun story with loads of research to back it up. Got even better when I got to go the UK and explore the places they worked at in their livetimes

2\. The Hardware Hacker - A compilation of storis by bunnie focused on the hardware/maker(ish) ecosystem. Also discusses the Chinese manufacturing ecosystem and answers questions that most people have about it.

3\. Technically Wrong - A book about how tech can sometimes leave lots of people behind for one reason or another and how we can fix them. A very quick read.

4\. The Masters of Doom - The story of id Software, the company which spawned an entire genre with games like Doom and Wolfenstwein in its early days.

5\. Blood, Sweat and Pixels - The book looks into how video games are made and the many challenges along the way. Focuses on ten games from solo all the way to AAA titles. Really good if you want to know why video games turn out the way they do. After reading this, you'll double take whenever you hear of a delayed game, cancelled project, E3 demos and buggy releases. It also has some uplifting moments.

6\. My textbooks :).

Hopefully I can also read The Subtle Art of Not Giving a F*ck, Deep Work and CODE.

<comment><USER9> The Subtle Art of Not Giving a Fuck is a cringy read, I couldn't get past the first chapter. Deep Work as a whole can be summarized in a sentence. My interpretation is: put away distractions and focus on getting things done. There's other advice there but none of it is anything you haven't heard of before. CODE is great on the other hand. Just skip the nonsense self-help stuff.

<comment><USER10> I agree with your assessment about "Deep Work" but I still recommend folks to read it, just to reiterate what you probably already know. I think it helps us remind ourselves to focus on our life, when there are so many distractions.

</comment></comment></comment><comment><USER11> 1\. How to Win Friends and Influence People - I recommend because I apply every day at work and reap the results as well, somebody should have recommended this book to me ten years ago;

2\. Children of Time - a science fiction book that I enjoyed, I notice that fiction, in general, helps me deal with stressful work, as I disconnect easier and put myself in an imaginary world while reading;

3\. Meditations by Marcus Aurelius - this isn't a book you read cover to cover, I catch myself thinking long even after reading a single sentence;

1) and 3) I've come across on HN, but 2) was the unexpected random hit.

<comment><USER12> I'm sure I have an unpopular opinion on this, I have read How To Win Friends And Influence People a few times and I can't get over the fact that the skills taught feel very disingenuous and superficial. "act interested, use the person's name, etc". It's extremely cringe inducing when you see somebody blatantly using the tactics.

If there's a reason that everyone should read this book, it's more so that they are aware of these tactics.

<comment><USER13> It's not disingenuous or superficial if you exercise the advice earnestly. For example, don't just "act interested", but "be interested" in what the other person has to say.

I assure you that doing so is both extremely difficult (because we're selfishly interested in ourselves most of the time) and kind (because the other person rarely receives such selfless attention.)

It's only cringe inducing if someone is using these tactics without actually being interested in others. Carnegie definitely does not advocate for being such a person.

</comment></comment></comment><comment><USER14> Recommendations:

1) Einsteins Dreams - This book is a quick read, but shows a bunch of different perceptions of time. Fantastic.

2) Rock warriors way - Even if you aren't a climber, I feel like this book has a lot of great lessons about committing without fear. Much more accessible as a climber though.

3) Understanding Comics: The Invisible Art - Quick read, I learned a lot about storytelling in general.

4) Agnotology: The Making and Unmaking of Ignorance - This is a series of essays and the first few were great views into companies creating ignorance in the 50's around smoking and link to cancer. Gets a little dense after a while.

Full list: [https://www.goodreads.com/review/list/18975415-samuel- mosley...](https://www.goodreads.com/review/list/18975415-samuel- mosley?shelf=read-2017)

</comment><comment><USER15> My daughter just had her first novels (a young adult trilogy) published a few weeks ago. Even though it is not really my genre I read it and enjoyed it. Of course I am biased....

Dysfunctional Series: Books 1-3 (Origins, Dark Imagination, A Mighty Long Fall)

By McKenzie Rae

[https://www.amazon.com/Dysfunctional-Books-Origins- Imaginati...](https://www.amazon.com/Dysfunctional-Books-Origins-Imagination- Mighty- ebook/dp/B077SSXMSL/ref=sr_1_1?ie=UTF8&qid=1513697212&sr=8-1&keywords=McKenzie+rae)

<comment><USER16> Congrats to her!

<comment><USER15> Thank you. If you don't mind I will brag on her a bit.

Kenzi started writing fiction pretty seriously at about 14 years of age. So while 24 seems young to be a published author she has put in a decade of sustained effort honing her craft. She has completed something like 8 full length novels plus several others in various stages.

She seems to have found her daily writing pace and can write 2 or maybe 3 novels a year while working a full-time job.

She got her degree in Technical and Scientific Communication and works as a software and hardware tester along with doing some documentation for a health sensor company.

In the spring of 2018 her day job moves away, and she doesn't intend to move with it... so she will be looking for a new day job unless commercial success is surprisingly fast on the novelist front.

<comment><USER17> This seems soon. If appropriate you may want to share a general region in case anyone here will be able to help out, unless she is specifically targeting remote work opportunities (which would also be worth sharing).

<comment><USER15> Yes it is a bit soon, on the other hand it feels like it is good to get the word out there when you know that a change is coming.

She is located in Minneapolis MN. She would be happy with remote work.

She is smart, productive and reliable but not particularly ambitious with regard to the day job. Seems happy to take on the entry level grunt work including auditing telcom vendor bills, remotely updating router firmware and running test cycles, testing custom software portals, document/write test plans, update and clean up system documentation and whatever else the engineers don't want to do that isn't too technical.

</comment></comment></comment></comment></comment><comment><USER18> Fiction? I started contributing to [https://standardebooks.org/](https://standardebooks.org/) and discovered Gogol's Dead Souls and Strindberg's The Red Room in the process as new favourite classics.

<comment><USER19> Thanks for this link. Didn't even know something like this exist :).

</comment></comment><comment><USER20> Update: added a few lines about the books than just a name listing

From the ones I read in 2017, I would highly recommend (non-IT):

1\. The hidden life of trees- Peter Wohlleben Why forest trees are different than the ones you plant, how the communicate, how they care for their friends when they are not well, how mother trees protect their young ones by not letting them grow too fast, the fungi network, etc. The book is very easy to read- there is no scientific terminology overload. Things are told very simply. Not restricted to students of the subject. Learned something interesting every couple of pages. Another aspect is that the love shows. It is very clear that the author is in love with the subject. The author manages a wild forest in Germany and talks mainly about trees in terms of beeches, firs, oaks, etc. The author is politely insistent that we should protect the natural wild forests and let them be.

2\. Why the allies won- Richard Overy Probably the best book I read on WW2. So many more factors went into winning the war than actual fight. Probably appealed to my analytical mind.

3\. India After Gandhi- Ramachandra Guha As the author says history ends for many Indians with freedom. Very good chronicles. Started appreciating Nehru more.

4\. Re-read Gone With The Wind, To Kill a Mockingbird, the Godfather and a few P.G Wodehouse- all of which I like.

Currently, halfway through Stephen Fry's Mythos which seems good enough to recommend. I am pretty new to the Greek Mythology and he is a good story teller. Don't have much to compare it with, though.

Also, by choice, I read quite a few books in rural Marathi(an Indian regional language) and was surprised how good the story telling was. Also noticed that I had gone quite far from my mother tongue but was happy to see how easy it was to go back.

Please answer my similar question [https://news.ycombinator.com/item?id=15960188](https://news.ycombinator.com/item?id=15960188)

</comment><comment><USER21> I finally got around to reading Dune. I burned though it pretty quickly and loved it. For some reason I can't get into the other books in the series. For now they mock me from their spot on my bookshelf...

<comment><USER22> It's still openly debated, but the generally accepted Best Order to read the Dune Novels is as follows:

Dune, followed by a 1-5 year pause, followed by Dune. Repeat until death.

You may, if you wish, throw in the first hundred pages of a different Dune novel every ten years or so, just to remind you of the correct sequence.

<comment><USER23> Oh man, I feel like Dune Messiah (dune 2) is such a fantastic compliment to the original. It is about half the length and has such a different tone that makes the original even better.

<comment> dorian-graph I finished Dune about 2 months ago, and I'm currently a quarter through Dune Messiah. It so far is a great compliment and progression, and I constantly fight the desire to look up what happens because I want to know now.

<comment><USER24> I had the same feeling with The Hunger Games. The first one is amazing, the second starts to be repetitive. Didn't manage to get to the third one.

</comment></comment></comment></comment></comment><comment><USER25> These are all hard sci-fi, and much like Dark Mirror, given today's troubles, it's simultaneously entertaining while being intellectually stimulating, but in a way that feels relevant, even if not immediately actionable.

The first is what got me hooked, and back into reading.

The Wages of Humanity, is a short story by Liu Cixin. The short story used to be available by itself on Amazon, but now it's been disappeared[1]. It can be found as the last story in The Wandering Earth: Classic Science Fiction Collection.[2]

An assassin is being offered exorbitant sum to kill the three poorest people for some reason, and the book explores why, to a thrilling conclusion.

Since I found it as a stand alone story I cannot comment on the rest of the books in that collection. From there I read into The Three Body Problem[3], and Dark Forest by Liu Cixin; first two books of the Remembrance of Earth's Past trilogy. The only reason I don't mention I have not (yet) finished reading the third book.

[1] This link now returns a 404: [https://amazon.com/dp/B00CSW0UZI](https://amazon.com/dp/B00CSW0UZI) but it's what the URL my Kindle points to. Search does not find the stand alone edition.

[2] [https://amazon.com/dp/B00CXUKNA2](https://amazon.com/dp/B00CXUKNA2)

[3] [https://amazon.com/dp/B00IQO403K](https://amazon.com/dp/B00IQO403K)

</comment><comment><USER26> When Breath Becomes Air by Paul Kalanithi, it's a memoir of a neurologist who comes across lung cancer himself and how his life changes from being a doctor to the patient. I recently finished reading it and let me tell you, I had to pause every other page to reflect upon those words as they were surreal.

</comment><comment><USER27> Best book I read this year hands down was The Righteous Mind: Why good people are divided by politics and religion, by Jonathan Haidt.

It's a really lucid and eye opening introduction to moral psychology, and as a left-leaning person politically has made me understand my right-leaning friends more than anything else. Truly enlightening.

</comment><comment><USER28> This year I've read:

Maxims - <USER2>

The road to serfdom - Friedrich Hayek

De officiis - <USER4>

De divinatione - <USER4>

Lives of eminent philosophers - Diogenes Laertius

Confessions - Al ghazali

Illiad - <USER6>

Odyssey - <USER6>

Influence - Robert Cialdini

Guns, Germs and steel - Jared Diamond

Poor Charlie's Almanack - Charlie Munger - 2nd reading

Andrew Carnegie's Biography - Joseph Frazier

Fooled by Randomness - Nassim Taleb - 2nd reading

Bed of Procrustes - Nassim Taleb

Never Split the Difference - Christopher Voss

The intelligent investor - Benjamin Graham

Autobiography - Benjamin Franklin

I always remember this quote:

"In my whole life, I have known no wise people who didn't read all the time -- none, zero." Charlie Munger

</comment><comment><USER29> 1\. Off to Be the Wizard (Scott Meyer) - Very good.

2\. Ready Player One (Ernest Cline) - I liked it although it's kinda ridiculous and one-sided.

3\. The Bloodline Feud (Charles Stross) - Actually part 1&2 of a series. Really need to continue, very good. I'd say this was not "oh I know what will happen next" which is kinda rare.

4\. The Graveyard Book (Neil Gaiman) - It's ok, but not as good as I had hoped.

5\. Coraline (Neil Gaiman) - It's a children's book, and very short, but I liked it a lot.

6\. Accelerated C++ (Koening/Moo) - Not finished, I was under the impression it's "C++ for programmers well-versed in other languages" and for that it's a bit slow-starting, but not bad I guess

I really need to read more. :|

</comment><comment><USER30> Here is my list: [https://kirubakaran.com/bookshelf/](https://kirubakaran.com/bookshelf/)

My 2017 favorites:

scifi: [https://kirubakaran.com/bookshelf/columbus- day/](https://kirubakaran.com/bookshelf/columbus-day/)

nonfic: [https://kirubakaran.com/bookshelf/data-science-from- scratch/](https://kirubakaran.com/bookshelf/data-science-from-scratch/)

fiction: [https://kirubakaran.com/bookshelf/everyone- burns/](https://kirubakaran.com/bookshelf/everyone-burns/)

<comment><USER31> Hi Kirubakaran,

I'm going to give Columbus Day a try.

What software do you use for your bookshelf? It does a good job.

I've been tracking my reading habits via Goodreads for a few years too, although I just post a summary at the end of the year.

[https://www.michevan.id.au/tag/books/](https://www.michevan.id.au/tag/books/)

<comment><USER30> Hi Evan, thanks! :-)

I use Hugo [1]. Like you, I too track my books on Goodreads. So I wrote a simple Python script to add an org file to Hugo, for each book. It is an easy set up. Please send me an email (in my profile) if you're interested and I'll share the script with you.

I strongly recommend the audiobook version of Columbus Day, if you can do that.

[1] [https://gohugo.io/](https://gohugo.io/)

</comment></comment></comment><comment><USER32> This year I read 31 books. Only 8 were non-fiction. I'm hoping to finish another 2 before the year ends.

My top 3 were.

1\. The Mistborn series by Brandon Sanderson. This series did a good job of balancing big and little picture, while givings us a neat form of magic to learn about.

2\. Stock Market Cash Flow from the RDPD series. In 2016 I had read several books on fundamental(or value) investing, and this book helped me bust out of the thinking that, that style is the only way to look at, and earn in the stock market.

3\. Snow Crash. This book was just fun. The characters were enjoyable to watch, and there was some clever stuff in this book.

</comment><comment><USER33> * The Unconsoled (Kazuo Ishiguro)

* Never Let Me Go (Kazuo Ishiguro)

* Influx (Daniel Suarex)

* Sputnik Sweetheart (Haruki Murakami)

* Apex (Ramez Naam)

* One Second After (William R. Forstchen)

* Anna Karanina (Leo Tolstoy)

* Neuromancer (William Gibson)

* A Farewell to Arms (Ernest Hemingway)

* Crux (Ramez Naam)

* A Moveable Feast (Ernest Hemingway)

* Hardboiled Wonderland and The End of the World (Haruki Murakami)

<comment><USER34> To continue the Ishiguro and Hemingway theme, two of the books I enjoyed most this year were The Buried Giant (Ishiguro) and The Old Man and the Sea (Hemingway).

<comment><USER20> Short stories from Nocturnes are good as well.

</comment></comment></comment><comment><USER35> Into Thin Air - Jon Krakauer

If you like reading adventurous books, i'd recommend it. This one is about the Mt. Everest expedition of a group of people and the disaster that fell upon them.

You're Surely Joking Mr. Feynman - Richard Feynman

This one is collection of events in the life of Feynman. He's mostly known for being a scientist, but he's equally talented in few other areas as well. An interesting and fun book.

Blink: The Power of Thinking Without Thinking - Malcolm Gladwell

Recommended if you are into psychology and knowing how our thoughts and actions are affected by our subconscious.

<comment><USER36> The sequel to _Surely You 're Joking Mr. Feynman_, titled _What Do_ You _Care What Other People Think?_ is also really good, and includes his account of investigating the Challenger disaster which is worth the read just for that chapter.

</comment></comment><comment><USER37> 1\. Fermat's Enigma: The Epic Quest to Solve the World's Greatest Mathematical Problem - I've been on a giant math books kick. I really enjoyed Simon Singh's other book, The Code Book, so this one is awesome.

2\. The Code Book - If you're really into the history of cryptography, this book is for you.

3\. The Subtle Art of Not Giving a F*ck - Not a really a revelatory book by any sorts. But a fun read.

4\. The Handmaid's Tale - Revisiting this since the TV series came out and I really felt like getting traumatized all over again.

<comment><USER38> "I've been on a giant math books kick"

Any other math books recommendations?

<comment><USER37> Yup! Making my way through Zero: The Biography of a Dangerous Idea right now. It's a little more "pop math" than Fermat's Enigma or The Code Book.

I also have The Man Who Loved Only Numbers and Elliptic Tales on my to-read list once I wrap up Zero.

<comment><USER38> Awesome! I'll check them out. (Read The Man Who Loved Only Numbers already, it's great).

If you're looking for something else, "Journey Through Genius" is absolutely the best semi-pop-science Math book. It's premise is that it goes through about 10 of the most interesting proofs in mathematics, giving their history and context, then the actual proof.

It does what few other "pop" books attempt - it actually gives the real proof, taking you through all the steps. If you work it, you come away actually knowing how to prove the various things there. More interestingly, it gives the original historic proof, which is not what you always encounter. It even tends to explain the problems with the original proof, if any. And since it gives the history, you learn a lot.

It's by far my favorite non-textbook math book, and I can't recommend it more highly if you're into that sort of thing.

<comment><USER37> This sounds right up my alley. Thanks!

</comment></comment></comment></comment></comment><comment><USER16> Sorry, this got a little longer than I meant it to be

\- Skunk Works: A Personal Memoir of My Years at Lockheed - It's over 20 years old now but still really good, especially if you're into planes like the U-2, F-117, and SR-71

If you're wanting a deeper understanding of the other side of the war on terror, I'd recommend the following:

\- I Was Told to Come Alone: My Journey Behind the Lines of Jihad

\- Salafi-Jihadism: The History of an Idea

\- The Way of the Strangers: Encounters with the Islamic State

\- After the Prophet: The Epic Story of the Shia-Sunni Split in Islam

\- The Black Banners: The Inside Story of 9/11 and the War Against al-Qaeda

If you're wanting a dive into Russia:

\- The Invention of Russia: From Gorbachev's Freedom to Putin's War

\- The Red Web: The Struggle Between Russia's Digital Dictators and the New Online Revolutionaries

\- Nothing Is True and Everything Is Possible: The Surreal Heart of the New Russia

If you're wanting true Spy stuff:

\- The Billion Dollar Spy: A True Story of Cold War Espionage and Betrayal

\- The Spy's Son: The True Story of the Highest-Ranking CIA Officer Ever Convicted of Espionage and the Son He Trained to Spy for Russia

\- Left of Boom: How a Young CIA Case Officer Penetrated the Taliban and Al- Qaeda (the author is a little full of himself, but still, it's interesting)

</comment><comment><USER39> Two of the most interesting books I've read this year are:

1\. Man's search for meaning, by Viktor Frankl. He was an Austrian psychiatrist who founded Logotherapy as a form of analysing one's life with the idea of finding meaning or living a purposeful life. According to Frankl, such a life would mean doing important/meaningful work, enjoying nature in all it's beauty, loving and taking care of another person and being courageous when going through hard times. These are things that I personally consider part of the common sense package I had built-in when I was born, so this book kind of talks to my soul. I would recommend it to anyone who is highly self- reflective.

2\. Stumbling on happiness, by Daniel Gilbert. This was an interesting read and the different studies described in the book made me think how would I react in a similar situation and I realised funny things about how memory works and how does our brain imagine future events.

</comment><comment><USER40> A few of the best were:

What Technology Wants by Kevin Kelly. A really profound and interesting look into what technology is. Technology evolves through the same sort of Darwinian process that life evolves. Technology is in some sense alive, and Kelly's perspective on it is wonderfully refreshing. I also read his book Out of Control, which is fantastic.

Sapiens by Yuval Harari. Enough people are talking about this one that I don't have to say much, suffice it to say it's a fascinating look into human history a la Guns, Germs, and Steel.

The Lucifer Principle by Howard Bloom. If you're a fan of Harari you'll love this one. It's an alternative scientific look at evil, and how evil appears to be encoded into our species.

Hyperspace by Michio Kaku. Kaku is an amazing popular science writer bar none and this is his exploration of modern physics and string theory. The most concise and understandable explanation of modern physics I've read, which is part for the course with Kaku.

Red Queen by Matt Ridley. A fascinating look at sex, and why the human sex drive, and therefore human nature, is the way it is.

</comment><comment><USER41> The full list: [https://gitlab.com/rlease/Books](https://gitlab.com/rlease/Books)

My list lines up with a lot of books that people have recommended here, so I'll try to add a few favorites that haven't been mentioned so far.

Fiction:

1\. Ubik - I read a bunch of Philip K. Dick this year, but this was my favorite. It's delightfully mind bending and left me thinking about it long after the book was done.

2\. All the Pretty Horses - Beautifully written. McCarthy has an uncanny ability to paint with words.

3\. Cannery Row - Short, witty, and full of interesting characters.

Nonfiction:

1\. The Idea Factory - A dive into how Bell Labs became such an innovation powerhouse and gives a rounded picture of the figureheads that brought it so much fame.

2\. Moonwalking with Einstein - A fun read about a journalist who took researching a memory competition a bit too seriously.

3\. Countdown to Zero Day - A fascinating look at the development and deployment of Stuxnet -- the virus built to set Iran's nuclear program back.

<comment><USER42> If you liked The Idea Factory, you should read Kitten Clone. Kind of a dark sequel.

<comment><USER41> Interesting, thanks for the recommendation!

</comment></comment></comment><comment><USER43> Here's quite a few, but they might be of interest to others.

1\. You Have the Right to Remain Innocent: great advice that I had never seen anywhere else (except his video that started the whole thing).

2\. The Vital Question: good overview of origin of life research.

3\. Fragment: hard science fiction (is that the term?) that delved into evolution and dovetailed with some of the reading I had been doing around that subject.

4\. The Science of Navigation: delved into the wonder of current navigational technology and how we got to here.

5\. The Lost City of the Monkey God: bought on a lark, made me realize that archaeology can still find new things nowadays.

6\. Island of the Lost: historical account of two shipwrecks on the same island at the same time that knew nothing of each other.

7\. Protecting the Gift: another eye-opener about being more aware of the ways people _can_ prey on children.

8\. Wondrous Contrivances: how people reacted to new techologies in the past.

9\. Rig Ship for Ultra Quiet: submariner's account of life during a Cold War operation.

</comment><comment><USER31> The Aeon 14 novels following Tanis Richards[1] have been a consistently good read. The Intrepid Saga and The Orion War series. Haven't ventured into the other offshoots as yet.

The Dome Trilogy[2] was also pretty good, as are the Rho Agenda series[3][4][5].

And if you prefer horror to sci-fi, the I Am Not a Serial Killer series[6] was very good overall, although I thought it lost some steam in the last two books.

And finally, The Rosie Project[7] was so completely charming I ended up reading it straight through in one night.

[1] [https://www.goodreads.com/author/list/6426890.M_D_Cooper](https://www.goodreads.com/author/list/6426890.M_D_Cooper)

[2] [https://www.goodreads.com/book/show/25501349-unexpected- rain](https://www.goodreads.com/book/show/25501349-unexpected-rain)

[3] [https://www.goodreads.com/series/61746-the-rho- agenda](https://www.goodreads.com/series/61746-the-rho-agenda)

[4] [https://www.goodreads.com/series/142618-the-rho-agenda- incep...](https://www.goodreads.com/series/142618-the-rho-agenda-inception)

[5] [https://www.goodreads.com/series/175066-rho-agenda- assimilat...](https://www.goodreads.com/series/175066-rho-agenda-assimilation)

[6] [https://www.goodreads.com/series/49883-john- cleaver](https://www.goodreads.com/series/49883-john-cleaver)

[7] [https://www.goodreads.com/book/show/18015965-the-rosie- proje...](https://www.goodreads.com/book/show/18015965-the-rosie-project)

</comment><comment><USER44> The archipelago of another life from Andreï Makine. I don't think it's already translated in English, but since his other books has been translated, I think this one will be too.

Les chemin noirs by Sylvain Tesson. I don't think it will be translated in English but I enjoyed it a lot (and half of my family too). Sylvain Tesson is a traveller, he has walked across a lot of countries (mostly Russia and Asia). After a bad fall (multiple broken bones, head trauma) he decided to walk across France along the so-called 'empty diagonal' from South-East to North- East, recounting a solitary walk on forgotten/rarely-used trails (the so- called 'chemins noirs' or black trails), talking about places mostly abandoned by the current society. He'll also talk about the people he's meeting along the way and the friends that accompanied him along the way.

</comment><comment><USER45> My target this year was one book every other day, same as last year. Goodreads has my ratings [https://www.goodreads.com/review/list/8007012-aditya-y?shelf...](https://www.goodreads.com/review/list/8007012-aditya-y?shelf=2017)

</comment><comment><USER46> 1\. Born to Run: A Hidden Tribe, Superathletes, and the Greatest Race the World Has Never Seen

It's a fun read, and got me inspired to run my first ultra marathon.

2\. Alone on the Wall

Inspiring stories about this amazing rock climber Alex Honnold, as told by himself and one other experienced climber. You get a little insight into what makes him tick.

</comment><comment><USER47> Recommend:

1) The Power Broker - About Robert Moses, the most powerful city planner in New York from the 1930s to the 1960s. Great if you're interested in city planning, how people gain and exercise power, and the real politik of government.

2) The Jungle - Remembered as an exposé of meatpacking, but really more than that. Phenomenal story about early 20th immigrants to Chicago trying to take part in the American Dream but struggling to survive. Surprisingly relevant today.

3) The Big Con - Fascinating look at con artists in the first half of the 20th century.

</comment><comment><USER48> At the Existentialist Café: Freedom, Being, and Apricot Cocktails

It's an amazing book on philosophy, history, and much more. It felt very relevant to current times. The philosophers in question lived around and through WWII and it examines how their ideas came about before and after as well.

[https://www.goodreads.com/book/show/25658482-at-the- existent...](https://www.goodreads.com/book/show/25658482-at-the- existentialist-caf)

</comment><comment><USER49> 1\. 10% Happier

2\. Traction

3\. Unshakable

4\. Shoe Dog (This has been my favorite book thus far of 2017, I did not think it would of left such a lasting impression on me about life and success and business)

5\. Start with Why

6\. The Subtle Art of Not Giving a F*uck

</comment><comment><USER50> Fahrenheit 451

Animal Farm

The Gene: An Intimate History

The Martian

Currently reading Sapiens: A brief history of humankind. I would recommend all these books, if you're interested in the subjects they are written about.

</comment><comment><USER51> Currently reading: Hyperion.

* Peak: Secretes From the New Science of Expertise

* The Hard Thing About Hard Things

* American Gods

* The Dark Tower

* Children of Time

* Sapiens

* The Lies of Locke Lamora: Gentleman Bastards #1

* Red Seas Under Red Skies: Gentleman Bastards #2

* Dark Matter

* The Dark Tower #1

* Guns of The Dawn

* The Hunter Killers

* Snow Crash

</comment><comment><USER52> Reinventing Dell. How a company with an entrepreneurial spirit that allowed it to innovate then collapsed in on itself like a dying star.

[https://www.goodreads.com/book/show/27410889-reinventing- del...](https://www.goodreads.com/book/show/27410889-reinventing-dell)

</comment><comment><USER53> 1\. Sapiens: A Brief History of Humankind

2\. Surely You're Joking, Mr. Feynman! (Adventures of a Curious Character)

3\. The Loyal: The Story of Atwood and the Second Civil War (disclosure - <USER7> father wrote this book)

4\. The Power of Habit: Why We Do What We Do in Life and Business

5\. Grit

I thoroughly enjoyed all of these. It was interesting to see how Grit and The Power of Habit played off each other.

<comment><USER20> Would you care to add a few lines about Sapiens? Plan to read it. But only tentatively.

<comment><USER53> Sapiens opened my eyes to social constructs and human behavior and forced me to think about the vast timeline of humanity and how small our time is within it. Personally it provoked a re-visit to the philosophical questioning of life.

<comment><USER20> Thanks.

</comment></comment></comment></comment><comment><USER54> 1\. The Tolkien Reader by J.R.R. Tolkien - If you are into trolls living under a bridge, and more.

2\. Smoke and Mirrors: Short Fiction and Illusions by Neil Gaiman - If you are into a young knight with a cool horse looking for a holy grail but to only find out an elderly woman bought it from a thrift store, and more.

</comment><comment><USER55> \- The Road to Character (David Brooks)

\- Code (Charles Petzold)

\- Soft Skills: The Software Developer's Life Manual (John Z. Sonmez)

\- Zero Bugs and Program Faster (Kate Thompson)

\- Daemon (Daniel Suarez)

\- Algorithms to Live By: The Computer Science of Human Decisions (Brian Christian)

\- How to Talk to Anyone: 92 Little Tricks for Big Success in Relationships (Leil Lowndes)

</comment><comment><AUTHOR> Pretty popular and not a niche book, but I enjoyed Give and Take by Adam Grant very much [0].

\- [0] [https://www.robinwieruch.de/lessons-learned-give-and- take/](https://www.robinwieruch.de/lessons-learned-give-and-take/)

</comment><comment><USER56> \- The Innovator's Dilemma by Clay Christensen

\- Thinking, Fast and Slow by Daniel Kahneman

\- A Briefer History of Time by Stephen Hawking

\- The Lean Startup by Eric Ries

\- Steve Jobs by Walter Isaacson

\- The Industries of the Future by Alec Ross

\- Never Split the Difference by Chris Voss

\- Start with No by Jim Camp

\- How Google Works by Eric Schmidt and Jonathan Rosenberg

\- The Everything Store by Brad Stone

\- The Inevitable by Kevin Kelly

</comment><comment><USER57> Top books that I read this past year:

\- Hillbilly Elegy By JD Vance

\- Golden Son by Pierce Brown (second book in a trilogy) liked the whole trilogy

\- Rosie Project/Rosie Effect by Graeme Simsion

\- Graceling by Kristin Cashore

\- Station Eleven by Emily St. John Mandel

</comment><comment><USER58> Worth mentioning: 1\. Ready Player One 2\. On The Road (re-read)

</comment><comment><USER59> I would recommend Red Rising. A very good read!

<comment><USER60> I hadn't heard of this, and for anyone else wondering, it's a sci-fi novel

[https://www.amazon.com/Red-Rising-Pierce- Brown/dp/034553980X](https://www.amazon.com/Red-Rising-Pierce- Brown/dp/034553980X)

</comment></comment><comment><USER61> A couple of books I've read can be found at [https://www.theceolibrary.com/nick- janetakis-2771.html](https://www.theceolibrary.com/nick-janetakis-2771.html).

They are mainly focused on communication and getting better at selling yourself and your code. There's also a couple mixed in that will help improve other non-technical skills which in turn amplify your existing coding skills.

</comment><comment><USER62> India: A Million Mutinies Now - V.S. Naipaul

Recommended by a friend who works on mobility policy in India.

<comment><USER20> Yes. It is a good one.

For me India: A Wounded Civilization by Naipaul was even better.

It is also from his India trilogy. I have read it a couple of times and even today I read a few pages. Highly recommended if you are open minded. A few people to whom I recommended it were quite offended. I guess that is because Naipaul has sharp eyes and blunt way of putting his observations.

</comment></comment><comment><USER63> * Currently reading: Edgedancer

* Flowers for Algernon

* Going Rogue: Spells, Swords, & Stealth

* Split the Party: Spells, Swords, & Stealth

* NPCs

* Children of Time

* Death's End

* The Shining

* IT

* All 7+1 books of The Dark Tower

</comment><comment><USER64> The Gods Themselves by Isaac Asimov was definitely my favorite.

</comment><comment><USER65> 1\. Selected Essays of Warren Buffett

2\. First, Break all the Rules

3\. Between the World and Me

</comment><comment><USER66> My general rule is: if the book is in Barnes & Nobles its not worth reading. If you want true enlightening from reading branch out from what everyone else reads. The best books I have ever read in my life didn't even get published. Check out Thomas Hardy: The Poor Man and the Lady. Which was rejected my 5 publishers

<comment><USER67> I haven't walked into a Barnes & Noble in a while, for the one that used to be in walking distance is closed. But I would be very surprised if I couldn't walk into the nearest B&N and find forty pounds of books that a) are worth reading and b) that I haven't read.</comment></comment>


Ukraine's PM Azarov and government resign - <AUTHOR> http://www.bbc.co.uk/news/world-europe-25932352 <comment><USER2> I may be mistaken, but wasn't it originally President Yanukovych who did not agree to sign the EU Accords that launched these protests in the first place?

This may be a sign of progress, but I believe we may be celebrating the ouster of the wrong guy. (Please correct me if I'm wrong.)

<comment><USER3> You're right, and not many people in the opposition are celebrating "the victory" yet. Most still call for the immediate re-election, and discarding all the recent changes to the constitution.

For the record, the mass protests weren't triggered by any particular agreement, they started after the police beat the shit out of (not just dispersed) a group of students during a completely peaceful demonstration. They grew bigger after Yanukovich signed anti-protest laws.

</comment></comment><comment><USER4> What's that supposed to accomplish? It's the parliament that passed the anti- protest laws and other bad laws the people didn't agree with. People want re- election, not just a different government under the same parliamentary structure.

<comment><USER3> The anti-protest laws have been repealed as well [http://www.ctvnews.ca/world/ukrainian-parliament-repeals- ant...](http://www.ctvnews.ca/world/ukrainian-parliament-repeals-anti-protest- laws-pm-submits-his-resignation-1.1658973)

</comment></comment><comment><USER5> What is the size of Ukraine in relation to the US? On a map, it seems like a huge country.

<comment><USER6> About the size of Texas with twice the population. So yes, it is a rather large country by European standards.

<comment><USER7> Texas is about 15% bigger (because everything is bigger in Texas).

</comment></comment></comment><comment><USER8> Russia, your move.

<comment><USER3> This was Russia's move.

<comment><USER9> Looks like he was got on the russian reversal.</comment></comment></comment>


Google Search Results for Blm - <AUTHOR> look at autocomplete suggestions for "blm is " on google compared to bing.  just some manual search results limitations, nothing to see here.  try the same exercise for any other organization. <comment><USER2> Bing also completes "is hillary clinton" with "at gitmo". Bing doesn't bother curating search suggestions while Google has decided that suggestion is categorically different from search and they curate inflammatory terms.

You'll note for example that Google also doesn't suggest anything for "patriot prayer is".

Speaking of inflammatory, have you ever noticed how every one of your submissions and comments are flagged? Literally every time.</comment>


Ask HN: FireFox/Chrome Plugins as a product? - <AUTHOR>

Would you pay for a Firefox or Chrome plugin, if it increased your productivity? <comment><USER2> A Friend of mine runs <http://www.activeinboxhq.com/> which is a freemium chrome/firefox plugin, he seems to do well for himself and has a good community around it, but he ran it on donations for the first year or two</comment>


Game developers share what they're most proud of making - <AUTHOR> https://www.rockpapershotgun.com/2020/04/13/developers-of-your-favourite-games-share-what-small-thing-theyre-most-proud-of-making/ <comment><USER2> I had no idea Getting Over It had an ending like that. I'll never play it so don't consider myself spoiled but getting there entirely unaware must have been a great experience.

I wonder how many people swore at him for what they got put through ;)

When you're done with the article, I found a link in the comments by Bennett Foddy about naming things (related to his role in naming the rooms in VVVVVV) which is also worth a read: [https://distractionware.com/blog/2010/01/down- under/](https://distractionware.com/blog/2010/01/down-under/)

<comment><USER3> > I wonder how many people swore at him for what they got put through ;)

I heard him mention in an interview that he received a lot of abuse (cathartic, not mean, from the way he described it). I think the mobile version actually used text messages, which must've been fun for him after the game took off.

EDIT: It's here, in a GDC presentation: [https://www.youtube.com/watch?v=N4UFC0y1tY0#t=39m20s](https://www.youtube.com/watch?v=N4UFC0y1tY0#t=39m20s) \-- the whole presentation is worth watching.

</comment></comment><comment><USER4> > _"Trigger Happy is a two-player deathmatch game I made when I was 12 years > old, using the Klik & Play game-making tool._

Ha, I played that game when I was around that age myself. It's one of those things that you don't remember until you see it again and the memories come back.

The article conveniently has a download link included.

<comment><USER5> Klik and Play was great. I made a multi-minigame project with it for months ... until shutting down Windows 3.1 cut off the save process. No backups :(. I was experimenting with making an RTS by that point.

EDIT: typos

</comment></comment><comment><USER6> One of the featured games is Kine, a cool looking 3D puzzle game. The creator, Gwen Frey, just did a great GDC talk, "The Kine Postmortem": [https://www.youtube.com/watch?v=wDG_EvHCIxQ](https://www.youtube.com/watch?v=wDG_EvHCIxQ)

<comment><USER7> Kine looks awesome. Thanks for the heads up on it.

</comment></comment><comment><USER8> I could not help, but smile at Divinity part. I absolutely despised Red Prince, but it only shows the writers did a good job creating non-bland character. Also now I know where the inspiration came from. Neat.

</comment><comment><USER9> I love articles like this. And I can definitely relate. Game development allows for a lot of joy, frustration and eventually pride once you look back at it.

Also reminds me of the old twitter thread where game developers shared their various tricks: [https://twitter.com/Gaohmee/status/903510060197744640](https://twitter.com/Gaohmee/status/903510060197744640) Summarized in this article: [https://www.polygon.com/2017/9/2/16247112](https://www.polygon.com/2017/9/2/16247112)

</comment><comment><USER10> I was going to give a talk at QGCon about what I was most proud of making in The Sims, but the conference was canceled due to Coronavirus of course.

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

I plan on publishing a paper about what I would have talked about, and I'll post that to HN when it's ready, but for now, here's the abstract I wrote, and a few notes and references.

\----

How Inclusivity Saved The Sims. By Don Hopkins, Ground Up Software.

Abstract:

The Sims has evolved with society over two decades towards a more inclusive, tolerant world celebrating diversity and creativity. Its procedural rhetoric promotes inclusivity, diversity, personalization, and tolerance, and supports self-expression, creativity, storytelling, and sharing. Players impress their own identities, families, homes, communities, and stories into the game, and share their own personal emergent narratives with tools like The Sims Family Album and The Sims Exchange.

The Sims presumes to model human minds and relationships, but necessarily makes brazen simplifications due to technological constraints. It optimizes for playability instead of realism, while making concessions to marketability, corporate interests, societal norms, and taboos. But somehow it works, and this paper attempts to explain some of the magic.

Will Wright defined the "Simulator Effect" as how players imagine the simulation is vastly more detailed, deep, rich, and complex than it actually is: a magical misunderstanding that you shouldn't talk them out of. He designs games to run on two computers at once: the electronic one on the player's desk, running his shallow tame simulation, and the biological one in the player's head, running their deep wild imagination.

The "AI" of The Sims is scripted in a noodly visual programming language called "SimAntics", and is distributed throughout the objects and characters of the Sims microworld. But it magically offloads most of the heavy lifting into the player's own imagination, incorporating and enriching their intertwingled tapestry of common-sense knowledge and stories about people, families, and communities.

The graphical design of The Sims was inspired by Scott McCloud's "Understanding Comics", in which he illustrated how the "Masking" visual style draws abstract characters against realistic backgrounds, which increases empathy and projective identification, empowers emotional connections, and permits players to easily and deeply identify with characters.

The educational philosophy of The Sims and SimCity was inspired by Seymour Papert's "Constructionism" learning theory, with which learners construct mental models to understand the real world by building tangible personally meaningful shareable microworlds, and learn by discovery and exploration, by leveraging information they already know to learn more, and architecting their own educations.

This paper reviews the history of inclusivity in The Sims franchise over two decades, and explains some techniques for imagination, persuasion, identification, empathy, storytelling, and education, which can also make other games more inclusive, expressive, and enlightening.

\----

<comment><USER10> The Sims Design Documents

[https://donhopkins.com/home/TheSims/](https://donhopkins.com/home/TheSims/)

The Sims Design Document Draft 3 (1998-08-07)

[https://donhopkins.com/home/TheSims/TheSimsDesignDocumentDra...](https://donhopkins.com/home/TheSims/TheSimsDesignDocumentDraft3-1998-08-07-DonsReview.pdf)

On page 5, Don Hopkins wrote the following comments about same sex relationships in the game:

The whole relationship design and implementation (I've looked at the tree code) is Heterosexist and Monosexist. We are going to be expected to do better than that after the SimCopter fiasco and the lip service that Maxis publically gave in response about not being anti-gay. The code tests to see if the sex of the people trying to romantically interact is the same, and if so, the result is a somewhat violent negative interaction, clearly homophobic. We are definitely going to get flack for that. It would be much more realistic to model it by two numbers from 0 to 100 for each person, which was the likelyhood of that person being interested in a romantic interaction with each sex. So you can simply model monosexual heterosexual (which is all we have now), monosexual homosexual (like the guys in SimCopter), bisexual, nonsexual (mother theresa, presumably), and all shades in between (most of the rest of the world's population). It would make for a much more interesting and realistic game, partially influenced by random factors, and anyone offended by that needs to grow up and get a life, and hopefully our game will help them in that quest. Anyone who is afraid that it might offend the sensibilities of other people (but of course not themselves) is clearly homophobic by proxy but doesn't realize it since they're projecting their homophobia onto other people.

\----

The Kiss that Changed Video Games

[https://www.newyorker.com/tech/annals-of-technology/the- kiss...](https://www.newyorker.com/tech/annals-of-technology/the-kiss-that- changed-video-games)

The 1999 Electronic Entertainment Expo, or E3, a video-game conference held in Los Angeles, California, was a typically lavish, if bawdy, affair. Here, for three days, the world's video-game publishers gathered to show off their forthcoming titles to press and to purchasers in an overstimulating marketing circus. David Bowie performed at one of the conference's orbiting parties that week, and Bill Goldberg and some other glistening-skinned wrestlers grappled one another in a custom-built ring on the publisher E.A.'s gargantuan booth. Away from the action of its main stage, E.A. had stationed a humble area advertising The Sims, an ambitious social-simulation project that almost nobody outside of its development team believed in.

For E.A., The Sims, the latest from Will Wright, the celebrated designer of 1989's city-planning game SimCity, was a legacy project, inherited when the company purchased its development studio, Maxis. The game had been in stammering development since 1993, when Wright first had the idea for a simulation that would model human behavior, not from the bird's-eye viewpoint of his earlier game but from the ground zero of domesticity. But replicating the mundane dramas of the living room in game form had proven to be a tall challenge: The Sims was almost abandoned numerous times. "We all knew that if we couldn't generate any interest at E3 that year, then the game would be cancelled for good," Patrick J. Barrett III, one of the game's programmers, told me. "E.A. did nothing to help us. They hid us away. The game wasn't even displayed on the large screen with the other title's trailers." But, within hours, an unplanned, illicit kiss between two of the game's background characters made The Sims the talk of the show.

\----

Player Created Content

How to make the leap from smut to art, while continuing to support smut in a plausibly deniable way that you can sell through WalMart? Don't do smut explicitly, but put the tools to create their own "artistic" content into the hands of the users.

"Time to Penis" -A phenomenon that online game developers had been aware of for years, which didn't have a name until someone came up with TTP. It's traditionally measured in nanoseconds.

Spore Penis Monsters.

\----

[https://twitter.com/itstheshadsy/status/1151868012707962881](https://twitter.com/itstheshadsy/status/1151868012707962881)

Sims developer Don Hopkins released a bunch of design documents from The Sims, including this one from August 1998 with his notes about romance:

[https://donhopkins.com/home/TheSims/](https://donhopkins.com/home/TheSims/)

It's incredible to see the internal discussion about romance in The Sims written out so strongly like this

For more background: Will Wright's notebooks from the making of The Sims (viewable at @museumofplay !) mention "same sex move-in romance" as a potential feature, but it sounds like there wasn't a plan about how or whether to implement that until Don Hopkins stood up for it here

Here's an article with additional context from Barrett's perspective about when/how same-sex relationships were added. The article mentions "going back and forth for several months" before he joined, which likely refers to what these documents are saying

[https://www.newyorker.com/tech/annals-of-technology/the- kiss...](https://www.newyorker.com/tech/annals-of-technology/the-kiss-that- changed-video-games)

[https://twitter.com/xardox/status/1152266586025332736](https://twitter.com/xardox/status/1152266586025332736)

Here's the offending "tree code" from "The Sims Steering Committee" internal release of June 4, 1998.

[https://pbs.twimg.com/media/D_2sWbsXUAA5UtO?format=png](https://pbs.twimg.com/media/D_2sWbsXUAA5UtO?format=png)

[https://twitter.com/xardox/status/1223218416393367554](https://twitter.com/xardox/status/1223218416393367554)

The Sims turns 20 today! Here's an early pre-release version of The Sims for The Sim Steering Committee, from June 4 1998. #TheSims

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

[https://twitter.com/xardox/status/1223218212353060871](https://twitter.com/xardox/status/1223218212353060871)

The about dialog had a "No Shit!" button, and referred to it as "Project X":

[https://pbs.twimg.com/media/EPm- ekxXUAAqi2a?format=png](https://pbs.twimg.com/media/EPm- ekxXUAAqi2a?format=png)

        About Edith
        Edith Version 666 (motb) [No Shit!]
        Copyright (C) 1997, Maxis.

        Project X was designed by Will Wright, and programmed by
        Jamie Doornbos, Eric Bowman, Jim Mackraz, and Don Hopkins.

\----

Ian Bogost, Persuasive Games: The Expressive Power of Videogames.

Procedural rhetoric.

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

Procedural rhetoric or simulation rhetoric[1] is a rhetorical concept that explains how people learn through the authorship of rules and processes. The theory argues that games can make strong claims about how the world works—not simply through words or visuals but through the processes they embody and models they construct. The term was first coined by Ian Bogost in his 2007 book Persuasive Games: The Expressive Power of Videogames.[2]

Procedural rhetoric analyzes the art of persuasion by rule based representations and interactions rather than spoken or written word. Procedural rhetoric focuses on how game makers craft laws and rules within a game to convey a particular ideology.

[1] Frasca, Gonzalo (2003). "Simulation versus Narrative: Introduction to Ludology." In The Video Game Theory Reader. Ed. by Mark J. P. Wolf and Bernard Perron. New York: Routledge. 221–37 ISBN 9780415965798

[2] Bogost, Ian (2008). "The Rhetoric of Video Games." The Ecology of Games: Connecting Youth, Games, and Learning. Ed. by Katie Salen. The John D. and Catherine T. MacArthur Foundation Series on Digital Media and Learning. Cambridge, MA: The MIT Press. 117–40. ISBN 9780262693646

\----

SimCopter Himbo Easter Egg was a SimAntics Programming Bug

[https://web.archive.org/web/19991109030656/http://www.gamesp...](https://web.archive.org/web/19991109030656/http://www.gamespot.com/features/maxis/page6.html)

Indeed, SimCopter was shipped too soon, and as a result, it launched with one of the most controversial bugs in gaming history. A homosexual programmer at Maxis objected to the use of female characters as objects of affection in SimCopter. So, he decided to protest by putting what he termed "muscle boys in swim trunks" into the game. During the game, these characters would mysteriously appear and kiss each other, but only on very rare occasions. At least, that was the idea. Unfortunately, as the programmer told Wired magazine in 1996, "My random-number generator didn't work as I'd planned," and the characters appeared with startling regularity. Upon discovery of the errant code, the programmer was immediately fired, but the transgression spoke volumes about the frenetic and fragmented state of affairs at Maxis.

\----

Scott McCloud

Reinventing Comics:

[https://www.nextchapterbooksellers.com/book/9780060953508](https://www.nextchapterbooksellers.com/book/9780060953508)

"Anyone involved in interactive entertainment (games, web, etc.) should read this book. Scott McCloud has once again transcended the world of comics and tapped into much deeper issues of creativity entertainment and economics. This time he's looking into the future rather than the past." — Will Wright

Understanding Comics

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

Masking, abstraction, concrete background, abstract ground, projecting the reader or player into the scene.

Show vs. Tell

Transition and Gutters

Abstract vs. Realistic

Masking.

[https://en.wikipedia.org/wiki/Masking_(illustration)](https://en.wikipedia.org/wiki/Masking_\(illustration\))

The masking effect or masking is a visual style, dramatic convention, and literary technique described by cartoonist Scott McCloud in his book Understanding Comics in the chapter on realism. It is the use of simplistic, archetypal, narrative characters, even if juxtaposed with detailed, photographic, verisimilar, spectacular backgrounds. This may function, McCloud infers, as a mask, a form of projective identification. His explanation is that a familiar and minimally detailed character allows for a stronger emotional connection and for viewers to identify more easily.

It is used in animation, comics, illustration, video games (especially visual novels) and other media. It is common in Western graphic novels and Japanese comics and animation. The psychology behind the masking effect has been extended to rendering antagonists in a realistic manner in order to show their otherness from the reader.

\----

Tension Between Realistic Models and Fun Game Play

[https://medium.com/@donhopkins/designing-user-interfaces- to-...](https://medium.com/@donhopkins/designing-user-interfaces-to- simulation-games-bd7a9d81e62d)

Some muckety-muck architecture magazine was interviewing Will Wright about SimCity, and they asked him a question something like "which ontological urban paradigm most influenced your design of the simulator, the Exo-Hamiltonian Pattern Language Movement, or the Intra-Urban Deconstructionist Sub-Culture Hypothesis?" He replied, "I just kind of optimized for game play."

Discussion of all the third parties who wanted a version of SimCity that ham- fistedly taught whatever they had on their agenda. Misunderstanding the potentials of Constructionist Education. Ham-fisted attempts at patronizingly didactic pedagogy.

\----

Nurture -vs- Nature Debate

Can you decide to change your sexual preference? Should you be able to? What makes a game more fun? Does a game need to be realistic? What are the technological limits of the model (complexity, privacy, AI, machine learning)? Do we even know what the correct model is?

\----

Columbine

The Sims made its debut days before the shooting at Columbine, which triggered a moral panic over video games.

[https://en.wikipedia.org/wiki/Columbine_High_School_massacre...](https://en.wikipedia.org/wiki/Columbine_High_School_massacre#Video_games)

How did the Columbine shooting and subsequent backlash against violent video games affect the coverage and popularity of The Sims, as a counterpoint to Doom-type games?

Is The Sims a video violent game? There are numerous cruel and sadistic ways to painfully and violently kill people. Does that mean that The Sims is a violent video game?

\----

The Sims 4 Patch 34

[https://sims.fandom.com/wiki/The_Sims_4/Patch_34](https://sims.fandom.com/wiki/The_Sims_4/Patch_34)

The 34th patch for The Sims 4 was released on June 2, 2016. It updated the game to version 188.8.131.520 for PC and 126.96.36.1990 for Mac. The patch allows players to customize a Sim's gender in greater depth and allows previously gender-specific assets to be used by any Sims regardless of gender.

\----

</comment></comment><comment><USER11> I wrote games when I was around 10 years old.

I was very proud when I figured out how to calculate if two axis-aligned rectangles intersect. The most complex equation I knew then, and I did not have internet to look it up.

</comment><comment><USER12> There is no mention of Talos. This makes me sad.

</comment><comment><USER13> I would like to present – my son.

</comment><comment><USER14> The Pirate Queen example doesn't really seem like something to be proud of - choosing the gender of a character and making it powerful aren't challenges are they? Couldn't you do that by flipping a coin? Surely the thing to be proud of there is getting to a position where you have the authority to make those choices?

<comment><USER15> It's a decision she made that proved to be great, so she's proud of it. Strange how you targeted the only vaguely feminist achievement in the whole list.

<comment><USER16> Just to play devil's advocate, it's not really clear from the article what the designer is proud about. "The strongest and most expensive unit in our Pirate Faction is the Pirate Queen. She is kick ass, looks cool, and is even voiced by myself!" Why _shouldn 't_ she be kick ass and looking cool? Why _shouldn 't_ she be the most expensive unit in the faction? It's speaking to a narrative for which we have to guess the other side.

I think the implication is that players of the game are not predisposed to enjoy female units in the game. I don't know anything about the game, so maybe I'm missing something, but I actually find that insulting. Why is it a given that there will be such a misogynistic view? While we have to accept that some gamers _do_ have this awful point of view, I think it's part of the problem that some people feel that gamers _must_ be like that.

In some ways it is potentially a bit of a sad thing to be proud of. I mean it can be taken in a few ways. One might be proud to have pushed this strong female unit into the midst of an audience that normally wouldn't accept it. Or one might be proud to have been able to deliver the strong female unit that the audience has been hungering for.

I can see some people feeling a bit put out if they assume that the designer's intent was the former rather than the latter. It's potentially really demeaning.

<comment><USER15> Guy is hired by videogame studio, makes a kickass warrior and is proud of it. Tells it to interviewer. Is accused of pushing an egalitarist agenda by internet strangers. Come on guys.</comment></comment></comment></comment>


Create and manage VPN connection programmatically in iOS 8 - <AUTHOR> http://ramezanpour.net/post/2014/08/03/configure-and-manage-vpn-connections-programmatically-in-ios-8/

<comment><USER2> Wow! For years I've been looking for a VPN solution on iOS!!!

Thanks man!

</comment><comment><USER3> thanks man, it's awesome!

</comment><comment><USER4> something great is going on!

</comment><comment><USER5> finally!</comment>


Andromeda and the Milky Way: A Merger of Galactic Proportions - <AUTHOR> http://www.nytimes.com/2014/05/28/science/space/andromeda-and-the-milky-way-a-merger-of-galactic-proportions.html

<comment><USER2> Url changed from [http://www.nytimes.com/video/science/100000002906469/collidi...](http://www.nytimes.com/video/science/100000002906469/colliding- galaxies.html), which points to this. In general HN prefers text to video.

<comment><AUTHOR> I see, thank you. I'm sorry that I forgot to put "[video]" in the original title too, but of course that doesn't matter anymore.

</comment></comment><comment><USER3> FWIW, this result came out in 2012[0,1]. This NYT piece seems like it's just trying to use the non-event of the Swift/BAT detection[2] in M31 with with some other random M31 information to make a story. Unfortunately, there's not any new information in this NYT piece.

[0] (Nature summary of results) [http://www.nature.com/news/andromeda-on- collision-course-wit...](http://www.nature.com/news/andromeda-on-collision- course-with-the-milky-way-1.10765)

[1] (preprint of results) [http://arxiv.org/abs/1205.6865](http://arxiv.org/abs/1205.6865)

[2] [http://science.slashdot.org/comments.pl?sid=5211327&cid=4710...](http://science.slashdot.org/comments.pl?sid=5211327&cid=47107299)</comment>


Cache Them If You Can - <AUTHOR> http://www.stevesouders.com/blog/2012/03/22/cache-them-if-you-can/

<comment><USER2> One of the largest improvements I've noticed in between caching and optimizing in PHP has been turning on APC. I'm not aware of any drawbacks, if you have any let me know. I didn't do any bench marking, but it did make a significant impact on page loads to my eye, as well as the stats on the page.

<comment><USER3> While backend caching isn't what the article is about, you're absolutely right that an opcode cache such as APC _significantly_ improves backend performance. It's one of the first things I check for when I'm optimizing a client's PHP site.

</comment></comment><comment><USER4> To celebrate this article, I just set my cache size in Firefox to zero. Why? Aside from being a bit contrary by nature, I present the following...

Fact: My netbook is memory constrained and the network is often faster than my local disk.

Hunch: Caching content locally does nothing but thrash my disk, trash my FS cache and slow my entire computer down.

We'll see how it pans out. :-)

<comment><USER5> Cached HTTP resources are usually small in 10K's to 100K's. You meant your netbook is so memory constrained that it can't afford some megabytes of cache memory?

<comment><USER4> I am talking about on-disk cache, not in-memory cache.

Being memory constrained means I do not have a large filesystem cache and cannot afford to have it smashed by lots of cache reads/writes.

It also means the odds that a cached (on disk) resource is actually in RAM is low, so a cache hit involves multiple disk seeks which very quickly adds up to more latency than fetching over the network - especially when you consider that I have one disk which cannot run multiple seeks in parallel, whereas the network round trips can overlap.

Performance on modern computers very often boils down to avoiding disk seeks.

<comment><USER5> That's why I said http resources are typically small. They won't take up too much cache memory when brought in from disk. Filesystem caching is so good these days that if a file is used more than once, its disk seek time is negligible when amortized over its many read.

I'm pretty sure jquery.xx.min.js will be downloaded over and over again for every page if you don't cache it.

<comment><USER4> Seems I've been downvoted for an unhelpful answer. :-P

The problem isn't the size of each individual resource, it is the total volume of resources. In fact, the small size of web resources makes the problem worse, not better - a local disk beats the network when reading large volumes of sequential data (say, a movie). Small assets on the other hand, which you correctly assert are the majority, will result in lots of sequential disk seeks, whereas the network which can initiate many transfers in parallel can do much better.

Regarding the effect of the FS cache, I provide one unscientific data point: My Firefox cache had grown to 650MB in size - on a machine with 1GB of RAM. It is pretty obvious that the vast majority of those resources will not fit in the FS cache and will require some disk seeks to load and display. Reducing the size of the cache to something that more-or-less fits in RAM might make sense... but why bother with an on-disk cache at all then?

Constantly writing to the disk as I browse the web is also a major source of system load (cache churn, seeks, write traffic), and this effect is relative not to the size of the cache, but to the activity of my browser - turning the cache off eliminated this completely which may (or may not) offset any benefits provided by the occasional cache hit.

Finally, my testing implies that your worries about jquery and other shared elements within a website are needless, the browser also has a RAM cache and all the active things on a page live there. Clicking from page to page within a site does not trigger a reload of shared elements, even if the disk cache has been switched off.

I am still trying to come up with a way to accurately measure and benchmark the effects of local disk cache on the browsing experience. Once I have, I will run some tests and post the results.

Note that all of this is relevant to the OP, because the "call to action" of the OP was that browsers should increase the size of their disk caches. I suspect this would be, in many cases, a bad idea. I went and did the opposite, and so far my laptop - and the web - both feel snappier.

</comment></comment></comment></comment></comment><comment><USER6> > The HTTP Archive doesn't save response bodies so the determination of > "identical" is based on the resource having the exact same URL, Last- > Modified, ETag, and Content-Length.

I don't like this. Dynamic pages don't usually send _any_ of those headers, so the page will appear identical in his analysis, despite not actually being identical.

<comment><USER7> Dymanic pages properly programmed could and should send this headers. Also some frameworks and/or proxies manage this for you.

</comment></comment><comment><USER5> YSlow is a great tool in finding out whether caching is turned on for a resource.</comment>


Nexus 6 beats the iPhone 6 Plus by a mile in our blind camera comparison - <AUTHOR> http://www.phonearena.com/news/Nexus-6-beats-the-iPhone-6-Plus-by-a-mile-in-our-blind-camera-comparison_id64437

<comment><USER2> I'd say the Nexus 6 has much better definition than the iPhone6, but I think I prefer the warmer colours of the iPhone.

The only photo that seems strange is the last group (Santa against the wall), where it seems the Nexus 6 has less definition. You can't see the texture of the plaster, vs the iPhone, where the texture is quite noticeable.</comment>


World's most annoying website? - <AUTHOR> http://www.arngren.net/

<comment><USER2> Actually kinda cool. I mean, not if you're looking for anything specific. But it does have am artistic tint to it.

</comment><comment><AUTHOR> I'm kind of impressed the actual HTML isn't sloppier than it is.</comment>


There Is No Policy Proposal More Progressive Than Andrew Yang's Freedom Dividend - <AUTHOR> https://medium.com/basic-income/there-is-no-policy-proposal-more-progressive-than-andrew-yangs-freedom-dividend-72d3850a6245 <comment><USER2> Paywall</comment>


Good Managers Are So Rare - <AUTHOR> https://hbr.org/2014/03/why-good-managers-are-so-rare <comment><USER2> Unfortunately in a lot of environments if you are the kind of person who likes to spend most of their time focusing on politics you can get very far. This is because most of the other people are too busy working to have time to compete with you on a political level. I think this is why we see a certain percentage of destructive people in leadership positions. The only way to sort this out is from the top. But often the people at the top are also too busy to figure out what's going on. It's a weakness in the system that incompetent people can exploit.

<comment><USER3> What do you suggest we do? Have leaders that aren't good at politics?

<comment><USER4> Separate the reponcibiltiy of leading and managing?

</comment></comment></comment><comment><USER5> Good management is rare because the payoff can be longer. The benefits of an hour of week of investments by a manager today mostly accrue to others in a longer time horizon. It rarely helps this quarters numbers.

Good management is also very hard to measure, as it's not on a scale like technical skills. A good manager in peaceful times can be too soft in tough times.

</comment><comment><USER6> This is all true and extremely relevant to the software industry. If anyone is interested in learning more about effective management based on these ideas, I recommend the book, "First, Break All the Rules," which is based on the same Gallup research that informs this article.

<comment><USER7> Not that I'm a manager but I enjoyed _High Output Management_ by Andy Grove. It's short and sticks to KISS, I don't really subscribe to the belief that dealing with people is something you can learn from books -- The Art of War won't kindle a non existent fire, instead it amplifies something innate. A lot of methodology seems overly rigid and stiff to be useful for anything but sounding good in theory and failing in practice.

</comment></comment><comment><USER8> By definition "good" has to be rare, otherwise it wouldn't be good ...

<comment><USER9> "good: adjective, 2. having the required qualities; of a high standard."

I don't see "rare" being a part of the definition.

<comment><USER10> It's not in the definition, it's in the distribution curve that is implied. Good = better than average = rarer than the average.</comment></comment></comment>


Why Typewriters Continue to Be Relevant in the Indian Judiciary - <AUTHOR> http://www.caravanmagazine.in/vantage/typewriters-continue-relevant-indian-judiciary <comment><AUTHOR> The most relevant part:

> According to Kinnar, multiple factors contribute to the continuing relevance > of typewriters. One of them, he said, was the experience of the typists who > use typewriters. "Majority of the people who come to us are those with > documents in illegible handwriting that are to be presented in court. We, > the experienced typists, analyse them and compose it in a manner that is > acceptable to the court. New-age inexperienced computer operators cannot do > that." Another factor, he said, was that typewriters do not run on > electricity and do not incur a high cost of maintenance, since they only > require an initial investment and can function for around 25 years > thereafter. "The computer ink is costly while a typewriter ribbon costs only > Rs 60–70," Kinnar said. He added that a computer occupied more space while a > typewriter could rest on a small table.</comment>


Wikipedia is blacked out - <AUTHOR> https://en.wikipedia.org/wiki/Main_Page

<comment><USER2> Pro-tip: Disable JavaScript and you can browse the site normally in English.</comment>


About Bokeh - <AUTHOR> http://www.bokehtests.com/styled/ <comment><USER2> I am surprised about how biased this article is in assigning attributes like 'good', 'bad' or 'perfect' to Bokeh shapes. You can talk about this in these terms solely from an optical engineering pov.

The shape of Bokeh is often why a lens get picked for a shot.

What the author calls 'bad Bokeh' other people call 'soap bubble Bokeh' (google for it) and they are willing to cash out [2] for owning a lens that can produce this sort of thing. This is an artistic choice[1].

This article's generic statement that this sort of Bokeh creates images where the out of focus BG areas distract from the FG/in focus motive shows a narrow understanding of how Bokeh can be used in composing an image.

[1] [https://www.shutterbug.com/content/creating-unique-macro- ima...](https://www.shutterbug.com/content/creating-unique-macro-images- vintage-meyer-optik-goerlitz-%E2%80%9Csoap-bubble%E2%80%9D-lens)

[2] Caveat: I bought a Meyer Optik Trioplan 100mm f/2.8 replica on Kickstarter for this very reason: the 'bad' soap bubble Bokeh. I love this lens.

<comment><USER3> The "bad" pattern he calls out is not exactly the Trioplan soap-bubble style, it's the thing you get from a mirror telephoto lens.

In Trioplan images[1], the light intensity smoothly increases towards the edge of the disk of confusion, and creates a sharp edge. I agree that this looks kind of nice, although it's a quite specialized effect.

In mirror lens images[2], the "disk" of confusion is actually a ring, with _two_ sharp edges rather than just one. This is not at all pretty, and as far as I know basically nobody buys these lenses for this effect.

This actually matters a lot, because other than this, mirrors are superior to refractive glass lenses in almost every way (note that astronomical telescopes are always mirror-based), so if it was not for the bad bokeh we'd all use them.

[1] [https://fujilove.com/the-legend-and-the-bubble-bokeh- review-...](https://fujilove.com/the-legend-and-the-bubble-bokeh-review-of- the-meyer-optik-goerlitz-trioplan-100mm-f2-8/) [2] [https://hoaiphai.wordpress.com/2011/10/18/recumbent- review-t...](https://hoaiphai.wordpress.com/2011/10/18/recumbent-review-the- mighty-reflex-nikkor-c-500mm-f8/)

<comment><USER4> >>This actually matters a lot, because other than this, mirrors are superior to refractive glass lenses in almost every way

No. Reflective designs (mirrors) are usually of the casigrain type, and casigrain designs offer very narrow but limited zoom range field of views. This is at the cost of obscuration of the secondary mirror. Note that there are still refractive elements (lenses) in a casigrain design. This very narrow fov is why such designs are prefered in telescopes and other narrow fov application areas.

The majority of lens designs are refractive and this should give you an indication that a statement such as mirrors are superior to refractive designs simply is not true.

Edit - added application areas

</comment></comment></comment><comment><USER5> An R package `rayshader` that can emulate bokeh. It's nice read. [https://www.tylermw.com/portrait-mode- data/](https://www.tylermw.com/portrait-mode-data/)

<comment><USER6> Thanks for the shoutout!

</comment></comment><comment><USER7> If anyone's interested in the technical details of implementing state of the art real-time bokeh in a game engine, Guillaume Abadie's "Life of a Bokeh" slides from SIGGRAPH 2018 are really good:

[https://epicgames.ent.box.com/s/s86j70iamxvsuu6j35pilypficzn...](https://epicgames.ent.box.com/s/s86j70iamxvsuu6j35pilypficznec04)

Unfortunately, a video of the talk doesn't seem to be available online.

</comment><comment><USER8> As a very nearsighted person, I can see bokeh if I take off my glasses and look at points of light - either nearby small lights, or far-away large lights. Also, when I look at a bright sky through a tree's canopy, the canopy transforms into a breathtaking mosaic of bokeh, which becomes animated if the tree is swaying in the wind. Can people with normal vision experience this?

<comment><USER9> For me, points of light look like the canonical star shapes you see in telescope photos — which I don't really understand because from what I've read, that effect is due to the braces which hold the telescope's lens in place.

<comment><USER10> That's called a 'starburst' and it happens in human eyes for all sorts of reasons. It's possible naturally and also as a LASIK complication, for instance.

Look for 'starburst' here [https://visionsimulations.com/](https://visionsimulations.com/) Sadly the simulation site is down because of the new Cross-Origin restrictions on images in canvases but perhaps you can see what it looks like in the preview images on the main page and if you google 'starburst vision'.

</comment></comment></comment><comment><USER11> And its all done in software (or ML) with recent phones to get around the lack of a good lenses system. And for most people it seems to work satisfactorily.

This has been one of the complaints against camera manufactures recently, that the firmware on the cameras is wildly archaic.

<comment><USER12> If we're talking about non-point and shoot cameras, such as DSLRs or Mirrorless Cameras that cost $500+ such as my Sony A6000, I absolutely DO NOT want post-processing done on my camera.

Portrait mode on my iPhone 7+ looks okay at a glance, but thinks like hair, wires, and twigs are TERRIBLE on closer inspection.

Not to say the software couldn't be improved. For example, after taking a 20 second exposure, I have to wait another ~15 seconds before I can take another photo. I'd love for that processing time to be cut down.

<comment><USER13> The delay after taking long exposures is caused by the camera taking a dark frame with the same exposure length as your actual image. When you take a long exposure, the sensor can exhibit noise caused by "hot pixels". The dark frame is taken with the shutter closed so that the camera can get an image of just the hot pixel noise, which it then subtracts from your actual long exposure.

You can turn this off in the settings, but I imagine it's way easier for the camera to correct for this specific kind of noise than for Lightroom to do so.

I believe it kicks in once the exposure length is >2" on my Sony A7ii.

<comment><USER14> On the one hand that's correct. On the other hand you could completely avoid that if you did long exposures the way a Google Pixel (2+ I think) does it (in software):

Take lots of short exposures and fuse them. If the device is handheld you get variability in positioning for free, if it's on a tripod, it will automatically wiggle the OIS slightly to achieve the same effect.

<comment><USER15> It seems like movement would be effective for averaging out random noise, but the described process isn't for eliminating random noise, it's for eliminating persistent hotter pixels on the sensor.

<comment><USER16> Indeed, and in fact the pixel does exactly the same dark frame trick to identify hot pixels. I don't know that it takes as long though - perhaps it's hidden by the fact you can keep doing other things while the photo is processing.

<comment><USER14> It cannot do the same thing as an a6000, as it lacks a physical shutter.

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> Someone should mention the oval shaped, very cinematic, Anamorphic bokeh. Bokeh is not just the shape of blurry small light sources, but also changes the quality of any out of focus region, since the blur is doubled vertically compared to horizontally. A good read on the subject with images [https://www.provideocoalition.com/three-lenses-a-look-at- bok...](https://www.provideocoalition.com/three-lenses-a-look-at-bokeh-depth- of-field-and-geometry/)

<comment><USER18> I cringe whenever i see that oval bokeh in a film. It's so jarring. I can't believe a competent cinematographer would ever allow it in their shot.

<comment><USER19> Competent cinematography is about artistry and emotion, and whatever technical standards are necessary to achieve that. And _everything_ with technical issues about tradeoffs. Movies are _chock-full_ of tradeoffs.

Oval bokeh is... hardly noticeable to anyone except professional photographers, and also isn't inherently "bad", it's just different, and has its own personality.

If your standards are so perfectionist, I have a hard time believing you find any of Hollywood's cinematographers -- whether blockbuster or indie -- up to your competent standards. ;)

</comment></comment></comment><comment><USER20> One of my favorite Bokeh lenses is the Nikon 500mm reflex telephoto lens. The "Mak" style with a rear primary mirror and a front secondary works a lot like common compact telescopes. The Bokeh is tricky to apply, it's a fixed zoom telephoto lens so your subject must be at least 10 meters or so a way and it's hard to handhold, but the "donut" aperture of the lens makes for some very cool (or weird depending on your tastes) effects. The article calls this a "bad" lens but I love the effect.

<comment><USER21> Your definition conflicts with the author's.

1st paragraph:

>as I own this site, I get to define good and bad Bokeh for the purposes here! The other key term is "image." Bokeh is a property of IMAGES, not a property of LENSES.

<comment><USER21> not sure why I'm getting downvoted here for simply pointing out the author defines his definition of Bokeh in the 1st paragraph.

<comment><USER22> I would guess that people think that the author's preferred definition doesn't preclude other people from having different definitions. You seem to assume it does, at least in the context of this discussion, and that assumption is noxious to the people who are downvoting you.

<comment><USER23> I'd add that while the Author is correct--bokeh is a property of images, not lenses--its not materially different that how most photographers understand the term. While a lot of photographers may say things like "that lens has great bokeh", they don't think that bokeh is some quality in the lens. They are just shortening an idea lke "this lens produces images with great bokeh." It is a lazy way of rephrasing it, but I have never met a photographer that thinks bokeh is not referring to the image.

</comment></comment></comment></comment></comment><comment><USER24> Shape is important. I find that some lenses have a different look on-axis versus off-axis, either leading to ugly smearing, or pretty twirly bokeh.

The aesthetic also depends on image. Nice crisp circles of light are sometimes nicer than a Gaussian blur. As someone pointed out, mirror lenses have their uses too.

But there are lenses with just bad bokeh too.

<comment> jake-low > I find that some lenses have a different look on-axis versus off-axis, > either leading to ugly smearing, or pretty twirly bokeh.

This is indeed pretty interesting. It seems like double-Gauss lens designs like the Zeiss Planar and Biotar are especially prone to this kind of distortion. There's a Russian copy of the 58mm Biotar called the Helios 44 that's popular on eBay for this reason (lots of people use an adapter to put it on a MFT camera and shoot video with it).

</comment></comment><comment><USER25> Lots of mirror lens bashing :(

Bokeh is subjective. While the rings instead of filled circles resulting from a mirror lens look worse in many cases, I have seen cases where the 'rings' actually add to the image.

</comment><comment><USER26> Isn't the airy disk the right PSF to use here?

</comment><comment><USER27> if bokeh gets to this point, I don't know how is it going to look in the future. Is photography going to die</comment>


A cross-platform debugger for Go - <AUTHOR> http://blog.mailgun.com/introducing-a-new-cross-platform-debugger-for-go/ <comment><USER2> There's a more, er... traditional, debugger for Golang in the works: [https://github.com/derekparker/delve](https://github.com/derekparker/delve)

<comment><USER3> Comparing the Linux and OSX instructions is fun:

[https://github.com/derekparker/delve#building](https://github.com/derekparker/delve#building)

<comment><USER4> If I remember correctly I had to follow the same instructions for installing gdb too :/

<comment><USER5> Really? I just did brew install gdb

<comment><USER6> [https://sourceware.org/gdb/wiki/BuildingOnDarwin](https://sourceware.org/gdb/wiki/BuildingOnDarwin)

<comment><USER5> Duly noted. Thanks.

</comment></comment></comment></comment></comment></comment><comment><USER7> This looks really great. When I saw how Go does coverage testing using the same approach I felt that the code generation approach would work for a debugger. I'm glad someone did it - and from the few moments of playing with it it seems to be working great. I'm adding this to my toolkit for sure.

</comment><comment><USER8> This demonstrates the power of Go generators. We're seeing what are typically language features such as generics and debugging being implemented _before_ runtime using code generation. The result is more functionality without an overall increase in runtime size or decrease in runtime performance.

It's unusual and it's opinionated, but it works.

<comment><USER9> > This demonstrates the power of Go generators. We're seeing what are > typically language features such as generics and debugging being implemented > before runtime using code generation. The result is more functionality > without an increase in runtime size or a decrease in performance.

Monomorphization is a bog-standard implementation technique for generics. It's not at all unusual.

<comment><USER10> source?

<comment><USER9> Just off the top of my head, C++, .NET (via a JIT), Rust, D, MLton, and (I think) Swift all do it.

<comment><USER10> I was hoping for some article or wikipedia entry that would tie your comment with the parent's comment, and with the original article. Monomorphization is, to my understanding, taking a polymorphic function and instantiating it to the specific type requested. This is done at compile time. Now, the tool in this article interleaves debugging code with original source code. So the connection is... both monomorphization of generics/templates and this tool operate by emitting source code prior to compilation?

<comment><USER11> The original comment was about how both debugging and generics are being implemented with code generation before runtime in Go and described this as "unusual." The response was that this precise technique is how generics are implemented in many languages already; in fact, CFront (the original C++ compiler) was entirely implemented as code generation on top of C. The response specifically discussed generics, not debugging, so I'm not sure why you thought it was talking about debugging.

</comment></comment></comment></comment></comment></comment><comment><USER12> Jeremy Schlatter, godebug creator, did an interesting talk introducing the project March 18th at GoSF. The slides are available here: [https://github.com/jeremyschlatter/godebug- talk](https://github.com/jeremyschlatter/godebug-talk)

</comment><comment><USER13> Norman Ramsey and David R. Hanson implemented this sort of compiler-assisted debugging for C back in 1992, in a debugger called ldb: [http://www.cs.tufts.edu/~nr/pubs/retargetable- abstract.html](http://www.cs.tufts.edu/~nr/pubs/retargetable-abstract.html)

</comment><comment><USER14> What do you do for inlining + code movement, where functions become interleaved (as do lines)?

In particular, after inlining, how are you guaranteeing statements from a given function don't get moved before the inlined enterfunction call (and similarly with lines)

Or do you not expect it to ever be able to report right answers for optimized programs? (which is a valid way to live life, of course, but ...)

<comment><USER15> Since it's modifying the source before compiling it, I expect that the compiler will conclude that most optimizations can't be applied when they cross breakpoint boundaries.

So, when debugging is turned on, the code would return the right answers, but it wouldn't have the same performance.

<comment><USER14> "Since it's modifying the source before compiling it, I expect that the compiler will conclude that most optimizations can't be applied when they cross breakpoint boundaries."

While true, this depends on the compiler knowing this is a magical breakpoint barrier it can't move things across. The compiler has no idea this is a magical barrier unless something has told it it's a magical barrier. Looking at godebug library, i don't see this being the case, it looks like it translates into an atomic store and an atomic load to some variables, and then a function call, which the compiler is definitely not going to see as a "nothing can move across" barrier.

(Also, having the debugging library alter the semantics of the program is 100% guaranteed to lead to bugs that are not visible when using the library, etc)

<comment><AUTHOR> "Also, having the debugging library alter the semantics of the program is 100% guaranteed to lead to bugs that are not visible when using the library, etc"

Can you give an example of the kind of bug you expect to see?

<comment><USER16> say you have:

        x = 1
        x = 2
        bar()

You set a breakpoint on the call to bar and examine the value of x. You would expect it to be 2, but what if the compiler had decided to move the allocation of x = 2 to after the call to bar? There's no reason why it shouldn't. You'd then see x = 1, which would confuse you.

<comment><AUTHOR> Thanks for the concrete example. The transformed source code that would get compiled for this example looks like:

      scope.Declare("x", &x)
      godebug.Line(ctx, scope, 3)
      x = 1
      godebug.Line(ctx, scope, 4)
      x = 2
      godebug.Line(ctx, scope, 5)
      bar()

The value of x is visible to all of the godebug.Line calls, so the compiler should know that it can't move x = 2 to after the call to bar.

<comment><USER14> Right, but now you have the opposite problem. Let's say that before the compiler _could_ move x=2 after bar (let's assume bar does not touch x).

Now, in your world, it can't.

So before, you would have seen x=1 in the call to bar, and now when you use the debug library, you will see x=2.

<comment><USER17> But it's not really material, because bar doesn't touch x (and if it did, this problem wouldn't exist to begin with).

In other words, it might be a bit strange and cause a slight detour in your quest to discover the cause of a bug, but it wouldn't actually change any behavior or cause any issues.

<comment><USER14> Your argument is essentially: The barriers you insert, even if they block optimization, will never block optimization in a way that changes behavior. This is demonstrably false, since you are, among other things, taking the address of a variable, which means escape analysis won't do things to it, etc.

You can argue "The behavior it changes doesn't matter". As i've shown, 1\. it does in a threaded environment (like, you know, go) 2\. It depends on whether your code is buggy or not.

IT's certainly true that it never, on it's own, causes bugs. But as i've shown, it can make bugs appear to come or go.

If you don't think that will ever happen, i don't know what to tell you, other than "It has happened in literally every compiler that has ever had barriers like this".

Without any evidence why Go should be different here, i don't see why go will be different here.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER18> What an awesome idea to use gopherjs. Just added it to [http://golangtoolbox.com/](http://golangtoolbox.com/) \- if you have more tools that are great please add them here.

<comment><AUTHOR> Thanks! gopherjs is a really great project. This was my first time using it and I was impressed.

I've considered putting it up as a permanent playground like [http://play.golang.org](http://play.golang.org), where you can debug little Go snippets on the web. Is that something that you would find useful?

<comment><USER19> I agree with you about gopherjs being an awesome project. And I would love to see a playground-like debugger that you could run directly in your browser for quick debugging!

</comment></comment></comment><comment><USER20> While I totally applaud this effort, how does it not lie? It inserts code into the actual source claiming it is on a line in the original file, but it is in a different line in the compiled version. That seems like it could be a problem at some point, and despite the serious utility in this, I'm not 100% convinced it is the right tool for the job.

<comment><AUTHOR> Author here. I agree that this could cause surprises. Are there specific cases you have in mind?

Two cases I have thought of are stack traces and logging that inspects the stack. In the former case, if you get a stack trace while debugging it will not mean much because the lines do not match those of your code. In the latter case, logging statements may print the wrong things if they depend on being called a certain number of stack frames below user code. glog does this, for example[1]. I don't have solutions to either case yet, but I have some ideas of how to start. I think the utility the tool provides is well worth those two issues, and I'm hopeful that both can be fixed.

[1] [https://github.com/golang/glog/blob/master/glog.go#L536](https://github.com/golang/glog/blob/master/glog.go#L536)

<comment><USER15> A neat trick in some languages is to modify the source so that the line numbers don't change, for example by using semicolons instead of newlines and making sure a newline never appears in inserted instrumentation code. But I'm not sure if that's possible in Go.

</comment></comment></comment><comment><USER21> I love the in-browser demo of this Go program via GopherJS. So easy to try and become familiar. Well done!

</comment><comment><USER22> I wrote a similar instrumenting debugger for JavaScript awhile back, but haven't maintained it: [https://github.com/tlrobinson/xebug](https://github.com/tlrobinson/xebug)

At one point even I implemented the V8 debugger protocol so you could use the Web Inspector, and an HTTP proxy that would automatically instrument JavaScript files (using synchronous XMLHttpRequests to block execution...), but I don't think I ever posted that code :(

</comment><comment><USER23> This is really cool, thanks.

</comment><comment><USER24> How does this handle go routines? Can only one be paused at a time?

<comment><AUTHOR> Author here. Yes, only one goroutine is paused at a time. I'm planning to add commands to show and jump between goroutines. Still sketching those out, though. Do you think it would be helpful to have multiple goroutines paused by the debugger at once?

<comment><USER7> I'd like to be able to completely pause all goroutines and slowly analyze the state of each one. You can probably just add some mutex or waitgroup to your line() method and just lock it when a goroutine pauses, no?

<comment><AUTHOR> Yeah, that should be relatively easy to do. We would just skip the "am I the goroutine under the debugger" check here [1] and add some kind of channel communication here [2]. The hardest thing is probably just the UI. How should that functionality work? I'm imagining something like this:

      >>> pause all
      All goroutines paused
      >>> show goroutines
      1: foo.go:16
      2: foo.go:24
      3. bar.go:10 [current]
      >>> next
      -> // some code from goroutine 3
      >>> goroutine 2
      Now tracing goroutine 2. Current location:
      /*
         Code listing from goroutine 2's current location
      */
      >>> next
      -> // some code from goroutine 2

Is this the kind of interface you were imagining?

[1] [https://github.com/mailgun/godebug/blob/5c173f56b398bc13fd41...](https://github.com/mailgun/godebug/blob/5c173f56b398bc13fd4175bc828cb1b6bfa9e47e/lib/debug.go#L293) [2] [https://github.com/mailgun/godebug/blob/5c173f56b398bc13fd41...](https://github.com/mailgun/godebug/blob/5c173f56b398bc13fd4175bc828cb1b6bfa9e47e/lib/debug.go#L300)

EDIT: formatting

<comment><USER7> Yep, something like gdb's threads interface.

</comment></comment></comment></comment></comment><comment><USER25> It would be nice to have something like this for Rust.

</comment><comment><USER26> Curious.. I used debugging in LiteIDE a while back and it seemed to work well. Anyone else using it successfully?

<comment><AUTHOR> LiteIDE was probably using gdb as a backend. gdb is not a very reliable debugger as of the last few Go releases. Here's a demo of a common failure mode of gdb on Go: occasionally running the entire program when you try to take a single step [https://youtu.be/qo4RAPxCTa0?t=351](https://youtu.be/qo4RAPxCTa0?t=351)

This failure mode is a large part of why I decided to write godebug.</comment></comment>