SlideShare a Scribd company logo
1 of 11
ash: a shell for multiple devices
SeongJae Park / Seoul National University
sjpark@dcslab.snu.ac.kr
Multiple Devices and Multiple
Interfaces
As Useful, New Device Invented,
People Suffer Unfamiliar Interface of New
Devices
Critical For Accessibility
ash: Use Preferred One Interface For
Multiple Devices Control
Android
Ubuntu
OSX
Windows 8
Control any
devices via any
device(even self)
ash: Architecture
Evaluator
User interface
Device controllerData manager
Text format command
Network
Keyboard
/ Mouse
Touchscreen
Control
Any medium
Control Path Between Ash Systems
Evaluator
User Interface
Device controller
Evaluator
User Interface
Device controller
Network
From ash on
device A,
Control device B which ash
installed.
Any Interface, Module Can Be
Imported
ash application
by 3rd party
Evaluator
User Interface
Device controller
Language: Everything Is A List
ash is a shell
Evaluator
ash is a shell
ash is [a sh]ell
Evaluator
ash is a sh ell
Language: Plain List Or Function
Call
ash is a shell
Evaluator
ash is a shell
touch DOWN 300 500
Evaluator
touch DOWN 300 300
Registered
Function name
Language: Code Is A List
ash$ add_callback [default alias click] [ 
[touch DOWN [arg 1] [arg 2]] 
[touch UP [arg 1] [arg 2]] 
]
About Project
Project Homepage
http://sjp38.github.io/ash/
Article at Google Developer Blog:
http://googledevkr.blogspot.
kr/2012/12/ghackfair-winners-ash.html
This work by SeongJae Park is licensed under the
Creative Commons Attribution-ShareAlike 3.0 Unported
License. To view a copy of this license, visit http:
//creativecommons.org/licenses/by-sa/3.0/.

More Related Content

Similar to ash

operatingsystemoverviewconceptsppt-121210232317-phpapp02-160406113917.pdf
operatingsystemoverviewconceptsppt-121210232317-phpapp02-160406113917.pdfoperatingsystemoverviewconceptsppt-121210232317-phpapp02-160406113917.pdf
operatingsystemoverviewconceptsppt-121210232317-phpapp02-160406113917.pdf
AdityaYadav789154
 
The purpose of operating systems
The purpose of operating systemsThe purpose of operating systems
The purpose of operating systems
93DragonNinja
 
Linux introductory-course-day-1
Linux introductory-course-day-1Linux introductory-course-day-1
Linux introductory-course-day-1
Julio Pulido
 
16. Computer Systems Basic Software 2
16. Computer Systems   Basic Software 216. Computer Systems   Basic Software 2
16. Computer Systems Basic Software 2
New Era University
 

Similar to ash (20)

Operating Systems Network, Communication, OSI
Operating Systems Network, Communication, OSIOperating Systems Network, Communication, OSI
Operating Systems Network, Communication, OSI
 
Ict lecture9 10
Ict lecture9 10 Ict lecture9 10
Ict lecture9 10
 
Red hat linux essentials
Red hat linux essentialsRed hat linux essentials
Red hat linux essentials
 
Operatimg system basics
Operatimg system basicsOperatimg system basics
Operatimg system basics
 
Operatimg system basics
Operatimg system basicsOperatimg system basics
Operatimg system basics
 
Operating system presentation
Operating system presentationOperating system presentation
Operating system presentation
 
operatingsystemoverviewconceptsppt-121210232317-phpapp02-160406113917.pdf
operatingsystemoverviewconceptsppt-121210232317-phpapp02-160406113917.pdfoperatingsystemoverviewconceptsppt-121210232317-phpapp02-160406113917.pdf
operatingsystemoverviewconceptsppt-121210232317-phpapp02-160406113917.pdf
 
Intro Ch 07 A
Intro Ch 07 AIntro Ch 07 A
Intro Ch 07 A
 
intro unix/linux 02
intro unix/linux 02intro unix/linux 02
intro unix/linux 02
 
intro unix/linux 03
intro unix/linux 03intro unix/linux 03
intro unix/linux 03
 
Operating system
Operating systemOperating system
Operating system
 
software-tools-part-1.ppt
software-tools-part-1.pptsoftware-tools-part-1.ppt
software-tools-part-1.ppt
 
Shell-Scripting-1.pdf
Shell-Scripting-1.pdfShell-Scripting-1.pdf
Shell-Scripting-1.pdf
 
Introduction to Operating system
Introduction to Operating system Introduction to Operating system
Introduction to Operating system
 
Operating System.pptxjkkjhkjknknknknknknknk
Operating System.pptxjkkjhkjknknknknknknknkOperating System.pptxjkkjhkjknknknknknknknk
Operating System.pptxjkkjhkjknknknknknknknk
 
Linux programming - Getting self started
Linux programming - Getting self started Linux programming - Getting self started
Linux programming - Getting self started
 
The purpose of operating systems
The purpose of operating systemsThe purpose of operating systems
The purpose of operating systems
 
Linux introductory-course-day-1
Linux introductory-course-day-1Linux introductory-course-day-1
Linux introductory-course-day-1
 
Unix - An Introduction
Unix - An IntroductionUnix - An Introduction
Unix - An Introduction
 
16. Computer Systems Basic Software 2
16. Computer Systems   Basic Software 216. Computer Systems   Basic Software 2
16. Computer Systems Basic Software 2
 

More from SeongJae Park

Deep dark side of git - prologue
Deep dark side of git - prologueDeep dark side of git - prologue
Deep dark side of git - prologue
SeongJae Park
 

More from SeongJae Park (20)

Biscuit: an operating system written in go
Biscuit:  an operating system written in goBiscuit:  an operating system written in go
Biscuit: an operating system written in go
 
GCMA: Guaranteed Contiguous Memory Allocator
GCMA: Guaranteed Contiguous Memory AllocatorGCMA: Guaranteed Contiguous Memory Allocator
GCMA: Guaranteed Contiguous Memory Allocator
 
Linux Kernel Memory Model
Linux Kernel Memory ModelLinux Kernel Memory Model
Linux Kernel Memory Model
 
An Introduction to the Formalised Memory Model for Linux Kernel
An Introduction to the Formalised Memory Model for Linux KernelAn Introduction to the Formalised Memory Model for Linux Kernel
An Introduction to the Formalised Memory Model for Linux Kernel
 
Design choices of golang for high scalability
Design choices of golang for high scalabilityDesign choices of golang for high scalability
Design choices of golang for high scalability
 
Brief introduction to kselftest
Brief introduction to kselftestBrief introduction to kselftest
Brief introduction to kselftest
 
Understanding of linux kernel memory model
Understanding of linux kernel memory modelUnderstanding of linux kernel memory model
Understanding of linux kernel memory model
 
Let the contribution begin (EST futures)
Let the contribution begin  (EST futures)Let the contribution begin  (EST futures)
Let the contribution begin (EST futures)
 
Porting golang development environment developed with golang
Porting golang development environment developed with golangPorting golang development environment developed with golang
Porting golang development environment developed with golang
 
gcma: guaranteed contiguous memory allocator
gcma:  guaranteed contiguous memory allocatorgcma:  guaranteed contiguous memory allocator
gcma: guaranteed contiguous memory allocator
 
An introduction to_golang.avi
An introduction to_golang.aviAn introduction to_golang.avi
An introduction to_golang.avi
 
Develop Android/iOS app using golang
Develop Android/iOS app using golangDevelop Android/iOS app using golang
Develop Android/iOS app using golang
 
Develop Android app using Golang
Develop Android app using GolangDevelop Android app using Golang
Develop Android app using Golang
 
Sw install with_without_docker
Sw install with_without_dockerSw install with_without_docker
Sw install with_without_docker
 
Git inter-snapshot public
Git  inter-snapshot publicGit  inter-snapshot public
Git inter-snapshot public
 
(Live) build and run golang web server on android.avi
(Live) build and run golang web server on android.avi(Live) build and run golang web server on android.avi
(Live) build and run golang web server on android.avi
 
Deep dark-side of git: How git works internally
Deep dark-side of git: How git works internallyDeep dark-side of git: How git works internally
Deep dark-side of git: How git works internally
 
Deep dark side of git - prologue
Deep dark side of git - prologueDeep dark side of git - prologue
Deep dark side of git - prologue
 
DO YOU WANT TO USE A VCS
DO YOU WANT TO USE A VCSDO YOU WANT TO USE A VCS
DO YOU WANT TO USE A VCS
 
Experimental android hacking using reflection
Experimental android hacking using reflectionExperimental android hacking using reflection
Experimental android hacking using reflection
 

Recently uploaded

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Peter Udo Diehl
 

Recently uploaded (20)

How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAK
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024
 

ash

  • 1. ash: a shell for multiple devices SeongJae Park / Seoul National University sjpark@dcslab.snu.ac.kr
  • 2. Multiple Devices and Multiple Interfaces As Useful, New Device Invented, People Suffer Unfamiliar Interface of New Devices Critical For Accessibility
  • 3. ash: Use Preferred One Interface For Multiple Devices Control Android Ubuntu OSX Windows 8 Control any devices via any device(even self)
  • 4. ash: Architecture Evaluator User interface Device controllerData manager Text format command Network Keyboard / Mouse Touchscreen Control Any medium
  • 5. Control Path Between Ash Systems Evaluator User Interface Device controller Evaluator User Interface Device controller Network From ash on device A, Control device B which ash installed.
  • 6. Any Interface, Module Can Be Imported ash application by 3rd party Evaluator User Interface Device controller
  • 7. Language: Everything Is A List ash is a shell Evaluator ash is a shell ash is [a sh]ell Evaluator ash is a sh ell
  • 8. Language: Plain List Or Function Call ash is a shell Evaluator ash is a shell touch DOWN 300 500 Evaluator touch DOWN 300 300 Registered Function name
  • 9. Language: Code Is A List ash$ add_callback [default alias click] [ [touch DOWN [arg 1] [arg 2]] [touch UP [arg 1] [arg 2]] ]
  • 10. About Project Project Homepage http://sjp38.github.io/ash/ Article at Google Developer Blog: http://googledevkr.blogspot. kr/2012/12/ghackfair-winners-ash.html
  • 11. This work by SeongJae Park is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. To view a copy of this license, visit http: //creativecommons.org/licenses/by-sa/3.0/.