These are the notes I’ve taken during the tutorials on the first day of the 2006 edition of the O’Reilly European Open Source Convention (better known as EuroOSCON 2006).
You can get to the index page for my notes on this conference here.
Tutorial - Datawarehousing with MySQL
Speaker: John Paul Ashenfelter
Presentation notes
-
It is mandatory to talk to everyone involved and make them agree (or at least understand what they consider) to the common terms. Each person may have a different idea of what something like an “order” means. You must make them agree to a single, common definition.
-
Metadata is king!
-
Most of the work is business stuff, not technical…
-
Dimension tables may be huge (as in tens or maybe even more than 100 columns). This is normal even if it feels really wrong to the database guy in us and the benefits are worth it. In this case “redundant is good”.
-
Federated tables exist since MySQL 5.0.3 and provide “link”-like access between tables.
-
“Archive” table type (engine ?) compresses the data on the fly with zlib. It is extremely bad for data warehousing usage because every search implies a full-table scan as there it implements no indexes.
-
UUID() function - may be used instead of a simple sequence and generates universally unique IDs.
-
PostgreSQL has an OLAP engine (table type?) and so it may be more interesting than MySQL for some types of usage.
Tutorial - Creating Passionate Users
Speaker: Kathy Sierra
What is a passionate user and why does it matter?
-
People are only passionate if they are really good at it. Passion creates a higher resolution experience (passionate people experience things much deeper and get a whole lot more out of things they’re passionate about)
-
The goal: try to get the users through the following milestones as fast as possible: beginner (sucks), regular (OK), expert (passionate, high-resolution experience). One big problem is that regular users tend to stay there, tend not to upgrade (makes them get back in the beginner “suck” zone) and companies tend to think it is OK to have most users as regular users
-
People are/become passionate about the goal (making images, skiing, …), not the tool (photoshop, the skis, …). “What can I do with this” vs “How do I use this”
-
Creating passionate users does not necessarily mean that you mak them kick ass in your product. You can teach/help them get better at something tangentially related to your product and if they get really good at it, they’ll end up being passionate about your product. See “Misattribution of arousal” (the brain relates a good/bad feeling to everything that’s related to the experience –the whole context– not just to the thing/action itself)
What is in the way?
-
The brain’s irracional “crap filter” still thinks that things like programming languages, subjects, etc are really not important, for it the really important things are saving our live from tigers or reproducing.
- What does the brain care about?
- Anything unexpected
- Anything not quite right
- Anything different
- Anything scary
- Anything exhilarating (either if we’re doing it or just watching)
- Beauty
- Young/innocent/helpless
- Playing
- Faces (especially reactions)
- Unresolved situations (curiosity)
- What does the brain not care and forget?
- Anxiety/stress
-
So you have to link things that the brain cares about to the things you want it to pay attention to
- Simple example: “conversational beats formal” every time! Why? There is no definite answer to that question yet, but the current hypothesis is that when the tone is conversational the brain is tricked into thinking that he is taking part in a conversation and he is wired to participate in it and so it pays attention
How do we do that?
-
You need to talk to the brain, not just the mind
-
Create a compelling “vision” for what it will feel like when the user is kicking ass in it’s activity. “Why is it worth going through the pain of being a novice and regular user until I get to expert user?”. Before the user uses the product he must know why that is cool
-
Is there a clear path to being an expert user? Are we helping them getting there? Do they see that there is a path and a way?
-
“Why?”, “Who cares?” “So what?”: when you answer all those questions you can answer your user’s questions about why they should use your application/product
-
Documentation and information transference:
- You can give either facts, information or understanding, but not all three at once!
- Words + Pictures > Words
- …
Who can help you help your users learn?
- Communities
Keeping users engaged
-
If users are to become power users then they have to stay with it. We must try to keep them interested, get them and keep them as much as possible in a flow state
-
The flow state (“I’m in the flow!”) requires a linear relationship between challenge and knowledge and skill
-
Many things create arousal in the brain (discovery, challenge, narrative, growth, thrill, sensation, …)
-
We must not break the flow of the users. We must enchant the users and keep them enchanted.
-
What breaks the flow? Microsoft Bob, complicated dials, weird menus…
-
Create a continuing challenge to the users, creating “levels” (or making them very explicit if they already exists implicitly) so that they can see and feel their evolution
-
User Experience Spiral: Interaction -> Payoff -> Motivation benefit -> Back to Interaction
-
The Tribe: passionate users create “tribes” that they feel proud of announcing to the world that they belong to. T-shirt first development (make sure you have ways for your users to state their tribe)
-
Giving users something to talk about. Easter eggs, The Dark Side Of The Rainbow… Give experienced users some knowledge that makes them “something more” than others. “Insider information” is social currency.
-
Community: Passion builds community and community builds passion.