Обновить
520.69

Python *

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

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

Как написать простого бота для ВК и Телеграм

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


Мы уже упоминали, как мы предоставляем бесплатные VPS для студентов, чтобы они учились программировать. Один из наших подопечных Павел сделал простеньких телеграм и ВК ботов для FAQ. Они очень простые, тем не менее, начинающему программисту не помешают комментарии опытных ребят — поэтому публикуем его рассказ — Павел будет рад, если в комментариях ему дадут советы.
Читать дальше →

Как я сделал веб-фреймворк без MVC — Pipe Framework

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

Проработав фулстек разработчиком около 10 лет, я заметил одну странность.


Я ни разу не встретил не MVC веб-фреймворк. Да, периодически встречались вариации, однако общая структура всегда сохранялась:


  • Codeigniter — мой первый фреймворк, MVC
  • Kohana — MVC
  • Laravel — MVC
  • Django — создатели слегка подменили термины, назвав контроллер View, а View Template'ом, но суть не изменилась
  • Flask — микрофреймворк, по итогу все равно приходящий к MVC паттерну

Конечно, с моим мнением можно поспорить, можно продолжить перечислять, однако суть не в этом.

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

Языку программирования Python исполнилось 30 лет

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


Время идет быстро, и Python, одному из самых популярных языков программирования современности, исполнилось 30 лет. Впервые о нем стало известно в конце февраля 1991 года, когда Гвидо ван Россум опубликовал первый выпуск Python в группе alt.sources.

Работа над языком велась два года, изначальной задачей было создание скриптового языка для работы с операционной системой Amoeba. Язык этот должен был быть более высокого уровня, чем Си, плюс представлял бы удобный доступ к системным вызовам операционной системы.
Читать дальше →

Pythonista. Привет, Python

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

Доброго времени суток, Хабр. Запускаю короткий курс статей, который охватывает ключевые навыки Python, необходимые для изучения Data Science. Данные статьи подойдут для тех, кто уже имел опыт в программировании и хочет добавить Python в свою копилку навыков.

Читать далее

Краткость — сестра таланта: Как сделать Transformer/Summarizer на Trax

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

В новой курсеровской специализации «NLP» от deeplearning.ai в качестве библиотеки глубокого обучения используется Trax. В последнем курсе подробно разбирается механизм внимания и его использование в архитектуре Transformer, в том числе в таких «новеллах» как BERT и T5. Имея немного свободного времени, специализацию можно пройти за несколько недель, что я собственно и сделал, соблазнившись возможностью построить собственный трансформер с нуля. Очень хотелось сделать модель, которая может работать с текстами на русском языке.

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

Читать далее

Еще один фреймворк…

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

Вчера я зарелизил свой первый Python фреймворк. Нет, не еще один. Это в мире - еще один. А для меня пока что первый. И я допускаю, что он первый в своем роде. Это фреймворк для создания кастомных серверов. И создаваться они будут через конфиг. Ух, насоздаем сейчас...

Насоздаем!

Поддержка токенов PKCS#11 с ГОСТ-криптографией в Python. Часть I

Время на прочтение26 мин
Охват и читатели11K
imageПоддержка криптографических токенов PKCS#11 с российской криптографией в скриптовых языках (Python, Tcl) давно находится в моём поле зрения. Это, прежде всего, пакет TclPKCS11 и реализованная на его базе кроссплатформенная утилита cryptoarmpkcs. Утилита cryptoarmpkcs написана на tcl/tk и функционирует на различных платформах, включая Android. Пакет TclPKCS11 версии 1.0.0 заточен на работу именно с токенами, поддерживающими ГОСТ Р 34.11-2012 и ГОСТ Р 34.10-2012. Он позволяет генерировать ключевые пары по ГОСТ Р 34.10-2012 с длиной закрытого ключа 256 и 512 бит, формировать и проверять электронную подпись. Все это можно наглядно видеть в утилите cryptoarmpkcs, в которой в качестве криптодвижка используется именно этот пакет:
Читать дальше →

