Обновить
1024K+

Python *

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

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

Поднимаем сложный проект на Django с использованием Docker

Время на прочтение10 мин
Охват и читатели78K
Добрый день, коллеги.

Сегодня я расскажу о не совсем простой концепции быстрого (до часа после нескольких тренировок) развёртывания проекта для работы команды, состоящей как минимум из отдельных фронтенд и бэкенд разработчиков.

Исходные данные у нас такие: начинается разработка проекта, в которой планируется «тонкий бэкенд». Т.е. бэк у нас состоит из закешированных страниц (рендерятся любым шаблонизатором), объёмных моделей с сопутствующей логикой (ORM) и REST API, выполняющего роль контроллера. Фактически, View в такой системе редуцировано и вынесено в JS, благо есть разные реакты, ангуляры и прочие вещи, которые позволяют фронтендщикам считать себя «белыми людьми».
Читать дальше →

Python Meetup октябрь: Deliberate Practice и десктоп-приложения на Penta.by

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

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

Под катом вы найдете доклады:
  • Deliberate Practice: Coding Dojo, Code Kata and Coderetreat / Сергей Сергиенко
  • Быстрая разработка десктоп-приложений с Penta.by / Андрей Пучко
  • WRK: Modern HTTP benchmarking tool / Алексей Романов

Приятного просмотра!

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

Нейросеть на Python, часть 2: градиентный спуск

Время на прочтение16 мин
Охват и читатели62K
Часть 1

Давай сразу код!


import numpy as np
X = np.array([ [0,0,1],[0,1,1],[1,0,1],[1,1,1] ])
y = np.array([[0,1,1,0]]).T
alpha,hidden_dim = (0.5,4)
synapse_0 = 2*np.random.random((3,hidden_dim)) - 1
synapse_1 = 2*np.random.random((hidden_dim,1)) - 1
for j in xrange(60000):
    layer_1 = 1/(1+np.exp(-(np.dot(X,synapse_0))))
    layer_2 = 1/(1+np.exp(-(np.dot(layer_1,synapse_1))))
    layer_2_delta = (layer_2 - y)*(layer_2*(1-layer_2))
    layer_1_delta = layer_2_delta.dot(synapse_1.T) * (layer_1 * (1-layer_1))
    synapse_1 -= (alpha * layer_1.T.dot(layer_2_delta))
    synapse_0 -= (alpha * X.T.dot(layer_1_delta))

Часть 1: Оптимизация


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

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

Калибровка Kinect v2 с помощью OpenCV на Python

Время на прочтение8 мин
Охват и читатели28K
Не так давно мы начали пару проектов, в которых необходима оптическая система с каналом дальности, и решили для этого использовать Kinect v2. Поскольку проекты реализуются на Python, то для начала нужно было заставить работать Kinect из Python, а затем откалибровать его, так как Kinect из коробки вносит некоторые геометрические искажения в кадры и дает сантиметровые ошибки в определении глубины.

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

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

История одной оптимизации: передача и обработка результатов боя

Время на прочтение8 мин
Охват и читатели27K
Сегодня я расскажу вам о небольшой части большого проекта — World of Tanks. Многие из вас, наверное, знают World of Tanks со стороны пользователя, я же предлагаю взглянуть на него с точки зрения разработчика. В этой статье речь пойдет об эволюции одного из технических решений проекта, а именно — передаче и обработке результатов боя.
Постбоевая

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

Релиз Django 1.9

Время на прочтение1 мин
Охват и читатели13K
После 10 с половиной месяцев труда разработчики наконец-то выпустили релизную версию Django 1.9.

По ссылке вы можете ознакомиться со всеми изменениями во всех подробностях, но из самого вкусного можно сразу отметить:


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

PyNSK #5 — пятая встреча Новосибирского Python сообщества

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


Питонисты Новосибирска, приглашаем вас на встречу сообщества Python сообщества — PyNSK.

12-го декабря (суббота) состоится пятая встреча. Она пройдет в новом для нас месте — Культурный Центр «Этаж» и начнется 13-00.
На встрече вас ждет море общения и 2 доклада:
Узнать о докладах

Библиотека Python 3 для подключения к ЕСИА — esia-connector

Время на прочтение5 мин
Охват и читатели17K
Все началось с того, что Минкомсвязи разрешило использовать портал госуслуг для идентификации и аутентификации пользователей на негосударственных веб-узлах. Это реализуется с помощью службы ЕСИА (Единая Система Идентификации и Аутентификации — esia.gosuslugi.ru). Заказчик нашего проекта входил в число первых 5 участников, которые подали заявки на интеграцию с ЕСИА, что выразилось для нас задачей эту интеграцию поддержать.

В свободном доступе мы не нашли открытого бесплатного решения подходящего для своего стека технологий, поэтому после разработки, с благословления заказчика, решили поделиться собственным (BSD license).

Итак, представляем вам проект esia-connector, написан на Python 3, использует утилиту openssl, проверялся в работе только в Debian-based системах.

Пакет: pypi.python.org/pypi/esia-connector
Проект: github.com/eigenmethod/esia-connector
Подробнее про использование, недостатки, планы.

PythonDigest — выпуск номер 100 и другие замечательные новости

Время на прочтение8 мин
Охват и читатели12K
Python жив! С такого громкого заявления хочется начать статью.

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



В конце 2014 года мы подводили итоги за год. В этот раз мы рассмотрим тенденции за неполные 11 месяцев 2015-года.

Но перед тем как перейдем к тенденциям — расскажем что сделали за (почти) год.

Интересующихся подробностями милости просим под кат.
Подробности

Нам нужны не столь мощные языки программирования

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


Сегодня многие системы и языки программирования позиционируются как «мощные». Нельзя сказать, что это плохо. Почти каждый из нас считает это положительным свойством. Но в этом посте я хочу донести такую точку зрения, что во многих случаях нам нужны менее мощные языки программирования и системы. Но прежде чем продолжить, уточню: здесь будет мало оригинальных, моих собственных размышлений. Я буду излагать ход мыслей, возникший по прочтении книги Дугласа Хофштадтера «Гёдель, Эшер, Бах», которая помогла мне собрать воедино разрозненные идеи и мысли, бродившие в голове. Также большое влияние на нижеизложенный материал оказали пост Филипа Вадлера и видеозапись с конференции Scala. Ключевая мысль такова:

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

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

Asyncio Tarantool Queue, вставай в очередь

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


В одной из своих статей я рассказывал об асинхронной работе с Tarantool на Python. В данной статье продолжу эту тему, но внимание хочу уделить обработке информации через очереди на Tarantool. Мои коллеги опубликовали несколько статей о пользе очередей (Инфраструктура обработки очередей в социальной сети Мой Мир и Push-уведомления в REST API на примере системы Таргет Mail.Ru). Хочу дополнить информацию об очередях на примере решений наших задач, а также рассказать о работе с Tarantool Queue на Python и asyncio. Почему мы выбираем именно Tarantool, а не Redis или RabbitMQ?
Читать дальше →

Нейросеть в 11 строчек на Python

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

О чём статья


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

Дайте код!


X = np.array([ [0,0,1],[0,1,1],[1,0,1],[1,1,1] ])
y = np.array([[0,1,1,0]]).T
syn0 = 2*np.random.random((3,4)) - 1
syn1 = 2*np.random.random((4,1)) - 1
for j in xrange(60000):
    l1 = 1/(1+np.exp(-(np.dot(X,syn0))))
    l2 = 1/(1+np.exp(-(np.dot(l1,syn1))))
    l2_delta = (y - l2)*(l2*(1-l2))
    l1_delta = l2_delta.dot(syn1.T) * (l1 * (1-l1))
    syn1 += l1.T.dot(l2_delta)
    syn0 += X.T.dot(l1_delta)


Слишком сжато? Давайте разобьём его на более простые части.
Читать дальше →

Хроники лаборатории: как мы молотый кофе считали софтом для анализа клеточных структур

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


Другие статьи цикла:
Здравствуйте, я Meklon и я кофеин-зависимый
Компот из кофейных сухофруктов. Знакомимся с каскарой — лучшим другом велосипедиста

Продолжаю кофейную тематику, которую я начал еще на geektimes: Здравствуйте, я Meklon и я кофеин-зависимый. Сегодня мы будем творить непотребства с софтом для биоинженерных задач — CellProfiler. Нормальные люди им считают клетки, плазмиды, экспрессию белка и прочие нужные вещи. Мы долбанутые, поэтому будем проводить гранулометрический анализ помола по микрофотографии, бить кофе статическим электричеством и думать, как прицепить к этому безобразию фен. Ну и конечно нам потребуется скотч для получения графена картины распределения частиц.

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

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

Итоги GeekWeek. Как трудоустроиться, на чем разрабатывать и какие системы использовать

Время на прочтение3 мин
Охват и читатели15K
Не так давно мы уже писали о GeekWeek-2015. Онлайн-конференция проходит буквально сейчас, и вы ещё можете успеть захватить последний день вебинаров. Поверьте, там есть на что посмотреть и кого послушать. Мы же, в свою очередь, начинаем подводить итоги.



