“We would have been home by now!”

Today, I spent two hours on a train listening to a conversation. Two tradesmen decided to travel home by train instead of heading with their crew on the highway. Throughout the conversation, the younger of the two men repeatedly expressed his frustration over the fact that they had lost time by spending money on the train (their crew was already home shortly after we left), while the older man told him again and again to relax, and to enjoy himself for once.

They had a few beers along the way, and their conversation was at times heated, deeply personal, nostalgic, and humorous. They were each a little rough around the edges, in slightly different ways. The younger man had lost his driver’s license for one reason or another, the older had been heavily involved in gang activity when he was younger. They discussed women, drugs, getting and staying clean, their plans for the weekend, the past, really the gamut of life. They rejoiced in their friendship, they talked about how they hated each other (and each threatened violence to the other, at times jovially, at times seriously).

The younger one was intent on saving money and hurrying, even if it meant taking extreme personal risks. The older kept telling him not to bother — a particular sticking point was around their transportation when they arrived. The older man wanted to just split a cab, while the younger man insisted they only take a cab as far as his house, and then he’d drive the older man home. But he wanted the older man to cover the cab. The older man insisted that neither of them should drive; they’d been drinking. The younger man repeatedly brushed him off.

It was really interesting. Near the end of it, during a reprise of their earlier argument over timing and the cost of the train and why they took the train in the first place, I suddenly started listening as if they were characters in a play. Things slipped into an uncanny valley very quickly, and I felt like someone outside of the world, or that these men might just be actors who screw with travellers, performing a brilliant two-man show. Suddenly, their lines didn’t seem to be delivered as convincingly. It sounded like they were just saying what they thought they were supposed to say.

It was one of the strangest things I’ve ever noticed.

As we got into town, the elder man, frustrated with how sour the younger had been throughout the trip, stood up and headed for the exit early. The younger one sat silently for a bit, and then followed. I had a few minutes to mull the experience over. I considered the subjects they’d talked about, their differing perceptions of time, and their attitudes toward life, each other, and the people they knew. I haven’t had an opportunity to observe people so different from me in such a candid fashion before, and it was really stunning.

My final thoughts, as I put my laptop away and got off the train, were that I, like a fish in water, pay very little attention on a daily basis to the geekiness of the people in my universe. I had actually forgotten that most people aren’t like the ones I interact with every day, and it’s weird to recall that generally, I am the weird one.

Hockey and Honing The Craft

I did not ever think I would grow up to describe myself as a hockey player. I remember being alright at “getting the ball away” when playing floor hockey as a youngster. Some of the kids who knew things about hockey were angry that I never passed it to anyone, and they had every right to be. I was just flinging the ball as far away as I could.

I can also remember getting my two upper front teeth knocked in while playing floor hockey during Grade 11 or 12. One of them is porcelain now, and the root on the other fortunately survived. Thankfully there’s no gaps! From that day on until a few months ago, I pretty well stayed out of sports’ way.

Fast forward to today: I’m feeling a bit down on myself at work because I haven’t found the level of productivity I aspire to. Two particular kinds of decisions come up occasionally, and my annoying default response is to freeze up and find a distraction. If it’s a particularly tough little knot to figure out, I can burn a lot of time thinking, getting frustrated, finding something else to do, returning and reloading the mental context, then getting frustrated and removing myself again in a sort of loop.

This has got me thinking — just a bit — about the dreaded topic of “whether I should even be doing this kind of work at all”. In many other situations, I feel I can act quickly and land on my feet, but these ones just catch me. The first is the “should I write it one way or another” moment, and the second is far worse: “I wrote it the one way, but now I see the problems with it are bigger than I guessed… should I continue down this road despite the looming clouds, or undo my progress and try the other path? Maybe there is a third option that hasn’t occurred to me yet?” That one kills me. Especially when the “looming clouds” are something that appears time consuming, might still fail, and I don’t really know how to do it.

So anyway, back to hockey. It’s floor hockey, by the way — I’m not awesome enough to do this on skates yet — tonight I got a goal and a half, while playing defense. The first goal, the full goal, was a lucky shot that soared in under the crossbar. Felt great. I played a pretty solid game (for me) tonight: kept on people, cleared the ball to the right places, stopped lots of incoming attacks, and I didn’t get as out-of-breath as I have in the past.

I’ve only been doing this once a week for two or three months. When I started, I was dying by half-time, and I noticed very clearly how bad I was. It was still fun, but I felt like I was as much harm as good out there. That feeling kept on for a while, but it’s been less and less. I’ve made steady progress. But wait: I didn’t tell you about my other goal yet.

They got one on us, and we were already down by a few. It felt like we kept outsmarting and outplaying them, but something would slip and the ball would fly just perfectly off of legs or a mask into the net. A fluke of flukes! I felt angry — not at the other players, but at how we just couldn’t catch a break. The goalie passed me the ball and I started to bring it up; the other team moved in to block me as I got to half, and my teammates broke over the halfway, but were pretty well covered.

I focused my anger, and decided to be tricky! I deked right like I was going to pass while I ran left, bringing the ball with me. I dodged around a confused-looking forward, ran toward the net, halted the ball and shuffled it away from a nearby defense, then shot! It went straight past the goalie, who just stood there dumbfounded. Everything had lined up perfectly: I felt like a boss. While triumphantly strutting back to the other side, I heard shouts: “doesn’t count! doesn’t count!”

Why the hell doesn’t it count? Were you guys subbing really slowly? That’s your fault.

No, actually, see, there’s this rule in hockey. When the goalie passes it to a person after a goal, that person can bring it forward with them up to half, but must pass it over the line. I didn’t pass the ball: I just ran with it. The rule probably exists because rushing the net like that gives an advantage. The reason everyone just let me past is because they all know the rules, and I looked like an idiot. A complete amateur, which is what I am.

At the end of the game, they decided to count it anyway. We lost by a wide margin regardless, and they were feeling charitable. I made a complete beginner’s mistake tonight, but that doesn’t change that I played a solid game. I poured my heart into something, and it was a dumb idea. But I learned something.

My stuff at work? I’m probably making stupid decisions all the time. As long as I keep my head level and really work hard, I’ll learn. The same goes for every thing in my life: I have mistakes ahead of me, and should consider them as welcome opportunities to learn from. All I can do is try to be better each day.

Electrogravitics?

So, this is a pretty wacky wikipedia article. I wish that the uncertain pseudoscience-y nature of it weren’t quite so uncertain, because then it would either be a “wow neat!” or just not be worth writing about. The article talks about things called “lifters”, which utilize an effect known as an “ion wind”, where charged particles are actually pulled between electrodes due to their charge difference to cause lift. This means that these devices wouldn’t work in a vacuum, and are relatively useless.

But the way the article is written has just enough bait there to make you wonder about this other, crazier explanation being involved. Not as a replacement for ion wind (which is a very real thing), but as an additional effect under the right circumstances. Mythbusters apparently tried to replicate this myth and busted it by showing no lift generated by one of these machines in a vacuum, but the conditions described for the “mysterious effect” to come into play sound very demanding. Dense piezoelectric crystals and incredibly high voltages being pulsed at particular frequencies. This has the earmarks of crappy science: a holy-grail like claim and a billion reasons to explain why the failed tests that falsify the claim aren’t really conclusive.

But then there’s also all this military stuff. The article has a claim that there was a demonstration to the military in the 1950s showing off the mysterious effect, and that the whole thing was immediately classified and spawned 40-50 US military projects lasting over 20 years. The guy who performed the demonstration worked for the military and the precursor to Lockheed Martin and apparently on a secret project in France, and his job through all of this was to “research antigravity propulsion”. So, if it’s just ion wind, were they all just not well enough informed for those 20 years? But then, all of those projects were shut down in the early 70s by a policy intended to get rid of crap that wasn’t helping the military.

And then you read that the guy who reported on this “mysterious force” being shown off is a science fiction writer and model rocketry enthusiast, and start thinking that he could have just fudged some facts. But what isn’t disputed is that a demonstration did take place by a real man whose name is attached to the general ion wind effect, Thomas Townsend Brown, and that he did in fact work and research gravity propulsion systems for the next 20 years, while a large number of military projects surrounding the concepts were going on.

It’s back and forth, back and forth. Each extra bit of research turns up something very legitimate looking, which ends up being the most ridiculous thing yet. These videos (make sure you listen to the music a bit) are where I called it quits due to an outbreak of hysterical laughter. And yet, if they didn’t have the weird music and “gravitec” logo everywhere, they would have seemed to be doing something really credible. It’s kind of like when a spammer sends you a really well crafted, personal-looking email with a spoofed address, but opens with “Dear Sir (Madam) ,” and blows the whole operation.

While reading up on this, I was reminded of (and ran across) things in the same wishy-washy region. Burkhard Heim and Heim Theory and the Hoverbike and the Moller Sky Car. They’d all be so cool, if they were more than just zany nonsense.

Our Noble Defense

Collected Data

Yesterday, a blogger wrote about a topic dear to the hearts of many programmers. The community at large came together to shout about it, and the spectacle has been a pleasure to watch. I’ve collected what (qualitative) data I can, in the hopes of distilling useful things.

The original post, by Jeff Atwood:

Some of the flood of responses:

..and I’ve certainly missed some. (each (hn) link leads to the hackernews submission/discussion for that article)

A Brief Summary of Atwood’s article, list form:

  • Atwood is annoyed by the “learn to code” craze
  • he jokes? about why the mayor of new york might want to learn
  • Suggests that coding is like plumbing; not vital know-how for everyone
  • Agrees that a little bit of programming could be useful
  • Ends by saying that basic computer skills, how the internet works, curiosity, reading, and interpersonal communication skills are ultimately more important

Typical response formats / focuses:

  • Comments on the flaws or virtues of the overall premise
  • Attack (or applaud) Jeff’s choice of analogy (plumbing)
  • Attack Jeff’s equation of “knowing how to code” to “knowing functions, pointers, and recursion”
  • Clarify the distinction between “coding” and “programming” in this context
  • Tell an anecdote about programming being useful to non-coders (lots of these)
  • Tell an anecdote about non-coders doing harm by programming (fewer of these)
  • Interpret “What Jeff Really Meant”
  • Express anger at the post’s obviously-bait title
  • Zed Shaw being brash and over-the-top
  • People naively thinking that replying to Zed will minimize that problem
  • People pointing out misconceptions or errors raised in other people’s responses

Analysis

This article is eerily well crafted for virality. I wish I could credit Jeff with adding minor logical foibles like non-sequiturs, hasty generalizations and strawmen on purpose. Or subtly drawing a brand new distinction between synonyms, then using that distinction to appear to call for war while actually calling for supper. It super-effectively gets under people’s skin and drives them to want to respond, but they’re unlikely to disagree on the whole. Unfortunately, to actually give that credit feels like breaking Hanlon’s razor. Cock-up before conspiracy: these are probably just errors.

Jeff clearly has a good sense for how to deliver a topic to be read and talked about, because here we are, but his suggestion for people to learn to communicate effectively felt … hypocritical in its conext. Much of the surrounding discussion has been a consequence of misunderstandings of his post, and most responses are in fact along the same lines as the points Jeff makes.

After hours of reading, I will join the throng of interpreters and attempt to reflect the collected opinion of the masses, imperfect lense that I am:

“People shouldn’t plan to dive into this field and come out overnight as experts, making hot social app startups or being paid top dollar for their skills, nor should people encourage others to dive into it for those reasons.

But it would probably be good for people who aren’t career-programmers to learn a bit about how computers work, and how to automate simple stuff, and if they’re curious after that, they should keep at it. Oh, and people should still learn other stuff, too.”

