Konferensi tentang Python dan tentang komunikasi

Secara tradisional, Python digunakan untuk membuat layanan jaringan, backend di web, dan, tentu saja, untuk mengumpulkan dan memproses data, biasanya Big. Kami akan mencoba membahas area ini dalam bagian yang sama dengan laporan ekosistem di Moscow Python Conf ++ yang akan datang. Konferensi untuk pengembang Python ini akan diadakan di Moskow pada 22 dan 23 Oktober, dan saya mengepalai Komite Programnya. Program itu, bisa dikatakan, telah menderita, kami berhasil membuatnya tepat seperti yang kami rencanakan - beragam. Backend, Big Data, dan fitur bahasa, kami gabungkan secara harmonis dengan laporan pengujian, kecerdasan buatan, keamanan, dan DevOps. Saya ingin membagikan hasilnya dengan Anda terlebih dahulu, jadi saya menawarkan ulasan laporan pada bagian - yang tidak berlaku bagi Anda dengan cara apa pun dapat dilewati.



Meskipun, tunggu, jangan buru-buru beralih ke topik berikutnya. Gambar di atas mengatakan: "Konferensi Profesional" - yaitu, ini dimaksudkan untuk pengembang profesional. Tetapi tamu yang kita lihat bukan hanya pengembang Python sendiri, tetapi juga programmer yang terutama menggunakan tumpukan yang berbeda, tetapi tertarik pada kemampuan Python untuk tugas-tugas tambahan. Yang terakhir adalah laporan, misalnya, tentang Apache Kafka, Wagtail, SQLAlchemy atau linter.

Semua laporan akan dibangun sedemikian rupa sehingga Anda dapat memahami bahkan tanpa memahami topik spesifik dari pidato tersebut, sehingga memperluas cakrawala Anda, tetapi pada saat yang sama, pro akan bisa sampai ke masalah yang paling rumit. Secara konvensional, ada tiga blok topik dan “bermacam-macam”:


Konferensi kami terutama tentang komunikasi. Dapat dipahami bahwa pembicara menetapkan topik yang menarik, menceritakan visinya, membagikan pengalamannya, menyarankan untuk mendiskusikan pendekatan yang mungkin dilakukan terhadap rekan kerja. Ini semua berarti bahwa jika Anda berhasil meredam introversi Anda sendiri dan menggunakan semua kemungkinan secara maksimal, maka setelah konferensi Anda akan penuh dengan ide-ide baru dan cara-cara untuk menyelesaikan masalah lama. Masalah apa yang akan dibahas, baca terus.

Pengembangan jaringan, backend, dan web


Kami memulai peninjauan dengan bagian yang serius dan cukup universal, yang mencakup hampir sepertiga dari semua laporan.

Pemrosesan Data Kinerja Tinggi dalam Python


Python saat ini merupakan alat utama untuk mengonversi data berstruktur besar. numpy dan numba adalah perpustakaan populer, tetapi ketika bekerja dengan mereka, mudah bagi pengembang untuk jatuh ke dalam perangkap dan kehilangan semua produktivitas. Donald Whyte (Engineers Gate) akan menjelaskan bagaimana numpy / numba bekerja di bawah tenda dan bagaimana mereka menggunakan vektorisasi untuk dengan cepat memproses data dalam jumlah besar. Alat-alat ini memungkinkan Donald mempercepat perhitungan ilmiah sebanyak 10 kali atau lebih , akan sangat berguna untuk mengadopsi pengalamannya.

Pengalaman menggunakan Apache Kafka di World of Tanks


Levon Avakyan dalam laporannya akan memberi tahu bagaimana Apache Kafka digunakan dalam proyek Wargaming, kesulitan apa yang muncul dalam hubungan ini dan bagaimana cara mengatasinya. Juga bukan rahasia lagi bahwa Wargaming menggunakan Python secara luas untuk pengembangan. Levon akan berbagi pengalamannya menggunakan berbagai perpustakaan untuk Apache Kafka dengan Python .



Wagtail: ketika Anda menginginkan sesuatu yang lebih baik daripada hanya Django