Как же писать эти грёбаные циклы?

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

Было бы здорово иметь чёткий алгоритм размышлений, который при знании синтаксиса поможет идеям всплывать в голове. За свою практику я создал много таких алгоритмов, а также позаимствовал у гуру программирования. Большая их часть основана на бытовых аналогиях событий из создаваемой программы. Например, набор переменных можно представить, как конвейерную ленту с коробочками, в каждой из которых - свой товар. Сама коробочка - это и есть переменная, а надпись на неё - её имя. Внутри одной коробочки - число, внутри другой - текст, и т. д.

Читать далее

Ускоряем код на Python с помощью Nim

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

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

Читать далее

Распознаем речь с помощью IBM Speech-to-Text API

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

Извлекаем разговоры из аудиозаписи с легкостью, используя Python.

В этой статье вы узнаете, как использовать IBM Speech to Text API для распознавания речи из файла аудиозаписи. Мы будем использовать бесплатную версию API, которая имеет некоторые ограничения, такие как, например, длина звукового файла. Подробнее об API я расскажу в этой статье чуть позже. Позвольте мне начать с предоставления вам некоторой справочной информации о применении распознавания речи в нашей повседневной жизни.

Читать далее

Как образовательный коптер помогает научиться программировать на Python, и что не так с Lua

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

Почти 4 года прошло с выпуска первой статьи об учебном квадрокоптере Геоскан Пионер. За это время формат конструктора для сборки учебного квадрокоптера успел набрать популярность - он хорошо подходит как для организации учебного процесса со школьниками или студентами, так и для использования на различных хакатонах, соревнованиях, или при выполнении на его базе исследовательских проектов.

Ключевые элементы обучения на сегодняшний день - это развитие навыков программирования для решения задач автономного полета коптера, понимание основ алгоритмов управления и работа с различными функциональными модулями. Для юных пользователей порог входа был снижен за счёт возможности использования визуального блочного программирования в плагине для TRIK-Studio, а вот создание более сложных программ требовало знакомства с языком Lua.

В 2020 году линейка Пионеров дополнилась новыми моделями - появились младший  и старший «братья»  Мини и Макс. И если по размеру и массе братья стоят по ранжиру  - Мини самый маленький и легкий, а Макс самый большой и тяжелый, то по функционалу младший уже готов дать фору своему предшественнику (назовём его Классическим Пионером).

Читать далее

Искусственные нейронные сети. Часть 3

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

В данной части статьи по разработке простейшей нейронной сети мы научимся обучать нейронные сети.

Читать далее

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

Повторяем когортный анализ. Комплексный подход — Python, SQL, Power BI

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

Добрый день уважаемые читатели! Данная статья является продолжением публикации "Повторяем когортный анализ, выполненный в Power BI, силами Python" (ссылка). Настоятельно рекомендую познакомиться с ней хотя бы бегло, иначе последующее повествование будет вам малопонятным. С момента ее выхода на Хабр прошло достаточно времени. Я основательно пересмотрел методологию решения подобных задач. Первым желанием было просто переписать старый материал, но после недолгих размышлений я пришел к выводу, что более разумным шагом будет оформить наработки в новую рукопись.

Какова основная причина моего "недовольства" Python и Power BI? Язык Python/R c тематическими библиотеками и Power BI (Tableau, Qlik) могут на 70-80% закрыть потребности бизнеса в расчете сложных метрик и построении визуализаций. Но только если речь идет об обработке относительно небольших датасетов с уже агрегированными данными. Если мы говорим о предварительном манипулировании данными в промышленном масштабе, то здесь игра переходит на сторону сервера с БД и используется SQL. Данный момент я не осветил в предыдущей публикации, поэтому решил ликвидировать это упущение здесь.

Читать далее

Подбор гиперпараметров ML-модели с помощью HYPEROPT

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

