Sunday, 25 November 2007

BarCamp London: What is HTML5? - Kai Hendry

Kai Hendry is the angry young man who stormed out of the Vodafone/Novarra presentation at Mobile Monday London. He has a similar disposition to Luca Passani, only more so…

HTML 5 evolutionary rather than revolutionary — taking hints from what is actually supported by the browsers

WHATWG specs include good descriptions of what a browser does with tags

As opposed to W3C saying XHTML is the way to go — not backwardly compatible

W3C invited WHATWG to work with them

Bits that are new

Web Forms 2.0 — supported now in Opera — provides declarative validation in HTML (javascript not needed)

HTML5 validator

Also adding video & audio into the markup (as supported by Web Kit & Opera)

Dropped DOCTYPEs (browsers actually ignore them…)

BarCamp London: First view of the new BBC home page - Richard Hodgson

This hasn’t been released yet, but was shown to us in beta form. It looks good — most people liked it — and it’s a portal style page with drag & drop customisable widgets. Here’s some of the discussion points that were raised…

People pay license fee — feel that they have a bit of ownership

Traditional media — people want reassurance of seeing some news and editorial content on the front page

Simon Willison: have you tried using Flash cookies? — doesn’t go away when clear browser cookies, also cross-browser

BBC have to support all browsers with all capabilities

Currently fixed width to 960px and centered — bbc stats show very few using 800x600 (having a JS bug that records screen size + browser width)

  • various people commenting that liquid layouts are possible (even with drag & drop widgets) but harder
  • Richard Hodgson revealed that the BBC had tried out a liquid layout (complete with the widgets) but had settled on the fixed width for the moment

Has drag and drop widgets between columns — can turn widgets on and off

Doing an iterative process — rather than usual BBC all-at-once

Part of a larger BBC initiative to get faster at designing web sites, e.g. design pattern layout

  • full grid layouts, shared by the designers

Aiming for a streaming iPlayer widget on home page, probably by July

Getting rid of grey bar across the top of all BBC pages (yey!)

The page changes the background colours of all widgets when you change to a different tab for the main content — controversial — no real point

BarCamp London: Obscure Mac Apps - Melinda & Martijn

These are a collection of the more obscure Mac apps that Melinda and Martijn find useful. Not all of them are free, but none of them are expensive. Anything that more than five people already knew was skipped…

KeyCue — hold down the apple key, and see all the commands that are available at the moment

iStat Menus (like MenuMeters & MagiCal combined) — free

Caffeine — menubar item keeps your laptop from sleeping when open (useful for presentations/videos)

NameChanger — visual file renaming

Yojimbo — stuff database

  • can sync to web/iDisk
  • also has passwords & serial numbers
  • works with tags — have smart folders that pick up tags
  • similar to DevonThink

Keyboard Cleaner — disables your keyboard so you can clean it without typing nonsense (only responds to Apple-Q)

Audio Hijack Pro — only $20

  • can record audio from old DOS games in Parallels :-)

BibDesk — can throw all your PDFs into it and can add references to them from within Textmate

Papers — iTunes for PDFs (linked to Pubmed), but no link to editors

Sim R2D2 — really annoy someone else :-)

Picturesque — adds lots of borders, shadows etc to images

  • can also batch process to lots of images
  • not free

ImageWell — batch processing & uploading of images

  • similar to Skitch but free

XLD — converts audio files between formats (esp. lossless)

ZAPMac — scan reading by flashing words large across the screen

Nocturne — for viewing screens in the dark (cuts down the glare)

Remote Buddy — controls everything with an FrontRow-like interface

  • works with wii remote over bluetooth (wii remote is about £20)
  • also works with the EyeTV remote

Open Terminal Here — on Mac Update

iSquint — video compression to iPod

Simple Movie X — simple video editing & recompression; shows keyframes

And some of my current more obscure favourites…

They’ve updated Keywurl to work with Safari 3.0 on Leopard (you’ll need SIMBL, but this is provided with the download).

I find 1password indispensable for keeping web passwords. It saves them securely in the OS X Keychain and makes them available at a keystroke for any browser.

Mini Battery Logger does a really good job keeping track of how much battery I have left — and I can use it to figure out when I need to get a new one.

For those applications that don’t include automatic self-updating using Sparkle, I use AppFresh to tell me when there’s a new version.

BarCamp London: Tools I use for Front End Development - Natalie Down

TextMate to write HTML + server side

  • New From Template
  • or HTML mode then doctype tab-->

Image Editing with the GIMP or Picnik (online)

Microformats

  • nice bookmarklet available to pick them up (cross browser)

Warnings

HTML Tidy as a Firefox plugin

  • gives good warnings and has refreshable source

Webdev toolbar

  • quickest way to disable javascript
  • good for accessibility

CSS

CSSEdit

  • can group CSS styles in sidebar — uses comments in source
  • dragging and rearranging in sidebar, rearranges text in source
  • can rename group names in source; sidebar updates automatically
  • don’t really use CSSEdit preview — use Firebug instead

Squarefree

  • Test styles — pops up a separate window for adding CSS
  • Better than Firebug for changing large amounts of styles as it stays when refresh main page
  • Another one to show grey backgrounds — lighter for more heavily nested

Firebug

  • can edit layout directly in layout view
  • can grab bits in console and then click on them

Javascript

Firebug useful for checking for memory leaks

  • use Profile over a period of time

Can test out CSS class changes by hand, before you run the

YSlow — has JSLint built-in for checking poor Javascript style

Insert jQuery bookmarklet

IE Javascript debugging:

Colours

Color Schemer Studio (costs something small)

  • screen colour picker

Color Blender (meyerweb.com/eric/toold/color-blend/

Testing

Using IE in Parallels

  • can install Bonjour on Windows — automatically detects local webserver

Source control

svnX provides Tortoise-like behaviour for OS X

BarCamp London: Introducing J2ME Polish

Here is the presentation I made at London BarCamp 3. It’s been a long while appearing on slideshare, but in that time the guys at J2ME Polish have released version 2.0, complete with all the features promised in the slideshow and more.

We use J2ME Polish at Kizoom and I’m really impressed with how easy it makes mobile development. You can’t forget about the fragmentation issue, but the issues you have to deal with are reduced to sizing images and choosing formats rather than writing code to switch between them.

Saturday, 24 November 2007

BarCamp London: The Transmission of Tradition - Jeremy Keith

Slides available

Jeremy gave us a great rendition with his zouk. This blog post or the slides don’t really capture it — you need musical intermissions every few minutes :-)

John Philip Sousa hated both gramaphones & radio:

  • problem was with his business model — he sold sheet music and did live performances

Irish traditional music — no tradition of making money from writing it

  • some exceptions: people writing music to celebrate a sponsor
  • most jigs, reels, etc: nobody knows who wrote them

The music was learnt aurally — still the best way to learn (all the little phrasings, etc)

Consequently, there was an enormous amount of musical variation in Ireland

Francis O’Neill, chief of police in Chicago, started collecting tunes

  • Cliche — Irish policemen in Chicago If you could play an instrument you were guaranteed a job
  • O’Neill’s 1001: “The Book” — saved music for future generations since population of Ireland was being decimated by famine and people leaving

Sharing music moved onto the internet with mailing lists

  • no music or images, so ABC format
  • software could take this format and output sheet music
  • regional variations starting to die out, since most popular lives longer

Jeremy’s contribution: thesession.org

  • now 3000-4000 tunes
  • mostly public domain — some conflicts where 20th century ideas of licensing & intellectual property
  • some people will compose a tune and not take credit — hope that it gets accepted

