2019/6/1~6/2 の二日間ドイツのベルリンにて開催されたJSConf EU 2019に行ってきたのでレポートを書きます。
トーク以外にもイベント運営としてのクオリティの高さや JSConf ブランドに関してとかドイツ観光とか色々と感動したもの得たものが多くて書ききれないので、詳しくはお会いすることがあればお酒の肴にでも聞いてあげてください。
トークの概要だけ知りたい方は 1,2 日目まとめのあたりを読んで下さい。
Node.js のコラボレータなので前日まで開催される OpenJS Collab Summit にも行けたのですが、英語の Speaking/Listening で議論に参加できる自身がなくてチキった結果、自費で行くことにしました。
OpenJS Collab Summit とは、去年まで Node.js Collab Summit と呼ばれていたコラボレータたちが今後について議論する会で、ここで決まったことが次のメジャーバージョンに大きく影響したり、もっと将来的な大きな方向性を決定・合意する重要なイベントです。
10 年の歴史を持つ JS のカンファレンスです。
Ryan Dahl が Node.js を発表したり、その 9 年後に Deno を発表したりと行ったトークが有名なのかなと思います。
今回参加した 2019 の全日程のスケジュールはここから見れます。 https://2019.jsconf.eu/schedule/
メインは１ − ２日目なんですが、前後の日にもそれぞれちょっとだけ催しがあるという感じでした。
０日目は前夜祭的に行われた pre-register event（当日スムーズに入場できるようあらかじめ入場券を手に入れつつお酒飲んで交流しよう）があったので、せっかくだし行ってみました。
トークはなくて、入場券を手に入れたら野外スペースで DJ がﾄﾞｩﾝﾄﾞｩﾝ演奏してる中お酒を飲んで語らう会でした。
ただでさえ英語喋れないのにちょっと混ぜてもらっていいですかはハードル高すぎる…会場にいるのにチキってる情けなさ— れこ | 6/18 TS meetup #1 (@L_e_k_o) May 31, 2019
何してる人なのか聞いたら gulp を作ってる人と、gulp プラグインを業務用にゴリゴリ作って使い倒してる gulp ユーザの２人でした。
gulp はここ数年ほとんど使ってなかったので「まだアクティブに開発されてたんだ！」という驚きと、会で初めて話す人が著名な OSS の人ってとんでもないなと驚かされました。
勤め先の話とか初めての参加ですかーとか世間話をしつつ、gulp を今後どんな形でアップグレードしていくか（ファイルウォッチの効率化、高速化、テストの強化、プラグインの API に breaking change を絶対に起こさないよう開発する）とか、gulp-contrib へコミット、メンテナをどう確保するかとかとか、OSS 談義を聞いてました。
gulp や OSS の体制づくりなど分かる話題だったので 6-7 割くらいは聞き取れたんですが、喋ろうとするとまったく速度が追いつかなくて、20 文に１回くらい少し喋る（それも喋るのをゆっくり待ってもらいながら）って感じでした。
Back track, Side track が主にトークをしている会場で、この２つに絞ってレポートします。
各トークの概要を引用しています。引用先のページにスピーカーの Twitter や GitHub、ホームページ等のリンクがあります。
オープニングです。動画が YouTube に上がっていたので紹介します。 映像では音ひかえめなんですが、現地での音圧すごくて、テーマ曲に合わせた映像もすごく可愛く、そのあとの演奏もかっこよくて。しょっぱなから「すごいお祭りが始まった」感を味わいました。
Remember loving to read comics on a Sunday afternoon when you were a kid? Maybe you don’t. In the past, traditional print comics have made it impossible for blind and visually-impaired readers to experience their heroes’ adventures first-hand. Today an increasing number of initiatives like comic book stores for the blind aim to overcome this challenge. What if I told you that the web platform empowers us to even create comics for literally everyone? Alongside a demo application, you see how accessibility best practices enable you to craft an immersive webcomic experience that is not only engaging for the sighted but accessible for everyone.
Have you wondered how JS engines work? This past year I built an engine from scratch in Rust. It was fun, weird, exciting and sometimes exhausting. I will share my experience as well as what it is like to work on the specification, collaborate with TC39, and lessons from engines in use today.
jasonwilliams/boaという Rust で実装された JS の実行エンジンをリポジトリを題材に、Rust で JS インタプリタを実装し WebAssembly に変換しブラウザで動作デモする話でした。
※生 HTML です、ホスティング版は見つからなかった
Submitting a Question
To submit a question to the panel, please tweet us mentioning @jsconfeu and #tc39panel.
Everybody can submit a question, no conference ticket necessary! Like all our talks, this panel will be published on YouTube.
とあるので YouTube に動画がアップされるのをお待ちください
I will share my story of establishing and growing JS Community in a developing country Nepal. How tech communities will help you and other grow together ? Challenges that you might face while starting a community in your place. (Based on my experience) How to overcome these challenges ?
From its friendly developer experience to its performance benefits, a lot has been said about GraphQL. Underlying it all is the GraphQL query language, made possible by GraphQL schema language. These surprisingly versatile features have the potential to provide a single interface for all modern web app development concerns. We will start with a case study on how we use GraphQL queries as an universal interface to resolve data over a variety of datasources ranging from remote HTTP requests, to local CSV files, and in-memory data stores. Next we will explore these ideas further, using GraphQL queries as an interface over the DOM and various other web APIs.
Teaching programming to children is hard. Computer Science topics can be difficult to grasp using standard programming languages and tools. Using MIT’s Scratch programming platform, creating games and working software is simple and fun thanks to their drag and drop interface. To prove that this is as simple as it sounds, this session will be led by a 13-year-old. What better way to learn how to teach kids how to code than by learning from a kid?
Coding means power but it is also inaccessible through the usage of English. @chimeracoder showed a way to extend a Go compiler in Bengali. Very inspiring. JS devs - feel challenged to bring this to JS!! #jsconfeu2019 #jsconfeu #sketchnotes pic.twitter.com/elBpjhHAKO— Malwine (@malweene) June 1, 2019
When I became a parent, I was completely unprepared for the challenges that awaited me. I reached out to hundreds of fellow parents in tech and learned there are common challenges that simply aren’t spoken about. These focus around one fact that no one wants to admit… parenting is not fun. Parenting is stressful, difficult, and oftentimes incredibly lonely. But being a parent also makes people more organized, focused, and empathetic. We’ll explore these survey results to expose common trends and issues and discuss solutions that show how supporting parents helps all team members thrive.
Yarn の V2 についてのトーク。tink(npm)からの連続でトークというのが最高にエモかった。
出だしから気迫が凄まじく、一体なんのトークが始まるんだとドキドキしてましたが、npm 時代に得たことを活かし新しい分散型のパッケージマネージャ（レジストリ）entropic が発表されました。
With CSS animations and web animations moving elements became possible in the browser. But how one moves an object in such a way that it appears “correct” for the human eye? How does a motion feel natural? These and similar questions confronted the artists who brought cartoons to life as early as 1906. Let’s take a look behind the scenes and see how drawings learned to walk and what we can learn from it for animations in the browser.
This presentation is about server performance, which means that no time in the world would be enough to cover it all. Hopefully, I can share with you the top
You will learn about runtimes and engines, how some are more capable than others, and sometimes the obvious choice is not always the right one…
This talk is about thinking outside of the box, being creative and don’t take anything for granted. We will debunk myths about native code vs script or RAM usage, it’s going to be fast! I promise!
When I was a child I dreamt a lot about creating robots that helped me in my daily life, like tidying up my bedroom. That was just a dream till I grow up and found out that there’s something called home automation. So I decided to build Sasha, my cats’ pet sitter, that helps me by feeding my cats when I have to get home a little bit late. Sasha changed my life and my cats are stressless, because they can eat their meal at the right time.
Before personal computing became a thing, there was a handful of programmers and artists saw computers as a tool beyond their intended purpose: to create art.
In this talk, we will explore the early history of computer art, from ghostly oscilloscope paints to pre-ASCII text art. We’ll discuss how simple techniques with limited technology back then could yield compelling pieces. We’ll see how the history of computer displays and printers have evolved in the 1950s to 1980s.
For millennia, mathematicians and artists have been fascinated by polyhedra, 3D shapes that encode complex symmetries and relationships. My name is [anonymized], and for the last ten years I have dedicated my life to sharing the beauty of these shapes with the world. Join me on an epic quest filled with ancient 3D libraries, arcane mathematical data structures, and Pokémon GIFs as I strive to make my vision a reality the only way I know how: an interactive web app. Come and twist, expand, and gyroelongate polyhedra with me, and let my journey inspire you to use the web to make your own passions come to life.
To build inclusive websites, developers have to consider accessibility, performance and user flows. Crafted source code forms the foundation for thought-through UIs, but it’s not only about the code. Let’s have a look at HTTP, and to be specific, its headers that can have a direct impact on user experience.
As usage of ad blocking software has risen over the years, an entire micro-industry has popped up catering to publishers - promising to get around the ad blocker and show ads to users of ad blocking software.
Some of these techniques rely on browser bugs, or limitations of browser extensions and some are just extremely creative ways to get around ad-blockers. This has forced ad blockers to come up with their own ingenious ways to counter and block the circumvented ads.
In this talk, we’ll go over some of the techniques used in this cat and mouse game between ad blocking extensions and the people who want to circumvent them. It’s a fascinating peek into a world very few people seem to know.
Ad blocker の作者と Ad blocker を回避する広告とのせめぎあいの話でした。
Accessibility on the web for all groups including the visually and motor impaired is an important issue. But many of the usability lessons we explore on our products today are actually centuries old. Let’s explore how these concepts are manifested in coats of arms throughout history. Come learn about what we can learn from the designers of medieval crests.
Augmented reality is already making its way into everyday browsers! This talk will dive into what that might mean for the traditional web developer, and why developing immersive experiences makes so much sense on the web, even in the face of native alternatives. We will cover topics like off-the-shelf web technologies, performance, and privacy all in the context of augmented reality.
We all know and love framework-like features such as hot module replacement, reactive properties, templating, CSS-in-JS, lazy-loaded bundling, etc. Stencil is a new approach, a build-time abstraction with framework-level productivity, that generates hand-optimized components using future-proof web APIs. We’ll discuss the architecture of Stencil and the innovations a compiler can introduce to your apps and design systems!
In this talk, we’ll will walk through some of the visual magic we can create by using Houdini and its various upcoming browser APIs, and go through a live demo of how we can get started with implementation. Learn about how to use Houdini and what it means for the future of web application styling.
Thank you so much for coming to my #JSConfEU talk!! ❤️✨— Una Kravets 👩🏻💻 (@Una) June 2, 2019
Some @csshoudini resources:
📚 https://t.co/EIy2zE7uEM -All the info by @DasSurma
🚀 https://t.co/FD1bacE4p4 -😍 demos by @iamvdo
🎏 https://t.co/ZAIuMMKIuy -Spellbook @Snugug
✨ https://t.co/iHyCNDHePb -Extra.CSS by ME!
In true JSConf EU tradition, this talk itself is going be an exciting announcement. You should come if you want to be there for the beginning of a new era of the Internet.
Very few developers have the need to write super optimized code. In application development we tend to favor readability over optimization. But that’s not the case with frameworks. Developers who use frameworks expect them to run as fast as possible. In fact, speed is often a defining characteristic when choosing a framework. There are techniques that make code run faster. You’ve probably heard about linked lists, monomorphism and bitmasks, right? Maybe you’ve even used some. Well, you can find all these and a bunch of other interesting approaches in the sources of most popular JS frameworks. Over the past year I’ve seen a lot while reverse-engineering Angular and React. In this talk I want to share my findings with you. Some of you may end up applying them at work. And others, who knows, may even end up writing the next big framework.
Angular, React の contributor が内部のパフォーマンス最適化アルゴリズムについて詳しく説明するディープなトークでした
えっ、angularってDIがコンポーネントのどれに影響与えるかをbloomfilter使って高速化してんの？知らなかった #jsconfeu_ja— Yosuke FURUKAWA (@yosuke_furukawa) June 2, 2019
Performance advocates spend a lot of time telling developers how to build fast and reliable experiences on the web. Every website is built differently, however.
Instead of just listing a number of progressive enhancements and techniques, this talk will try to take a different approach. We’ll first explore who needs to consider improving their site in the first place and see if their is a messaging problem between advocates and developers in the community. We’ll then address concerns that can arise when performance is being worked on and discuss some real and practical solutions.
How WordPress built its own brand new visual editor experience from the ground up. The talk will include an introduction of WordPress and how the Gutenberg editor project started, details of how it works and how we incrementally improved the block editor over two years, and what our plans are for the future.
Wordpress の中の人による WISYWIG エディタに関するトークでした。
Wow, here's a recording of my talk at @ReactEurope. Not as good as I had hoped for! Slides are too dense, generally a bit dry, needs more examples, visuals, time explaining the problem, longer demo... Rewriting it all for for the next presentation! 😊https://t.co/Bsa5Rb5sjc— Ella van Durpe (@ellatrx) May 29, 2019
PWAs are now installable on every mobile and desktop OSs, but there is a lot of new things since last year we need to do to create a successful experience. We will start understanding the App Lifecycle on every OS including new APIs, the limitations on iOS and how to deal with them, and how WebAPK works on Android. We will mention challenges on desktop PWAs, including multi-window management and we will finally cover distribution channels, including new DOM events to improve analytics, how to create a custom Install experience, and how to distribute the app in the store.
The year is 1972 and GUI applications like no one has seen before are being built in Smalltalk: bitmaps graphics, draggable elements, drop-down menus, collapsable windows 🤯; all of them and many more coming straight from the future, powered by asynchronous message passing, object orientation, and functional programming. An unprecedented cocktail to be later rediscovered as the Actor-model.
Fast forward to the present day, and typical web applications are modeled as monolithic deeply nested structures, resembling the medium the web was built for (HTML), but leaving us handicapped to build outstanding user facing applications. 🦖
Let’s explore together what we can learn from the early days of UIs, languages like Erlang and Smalltalk, the Actor-model, and how we can apply some of these principles and ideas today to take our UIs back to the future 🚀
Until 1992, the web was largely textual, reserved almost exclusively to academia, with the charm of searching for library books via card catalogs.
The sea change came when a browser allowed for both text and images to now be displayed in the viewport. Despite some vehement opposition, this was described as the “gateway to the riches of the internet”.
This was a technological advancement that some had wagered would further fuel more advacement. We now have seen technologies like APIs, PWAs, DevTools and many more.
“The Shape Of The Web” is about both accomplishments and challenges that lay in past, present and future of the web - from its technologies employed and its employed technologists.
Offline capable web apps have come a long way in just a few years. Tools like service workers, PouchDB & CouchDB gave answers to the first questions of “can we do this, where do we begin?”, pushing new possibilities to the browser.
But taking the medical supply system online & offline for Africa’s most populous country asked us a whole new set of questions. How do you model distributed data and scalable code for 30,000 clinics? What about that growth is easy to mess up, and how do we plan for it?
“Queers hate techies,” the slogan proudly proclaimed in a window in San Francisco. Being a queer techie, I was immediately conflicted.
The tech industry provides a safe haven for many queer folks, myself included. It offers stable employement to us more willingly than other industries. These benefits don’t extend to all queer folks though, and these benefits are often revoked as soon as we step out of line. Queer folks are a model minority in an industry who’s products often negatively impact our community.
This talk will dive into these complications and how we can improve the tech industry to make it a truly welcoming place for queer folks.
Many would argue there are only two hard problems in software: naming and cache invalidation. I’d argue there’s a third problem - abstractions. Whether you’re implementing an API for devs outside of your organization or creating a reusable library for devs on your team, creating the right level of abstraction is difficult. You have to balance flexibility with the ease-of-use. The correct choice is often a function of time constraints, compromise, and trial & error. I’ll talk about how to navigate these issues more efficiently.
Travelling to JSConf EU from another country? You probably had to pay an arm and a leg for a data roaming package on your phone. But there’s a better way! What if I told you that you could stay connected to the internet with a phone that can only send and receive text messages? In this talk we’ll build our own browser that makes all requests over SMS, so that next time you can forget about that fancy data package.
There’s a divisive movement around the world which has arguable impacted the software development community. How can we remain open-minded and respectful when talking about different programming paradigms or languages?
In this talk, I will be talking about empathy, how we can have divergent views and still have meaningful conversations.
I loved this talk by @ChidinmaKO at #JSConfEU2019 Being kind entails pausing, listening, changing your point of view, apologizing, speaking up for others and sharing what you know. Let this be our daily practice, #JSConfEU! #sketchnotes pic.twitter.com/pIH54T6J6L— Malwine (@malweene) June 2, 2019
Node.js has been using a derivative of nginx’s parser with a lot of customization/rewrite since its inception. Despite being fast enough, the project architecture made it very hard to maintain in a long run. To mitigate that, the author has created a tool to generate the new HTTP parser called “llhttp” from the TypeScript code in understandable, verifiable, and maintainable way. Incidentally, the performance of “llhttp” is two times better than of the old parser. In this talk we’ll walk through the basics of generating such parsers and how “llhttp” works.
Currently only ‘fs’ and ‘dns’ have an experimental promise api in Node core. People LOL at node.js core modules for still using the callback pattern. I could launch into a bunch of puns here but instead I’ll just say the current status is sad but fixable. Where are we? What do we need to do? How can you help?
コールバックパターンを採用していた Node.js から Promise が当たり前の世界へ変遷していき、今後どうなっていくかのトークでした。
Producing tissue paper, kitchen rolls, folded napkins or toilet paper is not for the faint of heart. Gigantic machines rewind huge rolls of tissue paper weighing almost a ton processing it at a speed of 40 km/h, and a single minute of downtime cuts into the slim margins of the paper industry.
Join me on a journey to understand how modern programming techniques make IIoT and Industry 4.0 a reality today in the toilet paper world!
JSConf EU 2019 is done! pic.twitter.com/UYl3mosJtF— JSConf EU (@jsconfeu) June 2, 2019
３日目は Relax.js Brunch と呼ばれるブランチタイムで、JSConf EU 参加者たちの最後の交流の場という感じでした。
そのあとは会の間に仲良くさせていただいたベルリン在住の@shuheikagawaさんの務める Zalando のオフィスを見学させていただいて（めっっっっっちゃキレイだった）、自転車でベルリンの街を散策し帰国しこの記事を書いてます。
JSConf EU は 10 年間開催した区切りでいったん休止するそうです。
初めて行ってみたことでモチベーションあがって、来年こそは CFP 出すぞと思ってたんですが、本家でそれが叶うことは直近ではなくなりました。
なお本家（EU）からのれん分けした各国のローカル版 JSConf は引き続き開催されます。
JSConf が気になった方は今冬開催のJSConf JPにぜひ参加して下さい！ CFP も募集中です！