Первые наброски новой online RPG

Названия еще нет... А скрины уже есть))))

Экрана входа в игру

Основной экран

Created Sat Apr 07 2012 03:25:23 GMT+0800 (KRAT) by blacksmith
[Read more...]


libxmljs - с поддержкой CDATA в nodejs

При реализации XMLRPC на Nodejs для ScribeFire, выяснилось что ScribeFire обрабатывает некоторые поля только в блоке CDATA. А в libxmljs поддержка этого блока отсутствует. Пришлось добавить)))) Вот она сила opensource. Также отправил запрос на включение кода в майнстрим.

Скачать патченную версию можно с github-репозитария:

https://github.com/dudochkin-victor/libxmljs

У libxmljs довольно старая документация, так что на странице репозитария есть пример использования.
Примеры использования libxmljs я буду публиковать на сайте gogoo.ru в статьях посвященных реализации XMLRPC и в частности metaWebLog протокола.

Created Mon Mar 26 2012 23:19:04 GMT+0800 (KRAT) by blacksmith
[Read more...]


Собственная разметка в HTML файлах c помощью NodeJS

Как я к этому пришел

На сайте gogoo.ru работает автоматическое определение языка пользователя... Т.е. когда ты заходишь на сайт, то он определяет предпочитаемый тобой язык общения, когда ты регистрируешься на сайте он запоминает в базе данных mysql предпочитаемый тобой язык общения. Мало того, определив что вы предпочитаете русский язык, сайт будет стараться отобразить вам, именно русский контент. Но до какого-то времени, эта функция была блокирована. И вот, на днях я решил проверить как она работает.

Разблокировал отображение контента по языкам, запустил seamonkey, выставил что я предпочитаю английский язык и понял что разделение контента по языкам работает отлично - на сайте ведь только русские статьи.... Я увидел голую страницу..... Долго думал.... ))))

Итак задача: нужно как-то постить статьи для англоговорящего сегмента.

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

Created Fri Mar 23 2012 17:15:23 GMT+0800 (KRAT) by blacksmith
[Read more...]


Обновление и оживление модуля GD для Nodejs

С майнстрима node-gd не собирался начиная с Nodejs v0.5.2. Более ранние версии работали нормально. Это связано с тем что в версии 0.5.2 был убран node_evens.h. В Nodejs v0.6.+ изменился формат передачи аргументов в функцию (думаю даже что это изменение больше связано с v8, чем с nodejs)
Вообщем с начиная с Nodejs v0.5.2 мы попращались с модулем GD. Ну не беда....

После нескольких дней программирования и тестировани Вот он рабочий:

https://github.com/dudochkin-victor/node-gd

В майнстрим запрос тоже ушел. Надеюсь скоро появится рабочая версия в npm.

Благодарности welcome на WMR: R181918100867 ;)

Use it Luke.

PS. Следующий на очереди модуль для патчинга libxmljs))

Created Wed Mar 21 2012 18:50:59 GMT+0800 (KRAT) by blacksmith
[Read more...]


Переход с hashlib на встроенный nodejs-модуль crypto

Давно пора было, но ни как руки не доходили... hashlib уже свое отжила.
Рассмотрим пример с использованием алгоритма sha1.
И так старый код с использованием hashlib:

var hashlib = require('hashlib');
var digest = hashlib.sha1('data');

На crypto будет выглядеть так:

var crypto = require('crypto');
var digest = crypto.createHash('sha1').update(data).digest('hex');


Небольшое замечание по использованию:
hash-объект созданный методом crypto.createHash после вызова метода digest повторно использовать нельзя. Зачем это сделано? Для того, чтобы данные можно было добавлять методом update, ведь вполне естественна ситуация, что на текущий момент времени у на не окажется всей порции данных. Поэтому для новых данных нужно каждый раз генерировать hash-объект.

Created Wed Mar 21 2012 17:05:51 GMT+0800 (KRAT) by blacksmith
[Read more...]