|
|
|
Oct 31th 2003.
|
(OOPSLA 2003) Wednesday: Squeak on a PDA
|
Past OOPSLA trip reports can be found at Trip Reports I've Written in the past
Back to Tuesday
Note on Nov 5th 2003 this paged was moved to a Wiki so you can edit it there. Please read it over there, this copy is here for historical reasons. http://wiki.cs.uiuc.edu/CampSmalltalk/OOPSLA+2003+Trip+report+Wednesday.
Squeak on a hand held device, a Disney project
Yoshiki Ohshima and Andy Ogden
Done for theme parks division, conversion of electronics.
ADA {American Disabilities Association} said you needed close captioning in the park.
So we needed a device to do this, and other things.
Wireless connectivity.
Location sensing.
Audio record and playback.
Digital camera in unit {witness camera's in phones today}
(rich) location base content
Ok let prototype and it get in front of guests to see what happens
Sharp was quite willing to provide the hardware from Japan never shipped to America.
Lots of expensive memory.
Today they are popular but when it was done it was unheard of.
Made to drop!!!!
Made to get wet!!!!
{Encase unit in plastic shell to met these goals}
Outfitted DisneyWorld Animal Kingdom to have IR transmission towers (non-standard).
Guests were selected, then registered with us so we could track device issues.
Instructions done via paper Flash cards
Then let people go free!!!!
Family shared this experience through out the day
Hosted Narrative, a experienced guide. {Think of Clippy, but not as insane}
Digital Map, however small image makes it hard to compete with paper
Find it dialog, to find things
Symbol codes, basic shapes that would let you indicate where you where
Wirelessly do "FASTPATH" ride permits.
Games when you wait in a line, which are specific to the wait line.
Picture taking!!! A digital camera!
Later when they went home they could get on the internet and we could display pictures in the browser and reference by location and time etc.
Then we did a 20 minute exit interview.
Over five days 80 devices were distributed to guests each day.
60 or people so were exit interviewed.
...
Hardware and OS
Sharp M1-C1 PDS< 60Mhz 16MB ram, 32x240 reflective color display. Very viewable in FL and CA sunshine + CAMERA. Only usable platform in 2000.
Exotic hardware & OS
Slow CPU and light memory
Customize UI
Two!!!! programmers, eight designers
Short development time
Fulfil Disney show standards {tough bar to make}
--------> Squeak solved those problems in a nice way
Important features
Pixel identical execution across platforms
Small/fast
Hardware is abstracted into objects.
Ability to build GUI frameworks easily
Overview of Squeak VM
A VM written in itself
Two weeks to do a initial port to Zaurus PDS
Only ~5000 LOC support code for VM, Camera control, power saving, battery check.
Then he started up a PDA emulator in Squeak.
Very rich content, find stuff etc.
Location data is entered via shapes, say circle, square, triangle, plus to pick different modes
Showed camera control to alter brighness/contrast.
Ok the implementation
PenSprites: Our simple GUI framework for touch screen interface
Supports translucency, non-rectangle Sprites and animations
Core of Pen-Sprites consists of:
Sprite lightweight GUI components
Stage: where Sprites lives in
Canvas: where Sprites draw themselves on
Action: timer based.
18 classes 323 methods
A bit of code, the timer logic is
doOneCycle
self processInputs.
self processActions.
self process?
An important part of all this is the Asset File
A data file format that stores all content in a single file
Both retrieve speed and efficiency are important
A diagram showing data size versus memory access time, versus compression versus CPU time.
To help the designers we invented Stacker which was a Hyper-linked card editor/viewer
The designers managed to build complex graphic hyper-link applications without developer help on their macintoshs.
Special modes to allow you to import graphics, make new links, modify location of existing links. All done graphically. Thus we didn't have to help the designers build the user experience.
Note that we needed to switch between application, that required a change to the original logic.
Done via doOneCycle implementations for various subclasses,
self currentApplication doOneCycle
Issues we had during the testing.
Writing CF memory silently fails with (older) Mac G3. We ended up with corrupted data files on PDA in the middle of the test The embedded debugger on the PDA {Really the standard Squeak debugger} let us pin-point the error instantly. Built-in performance profiler {Another Squeak standard tool} let us pin-point the media-handling bottle-necks.
Conclusion
We managed to develop a media rich embedded system with two programmers a short time.
The byte-code execution was not a bottleneck
The embedded development environment help capture an unexpected error.
Question:
Did you know Squeak before this project?
Answer
I did not know Squeak
John Maloney did (Author of Morphic, and one of the authors of Squeak)
Not many choices, other choice was C
David Ungar
John Maloney use to work with me, {Did Morphic at Sun}
How come I didn't get one of these at Disneyland yesterday?
What happened?
Andy Ogden answers this question versus Yoshiki.
One cannot explain decisions
Focus feedback was overly positive.
However remember there are 30,000 people at the park, how many do you need? How to handle them.
Today still an issue.
Content will be provided by either the park or someone else who makes that outside and brings into the park!!! {Think of un-official guides to Disney in book form, can digitial be way off?}
Question:
How would you do it differently today?
Well today cell phone are getting very powerful.
Perhaps then just provide the content for them.
If we pick PDA today? Still would pick Squeak!
Onward to Thursday |