Entries Tagged 'development' ↓

Going Long Serendipity: My 2009 Goals

The Vision

It’s the time of year for reflection and resolutions. After putting about a month of thought into the exercise, I’ve landed on a few themes revolving around preparedness, agility and serendipity.

Here’s my 2009 game plan.

Invest in Skills

In early 2006, Mark Cuban gave his investment advice for the upcoming year. The moneyshot:

Invest in yourself. Do the things that can get you closer to your goals and dreams. It wont come from a brokerage commercial. It will come from preparing yourself , working hard and standing apart from your competition. You Inc is the best stock you can ever buy…if you are willing to do the work. —Mark Cuban

Lazerow hits the same theme again at 2008 year’s end:

So the question you need to ask is simple: is your annual take home pay, after taxes, really enough for you to justify the status, albeit it potentially fleeting, quo? I’d argue for many of you that the answer is NO by a long shot. And you taking your paycheck and deluding yourself to think that this too will pass is dangerous and short-sighted.

In 2008, I split my investment between infrastructure, upgrading some equipment and skills (learning a little about the markets.) In 2009, the investments move more towards the skill side of things, as the scarcity of time and attention, and the value that can be created through focus and deliberate practice (pdf) point towards a greater ROI for your attention than for your capital, especially as we look to enter a long economic recovery.

Along these lines, my 2009 skill investments are:

  • Learn Objective-C and Cocoa development for the iPhone.
  • Create one screencast per quarter.

The learning has already started, thanks to the great Stanford Cocoa Programming course targeting iPhone development. I’ve tried in the past to get started with Objective-C and didn’t have much luck finding an easy path through the weeds; so far, this class looks to be a great guided tour balancing instruction with personal achievement. And it found me through Twitter.

used via Creative Commons Share Alike license from William Hook

As for screencasts, I learned in 2008 the power of a multimedia presentation style from Giles Bowkett. You may not like Ruby or programming, but his presentation at a Ruby conference is worth watching simply to understand how to win a crowd at the rate of around a slide every six seconds. Short screencasts, backed by transcripts and supporting materials, are to long term social influence for change as Twitter messages are to ephemeral, in-the-moment connection.

Building a decent screencast involves developing at least three new skills I don’t have. But thanks to the Creative Commons, it’s possible to start this learning from a much better vantage point than ever before.

Invest in Social Capital

Gary Vaynerchuk struck a chord with me with the insight that “social equity trumps private equity”. “I’d rather have a million friends than $10 million in capital,” @garyvee says. Seeing this with Twitter-era eyes, I don’t necessarily need them to be friends as much as I need them feeding the intake valves of my social filters so that the great ideas find me. Go long serendipity.

The 2009 plan to start down this road is simply:

  • Contribute one thoughtful comment per day.
  • Construct one reasoned blog post per week.
  • Make one insightful tweet per day.
  • Write one review (book, movie, tech) per month.

Invest in “Too Small to Fail”

Howard Lindzon said it best: I am TOO small to FAIL!

Being too small to fail means staying lean, not overcommitting, focusing on skills, finding efficiency of purpose, and looking for the highest return with what you have on hand and can build with your own hands. And in 2009, it also means survival, developing options and thinking about alternate income streams.

This is an ongoing process, and to be agile will require adjusting what it means to be too small to fail throughout the year. But for starters:

  • Get something in the iPhone App Store.
  • Follow through on a couple of StockTwits oriented projects I have in mind.

In terms of writing an iPhone app, I have no idea yet how much of a commitment it will take to complete even a simple one. If it’s on the order of a few hundred hours of spare time, I could pull it off. More than that, then it shifts more towards personal needs.

The StockTwits idea is simple (if not dull): make one trade a week based on ideas gleaned from StockTwits, and transparently document and blog the results. StockTwits seems to be proving its value to daytraders and swingtraders; this project would seek to answer the question of whether it can be used for gain by someone who can’t sit in front of a trading app during market hours. I have a chunk of my too small to fail portfolio to use for this purpose—with the extreme volatility of the last three months, I’ve managed to increase this small amount significantly, with some small props to StockTwits for help and ideas.

used via Creative Commons Share Alike license from Lisa Brewster

At scale, prognostication is a con game, and while we kid ourselves that the social filter makes finding gurus easier, simple probability says that in a million-voice field of 50/50 pickers, there’ll be one voice that through nothing more than luck hits 20 in a row, and there’ll be thirty who are sitting on 15-trade winning streaks on luck alone. What does that leave us with? The lesson is not to look at trades, but to look for ideas, the serendipitous connection that pushes you closer to your goals, whatever they are.

So in 2009, I’m going long serendipity, building social capital, developing skills and staying too small to fail.

(photos used via CC:SA licensing from William Hook and Lisa Brewster)

Update On Tuesday Night Football for the Apple II

