Skip to content

Instantly share code, notes, and snippets.

View dolphin278's full-sized avatar

Boris Egorov dolphin278

View GitHub Profile
@dolphin278
dolphin278 / ecs-dod.md
Last active September 20, 2020 19:04
Entity Component System(ECS) и Data Oriented Design(DOD).

Статьи

Видео

@dolphin278
dolphin278 / index.js
Last active December 27, 2015 08:19
Использование hyperspace и hyperstream для генерации html.
var es = require('event-stream');
var fs = require('fs');
var hyperspace = require('hyperspace');
var hyperstream = require('hyperstream');
var itemTemplate = fs.readFileSync('./views/item.html');
/*
<div class="item">
<div class="title">Заголовок</div>
<div class="description">Текст записи</div>
@dolphin278
dolphin278 / README.md
Last active February 12, 2022 16:30
Pub/sub example for nodejs using mongodb

Uses capped collection, tailable cursors and streams.

What's here?

  • init.js recreates collection capped collection 'queue' on mongodb.
  • writer.js spams queue with new messages
  • worker.js processes all messages saved to queue,
  • onceWorker.js processes only unprocessed messages, so you can spawn several of them and each of your messages will be processed by only one worker.

Steps

@dolphin278
dolphin278 / TreehouseShowLinks.md
Last active December 15, 2015 19:59
Пришлось перепахать архив Treehouse Show в поисках одной ссылки. В результате сгреб всякого интересного и скопипастил сюда. Многие ссылки не новы, но полезны.
@dolphin278
dolphin278 / README.md
Last active February 12, 2016 19:04
Пример использования собственных языков при написании nodejs-модулей.

Система модулей в nodejs позволяет подключать не только .js и .json - файлы, но и любые другие, если вы зададите для них функцию трансляции.

Зачем это нужно? Можно напихать в эти файлы ваших собственных DSL, которые будут при включении с помощью require() на лету транслироваться в JavaScript. Про то, зачем использовать DSL написано многабукав, и повторять все это тут я не буду.

Итак, допустим у нас есть вот такого содержания файлик (converter.rule):

USD 30
EUR 40

И мы хотим, чтобы при включении его в наш код, нам становились доступны функции для конвертации валют: