Обновить
1024K+

Python *

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

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

Telegram API демон — склеиваем последовательные сообщения

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

Пиши мысль в одном сообщении


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

Хватит это терпеть!


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

Монитор заказов вместо кухонного термопринтера

Время на прочтение5 мин
Охват и читатели12K
Монитор заказов

Небольшой квест о замене кухонного принтера заказов в ресторане на табло заказов 24" монитор с raspberryPi за вечер. Это актуально практически для любой системы erp (все современные 1С системы в торговом оборудовании поддерживают чековые принтеры, аналогично и с другими системами).
Читать дальше →

Подборка @pythonetc, июль 2018

Время на прочтение4 мин
Охват и читатели9K
Это вторая подборка советов про Python и программирование из моего авторского канала @pythonetc. Предыдущие подборки:

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

«Python выходит в лидеры»: кто и почему его использует

Время на прочтение4 мин
Охват и читатели33K
В январе Stack Overflow провели ежегодный опрос, в котором приняли участие 100 тыс. разработчиков из 183 стран. В этом году Python вновь приблизился к вершине рейтинга популярных языков: в прошлом году он оставил позади PHP, в этом ― обошёл C#.

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

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

Python — это медленно. Почему?

Время на прочтение9 мин
Охват и читатели92K
В последнее время можно наблюдать рост популярности языка программирования Python. Он используется в DevOps, в анализе данных, в веб-разработке, в сфере безопасности и в других областях. Но вот скорость… Здесь этому языку похвастаться нечем. Автор материала, перевод которого мы сегодня публикуем, решил выяснить причины медлительности Python и найти средства его ускорения.


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

Kivy — фреймворк для кроссплатформенной разработки №1

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

В мире кроссплатформенной разработки под мобильные платформы сейчас, наверное, как это не прискорбно, доминируют два фреймворка — Xamarin и React Native. Xamarin — потому что является «приемным сыном» компании Microsoft и, гордо размахивая костылями, активно пиарится последней, а React Native — отпрыск не менее известной Facebook, который с не меньшей долей гордости отращивает бороды уставшим на нем разрабатывать программистам. Для себя я уже давно нашел альтернативу, а тех, кто еще не знаком с фреймворком для кроссплатформенной разработки Kivy, добро пожаловать под кат…
Читать дальше →

Django Channels – ответ современному вебу

Время на прочтение13 мин
Охват и читатели56K
В мире Django набирает популярность дополнение Django Channels. Эта библиотека должна принести в Django асинхронное сетевое программирование, которое мы так долго ждали. Артём Малышев на Moscow Python Conf 2017 объяснил, как это делает первая версия библиотеки (сейчас автор уже запилил channels2), зачем она это делает и делает ли вообще.

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

  • Twisted;
  • Eventlet;
  • Gevent;
  • Tornado;
  • Asyncio.

Казалось бы, зачем писать еще одну библиотеку и надо ли вообще.


О спикере: Артём Малышев независимый Python разработчик. Занимается разработкой распределённых систем, выступает на конференциях по Python. Артёма можно найти по никнейму PROOFIT404 на Github и в социальных сетях.

Книга «Чистый Python. Тонкости программирования для профи»

Время на прочтение7 мин
Охват и читатели32K
image Привет, Хаброжители! Изучение всех возможностей Python — сложная задача, а с этой книгой вы сможете сосредоточиться на практических навыках, которые действительно важны. Раскопайте «скрытое золото» в стандартной библиотеке Python и начните писать чистый код уже сегодня.

Если у вас есть опыт работы со старыми версиями Python, вы сможете ускорить работу с современными шаблонами и функциями, представленными на Python 3.

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

Отрывок «Самое сумасшедшее выражение-словарь на западе»


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

История первого места на ML Boot Camp VI

Время на прочтение4 мин
Охват и читатели8.9K
Mail.ru уже не первый год проводит чемпионаты по машинному обучению, каждый раз задача по-своему интересна и по-своему сложна. Я участвую в соревнованиях четвертый раз, мне очень нравится платформа и организация, и именно с буткемпов начался мой путь в соревновательный machine learning, но первое место удалось занять впервые. В статье я расскажу как показать стабильный результат, не переобучившись ни на публичный лидерборд, ни на отложенные выборки, если тестовая часть существенно отлична от тренировочной части данных.

Задача


Полный текст задачи доступен по → ссылке. Вкратце: есть 10 гб данных, где каждая строка содержит три json'а вида «ключ: счетчик», некая категория, некая временная метка и идентификатор пользователя. Одному пользователю может соответствовать множество записей. Требуется определить к какому классу относится пользователь, первому или второму. Метрикой качества для модели является ROC-AUC, о ней отлично написано в блоге Александра Дьяконова[1].

Пример записи в файле

00000d2994b6df9239901389031acaac	5 {"809001":2,"848545":2,"565828":1,"490363":1} 
{"85789":1,"238490":1,"32285":1,"103987":1,"16507":2,"6477":1,"92797":2}	{}	39
Читать дальше →

Как работают библиотеки виртуального окружения

Время на прочтение5 мин
Охват и читатели14K
Вы когда-нибудь задумывались о том, как работают библиотеки виртуального окружения в Python? В этой статье я предлагаю ознакомится с главной концепцией, которую используют все библиотеки для окружений, такие как virtualenv, virtualenvwrapper, conda, pipenv.

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

