Open broadcast of the main hall of DotNext 2018 Piter
Tomorrow hundreds of .NET specialists will gather in St. Petersburg to listen to reports and communicate for two days in a row. But even if you are not in Petersburg these days, you can still listen to many reports. In addition to the paid online broadcast, giving access to what is happening in all the halls, we also make the broadcast of the first hall open to everyone .
What reports were broadcast live? A complete list with descriptions is under the cut, and in front of it we note a couple of things. According to the results of the previous two DotNext, Dylan Beatty turned out to be an obvious favorite of the audience, so he will open DotNext with a speech on how the usual technologies work. And just yesterday, when the report was completely ready and agreed upon, Dylan discovered the intricacies of the KOI8-R encoding and is now enthusiasticallyremakes part of the presentation! Andrei Alexandrescu will
replace him in the main hall - and this is a figure of such a scale that we ourselves cannot resist taking a selfie with him. And the next one will be Sasha Goldshtein , who is also not required to represent him to the affiliates. In general, the line-up picked up starry.
First day (April 22)
Imagine the picture: you are riding a train, your smartphone is making a sound, you take it out of your pocket and see: a new message! This is a video of a cat falling from a chair! You answer “LOL”, put the phone back in your pocket ... But do you wonder what it was worth to make it all work? Inside even the cheapest smartphone, there are thousands of innovations, algorithms, inventions - but how do they work? How were they developed? What will the next generation of algorithms and applications look like?
In this report, we will be able to immerse ourselves in the technologies thanks to which our ordinary everyday things work, and we will unearth the algorithms and abstractions that create our new digital world. We will look at everything: network addressing algorithms, frequencies in cellular networks, shortest distance search optimization, wavelet compression, fingerprint recognition, media encoding methods and so on. After this report, you will no longer be able to treat your mobile phone as before.
Dylan is a systems architect and developer who has managed to participate in a variety of projects during his life, from small websites to huge distributed systems; from a Legacy with a twenty-year history to the latest developments. He currently works as an architect at Spotlight and addresses complex challenges in today's distributed systems. In parallel with the main work, Dylan actively participates in the community, is the organizer of the London .NET User Group and participated in many conferences in 2016, including Oredev in Sweden, NDC in London, Sydney and Oslo, Tampere Goes Agile in Finland and BuildStuff in Lithuania and Ukraine .
Optimization - that is, code acceleration - is one of the main ingredients of modern computing technologies. The speed of light is limited, so you can no longer accelerate the frequencies of the processors; on the other hand, matter consists of separate atoms, therefore it is impossible to make circuits smaller than they are being produced now. So, for modern tasks such as self-driving machines or general artificial intelligence, acceleration methods will have to be invented with your own brains.
This report talks about two new examples at different ends of the spectrum of optimization techniques. The first technique is related to iron: you can replace brunches with calculations. Modern processors work much better with serial code than with unpredictable brunches, we will exploit this fact. The second example will be about the classical algorithm, which can be improved using statistics on the distribution and locality of the data, and this improves its theoretical and practical performance.
Andrei Alexandrescu is an expert on many things, including the design and implementation of software systems, the design of programming languages, libraries, all aspects of C ++ and D, machine learning and the processing of natural languages. His creative approach to solving problems, deep knowledge and charisma made Andrei Alexandrescu one of the most desired speakers at conferences.
Andrey's books and articles have left their mark on the history of the industry. He has authored such bestselling books as Modern C ++ Design, C ++ Coding Standards (co-authored by Herb Sutter), The D Programming Language, and articles like Simplify Your Exception-Safe Code - Forever (co-authored with Petru Marginean) and Mojo: Move of Joint Objects. The full list of articles is here .
13:30 How containers work
In modern hype trends, containers are next to blockchain and machine learning, but nevertheless, few people are well versed in them yet. In this report, containers are shown as they really are: ordinary processes, but having a certain amount of isolation, a resource quota, and all this is sprinkled with security sandboxing on top. You will understand why containers so interesting and useful as namespaces isolate containers from each other, how to fumble resources between containers, how throttling works, how it all relates to the .NET runtime, and how to write a minimal application on .NET Core that will not drag with you unnecessary 500 megabytes of user libraries and utilities from Ubuntu.
Sasha Goldstein is CTO at Sela Group, Regional Director and MVP at Microsoft, author of books at Pluralsight and O'Reilly, international consultant and trainer. Sasha is the author of the books Introducing Windows 7 for Developers (Microsoft Press, 2009) and Pro .NET Performance (Apress, 2012), a well-known blogger and contributor to OpenSource projects, and the author of many training courses, including .NET Debugging,. NET Performance, Android Application Development, and Modern C ++. His work as a consultant is mainly related to distributed architectures, production debugging, performance diagnostics and mobile application development.
As “everyone knows”, distributed transactions died with the advent of the Internet era. Books on MTS, MSDTC, J2EE are gathering dust in museums while programmers write cloud services in the fight against eventual consistent data warehouses like Cassandra and Mongo. For financial transactions, immortal SQL remains.
The team working on the Orleans framework is no stranger to cast doubt on generally accepted “truths.” She has already shown that distributed objects, when used correctly, can be successfully used to build efficient, scalable applications, offering a convincing alternative to the Erlang / Akka approach to the actor model.
Support for scalable distributed transactions is one of Orleans' latest innovations to refute popular misconceptions. Sergey Bykov will talk about her, as well as about other advanced functions of the framework.
Sergey Bykov began the Orleans project at Microsoft Research and continues to lead its development in open source at the Xbox division. Prior to joining Research, Sergey worked in various Microsoft groups, from BizTalk and Host Integration Server to embedded operating systems for POS and Bing. The depressing situation with development tools for cloud services and distributed systems prompted him to take up the Orleans project in order to qualitatively increase the productivity of programmers in this area.
So, you wrote a bunch of code and spent six months studying, understanding and improving it, over and over again. Code is something living, and no documentation is better than the code itself. Therefore, we are starting to use a bunch of tools that allow us to do manual code verification and fully understand what happens to objects of a certain type, which parts of the code really need dependencies, or which APIs are used in which parts of the code base. This is all the more difficult the more code came to us from third-party developers.
The Roslyn platform gives us the opportunity to write tools to understand the source from the point of view of business rules, to extract from them enough information to identify patterns of use and to apply security practices.
The idea is to improve the quality of code analysis tools by independently creating such tools and analyzers for Visual Studio that will take into account the features of the developed product.
Raffaele Rialdi is a Senior Software Architect, who also works as a consultant, speaker and trainer. Since 2003, he has been a Microsoft MVP in the Developer Security category. His passion for community affairs made him a member of the board of UGIdotNET, president of DotNetLiguria and co-founder of the Italian C ++ User Group. Currently, he works as an architect and developer of backends for enterprise projects with a special focus on generating application source codes in cross-platform mobile and IoT development, in C # and C ++.
The talk will focus on the algorithms behind the collections in System.Collections.Concurrent. Step by step, with examples, we explain complex algorithms. Also consider the design of the multi-threaded collection API. Let's get acquainted with the theory of non-blocking synchronization.
Important: to understand the report, you need to know the basics of parallel programming, including Monitors, Semaphores, read-write locks, atomic operations (Interlocked), etc.
Tehlid JetBrains Rider, developer of the ReSharper core: data structures, caches, multithreading. At JetBrains since 2011, before that, he led the development of server solutions at Yota. He graduated from St. Petersburg State University in 2006. Regular speaker DotNext.
The second day (April 23)
For most developers, the use of expression tree is limited to lambda expressions in LINQ. Often we do not attach any importance to how the technology works “under the hood”.
The purpose of the report is to demonstrate advanced techniques for working with expression trees:
- elimination of duplication of code in LINQ;
- code generation;
- test automation.
After the talk, you will know how to use expression tree directly, what pitfalls the technology has prepared, and how to get around them.
Co-founder of the Kazan outsourcing company High-tech Group. In addition to doing business, she teaches at the Higher School of Information Technologies and Information Systems of Kazan Federal University and writes in Habré . At the query “How to write tests” in Google, the first result will be his article.
The total experience in programming and development management is 10 years. During this time, he went from a programmer in the Kazan web studio to the head of the quality department in the financial industry. He worked in organizations from Kazan, Moscow, St. Petersburg and Antwerp (Belgium).
He believes that technology is not a “thing in itself”, but a tool for achieving goals. Each with its own field of application.
HTTP / 2 not only speeds up the loading of web pages, but also optimizes the interaction of microservices in a distributed system. Our infrastructure team used HTTP / 2 in the new service and faced interesting problems. You will find a fascinating fail story about performance, magic constants and unmanaged memory leaks.
The purpose of the report is to share the experience of using HTTP / 2 to optimize interservice interaction in the conditions of the .NET framework and Windows.
The report will be interesting to fans of detective stories about productivity; microservice developers for .NET; People who do stress testing of HTTP services.
Keywords: .NET, C #, HTTP / 2, WinDbg, microservice architecture, long polling, load testing.
C # developer in the infrastructure team of SKB Kontur. He is engaged in the development and support of shared libraries, distributed tracing systems, and other high-performance services.
He is interested in creating reliable and scalable HTTP services, writing productive code, C # and .NET, robotics and IoT. Eugene likes to share knowledge with others, so he leverages the skill of public speaking and teaches several courses for students at UrFU.
You know how painful it is: here you have released a new version, and the service has begun to behave very strange, and there is no one to fix it besides you. But where and how to start?
Criteo serves 150 billion requests per day across 4,000 front-end servers. As part of the Criteo performance team, speakers have a very good understanding of how to investigate critical issues in these types of environments.
In this report, we look at insights, errors, false traces that are in reality.
We will go through all phases of the study of the problem, starting with early detection and up to fixing the problem, and all the techniques used will be described in detail. Including but not limited to:
- Using metrics to detect errors;
- What we can or cannot get from the profiler, on the basis of which good assumptions can be made;
- Immersion in CLR data structures using a decompiler, WinDBG and SOS, to verify assumptions;
- Automatically analyze memory dumps using ClrMD, and how to write your own tools when WinDBG is unsuccessful.
Christophe Nasarre / Criteo
Christophe Nasarre has worked on the development and delivery of Microsoft stack software for 25+ years, has been a technical editor at MSPress, Addison-Wesley and other publishers since 1996, participating in the writing of books such as “CLR via C #” and latest editions "Windows Internals."
He usually talks about tools and good ideas about .NET and Windows and runs his blog . He has experience reporting both internally at Microsoft and at public events like Microsoft TechDays.
Kevin Gosse / Criteo
Kevin Gosse has been using Microsoft .NET technology for 10 years and has been developing servers, clients and mobile applications. Now at Criteo, he deals with scaling, debugging, and optimization issues.
15:15 Scratched Metal
Microoptimizations in the RavenDB vNext storage engine are critical to achieve 50K + write requests per second on an average server. In this talk, we will look at the use of the new intrinsics added in CoreCLR 2.1 in the context of real-life examples of bottlenecks on the critical path. Pretty hardcore topics like processor architecture and its impact on cache behavior (miss-hit ratio, poising), prefetching, etc. will be covered. The report is intended for engineers engaged in microoptimization in high-performance applications.
Federico is a co-founder of Corvalius R&D company and Coidealike analytic company. He has been working on algorithm performance over the past ten years, including both conventional processors and specialized hardware like GPUs. He has experience in various fields, from the practice of increasing the productivity of banking applications, up to the optimization of database engines.
.NET Core is a “new” way to build .NET applications, works well with clouds and containers. In the report, we will see how these technologies can be used to build applications based on containerized microservices. 20% slides and 80% code.
Edwin van Wijk
Edwin has been working in IT since 1999, and now is a solution architect in Info Support. Microsoft MVP in the Visual Studio and Development Technologies category.
What technologies are developing in astronautics right now, how they contribute to space exploration, and what can we expect from astronautics in the next decade.
Specialist in public relations of the Russian private space company Dauria Aerospace. Blogger Zelenyikot, a popularizer of cosmonautics on the Internet, founder of the Open Space communities on social networks with a total of more than 1 million subscribers. In 2013, he managed to detect on the surface of Mars the landing module of the Soviet automatic interplanetary station Mars-3. The initiator of the project of creating a lunar microsatellite for surveying the landing sites of the Apollo and Lunokhod.