SlideShare a Scribd company logo
1 of 36
Download to read offline
Sense - 
An alternative visualisation 
Tim Mackinnon 
http://morethan.technology
More Than Technology Ltd. 
! I am a small company focused on: 
" Solving problems using extreme Agility 
" Delivering business value in partnership with clients 
" Working in an honest, iterative and collaborative manner 
" Helping teams communicate without killing each other 
! Tim Mackinnon 
" Learned Smalltalk at Carleton University late 80’s 
" Originally didn’t like it, cute but mehh… 
" Now it’s the language I keep coming back to for its elegance and 
simplicity & community
Thank You Smalltalk! 
! Vibrant Helpful 
Community 
! So much beautiful 
code 
! Amazing, Inspiring 
ideas 
! FUN!
The OU TU100 Course
Open University’s “Sense” 
! www.sense.open.ac.uk 
! SenseBoard (usb) 
" Freeduino based 
" Input sensors – 
button, slider, mic, ir, 
accelerometer, 
themometer 
" Outputs – led’s, ir, servo 
& stepper motors 
! Sense IDE – modified 
Scratch environment
The Sense IDE
TU100 Course is Well Received 
! “I already had some 
knowledge of 
programming but was 
amazed by sense. 
THIS IS BRILLIANT! 
Whoever thought of 
this way to teach 
programming needs 
promoting.” 
http://www.youtube.com/watch? 
v=g-m3O5vhMss
V1.0 
! Original work completed 
by: 
" Open Univeristy + 
" John Daniels 
" Dave Cleal 
! USB interface to 
SenseBoard 
! Additional blocks 
" Internet 
" Inputs 
" Outputs
V2.0 - Specification 
! Deliverables 
" To provide the Simulator and maintenance documentation. The 
simulator should be delivered either as part of a revised version 
of the Sense programming environment, or as a plugin module 
that can be installed alongside Sense. 
! The simulator is intended to act as a partial replacement 
for this physical item for those students who are unable 
to use the board because: 
! They have a physical disability which precludes them from handling 
the board or sensors 
! They are an inmate, or tutor visiting an inmate, in a prison where 
access to the SenseBoard and cables are not allowed.
V2.0 Mockups 
! Launch a simulator without a SenseBoard
Which technology? 
! Everyone seemed afraid to use 
Squeak ? 
! PRO’s 
" It’s working well 
" already multiplatform 
" can already safely deploy 
! CON’s 
" Could Squeak do cross platform 
sound output, mic input, keyboard 
control? 
" Can anyone still figure this stuff out? 
! Worried about the additional 
Java footprint and installation 
complications 
! Help? 
(where’s Tim Rowledge)
The Shock of early Squeak…
Smalltalk Spike 
! Could I even understand how 
things worked? 
! Worried about the 
“accessibility requirements” of 
the project 
" Keyboard only navigation 
" Sound + Microphone (cross 
platform) 
! Did an initial spike, and found 
that I could get something 
running quickly
Refactoring to a “handler” hierarchy
Smalltalk is so malleable… 
! Fixed some of the bugs/missing features 
" Package saving problems 
" “Create it” in the debugger 
! Re-incarnated Sunit 2.7, Modernized approach with CI 
! Fixed some of the bugs/missing features 
" Package saving problems 
" “Create it” in the debugger 
! Re-incarnated SUnit 2 
! Modernized approach with CI
The Hanging Image
Learning Morphic
Scratch is not a good example of Smalltalk...
Iterative Development: Initial working version
Iteration 2 – multiple motors
Iteration 3 – input ports
Iteration 4 – accessibility tab selection
Iteration 5 – dressed up
Iteration 6 – OU cognitive makeover
Coping with Accessibility 
! Squeak was not made with keyboard access in mind 
! Teaching widgets how to tab, show focus 
! Menu’s continue to be a problem
Inspiration from Accessibility 
! When I hooked up sound accessibility and tried it out - it 
sounded awful! 
! However I found it interesting that I could reason about 
code I knew nothing about…
The sound of computing 
! When I mentioned 
listening to your 
program at UKST… 
! It turns out old 
mainframe 
programmers could 
hear infinite loops 
from the hardware…
Demo of Sound in action… 
! Constant event loop 
! What does this sound 
like?
But polling is bad… Can we do better? 
! Scratch already has a 
broadcast mechanism 
! Couldn’t we hook into 
that somehow?
If you know the right lines of code… 
! Convince scratch 
there are some 
predefined events 
! Wire in some support 
for them
Now rewrite the LED Slider with events 
! But it still doesn’t quite sound right…
This sounds better… but … 
! There is still a slight sound overlap… we can be more 
efficient…
This sounds much better 
! Although it is a bit more complicated, there is less 
processing…
Related Work 
! Craig Latta – VM 
Sonification
Events & Remote Sensor Protocol 
! The simulator and 
remote protocol also 
provide possibilities to 
interface with devices 
! iPhone app sending 
remote data as if from 
the SenseBoard 
! Controlling a Robot 
like the YoBot!
Thankyou 
! Tim Mackinnon 
tim.mackinnon@morethan.technology

More Related Content

What's hot

Leap Motion Basic
Leap Motion BasicLeap Motion Basic
Leap Motion Basicvelakaturi
 
E-BALL TECHNOLOGY SEMINAR REPORT
E-BALL TECHNOLOGY SEMINAR REPORTE-BALL TECHNOLOGY SEMINAR REPORT
E-BALL TECHNOLOGY SEMINAR REPORTVikas Kumar
 
A tiny device with a huge idea ''Leap Motion''
A tiny device with a huge idea ''Leap Motion''A tiny device with a huge idea ''Leap Motion''
A tiny device with a huge idea ''Leap Motion''Sazzad Saad
 
11.19 hong quan_leapmotion-beyondthemouseandkeyboard
11.19 hong quan_leapmotion-beyondthemouseandkeyboard11.19 hong quan_leapmotion-beyondthemouseandkeyboard
11.19 hong quan_leapmotion-beyondthemouseandkeyboardQuân Lê
 
Leap Motion Python API
Leap Motion Python APILeap Motion Python API
Leap Motion Python APIJoe Chasinga
 
new Ppt 5 pen technology
new Ppt 5 pen technologynew Ppt 5 pen technology
new Ppt 5 pen technologyVikas Sharma
 
E ball technology ppt by arun
E ball technology ppt by arunE ball technology ppt by arun
E ball technology ppt by arunArun Gowda
 
[PowerPoint .ppt]
[PowerPoint .ppt][PowerPoint .ppt]
[PowerPoint .ppt]Videoguy
 
UX test of Leap Motion Controller by UID
UX test of Leap Motion Controller by UID UX test of Leap Motion Controller by UID
UX test of Leap Motion Controller by UID Tobias Limbach
 
Non technical + technical information
Non technical + technical informationNon technical + technical information
Non technical + technical informationLewisBlackman
 
Human receptors, effectors and human machine interactions
Human receptors, effectors and human machine interactions Human receptors, effectors and human machine interactions
Human receptors, effectors and human machine interactions yoshiharu sato
 

What's hot (19)

E ball technology
E ball technologyE ball technology
E ball technology
 
Leap Motion Basic
Leap Motion BasicLeap Motion Basic
Leap Motion Basic
 
Leap motion
Leap motionLeap motion
Leap motion
 
E-BALL TECHNOLOGY SEMINAR REPORT
E-BALL TECHNOLOGY SEMINAR REPORTE-BALL TECHNOLOGY SEMINAR REPORT
E-BALL TECHNOLOGY SEMINAR REPORT
 
E-ball
E-ball E-ball
E-ball
 
A tiny device with a huge idea ''Leap Motion''
A tiny device with a huge idea ''Leap Motion''A tiny device with a huge idea ''Leap Motion''
A tiny device with a huge idea ''Leap Motion''
 
11.19 hong quan_leapmotion-beyondthemouseandkeyboard
11.19 hong quan_leapmotion-beyondthemouseandkeyboard11.19 hong quan_leapmotion-beyondthemouseandkeyboard
11.19 hong quan_leapmotion-beyondthemouseandkeyboard
 
Leap Motion Python API
Leap Motion Python APILeap Motion Python API
Leap Motion Python API
 
Report
ReportReport
Report
 
new Ppt 5 pen technology
new Ppt 5 pen technologynew Ppt 5 pen technology
new Ppt 5 pen technology
 
Epoc user-manual-ce
Epoc user-manual-ceEpoc user-manual-ce
Epoc user-manual-ce
 
Final power point 2
Final power point 2Final power point 2
Final power point 2
 
E ball technology ppt by arun
E ball technology ppt by arunE ball technology ppt by arun
E ball technology ppt by arun
 
Sunspot
SunspotSunspot
Sunspot
 
[PowerPoint .ppt]
[PowerPoint .ppt][PowerPoint .ppt]
[PowerPoint .ppt]
 
UX test of Leap Motion Controller by UID
UX test of Leap Motion Controller by UID UX test of Leap Motion Controller by UID
UX test of Leap Motion Controller by UID
 