Полсотни респондентов постарались максимально охватить все актуальные темы IT-современности. Мы говорили про языки и методы программирования, делились опытом трудоустройства, тимлидинга и создания собственных компаний, немного сплетничали и вполне серьёзно рассуждали о перспективах цифрового мира. Итак, обо всём по порядку.

Карьера


Вопросы построения карьеры обсуждались на конференции, пожалуй, наиболее часто. Безусловно, этому поспособствовала ситуация в стране и мире, но и уровень гостей в не меньшей степени располагал к очевидным вопросам о том, как достигнуть таких же успехов. Иван Немытченко из Skillgrid посоветовал не гордиться лишь одним университетским дипломом, а прямо во время обучения стремиться применять навыки в реальном мире. Владимир Железняк из IT-Boost и Иван Бут (ex-Google) затронули тему прохождения собеседований в крупных компаниях и задали ключевой вопрос: «а надо ли вам это?». <a href=«geekbrains.ru/events/158?
Читать дальше →

Копают только вниз

Время на прочтение10 мин
Охват и читатели32K
Здравствуйте, уважаемые читатели.

В последнее время нас заинтересовала серия Зеда Шоу "The Hard Way", которую хотелось бы как минимум частично перевести на русский язык. Поскольку порой мы действительно не ищем легких путей, начать хотелось бы с книги о языке C:



Серия ориентирована в первую очередь на начинающих. Для тех, кто любит язык C, а также для их оппонентов, полагающих, что лучше стартовать с чего-нибудь попроще, мы публикуем немного сокращенную статью Эвана Миллера, написанную в конце прошлого года. Возможно, в зависимости от реакции на эту статью, мы решим дополнительно перевести и опубликовать отрывок из книги мистера Шоу либо даже его ответ на критику, высказанную Тимом Хентенааром, а пока приглашаем вас под кат, где, как нам представляется, изложены самые общие соображения в пользу актуальности этой книги.
Читать дальше →

Скачивание треков с Autotravel.ru

Время на прочтение3 мин
Охват и читатели5K
Как и многие любители путешествовать, я нахожу координаты достопримечательностей городов на сайте autotravel.ru (далее — сайт). Под свои нужды написал небольшую утилиту для скачивания файлов с достопримечательностями для последующей заливки в навигатор. Программа предельно простая, но работает именно так, как мне было нужно. Кроме того реализовано простейшее средство экономии времени загрузки и траффика — кэширование.

Программа, которую я назвал AtTrackDownloader, написана на Python 3 с использованием Beautiful Soup — библиотеки для синтаксического разбора файлов HTML. Для графического интерфейса используется PyQt — просто потому, что я знаком с Qt.
Читать дальше →

HighLoad++ 2015 глазами иностранного докладчика

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

Когда-то давно, еще года 4 назад, сидя в Бишкеке, я смотрел видео с конференции и думал, какие же докладчики крутые спецы и даже не думал, что сам попаду на эту конференцию, как докладчик. В этой статье я расскажу вам о том. как я подавал заявку, как готовился и как проходила сама конференция.

Заявку подавал я 19 января этого года, а 5го октября ее одобрили. Радости, конечно же было много и пришла пора готовиться к докладу.
Читать дальше →

Семантические технологии просто и доступно на примере родословных

Время на прочтение7 мин
Охват и читатели21K
Программа, способная к логическим выводам в рамках поставленной задачи, может казаться техническим чудом и воплощением Скайнета. Но, как можно убедиться ниже, на сегодняшний день создать такую программу на языке Python не составит труда, если использовать семантические технологии. Мы остановимся на наглядном примере онтологий — родословных — и для любого члена семьи в родословной сможем выводить его родственные отношения произвольной сложности (она ограничена вычислительными ресурсами). К примеру, на фамильном древе семьи Романовых ниже показан внучатый двоюродный племянник (first cousin twice removed) российского императора Петра II.

image

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

Асинхронный Python 3.5 и Mongodb

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

Это достаточно вольный перевод статьи об основных новшествах асинхронного драйвера для mongodb используемого в tornado. Основной мотив, который послужил для написания этого перевода — новшества, появившиеся в этой версии, такие как поддержка asyncio, async, await и Python 3.5. Сама статья не сколько перечисление новшеств, сколько лаконичные примеры асинхронной работы с MongoDB.


Введение
asyncio
aggregate
Python 3.5
async and await

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

PyNSK #4 — четвертая встреча Новосибирского Python сообщества

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


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

15-го ноября (воскресенье) состоится четвертая встреча. Она пройдет в анти-кафе «Самовар» и начнется 13-00.
На встрече вас ждет море общения и 3 доклада:
Узнать о докладах