Рубрика «Node.js на узле Фидонета»

Отказ от jParser (в пользу работы напрямую с буферами Node.js) ускоряет скрипт на порядокПерелистнём несколько страниц недавнего прошлого.

16 мая 2012 года RReverser во блогозаписи «Javascript BMP Parser» рассказал об употреблении модуля jParser для анализа двоичных данных, на движке Node.js совершаемого.

На следующий же день (17 мая 2012 года) во блогозаписи «jParser: анализ двоичных файлов работает просто» я перевёл документацию по jParser, а чуть позже (22 мая 2012 года во блогозаписи «Node.js на узле Фидонета: читаем джаваскриптом заголовки эхопочты, хранимой в формате JAM») поделился собственным опытом употребления этого модуля.

Прошло ≈1⅓ года…

12 сентября нынешнего (2013) года во блогозаписи «Недоволен скоростью джаваскриптов? — Подожди год-полтора, и это пройдёт!» я выразил неудовольствие от скорости работы модуля, прежде мною сочинённого, и указал на один только повод для оптимизма: поступательное развитие Node.js от версии 0.6 до версии 0.10 привело к росту скорости моего кода в три раза.

А сегодня события совершили полный круг — я напрочь отказался от употребления jParser. И достигнутый результат (как неприятная, так и радостная сторона его) оказался заслуживающим внимания.

Позвольте же поделиться с вами как впечатлениями, так и исходниками.

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

Недоволен скоростью джаваскриптов? — Подожди год полтора, и это пройдёт!Напоминаю (потому что это наверняка подзабылось), что 22 мая 2012 года я экспериментировал с чтением заголовков фидонетовской эхопочты (хранимой в формате JAM) при помощи собственного модуля, сочинённого для Node.js (на основе подвернувшегося движка jParser, документацию по которому перевёл чуть раньше).

Тогда, прогоняя тестовое чтение на одноядерном Pentium IV (2,2 ГГц), я остался недовольным скоростью: требовалось три-четыре секунды на то, чтобы считать 8222 заголовков из архива всего одной эхоконференции, ведущегося с марта 2007 года.

На нынешней неделе у меня снова дошли руки до исходного кода того модуля; и я начал с того, что перенёс прежний тест на движок Mocha и передал тестирование на сервер Travis CI, указав в файле .travis.yml такие настройки, которые обеспечивали бы тестирование на трёх последовательных версиях движка Node.js — на 0.6, на 0.8 и на 0.10.

Оказалось, что разница в скорости видна невооружённым глазом:

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

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

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

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

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

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

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


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