Как стать автором
Обновить
74
0
Яковлев Владимир @nvbn

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

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

Дерзкий telegram бот

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

Недавно, в попытках разобраться с nlp, мне пришла идея написать простого telegram бота, который будет разговаривать, как дерзкий гопник. То есть:


  • давать ответ по слову-триггеру, как "хочу", "короче", "нет" и т.д.;
  • отвечать дерзким вопросом на вопрос;
  • отвечать нецензурной рифмой;
  • если ничего не подходит и бот в замешательстве, отвечать злой фразой.

Для имплементации был выбран JavaScript с ES6 и Flow. Возможно, Python подошёл бы лучше, так как под него существует больше стабильных и проверенных библиотек для nlp. Но для JS есть Az.js, которого вполне хватило.


Для работы с Telegram API был использован node-telegram-bot-api.


TLDR: бот, исходный код


Осторожно, под катом присутствует нецензурная речь и детали реализации!

Читать дальше →
Всего голосов 66: ↑40 и ↓26 +14
Комментарии 25

Как я написал web-приложение, используя только clojure

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


Недавно я познакомился с интересным языком — clojure. Мне сразу понравились ленивые и иммутабельные коллекции, stm, макросы, обилие скобочек и dsl на все случаи жизни.
И я решил попробовать сделать web-приложение, используя только clojure.

Приложение


Было задумано создать простую искалку субтитров, которая:
  • каждые 5 минут индексирует новые субтитры на addicted, notabenoid и других сервисах;
  • имеет одностраничный web-интерфейс с поиском без перезагрузки страницы;
  • показывает в web-интерфейсе количество проиндексированных субтитров и меняет его при появлении новых;
  • имеет простое api для взаимодействия с десктопным клиентом.
Читать дальше →
Всего голосов 56: ↑52 и ↓4 +48
Комментарии 17

Управление роборукой при помощи leap motion

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


В прошлом году я собрал роборуку, написал для неё «драйвер» для linux, научил держать разные предметы. И как-то забыл про неё. Но вчера мне доставили leap motion и придумалась новая идея — научиться управлять роборукой по средством движений своих рук.
Читать дальше →
Всего голосов 29: ↑27 и ↓2 +25
Комментарии 16

Облачные ci: travis-ci и drone.io

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

Всегда приятно иметь статистику о состоянии технической части (кода) проекта, этим занимается coviolations.io. Но для его использования нужно какое-то ci-решение. Не каждому захочется поднимать jenkins/travis/etc на своём сервере, а будет проще прибегнуть к использованию облачных сервисов. Мы рассмотрим два наиболее популярных: travis-ci и drone.io.

Как «жертву» будем использовать обычный django проект — сам coviolations. Для проектов на ror/nodejs/flask/etc всё будет почти аналогично. Как результат мы получим пачку статистики и графиков.
Читать дальше →
Всего голосов 10: ↑9 и ↓1 +8
Комментарии 4

Отправка python пакетов в ppa без «жизнь боль»

Время на прочтение 2 мин
Количество просмотров 6.1K
После поста про смотрелку сериалов пришло пожелание добавить subliminal для загрузки субтитров. Увидев его зависимости, из которых в репозитории присутствуют только два пакета, и то не подходящих версий. Я понял, что жизнь боль и мне придётся создать пять debian/control, сделать пять changelog'ов и создать 20 тасков в jenkins.

Но зачем тратить на всё это целых два часа, если можно потратить всего несколько дней на автоматизацию этого процесса. В результате появился pytoppa, он:
  • формирует changelog из истории между изменениями version в setup.py;
  • автоматически добавляет обязательные зависимости;
  • имеет простой конфиг в yaml.

Читать дальше →
Всего голосов 24: ↑23 и ↓1 +22
Комментарии 11

Смотрим сериалы с субтитрами в 2 клика

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

Я, как и большинство, смотрю много сериалов. И, чтобы не ждать перевода, смотрю в оригинале с субтитрами. Из-за этого скачивание серии иногда превращается в приключение. Мне захотелось оптимизировать этот процесс. Web-приложение я делать как-то не рискнул, поэтому встречайте series_list. Оно:
  • берёт релизы с eztv или piratebay;
  • берёт субтитры с addicted или уведомляет, если их ещё нет;
  • берёт обложки с imdb;
  • скачивает последовательно (можно начинать смотреть, когда ещё не всё скачалось);
  • имеет открытый исходный код.

Читать дальше →
Всего голосов 81: ↑78 и ↓3 +75
Комментарии 60

coviolations.io теперь beta

