Stuntman And Lover Of Cheese

by Dan Weeks

Personal Heroes

Into every life a personal hero or two will hopefully fall. Sometimes you’ll discover them very early on. For me I always had amorphous ideas about people that inspire me but I had never really thought about who is a personal hero of mine. Now that I’m older I’ve thought about it some, but mostly these two fine gentlemen have come to me recently.

Kurt Vonnegut

I started reading Vonnegut in high school. I love his fiction. I can’t point to any one thing but it just grabs me. His way with words and expression have turned him into a personal hero of mine. Recently there was a letter published from Mr. Vonnegut to Charles McCarthy after the burning of his book, Slaughterhouse-five. It’s filled with humanity and passion. Things that Vonnegut brings to his books in spades. Things that make me respect him and make him one of my heroes.

Neil deGrasse Tyson

What can one say about Dr. Tyson? For those of you that don’t know who Dr. Tyson is, he’s the head of the Hayden Planetarium and a very, very smart man. Dr. Tyson brings a passion for science and education that I’ve not seen from any other public figure in a long time. His passion comes out every time I hear him talk or read his writings. That passion is infectious and inspiring. Here are a selection of video with him giving talks or his voice.

Follow him on Twitter at @neiltyson.

FESSolarCalculator: Sunrise, Sunset, and Twilight Times for Cocoa

Recently I sat down to think about how I would improve on RadioMaestro. I’ve let it go for far too long without an update. One thing I left out when originally developing RadioMaestro was the ability to change the list of AM stations at night. In AM broadcasting many stations are forced to reduce power or suspend operations at night. It has to do with changes in the ionosphere and the radio waves traveling farther at night.

Rather than just having an arbitrary time to pick between day- and night-time AM stations I also thought about interfaces that should change when it’s dark. Reading apps like Read It Later have a night mode. Camera apps might have saved settings for day and night shots. A desk or night table clock app might have different modes for day and night. It even extends to audio, an app may want to have lower volume at night on startup. There’s no reason those apps can’t use the geolocation of your device, the date, and know within an acceptable precision if the sun has risen or set or is up and shining.

I looked around a bit but I didn’t really find anything that hit the right spot for what I was envisioning. I just want something simple that I pass an NSDate and a CLLocation and it does it’s thing. I can then grab whatever times I need out of it.

I sat down and started to dig on the math behind the calculations and fortunately there are a lot of really great explanations by people far smarter than me. It took me a bit to make sure it was working correctly and now I have written a class, FESSolarCalculator, that does exactly as my requirements listed above.

The FESSolarCalculator project is hosted at GitHub. There are currently two issues that I know about and I’ll get to those in the coming days. Pull requests are welcome as is all manner of criticism. Thanks to Rob Rix for a sanity check and for talking about approaches to a better, more streamlined approach from my initial implementation.

The source is MIT Licensed so go nuts with it. I hope you find it useful. Drop me a note if you do.

Seth Godin: Sight Reading

We often test sight reading skills, particularly in job interviews. In that highly-charged encounter, we test the applicant’s ability to think on her feet. That’s a great idea if the job involves a lot of feet thinking, but otherwise, you’re inspecting for the wrong thing, aren’t you? Same with a first date. Marketing yourself to a new person often involves being charismatic, clever and quick–but most jobs and most relationships are about being consistent, persistent and brave, no?

I can’t agree more with this. For a long while I’ve hated the gauntlet of interviewing. At Pixar I had to do a lot of white board code and database queries. It was pointless. I never did anything remotely like the exercises in the interview. They weren’t even close to exposing how I would end up working on projects at Pixar, and that’s a shame, it was essentially wasted time.

In my own interviewing of candidates over the last half a decade or so I’ve gone pretty far away from white board interviews. I did try it again with one recent candidate and realized what a folly it was and stopped. It was easier to talk to him, have a back and forth conversation, and be able to dig deeper into answers while he was comfortable and not sweating it out at a white board.

Single day interviews are too small of a glimpse into a person, but it’s mostly all we get. There has to be a better way and I know I’m still searching for it. The only way to build a good team of competent people is to hire those consistent, persistent, and brave individuals you find while weeding out those that need more training.

Count Me Out for the Downloading Game

Recently there has been a lot of discussion about how media companies don’t provide enough online digital formats to match users wants for how they consume videos, movies, and episodic programming. A lot of the time I hear people justifying downloading content from torrent sites as “the companies won’t take my money how I want to give it to them so I’ll just download it.” The Oatmeal even posted a comic about this that I saw repeatedly linked with positive comment.

My entire career has been built on working at places that work very hard to create content to sell. It’s the lifeblood of the animation, visual effects, and game studios I’ve worked at. Without sales they can’t go on to create more and better content for people to consume. When I see otherwise reasonable adults acting childish and resorting to theft it makes me sad. I’m not going to mince words here: downloading content without paying for it is theft, plain and simple. You can try to justify it all you want in that the media companies don’t make it available in the format you want or for the price you want to pay, but you’re still stealing. As content owners it’s their right to say how it is distributed or how much it should cost. If they’re leaving money on the table by not having it everywhere for an affordable price then that is their business decision, you don’t get to break the rules because you don’t agree.

The most rational rebuttal to the Oatmeal comic is from Andy Ihnatko with Heavy Hangs The Bandwidth That Torrents The Crown. I mostly agree with what Andy says. I don’t download. I’ll wait for DVDs to come on Netflix if need be before I see something. I purchase content when it’s available on iTunes or other outlets.

I’m not saying I’m better than anyone else. I’ve shared music from friends, but every album I get I go and purchase it (directly from the artist if possible). I’ve made my decision knowing where my livelihood comes from and knowing that by not supporting the things I like I risk them going away. If you’re an adult you have to make your own choices and be ready for any consequences. If you decide to download content illegally I will look down my nose and cluck my tongue at you and then remind you that every time you steal content you’re playing into the hands of the media companies when they try to get laws like SOPA and PIPA passed. Every time you download content illegally you should think about it as a tiny cut in the fabric of your freedom. You feel like you’re sticking it to the rich fat cats at media companies, but in the end you’re just helping to hurt yourself.

Offices Change and Get Better

For a while my company was spread out across two floors in one building and then had other teams in a second building a few blocks away. This was wholly inconvenient and as such our management decided to bring all teams back under one roof.

You may recall my screed about a dis-satisfactory workplace last month. With this move we’ve made a large change as is expected. Rather than pods we now have a large area, still open mind you, but it’s only the engineering teams together. No other groups and so far fewer distractions.

We also were able to get sit-to-stand desks for everyone in engineering. A much needed improvement. It’s good to see things change and to know that the leadership was listening about the desk situation in planning this move.

Workplace Disdain

I had been working on a post about how I feel about my work/life balance, the way work is going, and some of the things I want to improve in my life. Some of this I haven’t decided if I even want to publish yet. I have extracted here one part of it that happens to coincide with a recently published opinion piece by Susan Cain in the New York Times: The Rise of the New Groupthink.

In the article Ms. Cain starts:

SOLITUDE is out of fashion. Our companies, our schools and our culture are in thrall to an idea I call the New Groupthink, which holds that creativity and achievement come from an oddly gregarious place. Most of us now work in teams, in offices without walls, for managers who prize people skills above all. Lone geniuses are out. Collaboration is in.

I’ve worked in a lot of different types of offices. By far the one I have the most distain for is the open floor plan. Unsurprisingly this is the kind of office at my current day job.

Orders of Sorts

Back in those before times when I worked in animation and visual effects I did a lot of work around render queues and handling frames. Frames to be rendered, composited, passed to other departments, etc. At every studio there was a shorthand for specifying frames, frame.1-100.ext for example.

In dealing with them and generating new frames you didn’t always want to go through the list sequentially. For example if you’re generating an effects shot and you want to see it along the way you could render on tens (10, 20, 30, 40 and so on) but that wouldn’t always get you what you wanted fast enough, especially if your sequence of frames is 1000 frames or more. This allows the user to get a feel for the generated sequence before it is completed and make the call if changes are needed or it can continue.

To combat this and help users get to see their renders faster I came up with a few ways of reordering arrays (generally frame ranges, but they could be tasks too) that proved useful. Stochastic sampling would work, but could be heavy on one end of the sequence unintentionally. There’s also the issue of repeatability, since being able to repeat the same execution multiple times makes it easier to compare two runs of tasks.

Recently I wanted to run some discrete tasks that each took a non-significant amount of time. Rather than just randomizing my list of tasks I wanted to see progress across the whole sequence, just like when I was working on a shot in animation. To that end I ported my array ordering functions to an NSArray category: NSArray+FESOrderOps1.

So there it is, enjoy.


  1. There is also an implementation of a Fisher-Yates shuffle in there that could be handy because a shuffle is an order and this way I feel it’s complete for my needs.  ↩

Marching On

Well, here we are, after a two-and-a-half month leave of absence I went back to work at ngmoco. It was fun, refreshing, and enlightening to have that much time off.

Seeing

I did a little bit of traveling. First was about a week in Hawaii. That was the first vacation I’ve taken in my adult life where I didn’t have to worry about going back to work on my return. For the first time in my life I just cut loose and relaxed fully. We did some snorkeling1, chilled on a remote beach, did a little hiking, and saw some awesome volcanic features. The earth giving birth to itself is just awe inspiring.

