Метка «nodejs» - 7

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

Например, модератору (или комодератору, в зависимости от распределения их обязанностей) приходится раз в неделю-другую класть в свою эхоконференцию её правила. Чуть другим (но всё же подобным) примером являются те фидошники, которые взяли на себя поддержку некоторого FAQ и также публикуют его в одной или нескольких тематически соответствующих эхоконференциях. (В эхе Fidonet.History её FAQ содержит своеобразную летопись истории Фидонета, выраженную в вопросах и ответах, в эхе SU.IP.Point — список узлов, набирающих новых пойнтов, в SU.FidoTech — разъяснение ряда технических терминов и алгоритмы нескольких полезных приёмов. В эхоконференциях, посвящённых тому или иному программному продукту, FAQ поясняет его настройку. И так далее.)

Если узел (или пойнт) работает беспрерывно на одном и том же компьютере, то такая публикация автоматизируется простым, бесхитростным способом: публикацию файла вписывают в список задач для демона cron (в UNIX-подобных системах) или его аналога в других системах.

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

Сегодня мы рассмотрим, каким подспорьем может движок Node.js стать в исполнении этой задачи.

Читать полностью »

Иногда разработчики различных веб-проектов сталкиваются с необходимостью обработки больших объемов данных или использованием ресурсозатратного алгоритма. Старые инструменты уже не дают необходимой производительности, приходится арендовать/покупать дополнительные вычислительные мощности, что подталкивает к мысли переписать медленные участки кода на C++ или других быстрых языках.

В этой статье я расскажу о том, как можно попробовать ускорить работу Node.JS (который сам по себе считается довольно быстрым). Речь пойдет о нативных расширениях, написанных с помощью C++.
Читать полностью »

Послезавтра (25 июня) вероятным будет выпуск очередной стабильной версии (0.8.0) движка Node.jsВерсия 0.8 движка Node.js подготавливалася давно, и вот постепенно становится понятно, что выпуск её вероятен послезавтра — 25 июня 2012 года.

На Гитхабе ужé состоялся коммит с упоминанием послезавтрашней даты, в списке ветвей кода появились ветки «v0.8» и «v0.8.0-release», во блоге Node 19 июня опубликовано сообщение о том, что версия 0.7.12 станет последнею в своей ветке 0.7.

Что же это будет означать для программистов на джаваскрипте, использующих движок Node для запуска своих скриптов? Чем обернётся обновление программного обеспéчения?

Исправления тех или иных ошибок в коде никак не повлияют на наше с вами программирование (если только прежде не приходилося специально обходить их), поэтому обратить внимание придётся прежде всего на накопившиеся мелкие изменения в API. К счастью, в вики Node на Гитхабе есть страница «API changes between v0.6 and v0.8», в которой все они аккуратно перечислены. Нетрудно обнаружить, что там их ≈60 штук, считая и нерекомендуемые, и удалённые, и изменённые, и вновь появившиеся возможности.

Читать полностью »

Bomberman Online и хабраэффект — 450 игроков на одной карте. Отчёт и детали игрового движка

Как и обещали в топике-анонсе нашей игры, выкладываем отчёт о хабраэффекте и детали игрового движка.
Читать полностью »

Сегодня у меня две причины пробежаться по клавишам.

Во-первых, после того, как на прошлой неделе я перевёл документацию по jParser (после ознакомления с RReverserовским примером применения jParser при анализе BMP-файлов), мне представляется уместным перейти к напрашивающемуся последующему шагу: развить тему, поделиться с читателями моим собственным примером применения jParser для анализа несколько более сложной структуры данных. (Отчасти это станет ответом на вопрос, который alekciy задал, интересуясь дальнейшими примерами практического использования jParser.)

Node.js на узле Фидонета: читаем джаваскриптом заголовки эхопочты, хранимой в формате JAMВо-вторых, ≈полгода назад (26 ноября 2011 года) ertaquo поинтересовался, зачем мне хочется использовать Node.js в Фидонете. Тогда я сообщил, что мне просто нравится название (помню те времена, когда термин «node» или «нóда», если употреблялся без уточнения, в российском околокомпьютерном мире по умолчанию означал узел Фидонета), но не мог привести никакого наглядного примера работающего кода, а сейчас приведу.

