Собрали в одном месте самые важные ссылки
читайте нас в Twitter
Небольшая статья о том, как можно решить одну и ту же задачу несколькими способами. Предназначена для новичков в Python и программировании.
В качестве примера взят простой случай — реализация диалога подтверждения какой-либо операции. Программа задает пользователю вопрос Вы уверены? [Д/н (Y/n)]:, на который требуется ответить, введя одно из восьми допустимых значений (Д, д,Н, н, Y, y, N, n).
Биткоин-бот имени Дональда Трампа, победа AlphaGo над одним из сильнейших игроков в го Ли Седолем, изучение английского языка — что объединяет эти три ситуации? Везде в той или иной степени присутствует машинное обучение. Компьютер может не только генерировать сюжетную канву, как Scheherazade, или отвечать на письма вместо пользователей, как Google Smart Reply, но и создавать идеальные учебники английского языка. Читать дальше →
Пост «Удаление кода» Неда Бэтчелдера (Ned Batchelder) недавно появился на HN, хотя изначально он был написан в 2002 году. Здесь я хочу повторить несколько мыслей Неда, и занять более решительную, чем он, позицию: удаляйте код, как только вы замечаете, что он больше не нужен, без лишних вопросов. Я также предложу некоторые советы из окопов, как определять кандидатов в мертвый код.
В этой статье я хотел бы остановиться на алгоритмах распознавания лиц, а заодно познакомить вас с очень интересной и полезной библиотекой OpenCV. Уверен, что этот материал окажется полезным для новичков в этой области.
Что нам понадобится:
• Установленный Python 2.7 с библиотеками NumPy и PIL
• OpenCV 2-й версии
Здесь ссылка на материал по установке всех необходимых компонентов. Установка всего необходимого не составит труда.
В работе Python приложения встала задача получать данные с сетевого оборудования и проводить его настройки удалённо, по SSH. Можно воспользоваться Paramiko, а можно не выдумывать велосипед и использовать основанную на нём библиотеку Exscript. Под катом — примеры кода для подключения и получения информации из команд. Ввиду отсутствия документации к Exscript этот материал может кому-нибудь здорово пригодиться.
Вводная Сразу оговорюсь кому может быть интересна данная публикация. Это начинающие Django + JQuery программисты, интересующиеся векторной графикой в браузере с использованием canvas. Или просто люди, получившие подобное задание. Итак, находясь в постоянном сканировании рынка труда своего региона, наткнулся на весьма интересную вакансию web-разработчика в достаточно известной местной компании. В описании вакансии было сказано, что нужен python+django разработчик. После отправки резюме получил тестовое задание которое гласило:
В этой статье мы разберем, как получить и использовать API сайта, если по нему нет документации или оно еще не открыто официально. Руководство написано для новичков, которые еще не пробовали зареверсить простой API. Для тех же кто сам занимался подобным ничего нового здесь нет. Разбор проведем на примере API сервиса https://www.captionbot.ai/ который недавно открыл Microsoft (спасибо им за это). Многие могли прочитать о нем в статье на Geektimes. Сайт использует ajax запросы в формате JSON, поэтому скопировать их будет легко и приятно. Поехали!
Как-то раз, читая новости на Медузе, я обратил внимание на то, что у разных новостей разное соотношение лайков из Facebook и ВКонтакте. Какие-то новости мегапопулярны на fb, а другими люди делятся только во ВКонтакте. Захотелось присмотреться к этим данным, попытаться найти в них интересные закономерности. Заинтересовавшихся приглашаю под кат!
Что обычно делает python-программист, когда его отправляют воевать с ошибкой?
Сначала он лезет в sentry. Здесь можно найти время, сервер, подробности сообщения об ошибке, traceback и, может быть, какой-нибудь полезный контекст. Затем, если этих данных недостаточно, программист идет c бутылкой к админам. Те залезают на сервер, ищут это сообщение в файловых логах, и, может быть, находят его и некоторые предшествующие ошибке записи, которые в редких случаях могут помочь в расследовании.
А что делать, если в логах только loglevel=ERROR, а ошибка настолько крута, что ее локализация требует сопоставления логики поведения нескольких различных демонов, которые запущены на десятке серверов?
Slack обладает прекрасным потенциалом расширения стандартных возможностей. Но, на практике возникают сложности с интеграцией некоторых соц. сетей в чаты. Для того, чтобы подружить Вконтакте и Slack мы воспользуемся Python и API. Ниже будет рассматривать базовый рецепт того, как сделать так, чтобы Slack-бот мог получать данные по последним комментариям из постов на стенах сообществ или групп Вконтакте.
В стандартной библиотеке Python 3.4 в своё время появился модуль asyncio, позволивший удобно и быстро писать асинхронный код. А уже к Python 3.5 в синтаксис были добавлены конструкции async/await, окончательно оформившие асинхронность «из коробки» как красивую и гармоничную часть языка.
Один из авторов упомянутого PEP-492 (async/await) Юрий Селиванов (на Хабре — 1st1, его твиттер) взялся за разработку альтернативной реализации цикла событий для asyncio — uvloop. Вчера вышла первая альфа-версия модуля, о чём автор написал развёрнутый пост.
Если вкратце, то uvloop работает примерно в 2 раза быстрее Node.js и практически не уступает программам на Go.
Если верить обещаниям Microsoft, в скором времени Windows обзаведется возможностью запускать Linux приложения без каких-либо доработок напильником и сторонних сред окружения вроде Cygwin; одни восприняли эти обещания скептически, дескать, с поддержкой «андроид»-приложений ведь все сошло на нет, другие стали ерничать, мол, ожидайте в недалеком будущем Lindows, ну а третьи… Впрочем, найдутся и четвертые и пятые, — обещания — в будущем, а мы с вами живем здесь и сейчас, решаем задачи также здесь и сейчас, а следовательно какой резон толочь воду в ступе? Приятно, конечно, когда в системе уже предусмотрено нечто в разы упрощающее администрирование, но если этого нет, всегда найдется альтернативный вариант.
Это перевод доклада с голландского TED Talks, прочитанного Гвидо Ван Россумом, "великодушным пожизненным диктатором" языка программирования Python. Много автобиографии и немного про значение языков программирования и основную идею Python.
Позвольте представиться — я нерд, гик. И я постоянно медлю. Я закончил университет в 26, мне было 45, когда я женился, сейчас мне 60, и у меня четырнадцатилетний сын. Может, мне просто трудно даются решения: я прожил в США больше 20 лет, но всё ещё имею вид на жительство.
В минувшие выходные прошла третья конференция питонистов в Питере — Piter Py #3 (http://it-sobytie.ru/events/5862). Конференция длилась три дня, была наполовину англоязычной, все эти дни слова "Docker", "Mongo", "Ansible" произносились даже чаще, чем "Python". И здесь я впервые услышал о существовании YAML-программистов. Делюсь собственными впечатлениями и, полагаю, выражаю мнение большинства других посетителей.
На днях решил попробовать собрать своего свежеиспечённого бота для Телеграм в исполняемый файл. Существуют различные решения: py2exe, pyInstaller, cx_Freeze. Я использую Ubuntu 14.04 и на моём компьютере, и на сервере, поэтому выбор пал наcx_Freeze, ввиду его кросс-платформенности и поддержки Python 3. (На момент написания статьи я ещё не успел распробоватьpyInstaller, который обладает этими же свойствами. Если будет что-то интересное, расскажу об этом в другой статье).
В этой статье я расскажу как я решил проблему настройки окружения для разработки на Django под Windows.
Используется следующая связка:
1) Docker-machine
2) PyCharm
В Docker-machine:
1) PostgreSQL
2) Data container для PostgreSQL
3) Redis
4) И собственно само приложение на Django.
Небольшое описание работы с пакетом Channels для работы с WebSocket и в качестве очереди задач
Совсем недавно я написал статью, в которой без объяснений показал то, на что способен метод грамматической эволюции. Я полностью, согласен, что так делать нельзя, но как хотелось показать результаты интересного метода. Я думал «что будет лучше: перевести первоисточник или дать свое собственное объяснение». Лень взяла верх.
Если кому-то интересны эволюционные методы и задача символьной регрессии(и не только), то прошу к прочтению.
В этой статье речь пойдет о плагинах — программных модулях, которые можно легко установить в основное приложение для расширения его функционала. Точнее, не о самих плагинах, а о том, как реализовать в своей программе систему взаимодействия "Приложение — Плагин".
В сети можно легко найти достаточно сложные и, порой, запутанные алгоритмы интеграции в ваш программный код подобной системы, но, поскольку мы будем использовать язык программирования Python, для нас все будет просто и предельно ясно.
Когда прочитал публикацию про запуск беспилотных гоночных автомобилей — подумал, было бы интересно сделать что-то подобное. Конечно не гоночный болид, но по крайней мере мобильный робот, что ориентируется в пространстве посредством камеры — распознаванием образов.
В нашем хакспейсе — создать робота не такая большая проблема. Но не у всех и не всегда есть возможность экспериментировать с реальным «железом» — поэтому интересно было попробовать решить задачу — в виртуальной среде, и после уже оживить «железо».
Так и возникла идея серии статей, про решение простейшей задачи ориентации робота в пространстве — от виртуальной симуляции, до воплощения в реальном мобильном роботе: