SlideShare une entreprise Scribd logo
1  sur  74
Télécharger pour lire hors ligne
My predictions interface
                                                                                                                getF ix!
        FanBook
                                                                                       BP (update)?◦      3                     5

                                                                                                                                    rtnF ix?
                                                             open?◦                        dUI
                                                                                                               dUI
              60          5                                                                                                 4
                      5                              0                         1                      2
                                                                                                                     BP (sob)?◦

                                       rtnf ocus!                                                         noMatch
                   30                                                                                                       6
                                                                                                BP (close)?◦
                                                         9                                                addP red!             getMatch
                                                                                   8
                                                             closeApp
              Zippy                                                                                                     7


                                      Fixture server : FS1
                                                getF ix?◦
                                                                 1
                                            0
                                                                         τ

                                            rtnF ix!◦            2


                                      Prediction Server : PS
                                            addData!                     getP red?◦
                                        1
                                                                                            2
                                                             0
                                        addP red?◦                                                getData!

                                                rtnP red!◦
                                                                                            3
                                                                     4
                                                                             rtnData?




A Population Approach to Ubicomp                                                       1




          System Design
                   Matthew Chalmers
Ubiquitous computing

More than just mobile devices...


Systems that fit with context, interaction and activity
   ...which are varied and dynamic in ways difficult to predict



The system is part of the user’s context
   System interactions, and how users are modelled and presented to
   others in them, are resources for new user activity
Ubiquitous computing



A holistic view spanning technology, use and users
   Mark Weiser: The unit of design should be social people, in their
   environment, plus your device

   Robin Milner: Here we look for synergy between the societal vision on
   the one hand, and the development of scientific models and engineering
   principles on the other.
SUMgroup: Social / Ubiquitous / Mobile



Matthew Chalmers, Alistair Morrison, Marek Bell, Scott
Sherwood, Don McMillan
Theory, user experience and system design
Use ‘in the wild’ rather than usability in the lab
A Short History: Treasure
A Short History: Feeding Yoshi
A Short History: EyeSpy
A Short History: Replayer
A Short History: Replayer
A Short History: Replayer
A Short History: Replayer
A Short History: shifting to iPhones
A Short History: shifting to iPhones
Mass participation

‘App Store’ model of distribution a huge success
   More than 10 billion downloads in first 3 years

Ubicomp field trials generally focus on small numbers
of users
Now there’s a potential to reach huge numbers of
users relatively easily
What are the challenges:
   Methodological? Technical? Ethical?
Hungry Yoshi



Our first study exploring app store recruitment model
Comparison with ‘traditional’ ubicomp field trial
Took 2005 Windows Mobile application, reimplemented it
on iOS in 2009
Yoshi (2005)

Scans of WiFi APs

‘Carry’ fruit to Yoshis

Mainly qualitative methods, to study
integration of game into everyday life

Original study was “long-term, wide-
area”

Played over a week, with16 players in
Glasgow, Nottingham and Derby
Yoshi (2009)
Quantitative evaluation
Qualitative evaluation



Qualitative evaluation at a
distance

Task mechanism
   Many types of ‘task’
   Real-time updates
Qualitative evaluation


Over 28,000 responses

Tokens as motivation
      Unrewarded: 11% of
      players
      Rewarded: 19% of players

Players vs. participants
Qualitative evaluation




Facebook integration

Use Facebook mail, forums...
Qualitative evaluation



Telephone interviews
  Offered payment
  A few very keen participants at start, but struggled to get >10

  Self-selection biases, language issues
Quantitative evaluation: SGLog


A generic logging framework with phone and server parts
Log user interactions (button taps, screen changes), and
device/sensor data (accelerometer, WiFi connections)
Write to locally-stored files on device, but opportunistic
uploading to SGLog server over Internet
‘Real-time’ evaluation/monitoring of trial in progress
SGVis: complementary visualisation / analysis desktop tool
Quantitative evaluation: SGVis
Quantitative evaluation


How do we count user numbers for Yoshi?


In Windows Mobile trial : 16 users paid for participation
In iOS trial:
   Download?
   Register for account?
   Play for > x minutes/hours/days?
Quantitative evaluation


How do we count user numbers for Yoshi?
  Downloads: 182,714

  Unique users launching: 98,556
  Users registered: 36,169

  Score points: 4,134

  Played on 5 or more days: 3,080
Quantitative evaluation: SGVis
Quantitative evaluation: SGVis
SGVis: Categorising users
SGVis: Categorising users
SGVis: Categorising users
SGVis: Categorising users




Calculate centroids of each identified cluster
4 categories of users: top players, commuters,
static players, beginners
Categorising users


Targeting evaluation to specific categories
   More effective or efficient evaluation?

Users’ reactions to categorisation
   User feedback may let us understand whether or how it is
   meaningful

   Users may change their behaviour as a result of being categorised?
Categorising users as part of iterative design



Release initial version of app and then loop:
   Use tools to observe usage, analyse patterns and categorise users
   Release optional modules to support observed and requested usage
   of users in specific categories

   Sets of modules may be bundled and named as separate apps to
   support different observed categories of use
The software engineering revolution



Conventional models of the software development process
all claim that “at some point, a product is delivered to a
user community, at which point, for that revision of the
software, the design process is over.”
Paul Dourish
The software engineering revolution



“When we look at an interactive system as an evolving
artifact in use, it follows that the process of design does
not end with the delivery of the system to some
community of users. Instead, it continues as they use and
adapt the system.”
Concept Demonstrator/Evaluation



Initial evaluation via a simple mobile game called Castles
Game chosen because
   Keeps users motivated

   In-depth and intense use stresses system
   Provides an infrastructure suitable for modular architecture
Game Overview


Players construct kingdoms
   Inhabitants
   Resources

   Buildings

   Soldiers

Players may choose to battle
when they are in wi-fi range
Game Overview


Players start with a set of
common modules and a set
unique to them
When players battle:
   histories are exchanged
   recommendations are made

   modules are transferred
Game Overview




After a battle, a player will
be informed if there are
recommendations
Game Overview


Module recommendations
integrated into the building
list
Stars show
recommendation rank
Gray buildings are newly
received modules
Findings


Players progressed more
  rapidly with
  recommendations
Nearly all followed
 recommendations
Modules were spread to
 and used by others
FlexBook
  Mobile social networking app
  Dynamic integration of
  software modules at runtime
   Shared via our “module store”
   server, or ad hoc peer-to-peer

  Reviewing and user feedback
   Implicit logging of use
   Explicit comments and rating
   Shown in app and Facebook
My predictions interface
                                                              getF ix!
                                         BP (update)?◦   3                    5

                                                                                  rtnF ix?
                      open?◦              dUI
                                                             dUI
                                                                          4
              0                  1                  2
                                                                   BP (sob)?◦

 rtnf ocus!                                              noMatch          6
                                              BP (close)?◦


                  9                                      addP red!            getMatch
                                     8
                      closeApp
                                                                      7


Fixture server : FS1
         getF ix?◦
                       1
     0
                           τ
A population approach to ubicomp
system design

Based on mass participation & dynamic software structures


Redefining a fundamental computer science concept: class


A new project, officially starting today
   Two universities, four million pounds, five years, nine people
The population approach



Multiple representations of a software class (or type)


Tools to use, create or adapt these representations


Social interactions and practices involving those tools
The traditional representation



A class is a structure, and all instances conform to it
   Data structure: variables or state

   Code structure: methods, procedures or functions

   These form a structural description of potential behaviour and use
   Assumption: exact match between the structure of the class
   definition, and the structure of each instance
The traditional representation


Tests and changes need only be done on one thing at one time:
the class structure
What’s true for the class is true for the deployed instances


Poor fit with trends such as plug-ins, add-ins, e.g. what is Firefox?
Phones often user-adapted, via App Store, Cydia, Android
Market...
Borrowing from biology: population thinking


A species is a varied and changing population of individuals
   A species may be described by unifying and defining characteristics

   A species is also continually changing and evolving
   Each individual member may differ from others, and variation among
   individuals is natural and vital to adaptation
   The species can also be described by the set of current (or recently
   recorded) members: the aggregate of each individual’s DNA, size,
   colour, shape, etc.
A new representation: population


A class is a varied and changing population of instances
   A class may be described by unifying and defining characteristics

   A class is also continually changing and evolving
   Each individual instance may differ from others, and variation among
   individuals is natural and vital to adaptation
   The class can also be described by the set of current (or recently
   recorded) members: the aggregate of each instance’s structure,
   context, use, etc.
A new representation: a population


Match between class and each instance may vary
  The value of a variable may vary... but also which variables, methods and
  functions make up internal structure



Variation and dynamism mean complexity of design and
analysis
  Probabilistic statements and models instead of simpler discrete ones
Populations: variation and dynamism

What’s true for one instance may not be for another
   90% of unmodified instances crash, but those with module A added
   don’t crash. Overall, 75% of instances crash

Analysis results may be different at different times
   We advertise A and the percentages; a week later only 50% crash

Results for different contexts may differ
   News of module A spreads faster in one country than another, so in
   Spain 25% crash while in the US 60% crash
New tools and new interactions


Analysis of modules, configurations and contexts
  Which configurations and contexts are popular? Which are
  problematic? How are they used? Are there clusters that should be
  separately managed and designed for?

  How does my setup compare to my friends’? Are there configurations
  like my own that doesn’t crash so much? How are they used?

Access to modules and usage data
  May support free dissemination (P2P) or retain a degree of control
  ‘Lead users’ keen to try out new or specially instrumented versions
A third representation: ostension


One or more population members are pointed out as
examples


Many potential ways to make an ostension
  e.g. a category or cluster selected from a population of instances
SGVis: Categorising users
From observed use patterns to software
structure

MapTool is usually run along with DGPSLocationStream
UKTrainSchedule is frequently logged as being used in UK
locations tagged as train station
FestivalEvents and FestivalVenues modules are frequently used
with an unofficial module AlternativeGuideToTheFringe when
the user is in Edinburgh Fringe Festival venues
System design and structure

“An ontology is a formal specification of a shared
conceptualization” Gruber, via SemanticWeb.org


Traditionally, design is about the perfect hierarchical
structure
   One structure for all known uses, contexts and people

   Adaptation is the problem of changing it
System design and structure

Population approach couples process and structure
  Design process in which structure is a resource for use, and in
  which use creates or adapts structure

  Giddens’ duality of structure, Heidegger’s hermeneutic circle

  Adaptation of a structure to new contexts and uses is part of the
  process



A design requirement for ubicomp
Designing for duality of structure

Moving from structure to use is commonplace
   That’s what happens when you compile code and users run it

The trick is how to move back again
   Making code for a class from a set of instances and usage histories



A process that allows for gradual adaptation of a class
   Moving between complementary forms of class definition

   Each move is (or should be) a social interaction
Intension
   A class, compiled to create an executable shared among users

Extension
   the deployed instances, that are adapted by users and which create
   log data shared with evaluators and developers (and other users)

Ostension
   a subset of instances selected by one of these people as particularly
   interesting or useful, and shared among them for comment and use

   analysis to a class signature reflecting ‘family resemblances’ among
   the configurations and logs of that subset
Scenario: FanPhoto

FanPhoto: two core components,
for text and photo sharing
We give it out to 100 people
  and they start using it

We start developing new
modules
  one for sharing data via Facebook
  one for fast compression and sharing of
  text, photos and video via MANETs
Scenario: FanPhoto


A few participants are
interested in new modules              97
   download them and show off      3
   that they are trying them out

Analysts keep track via log
data streaming back
   start to see a new subcluster
   forming
Scenario: FanPhoto

                                   FanPhoto
                                   TextSharing
In the IDE, developers can         PhotoSharing
see the FanPhoto class             FacebookSharing
   Modules used by a minority of   MANETmodule
   users are shown in grey
Scenario: FanPhoto



                                97
After some time,            3
developers and evaluators
meet to play back several
weeks’ use
Scenario: FanPhoto



                                91
After some time,            9
developers and evaluators
meet to play back several
weeks’ use
Scenario: FanPhoto



                            26    51
After some time,             23
developers and evaluators
meet to play back several
weeks’ use
Scenario: FanPhoto
                            FanBook

                                60         5
                                      5
After some time,
developers and evaluators             30
meet to play back several
weeks’ use
Scenario: FanPhoto
                            FanBook

                                60         5
                                      5
After some time,
developers and evaluators             30
meet to play back several
weeks’ use
                                Zippy
Scenario: FanPhoto

A developer sets his
IDE to do automatic
updates
Code defining each                   FanPhoto
new subclass appears
   labelled with users’ and
   analysts’ names
                                FanBook   Zippy
   linked to tools to analyse
   the ostensions that made
   them
Ostension revisited


Most forms of ‘analysis’ afford ostensive definition
   A way to focus on a subset of structures, contexts, uses and users
   e.g. an evaluator’s video of particular users from a system trial, a
   user’s list of friends on Facebook, a developer choosing a name of a
   city to customise design for

Log data allow us to link to the software used
   Extend previous work that links from video to log data
Iterative design at a large scale

1. Development and refinement of tools,
   infrastructure, statistical methods, formal analysis
   methods and theoretical frameworks
2. Initial apps deployed by us to significant numbers of
   people: social networking and games
3. Larger-scale deployments developed/distributed with
   partners: Edinburgh Festivals, Rangers FC and other
   football clubs, Glasgow museums...
4. Go back to step 1 and do it better
A population approach

A combination of theory, design, evaluation and use
   Advances in all four needed for success

A circular process designed for duality of structure
   Change and human agency as essential elements of the process
   Multiple ways of representing a software class

   Tools to use, create or adapt these representations
   Users’, evaluators’ and developers’ social interactions and practices
   involving those tools... that feed back into low-level representations
My predictions interface
                                                                                                      getF ix!
     FanBook
                                                                             BP (update)?◦      3                     5

                                                                                                                          rtnF ix?
                                                   open?◦                        dUI
                                                                                                     dUI
           60          5                                                                                          4
                   5                       0                         1                      2
                                                                                                           BP (sob)?◦

                             rtnf ocus!                                                         noMatch
                30                                                                                                6
                                                                                      BP (close)?◦
                                               9                                                addP red!             getMatch
                                                                         8
                                                   closeApp
           Zippy                                                                                              7


                            Fixture server : FS1
                                      getF ix?◦
                                                       1
                                  0
                                                               τ

                                  rtnF ix!◦            2


                            Prediction Server : PS
                                  addData!                     getP red?◦
                              1
                                                                                  2
                                                   0
                              addP red?◦                                                getData!

                                      rtnP red!◦
                                                                                  3
                                                           4
                                                                   rtnData?




matthew.chalmers@glasgow.ac.uk                                               1




  www.dcs.gla.ac.uk/~matthew

Contenu connexe

Similaire à A Population Approach to Ubicomp Systems Design

Chainer GTC 2016
Chainer GTC 2016Chainer GTC 2016
Chainer GTC 2016Shohei Hido
 
Genome_annotation@BioDec: Python all over the place
Genome_annotation@BioDec: Python all over the placeGenome_annotation@BioDec: Python all over the place
Genome_annotation@BioDec: Python all over the placeBioDec
 
Introduction to Crab - Python Framework for Building Recommender Systems
Introduction to Crab - Python Framework for Building Recommender SystemsIntroduction to Crab - Python Framework for Building Recommender Systems
Introduction to Crab - Python Framework for Building Recommender SystemsMarcel Caraciolo
 
Splunk All the Things: Our First 3 Months Monitoring Web Service APIs - Splun...
Splunk All the Things: Our First 3 Months Monitoring Web Service APIs - Splun...Splunk All the Things: Our First 3 Months Monitoring Web Service APIs - Splun...
Splunk All the Things: Our First 3 Months Monitoring Web Service APIs - Splun...Dan Cundiff
 
World Domination with Pentaho EE?
World Domination with Pentaho EE?World Domination with Pentaho EE?
World Domination with Pentaho EE?Jos van Dongen
 
USUGM 2014 - Dana Vanderwall (Bristol-Myers Squibb): Instant JChem
USUGM 2014 - Dana Vanderwall (Bristol-Myers Squibb): Instant JChem USUGM 2014 - Dana Vanderwall (Bristol-Myers Squibb): Instant JChem
USUGM 2014 - Dana Vanderwall (Bristol-Myers Squibb): Instant JChem ChemAxon
 
RESTFul Services, Does it Matter Anymore?
RESTFul Services, Does it Matter Anymore?RESTFul Services, Does it Matter Anymore?
RESTFul Services, Does it Matter Anymore?Pat Cappelaere
 
Jubatus talk at HadoopSummit 2013
Jubatus talk at HadoopSummit 2013Jubatus talk at HadoopSummit 2013
Jubatus talk at HadoopSummit 2013Preferred Networks
 
Using RIPEstat
Using RIPEstatUsing RIPEstat
Using RIPEstatRIPE NCC
 
LTTng-UST: Efficient System-Wide User-Space Tracing
LTTng-UST: Efficient System-Wide User-Space TracingLTTng-UST: Efficient System-Wide User-Space Tracing
LTTng-UST: Efficient System-Wide User-Space TracingChristian Babeux
 
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Berlin 2017
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Berlin 2017Monitoring Big Data Systems Done "The Simple Way" - Codemotion Berlin 2017
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Berlin 2017Demi Ben-Ari
 
