SlideShare a Scribd company logo
1 of 73
Download to read offline
CHARLIE GERARD
Software Developer
@devdevcharlie #EvolutionTW #ThoughtWorks
Charlie Gerard / @devdevcharlie
Tuesday 5th June
INTERACTIVE TECHNOLOGIES | EPOC.JS | DEMOS | TECH STACK | SAMPLES | LIMITS | POSSIBILITIES | NEXT | RESOURCES
MIND CONTROL IN JAVASCRIPT
@devdevcharlieCharlie Gerard
@devdevcharlieCharlie Gerard
Explore alternative interactions
INTERACTIVE TECHNOLOGIES1
@devdevcharlie
INTERACTIVE TECHNOLOGIES
Charlie Gerard
Wearables
EVOLVING INTERACTIONS
@devdevcharlie
INTERACTIVE TECHNOLOGIES
Charlie Gerard
Wearables
EVOLVING INTERACTIONS
Voice
@devdevcharlie
INTERACTIVE TECHNOLOGIES
Charlie Gerard
Wearables
EVOLVING INTERACTIONS
Voice Gesture
@devdevcharlie
INTERACTIVE TECHNOLOGIES
Charlie Gerard
Wearables
EVOLVING INTERACTIONS
Voice Gesture
Computer
Vision
@devdevcharlie
INTERACTIVE TECHNOLOGIES
Charlie Gerard
Wearables
EVOLVING INTERACTIONS
Voice Gesture
Computer
Vision
Biofeedback
@devdevcharlie
INTERACTIVE TECHNOLOGIES
Charlie Gerard
BIOFEEDBACK
Gaining greater awareness of many physiological
functions primarily using instruments that provide
information on the activity of those same systems.
@devdevcharlie
INTERACTIVE TECHNOLOGIES
Charlie Gerard
BIOFEEDBACK
Emotiv Epoc
@devdevcharlie
INTERACTIVE TECHNOLOGIES
Charlie Gerard
Intent of subject
HOW DOES THE BRAIN WORK?
trigger
Body part Action
Signal
@devdevcharlie
INTERACTIVE TECHNOLOGIES
Charlie Gerard
HOW DOESABRAIN SENSOR WORK?
@devdevcharlie
INTERACTIVE TECHNOLOGIES
Charlie Gerard
EMOTIV EPOC
• SDK only available in C++ and Java
@devdevcharlie
INTERACTIVE TECHNOLOGIES
Charlie Gerard
EMOTIV EPOC
• SDK only available in C++ and Java
• Very small community
@devdevcharlie
INTERACTIVE TECHNOLOGIES
Charlie Gerard
EMOTIV EPOC
• SDK only available in C++ and Java
• Very small community
• No resources
EPOC.JS
JavaScript framework to interact with the Emotiv Epoc
2
@devdevcharlie
EPOC.JS
Charlie Gerard
FEATURES
Interaction with the EmoComposer emulator.
@devdevcharlie
EPOC.JS
Charlie Gerard
FEATURES
Interaction with the EmoComposer emulator.
Access to live data:
• Hardware (gyroscope, accelerometer)
@devdevcharlie
EPOC.JS
Charlie Gerard
FEATURES
Interaction with the EmoComposer emulator.
Access to live data:
• Hardware (gyroscope, accelerometer)
• Performance metrics (focus, excitement, etc…)
@devdevcharlie
EPOC.JS
Charlie Gerard
FEATURES
Interaction with the EmoComposer emulator.
Access to live data:
• Hardware (gyroscope, accelerometer)
• Performance metrics (focus, excitement, etc…)
• Facial expressions (smile, blink, wink, etc…)
@devdevcharlie
EPOC.JS
Charlie Gerard
FEATURES
Interaction with the EmoComposer emulator.
Access to live data:
• Hardware (gyroscope, accelerometer)
• Performance metrics (focus, excitement, etc…)
• Facial expressions (smile, blink, wink, etc…)
• Mental commands (push, drop, lift, left, right, etc..)
@devdevcharlie
EPOC.JS
Charlie Gerard
TECH STACK
• C++ SDK

• Node.js

• Nan - Native abstractions for Node.js

• Node-gyp - Build tool for Node.js native addons

• Bindings - Helper module for loading native modules’ .node file

@devdevcharlie
EPOC.JS
Charlie Gerard
TECH STACK
N-API
DEMOS3
@devdevcharlie
DEMOS
Charlie Gerard
BRAIN KEYBOARD
@devdevcharlie
DEMOS
Charlie Gerard
WEBVR
CODE SAMPLES4
@devdevcharlie
CODE SAMPLES
Charlie Gerard
EPOC.JS
# functions.cc

# ------------

void Connect(const v8::FunctionCallbackInfo<Value>& args) {

EmoStateHandle eState = IEE_EmoStateCreate();



int isBlinking = Is_FacialExpressionIsBlink(eState);



v8::Local<v8::Object> event = Nan::New<v8::Object>();



Nan::Set(event, Nan::New(“blink”).ToLocalChecked(), Nan::New(isBlinking));

}



void Init(v8::Local<v8::Object> exports) {

exports->Set(Nan::New(“connectToEmoComposer").ToLocalChecked(),

Nan::New<v8::FunctionTemplate>(Connect)->GetFunction());

}



NODE_MODULE(epoc, Init);
@devdevcharlie
CODE SAMPLES
Charlie Gerard
EPOC.JS
# functions.cc

# ------------

void Connect(const v8::FunctionCallbackInfo<Value>& args) {

EmoStateHandle eState = IEE_EmoStateCreate();



int isBlinking = Is_FacialExpressionIsBlink(eState);



v8::Local<v8::Object> event = Nan::New<v8::Object>();



Nan::Set(event, Nan::New(“blink”).ToLocalChecked(), Nan::New(isBlinking));

}



void Init(v8::Local<v8::Object> exports) {

exports->Set(Nan::New("connect").ToLocalChecked(),

Nan::New<v8::FunctionTemplate>(Connect)->GetFunction());

}



NODE_MODULE(epoc, Init);
@devdevcharlie
CODE SAMPLES
Charlie Gerard
EPOC.JS
# functions.cc

# ------------

void Connect(const v8::FunctionCallbackInfo<Value>& args) {

EmoStateHandle eState = IEE_EmoStateCreate();



int isBlinking = Is_FacialExpressionIsBlink(eState);



v8::Local<v8::Object> event = Nan::New<v8::Object>();



Nan::Set(event, Nan::New(“blink”).ToLocalChecked(), Nan::New(isBlinking));

}



void Init(v8::Local<v8::Object> exports) {

exports->Set(Nan::New("connect").ToLocalChecked(),

Nan::New<v8::FunctionTemplate>(Connect)->GetFunction());

}



NODE_MODULE(epoc, Init);
@devdevcharlie
CODE SAMPLES
Charlie Gerard
EPOC.JS
# functions.cc

# ------------

void Connect(const v8::FunctionCallbackInfo<Value>& args) {

EmoStateHandle eState = IEE_EmoStateCreate();



int isBlinking = Is_FacialExpressionIsBlink(eState);



v8::Local<v8::Object> event = Nan::New<v8::Object>();



Nan::Set(event, Nan::New(“blink”).ToLocalChecked(), Nan::New(isBlinking));

}



void Init(v8::Local<v8::Object> exports) {

exports->Set(Nan::New("connect").ToLocalChecked(),

Nan::New<v8::FunctionTemplate>(Connect)->GetFunction());

}



NODE_MODULE(epoc, Init);
@devdevcharlie
CODE SAMPLES
Charlie Gerard
EPOC.JS
# functions.cc

# ------------

void Connect(const v8::FunctionCallbackInfo<Value>& args) {

EmoStateHandle eState = IEE_EmoStateCreate();



int isBlinking = Is_FacialExpressionIsBlink(eState);



v8::Local<v8::Object> event = Nan::New<v8::Object>();



Nan::Set(event, Nan::New(“blink”).ToLocalChecked(), Nan::New(isBlinking));

}



void Init(v8::Local<v8::Object> exports) {

exports->Set(Nan::New("connect").ToLocalChecked(),

Nan::New<v8::FunctionTemplate>(Connect)->GetFunction());

}



NODE_MODULE(epoc, Init);
@devdevcharlie
CODE SAMPLES
Charlie Gerard
EPOC.JS
# functions.cc

# ------------

void Connect(const v8::FunctionCallbackInfo<Value>& args) {

EmoStateHandle eState = IEE_EmoStateCreate();



int isBlinking = Is_FacialExpressionIsBlink(eState);



v8::Local<v8::Object> event = Nan::New<v8::Object>();



Nan::Set(event, Nan::New(“blink”).ToLocalChecked(), Nan::New(isBlinking));

}



void Init(v8::Local<v8::Object> exports) {

exports->Set(Nan::New("connect").ToLocalChecked(),

Nan::New<v8::FunctionTemplate>(Connect)->GetFunction());

}



NODE_MODULE(epoc, Init);
@devdevcharlie
CODE SAMPLES
Charlie Gerard
EPOC.JS
# functions.cc

# ------------

void Connect(const v8::FunctionCallbackInfo<Value>& args) {

EmoStateHandle eState = IEE_EmoStateCreate();



int isBlinking = Is_FacialExpressionIsBlink(eState);



v8::Local<v8::Object> event = Nan::New<v8::Object>();



Nan::Set(event, Nan::New(“blink”).ToLocalChecked(), Nan::New(isBlinking));

}



void Init(v8::Local<v8::Object> exports) {

exports->Set(Nan::New("connect").ToLocalChecked(),

Nan::New<v8::FunctionTemplate>(Connect)->GetFunction());

}



NODE_MODULE(epoc, Init);
@devdevcharlie
CODE SAMPLES
Charlie Gerard
EPOC.JS
# binding.gyp

# ------------


{

"targets": [

{

"target_name": “epoc",

"sources": [ "functions.cc"]

}

]

}
node-gyp build
@devdevcharlie
CODE SAMPLES
Charlie Gerard
EPOC.JS
# main.js

# ------------


const epoc = require('bindings')('epoc');



epoc.connectToEmoComposer(function(event){

console.log(event);

});
epoc.connectToLiveData(“path/to/profile/file”, function(event){

console.log(event);

});
node main.js // event: {blink: 0}
@devdevcharlie
CODE SAMPLES
Charlie Gerard
EPOC.JS
# main.js

# ------------


const epoc = require('bindings')('epoc');



epoc.connectToEmoComposer(function(event){

console.log(event);

});
epoc.connectToLiveData(“path/to/profile/file”, function(event){

console.log(event);

});
node main.js // event: {blink: 0}
@devdevcharlie
CODE SAMPLES
Charlie Gerard
EPOC.JS
# main.js

# ------------


const epoc = require('bindings')('epoc');



epoc.connectToEmoComposer(function(event){

console.log(event);

});
epoc.connectToLiveData(“path/to/profile/file”, function(event){

console.log(event);

});
node main.js // event: {blink: 0}
LIMITS5
@devdevcharlie
LIMITS
Charlie Gerard
TECHNICAL
• Needs training for each user.



@devdevcharlie
LIMITS
Charlie Gerard
TECHNICAL
• Needs training for each user.

• Delay.

@devdevcharlie
LIMITS
Charlie Gerard
TECHNICAL
• Needs training for each user.

• Delay.

• Few mental commands available.
@devdevcharlie
LIMITS
Charlie Gerard
USER EXPERIENCE
• We want seamless interactions.
@devdevcharlie
LIMITS
Charlie Gerard
USER EXPERIENCE
• We want seamless interactions.
• No trust in technology as soon as it fails us.
@devdevcharlie
LIMITS
Charlie Gerard
USER EXPERIENCE
• We want seamless interactions.
• No trust in technology as soon as it fails us.
• Real value.
@devdevcharlieCharlie Gerard
We haven’t figured out
people.
@devdevcharlie
EXAMPLE
Charlie Gerard
MIT PROJECT
TED talk - Meet the SixthSense interaction
POSSIBILITIES6
@devdevcharlieCharlie Gerard
Augmentation, not replacement
@devdevcharlie
POSSIBILITIES
Charlie Gerard
AUGMENTATION
• Accessibility




@devdevcharlie
POSSIBILITIES
Charlie Gerard
AUGMENTATION
• Accessibility


• Mental health


@devdevcharlie
POSSIBILITIES
Charlie Gerard
AUGMENTATION
• Accessibility


• Mental health


• Art
@devdevcharlie
POSSIBILITIES
Charlie Gerard
ART
@devdevcharlieCharlie Gerard
Useless is not worthless
NEXT STEPS7
@devdevcharlieCharlie Gerard
NEXT STEPS
• Web bluetooth or Web USB.



@devdevcharlieCharlie Gerard
NEXT STEPS
• Web bluetooth or Web USB.

• Access to raw EEG data.

@devdevcharlieCharlie Gerard
NEXT STEPS
• Web bluetooth or Web USB.

• Access to raw EEG data.

• Try other device:
• OpenBCI
• Enobio
@devdevcharlieCharlie Gerard
OTHER DEVICES
AlterEgo



YOU?8
@devdevcharlieCharlie Gerard
WHAT CAN YOU DO?
• Ask yourself “what if”?
@devdevcharlieCharlie Gerard
WHAT CAN YOU DO?
• Ask yourself “what if”?
• Forget about value
@devdevcharlieCharlie Gerard
WHAT CAN YOU DO?
• Ask yourself “what if”?
• Forget about value
• Experiment
@devdevcharlieCharlie Gerard
WHAT CAN YOU DO?
• Ask yourself “what if”?
• Forget about value
• Experiment
• Have fun
RESOURCES9
@devdevcharlieCharlie Gerard
RESOURCES
Node-gyp
Nan
Bindings
Node.js addons
Emotiv epoc
Github repo epoc.js
NeuroTechX - Slack channel
OpenBCI
Enobio
TED Talk - Meet the SixthSense interaction
MIT Project AlterEgo
RECAP10
@devdevcharlieCharlie Gerard
RECAP
• Tech is already there
@devdevcharlieCharlie Gerard
RECAP
• Tech is already there
• Useless is not worthless
@devdevcharlieCharlie Gerard
RECAP
• Tech is already there
• Useless is not worthless
• Don’t be afraid to experiment - you can do this!
THANK YOU!
Charlie Gerard
@devdevcharlie

More Related Content

Similar to Charlie Gerard- Mind Control in Javascript (Evolution)

Introduction to AngularJS
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJSPat Cito
 
All a flutter about Flutter.io
All a flutter about Flutter.ioAll a flutter about Flutter.io
All a flutter about Flutter.ioSteven Cooper
 
JQuery in Seaside
JQuery in SeasideJQuery in Seaside
JQuery in SeasideESUG
 
Event-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 EngineEvent-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 EngineRicardo Silva
 
Cordova: Making Native Mobile Apps With Your Web Skills
Cordova: Making Native Mobile Apps With Your Web SkillsCordova: Making Native Mobile Apps With Your Web Skills
Cordova: Making Native Mobile Apps With Your Web SkillsClay Ewing
 
jQuery & 10,000 Global Functions: Working with Legacy JavaScript
jQuery & 10,000 Global Functions: Working with Legacy JavaScriptjQuery & 10,000 Global Functions: Working with Legacy JavaScript
jQuery & 10,000 Global Functions: Working with Legacy JavaScriptGuy Royse
 
From Idea to App (or “How we roll at Small Town Heroes”)
From Idea to App (or “How we roll at Small Town Heroes”)From Idea to App (or “How we roll at Small Town Heroes”)
From Idea to App (or “How we roll at Small Town Heroes”)Bramus Van Damme
 
node.js - Eventful JavaScript on the Server
node.js - Eventful JavaScript on the Servernode.js - Eventful JavaScript on the Server
node.js - Eventful JavaScript on the ServerDavid Ruiz
 
Beyond Breakpoints: A Tour of Dynamic Analysis
Beyond Breakpoints: A Tour of Dynamic AnalysisBeyond Breakpoints: A Tour of Dynamic Analysis
Beyond Breakpoints: A Tour of Dynamic AnalysisC4Media
 
Why you should be using the shiny new C# 6.0 features now!
Why you should be using the shiny new C# 6.0 features now!Why you should be using the shiny new C# 6.0 features now!
Why you should be using the shiny new C# 6.0 features now!Eric Phan
 
soft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.jssoft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.jssoft-shake.ch
 
Javascript first-class citizenery
Javascript first-class citizeneryJavascript first-class citizenery
Javascript first-class citizenerytoddbr
 
stackconf 2021 | Why you should take care of infrastructure drift
stackconf 2021 | Why you should take care of infrastructure driftstackconf 2021 | Why you should take care of infrastructure drift
stackconf 2021 | Why you should take care of infrastructure driftNETWAYS
 
Crossing the Bridge: Connecting Rails and your Front-end Framework
Crossing the Bridge: Connecting Rails and your Front-end FrameworkCrossing the Bridge: Connecting Rails and your Front-end Framework
Crossing the Bridge: Connecting Rails and your Front-end FrameworkDaniel Spector
 
HTML5 for the Silverlight Guy
HTML5 for the Silverlight GuyHTML5 for the Silverlight Guy
HTML5 for the Silverlight GuyDavid Padbury
 
Javascript unit testing, yes we can e big
Javascript unit testing, yes we can   e bigJavascript unit testing, yes we can   e big
Javascript unit testing, yes we can e bigAndy Peterson
 

Similar to Charlie Gerard- Mind Control in Javascript (Evolution) (20)

Introduction to AngularJS
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJS
 
All a flutter about Flutter.io
All a flutter about Flutter.ioAll a flutter about Flutter.io
All a flutter about Flutter.io
 
Node azure
Node azureNode azure
Node azure
 
JQuery in Seaside
JQuery in SeasideJQuery in Seaside
JQuery in Seaside
 
Coding Naked 2023
Coding Naked 2023Coding Naked 2023
Coding Naked 2023
 
Event-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 EngineEvent-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 Engine
 
Cordova: Making Native Mobile Apps With Your Web Skills
Cordova: Making Native Mobile Apps With Your Web SkillsCordova: Making Native Mobile Apps With Your Web Skills
Cordova: Making Native Mobile Apps With Your Web Skills
 
jQuery for Seaside
jQuery for SeasidejQuery for Seaside
jQuery for Seaside
 
jQuery & 10,000 Global Functions: Working with Legacy JavaScript
jQuery & 10,000 Global Functions: Working with Legacy JavaScriptjQuery & 10,000 Global Functions: Working with Legacy JavaScript
jQuery & 10,000 Global Functions: Working with Legacy JavaScript
 
From Idea to App (or “How we roll at Small Town Heroes”)
From Idea to App (or “How we roll at Small Town Heroes”)From Idea to App (or “How we roll at Small Town Heroes”)
From Idea to App (or “How we roll at Small Town Heroes”)
 
node.js - Eventful JavaScript on the Server
node.js - Eventful JavaScript on the Servernode.js - Eventful JavaScript on the Server
node.js - Eventful JavaScript on the Server
 
Beyond Breakpoints: A Tour of Dynamic Analysis
Beyond Breakpoints: A Tour of Dynamic AnalysisBeyond Breakpoints: A Tour of Dynamic Analysis
Beyond Breakpoints: A Tour of Dynamic Analysis
 
Why you should be using the shiny new C# 6.0 features now!
Why you should be using the shiny new C# 6.0 features now!Why you should be using the shiny new C# 6.0 features now!
Why you should be using the shiny new C# 6.0 features now!
 
soft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.jssoft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.js
 
Javascript first-class citizenery
Javascript first-class citizeneryJavascript first-class citizenery
Javascript first-class citizenery
 
stackconf 2021 | Why you should take care of infrastructure drift
stackconf 2021 | Why you should take care of infrastructure driftstackconf 2021 | Why you should take care of infrastructure drift
stackconf 2021 | Why you should take care of infrastructure drift
 
Having Fun with Play
Having Fun with PlayHaving Fun with Play
Having Fun with Play
 
Crossing the Bridge: Connecting Rails and your Front-end Framework
Crossing the Bridge: Connecting Rails and your Front-end FrameworkCrossing the Bridge: Connecting Rails and your Front-end Framework
Crossing the Bridge: Connecting Rails and your Front-end Framework
 
HTML5 for the Silverlight Guy
HTML5 for the Silverlight GuyHTML5 for the Silverlight Guy
HTML5 for the Silverlight Guy
 
Javascript unit testing, yes we can e big
Javascript unit testing, yes we can   e bigJavascript unit testing, yes we can   e big
Javascript unit testing, yes we can e big
 

More from Thoughtworks

Design System as a Product
Design System as a ProductDesign System as a Product
Design System as a ProductThoughtworks
 
Designers, Developers & Dogs
Designers, Developers & DogsDesigners, Developers & Dogs
Designers, Developers & DogsThoughtworks
 
Cloud-first for fast innovation
Cloud-first for fast innovationCloud-first for fast innovation
Cloud-first for fast innovationThoughtworks
 
More impact with flexible teams
More impact with flexible teamsMore impact with flexible teams
More impact with flexible teamsThoughtworks
 
Culture of Innovation
Culture of InnovationCulture of Innovation
Culture of InnovationThoughtworks
 
Developer Experience
Developer ExperienceDeveloper Experience
Developer ExperienceThoughtworks
 
When we design together
When we design togetherWhen we design together
When we design togetherThoughtworks
 
Hardware is hard(er)
Hardware is hard(er)Hardware is hard(er)
Hardware is hard(er)Thoughtworks
 
Customer-centric innovation enabled by cloud
 Customer-centric innovation enabled by cloud Customer-centric innovation enabled by cloud
Customer-centric innovation enabled by cloudThoughtworks
 
Amazon's Culture of Innovation
Amazon's Culture of InnovationAmazon's Culture of Innovation
Amazon's Culture of InnovationThoughtworks
 
When in doubt, go live
When in doubt, go liveWhen in doubt, go live
When in doubt, go liveThoughtworks
 
Don't cross the Rubicon
Don't cross the RubiconDon't cross the Rubicon
Don't cross the RubiconThoughtworks
 
Your test coverage is a lie!
Your test coverage is a lie!Your test coverage is a lie!
Your test coverage is a lie!Thoughtworks
 
Docker container security
Docker container securityDocker container security
Docker container securityThoughtworks
 
Redefining the unit
Redefining the unitRedefining the unit
Redefining the unitThoughtworks
 
Technology Radar Webinar UK - Vol. 22
Technology Radar Webinar UK - Vol. 22Technology Radar Webinar UK - Vol. 22
Technology Radar Webinar UK - Vol. 22Thoughtworks
 
A Tribute to Turing
A Tribute to TuringA Tribute to Turing
A Tribute to TuringThoughtworks
 
Rsa maths worked out
Rsa maths worked outRsa maths worked out
Rsa maths worked outThoughtworks
 

More from Thoughtworks (20)

Design System as a Product
Design System as a ProductDesign System as a Product
Design System as a Product
 
Designers, Developers & Dogs
Designers, Developers & DogsDesigners, Developers & Dogs
Designers, Developers & Dogs
 
Cloud-first for fast innovation
Cloud-first for fast innovationCloud-first for fast innovation
Cloud-first for fast innovation
 
More impact with flexible teams
More impact with flexible teamsMore impact with flexible teams
More impact with flexible teams
 
Culture of Innovation
Culture of InnovationCulture of Innovation
Culture of Innovation
 
Dual-Track Agile
Dual-Track AgileDual-Track Agile
Dual-Track Agile
 
Developer Experience
Developer ExperienceDeveloper Experience
Developer Experience
 
When we design together
When we design togetherWhen we design together
When we design together
 
Hardware is hard(er)
Hardware is hard(er)Hardware is hard(er)
Hardware is hard(er)
 
Customer-centric innovation enabled by cloud
 Customer-centric innovation enabled by cloud Customer-centric innovation enabled by cloud
Customer-centric innovation enabled by cloud
 
Amazon's Culture of Innovation
Amazon's Culture of InnovationAmazon's Culture of Innovation
Amazon's Culture of Innovation
 
When in doubt, go live
When in doubt, go liveWhen in doubt, go live
When in doubt, go live
 
Don't cross the Rubicon
Don't cross the RubiconDon't cross the Rubicon
Don't cross the Rubicon
 
Error handling
Error handlingError handling
Error handling
 
Your test coverage is a lie!
Your test coverage is a lie!Your test coverage is a lie!
Your test coverage is a lie!
 
Docker container security
Docker container securityDocker container security
Docker container security
 
Redefining the unit
Redefining the unitRedefining the unit
Redefining the unit
 
Technology Radar Webinar UK - Vol. 22
Technology Radar Webinar UK - Vol. 22Technology Radar Webinar UK - Vol. 22
Technology Radar Webinar UK - Vol. 22
 
A Tribute to Turing
A Tribute to TuringA Tribute to Turing
A Tribute to Turing
 
Rsa maths worked out
Rsa maths worked outRsa maths worked out
Rsa maths worked out
 

Recently uploaded

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsAndrey Dotsenko
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 

Charlie Gerard- Mind Control in Javascript (Evolution)