An Accident No One Talked About - <AUTHOR> https://www.nytimes.com/2017/03/31/fashion/modern-love-the-accident-no-one-talked-about.html <comment><USER2> Few years ago I witnessed a traffic accident in which a 16yo boy riding a motorcycle died. I was the first to get to him trying to assess his condition and help. Those were his last moments. There was a lot of blood and I was helpless. I did my best but witnessed him dying anyway. I was 32 years old. I never knew this boy. Nevertheless this was a life changing experience. I'll never forget this neither will I forget having face his poor parents who wanted to hear about their son's final moments from the man who was there. This experience will never stop haunting me. I can easily imagine how devastating it can be for someone who's lost their friend. Especially when you're a kid. If someone from your family experienced this, please don't go the "let's not bring this up" way. That doesn't help.

<comment><USER3> The linked story and yours are both harrowing. But it has spurred me to action. Many years ago, my younger sister, a police officer, was off duty and just driving her car into town when she saw a car plough into another in front of her. She jumped out of her car and raced over to the drivers door, where she saw that the driver had a gaping wound in his neck and was bleeding out.

My sister hates the sight of blood, and faints when getting a needle, but to this day I don't know how she did what she did, which was to reach in and clamp her hand around his neck to try and stem the bleeding, while trying to talk to him. His wife was in the passenger seat, relatively uninjured but screaming hysterically at her husband's condition. My sister said that she looked into the guys eyes while she tried to talk to him and reassure him - she said the look he gave her was one of 'pleading sadness', and she watched while in less than a minute the life went out of him right there and then.

She only ever told me the story once, and our family has one of those stupid 'don't talk about it' rules, which after reading this, I intend to break. She seems fine to this day and doesn't show any outward signs of it affecting her, but next time I get the chance, I will see if she wants to talk more about it.

<comment><USER4> Be sure to tell your sister that she's a hero.

<comment><USER5> Most people who have been through such a thing would very much like to avoid having someone call then a hero.

<comment><USER4> Not having been through the experience, I'm not sure what you mean. Can you elaborate?

FTR, my sentiment was really just about reminding people you care about that they are, in fact, appreciated.

EDIT: ... and there's hardly enough vomit in the world, is there? I'm sorry, that sounded _absurdly_ cheesy, but it actually does matter.

<comment><USER5> In English, the word "hero" can mean two slightly different things. As you're using it, it's a person who has performed some great feat in service to another, especially if that feat involves sacrifice. A hero in this sense is performing a selfless act.

But that meaning is a relatively modern extension of the original idea of heroes being "just" people who perform great feats. If you read the great epics, any people the heroes end up saving are often incidental. The heroic acts are for the glory of the heroes, a distinctly selfish act.

It's a bit difficult to explain, if you don't know the feeling. There's a reason I said "been through" rather than "done". Things can happen so quickly that you don't really apply rational thought to what you're doing. And as with all such situations, we tend to post-hoc rationalize what we did. So for a heroic[selfless] act to not be a heroic[selfish] act, it must be done solely for the good of those involved, not for any praise or glory for the "hero". It can make the act feel meaningless to receive praise for it.

You're often the _clearest_ eye-witness to the event, but that doesn't mean you're objectively _reliable_. At best, you don't know why you did any particular thing. You might say "anyone would have done it." It feels bad to receive praise for a common act.

At worst, you second guess everything. You worry about the mistakes more than anything "right" you did. What if you hadn't hesitated for what felt like an eternity (when outside observers would probably say you sprung into action immediately)? What if you hadn't forgotten to carry your pocket knife today, so you could have cut the seat belt into a tourniquet (despite seatbelts being extremely difficult to actually cut). What if you hadn't pressed so hard during CPR that you broke their ribs (except CPR done correctly is very likely to break ribs)[0]? In emergency situations, the odds are against you, so even if you do absolutely everything right, you're probably not going to "succeed". It _definitely_ feels bad to receive praise when you think you've screwed up.

That's why you'll see so many people say they "just want to move on." It's easier to bury the issue than deal with any one of those things, and it's highly likely the person is going through all of them. The most thanks someone will want is to see the person they tried to help walk away happy and safe; a thanks from that person will be sincere and will feel real. From anyone else who wasn't involved, it will only serve as a reminder of something the person would rather forget.

People don't want to receive praise when they don't feel like they deserve it. People feel like they deserve praise when they've done hard work and they've done it well. You want to thank a cop or EMT or doctor or search-and-rescue volunteer? Don't thank them for that one event over which they probably feel conflicted. Thank them for their choice to join their profession and their choice to continue to wake up every day and go back to it.

Incidentally, that's also why you probably shouldn't thank a soldier "for their service." You don't know why they joined. Some people have joined not out of a sense of service to country, but a sense of desperation to get out of a bad situation at home. And once they have joined, they can't easily un-join. Continuing to show up to be a soldier is not a daily choice. Or maybe they've joined for all the "right" reasons and they believe every day that their choice was the right one, the vast majority of military personnel are in support--not combat--positions, and that person might feel they are not deserving of praise because they are not in danger. Thanking a soldier for their service--especially if you're a random person on the street and only know they are a soldier because they are wearing a uniform--could be reminding them of lots of things outside of their control.

<comment><USER4> Thank you for that comment. I haven't fully digested it yet, but thank you.

</comment></comment></comment></comment></comment></comment></comment><comment><AUTHOR> I've never had a personal tragedy like the scope of the author's, but her essay hit me nonetheless in reminding me of all the times I've avoided "tricky" topics with friends and family, and how in retrospect, this avoidance contributed to relationships drifting apart over the years. I was both happy how the author's bravery led to an eventual reconciliation, and sad thinking about relationships that I didn't prioritize enough.

</comment><comment><USER6> _"Could you just start at the beginning and tell me everything?"_

Nobody talks about death, especially violent death. This quote stands out the most. Do you want to know why people who have been there don't talk? It's the interruptions, the funny looks and having to answer _stupid_ questions. So if you are in the company of someone and they talk about it, it's probably because they trust you. Let them talk it out to the end, interruption free.

When I do talk, it's quietly to mates who were there and those who have been in similar situations. There is no great divide in understanding, no interruptions and plenty of trust.

</comment><comment><USER7> Incidentally this article made me think about people who save other's life, sometimes at personal risk. I am not thinking about big hero - like actions (which are of course fantastic) but rather Joe passing by and somehow saving Bob's life.

I had two cases like this in my life. In one of them I saw a car rolling over on a highway and stopped to see if the driver was fine (alive, actually). He was there, breathing, and there was petrol all over the place. I got him out before the car shared to burn (quite slowly, nothing like in movies). I did not even think once about my safety, I did not think about anything, actually. There was strictly nothing heroic in what I did because brain was not involved at all.

I wonder if others have this as well - for me a hero is someone who realizes what he or she can loose and despite this take the risk to help someone. This was not my case at all and would not be either if my children were at stake, for instance.

</comment><comment><USER8> Thanks for this post. It was mind opening for me.

I witnesses the death of my dad two years ago, and experienced overleming emotions since then and depression like symptoms.

I choose to stick to "Won't never talk about what I saw", but this seems really not the good path.

</comment><comment><USER9> I wonder if it's the same talking to a psy as to a relative. It's much less grave, but years talking to various psychologists didn't damp by emotions about my first break-up, especially because they don't want to talk about the past, they only want to talk about the future.

</comment><comment><USER10> That was hard to read. Must have been harder to write, and even harder to do.

I hope I can make use of it.

<comment><USER11> I hope you don't have the opportunity.

<comment><USER10> Me too! But what my clumsy choice of words was supposed to convey was a desire to be able to act as well if such circumstances ever arise.

</comment></comment></comment><comment><USER12> Many many years ago, when I was one and a half years old, I had a brother who was three. He had red hair and a bright smile (I've seen the pictures) and a curious nature. Inexplicably, he slipped from everyone's sight one day and fell into the river and drowned. The resulting silent implosion in my family led to generations of pain and guilt and alcoholism and silence. Each parent, each sibling, suffering in guilty silence, and locking away their emotional selves from those that need it. The silence solves nothing folks, take it from me, it solves nothing.

</comment><comment><USER13> I have a horrific road accident from 10 years ago seared into my memory. Shared it on this reddit thread along with 100's of other stories of witness to trauma: [https://www.reddit.com/r/AskReddit/comments/9jsz6/tonight_i_...](https://www.reddit.com/r/AskReddit/comments/9jsz6/tonight_i_gave_cpr_to_a_dead_girl_it_was_pretty/)

</comment><comment><USER14> Am I the only one who was extremely confused by the writing? I think the whole effect was just lost on me, because I went from thinking her brother was the one who died, to thinking he was the driver, to finally getting to the part where she actually says explicitly that he was the other boy in the road.

</comment><comment><USER15> That was real hard to read. I can kind of relate to how Alex felt.

</comment><comment><USER16> Sorry - nerd in me but: He could have either gone straight or swerved right. He couldn't have swerved left?

<comment><USER17> It seems more like a rationalisation. In the brief moment between seeing the boy and swerving it is unlikely that he had the time or situational awareness to consider his options. By believing that he would have killed a boy anyway, regardless of his choice, he avoids judging that he could have made the wrong choice, and so he avoids crushing doubt and regret.

<comment><USER18> He might well be rationalizing but this man doesn't seem to be without crushing regret.

</comment></comment></comment><comment><USER19> Well this thread did a good job at making all the people with an irrational hate for cars come out of the woodwork.</comment>


Ask The Hackers: Does it matter where I get my CS degree? - <AUTHOR>

This is my first post!
I'm currently an undergrad at UC Irvine and have just started the path to completing a CS degree there. I want to transfer to a school in Northern California to be closer to my girlfriend (technically ex-girlfriend, it's complicated) who goes to UC Berkeley.
I don't have the grades to get into Berkeley, but I could get into other schools in the area, like SF State.
Back to the question, does it really matter where I get my CS degree? Will transferring hurt my chances of getting into a decent Grad School, getting a good job, etc? <comment><USER2> I'll give you some advice you won't listen to: don't transfer to another college just for a girl. It's really not worth it. If you were married or have a kid together that is a different story. But if she's not even your girlfriend anymore, then definitely no. There are plenty of fish in the sea.

