rolling through the journey that is life

Programming Lessons

13 January 2010 — Dan

Jonathan Danylko lists the programming lessons he’s learned in 20 years:

  1. You are not the best at programming. Live with it. – I always thought that I knew so much about programming, but there is always someone out there better than you. Always. Learn from them.
  2. Learn to learn more – With number five explained, I’ve always had a magazine or book in my hand about computers or programming (ask my friends, they’ll confirm). True, there is a lot of technology out there and keeping up with it is a fulltime job, but if you have a smart way of receiving your news, you’ll learn about new technology every single day.

A good list of things, with these two jumping out at me. When you reach a point at a company where you aren’t learning that’s a sign it’s probably time to move on. Personally I don’t enjoy sitting around resting on my laurels, even though it doesn’t always look like that.

/via Jason Kottke

Healthy work life

12 January 2010 — Dan

Alex Payne, in Don’t Be A Hero:

If someone is working at four in the morning, something is deeply wrong. Figure out what’s broken and delegate the work out evenly across your team such that it doesn’t happen again. Don’t pat your hero on the back for “pulling another late-nighter”.

This is one reason why, when looking for a job a few years ago, I didn’t consider working for any company whose job description implied (or stated) that I’d be expected to work extremely long hours regularly and not have a family life. Such companies are either run by “heroes” or expect to hire one. (Usually for the same salary as a nine-to-fiver and with a trivial equity stake.)

I resent the commonly held belief that this is an unavoidable part of “startup culture”. (It’s completely avoidable.) Such beliefs encourage workaholism, especially among young people, and cause poor-quality products, employee burnout, and high turnover.

I don’t want to be a part of any company that’s so poorly managed, or simply so cheap, that employees are expected to forego a healthy lifestyle. No job is worth that.

So true. My current job has the current record over my 13 years for hours worked in a week and days worked in a row. I’ll never do that kind of stretch again. Ever. Burnout is not just bad for you, it’s bad for your family and friends too.

/via Marco Arment

Atheism’s One Commandment

05 November 2009 — Dan

Atheism's One Commandment: Don't Be An Asshole

(Via Big Fat Whale by Brian McFadden)

A Christmas Carol trailer online

13 September 2009 — Dan

When I switched jobs to ImageMovers Digital the movie in progress was A Christmas Carol. The trailer for what we’ve been working our butts off to produce is now available at Yahoo!1

Footnotes:
  1. If you’re on Snow Leopard (10.6) you’ll need to install the optional Quicktime 7 player from the install disc in order to watch the HD version instead of the flash version

libdispatch is open source!

10 September 2009 — Dan

Apple has just released one of the coolest new technologies in OS X 10.6 as open source: libdispatch.

With libdispatch and blocks out in the wild I hope to see some of this tech coming my way for the day job. Woo hoo!

@bbum’s Blocks primers

01 September 2009 — Dan

Bill Bumgarner is an engineer at Apple, Inc. He’s graciously provided a couple of primer documents for blocks, Apple’s new addition to the C-based languages (C, Objective-C, and C++). If you’re interested in blocks these are a great overview:

Enjoy.

/dev/why!?!: Grand Central Dispatch

28 August 2009 — Dan

A good overview of Grand Central Dispatch and Blocks.

/dev/why!?!: Grand Central Dispatch

The simplistic explanation is that GCD is a combination of thread pooling and closures. The honest truth is that if thread pooling is a Motorola ROKR then GCD is an iPhone 3GS… while they are both phones and nominally do the same thing, no one would ever claim they are equal, or even i the same league. The guys at Apple who came up with it deserve a ton of credit.

Square Signals : KVO+Blocks: Block Callbacks for Cocoa Observers

25 August 2009 — Dan

Square Signals : KVO+Blocks: Block Callbacks for Cocoa Observers: “Andy
Matuschak.

Panther introduced Key-Value Observing, a Cocoa implementation of the observer pattern. It’s very useful, but the API kind of sucks.

To get observation notices, you have to override a lengthy selector (observeValueForKeyPath:ofObject:change:context:), provide a static context pointer, and essentially implement a big switch statement on the key path.

That’s unwieldy, but I think it also makes for unmaintainable code: the callbacks end up thrown in the same method, and they’re separated from the observer registration.

KVO+Blocks is an NSObject category I wrote which provides addObserverForKeyPath:task:, where the latter parameter is a block.

Programming with C Blocks on Apple Devices

25 August 2009 — Dan

Programming with C Blocks on Apple Devices by Joachim Bengtsson

In Mac OS X 10.6, Apple introduced a syntax and runtime for using blocks (more commonly known as closures) in C and Objective-C. These were both later back-ported to Mac OS X 10.5 and the iPhone by Plausible Labs. However, there is very little documentation on blocks; even Apple’s documentation that come with 10.6 is very vague on what memory management rules apply. I hope that you can avoid all the trial-and-error that I went through with the help of this guide.

Flinging towards the future

20 August 2009 — Dan

I have a day job. It’s a damn fine day job too. I work on movies and in the end the product is seen by millions of people all over the world. I’ve been doing this day job for over a dozen years now.

With every production I’ve been on there are crunch periods. If it’s not for you it’s for then you can bet someone else is working overtime. For the last couple of months I’ve been working Saturdays trying to drive to a deadline for the next feature, not even the one the rest of the company is trying to wrap up. The last couple of weeks have seen the workload and my hours increase a lot. Like near the 70 hour mark. I know. I know. First world problem. And don’t get me wrong, the overtime pay is coming in handy. I just get the feeling like it’s all work and then I just go home to sleep and barely see my wife.

Every so often I feel like I should be working for myself. I’m never going to get there if I don’t take steps now. I’m going to setup my own personal two-week sprints to see what I can get done while not at work and still keep my personal life in balance. I won’t be starting today or even this weekend, hours at work and a good friend’s wedding this weekend are going to chew up all my free time. If I can on Sunday I’ll map out the tasks I need to complete. Once I start I can’t turn back. To do so is to fail, and I don’t want to fail that easily.

I’ll post more as I can, but for now I’m keeping my trap shut.


Performance Optimization WordPress Plugins by W3 EDGE