This site is powered by Lightning, a static blogging engine with a few
features I wanted but couldn't find in other similar projects:
Incremental builds.
Logical placement of article-specific assets.
Fully decoupled content from output.
Today I packed it up into a consumable codebase. Unfortunately I haven't
had time for unit tests, so YMMV. Usage instructions and repository is
on github.
There's an increasing variety of devices in use today. Even generally
rectangular touch enabled devices vary hugely in their physical sizes,
aspect ratios, pixel densities, etc.
One thing that remains constant across these devices are their users.
Technologies come and go every year, but people stay the same. Existing
form factors: pads, tabs and boards still make sense, and
will continue to do so for the forseeable future. As a result,
ergonomic considerations like touch target sizing, readable text and
image size remain constant. Fingers will be fingers and eyes will be
eyes! Our bodies are firmly rooted in the physical world, and the
interfaces we create should reflect that.
I wrote an HTML5Rocks article about building cross-device
webapps. The gist of the approach is to use client-side
feature detection using device.js, and then switch to server side UA
detection if performance becomes an issue.
The web used to be "open by default". The key property that enabled
google in the 90's was that generally speaking, web content could be
read by machines. This was the default state -- developers didn't need
to do anything to make it happen.
Since then, we have moved from a declarative web to an imperative one,
where the web has evolved into a ubiquitous developer platform. Combine
this with the definite trend toward personalization - many companies
providing interesting content only behind ACL, only visible when logged
in - and you have the modern web.
As the web grows in complexity, JS-rich content gets harder and harder
to crawl, and prohibitively hard for anyone that's not a search engine.
In this world, what enables innovation for the little guys are APIs. The
problem with these, however is that they require work for the API
providers to implement. So the web is now largely "closed by default".
I'd love to bring us back to the "open by default" web, while retaining
the user experience benefits of thick clients. Ideas welcome :)
These past couple weeks, there have been a few videos released from
the group I work in at Google. Congratulations to the many people in X
who's hard work has gone into each of these.
Google X released a few concept videos of projects in their pipeline.
Very exciting stuff to see this great work slowly trickle out to the
public.
I re-designed this site using the PT Sans font, aiming for
appealing typography for optimal readability. Interestingly,
PT Sans is based on Russian sans serif types of the second part of the
20th century, but at the same time has distinctive features of
contemporary humanistic designs.
Since visitors are increasingly coming from a variety of devices, I also
created three variants of the site for small, medium and large screens
via media queries:
Anyone who’s worried about “WebKit monoculture” should write or publish
articles about mobile web design that don’t feature the iPhone at all.
If you don’t, I’m sorry to say, you’re part of the problem. — PPK
This "iPhone monoculture" exists for a reason. MobileSafari has been the
best browser for a long time on one of the most widely used mobile
platforms. The way to solve this problem (if it is a problem at all) is
by building mobile browsers that can compete on features, not through
artificial boycotts!
Ember and Backbone are both promising JavaScript frameworks but have
completely different philosophies. In this post, I'll compare the two, both
from a practical and philosophical perspective. I'll defer to real world
experience with Backbone and SproutCore (Ember's predecessor), as well as
basic experiments with Ember (full disclosure: haven't built a large Ember app
yet). I'll also supplement claims with quotes from a fantastic conversation
from Freenode #documentcloud on February 3rd, 2011. For quote
context, wycats is Yehuda Katz, one of the lead developers on Ember, and
jashkenas is Jeremy Ashkenas, one of the lead developers on Backbone.