Rachel White

Rachel White is a technologist, artist, and pretend-cyborg who is currently a Developer Experience Lead, member of the Node.js Community Committee, and co-host of the Changelog podcast JSParty. She is interested in new uses for old hardware, useless robots, VR/AR/MR, and bots. She has spoken internationally about Node.js, JavaScript, Creative Coding, IoT, Artificial Intelligence, NodeBots, and hardware. She's a previous artist in residence at Pioneer Works where she worked on a series that visualized what modern cybernetic augmentation could look like with todays hardware and special effects makeup. Her other interests include glitch art, 80s horror, and indie games. Her aesthetic is fog machines, laser lights, and broken VHS tapes.

Nov. 23, 10:45 - 11:15, Room A

Look What You MIDI Me Do!

Who loves pushing buttons? You? And you over there? And the person behind you? Oh wait, everyone loves it?!!? Of course they do, a button is irresistible. Now… what if I told you that you could hook up a LOT of buttons to your computer… and use it to do wild things with the web? I’m glad you’re listening! Let’s take a journey into the Web MIDI api where the possibilities of the web aren’t just at your keyboard fingertips anymore, they’re literally any MIDI compatible controller you have connected! Want to make glitchy audio responsive visuals with WebGL shaders? Rad, we can do that. Want to create custom beats and have those input as a drum machine? No problem when you throw a little Web Audio API in the mix. Let’s dive in and find out how!

Anna Henningsen

Over the last 2 and a half years, Anna has been one of the most active contributors to Node.js core. Currently pursuing a Master’s degree in mathematics in Germany, she is fueled by a passion for Node and its community.

Nov. 23, 11:15 - 11:45, Room A

Node.js: The Road to Workers

Workers, and threading support in general, have been one of the most frequently requested features for Node.js over the last years. Finally, the finishing line is in sight and we’re pretty excited to have experimental support available! This talk will tell you everything around the API, features, use cases & alternatives, our roadmap, and the technical and social challenges that we had to overcome to make it happen!

Daniel Ehrenberg

Daniel Ehrenberg is a TC39 delegate who works for Igalia, a Galician free software consultancy. He lives in Catalunya.

Nov. 23, 13:00 - 13:30, Room A

JavaScript Class Features: A case study in TC39

ES6 classes were intentionally minimal, containing only public method declarations. Now, TC39 is considering adding several other features to classes: private, fields, and decorators. In this talk, we'll see how these proposals work in detail, the process that got them there, and how you can get involved. TC39 needs your help to build features like these and the future of JavaScript.

Sanne Kalkman

Sanne is a former teacher turned (mostly self-taught) software engineer. Currently, she works at TELE2 in Amsterdam, building applications that help her colleagues keep an eye on anything network-related. When she's not coding, you'll probably find her either 25 browser tabs deep into a new CS topic, or behind her sewing machine.

Nov. 23, 13:30 - 14:00, Room A

Who Takes Out Your Trash

In our daily development lives, most of us don’t have to worry about unused objects gathering cobwebs and filling up the memory. All we need to know is that our language has a garbage collector that just comes by and makes our trash disappear. Somehow it figures out what should stay and what can go, our program can keep going without running out of space, and we don’t have to do a thing.

It is not in fact magic that takes care of the garbage, and this talk will show you how it’s done. First, we’ll explore how two of the most common garbage collection algorithms, reference counting and tracing, figure out what is ready to be collected. Next, we’ll see how we could get the garbage truck out of the way faster by using a generational algorithm, and finally we’ll have a brief look at how Python’s garbage collection works.

This friendly introduction to taking out the trash gives an overview of important aspects of garbage collection algorithms. It is specifically meant to be accessible developers of all levels and you’ll walk away with an understanding of and appreciation for all the hard work that goes on behind the scenes.

Colin Ihrig

Colin Ihrig is a member of the Node.js Core Technical Committee, a libuv collaborator, and a hapi.js core team member. Colin is the author of Pro Node.js for Developers, and co-author of Full Stack JavaScript Development with MEAN.

Nov. 23, 14:15 - 14:45, Room A

libuv: What's a Unicorn Velociraptor?

libuv is what gives Node.js its event loop and cross-platform asynchronous I/O capabilities. This talk explains what libuv is all about, and how it's used by Node.js. This talk also looks at recent development efforts in the libuv project.

Giovanny Gongora