Dalam dunia pengembangan PHP, ada WordPress di mana hampir semua orang dapat membuat situs sederhana, dan menghubungkan spesialis nanti ketika Anda perlu memperluas situs ini. Di dunia Python, sampai saat ini, tidak ada yang seperti ini. Tapi sekarang proyek Wagtail telah muncul - CMS berbasis Django yang lengkap untuk situs web modern. Igor Mosyagin dari Lamoda akan memberi tahu Anda cara kerja Wagtail, di mana nyaman digunakan, dan apakah itu benar-benar sederhana.

Django di bawah mikroskop


Dari laporan pengembang Inti Django Channels Artyom Malyshev (sudah akrab bagi kami, misalnya, dari pembicaraan ini), Anda akan mempelajari semua detail dari kehidupan mekanisme Django internal dari byte pertama permintaan HTTP ke byte terakhir dari respons .

Sebuah ekstravaganza nyata menanti Anda tentang bagaimana bentuk parser bekerja, bagaimana SQL dikompilasi, bagaimana mesin templat untuk HTML diimplementasikan, bagaimana kumpulan koneksi dikelola, dll. Semua ini dalam urutan kronologis pemrosesan objek WSGI.

Di luar Jupyter. Sistem konstruksi pipa pemrosesan data


Andrey Popov akan memberi tahu Anda kerangka kerja untuk Python yang digunakan oleh Positive Technologies untuk mengumpulkan sejumlah besar data dan menganalisisnya untuk ancaman. Laporan akan fokus pada bagaimana cara mengumpulkan data ini dengan benar dan menyimpannya dalam bentuk yang nyaman bagi tim yang berbeda di perusahaan. Namun selain itu, kami akan menyentuh pertanyaan-pertanyaan seperti:

  • Kapan tepat menggunakan seledri / kelinci, dan kapan lebih baik membangun saluran pipa data.
  • Perbandingan Aliran Udara dan Luigi .
  • Luigi 101 - konsep dasar dan contoh penggunaannya.

Sebagai hasilnya, kita dapat mengetahui teknologi mana yang harus dipilih dalam kasus tertentu, dan bagaimana teknologi itu akan terlihat dalam kode.

Riwayat pembaruan arsitektur proyek


Alexander Borgardt akan berbagi sejarah evolusi yang agak tidak penting dari satu proyek. Dimulai dari tornado, kemudian sebagian ditulis ulang dalam C ++ untuk meningkatkan performa berkendara. Kemudian datang tahun 2018, dan ternyata sekarang banyak peretasan lama tidak diperlukan . Bundel asyncio + uvloop + aiohttp akan paling sering memberikan kinerja yang tidak lebih buruk. Ini tentang kasus seperti itu, menggunakan contoh spesifik, dengan rekomendasi yang jelas, yang akan kita bicarakan dalam laporan Alexander.



50 warna Seledri


Oleg Churkin telah terlibat dalam pengembangan Python selama 8 tahun dan sekarang memainkan peran techlide dalam startup fintech TechOps. Ketika kami mengatakan fintech, maksud kami - Data besar . Dari laporan Oleg , kami belajar tentang seluk-beluk penggunaan penjadwal Seledri untuk memproses data besar:

  • untuk jenis tugas apa Seledri dapat dan harus digunakan;
  • bagaimana memulai 500 ribu tugas dan membiarkan basis data dan layanan eksternal tetap hidup;
  • cara memantau kinerja tugas;
  • bagaimana tidak kehilangan tugas saat penggelaran;
  • cara menulis kode tugas yang didukung.

Kami juga akan melihat perpustakaan penulis, yang memungkinkan untuk berhasil mengukur seledri dan memonitor antrian / tugas di Grafana dan Prometheus. Mungkin Anda sudah melihat beberapa spoiler di sini .

Bahasa Python, evolusi dan penggunaannya


Sebelum pindah ke Python kesayangan saya, saya akan perhatikan bahwa program konferensi kami sedemikian rupa sehingga setiap tamu dapat memilih kasus yang menarik untuk dirinya sendiri, mendengarkan pembicara dan, yang paling penting, berkomunikasi dengan semua orang yang datang ke laporan yang sama.

