Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
BayNode Meetup June 2014
Search
Tim Cameron Ryan
June 20, 2014
Technology
1
75
BayNode Meetup June 2014
Tim Cameron Ryan
June 20, 2014
Tweet
Share
More Decks by Tim Cameron Ryan
See All by Tim Cameron Ryan
Elevator redesign: Team Unibros Final Presentation
tcr
0
420
The Science of Etherpad
tcr
2
58
Other Decks in Technology
See All in Technology
コードや知識を組み込む / Incorporate Code and knowledge
ks91
PRO
0
140
MapLibreとAmazon Location Service
dayjournal
1
180
Microsoft for Startups Founders Hub_20240429 update
daikikanemitsu
1
2.4k
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
2.1k
.NET Profiler in 2024.
kkamegawa
2
940
認知症フレンドリーテックとスタックチャン
naokiuc
0
150
Google Cloud Next '24 Recap(Cloud Run/k8s)
mokocm
0
330
プロンプトエンジニアリングでがんばらない-Agentic Workflow へ-近藤憲児
kenjikondobai
6
1.2k
Building a RAG-poweredAI chat appwith Python and VS Code
pamelafox
0
140
web-application-security
matsuihidetoshi
1
190
LangSmith入門―トレース/評価/プロンプト管理などを担うLLMアプリ開発プラットフォーム
os1ma
5
700
20分で完全に理解するGrafanaダッシュボード
hamadakoji
5
890
Featured
See All Featured
The Language of Interfaces
destraynor
151
23k
Build The Right Thing And Hit Your Dates
maggiecrowley
25
2k
Git: the NoSQL Database
bkeepers
PRO
423
63k
Art, The Web, and Tiny UX
lynnandtonic
290
19k
Designing for Performance
lara
602
67k
Writing Fast Ruby
sferik
622
60k
Docker and Python
trallard
35
2.7k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
222
21k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
26
2.3k
Become a Pro
speakerdeck
PRO
12
4.6k
The Illustrated Children's Guide to Kubernetes
chrisshort
32
46k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
Transcript
Embedded JavaScript: The skills you have in 2014 will be
all you need to make physical devices Tim Ryan, Co-Founder / Developer Technical Machine
None
Tessel is a WiFi-enabled microcontroller that runs JavaScript. Tim Ryan,
Co-Founder / Software Developer Technical Machine
None
Embedded JavaScript
None
None
None
None
None
High-level != Developer-friendly
Open Source Hardware
None
None
None
2005 2014
2005 2003 2005
2005 2003 2005
~2010
Microcontrollers
None
8-bit 32-bit
We can today afford the processing power to make developers’
lives easier.
$4 @1K $11 @1K
None
None
Why JavaScript?
JavaScript (and asynchronous coding) is the perfect embedded language!
JavaScript (and asynchronous coding) is the perfect embedded language! —Sylvia
Plath
Ethernet TCP HTTP
Ethernet TCP HTTP (Packet-based) (Stream-based) (Packet-based)
Ethernet TCP HTTP Websockets (Packet-based) (Stream-based) (Packet-based) (Streaming…)
None
None
None
None
None
def receive_packet(): buf = sock.recv() return buf while True: print(receive_packet())
Future<byte[]> p = pool.submit(new Callable<byte[]>() { public byte[] call() {
return socket.recv(); } } // ... while waiting ... p.get();
socket.on(‘data’, function (data) { // handle data buffer }); //
... other code ...
Inventing the Universe
None
• Chrome’s JS engine • C++ • ~10mb memory required
for each instance • POSIX/Win32 environment
• Embeddable language • Written in C • ~30kb memory
• Highly portable
• Embeddable language • Written in C • ~30kb memory
• Highly portable • 10x-100x slower
JS VM HTTP Parsing DNS SSL Memory management Filesystem Tar
JSON Unicode TCP/IP
JS VM HTTP Parsing DNS SSL Memory management Filesystem Tar
JSON Unicode TCP/IP tessel/colony wecing/utf8proc lloyd/yajl bagder/c-ares dsheets/axtls joyent/http-parser abbrev/fatfs colorer/dlmalloc
Lesson Learned: When reinventing everything, reuse as much as possible.
None
None
What Comes Next
It’s becoming feasible to embed in every product a microcontroller
powerful enough to run a high level language.
HTTP
HTTP SPI I2C UART
None
None
http://github.com/tessel/firmware http://github.com/tessel/runtime
None
Be bold! Be courageous! Be amazing!
Be bold! Be courageous! Be amazing! Build robots!
Be bold! Be courageous! Be amazing! Build robots! — Sylvia
Plath
[email protected]
@technicalhumans http://tessel.io