• Мелкая питонячая радость #15: генераторы тестовых данных, профайлер и консольная база знаний

      При долгой работе с большим проектом так или иначе упираешься в поиск узких мест в коде. Что только не используют для этого — от навороченных профайлеров и брейкпоинтов до выводов print и замеров времени вручную с выводом таймстампов на консоль.

      Теперь в свой арсенал можно добавить профайлер pyinstrument. Традиционные профайлеры по шагам отслеживают выполнение программы, а pyinstrument реализуется концепцию статистического профайлинга — это когда профайлер не вмешивается в выполнение кода, а лишь записывает состояние стека вызова с определенной периодичностью.

      Читать далее
      • +22
      • 3,6k
      • 2
    • Мелкая питонячая радость #14: ботнеты, распознавание текстов и генератор статических сайтов

        Самое поразительное из того, что я увидел за последние 2 недели — тулкит на Python для создания ботнетов. Конечно же, он написан для исследовательских и учебных целях, но, тем не менее, эта штука дает энтузиастам компьютерной безопасности доступ к реализации целого  набора весьма опасных функций.

        Знакомьтесь! byob, легальный и публичный тулкит для ботнетов.

        Читать далее
      • Мелкая питонячая радость #13: стойкие пароли, гибкие уведомления и вменяемые тесты API

          Создатель Python и пенсионер Гвидо Ван Россум был вынужден снова выйти на работу, на этот раз в Майкрософт. Нет, Гвидо сделал это не  потому, что на 15 000 рублей (200 долларов) пенсии  ему  тяжело жить — в MS он устроился от скуки: талантливому инженеру не сидится без дела. Желаю всем нам в старости быть как Гвидо и плавно перехожу к разбору трех весьма полезных штуковин из питонячего мира. 

          Читать далее
          • +11
          • 5,7k
          • 1
        • Мелкая питонячая радость #12: вирусы и зловредное ПО на Python

            В мире  существует много явлений с сомнительной и спорной репутацией. Например, сюда можно отнести  хоккей на траве, датскую квашеную селедку и мужские трусы-стринги. А еще к этому  списку можно с абсолютной уверенностью добавить вирусы на Python.

            Трудно сказать, что толкает людей на создание вредоносного ПО на этом языке программирования. Обилие выпускников “шестимесячных курсов Django-программистов” с пробелами в базовых технических познаниях?  Желание нагадить ближнему без необходимости учить C/C++?  Или благородное желание разобраться в технологиях виримейкерства путем создания небольших прототипов вирусов на удобном языке?

            Читать далее
            • +17
            • 12,4k
            • 4
          • Мелкая питонячая радость #11: реактивное программирование, парсинг страниц и публикация моделей машинного обучения

              image


              На этой неделе мы посмотрим, как можно работать чуточку быстрее, чем вчера. Разбираемся и внедряем в свои проекты пайплайны реактивного программирования, автоматически потрошим тексты и превращаем модели машинного обучения в интерактивные веб приложения.

              Читать дальше →
              • +16
              • 5,1k
              • 3
            • Мелкая питонячая радость #10: конечные автоматы и глубокое обучение в несколько строк

                Конечно, самая большая радость этих дней — python 3.9. Но кроме этой радости кто-то должен ворошить github в поисках мелких приятностей, которые несут добро и свет тем, кто пишет на python.


                Transitions


                Тем, кому приходилось писать реализацию какого-нибудь сложного информационного процесса, знает эту проблему.


                У вас есть некий объект, который может находиться всегда только в одном состоянии.
                Переходы между состояниями описываются диаграммой состояний — из какого в какое состояние объект может перейти, а из какого в какое — не может.


                Читать дальше →
                • +23
                • 10,4k
                • 1
              • Мелкая питонячая радость #9: консольные приложения с человеческим лицом

                  Философы говорят, что людей нужно оценивать не по тому, как высоко они могут забраться, а по тому, как низко они могут пасть.


                  В мире есть много прекрасных разработчиков, которые могут выдавать эффектные алгоритмы, изящные архитектуры и прекрасный код. Но эти же программеры берут и пишут весьма посредственно организованный код какого-нибудь маленького консольного скрипта для расчета аналитики или патча данных в базе. Никакой разбивки на классы и функции, корявая передача аргументов, примитивный вывод малопонятной информации с помощью print()


                  Сегодня мы поговорим о том, как сделать лучше программы, на которые большинству плевать — одноразовые консольные утилитки и скрипты.


                  image

                  Читать дальше →
                  • +31
                  • 11,5k
                  • 7
                • Мелкая питонячая радость #8: мелкие удовольствия для работы с БД

                    Беглый опрос коллег на моем текущем проекте показал, что при словах "ORM и работа с БД" в подавляющем большинстве случаев звучат слова "Алхимия" и "Django ORM". Знания этих двух слов, в общем, достаточно, чтобы писать чистый, аккуратный и рабочий код. Но расширение инженерного кругозора пока еще никому не вредило, поэтому сегодня мы добавим в нашу картину мира несколько (возможно, до этого дня незнакомых) классных штук для работы с БД.


                    Читать дальше →
                  • Мелкая питонячая радость #7: три штуки по цене одной — консольная анимация, алгоритмы и отладка

                      На этой неделе достаточно крупных мелких радостей не нашлось, зато нашлись 3 совсем мелкие мелкие радости.


                      termtosvg


                      Сейчас принято снабжать свои библиотеки и репо на github красивой анимацией, показывающей консоль с живой демкой вашего творения.


                      image


                      Традиция, бесспорно, хорошая и правильная. Только записывать такие анимации бывает трудно/лень/некогда. Авторы termtosvg пристрелили всех зайцев одим выстрелом и дали программистам прекрасную штуку для записи консольных демок.

                      Читать дальше →
                      • +31
                      • 8,7k
                      • 9
                    • Мелкая питонячая радость #6: OpenAI Gym — играем в игры и управляем роботами

                        Мы привыкли к тому, что специалисты по машинному обучению огромную часть своего рабочего времени сидят над анализом табличных данных или обучают нейросеть для раскладывания фотографий кошек и собак на две аккуратные кучки. Ибо такова воля бизнеса — чаще всего нужно давать прогнозы, классифицировать данные и строить модели.


                        Сегодня мы проветрим мозги и разомнем дряблеющие от скуки синапсы с помощью кое-чего интересного — OpenAI Gym.


                        Читать дальше →
                      • Мелкая питонячая радость #5: Dynaconf — управление настройками в проекте

                          Некоторые вопросы в мире питонячей разработки имеют магическую силу поднимать целые армии людей, направлять их на священную войну и заставлять кидать друг в друга целыми кучами аргументов, выкладок и кусков кода. Иногда, когда доводы заканчиваются, враждующие армии быстро переходят к ведению боевых действий с помощью перекидывание кучек вербальных экскрементов.


                          К популярным темам относятся вопросы:


                          • Надо ли вообще этот проект писать на Python?
                          • Какой фреймворк взять для разработки?
                          • Кто быстрее, библиотека X или библиотека Y?

                          Сегодня я попробую аккуратно подковырнуть как раз одну из таких магических тем — вопрос "Как управлять конфигами в проекте?".


                          Читать дальше →
                        • Мелкая питонячая радость #4: Radon — качество кода, измеренное в числах

                            Инженеры очень любят измерения и числа. Поэтому нет ничего удивительного в том, что они пытаются измерять в численном виде такую нетривиальную штуку, как качество кода.



                            Метрик для оценки текстов программ придумали немало — от банального количества строк кода в проекте до не столь очевидного "индекса поддерживаемости" (Maintainability Index). Подробно про все существующие способы обмазывания кода всякими метриками можно почитать в этой статье.


                            В мире Python, конечно же, есть своя штука для оценки качества кода. Она называется radon. Она написана на этом же самом Python и работает исключительно с питонячими файлами.

                            Читать дальше →
                            • +26
                            • 7,5k
                            • 2
                          • Мелкая питонячая радость #3: Poetry


                              Управление зависимостями? Шо, опять?


                              Экосистема Python породила целую пачку способов управления зависимостями в проектах.
                              Прямо сейчас можно выбирать между setup.py, requirements.txt, setup.cfg, MANIFEST.in и Pipfile.
                              Но французского питониста Sébastien Eustace все эти способы не устроили, и он написал свою штуку для менеджмента питонячих пакетов — Poetry. Зачем он это сделал? Чтобы заменить все эти setup.py, requirements.txt, setup.cfg, MANIFEST.in и Pipfile чем-то простым и понятным. Плюс добавить кое-что полезное сверху.

                              Читать дальше →
                            • Мелкая питонячая радость #2: Starlette


                                Туннельное зрение


                                Так уж сложилось, что на Python пишут много веб-приложений. Эту нишу Python разработки почти полностью поделили между собой два здоровых игрока — Django и Flask. Поэтому большой процент программистов, пишущих на Python, заточен на работу с этими двумя фреймворками.


                                По этой причине у многих Python-разрабов складывается некое подобие туннельного зрения — их инженерный подход заперт между этими двумя библиотеками.

                                Читать дальше →
                              • Кривая обучения и кривые руки: неуемная фантазия + исследования физика Джеффри Уэста

                                  Люди прекрасно живут, не зная английского. Без английского легко можно сходить в магазин, провести диванную аналитическую консультацию, оплатить счета и высказаться о достоинствах мамки вашего оппонента.



                                  Под катом — несколько интересных графиков и эволюция сложных систем. И что с этим делать.
                                  Далее
                                • PyCon 2016 в Портленде: видео всех значимых докладов и мастер-классов

                                    image

                                    Под словами PyCon чего только не проводится. От шумных конференций с билетами за N сотен долларов до бесплатных заседаний зимбабвийского клуба питонистов в количестве 2-х голодных темнокожих разработчиков.

                                    Портлендский PyCon этого года — мероприятие крупного калибра с крутыми докладчиками и действительно ценной информацией. Тут были и простые развлекательные презентации на 30 минут о будущем Python, и мастер-классы по популярным темам типа масштабирования Flask и упаковки приложений в Docker, и хардкорные многочасовые занятия по статистике и машинному обучению.

                                    Организаторы не поскупились, все качественно записали и уже выложили на официальный канал конференции.
                                    Все на английском языке, но довольно понятном. Мимо такой кучи ценных знаний просто нельзя пройти мимо.

                                    Несколько примечательных видео с комментами под катом
                                  • Улучшаем свой английский: изобретаем субтитры заново

                                      1. Intro




                                      — Татьяна Леонидовна, а можно, мы посмотрим это кино с субтитрами?
                                      — Нет, малолетние дятлы, мы тренируем ваше слуховое восприятие, поэтому кино вы будете смотреть без них! С субтитрами вы будете только читать текст и не слушать.
                                      — Татьяна Леонидовна, но без субтитров мы больше половины не понимаем!
                                      — А вот это уже ваши проблемы.

                                      Начало 2000-х, диалог с учителем во французской спецшколе, Санкт-Петербург.

                                      Далее
                                    • Средняя температура по больнице, кластеры данных и принятие решений в проекте

                                        0. Intro


                                        Приятно видеть, как люди запускают множество сервисов и приложений. Кому-то везет и  успех к продукту приходит сам. Большинство же должно адекватно оценивать ситуацию на своем проекте и принимать правильные решения, ведущие к своему лунапарку с нардами и секретаршами.
                                        Сейчас я предложу вам один из вариантов того, как правильно оценивать ситуацию с продуктом, принимать решения и не попасться на ошибку «средней температуры по больнице». Под капотом — немного датайманинга, больничных метафор и «стартаперских метрик».


                                        Это птичка века и она поможет нам с сегодняшней статьей.

                                        Читать
                                      • Читаем электронные книги на английском без словарей и переводчиков

                                          1. Интро. Личное



                                          Я готовлюсь к языковому экзамену IELTS (International English Language Testing System) — пожалуй, самому популярному
                                          тесту на знание английского. Если хочется эмигрировать, найти работу в международной компании — диплом IELTS очень пригодится. Шкала оценок — от 0 (от испытуемого не удалось получить даже внятного мычания) до 9 (экcперт — испытуемый чертовски хорош и может устроиться даже редактором лондонской газеты).

                                          Для учебы, например, в США, нужно не менее 6.5 баллов (бывает и 6, но не часто), для работы — 7 и выше. А для эмиграции, допустим, в Канаду — чем выше оценка, тем лучше. Мой прогнозируемый балл перед сдачей теста — 5.5. Значит, что я могу читать газеты, смотреть кино, вести беседы в знакомых ситуациях, писать ответы на письма. Но для работы в центральном офисе Гугла явно недостаточно.

                                          Что же делать, чтобы подтянуть уровень языка? Конечно же, начать использовать его в своей жизни как можно чаще и больше. Например, читать книги на английском.
                                          Далее