What’s going to happen with music in the future?

  • like irish tradition? music getting out there, variations, mutations, etc
  • or like Disney? extending copyright length each time Mickey Mouse comes up for expiry

Jeremy thinks the 20th Century might be a blip

  • had the idea of the commons for a long time
  • only been 100-120 years of having false economy of scarcity

BarCamp London: Learning jQuery - Simon Willison

  • simpler than Dojo
  • Prototype & mooTools stick lots of functions in your namespace — don’t interact well

Step 1: get some stuff

e.g. jQuery('div#intro') — find DIVs with id # intro

jQuery provides lots of CSS 2&3 selectors

  • e.g. li#current ~ li (LI siblings that follow #current)

also lots of magic selectors (begin with colons)

essentially a domain-specific language for querying the DOM

Step 2: do stuff

return a jQuery collection

  • can be treated as a javascript array
  • can also call methods on it (e.g. ~.each(function() { ... }) )
  • can also modify it by calling methods like .attr()

can also control css properties & html content, including animations

using Simon’s bookmarklet called “inject jQuery” that injects the jQuery object into any HTML page live

  • can then use Firebug console to try things out interactively

jQuery also lets you introspect the DOM objects

  • e.g. can call height & width — very useful for drag & drop etc.
  • traversing DOM — parent, next, etc

in functions that you add to jQuery objects, often refer to $(this) in order to set something on the page that’s just been called

Unobtrusive javascript — get the page working without and then add a bunch of javascript to enhance the functionality

  • in order to do that, need to call javascript when DOM is ready
  • jQuery has $(document).ready(), but has been overloaded into $(function() {...}) call

jQuery allows method chaining (like LiFT) to provide concise representations, and end() method provides descoping:

  • methods that change context can then be descoped to get back to previous context
  • works well with find() method

AJAX & Animation

can load any external URI into the innerHTML of jQuery collection

can chain animations — one will happen after the other

can also roll your own animations

Plugins

one to fix PNGs in IE, another to help with drag & drop

can write your own

Further reading

Good API reference — http://visualjquery.com

BarCamp London: Messaging Scales – Matt Biddulph

Asynchronous messaging coming in to web (been around for a long time, esp. in banking & finance)

Concurrent languages: erlang, scala, haskell, e

If everything is done with message passing, there is no need for shared state

messaging systems:

  • dopplr uses ActiveMQ (using JSON as message bodies)
  • spread is another
  • google gears — provides local message bus for thread worker pool

long-running processes:

  • e.g. kayak.com travel search, gradually fills in your results

dopplr coincidence calculations:

  • local information done immediately
  • rest of social network done by passing a message to queue
  • workers just collect and get on with it
  • if queue is too long can start up some Amazon ECS resources to process the queue for an hour or so

extreme late-binding

  • Alan Kay said that he may have overstated the objects in object orientation :-)
  • important thing is messages — work can happen anywhere if messages contain context

can have shared state using sequenced messages

  • update your own state by sending messages to the bus
  • everyone can share the same state
  • when go offline can store messages to pass, ready for when reconnect
    • can speculatively update state to present to the user
    • when reconnect can discard speculative state and catch up properly

network quake

  • short (200ms) periods of uncertainty, code guesses what will happen in that time before messages come from other players
  • guarantee that players will sync about once a second

founder of erlang: “humans are long-running processes, can pass messages, others can ignore”

OTP — built on erlang by Ericsson (who invented the language)

  • includes code changes as changes of state
  • talks about fault tolerance
  • “crash only programming”
    • don’t need shut down — just pull the plug; when start up look for any state to recover
  • like XP — a set of practices that work together

Another recommendation: Enterprise Integration Patterns by Gregor Holt

Problems with message passing:

  • only do it if the request really is async, otherwise wasting time
  • introduces dependencies on messaging system

What’s next? Matt is currently interested in Arduino

  • similar to messaging services

BarCamp London: Don't Scrape, Glean (GRDDL) - Tom Morris

APIs break the principle of DRY — equivalent to “accessible version” of web sites…

W3C have defined GRDDL: defines well-structured process of converting XHTML (or HTML4 using Tidy) into RDF * works like a stylesheet on top of your HTML

can define with GRDDL how to get at data in APIs (incl. RSS & ATOM)

aim to make data layer separate from HTML but bound to it, just like CSS

XSLT templates provided to convert HTML into RDF using classes

using xsltproc > output.rdf to transform

  • have a template HTML page that includes links to xslt
    • either your own or standard ones
  • add a link to that page in the profile attribute of the head tag of the content page
    • can have space separated profiles
  • then go to triplr.org to convert page into RDF triples or JSON data

most languages have a sparql library to handle RDF pretty much like SQL

examples:

extends microformats — enables you to write your own

BarCamp London: Voluntary Economics - Reinier Zwitserloot

Slides available

According to rational economics if you are handed $10 and asked to agree a share with another person, you should offer them 1 cent. People offer much more in practice.

Some examples:

  • freakonomics - bagel guy: found that if dumped bagels, cream cheese & cash box at companies, found that at some places 95% of people paid
  • linux kernel: copyright of patches goes to Linus
  • wikipedia have got more than $1m from small donations
  • Oink: download site — couldn’t pay for music but some bands got famous based on usage
  • terra bite: pay as you wish restaurants
  • tipping…? though in America this comes with threats
  • “The Plant” — Stephen King book: published one chapter at a time, continued writing if more than 75% of downloads paid up for $1
  • article on boingboing how bartering makes banking work in Africa

counter examples:

  • web comics: have donate buttons but don’t really work

price discrimination & sales doesn’t work online

  • price discrimination — people pay the max that they are willing to pay
  • can search for coupon codes

“fame comes before fortune — if you have fame, fortune will follow”

  • that’s why micropayments don’t work as trading

Ways to get voluntary economics to work:

  • put a human face on it
  • peer pressure (e.g. tipping, bagels — had to be in public place)
  • communities — build a big one (e.g. when Starship Enterprise was canned, community raised $3m)
  • rewards based on community
  • emotion — you like it, pay money/contribute time to support

Has to be aimed at people — more emotional: corporations will just say thanks for free

Is voluntary economy a luxury good?

  • Does it only work when economy is good?
  • Maybe not — it’s a transaction since there are more things being transferred than money/time — blog is getting attention
    • —> redefine the rationality of the economic agent
  • economically more efficient

Short story from Bruce Sterling on the same area

Plug: TipIt — tip any blog

Tuesday, 20 November 2007

XPDay 2007: Specification by (executable) Example: Prosperity of the FITtest - Immo Huneke & Robert Brown

  • Using Excel spreadsheets to import data into FitNesse test fixtures
  • Wiki has “convert Excel table into wiki table” button on input, and conversely “output as Excel”
  • Now using Excel spreadsheets directly

Using FIT made tests visible and helped communication in project

FitNesse got too slow after 350ish tests!

XPDay 2007: The Secret Backlog: Behind Every Bug-Report is a User Story - Antony Marcano

  • Why not just capture acceptance tests directly from bug reports?
  • Take bugs and unexpected behaviours as prompts to talk to the customer.
  • Worked on a project for 9 months without a bug tracking system — just used acceptance tests.
  • Bugs focussed on ugly thing that system does; acceptance tests much more positive — aimed at user goals.
  • New features are easier to prioritise and nicer to work on than fixing bugs.
  • Quite often end up with new features in bug tracking system anyway…

