Ways we screwed up:
Didn't agree on research questions beforehand so when we talked to people in parallel fashion, we explored different topics (yay data that's hard to affinity group), e.g. one of us talked to people about how they share projects, and someone else did how people who use location services, and someone else asked specifically about a keyholding (indicating when rooms useful to multiple people, that only some people have open/close access to, are open) app
I wrote summaries of each of my question instead of interesting quotes
MITERS survey summary
(talked to four people over an hour)
(# of people)
- IRC used by two people for instant help
- posting pics to facebook as project sharing (2)
- facebook, forums, only give superficial "that's cool" feedback when post pics (3)
- users from hackaday gave more technical questions which ___ liked
- email pictures to parents when major milestone, talk to them on phone (1)
- find out about projects via facebook (2 people)
- find out via google reader, blogs (1)
- take pics with smartphone and instantly upload (1)
- get camera out and upload to blogger, post ~2x/wk (1)
- reddit sometimes discover projects (2)
- call mom and talk about projects (1)
- no good way to collaborate on engineering projects currently, solidworks not in cloud (1)
- most of them project sharing in person at MITERS see what people are up to (4)
- ask for help from people at MITERS if around (4)
My notes from class:
typical study, 1500 to 2500 notes
this week: go from data to project (project due in 2 weeks)
contextual design --> how things flow between people, spaces. how to understand reactions. how to figure out bottlenecks. physical medium, information flow
Flow model - for music. (cds, cars, work, homes). Info flow: who talk to (significant others, not so much family members)
Conversation analysis -- text logs starts and ends, requests. weilenmann -- a paper. not allowed to call in fitting room - but perhaps texting would be okay.
crit incident analysis - used in usability analysis of existing products, or when beta
focus: grounded affinity analysis to organize large amounts qualitative data. Not! to prove / disprove theories. (because only talk to 3 or 5 people). design something to work with what i've observed for these datapoints.
affinity can be very large -- covering walls of room. 2500 sticky notes.
affinity -- a hierarchy - raw data, exact quotes/observations, photos,
Find similar problems -> group and label. Then group again.
Comes from science - hard to know all the hypothesis before in field. so instead bottom up, collect lots of data and then develop theories.
Each note -- 1 or 2 sentences, single idea.
Not problem for us, but in large groups -- hard to find notes! know it exist but in 1000...
colleague -- camera + projector -> talk and it will highlight on wall where note is (search text)
Themes -- common terms, often exact quotes useful b/c that's the order they have to think about it today
In lab / research --> try to get diverse team (marketing, biz, research, engineers, designers) because each person approach data differently. 4 to 5, 6 max.
Think about research questions when starting out
And how perspectives might bias our interpretation (if already have idea of what want to build)
Read note aloud so everyone knows and agrees what sort of groupings
GT Data can be used for years and years -- public in academic so people can use it.
BH standard in industry -- miss a lot of what's going on if just grouping own insights instead of actual data quotes\
New concepts -- quantity over quality (for us, 30 mins affinity, then 10 15 mins throw out ideas)
2500 data points
How to prioritize? e.g.
- excited about idea (spend next 10-12 weeks on this!)
- market size, will people pay for it / monetizable?
- can build in scope of class
break after 40 minutes regroup
all communication done with intents (processes are isolated)
apk - essentially a jar file for each app
content provider -- access contacts (through urls like rest services)
multiple activities per application
manifest file describes whole application -- which activity start by default, which permissions (sensitive apis e.g. mic, video, phone, sms) will be used --> a way for developer to state to user what things will be done.
default activities take up full screen but can have floating / embedded within other apps
services -- spawn thread to not block UI (so run in background). Start it as sticky -- otherwise android will start kill apps when memory use too much, services are one of first thing -- will know to restart app as soon as memory available)
Intents -- one of coolest things on Android. glue between activities.
-- define abstract "I want to send this" and can open up UI menu --> user chooses how to fill the intent (all those apps have registered that they can "share a photo")
safest way -- stick with android sdk platform menus.
Design philosophy -- generic system level intents (share a photo) and any app that can handle it registers to do so
action_view -> launch browser or contact (e.g. 1st contact in contact list, REST services)
Debugging --> bring up chart to refer to lifecycle of activity
Activity priority list --> mobile still resource constrained. kill from bottom up -> hopefully foreground process (actual interact) not killed. hopefully not memory constrained (a lot of memory now on android devices).
Android Eclipse nice graphical to create layouts. res > xml for each activity in app. And nice graphical interface. Tab on bottom to go to xml file (change default names from button1,2,3 etc, tweak by fine degrees)
graphcontent -> as big as need to. fillparent --> as big as possible.
all things need height and width.
r.java searches "layout" source folder (the "xml" source folder is app specific to helloIOIO)
-> android creates R.java, automatically create constants for everything in xml file. Thus, get in .java "findViewById(R.id.test_button")
easiest way --> email apk, on phone "install" button pops up
ddms -> screenshots
very latest ice cream sandwich --> also key combination for screenshots
iOS --> will need paid Apple Developer account, even to install on own device.
Treat "warnings" very seriously --> in c/c++ it is equivalent of error. syntax is almost LISP like
View controller has history of all windows -> android easy go one back, ios straightforward go back one or two or all the way to the beginning.
Background --> now can run in background.
ObjectiveC --> get used to long names (some 10 or 12 words long!)
Apps suspended when needed.
iPhone resource -> specifics, see links from a few years ago.
Solidify design idea into application concept.
Class website -> reference existing things. Also, ACM library -> how are we different from what's out there.
23 groups -> everyone go fast.
Set up development environment (hello world) so not held back later.
Proposal -> concise and not great literature, but rather (all the time to raise money for research group in real life).
and we know how to answer it
no one really likes to read these things! Giant stack to work through! >:(
- really irritating to read ones where not to the point
- Main idea in first sentence
- active verbs, use paragraphs, not "we we we" first word, use headings and subheadings (skimmable for navigational / outline)
- Introduction -> direct motivation
- not beginning of time "man has wanted to fly. structures are important to engineers"
- Gantt --> how to manage time! very short.
- Motivation --> summarize qualitative data collection. themes to design idea? how does app fit with data and themes? our methods? (to evaluate our study and data analysis) --> using inspiration from real people to fit into everyday life.
- three emails, PDF and one hard copy. meet face to face.
Oral --> document it all on wiki (from single computer). Top two main findings from study. components needed (a server? app? face rec library? bar code reading?). Timer exactly 4 minutes, and unpresented = cannot grade on it. Everyone should present it / contribute it.
Hello world assignment.
Continually engage with users to refine idea.