Как стать автором
Обновить
0
0
Сергей @phplamer

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

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

Производительность межпроцессного обмена сообщениями в node.js

Время на прочтение3 мин
Количество просмотров10K
Разрабатывая приложение на node.js, столкнулся с необходимостью обмена сообщениями между процессами одной машины. В такой ситуации обычно я применял redis Pub/Sub, бонусом получая возможность масштабирования на несколько серверов. Но сейчас встал вопрос именно о локальном обмене и его производительности.

Я решил исследовать существующие варианты обмена сообщениями. Задача эта достаточно стандартна и известна как IPC (Inter Process Communications). Но что можно сделать на js и на какую производительность при этом рассчитывать?

Проведя серию тестов и получив результаты решил поделиться ими с хабрасообществом. Заинтересованных прошу под кат.
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии4

Делаем очередную .io-игру

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


Так называемые .io-игры — это браузерные massively multiplayer action-игры, в которых множество людей борются с излишками свободного времени. Massively multiplayer — это значит, что игра представляет собой многопользовательскую массовку из большого количества (сотен+) игроков, играющих в общей локации. Существует мнение, что все началось с игры Agar.io (клетки в чашке Петри). Другими успешными примерами можно назвать Slither.io (змейки) и Diep.io (танчики). Если верить статистике, то каждый день в эти игры играют миллионы игроков. Сегодня существуют десятки различных .io-игр, большинство из которых можно найти, загуглив по запросу «io games list».


Я расскажу о том, как мы делали нашу .io-игру Oceanar.io — игру про рыбок и прочих морских жителей, постараюсь при этом сосредоточиться на вопросах общего технического устройства всей системы, и дам несколько скромных советов.


Читать дальше →
Всего голосов 35: ↑30 и ↓5+25
Комментарии46

Книга «Изучаем Arduino. 65 проектов своими руками»

Время на прочтение5 мин
Количество просмотров25K
image Приходилось ли вам, разглядывая какое-нибудь устройство, задумываться над тем, как оно работает в действительности? Возможно, это был катер с дистанционным управлением, лифт, автомат по продаже напитков или электронная игрушка? А может быть, вам хотелось самому создать робота, придумать электронное управление для модели железной дороги? Или у вас вдруг возникало желание организовать получение и анализ долгосрочного прогноза погоды? Как и с чего вы могли бы начать собственный проект?

Плата Arduino поможет на практике раскрыть некоторые секреты электроники. Cозданная Массимо Банци и Дэвидом Куартиллье, система Arduino предлагает бюджетный способ создания интерактивных проектов и объектов, таких как дистанционно управляемые роботы, системы записи пройденного маршрута на основе GPS и электронные игры.

В этой книге обзор 65 проектов. Пример одного проекта под катом.
Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии6

Строим свой full-stack на JavaScript: Сервер

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

Строим свой full-stack на JavaScript: Сервер



Вторая статья из серии о full-stack JS разработке.


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


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

Тонкости построения сетевых моделей в Python

Время на прочтение5 мин
Количество просмотров15K
Что является основным инструментом, который использует руководитель при управлении проектом? Принято считать, что основным инструментом руководителя проекта является календарный план, в основе которого лежит сетевая модель работ по проекту. Однажды мне довелось реализовать сетевую модель работ на языке Python (код и описание здесь). Ниже приведены уроки, извлеченные по результатам проделанной работы.
Читать дальше →
Всего голосов 21: ↑16 и ↓5+11
Комментарии13

Для чего финтеху машинное обучение

Время на прочтение11 мин
Количество просмотров9.7K
imageТехнология машинного обучения вызывает интерес у мировых финтех-компаний и финансовых организаций, чей бизнес так или иначе связан с инвестициями, кредитованием, консалтингом и решениями в области безопасности. Мы в компании PayOnline, специализирующейся на автоматизации приема онлайн-платежей, решили рассмотреть международные финтех-кейсы применения технологии машинного обучения.

В 80-х появились компьютеры, и постепенно мы наблюдали, как их использование для хранения и обработки информации становилось нормой для большинства компаний. В 90-х мы стали свидетелями интернет-бума, по-настоящему изменившего мир. Собрать информацию о чем-либо сегодня — сущий пустяк. В середине прошлого десятилетия появились социальные сети и предприниматели заметили, что клиенты начали проводить в них столько времени, сколько до этого не проводили ни на одном другом сайте. В итоге бизнесмены по всему миру начали инвестировать в социальные медиа для увеличения охвата аудитории и в маркетинговых целях. Когда широкой публике были представлены Android и iOS, произошел сдвиг парадигмы. Люди стали проводить больше времени со своими смартфонами, нежели персональными компьютерами. Со временем потребители начали пользоваться смартфонами для принятия решений, совершения покупок и даже платежей. Сегодня, поняв, что смартфоны стали неотъемлемой частью процесса принятия потребителем решений, компании стремятся предоставить им омниканальный опыт взаимодействия. В связи с этим возникает вопрос: «Какие еще существуют инновационные инструменты, способные изменить рынок?» Вероятно, компаниям следует обратить внимание на использование алгоритмов машинного обучения.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии2