Cheat sosial. Semakin penting topik laporan, semakin dekat rasanya untuk duduk. Pertama, akan lebih mudah untuk bertanya kepada pembicara. Kedua, spesialis lain yang tertarik akan melakukan hal yang sama, Anda dapat mendiskusikan kinerja dengan mereka dan dengan lancar melanjutkan diskusi saat rehat kopi.

Biarkan saya mengingatkan Anda, konferensi, menurut pendapat saya, adalah tentang komunikasi, dan kesempatan ini tidak boleh diabaikan.

Perbarui Python 2.7 ke Python 3.6 dan tidak mati


Evolusi adalah fenomena alam. Dia juga tidak lulus Python, tetapi beberapa proyek masih menggunakan Python 2.7 untuk satu alasan sederhana - karena kompleksitas migrasi antar versi . Alexander Polishchuk (Kode Keamanan) menawarkan untuk berbagi jalan pembaharuannya yang sulit. Dari laporan itu kita belajar tentang kerucut menyapu dan dijejalkan, dan pada contoh hidup kita akan memahami bahwa hasilnya, tentu saja, sepadan.

Laporan Hollywood Linter


Nikita Sobolev, pendiri studio wemake.services, telah tampil di lebih dari satu pertemuan kami dan sudah akrab dengan Anda. Kami berhasil memikat Nikita untuk merekam podcast Python Junior , di mana aplikasi untuk laporan dibuat.

Seperti namanya , kali ini kami akan fokus pada verifikasi kode otomatis dengan Python. Linter ini dikembangkan langsung di studio Nikita, yaitu, kita akan memiliki kesempatan untuk bertanya kepada pengembang alat secara langsung. Selain itu, interaktif dijanjikan, yang berarti tidak hanya informatif, tetapi juga menghibur.

Bagaimana cara mengajar orang pemrograman dan menikmati hidup


Dosen bergumam dengan sedih, menjelaskan istilah yang tertulis di papan tulis. Tetangga Anda sedang menggambar sesuatu di meja. Dari tidur Anda menghemat hanya perlu menuliskan setiap kata dosen. Apakah itu familier? Sayangnya, proses pembelajarannya tidak banyak berubah. Kuliah membosankan berubah menjadi webinar membosankan, tes membosankan berubah menjadi tes online membosankan, tugas membosankan berubah menjadi tugas membosankan dan tidak berguna.

Ilya Lebedev adalah pengembang Python berpengalaman dan pencipta platform pembelajaran devman.org. Sebagai co-organizer, MoscowPython telah mengembangkan dan mengajar di learn.python.ru selama beberapa tahun. Dalam laporannya, Ilya akan mengangkat masalah pendidikan programmer, dengan siapa semuanya sangat tidak terlalu. Apalagi secara umum. Cara sederhana untuk merekrut junior dari lulusan universitas, fakultas, atau spesialisasi tertentu tidak berfungsi. Ilya, berdasarkan pengalamannya, akan mencoba menjelaskan kesulitan apa yang muncul dalam pembelajaran untuk berkembang, dan memberikan saran tentang apa yang harus dilakukan untuk meningkatkan keterampilannya dan membantu membuatnya menjadi bawahan.

Refactoring dengan Python: pola desain dan pendekatan


Tin Marković dari Kiwi.com (Republik Ceko) akan berbagi pengalamannya dalam mengatur sejumlah besar kode Python yang sangat kompleks . Cara memulihkan ketertiban, cara memperbarui kode, mencegah kekacauan baru berkembang, dan umumnya mematuhi standar tinggi dalam basis kode. Semua ini adalah bagaimana kita mencintai contoh nyata dan pengalaman pribadi.

Pylint dari dalam ke luar. Bagaimana dia melakukannya?


Maxim Mazaev berkembang dalam Python di CIAN, tertarik pada bahasa internal, asinkron, dan pemrograman fungsional. Laporannya menggemakan laporan Nikita Sobolev tentang linter , tetapi akan difokuskan pada satu alat utama, yang akan kita pahami sepenuhnya . Berbekal pengetahuan ini, kami akan menerapkannya atas nama peningkatan kualitas kode - kami akan menulis plugin kami untuk Pylint .

