Search
Write a publication
Pull to refresh
65
0
Дмитриев Сергей @antirek

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

Send message

Свои карты на leaflet.js

Reading time2 min
Views47K
В городе Красноярске намечено проведение Универсиады в 2019 году, в связи с этим и не только администрация Красноярска проводит разработку генерального плана территориального развития города до 2033 года. Недавно чиновники выложили схемы генерального плана на сайте администрации города для общественного обсуждения. Но вот незадача: просмотр и анализ схем неудобен, потому что файлы имеют большие размеры и разрешение. Например, файл основной схемы имеет размер 43,34Мб и разрешение 19256x16019px. У меня компьютер тормозит при просмотре такой картинки.

Немного поскриптовав с коллегами, сделали вот такую интерактивную карту antirek.github.io/krskmap/main/index.html



Далее немного подробнее, как сделать свою карту на leaflet.js из картинки с большим разрешением.

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

Динамическое отображение логов в броузере на Node.js & WebSocket

Reading time3 min
Views4.5K
Динамическое отображение логов в броузере на Node.js & WebSocket

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

Инструменты и модули для решения

Для серверной части был выбран Node.js. Но похожий пример можно аналогично реализовать и с использованием EM на руби. В данном случае подкупила библиотека Socket.IO, а также несколько простых модулей для работы с файлами.

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

Сюрреализм на JavaScript. Советы по разработке на NodeJS

Reading time9 min
Views41K
Привет, Хабра!

Пол года назад я подумал: «А может книгу написать?», и таки написал.



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

Scrawl — скриншотер сайтов и безопасность веб-интерфейсов SIP-устройств

Reading time2 min
Views3.7K
Все началось с того, что некоторые абоненты, подключающиеся по протоколу SIP к нашей корпоративной АТС без использования VPN, не соблюдали основы безопасности и оставляли на внешнем IP-адресе доступ к веб-интерфейсу или роутера, или IP-шлюза со стандартным логином-паролем. Что дает потенциальным злоумышленникам возможность получить настройки, прикинуться нашим абонентом и сделать множество звонков по междугородним направлениям.

Сначала просто CURL'ом подергал IP-адреса абонентов (выявилось, что некоторые аппараты при простом HTTP POST запросе ребутятся), а затем захотелось как-нибудь с изюминкой просканировать да красоту получить. В общем, получился Scrawl — скриншотер сайтов (сайт проекта, репозиторий).

На модной волне headless браузеров захотелось попробовать PhantomJS, более удобный интерфейс к которому дает CasperJS, а затем стало желательно использовать совместно с Node.JS, поэтому стал использовать SpookyJS.

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

Несколько интересностей и полезностей для веб-разработчика #27

Reading time4 min
Views31K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Highcharts.js



В последнее время я зачастил с библиотеками предназначенными для построения графиков и диаграмм. Но против трендов на GitHub с 2500+ звезд не попрешь, да и когда есть из чего выбирать — всегда хорошо. Highcharts.js — это мощный инструмент, основанный на SVG и VML рендеринге со множеством плагинов. Минус этого проекта — лицензия, которая позволяет использовать скрипт только в некоммерческих целях. Хочу обратить также ваше внимание, что именно этот проект выбрали такие компании как Яндекс, Facebook, Twitter, Yahoo, AT&A, Nokia и др.

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

Как Docker помог нам достичь (почти) невозможного

Reading time8 min
Views31K
image С тех пор как мы начали работать над Iron.io, мы пытались решить проблему поддержания наших IronWorker-контейнеров в актуальном состоянии относительно новых сред выполнения и пакетов Linux. В течение последних двух лет IronWorker использовал одну и ту же среду выполнения без изменений. Пока, несколько недель назад, мы не выпустили в продакшен различные окружения для языков программирования.

С момента создания нашего сервиса, мы использовали только один контейнер, который содержал набор языковых сред и бинарных пакетов — Ruby, Python, PHP, Java, .NET и другие языки, а также библиотеки такие как ImageMagick, SoX и другие.

Этот контейнер и стратегия его использования начали устаревать, равно как и Ruby 1.9.1, Node 0,8, Mono 2 и прочие языки со старыми версиями, которые использовались в стеке по умолчанию. Со временем проблема стала ещё острее, поскольку люди начали использовать новые вещи, но были вынуждены изменять свой код для работы со старыми версиями языков.
Читать дальше →

