interfacedevelopment

Interface developers’ weeknote – 17/9/10

Project ‘Stretchy Balls’ gains momentum

Ray has been working in conjunction with Magnus on the Stretchy Balls robotic table project (a video of work-in-progress).

They will be exhibiting at the London Tent Interactive Design Festival 2010 at The Truman Brewery.
The finished piece will use a canvas 1.6m wide with an 8 x 8 array of servoes / rods, and respond to input from a webcam which will be pointed at the floor of the exhibition. As people move about the floor, their movements will be mirrored by the movement of the balls on the table canvas.

New graphing engine uses vector graphics that work cross platform (including iPhone)

Project: “Green nightmare”
We’re currently working on a graphing ‘engine’ for a client project.
The technologies used are:

  • Raphael – to render the graphs using vector graphics which will scale to any size without pixellation. An iOS-friendly alternative to Flash. Requires no browser plugins and works in all major browsers including IE6
  • JSON – for lightweight supply of data to the graphing engine using Ajax
  • CSS / HTML used wherever possible for extra interface elements eg. Tooltips
  • The graphing engine itself is written in Javascript. It’s flexible in the format of JSON data it receives, as any conversion routine can be specified to adjust the JSON structure so it can be rendered

On the use of data attributes:

Used with the Raphael graphing engine. The container element for the graph contains all the information needed to initialise itself, within its own data attributes, including a reference to a JSON file with the graph data itself, and units for the axes.

<div class=”graphdata-graph-type=”vertical-bardata-currency=”usdata-location=”/response_scripts/visualisations_json/vertical-bar-chart-8bars-3.jsondata-unit-x=”time.middledata-unit-y=”amount.us></div>

This simple markup can be included on initial page load, or injected into the page using ajax. An initialisation routine can then be invoked to retrieve the JSON data and render the graph.
The shapes that make up graphs created with Raphael, are also DOM nodes and can have data attributes, eg. The node below is a single bar from a bar graph and stores data about that point that can then be used to render an information tooltip or popup when the user interacts with the graph:

<rect x=”265.830237777393y=”82.2897777777778width=”28.811278930368974height=”223.7102222222222data-key=”key1ebneuwiu2nf92y2t4u04data-behaviour=”show-viewdata-point=”{key:key1ebneuwiu2nf92y2t4u04,label:TELEPHONE,amount:{eu:95.228,us:209.5016},items:{transactions:2},index:0,time:{start:1279472031,end:1280076830,“range”:{“start”:”19/07/2010″,”end”:”25/07/2010″,”duration”:”1 week”},”period”:3,”middle”:1279774430.5},”colors”:{“base”:”F1E410″,”gradient”:”FFF87E”,”colorIndex”:22},”max”:3,”behaviour”:”show-view”,”currencyAmount”:209.5016,”currencyLabel”:”US”}”/>

Note – data attributes validate under an HTML 5 doctype but not under HTML 4

Facebook API harnessed to publicise energy efficiency goals

Project: “Race against Time”
The new “Energy Fit” site lets customers set goals to reduce their energy use. Now the site lets them automatically update their Facebook page when they complete an energy efficiency goal.
Lbi linked the site to Facebook’s recently introduced “Graph” API (which replaces the older “Connect” API)

‘Over the air’ conference

Tim and Pia went for the mobile conference ‘Over the Air’ in the Imperial College last Friday.