In the before-times I worked for the House of Mouse. A perk of working there was free tickets to the theme parks. I had a couple of such tickets still sitting around and decided to use them before they expired. That wasn’t the fun part though. Adding an extra day to our trip and going up the California Coast to see Hearst Castle was a great decision. It’s a fascinating building and grounds combined with a rich history and art pieces. The park is fairly out of the way for most SF and LA travelers, but it’s only a day’s drive from either and if you can add the day or two to see it I recommend it.2

Noodle

Part of this break was to blow the cobwebs out of my head. Well, maybe not cobwebs, but I needed to realign my brain a bit. I think I was pretty successful in that. I got to work on a few of my own personal projects and I not only brushed up on some technologies I hadn’t used in a while but I also learned some new iOS 5 technologies. Part of this was a the pure freedom of just working on what I wanted to. No sprints. No scrums. User stories, yes, but no forced march to appease management or satisfy deadlines you had no hand in creating.3

Doing these projects, even if they never come to fruition, was excellent mental exercise. I’ll keep on them now that I’m back at work and if anything it will help keep me mentally agile. I’m excited for all of them and hopefully I’ll be able to put more time into them soon.

Relax

By far the biggest part of this break was relaxing. Watched movies; read books; played Portal 2, Left 4 Dead 2, and Dead Island; and above all hung out with my lovely wife.

I didn’t know I’d enjoy it this much. I mean, I should have guessed. I love my wife to pieces and what would be better than spending a metric butt-load of time with her? Short answer: nothing. It was great in a way I never would have imagined. Now that I’m back to work I’m having a little separation anxiety. I know I have a great time with the person I chose to spend my life with. Now I need to work on a way to be able to spend more time with her in the future.

One other thing that was great to do was revisit the art of the siesta. Naps are damn important. I’m going to extend this back at work because I damn well work better after a short nap. And I now know I work better in the mornings and after naps.

Return

At the end of my break I was pretty jazzed to be returning to work. I have a great team to be on at ngmoco and we were working on some cool things when I left. Needless to say, a lot changed in my two and half month absence. We’ll have to see how things shake out, but for now, it’s great to be back with my team.

Reflect

In my time off I was able to reflect on a lot of things. The biggest one I keep coming back to is that my country’s corporate and health care systems are screwed up.4 After working on my own projects for a bit I found that I liked it nearly an order of magnitude more than working for someone else.5 Then it struck me that if we did have single-payer universal health care I likely would be working for myself. Health insurance is the primary reason I’ve returned to work. As Spike Dolomite Ward wrote recently:

If you still have a good job with insurance, that doesn’t mean that you’re better than me, more deserving than me or smarter than me. It just means that you are luckier. And access to healthcare shouldn’t depend on luck.

Ms. Ward has been attacked for her op-ed piece too. Our system sucks and that there is any fight about this is ridiculous. I feel lucky to have insurance but I want it to be better. That, however, is a post for another time.

Onward

To recap:

  • Got to travel.
  • Got to relax.
  • Got to play some great games.
  • Worked on personal projects.
  • Got reacquainted with naps for good.

It’s a good list for only two and a half months. Until next time just know I’ll be marching onward. See you down the road.


  1. I can’t recommend Snorkel Bob’s more. Friendly and knowledgeable staff in Kona for sure.  ↩

  2. We drove up from LA, leaving fairly early on a weekday but still hitting major morning traffic, and got two of the tours in before the end of the day. We then stayed overnight in San Simeon and drove back to the Bay Area the next morning.  ↩

  3. It is no doubt that schedules are important, but when they’re forced on you and you’re not a partner in creating them there’s failure and disappointment in the future.  ↩

  4. Yeah, big surprise, right?  ↩

  5. I know, I know. Duh!  ↩

Movember

I’m not sure why but I never posted my Movember participation here. So, to correct that, I’m participating in Movember. I’m growing a mustache for the month of November to raise awareness for men’s health and prostate cancer research. You can donate at the my Movember Page. As a treat, here was the Ides of Movember on my face:

Ides of Movember, November 15, 2011

Shit Work

Zach Holman posts on his site Don’t Give Your Users Shit Work. It’s a great look at sorting and tagging and grouping that users are expected to do sometimes. I’ve often found tagging, making lists, sorting and such to be a bore. Zach puts it quite succinctly when talking about instant messaging: ‘Then I merged everyone into one big group called “Humans”.’ I did the same thing a while back and I’ve never cared about splitting things up since. I mostly have better things to do.