Design

You are currently browsing the archive for the Design category.

Google has announced the availability of a plugin that implements 3D technology and makes it available over the web. You can read about the announcement in in the Google Code Blog and in an excellent article by Ryan Paul in Ars Technica.

Ryan points out that there are significant differences between what Google has built here and what we’ve built. I thought it might be worth it to expand on that a bit since it isn’t explained in depth in the Ars article.

Google’s 3D work is a plugin.  So much like how Flash or Silverlight works you get a rectangle in the browser to draw into.  They provide a high level scene graph API which uses the COLLADA format for loading objects underneath.  It’s a very large chunk of code.  If you take a look at the API and click around at the packages and classes you can see that there’s a lot there.  Their use case is games and game-like things – virtual worlds.  So it’s a great piece of work, but it’s also at a very high level.

Mozilla’s current proposal to Khronos is a very simple API that’s a wrapper around OpenGL ES 2.0.  It’s currently available as an extension to Firefox 3.5 and is likely to be rolled into a version of Firefox after 3.5.  The proposal is very focused on 3D.  For example, we didn’t try to include video or audio because those are being covered by other web standards and we’re interested in making sure they are well integrated instead of trying to wrap those into a 3D spec.  We’ve bound it to the canvas element so you can use it in much the same way you use the current canvas 2D context.  Things like asset loading (via COLLADA or other systems) are things we haven’t dealt with because those can be handled entirely outside of the 3D api and layered on top of it.  (Later in this post you’ll understand why this is important.)  But the important thing is that it’s something that you can easily mix with the rest of the open web.  Open Video and Audio, CSS, HTML, Canvas 2D, Canvas 3D, etc – you should be able to mix them all together and that’s our goal.

So these two 3D things from Mozilla and Google are pretty different.  Not really competitive, either, because they have such different goals.  The Google software is a very high level API 3D graphics API and what we’re proposing is more akin to the low level graphics API that those high-level systems are built on.

Given the title of the google blog post (“Towards an open web standard for 3D graphics”) it’s important to point out these differences since they affect how the standards process might look, and what the output might be.  We’ve been through this a few times with different standards and it’s easy to point out what the key success factors are to build a successful standard.  Here’s a quick iteration on those principals in my mind:

1. It’s important to keep the scope as small as possible.

The smaller the scope of the standard, the easier it is to understand the interaction of the various parts, what your goals are and what it takes to build an interoperable implementation.  It’s also the easiest thing you can do to remain as future-proof as possible.  It’s easier to add new APIs later if your scope is very very small.

2. Clear rules for interaction with the rest of content.

How does it work with the rest of the HTML spec?  CSS?  Video?  Images?  How can you copy content in and out?  Can you use them as textures?  These are just some of the questions that you have to raise as a way to describe how something like this might work with content.  Once again, this is gated on #1 above – if the functionality is simple then the interactions can generally be pretty simple as well.

3. Allow the scope to change slowly over time.

Understanding that technology – especially on the web – does not exist in a vacuum outside of time.  Standards do change over time and understanding how people use technology in the real world is the best possible way to understand how something should change and improve.  Understanding that standards are an iterative process is important.  Note that in #1 above – controlling scope – I mention that it’s important to keep things future-proofed via small and simple APIs.  This is why – because you know that you will need to improve that API once you understand how people are using it in the field.

4. Allow most of the innovation to happen next to and on top of your API.

Last point – your standard should allow as much iteration and work to happen on top of your API as possible.  This allows you to learn as much as possible about how people are using your software and gives them huge amounts of freedom to experiment and teach you about what you need to improve in the next iteration.  If people are stretching your APIs and finding gaps in performance, you can add convenience APIs to make things faster – as long as they are simple APIs.  We saw this in the real world with the JS libraries (dojo, jQuery) – we’ve been optimizing our engines and APIs over time to assist them as they have pushed our browsers to the limits.  But we would not have known had we tried to implement everything that the libraries could have possibly done at the browser level.

OK, so those are the things that we think make for a successful standards process.  I’ll point out one particular example of a dichotomy that I believe illustrates these rules so that people understand what I’m talking about: Canvas vs. SVG + SMIL.

