Обновить
1024K+

Python *

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

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

Миллион строк в секунду из Postgres с помощью Python

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

asyncpg — новая Python open-source библиотека для работы с PostgreSQL. Она была написана с использованием asyncio и Python 3.5. asyncpg — самый быстрый драйвер для работы с PostgreSQL среди похожих реализаций на Python, NodeJS и Go.

Почему asyncpg?


Мы создаем EdgeDB — базу данных нового поколения, с PostgreSQL на бэкенде. Нам необходима высокая производительность, низкая задержка доступа и дополнительные возможности самого PostgreSQL.

Самый очевидный вариант – использовать psycopg2 — популярнейший драйвер Python для работы с PostgreSQL. У него отличное комьюнити, он стабильный и проверенный временем. Также есть aiopg, который реализует асинхронный интерфейс, поверх psycopg2. Тогда очевиден вопрос — зачем писать свой велосипед? Короткий ответ: производительность и поддержка возможностей PostgreSQL. Ниже мы рассмотрим это более детально.
Читать дальше →

Сравнение стратегий игры 2048

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

2048 — игра появившаяся в 2014ом году и быстро ставшая популярной убивалкой времени. Простые правила игры только подталкивают игроков к созданию клонов, ботов и выигрышных стратегий. В том числе и на Хабре. (Клон, бот, стратегия) В этой статье рассказывается про удобный инструмент оценки стратегий игры и примеры его работы на нескольких ботах.


Скриншот игры


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

Сравнение производительности GPU-расчетов на Python и C

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

Python обладает рядом привлекательных преимуществ к которым относится простота реализации программных решений, наглядность и лаконичность кода, наличие большого числа библиотек и многочисленного активного комьюнити. В то же время, известная всем медлительность питона часто ограничивает его применимость для “тяжелых” вычислений. Для ряда задач можно добиться существенного ускорения расчетов путем использования технологии CUDA для параллельных вычислений на GPU. Цель этого небольшого исследования — анализ возможностей эффективного использования python для расчетов на GPU и сравнение производительности различных python-решений с реализацией на C.
Читать дальше →

Классические парсер-комбинаторы на Python

Время на прочтение5 мин
Охват и читатели29K
Парсером называется часть программы, которая из линейной последовательности простых данных строит более сложные структуры данных с учетом некоторой грамматики.

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

Парсер-комбинаторы – известная техника создания парсеров, которая использует возможности функциональных языков программирования для динамического построения более сложных парсеров из простых по правилам некоторой грамматики.
Читать дальше →

Telegram-bot: моя история. Часть вторая

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

Доброго времени суток, Хабрахабр! Данный материал является продолжением первой части, в которой освещены инструменты и возможности разработки продукта на облачной платформе. Примером является актуальное мобильное расширение доступа к расписанию пар в университете — Telegram-bot.

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

Сказ о том как я свой REST фреймворк с веб-сокетами писал

Время на прочтение14 мин
Охват и читатели22K
Эта статья посвящена очередному REST фреймворку (для Python 3), особенностью которого является использование веб-сокетов для обмена данными между клиентом и сервером. О том откуда пришла идея, с чем мне пришлось столкнулся при написании своей первой библиотеки для Python и что из этого в итоге получилось, я расскажу далее.


Для тех, кому интересна эта статья — пожалуйста, заходите под кат.
Читать дальше →

Документация Linux ядра переходит на Python Sphinx

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

Linux ядро на сегодняшний день — самый динамичный, сложный, крупный проект с открытым кодом. Как же обстоят дела с его документацией? Существует прямая связь: чем качественнее и доступнее документация проекта, тем проще для посторонних изучить основы дела, освоиться и стать полноправным участником.




На семинаре Kernel Recipies мейнтейнер документации Linux ядра Jonathan Corbet рассказал о нынешнем положении дел с документацией и о том, как будет совершаться переход от анархии к порядку. Первые успехи в этом начинании уже есть. Некоторые документы были недавно конвертированы в ReStructuredText с помощью питоновского Сфинкса. О том как это было рассказано внутри.

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

Особенности Jupyter Notebook, о которых вы (может быть) не слышали

Время на прочтение10 мин
Охват и читатели390K
Jupyter Notebook – это крайне удобный инструмент для создания красивых аналитических отчетов, так как он позволяет хранить вместе код, изображения, комментарии, формулы и графики:



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

Telegram-bot: моя история. Часть первая

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

Доброго времени суток, Хабрахабр! Целью статьи является рассказать начинающим программистам о возможности не только разработать что-то интересное на основе несложных инструментов, но и разместить проект в общий доступ, а при усердных стараниях увидеть, что не только автор может оценить потраченные усилия.

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

Усовершенствование системы видеонаблюдения с использованием OpenCV и Telegram bot

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

С чего все начиналось


Все началось с того, что я захотел установить у себя «умную» систему видеонаблюдения на Raspberry.

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

В итоге установил на купленном Raspberry Pi3 USB-камеру Logitech, смонтировал Яндекс.Диск и с периодичностью в 30 секунд делал снимки, которые затем копировал в папку на Яндекс.Диске.
Поигравшись с дальнейшем архивированием файлов, монтированием из отдельных снимков видео, забросил новую «игрушку» на несколько месяцев.
Читать дальше →

Пишем диалоговые Telegram-боты на Питоне

Время на прочтение11 мин
Охват и читатели251K
Думаю, всем здесь в той или иной мере известен мессенджер Telegram. Создатель заявляет, что это самый безопасный мессенджер с убойным алгоритмом шифрования собственной разработки, но нас, разработчиков, конечно же, куда сильнее интересует другое. Боты!

Тема эта, конечно, не раз поднималась на Хабре: ботов писали на Python с tornado, Node.js, Ruby со специальным гемом, Ruby on Rails, C#, C# с WCF и даже PHP; ботов писали для RSS-каналов, мониторинга сайтов, удалённого включения компьютера и, вероятно, для многого, многого другого.

И всё же я возьму на себя смелость изъездить эту тему ещё раз и вдобавок к этому показать немного магии Питона. Мы будем писать фреймворк™ для удобного написания нетривиальных диалоговых ботов на основе пакета python-telegram-bot.
Читать дальше →

Релиз PyCharm 2016.3: Полная поддержка Python 3.6, улучшения в Python консоли, обозревателе переменных, и многое другое

Время на прочтение4 мин
Охват и читатели31K
Всем привет! Вчера мы выпустили новый PyCharm 2016.3, который уже доступен для скачивания.
Этот релиз является последним крупным обновлением с новой функциональностью в 2016 году.


С момента предыдущего релиза PyCharm прошло ровно 4 месяца. За это время PyCharm получил ряд новых полезных улучшений в инструментах для Python, Django, веб и научной разработки, которые, как всегда, тесно интегрированы и эффективно работают друг с другом. Сегодня мы рады рассказать, что же интересного и важного появилось в новой версии PyCharm.
Читать дальше →

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

Как остановить отток людей с онлайн-курса и заодно попасть на хакатон

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

Онлайн-курсы, кроме своей удобности и доступности, славятся тем, что на них необычайно легко забивать, что с успехом и делают многие слушатели. Забивать слушателям случается по самым разным причинам — непонятен курс, пропущен дедлайн, не успел набрать баллы, вышел Fallout 4 – у всех свои оправдания. А вот у нас оправданий быть не может: если человек покидает курс, мир теряет потенциального разработчика или специалиста по анализу данных, а ещё киловатт-часы и затраченное нашим героем время.


Самая сложная задача здесь — определить, кто из пользователей убежит, а зная их, уже намного проще предотвратить потери: “предупрежден, значит вооружен”.


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


image


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

Учимся работать с asyncio+aiohttp: в Москве пройдет курс от Core-разработчика Python

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