I feel that this adequately sums up the spirit of Atwood’s original post. I also feel that this is pretty much a representative average of what has been said in response, back and forth, for the past 12-20 hours.

Action Items

I’m reminded that many programmers sense something special and important about our discipline. Some responses glazed over the distinction between programming itself and the virtue it brings, but it is clear that people perceive some mix of problem solving, recognizing cause and effect, strategic thought, comfort with trial and error, raw utility, and more in the writing of programs.

I think that what they’re feeling is related to what Harold Abelson spoke about in the first SICP lecture, that we’re just beginning to learn to “formalize notions about process” as Egyptian surveyors founding geometry (and all modern math) were just beginning to formalize notions about space. There’s something truly special, even magical here, and I think that people perceived Jeff Atwood’s post as an attack on the special nature that we sense. I believe that specialness is what so many people have really been defending.

My chief takeaway is to think about better ways to identify, express, and know that thing. Whatever it is. Before we finish, I’ve got to quote the SICP again. This time the opening quote:

“I think that it’s extraordinarily important that we in computer science keep fun in computing. When it started out, it was an awful lot of fun. Of course, the paying customers got shafted every now and then, and after a while we began to take their complaints seriously. We began to feel as if we really were responsible for the successful, error-free perfect use of these machines. I don’t think we are. I think we’re responsible for stretching them, setting them off in new directions, and keeping fun in the house. I hope the field of computer science never loses its sense of fun. Above all, I hope we don’t become missionaries. Don’t feel as if you’re Bible salesmen. The world has too many of those already. What you know about computing other people will learn. Don’t feel as if the key to successful computing is only in your hands. What’s in your hands, I think and hope, is intelligence: the ability to see the machine as more than when you were first led up to it, that you can make it more.”

Alan J. Perlis (April 1, 1922-February 7, 1990)

No matter how great we perceive the virtue of programming to be; even if we think of it as a literacy, Perlis has it right. Like reading, and like math, the best thing to do is to make it fun first, and then the knowledge will flow. If we become a bunch of missionaries, or Bible salesmen, I’m certain we’ll have lost the best part.

Day 8: Progress Report

Warning: bit of a boring show today — just plans and record keeping.

Learned, Keep, Start, Stop

I’ve completed one week of blogging each day. What have I learned, what should I keep doing, what should I start doing, and what should I stop doing?

I’ve Learned

  • Things may fall into place easily, or take a lot of effort. No pattern yet.
  • Starting after 10:00 PM means I won’t finish until after midnight.
  • My best posts have specific messages to deliver.
  • Cut things that don’t need to be said.

Keep

  • Blogging.
  • Trying to get exposure to topics which give me reasons to blog.
  • Thinking about the post earlier and earlier in the day.
  • Meticulously editing things. Thanks to Robyn for some inspiration here.

Start

  • Writing as soon as I start thinking.
  • Thinking earlier — days in advance, not hours in advance.
  • Trying not to let this mess up my bed time.
  • Learning so that I can explain, instead of learning for its own sake.

Stop

  • Worrying about correctness. I tend to be wrong anyway, so why work so hard at it?
  • Quitting on topics that I don’t feel like writing about at the moment.
  • Trying to trick myself into starting new focus items (things to do for 21 days) early.
  • Trying to accomplish too much, and thinking about what I haven’t accomplished.

Summary, or Commentary, or something

That’s all just sticks in the sand. I don’t (yet) have any metrics to base these on, so it’s just gut feelings for now. I’m pleased with the progress so far, and will definitely continue. I just need to find ways to integrate this into my day other than appending it to the end.

Next week I might try to write a plan of each post first, and I’d like to start researching a topic the day before writing about it. I’ve made some headway today — first draft written at 6:30 PM in a barber shop, third draft now at 11:01, and I’m mostly wound-down for sleep.

Thanks to the friends and family who have been reading and giving feedback. I appreciate it a ridiculous amount. Now it’s time for sleep, where I’m a viking.