Canvas is a very simple API (more info), much like what we’ve proposed to Khronos for 3D support.  It’s well-scoped, well understood and integrates very well with other web technologies.  And it’s been getting a huge amount of traction on the web.  People are writing all kinds of really neat technology on top of it, including useful re-usable libraries for visualization.  Have a look through Google’s own promotional site for Chrome – a huge number of them use canvas.  It has traction.  And we’ve gone through a couple of iterations – we’ve added support for text and a couple of other odds and ends once we understood what people were trying to do with it.

Now compare this to SVG and SMIL.  Each of those specs are multi-hundred page documents with very large APIs and descriptions of how to translate their retained-mode graphics into something that’s usable on the web.  (SVG 1.1 is a 719 page PDF.  SVG 1.2 Tiny is 449 pages.  The spec for SMIL is a 2.7MB HTML file.)  We’ve seen some implementation of SVG and SMIL in browsers, but it’s been slow in coming and hasn’t seen full interoperability testing nor any real pick up on the web.  The model for these specs was wrong, and I think it shows.

So I’ve spent some time talking about the context for standardization and what makes standards successful.  How does this related to our stuff or Google’s stuff?  Well, quite a bit actually.  If we want something that browser vendors can easily implement, we need to understand that context and what we’re trying to standardize.  Much of the work that Google did happened before browsers got as fast as they have, so there’s a good reason why they felt that they needed to implement so much of the code as native code and deliver it as a plugin.  Their API is a good example of what a scenegraph API would look like on top of Canvas 3D.  JS engines have gotten a lot faster since they started their plug-in and we think that it’s time that we start using them.  Hence a low-level API that we can build on.

There’s a lot of great stuff going on with 3D on the web.  We’ll be working with Google (and others!) via the Khronos group to try and standardize on a low-level API that browsers can support.  It’s going to be a really fun year and I’m happy that we’re working to drive the web forward.

tobi

Last week we had a visit at Mozilla from @tobimcfly [website], who has done what I call “protest” add-ons and artwork for Firefox.  His work can be pretty provocative and has been covered in the press.  He’s also behind the artzilla website that covers art and expression at the edges with Firefox, all wrapped up in a crazy-looking website.  He was at recent NYCResistor workshop on hacking Firefox, which is how I found him.

He gave a demo of the China Channel add-on which lets you surf the web through China’s proxy servers so you can experience the Internet like the people who live in China do.

He also showed us the Pirates of the Amazon add-on that adds “download free” links to amazon if you’re surfing amazon and it’s available for free on a pirate web site.  As one of my co-workers pointed out, this is interesting because it mixes the content from the amazon community, which does reviews for others, and the pirate community, which puts up a lot of stuff illegally.  Two groups that don’t normally mix together, but can with this piece of technology.  (This add-on was taken down by amazon so it isn’t available.)

Tobi certainly pushes the boundaries of what people would consider normal or sometimes even acceptable, something that he shares with a number of artists.  But it’s interesting that he’s chosen the browser as his expression tool of choice.  So much of what we do these days goes through the browser that it’s sometimes important to be reminded that the way that we perceive the web is dictated by the browser itself.  That changing the browser can change the way that we view what’s possible.  And Tobi has been doing just that.  It was interesting and provocative stuff.

I got this dialog on Facebook today and I was completely stumped.  Totally.  I read the paragraph over and over, trying to figure out what I meant.  I read it to friends, didn’t help.  Thought about it some more.  It turns out that what I really wanted to do was both of these things.  I want it out of my profile and I want it not to be able to read my data, either.  But you can’t.  It’s a false dichotomy.  You can pick one or the other, but not both.  In the end I picked “Remove” – removing access to the data.  (Maybe.)  In hopes that it would at least posting new stuff to my timeline on facebook.

This stuff is hard.  No one has really figured out how to describe these interactions.  More evidence that privacy decisions in our world are a completely unnatural act.  We’re just missing the language and cultural context, not to mention the tools.

I’m just going to post some stuff I found on the web and I really like.  Here goes.

