Как стать автором
Поиск
Написать публикацию
Обновить
-1
0

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

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

Вебсервис для симуляции движения пешеходов и выявления проблем благоустройства

Время на прочтение6 мин
Количество просмотров25K
Некоторое время назад я опубликовал тут свою статью, посвященную проблеме благоустройства дворов: habrahabr.ru/post/257563
В статье рассматривался алгоритм, позволяющий по плану местности предсказать, где пешеходы будут сходить с дорожек и топать по газонам, разнося грязь и портя всю красоту. Алгоритм представлял собой симуляцию движения пешеходов на заданной местности с помощью доработанного A* и модифицируемого во время движения навигационного графа.

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

Продемонстрирую процесс применения сервиса на примере вот этого участка проспекта Стачек в Санкт-Петербурге:



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

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

Создание RESTful сервисов на Meteor

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

Введение: Зачем нужен RESTful сервис на Meteor


Meteor привлекает простотой использования и возможностью очень быстро создать работающее приложение с минимальным набором функций. У Meteor — хорошо развитое сообщество. Есть множество полезных дополнительных модулей, которые не требуют сложной настройки, и могут быть использованы сразу после установки. Есть хорошая документация, примеры и большое количество постов на форумах, вроде StackOverflow. Meteor — это full-stack фреймворк, который предлагает удобную и многофункциональную интеграцию сервера с клиентом. Так зачем же выходить за рамки этого взаимодействия, и создавать RESTful сервис?

Клиент-серверное приложение, по-сути, состоит из 2 независимых частей, которые взаимодействуют посредством определенного интерфейса. При этом каждая из частей клиент-серверного приложения может создаваться разными людьми или командами. Разработчики клиенсткой части вовсе не ограничены использованием Meteor, они могут использовать любой другой JS фреймворк, клиент даже не обязательно должен быть написан на JS, это может быть к примеру приложение Android, написанное на Java, или iOS, написанное на Objective C.

Именно эти причины заставили меня выбрать Meteor для построения back end в моем проекте, и искать пути для создания RESTful сервиса на Meteor.
Читать дальше →

Работа с WAV-файлами с использованием PHP

Время на прочтение7 мин
Количество просмотров17K
Всё началось с того, что я задумался о том, как отобразить на сайте информацию о загруженном аудио-файле. Для начала решил разобраться с самым простым форматом — wav. Как оказалось, ничего сложного в этом нет и писать именно об этом, в общем-то, не было бы никакого смысла, благо, информации о том, как устроен wav-файл «изнутри» в Интернете полно.

И тут Остапа понесло И тут в голову пришла светлая мысль о том, что было бы прикольно не просто отображать информацию о файле, но и иметь возможность генерировать такой файл «на лету». Думаю, все видели в сети всевозможные «онлайн-пианино» и прочее, верно?

Итак, что мне удалось сделать за 2 вечера — под катом.
Читать дальше →

ES5 руководство по JavaScript

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

JavaScript quality guide


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

От переводчика


Всем привет, с вами Максим Иванов, и сегодня мы поговорим о правилах оформления кода на языке JavaScript. Николя Бэвакуа (Nicolás Bevacqua), автор книги «Дизайн JavaScript-приложений» (JavaScript Application Design), разработчик из Аргентины, опубликовал данное руководство достаточно давно, первая запись появилась еще в 2014 году, многое написано по стандарту ES5, однако, в наши дни это все равно актуально, сейчас, когда ES6 еще нигде полноценно не работает без babel и прочих транспайлеров. Хотя мы видим прогресс в топовых десктопных браузерах (Google Crhome, Firefox), где уже реализовано 70-90% задуманного, мы видим, что они стремятся поддерживать новый стандарт, но, к сожалению, ещё нет браузеров, которые полностью могли бы поддерживать ES6. К слову, я буду очень рад вашим комментариям. В общем, удачи и давайте начнем.
Читать дальше →

RESTful Visual Editor

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


Всем привет!
Хочу представить вам собственную разработку для создания API-документации. Она еще немного «сыровата», поскольку я уделил ей всего неделю, кроме того, я не являюсь веб-разработчиком. Однако на данном этапе, с целью написания API-документации для своего будущего проекта, она меня полностью устраивает.

Сама разработка находится на GitHub: github.com/gatools/restful-visual-editor

Заинтересовавшихся — милости прошу под кат.
Читать дальше →

Как я опробовал Microsoft Project Oxford + Telegram Bot API

Время на прочтение4 мин
Количество просмотров15K
Думаю, как уже понятно из названия, речь пойдет о таких вещах, как Microsoft Project Oxford и Telegram API.

Что такое Microsoft Project Oxford — набор готовых REST API, в доступной форме дающих разработчикам всю мощь алгоритмов машинного зрения, анализа естественного языка и распознавания голоса для использования в своих приложениях. Стоит отметить, что доступность сервисов в виде REST API позволяет использовать его на совершенно любых платформах и с помощью своих любимых технологий разработки, не ограничиваясь предложенными Microsoft. Более подробно — тут или тут.

Telegram Bot API — (думаю и так многие знают) кто не знает идет сюда.

Первое, что мне пришло в голову — самое простое сделать бота, который определяет возраст и пол человека на фото. Для этого нам нужно Face API и ключ API, все это можно получить на официальном сайте .

Итак, начнем (рассказывать о том, как создать бота, я не буду, т.к информации об этом куча). После того, как зарегистрировали бота, webhooks и получили ключ API, преступаем к написанию.

Писать решил на PHP. Почему? бес попутал
Читать дальше →

EchoPrint — открытая система распознавания музыки

Время на прочтение4 мин
Количество просмотров248K
Наверняка многие из вас слышали и знают про системы идентификации музыки вроде TrackID, Shazam, MusicBrainz или онлайновой Audiotag.info, позволяющие по записанному отрывку песни узнать ее название. Все они в достаточной степени хороши, но имеют общий недостаток — закрытый код и, соответственно, ограниченную сферу применения. TrackID вы можете использовать только на телефонах Sony Ericsson, Shazam — тоже только на телефонах, хотя и на более обширном списке платформ, а Music Brainz вообще неясно, работает ли вообще.

Ребята же из компании Echo Nest, решили, что распознавание музыки должно быть таким же доступным миру явлением, как электронная почта или DNS :), и выпустили своё детище полностью под MIT License. А детище, надо сказать, у них очень серьёзное — еще бы, если основателями компании являются доктора наук из MIT Media Lab .

Тот зверьфункционал, который они выпустили на свободу, не ограничивается только распознаванием музыки по записанному отрывку, но и позволяет делать такие вещи, как поиски дубликатов музыки, массовое распознавание и заполнение тэгов в музыкальных коллекциях, проверка аудио/видео на содержание того или иного материала, синхронизация коллекций из различных музыкальных пространств (iTunes <-> Last.fm <-> Spotify, например) и много чего еще.

Подробнее

Получение статистики и скриншотов видеоролика посредством php5-ffmpeg

Время на прочтение2 мин
Количество просмотров12K
Продолжаем делать ютуб habrahabr.ru/post/171225

Открытый вопрос — с уходом ffmpeg из Ubuntu, что придет на замену модулю php5-ffmpeg? Сообщите в комментариях, если вам что-то известно.

Под катом небольшая функция, написанная на PHP5, использующая модуль php5-ffmpeg, извлекающая скриншоты и статистику из видео.
Читать дальше →

Проект «Око» ч.19

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

Фото: A.V. Photography

Как и обещал, двигаемся стахановскими темпами. Осталось не так и много.

Ссылки на предыдущие части и обращение к тем, кто видит публикации Ока впервые:
Око — мой личный литературный проект, работу над которым я начал в мае этого 2015 года. Из небольшой зарисовки он перерос в научно-фантастическое произведение, главы которого я выкладываю, по мере написания, на GT.

Предыдущие части:

Часть 1
Часть 2
Часть 3
Часть 4
Часть 5
Часть 6
Часть 7
Часть 8
Часть 9
Часть 10
Часть 11
Часть 12
Часть 13
Часть 14
Часть 15
Часть 16
Часть 17
Часть 18


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

Как создать своего бота для Skype. Что не написано в документации

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