XPDay 2007: Fiat Lux: Testing With The Light On - Joan McGalliard, George Joseph & Pushpa Sebastian

Testing team in growing agile project

Teams split according to system functionality rather than business needs

  • No one knew if a story was finished or not

30 devs, 10 testers, 7 BAs, integration team

Embedded testers in development team

At beginning of iteration wrote down stories for iteration

  • each story had page of details: acceptance criteria

Active documentation:

  • tests written in business English
  • runnable
  • italics for input, bold for output — when run, outputs are coloured red or green
  • also had table tests

Documentation is always right since if they fail, the build fails

Tests linked from stories and checked in to source control

The story process:

  1. agreeing acceptance criteria
  2. dev complete
  3. BA/show-and-tell sign off
  4. tester sign off

Can colour code iteration plan to see how far each story has got

Technology involved

Originally used FIT — introduced idea of active documentation

But inflexible, developers didn’t like fixtures

Ended up using Concordion

Tests are written using JUnit but described in an instrumented HTML page

When they fail, they give a stack trace as well as the failures on the resulting page

How to introduce

How to catch up on legacy code?

  • Forget about it — just test for current stories
  • Ended up covering criteria for previous stories too

Having tests ready in time?

  • Works best for 2 testers for every 3 developer pairs and 1 customer/BA

Takes quite a while to write the testing framework & tests

  • 50% of developer time…?

Faulty fixtures

  • Change test data and ensure test fails appropriately
  • Reuse fixtures
  • Pair testers & developers to write the tests

My thoughts: the fixtures are not visible to the customer, and the words in the active documentation do not actually have any connection to the testing code

XPDay 2007: Working With Customers towards Shared Understanding - Andy Pols & Mike Hill

This was a workshop session in which we brainstormed enablers & disablers, chose the best techniques and then talked about how we would use them and what would be the pros & cons.

Techniques that we chose:

  • user stories
  • show + tell
  • rich domain model
  • acceptance testing
  • developers using the system

XPDay 2007: Agile Alliance ATDD Tools Workshop Report - Antony Marcano

Side issue

Research in Calgary on touch-sensitive table used for agile planning (Frank Maurer)

  • enables card throwing :-)
  • create cards using tablet pc with pen-based input, then appears on shared surface to be moved around

Intro

Antony's Blog — things about testing, aggregates other blogs too

Report

Workshop in Portland: discuss cutting-edge advancements in, and envision possibilities for, automated acceptance test driven development tools

  • Tools that help communicate & share with customers to figure out what they want
  • original name was “functional test tools workshop”

Looking at design process using tests

Had a debate: what’s the difference between an example and a test?

  • some took examples and wrapped them, others thought they were different things

Levels of abstraction

  • UCD: Goals, Activities, Tasks
  • Fit tests work better at activity rather than task level
  • Kind of translates to named methods (navigateToJourneyPlanner) vs individual “fill in field with id blah”’

Vocabulary

  • Given, when, then
  • behaviour driven development — RSpec (ruby) in process of integrating given, when, then
  • taking hamcrest & literate tests and making a view that allows customers to interact with the tool
    • e.g. like a word processor
  • looked at JDave — didn’t feel as comfortable and natural as JUnit/Hamcrest
  • great for flow tests but not so good for:
    • do this and result in this data (row fixture in Fit)
    • truth tables — have some ideas but too immature right now
  • Nat Pryce refactored tests to be literate, next step to output Word docs from tests
  • Antony would like to enable customer to write tests (but still need conversation)
  • Nat saying that customers need to write tests in conversation with developers, so in code is good
  • thoughts: given, when, then: moving towards Z & specifications — anybody looked at synergy here?

Visualisation of flow

  • Brian Marick blog
    • currently implemented in Ruby, uses Omnigraffle so Mac-only :-)
    • draw a picture and annotate it
    • fear that if pics too detailed, then lots of refactoring needed
  • Ward Cunningham - Eclipse portal (not open source but tightly coupled to Eclipse project)
    • workflow involved in someone being nominated to be a committer on Eclipse
    • after the fact reporting on tests
      • can hover over steps and view form & data particular step
      • also have links to take you to that point in the application with data already set up
    • also used for help documentation — legal dept could see steps involved
    • actual tests captured in text-based format
  • CubicTest — Eclipse plugin to visually design tests with states
    • generates an interactive HTML prototype, based on the tests you have written
  • these tests were captured at task level, but reported at activity level

Model based testing

  • Ben Simo — state oriented model
  • Manually create state & transition model in Excel, and then generate tests from this model
  • agitator — exercises all the paths through the code (uses code as model)
    • more recent tool allows you to generate JUnit tests from suggestions, can then tidy up and rewrite
  • idea — generate a model from the first tests
    • can then generate new tests to explore the software against that model
    • helps find gaps in thinking (wouldn’t be used for auto-generating, more to suggest new tests)

Patterns of self testing software

  • talk of setting up a wiki to start capturing these ideas

Conclusions

  • tools will encourage appropriate level of abstraction
    • avoid refactoring overhead of writing at task level
  • will allow multiple views on tests
  • tightly integrate into documentation generated from application
  • will become more popular to make tests more transparent — available to customers
    • allows customers to provide specific examples
  • Frank Maurer has an open source project called FitClipse
  • Rick Muggridge: zibrieve.com — refactoring Fit tests
  • Green Pepper: using Confluence to write tests (also ties in with Jira)
    • one issue was tying test versions with app versions (may be sorted with Confluence subversion plugin?)

Q&A + Comments

Concordion, decorate an HTML page with tags underneath, and then JUnit runs it

  • concordion.org — open-sourced last month

Profit — supposedly allows transformation between Fit & Java for refactoring

Online discussion: aa-ftt@yahoogroups.com

Jim Shaw/Shore has idea of customer unit tests (not end to end)

  • forcing the customer to think in modular ways

Good thing for a coach to do — encourage always asking questions

  • put on the tester hat and be persistent about asking questions
  • tester is a role that is very useful in any team

Functional tests taking a long time

  • run as separate continuous integration
  • overnight tests did full thing
  • during the day, had a different config that simplified stack and took less time

XPDay 2007: Keynote: Cheek-to-Cheek: why Co-Located Collaboration Persists - Yvonne Rogers

Video conferencing vs collocated

  • can’t talk privately to others
  • what happens after the meeting is almost or more important that during

HP Labs — mututally immersive mobile videopresence…

  • Live video of the front and sides of the user’s head
  • Mounted on a mobile robotic trolley

Issues

  • Situation awareness — aware of what’s going on around you
  • Non-verbal communication v. important to control the flow
  • Research shows that it’s easier to switch between physical & digital artifacts when face to face

Research over the last few years looking to facilitate face to face communication

eSpace — interactions between (travel) agents & customers

  • customer appears to be understanding and nodding, but really isn’t getting anything
  • a lot of translation going on from information for agent and information for customer _(hey, that’s kinda what Kizoom does :-)-
  • changed the workspace to be a side-by-side interaction with three screens
    • reduced social awkwardness
    • both looked at the screen and occasionally had eye contact
    • both took part in creating the itineraries

Theoretical approaches for supporting collocated teams

Multiple entry points

  • when each person has their own paper and pen, it becomes easy for people to share
  • when there’s only one pad, people fight over the sole entry point
  • also at whiteboards — single entry point is the marker
  • used mitsubishi diamondtouch + diamondspin s/w: touch-sensitive display table to provide shared workspace with multiple entry points
    • saw lots of turn taking and “turn inviting”
    • also people who were normally shy could take part more with the physical tasks