1. Aza Raskin has a good overview of how people use the web in China.  There’s a service over there called QQ that started with chat and has morphed into everything.  About that:

Whereas chat is fundamentally about people with information tacked on, the Web is fundamentally about information with people tacked on.

True enough.  Also about status in the community:

What QQ does to incentive its community is rather weird. The normal things they do is give contributors special VIP standing — special logins and special abilities. The abnormal thing they do is give those VIP folks the ability to access other people’s private data. Scary.

Uhh, yeah.  Scary.

2. David Eaves has a post up about cultural theories of risk and the rise of emergence systems.  That title doesn’t really communicate the content (at least not to me) but there’s some good stuff in the post about how the emergent communities on the web differ from the classic left/right arguments and how it might be worth it to consider other modalities for thinking about how people think about problems and self-identify.

There are few examples of egalitarians (or emergents) that spring to mind as successful – certainly the organizational and political discourse has been dominated by hierarchists and individualists. Maybe this explains why people have such a hard time defining new forms of organisation – like open-source projects. They are trying to peg their participants as either right-wing market loving individualists or left-wing regulation loving hierarchists. The fact is they are neither. While hardly uniform, my experience is that they are often libertarians (low-grid) who believe in free-association, collaboration and emergent systems (high-group).

3. Bruce Sterling has written what I might call a post – The Last Viridian Note.  It’s worth a read, and frankly all of Bruce’s stuff is worth following.  Bruce manages to touch on a lot of things that I care about – how we relate to the things we own, what our priorities should be in how we spend our resources in the future and what the role of design should be.  He also includes what I think is the best definition for what Sustainability really means in the world:

My personal relations to goods and services – especially goods – have been revolutionized since 1999. Let me try your patience by describing this change in some detail, because it really is a different mode of being in the world.

My design book SHAPING THINGS, which is very Viridian without coughing up that fact in a hairball, talks a lot about material objects as frozen social relationships within space and time. This conceptual approach may sound peculiar and alien, but it can be re-phrased in a simpler way.

What is “sustainability?” Sustainable practices navigate successfully through time and space, while others crack up and vanish. So basically, the sustainable is about time – time and space. You need to re-think your relationship to material possessions in terms of things that occupy your time. The things that are physically closest to you. Time and space.

In earlier, less technically advanced eras, this approach would have been far-fetched. Material goods were inherently difficult to produce, find, and ship. They were rare and precious. They were closely associated with social prestige. Without important material signifiers such as wedding china, family silver, portraits, a coach-house, a trousseau and so forth, you were advertising your lack of substance to your neighbors. If you failed to surround yourself with a thick material barrier, you were inviting social abuse and possible police suspicion. So it made pragmatic sense to cling to heirlooms, renew all major purchases promptly, and visibly keep up with the Joneses.

That era is dying. It’s not only dying, but the assumptions behind that form of material culture are very dangerous. These objects can no longer protect you from want, from humiliation – in fact they are causes of humiliation, as anyone with a McMansion crammed with Chinese-made goods and an unsellable SUV has now learned at great cost.

No, seriously, go read it.  It’s long but it’s worth your time and attention.

4. Lawrence Lessig has a video up of his speech on Speech, Privacy and the Internet: The University and Beyond”. It’s interesting because it’s not one of his usual topics.  But he brings some great thinking to the table, as usual.  Sorry, no quotes.  It’s audio/visual.

5. A great ad for Harley-Davidson:

The other end of Wall Street connects with millions of better roads. All leading from the stink of greed and billion-dollar bankruptcies. If it was all just a casino, where were the complimentary cocktails?

6. And finally, because it’s great music I leave you with a song that Fred Wilson posted.  Just go listen.

Fennec, which is the code name we’re using for the lead-up to a mobile version of Firefox, has reached an important milestone: Alpha 1.  Mark has details up on his blog, including some good feeedback from people trying it out.

We’ve got builds for the Maemo platform.  We also have builds for Linux Desktop, Mac and Windows so that extensions authors can start hacking as well. See Mark’s blog for some download links.

Congrats to the team for reaching this milestone.  It’s a great start.  Next up: on to lots of polish, finish and performance work. And Windows Mobile.

Madhava was nice enough to do a video that shows Fennec on-device.


Fennec Alpha Walkthrough from Madhava Enros on Vimeo.

Updated February 22nd, 2009.

I was inspired by one of Gen’s posts and I thought it would be worth it to make a post that contains some links to some great Clay Shirky talks.

Clay Shirky on institutions vs. collaboration at TED in 2005. Even though this was filmed back in 2005 (before everyone knew what flickr was) he’s clearly talking about Mozilla. He doesn’t know it yet, but he is. As Mozilla is an organization that is an open source project, non-profit corporation and volunteer driven organization all the same time I think that we have come to know as instinct what Clay is talking about here.

Clay Shirky on Love, Internet Style. A short but fun video about Love as a building material. It’s great. Watch it.

Clay Shirky at Web 2.0 Expo SF 2008. Clay talks about the Cognitive Surplus that exists in our modern society. It contains this fantastic one-liner: “Desperate Housewives essentially functioned as a kind of cognitive heat sink – dissipating thinking that otherwise might have built up and caused society to overheat.” I’m not sure if it’s the first mention of what has become a famous fact about the amount of person-time required to build wikipedia, but it’s certainly put into great context and is worth watching for this reason alone.

That perspective made me think about how I spent my time at home and is one of the reasons I stopped watching TV and instead created whoisi. I guess you can thank Clay for it. Or blame him. Up to you.

Clay Shirky talking about his new book: Here comes everybody. He talks about the revolution of the Internet, the building of two-way groups and group action. It’s another great talk.

Clay Shirky talking about brands and keeping things human. Lots of good thoughts here on brand and identity and the right way to think about product design and how people interact with your company.

(Feb 22nd, 2009) Clay Shirky talking about low cost coordination and group action.  Talking about releasing data vs. releasing apps on your own for others to consume, changes in labor patterns, experimentation and a pile of other stuff.

John Lilly pointed people at a really good article in the New York Times by John Markoff about the Olympics as a hook to get Silverlight onto people’s computers. It’s a good overview and is worth reading.

The article covers well tread ground: People are worried that Microsoft will leverage its market power to create a leadership position for multimedia on the web. Replacing the (proprietary) Flash video codecs with the (proprietary) Silverlight video codecs and associated tools. In some ways it looks like a battle between two companies and strategies that no one would care about. More lock-in, more proprietary tools, more opportunities to undermine the main single item that makes the web great: it’s open nature. But those companies have existing market reach and they will do anything they can to convert that into even more leverage over how you interact with the web. If nothing else, they will buy their way with cold hard cash onto your computers. These two industry players should be taken seriously.

John Lilly is quoted in the article as talking about the “generative Web” (via Jonathan Zittrain.) I like this phrase quite a bit. I think that might be an even be a better way to describe what we (as in the Mozilla Project) think is the most important part of the open web. That is, by the act of creation on the web you are also creating things that other people can build on. Everything from scraping data to create a search engine like Google to being able to look at other people’s HTML and JavaScript to discover how they do something clever. Transparency and openness creates innovation – innovation by thousands and thousands of people, each of which has a positive impact on the millions who use the web.

Think about it another way. The main metric that I would use to describe the health of a truly open web is this: That as the ecosystem expands, the raw number of people, companies or groups who hold power inside the ecosystem, and can affect its direction, grows as the ecosystem grows. Put another way, the power center is decentralized over time. Change inside of that ecosystem require more voices to agree that change is good. That’s healthy. And that’s an open web.

Then there’s the other side of the metric. That as an ecosystem expands it enhances the power of a single player in the market instead of creating many players in the market. Change in that market requires the permission of only that one player and that one player can make decisions on behalf of everyone who is also part of it. That’s not healthy. And it’s not the open web.

Based on those metrics for health the battle is between those who would expand for the sake of expanding the opportunity for everyone vs. those who would expand for the sake of centralizing their own market power. In one phrase: it’s expansion vs. centralization. That’s what you should be looking for and what you should be thinking about when you hear someone talking about the open web.

