Friday, April 2nd, 2010
Great response to Corey Doctorow’s post about why you shouldn’t get an iPad. And as one who started hacking on an Apple IIgs when I was 10, I fully agree with Gruber. Calling the iPad a “closed system” is an oversimplification. His story about the young boy who wrote his first iPad app that’s for sale in the App Store is great.
Those running and screaming away from this platform are free to do so, but there is a huge place for developers and creators who stay and motivate Apple in the right direction. Yes, Apple has a very different model of personal computing in mind than we’ve been used to. There is much work to be done to influence Apple while working within their current constraints. Of course Apple doesn’t make the right decisions all the time. But they make enough of them that I’m sticking around to work with those who are pushing back while still making use of their tools.
Wednesday, March 31st, 2010
With the release of the iPad this Saturday, I’ve been pondering the coverage and am amused. I present my own snowclone of the Kübler-Ross model.
1. Speculation
Everyone and their cat has a prediction to share. The rumor sites whip the public up into a frenzy. Apple’s latest gadget will change the world. It will do everything technology has promised since Star Trek. It will do video conferencing. It will understand your speech. It will translate. It will teleport.
Of course it will. Why? Because I read about it on macrumors.com!
2. Announcement
The world stops working while everyone slams the poor servers of real time news bloggers lucky enough to have a golden ticket to the show. The lights go down. Fanbois hold back the tech-gasm. Steve Jobs takes the stage and unveils….
Huh? Where’s the teleporter? Wait, what? It doesn’t run 20x faster than the latest and greatest piece of hardware of roughly the same size and weight? What? It’s not powered for eternity by the laughter of angels and has to be, gasp, recharged?!?!
Meh.
3. Anger
We’ve never, EVER been so let down by our own hyped up expectations. I mean, come on, Apple! Don’t you read the rumor mills??!?? Surely you should know our whims by now! Why don’t you do what most other companies do and announce your amazing products months or years in advance? At least by time it’s released we’ll be bored enough through all the hype that we’ll forget how much was promised and not delivered!
4. Denial
You know what? I heard that someone’s working on a better idea that’s going to be an “iPad Killer”! Yeah, I heard about it at that conference, you know, the one that Apple didn’t go to. In fact, why don’t they go and show off prototypes at all these trade shows? Can you believe it? How can they be so stupid to miss opportunities to generate interest in their products? They’re doomed.
5. Acceptance
Hey. Did you see the new iPad videos? Yeah, they look pretty simple. Oh, you got one? Haha, how do you like it? Hmm. That’s nice. I still miss the teleporter, though. Oh? You can run all your existing iPhone apps you bought on it? That’s a nice touch. Can I hold it?….
Links for Tuesday, March 9th, 2010
The Wrong Numbers
Edward Tufte has been appointed by the Obama administration to oversee the way the stimulus money is being spent. This is quite possibly the smartest thing this president has done. Here’s the money quote:
If your numbers are boring, then you’ve got the wrong numbers. If your words or images are not on point, making them dance in color won’t make them relevant.
Monday, February 8th, 2010
“The skeptic, in effect, that delicate creature, is far too easily frightened; his conscience is schooled so as to start at every Nay, and even at that sharp, decided Yea, and feels something like a bite thereby.”
- Frederich Nietzsche in Beyond Good and Evil
Saturday, January 9th, 2010
In preparation for the CodeMash developers conference coming up soon, I wrote an iPhone web app that reads their schedule information and presents it in a slick, native interface. You get all the sessions, times, a map, and you can mark the sessions you want to attend. It’s open source, too, if your curious how it was done.
This link has more info: http://icodemashschedule.heroku.com
UPDATE:
Bruce Abernethy did a great writeup of several of the CodeMash schedule apps out there. I got a pretty good mention!
Monday, December 28th, 2009
Leon Gersing has been dabbling in Android development lately and made quite the comment on Twitter today.

Of course, it’s all in good fun. Leon’s a bright guy and I was genuinely interested in what he’s observed. Well, he quickly cranked out a post describing some of the differences between the iPhone and Android from a developers perspective. I agree with what he’s said. While the iPhone is a commercial powerhouse, Android has some really good things going for it under the hood. Whether that matters or not in the marketplace remains to be seen, but you can’t keep good developers from salivating over each other’s tools. I like what he’s showing. And I hope that some of that impacts iPhone development, too.
I left a comment for him describing, from my perspective, some of what holds the iPhone back. I thought I’d summarize it here, too, for my readers.
- Anonymous functions/closures – Objective C needs them badly. They got them in the latest Snow Leopard, but not on iPhone yet. And even then, the syntax REEKS of C. It’s a horribly leaky abstraction that, while doable, is not as elegant as he pulled off with Java. That’s unfortunately more of an fundamental Obj C issue than just a Cocoa issue.
- Garbage Collection – Yes, Obj C 2.0 does have it. I don’t know why the GC wasn’t included on the iPhone. My suspicion is that Apple is being cautious or is waiting on some better optimizations to it’s GC. That is indeed a point about the JVM that shines. They’ve done serious research into good GC. I doubt that the iPhone will be GC-less for long. It’s unfortunate it’s not here yet.
- Community Involvement – Yes. Android is a more open platform. And I’ve bumped into more and more devs who are stoked to use it. It’s gathering the same kind of collaboration appeal that I sense when I hang out with the Ruby community. And look at all the great gems (literally!) that come out of that!
I have a suspicion (no real insider info at all), that Apple is going to make Ruby a more prominent language on it’s platforms. With the incredibly rapid maturation of MacRuby, and the fact that it will be *compilable* to machine code…that smells like room for a revolution to brew in Cocoa land. Imagine being able to share open source components and abstractions the way we share gems now. Again, I have no hard evidence that this is coming to the iPhone, but I most definitely hope so!
Wednesday, November 18th, 2009
Through some excellent discussions about Google Wave…on Google Wave, Josh Walsh and I have hacked together a list of tips to help keep waves useful. Don’t take these as 10 Commandments™. We’ve just noticed a lot of newcomers balk at the open-ended possibilities of the tool. And we’ve watched discussions degrade to the point where you just want to blow the current wave away and start over.
So if you are in the know, got a Google Wave invite, tried it and are frustrated. Check out these tips. Practice sane waving!
10 Tips to Better Google Wave Conversations
Tuesday, November 17th, 2009
I contributed to a Google wave with some coworkers discussing how we could use this fascinating tool more effectively. It’s definitely a shiny new toy right now. I hope we can figure out how to use it in our workflows, but there’s definitely some rough edges. Here’s my current observations direct from the wave:
It’s clear though, the the hyper-threaded nature of Google Wave has human comprehension limits. Kurt and I were just discussing offline that one of the best features of “Wikis” as we currently use now–they encourage moderation. We use it effectively for things like the release plans. Anyone can add whatever they want, but the “owner” will keep house.
The problem we have with our waves now…the signal to noise ratio gets low REALLY fast. There’s simple noise like “me too” replies, or jokes. We can agree not to do that. But even with substantive discussion, following the flow of the conversation asynchronously doesn’t scale on the hardware of the human mind.
It works fine if everyone is in the wave watching it evolve in real time. It’s even fun! But let it sit for a few days with 10 people tossing in one off blips here and there…it’s hard to catch up with the context. Sure, the “context” is there, but human minds have to “context switch” and read back a bit to understand the new blips that come through. There needs to be some sort of pruning/summary convention that we use to keep these clean.
One feature of the wave client that would help this–Google could offer a “select this entire thread” and then let you remove it. The “moderator” can then summarize the decision somewhere, either in a new reply thread, or in the top blip so it acts like the “document”.
A lot of human convention will need to emerge for us to make this tool work.
Wednesday, September 23rd, 2009
Clive Thompson thinks there is good effect to the vast amounts of information young people generate online.
The first thing she found is that young people today write far more than any generation before them.
….
We think of writing as either good or bad. What todays young people know is that knowing who youre writing for and why youre writing might be the most crucial factor of all
via Clive Thompson on the New Literacy .
The saying, “Practice makes perfect” is horribly wrong. Practice makes habits. So, just writing daily thoughts to a blog doesn’t automatically make you a better writer or any better at communicating lucidly. But there is a good point here. There is a lot of “practice” writing going on. And the fact that this writing is in front of the world and up for critique is promising, as long as there’s not just a peer feedback loop. What may be the best way to help encourage better writing (and consequently, better thinking) among young people today? Creatively engage with their writing on their own turf and terms.
And maybe share some of our own.
Links for Sunday, August 30th, 2009
The More You Know…
The fatal flaw in the concept of trivia is that it mistakes information for knowledge. There is no end to information. Some say the entire universe is made from it, when you get right down to the bottom, under the turtles. There is, alas, quite a shortage of knowledge. I think I will recite this paragraph the next time I’m asked a trivia question.
via Roger Ebert’s Journal: Archives.
Links for Tuesday, August 11th, 2009
Links for Tuesday, August 4th, 2009
Prove Them Wrong
Paul Graham once again masterfully shares his observations through The Trouble with the Segway.
It was too easy for them; they were too successful raising money. If they’d had to grow the company gradually, by iterating through several versions they sold to real users, they’d have learned pretty quickly that people looked stupid riding them…They had focus groups aplenty, I’m sure, but they didn’t have the people yelling insults out of cars. So they never realized they were zooming confidently down a blind alley.
Running a business, building a product, leading a team, or writing your magnum opus. The push-back and the ridicule is invaluable and shapes the results for the better. Don’t try to hide from it, or buy your way out. Prove them wrong.
Links for Tuesday, June 16th, 2009
Knuth on Top-Down vs Bottom-Up
“I had the feeling that top-down and bottom-up were opposing methodologies: one more suitable for program exposition and the other more suitable for program creation. But after gaining experience with WEB, I have come to realize that there is no need to choose once and for all between top-down and bottom-up, because a program is best thought of as a web instead of a tree. A hierarchical structure is present, but the most important thing about a program is its structural relationships. A complex piece of software consists of simple parts and simple relations between those parts; the programmer’s task is to state those parts and those relationships, in whatever order is best for human comprehension not in some rigidly determined order like top-down or bottom-up.”
— Donald E. Knuth, Literate Programming (emphasis added)
Links for Friday, June 12th, 2009
“Stop learning and get back to work!”
Great writeup by Cory Doctorow on a story that is all too common. A professor of Computer Science tried to bar a student from getting public, open source, peer review on his source code for a project after the course was completed. The complaint was that it would make it easier for other students to cheat. Thankfully, the student appealed and the school board ruled that his goal is quite acceptable and in line with academic rigor.
From the article:
Students work harder when the work is meaningful, when it has value other than as a yardstick for measuring their comprehension. I’ve always thought it was miserable that we take the supposed best and brightest in society, charge them up to $60,000 a year in fees, then put them to work for four years on producing busywork that no one — not them, not their profs, not other scholars — actually wants to read.
I’d bet the odds are great this kid will go on to do great things in software…in spite of whatever company he works for.
Student challenges prof, wins right to post source code he wrote for course – Boing Boing .
Links for Wednesday, April 22nd, 2009
On working smarter, not harder
I’m not saying that you can’t have success by pouring in all your waking hours. Of course you can. I’m saying that you don’t have to. That the correlation between the two is weak.
O-so-true. Working *smart* is essential. Otherwise, you’re working *stupid*.
DHH from 37signals on The lifestyle business bullshit.