Simile TimeLine — библиотека для отображения событий на шкале времени

Reading time3 min
Views5.1K
Время идет вперед. Годы летят, только успевай считать уж сколько прошло их с тех пор как в школу пошел, как поступил в институт, как женился да дети родились. А ведь помимо своей жизни есть еще много вещей которые изменяются, развиваются, появляются и исчезают с течением времени.

Так вот интересным инструментом для наглядного представления событий и периодов на шкале времени является Simile TimeLine.

Далее я расскажу, что сподвигло меня использовать данный инструмент, и в чем я нахожу его использование крайне удобным. В моем описании будет немного про Астериск, колл-центры и, собственно, javascript-библиотеку Simile TimeLine.
Читать дальше →

Маленькие да удаленькие — 3 библиотеки JavaScript на всякий случай

Reading time2 min
Views4.1K
Прочитал пост про Kerning.js — небольшую js-библиотеку, можно даже сказать утилиту, для реализации чудес типографики на веб-страницах. И вспомнил, что пользовал не так давно нечто подобное — библиотеку Lettering.js.

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

Итак, Lettering.js — помощник «радикального» веб-типографа, Cryptico.js — помощник Штирлица и Rasta.js — такой простой ajax get/set помощник. Далее ссылки на сайты разработчиков этих библиотек и инструкций по их использованию.
Читать дальше →

Pixi-editor — простая рисовалка на pixi.js

Reading time1 min
Views15K
Занимаясь одним большим проектом, добавил небольшую функциональность — выделение «маркером». Затем выделил эту часть в Pixi-editor. И теперь Pixi-editor — это рисовалка на основе pixi.js, и как следствие использует для рисования в браузере. Довел до примерного функционала рисовалки граффити Вконтакте.

Кому любопытно: демо, гитхаб.
Далее скриншот и пара комментариев.
Читать дальше →

yandex-speech — wrapper к речевым технологиям Яндекса

Reading time1 min
Views15K
Ознакомившись с обзором движков для распознавания речи, заметил там API от Яндекса. И на выходных написал небольшую обертку для Node.js для распознавания речи с целью поиска мата в своих телефонных разговорах. По мотивам топика на Хабре.

Список нецензурных слов выкладывать не буду, а сам npm устанавливается командой.
npm install yandex-speech


Исходники и примеры использования:
github: www.github.com/antirek/yandex-speech

Немного деталей:
Читать дальше →

Dalek.js — простое функциональное тестирование веб-приложений

Reading time2 min
Views23K
Вы знаете, что такое Selenium и/или PhantomJS? И с чем их едят? Тогда, возможно, вам будет интересен проект Dalek.js — кроссбраузерная утилита для тестирования веб-приложений.

Dalek.js позволяет писать тесты, которые ходят по веб-страничкам, щелкают ссылки, заполняют формы, отправляют данные и делают скриншоты. То же самое и даже больше делают тесты, написанные с использованием Selenium'а или Phantom.js, в чем подвох?

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

Платформер на Three.js

Reading time6 min
Views38K
На днях мистер Дуб принял мой первый pull request с примером в Three.js, и на радостях я решился написать о нём хабропост. Если вам вдруг захочется написать трёхмерный платформер на Three.js, но вы не особо представляете себе, как это сделать, этот пример — для вас:



Весь код примера занимает менее 300 строк, щедро разбавленных переносами, разобраться в которых самостоятельно не составит особого труда. Однако, чтобы ещё больше облегчить вашу участь, я напишу немного ниже пару слов о ключевых моментах.
Почитать, что ли...

Распознавание речи в Asterisk с использованием Yandex SpeechKit HTTP API

Reading time2 min
Views34K


Статья написана по мотивам Синтез и распознавание речи от Google для Asterisk, с не большими изменениями. Для распознавания речи используется платформа Yandex SpeechKit HTTP API.
Читать дальше →

SIP через WebRTC на продакшне. Как мы к этому шли и какие проблемы решали

Reading time5 min
Views52K
Доброго времени суток всем!

Я уже писал о своем опыте работы с WebRTC тут, но учитывая то, что в последнее время всё больше статей на эту тему появляется на хабре и то, что я давно хотел написать о том, как мы добились стабильной работы SIP телефонии через WebRTC на продакшне, я решил написать через что мы прошли.