Membuat Compiler DSL dengan Python


Penggunaan bahasa pemrograman kecil untuk area subjek individu (DSL) memungkinkan Anda untuk menangani kompleksitas sistem perangkat lunak saat Anda membutuhkannya. Akibatnya, muncul masalah prototyping cepat dari kompiler DSL. Misalnya, sebelum Peter Sovetov dari MIREA, tugas ini muncul dalam konteks percepatan pengembangan core prosesor khusus pada FPGA . Peter akan menceritakan tentang tahapan dan hasil yang mengesankan dari karyanya di Moscow Python Conf ++.

Bug umum dalam arsitektur aplikasi Django


Alexey Polovinkin dari Agima menetapkan tujuan ambisius dari laporan ini - untuk menunjukkan kepada tim pengembang backend bagaimana membangun arsitektur aplikasi Django, bagaimana tidak tersandung lebih dari seratus jebakan dan tidak kedaluwarsa semua tenggat waktu. Pertimbangkan contoh kesalahan tim yang paling umum pada tahap awal pengembangan. Mari kita bahas bagaimana merancang arsitektur aplikasi Django, mengapa Anda harus menggunakan arsitektur terdistribusi dan menjauhkan statika dari Django. Mari kita lupakan tentang refactoring , menyentuh banyak masalah penting, berkenalan dengan pengalaman pengembang Agima.

Pembelajaran Mesin, Kecerdasan Buatan, dan Visualisasi Data


Pembelajaran mesin dan Python adalah pasangan asosiatif yang persisten. Dan, tentu saja, di Moscow Python Conf ++ tidak akan melakukan tanpa laporan tentang segala hal tentang hal itu.

Cara menanamkan ML modern dalam warisan yang keras


Ketika datang ke otomatisasi model-ML, paling sering saya maksudkan, pertama, proyek-proyek baru, dan kedua, Jupyter dan beberapa jenis lingkungan di sekitarnya. Pendekatan ini tidak cocok untuk sistem analitik di bank, di mana biasanya ada banyak warisan.

Namun, Oleg Mangutov berhasil membuat teman Machine Learning modern dengan lingkungan tempat Oracle dan SOAP digunakan, menggunakan lem universal - Python. Kesimpulan utama dari laporan ini, menurut pendapat saya, adalah bahwa pengembang reguler, dengan uji tuntas, dapat menerapkan algoritma pembelajaran mesin dalam proyek yang ada tanpa menulis ulang semuanya dari awal dan tanpa mempelajari cara kerja Oracle secara menyeluruh. Dan manfaat dari ini bisa sangat besar, pengguna bisnis langsung dapat menggunakan antarmuka yang dikembangkan.

Teori jaringan saraf


Beau Carnes memiliki pengalaman luas dalam mengajarkan topik TI dan saat ini sedang mempersiapkan kursus pembelajaran mendalam yang baru. Laporannya akan dibagi menjadi dua bagian (makan siang di tengah untuk menggali pengetahuan). Di bagian pertama laporan, kami akan menyentuh konsep-konsep dasar: pendidikan dengan dan tanpa guru; jaringan saraf untuk prediksi; keturunan gradien. Kami akan membahas perbedaan metode pembelajaran dalam dengan metode pembelajaran mesin tradisional, dan kami akan mengatasinya, tidak terbatas pada kerangka kerja saja.

Di bagian kedua presentasi, kami sedang menunggu penyandian langsung di Jupyter Notebook. Bo on the go in Python murni dari awal akan membuat jaringan saraf yang mempelajari dan mengenali ... tapi apa yang diketahuinya, Anda akan belajar pada 22 Oktober.

Cara Melindungi Algoritma Pembelajaran Mesin dari Contoh Adversarial


Ketika kita menggunakan data publik untuk pembelajaran mesin, kita harus bergantung padanya untuk menjadi lengkap dan bersih. Namun, karena mudah diperhatikan pada contoh penerjemah Google, data mungkin terlihat benar, tetapi pada kenyataannya, alih-alih menerjemahkan dengan benar, ajarkan sistem interpretasi yang tidak terduga. Ini adalah salah satu variasi dari contoh permusuhan.