All of this is nice, of course, but it doesn’t really describe what we have to do to create the world we want to live in. It talks about the nature of the marketplace but it’s not really a roadmap for people to understand how, as the good guys in this picture, we can continue to compete and win against much larger competitors. I first word in the title for this post is “competing” for a reason. Because that’s what we really need to do.

Recently at the Firefox summit I was reminded in one of Mitchell’s talks about how Firefox is a mechanism. Firefox is the best representation of our vision for an open + generative web that we can come up with: As a rule our users love it, we’ve built an ecosystem of thousands of add-ons, we continue to protect our users from the worst aspects of the web, we continue to both compete and collaborate with other browser vendors and we manage to do all that in an open forum with open source code. Firefox is a reflection of our larger view of the transparency that we want to see in an open web. Put simply: We are the change we want to see on the web.

So that’s a lot of talk. Back to the issue at hand. Silverlight, video, adobe, multimedia, market power. How do we compete? Or, really, how do you compete? Because Mozilla isn’t going to create this change alone. We’re very very small by any standard in the tech marketplace. Our reach is pretty good with Firefox 2 + Firefox 3, and we’re starting to have real market effects, but we’re not going to be able to buy our way onto millions of computers by sponsoring the olympics.

People who have talked to me have heard me talk about two things on this topic. I usually say something like “you need to learn how to build a product” or “you need to find out what you can lead at and go do that.” There’s usually more than that, but that’s the main part of the message. And I think that if we want to make sure that the web isn’t overtaken by the acts of industry giants, that there are real actionable things we can do to make that happen.

I’ll use video on the web as a simple example. Here are the things that I think need to happen to make Theora a player in the real world.

1. Make sure there’s a really great video plugin for Apple Quicktime that delivers the OGG Theora video format to people who use the video tag in Safari. When I tried to play the ogg theora video from my post the other day the ogg plugin jumped around, showed a white screen for long periods, paused for a few seconds at a time – bad!

2. Create a control that brings the video tag to IE like Vlad did for the canvas tag. The world is much bigger than just Firefox. This would make it very easy to deliver and build content and make it easy for consumers to get access to it. Bring ubiquity to content like Adobe was able to do with Flash. (Note: Cortado isn’t good enough – it’s still stuck in the plugin prison!)

3. Make a super-easy, consumer-focused, high-quality encoder for ogg theora that anyone can use to encode their videos for the web. (Here’s a hint: Handbrake is still too hard to use.) Hook it up to the various video camera providers on mac and windows so that it’s super easy to create content, encode it, and with the tools listed above, upload it and make it available to others.

4. Even better, build a business around the tools above. Or even a service for people to upload to. Sustainability is an important component and it should not be left behind.

5. Create awesome demos of what you can do with the video tag, or even better mixed with the recent stuff we’ve been showing off with video + svg filters. Blur effects, video driven by content, content people can create and overlay onto existing videos, etc. Some of this stuff is out there, some of it isn’t. But it’s a start. Try mixing video with other content on the web – mash it up, cover it up, add value and context to otherwise boring videos. Its easier to do with the video tag than it is when it’s hidden inside of Flash or Silverlight.

So that’s just a short list of things people can do to help with video. There are lots of other things that people can do in other areas, other than just video, but I wanted to give an example of my thinking around OGG Theora as an example.

People seem excited about us including OGG Theora in our next Firefox release. But keep in mind it’s only a start. If the same ecosystem that we’ve seen develop around the open + generative web doesn’t grow around open video like it has around the web then we will end up with the status quo: a vibrant growing web but with large parts that are hobbled by a model that doesn’t grow on itself. Mozilla isn’t going to be able to do this job entirely on its own, but we’re doing our part. It’s going to take others to understand how we do what we do, copy its model and try to create the same effects in the other important parts of the ecosystem.

I wonder what the world will look like five years from now. It’s going to be an interesting ride.

Some good stuff in my whoisi stream today. Enough of a pattern in order to draw some interesting lines between different posts.

