Thursday, November 19, 2009

Monday, November 16, 2009

Assorted mobile web notes

Another assorted collecction of notes from some old notebooks - including some from Mobile Web 2.0 Summit.

mobile: point of inspiration & entertainment & need
users value dependent on relationship with other users
value in getting data from device
* combine knowledge of users across different screens
valuable data can't easily be replicated/recreated
who owns data? - Key Q

Monetisation is complex
- getting the right, loyal customers
contextual advertising doesn't work in socail media
value is in context + contacts
target people, not content/context
profile based on demographics/behaviour/social interaction
how to calcualte the value of mobile marketing?
Privacy - users must be able to utilise data themselves

1 billion people own a Nokia phone
Nokia make - 450M devices a year / 15 per second
1/2 sale price goes on R&D (£6B) - Europes largest - workd 3rd largest researchers
Devices are all alike - what it does for the user is the differentiator
unlimited is the key to packaging services
Nokia want mobile web browsing at same speed as desktop
- Users want it now
Must make service work across devices

The real battle for real estate is in users pockets!

Users expet the ability to do desktop stuff on mobiles
Younger people want more from/on mobiles
make it REALLY easy for uesrs to do things

people communicate with those closer to them with their mobile.
- content changes in context

people would do more on mobile if it was faster

Most important features on mobile:
1. Internet
2. SMS
3. voice

targeting marketing based on device > which are targetted at demographics

users want to buy via operator portal as they trust it

mobile apps for social networks
- 2 times as often
- 4 times the page view

Make advertising/marketing social graph friendly

apps are hard to change - the web is easy

massive users volumes only come from operator portals

focus on what is key of service - not the platform optimising for.

UX is harder to get right - 10x harder on mobile (as screen is 10x smaller?)

software is the future of differentiation
- software will become key for operators

optimising for more powerful devices is likley to become an issue in the near future.

75% of Africans will never have a PC!
Businesses, not consumers willing to pay for content when consumer has very low disposable income.

turn customers into fans

reexamine business practices - don't just evolve

web browser as runtime
- reuse web developers skills for mobile.
mobile web - moving to apps, not just pages

widgets at epicenter of mobile and web convergence
widgets -for social applications(?)

do we need standards? - who benefits?

 You don't have to be a destination - e.g. Twitter.

Turn users ito a community:
- Engage - reason
- Content - useful or entertaining
- Convergence - acknowledge cahnges in user behaviour
- Loyalty - GREAT experience
- Analytics - Use them - to understand audience need.

"digital" connecting web & mobile.

lots of scope for sponsored experiences/apps
mobile advertising has little opportunity to do big things
where's the value of ads in social networks where content has little or no value.

need for local/regional/national variations of global systems
- things won't be the same across cultures but may be able to learn something

league tables as loyalty drivers
Get users doing something, not just watching
realtime feedback enhances participation
showing location of other users  builds community & loyalty
people want to be part of something - don't need to have a conversation
everyone likes to play - "underappreciation of frivolity"

the thing people want to do mpost with their phones is communicate
8 year mobile adoption curve
netbook as biggest mobile web usage device
mobile - a world of fads

communities may/can/do live longer thna the event/product/property they were created for

make payment simple - tightly integrate with app store / payment channel

will governments end up paying for essential infrastructure?
- if no long term business model to provide it at a price people are willing to pay
- would we want that?

captured informaiton is enriched by knowledge of context

look at web and mobility at the same time

charge for more than just the web - depth of network interaction

converged address book =? defacto social network

where data is physically located affects legal access to that data

open not necessarily free

Digital dividend - mobile opportunity based on digital divide

smart objects

devices drive everything!!
people will pay for
- new types of devices
- deep integration of services

customers understand and will pay for services

use of web as a platform is accelerating
browser as client for the cloud

OS not a differentiator

dConstruct notes

Just been going through some docs and found my notes from dConstruct.

Please be aware that this is unlikely to be of use or interest to anyone but me.

Elements of a Networked Urbanism
People blame themselves - when usability is poor.
Ubiquitous computing - the future!?
Networked urbanism - but surely not everywhere?!
sustainability - empowerment - privacy
City: "a layered representation of experiences over time"
More than half the world live in cities (including slums & favelas)
squallor & vitality
Component / Resource
- Everything: addressable -> queryable -> scriptable
Consistent / Variable
- static > fluid
Latent / Explicit
- information revealed/available:
-- now actionable responses
-- know more than you want to?
Browse / Search
- choice drives option
-- less happenstance/chance
-- removing personal/local/insider knowledge
-- democratization of information
-- expertise becomes harder
Held / Shared
- possibly easier
- contribute back
Expiring / Persistent
- history reamins and becomes available in new ways
- including new levels of personal information
-- personal reinvention becomes harder
Deferred / Real Time
Passive / Interactive
Wayfinding / Wayshowing
Object / Service
- improved utalization of objects
- increased abstraction
Vehicle / Mobility
Ownership / Use
- change in understanding of consumerism
Schelling / Schoaling
- location of common meeting / soft appointment place/time
Community / Network
- changes in level of minimal acquaintance
- society & community based on levels of not knowing
- association by choice / association of circumstance
-- speed of change
-- changing what don't understand
-- what don't understand (almost certainly more than you realise!)
Consumer / Constituent
- Variation
- require: sensitivity/intelligence/tact
Privacy of information
Serendipity is good - you don't want to remove it

