I'm a Published Author Now.

19th of May 2010
The Bygone Bureau
Permalink
Posted by Peter Braden. — Modified 19/05/2010 (0 comments)

Introducing BrowserCouch

15th of April 2010

Last April, Atul Varma of Mozilla posted an article on an implementation of a local storage wrapper that mimicked CouchDB's map-reduce query interface.

In the comments, my friend Mikeal posted If you could add replication this would give the current Weave stuff a run for it's money

I thought about it and this seemed like a perfect solution to what I see as one of the most important areas in the development of the web platform. Ever since Mikeal got me interested in CouchDB, I've followed its development, and been excited at how native to the web it feels. Using nothing but a REST interface, and javascript for queries, it is marvellously fast and simple.

A javascript library that wrapped both local storage and the REST interface to a CouchDB server could exploit couch's replication and versioning to provide a simple storage API whilst offline, and then transparently sync it to the server once connectivity resumed.

In a world where HTML5 is becoming the only open platform for mobile app development, and where locally stored and owned data is becoming rare, this concept was not only exciting from an engineering standpoint, but also tied in with my ideological views on open data.

For a year, the idea percolated through my head, but until about a month ago I hadn't done anything about it.

After leaving Slide last month, I had lot of free time to work on personal projects. I forked a repository on github and began almost immediately. Within a few days I had replication working.

I've been working on it off and on ever since. I'd love to hear your feedback — it's not in a stable state yet, although the unit tests run and replication to localhost works, but I'd love to get as much feedback on the API design as possible before I release a 0.1 version, as it'll be much harder to make such changes if people start to use it.

So what's on the todo-list?

Well, as was pointed out to me by the intimidatingly smart people at couchio, I'm doing replication all wrong - I need to store _seq numbers and a by sequence tree. That's the next major change I plan to make.

I also want to get Futon working on it, which will require a lot of work.

As always, feel free to fork it or comment on my commits.

(Unrelated, I'm supporting myself with contracting at the moment, so if you need some web development then please feel free to contact me)
Permalink
Posted by Peter Braden. — Modified 15/04/2010 (4 comments) Tagged: code

The iPad

15th of March 2010

Apple's new product, the unfortuately named iPad, became available to pre-order a few days ago, and sold 51,000 units in the first 2 hours.

There has been a huge amount of excitement for the new device which some think will revolutionize the publishing industry the same way that the iPod revolutionized the music industry.

It's simple gesture based interface has many people excited about simplifying computing for the less computer literate.

And yet despite the allure of sleek glass and brushed aluminium, I can't help a slight feeling of dread about what this direction means for the future of our industry.

One of the key objections I, and many of my peers in the industry, hold is Apple's overly controlling distribution platform, The App Store.

At the moment, to create an application for the iPad or the iPhone, developers must sign up for Apple's developer program. After writing their app, they must submit it to Apple for an audit before it can be sold in Apple's monopolistic app store. The verification review is a black hole of conflicting rules, whereby apps may be rejected for 'Adult content', competing with Apple's products, or simply rubbing the reviewer the wrong way.

Apple clearly wants to position themself in the lucrative middle-man spot, where they can take a cut of each app sold, but in the process they have created an orwellian platform that alienates many of the people that want to create applications.

Great articles have been written about how the App Store kills hobbyist innovation and prevents people from tinkering with their software, one of the main ways people enter our industry.

I have a big problem with the ethos of the App Store, but there's another big problem that scares me with the iPad in particular.

The iPad's interface is incredibly simple, manipulating the screen with multiple fingers controls the content in an intuitive way — pages in the book application can be turned by stroking the screen, maps can be zoomed by pinching. Additionally, applications themselves are represented by a very simple metaphor, icons on the home screen.

The simplicity of this interface has been touted as one of the key innovations of the iPad. And yet, I cannot help but feel that the iPad does not just simplify computing, rather that it dumbs it down.

Consider for example the language of the marketing campaign, and count how many times the word magic is used.

Our society is moving towards a future where the use of computers is as fundamental as reading or writing. Some have suggested that 'Programming is the new literacy'. It is hard to dispute the fact that in an ever more technology reliant civilization the ability to manipulate computers, to bend their power to your will, will become an invaluable skill. In the future everyone will be programmers.

Traditional computer interfaces have supported growth in this direction. New computer users have been offered simple metaphors to help them understand basic tasks such as manipulating applications. But as they become more adept at using the computer, and as their confidence grows, the interface expands to allow the user more control of their machine. Applications can be scripted to automate common tasks. Interfaces can be modified. Ultimately the user will encounter the command line, a dauntingly powerful tool that allows complete power over the computer at the expense of learning some cryptic commands, and a basic understanding of the technology behind the operating system's friendly facade.

And from then it is only a very small step before the user is creating applications themselves. The learning curve is gradual, but eventually yields to complete control over the computer.

These steps are essentially the ones that I followed growing up, and that mean that now I can make a computer do whatever I want, and am in high demand as a skilled software developer.

That is not to say that existing interfaces are perfect, of course there is a huge amount that can be done to simplify them, especially at the initial steps which are the main stumbling point for the computer illiterate. The point I want to get across is that there is a constant opportunity to learn and increase your control over the computer.

The iPad destroys this ability. You can learn to use it's gestures, and indeed become incredibly proficient at using it, however you'll never be able to go further. You'll always be limited to using it in the way a few engineers have invisioned, you'll never be able to dive behind the magic that makes it work. The iPad treats you like a dumb user, and you can never reverse the roles and become it's master.

If the next generation learns computing on a platform like the iPad, we could be setting ourselves back years, by hiding the skills that we'll increasingly need in the future.

There is already a huge demand for programmers and people that can bend computers to their will. We need to be lowering the barrier of entry to this, as well as introducing computers to the older, less computer literate generation.

Permalink
Posted by Peter Braden. — Modified 15/03/2010 (1 comment) Tagged: technology usability

Swans

14th of March 2010
Swans
Read More…
Posted by Peter Braden. (0 comments)

Sunset Run

14th of March 2010
Sunset Run
Read More…
Posted by Peter Braden. (0 comments)

Newest Items

Photography

Recent Writing

Subscribe

Like what you see?

Subscribe to the RSS feed and be notified whenever there's something new…