e ball
e balle ball
e ball
 
Non technical + technical information
Non technical + technical informationNon technical + technical information
Non technical + technical information
 
Human receptors, effectors and human machine interactions
Human receptors, effectors and human machine interactions Human receptors, effectors and human machine interactions
Human receptors, effectors and human machine interactions
 

Similar to Sense - An alternative visualisation

Prototyping - 2015 PhillyCHI UX Workshop Series
Prototyping - 2015 PhillyCHI UX Workshop SeriesPrototyping - 2015 PhillyCHI UX Workshop Series
Prototyping - 2015 PhillyCHI UX Workshop SeriesMatthew Thomas
 
30 sec inclusion training - Microsoft and Mac
30 sec inclusion training - Microsoft and Mac30 sec inclusion training - Microsoft and Mac
30 sec inclusion training - Microsoft and MacServe Indiana
 
Breaking The Confinement Cycle Using Linux
Breaking The Confinement Cycle Using LinuxBreaking The Confinement Cycle Using Linux
Breaking The Confinement Cycle Using LinuxSpencer Hunley
 
Lectures On Demand: delivering traditional lectures over the web
Lectures On Demand: delivering traditional lectures over the webLectures On Demand: delivering traditional lectures over the web
Lectures On Demand: delivering traditional lectures over the webronchet
 
UXLx 2015: 'Designing Connected Products workshop
UXLx 2015: 'Designing Connected Products workshopUXLx 2015: 'Designing Connected Products workshop
UXLx 2015: 'Designing Connected Products workshopClaire Rowland
 
Industrial Design Intelligence: Evaluation Supporting Aesthetic and Functiona...
Industrial Design Intelligence: Evaluation Supporting Aesthetic and Functiona...Industrial Design Intelligence: Evaluation Supporting Aesthetic and Functiona...
Industrial Design Intelligence: Evaluation Supporting Aesthetic and Functiona...BayCHI
 
BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!
BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!
BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!Linaro
 
Stable Squeak World Tour
Stable Squeak World TourStable Squeak World Tour
Stable Squeak World TourESUG
 
More fun using Kautilya
More fun using KautilyaMore fun using Kautilya
More fun using KautilyaNikhil Mittal
 
Review 0 (2) (1) (1).pptx
Review 0 (2) (1) (1).pptxReview 0 (2) (1) (1).pptx
Review 0 (2) (1) (1).pptxWidsoulDevil
 
Building Droids with JavaScript
Building Droids with JavaScriptBuilding Droids with JavaScript
Building Droids with JavaScriptAndrew Fisher
 
eClassrooms Come of Age?
eClassrooms Come of Age?eClassrooms Come of Age?
eClassrooms Come of Age?Alan Wimberley
 
The Good, The Bad, The Voiceover - ios Accessibility
The Good, The Bad, The Voiceover - ios AccessibilityThe Good, The Bad, The Voiceover - ios Accessibility
The Good, The Bad, The Voiceover - ios AccessibilityAimee Maree Forsstrom
 
Savinder-Puri--sec-adds-the-glitter-in-DevSecOps-1.pptx
Savinder-Puri--sec-adds-the-glitter-in-DevSecOps-1.pptxSavinder-Puri--sec-adds-the-glitter-in-DevSecOps-1.pptx
Savinder-Puri--sec-adds-the-glitter-in-DevSecOps-1.pptxPraveenkumar155694
 
Exploring the Internet of Things Using Ruby
Exploring the Internet of Things Using RubyExploring the Internet of Things Using Ruby
Exploring the Internet of Things Using RubyMike Hagedorn
 
UX Day Mannheim: UX for systems of connected products
UX Day Mannheim: UX for systems of connected productsUX Day Mannheim: UX for systems of connected products
UX Day Mannheim: UX for systems of connected productsClaire Rowland
 
CC-Castle; The best Real-Time/Embedded/HighTech language EVER?
CC-Castle; The best Real-Time/Embedded/HighTech language EVER?CC-Castle; The best Real-Time/Embedded/HighTech language EVER?
CC-Castle; The best Real-Time/Embedded/HighTech language EVER?Albert Mietus
 
JavaZone 2014: En realitetsorientering om Tingenenes Internett, og hvordan du...
JavaZone 2014: En realitetsorientering om Tingenenes Internett, og hvordan du...JavaZone 2014: En realitetsorientering om Tingenenes Internett, og hvordan du...
JavaZone 2014: En realitetsorientering om Tingenenes Internett, og hvordan du...Simen Sommerfeldt
 

Similar to Sense - An alternative visualisation (20)

Prototyping - 2015 PhillyCHI UX Workshop Series
Prototyping - 2015 PhillyCHI UX Workshop SeriesPrototyping - 2015 PhillyCHI UX Workshop Series
Prototyping - 2015 PhillyCHI UX Workshop Series
 
30 sec inclusion training - Microsoft and Mac
30 sec inclusion training - Microsoft and Mac30 sec inclusion training - Microsoft and Mac
30 sec inclusion training - Microsoft and Mac
 
Breaking The Confinement Cycle Using Linux
Breaking The Confinement Cycle Using LinuxBreaking The Confinement Cycle Using Linux
Breaking The Confinement Cycle Using Linux
 
Lectures On Demand: delivering traditional lectures over the web
Lectures On Demand: delivering traditional lectures over the webLectures On Demand: delivering traditional lectures over the web
Lectures On Demand: delivering traditional lectures over the web
 
UXLx 2015: 'Designing Connected Products workshop
UXLx 2015: 'Designing Connected Products workshopUXLx 2015: 'Designing Connected Products workshop
UXLx 2015: 'Designing Connected Products workshop
 
Industrial Design Intelligence: Evaluation Supporting Aesthetic and Functiona...
Industrial Design Intelligence: Evaluation Supporting Aesthetic and Functiona...Industrial Design Intelligence: Evaluation Supporting Aesthetic and Functiona...
Industrial Design Intelligence: Evaluation Supporting Aesthetic and Functiona...
 
BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!
BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!
BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!
 
Stable Squeak World Tour
Stable Squeak World TourStable Squeak World Tour
Stable Squeak World Tour
 
Conversational user interfaces (by Jochem Grietens)
Conversational user interfaces (by Jochem Grietens)Conversational user interfaces (by Jochem Grietens)
Conversational user interfaces (by Jochem Grietens)
 
Make Tools
Make ToolsMake Tools
Make Tools
 
More fun using Kautilya
More fun using KautilyaMore fun using Kautilya
More fun using Kautilya
 
Review 0 (2) (1) (1).pptx
Review 0 (2) (1) (1).pptxReview 0 (2) (1) (1).pptx
Review 0 (2) (1) (1).pptx
 
Building Droids with JavaScript
Building Droids with JavaScriptBuilding Droids with JavaScript
Building Droids with JavaScript
 
eClassrooms Come of Age?
eClassrooms Come of Age?eClassrooms Come of Age?
eClassrooms Come of Age?
 
The Good, The Bad, The Voiceover - ios Accessibility
The Good, The Bad, The Voiceover - ios AccessibilityThe Good, The Bad, The Voiceover - ios Accessibility
The Good, The Bad, The Voiceover - ios Accessibility
 
Savinder-Puri--sec-adds-the-glitter-in-DevSecOps-1.pptx
Savinder-Puri--sec-adds-the-glitter-in-DevSecOps-1.pptxSavinder-Puri--sec-adds-the-glitter-in-DevSecOps-1.pptx
Savinder-Puri--sec-adds-the-glitter-in-DevSecOps-1.pptx
 
Exploring the Internet of Things Using Ruby
Exploring the Internet of Things Using RubyExploring the Internet of Things Using Ruby
Exploring the Internet of Things Using Ruby
 
UX Day Mannheim: UX for systems of connected products
UX Day Mannheim: UX for systems of connected productsUX Day Mannheim: UX for systems of connected products
UX Day Mannheim: UX for systems of connected products
 
CC-Castle; The best Real-Time/Embedded/HighTech language EVER?
CC-Castle; The best Real-Time/Embedded/HighTech language EVER?CC-Castle; The best Real-Time/Embedded/HighTech language EVER?
CC-Castle; The best Real-Time/Embedded/HighTech language EVER?
 
JavaZone 2014: En realitetsorientering om Tingenenes Internett, og hvordan du...
JavaZone 2014: En realitetsorientering om Tingenenes Internett, og hvordan du...JavaZone 2014: En realitetsorientering om Tingenenes Internett, og hvordan du...
JavaZone 2014: En realitetsorientering om Tingenenes Internett, og hvordan du...
 

More from ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingESUG
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapESUG
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector TuningESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing ScoreESUG
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsESUG
 

More from ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Recently uploaded

What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 

Recently uploaded (20)

What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 