Apache Flink Adoption at Shopify
Apache Flink Adoption at ShopifyApache Flink Adoption at Shopify
Apache Flink Adoption at ShopifyYaroslav Tkachenko
 
Prometheus as exposition format for eBPF programs running on Kubernetes
Prometheus as exposition format for eBPF programs running on KubernetesPrometheus as exposition format for eBPF programs running on Kubernetes
Prometheus as exposition format for eBPF programs running on KubernetesLeonardo Di Donato
 
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...Demi Ben-Ari
 
Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...
Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...
Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...Codemotion
 
RIPE NCC Measurements Tools
RIPE NCC Measurements ToolsRIPE NCC Measurements Tools
RIPE NCC Measurements ToolsRIPE NCC
 
The Next Linux Superpower: eBPF Primer
The Next Linux Superpower: eBPF PrimerThe Next Linux Superpower: eBPF Primer
The Next Linux Superpower: eBPF PrimerSasha Goldshtein
 
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...Codemotion
 
Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...Demi Ben-Ari
 

Similaire à A Population Approach to Ubicomp Systems Design (20)

Chainer GTC 2016
Chainer GTC 2016Chainer GTC 2016
Chainer GTC 2016
 
Genome_annotation@BioDec: Python all over the place
Genome_annotation@BioDec: Python all over the placeGenome_annotation@BioDec: Python all over the place
Genome_annotation@BioDec: Python all over the place
 
Introduction to Crab - Python Framework for Building Recommender Systems
Introduction to Crab - Python Framework for Building Recommender SystemsIntroduction to Crab - Python Framework for Building Recommender Systems
Introduction to Crab - Python Framework for Building Recommender Systems
 
Splunk All the Things: Our First 3 Months Monitoring Web Service APIs - Splun...
Splunk All the Things: Our First 3 Months Monitoring Web Service APIs - Splun...Splunk All the Things: Our First 3 Months Monitoring Web Service APIs - Splun...
Splunk All the Things: Our First 3 Months Monitoring Web Service APIs - Splun...
 
World Domination with Pentaho EE?
World Domination with Pentaho EE?World Domination with Pentaho EE?
World Domination with Pentaho EE?
 
USUGM 2014 - Dana Vanderwall (Bristol-Myers Squibb): Instant JChem
USUGM 2014 - Dana Vanderwall (Bristol-Myers Squibb): Instant JChem USUGM 2014 - Dana Vanderwall (Bristol-Myers Squibb): Instant JChem
USUGM 2014 - Dana Vanderwall (Bristol-Myers Squibb): Instant JChem
 
RESTFul Services, Does it Matter Anymore?
RESTFul Services, Does it Matter Anymore?RESTFul Services, Does it Matter Anymore?
RESTFul Services, Does it Matter Anymore?
 
Jubatus talk at HadoopSummit 2013
Jubatus talk at HadoopSummit 2013Jubatus talk at HadoopSummit 2013
Jubatus talk at HadoopSummit 2013
 
Using RIPEstat
Using RIPEstatUsing RIPEstat
Using RIPEstat
 
20180811 coscup
20180811 coscup20180811 coscup
20180811 coscup
 
LTTng-UST: Efficient System-Wide User-Space Tracing
LTTng-UST: Efficient System-Wide User-Space TracingLTTng-UST: Efficient System-Wide User-Space Tracing
LTTng-UST: Efficient System-Wide User-Space Tracing
 
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Berlin 2017
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Berlin 2017Monitoring Big Data Systems Done "The Simple Way" - Codemotion Berlin 2017
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Berlin 2017
 
Apache Flink Adoption at Shopify
Apache Flink Adoption at ShopifyApache Flink Adoption at Shopify
Apache Flink Adoption at Shopify
 
Prometheus as exposition format for eBPF programs running on Kubernetes
Prometheus as exposition format for eBPF programs running on KubernetesPrometheus as exposition format for eBPF programs running on Kubernetes
Prometheus as exposition format for eBPF programs running on Kubernetes
 
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
 
Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...
Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...
Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...
 
RIPE NCC Measurements Tools
RIPE NCC Measurements ToolsRIPE NCC Measurements Tools
RIPE NCC Measurements Tools
 
The Next Linux Superpower: eBPF Primer
The Next Linux Superpower: eBPF PrimerThe Next Linux Superpower: eBPF Primer
The Next Linux Superpower: eBPF Primer
 
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...
 
Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...
 

