Как стать автором
Обновить
67
0
Roman Prokofyev @black_bunny

Пользователь

Отправить сообщение

Визуализация общественного транспорта

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров5.6K

TL;DR

Я написал тул для генерации постеров с маршрутами общественного транспорта, разные цвета для разных видов транспорта, толщина и прозрачность линий соответствуют количество поездок на сегменте маршрута. Репозитарий тут: https://github.com/dragoon/cityliner

Около 10 лет назад, Майкл Мюллер сделал проект gtfs-visualizations на смеси JavaScript/Node.js для обработки GTFS данных и Processing для отображения в PDF. Мне понравились эти постеры, и я доработал его код, добавив возможность создания постера, ограничения изображения по радиусу, и переделал обработку данных так чтобы файлы читались последовательно а не загружались полностью в память (это было проблематично для городов даже среднего размера).

Сейчас я полностью переписал этот проект c нуля на питоне, добавил разные цветовые темы и визуализацию водоемов, автоматизировал создание постера с иконками городов.

Подробнее
Всего голосов 14: ↑13 и ↓1+12
Комментарии9

Animated Weather Dashboard

Время на прочтение2 мин
Количество просмотров2.5K

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

Под катом история разработки, видео и ссылки на демо-страницу.

Поехали
Всего голосов 6: ↑6 и ↓0+6
Комментарии21

Duolingo

Время на прочтение2 мин
Количество просмотров89K
image
В последнее время различные системы онлайн обучения, от LinguaLeo и до Coursera и Udacity, активно набирают все большую популярность. В этом посте мне бы хотелось рассказать о еще одном сервисе для обучения иностранным языкам, Duolingo, обзора которого я еще не встречал на хабре.
Читать дальше →
Всего голосов 48: ↑44 и ↓4+40
Комментарии33

Настройка Jenkins для django проекта с нуля

Время на прочтение3 мин
Количество просмотров55K
Всем привет.

Значительное время в нашем проекте использовалась самописная система интеграционного тестирования — чекаут кода по хуку в системе контроля версий, прогонка тестов с поддержкой отчётов по покрытию кода, запись результатов в отдельный html-файл, который был доступен разработчикам через веб. Естественно, потом пришлось делать поддержку локов, чтобы одновременно не запускалось сразу два тестирования и т. п.

В конце концов на ее поддержку стала уходить ощутимая часть рабочего времени, которая давно свела к нулю все преимущества простоты разработки такой системы, и было решено установить нормальный сервер Continuous Integration.

В качестве новой системы был выбран Jenkins, о его установке и настройке для django-проекта и пойдет речь в этой статье. Кто заинтересовался, добро пожаловать под кат.
Читать дальше →
Всего голосов 33: ↑31 и ↓2+29
Комментарии18

Интеграция Django и Selenium

Время на прочтение3 мин
Количество просмотров7.9K


Всем привет.

Ни для кого не секрет что тестирование приложений является важным этапом разработки ПО, а если вы разрабатываете веб-приложения, то вам просто необходимо тестировать веб-интерфейс. К счастью, для этой цели существует такой инструмент как Selenium. Небезызвестные на хабре компании СКБ Контур и Яндекс уже выбрали его как инструмент функционального тестирования своих приложений и сервисов (Яндекс рассказывал об этом на недавно прошедшей YaC).

Теперь к делу.
В одном из проектов, над которым я работаю, мы использовали Selenium начиная еще с первой ветки. Но время не стоит на месте, вышел Selenium 2.0, основанный на технологии webdriver, более функциональный, удобный, и правильно имитирующий события в браузере (подробнее о преимуществах).

Чтобы не заниматься обновлением старого кода поддержки Selenium внутри нашего приложения (а вдруг это придется делать еще и не один раз?), а также чтобы попробовать сделать что-то полезное для других разработчиков, мы решили сразу вынести интеграцию с Selenium в отдельную библиотеку.
Что из этого вышло
Всего голосов 50: ↑45 и ↓5+40
Комментарии16

Асинхронные задания в Django c помощью Celery

Время на прочтение5 мин
Количество просмотров65K
Приветствую!
Думаю, большинство разработчиков Django слышали о Celery — системе асинхронного выполнения заданий, а многие даже активно её используют.

Около года назад на хабре была довольная хорошая статья, рассказывающая о том, как использовать Celery. Однако, как было упомянуто в заключении, уже вышла Сelery 2.0 (на данный момент стабильной версией является 2.2.7), где интеграция с django была вынесена в отдельный пакет, а также произошли другие изменения.

Данная статья будет полезна прежде всего новичкам, которые начинают работать с Django, и им требутся что-то, способное выполнять асинхронные и/или периодические задания в системе (например очистку устаревших сессий). Я покажу как установить и настроить Сelery для работы с Django от начала до конца, а также расскажу про некоторые другие полезные настройки и подводные камни.
Итак, приступим.
Всего голосов 56: ↑51 и ↓5+46
Комментарии64

Django — обработка ошибок в ajax-формах

Время на прочтение5 мин
Количество просмотров16K
Hello everyone!

Все мы знаем что Django — очень мощный и динамично развивающийся фреймворк для создания веб-приложений. Однако, несмотря на наступление эпохи Веб 2.0, в нём всё ещё нет встроенных механизмов для работы с AJAX, в частности отправки и проверки форм. Возможно django просто не хочет навязывать пользователю какой-то js-фреймворк и хочет оставаться гибкой в этом вопросе, но так или иначе при разработке часто требуются формы, работающие через ajax, без перезагрузок страниц.
О создании таких форм и работе с ними и пойдёт речь в данной статье.

Сразу оговорюсь, что идея не нова, и существует несколько библиотек, реализующих требуемую функциональность, например одна из них — http://www.dajaxproject.com/.
Для тех же, кто предпочитает сам управлять взаимодействием клиента с сервером или тех, кто не хочет втягивать в проект дополнительную библиотеку и иметь дело с её багами, я расскажу как изобрести велосипед реализовать механизм самостоятельно и опишу различные способы решения проблемы.
Читать дальше →
Всего голосов 39: ↑34 и ↓5+29
Комментарии38

Индикатор прогресса с помощью HTML5 Canvas

Время на прочтение6 мин
Количество просмотров7.2K
Привет, Хабр!
Всё больше статей появляется про Canvas, и это не может не радовать. Основы, будем надеяться, уже изучены, а мне хотелось бы поделиться примером возможного практического использования canvas, а именно создать анимированный индикатор прогресса.

Для нетерпеливых результаты эксперимента можно посмотреть здесь: http://pastehtml.com/view/1d7z824.html, а также скриншот конечного результата:


Прогресс-бар получился довольно простой, но в то же время в стиле веб 2.0 — закругленный (конечно же!), с элементами глубины и объема: то есть тенями и градиентами.

За подробностями прошу под кат.
Приступить к созданию
Всего голосов 93: ↑88 и ↓5+83
Комментарии58

Работа и аспирантура в Швейцарии

Время на прочтение3 мин
Количество просмотров21K
Здравствуйте, дорогие хабравчане. Так вышло, что около полугода назад у меня получилось устроиться на работу в Швейцарии, в швейцарскую федеральную политехническую школу (EPFL) в Лозанне. К текущему моменту накопилось множество различных впечатлений, о которых я и хочу рассказать.
Читать дальше →
Всего голосов 119: ↑111 и ↓8+103
Комментарии117

Информация

В рейтинге
Не участвует
Откуда
Zürich, Швейцария
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer, Fullstack Developer
Lead
Python
C#
Git
.NET