Когда Python запускает интерпретатор, он начинает искать директорию с модулями (site-packages). Поиск начинается с родительской директории относительно физического расположения исполняемого файла интерпретатора (python.exe). Если папка с модулями не найдена, то Python переходит на уровень выше, и делает это до тех пор, пока не будет достигнута корневая директория. Для того, чтобы понять, что это директория с модулями, Python ищет модуль os, который должен лежать в файле os.py и является обязательным для работы питона.
Читать дальше →

9 платных, условно-бесплатных и бесплатных программ для трекинга кода приложений

Время на прочтение9 мин
Охват и читатели21K
Трекинг кода must-have в среде разработки. Но вот насколько нужен этот же инструмент в продуктиве? Тот, кто лишь кропотливо собирает логи скажет «ну его нафиг, мой ELK меня не подводит» и будет по-своему прав. До поры до времени.


Протрейсить как следует

Аналоги в Python и JavaScript. Часть третья

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

Продолжаем перевод серии статей про аналоги в Python и JavaScript


В прошлых выпусках мы опирались на синтаксис классических версий Питона (2.7) и JS на основе ECMAScript 5. В этот раз мы будем использовать новые функции которые появились в Питоне 3.6 и JS стандарта ECMAScript 6.


ECMAScript 6 — относительно новый стандарт поддерживаемый большинством современных браузеров. Для использования стандарта 6 в старых браузерах вам понадобиться Babel для перевода современных конструкций JS6 на кросс-браузерную поддержку.


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

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

Сколько объектов выделяет Python, выполняя скрипты?

Время на прочтение6 мин
Охват и читатели8.7K
Некоторые Python программисты сильно удивляются, когда узнают сколько временных объектов интерпретатор питона выделяет во время работы простого скрипта.

CPython позволяет получить статистику по выделяемым объектам, для этого его нужно скомпилировать с дополнительными флагами.

./configure CFLAGS='-DCOUNT_ALLOCS' --with-pydebug 
make -s -j2
Читать дальше →

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

Получаем данные со счетчиков Меркурий 203.2Т по RS-485

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


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

ScadaPy: добавляем протокол IEC 60870-5-104

Время на прочтение5 мин
Охват и читатели23K
Добавление протокола iec-104 в scadapy, предоставляет дополнительные возможности для расширения системы, как в домашней автоматизации, так и для локального применения на малых предприятиях.

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

Открытый урок «Пишем свою библиотеку для работы с xlsx файлами»

Время на прочтение1 мин
Охват и читатели6.3K
И снова здравствуйте! Небольшой открытый урок в рамках курса «Web-разработчик на Python», на котором преподаватель курса Илья Лебедев рассказывал как устроен формат xlsx, как с ним работать без специализированных библиотек, вроде openpyxl и показал как разработать свою библиотеку для работы с этим форматом с нужным набором функций.



Если есть вопросы\комментарии, то их можно задать здесь или зайти к Илье на день открытых дверей.

Оптимизации, используемые в Python: список и кортеж

Время на прочтение4 мин
Охват и читатели66K
В Python, есть два похожих типа — список (list) и кортеж (tuple). Самая известная разница между ними состоит в том, что кортежи неизменяемы.

Вы не можете изменить объекты в tuple:

>>> a = (1,2,3)
>>> a[0] = 10
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

Но вы можете модифицировать изменяемые объекты внутри кортежа:

>>> b = (1,[1,2,3],3)
>>> b[1]
[1, 2, 3]
>>> b[1].append(4)
>>> b
(1, [1, 2, 3, 4], 3)
Читать дальше →

Обновление Django с версии 1.9 до версии 2.0

Время на прочтение3 мин
Охват и читатели12K
Здравствуйте, сегодня я хотел бы вам рассказать о том, как обновить проект с версии 1.9 до 2.0. Какие основные нюансы нужно учесть и переписать, дабы проект стартовал на новой версии Django.

Первый шаг


Это обновление Django до версии 2.0, а также обновление всех сопутствующих ваших пакетов, которые используются в проекте, т.к. я использую виртуальное окружение и requirements.txt, то для меня это один способ, для вас может быть другой.

После того как вы обновили все пакеты, не стоит запускать проект, он всё равно не запустится, поэтому сразу приступим к исправлению всех основных моментов, дабы проект стартанул.
Читать дальше →

Всё, что нужно знать о сборщике мусора в Python

Время на прочтение7 мин
Охват и читатели158K
Как правило, вам не нужно беспокоиться о сборщике мусора и работе с памятью когда вы пишете код на Python. Как только объекты больше не нужны, Python автоматически освобождает память из под них. Несмотря на это, понимание как работает GC поможет писать более качественный код.

Менеджер памяти


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

Как только один из маленьких объект удаляется — память из под него не переходит операционной системе, Python оставляет её для новых объектов с таким же размером. Если в одном из выделенных блоков памяти не осталось объектов, то Python может высвободить его операционной системе. Как правило, высвобождение блоков случается когда скрипт создает множество временных объектов.
Читать дальше →

10 курсов по машинному обучению на лето

Время на прочтение5 мин
Охват и читатели66K
За последние десятилетия с помощью машинного обучения создали самоуправляемые автомобили, системы распознавание речи и эффективный поиск. Сейчас это одна из самых быстроразвивающихся и перспективных сфер на стыке компьютерных наук и статистики, которая активно используется в искусственном интеллекте и data science. Методы машинного обучения используются в науке, технике, медицине, ритейле, рекламе, генерации мультимедиа и других областях.

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

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