Односторонний binding данных с ECMAScript-2015 Proxy

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


Доброго времени суток, хабравчане. Сегодня мы будем создавать хранилище данных с функцией одностороннего связывания данных с использованием Proxy и некоторых других плюшек ECMAScript 2015.

Что же такое Proxy?


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

Что мы будем делать?


Мы реализуем хранилище объектов с функционалом отслеживания изменений, используя прокси, т.е. некое подобие почившего O.o с некоторыми дополнительными плюшками.

Итак, поехали…
Читать дальше →
Всего голосов 14: ↑10 и ↓4+6
Комментарии13

Строим свой full-stack на JavaScript: Основы

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

Строим свой full-stack на JavaScript: Основы



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


В этом цикле статей я хочу поделиться своим практическим опытом построения JS стека.


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

Что такое свёрточная нейронная сеть

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


Введение


Свёрточные нейронные сети (СНС). Звучит как странное сочетание биологии и математики с примесью информатики, но как бы оно не звучало, эти сети — одни из самых влиятельных инноваций в области компьютерного зрения. Впервые нейронные сети привлекли всеобщее внимание в 2012 году, когда Алекс Крижевски благодаря им выиграл конкурс ImageNet (грубо говоря, это ежегодная олимпиада по машинному зрению), снизив рекорд ошибок классификации с 26% до 15%, что тогда стало прорывом. Сегодня глубинное обучения лежит в основе услуг многих компаний: Facebook использует нейронные сети для алгоритмов автоматического проставления тегов, Google — для поиска среди фотографий пользователя, Amazon — для генерации рекомендаций товаров, Pinterest — для персонализации домашней страницы пользователя, а Instagram — для поисковой инфраструктуры.


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


Задача


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


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

Batch Normalization для ускорения обучения нейронных сетей

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

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


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


В какой-то момент, знакомясь с представленным в 2015 году методом Batch Normalization от компании Google мне, для решения задачи связанной с распознаванием лиц, удалось существенно улучшить скорость работы нейросети.



За подробностями прошу под кат.

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

Пособие по webpack

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


Давайте сначала разберемся, зачем нужен вебпак (webpack), и какие проблемы он пытается решить, а потом научимся работать с ним. Webpack позволяет избавиться от bower и gulp/grunt в приложении, и заменить их одним инструментом. Вместо bower'а для установки и управления клиентскими зависимостями, можно использовать стандартный Node Package Manager (npm) для установки и управления всеми фронтэнд-зависимостями. Вебпак также может выполнять большинство задач grunt/gulp'а.


Bower это пакетный менеджер для клиентской части. Его можно использовать для поиска, установки, удаления компонентов на JavaScript, HTML и CSS. GruntJS это JavaScript-утилита командной строки, помогающая разработчикам автоматизировать повторяющиеся задачи. Можно считать его JavaScript-альтернативой Make или Ant. Он занимается задачами вроде минификации, компиляции, юнит-тестирования, линтинга и пр.

Допустим, мы пишем простую страницу профиля пользователя в веб-приложении. Там используется jQuery и библиотеки underscore. Один из способов — включить оба файла в HTML:

Читать дальше →
Всего голосов 42: ↑41 и ↓1+40
Комментарии13

4 вида утечек памяти в JavaScript и как с ними бороться

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

В этой статье мы рассмотрим распространённые виды утечек памяти в клиентском JavaScript. Также мы узнаем, как их обнаружить с помощью Chrome Development Tools.


timeline в Chrome Dev Tools

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

Рабочий вопрос: почему западным IT-компаниям интересны сотрудники-аутисты

Время на прочтение8 мин
Количество просмотров32K
Не так давно мы, как IaaS-провайдер, начали рассказывать о мифах [Часть 1, Часть 2], которые сложились вокруг облачных технологий, и постарались их развеять.

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



/ фото Kristina D.C. Hoeppner CC
Читать дальше →
Всего голосов 33: ↑30 и ↓3+27
Комментарии37

Agile или Lean: Ага ага, какая разница-то?

Время на прочтение4 мин
Количество просмотров65K
Является ли Agile аналогичным Lean? Когда люди говорят “Agile”, подразумевают ли они на самом деле Scrum? Или люди все еще используют разные типы Agile и почему?

Получая много вопросов в прошлом, я решил расставить все точки над “и”.

image
Читать дальше →
Всего голосов 25: ↑17 и ↓8+9
Комментарии28

История языков программирования: разброд и консолидация JavaScript

Время на прочтение7 мин
Количество просмотров20K
Возможности HTML-документов развивались постепенно: сначала все ограничивалось собственно текстом с тегами и изображениями. Позднее появилась возможность вставки и воспроизведения звуковых файлов и видеоклипов. Однако помимо размещения мультимедиа-контента на веб-странице существовала проблема динамической обработки запросов и управления просмотром. Для ее решения стандартных средств HTML не хватало.


