IT-новости про Python, которые стоит знать

Собрали в одном месте самые важные ссылки
читайте авторский блог

     20.07.2023       Выпуск 500 (17.07.2023 - 23.07.2023)       Статьи

Jira worklog без плагинов

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

     20.07.2023       Выпуск 500 (17.07.2023 - 23.07.2023)       Статьи

Пишем свой Chat GPT

В июне у OpenAI вышла новость, что в модель GPT можно передавать API сторонних приложений, что открывает широкий круг возможностей для создания специализированных агентов. Мы с командой решили написать свой чат для работы с GPT4 от Open AI и другими ML/LLM моделями c возможностью кастомизации под внутренние нужды компании. Проект выложен в открытый доступ, скачать можно по ссылке. Сейчас он находится в активной разработке, так что будем рады видеть ваши замечания / пожелания в комментариях. Также присылайте ваши pull requests с исправлениями. 

     20.07.2023       Выпуск 500 (17.07.2023 - 23.07.2023)       Статьи

От маргинального языка к самому популярному в мире: как изменился Python за двадцать лет

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

     19.07.2023       Выпуск 500 (17.07.2023 - 23.07.2023)       Статьи

DesktopETL — кросс-платформенный прототип ETL-системы, или как регулярно загружать XML/JSON и сохранять в XLS/CSV

Идея моего домашнего проекта началась с простой, на первый взгляд, задачи: с потребности конвертировать файлы формата XML в формат XLS (или CSV) для последующего анализа. И я был наивен, чтобы попробовать решение «в лоб» и с помощью Excel импортировать богатый внутренний мир SAP Business Objects, описанный в иерархической структуре XML, в табличную форму, — и примерно через час мое сознание, в очередной раз выдав исключение о переполнении памяти, подключило опыт, который намекнул, что иерархические структуры заранее неизвестной глубины проще всего обрабатывать посредством рекурсии.

     19.07.2023       Выпуск 500 (17.07.2023 - 23.07.2023)       Статьи

VoiceChat на несколько человек с блэкджеком и (Web?)UI над UDP socket python

Лучший способ допилить что‑то — это придумать заново. Всё что вы прочитаете далее — есть мой гайд по изготовлению велосипеда и не претендует на звание полноценного презентабельного проекта.

     18.07.2023       Выпуск 500 (17.07.2023 - 23.07.2023)       Статьи

Selenium. Автоматизация тестирования календаря (Datepicker)

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

     18.07.2023       Выпуск 500 (17.07.2023 - 23.07.2023)       Статьи

Превращаем любой фреймворк в FastAPI. На прицеле Flask

Я уверен, вы знаете, что такое FastAPI. По результатам опросов Stackoverflow этот фреймворк уверенно входит в топ любимых фреймворков не только питонистов, но и разработчиков в целом. И не зря: за счет свеого подхода к сериализации данных он предоставляет действительно потрясающий опыт разработки.

     18.07.2023       Выпуск 500 (17.07.2023 - 23.07.2023)       Статьи

Simba: Симуляция десятков тысяч частиц в потенциале Леннарда-Джонса на чистом Python с GPU-ускорением

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

     18.07.2023       Выпуск 500 (17.07.2023 - 23.07.2023)       Статьи

Крестики-Нолики (Tic Tac Toe) с компьютером на Python. Мой первый шаг к Machine Learning. Часть 1

Я любитель Python и совсем недолго осваиваю язык всеми доступными способами. Моя цель - понять принципы машинного обучения и его взаимосвязь с нейросетью. Никакого опыта в IT не имел, тем не менее постараюсь излагать общепринятой терминологией, не судите строго. Моя основная профессия не менее сложная, далека от IT, но для упрощения работы в нее все больше внедряются AI и ML. Мною движет лишь интерес к современным технологиям, программированию.

     17.07.2023       Выпуск 500 (17.07.2023 - 23.07.2023)       Статьи

Пять декораторов Python, которые могут сократить код в два раза

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

     17.07.2023       Выпуск 500 (17.07.2023 - 23.07.2023)       Статьи

Визуализация реальных масштабов проклятия размерности

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

     15.07.2023       Выпуск 499 (10.07.2023 - 16.07.2023)       Статьи

Ping пакеты как временное хранилище данных на python raw socket

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

     14.07.2023       Выпуск 499 (10.07.2023 - 16.07.2023)       Статьи

Простой бэкап базы данных и статики для небольшого Django-проекта

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

     13.07.2023       Выпуск 499 (10.07.2023 - 16.07.2023)       Статьи

Highload-проект с нуля за 2 месяца

Как за ограниченное время из готовых компонентов создать и запустить по-настоящему нагруженный проект? Рассмотрим пример метрик, архитектуры, технических ограничений и подходов к проектированию систем на примере проекта «Экологический диктант».

     13.07.2023       Выпуск 499 (10.07.2023 - 16.07.2023)       Статьи

FVWA (Flask Vulnerable Web Application)

Мы создали лабораторию с одной целью — помочь начинающим ИБ-специалистам ознакомиться с основными уязвимостями в веб-приложениях. Приложение содержит несколько заданий, в каждом из которых реализован некоторый изъян в безопасности (будь то слабый пароль, SQL-инъекция или XXE). Вы смело можете искать нестандартные пути решения, знакомиться с новыми для себя средствами анализа защищённости веб-приложений, пробовать различные полезные нагрузки и, главное, смотреть исходный код, позволяющий увидеть причину возникновения обнаруженной вами уязвимости. Мы сделали минималистичную борду для сдачи флагов, а это значит, что вы сможете поделиться своими результатами с другими энтузиастами, обсудить интересные находки или поделиться способом решения)

     13.07.2023       Выпуск 499 (10.07.2023 - 16.07.2023)       Статьи

Экстренное шифрование данных

Представим такую ситуацию: на вашем компьютере хранятся очень важные или компрометирующие вас данные, а в вашу дверь кто-то ломится. Ваша задача заключается в том, что бы быстро и незаметно зашифровать всю важную информацию на своём компьютере. Как это сделать?

     13.07.2023       Выпуск 499 (10.07.2023 - 16.07.2023)       Статьи

RabbitMQ Direct Reply-to. RPC поверх кролика без дополнительных очередей (пример на Python)

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

     12.07.2023       Выпуск 499 (10.07.2023 - 16.07.2023)       Статьи

Отслеживание Bluetooth-устройств: эксперимент и выводы

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

     12.07.2023       Выпуск 499 (10.07.2023 - 16.07.2023)       Статьи

Как из метрик Prometheus построить график Latency

Обычно мы подключаем сбор метрик в prometheus к нашим web‑приложениям с помощью каких‑то клиентских библиотек, которые отдают метрики на /metrics. В этой статье я хочу рассказать как визуализировать Latency с помощью Histogram метрики.Будет полезно тем, кто еще не строил метрики из Prometheus, а так же тем, кто хочет понять как их интерпретировать.