Некоторое время назад я рассказывал о своем боте для Telegram, который умеет данные из Google Analytics показывать. А тут Microsoft объявила о запуске ботов в Skype — самое время изучить как это работает. Под катом — небольшое описание возможных проблем. Кому не терпится посмотреть результат, вот он — MetricsBot Add Bot to Skype.
Куда смотреть и что делать?

Konami code или читайте между строк

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

История Konami Code


Еще в 1986 году японская компания Konami – один из ведущих разработчиков и издателей видеоигр – запрограммировала секретную комбинацию клавиш в версии игры Gradius для игровой консоли NES.



Однако настоящую популярность данная комбинация клавиш получила благодаря американской версии игры Contra (как «код на 30 жизней»).



В разных играх этот код имеет разное предназначение:
  • Увеличение количества попыток
  • Полное вооружение в начале игры
  • Добавление жизней
  • Прочее

Дальше больше

Рекурсия на PHP — алгоритм, применение

Время на прочтение7 мин
Количество просмотров46K
К написанию статьи сподвигли часы раздумий и экспериментов в области построения иерархических списков. Изначально логика обкатывалась на SQL запросах, но в последствии решил реализовать на PHP, дабы снять зависимость от СУБД. На простом примере я покажу как можно пройти от корня иерархии до каждого конечного элемента и обратно, информация скорее для новичков.

Итак, тестовая иерархия, с которой нам предстоит работать:

image

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

Создадим таблицу:

CREATE TABLE [dbo].[Test](
	[uid] [int] IDENTITY(1,1) NOT NULL,  -- уникальное поле, автоинкрементное
	[pid] [int] NULL,                    -- это поле указывает на элемент уровнем выше, содержит uid родителя
	[name] [varchar](255) NULL,
	[access] [varchar](50) NULL,         -- права доступа
) ON [PRIMARY]
Читать дальше →

Тернистый путь к продажам на Themeforest.net — Часть 1

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

Наверняка многие задумываются над тем, чтобы попробовать продавать свои шаблоны на известном маркетплейсе Envato.com, а некоторые уже успешно этим занимаются. В данной статье я хочу поделиться своим опытом разработки и продажи шаблонов на Themeforest.net



Информации в сети о заветном маркетплейсе Envato.com достаточно много, но детально расписанный процесс подготовки проектов попадается очень редко. Я сам не раз обращался к успешным авторам, продающим на Themeforest.net, за советом и помощью. Благо есть люди готовые помочь безвозмездно. Я надеюсь, моя статья также будет полезна начинающим авторам или тем, кто собирается стать автором. Ну или, по крайней мере, прольет немного света на темопроизводство.




Как все начиналось


Как я рассказывал в своих предыдущих публикациях, уже несколько лет моя небольшая студия занимается диджитал продакшеном: разработкой web сайтов и мобильных приложений. А разработкой шаблонов мы занялись по рекомендации моего товарища. Однажды он сказал, что это отличный дополнительный заработок для небольшой студии, и, мол, усилий требуется совсем немного для этого. Идея иметь дополнительный заработок, используя ресурс студии, который не загружен по текущим проектам, мне понравилась. Но тогда я еще даже не представлял какое количество времени мы потратим до того момента, как в продаже на Themeforest.net появится наш первый шаблон. Нам для старта продаж понадобилось более полутора лет. Однако, это случай частный и не стоит на него ориентироваться. Я знаю примеры и более стремительного успеха. Но хочу более детально рассказать, почему мы так долго к этому шли и с какими трудностями столкнулись в процессе.

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

Пять шагов по оптимизации производительности приложения для Андроид

Время на прочтение6 мин
Количество просмотров31K
В этой небольшой статье я хочу поделиться с вами опытом, как программно оптимизировать производительность приложения Андроид за 5 простых шагов на примере создания цифровой версии игры «Корона Эмбера».

До создания серьезных приложения со сложной структурой View и Layout'ов мы особо не задумывались над тем, как простые и логичные действия в стиле «смотрите, я набросал дизайн из лэйаутов» могут серьезно замедлить работу всей программы.

Помимо прочего, задача с «Короной Эмбера» осложнялась еще и тем, что игра, которую мы задумали перенести на Андроид платформу, была сама по себе достаточно насыщенной различными компонентами, которые как-то надо было умещать на игровом поле или рядом с ним.

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