При генерации страниц в Web возникает дилемма, связанная с архитектурой «клиент-сервер». Страницы можно генерировать как на стороне клиента, так и на стороне сервера. В 1995 году специалисты компании Netscape создали механизм управления страницами на клиентской стороне,
Читать дальше →
Всего голосов 46: ↑33 и ↓13+20
Комментарии16

Результаты и разбор задач финала Яндекс.Алгоритма 2016

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

29 июля в Минске прошёл финальный раунд чемпионата по программированию Яндекс.Алгоритм. Победителем стал Егор EgorK Куликов — выпускник мехмата МГУ и бывший сотрудник Яндекса. Второе место — у Николы Йокича из Швейцарской высшей технической школы Цюриха. В составе команды школы он был финалистом ACM ICPC. Третье место занял Макото Соэдзима, выпускник Университета Токио. Геннадий Короткевич, победитель двух предыдущих Алгоритмов, занял шестое место.


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


image


В этом году мы получили на четверть больше заявок на участие в Алгоритме, чем год назад, — 4578. Среди участников пока немного девушек — 372. В списке зарегистрировавшихся есть представители 70 стран; больше всего соревнующихся — из России, Индии, Украины, Беларуси, Казахстана, США и Китая. В финале приняли участие 25 человек.


Задачи для Яндекс.Алгоритма составляют сотрудники Яндекса и приглашённые эксперты, среди которых — финалисты и призёры ACM ICPC. По условиям состязания, участники могут использовать разные языки программирования. Статистика Яндекс.Алгоритма показывает, что самый популярный язык — С++; его выбрали более двух тысяч человек. Второе место поделили Python и Java.

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

Год с Runkeeper: Анализ и визуализация геоданных о ваших путешествиях

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

Перевод поста Bernat Espigulé-Pons "A Year of Runkeeper: Analysis and Visualization".
Код, приведенный в статье, можно скачать здесь, а дополнительные файлы здесь.
Выражаю огромную благодарность Кириллу Гузенко KirillGuzenko за помощь в переводе и подготовке публикации

Почти год назад я решил записывать все свои передвижения с помощью Runkeeper, и теперь хочу представить несколько вариантов визуализации моей годовой активности. Проект получается несложным: данные по своим передвижениям я буду подгружать из Runkeeper, а анализировать/визуализировать — в Wolfram Language. В этой анимации (см.ниже) показаны мои передвижения по Барселоне, и я покажу вам, как сделать такую же.


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

О нетрадиционном способе использования компьютерной мыши

Время на прочтение2 мин
Количество просмотров31K
7 июля в Санкт-Петербурге пройдет «очная ставка» NeoQUEST-2016. Гостей ждут интересные доклады, конкурсы, общение с коллегами, а лучших участников online-этапа — восьмичасовое соревнование по кибербезопасности! В преддверии «очной ставки» продолжаем разбирать задания online-этапа, и на очереди — задание, посвященное не самому типичному способу использования компьютерной мышки.

Задумывались ли вы когда-нибудь о том, как работает оптическая мышка? Все просто: в нижней части расположена камера, быстро делающая снимки поверхности, по которой водят мышку. Сравнивая полученные изображения, контроллер мышки вычисляет смещение. Есть вопрос и поинтереснее: можно ли как-то достать изображение поверхности под мышкой? Спойлер: можно! Как это сделать, расскажем под катом!
Читать дальше →
Всего голосов 45: ↑28 и ↓17+11
Комментарии8

Angular Attack: мой опыт участия в хакатоне

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


Angular 2 сегодня считают этаким «new kid on the block». Он многим интересен, без его упоминания не обходится практически ни одна крупная front-end конференция, и уже сейчас он готов бросить вызов React. Но до лучей абсолютной славы еще далеко — официального релиза еще не было, хотя в бою фреймворк может попробовать любой желающий. Мы в Wrike, например, уже вовсю используем Angular 2 в продакшне.

Ребята из Google активно привлекают внимание к новому фрейворку и даже недавно провели 48-часовой онлайн хакатон ANGULAR ATTACK, который собрал несколько сотен участников. По его результатам было опубликовано более 270 работ. В этой статье я хочу поделиться опытом своего участия в хакатоне, впечатлениями и наблюдениями, которые могут вам помочь в подобных состязаниях. Добро пожаловать под кат.
Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии16

RxJS: реактивное расширение для фронтенд разработки

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

Итак, прошу любить и жаловать, Виктор Русакович. Родом из Минска, работает в компании GP Software.travel.
Виктор последние пять лет занимается (в основном) фронт-енд разработкой. Ну а начинал, как и большинство из нас, с jQuery.

Потом был backbone, angular v1. Последние полгода он работает в проекте на Redux/React.js (часто их путают с RxJS, но это немного другое).


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

Информация

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