Beware someone selling you knowledge as a product


As explained elsewhere, I committed a journalistic sin in this post by attributing a passage of text to Giles Bowkett when he was just quoting it. I’ve made changes to this post to correct that.

I’m going to do something different (for me). I’m going to post about someone else’s blog post (mostly). Giles Bowkett’s post College Is Bullshit, I Am The Future is ranty and provocative and funny, and worth reading, but I’m going to call bullshit on part of it (swearing is different for me too — wheee!) hopefully without seeming humorless or as though I’m missing the nuances of his as-usual gargantuan post. College does matter, as much or more than ever. An institution’s pedigree may not correlate to the intelligence or preparedness of all its graduates, but any good school should help its motivated students learn how to learn. And the new way to learn, which is expected to disrupt (as in disruptive technology) the college and university system, information products, is not an alternative to that system at all. It’s as much a life raft for a sinking ship as Giles argues colleges are. The best way to prepare for the future is to learn how to learn. You don’t have to go to more school to learn how to learn, but there are few better places to do it.

Continue reading

My summer of hustle

The mojitos have been drunk, the neglected lawn work is mostly completed — Memorial Day is over, and now our de facto summer in the United States begins.

I’m writing this post more for myself than for you, generous reader. I hope you forgive my brief use of the weblog’s confessional mode. I need to make an official announcement that I have work to do. Inspired by Amy Hoy’s description of her year of hustle, and by Giles Bowkett’s long post about what he did when he got fired, I’m launching an all-out effort this summer to build and ship some code.

I wandered into web development because it was really cool. It was the next major mass medium, and it did something new: it made documents easy to distribute to the world. That was 15 years ago. I had no contemporary programming experience. I had a newly-minted social sciences degree and a lot of curiosity. I started in production and management and steadily got more and more into software development at a series of failed start ups. Now, in my mid-30s, I finally feel code literate. I also feel like I know something about the realities of writing code and trying to sell applications and content online. But what do I have to show for myself?

Those start-ups are gone. The project management work I did at an interactive agency? Zzzzzzz. I’ve built some decent sites lately, but their futures are uncertain, and my best work for them, I can’t really write about it because it belongs to my clients.

Thirty-six is a funny age in this business. It used to be old. Now, there are plenty of 40-ish and 50-ish people in the industry. But they’re visible. They’ve made a mark. My suspicion is that a lot of other people who didn’t make a public mark are finding it hard to continue doing decent anonymous work.

The solution is to make your mark by releasing something valuable into the world. And with open source having conquered the world, it’s never been easier to do this. So, like my assistant professor wife, I find myself facing a publish-or-perish moment.

Hence my plans for a summer of hustle. This week I’m getting geared up for RailsConf, but I am also reviewing my interests, my passions, looking for inspriation. It’s time to overcome my misgivings — that I don’t know enough, that I’ll embarrass myself, that no one will care about what I produce. Because I’m getting too old to live on work-for-hire.

Not that I’m counting on making money, directly or indirectly, from what I release. I’m not thinking about bread alone. There’s a point when the spirit demands more. It seems to me there are intangible benefits to contributing to the global codebase. More human contact, certainly, and with more intelligent and creative humans. There is also the satisfaction of creation, of making something purely for its own merits.

Although I’d sure like it if it did bring me suitcases filled with cash.

So there, I’m committed. No pressure.

My asynchronous concurrency talk at May Capital Area Clojure Meetup

I was lucky enough to present a talk about asynchronous concurrency in Clojure (and JavaScript and Ruby as it turned out) on May 27th in Reston. Thanks to FGM and Matt and Russ for organizing and hosting the Capital Area Clojure meetup.

I have the slides available for review from scribd below. There’s plenty about agents and futures in there, plus a look at Evented IO in Node.js and tuple spaces with Rinda. After the break, I also offer a few observations about the content in light of questions asked in the meetup and my own reflections.

Asynchronous concurrency in Clojure and a few other languages

Continue reading

JSConf Epilogue: we <3 Mozilla Dev Center

Just a quick note: at JSConf, Chris Williams, John Resig, and others called on all JS bloggers to pimp MDC as much as possible. And they’re absolutely right: we should try to push it higher in the search results pages for JavaScript by giving it lots of inbound links. So, here’s my contribution. Go go, Mozilla!

JSConf US 2010: Harder Better Faster Stronger

(Or, my impressions of JSConf US 2010)

I wrote a very ambitious (and partially successful) post last year attempting to recap the first JSConf. I can’t even pretend to repeat that feat this year: track B was so good that I spent half my time in it, and I couldn’t get to everything I wanted to see or everyone I wanted to meet. Kevin Dangoor has good summaries of the talks he attended. And… There Will Be Videos. But there are themes I observed.

Continue reading

Futures and promises in Clojure (asynchronicity and concurrency, part 2)

A few weeks ago I posted about my initial impressions of CommonJS’s approach to concurrency, in particular the use of promises. Today I add my look at promises and futures in Clojure.

I’m aware that I’m kind of writing these blog posts backwards. I’m learning more as I go, which means before I’m done I will no doubt regret things I have written in these opening posts. Oh well.

Continue reading

The iPad ain’t ending anything

The haters are wrong, part one

I just finished an excellent blog post by my friend Blake Patterson. It’s about the iPad. Blake realized in the wee hours of Sunday morning that the iPad was actually Alan Kay’s Dynabook, emerging after 40 years in Steve Jobs’ turtleneck-clad arms. Seriously, it’s a great post. Go read it.

I think Blake may be right that the iPad is going to be a great device for developers and users. It’s a whole new playground for a set of mature, widely-known, yet still rapidly-developing technologies. It’s an incredible opportunity. People who are poopooing the thing, or suggesting it’s actually going to harm the computing world, are being unimaginative and pessimistic.

I find cynicism and pessimism applied to a lot of issues and events in the web development world. Maybe it’s the recession. Or this cold winter we’re having in the continental U.S. But the gloom and doom is dead wrong. And I feel compelled to explain why.

I’m not given, personally, to bouts of dizzy optimism. I’m not a bit light-headed at this moment. I think the future is looking awfully good for people who develop software for the Internet and people who use this software. And I want to pour some cold water on the clever people currently pouring cold water on the tech optimists. The Internet is not splintering, Apple is not going to end the golden age of the personal computer, the United States is not chronically short of talent, and our jobs are not all going overseas.

Continue reading

Futures, promises, asynchonicity, and concurrency

It’s a concurrent world, and, increasingly, it’s an asynchronous world too. Many things are going on at the same time, and it’s impossible to determine exactly when each is starting or ending. In other words, everything is fast and out of control.

As a software developer, both concurrency and asynchronicity are more important concepts than ever. But both are hard concepts, and they’re also hard to embrace in practice—the sequential model of programming is so ingrained in my head that both new structures for concurrency and asynchronicity in familiar languages and less familiar languages with built-in support for these concepts offer a steep learning curve. Fortunately, there’s been a lot of buzz, from separate origins, about two programming concepts that may, um, promise to deliver a brighter future to me and other befuddled developers.
Continue reading

Excerpt from
“Notes on Postmodern Programming”

I’ve wanted to cite this passage a few times now, but I can only find the essay in PDF form. So I’m just going to put the passage here, so I can point back to it in the future.

Geeks, if people regularly joke that they couldn’t understand what you do for a living, consider pointing them to this description of the process of writing a program to accomplish a specific task. There’s a lot of debate on Lambda the Ultimate about whether the authors are joking. For the record, I don’t think they are, but that doesn’t mean they aren’t intentionally being funny.

Continue reading