throwing away stuff = decisiveness

After you accumulate enough stuff in your home, you start to forget things even exist. 

You can walk past them every single day and their image will even strike your optic nerve, but your consciousness doesn't even register them anymore. Or maybe you kinda notice them and they annoy you for a split second, but you just don't wanna deal with it right now. Yet they still take a toll on you, just distracting you or making everything feel more cluttered and complicated. You want your home to be a place for calm but all this stuff creates mental noise that makes that impossible.

So I just realized today I had nowhere to put a book on my desk.

Then I started cleaning.

I looked over and began with some crap littering my side table. These things REALLY pissed me off: old papers, pamphlets, old business cards from people I don't even like, ticket stubs, mostly-empty toiletry items, a battery that was probably maybe dead. I threw them in the trash bag.

As I did this, I started noticing more and more things in my room. Random stuffed animals I had won at carnivals. Stupid BOXES for electronics with unread manuals in them ... and i'm pretty sure i had lost that PowerShot camera three years ago. Why the fuck is the box still here?

The rage built up. This was no longer more of the usual: just tidying up, pushing shit around. This became about actually solving the root cause.

The mission began to snowball. I started throwing away crap, you know, the crap you just hadn't yet decided was worthless yet: stuff you held onto just because you didn't feel ready to junk them or felt bad tossing them or postponed dealing with for some reason. Old t-shirts I don't really wear anymore (clothes are really hard to toss out, for some reason). Then crap from ex-girlfriends. More random shoe boxes, bags. A torn undershirt (???). An old messenger bag from high school that i don't use anymore, literally covered in dust; it had an anti-itch spray for mosquito bites in the front pocket. Inside a big box for "tech shit" was a stack of CD-Rs I kept around cause, well, just in case! When the fuck do I ever burn CDs? Junk. Random cables. A power charger for an old flip phone. Junk. A broken mechanical pencil; why the fuck did i keep this around?

Then by chance I looked under my bed and discovered not only a fair amount of dust but also three pairs of shoes I had completely forgotten that I owned. One pair was barely used because I found they were extremely uncomfortable and I couldn't return them so I had decided to stash them down there. Just seeing them again pissed me off. Fucking stupid. Junk. This exemplifies some of the worst cases of material cruft: bad purchases that you regret but can't muster the courage or resolve to discard. Just chuck 'em out. The guilt goes with them.

More shopping bags tucked in the corner. Fuck them.

The more crap I threw the more I started SEEING the crap in plain sight all around me. I could finally notice things, like some dark veil had been lifted from my eyes. Armed with this new perspective, I ventured into the kitchen.

Cans of shitty food I bought for Hurricane Irene / Thermonuclear War / Whatever. Junk. An old bag of tortilla chips that must've been two months old. Junk. A random bottle of whiskey with literally a tablespoonful left. I shrugged and drank it. The bottle went in the junk.

Some fucking 1/4-full bottle of water sitting in the corner. RAARKJALFKJELFKJAFARGHHH.

At this point I was ... well you get the idea. I was just ready to destroy shit.

I went into the living room.

Old magazines. A newspaper from a month ago. Some CD I forgot to put back in its case but I had already ripped it to my library so the physical disk just wastes space so who fucking cares. Junk. A brochure promising exciting adventures mountain biking (which I still haven't done yet so I kept the thing to remind me someday, possibly never). Junk.

A dirty paintball mask I bought for $10 on the one and only day I've ever gone paintballing, discovered somehow fallen behind the TV. There are several things wrong with this but whatever. Junk.

So, moral of the story ...

The real reason why I've accumulated all this crap isn't because I'm some kind of deranged pack-rat, like those old ladies who keep newspapers stacked up to the ceiling or wackos that keep old used diapers in the closet. I was just indecisive. Whenever I felt guilty about something or postponed something or didn't want to make a real decision about something, I just stashed it.

The next time you see something in your room, ask yourself: do I actually use this? Am I seriously going to need it? No? Fucking toss it now.

McLuhan

A nice summary of McLuhan​

The printing press, the computer, and television are not therefore simply machines which convey information. They are metaphors through which we conceptualize reality in one way or another. They will classify the world for us, sequence it, frame it, enlarge it, reduce it, argue a case for what it is like. Through these media metaphors, we do not see the world as it is. We see it as our coding systems are. Such is the power of the form of information.
— Page 39, Neil Postman, 1979.

Rothko

Watch this documentary by Simon Schama, part of the Power of Art series. It's beautiful and worthwhile. Try to see it in the highest quality possible.

And if you get a chance, read Rothko's own little manifesto. It's a fascinating little book (which he never intended to be published) about his views. Rothko spent a lot of time thinking about what art is and isn't, and the role of the artist in society.

He said: "A painting is a statement of the artist's notions of reality in the terms of plastic speech."

The Artist is not a technician, for skill is just a sleight of hand. The advertisement illustrator, however skilled he may be, makes pictures, but not art -- his primary mentality and motivation is actually that of a salesman. The artist, as Rothko defines it, is a philosopher. His work expresses a perspective on the world that cannot be described in words, because he is inventing language. The stronger the artist, the more distinctive his language (also known as "style"). The artist, like the philosopher, generalizes beyond the particular, though the plastic elements of art find many other employments in society: decoration, illustrations, informative graphics, road signs, etc. Mathematicians, similarly, apply their craft to settling accounts, puzzles, computing, gadgeteering and engineering vacuum cleaners. But the real function of these two characters is to evolve generalizations

Jonathan Blow: Programming Aesthetics

http://the-witness.net/news/2011/06/how-to-program-independent-games/

This is a really great talk by Jonathan Blow, the creator of Braid. It may be titled "How to Program Independent Games" but it should really be called "How to Get Shit Done as a Programmer"​. 99% of his talk has nothing to do with games at all, and is generally applicable to anyone developing a large quantity of code. He discusses his notion of programming aesthetics (what is "good code") and how that notion has evolved from when he was a student to today.

​The real force behind his evolution was the decision to go from having a pile of half-finished projects to finally releasing a game: to "be effective at getting things done". He recognized that shipping a game is a monumental task, and that you must be brutally effective to achieve it.

A few of his points:​

Impulses to Optimize are Usually Premature. Optimizations demand assumptions, assumptions constrain you in the future. They typically result in code that is trickier and harder to understand later.

Most code is not​ performance sensitive. If only 5,000 lines out of 100K were really performance sensitive and you made sure all the code was fast, you've wasted at least 95% of your time, almost certainly at the cost of maintainability. This is true for Jonathan Blow's case where he's thinking about frame-rates and whatnot, obviously. For other applications, like UIs, performance is measured in user performance, and I would state a corollary: most UI elements are not performance sensitive either. Let's say I introduce some speedup or shortcut in the number of gestures needed to achieve X, whittling it from 5 clicks to 4 clicks. But if X is a rare operation (once a day) rather than frequent (once a minute), then I've really wasted my time adding complexity to the code, making the assumptions, and adding the logic to eliminate that 5th click.

And yet someone will point out, "but it's not PERFECT!" Perfect in what sense? Getting down to 4 clicks is potentially flawed in EVERY OTHER dimension of reality that actually matters: time spent & opportunity cost, code complexity, inflexibility in the future, stuffing the UI with busy panels full of random shit, etc. Again, use your judgment and settle priorities definitively.​ And keep in mind, there are different ways to assess the value of reduction; there are absolutely situations where something occurs rarely but is extremely important to optimize. For example: the initial signup. 

A generalized system is usually worse​ than a specific/hardcoded one. Typically you think, "oh yes if I make this generalized then it can be useful for all sorts of inputs and do so many things." But if you only actually used two cases out of 20 then you've not only wasted your time but also made your work harder to understand... 

Generalized systems are usually less self-documenting than specific ones.​ (Such a good point, at 26:00m) In fact, they are downright, literally, obfuscated. When confronting a generalized system, perhaps you initially think it's fine to delete something; but as it turns out, that something affects something else that affects something else and then you have a mess. With specific systems, you can look at them, understand totally what they do, and delete or refactor with confidence.

For example: an endpoint that takes ten optional parameters, yielding twenty  different results depending not only on what inputs you provide but also their values. Is this really better than five endpoints that each do something very straightforward? Is some marginal amount of "code reuse" really worthwhile? Think about it next time: this basic idea about code. Is this function intended to be generally usable or is it intended to be a one-off thing? It's really not helpful to obfuscate that.

Adding additional state is usually more bug-prone than a functional style. ​Generally, the less state you keep track of, the better. Keeping state is often associated with minor optimizations (to reduce fetches or requests) but often adds far more complexity than it's worth. 

John Carmack 1999

​For some reason I really like reading/watching interviews with tech folks from 10+ years ago. Firstly, because it's fun to be like "oh hey remember those floppy disks?!? HAHA"! Secondly, because it's interesting to observe path dependence in a pseudo first-hand retrospective. Thirdly, because it's funny to see that some things never change.

​Cool interview w/ Carmack on /.

Q: I once read, in Wired, an article that said you have an incredible headstart on everyone else for making "virtual worlds" on the Internet using your engine from the Quake games. Do you have any intention of doing this?
A: Making Snow Crash into a reality feels like a sort of moral imperative to a lot of programmers, but the efforts that have been made so far leave a lot to be desired.
It is almost painful for me to watch some of the VRML initiatives. It just seems so obviously the wrong way to do something. All of this debating, committee forming, and spec writing, and in the end, there isn't anything to show for it. Make something really cool first, and worry about the spec after you are sure it's worth it!

​Funny. Like many other nerd ideas, Virtual Worlds have been tried and re-invented again and again.

And a nice quip about programming in general & what makes a good programmer:​

Programming is really just the mundane aspect of expressing a solution to a problem. There are talents that are specifically related to actually coding, but the real issue is being able to grasp problems and devise solutions that are detailed enough to actually be coded.

Good design disappears from the user's point of view

​It's very complex to make something simple, by whittling away and reducing until you are left with the essence of the problem being solved. When it is achieved, the technology just "fades away" and you are no longer aware of the tool. It's just an extension of yourself.

One of the things I love about the iPad, for instance, is when you’re using the iPad, the iPad disappears, it goes away. You’re reading a book. You’re viewing a website, you’re touching a web site. That’s amazing and that’s what SMS is for me. The technology goes away and with Twitter the technology goes away. It’s so easy to follow anything you’re interested in. It’s so easy to tweet from wherever you are. And the same is true with Square. We want the technology to fade away so that you can focus on enjoying the cappuccino that you just purchased.
— Jack Dorsey

​As tools get better, they reduce the amount of stuff you need to learn to use them. Moving towards automatic transmissions in cars removed the need for a clutch, for the shifter, and most importantly, it eliminated need to understand that the car had various gears at all. The car is just magic.

You shouldn't need to learn about​ computers in order to use them. 

Lost Interview 1990

Transcript. In case the page is lost forever, a copy of the transcript.

At 36:30

On "Doers" vs. "Thinkers":

my observation is that the doers are the major thinkers. The people that really create the things that change this industry are both the thinker and doer in one person. And if we really go back and we examine, you know did Leonardo have a guy off to the side that was thinking five years out in the future what he would paint or the technology he would use to paint it, of course not. Leonardo was the artist but he also mixed all his own paints. He also was a fairly good chemist. He knew about pigments. Ah knew about human anatomy. And combing all of those skills together, the art and the science, the thinking and the doing, was what resulted in the exceptional result.
And there is no difference in our industry. The people that have really made the contributions have been the thinkers and the doers. And when you, when you ah, a lot of people of course, it’s very easy to take credit for the thinking. The doing is more concrete. But somebody, it’s very easy to say oh I thought of this three years ago. But ah usually when you dig a little deeper, you find that the people that really did it were also the people that really did it were also the people that really worked through the hard intellectual problems as well.
— SJ

The Bicycle for the Mind

Don't forget this:​

I think one of the things that really separates us from the high primates is that we’re tool builders. I read a study that measured the efficiency of locomotion for various species on the planet. The condor used the least energy to move a kilometer. And, humans came in with a rather unimpressive showing, about a third of the way down the list. It was not too proud a showing for the crown of creation. So, that didn’t look so good. But, then somebody at Scientific American had the insight to test the efficiency of locomotion for a man on a bicycle. And, a man on a bicycle, a human on a bicycle, blew the condor away, completely off the top of the charts.

And that’s what a computer is to me. What a computer is to me is it’s the most remarkable tool that we’ve ever come up with, and it’s the equivalent of a bicycle for our minds
— Steve Jobs

 ​