Spesialis analisis data Keamanan Digital Sergey Dudorov akan memperkenalkan masalah ini secara terperinci, berbicara tentang metode menyerang, mempertahankan, dan menguji algoritme pembelajaran mesin untuk melawan manipulasi menggunakan perpustakaan CleverHans dan Adversarial-robustness-toolbox .

Asisten Virtual Python


Oleg Plichko berjanji untuk menunjukkan bahwa Anda dapat membuat bot obrolan dengan kecerdasan buatan menggunakan alat umum: TensorFlow, Celery, Django. Kita akan belajar dari laporan bagaimana membuat asisten virtual kita benar-benar bermanfaat, dan kita akan melihat contoh dari satu bot obrolan yang sangat menarik yang banyak dari kita mungkin menemukan berguna di masa depan. Kita bisa menanyakan semua pertanyaan kita tentang bot dan layanan kognitif kepada Oleg.

Jupyter dan PySpark di Hadoop untuk Analisis Data Besar


Pembelajaran mesin adalah bidang baru yang tumbuh cepat, masih belum banyak praktik yang mapan. Oleh karena itu, setiap ilmuwan data melakukan banyak eksperimen dan ingin melakukannya dengan cepat. Nah, apakah ini hipotesis sederhana seperti apakah ada cukup data dan apakah itu benar. Tetapi bagaimana jika Anda perlu menerapkan fungsi tulis-sendiri yang kompleks pada sejumlah besar objek? Selain itu, semua tugas harus diselesaikan pada kluster produksi, di mana 50 orang lainnya bekerja.

Pavel Tarasov akan memberi tahu Anda cara cepat menguji hipotesis kompleks menggunakan jumlah minimum alat dan kode. Dalam hal ini, Jupyter dan PySpark adalah tempat Anda dapat membangun pendirian dan tidak menghabiskan waktu seminggu untuk mempersiapkan lingkungan, seperti yang sering terjadi dengan data besar, karena ini Besar.

Konferensi akan diadakan di Infrasprismst, sebuah ruangan kecil akan dialokasikan untuk konten yang dibuat pengguna. Yaitu, mitaps yang dapat dikumpulkan siapa pun adalah hal utama yang ditemukan oleh orang-orang yang berpikiran sama. Dimungkinkan untuk mengatur di tempat, tetapi jika Anda mendaftar terlebih dahulu, Anda akan dijadwalkan.

Lain-lain: Pengujian, Keamanan, DevOps


Lebih lanjut laporan tunggal, mereka tidak masuk ke bagian besar, tetapi menyelesaikan masalah keragaman. Ngomong-ngomong, topiknya sangat penting dan menarik, satu rekayasa sosial sepadan, atau di sini "panduan peretasan".

Panduan Peretas untuk Mengamankan Aplikasi Web Python


Saya harap proyek web Anda tidak pernah diserang atau diretas, tetapi kemungkinan besar seseorang dari teman Anda menghadapi konsekuensi yang menyedihkan. Rekan kami, salah satu penyelenggara PyCon Nigeria, Eyitemi Egbejule mengklaim bahwa, dengan dipersenjatai dengan praktik pengkodean yang aman dan beberapa perpustakaan yang bermanfaat, Anda dapat selamanya melupakan tentang kerentanan dalam aplikasi web Python. Berdasarkan pengalamannya yang luas dalam audit keamanan proyek web, Eyitemi akan memberi tahu Anda kesalahan apa yang paling sering dibuat oleh pengembang layanan jaringan, di mana mencari kerentanan di tempat pertama, dan mana yang paling cepat ditutup. Tidak harus berupa perangkat lunak, masalah bisa dalam logika atau penggunaan umum, tetapi pengaturan default salah.

Kami berharap laporan ini akan memungkinkan pengembang untuk melihat kode mereka dan bahkan mungkin mulai menerapkan tips di sana di konferensi.

Infrastruktur Selenium yang Efisien


Apakah Anda menggunakan Selenium untuk pengujian otomatis, tetapi lelah berurusan dengan rem dan kerusakannya? Kemudian kelas master oleh Ivan Krutov (Aerokube) pada infrastruktur Selenium yang efektif adalah untuk Anda.