Let's See What We Can See (Everybody Online And Looking Good)
Show you/user and others on a map
- creating a virtual community is a good thing
Social is more important than visual (MySpace?)
- Importance
- Popularity
- Relationship
Holisitc views / Peripheral viewing
Include textual representation of what is being shown
Highlight specific information amongst complex screens
From language to behaviour
- experiencing daat
A physics of information
- applying a dynamic display
- visual models
Indicate possibility
- "sculpt the data into the statue of your choice"
Tuning in patterns
- one input/experience triggering memory of another
Medium = message - depending on representation

What’s Next? How mobile is changing design 
What is our perception of the future?
- Influence
- Bias
- everything is touch
GenY - do things collectively
Mobile generation = born after '91
- have greatest buying power
iPhone - fastest consumer ramp up since DVDs
Touch - 4th largest OS (by popularity)
WebKit - 95% of devices accessing the web
Universal language: HTML + CSS + JS + APIs
Are we already designing for the web of tomorrow?
AppStores - more iPhone apps than Mac apps
Mobile apps are now moving to the desktop (Tweetie)
Constraints of mobile design - lead to greater focus
Design for medium or context?
Context = circumstance/settings
The era of single context web is over
web widgets on TVs
Neurolinguistic programming
Design is a multifaceted experience
what's next?
- anything
- everything
The future will come from investments made in mobile today!
people/user driven
We are the gatekeepers to the information age
portable + personal + always connected
- collaboration
-(-) "we already know the answer"!

Make It So: Learning From SciFi Interfaces
research behind anthromorphism attempts in software
sound is enought to represent something
- audio interfaces
- can create empathy/emotion with sound
behaviour good - likeness better
- giving more than expect
representaiton embodies/implies additional information
constraints ease learning curves
Inputs should know affected stated
- don't respond to something unusual when users wouldn't really want you too

Loving Your Player with Juicy Feedback
Aiming for desirable emotional response
emotional investment
challenge - fellowship
Perception of achievability
Mechanics -> dynamics -> Aesthetics
meaningful activities
avoid clutter
create iteration
avoid feature driven design
Don't fix what isn;t broken
QWAN - Quality Without A Name
- constant feedback
- No goal (task)
- Responsive audio feedback
- Aim to produce an emotional response from user
Bubble wrap
Make user care and think it's cool.
Not for it's own sake (feature)
Interpreting more than what's shown
remove arbitrary constraints

Experience and the Emotion Commotion
It's often counter intuitive
Play - in everything(?)
Experience v object
Dialectic - no dualism
embedded intelligence in objeccts
embedded emotion in objects
simple questions = complex answers (& vice versa)
emotion = a mental reaction to physical experience/responses
system output > user input

Materialising and Dematerialising A Web of Data. (Or What We’ve Learned From Printing The Internet Out)
"the front of the train is less crowded"
post digital
real objects - digital identities
beyond digital infatuation & analogue nostalgia
"things I would rather read on paper"
new combination of existing things = all new things
victory/success is a dnagerous thing
screens are a cliche
are we just solving the problems we are causing?
- what about entirely new things?
stuff takes up space and is expensive to move
physical things have more importance

Thursday, November 12, 2009

Everyware: Adam Greenfield

 A few quotes and notes that caught my attention while reading "Everyware: The dawning age of ubiquitous computing".  I was inspired to finally get this after hearing Adam speak at dConstruct earlier this year.

Present IT development practices as applied to everyware will result in unacceptably bad user experience.

"If computers are everywhere they had better stay out of the way."

Build it as safe as you can, and build in all the safeguards to personal values that you can imagine.

"in dreams begin responsibilities."

It will not be sufficient simply to say, "First, do no harm."

We're not very good at doing "smart" yet, and we may never be.

"some problems routinely put forward [in ubicomp] are actually AI-hard."

Ubiquitous systems must default to a mode that ensures users' physical, psychic, and financial safety.

ubiquitous systems must not introduce undue complications into ordinary operations.

Tuesday, November 03, 2009

WMRM DisableOnClockRollback

I've been working on a project which involves using Windows Media Rights Manager (WMRM) Digital Rights Management (DRM).  As part of that project I have been applying rights to specific content (movies in this case)to meet the rules specified by the client.

Unfortunately I was receiving an error and searching on the error message returned exactly no hits.

{"Error HRESULT E_FAIL has been returned from a call to a COM component."}

at WMRMOBJSLib.WMRMRightsClass.set_DisableOnClockRollback(Int32 pVal)

In case anyone else runs in to this in the future, here's what the bug actually was.

I was setting a DisableOnClockRollback value of true, but was getting the error when I did so.  A short MSDN search later and and I found In it is the line:

This property works only if you have set an expiration date first.

That'll be the problem then.

DevDays CountDown App: My Analysis

I promise, this'll be the last time* I post about my DevDays CountDown App.

Now it's all over, it seems a suitable time to do some analysis:
  • Why did I write it?
  • Why did it get picked?
  • What helped me develop the application?
  • What did I learn from the process?
  • What would I do differently next time?

Why did I write it?
 A few reasons:
  • I thought it'd be cool to write an app that got used in quite a cool, high profile event.
  • I had an idea that I thought was quite good.
  • I thought it'd be a good opportunity to build some experience with WPF and particularly with WPF animation.
  • To prove to myself that I was able to produce a good piece of software that meets a clients requirements.

Why did it get picked?
"... because of the twitterfeed and because the graphics are actually appropriate"
I think there are several reasons:
  • Because I actually produced something that met the requirements. - I was surprised by the number of entries that didn't. (Users won't [usually] use[/buy] a product that doesn't meet their needs.)
  • Because I actually delivered something. - There were a lot of comments from people who said they were working on something but never posted anything. (There's no reward for not showing up.)
  • Because the graphics were appropriate. - While I also had some novel. alternative, ideas I knew these wouldn't tie in with the StackOverflow or DevDays brands. (A bit of marketing knowledge helps in software development.)
  • Because I did more than was asked. - The twitter element wasn't part of the original requirements. (Having something unique is always a good selling point.)

What helped me develop this application?
  • I made sure I understood what was wanted. - I read the requirements thoroughly. I asked questions and madde sure I understood the answers. I read other people's questions and answers.
  • I understood the domain. - I go to quite a few conferences and am keen on understanding their organisation and how they are put together. (This partly ties in with my experiences of organising DevEvening.) Knowing the application domain is essential to good software development!
  • I've seen lots of different ways twitter has been used at conferences and other comparable events. - This guided how I incorporated the twitter element.
  • I have a desire to only do things well, or not at all. - Loads of people can do average. Fewer people will put in more effort to make something really refined and polished. - Good enough isn't good enough!
  • I focused on my strengths, not my design skills. - By basing the design on an existing layout, colour scheme and images.

What did I learn from the process?
  • Make the first user experience great. Optimise for it. (User input handling wasn't brilliant in the first version.)
  • Visually stunning (slick?!) and different is good for creating a good first impression. Animation is a good way of adding something new, different and visually appealing to traditional desktop apps.
  • Make user input handling really solid, smart and tolerant.
  • People love seeing their own contribution/thoughts (tweets) on screen.
  • TweetSharp is cool (despite a few temporary problems) and fluent interfaces are really nice to use. 
  • There are a lot of ways user input can get into an application. Consider all of them and 3rd party libraries and APIs as external input and treat them with caution.

What would I do differently in the future?
  • Better caching of tweets retrieved from the twitter API. So can download many at once and then stagger their display.
  • Better error logging. - Currently swallowing quite a few exceptions with no logging. - It didn't really matter for this case but could help with debugging.
  • Better messages to display if no new tweets to show.
  • Add unique images for fake tweets.
  • Add processing rules for tweet inclusion. Possibilities to consider would include: ignoring retweets; profanity filtering; spam detection and ignoring.
  • Ability to play music?
  • Better validation of all input.

Right. Must be time to go back to some of my other projects.

*This year! - who knows about the future.

Monday, November 02, 2009

Getting IIS6 working in 32bit mode on a 64bit machine

I had a server up and running hosting various sites.  One of those sites needed to be able to apply DRM wrapping to movies (WMV) files.

Unfortunately the DRM libraries are only available in 32bit versions and it's not possible to call 32bit DLLs from 64 bit processes.  The way round this is to have IIS run in 32 bit mode.

The same applies if  needing to reference any other 32 bit DLLs ffrom 64 bit ASP.NET/IIS.

Based on what I read on the internets, making this change should be quite straight forward.  Despite all the instructions on the web saying ti was just one script to run to make this change I found that more needed to be done.  Incase anyone else has the same problem, here's what I did to get it working.

Uninstall the 64bit version of ASP.NET 2.0.
c:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -u

Configure IIS to run in WOW64 mode.
cscript.exe C:\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1

Install 32bit version of ASP.NET 2.0
c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i

Enable 32bit version of ASP.NET 2.0 in IIS WebService Extensions

Recreate the existing websites in IIS using same setings as before.  This will use the 32bit versions of ISAPI extension executables, etc.  I tried changing these manually but that didn't seem to be enough.  I assume that there's more to change than I'm aware of. Recreating the web site takes care of all that for me.


IIS is all or nothing when it comes to using the 32 or 64 bit version.  Yes this meant that all websites on that server needed to be changed to run at 32 bit.  We therefore lose the benefits of the 64bit OS.  If the site becomes as big as the client is hoping we'll move the site doing the DRM wrapping to a different box and put everything back to 64bit so we can make the most of the 12GB of memory installed.