I’ve had an uptick in people looking for more information on the classic Apple II game Tuesday Night Football based on search hits for my original post. Today, I spent a bit more time trying to get a running version of it going…no luck on that front, but I did come across the source code, which was my main goal from the start.

Stay tuned…I’m on the trail and will document everything fully as soon as I have something interesting to discuss.

For what it’s worth: TNF was written in 1980, and consists of 834 lines of Applesoft Basic. I’m considering doing a Ruby port (for my own edification) since I seem to be having no luck getting the original program to run in one of the many OS X emulators. I’m thinking that a literal port of it will be much fewer than 834 lines (although the Basic source contains many compound lines), but that the size could be greatly reduced after refactoring.

What Kind of Coder Would Ralph Waldo Emerson Be?

This week, while reading Karsten Wagner’s latest piece on psychology as it relates to preferences between static vs dynamic typing, a curious question nagged me: which side of the debate would a great mind of the past have supported?

Ralph Waldo Emerson

Ralph Waldo Emerson immediately came to mind. The 19th-century essayist/philosopher and Transcendentalist wrote often about the intellectual life of the individual, and of the virtues of independent thought and Self-Reliance over the weakness of rote conformity in thought and action.

While he preached self-reliance and ideas originating from within, Emerson remained a man of the world, not drawing inward like his tenant Henry David Thoreau, whom he thought a misanthrope. Emerson writes, “It is easy in the world to live after the world’s opinion; it is easy in solitude to live after our own; but the great man is he who in the midst of the crowd keeps with perfect sweetness the independence of solitude.” Retain your ideals in the world, but let the the neck-beard-wearing idealists be the ones to go into seclusion in their shacks.

The Case Against Emerson Liking Java

“Society is a joint-stock company, in which the members agree, for the better securing of his bread to each shareholder, to surrender the liberty and culture of the eater. The virtue in most request is conformity. Self-reliance is its aversion. It loves not realities and creators, but names and customs.” —Self-Relianace

Reading Emerson, it’s hard to see him embracing the constraints of Java at its most enterprisey. He wouldn’t survive in the typical corporate development shop, where compliance with the standards necessary to steer such a massive ship would produce deep dissatisfaction. But this is just rejection by association; while we can safely say Emerson wouldn’t last at a company such as SAP, where a single four-year project has 2500 developers coding away, this only indirectly condemns him to distrust of strong typing. Conventional wisdom holds that shops running four-year projects involving 2500 coders by necessity must embrace not only more rigid statically typed languages, but a byzantine set of internal standards and expectations of conformity as well. SAP’s future relies not on the will of any individual, but of the collective of 2500 wills to produce great work that conforms. The success comes down to the individual(s) who set the expectations for conformance; if they falter (by, say, following the convention wisdom Emerson distrusts) or fail to subjugate enough of the individuals into alignment, the iceberg-like mass of 10,000 developer-years will not save them from the upstart innovation arising from collections of individual intellects working in harmony.

The Case Against Emerson Digging Design Patterns

Emerson looks not to the past for guidance, but within, and it is hard to imagine him looking at the Gang of Four’s Design Patterns book with anything other than scorn. Emerson would develop his own patterns, no doubt, and his own style, but would routinely reject the old way for the better way. In fact, much of his writing is calling for the rejection of patterns by shredding the patterns of the past with layers of anti-patterns. The only pattern he aspires to is the rejection of received patterns. (Or as the Boomtown Rats put similar words in the mouth of God: “I’ll let you in on my big secret Ray/The final truth is there is no truth.”)

The Case for Emerson Being Refactoring Junky

“Speak what you think now in hard words, and to-morrow speak what to-morrow thinks in hard words again, though it contradict every thing you said to-day.” —Self-Reliance

Emerson valued a very rational, fresh look at problems. He wouldn’t grow attached to a particular design, fall in love and fight against changing it. The code and facts would speak and he would adjust as necessary. Junky might be too strong of a word; his refactoring wouldn’t be endless for the sake of ever-increasing clarity, but would be pragmatic, for the sake of solving the problem as better understood today.

The Case for Emerson Being into Functional Programming

“Take what figure you will, its exact value, nor more nor less, still returns to you.” —Compensation

What Language Would Emerson Use?

Perl
Before reading Self-Reliance and Compensation again, I pegged Emerson as a Ruby guy. He’s too idealistic to go with PHP; too unconventional to go with Java or C#. Despite the functional quote, I don’t see him going down that route. In reading his essays again, I came away with the distinct sense that Emerson’s sweet spot would be something pragmatic, yet baroque in an unconventional way, and not lending itself to patterns other than those that come from the programmer himself. It would have to be a language that let him live in the world, and reflect the sense of an entrepreneurial landlord rather than the idealistic tenant.

In short, Emerson would have hacked Perl.