Support Engineer at NodeSource. At NodeSource I spend time working on products, giving talks and fixing other companies issues related to Node.js. I created my own lisp based language, a modern CSS framework and a ton of C libs because I enjoy learning and having fun during the process. Previously worked at Mozilla porting Firefox OS to ARM devices, building IoT tools for web developers and speaking about Rust, Node.js and embedded OS development.

Nov. 23, 14:45 - 15:15, Room A

Leak Hunting: Finding and debugging a memory leak in Node.js

Performance metrics? Response time higher? Memory leak? We would walk through different memory leak situations to identify and analyze patterns that produce an increase of memory, CPU usage, and the load average over time, without any apparent reason. We'll start talking about taking the time to set up a proper test environment to repeat the exact same conditions as in production. Then we'll discuss how to access Node.js memory using V8 Inspector & Chrome Dev Tools, create a dump of the heap memory for the inspected application, with a lot of details about the memory usage, watching memory allocation in real time and finally a compilation of best practices about how we could end fixing the memory leak. In the end, we'll be able to use the right tools to monitor, understand, and debug the memory consumption of a Node.js application on time.

Mathias Buus

Mathias Buus is a self taught JavaScript hacker from Copenhagen that has been working with Node.js since the 0.2 days. Mathias likes to work with P2P and distributed systems and is the author of more than 650 modules on npm. He is also the Chief of Research at Beaker leading the technical work on the Dat protocol.

Nov. 23, 15:30 - 16:00, Room A

Offline-First Collaborative Data Structures

The web is growing bigger and bigger every year.
With the increasing rise of the mobile internet and
with users in places that have spotty or slow internet
we've have seen an increased interest in making things work
offline, without degrading user experience.

This talk is a hands-on talk about a series of data structures
that allow you to build complex websites that work offline and p2p,
whilst still allowing you to build collaborative applictions, such as
chat applications, shared TODO lists and more.

I'll be talking about cool new data structures such as the HAMT
(Hash Array Mapped Trie) on top of append-only logs and why this
is the future of the offline-first internet.

Expect modules you can use *today* to start implmenting great
collaborative offline-first applications and plenty of demos.

Jim Pick

Jim is a software developer based in Vancouver, Canada. In the past year, he has worked for both the Dat Project and Protocol Labs (IPFS). He is also a co-host of the DatCast podcast. Over the years, Jim has been involved in many open source communities, including the Debian project, the Linux kernel, and Node.js. 簡単な日本語なら話せます。

Nov. 23, 16:00 - 16:30, Room A

Visualizing the Decentralized Web

A new generation of peer-to-peer protocols is coming to the web. Browsers will soon be able to talk directly to each other, without the need for centralized servers. Exciting new applications and social networks are being created which put people back in control of their personal data. See how IPFS, the Dat Protocol and Secure Scuttlebutt work. This presentation will use interactive visualizations to demonstrate core concepts.

Athan Reines

Athan Reines is a full-stack engineer and data scientist. He has a PhD in Physics, where he used machine learning and time series analytics to probe biological systems at the nanoscale. He currently works full-time on open source projects to facilitate numerical and scientific computing in Node.js and JavaScript. For his latest open source project, see stdlib, a standard library for Node.js and Javascript:

Nov. 23, 16:45 - 17:15, Room A

Real-Time Machine Learning in JavaScript

Real-time machine learning is a collection of statistical methods to obtain insights from continuous data streams. In this talk, I'll provide an overview of real-time machine learning algorithms and discuss how these algorithms can be implemented and used in JavaScript. I'll highlight why running these algorithms in JavaScript has several advantages compared to languages traditionally used for numerical computing, including the ability to perform client-side computations. I'll conclude by discussing best-practices and common pitfalls encountered when using machine learning algorithms within JavaScript environments.

Stephanie Nemeth

Stephanie is a developer living in Berlin. She is works at Microsoft and co-organizes the Stupid Hackathon Amsterdam. She enjoys experimenting with hardware and LEDs to make beautiful, useless things.

Nov. 23, 17:15 - 17:45, Room A

Haute Codeture

What if, instead going for practicality, we used IoT to create fleeting moments of interaction and beauty? What would happen if others could interact with my clothing via a web app? I’ll share my story of how I got started with hardware and how it’s evolved into using fashion to create interactive, artistic experiences with strangers.

Nov. 23, 18:30 - 19:45, Room A

Lightning Talks

Shuhei Iitsuka

2014 年より Google 合同会社 UX エンジニア。2017 年東京大学工学系研究科 博士課程修了。博士(工学)。機械学習とウェブの融合がもたらす、新たなユーザ体験の創出に向けて研究および制作活動を行っている。

Nov. 23, 10:45 - 11:15, Room B

Javascript で機械学習はじめよう

Javascript で機械学習する時代が本格的にやってきた。
機械学習プロジェクトとなると、今までは Python や R などのプログラミング言語で記述することが多かった。しかし、最近 TensorFlow.js をはじめとする 機械学習のための Javascript ライブラリが登場しはじめたことにより、その状況は変わりつつある。Javascript で機械学習を記述することによって、ウェブサーバとの通信を必要としないウェブブラウザ上での学習・推論や、クライアントの GPU の活用など、さまざまなメリットを享受できる。
このセッションでは、Javascript で機械学習することの意味、そして TensorFlow.js を用いてウェブアプリケーションを構築する方法について実例を交えながら解説したいと思う。


WebRTC/WebVR のようなブラウザの最新機能をを活かすにはサーバー側の仕組みも不可欠です。手軽にサーバーを構築できる環境として、node.js の世界に足を踏み入れました。
WebRTC Meetup Tokyo および WebRTC Beginners Tokyo のスタッフ、 にて WebRTC 関連の記事も掲載しています。

Nov. 23, 11:15 - 11:45, Room B

Node.jsでつくるNode.js ミニインタープリター&コンパイラー

「RubyでつくるRuby ゼロから学びなおすプログラミング言語入門」という書籍に感銘を受けて、自分でもミニNode.js インタープリターを作ってみました。それを通して変数や関数のスコープについてより深く理解することができました。


Daiki Arai

PAY 株式会社(PAY, Inc.):業務委託エンジニア

Nov. 23, 13:00 - 13:30, Room B

Diagnose your Node.js app

想定対象者: Node.js初学者(≠プログラミング初心者)から中級者まで



・ Tracing: 非同期APIのライフタイムや各種パフォーマンスの可視化
・ Profiling: stack profilerを利用した改善
・ Analysis: あえてアプリケーションをクラッシュさせて指標を得るpost-mortemの考え方などの観点で、実際にコードを診断してみます。


株式会社ビズリーチで主にフロントエンドをやっています。最近の趣味は GraphQL です。

Nov. 23, 13:30 - 14:00, Room B

State of SEO for SPA




辻 健人

学生時代から趣味,アルバイトで React に触れてきた,2018年4月にリクルートテクノロジーズに新卒入社し,大規模 SPA のパフォーマンスチューニングなどで貢献している

Nov. 23, 14:15 - 14:45, Room B

React におけるパフォーマンスチューニング

React で作成された大規模SPAにおいて,再レンダリングの最適化をはじめとした パフォーマンスチューニング
や ボトルネックの発見方法,具体的な改善事例について

榊原 昌彦

Ionic Japan Users Group 代表、Ionic Framework コントリビューター、一般社団法人リレーションデザイン研究所代表など。著書「Ionicで作るモバイルアプリ制作入門」。

Nov. 23, 14:45 - 15:15, Room B

WebアプリをNativeアプリにする Capacitor が広げるWebの可能性



鈴木 亮太

Fringe81 でエンジニアをしています。メインはフロントエンドでelmを書いています。

Nov. 23, 15:30 - 16:00, Room B

実践GraphQL for クライアント側


飯塚 大貴

Nota Inc. Software Engineer

Nov. 23, 16:00 - 16:30, Room B

Service Workerを用いたキャッシング戦略 〜Wikiアプリケーションを例に〜

ユーザーによってコンテンツが頻繁に更新されるようなウェブサービスにService Workerを導入して、ローカルに持てるリソースを徐々に増やし活用していく取り組みについてお話します。Nota Inc.で開発・運営する
Scrapbox という、サーバーサイドにNode.js (Express, Socket.IO)、クライアントサイドにReactを使用したフルJavaScript実装なWikiアプリでの具体例を示しつつ、他のサービスでも汎用的に採用できるキャッシング戦略を紹介します。

・ Single Page Application として全ページで共通に使われる、最初のhtmlのキャッシュ
・ ホワイトリスト方式での静的リソースのキャッシュ
・ リンクをmouseoverした際のページコンテンツのprefetch
・ ページコンテンツのキャッシュに関する検討中のアイデアなど


Masato Ohba

Masato Ohba is currently an engineering manager at Quipper and works for StudySapuri, which is one of the most popular education services in Japan. He mainly develops web applications with Ruby on Rails and single page applications written in React.