Fred Wilson posts some excerpts from an essay on what comes after post-modernism (tiny link). A little bit thick, but an interesting idea. That our next era will be defined by participation instead of what others tell us is real. A reality defined by our actions and what we take part in.

Bruce Sterling links to an interesting article on “Communal Genius” (tiny link). Sometimes I think that the Mozilla community is like this. We’ve managed to attract some very interesting people and it feels like we’re growing from doing something really great to doing something really amazing. I’m not sure what that is, or what form it will take, but it feels like it’s there, just out of reach.

And both of these make me think of Ze Frank’s talk at TED a few years ago. (You should watch this no matter what you think of those two links above. No, seriously, go watch it.) At the end he talks about creating these interesting places for normal people to do amazing things. Where their small, low-barrier participation creates something greater than the sum of its parts. I love that he’s thinking about these things methodically and understands what he’s doing.

And I totally get Ze’s 80% comment. I love that feeling. It’s why I have a hard time opening Christmas presents.


Ari Jaaksi talks about Linux on Phones and what’s going on at Nokia.

He mentions that he’s working with us at Mozilla – very true. And good fodder for another post on another day.

He also touches on an important topic for me, which is the difference between between being “open” and being “good.” Being open is easy. Being good is not. I’ll write more about that at a later date as well.

Atul Varma talks about how Weave works and some of the wider goals for the project.

Weave is a very interesting part of the Mozilla project. The underlying mechanisms are very simple (just a webdav store and a private and public key system, basically.) But the fact that we’ll be able to use it to share data between users on their terms and extension authors should be able to take advantage of the storage that’s there – well – it could be huge. Lots of great potential here.

He also touches on an important part of weave. That we want user data to be private and we want users to control what they are exposing to the world. Mozilla’s servers can’t read the data that you post and neither can anyone else. That’s an important piece of what Weave represents.

Google drops the Google from Gears and will be adding Firefox 3 support.

It’s clear that Google is trying to build a larger community around the Gears plugin and is willing to give up branding in order to try and make that a reality. Also good that they are porting to Firefox 3 given that a huge chunk of the world is about to update to it.

Jorge Castro talks about his views on Mozilla’s commitment and investment in Linux.

Jorge is a pretty fantastic guy and I’m happy that he’s willing to jump out there and say something about the hard work that our community put in for this release of Firefox on Linux support. Great native integration, memory and performance improvements, a great experience for users, etc. Good to see him focus on the big picture which is how much better Firefox 3 will be vs. Firefox 2.

Anyway, that’s it for Friday. Thanks for tuning in!

helvetica

On John’s great review I added Helvetica to my Netflix queue and watched it late last night.

What a fantastic documentary! As a movie I felt it was really well done – great pacing, great interviews and felt like it really found the heart of the story. It started out by talking about the mechanics of the creation of the typeface. But then it dove in deeper to reveal a deeper truth about the role of typeface in our culture, how it reaches out and affects other aspects of design and can become the center of a design instead of just a part. Closed on the clash between those who believed in Helvetica and those who saw Helvetica and its derivatives as simple oppression. Really, a great story about something that we all take for granted.

I feel like I came across this movie at just the right time in my life and career. I’ve had the chance to be exposed to some amazing designers over the last few years and they have really affected the way that I think about a host of issues at every level. I think about design every time that I interact with a product or a service, in my daily interactions with friends and associates, how I think about how to build interesting products or what we should be doing with my current project. The importance of the designers and design thinking as a critical role in making businesses successful. All of these things add up to help me understand what the role is for design in our lives – professional or personal.

Typeface as a metaphor for how we choose to express ourselves is a small part of that overall picture, but an important one. A deeply appropriate movie.

I, for one, find myself as more of a Helvetica man than not. And I am surprised to discover that about myself.

As a total side note it was great to see the inside of the Pentagram offices in New York City. I have some strong memories about that place from the ill-fated OLPC project. From the wonderful workspaces to the conference room with the books that are organized by color instead of topic. Some wonderfully creative people there and it was interesting to be swept back into that, even if it was only for a half and hour. I hope everyone there is doing well.

« Older entries