Whilst I do like having shows and movies on to the side as I code... it's on the condition they're actually interesting and have good writing. Otherwise I just can't bring myself to be interested.
A lot of these types of books and posts only deal with the low hanging fruits of software design difficulty, such as the provided discount service example.
The trouble is that kind of thing's pretty much software development common sense - only the inexperienced don't know it.
The true difficulties of software development are often must gnarlier in my experience.
For instance, making architectural choices for large and dynamic software systems, such as say a cutting edge game engine - that can be really hard to get right, and there's not always a lot of sage advice out there for how to navigate it - and not just for game engines but for any equally or more complex software.
I guess my point being - I'd love to see more effort into addressing the hard design stuff, and less repetition of what's already been established.
Every example I see in programming books that say something like, "You should do it this way." Always come with the caveat of, "It depends."
For the hard stuff that you would like to see covered the "It depends" part becomes more important. The correct way of handling the really tough cases you're talking about are extremely circumstancial. Thus, a book discussing them generally wouldn't really work. What would probably work better are examples of these tough design issues that include the actual code and some discussion about why specific design decisions were made.
I like reading code from people who had to make tough trade offs in the real world and hearing in their own words why they made the decisions they did. I loved reading Lion's Commentary on the UNIX OS 6th edition, for example.
There are many pillars of our own intelligence that we tend to gloss over. For instance - awareness and the ability to direct attention. Or something as simple as lifting your hand and moving some fingers at will. Those things impress me far more than the noises we produce with our mouths!
"There is no such thing as death at all for this body. The only death is the end of the illusion, the end of the fear, the end of the knowledge that we have about ourselves and the world around us."
"There is no such thing as permanence at all. Everything is constantly changing. Everything is in flux."
My instinct is that this is probably on the naive side. For instance, we use separation of concerns in our systems because we're too cognitively limited to create and manage deeply integrated systems. Nature doesn't have that problem.
For instance, the idea that we can neatly have the emotion system separate from the motor control system. Emotions are a cacophony of chemicals and signals traversing the entire body - they're not an enum of happy/angry/sad - we just interpret them as such. So you probably don't get to isolate them off in a corner.
Basically I think it's very tempting to severely underestimate the complexity of a problem when we're still only in theory land.
Things that look like snakes like those weird mimic moths or a coiled garden hose in tall grass can also trigger that uncanny feeling to me. I suspect serpent recognition is coded into many animals at a very deep level, and anything that trips that recognition will seem uncanny.
If you have cats you can trigger this response with many of them, using a leather belt.
If you hold the belt at the buckle end and then lay it on the floor while rotating your wrist back and forth, the belt will writhe and curl in the manner of a snake.
Many/most cats will instantly respond to this and they will try to strike the belt while simultaneously keeping as much distance as they can -- but still compelled to keep trying to strike the threat.
Affective Blindsight detection of snakes is real and supports that at least the primates have that; there's plenty other animals that freak out at snake like objects (cats, elephants, etc)
Game dev is one of the most unconstrained software domains. On the one hand it's what makes it exciting and endlessly interesting, but it's also what can make it a nightmare. Perhaps most simply because computers are really not up to the task of simulating worlds, and so much hackery and smoke and mirrors are required.
It's easy to make something lean when you can start from scratch. Backwards compatibility and large user bases resistant to change are overlooked as primary causal factors of the modern state of affairs, imo.
Just want to point out that starting an OS from scratch, even if reusing an existing kernel, is a monstrous epic.
I find it difficult that one would be able to just use existing kernels like Linux without some considerable changes to support a more secure userspace (which seems like a requirement in order to do wild new things).
reply