
Someone decides to go to the conference as soon as it is announced: if you already attended it last year and enjoyed it, then there is no doubt. And someone decides when the conference program is ready and you can understand exactly which reports you would like to attend.
Today we have material for the second. The program
HolyJS 2018 Piter (May 19-20) still brings the final touches, but it is already possible to draw final conclusions. A variety of topics (from the features of TypeScript and memory leaks when using RxJS to porting JS compilers to Elbrus processors) - in this post we reviewed everything that is already known about HolyJS reports.
The first day
')

One of the most notable speeches of the previous HolyJS was
Vitaly Friedman ’s report “New Adventures in Responsive Web Design”. If you did not attend it personally, you can watch the
video .
And now Vitaly is returning with the new “New Adventures”. When you lead Smashing Magazine, you will learn a lot of front-end subtleties, difficulties and dirty tricks - so the report will touch on a variety of topics. As the author warns, "you will not be able to" discern 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 it is her report that 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 step by step tell how to create an isomorphic application on AWS-lambda, starting with simple creation of lambda with hands from the console and ending with a project with a fully automated deployment.

The Amazon voice assistant created by Alexa 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 skills for Alexa using Node.js. Now there are already 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 properly deploy the basic skill. He will also figure out which design patterns are best for skills.

"Do you smell it?" This is a frontend, son. Nothing else in the world smells like that.
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 was not a single unchanged file.
Someday this framework war will end ... ”
Yes, we are with you again! This time, the experts Mr. Blue (Ilya Taratukhin) and Mr. Green (Evgeny Gusev) are taking new heights by storm: our old friend Star and Striped React is trying to defend the frontier before the rapidly advancing Vue. Around the explosions, front-fighters here and there ... So, stand, this analogy has gone too far. Let's do it in a simple way: let's look at the two frameworks and understand how they are similar, how they differ, and who will win in this war?

In Avito, where Roman works, develop their catalog of components. This report is the answer to the question “why?” When there are already ready-made solutions. Topics to be covered:
- How to represent components, demonstrate their capabilities, technical solutions for this
- What functions can be useful to designers and developers
- How to identify components, collecting and linking meta-information, organizing a knowledge base
- Information about the places of use of components and ownership of the code
- Going beyond the borders 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 for DOM development. But react reconciler is much more powerful and allows you to build custom renderers for different purposes, such as: constructing three-dimensional scenes or creating canvas components, which can be managed as easily as possible thanks to the declarative React.js API.

The 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, technical solutions used, the benefits obtained and the process of gradual replatforming and crushing monolithic architecture.

Kirill, who was born in Moscow, now lives in New York and works at Google on Firebase, and also organizes the largest Angular-metap in the world. In this report, he explores approaches to analyzing and transforming JavaScript code based on its parsing and working with the resulting Abstract Syntax Tree. Babel and ESLint will be used in the examples.

In Pinterest, where Imad is now working, the mobile web version has been redesigned on a large scale, having managed with this for 11 weeks. As a result, it was possible to achieve a result close to native applications, while maintaining a fast download speed. User engagement metrics have increased dramatically. But this path was not strewn with roses, so Imad will tell you what difficulties they encountered along the way and how they overcame them.

Often the architecture in JavaScript comes down to choosing a framework according to the latest trends in the frontend world. And if you say that the choice of technology - this is only the seventh step in making a design decision? Every day, many projects suffer losses or even fall apart due to incorrectly chosen architecture.
Alexey will share stories that will help to correctly form the vision and significance of the architecture in modern applications, as well as prevent 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. About the personal experience of using Rx in a large Angular 4 application and how to fix and avoid Memory Leaks. About this, few people say, almost nothing is written in the documentation. It will also tell you what to do with RxJS and what not.

This report will look at the technical details behind a number of terrible abbreviations: EME (Encrypted Media Extension), CDM (Content Decryption Modules) like Widevine, and DRM (Digital Rights Management). How do we do this? Reverse-engineering Netflix and creating your own video player for Netflix!

Denis visitors are already familiar with HolyJS, for example, according to the
report “UI Components on Pixel Shaders”, and his main work is connected with photorealistic web games, but now he will speak on a completely different topic. A year ago, they consulted him on the question “Is it possible to mine cryptocurrency in the browser using the GPU”, and Denis investigated the question - and now he is ready to share his knowledge about what to expect when to use the pool of browser miners.
Second day

