Наверняка у многих из вас перед глазами уже мелькали заголовки статей с конкурсом от Hola, который недавно подошел к своему логическому завершению. В окончательных результатах мне посчастливилось быть на 3 месте. По этой причине я позволил себе поделиться описанием своего решения, а также того, как я до него докатился.
Читать полностью »
Рубрика «node.js» - 64
3 место за 11 шагов в конкурсе по JavaScript от Hola
2016-01-18 в 9:12, admin, рубрики: hola, javascript, node.js, Алгоритмы, конкурсы разработчиков, оптимизация, соревнования по программированию, Спортивное программирование, фильтрация писем, фильтрация почтыСохранение сетевых словарей в форматах DSL – LSD, TXT, PDF, DjVu и решение сопутствующих задач при помощи Node.js
2016-01-17 в 17:54, admin, рубрики: abbyy lingvo, djvu, dsl, html, javascript, LSD, node.js, PDF, txt, Urban Dictionary, лексикография, локализация, Локализация продуктов, перевод, поиск, поисковые технологии, словариКомпания ABBYY создала хорошую программную оболочку для работы со словарями, однако не меньшим её вкладом в цифровую лексикографию стал побочный продукт разработки ABBYY Lingvo — язык словарной разметки DSL. Он давно уже вышел за границы Lingvo, стал самостоятельным стандартом и форматом для других словарных оболочек, в том числе одной из самых известных в своём роде — GoldenDict.
Но сама по себе компания ABBYY не достигла бы таких успехов без помощи многочисленной армии энтузиастов-лексикографов, маниакально год за годом оцифровывавших бумажные словари и конвертировавших словари цифровые — от миниатюрных специальных до огромных общего назначения.
Одна из самых известных и плодотворных групп давно уже работает на сайте forum.ru-board.com. Со временем там накопилась как обширнейшая коллекция словарей, так и основательнейшая база знаний и инструментов в помощь их создателям и редакторам. Было написано множество скриптов и программ, набор которых отражает историю и изменения популярности языков программирования, более или менее приспособленных для обработки текста. Тут и Perl с Python, и языки пакетных файлов для оболочек, и макросы MS Word и Excel, и компилируемые программы на языках общего назначения.
Однако до последнего времени один из языков почти не был представлен в данной сфере. Хотелось бы восполнить этот пробел и отдать должное стремительному росту мощности, функциональности и популярности языка JavaScript. Думается, он может оказать большую помощь современным программистам-лексикографам, особенно на границе сетевой и локальной лексикографии. Читать полностью »
Добавляем в игру мультиплеер с помощью Node.JS и Frida. Часть 1
2016-01-16 в 16:42, admin, рубрики: frida, game development, javascript, node.js, игра, ненормальное программирование, прокачиваем игру
На хабре уже есть пару упоминаний об инструменте Frida(Frida-node или немножко странного кода, Точки соприкосновения JavaScript и Reverse Engineering).
В одной статье уже упоминается использование Frida на практике, однако почти везде инструмент используют как фреймворк для реверс-инжиниринга и исследования функционала программ (может даже взлом).
Я же хочу рассказать о процессе превращения одной любимой для меня однопользовательской игрушки в полноценную, многопользовательскую.
Читать полностью »
Окончательные итоги конкурса по программированию на JS: Почтовые фильтры
2016-01-14 в 11:56, admin, рубрики: hola, javascript, node.js, nodejs, Алгоритмы, Блог компании Hola, занимательная задача, занимательная задачка, занимательные задачи, Занимательные задачки, итоги конкурса, ищем таланты, конкурс, конкурсы, конкурсы разработчиков, нужны разработчики, оптимизация, поправки, результаты, соревнование, соревнования, соревнования по программированию, Спортивное программирование, требуются программисты, фильтрация писем, фильтрация почтыСпасибо всем участникам нашего последнего конкурса по программированию! Публикуем окончательные, исправленные результаты конкурса.
Мы получили 408 решений от 237 различных участников (в конкурсе участвует только одно, последнее из решений от каждого участника, и мы публикуем именно последние варианты). Кроме того, 14 решений было отправлено нам либо после окончания срока приёма работ, либо сотрудниками Hola, и мы рассмотрели их вне конкурса.
64 решения, или 16% от общего числа, были отправлены в течение последних суток до окончания срока. Из них 15 были отправлены в течение последнего часа, а самое последнее «проскочило» за 34 секунды до дедлайна.
Тесты на корректность прошли 92 программы, что составляет 39% от числа протестированных. Кроме того, корректными признаны 10 из внеконкурсных решений.
Самое короткое решение уместилось ровно в 666 байт, а самое длинное растянулось на 90274 байт.
Один из участников был дисквалифицирован за попытку обмануть тестовую систему. Забавно, что его результат всё равно уступил честным результатам победителей конкурса. Ещё один участник прислал решение с говорящим названием volkswagen.js
: оно работает медленно, но корректно при малом размере входных данных, и быстро выдаёт фальшивые результаты при большом размере.
Поздравляем победителей:
Читать полностью »
Загрузчик модулей для node js с поддержкой локальных модулей и загрузки модулей по требованию
2016-01-13 в 9:06, admin, рубрики: javascript, node.js, npmЯ — frontend разработчик и в последнее время мне все чаще приходится пользоваться нодой, будь то использование webpack-а для сборки проекта, либо настройка различных gulp тасков. Хоть у меня и нету большого опыта в использование ноды, со временем у меня накопилось три вещи, которые мне хотелось бы улучшить при работе с модулями:
- Избавиться от кучи require-ов в начале каждого файла
- Подгружать модули только тогда, когда они нужны(особенно это актуально для gulp тасков)
- Иметь возможность работать с локальными модулями проекта, как с внешними модулями, то есть вместо, например,
вызова var core = require('../../deep/deep/deep/core/core'), вызывать этот же модуль вот так var core = require('core')
Для решения всех трех задач по отдельности есть уже различные модули и решения, но во-первых, все они имеют, как мне кажется, недостатки, а во-вторых, ни одно из решений не решает все три проблемы вместе.
Читать полностью »
О пересмотре результатов конкурса по программированию на JS
2016-01-12 в 16:00, admin, рубрики: hola, javascript, node.js, nodejs, Алгоритмы, Блог компании Hola, занимательная задача, занимательная задачка, занимательные задачи, Занимательные задачки, извинения, итоги конкурса, ищем таланты, конкурс, конкурсы, конкурсы разработчиков, нужны разработчики, оптимизация, поправки, результаты, соревнование, соревнования, соревнования по программированию, Спортивное программирование, требуются программисты, фильтрация писем, фильтрация почтыСпасибо участникам конкурса по программированию за долготерпение. Я пишу этот пост, чтобы признать и исправить серьёзную ошибку, которую мы допустили при подведении итогов.
Мы получили множество замечаний о методике тестирования решений. Ниже наши ответы на эти замечания.
Тесты на корректность неполны
Спасибо двоим участникам конкурса, приславшим дополнения к нашему набору тестов на корректность. Благодаря этим дополнениям нам удалось выявить несколько решений, выдающих неправильные результаты в редких случаях.
Тесты на производительность дают искажённые результаты из-за особенностей методики тестирования
Разбор решения занявшего второе (пока что) место в конкурсе Hola по программированию почтовых фильтров на JavaScript
2016-01-12 в 11:58, admin, рубрики: deterministic finite automata, DFA, hola, javascript, nfa, node.js, nodejs, non-deterministic finite automata, Алгоритмы, конечный автомат, конкурс, конкурсы, конкурсы разработчиков, оптимизация, соревнование, соревнования, соревнования по программированию, Спортивное программирование, фильтрация писем, фильтрация почтыВ ноябре прошлого (уже) года, Hola объявила конкурс по программированию почтовых фильтров на js, и недавно опубликовала его результаты.
Я разделил второе место с Ильей Макаровым, и сейчас я расскажу…
Как это было
Итоги конкурса по программированию на JS: Почтовые фильтры
2016-01-08 в 14:40, admin, рубрики: hola, javascript, node.js, nodejs, Алгоритмы, Блог компании Hola, занимательная задача, занимательная задачка, занимательные задачи, Занимательные задачки, итоги конкурса, ищем таланты, конкурс, конкурсы, конкурсы разработчиков, нужны разработчики, оптимизация, результаты, соревнование, соревнования, соревнования по программированию, Спортивное программирование, требуются программисты, фильтрация писем, фильтрация почтыСпасибо всем участникам нашего последнего конкурса по программированию!
Мы получили 408 решений от 237 различных участников (в конкурсе участвует только одно, последнее из решений от каждого участника, и мы публикуем именно последние варианты). Кроме того, 7 решений было отправлено нам либо после окончания срока приёма работ, либо сотрудниками Hola, и мы рассмотрели их вне конкурса.
Читать полностью »
Jii 0.8: Миграции, ReactViews, изоморфное приложение и прочие плюшки
2016-01-05 в 7:42, admin, рубрики: framework, io.js, javascript, jii, node.js, open source, ReactJS, yii, yii2, Веб-разработка, крутотень Привет всем жителям и гостям хабра и с новым годом! :)
В этой статье я хочу рассказать о том, с какими фичами Jii вступил в 2016-й год и что его в ждет в новом году.
Итак, начнем по порядку.
Читать полностью »
Потоки vs процессы на примере нативного Node.js аддона для нагрузочного тестирования
2015-12-30 в 14:08, admin, рубрики: c++, multithreading, node.js, posix, параллельное программирование, Тестирование веб-сервисов Чуть меньше года назад я написал заметку о попытке создать инструмент нагрузочного тестирования на Node.js используя встроенные возможности (модули cluster и net). В комментариях справедливо указали на необходимость анализа RPS и сравнении с другими бенчмарками. В результате сравнения я пришел к естественному выводу, что многопроцессовый сервис никогда не сравнится по производительности с многопоточным из-за очень дорогих издержек на обмен данными (позже мы убедимся в этом на примере)
Читать полностью »