Sense - An alternative visualisation

  • 1. Sense - An alternative visualisation Tim Mackinnon http://morethan.technology
  • 2. More Than Technology Ltd. ! I am a small company focused on: " Solving problems using extreme Agility " Delivering business value in partnership with clients " Working in an honest, iterative and collaborative manner " Helping teams communicate without killing each other ! Tim Mackinnon " Learned Smalltalk at Carleton University late 80’s " Originally didn’t like it, cute but mehh… " Now it’s the language I keep coming back to for its elegance and simplicity & community
  • 3. Thank You Smalltalk! ! Vibrant Helpful Community ! So much beautiful code ! Amazing, Inspiring ideas ! FUN!
  • 4. The OU TU100 Course
  • 5. Open University’s “Sense” ! www.sense.open.ac.uk ! SenseBoard (usb) " Freeduino based " Input sensors – button, slider, mic, ir, accelerometer, themometer " Outputs – led’s, ir, servo & stepper motors ! Sense IDE – modified Scratch environment
  • 7. TU100 Course is Well Received ! “I already had some knowledge of programming but was amazed by sense. THIS IS BRILLIANT! Whoever thought of this way to teach programming needs promoting.” http://www.youtube.com/watch? v=g-m3O5vhMss
  • 8. V1.0 ! Original work completed by: " Open Univeristy + " John Daniels " Dave Cleal ! USB interface to SenseBoard ! Additional blocks " Internet " Inputs " Outputs
  • 9. V2.0 - Specification ! Deliverables " To provide the Simulator and maintenance documentation. The simulator should be delivered either as part of a revised version of the Sense programming environment, or as a plugin module that can be installed alongside Sense. ! The simulator is intended to act as a partial replacement for this physical item for those students who are unable to use the board because: ! They have a physical disability which precludes them from handling the board or sensors ! They are an inmate, or tutor visiting an inmate, in a prison where access to the SenseBoard and cables are not allowed.
  • 10. V2.0 Mockups ! Launch a simulator without a SenseBoard
  • 11. Which technology? ! Everyone seemed afraid to use Squeak ? ! PRO’s " It’s working well " already multiplatform " can already safely deploy ! CON’s " Could Squeak do cross platform sound output, mic input, keyboard control? " Can anyone still figure this stuff out? ! Worried about the additional Java footprint and installation complications ! Help? (where’s Tim Rowledge)
  • 12. The Shock of early Squeak…
  • 13. Smalltalk Spike ! Could I even understand how things worked? ! Worried about the “accessibility requirements” of the project " Keyboard only navigation " Sound + Microphone (cross platform) ! Did an initial spike, and found that I could get something running quickly
  • 14. Refactoring to a “handler” hierarchy
  • 15. Smalltalk is so malleable… ! Fixed some of the bugs/missing features " Package saving problems " “Create it” in the debugger ! Re-incarnated Sunit 2.7, Modernized approach with CI ! Fixed some of the bugs/missing features " Package saving problems " “Create it” in the debugger ! Re-incarnated SUnit 2 ! Modernized approach with CI
  • 18. Scratch is not a good example of Smalltalk...
  • 20. Iteration 2 – multiple motors
  • 21. Iteration 3 – input ports
  • 22. Iteration 4 – accessibility tab selection
  • 23. Iteration 5 – dressed up
  • 24. Iteration 6 – OU cognitive makeover
  • 25. Coping with Accessibility ! Squeak was not made with keyboard access in mind ! Teaching widgets how to tab, show focus ! Menu’s continue to be a problem
  • 26. Inspiration from Accessibility ! When I hooked up sound accessibility and tried it out - it sounded awful! ! However I found it interesting that I could reason about code I knew nothing about…
  • 27. The sound of computing ! When I mentioned listening to your program at UKST… ! It turns out old mainframe programmers could hear infinite loops from the hardware…
  • 28. Demo of Sound in action… ! Constant event loop ! What does this sound like?
  • 29. But polling is bad… Can we do better? ! Scratch already has a broadcast mechanism ! Couldn’t we hook into that somehow?
  • 30. If you know the right lines of code… ! Convince scratch there are some predefined events ! Wire in some support for them
  • 31. Now rewrite the LED Slider with events ! But it still doesn’t quite sound right…
  • 32. This sounds better… but … ! There is still a slight sound overlap… we can be more efficient…
  • 33. This sounds much better ! Although it is a bit more complicated, there is less processing…
  • 34. Related Work ! Craig Latta – VM Sonification
  • 35. Events & Remote Sensor Protocol ! The simulator and remote protocol also provide possibilities to interface with devices ! iPhone app sending remote data as if from the SenseBoard ! Controlling a Robot like the YoBot!
  • 36. Thankyou ! Tim Mackinnon tim.mackinnon@morethan.technology