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 と呼ばれていたコラボレータたちが今後について議論する会で、ここで決まったことが次のメジャーバージョンに大きく影響したり、もっと将来的な大きな方向性を決定・合意する重要なイベントです。
— Node.js Foundation と JS Foundation が合併し OpenJS Foundation を設立 - The Linux Foundation
10 年の歴史を持つ JS のカンファレンスです。
Ryan Dahl が Node.js を発表したり、その 9 年後に Deno を発表したりと行ったトークが有名なのかなと思います。
今回参加した 2019 の全日程のスケジュールはここから確認できます。 https://2019.jsconf.eu/schedule/
メインは1 − 2日目なんですが、前後の日にもそれぞれちょっとだけ催しがあるという感じでした。
0日目は前夜祭的に行われた pre-register event(当日スムーズに入場できるようあらかじめ入場券を手に入れつつお酒飲んで交流しよう)があったので、せっかくだし行ってみました。
トークはなくて、入場券を手に入れたら野外スペースで DJ がドゥンドゥン演奏してる中お酒を飲んで語らう会でした。
道に迷いつつなんとか会場についたものの、皆すでに打ち解けて(るように見えて)おり、更に酔ってて英語がくだけてて早いので、何言ってるかわからず、まったく話の輪に入って行けず、もどかしい思いをしていました。
ただでさえ英語喋れないのにちょっと混ぜてもらっていいですかはハードル高すぎる…会場にいるのにチキってる情けなさ
— れこ | 6/18 TS meetup #1 (@L_e_k_o) May 31, 2019
話し相手が居ないのでひとり寂しく3杯目のワインに手をかけようとしたときに、偶然目があった方と挨拶して、少しお話ができました。
何してる人なのか聞いたら gulp を作ってる人と、gulp プラグインを業務用にゴリゴリ作って使い倒してる gulp ユーザの2人でした。
gulp はここ数年ほとんど使ってなかったので「まだアクティブに開発されてたんだ!」という驚きと、会で初めて話す人が著名な OSS の人ってとんでもないなと驚かされました。
勤め先の話とか初めての参加ですかーとか世間話をしつつ、gulp を今後どんな形でアップグレードしていくか(ファイルウォッチの効率化、高速化、テストの強化、プラグインの API に breaking change を絶対に起こさないよう開発する)とか、gulp-contrib へコミット、メンテナをどう確保するかとかとか、OSS 談義を聞いてました。
gulp や OSS の体制づくりなど分かる話題だったので 6-7 割くらいは聞き取れたんですが、喋ろうとするとまったく速度が追いつかなくて、20 文に1回くらい少し喋る(それも喋るのをゆっくり待ってもらいながら)って感じでした。
何か英語を口にすれば真摯に聞いてくれる方ばかりで、少しずつ単語を紡いでいたのですが、自分に心が折れてしまってだんだん口数が減っていったのが問題で、聞き手には一切の非はありません。喋るのを待ってくれているのに喋ろうとする心が折れた私の全面的なミスです。
誰か、だれか日本人は来てないのか、、、と甘えたくなったものの誰一人として見当たらない。
ほんの少しだけど会話ができた満足感と、とにかく焦りと不安を感じるスタートでした。
1日目のタイムテーブルはこちらから参照できます。
https://2019.jsconf.eu/schedule/timetable.html#day1
Back track, Side track が主にトークをしている会場で、この2つに絞ってレポートします。
現地での日本語の実況は#jsconfeu_jaタグを観ると分かりやすいと思います。
各トークの概要を引用しています。引用先のページにスピーカーの Twitter や GitHub、ホームページ等のリンクがあります。
また、#sketchnoteというタグにて、1枚絵でトークのまとめを描いてツイートしている素晴らしい方々がおりとても分かりやすかったので、ツイートを埋め込みさせていただいています。
オープニングです。動画が YouTube に上がっていたので紹介します。 映像では音ひかえめなんですが、現地での音圧すごくて、テーマ曲に合わせた映像もすごく可愛く、そのあとの演奏もかっこよくて。しょっぱなから「すごいお祭りが始まった」感を味わいました。
npm has more data than anyone about who JavaScript developers are and what we’re up to. Using registry stats and the results of our 2019 ecosystem survey of over 30,000 developers, I break down the current state of JavaScript and where trends look like they’re headed, so you can make more informed technical choices.
スライド: https://slides.com/seldo/jsconf-eu-2019#/
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.
スライド: http://comics-for-everyone.jessicajordan.de/#/
Wow!! My favourite talk so far by @jjordan_dev on making web comics an accessible experience for everyone - at @jsconfeu #sketchnotes #jsconfeu2019 #jsconfeu pic.twitter.com/owhVQ0SeWr
— Malwine (@malweene) June 1, 2019
“Crafting Comics for Literally Everyone” by @jjordan_dev #JSConfEU #sketchnote #a11y pic.twitter.com/Ie3zUbF41o
— Clairikine @ staying hydrated (@clairikine) June 1, 2019
Sketchnote for @jjordan_dev speaking about accessible web comic @jsconfeu #JSConfEU #sketchnotes 💕 pic.twitter.com/V2ceMvG1Fe
— Lisi Linhart (@lisi_linhart) June 1, 2019
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 に変換しブラウザで動作デモする話でした。
スライドはありませんが、ブログにも詳しく書かれていたのでこちらも参照です。
— Building a JS Interpreter in Rust Part 1 – Jason Williams
— Building a JS Interpreter in Rust – Part 2 – Jason Williams
Thankfully, every year ECMAScript gives us new shinies to advance how we code JavaScript. I’ve found myself digging into features & proposals ever since my curiosity of ES2017’s SharedArrayBuffer took me down a fascinating rabbit hole. Let’s delve into some of the features & proposals we get to look forward to in 2019.
スライド: https://github.com/tzmanics/talk-slides/blob/master/reveals/es2019features.html
※生 HTML です、ホスティング版は見つからなかった
The new ES2019 features by @Tzmanics at #jsconfeu2019 #jsconfeu #sketchnotes pic.twitter.com/woRDIuSEbv
— Malwine (@malweene) June 1, 2019
Not long ago, it seemed like JavaScript devices were going to free JS developers from the constraints of the browser and let us control every aspect of our lives as easily as we once controlled hover menus. Though nodebots were captivating, many of us were anxious for the JS device revolution to reach a more mundane destination: our phones. And yet today the constraints of the mobile landscape look not much different from several years ago. We have the same two operating systems, the same two app stores, and same option to write a native app or push people to save what is still mostly a bookmark. How did we cover so little distance, given the enthusiasm, resources, and potential that appeared to exist, and more importantly, how close can we come to a JavaScript phone today?
スライド:
Join us for the third annual TC39 panel at JSConf EU! TC39 is the standards committee that designs the JavaScript language (sometimes called ECMAScript). The panel will feature a range of committee members and is your chance to ask questions about the past, present and future of JavaScript!
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.
— Michael Mifsud: GraphQL: Towards a universal query language
スライド: https://docs.google.com/presentation/d/1ZcatubPe76N2-dPOTti1UhZoDgxZDapsDExyBhzb1QU/edit#slide=id.p
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?
Sketchnotes for @jdstraughan and his son’s talk on coding with scratch @jsconfeu #JSconfEU #sketchnotes pic.twitter.com/vPvoJEF2ci
— Lisi Linhart (@lisi_linhart) June 1, 2019
JavaScript runs on nearly any platform. Most languages can compile to JavaScript. It’s well-positioned to become the lingua franca of programmers, with one problem: Like most programming languages, JavaScript is based on English. 89% of the world’s population doesn’t speak any English. Many of those people can’t even read the Latin script. If we want JavaScript to be a lingua franca, we need to ensure it is accessible to all people, regardless of their native language. Let’s look at the barriers that non-native speakers face when contributing to OSS JavaScript projects and what it would take to remove them entirely, so that two developers could collaborate without speaking the same language. We will see what techniques JavaScript can borrow from other languages by taking a look at করো (koro), a project which adds Bengali support to the Go compiler. And, we will learn enough about compilers and character encoding to answer the eternal question: “Could we do this in JavaScript?”
— Aditya Mukerjee: করো: Translating Code to Other (Human) Languages, and Back Again
スライド:
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.
スライド:
“Baby-Driven Development” by @allie_p #JSConfEU (my last #sketchnote of the day!) pic.twitter.com/lwbhRxvGoI
— Clairikine @ staying hydrated (@clairikine) June 1, 2019
With nearly 1,000,000 packages, the npm ecosystem is the largest out there, by far – but the ecosystem and its package manager were created in more humble times, for small projects and packages centered around the Node.js ecosystem itself. It’s about time we redefined package management for modern web development, and that redefinition is tink: a package unwinder for JavaScript brought to you by npm itself. With tink, you’ll find unprecedented speeds, deep compatibility with everything from Node.js to bundlers, and a UX workflow optimized for the modern web developer. Come join us for the official unveiling and find out what the future of all package management will look like for years to come.
スライド: https://github.com/zkat/talks/blob/master/2019-06-jsconfeu/presentation.pdf
Sketchnotes for @maybekatz speaking about tink @jsconfeu #JSconfEU #sketchnotes #npm pic.twitter.com/CrjwYNzsHE
— Lisi Linhart (@lisi_linhart) June 1, 2019
Since its creation in 2016, Yarn continuously pushed for better standards in the JavaScript ecosystem in particular. Dependency locking, built-in monorepos, zero-network modes, Plug’n’Play resolution, we’ve been on all fronts. Let’s discuss what we have in store for the future, and what it means for our ecosystem!
— Yarn’s Future - v2 and beyond · Issue #6953 · yarnpkg/yarn
Yarn の V2 についてのトーク。tink(npm)からの連続でトークというのが最高にエモかった。
The JS package commons is in the hands of a for-profit entity. We trust npm with our shared code, but we have no way to hold npm accountable for its behavior. A trust-based system cannot function without accountability, but somebody still has to pay for the servers. How did we get here, and what should JavaScript do now?
スライド: https://github.com/ceejbot/economics-of-package-management/blob/master/slides.pdf
おそらく最大の盛り上がりを見せ、スタンディングオベーションも起こったトークです。
出だしから気迫が凄まじく、一体なんのトークが始まるんだとドキドキしてましたが、npm 時代に得たことを活かし新しい分散型のパッケージマネージャ(レジストリ)entropic が発表されました。
— entropic-dev/entropic: a package registry for anything, but mostly javascript
After so many years sitting with the computer you can take your old scratched Les Paul or Stratocaster from the case and fill all the space around with warm riffs. I’m going to show how to transform the code into Kirk Hammett’s wah-wah, Stevie Ray Vaughan’s overdrive and Kurt Cobain’s distortion. You’ll learn how to parse audio input in real-time using JavaScript and the Web Audio API. I’ll be jamming live on stage with my guitar to demo every code example and we’ll also use WebRTC to jam with friends across the world! After this talk, you will be familiar with the principles behind pedal sound effects and how to create them in code. Let’s rock the Web!
スライド:
Most people connected to the Web are carrying JavaScript in their pocket without even knowing it, and those of us making tools for building with it are either unaware of or blissfully ignoring that population. While JavaScript’s pervasiveness grows, so is the gap in its literacy, and this is a gap we need to solve if we’re ever going to survive self-driving cars on the blockchain. Let’s talk about JavaScript, the tool, as opposed to JavaScript, the Oracle-run Twitter account.
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.
スライド: なし?
Sketchnotes for @chaos_monster speaking about animation principles @jsconfeu #JSconfEU #sketchnotes pic.twitter.com/RiI1rkt0KQ
— Lisi Linhart (@lisi_linhart) June 1, 2019
“Animations - Learning from Cartoons” by @chaos_monster #JSConfEU #sketchnote pic.twitter.com/jis8BBUgNf
— Clairikine @ staying hydrated (@clairikine) June 1, 2019
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
#10 things I’ve learned while putting JavaScript on the top of the server side benchmarks.
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!— Paulo Lopes: 10 things I learned making the fastest js server runtime in the world
スライド: https://www.jetdrone.xyz/presentations/10-things-js/#/
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.
In this talk I will share my experience on using JavaScript to build Sasha and will walkthrough its features. Last, I’ll talk about other possible use cases and the potential of home automation with JavaScript.
スライド: https://slides.com/co_constanza/about-life-robots-and-cats#/
“About Life, Robots and Cats!” by @co_constanza #JSConfEU #sketchnote pic.twitter.com/judHXMQzFX
— Clairikine @ staying hydrated (@clairikine) June 1, 2019
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.
While quite a bit of retro art survives today, most of them do not come preserved with their algorithms. In this talk, I’ll also demo some attempts to recreate retro art pieces using p5.js, a JavaScript graphics library as well as talk through some of the techniques of creating generative computer art.
スライド: http://piratefsh.github.io/presentations/jsconfeu-retro-art/#/
Retro computer art with @piratefsh at #jsconfeu2019 #JSConfEU #sketchnotes pic.twitter.com/tTocBYBiGb
— Malwine (@malweene) June 1, 2019
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.
— Nat Alison: Polyhedra, I Choose You! Letting Your Passions Take Form
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.
スライド:
ブログ記事にも詳細がありました
HTTP headers for the responsible developer - by @stefanjudis at #JSConfEU #jsconfeu2019 #sketchnotes pic.twitter.com/aby20LjAyK
— Malwine (@malweene) June 1, 2019
“HTTP Headers for the Responsible Developer” by @stefanjudis #JSConfEU #sketchnote #JSconfEU2019 pic.twitter.com/eKzN2LhTzh
— Clairikine @ staying hydrated (@clairikine) June 1, 2019
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 を回避する広告とのせめぎあいの話でした。
Block, unblock, block. How adblockers are circumvented. By @shwetank at #jsconfeu2019 #jsconfeu #sketchnotes pic.twitter.com/5qaHNZxoh6
— Malwine (@malweene) June 1, 2019
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.
— Amanda Sopkin: What JS Developers can Learn from Medieval Coats of Arms about Accessibility
スライド: https://docs.google.com/presentation/d/1HDWdNIfkMaSk7m5Op0XE00e8JNhOZjOT5ZYOnvH6nwY/edit#slide=id.p
“What JS Developers Can Learn From Medieval Coats of Arms About Accessibility” by @amandasopkin #JSConfEU #sketchnote #a11y pic.twitter.com/JqcsIpInf5
— Clairikine @ staying hydrated (@clairikine) June 1, 2019
This talk will discuss why we think that JavaScript is a good language option for IoT development by walking you through a loosely coupled end to end IoT system, from new device on-boarding to remote access via gateway.
Technologies we have been used and/or contributed to for building the IoT system using JavaScript will be discussed. At each stage, GDPR compliance of these technologies will be looked into.
To address the issue of resource restriction in embedded devices, we will introduce you to JerryScript, an ultra-light JavaScript engine by Samsung. It is followed by a comparison of popular JavaScript platforms based on JerryScript that provide direct JavaScript APIs to developers. The open gateway framework is node.js based and targets at decentralized ‘Internet of Things’ with privacy and security in mind.— Ziran Sun: Build an end-to-end IoT system using JavaScript with “GDPR awareness”
スライド: なし?
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.
スライド: なし?
The case for augmented reality on the web - by @mprafson at #jsconfeu2019 #jsconfeu #sketchnotes (Marley looks a bit thoughtful here...) pic.twitter.com/Drhb7pDZME
— Malwine (@malweene) June 1, 2019
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!
— Manu Martinez-Almeida: Stencil: a built-time approach to the web
2日目のタイムテーブルはこちらから参照できます
https://2019.jsconf.eu/schedule/timetable.html#day2
Machine Learning is a powerful tool that offers unique opportunities for JavaScript developers. This is why we created TensorFlow.js, a library for training and deploying ML models in the browser and in Node.js. In this talk, you will learn about the TensorFlow.js ecosystem: how to bring an existing ML model into your JS app and re-train the model using your data. We’ll also go over our efforts beyond the browser to bring ML to platforms such as React Native, Raspberry Pi, and Electron, and we’ll do a live demo of some of our favorite and unique applications!
— Nick Kreeger: TensorFlow.js: Bringing Machine Learning to the Web and Beyond.
スライド: なし?
It’s almost here! Houdini — the future of CSS! This spec allows developers to write web worklets with JavaScript syntax and access the CSS Object Model for the very first time. Everything will change!
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 September of 2008, Google’s Chromium Project released V8, a JavaScript engine, as part of a browser optimization wave that heralded the era of JavaScript browser applications that we both love, and love to hate. Less than a year later, in 2009, Ryan Dahl announced (at this very conference!) a way to run the V8 browser environment outside of the browser- Node.js, a platform that held the promise of unifying web application development, where both client and server side development could happen in the same language - JavaScript.
A decade later, V8, JavaScript, and its new buddy WebAssembly, have expanded to lands charted only a few years after Node.js debuted- known (confusingly) as the “Edge”. In this talk, we’ll introduce what the “Edge” is and why we are excited for it to revolutionize computation on the web. We’ll explore how this adventurous JavaScript engine, V8, is so well suited to tasks previously limited to Virtual Machines, Containers, or even simply Operating Systems. Finally, we’ll talk about security, Spectre, and ask ourselves the age old question, “You can do it, but should you?”.
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.
— Maxim Koretskyi: A sneak peek into super optimized code in JS frameworks
スライド: なし?
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.
Performance empathy - by @hdjirdeh at #JSConfEU2019 #jsconfeu #sketchnotes pic.twitter.com/c0th4XZJLa
— Malwine (@malweene) June 2, 2019
“Performance Empathy” by @hdjirdeh #JSConfEU #sketchnote pic.twitter.com/siHmPQfpAX
— Clairikine @ staying hydrated (@clairikine) June 2, 2019
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.
— Ella van Durpe: Designing a Rich Content Editor for a Third of the Web
スライドや動画はありませんでしたが、過去のカンファレンスでの録画がありました。
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
Teaching absolute beginners with no technical experience whatsoever to understand JavaScript can be quite a daunting task. It’s more challenging if you have a thick British accent and your students are mostly African students. If you’ve ever designed a tech curriculum then you understand how complicated this can be. At code Afrique where we help the community by offering a free weekend intensive bootcamp, we explored and have now achieved success with ember where we had earlier failed. The aim of this talk is to show, what we tried, where we failed and how JavaScript via Ember brought us success like no other.
スライド: なし?
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.
スライド: https://www.slideshare.net/firt/the-modern-pwa-cheat-sheet
トーク概要、スライドは見つかりませんでした
extremely excited about @MaxBittker’s talk about falling sand games 😀 #jsconfeu pic.twitter.com/i87Ujh2Nsi
— without butts, dreams dry up (@ag_dubs) June 2, 2019
“Simulating Sand: Building Interactivity with WebAssembly” by @MaxBittker #JSconfEU #sketchnote pic.twitter.com/GGLNPa5Ck6
— Clairikine @ staying hydrated (@clairikine) June 2, 2019
The JavaScript ecosystem has been breaking ground in both the Browser and in the backend with Node.js since JSConfEU launched 10 years ago. We’ve recently recognized that in the same way that using JavaScript both on the front and back end unlocks opportunities for more people to contribute to a larger part of an overall application, combining the JavaScript and Node.js Foundations allows for easier collaboration and contribution to larger portions of the JavaScript ecosystem. This panel will cover the key issues, concerns, discussions, and lessons learned that were part of the effort to bring the JavaScript and Node.js Foundations together. We’ll also dive into the new opportunities and exciting future it brings to people and projects across the JS ecosystem.
— OpenJS Foundation: Panel: +1 to a Collaborative Future ~ the Foundation of JavaScript
パネルトークでした。スライドや動画は見つかりませんでした。
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 🚀
スライドはありませんでしたが、発表の原稿が見つかりました
https://gist.github.com/ostera/1c9ef3eeec3dab887c08d2a1eb537535
In 2009 I was managing Yahoo’s tech event budget when we agreed to sponsor the very first JSConf, the one that almost didn’t happen, the one that started something… And though I’ve still never attended a JSConf, nor learned to code, the zeitgeist of the JavaScript community and its event culture have had a profound effect on how I live and the devrel work I do.
I’d like to speak about cultivating “JavaScript: The Good Times”—the evolution of inclusiveness, the effort to replace customs that no longer reflect the values and demographics of the community, the focus on new practices for joyful conference-going and knowledge sharing. The JavaScript ethos has fueled a reinvention of the tech gathering as an act of participation and experiment, generating enduring artifacts for learning and excellent new habits for our relationships - personal and professional.
https://2019.jsconf.eu/sonnets/
Please check out the sonnets 📜📝 (https://t.co/Kh7LDm6K8w) by @freshelectrons about the #JSConfEU history. #JSConfEU2019 #sketchnotes pic.twitter.com/Wrv2B7w0ng
— Malwine (@malweene) June 3, 2019
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.
スライド: なし?
#sketchnotes of @HenriHelvetica's talk on the shape of the web - at #JSConfEU2019 #jsconfeu 🌿🏵 pic.twitter.com/N9wCNv9wPo
— Malwine (@malweene) June 3, 2019
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.— Bryan Hughes: The Contentious Relationship Between the LGBTQ+ community and Tech
“The Contentious Relationship Between The LGBTQ+ Community and Tech” by @nebrius #JSConfEU #sketchnote pic.twitter.com/QseOBccAGK
— Clairikine @ staying hydrated (@clairikine) June 2, 2019
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.
— Alexandra Sunderland: Bringing back dial-up: the internet over SMS
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.
スライド: https://indutny.github.io/jsconfeu-2019/reveal.js/index.html#/
Web APIs developed and standardized by the browsers have been serving client-side JavaScript applications with a wide selection of features out of the box, while Node.js have been developing another set of APIs that are today the de-facto standards for server-side JavaScript runtimes. There is now a conscious effort to bring the two worlds closer together, in particular by introducing more Web APIs into Node.js core, but it’s not an easy ride - not every Web API, designed for the browsers, makes sense for Node.js.
In this talk, we are going to take a look at the story of Web APIs in Node.js core - what Node.js have implemented, what are being discussed, what are blocking more APIs from being implemented, and what we can do to improve the developer experience of the JavaScript ecosystem.— Joyee Cheung: Web APIs in Node.js Core: Past, Present, and Future
スライド: https://github.com/joyeecheung/talks/blob/master/jsconfeu_201906/web-api-in-node-core.pdf
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?
— Joe Sepi: Promises API in Node.js core: where we are and where we’ll get to
スライド: なし
コールバックパターンを採用していた Node.js から Promise が当たり前の世界へ変遷していき、今後どうなっていくかのトークでした。
Node.jsにそもそもなぜPromiseがないか、ryanは考慮不足と言っていた。ただあの時点では正しい抽象化なのかは分からなかった、それよりもシンプルさを目指してcallbackモデルにしていた #jsconfeu_ja pic.twitter.com/mlBcWGiEFe
— Yosuke FURUKAWA (@yosuke_furukawa) June 2, 2019
V8 is the JavaScript engine powering Google Chrome, Node.js and NativeScript. NativeScript embeds V8 to process JavaScript and dynamically call Android APIs. This enables developers to write Android applications in JavaScript and directly access the underlying OS. Come to this session to learn what challenges the NativeScript team met embedding V8 in a mobile framework and how you can power any C++ based application with one of the most sophisticated JavaScript engines.
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.
The asynchronous nature of JavaScript and Node.JS allows telemetry data to be harvested from ancient PLCs controlling the production, and its real-time analysis in the cloud, enabling operators and factories to raise production quality, improve performance and reduce waste.
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!— Pier Paolo Fumagalli: Tales from the Toilet: how JavaScript helps the production of tissue papers
スライド: なし?
JSConf EU 2019 is done! pic.twitter.com/UYl3mosJtF
— JSConf EU (@jsconfeu) June 2, 2019
3日目は Relax.js Brunch と呼ばれるブランチタイムで、JSConf EU 参加者たちの最後の交流の場という感じでした。
集合時間や解散時間が明確なわけではなく、各自スケジュールに合わせて適当に飲み食いしながら語り合って、流れ解散という感じでした。
そのあとは会の間に仲良くさせていただいたベルリン在住の@shuheikagawaさんの務める Zalando のオフィスを見学させていただいて(めっっっっっちゃキレイだった)、自転車でベルリンの街を散策し帰国しこの記事を書いてます。
ためになったし、懇親会で話させてもらった方々や内容も楽しかったし、新しいご縁もできたし、経験値になったし、糧になったと思います。
次回が開催されるのをとても楽しみにして居ます。行ってよかった!
JSConf EU は 10 年間開催した区切りでいったん休止するそうです。
初めて行ってみたことでモチベーションあがって、来年こそは CFP 出すぞと思ってたんですが、本家でそれが叶うことは直近ではなくなりました。
でも終わりではなく”休止”だと言っていたので、再開されるのを心から楽しみにしています。ぜひ次回があればまたいきたいし、その時までに普通に会話ができるくらい英語の実践経験を貯めようと思いました。
なお本家(EU)からのれん分けした各国のローカル版 JSConf は引き続き開催されます。
JSConf が気になった方は今冬開催のJSConf JPにぜひ参加して下さい!
CFP も募集中です!
https://t.co/b51ielVOoe is the largest JavaScript conference in Japan!! CFP is opened :) #jsconfeu pic.twitter.com/9SYaRnURZq
— Yosuke FURUKAWA (@yosuke_furukawa) June 1, 2019