Distributed cognition

  • traditional approaches to cognition talk about what goes on within a single person’s head
  • distributed approach takes the system at large — lots of people with input to the group and output from them
  • distrib. cog. tries to chart:
    • where the overlaps in knowledge are
    • levels of access to information
  • this is the approach used by Helen Sharp (Yvonne is now working with her at OU)
  • Yvonne shows picture of Kizoom’s bug wall and talks about how central it was to our environment
    • (in fact this was probably a breakdown since it just filled up and didn’t get addressed…)
  • large interactive surfaces:
    • OU waiting for MS Surface (due in November, but now arriving next summer)
    • reactable — physical interaction with music software

Dynamo — collocated people sharing & showing digital content

  • shared screen with multiple mice & other devices
  • can carve out sections of the screen and protect them against others
    • can then grant and revoke access to other individual users
  • can seal parcels and leave for other users
  • deployed into a 6th form classroom
    • interaction tended to be a few people using it and others watching as an audience
  • not yet deployed into a software company, but if you want it, let Yvonne know

Conclusion & Q&A

Collocated teams will always work better than distributed teams

  • but no quantifiable effects here

What’s the value of these technologies over index cards?

  • Helen’s research shows that cards have great value that won’t go away
  • if developing a product that requires you to interact with digital content, then this tech gives an advantage
    • especially if making connections
  • people overlook emails and other digital content — posting it on a public space makes people take notice (honeypot effect — they all gather round)

What happens with larger groups?

  • Yvonne’s research is mostly with groups of 2-3
  • When groups get to 6-7 then group segments and division of labour sets in
    • “I’m working on this bit and you can work on that”

Monday, 19 November 2007

XPDay 2007: Mr Agile Goes to Washington: The Impact of Politics on Agile Projects - Panel Discussion

Panel

Sallyann Freudenberg — internal agile coach (permanently employed)

  • previously did PhD in collaborative software development
  • approach: gently let things bubble up and then deal with them

James Davison — head of PM at Razorfish (previously at ThoughtWorks)

  • has come across a lot of politics
  • don’t think you can stay out of it — perception is very important
  • try get everyone into the same space by socialising

Stuart Blair — investment bank

Mike Feathers — object mentor in US

  • travelling coach

Rachel Davies — independent coach

  • often working with several companies at one time
  • facilitating retrospectives: ensure voices are heard in a neutral way before jumping to solutions

Discussion

The focus of the group seemed to be of within large corporations rather than smaller companies working with other companies.

Politics:

  • covert action to get what you want from scarce resources
  • decision making process not clear — individual roles not well defined

Good politics:

  • Aligning projects with high-ups objectives
  • Finding right person to present the case on your behalf
    • Externally, this would be called sales; but internally called politics…
  • Try reframing their goals in a more positive way
    • At least lets you work with them
    • When you catch yourself saying bad things about another, it’s time to stop and step back
  • Having a strong manager who can recognise political games and call people on it
  • We often assume intentions
  • Selling the success of the project within the organisation
    • We find it hard to celebrate success

Bringing politics into our practices:

  • We don’t really have a lexicon for political behaviour…
    • Need a rudimentary politics for software developers
  • Getting to Yes — by Roger Fisher (from Harvard Law School)
    • also others in series (Getting Past No, etc)
  • Can we have a patterns book for politics…?
  • De-politicising a situation:
    • Listening
    • System thinking — showing how things all fit together

In any group have a tension between wanting to belong to a group and wanting to be an individual

Dealing with customers who play games?

  • Build a relationship with them
    • Delivering to 11 countries
    • Turned up in Austria — greeted on front door of building: you’re here to implement a system that means the office will be run from London; go away
    • Had to do a sales job; had to get sponsor on phone to convince him
  • Very difficult to build a relationship with someone when hiding something
  • Can bank integrity in relationship
  • Ask questions of everybody in the company
    • Find different points of view
    • Understand perspective of lots of different people

How do we get recognition within hero-based culture?

  • Always have to sell success (even if not being massively successful)
    • what we are delivering is useful, provides value, ready on time
  • some clients have culture of celebration when a project is completed
  • agile projects release often and regularly
    • need to celebrate that
    • tie in to business successes
  • hold an end of year retrospective
    • show off all that has been achieved
    • lots of issues overcome, just not by panicking
  • hero culture can cause problems — expose the problems and compare with smooth delivery
  • make time to be seen to be doing a good job — and build that in to project planning
    • regular show and tell

What to do when gantt chart and burn down chart start to disagree?

  • agile bubble in a non-agile company
  • often pressure for report comes from middle management: just query with higher management
  • use extra features and benefits of agile methods to sell
  • if the agile project is the first to report that it’s running late…?
    • be honest — hard conversation early on (risk of getting fired)
    • speak their language (e.g. use gantt chart)
    • that’s the project manager’s job
    • it’s going to be late or you can have this instead
    • saying “no” in a way that can be accepted

XPDay 2007: The Social Nature of Agile Teams - Elizabeth Whitworth

Why are agile developers so excited?

  • What aspects of agile dev are related to team cohesion?
  • What makes a team really gel on a project?

Speed & ease of interaction:

  • whole team involvement
  • trust, openness, respect
  • culture of action & change
    • immediate action that they could take in the near future
    • individuals could see themselves make a change
  • agile participants had a more collective viewpoint

Social identity theory

  • in-group out-group bias: just naming different groups biases the dynamic
  • agile culture increases the strength of the project group identity rather than dev, biz, etc

Planning

Planning game makes the conflicts more visible and allows developers to take more ownership over development process

Planning responds to team needs — tasks are neither to hard (anxiety) or too easy (boredom) — increases feeling of flow

Short term planning increased willingness to compromise — team interactions more relaxed

  • increased feelings of security & comfort

Long term planning hard to do as a team

  • gives rise to feelings of insecure, apprehension, stress
  • having to make decisions for things 6 months in advance

Regular Iterations

No definite end goal caused loss of “buzz” — group motivation & focus hard to maintain

Consistent delivery over multiple iterations gave rise to feelings of confidence & security

Whole team awareness

Constant feedback to individuals that all team members share awareness of team activity & share commitment to goals

Supported by daily group standup:

  • Forum for non-task based issues
  • Extra motivation (disapproval from team) and validation of requests
  • Recognition of what’s possible and what’s not
  • Communication is not need-based — allows other topics

Group standup supported by chunked activities

  • Something to report if small enough chunks
  • Loss of motivation if stuck on same task for whole week

Information Radiators: noticeable measures of progress

  • completed stories “give endorphin rush”
  • also supports awareness of individual contributions to team goal (others as well as self)

Performance

Increased sense of control & self-efficacy improves performance

Conclusion & Questions

http://www.ewhitworth.com/html/ma.html

Have a list of weaknesses at end of project, for example:

  • agile focussed on developers — makes them feel good, but QA & documentation felt isolated
  • high-level of interaction sometimes resulted in burn-out

Data collected from:

  • 5 participants from one company
  • 17 participants each from different companies

Agile is a method that helps people work as a team in the software development environment

Frank Maurer (Uni. Calgary): agile planner — distributed planning for agile teams

XPDay 2007: Building a Ubiquitous Language Using Naked Objects - Dan Haywood

Irish Govt’s Dept of Social & Family Affairs are very committed to agile