17 и 18 декабря в Москве пройдет двухдневный курс под названием «Обучение работе с asyncio+aiohttp». Его автор — core-разработчик Python, украинский программист Андрей Светлов (подробнее о нем можно почитать здесь). Андрей — один из ведущих мировых экспертов по Python и создатель авторского курса. Он никогда раньше не читал его в Москве, так что наше мероприятие — отличный шанс для всех, кто интересуется Python и асинхронной разработкой, получить новые знания и ответы на свои вопросы напрямую от создателя популярных инструментов.

Мы поговорили с Андреем о том, какие вопросы будут рассмотрены на курсе, кому он может быть полезен, и какие еще ресурсы Python-разработчикам следует изучить, чтобы повысить свой уровень.
Читать дальше →

Файловая система, дешево и быстро

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

Разработчикам часто приходится иметь дело с файлами, представляющими из себя древовидную структуру: XML, JSON, YAML, всякого рода языки разметки вроде Markdown или Org-mode. Облегчая в общем и целом нашу жизнь, такие файлы имеют склонность к бесконтрольному росту, в какой-то момент из решения превращаясь в проблему.


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


Но существует и альтернатива, о которой — ниже.

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

Квантизация изображений

Время на прочтение5 мин
Охват и читатели26K
Квантизация — уменьшение цветов изображения (wiki). Конечно, сейчас мало кому это необходимо, но задача сама по себе интересная.


Квантизированная Лена привлекает внимание

Например, старый добрый формат GIF использует палитру, максимум на 256 цветов. Если вы захотите сохранить серию своих селфи как gif-анимацию (кому бы это надо было), то первое, что вам, а точнее программе, которую вы будете для этого использовать, надо будет сделать – создать палитру. Можно использовать статическую палитру, например web-safe colors, алгоритм квантизации получиться очень простым и быстрым, но результат будет «не очень». Можно создать оптимальную палитру на основе цветов изображения, что даст результат наиболее визуально похожий на оригинал.

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

Далее вас ждёт скучное и непонятное повествование о методе медианного сечения, алгоритму рассеивания ошибок (шума квантизации) по Флойду-Стейнбергу (и не только), особенностях цветового восприятия человеческого глаза, а так же немного говнокода.
Читать дальше →

Сотворение мира Опыт создания разумной жизни своими руками

Время на прочтение23 мин
Охват и читатели29K
Иногда проводишь день в попытках без использования терминов «рекурсивный вызов» и «идиоты» объяснить главному бухгалтеру, почему на самом деле простое изменение учетной системы затягивается почти на неделю из-за орфографической ошибки, допущенной кем-то в коде в 2009 году. В такие дни хочется пооборвать руки тому умнику, который сотворил этот мир, и переписать все с ноля.

image

TL;DR
Под катом история о том, как я в качестве практики для изучения Python разрабатываю свою библиотеку для агентного моделирования с машинным обучением и богами.

Ссылка на github. Для работы из коробки нужен pygame. Для ознакомительного примера понадобится sklearn.
Читать дальше →

Узнаем текущую погоду и прогноз простеньким скриптом на Python'е

Время на прочтение4 мин
Охват и читатели230K
На Хабре есть интересная статья о том, как энтузиасты делают погоду. Энтузиасты делают, а мы воспользуемся плодами их трудов — получим эту самую погоду от OpenWeatherMap.org скриптом на Python'е.

Для получения доступа к сервису погоды придется пройти несложную процедуру регистрации на сайте OpenWeatherMap.org. Сформируем и отправим запрос, разберем ответный пакет в формате JSON, и получим текущую температуру с описанием состояния погоды.


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

Как мы запускали Хабр для гуманитариев

Время на прочтение7 мин
Охват и читатели20K
«В следующие два года нужно не пытаться изобразить из себя что-то особенное, а просто быть достаточно умным, чтобы компоновать то, что человечество уже создало» (с) bobuk

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

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


Старик Гутенберг был бы доволен

Оно позволяет людям читать занятные истории, как дядька-водолаз 40 лет поднимает затонувшие корабли в Баренцевом море, а писателям на популярные нетехнические темы — немного зарабатывать на текстах.

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