HolyJS 2018 Piter talk review: from WebAssembly to Three.js
Someone decides to go to the conference as soon as it is announced: if you were already at it last year and liked everything, then there is no doubt. And someone makes a decision when the conference program is ready and you can precisely understand what reports you want to attend.
Today we have material for the second. The final touches are still being made to the HolyJS 2018 Piter program (May 19-20), but final conclusions can already be drawn from it. A wide variety of topics (from TypeScript features and memory leaks when using RxJS to porting JS compilers to Elbrus processors) - discussed in this post everything that is already known about HolyJS reports.
The first day
One of the most notable performances of the previous HolyJS was Vitaliy Fridman 's report “New Adventures in Responsive Web Design”. If you did not attend it personally, you can watch the video .
And now Vitaliy is returning with a new “New Adventures”. When you head Smashing Magazine, you learn a lot of front-end subtleties, complexities and dirty tricks - so the report will cover a variety of topics. As the author warns, "you cannot" recognize back "what you learn, and we are not responsible for your subsequent nightmares."
Surely this is not the first time you hear about serverless computing, but Marina hopes that her report will convince you to try them yourself. And for those who are not new to AWS lambdas, their additional features and useful development tools will be shown. In the report, she will tell you step by step how to create an isomorphic application on AWS lambda, starting from simple creating a lambda with your hands from the console and ending with a project with fully automated deployment.
Alexa's voice assistant created by Amazon is now used not only in Amazon Echo, but also in devices from other companies like Sonos. AI captures the world, and Amazon is one of the pioneers here.
Developers can create their own “skills” for Alexa using Node.js. Now there are tens of thousands of skills, but the ecosystem is still very young, and everything is just beginning. Taylor will show how to write, locally test and correctly deploy the base skill. He will also figure out which design patterns are best for skills.
“Do you smell? This is a frontend, son. Nothing in the world smells like that anymore.
I love the smell of the front end in the morning. Once we refactored one feature for twelve hours in a row. And when it was all over ... There wasn’t a single unchanged file.
Someday this framework war will end ... ”
Yes, we are with you again! This time, experts Mr. Siniy (Ilya Taratukhin) and Mr. Zeleny (Evgeny Gusev) are storming new heights: our old acquaintance, star-striped React, is trying to defend the frontiers of the rapidly advancing Vue. There are explosions all around, front-end benders here and there ... So, wait, this analogy has gone too far. Let's simply: look at the two frameworks and understand how they are similar, how they differ, and who will win this war?
In Avito, where Roman works, they develop their own catalog of components. This report is the answer to the question “why?” When there are already ready-made solutions. Topics to be addressed:
- How to present components, demonstrate their capabilities, technical solutions for this
- What features may be useful to designers and developers
- How to identify components, the collection and binding of meta-information, the organization of a knowledge base
- Information about component locations and code ownership
- Going beyond the boundaries of the catalog and its “friendship” with other internal services
React.js provides an excellent API for developing complex user interfaces. Most developers are used to using it to develop the DOM. But react reconciler is much more powerful and allows you to build custom renderers for various purposes, such as: building three-dimensional scenes or creating canvas components, which are made as simple as possible thanks to the declarative React.js API.
Enterprise application architecture is evolving, and Node.js is already widely used by corporations. Nikolay will talk about the experience of implementing Node.js in large enterprise e-commerce projects, the technical solutions used, the benefits received and the process of gradual re-platforming and fragmentation of the monolithic architecture.
On Pinterest, where Imad is currently working, the mobile web version has been extensively redone, managing for 11 weeks. As a result, it turned out and achieve a result close to native applications, and at the same time maintain a fast download speed. User engagement metrics have risen sharply. But this path was not strewn with roses, so Imad will tell you what difficulties they encountered along the way and how they were overcome.
Alexey will share stories that will help to correctly formulate the vision and importance of architecture in modern applications, as well as avoid mistakes that can simply destroy your project.
Let's talk about RxJS and its philosophy. About possible memory leaks and major errors when using RxJS. On the personal experience of using Rx in a large Angular 4 application and how to fix and avoid Memory Leaks. Few people talk about this, almost nothing is written in the documentation. It will also talk about what to do with RxJS and what not.
This report will look at the technical details behind a host of scary abbreviations: EME (Encrypted Media Extension), CDM (Content Decryption Modules) like Widevine, and DRM (Digital Rights Management). How do we do this? Netflix reverse engineering and creating your own Netflix video player!
HolyJS visitors are already familiar, for example, with the report “UI components on pixel shaders,” and his main work is related to photorealistic web games, but now he will speak with a completely different topic. A year ago, he was consulted for the question “Is it possible to mine cryptocurrency in a browser using a GPU”, and Denis investigated the question - and now he is ready to share his knowledge of what to expect when to use the browser miner pool.
Dmitry has rich experience in development (in addition to React / React Native, he has PHP, C, C ++, Go in his luggage), and he is also not the first to talk about React Native. But this time, pushing off from the existing experience, he will climb into the gut. In the course of the report, a native module will be written immediately for iOS and Android for complete immersion.
So, how to become an engineer of the 21st century? Maxim Yuzva, frontend team leader, hiring and resource manager at EPAM Systems, will tell; FrontSpot community organizer and BeerJS regular.
Few have worked with such exotic features as Elbrus processors. And Dmitry did not just deal with him - he at UNIPRO gained experience in porting various JS compilers to Elbrus, from V8 FullCodegen to Ion from SpiderMonkey. At the conference, he will talk about the pros and cons of engines in terms of porting and sawing in new platform-dependent features. In general, about what you hear infrequently - if you are interested in such exotic, then you should not skip the report.
When using Node.js, creating the correct API documentation is sometimes a very time-consuming task. However, there are solutions like Swagger, OpenAPI, Postman, and the like. And Sebastian believes that you can automate everything even stronger than usual, allowing developers to focus on development. And at the conference he will tell you exactly how.
What could go wrong in an eCommerce project? Yes, that's all: from choosing a product and adding it to the basket to a letter with confirmation and, in fact, delivery of goods. Each step should be carefully verified for possible errors and misunderstandings.
In this report, Vitaliy will consider how you can increase conversion, as well as simply improve your user experience with some little things. With the report it will be possible to leave with ready-made ideas and approaches.
Suppose the client has a slow device, and you need to do a lot of heavy operations in the UI thread.
How to achieve 60 frames per second without turning the code into spaghetti?
How to cancel already started calculations when they need to be repeated with more relevant data?
Suppose you have a server that calculates a response to a request from 1 ms to 10 s.
How to make long tasks not block fast ones without creating a thread for each request?
How to cancel already started calculations when the client disconnected?
Spoiler: stackfull fibers will help us to give each task processor time in quanta of 16 ms.
In the talk, we will discuss the evolution of the TypeScript type system. Main questions:
- How did it all start?
- What is wrong with types in TypeScript?
- Is it possible to “stretch” typical information in runtime?
- How are TypeScript types different from types in other programming languages?
- What to expect in the future?
Students will become familiar with the principles of working in the life cycles of uniform but heterogeneous data structures embedded in Mongoose.js.
- Basic principles and approaches to work.
- Typical beginner mistakes.
Why and how:
- Virtual fields and virtual methods.
- Nested schemas.
In January, another meeting of the TC39 committee took place, at which the ES2018 specification was finally formed. In her wake will be the performance of Mikhail Poluboyarinov, the organizer of PiterJS and IT Global Meetup, a developer with 18 years of experience, a member of the HolyJS Program Committee.
The report will tell how the Yew framework was developed - an analogue of React and Elm, written entirely in Rust and compiled into an honest WebAssembly. How can you create a framework without a garbage collector, effectively provide immutable, without the need to copy state thanks to the rules of ownership of Rust data and what are the features when translating Rust to WebAssembly.
Web Annotation, which has become the W3C standard, is designed to create a layer for communication over the web. Theoretically, it allows anyone to annotate any Internet content, and this is a noble goal in the spirit of the Internet itself: democratic, open and standardized.
But with this free come difficulties also. Those who publish content lose control over what people say about it. And the standard itself does not imply protection from the capture of discussions by trolls. The evolution of Web Annotation shows in miniature the evolution of the entire Internet - with the same issues of security, identification and freedom.
Finally, there are three cases where we are not yet ready to provide a description of the report, but we can say something.
Firstly, Alexey Kalmakov will present the topic “Offline VS Online Client Speed Metrics”.
Secondly, Nikolai Ryzhikov will be another speaker : an activist of the Clojure and FProg communities, a member of the FHIR standard development committee, CTO of the Health Samurai project.
If you finally realized what you want on HolyJS, you can purchase a ticket on the site . And if you still don’t understand, and you need some more information (for example, the exact schedule of reports), you can find it there.