Synopsis

  • Eric Evans’s Domain Driven Design — tackling the complexity of the domain itself … not even specific features
  • Martin Fowler — models are just a map of the real world, they “are not right or wrong, just more or less useful”
  • “Ubiquitous language” aims to unify the vocabulary between business and developers

Tangibles

  • Uses reflection APIs to expose domain objects directly in user interfaces
    • (Written in Java 1.1 so can be exposed as a .net dll)
  • Goes beyond CRUD as can expose public methods as actions on objects
  • DSFA had a green screen environment previously, so any user interface was an advantage…
  • Generic user interface:
    • repositories down the left (can locate entities by type)
    • then window shows representation of entity with properties and references to other entities
    • also shows actions on properties (e.g. name —> “Legal change of name”)
    • generic interface needs training to use, but can be skinned
    • protocol between client and server is pluggable
      • Irish system is stateless, has optimistic locking and doesn’t get updates live
  • used to build self-contained apps to demonstrate
    • but customers didn’t have enough experience/installed software to properly understand the application
    • so built Wink demos to use in browser’s flash plugin

Development Environment

  • Based in Eclipse with plugins
  • Uses Spring to tie things together
  • Use fixtures for test data — use composite pattern so can reuse over user stories
  • Can build as Swing app, web app based on Jetty or RCP app

Business rules available:

  • Can hide or disable properties
  • Can validate before accepting
  • Uses modify before set — in order to set up bi-directional relations

Sister projects:

  • Naked RCP
  • Naked REST — exposes Naked Objects as RESTful web interface
    • Dan’s project for 2008…

Conclusions

As default user interface becomes good enough, discussion turns to domain model instead.

Wizards are for transient apps (Inmates are running the asylum — Cooper)

  • Sovereign apps gets used everyday, all the time
  • Naked objects are good for sovereign app and building the domain model (not so good for wizards)
  • Could then add a custom object that maintains its own state for building a wizard, or else use POJOs that were generated from within some other framework
  • Use Naked Objects for building and debugging the domain model

Q&A

Are there any compromises in order to use Naked Object UI?

  • Navigating large collections can be awkward
  • Probably want to alter the domain slightly — view most recent, search by date — rather than view all

Since can code quickly, can actually think of pair programming with your customer

What advantages does Naked Objects give over Rails?

  • originally, MVC controller was to control the objects; been distorted so that it now controls the user
  • Naked Objects allows you to adjust domain easily independent of user controller
  • Rails insists on a user controller or just offers CRUD

XPDay 2007: Embrace Uncertainty - Jeff Patton

I came in 10 minutes late for this keynote. Train problems…

Results of stories don’t need to completely satisfy the customer — the aim is to get value and reduce risk. Iteration retrospectives should evaluate on these two goals:

  • Did we get some value? Could we get more value? Biz should answer this.
  • Did we reduce risk?

It’s ok to do the simplest possible thing that could possibly work, rather than the simplest thing that could be released.

Three different customer prioritising strategies:

  1. Follow the money — go for a single business benefit at a time
    • cuts out whole swathes of stories and simplifies iterations
  2. Don’t choose your solution too early — look at what the user wants to accomplish and defer choices as late as possible
  3. Build up feature quality iteration by iteration — need everything but can build up quality and complexity
    • e.g. building a bus — can’t
    • e.g. leave out AJAXy stuff until later, improve performance gradually
    • if build to ideal quality in each iteration then may miss out vitally important function
    • customers say “great, it’s done, let’s move on”
      • so have a report card across the features: D to A
      • can say to customers, “you have your X but it’s D quality now. You’d really want better”

As soon as you start to be dogmatic about following the process, you’re dead!

Q&A

What’s your idea of the role of business analyst in agile?

  • in commercial software company like Yahoo, there’s no such thing — instead they have designers
  • would like to see BAs take more design responsibility for what they’re doing
  • in enterprise software houses, have business people talking to BAs, talking to developers

How do you deal with multiple business voices?

  • use user-centred design & scrum product owner
  • product owner takes responsibility for direction of product
  • understands the different factions and can answer to them why the development is going in that direction

In Yahoo, have designers but also product managers — how do they fit in and can we learn from them?

  • they choose direction of business value from choices given by designers

If stay uncertain, how much is it going to cost?

  • strategies outlined before came out of fixed price projects
  • play space is users to support, kinds of things to do, quality of resulting product, etc

See Jeff Patton's blog version for more details

Friday, 16 November 2007

Future of Mobile: Next Generation UI

by Matt Millar (Adobe)

  • How do we make the content richer?
    • Especially for those people who are paying more for their device/contract
  • 77% of iPhone users said they were "very satisfied" with their device
    • Highest satisfaction level for any mobile device
  • The experience should be expressive, memorable and desirable

    • "Hey, isn't this great! Let me show it to you."
  • Expecting same quality of content as get on TV, PC, etc
    • The mobile is not the only way to get hold of (your) content
  • Animation helps guide and draw the eye towards things of interest
  • Transitions help ease context switches, avoid users losing focus
  • FlashLite 3 will be coming out on first devices Jan/Feb 2008

    • Supports video & up to Flash Player 8 content

    • Most content published on the web seems to be Flash Player 7 & 8

  • Not investing that much in SVG -- going for Flash instead
  • Integration with address book etc: nothing announced at the moment, but may be privately
  • Touch interaction is supported with Flash Lite 2 but devices do not necessarily support the hooks (even the ones with a touch interface...)
    • e.g. LG Prada has a touch-enabled Flash Lite player
  • There are more Nokia S60 devices in the market than there are Macs

Future of Mobile: Cracking the Code: Developing for Mobile Devices

by Luca Passani (Admob)

  • Original web -- started without thinking about money
  • When companies started to monetize, they weren't able to muck with the basic standards
  • On the mobile web, companies are trying to monetize before the technology is solid
    • e.g. Vodafone & Novarra "breaking the underlying technology"

  • W3C denying the issue is there (One-Web)
  • WURFL updating process is a bit heavy to manage
    • 6Mb file, hand-edited by Luca
  • Building new public interface to WURFL
  • Enables users with accounts to add patches and download updated version on the fly
  • Luca can then merge in changes more easily
  • Other WURFL sub-communities: J2ME, Flash Lite & Video

  • WALL:
    • created in 2004 and looks it
    • new version WALL NG (WNG) allows css to degrade gracefully
    • object model with Java API & tag lib, integrates with JSTL

    • levels: XHTML advanced (level 3 or 4), XHTML simple (level 1 or 2) & WML (level -1 or 0)

      • only 5% of devices accessing mobile web are WML only
      • level 3 assumes no AJAX, level 4 supports AJAX
      • company working on AJAX for mobile that Luca intends to work with

Future of Mobile: How the iPhone Will Change the Mobile Space

by Brian Fling (Blue Flavor)

  • Jason Devitt - Testimony before congress about operator anti-competitiveness

  • Uses video iPod as babysitting device for his daughter when out at a restaurant
  • iPhone is educating the consumer about what a mobile device can do
    • Nokia is happy that iPhone is encouraging web use as it helps sell higher-end Nokias
    • Introducing flat rate data
    • Has updatable software (and is easily updatable)
    • Makes difference between EDGE & Wifi clear - encourages users to demand better speed from networks

    • Big impact on web communities (introducing them to mobile)
  • Leaflets: http://getleaflets.com

    • Reformatter from RSS to make look good on the iPhone
    • Also has a list of other iPhone apps
  • Daniel Applequist's daughter was able to enter a URL
    • She doesn't even know her letters -- doesn't know what URL to type
    • How many times have we complained of how hard it is to type in a URL on a phone
    • But if people spend $300 for a handset, they expect it to be unlocked