А прошли мы через многое: боль, панику, истерики, кучу матов и пожелания добра мейнтейнерам.
Сейчас же это всё в прошлом. Мы избавились от всех костылей, которые мы делали, и сделали так, чтобы операторы звонили и всё работало стабильно.
В статье, я как можно подробнее описал все проблемы, с которыми мы сталкивались, используя как можно меньше кода и конфигов.

Кому интересно, прошу под кат.
Читать дальше →

16 инструментов для создания прототипов

Reading time5 min
Views496K


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

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

16 инструментов со ссылками и их краткое описание

Как не сойти с ума владельцу стартапа?

Reading time10 min
Views33K


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

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

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

Руководство по basis.js. Часть 1: Начало работы, представления, модули, инструменты

Reading time22 min
Views26K

basis.js – JavaScript-фреймворк для разработки одностраничных веб-приложений, ориентированный на скорость и эффективность. Возможно он пока не такой популярный. Но благодаря моим выступлениям на различных конференциях и meetup'ах, некоторые уже слышали о нем и заинтересовались. Однако, чтобы начать использовать фреймворк или разбираться в нем, большинству не хватает руководства.

И вот, собрав волю в кулак (ну какой программист не любит писать документацию?), я сел писать руководство. Просто, доступно, последовательно.

Написав первую часть, я дал прочесть другим. Они прочитали и убедили меня, что это обязано быть опубликованным на Хабре. Ведь, что может лучше рассказать об инструменте, чем примеры его использования?

В первой части руководства будет рассмотрено как начать работать с basis.js и какие инструменты можно использовать. В качестве примера будет создано несколько простых представлений, затронут вопрос модульности и организации файлов проекта.

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

HuGu — коллективный плейер музыки Вконтакте на node.js

Reading time4 min
Views20K
Зачем это надо? А вспомним ситуацию: в офисе работают несколько человек, и у одного к компьютеру подключены музыкальные колонки. — «Вась, смени LoveRadio! Поставь Рамштайна!» И Вася, отвлекаясь от отчета/игры/мысли: «Надоел Рамштайн, давайте лучше „Поющие трусы“ поставлю? Мегазачотные песни!»

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

Инфраструктура и жизненный цикл разработки веб-проекта

Reading time11 min
Views58K
Когда проект маленький, особых проблем с ним не возникает. Список задач можно вести в текстовом файле (TODO), систему контроля версий, по большому счёту, можно и не использовать, для раскладки файлов на живой сервер их можно просто скопировать (cp/scp/rsync) в нужную директорию, а ошибки всегда можно посмотреть в лог-файле. Глупо было бы, например, для простенького сервиса с двумя скриптами и тремя посетителями в день поднимать полноценную систему управления конфигурациями серверов.

С ростом проекта требования растут. Становится неудобно держать в TODO-файле несколько десятков задач и багов: хочется приоритетов, комментариев, ссылок. Появляется необходимость в системе контроля версий, специальных скриптах/систем для раскладки кода на сервер, системе мониторинга. Ситуация усугубляется, когда над проектом работает несколько человек, а уж когда проект разрастается до нескольких серверов, появляется полноценная инфраструктура («комплекс взаимосвязанных обслуживающих структур или объектов, составляющих и/или обеспечивающих основу функционирования системы», Wikipedia).

На примере нашего сервиса "Календарь Mail.ru" я хочу рассказать о типичной инфраструктуре и жизненном цикле разработки среднего по размерам веб-проекта в крупной интернет-компании.

Срыв покровов

Индикация работы режима DnD на BLF клавише в Asterisk

Reading time4 min
Views12K
image
DnD достаточно востребованная функция, но обычно режим включается на самом телефоне, не уведомляя об этом Asterisk, отчего тот будет обращаться к телефону пользователя, думая, что тот на месте и готов ответить на звонок. Как нам включить режим DnD на самом Asterisk и чтобы кнопка включения при активированном DnD моргала красным цветом?
Для этого нам потребуется телефон с BLF кнопками и пара макросов. Проверялось на IP телефонах Grandstream GXP серии, самых разных. Сервером выступает Linux c Elastix, ну и можно просто Asterisk 1.6+.
Подробности

Information

Rating
10,958-th
Location
Красноярск, Красноярский край, Россия
Date of birth
Registered
Activity