Обновить
600.55

Python *

Высокоуровневый язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Python: потоки по-другому

Время на прочтение4 мин
Охват и читатели17K

Знаете, почему я решил написать эту статью? Я писал программу, где использовал потоки. Во время работы с ними в Python всё больше убеждаешь себя, что тут с ними всё плохо. Нет, не то, чтобы они плохо работали. Просто использовать их, мягко говоря, неудобно. Я решил написать простую, но более удобную библиотеку, и здесь поделюсь процессом.

P.S.: В конце оставлю ссылку на GitHub

Читать далее

Websocket-сервер для геолокации на asyncio

Уровень сложностиСредний
Время на прочтение20 мин
Охват и читатели22K

Привет!

Меня зовут Артем, я занимаюсь бэкенд-разработкой в отделе спецпроектов KTS и веду курс по асинхронному программированию в школе Metaclass. 

11-го апреля у нас стартует 3-й поток курса. Чтобы показать, чему учатся наши студенты, мы провели live-code-вебинар по вебсокетам, на котором написали сервис, в котором пользователи могут делиться своей геопозицией в режиме реального времени. Хотите узнать, как создавать такие сервисы?

Хочу

Custom Pod Autoscaler – сверхгибкое автоскалирование в Kubernetes

Время на прочтение8 мин
Охват и читатели4.9K

Преимущества использования системы оркестрации контейнеров — удобство их развертывания, обновления и масштабирования. И одним из наиболее популярных таких инструментов является Kubernetes. 

Многие знают, что Kubernetes имеет встроенный механизм для автоскалирования подов — Horizontal Pod Autoscaling (HPA). Но что, если надо принимать решение с учетом множества факторов: суммы метрик, зависимости от количества готовых контейнеров, процента или доли доступных/недоступных подов или даже времени суток? А если эти показатели важны для нас все вместе? 

Мы в студии Whalekit смогли решить эту задачу. И отличным решением для этого стал Custom Pod Autoscaler (CPA).

Читать далее

Прямое подключение крохотного OLED-дисплея по HDMI

Время на прочтение11 мин
Охват и читатели30K

Есть у меня склонность к реализации глупых и бессмысленных проектов. Перед вами один из них, который появился в результате беседы, закончившейся словами: «Слушай, а ведь технически возможно…», — не вопрос, давай сделаем.
Читать дальше →

Обратная сторона Луны: как мы создали чат-бота с «человеческим лицом»

Время на прочтение5 мин
Охват и читатели2.4K

Меня зовут Александр Терехов, я работаю инженером группы классификации и диагностики (КиД) в самарском филиале «Инфосистемы Джет». Несколько лет назад я помогал девушке с дипломной работой, и мы создали чат-бота с психологическим уклоном — он тестировал типы личности и темпераменты. Тогда я настолько проникся этим опытом, что, когда начал создавать чат-бота для нужд технической поддержки, решил добавить в него немного психологии. Так появилась Луна — чат-бот, который помогает в работе инженерам «Инфосистемы Джет» и реагирует на эмоции.

Читать далее

Cling – не просто интерпретатор C++

Время на прочтение12 мин
Охват и читатели8.5K

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

Читать далее

Anna: готовим отчет о тестировании API, чтобы все были довольны

Время на прочтение3 мин
Охват и читатели10K

Всем привет. Как часто вам нужно разрабатывать сотни авто тестов и предоставлять заинтересованным лицам отчеты с результатами? Лично мне очень часто. В этом мне помогает Anna.

Читать далее

Как писать питонический код: три рекомендации и три книги

Время на прочтение15 мин
Охват и читатели48K

Новички в Python часто спрашивают, как писать питонический код. Проблема — расплывчатое определение слова "питонический". Подробным материалом, в котором вы найдёте ответы на вопрос выше и три полезные книги, делимся к старту курса по Fullstack-разработке на Python.

Читать далее