Dmitry has extensive experience in development (in addition to React / React Native, he has PHP, C, C ++, Go in baggage), and also not for the first time talks about React Native. But this time, having pushed off from already existing experience, he will climb into the very inside. In the course of the report, a native module for both iOS and Android will be written for complete immersion.

This report will answer the question: “Would Ilon Musk be able to launch and land a rocket if he knew JavaScript, React or Angular the best in the world?” Spoiler: “Yes.”
So, how to become an engineer of the XXI century? Maxim Yuzva - frontend-tmlid, hiring and resource manager in EPAM Systems; FrontSpot community organizer and BeerJS frequenter.

Few people worked with such exotic as Elbrus processors. And Dmitry didn’t just deal with him - he got the experience of porting various JS compilers to Elbrus, from V8 FullCodegen to Ion from SpiderMonkey, to UNIPRO. At the conference, he will tell about the pros and cons of engines in terms of porting and sawing new platform-specific features. In general, about what you hear infrequently - if such exotics interests you in principle, 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. But Sebastian believes that you can automate everything even more than usual, allowing developers to focus on development. And at the conference will tell exactly how.

What can go wrong in an eCommerce project? Yes, just about everything: from choosing a product and adding it to the basket to a letter of confirmation and, in fact, the delivery of goods. Each step should be carefully checked for possible errors and misunderstandings.
In this report, Vitali will consider how you can increase the conversion, as well as simply improve the user experience with the help of some little things. With the report you can get away with ready-made ideas and approaches.

Suppose a client has a slow device, and you need to do a bunch of hard actions in a UI thread.
How to achieve 60 frames per second without turning the code into spaghetti?
How to cancel the 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 so long tasks do not block fast ones without creating a stream for each request?
How to cancel already started calculations when the client disconnects?
Spoiler: stackfull fibers will help us give each task CPU time in 16 ms quanta.

Alex is not the first year in the team of Chrome DevTools, creating and improving there tools for debugging JavaScript. And the talk about these tools will go: Alexey will tell about how they are implemented, starting with breakpoints and ending with asynchronous stacks and memory profiling.

In the report we will discuss the evolution of the type system TypeScript. Main questions:
- How did it all start?
- What is wrong with types in TypeScript?
- Is it possible to "stretch" the sample information at runtime?
- How do TypeScript types differ from types in other programming languages?
- What to expect in the future?

Listeners will get acquainted with the principles of working with the life cycles of uniform but heterogeneous data structures embedded in Mongoose.js.
Mongoose Basics:
- Basic principles and approaches to work.
- Typical mistakes beginners.
Why and how:
- Virtual fields and virtual methods.
- Nested schemes.
- Discriminators.

In January, a regular meeting of the TC39 committee was held, at which the ES2018 specification was finally formed. In her footsteps, Mikhail Poluboyarinov, the organizer of PiterJS and IT Global Meetup, a developer with 18 years of experience, a member of the HolyJS Program Committee, will go on a performance.

The report will describe how the
Yew framework was developed, an analogue of React and Elm, written entirely in Rust and compiled into an honest WebAssembly. How to create a framework without a garbage collector, effectively provide immutable, without the need to copy the state due to the rules of ownership of Rust data and what are the features when translating Rust in WebAssembly.

Web Annotation, which has become the W3C standard, is intended 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 and complexity. Those who publish content lose control over what people say about it. And the standard itself does not imply protection against the capture of the discussion 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.
First,
Alexey Kalmakov will speak on the topic “Offline VS online client speed metrics”.
Secondly,
Nikolai Ryzhikov will turn out to be another speaker: an activist from the Clojure and FProg communities, a member of the committee for the development of the FHIR standard, the CTO of the Health Samurai project.
And thirdly, the report of
Ilya Klimov will end the conference. Prior to that, he spoke at HolyJS with the theme ““ Strict ”JavaScript: Types Against Reality” - and 6,000
video views speak for themselves. Probably, this time it will turn out not less interesting.
If you finally understand what you want on HolyJS - the ticket can be purchased on the website . And if you still do not understand, and you need some other information (for example, the exact schedule of reports), it can be found in the same place.