Dernier

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 

Dernier (20)

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 

A Population Approach to Ubicomp Systems Design

  • 1. My predictions interface getF ix! FanBook BP (update)?◦ 3 5 rtnF ix? open?◦ dUI dUI 60 5 4 5 0 1 2 BP (sob)?◦ rtnf ocus! noMatch 30 6 BP (close)?◦ 9 addP red! getMatch 8 closeApp Zippy 7 Fixture server : FS1 getF ix?◦ 1 0 τ rtnF ix!◦ 2 Prediction Server : PS addData! getP red?◦ 1 2 0 addP red?◦ getData! rtnP red!◦ 3 4 rtnData? A Population Approach to Ubicomp 1 System Design Matthew Chalmers
  • 2. Ubiquitous computing More than just mobile devices... Systems that fit with context, interaction and activity ...which are varied and dynamic in ways difficult to predict The system is part of the user’s context System interactions, and how users are modelled and presented to others in them, are resources for new user activity
  • 3. Ubiquitous computing A holistic view spanning technology, use and users Mark Weiser: The unit of design should be social people, in their environment, plus your device Robin Milner: Here we look for synergy between the societal vision on the one hand, and the development of scientific models and engineering principles on the other.
  • 4. SUMgroup: Social / Ubiquitous / Mobile Matthew Chalmers, Alistair Morrison, Marek Bell, Scott Sherwood, Don McMillan Theory, user experience and system design Use ‘in the wild’ rather than usability in the lab
  • 5. A Short History: Treasure
  • 6. A Short History: Feeding Yoshi
  • 8. A Short History: Replayer
  • 9. A Short History: Replayer
  • 10. A Short History: Replayer
  • 11. A Short History: Replayer
  • 12. A Short History: shifting to iPhones
  • 13. A Short History: shifting to iPhones
  • 14. Mass participation ‘App Store’ model of distribution a huge success More than 10 billion downloads in first 3 years Ubicomp field trials generally focus on small numbers of users Now there’s a potential to reach huge numbers of users relatively easily What are the challenges: Methodological? Technical? Ethical?
  • 15. Hungry Yoshi Our first study exploring app store recruitment model Comparison with ‘traditional’ ubicomp field trial Took 2005 Windows Mobile application, reimplemented it on iOS in 2009
  • 16. Yoshi (2005) Scans of WiFi APs ‘Carry’ fruit to Yoshis Mainly qualitative methods, to study integration of game into everyday life Original study was “long-term, wide- area” Played over a week, with16 players in Glasgow, Nottingham and Derby
  • 19. Qualitative evaluation Qualitative evaluation at a distance Task mechanism Many types of ‘task’ Real-time updates
  • 20. Qualitative evaluation Over 28,000 responses Tokens as motivation Unrewarded: 11% of players Rewarded: 19% of players Players vs. participants
  • 22. Qualitative evaluation Telephone interviews Offered payment A few very keen participants at start, but struggled to get >10 Self-selection biases, language issues
  • 23. Quantitative evaluation: SGLog A generic logging framework with phone and server parts Log user interactions (button taps, screen changes), and device/sensor data (accelerometer, WiFi connections) Write to locally-stored files on device, but opportunistic uploading to SGLog server over Internet ‘Real-time’ evaluation/monitoring of trial in progress SGVis: complementary visualisation / analysis desktop tool
  • 25. Quantitative evaluation How do we count user numbers for Yoshi? In Windows Mobile trial : 16 users paid for participation In iOS trial: Download? Register for account? Play for > x minutes/hours/days?
  • 26. Quantitative evaluation How do we count user numbers for Yoshi? Downloads: 182,714 Unique users launching: 98,556 Users registered: 36,169 Score points: 4,134 Played on 5 or more days: 3,080
  • 32. SGVis: Categorising users Calculate centroids of each identified cluster 4 categories of users: top players, commuters, static players, beginners
  • 33. Categorising users Targeting evaluation to specific categories More effective or efficient evaluation? Users’ reactions to categorisation User feedback may let us understand whether or how it is meaningful Users may change their behaviour as a result of being categorised?
  • 34. Categorising users as part of iterative design Release initial version of app and then loop: Use tools to observe usage, analyse patterns and categorise users Release optional modules to support observed and requested usage of users in specific categories Sets of modules may be bundled and named as separate apps to support different observed categories of use
  • 35. The software engineering revolution Conventional models of the software development process all claim that “at some point, a product is delivered to a user community, at which point, for that revision of the software, the design process is over.” Paul Dourish
  • 36. The software engineering revolution “When we look at an interactive system as an evolving artifact in use, it follows that the process of design does not end with the delivery of the system to some community of users. Instead, it continues as they use and adapt the system.”
  • 37. Concept Demonstrator/Evaluation Initial evaluation via a simple mobile game called Castles Game chosen because Keeps users motivated In-depth and intense use stresses system Provides an infrastructure suitable for modular architecture
  • 38. Game Overview Players construct kingdoms Inhabitants Resources Buildings Soldiers Players may choose to battle when they are in wi-fi range
  • 39. Game Overview Players start with a set of common modules and a set unique to them When players battle: histories are exchanged recommendations are made modules are transferred
  • 40. Game Overview After a battle, a player will be informed if there are recommendations
  • 41. Game Overview Module recommendations integrated into the building list Stars show recommendation rank Gray buildings are newly received modules
  • 42. Findings Players progressed more rapidly with recommendations Nearly all followed recommendations Modules were spread to and used by others
  • 43. FlexBook Mobile social networking app Dynamic integration of software modules at runtime Shared via our “module store” server, or ad hoc peer-to-peer Reviewing and user feedback Implicit logging of use Explicit comments and rating Shown in app and Facebook
  • 44. My predictions interface getF ix! BP (update)?◦ 3 5 rtnF ix? open?◦ dUI dUI 4 0 1 2 BP (sob)?◦ rtnf ocus! noMatch 6 BP (close)?◦ 9 addP red! getMatch 8 closeApp 7 Fixture server : FS1 getF ix?◦ 1 0 τ
  • 45. A population approach to ubicomp system design Based on mass participation & dynamic software structures Redefining a fundamental computer science concept: class A new project, officially starting today Two universities, four million pounds, five years, nine people
  • 46. The population approach Multiple representations of a software class (or type) Tools to use, create or adapt these representations Social interactions and practices involving those tools
  • 47. The traditional representation A class is a structure, and all instances conform to it Data structure: variables or state Code structure: methods, procedures or functions These form a structural description of potential behaviour and use Assumption: exact match between the structure of the class definition, and the structure of each instance
  • 48. The traditional representation Tests and changes need only be done on one thing at one time: the class structure What’s true for the class is true for the deployed instances Poor fit with trends such as plug-ins, add-ins, e.g. what is Firefox? Phones often user-adapted, via App Store, Cydia, Android Market...
  • 49. Borrowing from biology: population thinking A species is a varied and changing population of individuals A species may be described by unifying and defining characteristics A species is also continually changing and evolving Each individual member may differ from others, and variation among individuals is natural and vital to adaptation The species can also be described by the set of current (or recently recorded) members: the aggregate of each individual’s DNA, size, colour, shape, etc.
  • 50. A new representation: population A class is a varied and changing population of instances A class may be described by unifying and defining characteristics A class is also continually changing and evolving Each individual instance may differ from others, and variation among individuals is natural and vital to adaptation The class can also be described by the set of current (or recently recorded) members: the aggregate of each instance’s structure, context, use, etc.
  • 51. A new representation: a population Match between class and each instance may vary The value of a variable may vary... but also which variables, methods and functions make up internal structure Variation and dynamism mean complexity of design and analysis Probabilistic statements and models instead of simpler discrete ones
  • 52. Populations: variation and dynamism What’s true for one instance may not be for another 90% of unmodified instances crash, but those with module A added don’t crash. Overall, 75% of instances crash Analysis results may be different at different times We advertise A and the percentages; a week later only 50% crash Results for different contexts may differ News of module A spreads faster in one country than another, so in Spain 25% crash while in the US 60% crash
  • 53. New tools and new interactions Analysis of modules, configurations and contexts Which configurations and contexts are popular? Which are problematic? How are they used? Are there clusters that should be separately managed and designed for? How does my setup compare to my friends’? Are there configurations like my own that doesn’t crash so much? How are they used? Access to modules and usage data May support free dissemination (P2P) or retain a degree of control ‘Lead users’ keen to try out new or specially instrumented versions
  • 54. A third representation: ostension One or more population members are pointed out as examples Many potential ways to make an ostension e.g. a category or cluster selected from a population of instances
  • 56. From observed use patterns to software structure MapTool is usually run along with DGPSLocationStream UKTrainSchedule is frequently logged as being used in UK locations tagged as train station FestivalEvents and FestivalVenues modules are frequently used with an unofficial module AlternativeGuideToTheFringe when the user is in Edinburgh Fringe Festival venues
  • 57. System design and structure “An ontology is a formal specification of a shared conceptualization” Gruber, via SemanticWeb.org Traditionally, design is about the perfect hierarchical structure One structure for all known uses, contexts and people Adaptation is the problem of changing it
  • 58. System design and structure Population approach couples process and structure Design process in which structure is a resource for use, and in which use creates or adapts structure Giddens’ duality of structure, Heidegger’s hermeneutic circle Adaptation of a structure to new contexts and uses is part of the process A design requirement for ubicomp
  • 59. Designing for duality of structure Moving from structure to use is commonplace That’s what happens when you compile code and users run it The trick is how to move back again Making code for a class from a set of instances and usage histories A process that allows for gradual adaptation of a class Moving between complementary forms of class definition Each move is (or should be) a social interaction
  • 60. Intension A class, compiled to create an executable shared among users Extension the deployed instances, that are adapted by users and which create log data shared with evaluators and developers (and other users) Ostension a subset of instances selected by one of these people as particularly interesting or useful, and shared among them for comment and use analysis to a class signature reflecting ‘family resemblances’ among the configurations and logs of that subset
  • 61. Scenario: FanPhoto FanPhoto: two core components, for text and photo sharing We give it out to 100 people and they start using it We start developing new modules one for sharing data via Facebook one for fast compression and sharing of text, photos and video via MANETs
  • 62. Scenario: FanPhoto A few participants are interested in new modules 97 download them and show off 3 that they are trying them out Analysts keep track via log data streaming back start to see a new subcluster forming
  • 63. Scenario: FanPhoto FanPhoto TextSharing In the IDE, developers can PhotoSharing see the FanPhoto class FacebookSharing Modules used by a minority of MANETmodule users are shown in grey
  • 64. Scenario: FanPhoto 97 After some time, 3 developers and evaluators meet to play back several weeks’ use
  • 65. Scenario: FanPhoto 91 After some time, 9 developers and evaluators meet to play back several weeks’ use
  • 66. Scenario: FanPhoto 26 51 After some time, 23 developers and evaluators meet to play back several weeks’ use
  • 67. Scenario: FanPhoto FanBook 60 5 5 After some time, developers and evaluators 30 meet to play back several weeks’ use
  • 68. Scenario: FanPhoto FanBook 60 5 5 After some time, developers and evaluators 30 meet to play back several weeks’ use Zippy
  • 69. Scenario: FanPhoto A developer sets his IDE to do automatic updates Code defining each FanPhoto new subclass appears labelled with users’ and analysts’ names FanBook Zippy linked to tools to analyse the ostensions that made them
  • 70. Ostension revisited Most forms of ‘analysis’ afford ostensive definition A way to focus on a subset of structures, contexts, uses and users e.g. an evaluator’s video of particular users from a system trial, a user’s list of friends on Facebook, a developer choosing a name of a city to customise design for Log data allow us to link to the software used Extend previous work that links from video to log data
  • 71.
  • 72. Iterative design at a large scale 1. Development and refinement of tools, infrastructure, statistical methods, formal analysis methods and theoretical frameworks 2. Initial apps deployed by us to significant numbers of people: social networking and games 3. Larger-scale deployments developed/distributed with partners: Edinburgh Festivals, Rangers FC and other football clubs, Glasgow museums... 4. Go back to step 1 and do it better
  • 73. A population approach A combination of theory, design, evaluation and use Advances in all four needed for success A circular process designed for duality of structure Change and human agency as essential elements of the process Multiple ways of representing a software class Tools to use, create or adapt these representations Users’, evaluators’ and developers’ social interactions and practices involving those tools... that feed back into low-level representations
  • 74. My predictions interface getF ix! FanBook BP (update)?◦ 3 5 rtnF ix? open?◦ dUI dUI 60 5 4 5 0 1 2 BP (sob)?◦ rtnf ocus! noMatch 30 6 BP (close)?◦ 9 addP red! getMatch 8 closeApp Zippy 7 Fixture server : FS1 getF ix?◦ 1 0 τ rtnF ix!◦ 2 Prediction Server : PS addData! getP red?◦ 1 2 0 addP red?◦ getData! rtnP red!◦ 3 4 rtnData? matthew.chalmers@glasgow.ac.uk 1 www.dcs.gla.ac.uk/~matthew