Своё частичное зеркало PyPi, на всякий случай

Время на прочтение7 мин
Охват и читатели16K

Создание своего зеркала PyPi в текущей ситуации — это наверное почти обязательное действие, если вы программируете на Python и хотите сохранить работоспособность менеджера пакетов pip (в прошлом случайная блокировка уже нарушала его работу). Решение известно — можно создать своё зеркало PyPi, куда будут загружаться все используемые вами пакеты. Автор данной статьи постарался подготовить как можно более простой в использовании вариант, своё зеркало запускается в четыре простых шага: git clone ..., настройка пароля администратора зеркала, docker-compose up -d и настройка pip на использование вашего зеркала.

Читать далее

Банкрот или не банкрот? Вот в чем вопрос

Время на прочтение5 мин
Охват и читатели5.9K

Сталкиваетесь ли Вы с необходимостью использовать внешние источники данных? Если да, то Вам пригодится алгоритм автоматизированного сбора информации с сайта – парсер. Разберём процесс создания такого алгоритма на примере сайта ЕФРСБ.

Перед Data Science специалистами регулярно встают задачи, для решения которых необходима информация из внешних источников, и часто её объёмы такие, что ручной поиск занимает непозволительно много времени. Автоматизированный сбор данных с сайта (парсинг) позволяет получить необходимые для задачи сведения, экономя время.

Одна из таких задач встала перед нашей командой: понадобились данные о процедуре признания физических лиц банкротами. Для этого был разработан алгоритм парсинга сайта Единого федерального реестра сведений о банкротстве (ЕФРСБ) с использованием библиотек requests и bs4. В настоящей статье предлагаю рассмотреть процесс создания этого парсера и познакомить Вас с решениями некоторых проблем, с которыми мы столкнулись.

Разработку алгоритма мы решили разбить на 2 части:

Читать далее

Прогнозирование атмосферного CO2 с помощью Python

Время на прочтение10 мин
Охват и читатели11K

Прогнозирование атмосферного CO2 с помощью Python. Как создавать модели прогнозирования временных рядов с помощью Darts.

Читать далее

Data Science — это не только подсчет пельменей…

Время на прочтение4 мин
Охват и читатели9K


Пока идут разговоры про отъезд ИТ специалистов, про их возврат, про поддержку ИТ компаний, а неофиты pandas восторженно разбирают json, есть предложение посмотреть на роль data science инструментов в современной ИТ инфраструктуре немного с другой точки зрения. DS — это ведь не только подсчет пельменей, накликивание мышкой графиков-пирожков или создание N+1 системы по рекомендации фильмов из вселенной Марвел.


Является продолжением серии предыдущих публикаций.

Читать дальше →

Простой Telegram бот для поиска по сайту на WordPress без знаний программирования

Время на прочтение3 мин
Охват и читатели19K

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

Читать далее

Ближайшие события

Создание документации по проекту с помощью Сonfluence API

Время на прочтение6 мин
Охват и читатели14K

В этой статье мы хотели бы поделиться кейсом о том, как собрать документацию по проектам заказчика с помощью Сonfluence.

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

Специалист Neoflex из подразделения Big Data Solutions рассказывает о проблеме, с которой он столкнулся:

При введении своего раздела в Confluence стараешься сразу же описывать документацию для клиента (руководство администратора), а вот забрать/экспортировать страницу в Word получается только по одной странице, и приходилось объединять все это руками в один документ. Поэтому я приступил к реализации своего микросервиса по сбору документов и созданию документации.

Зная такие инструменты как Selenium и язык программирования Python, мною была написана рекурсивная функция от нужного отдела по всем его дочерним объектам. В ходе выполнения наткнулся на большое количество проблем: например, отсутствие id в url, принадлежность одной страницы другому разделу, медленная работа, несоответствие стилей и т.д. Вся работа строилась на простом алгоритме: проходить все страницы, сохранять необходимый текст в тегах в html файл для дальнейшего преобразования в DOCX. Почему пришлось отказаться от данного подхода:

Читать далее

Как встроить блокнот Jupyter на любой сайт

Время на прочтение5 мин
Охват и читатели8.2K

Ранее мы анонсировали JupyterLite — дистрибутив JupyterLab, полностью запускаемый в браузере. Материалом, который будет полезен авторам документации библиотек Python, делимся к старту флагманского курса по Data Science.

Читать далее

Менеджер паролей без хранения

Время на прочтение3 мин
Охват и читатели17K

Всем привет!

Хочу поделиться с народом своей идеей по поводу безопасного хранения паролей. Сторонние менеджеры паролей мне всегда не нравились. Хранение сокровенного у чужого дяди – идея ну очень так себе. Можно сколько угодно клясться, что все надежно, что утечки маловероятны и т.д. Но одна утечка – и все что нажито непосильным трудом погибнет.

Поэтому, я, руководствуясь принципом «хочешь, чтобы было сделано хорошо – сделай сам», решил создать свое решение этой проблемы.

Задачи стояли следующие:

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

2. Он должен быть кроссплатформенным: Android/Linux/Windows.

3. Пароли в принципе не должны храниться нигде и ни в каком виде – это и есть изюминка моей идеи.

4. Если кто-то получит доступ к исходным кодам – это ничего ему дать не должно. Собственно, поэтому я и решил поделиться с народом своей идеей.

Читать далее

15 Open Source библиотек для повышения качества данных

Время на прочтение5 мин
Охват и читатели13K

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

Читать далее

Копи паст туда, куда нельзя

Время на прочтение1 мин
Охват и читатели9.2K

Бывает такое, что необходимо вставить текст туда, где не предусмотрена возможность вставки текста.
Не работает Ctrl+v и нет других способов вставить скопированный текст.
Например, это может быть удаленный рабочий стол Windows или терминал сервера, расшареный в браузере или просто Вы подключились к консоли KVM.

Я попал в такую ситуацию, мне надо было ввести длинный текст в консоль KVM и я сделал себе утилиту, которая позволят это делать. Она умеет вставлять любой одно-строчный текст в такие "неудобные места", эмулируя нажатие клавиш на клавиатуре.

Я не проверял его работу в Windows или Mac, я работаю в Ubuntu. Вот тут можно почитать подробнее и допилить для работы с Вашей OS.

Спешу поделиться с сообществом инструментом, который выручил меня.

Его очень легко использовать, достаточно скрипту указать нужный текст и задержку в секундах, чтоб успеть установить курсор.

Вот ссылка на github, там сам код, ман по установке и использованию.

Читать далее

Ферма для чайников

Время на прочтение8 мин
Охват и читатели12K

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

В нашем арсенале более 150SKU умной техники, которой можно управлять через приложение на смартфоне. Для корректной работы и выполнения всех функций мало сконструировать девайс, нужно его хорошенько протестировать. Разумеется, по одному экземпляру невозможно сделать вывод о качестве всей партии продукции, а значит, проводить все манипуляции вручную крайне ресурсозатратно. Так какой же выход?

Мы решили, что лучше всего создать инструмент, который позволит максимально избавить все процессы от ручных проверок. Таким инструментом стали стенды автоматического тестирования (САТы).

Это уникальный проект компании Ready For Sky. САТы разрабатываются, чтобы значительно сэкономить рабочее время отдела тестирования и при этом увеличить результативность и качество.

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

Читать далее

Q-Learning в сфере оптимизации бизнес-процессов

Время на прочтение5 мин
Охват и читатели4.7K

Расскажу про алгоритм обучения с подкреплением Q-learning и его применении в сфере майнинга процессов. Алгоритм позволяет оптимизировать бизнес-процесс, превращая его из хаотичного графа, с большим количеством связей и ветвлений, в понятный и однозначный оптимальный путь исполнения.

Читать далее

Вклад авторов