While grad schools do put some emphasis on the school you graduate from, the most important thing (I'm assuming you're talking about a PhD) is showing you can do good research and getting good recommendations by your professors. Getting decent grades probably wouldn't hurt either.

As far as getting a job is concerned, it really depends on what you want to do. If you want to go work in consulting or at an investment bank, then yeah, the school is very important and going to a good school will open a lot of doors. If you want to work at a startup, being able to get things done is much more important.

<comment><USER3> Agree with tmpg. If you are planning to go to a better school (more precisely, a school KNOWN TO BE better) then it's fine. Else don't do it any way. If you have problems convincing yourself that love is not a very good thing hope this blog post of mine will help

[http://chanux.wordpress.com/2008/02/15/the-post-valentine- da...](http://chanux.wordpress.com/2008/02/15/the-post-valentine-day-post/)

And also you better read following article, at least the topic "School" of it.

[http://www.randsinrepose.com/archives/2007/02/25/a_glimpse_a...](http://www.randsinrepose.com/archives/2007/02/25/a_glimpse_and_a_hook.html)

</comment></comment><comment><USER4> It depends. But you will notice a huge difference in the reaction of someone who learns you went to Berkeley than if they learned you went to SF State or Irvine. Doesn't mean those schools are bad, people are just biased.

A Computer Science degree is kind of a benchmark. It's really what _you do_ that matters. If you make a significant contribution to the linux kernel, you could have gone to community college and astute employers would still be impressed. Or you could distinguish yourself by publishing research papers as an undergraduate.

When it comes down to it, though, if you are just looking to get a job then experience is the key. Getting internship _s_ programming in popular languages is a good idea. There is a list on the web somewhere that contains languages used by employers in percentages.</comment>


Show HN: E2E Encrypted Group Chat In Less than 200 LoC - <AUTHOR> https://github.com/jack-the-coder/cryptux <comment><USER2> I would love to see things like this implemented in various chat clients. Mumble [1] would be a good candidate and I bet the folks would be open to implementing this.

It would also be great if people could use something like this in their browser for web clients such as Discord, since they save all messages forever, even if they are deleted.

[1] - [https://github.com/mumble-voip/mumble](https://github.com/mumble- voip/mumble)</comment>


Ask HN: How to help a suicidical friend? - <AUTHOR> I'm very concerned about my close friend. She's a 29 years old female and has been depressive for as long as I know her (~8 years now), but lately it got much worse after her last failed relationship. I know the usual drill - "it will pass", "time heals", "there are plenty of fish" etc. but it's not helping here and not even the point - she has been through many broken relationships before. She's also really beautiful and has plenty of guys that would do anything for her, so it's not the lack of attention or opportunities. The point is, that she's extremely self-destructive. She has driven away all the people that has once cared about her, including the closest relatives - mother, father, brother, and all the friends. Those, who at least still talk to her, keep their distance. The problem is, that it looks like she doesn't want to be helped. I'm the only one left.
She goes to therapy, drinks antidepressants, but it doesn't seem that it's helping in any way. I'm now worried, that she might really commit suicide, as few days ago I noticed she started cutting herself again (hasn't done that for >5 years) and during the recent feud with my girlfriend (who also genuinely tried to help her until this) invited to her own funeral in two weeks. What can I do in this situation? I was thinking about institutionalization, but it's the very last mean as it would leave the stain for the rest of her life and also not guaranteed to work.
P.S. I'm a long time user of HN, but created a new account to post this for obvious reasons.
P.P.S yes, it has nothing to do with IT, sorry - feel free to skip it, but HN has an awesome of community smart people, I've learned many non-tech things here and don't know where else I could ask for such advice. <comment><USER2> > She goes to therapy...

Do you know the therapist? This person should be informed immediately. > [https://www.wikihow.com/Help-a-Suicidal-Friend](https://www.wikihow.com/Help- a-Suicidal-Friend)

</comment><comment><USER3> you really need to get professional help for this. Maybe a suicide prevention line will know better what to do.</comment>


The Trojan horse in your pocket - <AUTHOR> https://www.iafrikan.com/2019/05/29/the-trojan-horse-in-your-pocket/ <comment><USER2> I thought this was about Trojan horse virus. But this is just opinion on evolution of mobile technology. :/</comment>


The Trouble with Fungible Startups - <AUTHOR> http://paul.kedrosky.com/archives/2007/05/08/the_trouble_wit_36.html <comment><USER2> The solution, of course, is to pay attention to what your investments are doing. If he'd spotted the change in course earlier, he probably wouldn't have nearly as big a problem on his hands.</comment>


No Man's Sky – Procedural Content - <AUTHOR> http://3dgamedevblog.com/wordpress/?p=836 <comment><USER3> I say this as someone currently developing a vast space game using procedural generation: The danger with procedural generation is "remix boredom." The user can feel, "Oh, this is just a remixed variation of the same stuff."

The reason why we don't feel that way about the real world, is because the real world doesn't just have "remix procedural." You have to have some player- significant emergent effects coming out of the procedural generation. You see this in Minecraft. You even see it in the 1st generation of the original Elite game. The player's interest in your procedural world is directly dependent on how deep these emergent effects are. (So the emergent effects can be shallow or deep, with the corresponding amount of interest from the user.) (Which is why my procedural generated world primarily exists to support a procedural generated technology tree.)

<comment><USER4> One could take the Dwarf Fortress mechanism of generating a complete history and take it to the extreme: simulate the formation of entire solar systems based on seed values that effect randomly generated planetary masses (and resulting gravity), atmosphere, tectonic events, ice ages, warming periods that carve valleys/lakes/rivers into the landscape, biological events influencing the creation of life based on the planet's properties and the landscape, insect swarms that ravage an area, and so on. Simulate meteor impacts which might destroy life, visits from alien species, etc. Then simulate the effects of any emergent properties on the landscape. So instead of:

      p(tree_goes_here) > random()

And then randomly placing various tree models according to the RNG output, your random events produce a story. You should be able to look at a series of mountains and trace it back to tectonic events, then if one mountain has a patch of trees missing, you should be able to see that there were various events that either removed the trees (eg: some local civilization) or a Tunguska-like meteor strike cleared a path and made the soil infertile for growing more trees.

If one did this, such a game would have value not only from the game itself but it might open up a whole subculture of archaeologists who go from planet to planet studying the evidence to piece together the events that led to the planet's present state.

Otherwise, you're right. Each world would end up being different much in the same way that listening to static noise is different each time you hear it.

<comment><USER5> Playing devil's advocate, I think this is a dangerous road to go down. I'm in my second year of making a procedural game, and I think the existential danger involved is that of making a game that's more interesting to develop than it is to play.

That is, it's more challenging and rewarding _to me_ to simulate tectonic movement than it is to generate terrain from random noise and tweak it until it feels okay. But the important question is, is the game noticeably more interesting either way? Do mountains affect gameplay in a way that gets more compelling if they're placed according to tectonic movement?

There are certainly games where the answer is yes, but there are a hell of a lot more where it isn't. And if your game is one of the latter, then complicated simulations are a dangerous trap - not only do you waste time, you also hinder yourself by making your game's content harder to tune (in that you can't just, say, make the mountains 30% higher if mountain height is determined by a complicated process).

<comment><USER6> Introversion (creators of Prison Architect, Uplink, Darwinia and Defcon) made this mistake with their cancelled game "Subversion". They started creating elaborate mechanisms and procedurally generated cities only to realize that the entire intricate "bank heist" missions could basically be solved by shooting people and taking their keys.

IOW, they tried so hard to make the game realistic that the intended gameplay was no longer enforceable. Setting up all these intricate puzzles and writing the procedural generators was fun, but actually playing the game was immensely dull unless you went out of your way not to take the path of least resistance.

They ended up using some of the lessons learned in Prison Architect by making the "level design" the actual gameplay. There's actually a very interesting presentation of how Subversion was intended to be played versus how it would have actually been played somewhere on YouTube.

As a counterpoint, RimWorld is a game that's largely based on procedurally generated worlds with heavy inspiration from Dwarf Fortress. But the entire premise of the game is that you build a colony which the game tries to actively challenge to create an interesting story for you.

<comment><USER3> _IOW, they tried so hard to make the game realistic that the intended gameplay was no longer enforceable_

Realism is sometimes a misguided goal. Games are media, just like movies. What you want most of the time isn't realism, but an impression of realism. Robert Crumb and his son sometimes do "realistic" portraits, but in the biographical movie about Crumb, he reveals that his "realistic" portraits actually contain very subtle elements of caricature, to draw the user's attention to the most interesting aspects of the subject's face.

Contrast this with films of war vs. actual war. Head-cam movies of modern soldiers in combat look like people in battle gear taking cover while yelling at each other about people you can't see or barely see, then calling in air support. There's nothing cinematic or easily parseable by the viewer. If you're on a modern battlefield, and you're posing for the cameras in a nicely composed scene laid out by the "Rule of Three" you're likely to get shot in the very next second.

Documentaries and action films are very different things. Both of those are very different from documentary-styled fictional films. Analogies to sandboxes, various other game genres, and sandboxy games apply.

</comment></comment></comment></comment></comment><comment><USER7> It speaks to the clusterfuck that NMS became that this detailed blog post is written by a _fan_ reverse-engineering the code/content, rather than someone from Hello Games doing a post-mortem on Gamasutra who can speak with more authority. I'm not knocking the author's attempt at reverse-engineering -- in fact, it's awesome on a geek level because reverse-engineering is an additional technical hoop to understanding a game's core. It's just that when a game has as much hype and sales as NMS does, usually the creators would be the ones to do a technical post about how clever they were.

But the mention of the diplodocus is just one example of how much of a clusterfuck NMS is: The diplodocus and other beautiful dinosaurs were part of the E3 demo that was presented to fans as NMS's procedural code in action. And, as the author notes, it doesn't appear to be something that actually was procedurally generated, but was hand-designed to make the E3 demo footage look good (and, to Hello Games's shame, they used this footage as the official advertising for NMS, even after release).

Here's one of the canonical parodies of the shady shit Hello Games pulled: [https://www.youtube.com/watch?v=RvAwB7ogkik](https://www.youtube.com/watch?v=RvAwB7ogkik)

edit: grammar fixes

<comment><USER8> As someone who works in the games industry - what is shown at E3 usually doesn't even exist in the game yet, and is usually directed by hand, unless the release of the game is like a month away(in which case, the game was already sent to submission some time before). In some cases whole features only exist as a design draft, but are still in the E3 demo because that's what we want to achieve in the end. So showing "procedural content" that was assembled by hand is not really dishonest if that's what you want your procedural code to generate after you are done with the game. It's a bit like showing a new model of a car, but cars shown at car shows are almost always assembled by hand, because the factories are not set up to build them yet - which means that once the actual assembly process kicks in, the final product might look different than what you saw at a car show. Doesn't change the fact that the model shown at a car show is what the manufacturer wants to achieve.

<comment><USER9> The 14 year olds on Reddit have really been struggling with this fact

<comment><USER10> No, it's a perfectly valid criticism. Saying "well we intended to make that!" isn't an excuse for not delivering what you advertised.

<comment><USER8> I don't know if it is. If something is shown on the box or TV ad, but isn't actually in the game, then yeah, fair enough. But a presentation at E3, which is basically saying "hey, this is the game we are working on" is not really an advertisment.

It's the same as watching early trailers of any film - some scenes are removed, some changed, sometimes dialogue is re-recorded, effects added, and the final film looks differently to the trailer. It's not false advertising - it's just that either technical or political reasons get in the way.

<comment><USER11> You're absolutely correct for 99% of games, but for this one they really talked it up at E3 that that was exactly how the game was going to be. They repeatedly and pointedly said over and over again that everything you saw was legit and randomly generated. I'm almost 100% positive they even said specifically that it wasn't scripted.

</comment></comment></comment></comment></comment></comment><comment><USER12> Douglas Crockford, in Atari days, remarked on some procedurally generated content:

"Never once the same. Never twice very much different."

The Diablo 2 / 3 franchises do procedural dungeon generation, as does Spelunky. They have written rather thoughtful articles on some of their techniques.

[http://tinysubversions.com/spelunkyGen/](http://tinysubversions.com/spelunkyGen/)

(Hmmm, can't find anything concrete about Diablo. I'll keep looking).

<comment><USER13> Why do you write "Diable 2/3"? Diablo 1 was also procedurally created levels, based around a set of constraints that allowed the story to unfold.

<comment><USER12> You're right, D1 was procedural as well.

</comment></comment></comment><comment><USER14> Unfortunately Hello Games didn't go in the most interesting direction I think procedural generation has to offer, which is to, however it is accomplished, create content that is actually interesting to the human player. We're way too smart to not recognize the random planets and creatures and so on as samey and pointless rather then something to be discovered and learned and overcome.

Also, using procedural as a "force multiplier" for content developers is really interesting: Letting them make snippets or "mad libs" and have algorithms mix and match and adjust under constraints that make the content make sense (i.e. buildings where the rooms have purpose and their interconnections make sense).

I know this has been explored in some games, particularly rogue-likes like Spelunky and Rogue Legacy.

What about shipping a trained neural network with your game taught with human- made levels to create even more levels? How neat would that be?

I just hope procedural generation doesn't get a bad name and is explored even more.

<comment><USER15> I think procedural generation needs an AI editor: a second layer that assesses the generated forms and selects only the most interesting and pleasing ones. This could be informed by real-world animal body ratios, and subsequently trained by humans ('silly', 'cool', 'scary' etc) until it mostly stops making awkward shit. And a dictionary of 'what creature types has this player already seen' might go some way to alleviating boredom over the span of dozens of hours (planet types need this too - many people were annoyed at never finding an archetypal paradise planet, myself included).

A third layer would allow players to rate cool creatures so that they show up in others' games. No Man's Sky already has the "scan creatures and upload discoveries" mechanic; with a rating system the good ones would have an increased chance of showing up in someone else's game.

Procedural generation obviously has legs, but developers need to move beyond the 'infinite monkeys at infinite typewriters' stage, and artificially ensure player enjoyment is less at the mercy of randomness.

</comment></comment><comment><USER16> A bit of an aside, but WOW. I am amazed both by the dedication and skill needed to reverse the format and protocol of some undocumented binary files without even having access to the code that processes it, and on top of that, the dedication of building a UI to help along.

I know it's not the main topic of discussion, but sometimes I find it overwhelming and frustrating to analyze things that I have full access to the codebase, and it's really quite humbling to see this level of success and dedication.

Really impressive work.

<comment><USER17> It's tough, but very fun and rewarding. I dipped my toes into it a while ago and reverse-engineered the data formats for an NES game[1], including their data compression format. You start out knowing nothing, then start slowly putting the pieces together as you figure out what each bit of code does, what this piece of memory holds, how the tile and level map data is stored... Obviously a 6502 hooked up to the NES graphics chip is much simpler than a modern graphically intense video game, but it was a fun and intense experience all the same :) Give it a try sometime.

[1] [https://gitlab.com/mcmapper/mcmapper/blob/master/main.c](https://gitlab.com/mcmapper/mcmapper/blob/master/main.c)

</comment></comment><comment><USER18> It's interesting how the level of variety of the assets does not translate directly to the game. I do actually suspect that there might be some sort of prefabrication going on with the creatures, or maybe some bug with the generation code is simply not using all the available asset combinations.

<comment><USER3> I'm willing to bet a small amount that the leader of the "No Man's Sky" project either "lost the battle" with his subordinates or was unable to fully get his vision across to his team. To _meaningfully_ create an interesting procedurally generated world, you need to approach certain things one step removed. For example: Game Balance. If you're not going just bolt a simple hand-crafted game on top of your procedurally generated world, you might want factors that affect game balance to be significantly affected by the procedural generation, which means you can't directly game balance the game anymore. Instead, you have to indirectly balance the game.

<comment><USER19> I thought balance was a multiplayer thing (it's the only domain I've heard about it, but I'm a casual gamer).

I guess balance in single player is about difficulty? Or are there other aspects of single player games that are considered balance?

<comment><USER3> _I thought balance was a multiplayer thing_

No Man's Sky was supposed to be multiplayer, originally. There can also be a notion of balance in single player games. For example, in a 4X game or an RTS in single player mode, you can still have issues of balance with regards to the relative effectiveness of ECM versus weapons. Missiles vs. beams. Fighters vs. small units.

<comment><USER20> It was never meant to be multiplayer in real time afaik... just that you would see the impact of other players in the world... however confused the marketing became

<comment><USER21> That is not true. It was said that you could run into other players and interact with them in real time, but that it would be exceedingly rare due to the size of the galaxy. Well, happened on day 1 and, nope, not true.

Now it was never supposed to have a large focus on multiplayer, but they also mentioned things like a galactic economy, big space battles, a faction system... all BS.

<comment><USER22> >you could run into other players ... it would be exceedingly rare

This should've tripped everyone's BS detectors. Why would a studio do the huge work to add a multiplayer mode if it would be so rarely seen?

<comment><USER23> It _did_ trip a lot of BS detectors.

The sound was drowned out by the overwhelmingly non-technical consumers of the game's PR. It's the modern day version of selling snake oil.

Technology progresses, but human nature doesn't.

<comment><USER21> And much of the expectant player base didn't want to hear anything negative. Reddit was a complete echo chamber, praising the devs in every post. I suppose it's still an echo chamber, but the conversation has... drifted the other way.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER20> It's a shame there is nothing much about animation. The rest is pretty much the simplest possible approach you could take, and nothing special at all... but the animation seems genuinely interesting.

<comment><USER24> Procedural animation is tough as fuck (to get right). I would love to read more about it too.

<comment><USER20> there is an interesting, but quite old, paper here from the spore guys

[http://chrishecker.com/images/c/cb/Sporeanim- siggraph08.pdf](http://chrishecker.com/images/c/cb/Sporeanim-siggraph08.pdf)

</comment></comment></comment><comment><USER25> This is in stark contrast with Dwarf Fortress which has literally no graphics but indefinitely more rich in content. My favorite statement about No Man's Sky is: "One feet deep ocean".

<comment><USER26> This may be pedantic, but I wouldn't say DF is _content_ rich exactly. Dwarf Fortress (and similar games, like Banished and RimWorld) shine because you can execute an infinitely different number of stories/scenarios/playthroughs without changing any the fundamental systems of the game. The content there is emergent from the actual gritty gameplay mechanics (rather than the reverse, where the mechanics exist solely to propel an overarching plot).

<comment><USER27> In my opinion, it's not so much about the "content" as much as it is about the number of interacting systems that cause unexpected and emergent gameplay situations.

One of my first Dwarf Fortress runs had me embarking to a cold area in the middle of winter. The lake had frozen over and that's where my caravan landed. As I was still learning the basics of the game, I forgot to make beds for my dwarves. They fell asleep on the iced-over lake, and while they were sleeping, spring came, the lake thawed, and seven very surprised dwarves suddenly found themselves struggling to swim. I think one or two died and I laughed my ass off and started over.

In No Man's Sky, this one time, I went to a planet and saw some cool stuff and mined some minerals and made some stuff... oh wait, that was every planet, every time. Once I found a neat spaceship! Then a few miles later I found another one. Then I realized that the distribution of procedurally-generated content meant that there was a random, abandoned spaceship every few dozen miles. On every planet. That's around the time when I stopped playing No Man's Sky.

Obviously the two games are extremely dissimilar in many ways, but this just goes to show how "shallow" the procedural elements of NMS end up being. Yes, the technical details of the underlying systems are super cool to explore from a programming standpoint... but design-wise, the procedural systems don't really lend themselves to interesting or emergent gameplay. There's like three different AI routines for fauna, or something, the different planetary hazards all amount to different bars with different flavor text that affect gameplay in the exact same ways, etc. etc.

The bottom line is, if your procedurally-generated world has enough interacting systems that leads to interesting and emergent gameplay, you'll have your players recounting stories of interesting, unique things that happened to them for years to come. If your procedural generation systems just generate different visuals for the exact same gameplay, it will get very old, very fast.

Not every game with procedural generation has to be Dwarf Fortress, of course... but if you're going to hang your game's proverbial hat more or less entirely on its procedural generation systems and sell it for sixty bucks a copy, you should probably make sure that all that work you put into your procedural generation code is going to do more to your game than generate different skins of paint on top of the same mundane gameplay.

<comment><USER28> > In my opinion, it's not so much about the "content" as much as it is about > the number of interacting systems...

Right on. I'll give a concrete example from one of the most immersive games I recall, Ultima VII. Now, this may or may not have been intended as a possibility by the developers, but I think it's important to consider this could have been emergent gameplay non the less. Why is this important? Because it should serve to inspire the pursuit of future emergent gameplay of course!

So here it is -> The Bank Robbery.

The Setup:

Lord British will resurrect dead people you bring to him(you can put dead people in your sack!). NPC's have daily schedules(go to work, the pub, home to sleep, etc), and resurrected NPC's will find their way back into their schedule. The bank/mint in Britain has a banker name Cynthia. She has the keys to all the locked doors and chests that have tones of gold bars and coins.. There are powerful guards in lobby.

What you do:

Grab powder kegs from the castle and bring them to the lobby. Ignite the kegs to kill the guards and Cynthia. Loot her corpse to get the keys, then place the corps in a party mates bag. Now start making your way through the mint with the keys while locking the doors behind you. More guards will arrive and be blocked by you locking the doors. Loot every room and exit the back of the mint. Flee town until the heat is off. Return and take Cynthia to Lord British asking him to resurrect her. Cynthia will go home and return to her routine. Go back to the mint the next day and Cynthia will be at work! Sell her all the gold bars and nuggets you stole for coin. Profit :D

Systems interacting in unforeseen ways is totally the way to go with this stuff. Ultima VII has given me a lot of inspiration for creating a multi- resolution whole-world AI system that can make more of these sorts of stories possible. One day perhaps.

</comment></comment></comment></comment><comment><USER29> If you like procedurally generated stuff, a good exercise is to render a basic Lindermayer system, or L-system for short. You can render some trees and stuff. Very didactic and entertaining.

</comment><comment><USER30> I think maybe assets are related to regions of space, at first I got no snow or water planets, then I got loads of them, purely anecdotal though, I don't know one way or the other.

</comment><comment><USER31> This game would be lauded as one of the greats if each player was given a home planet where they could configure the flora and fauna as they see fit.

</comment><comment><USER32> It will not save this extremely boring game. It will not return trust to the team after lie about multiplayer. Only useful lesson NMS gave us - <USER2> content is pretty boring.

I hope there will be games for future generations of computers, maybe quantum computers, where world will be generated on the molecular level. Maybe very small world, but it will be interesting just to increase time speed and bring some action there - just watching of micro-world evolution will be interesting.

<comment><USER33> > generated content is pretty boring.

Why not let the lesson be that space content is pretty boring, or that resource management is boring. Just because they did it poorly doesn't mean that the type of content they made was the problem.

Procedurally generated content has been around for a long time and has been done waaaaay better than NMS did it. There are plenty of rougelikes that have interesting procedurally generated content.

<comment><USER32> I also don't understand why your second sentence is controversial to first. I'm not talking about space content, but about generated content in general.

Could you please provide an example of the game where generated content is interesting enough to explore? Where it's not just decoration.

<comment><USER33> Of the console based rouguelikes my personal favorite is probably cataclysm DDA. It is a survival zombie apocalypse game. One of the most common features of the world is small to medium towns that have a handful of building types consistently available, various wrecked cars all over the place and a wide variety of building layouts, building types, street layouts, loot on bodies and distrobution/strength of zombies. Not to mention all of the other special places it has. That being said I am obviously bias as I was a contributor to the game.

It seems like the emergent story in dwarf fortress continually draws people in (you might find this a stretch, but I'd argue that the game was explicitly made to procedurally generate a story).

It sounds like Ultima Ratio Regum is aiming to have deep procedural content.

</comment></comment></comment></comment><comment><USER34> The huge hype. Awful game but 3d and rendering game is great!

</comment><comment><USER35> I've been saying from day one of the "debacle" (release day) that it would likely lead to AWESOME mods if the engine was opened to the community for tweaking and the integration with more rich game mechanics with a good chance of something big like counter strike (originally a half-life mod) emerging... A universe builder builder so to say. I'd love that!</comment>


Racket News – Issue 7 - <AUTHOR> https://racket-news.com/2019/05/racket-news-issue-7.html <comment><USER2> I love how personal this feels. This is written by a person for people, not an organization for consumers.

Also, if any of the RacketCon organizers are reading, can you please try to get better video this year? There's no way I can attend the conference but I do watch the videos. Last year the quality seemed like a noticeable step down.

But, thank you for doing what you do! Racket is one of those languages that I wish I had more reason to use on a day-to-day basis.

<comment><USER3> The author of the newsletter is Paulo Matos, who, in addition to having a friendly and down-to-earth manner, is also a very serious and accomplished engineer. The Racket community has more than its share of people like that. When I was recently looking for someone to take over administering one of the Racket email lists, I was glad one of those people (Paulo) volunteered.

</comment></comment><comment><USER4> I am going to try to get to Salt Lake City for RacketCon this July. My wife just agreed to make it a fun road trip with me. I planned on going last year in St Louis but something came up.

I have been using Common Lisp since 1982, and feel more comfortable with it, but 2 or 3 times a year I will write some small thing in Racket and enjoy it. The Racket ecosystem is fantastic.

<comment><USER5> See you there!

</comment></comment><comment><USER6> The only thing that has stopped me from using racket more are the performance issues. Hopefully Racket-CS will make racket competitive performance-wise with CL.

In regards to expressiveness, Racket is definately the most powerful lisp on the market, maybe even of any language, lisp or not.

Great GUI library, the most powerful metaprogramming the world has ever seen, FP, static typing (still a little rough around the edges), libraries for xml/json/http and a ton of other stuff, nice OOP libraries, contracts, and a truly awesome IDE.

Is there any other language that is as flexible, powerful, and elegant?

The only thing missing from the equation is a high performance optimizing compiler and industrial GC. If Racket could get JVM-like performance and a GC that could manage terabytes of heap, it would be the _ideal_ language for me.

I used to program Racket professionally in academia, and it works really well for desktop applications. You can whip up complex single user apps very very quickly, with generally acceptable performance. Great for research and data science applications.

I now use Scala at work on a computation heavy multi-user finance application and Racket would be unteniable for this use case. High-load servers need the best GC (or no GC) and there are very few languages that work well in this use case. Pretty much just JVM languages, C/C++, Rust, and maybe Go or OCaml.

If Racket could get competitive in these areas, it might open the door for commercial adoption. Though, on the otherhand, both Python and Ruby have worse implementations and worse GC and that doesn't stop everyone from using them for servers.

This is a tangent I suppose, but it's a mystery to me why Racket isn't more popular compared to Ruby/Python. For data science and ML the network effects of Python are strong, but the networking libraries for Python aren't any better than those for Racket. Maybe people just think parens are scary?

Anyways, Racket is seriously awesome and developed by some great people (professors). If you haven't tried it, I would highly recommend it. Very easy to get started because of the great IDE.

PS: Also HN is written in Racket (essentially), so I guess you can wrangle for high-load servers.

<comment><USER7> > a truly awesome IDE.

That's a lot of hyperbole for a not so great IDE. It's even sluggish on my Mac - there are basic GUI functions, like resizing windows, which are poorly implemented (run something in a loop, then the UI stops responding properly). There is a huge amount of UI glitches.

For example start DrRacket, click on the green button in the window bar to enlarge the window. Instead of smoothly expanding, it jumps to full screen. When we again click into the green button, a strange animation happens with some window drawings in the upper left screen area... There is lots of that...

It's also from the past. The last time I want to see the amount of RAM something uses or how much GC activity there is, was in the end 80s. The UI also does not 'awesome'...

<comment><USER3> DrRacket is a pedagogic IDE, originally intended to be simple for new students and non-majors.

Some people like DrRacket for real development work.

I'm an Emacs person, but I use DrRacket when I want to use the Macro Stepper, or see how the arrows work in my syntax extension, or use the renaming feature, or put each process of a client/server system in a separate IDE that fits in one window.

I find I also fire up DrRacket when I want to very quickly make a running code example for someone, since it it somehow seems easier to iterate than Emacs sometimes.

I prefer Emacs for the bulk of code I write, though.

P.S., Thank goodness programming students are still being shown things like RAM usage (DrRacket can enforce limits) and that GC is happening. :)

<comment><USER7> > DrRacket is a pedagogic IDE, originally intended to be simple for new > students and non-majors.

I know that. But it's far from being generally 'awesome', when the look & feel is actually below average.

> P.S., Thank goodness programming students are still being shown things like > RAM usage (DrRacket can enforce limits) and that GC is happening. :)

GC happens. Then students see it all the time and start to worry. No of the current IDEs I can remember still show GC activity in the GUI. I would also not know why I need a constant updating view of program memory size.

<comment><USER3> I won't blame someone for preferences and enthusiasm. :)

IMHO, at some point in a student's programming education, I'd definitely want them to be aware of program size and GC. But I couldn't say exactly when they need to start seeing it, and when it's OK if they don't see it. Of course, the professors are the ones with all the teaching experience, and one can always ask them on `racket-users`.

<comment><USER3> [https://groups.google.com/forum/#!forum/racket- users](https://groups.google.com/forum/#!forum/racket-users)

(`racket-users` is where most of the action in Racket is, and the community members, including the core developers, actively answer&discuss questions. The other venues are mostly outposts for discovering Racket.)

</comment></comment></comment></comment></comment></comment><comment><USER8> It might just be my soft spot for Racket, but I find this delightful. Elixir Radar is somewhat the same thing via e-mail but it's not as neat and tidy as this. You can skim this and get so much value out of it immediately.

</comment><comment><USER9> Racket is still my preferred language based on how fun it is to use and the community is just awesome.

<comment><USER3> Same here. I have professional experience with various languages, but Racket is my personal preference. It's one of those platforms that many programmers _want_ to use, which is a good quality for a platform to have.

I can do almost everything in Racket (except for things like OS kernel, and easy slick smartphone apps), and Racket also gives me better metalanguage features than anything else.

The main downsides I see are: you end up doing more things from scratch than you would in many other languages (which occasionally is an advantage), it's not as proven like something like Java (in a "nobody ever got fired for buying IBM" kind of way), and there are only a few non-academic jobs in the world right now.

I originally moved to Racket as a super-productive platform for R&D, and a lot of that could also apply to creative startups trying to get demos and beta rapidly. (For startups, consider using Racket for the sprint to significant funding, at which time you might be rewriting/pivoting regardless of what language you use, and at that time you can decide whether to stick with Racket.)

If you're already an experienced programmer, you can get started with Racket quickly, and soon be productive and see some boosts, though you'll need some experience with it before you'll get all the benefits (it's not just Python with parentheses), and you will probably have to do some things from scratch.

<comment><USER9> The greatest thing is that Racket is fun the worst thing is Racket is fun, because everyone does their own thing. You can do your own thing faster then finding something and implementing it. It is funny how that is an issue.

</comment></comment></comment><comment> default-kramer I found the Featured Paper this issue to be very approachable - only 13 pages including code and not excessively academic: [https://cs.brown.edu/~sk/Publications/Papers/Published/sk- au...](https://cs.brown.edu/~sk/Publications/Papers/Published/sk-automata- macros/paper.pdf)

</comment><comment><USER10> Makes me want to try Racket out!

</comment><comment><USER11> The video DSL looks like quite a nice idea. I could see myself using it to keep videos in git: add all the raw source clips once as immutable blobs, then do all of the editing with text. (The same could be done with shell scripts and ffmpeg, but urgh).

I wonder how it fits with the ideas of FRAN (functional reactive animation)?</comment>


Design Books Every Hacker Should Read - <AUTHOR> http://davidmckinney.com/blog/2013/1/15/the-best-5-design-books <comment><USER2> Another web design site, another page that's almost impossible to read due to washed out text.

Guys, do you test your sites on anything other than Macs with "retina" displays? For example, I maxed out the brightness setting on my Thinkpad x60 and the text is still barely legible. Granted, this TP has a very average display, but do you really want to limit your audience to Mac users?

<comment><USER3> Yeah, gray font on the white background is not pleasant. For a page which talks about books like "The Design of Everyday Things" it's kind of a fail ;)

<comment><AUTHOR> try it now. how is that on your screen./

<comment><USER4> Your base font size is at 12px. I think that's really, really small. I find it much easier to read when it's at 18px instead. Here's a comparison: <http://imgur.com/O7F5N,zCyyz#0>

Now, anyone can zoom in with their browser... but your entire layout changes width when I do that: <http://i.imgur.com/U96Py.png>

<comment><AUTHOR> good article about body text size here: [http://www.smashingmagazine.com/2011/10/07/16-pixels-body- co...](http://www.smashingmagazine.com/2011/10/07/16-pixels-body-copy- anything-less-costly-mistake/)

<comment><USER5> That's actually a terrible article about body text. Maybe it has the right conclusion, but it might be wildly wrong.

This seems the most trivially easy thing to A/B test. Does anything less the 16pt cost you revenue?

Simple question, yes/no.

Actual data is so much better than someone's untested opinion which has been shown time and time again to be worthless in real life.

</comment></comment></comment></comment></comment></comment><comment><USER6> The Design of Everyday Things literally changed my life back when I read it in high school. To this day, I've never been able to look at doors the same way.

But seriously, everything I see nowadays that frustrates me in its design immediately harkens back to a principle in The Design of Everyday Things.

Truly transformative book - couldn't recommend it enough.

</comment><comment><USER7> Great books, but why is it necessary that _every_ hacker should read them?

How are these relevant to the hacker who writes his own Linux device drivers? Or the hacker building an open source voice recognition library?

There are plenty of hackers who do amazing work that has nothing to do with visual design.

<comment><USER3> They don't cover just visual design, but design in general. While visual interfaces are most commonly associated with design, design is actually related to many other areas as well.

<comment><USER8> Exactly like discoverability of APIs, or the documentation of a library.

<comment><USER9> Latin is related to many things, but surely we can agree it's not a "must learn" for someone designing a device driver.

Something as general as "don't make me think" may make sense for API design, but honestly I doubt the applicability of "The Elements of Typographic Style" or "Grid Systems" to library documentation and API discoverability.

<comment><USER10> Perhaps you are taking the headline a little to seriously, literally. How about.

 _"Design Books Every Hacker Who Would Like to Read About Design Should Consider Reading Unless They are Designing an API"_

</comment></comment></comment></comment></comment><comment><USER11> I found the Non Designers Design Book by Robin Williams irreplaceable. It really improved my understanding and skill. Instead of mediocre and bad designs, I can now create stuff that passes the bar. The most important thing it teaches you, is how to detect what is bad with some design and what to do to fix it.

[http://www.amazon.com/Non-Designers-Design-Book-Robin- Willia...](http://www.amazon.com/Non-Designers-Design-Book-Robin- Williams/dp/0321193857/ref=dp_ob_title_bk)

</comment><comment><USER12> I keep returning to the moment when I set up an email forwarding in IFTTT for every mentioning of word 'book' on HN feed - boy does it deliver some good links.

</comment><comment><USER13> This is a great list.

From a pure graphic design standpoint, I would recommend The Elements of Typography Style to any developer, as well as Thinking with Type by Ellen Lupton. A solid understanding of typography is maybe the most important, and definitely the most immediately useful, facet of design.

Interesting point about Muller-Brockmann as well. It's essentially a collection of case studies about working within constraints.

<comment><USER8> I would respectively disagree and so would many design schools.

Design as the original poster is talking about is essentially about communication and although Typography is one of the essential skills needed, it is not the only one.

<comment><USER13> And we communicate through words, most of the time.

Typography is pretty important there. It certainly isn't the only skill that's necessary, but it's a great place to start and is often key to layout, especially in designs informed by the grid.

</comment></comment></comment><comment><USER14> I don't want to seem snarky, but that first picture you have there, the one of a collection of books where I have to tilt my head to read them and that book on the left is called "Design of Everyday Things" and talks about designing things so that ... for instance... people don't have to tilt their heads to read them.

Why don't you rotate that picture, 90 degrees counter-clockwise?

<comment><USER15> I can think of a few reasons why it might be like that: to lead the reader into the article; to provide context of a library; to fit with the visual flow. Easy to criticise (especially on the grounds of efficiency) more interesting to critique... which is why many of these books are worth reading. Every wonder why the design of everyday computers are designed to keep us so stationary?

</comment></comment><comment><USER8> It seems a week doesn't get by without a post or two in Hacker News about GUI design or graphic design, often entitled something like "Design for Hackers" or "Design for Developers".

The trouble with all these posts is that they are trying to shortcut the methodology of design by various hacks, even something as lengthy as read 5 books is by-in-large a hack.

There is no substitute for practise, for looking and appreciating your world in a different way (this can be self-taught, I will discuss more below) and for in-depth thinking about what either comes down to communication or feedback problems.

Aesthetics largely is difficult to teach and learn and comes from confidence and a place in the brain that is hard to hack, but communication and interaction is learnt from early childhood by everyone - it just needs opening up and awareness of this as we mature.

By looking at the Design of Everyday Things (the book or the things around you) you begin to appreciate or notice the failures in signs, handles, buttons, phones, car controls, packaging and if you are tuned into this way of thinking it can be hard to stop considering the amount of interactions with "things" we have everyday.

Then taking this body of knowledge that is learnt one can then start objectively looking at one's own design and interaction problems, using the same tools that you have been using to analyse potential problems as they occur and working them out to find the best solution. But knowledge of the best solution will also come from practise of working with the constraints of whatever medium are working in (for example print, application, touch screen, architecture or furniture design).

This practise will mean mistakes - this is an important part of the learning process, just as it was when growing up, you will learn what works and doesn't work and in the future intuitively work with this in mind.

</comment><comment><USER16> As a designer I can recommend each of these books.

I'm seeing in various comments that 'hackers' and 'designers' are two different things, and that a 'hacker' needs a certain type of book or format to the material. I'd submit that most hackers have a thirst for knowledge, part from curiosity and part from a desire to be self sufficient in making their concepts a reality. Digest knowledge, practice the technique until it works and you've realized your goal? Does this not encapsulate the 'hacker spirit'? It's funny because most great designers I know came from the same perspective...

So I say put aside this idea of Hacker vs. Designer and who needs what. A design is a solution to a problem, visual design language/concepts are another tool set to help you make effective software and so much more. Don't treat it like its some sort of voodoo that only left-brainers can comprehend.

</comment><comment><USER17> All these books are great but they are theoretical in their approach. It's good to be knowledgeable about Golden Ration or Fitts Law but it wouldn't be of immediate help on your next project. The books for Hackers should be pragmatic in their approach and not very theoretical.

The books I recommend are: Non-Designers Design Book by Robin Williams. It focuses on topics like Consistency, Alignment, Proximity, and Contrast. With these four rules, you can make 90% of your designs look good. It also explains briefly on what colors and typography to use. When you've firm grasp of the fundamentals, it would make sense to arm yourself with more theory.

Don't make me Think by Steve Krug. It teaches you to simplify and focus on the end-user.

<comment><USER18> Trick question: _why_ is it good to know about the Golden Ratio?

<comment><USER19> Trick question: _why_ is it bad to preface trick questions by "trick question:"?

</comment></comment></comment><comment><USER20> Good books, but not particularly good for hackers. I have the "The Elements of Typography Style" for example, it is certainly a classic, but it is written for people already familiar with typography to some extent, is very long and most of it isn't very relevant to web design.

A good design book for hackers, would have less than 200 pages and deal with the essentials, basic typography, using whitespace productively, grids, color theory etc. in a systematic way. If anyone has any recommendations for that kind of book, I would love to hear them.

<comment><USER21> Agreed. These are great books, but "design for hackers" implies that these book will help you "hack" design, which they won't.

These books will help you get a better understanding of the principles of good design at root level, but they won't do much if you're just looking to make your app look or work better.

On the other hand, these books are much more practical:

<http://bootstrappingdesign.com/>

<http://designforhackers.com/>

<http://nathanbarry.com/webapps/>

And I also wrote a design eBook myself (not as good as the three above, but it's also a lot cheaper):

<http://sachagreif.com/ebook>

<comment><AUTHOR> agreed. sacha's books above are really practical and go the next level.

</comment></comment></comment><comment><USER22> I've long wanted a good book that covers design principles in a way similar to how one would introduce a student to calculus, but for graphical design, layout and their interplay with typography.

Most books I've found so far are merely coffee table books: Pages of very nice illustrations, but weak on explaining the theory and principles of applying it to, e.g., a book, poster or website.

Does anybody know of such books? What do serious students of graphic design read? Is the book "Universal principles of design" a good fit?

</comment><comment><USER23> I would also recommend "Designing with the Mind in mind" by Jeff Johnson.

Less generic that what has been listed in this article since it focuses more on user interfaces, it's a great overview of basic design principles, with clever illustrated examples.

[http://www.amazon.com/Designing-Mind-Simple-Understanding- In...](http://www.amazon.com/Designing-Mind-Simple-Understanding- Interface/dp/012375030X)

</comment><comment><USER24> It might be worth noting that there are many revisions of The Elements of Typography Style, the latest released only this month (version 4.0).

<comment><AUTHOR> nice one. done.

</comment></comment><comment><USER25> Is there an edition of Grid Systems with just English for, uh, half the price? I don't think I need a copy in German as well.

<comment><USER26> There is not. And honestly I don't think it's a must have. It's certainly a beautiful book, but you can learn most of what you need to know about grids just by Googling around. Typography is a comparatively much more complex topic, warranting the purchase of a book, and there's more to layout than grids and Swiss-German design.

If you want to buy a beautiful multi-lingual design book from that era, Emil Ruder's _Typographie_ is the better buy: [http://www.amazon.com/gp/product/3721200438/ref=as_li_ss_tl?...](http://www.amazon.com/gp/product/3721200438/ref=as_li_ss_tl?ie=UTF8&tag=morgasuthe-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=3721200438)

</comment></comment><comment><USER27> "The Design of Everyday Things" has been sitting on my desk for months. I really need to get around to reading it.

<comment><USER8> It's a great book, well worth of a couple of reads

</comment></comment><comment><USER28> This isn't about programming related design, but "A Pattern Language" is a classic, with architectural and urban design principles that apply in many other domains: <http://en.wikipedia.org/wiki/A_Pattern_Language>

</comment><comment><USER29> Another great one: Frank Chimero's "The Shape of Design". More about the design process than design itself, and that makes it all the more applicable to anyone who creates anything at all.

<http://www.shapeofdesignbook.com>

<comment><USER30> I somehow can't buy the ebook, the store appears to be down. Am I doing anything wrong?

</comment></comment><comment><USER31> I love this "every hacker" who evidently builds frontend systems.

<comment><USER32> ALL Software has a front end - a user has to use it at some point!

</comment></comment><comment><USER33> I would definitely add "Nudge" by Thaler & Sunstein to the list. It really helps understand how people choices are motivated, thus how to make good design choices.

</comment><comment><AUTHOR> This is awesome too: <http://hackdesign.org> "Design lessons for programmers, curated by top designers".

</comment><comment><USER34> the one book these lists always forget: "Understanding Comics" <http://scottmccloud.com/2-print/1-uc/index.html>

in my opinion, it's at par with "don't make me think". i recommend reading them both at once.

<comment><USER9> can you expand on why you think it would be a good resource about design ?

I read "understanding comics" a couple of years ago and while I think it's an awesome book I am not sure of why you think it's a good resource for designing stuff that is not "sequential art".

<comment><USER34> websites are sequential art i.e.: the github (logged in) start page <http://replycam.com/i/GitHub-20130115-111913.png> (left to right), your standard responsive (corporate) website [http://mobiletest.me/#d=iphone4&u=http://www.fullstackop...](http://mobiletest.me/#d=iphone4&u=http://www.fullstackoptimization.com/) (top to bottom)

and also: you can't separate text from design (like in comics) a point that "understanding comics" makes quite clear.

and user interaction: changing from one state to the next, from one webpage to the follow up webpage is a transition, a transition like form one page to the next, also from one panel to the next - and you can determine how the users experiences the transition, like in comics you can go from one detail to the next detail, from moment to moment, from one aspect to another aspect, or from boring to surprise (or, you can even go completely dada).

"understanding comics" is not a 1:1 analogy for website/webpages, but it helps you to really understand your pages, your design and how the users experiences them.

</comment></comment></comment><comment><USER35> +1 - The Non-Designer's Design Book

</comment><comment><USER36> where is "don't make me think"?

<comment><USER26> While useful for the non-designer, _Don't Make Me Think_ is a relatively shallow book compared with those recommended here.

<comment><USER36> I agree, but it's a good kickstarter. I don't know if the said 'every hacker' will understand the one about type (I haven't read it, but even as someone interested in design I find typography quite a difficult subject).

<comment><USER37> Don't worry about being intimidated - there's nothing inherently complex that'll stop you from intellectually appreciating the subject - there _are_ quite a few abstractions and moving parts, but treat _those_ like an API - "pages have margins and text blocks, and text blocks have leadings and..." The more important part is the intuition (or "taste in design") that lets you combine those parts together - and Bringhurst aims to give you _his_ view on how things should work by specifically prescribing style. That gets you over the initial hurdle in figuring out what works for _you_.

<comment><USER36> I'm not intimidated, and the things you mentioned aren't that complicated. what I don't get is all those stuff about what makes a font good. I can spot out flaws in ux, recognize a good ui solution from a bad one, and I see when something falls off the grid, ohter than those technical sides I like photography, illustration and many other forms of visual art, etc., I enjoy looking at good type, but with all of that I have literally no idea why designers say arial sucks (I know comic sans suck though, fortunately). what I always do with fonts is basically a negative selection so the end result is legible and doesn't look awful for my taste, but I'd f.ex. find problems mixing serif with sans correctly (serif is in general a mystery to me, I use sans as a safer bet).

this presentation I watched some time ago is cool <http://www.organizedwonder.com/videos/310> although as with arial, I couldn't tell you why helvetica is bad.

<comment><USER38> Typography is hard, if only because it's quite subtle until you really start paying attention to it (in everything). How good or bad a typeface may be is irrelevant beyond a minimum quality, e.g. it's kerned well, it has been pixel hinted. It's simply a question of appropriateness.

The reason Arial is often, arguably inappropriately, slated as a bad font is because it stacks up poorly against other fonts in the situations where it's appropriate. Helvetica is more sterile, balanced, and tasteful — it does most of the things Arial does, but better. The only advantage Arial has over Helvetica is at smaller sizes on the web, where the head of the t, tail of the g, and terminal of a help to make the characters more distinguishable (in theory).

So beyond quality, it's about what's more appropriate. Then of course you've got to set it well, but that's practice.

</comment></comment></comment></comment></comment></comment><comment><AUTHOR> Thanks so much for all your comments. I got to learn a heap from you.

</comment><comment><USER39> The news.layervault.com link takes me back to the top of the page.

</comment><comment><USER40> More Edward Tufte.

<comment><USER8> Tufte is a master of information design and data visualization. However, these concepts need embedding in a wider range of resources.

</comment></comment><comment><USER41> The only necessary book on design, at only 46 pages, is "Notes on Graphic Design And Visual Communication."

I have met AIGA award designers and Internet design celebrities who don't know some of the basics laid out in this short book.

It's probably the only _handwritten_ book you'll ever read.

[http://www.amazon.com/Crisp-Graphic-Design-Visual- Communicat...](http://www.amazon.com/Crisp-Graphic-Design-Visual- Communication/dp/1560520442)

</comment><comment><USER42> Good sharing, better if it was free.</comment>


Python: you are doing it wrong - <AUTHOR> http://www.pirnat.com/mike/2008/11/25/python-youre-doing-it-wrong/

<comment><USER2> Personally, I don't see anything wrong with it; it still beats Perl for readability.

 _bada bing_

</comment><comment><USER3> Looks like someone was trying to be a little too cute or just plain bored.

</comment><comment><USER4> That is strangely hypnotic.</comment>


MongoDB Docs down? - <AUTHOR> http://docs.mongodb.org/

<comment><USER2> Yes, it says the service is down.</comment>


Founders are terrible CEOs - <AUTHOR> https://work.qz.com/1125919/we-finally-have-proof-that-visionary-founders-make-the-worst-ceos/ <comment><USER2> The one kind of people who aren't named in this article: investors. Ben Horowitz of A16Z explained why A16Z prefers to invest in founder-led companies.

(...)

The macro reason: that's the way most of the great technology companies have been built

(...)

Professional CEOs are effective at maximizing, but not finding, product cycles. Conversely, founding CEOs are excellent at finding, but not maximizing, product cycles.

(...)

Innovator's requirements – what does it take to find the product cycle?

So where did Jobs get this "founders courage" and what is it? In addition to general brilliance, we see three key ingredients to being a great innovator:

1\. Comprehensive knowledge

2\. Moral authority

3\. Total commitment to the long-term

Great founding CEOs tend to have all three and professional CEOs often lack them. Here's why.

(...)

[https://a16z.com/2010/04/28/why-we-prefer-founding- ceos/](https://a16z.com/2010/04/28/why-we-prefer-founding-ceos/)

<comment><USER3> > The one kind of people who aren't named in this article: investors.

Just to clarify, you mean private company investors. Typically a company goes public as part of entering a different "life stage" and its operation and needs on either side of that transaction are different.

Which, BTW is why there are so few "crossover" funds (like TCV) that invest in both private and public companies: the things you look for are quite different (in operations, risk, and return).

(I count the private equity guys like Silverlake and Carlisle in the "public" side since they invest in companies that are already public and have similar op needs to public companies).

</comment></comment><comment><USER4> How many founders start their company as a way to enrich capital holders or investors? That's the job of a CEO.

A founder is supposed to think about stuff that often competes with that, like making employees feel motivated or delivering value to customers.

Hell, even building a healthy company is often at odds with capital return. We see daily examples where the 'right' thing to do (from capitals perspective) is to sell off all assets, submerge the company in debt, and abandon ship.

<comment><USER5> > _A founder is supposed to think about stuff that often competes with that, > like making employees feel motivated or delivering value to customers._

Honestly, I think this explains why sidelining founders early has such a bad track record. They may not be expert managers, but they have goals consistent with building for the long term. (The ones who make it to successful companies, anyway.)

A lot of the horror stories from the dot com era are of visionary-but- unskilled CEOs being replaced by experienced executives from big 90s companies. And so management improved and waste was cut, but the company promptly became adversarial with its customers and even employees. Without the capital reserves and institutional power of BigCo, weak talent and angry consumers drove them into the ground. (I vaguely suspect this is why tech companies this cycle have been so slow to rationalize around perks - it's worth overspending on worse-than-cash offerings just to ensure you don't go too far the other direction.)

I've heard it said that at a certain size, companies stop being entities in a market and grow markets inside the company. Certainly, many large companies appear to view their employees and consumers as enemies. (e.g. Walmart's view on staff, EA's view on game buyers.) So CEOs who _don 't_ operate like that after winning are framed as 'bad' executives, while startups that bring in BigCo thinking too soon destroy all of their advantages.

</comment></comment><comment><USER6> Did nobody read the underlying research of the centerpiece study supporting this hypothesis? How did this headline and the article get written?

"We investigate these issues using the World Management Survey (WMS), an international data set providing detailed information on the management practices for a large sample of medium and large MANUFACTURING [emphasis added] firms (Bloom et al. 2014; Bloom and Van Reenen 2007) in thirty- two countries."

Sure, it seems relatively believable that large and medium sized manufacturing firms are better run by professional managers than their original founders, given the dynamics of that particular industry. Medium and large manufacturing firms require relatively common knowledge, have repeatable processes, are high volume/low margin, use commoditized inputs and outputs, as well as many other factors that make it ripe for bean counting as opposed to risk taking and vision. This is a straw man if I ever saw one.

[Edited typo]

<comment><USER7> Many professional CEO's tend to focus on building moats around the business, to slow down innovation or disruption to protect what they have while today's product CEO's are far more into disruption.

</comment></comment><comment><USER8> There's no valid way to get a statistic on how founder/professional CEOs cause success.

Using the methodology I think they use, the statistics are dominated by the fact that only fairly successful companies are able to hire a professional CEO at all. A company that starts and goes nowhere (perhaps due to the idea being bad) is always in the founder-CEO column.

It's probably also true that companies with multiple offices are more successful than companies with a single office. And companies with a superbowl commercial are more successful than the average company without one. But that doesn't imply you should do either for your early-stage company.

</comment><comment><USER9> A few recent HN posts and articles about CEOs to augment your reading of this post:

_

1\. _How to Be a C.E.O., From a Decade's Worth of Them_

> > [https://news.ycombinator.com/item?id=15581087](https://news.ycombinator.com/item?id=15581087) > [nyt | 14 days ago | 74 comment]

> [https://www.nytimes.com/2017/10/27/business/how-to-be-a- > ceo....](https://www.nytimes.com/2017/10/27/business/how-to-be-a-ceo.html)

_

2\. _The Best-Performing CEOs in the World 2017_

> > [https://news.ycombinator.com/item?id=15640548](https://news.ycombinator.com/item?id=15640548) > [hbr | 6 days ago]

> [https://hbr.org/2017/11/the-best-performing-ceos-in-the- > worl...](https://hbr.org/2017/11/the-best-performing-ceos-in-the-world-2017)

_

...and the research article from this post:

> > [http://www.people.hbs.edu/rsadun/AreFounderCEOsGoodManagers....](http://www.people.hbs.edu/rsadun/AreFounderCEOsGoodManagers.pdf)

</comment><comment><USER10> To the early stage startup founders out there who read this and think:

"Hey, from today I think I'll try to become a better manager, let me go pick up that management skills and MBA book"

Please don't. Just be yourself. While working on a startup I had somehow decided that I "need better management skills" when it was barely a small startup and I should have been focusing more on product and product only, I read too many business books and became a "great manager".

A "great manager" is totally necessary once the company reaches certain level, but for most early stage startups, it will kill you. Focus on the vision and make it top priority to get to that vision even if people think you're being irrational.

I'm not saying you should be an ass, but just saying don't invest too much time trying to become a "great CEO" after reading these articles, because that's the last thing that matters in early stage startups. CEO doesn't exist in early stage startups, only irrational founders do.

<comment><USER5> > _let me go pick up that management skills and MBA book_

If a founder _were_ going to devote time to management skills, I wonder what the most beneficial topic would be?

My first two guesses are a decent guide to hiring (if one exists), and an HR guide to crisis management. CEO-style leadership is impossible in a startup, so it seems like hedging against crisis is the best bet. If you can slightly lower the odds of a bad hire or internal schism, that's probably higher-value than any marginal improvement.

I'd definitely be interested to hear other thoughts, though: whats the best rapid improvement available?

<comment><USER10> Assuming that you are working with smart people, they follow you NOT because you read a leadership book and run some good leadership tactics on them. They follow you because they "choose" to believe that you know what you're doing in the context of your startup. Remember, they are smart people. And many smart people have strong bullshit detector.

People followed Bill Gates and Steve Jobs even though they were assholes not because they were "great leaders", but these smart people chose to believe that these founders had a great understanding of the landscape and can execute.

Therefore in my experience the most helpful books were those that gave me insights on how the world around us works since that helps with your world view. It's always great to have a higher level perspective.

For example, you could have looked at the chatbot fad last year and think that chatbots are the future, and went all in. Or you could have thought deeper into why the fad was taking place and work on a deeper problem. This type of ability is what attracts smart people to work with you.

This is only possible if you have a deeper understanding of the world. So read more philosophy and science books and more books that give you a better understanding of the world, than shallow business books.

</comment></comment></comment><comment><USER11> Related read (with a grain of salt, always): CEOs don't steer. [https://www.ribbonfarm.com/2017/11/09/ceos-dont- steer/](https://www.ribbonfarm.com/2017/11/09/ceos-dont-steer/)

</comment><comment><USER12> I'll fix it...

"Some" Founders are terrible CEOs of "Some types of companies"

<comment><USER13> Exactly.

> _Founder CEOs were by far the worst type of CEO_

That's a hyperbole.

</comment></comment><comment><USER14> You have to admire people like Larry Ellison or Bill Gates who have the bandwidth to lead a company from zero to large successfully. They have a very rare set of skills.

<comment><USER15> I agree, and my comment is not to diminish yours in any way.

But...

Perhaps it's confirmation bias, it seems more and more comments on HN have acknowledged the inescapable role of luck in the success of these leaders' ascent.

It's difficult to reconcile, though, because we all want to be in control of our own destinies. Articles that lionize the Ellison/Gates/etc. of the world just feed that "I can do it too" mentality.

How many people here actually do have the capacity to be one of these high- caliber leaders but never have the opportunity because the planets don't align just right?

<comment><USER16> Playing on your point of luck - I recall reading in a biography of Gates that his mother was on a charity committee with the exec at IBM that was tasked with outsourcing development of an OS for the IBM PC. Anyway, they got the contract, provided DOS to IBM - and compatible vendors - and the rest is history. We don't know - of course - how much that pre-existing relationship influenced IBM's decision and we don't know if Microsoft would have had the explosive growth they did without that contract, but it definitely looks like the stars aligned.

</comment></comment></comment><comment><USER17> Worker productivity and managerial efficiency are the metrics they use in the study.

From this I conclude that business school professors are terrible at picking success metrics.

</comment><comment><USER18> GAFAM - today the five largest companies by market cap - are all about founders CEO. So how do we reconcile these two sets of facts?

</comment><comment><USER19> I have not read the entire underlying study behind the article but I feel the headline may be a bit misleading.

From the article:

"But founders' poor success rate as CEOs also has to do with the kind of personality that's compelled to start a company in the first place. People often start companies precisely because they want the freedom to run things as they wish—which sometimes includes poor managerial decisions."

This may be true for some founders but I'm struggling to see whether this represents a substantial sample size. My impression is that people often start companies because they want to go through the experience of starting a business and seeing it grow and succeed. Freedom may be a part of it, but this article seems to suggest it's a dominating variable that ultimately leads to the demise of the founder(s) which I'm struggling to see.

<comment><USER20> Some people want to run a business, some people see a big financial opportunity, some people have a vision of something they want to exist in the world. All 3 of these could lead to someone deciding to start a business, but for the more visionary types, the fact that it's a business might just be considered a necessary evil, rather than the goal.

<comment><USER19> Gotcha, I misread it then, seems like they're not implying any substantial sample size as much as recognizing the flaws of a particular motivating force behind starting a company.

</comment></comment></comment><comment><USER21> For the stock market founders don't make good ceo in most other metrics they are probably the best to build companies. In today's world it has all become about the capital appreciation for stock holders to the detriment of everything else. A company that has around a billion in revenue and just 1-2% profit with few growth prospects is considered bad but a company that has a billion in revenue but 5-10% loss and is growing revenue by 10-20% is considered good.

</comment><comment><USER7> Can a founding CEO learn to be a professional CEO?

What if a product CEO first spent time learning to grow and scale businesses via consulting or working in a professional capacity, and then walking away from it to start something?

It seems likely greater number of future CEO's will come from the path of CTO'S who have learned to touch, support and grow all areas of the business.

</comment><comment><USER22> Keep in mind that the smart founders all hand over daily control to top managers at a certain point - FB->Sandberg, G->Pichai, Msft->Nadella.

The best strategy for founders from these data points seems to be to retain control via stock ownership, but recognize your limitations and bring in good managers.

</comment><comment><USER23> I'd suggest that the kind of people who get things started are often not well adjusted to the kind of guard-labour that's so often typical of management and C-level roles.

</comment><comment><USER24> You'd expect such findings from an entity churning out corporate workers — MBAs

Reaching for large jar of salt

</comment><comment><USER25> There's something you'd probably need to describe in terms of "risk" if you were to describe it in business school language at all.

..something about owning your own risk-reward. The irrelevance of whether or not a failure/success was yours, bad luck or whatnot. The whys of success aren't as important to a CEO, at least not outside of his own head. Founders and professionals face totally different incentives, different selection criteria.

Professional managers, are constantly assessed. Their success depends others' perception of them. Career incentives are intertwined with a system of "winning" regardless of whether a company company wins, in a lot of cases. If a company doesn't succeed, a professional CEO will probably get another CEOing gig… if the failure doesn't reflect too badly on him. CEO actions need to be justifiable. Failing despite doing the right thing is _always_ better than the other kind of failure, much better. The Travis Kalkanik failure is a career killer for a professional exec, regardless of successes. The John Scully kind of failure… that's not even failure.

A founder-CEO typically doesn't care about that stuff, what the ultimate narrative will be.

Imagine a founder neglects some basic aspect of business. Say HR stuff. No periodic assessments. No employee development… A mess where some people do nothing… Lets say it's bad, visible consequences.

From a founder's perspective, this _might_ be meaningless. If we manage to make thingX, we'll be successful. If not, we'll fail. That "problem" doesn't help or hurt my chances much, so I don't care about it. It's just mess. Right or wrong, if the CEO doesn't see The Problem as something standing between here and ThingX, then who cares.

To a professional CEO the same problem represents a massive target on his back. If we fail, I fail. _The Problem_ will be a newspaper headline. The board will hear. The narrative of failure will include "bad CEOing" in a nice, narrative package. Even if we succeed, the stink will still stick to me.

I think this results in more consistent performance, across any metric where performance is consistently measurable.

Consider how this article treats"CEO Performance:"

 _"a team of professors at the business schools of Duke, Vanderbilt, and Harvard universities finds that founder-run companies to be less productive and more poorly managed_ "

" _..were 9.4% less productive, on average.. consistently lower management scores.. less transparent management practices—nepotistic hiring, et cetera.._ "

These are the generic assessment criteria of a generic professional CEO, not a founder. They apply to Coca Cola exactly as they apply to Groupon, Stripe or SpaceX. Nowhere in any of that will you find " _but he knows how to get to mars_ " as a criteria.

</comment><comment><USER26> I'm not sure the market (weighted by market cap) agrees with the title.</comment>