Время на прочтение 2 мин
Количество просмотров 2.2K
coviolations.io — сервис для визуализации результатов тестов и анализаторов кода сегодня перешёл в стадию beta.

Основные нововведения:
  • поддержка приватных репозиториев и репозиториев компаний;
  • поддержка xUnit, coverage, jslint;
  • выставление статуса коммитам на github;
  • добавление аннотаций к коду на github с результатами pep8 и jslint;
  • добавление краткой сводки к pull request (только с travis-ci);
  • новый модный интерфейс на AngularJS;
  • параметры nofail, nocomment и stderr в .covio.yml.

Читать дальше →
Всего голосов 18: ↑18 и ↓0 +18
Комментарии 0

Ненормальное функциональное программирование на python

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

После просмотра курса Programming Languages и прочтения Functional JavaScript захотелось повторить все эти крутые штуки в python. Часть вещей получилось сделать красиво и легко, остальное вышло страшным и непригодным для использования.

Статья включает в себя:
  • немного непонятных слов;
  • каррирование;
  • pattern matching;
  • рекурсия (включая хвостовую).


Статья рассчитана на python 3.3+.
Читать дальше →
Всего голосов 55: ↑51 и ↓4 +47
Комментарии 18

Отчёты и графики для travis-ci и drone.io

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

В больших проектах уже довольно давно привык к плюшкам ci: прогону тестов, отчётам и автоматическому деплою. При разработке небольших проектов этого не хватает. 1 и 3 покрывает travis-ci (ну или drone.io), но вот визуализации результата нет никакой.

И сразу придумалось простое решение:
  • прогонять анализаторы на стороне ci;
  • отправлять их себе;
  • парсить результат и красиво отображать.


И это всё вылилось в небольшое приложение — coviolations.io (исходники сервера и приложения), сейчас оно
  • работает с публичными и приватными репозиториями на github;
  • работает с travis-ci, drone.io и при желании с jenkins;
  • умеет парсить результат pep8, sloccount, python unittest, pip-review и testem;
  • умеет рисовать статус-плашку ;
  • умеет комментировать пул реквесты в публичные проекты, использующие travis-ci;
  • не умеет работать с репозиториями организаций.

Читать дальше →
Всего голосов 27: ↑26 и ↓1 +25
Комментарии 3

Используем bower в django проектах с django-bower

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


Многим уже надоело лазить по куче сайтов и скачивать js библиотеки и плагины. Да и таскать когда-то скачанные, но уже давно протухшие версии не очень круто. Эти проблемы решает bower.

Но с ним тоже многое нужно делать вручную: следить за components каждого проекта, руками дёргать bower install. После pip с requirements.txt это делать даже как-то лень.

Поэтому представляю вам django-bower, который берёт на себя установку и обновление bower пакетов по списку из settings и прозрачную работу с staticfiles.
Читать дальше →
Всего голосов 33: ↑29 и ↓4 +25
Комментарии 18

Простой способ управления удалёнными устройствами

Время на прочтение 4 мин
Количество просмотров 23K
Что хотелось:

  • при завершении задачи в jenkins выводить уведомление на компьютере и как дополнение — вывести его на физический дисплей, подключенный к arduino;
  • интерфейс, который можно открыть на телефоне или планшете, для управления проигрывателем музыки на компьютере и видеоплеером на raspberry pi;
  • интерфейс, доступный снаружи локальной сети, для вывода значения с датчиков, установленных на arduino.

Что получилось:

  • клиент, запускаемый на устройстве, с декларацией методов на python;
  • RESTful api для запуска «методов»(картинка справа выведена через него);
  • «панели управления» с web-интерфейсом;
  • сервис для управления устройствами, методами и панелями.

Читать дальше →
Всего голосов 24: ↑22 и ↓2 +20
Комментарии 30

Самая короткая запись асинхронных вызовов в tornado или патчим байткод в декораторе

Время на прочтение 3 мин
Количество просмотров 6.1K
Сложный асинхронный обработчик в tornado иногда расползается на десятки callback функций, из-за чего становится трудно воспринимать и модифицировать код. Поэтому существует модуль tornado.gen, позволяющий писать обработчик как генератор. Но много yield gen.Task(...) тоже выглядит не очень. Поэтому в порыве бреда я написал упрощающий запись декоратор:
До После
@asynchronous
@gen.engine
def get(self):
    result, status = yield gen.Task(
        db.users.find_one, {
            '_id': ObjectId(user_id),
        },
    )
@asynchronous
@gen.engine
@shortgen
def get(self):
    result, status << db.users.find_one_e({
        '_id': ObjectId(user_id),
        },
    )