Future of Mobile: Android and the Open Handset Alliance (OHA)

by Dave Burke (Google)

Software development kit released on Monday: http://code.google.com/android/documentation.html

  • Exposes Java for application developers -- SDK is based on Eclipse (works on Windows, Mac & Linux)

  • Free phone stack provides at least 10% reduction of bill of materials for device
  • Applications run as individual Linux processes with different user ids
  • Complete two-way sync for user data (google gears?)
  • Leveraging open APIs to expose application functionality
  • Scalable to work with different device capabilities & input

  • Component-based -- user can replace components
    • e.g.
  • Overall architecture:
    • has freetype, media framework, SGL, OpenGL, LibWebCore (part of WebKit) libraries

    • Java runs in Dalvik Java VM
    • Four core apps: home, dialer, contacts, browser (can all be swapped out)
    • Can run MIDP applications in parallel
  • Full source will be released with first handset
  • Browser has visual history
  • Can use Google Maps as a control in your own applications
  • Example development process:
    • Emulator is real ARM emulator
    • Can create user interface declaratively using XML
    • Plugin picks up ids from UI XML and makes them available in java code completion
    • Can extend javascript in running browser component with native Java code
    • manifest file has permissions where can add security permissions
  • Application Developer Challenge will distribute $10 million in awards to developers of applications for the platform
    • Developers retain all intellectual property and other rights to their applications while granting Google a license to evaluate and test the application for purposes of the Challenge as well as a license to display the application to promote the Android platform. More information will be provided when we make the Terms and Conditions available
  • Android has simpler security system (for the user) than MIDP -- need details here

  • Already works with real handsets but not available to public
  • WebKit engine supports Netscape-style plugins

  • Released under Apache license at the moment
  • Designed for high-end platforms that include an MMU
  • Own set of APIs providing full access to the device as opposed to MIDP
  • Java is 1.5 so has generics etc.

Future of Mobile: How Devices Will Evolve

by Simon Rockman (Sony Ericsson)

  • His job is understanding what people will want to do with their cheaper phones in the next couple of years
  • T68 hit the market right -- introduced colour & Bluetooth at the right time

  • Technologies take about 3-5 years from introduction to mass adoption
  • When WAP failed, WAP-Push succeeded
  • Therefore spotting the next big thing is not coming up with new ideas, but working out what will work
  • Don't think that UMA (home/mobile together) will take off
    • e.g. when BT has tried to sell DECT phones that look like mobile phones, they haven't sold
  • Difference between listening to what people want and understanding what people want
    • Nokia 5100 huge success in India cos it has a torch vs Motorola rugged motophone
    • Painting a Razor pink way outsold new 3G Nokias in Xmas 2005
  • What will win is building phones for what things they want to do
    • e.g. new TomTom navigator has a SIM

    • 60% of Blackberry users have a voice phone
    • 100% penetration is not the limit -- probably 5-6 phones each
    • Currently 2 billion devices, but really 2 billion SIMs -- can get larger
  • Simon thinks fragmentation is a good thing, as it meets the demand for the multiple needs of each person
  • When building millions of phones, the thing that drives down cost is cheaper or omitting components
    • "Software can be more expensive as need to ensure platform passes tests"
    • Cheaper and better for developers to keep the platform stable
  • People accept larger bills by separating out into different categories
    • e.g. my music bill, my messaging bill and my voice bill

Future of Mobile: Beyond WAP: Advance Browsing, Mobile Ajax, and the future of the Web

by Daniel Appelquist (Vodafone)

  • Voda are pushing forward on xHTML Reunification
    • XHTML Basic (W3C) vs XHTML-MP (Open Mobile Alliance, ex-WAP Forum)
  • Participating in W3C Ubiquitous Web working group
  • "In 5 years time, there will be only one web, and it will be the mobile web"
  • W3C has launched mobileOK from today
    • Tests plus open source java reference implementation for local checking
  • Mobile AJAX Workshop from Sep 2007: http://www.w3.org/2007/06/mobile-ajax/report.html

  • DOJO has refactored itself and shrunk down to target iPhone and Nokia S60 browser
    • A lot of the bulk in DOJO was dealing with IE6, taking it out made the lib much smaller
  • Device access vs. security
  • SVG tiny 1.2 includes AJAX capabilities
    • e.g. Vodafone Germany - Bundesliga SVGt app running in Ikivo player
    • will move to be integrated within the browser
  • WICD - Web Integration Compound Document

Wednesday, 14 November 2007

Future of Mobile: Discovery & Off Portal Search

by Steve Page (Mobile Commerce)

  • Discovery & off portal search

  • Currently provide local search & travel information on all mobile networks

  • Mobile Commerce are tech partner with yahoo for Orange off-portal search
    • Social networking sites are very much at the top
  • UK: 25 million searches a month
    • 3 times as many search requests coming from Google than from Yahoo
    • But three times as many click throughs coming from Yahoo
  • Vodafone contacted them and said moving to ad-supported, so they started setting up off-portal sites intending them to be found by search
  • WAP & Web backfill -- free discovery (see below)

  • Google mobile search is appalling
    • Not enough searches
    • Nobody goes down to click more
    • None of the mobile sites are linked to each other
  • However, finally got some stuff to the top on google mobile search
    • Spent about 8 months working out their findability
    • it's free!

    • Findability:
      • Personal contact at Yahoo very useful
      • Google ranks WML above XHTML -- mime types & DTDs really important

      • Need to submit site map & wait for crawl

      • Google uses Nokia 6220 as user agent -- weird device
      • Need to permit bots through robots.txt
  • Really good slide on discovery prioritisation for mobile operator portals

Future of Mobile: PayForIt

by Guillaume Peersman (Dialogue)

  • PayForIt

  • About 7 APIs (intermediaries) available
  • Moving to max £10 soon
  • Fourth release is due soon
  • Typical implementation time seen at Dialogue: 3 days
  • Stats so far:
    • Some services have seen increased 27% conversion rate
    • 13% of users go to payment page and cancel
    • failures around 7% on average
  • Subscription services
    • Confidence increasing due to trusted framework
  • Clients: NewsCorp

  • WAP billing only available on Orange, 3 & Voda at the moment

Tuesday, 9 October 2007

MomoLondon: The Mobile Web One Year On

Someone wants to flirt with you - Mark Curtis @ Flirtomatic

  • abandoned Java (stayed with web & wap
  • only thing that’s on web but not mobile is video
  • 80% of our customers are not interested in dating, just fun
  • very important to show web users which users are mobile (as their responses will be slower)
  • revenue from ads + value added services
  • high usage on mobile
    • 2,500 page view per user per month since last Aug/Sep
  • started over a year ago, making zero revenue at beginning of this year, break even by Q3 next year
  • started off completely off-portal
  • Andrew Odlyzko - content is not king (it’s communication between people)
  • small groups market seems like an opportunity (Zygo looking at this hard)
  • why social network?
    • everybody’s doing it
    • intrigue — “somebody wants to flirt with you”
    • theme specific e.g. Chelsea footballers
  • but why go on?
    • my friends are there
    • it’s fun (people like to feel wanted; voyeurism)
    • sex / lifetime romance
    • content habit - e.g. discussing rugby world cup
  • lost money and time by taking mobile site and taking almost straight to the web
    • continual struggle to keep the two products divorced
    • e.g. “look at me!” people pay to appear at the top — totally different presentation on mobile than for web
  • bare essentials of registration — every additional info
    • flirtomatic use: sex; target flirts; date of birth
  • abandoned flash on the web & java on phones as they stop you deploying new features quickly
    • absolutely impossible to move fast if you have loads of devices to test
    • therefore mobile app has to be only something that isn’t possible on wap — and rest is a link to wap site
  • not yet come across a case study of viral working on mobile
  • operator portals very powerful
  • admob was only channel available on mobile, but now have 7 channels
    • advertise on wap to get onto a wap service
    • 80% register once they’ve clicked through
    • difficult to advertise on web / other as
  • took the opinion that subscription suppresses usage, so ads & value ad services only
  • advertising now beginning to work; May / June beginning to work
  • advertising model on wap currently slavishly copying web, history shows that model always changes
    • expecting a bumpy ride but don’t know which way
  • value added services:
    • e.g. selling pictures of roses
    • bidding for points etc.
    • users will pay to delete their worst rating (delete my freak)
  • shifting to PayForIt using MIG… otherwise PSMS most popular payment method
  • 65-70% of revenue from value added services — expecting to decrease to 50-55% with extra advertising next year
  • payment by mobile is understood and embraced — making more money from mobile users than web
  • flirtomatic pre-moderate all visual material (moderation is a big issue for operators)
  • finding that SMS is a good tool for CRM
  • wap vs web:
    • overlap in users is 15%
    • if you log on to web, you automatically get logged off wap (and vice versa)

Mobile Web Initiative - Crossing the Chasm - Philipp Hoschka @ W3C

  • W3C have mobileOK automatic tests and best practices checker (online version still in beta)
  • Working on a new open source Java version available to download (released fairly soon) — Mobile Test Harness / Open Mobile Web Test Suite
    • community submits tests
    • can be used for browser manufacturers as well…
  • Mobile AJAX Workshop chaired by Dan Applequist
    • discussed API to phone internals…
  • Ubiquitous Web Applications Working Group
    • Device Independent Authoring Language
  • Next exciting area — developing countries:
    • 2006 BBC: 61% of international WAP users came from Nigeria
    • India: many more mobile web users than desktop web users

Content Transformation - Ed Moore @ OpenWave

  • OpenWave transformation product is called OpenWeb
  • Operators are saying that “45% of traffic / 1.8 million requests a month off-portal”
    • trying to make point that people are trying to go to URLs that don’t work for phone
    • but doesn’t that say that portal is not the be all and end all…?
  • weirdies:
    • www.vnexpress.net — loads images using javascript timer 8 seconds after page load!
    • microsoft mobile site, sends wap content type then html content!
  • operators seem to be 2:1 in favour of network proxy over portal URL field
  • wap.* or *.mobi does help to identify mobile sites
    • need to identify site before you make the request, as may need to fake the user agent…
  • operators: simple marketing message & enough capacity — 1 week of traffic went up 9 times in data usage
    • where adaptation has been deployed, there has been at least twice the traffic
  • entering a URL will probably work — increases user confidence — encourages operators to spend more on mobile web
  • predictions:
    1. mobile web will merge with PC web
    2. operators will stay with open gardens and will continue to offer more flat rate
      • admob — internet revenue models
    3. end of the mobile web only brand
      • mobile only services will very specific niche

Content Transformation - Richard Blades @ Novarra

these guys do the content transformation for Vodafone

  • do Java and BREW clients as well as server-side
  • some operators are talking about using both client and server
    • if client — what are the default bookmarks…?
  • operators are using this change as an opportunity to move to web2.0-stylee
  • moving to server-side enables faster deployment of new technologies (e.g. new video codecs)
  • average usage after transformation: 0.6 MBytes / day (from 0.18 MBytes before)
    • top 100 sites on alexa show up high on mobile
    • social networking, email
    • similar time profile to flirtomatic: peaks from 11.30pm
    • not unusual to find sessions of up to 30mins
  • www.novarra.com/faqs — will be available shortly
  • mailto:mobilecontent@novarra.com

Internet Made Mobile - Andrea Trasatti @ dotMobi

  • phone.mobi is the definitive device database on the web
  • trying to build
    • mobile web test suite
    • web interface to device database
    • standards-based API to embed into application
      • easy to install, but keeps in sync with central server
  • create & manage tests on the mobile device
  • contributing opinions — from UAProf and actual experience
  • http://ready.mobi provides emulators for phones

mippin makes it mobile

http://mippin.com/preview

  • used to make mobizines
  • can’t cross the chasm with a client so switched to server-based
  • off-portal portal providing access to RSS feeds
  • also has mipplets to provide widgets on mippin customised home page

Next momoLondon

  • November 6: 2nd Anniversary + “Mobile Advertising”

Sunday, 30 September 2007

Mobile Camp London: CuteCircuit wearables

bluetooth t-shirt with touch sensors & heat+vibration actuators
hug yourself & send action to application on phone, then send that hug to other people
can also send hugs to friends if you don't have a shirt -- use the HugMe software
can send to multiple people
when you connect after leaving it in your cupboard for a while, the phone prompts you: "there is a hug waiting. do you want to feel it now?"
children wanted to invent a touch language to communicate in class
power mesh rather than wires (silver coated mesh) with low power
bluetooth brain on back (only hard piece -- rest is soft)
can wash by removing battery & hug pads -- circuits are waterproof
unfortunately, demo shirts were left behind after they visited Wired NextFest -- a film company wants to use them in film (with Hiro from Heroes in it)
question: when will the shorts will be released...?
Mobile Phone Dress
When you swing the arm up to your ear it answers the call -- swinging your arm down, hangs up
Microphone and headphone in sleeve; aerial in hem of dress so doesn't give you high radiation
(side comment: jawbone -- world's best noise cancelling bluetooth headset: $100 but leagues ahead of anyone else)
SkateHoodie
problem: listening to music while you skate -- don't want to have iPod hanging around so it doesn't get bashed
instead have a hoodie that is a music player -- transfer music into it by plugging a USB stick into it
also enables sharing USB sticks with your friends (don't want to lend them your iPod, but a stick only costs a few quid)
headphones are embedded in fabric in the hood
controls are little indentations on the arm, have to learn which indentation is which

Mobile Camp London: The Astonishing Tribe

license rich graphical user interface middleware & tools for phone manufacturers
offices in sweden (hq), korea, san diego, tokyo, taipei

focus on user interface for mobiles

  • kastor: rendering engine -- images, rectangles, etc
  • cascades: UI design -- lists, etc
  • motion lab: UI authoring tool for cascades or kastor
proprietary tech, selling as a product
motion lab currently approaching release 2.0
cascades available as a library & headers for symbian, windows for mobile, etc.
can integrate into a third party app

UI driven architecture to enable a seamless UI combining lots of different services (MVC architecture)
background services such as MMS service, main menu service, media player service
UI layer controlled with XML config, separated from background services
generic callbacks to service code

can try out interface without back-end on real device
allows you to test performance of UI

also have a win32 viewer that allows you to preview on windows

define a control element and tie to a visual layout and a model using ids
can specify model using model element in XML, or using a dataService element that gets data from C
dataservice defines a class and the C code registers such a class
callbacks are basic tree access methods: get root data element, get child at index, get name, get property, etc.
whenever you change something in the data structure, you can tell cascades about add, remove or change and it will update the appropriate controls and visuals for you

can define a frame that maintains a history of pages
also allows you to define transitions between pages
pages can have commands that invoke handlers
handlers can be to services and also to functions within cascades itself (e.g. navigation between pages of a frame)

action elements define animations by acting on attributes of visual nodes

also have a testing framework for the UI
have expected frames and compare by pixel
also hopper test with random clicks

next release of motion lab will move further away from page design and towards flow design

Saturday, 29 September 2007

Mobile Camp London: Vodafone Transcoding

Terence Eden, Deputy Production Manager - Portal Content Management @ Vodafone
Terence did a reasonable job of explaining Vodafone's position and of apologising for mucking up the user agent header. There weren't too many rabid developers in the audience so he got quite an easy ride...
why transcode?
popular website e.g. slashdot -- very big to download (esp. if you're not on unlimited data) and hard to navigate
instead, do transcoding:
• cut down file size
• reformat the page to make it long and thin
• starts the user on the right bit of the page (knock out the navigational part and get to the meat - don't waste time & money downloading it)
My thoughts: On a Nokia N95 (the first demo device), the Nokia WebKit browser can zoom in and out of the non-transcoded page and dive straight into the bits that interest you. The transcoding saves you some bandwidth and some time, but you lose context and familiarity.
• Opera Mini does a very good job of dealing with the whole site, with its mix of transcoding and clever browser functionality: you get to see the whole context when you first get to the page (as zoomed out), but the text columns are made to fit the device width when you zoom in.
also works on Nokia 6230i
• wouldn't be able to download the slashdot page at all
My thoughts: but is still almost completely unusable on the Nokia 6230i -- only four lines of text on the screen gives you no context at all. Even if you know exactly where to get to on the page, you're still stuffed 'cos the transcoder mucks around with the ordering!
Supposedly, the first time you go to an off-portal site, you get offered a choice of whether you want the full version or the transcoded version.
You also get a navigation bar at the top and bottom of every transcoded page. The top one allows you to skip around the separate pages created by the transcoder; the bottom one allows you to go to the raw site without transcoding.
examples:
If a customer enters "www.facebook.com" into their phone, which site do they want to go to? the mobile one or the full website?
Maybe. What if they enter facebook.com? Shouldn't that decision be up to the people who run the site?
Another example: british airways automatically redirect mobile browsers to their wap site, wap.ba.com. However, this displays the message "BA no longer provide a WAP site" and will not let you try to get at the main web site even if you have a fancy phone with a powerful browser... Vodafone customers then complain to Vodafone, saying "Why have you broken the BA site?"
• Surely this is a situation where Vodafone should use its muscle to knock BAs head against the wall, or else to write a specific rule in their transcoder...
how does it figure out which bit to go where?
• transcoder guesses using names of DIVs + formatting hints
• also there's cheating: transcoder can be given hard-coded rules for specific sites (did this with bebo.com)
customer research:
• most people don't know how to open a URL on their phone, so offer them a form to go to one
also have a service called follow-me where you can add URLs to vodafone live website and have them appear on your mobile
• people want my websites on my phone
• the stats show that web usage has gone up
user agent woes (why change it?)
• decision was made to change user agent for any site that gets transcoded
• because there are more sites that say "you're not IE, you can't have anything" than there are mobile-specific sites
• currently have to send Vodafone an email if you want the transcoder to leave your site alone
• on a personal level that's not a good way to interact with website developers
• on a professional level, we're evaluating the options
• Question: isn't it a paradox, that you support the sites that say "bog off you're not a web browser", and penalise the sites that are making money and doing good mobile work?
• Terence gets down on his knees and promises that he will never hide the user agent again :-)

Mobile Camp London: Mobile Social Networks -- Kwame @ Fjord

Service design leader for Fjord, responsible for rolling out services e.g. Yahoo Go!

Background sociable media
About to start rolling out a mobile social network which is not yet live

Vizster -- visualization of social networks
People becoming aware of the network itself and of its structure

Phone address book is the real social network (is it? surely it's just another model...)
Flash mobs illustrate this -- SMS virally passed on to your friends

Most tools on mobile come from PC downwards
Social tools (voice, text) come from mobile upwards

Augmented reality on groups to provide social introductions
Overlay people with tags of their interests

Buds, 2002
you intersect people all the time, would be nice to get something from that serendipity
coil of surrounding images -- larger areas for longer time over the day

real social networks:
whole groups of people move together so that communication can be maintained
see also Flirtomatic from Fjord (UK's largest virtual flower delivery service... 100m page views last month)

situationists
have routines that we don't change -- lines of flight
very difficult to move people from their current line of flight

gang member gunned down by the police so that they could get his SIM card and thus his contacts...

Mobile Camp London: S60 Web Widgets -- Petro Soininen, Nokia

See the whole presentation here.
  • Nokia providing open source Browser Control so can access web content easily from within Symbian apps
  • Now providing Widget Runtime on top of the Browser Control
  • Widgets run and feel like a native app — appear as application icons in interface
  • Not necessarily dependent on network access
  • Load their own instance of the WebKit engine (though some parts may be shared)
  • One widget displayed at a time (full screen)
  • Widgets can work in landscape or portrait
  • Can be assigned to soft keys or shortcuts on the idle screen
  • No means to save persistent information beyond reboot at the moment
  • Customisable standby screen coming some time next year — and so widgets at idle

Plans for the future:

  • Want to use platform capabilities
  • Location, PIM, media, standby screen, etc
  • Security model is the sticking point at the moment
  • Plans will be communicated next year

Widget internals:

  • Recommended icon for app is 88x88 PNG
  • Folder for widget UI: private/10282822/${Identifier}
  • Info.plist — XML properties file but different properties to a dashboard widget…

How do you update widgets automatically?

  • Can launch normal browser from within a widget and download a new package to install (just like J2ME)

Javascript API

  • setPreferenceForKey / preferenceForKey
  • openApplication(Uid, param)
  • setDisplayLandscape/Portrait
  • setNavigationEnabled — hides/shows cursor
  • onhide / onshow callbacks
  • menu object available to manipulate, with menuItems — allows access to standard S60 device menu
  • system info service API provides access to memory, network, lights, vibration, etc, available as a browser plugin
    • Not supported in standard browser context, only in widget runtime
    • Does provide events — e.g. onchargelevel (don’t know if they fire in the background…)
    • system info API needs to be first embedded object in HTML
    • javascript to access local info needs to be included in widget (not remote)

development process:

  • general development in web browser
  • testing in S60 3rd Edition FP2 emulator (beta ETA first half of October)
  • testing on a real device, need custom firmware for the moment… (Nokia 6292)

installation & packaging:

  • zip package with extension .wgz
  • mime-type: x-nokia-widgets (isn't that missing something?)

misc

  • Nokia use Phone Screen over Bluetooth to demonstrate phone on laptop screen
    • appears different from Devlex PhoneScreen (app on laptop appears to be Java) — has resolution doubler
    • Not available outside of Nokia... :-(
  • Developer Workshop in Finland October 30th (details to be published on forum.nokia.com)

Tuesday, 11 September 2007

Working from home

A much better view than from the office!

Wednesday, 27 June 2007

Running in the clouds in Scotland

Ethan had a great time running down the hill.

Friday, 15 June 2007

Hacklings on the way?

Saw this lorry on the way home this afternoon. Could it be going to Ally Pally?

Scones from New Zealand

Thanks Ruth!

Saturday, 9 June 2007

Rallying

Raising the dust

Rallying

Ready for round two

Rallying

After the first three laps

Rallying

Ready for instruction

Rallying