Interactive designer Aral Balkan (www.aralbalkan.com) gave a very inspiring speech about “the art of emotional design” – how important it was to take users’ emotion into account when designing IA and GUI of mobile applications. He also highlighted that User Experience should strictly take priority on top of creative process and any technical difficulties. He has shown us couple of good iPhone applications including his own – Feathers (http://feathersapp.com/)  – a successful Twitter apps allows you to type special characters.

Bruce Lawson gave an extremely useful presentation about HTML5 on Mobile App/Web – http://www.slideshare.net/brucelawson/bruce-lawsonovertheair. He explaining the actual meaning of HTML5 and how it will make front-end coding more pleasure (e.g. built-in webform sliders, calendar, video and canvas) He also shown example of client-side validation, animation effects , embedding video player and controller without using any JS. He suggested canvas is not a replacement for SVG. Canvas draw pixel directly on screen which consume less process power, where on some occasion, SVG is more suitable for usability and accessibility purposes. He also demonstrated the new W3C standard for mobile apps (widget – http://www.w3.org/TR/widgets/), which can be easily produced by create .zip with HTML, CSS and JS and rename the file extension to .wgt – currently only supported on Opera browser.
The more interesting thing was he announced that there is a research group inside W3C called DAP which are researching/defining new API for retrieving Contacts/Calendars/Media Capture and Messaging on your mobile – W3C DAP can be found more info at http://www.w3.org/2009/dap/

We came across an organization called UNltd (www.unltd.org.uk) – which provides funding and resources to entrepreneurs which have an initiative using new technologies to solve problems in no developed countries.

Brian Rieger (wwww.yiibu.com) gave an interesting presentation on ‘Rethinking the mobile web’. He demonstrate some live example of achieve “one web” in real world – worth it to see it:
http://www.slideshare.net/bryanrieger/rethinking-the-mobile-web-by-yiibu

“Real World With your mobile” presented by Geoff Ballinger showed the technology around real world recognition using mobile technologies. Through

bar code: redlaser, google 2xing and pic2shop/visionSmart
visual search / video recognizion : googles & google shopper
Compass / GPS : location and orientation
Layar AR & RFID tags.

What would Picassado do? It was a panel formed by Mathias Dahlston, Jason Fields, Tom Hume, Mills and Filip visujic. That was a good debate around the topic around technology and art between the panel and audient.

Jim Brown, CTO of Cloudmade gave a presentation on Geolocation / Multitasking using vertical app for social media. He used as example

London Cycle (http://itunes.apple.com/gb/app/london-cycle-maps-routes/id383292875?mt=8)
City Gays (http://itunes.apple.com/app/gaycities-your-gay-city-guide/id303661699?mt=8);

He was highlight the following five points regarding why we should vertical app rather than google api.

1. The possibility to customise maps.
2. Add rich user specific content.
3. Add navigation
4. Monetize with ads & sponsored pols
5. Let you and your user to map and customize their world.

Tags: , , ,

0 comments Add This

Interface Development team weeknote (week 1040)

LBi interface developers at Al Volo

18 interface developers at Al Volo, Ely’s Yard E1

Week ending 06/08/10:

This week I discovered a few things about Adobe Air, as part of a development project codenamed Riddle Of The Raven Master.

1. Their documentation is absolutely all over the shop. It’s disjointed, repetitive and hard to find, especially documentation concerning pure HTML/CSS applications. I eventually discovered this PDF, as definitive a resource as I was able to find. Being a PDF, it’s also available to you offline.

2. Coding cross-platform applications to run in the Adobe runtime is actually pretty easy, and getting a result is quick and rewarding. The APIs to the offline storage, the file system and the windowing and HTTP layers are transparent, and Adobe provides a shortcut file you can include to make the namespacing a little bit more sane.

3. Adobe took all the good HTML5 bits out of the embedded WebKit. Ostensibly this is to do with “runtime size concerns”. In particular the absence of SVG is unpardonable, but Adobe cite “…a trend towards reduced interest in SVG graphics” as the reason for its exclusion. But at around 17MB it doesn’t seem that size is of particular concern (have you looked at the size of an empty Photoshop file recently?). It seems this move is geared more towards Adobe continuing to push Flash as the go-to interactive, scalable graphics ‘standard’. Although some missing HTML5 features are replaced by AIR-native features, e.g. offline cache and local storage, a notable loss is @font-face. Here’s a good article listing some of the new and missing features of Adobe AIR 2.

4. The final rendering of WebKit seems to have been passed through a Flash layer, and certain graphical elements no longer have the OS-oriented interface you expect them to. This is most noticeable on form controls, which have a rather ugly, 2D appearance. However, window chrome does retain the native OS look.

5. The AIR Debug Launcher (ADL) is very useful. It’s included in the AIR SDK It allows you to run your application from the command line without having to compile and package it. It also accepts standard output so you can produce debugging messages using air.trace(“your message here…”).

Ray started LBi’s Arduino Club, an after-hours workshop for the electronics-curious. Cue lotsof jokes about building autonomous airborne kill droids. The project codename for club Arduino is The Ultimate Weapon.

We also said a sad farewell to a much-loved interface developer, Tian Yuan, with a leaving card which was basically LOLCAT-A-GEDDON. Tian had a style of development which could be described as silent assassin. We wish her all the best!

Tags: , , , , ,

0 comments Share

Typed arrays in JavaScript

Very Large Array
Very Large Array by Julia Manzerova

NERD ALERT! The Firefox 4 beta features typed arrays in JavaScript. They have been introduced to improve performance when working with binary data e.g. in Mozilla’s implementation of the FileAPI. Currently raw data is parsed as a string and read character by character using charCodeAt(). Typed arrays let you work with raw binary data. As a side effect, a JavaScript typed array will only let you store one type of variable within it; you can not mix strings and floats. And a JavaScript typed array will not allow you to change the size of the array after instantiation. Here are the types you can specify:

Int8Array
Uint8Array
Int16Array
Uint16Array
Int32Array
Uint32Array
Float32Array
Float64Array

While the performance results (http://weblog.bocoup.com/javascript-typed-arrays) are undoubtedly impressive, is there a place for typing in JavaScript? Surely the flexibility, dynamic nature and lightweight syntax of the language is it’s appeal? Introducing typed arrays is cited as a performance improvement, but in fact many other areas of the language could be dramatically improved by changing or introducing new features, so are Mozilla setting a dangerous precedent here? The abandoned ECMAScript 4th edition (PDF link) featured optional type annotations as well as optional static type checking, but the most recently approved ECMAScript 5th edition (PDF link) has neither of these.

Interestingly, the typed array draft spec originally came out of the spec for WebGL, the 3D graphics context of the HTML5 Canvas element.

Your thoughts? Happy, sad? Tearful? OUTRAGED? Leave a comment below and let’s tell Mozilla exactly what we think of their spec-disregardin’.

Tags: , , , ,

2 comments Share

Interface Development team weeknote (week 1036)

Week ending 09/07/10:

Andrew spent some time this week catching up with our TripleLBi colleagues in Copenhagen, and was pleased to find the Danes were developers with sharp skills. Project Battle of the Giants is being built out of Copenhagen with Andrew advising on architecture and beer. And them Danes are giants: what do they feed them over there? Yes, I know, bacon and blue cheese; blue cheese that made Andrew’s eyes water and filled his hotel dreams with monsters with flowing fair manes.

Jon conjured up a nice piece of news over on Project Raiders of the Orient Express: they’ve tamed the Photoshop JavaScript engine (actually ExtendScript, Adobe’s extended implementation of JavaScript), which has been a standard part of the application since version 7. Using it they’ve written a script to receive a JSON file and an image button template and automatically generate 50 buttons in 5 different styles and themed 5 different ways. That’s 1250 different buttons! The script generates in 15 minutes what may take a tablet-wielding Mac operator much, much longer, no matter how strong their Photoshop-fu. Apparently the JavaScript took a while, but that’s an impressive return on investment.

Tom and Ray delivered another massive code drop to Project Incident In Istanbul, which includes some seriously innovative banking transaction representations. I’d love my bank’s website to have even a tiny bit of the impressive functionality and design polish that this project is currently rolling with.

Martin spent last week involved in yet more discoveries around the capabilities of CSS3 gradients and RGBa opacity, and investigating server-side image generation to enable Project Aurora to use fonts that we are unable to embed via @font-face due to restrictive licenses. It seems that this is the only non-sIFR method of including such font faces that doesn’t require JavaScript to work, and won’t present the FOUT (Flash of Unstyled Text ). It’s not a discovery he’s particularly pleased about, and says it’s very frustrating to deal with font foundries who refuse to embrace the changing nature of the web by updating their licensing (seriously, he’s been bitching in the back-channel all week long about technologically-retarded and reality-denying font foundries)

Tags: , , , , , , , , , ,

0 comments Share

Interface Development team weeknote (week 1035)

Ahem — it looks like this might be turning into a bi-weekly ‘weeknote’. So, what did our team of interface developers get up to in the last two weeks?

Filip did some work on a probability gaming system for an upcoming, interactive installation, Project Secret of the Stones. He’s putting a simple but effective JavaScript front end onto a cunningly devised public application, to be revealed soon.

Viv continued fine-tuning the performance of one of our banking clients’ site for Project Raiders of the Orient Express.

Martin has been working on various proof-of-concept pieces for Project Aurora, including use of 6-colour CSS3 linear gradients and CSS transitions. There’s some really cool stuff in there which will hopefully continue through to the build proper, and as the project matures support for these features and behaviours across the browser matrix can only increase. Not sure about that project codename, though.

Tian spent a little bit more time than usual searching “cute kittens” on the internet. She claims this was completely necessary in order for her to deliver her (stonking) presentation on the state and future of 3D on the web. In fact the presentation was such as stonker that LBi demanded a replay and she ended up doing it twice. WebGL, the 3D context for the Canvas element is much more established than I though, and is viable right now in nightly Webkit and Mozilla builds. X3DOM is a very impressive, experimental open source framework that allows you to include namespaced X3D elements as part of any HTML5 DOM tree. This means you have indexable, addressable 3D elements natively on the web.

I was able to spend some downtime tinkering with my very alpha badger location API, which I’m hoping to contribute to an internal initiative, Project Counter-Clockwise Caper. More of that later.

Tags: , , , , , ,

0 comments Share