Итак, пример будет двойным. Предлагаю вашему вниманию анализ заголовков писем фидонетовской эхопочты, хранимой в формате JAM. Этот формат популярен в Фидонете со времён далёких и незапамятных (в Википедии говорится, что появление JAM относится к 1993 году). Сразу скажу, что давно предпочитаю JAM другому популярному формату (Squish), потому что этот последний хранит в заголовке у письма идентификаторы не более чем девяти откликов на него, тогда как JAM вместо массива ограниченной длины использует более гибкую структуру данных (связный список), так что позволяет выстроить полное дерево ответов даже в самых оживлённых и разветвлённых обсуждениях.

Читать полностью »

Bomberman Online — HTML5 мультиплеер онлайн игра от хабраюзеров. Тестируем нагрузку!Bombermine Online — результат последних двух недель тестирования и подготовки движка для большого кол-ва игроков онлайн.

Движок написан на Java + Jetty (бекэнд). Фронтэнд — HAProxy + Nginx + Node.js. Клиентсайд — GWT, который транслируется в HTML5/canvas + javascript + websockets. Хостится всё в облаке.

На данный момент рекорд — 50 игроков онлайн. Настроен весь необходимый софт для мониторинга нагрузки. После хабраэффекта обещаем выложить отчёт. Ждём гостей :-)

Читать полностью »

Внутри HTTP сервера, встроенного в Node, обнаружена уязвимостьМэтью Дэйли (Matthew Daley) выяснил, что в коде HTTP-сервера, встроенного в движок Node, есть ошибка или даже просто опечатка (используется «size» вместо «size_»), так что специально сформированным запросом к серверу можно добиться того, что сервер существенно переоценит реальный размер запроса и включит в него содержимое соседних чужих HTTP-запросов (например, частью переданной на сервер переменной станут чьи-нибудь чужие cookies; и если это будет переменная из числа тех, которые тотчас же выводятся на экран, то крякерская атака легко может оказаться успешною).

Всем пользователям Node версий 0.5.x и 0.6.x следует без промедления обновить Node до версии 0.6.17, а обладателям экспериментальных версий из ветки 0.7 следует обновиться до 0.7.8. (Версии 0.4.x не содержат этой ошибки, однако на вашем месте я бы их всё равно обновил, ибо они старьё.)

Об этом опубликовано оповещение во блоге Node.

Читать полностью »

в 5:09, , рубрики: Node, node.js, nodejs, метки: , ,

node getВ движке Node встроенным средством отсылки запросов к отдалённым web-серверам (и обработки полученных откликов) является метод http.request(), однако он оказывается чрезмерно низкоуровневым: если на дальнем конце настроено серверное перенаправление, то этот метод выдаст вам страницу с кодом HTTP 301 (или HTTP 302, или HTTP 303…), а не ту страницу или файл, на который перенаправление указывает.

Преодолеть этот недостаток помогает модуль node-get, разработанный организацией «Development Seed»: он автоматически обрабатывает перенаправления и получает окончательный отклик на отосланный запрос.

Читать полностью »

Это небольшая история страданий, боли, взлетов и падений в попытках ускорить работу RaphaelJS на больших и сложных SVG. Если вы страдаете от подобных проблем, то не стоит ждать в конце этой статьи серебряной пули, но, надеюсь, что про наш путь поиска решения будет интересно прочитать всем.

Читать полностью »

Документация — одна из самых важных составляющих любого проекта, особенно если этот проект с открытым кодом, который будут читать другие люди. Чтобы сделать мир opensource чуточку лучше, я попытался собрать свои знания в области организации модулей nodejs проектов и сделать такой инструмент как Makedoc!. Ремарка для адептов ruby: это почти то же, что и rdoc.info для руби.

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

В кратце шаблон использования такой: идем на makedoc.node-js.ru/[githubusername]/[projectname] и видим готовую документацию по проекту. Либо идем на makedoc.node-js.ru/[githubusername] и получаем список проектов для которых можно сгенерировать документацию.

За деталями реализации прошу под кат.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js