Boris Smus Projects About Archives

The Ebb of the Web

Tech pundits like to lament that the web has no viable future, while web idealists hold that in fact the web is totally fine, with a "too big to fail" sort of attitude.

At the root of this disagreement are poorly defined terms. The web can mean many different things to different people. Though it started from a pretty abstract notion of a series of interlinked documents, it has now evolved to refer to a very specific technology stack of hyperlinked HTML documents styled with CSS, enhanced with JavaScript, all served on top of HTTP. In light of an increasing movement away from desktop-style computing, we've seen a big shift away from the web in mobile platforms.

Let's take apart this gob of web technology in light of the increasingly complex landscape of computing and try to make sense of what the web is and where it's going.

A framework for webiness

Remote Controls for Web Media

When the world wide web was first conceived, it was as a collection of interlinked textual documents. Today's web is full of rich media. YouTube and other video sites alone consume an enormous 53% of all internet traffic. Web denizens often have an open audio player in one of their tabs. Web-based photo sharing services such as Flickr are the most common way of enjoying photos on our computers. The remote control, foundations of which are attributed to everyone's favorite inventor Nikola Tesla in patent US613809, has been the preferred way of controlling media for over half a century.

Yet the only way we can control all of this web media is via the on-screen user interfaces that the websites provide. The web has no remote control, and this is a big usability problem. Many use the desktop versions of streaming services like Spotify and Rdio rather than their web player, exclusively because of mac media key support. For scenarios where you're far from the screen, like showing friends a slideshow of photos on a TV, the lack of remote controllability is a non-starter.

This post is a concrete proposal for what a remote controls for the web should be like. To get a sense for how it might feel, try a rough prototype.

UIST 2013 Highlights

I just got back from Scotland, where I had the pleasure of attending UIST 2013 in St. Andrews. This was my second time attending, and again it was incredibly engaging and interesting content. I was impressed enough to take notes just like my last UIST in 2011. What follows are my favorite talks with demo videos. I grouped them into topics of interest: gestural interfaces, tangibles and GUIs.

Responsive image workflow

About a year ago, I wrote an overview of many of the different responsive image approaches in an HTML5Rocks article, all of which try to solve the fundamental problem:

Serve the optimal image to the device.

Sounds simple, but the devil's in the details. For the purposes of this here discussion, I will focus on optimal image size and fidelity, and much to your chagrin, will completely ignore the art direction component of the problem.

Even for tackling screen density, a lot of the solutions out there involve a lot of extra work for web developers. I'll go into two solutions (client and server side) on the horizon that serve the right density images. In both cases, all you need to do is:

<img src="img.jpg"/>

Ultrasonic Networking on the Web

The phone in your pocket is an amazing, fluid, multi-functional tool. When it comes to talking to other devices, such as your TV or laptop, the user experience drops off sharply. Bill Buxton speaks eloquently on the subject, describing three stages of high tech evolution:

  1. Device works: feature completeness and stability
  2. Device flows: good user experience
  3. Many devices work together

But connecting devices is a pain and we have been squarely at stage 2 since the release of the iPhone. There are many competing approaches to do this: Bluetooth, Bluetooth LE, WiFi direct, discovery over the same local WiFi network, and many many others. This post is dedicated to attacking this problem from an unexpected angle: using ultrasound to broadcast and receive data between nearby devices. Best of all, the approach uses the Web Audio API, making it viable for pure web applications:

Easier Link Blogging

As usual, I want two conflicting things. Firstly, I want to own the content I write, and control how it is authored. My weapon of choice is MacVim and Lightning, a static blog engine I wrote to address my very specific requirements:

Composing a blog post with Lightning

Secondly, I want people to read the things I write and follow the stories that I link to, since it feels good, and sometimes generates interesting discussions. I wrote a Mac GUI that automates link blogging and POSSE style cross-posting to social networks.

Older posts →