Как выбрать фреймворк для frontend-разработки

Время на прочтение6 мин
Количество просмотров116K
Предлагаю вашему вниманию перевод статьи How To Pick a Frontend Web Framework c сайта top.fse.guru.

Привет, приятель!

Ниже ты найдешь большой список компоновки инструментов и фреймворков. Не волнуйся! Ты можешь выбрать один, в котором точно уверен, или проигнорировать все и придумать свой вариант.

Данная статья предназначена для того, что бы помочь тебе узнать и упорядочить список инструментов которые используются в сфере frontend-разработки. А так же, это неплохой список, из которого ты можешь выбрать то, что тебе придется по душе.
Читать дальше →

Евклидов алгоритм генерации традиционных музыкальных ритмов

Время на прочтение17 мин
Количество просмотров20K
Перевод статьи Godfried Toussaint The Euclidean Algorithm Generates Traditional Musical Rhythms.

От переводчика


В Sonic Pi есть функция spread, которая принимает два числовых параметра и возвращает набор значений для генерации ритма. В описании этой функции есть ссылка на работу «The Euclidean Algorithm Generates Traditional Musical Rhythms». Эта блестящая статья, вышедшая аж в 2005 году, похоже, так и не была переведена на русский язык. Не будучи специалистом по переводам, я попытался, тем не менее, восполнить этот пробел.
Небольшое пояснения по поводу слова «ожерелье»: в тексте статьи «necklace» — в музыкальной теории такого термина нет, насколько мне известно. Я полагаю, что это просто некая визуальная интуиция автора, действительно ведь ритмическое кольцо, в том виде, в каком оно представлено на рисунках, напоминает ожерелье — поэтому так и перевожу.

Конспект


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

Как составлять email-автоответы: Анализ 100 заявок в службы поддержки ИТ-компаний

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


В нашем блоге мы много пишем о создании email-рассылок и работе с электронной почтой. Мы уже обсудили сложности борьбы со спамом, будущее email, вопросы защиты почтовой переписки, а также техники работы с email, применяемые руководителями крупных ИТ-компаний.

Сегодня речь пойдет о другой важной теме — создании автоответов из служб поддержек технологических компаний. Сотрудник проекта StatusPage Блейк Торн опубликовал в блоге рассказ об интересном эксперименте — команда проекта отправила 100 заявок в службы поддержки разных компаний, чтобы узнать, какие автоответы они используют. Цель эксперимента — увидеть слабые места в таких коммуникациях с клиентами. Мы представляем вашему вниманию главные мысли этого материала.
Читать дальше →

Amelisa. Оффлайн и реалтайм движок для React и Mongo

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

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




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

Как правильно внести свою лепту в Open Source проект: простые подсказки

Время на прочтение6 мин
Количество просмотров70K
Open Source проекты с каждым днём набирают всё большие обороты, появляются новые, активно развиваются популярные.
Такие проекты как Bootstrap, Angular.js, Elasticsearch, Symfony Framework, Swift и многие другие привлекают новых разработчиков, их сообщество растёт. Всё это даёт огромный рост проектам, а самим разработчикам интересно поучаствовать в разработке чего-то, чем пользуется весь мир.

Я, как и многие другие программисты, не устоял и также время от времени участвую в разработке Open Source проектов, в основном на PHP. Но когда я начинал, я столкнулся с проблемой — я не знал, как правильно организовать процесс «контрибьютинга», с чего начать, как сделать так, чтобы мой Pull Request рассмотрели и т.д.

Всем начинающим «контрибьютерам», которые столкнулись с похожим проблемами, добро пожаловать под кат.


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

Floating toolbar for text selection в Android Marshmallow: разбор нововведения

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

В Andriod при выделении текста появляется меню с действиями, которые можно выполнить: «Вырезать», «Скопировать», «Отправить». В Android Marshmallow (SDK 23) появилась возможность расширять это меню и давать пользователю легкий доступ к дополнительным возможностям при работе с текстом: «Перевести», «Прокомментировать», «Процитировать».

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

Информация

В рейтинге
Не участвует
Откуда
Киев, Киевская обл., Украина
Зарегистрирован
Активность