Besides his work, he recently started organizing an event and a community named Engineering Manager Meetup.

Quipperで教育サービス「スタディサプリ」の開発・運用をしています。Ruby on Rails による Web application、mobile application 向け API 開発、Single Page Application 開発が主な業務内容です。

また、Engineering Manager Meetup というイベントを主催しています。

Nov. 23, 16:45 - 17:15, Room B

貢献できるOSSの見つけ方 -完結編-

この期待値のギャップと、貢献したいが誰が何を求めているのかわからないという情報の不透明性をContribution Accessibilityと本トークでは呼び、解決したい課題と位置づけます。
Contribution Accessibilityを解消する一助として開発した goofi というツールをご紹介します。
また、同ツールはTypeScript, React, Next.js, GraphQLなどのJavaScript周辺技術を使用しているため、これらの技術要素の選定理由や使用しての所感・考察もお伝えします。




ウェブサービスやアプリの開発だけでなく Raspberry Pi などの電子工作や Slack などのチャットボットなどと、いろいろと手を出す。

Nov. 23, 17:15 - 17:45, Room B

Vue.js/Nuxt.js で 実現できた PWA の リアルタイム動画ラップ・バトル・アプリ

スマートフォンやタブレット向けのモバイルアプリは PWA (Progressive Web Apps) による Web 技術を使った形態が期待されてきています。
わずか 24時間という開発期間で、リアルタイムな動画配信を使ったラップのバトルと観戦が同時に行え、観戦者がリアルタイムにフィードバック・エフェクトを返せるアプリを、通常5人チームのところ 3人の少人数で作り上げています。
モバイルアプリのハッカソンとしてネイティブ系開発チームが並み居る中で、唯一 PWA を 武器に戦い 受賞できたのは、Vue.js/Nuxt.js の 活用があったからといって過言ではないでしょう。
また PWA は CI/CD と 相性が良く Agile プラクティスの常にアクセス可能なプロトタイプ環境の提供が行いやすいです。
そして この特性と、Vue.js/Nuxt.js の Web Components による相乗効果が、開発の高速化と品質の向上をもたらします。
このように、スマホ・アプリ開発においても Vue.js/Nuxt.js は 非常に強力に機能します。
本セッションでは Vue.js/Nuxt.js で PWA の リアルタイム動画ラップ・バトル・アプリ を いかにして作り上げたのか、どのように活用したのか、Vue.js/Nuxt.js の 技術を、デモを交えて ご紹介します。
・ PWA(Progressive Web Apps) の 概要
・ Vue.js/Nuxt.js を 使った PWA な モバイルアプリ の 開発手法
・ GitHub、CircleCI、GitHuba Pages を 使った 常にアクセス可能なプロトタイプ環境を持つ PWA アプリ開発環境

Vladimir de Turckheim

Vladimir is an active contributor of the Node.js project especially in the Security Working Group. He has been leading the ecosystem security initiative in the WG. He has been publishing multiple articles regarding Node.js security and performance.

Nov. 23, 10:45 - 11:15, Room E

How I made critical code run much faster

I have this critical piece of code. It has to run fast otherwise my clients complain. Also it is synchronous so I want it to have a small impact on the performance of the applications. This is the story of how I spent a week to gain microseconds in some very critical piece of code.

Mauricio Palma

A self-educated UI Developer working at SinnerSchrader. As part of the product engineering team, he works as a proxy between the design and engineering teams. You’ll find him in that sweet spot where art meets science. Using technology to craft user-centric experiences.

He’s currently also leading the educational program module 'Modern Software Development' at SinnerSchrader.

He is also the co-founder of Woodlike Ocean and an engaged social entrepreneur.

Nov. 23, 11:15 - 11:45, Room E

Accessibility vs latest Web APIs. Can’t we just get along?

Unfortunately, we still treat accessibility in the same way we deal with front-end development for older browsers, something to be done at the end. What if I tell you that we can use the latest Web APIs and still offer an inclusive and accessible experience.

In this talk, you'll learn how to combine Web APIs such as Speech Recognition and Geolocation, with performant Javascript techniques to create empathic user interfaces.

Martin Heidegger

Martin has been freelance OSS developer from Austria living in Osaka, Japan for many years. For several years now he focuses on Node.js as his main development platform and is an active member of the Osakan developer community.

Nov. 23, 13:00 - 13:30, Room E

A trillion points with Node.js