В машинном обучении гиперпараметрами называют параметры модели, значения которых устанавливаются перед запуском процесса её обучения. Ими могут быть, как параметры самого алгоритма, например, глубина дерева в random forest, число соседей в knn, веса нейронов в нейронный сетях, так и способы обработки признаков, пропусков и т.д. Они используются для управления процессом обучения, поэтому подбор оптимальных гиперпараметров – очень важный этап в построении ML-моделей, позволяющий повысить точность, а также бороться с переобучением. На сегодняшний день существуют несколько популярных подходов к решению задачи подбора, например:

1.Поиск по решётке. В этом способе значения гиперпараметров задаются вручную, затем выполняется их полный перебор. Популярной реализацией этого метода является Grid Search из sklearn. Несмотря на свою простоту этот метод имеет и серьёзные недостатки:

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

Часто в целях экономии времени приходится укрупнять шаг перебора, что может привести к тому, что оптимальное значение параметра не будет найдено. Например, если задан диапазон значений от 100 до 1000 с шагом 100 (примером такого параметра может быть количество деревьев в случайном лесе, или градиентном бустинге), а оптимум находится около 550, то GridSearch его не найдёт.

2.Случайный поиск. Здесь параметры берутся случайным образом из выборки с указанным распределением. В sklearn он этот метод реализован как Randomized Search. В большинстве случаев он быстрее GridSearch, к тому же значения параметров не ограничены сеткой. Однако, даже это не всегда позволяет найти оптимум и не защищает от перебора заведомо неудачных комбинаций.

3.Байесовская оптимизация. Здесь значения гиперпараметров в текущей итерации выбираются с учётом результатов на предыдущем шаге. Основная идея алгоритма заключается в следующем – на каждой итерации подбора находится компромисс между исследованием регионов с самыми удачными из найденных комбинаций гиперпараметров и исследованием регионов с большой неопределённостью (где могут находиться ещё более удачные комбинации). Это позволяет во многих случаях найти лучшие значения параметров модели за меньшее количество времени.

Читать далее

Вы бы доверили свою задачу ИИ? 7 вопросов, которые помогут определиться

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

На одном из докоронавирусных мероприятий Microsoft Reactor в Лондоне я посетила действительно интересный семинар Future Recoded, посвященный этике в искусственном интеллекте.

Я знаю, что вы подумали…

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

Но этот семинар стал исключением… И запомнился мне необычайно свежим подходом.

Для начала спикер задал несколько на первый взгляд простых вопросов. Попробуйте ответить на них сами (потом я поделюсь своими ответами).

Вы бы доверили искусственному интеллекту…

Порекомендовать вам продукт?

Защитить ваши данные в Интернете?

Помогать вам за рулем?

Управлять вашей машиной?

Следить за вашим здоровьем?

Выдавать вам лекарства?

Выбрать няню?

Читать далее

Выгрузка данных из SAP через RFC на Python

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

Зачастую возникает потребность автоматизированной выгрузки данных из SAP ERP или S/4 HANA. 

Такая выгрузка может служить для наполнения аналитического хранилища данных или для интеграции с другой системой.

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

Преимущества этого интерфейса:

Читать далее

Искусственные нейронные сети. Часть 2

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

В этой части мы изучим принципы работы нейронных сетей и напишем нейронную сеть из 2 слоев.

Читать далее

Искусственные нейронные сети. Часть 1

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

В этой статье вы познакомитесь с основами работы искусственных нейронов. В последующих статьях мы изучим основы работы нейронных сетей и напишем простейшую нейронную сеть на python.

Читать далее

Автоматическая документация для Flask с использованием OpenAPI

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


Техническая документация, как известно, крайне важная часть любого проекта. До недавнего времени мы прекрасно жили с таким генератором документаций как Sphinx. Но наступил момент переходить на технологии с бОльшим набором возможностей, поэтому мы приняли решение переписать нашу документацию на более современный стандарт: OpenAPI Specification. Эта статья является скромным гайдом по такому переезду. Она будет интересна Python-разработчикам, особенно тем, которые используют Flask. После ее прочтения вы узнаете, как создать статическую OpenAPI документацию для Flask приложения и развернуть ее в GitLab Pages.

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

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