The best reports of the DotNext 2015 Piter conference. Part 1 (Video inside)
In June, the third DotNext conference was held in St. Petersburg, and a month later in Moscow, the fourth DotNext 2015 Moscow conference will take place. We published videos of all the reports and round tables of the St. Petersburg conference as a separate playlist on YouTube . Well, so that you don’t waste time and immediately start with the sweetest - I got confused with various (not very complicated) analytics and dismantled for you a dozen top reports, those with which the participants of the conference gave the highest marks.
As always, for our grades we use the Russian academic scale :
bad - 2 points
normal - 3 points
good - 4 points
excellent - 5 points
In this post I will briefly talk about the reports that ranked sixth to tenth in our ranking. And we will begin, as always, from the end.
')
10 place
Mikhail Samarin, Futurice - Universal applications for Windows 10 Average rating: 4.19
Mikhail is not only the business director of the Finnish company Futurice, but also three times the Microsoft MVP , and therefore has the right to speak at conferences almost on behalf of Microsoft. It happened this time too - Michael made a review report on how the development of various devices changed with the release of the new version of .NET and Windows 10.
As promised, the report was a review. First, Michael told about the development tools - Visual Studio 2015 and various licenses for it, Microsoft Expression Blend, changes in VS, which appeared for the convenience of development for mobile devices. Then we talked about the new "versioning" scheme of Windows, universal applications and solutions that runtime depends on the platform on which the application runs (now a single solution for all platforms, and not one for each). After that, it was about various platform extensions and how the build system works with them. Well, towards the end, we are talking about adaptive UI, physical and effective pixels (now it is recommended to ignore the physical resolution of the screen, and use “effective” pixels).
At the Moscow DotNext, Mikhail promises to make a report on the use of hardware APIs available on mobile platforms. Since there is practically no talk about mobile development on .NET in Russia, it will be especially interesting to listen to it. So we are waiting for the announcement.
9th place
Dmitry Ivanov, JetBrains - Tales of Premature Optimization Average rating: 4.26
In recent years, Dmitry - the main person in performance resharpera. Therefore, it is more than right to speculate about performance — it’s enough to see how much faster ReSharper works from version to version (do not forget that the performance of processors does not grow much in recent years).
The first of the strong points of the report: if your application has been around for a long time and you are not idiots , then there are no bottlenecks in your application. At least those that can be seen with the profiler - otherwise these places would have been fixed long ago. Accordingly, in experienced teams on large projects, the profile is usually spread over the entire application, and optimization with the help of the profiler yields literally 1-2% increase in productivity in a good case.
This implies a second strong (but also quite controversial thesis by its formulation): profiling is a waste of your time and money, since it does not add functional value to your product. Therefore, it makes sense to write code so that it is not necessary to profile it . And for this we need some knowledge, which Dmitry and shared in the process of the report.
Technically, the report was quite strong, several interesting problems and approaches were voiced. Personally, I have one significant remark to the report and it is connected with some professional distortion, which I began to notice some time ago among the resharper guys.
As you know, ReSharper is one of the largest and most complex dot-net projects. From the point of view of performance, it has one very important feature: it is a client application with a lot of functionality. Therefore, a number of purely client problems appear:
the profile is smeared for functionality, so hundreds of user cases have to be optimized at once. As a result, the profiler really becomes almost useless - profiling hundreds of user cases really eats up a lot of time. That is why the best tactic here is to invest time in your own upgrade in terms of studying performance patterns.
focus on responsiveness UI-flow. From here all sorts of tricks like Interruptible Read-Write Lock
event grouping is a technique well known since Java AWT, where it was a real problem 15 years ago
From the pros - an overview of the universal performance issues:
GC and Memory Traffic
JIT and some features of his work
useful analysis tools (around 23 minutes)
create your own caches. Especially true with the advent of SSD.
data locality - techniques associated with the sequential placement of data in memory. Performance Boost from prefetch, work processors with cash lines and other tips, relevant and universal for modern processor architectures
At the December DotNext, Dmitry, together with Roma Belov, are going to make a report on current trends in programming languages, and will compare the new C # and Kotlin. Since over the years of working at JetBrains, these guys have accumulated a powerful expertise on languages ​​(don't forget that IDE is half the compiler, all its front-end), it should be quite interesting. Although, I confess honestly, the HYIP around Kotlin personally already tired me a little.
8th place
Dino Esposito - The Courage of Knowing Things (and not being a geek) Average rating: 4.28
Dino is beautiful. Internet of Geeks as a way to develop technology in the 21st century. Stories about their own grandmother. As always powerful, bright, emotional. That should be Keynote.
In the first part of the report, Dino talked about abstract philosophical things, and in the middle he suddenly (suddenly for many) switched to very specific technologies like ObsoleScience. DDD and Event Sourcing as a modern work model (strongly intersects with all kinds of Rx), approaches like CQRS and HYIP around microservices, ideally described in this famous tweet:
As one of the participants rightly noted in the comments, the report will be useful to those developers who have already realized that knowledge and tools are different things. And they should be used in different ways.
As always, some participants noted that #Disturbations and #It want MoreConcrete. Guys, this is keyout! Get used to the fact that after the keyout you will have a whole day of specifics. Opening keyouts have quite understandable functionality in terms of the dynamics of the conference and quite specific requirements:
keyout should wake up those who haven't slept enough
keyout should set everyone up on the same wavelength
keyout should set the tone for the rest of the conference
With all these tasks, Dino coped brilliantly.
A month later in Moscow, Dino will make two reports on Domain Driven Design, a topic that she has been particularly interested in in recent years:
You read the announcements - and CQRS, Event Sourcing, Rx and all these things come to mind again. Apparently, he already knows everything about ASP.NET and he is a bit fed up with this topic.
7th place
Round table “Does St. Petersburg need a .NET User Group?” Average rating: 4.30
Round tables at the St. Petersburg DotNext is an experiment. We know that the technical public does not always take a positive chatter, so we thought for a long time whether to make round tables. Literally in the days of the St. Petersburg conference, Mikhail Shcherbakov launched the SPb .NET Community and automatically got a round table on community issues, which was quite practical. How to develop? Where to go? How to select reports? How to make meetings "for cheap"?
I have been involved in Community and User Group issues for almost four years now, so I took it upon myself to moderate the discussion. We participated as experts:
Mikhail Shcherbakov, designated above, security expert in .NET (spoke at DotNext twice - tyts and tyts , will speak in December about WinDbg - tyts ), the leader of St. Petersburg .NET-community, which holds monthly meetings
Dmitry Nesteruk , C ++ and .NET specialist, who spent three years meeting the previous St. Petersburg dot-net party, Alt.Net, and is now engaged in a million things from financial mathematics to evangelism in JetBrains.
Vitaly Baum , who held meetings on .NET in Moscow
Nikolay Chabanovsky , who is currently engaged in the development of StackOverflow in Russian
Andrei Dmitriev , our program director, who devoted many years to the education of programmers, first in St. Petersburg (as a teacher at St. Petersburg State University), and in Russia. Today Andrey is the program director of all our conferences, a specialist in organizing large and small events, preparing speakers, etc. etc.
Among the voiced problems:
Usergroup dependence on the leader. Leader tired - the community fell apart.
The leader of the group is often the main speaker. How to attract more speakers
how to find speakers
What does Microsoft think about .NET groups and how they approach partnership with user groups?
how to prepare the speaker. Many would like to try, but do not know how and are afraid. How can they be helped?
few discussions on .NET in Russian. It is necessary to develop.
Who is interested in organizing events - public or corporate - be sure to look. In addition, be sure to look for those who have not yet spoken publicly, but are thinking of starting.
6 place
Nikita Tsukanov, Promarket - Writing scalable and at times distributed systems with Akka.NET Average rating: 4.33
As we all know, multithreading is a complicated thing. And it has limits - it works within one server. For horizontal scaling, you need to split applications into components, be able to make clusters in which servers can be connected and disconnected on the fly, etc.
Multithreading is a complicated thing. And distributed systems are hard stuff. Therefore, it is easy to mess with your own implementation. Therefore, a few other models come to the rescue - models on actors .
In the report, Nikita told about the model of the actors, its advantages and disadvantages, as well as about the Akka.NET framework - the port of the Akka framework with the JVM on .NET, the most powerful and increasingly popular implementation of the actor model. Two and a half million actors per 1 GB in memory, 50 million messages per second on one machine, the fight against GC and other tasty things you will meet in this report.
By the way, in the summer already told about Docker aatarasoff - how do they handle the Docker in production there? It turned out pretty curious.
I will review the top five reports in the next post. Well, in the comments, I, as always, would be very interested to hear your opinion on the reports listed above - what you liked, did not like, and want to hear about in a month at DotNext 2015 Moscow.
UPD: and come on Monday for the next meeting of the St. Petersburg .NET Community! This time, visiting yu5k3 and the company, DreamWalker will come up with a big report on “Common errors in evaluating the performance of .NET applications”. Details and registration here .