I will be presenting our progress of using DAT to create a open-source visualization system for very large point-cloud data sets. This visualization system is entirely built on JavaScript and can enable new ways how we share and use data.

James K Nelson

Hi! I've been playing with JavaScript for over half my life, and I'm building Frontend Armory to help share what I've learned in the process!

Nov. 23, 13:30 - 14:00, Room E

Navi: painless routing for React

Navi is a new kind of router: as your app's URL changes, it starts fetching the new URL's content, and then it *waits*. It then renders the page *once the content has loaded*.

Delayed rendering makes routing simpler. Instead of manually managing component state and loading spinners, you just assign URLs to content using `async`/`await` and `import()`. Navi does the rest -- it fetches your content, manages your page's `<title>` and scroll position, and even warns you about broken links!

In this talk, I'll introduce Navi, and use it to live code a static website with create-react-app.

Daiki Yokoi

Node.js と TypeScript はもちろん、C/C++ での開発やAWSのインフラ構成について考えるのが好きです。

Nov. 23, 14:15 - 14:45, Room E


ビットバンク株式会社では仮想通貨取引所 を開発・運営しております。

Koji Hirano

合同会社 ブロックチェーン研究室 フロントエンドエンジニア

Nov. 23, 14:45 - 15:15, Room E



今村 謙士

株式会社カブク所属のフロントエンドエンジニア。前職では React で SSR していましたが、現職に移ってから Angular を始め、この度 SSR する運びとなりました。

Nov. 23, 15:30 - 16:00, Room E

Angular Universal on Google App Engine

今年の6月からNode.jsがサポートされたGoogle App Engine Standard Environmentで、Angularアプリケーションをserver-side rendering (SSR)した事例についてご紹介します。

Angular UniversalはAngularでSSRを可能にするためのプロジェクトであり、今回のアプリケーションはこのプロジェクトが提供するツールを利用しています。現時点で公式ドキュメントがあまり充実していないため、実際にアプリケーション開発を進める中で得られた知見を共有することで、その部分を補ればと思います。たとえば、開発中にローカルでファイルをwatchしながらSSRする方法や、サーバサイドで取得した状態をクライアントサイドに伝播する方法などが含まれます。

また、Angular Universalでは未提供の、必要なリソースをHTTP/2 Server Pushする機能を独自に実装し(ようとし)たお話もする予定です。

宮崎 優太郎

Vue.js や React を中心に SPA 開発をしています。現在はメルカリという会社のフロントエンドエンジニアです。

Nov. 23, 16:00 - 16:30, Room E

React + Apollo Client (GraphQL) により変化するアプリケーション設計

GraphQL を利用した Web アプリケーション開発において、Apollo Client を導入することによりクライアントの設計は大きく変化します。コードはより容易に簡素化され、関心事の分離という観点からも GraphQL を導入するメリットをより大きくしてくれます。
このトークでは Apollo についてや、それによってどのようにクライアントの設計が変わってくるのかという話をしたいと思います。

Nov 23


Nov 24 Interactive
Room A Room B Room C Room D Room E

Doors Open


Look What You MIDI Me Do!

Javascript で機械学習はじめよう



How I made critical code run much faster

Node.js: The Road to Workers

Node.jsでつくるNode.js ミニインタープリター&コンパイラー

Accessibility vs latest Web APIs. Can’t we just get along?

JavaScript Class Features: A case study in TC39

Diagnose your Node.js app

A trillion points with Node.js

Who Takes Out Your Trash

State of SEO for SPA

Navi: painless routing for React

libuv: What's a Unicorn Velociraptor?

React におけるパフォーマンスチューニング


Leak Hunting: Finding and debugging a memory leak in Node.js

WebアプリをNativeアプリにする Capacitor が広げるWebの可能性


Offline-First Collaborative Data Structures

実践GraphQL for クライアント側

Angular Universal on Google App Engine

Visualizing the Decentralized Web

Service Workerを用いたキャッシング戦略 〜Wikiアプリケーションを例に〜

React + Apollo Client (GraphQL) により変化するアプリケーション設計

Real-Time Machine Learning in JavaScript

貢献できるOSSの見つけ方 -完結編-

Haute Codeture

Vue.js/Nuxt.js で 実現できた PWA の リアルタイム動画ラップ・バトル・アプリ

Sponsor Talk

Lightning Talks

After Party