Di kelas master, Ivan berjanji untuk menunjukkan cara menyebarkan cluster Selenium dalam beberapa langkah sederhana dari awal berdasarkan proyek open source Selenoid dan Ggr , yang memungkinkan penggantian Selenium Grid yang sudah usang dan berhenti menyiksa Selenium. Anda akan melihat betapa mudahnya untuk merekam video dari tes yang sedang berjalan, menambah versi browser baru dan menonton log secara real time.

Ada begitu banyak materi sehingga kelas master ini akan memakan waktu dua jam pada 23 Oktober - sebelum dan sesudah makan siang, agar punya waktu untuk memikirkan semuanya dengan cermat.

Dark Python: Rekayasa sosial dan peretasan dengan tingkat keberhasilan 70%


Jika Anda yakin sumber informasi yang paling dapat diandalkan - film, maka peretas sekarang menggunakan metode rekayasa sosial alih-alih konsol. Lukas Hurych dari Twisto.cz, sebagai hobi, mencoba berbagai metode serangan pada rekan-rekannya. Hasilnya menakjubkan - 70% sukses. Selain itu, Python kami memainkan peran penting dalam mengotomatisasi proses ini.

Lucas akan membantu Anda mengetahui seperti apa musuh itu dan metode apa yang paling umum dan efektif sehingga kami dapat bertahan melawan mereka di backend dan UX kami.

Akselerasi SQLAlchemy untuk Astronot Arsitektur


Keuntungan besar dari SQLAlchemy adalah ORM yang sangat umum dan salah satu solusi terbaik untuk berkomunikasi dengan database dalam bahasa tingkat tinggi. Namun terkadang kenyamanan ini terkadang bisa berubah menjadi kejutan. Jelas, kenyamanan ini terkadang bisa berubah menjadi kejutan. Alexei Starkov dari Qrator Labs akan menunjukkan cara mencapai kinerja tinggi menggunakan contoh konfigurasi jaringan penyaringan lalu lintas dengan sejumlah besar (ratusan ribu) catatan. Untuk melakukan ini, kita perlu beralih dari penggunaan SQLAlchemy ORM yang paling naif ke operasi massal dan penggunaan SQLAlchemy Core , dan detailnya pada 23 Oktober pukul 16:00.

Praktek Baik dan Buruk untuk Menulis Kode yang Dapat Diuji


Dalam laporannya, Dmitry Dygalo dari kiwi.com akan membahas pendekatan yang akan membantu membuat kode lebih dimengerti , dapat diandalkan dan dapat diuji. Mari kita bicara tentang berbagai masalah dan mendapatkan saran khusus, misalnya, bahwa variabel global adalah konsep yang nyaman yang sering digunakan di mana tidak diperlukan. Cara menemukan kompromi antara isolasi dan kecepatan dalam database pengujian. Tentang injeksi ketergantungan dan pemisahan eksekusi dari implementasi menggunakan contoh-contoh dari perpustakaan populer. Dan tentu saja ini belum semuanya.

Tampaknya ini lebih dari cukup untuk membentuk gagasan tentang apa yang akan terjadi di konferensi. Untuk mengerjakan program ini saya ingin mengucapkan terima kasih kepada semua anggota Komite Program: Vladimir Filonov, Zlata Obukhovskaya, Alexander Khayorov , Ivan Tsyganov , Leonid Kalneus.

Melalui operasi logis yang kompleks, kami telah menempatkan semua laporan dalam jadwal yang harmonis (di sini pdf dengan visualisasi berdasarkan topik). Ternyata apa yang ada dalam pikiran kami ketika memulai persiapan kami untuk konferensi enam bulan yang lalu: topik-topik didistribusikan di seluruh berbagai penggunaan Python, sejumlah besar penutur berbahasa Inggris, ada sesuatu untuk dibicarakan lebih dari secangkir kopi dan segelas bir di pesta sesudahnya.

Sampai jumpa di Moscow Python Conf ++ 2018 !

Source: https://habr.com/ru/post/id425473/


All Articles