I wrote a blog post today about UI on the web.
An important piece that could use some elaboration.
The premise: The web is where the PC industry was before the Mac. No standard UIs. Big opportunity.
Question for everyone.
Why didn't we march on Washington when they were playing Russian Roulette with the guns pointed at us, not them.
When people look for a purpose to the Occupy Wall Street demos, that's as good a one as I can think of.
Who thinks that now that they exist, if something like that debt ceiling debacle comes again, we aren't going to mobilize? Do you think the police will stop the people? Doesn't look like they will.
No more brinksmanship. Let's start thinking.
Why don't you guys make peace with the rest of us?
I don't think you get how much you're waging war, not against the Democrats, but against the country. Or maybe you do. In which case we have to get rid of you like a virus.
Watching all the gyrations over the nomination process is something.
I'm finally getting comfortable with CSS.
And not just to use it to style an individual site. I have to make CSS work in a templating language for the work I'm doing.
I owe a tremendous debt of gratitude to two guys at Twitter for blazing the trail with the Bootstrap toolkit. It's a library of solved CSS problems. You have to puzzle them out, but it's not impossible, though it is difficult at times. But that's not their fault, because CSS can be dauntingly complex for newbies.
Once you work your way through the complexity, and I know I have now because most of the things I try now work (wasn't always that way), a picture emerges of a tradeoff that was made that I'm not sure the designers who invented it knew about.
Let me explain.
They say the great thing about CSS is that it separates content from its appearance. I agree that this is great. I've been using a template language for my websites going back to before there was a web. This is one of the things Chris Gulker showed me about the work he was doing at the SF Examiner in the early 90s, to automate the prepress operation. The same ideas translated easily to the web. And they made things like blogging possible.
However when you delay rendering to the browser, you end up splitting the content in two. That's fine if you're working on a single site, and not trying to create utilities that work in a lot of different contexts. For example, suppose you wanted to create a library that handled drawing and interacting with menus. If you weren't using CSS, you'd just return a package of HTML, it would be dropped into the page, and that's that. However, with CSS, you also have to arrange for the style information to show up, in an entirely different place. That's the complexity that CSS adds.
That's why it's taken me most of a year to figure out how to make this work. In the end I did figure it out. It's still fragile and adds unnecessary complexity. And the fear I have is that all this will be reorganized yet again, and we have to go through this unnecessary exercise again.
I also note that we had the things that Bootstrap solves, 25 years ago, and the solution then was better and easier. More powerful. More leverage for the programmer. More complexity hidden behind the APIs. When I read a piece by Paul Krugman wondering if economists of the 1970s knew more than those working today, I said the same question must be asked about software developers. It seems to me we had it all working better before we switched to the web. We probalby never should have tried to make the web a GUI. But there you have it. (And if Microsoft, Apple and Sun hadn't been such BigCo's it might have happened.)
That's why Bootstrap makes a difference. It encapsulates in one place all the design assumptions. I don't want to have control over how the menus look. I learned that when I started making Mac software. It's a good thing if all menus work the same way. So if Bootstrap is a good thing, how much more can we simplify things by factoring out the look and feel and burying it even deeper and further away from the program logic? There's the answer. It belongs in the browser itself. There ought to be the idea of menus in the language that goes over the wire and is rendered in machine language by the browser. And all menus should work exactly the same way, whether you're in Twitter, WordPress, YouTube, Tumblr or on JetBlue's website or whitehouse.gov. This is not a new idea. This is the idea of the Macintosh in 1984.
Another hit of the ping pong ball across the net to my buddy Joe (and maybe Nik Cubrilovic too, who picked up the ball on the Facebook story last weekend, and did great things with it).
PS: Is there a blog for news of Bootstrap? I don't want to join a mail list, I am just a user. But I'd love to follow a feed. (I see they have a feed for commits, but what I want is something more like my worknotes.)
I'm riding on Sunday in the NYC stop-MS bike ride.
It's a 30-mile loop around Manhattan. The purpose of the ride is to raise money to fight MS.
If you want to give a little, it couldn't hurt!
This is the web page to visit.
Let's have fun!
PS: I can't ride on Sunday unless the number gets up to at least $150. They really figured out how to get you motivated to raise money.
You know I think the cloud is great. I've been preaching the advantages of everyone having their own outpost on the web forever. The dream goes back, for me, to the early 80s. I wanted Compuserve to host my apps. They said I was crazy.
So I started a BBS on an Apple II running in my living room. Wrote the software myself.
Ten years later I had a server on the Internet, fumbling my way around, trying to recreate the virtual world we had on Compuserve.
Now I'm creating shrinkwrap software for Amazon and Rackspace's clouds. I love the idea of people running their own servers. And we're going to get some of them to do it, for sure. But there are ominous storm clouds looming over the horizon, and in those clouds are the seeds of the next revolution. Which is coming into focus...
Tech is just a loop. First we organize, then we disrupt, then it gets organized again, then that gets disrupted.
The benefits of all of us pooling our resources are great. But BigCo's form and make money from controlling the use of the pooled resources. Pretty soon they start upgrading your computer when they feel like it. Pretty soon you can't take data off the network. Pretty soon they control what gets said. Then someone invents a personal computer, one that you, the user, controls. The freedom is wonderful! I know because the PC was born when I was coming of age.
That's what comes after the cloud.