10:00 - 10:30
10:30 - 10:45
10:45 - 11:15
11:15 - 11:45
11:45 - 13:00
13:00 - 13:30
13:30 - 14:00
14:00 - 14:15
14:15 - 14:45
14:45 - 15:15
15:15 - 15:30
15:30 - 16:00
16:00 - 16:30
16:30 - 16:45
16:45 - 17:15
17:15 - 17:45
17:45 - 18:00
18:00 - 18:30
18:30 - 19:45
19:45 - 20:15
20:15 - 22:00

Yuta Hiroto


Nov. 24, 15:00 - 17:00, Room A

Code And Learn

Code & Learn events allow you to get started (or go further) with Node.js core contributions. Experienced contributors help guide you through your first (or second or third or fourth) commit to Node.js core. They also are available to provide impromptu guided tours through specific areas of Node.js core source code.

Nov. 24, 17:00 - 18:00, Room A

Lightning Talks


Nov. 24, 10:30 - 17:00, Room B


Tokuyama Yuka


Nov. 24, 10:30 - 15:00, Room D

Workshop: Building hardware

Yan Fan

Yan Fan is co-founder and CTO of Code Chrysalis. Prior, she has worked as an engineer at Ayasdi, an instructor for a prep programming course run by a leading Silicon Valley bootcamp, and CTO of a coding bootcamp in Jordan. Before she embarked on her career in tech, she worked in commodities trading. She holds degrees in Economics and Arabic from Dartmouth College.

Nov. 24, 15:00 - 17:00, Room D

Workshop: Hands-On React

An accelerated workshop to get your hands dirty with React. We'll cover the following topics:

・ Difference between framework and a library
・ What's special about React?
・ Non-React things like Babel and transpilation
・ React components & JSX
・ React component Lifecycle
・ State management
・ React patterns
・ State vs stateless components

This workshop is best for developers who have never used React or have only used it a little and want to gain deeper understanding.

Martin Heidegger

Martin has been freelance OSS developer from Austria living in Osaka, Japan for many years. For several years now he focuses on Node.js as his main development platform and is an active member of the Osakan developer community.

Nov. 24, 10:30 - 11:40, Room E

ワークショップ: 分散ストレージ体験


分散ストレージはデータ保存やデータ利用に関するエキサイティングで新たな方法です。DAT プロジェクトのよく出来た
Node.js 版ライブラリを利用することで、私たちは DAT を使った分散ストレージを体験できます。このワークショップではツールやコードを用いた
DAT ストレージ作成を通じて、分散ストレージの面白さを学ぶことができます。

・ DAT を使ってホームページを作って公開する。
・ その ホームページを Beaker Browser で見てやりとりする。
・ Node.js を使って DAT をリモートプロセスでやりとりする。

Rob Howard

Rob is a web developer from sunny Australia, who currently switches between JavaScript, Elixir, Ruby and Haskell. Having so far made a career from learning and mixing the nice parts from different programming languages, he wants nothing more than to help different programming communities to learn more from each other and become more welcoming for newcomers.

If you're a fan of essay-length tweet threads, he's on Twitter (and most other things) as @damncabbage.

Nov. 24, 13:00 - 15:00, Room E

Workshop: Building a Small Compiler in JavaScript

"Compilers" are usually-mysterious things that a lot of us actually use and rely on from day to day, eg. the JavaScript V8 compiler, the TypeScript compiler, or the Clang+LLVM compilers. Digging into how these work can be satisfying (like sleuthing a good puzzle); but some of the ways we implement them can appear in other forms, such as when validating user input, transforming big structures, or when separating side-effects from business logic.

This workshop is comprised of a short talk that introduces the main parts of a compiler, followed by an at-your-own-pace tour through building a little one of your own. We'll start with a simple language that compiles to JavaScript.

We'll be stepping through:

・ Tokenising (taking a string and turning it into a bunch of symbols),
・ Token Parsing (taking these symbols and turning it into a representation of a program), and
・ Code Generating (taking that representation and turning it into, in this case, JavaScript).

This workshop is for people who are already somewhat familiar with JavaScript (just the language itself, not any particular library or framework). To get started, you only need the workshop git repository (TBA), a Terminal / Console, Node.js 8+, and a text editor of your choice.

古川 陽介


Nov. 24, 15:00 - 17:00, Room E

Workshop: JavaScript TodoMVC

Nov 23 Conference
Nov 24


10:00 - 10:30
10:30 - 11:40
11:40 - 11:45
11:45 - 13:00
13:00 - 15:00
15:00 - 17:00
17:00 - 18:00
18:00 - 18:15
18:15 - 20:00