Читать дальше →
Всего голосов 26: ↑24 и ↓2 +22
Комментарии 18

Осовремененный Unix Way или pipe в браузер

Время на прочтение 2 мин
Количество просмотров 3.6K
Наверное, каждый, кому когда-нибудь приходилось следить одновременно за большим количеством окошек с логами, подумывал о переносе некоторых из них на экран планшета или телефона.
А, находясь далеко от компьютера, следить за выхлопом недавно запущенного большого и страшного сервиса?
Конечно, можно поставить ssh клиент на телефон, но это не особо удобно.
Поэтому я решил сделать мини-сервис упрощающий «удалённый» просмотр логов.

Читать дальше →
Всего голосов 67: ↑63 и ↓4 +59
Комментарии 35

Unity линза для поиска видео ВКонтакте

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


В unity очень удобные линзы, в ВКонтакте много видео, а flash в новой ubuntu превращает все фильмы в аватар. Поэтому я сделал линзу для поиска видео в ВКонтакте, открывающую их в totem.
Читать дальше →
Всего голосов 105: ↑96 и ↓9 +87
Комментарии 72

Интеграция web приложений с соц сетями или «проставляем лайки»

Время на прочтение 3 мин
Количество просмотров 16K
Что требовалось: добавить кнопки facebook'а и twitter'а на большинство
разделов приложения.
Что было: одностраничное приложение без статичных адресов.

Итак, нам нужно будет сделать 3 действия:
  • добавить поддержку «хэшбэнг» адресов;
  • сделать статичные страницы для facebook'овского «робота»;
  • собственно, расставить кнопки.

Читать дальше →
Всего голосов 14: ↑8 и ↓6 +2
Комментарии 2

Всё самое модное

Время на прочтение 3 мин
Количество просмотров 5.6K
Начитавшись в интернете про новые, простые, быстрые и масштабируемые технологии, захотелось их всех попробовать. Вдруг они окажутся лучше уже привычной мне связки postgresql + django + json-rpc.

Идея проекта


Так как никакой идеи не было, но был свободный домен uglyrater.org — пришлось делать рейтинг.
Суть проста: есть список пользователей, которым можно расставить + и -. Новые пользователи в рейтинг добавляются по адресу страницы ВКонтакте.

Осторожно! В статье много субъективных оценок , основанных на личном опыте!
Всего голосов 106: ↑79 и ↓27 +52
Комментарии 33

Используем «Яндекс Музыку» вне браузера

Время на прочтение 2 мин
Количество просмотров 120K
Недавно мне захотелось поработать с «Яндекс Музыкой» не через браузер. Как выяснилось, у них нет открытого api, и дело оказалось не тривиальным. Да и ничего готового найти не удалось.

Те, кому лень читать, могут сразу перейти к результату — python-yamusic.
Читать дальше →
Всего голосов 46: ↑38 и ↓8 +30
Комментарии 15

debman — фронтенд для apt с синтаксисом pacman'а

Время на прочтение 1 мин
Количество просмотров 1.4K
logoРешил тут написать о своей небольшой программке, дабы увеличить её популярность, и так начнём.
debman — фронтенд для apt'а с синтаксисом pacman'а (пакетного менеджера в Arch linux). Сейчас он поддерживает все deb-based дистрибутивы, а так же rpm-based с apt (проверено на ALT linux'е).
Читать дальше →
Всего голосов 79: ↑51 и ↓28 +23
Комментарии 73

Как я завёл дополнительные клавиши на ноутбуке

Время на прочтение 1 мин
Количество просмотров 1.3K
Мне было влом гемороиться со скриптами acpi, да и на ноутбуке 2 пользователя, использующих разный набор программ, поэтому я решил написать простой скрипт
Читать дальше →
Всего голосов 15: ↑10 и ↓5 +5
Комментарии 8

Ubuntu 9.10 и catalyst: исправляем медленное развёртывание окна

Время на прочтение 1 мин
Количество просмотров 895
В свежеустановленной ubuntu у счастливых^Wпользователей проприетарного драйвера от ati(catalyst), при включенных эффектах, очень долго разворачивается окно. Для исправления нужно поставить «иксы» с патчем nobackflill(отключается инициализация фона). Это легко сделать:
  1. В /etc/apt/sources.list добавить:
    deb ppa.launchpad.net/launchpad-weyland/xserver-nobackfill/ubuntu karmic main
  2. Выполнить:
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 16E70E3E
    sudo aptitude update
    sudo aptitude upgrade
  3. Перезагрузить X сервер

на welinux.ru
Всего голосов 24: ↑18 и ↓6 +12
Комментарии 28
1

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность