resume/conferences.rs
1//! Conferences and meet-up
2use resume_macro::CleanupDocs;
3
4use crate::opensource::Author;
5
6use self::roles::{Moderator, ProgramDirector, Speaker};
7
8pub mod roles {
9 /// Program director of the conference.
10 pub trait ProgramDirector {}
11 /// Speaker on the conference.
12 pub trait Speaker {}
13 /// Moderator or presenter of the event.
14 pub trait Moderator {}
15}
16/// Video of the speech at the conference.
17pub trait Video<Language> {}
18
19/// RustCon Russia 2021. All videos you can see on [YouTube](https://www.youtube.com/playlist?list=PLRdS-n5seLRroZ480sDtes06hn6_M7N_i)
20#[derive(CleanupDocs)]
21pub struct RustCon2021;
22/// One of the Program directors of RustCon Russia 2021
23impl ProgramDirector for RustCon2021 {}
24/// <iframe width="1279" height="719" src="https://www.youtube.com/embed/bEP0YcOyuyE?list=PLRdS-n5seLRroZ480sDtes06hn6_M7N_i" title="Rust и Python - как в небольшой команде переписать узкие места на Rust. Максим Акинин, assi.ai" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
25impl<Ru> Video<Ru> for RustCon2021 {}
26
27#[derive(CleanupDocs)]
28/// RustCon Russia 2022. TBD.
29pub struct RustCon2022;
30/// One of the Program directors of RustCon Russia 2021
31impl ProgramDirector for RustCon2022 {}
32
33/// PyCon Russia 2021.
34///
35/// Biggest Python conference in Russia.
36#[derive(CleanupDocs)]
37pub struct PyCon2021;
38/// Many articles have been written on the topic of using optional developed typing in Python.
39///
40/// In this speech, we will not try to repeat common truths but will try to answer the question of why we need to use it.
41/// Using examples, we will figure out how this can be done, touch on the complexities, and demonstrate how to solve them.
42impl Speaker for PyCon2021 {}
43/// <iframe width="1279" height="719" src="https://www.youtube.com/embed/Z6sUShcirsU?list=PLRdS-n5seLRrgvgaGcx6S7e3zsyLpY5iO" title="Андрей Ермилов, Максим Белоусов. Советы по использованию опциональной статической типизации" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
44impl<Ru> Video<Ru> for PyCon2021 {}
45
46/// [Conference](https://devconf.ru) of professional web developers.
47#[derive(CleanupDocs)]
48pub struct DevConf2016;
49/// This speech discusses the problem of the lack of an asynchronous Python driver for Riak and the reasons for writing its own implementation.
50/// Review of possible solutions and their comparison.
51/// [Presentation](https://s.conf.guru/data/devconf2016/ppt/155.pdf)
52impl Speaker for DevConf2016 {}
53
54/// Local [Moscow Rust community](https://www.meetup.com/Rust-%D0%B2-%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B5/events/279291922/).
55#[derive(CleanupDocs)]
56pub struct MoscowRustMeetup2021;
57/// The experience of switching to Rust or how we got to open source.
58impl Speaker for MoscowRustMeetup2021 {}
59/// <iframe width="1279" height="719" src="https://www.youtube.com/embed/mZqFJwrySbI" title="Moscow Rust Meetup в офисе UnitedTraders (16.07.2021)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
60impl<Ru> Video<Ru> for MoscowRustMeetup2021 {}
61
62/// Local [Moscow python community](https://moscowpython.ru).
63#[derive(CleanupDocs)]
64pub struct MoscowPythonMeetup2016;
65/// This speech discusses the problem of the lack of an asynchronous Python driver for Riak and the reasons for writing its own implementation.
66/// Review of possible solutions and their comparison.
67///
68/// - Domain theory (riak, asyncio), problem statement.
69/// - Overview of existing solutions.
70/// - Implemented solutions comparison:
71/// - blocking calls
72/// - executor
73/// - aioriak
74/// - performance comparison.
75/// - Why was it necessary?
76///
77/// [Presentation](https://speakerdeck.com/moscowdjango/asyncio-kliient-dlia-riak-zachiem)
78impl Speaker for MoscowPythonMeetup2016 {}
79/// <iframe width="1279" height="719" src="https://www.youtube.com/embed/q-hPXZZzx9k" title="Asyncio клиент для Riak. Зачем?" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
80impl<Ru> Video<Ru> for MoscowPythonMeetup2016 {}
81
82/// First cooperative DevOps meetup of two companies: Rambler&Co and Okko.
83#[derive(CleanupDocs)]
84pub struct RamblerDevOps2021;
85/// Me as moderator and presenter.
86impl Moderator for RamblerDevOps2021 {}
87/// <iframe width="1279" height="719" src="https://www.youtube.com/embed/78vpPXuwxL0" title="Rambler&Okko DevOps Meetup" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
88impl<Ru> Video<Ru> for RamblerDevOps2021 {}
89
90/// Rambler Python meetup.
91/// - Best practice in user embedding with PyTourch and Docker
92/// - Rust bindings for Python applications
93/// - Spark: 20 minutes adventure
94#[derive(CleanupDocs)]
95pub struct RamblerPython2021;
96/// Me as moderator and presenter.
97impl Moderator for RamblerPython2021 {}
98/// <iframe width="1279" height="719" src="https://www.youtube.com/embed/gpf_KOAmgzY" title="RamblerMeetup&Python" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
99impl<Ru> Video<Ru> for RamblerPython2021 {}
100
101/// Video version of articles "[Rust for Python developers](https://habr.com/ru/company/rambler_group/blog/533268/)" created in collaboration with Andrey Ermolov.
102///
103/// In this video we will talk about why we move away from the usual technology stack, and show what advantages Rust has compared to Python.
104/// * First part ([Text version](https://habr.com/ru/company/rambler_group/blog/533268/))
105/// * Types
106/// * User types and polymorphism
107/// * Enums
108/// * Option & Result
109/// * Pattern matching
110/// * Traits and Protocols
111/// * Generic programming
112/// * Second part ([Text version](https://habr.com/ru/company/rambler_group/blog/535234/))
113/// * Multithreading
114/// * Asynchronous
115/// * Functional programming
116/// * Conclusion
117#[derive(CleanupDocs)]
118pub struct RustForPythonDevelopers;
119/// Author and speaker with Andrey Ermilov.
120impl Speaker for RustForPythonDevelopers {}
121/// <iframe width="1279" height="719" src="https://www.youtube.com/embed/mXrgzTkDSGs" title="Rust глазами Python-иста" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
122impl<Ru> Video<Ru> for RustForPythonDevelopers {}
123
124#[derive(CleanupDocs)]
125/// Podcast from founders of the biggest Russian python community [MoscowPython](https://www.facebook.com/groups/MoscowDjango/)
126pub struct MoscowPythonPodcast2020;
127/// Guests with Andrey Ermilov.
128///
129/// We talked about the winding path of Python (and not only) developers.
130/// Btw we talked about refactoring and rewriting big projects (on Rust).
131impl Speaker for MoscowPythonPodcast2020 {}
132/// <iframe width="1279" height="719" src="https://www.youtube.com/embed/d9suAx7A6VM" title="Moscow Python Podcast. Рефакторинг проектов по-взрослому (level: middle)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
133impl<Ru> Video<Ru> for MoscowPythonPodcast2020 {}