У меня сложилось впечатление, что в обществе все же есть предубеждение против использования глобальных переменных в служебных целях. В связи с этим, хочу дать некоторые разъяснения с примерами, которые снимут всякие сомнения и будут полезны всем, кто жаждет модульности и гибкости в JavaScript разработке. Я не могу проследить источники всех идей, приведенных ниже, но я не претендую на их авторство, а лишь на творческое обобщение. Так же я отказываюсь от претензий на один универсальных паттерн определения модйлей для всех случаев жизни, надеюсь, всем ясно, что такого не может быть никогда. Все это существенно отличается от подходов RequireJS, CommonJS и того, как модули оформляются в node.js через module.exports, однако, каждый из этих паттернов имеет свое место, если подходить к задаче без фанатизма и предубеждений.
Читать полностью »
Метка «nodejs» - 4
Паттерны JavaScript модулей в Impress для node.js и браузеров
2013-06-13 в 14:04, admin, рубрики: amd, Asynchronous Module Definition, javascript, node.js, nodejs, require, requirejs, метки: amd, Asynchronous Module Definition, javascript, node.js, nodejs, pattern, require, requirejsВизуализация на сервере: NodeJS + D3.js + PhantomJS
2013-05-25 в 17:30, admin, рубрики: charts, javascript, node.js, nodejs, phantomjs, метки: charts, javascript, nodejs, phantomjs Возникла у нас на проекте прихоть — рисовать на стороне сервера графики, да не простые, а максимально похожие на уже имеющиеся графики на клиентской стороне.
Да-да, именно так, на клиенте уже были всевозможные красивости, реализованные на d3.js.
Для исследования возможностей был применен комплексный метод анализа «google-driven investigation» и в первой итерации выбор пал на ноду + фантом.
За подробностями прошу в глубины поста.
Новшества node-webkit версии 0.5.1
2013-04-29 в 11:26, admin, рубрики: Blink, chromium, GUI, intel, node-webkit, node.js, nodejs, webkit, кроссплатформенная разработка, печать документов, скриншот, метки: Blink, chromium, gui, intel, node-webkit, node.js, nodejs, webkit, кроссплатформенная разработка, печать документов, скриншотПозавчера (27 апреля) из праведных недр интеловского Центра технологий с открытым исходным кодом (а это тот самый Центр, который hshhhhh обозревал неделю назад во блогозаписи «Печеньки для пингвина») вышла в свет новая версия движка node-webkit — могучего объединения Node и WebKit (точнее даже не просто WebKit, а Chromium — и в дальнейшем, вероятно, Blink), обеспечивающего быстрое и бесхитростное создание GUI-приложений методами веборазработки (код на JavaScript с употреблением API от Node.js, а интерфейс на HTML да на CSS) под операционные системы Windows, Mac OS X и Linux.
Новая версия имеет номер 0.5.1; на её основе нетрудно составить и запустить, например, вот такое окно:
Одну из предыдущих версий node-webkit (0.4.1) мне довелось обозреть в начале февраля, а теперь на дворе конец апреля. Настала пора рассказать обо всех тех изменениях, которыми сопровождался выход версии 0.4.2, за нею 0.5.0, и затем 0.5.1 наконец. Рассказываю:
NPM для front-end разработки
2013-04-22 в 15:15, admin, рубрики: bdd, html, javascript, nodejs, npm, tdd, Веб-разработка, метки: bdd, html, javascript, nodejs, npm, tdd, фронтенд Недавно я задался вопросом поиска инструментария для разработки мобильных приложений на html/css. Из требований были: доступность, легковесность, простота настройки. Выбор пал на встроенный Node менеджер NPM. NPM содержит
инструментарий для базовых тасков типа install и запуска пользовательских скриптов. Также NPM не такой громоздкий, как Grunt и не требует адаптации модулей под себя, т.к. запускает модули с командной строки.
Управление front-end проектом с помощью NPM
2013-04-22 в 15:15, admin, рубрики: bdd, html, javascript, nodejs, npm, tdd, Веб-разработка, метки: bdd, html, javascript, nodejs, npm, tdd, фронтенд Недавно я задался вопросом поиска инструментария для разработки мобильных приложений на html/css. Из требований были: доступность, легковесность, простота настройки. Выбор пал на встроенный Node менеджер NPM. NPM содержит
инструментарий для базовых тасков типа install и запуска пользовательских скриптов. Также NPM не такой громоздкий, как Grunt и не требует адаптации модулей под себя, т.к. запускает модули с командной строки.
Делаем жизнь проще, GruntJS (для новичков)
2013-04-21 в 5:58, admin, рубрики: gruntjs, javascript, node.js, nodejs, npm, метки: gruntjs, javascript, nodejs, npmЧто такое GruntJS
Большинство JS разработчиков уже используют какие-то инструменты компоновки для своих разработок, даже если не знают или не используют этот термин. Они объединяют файлы при разработке, уменьшают код JavaScript-а, чтобы ускорить загрузку страниц и конвертировать Sass, или уменьшают количество файлов в CSS для браузера, и много чего другого. Чаще всего это разные инструменты, что есть не очень удобно.
Grunt помогает управлять всеми этими шагами в одном месте и организовать сторонние компоненты.
Читать полностью »
Как слушать радио с использованием powershell и node.js
2013-04-05 в 21:06, admin, рубрики: mp3, nodejs, powershell, proxy, ненормальное программирование, метки: mp3, nodejs, powershell, proxyЧасть первая: powershell и mci.
Используемая операционная система — Windows 7.
Первый вопрос, который возникает: как воспроизвести mp3 в powershell?
Ранее на хабре были упоминания подобного вопроса:
Как воспроизвести mp3 из командной строки в Windows 7?
Как же все-таки пользоваться PowerShell?
Ввиду отсутствия удовлетворительного ответа, было принято решение использовать Media Control Interface или mci.
Плюсы следующие: встроенность в систему, достаточная низкоуровневость, есть возможность посылать команды в виде строки.
Многим mci известен по ответу на вопрос: «как программно отрыть устройство чтения-записи компакт дисков?», хотя предоставляет много других возможностей. Ниже приведены некоторые сценарии использования.
Извлечение CD-ROM:
mci 'set cdaudio door open'
Воспроизведение локального mp3-файла:
mci 'play C:\temp\Kalimba.mp3'
mci 'status C:\temp\Kalimba.mp3 mode'
Запись в wav-файл:
mci 'open new type waveaudio alias RecWavFile'
mci 'set RecWavFile bitspersample 16 samplespersec 44100 channels 2'
mci 'record RecWavFile'
mci 'stop RecWavFile'
mci 'save RecWavFile C:\temp\RecWavFile.wav'
mci 'close RecWavFile'
mci 'play C:\temp\RecWavFile.wav wait'
Простой вариант воспроизведения потока из сети:
mci 'play http://some-radio-server.com:80/some-radio-channel.mp3'
Vow: самые быстрые промисы
2013-03-26 в 15:16, admin, рубрики: javascript, node.js, nodejs, метки: javascript, nodejsХочу предоставить вашему вниманию библиотеку Vow, которую написал мой коллега Дмитрий Филатов dfilatov.
Библиотека реализует Promises/A+, работает очень быстро и требует малого объема памяти. По тестам производительности сильно опережает Q, но при этом сохраняет асинхронную манеру работы.
Работа с Vow выглядит так же просто, как работа с Q. Из недостатков (по сравнению с Q) можно лишь выделить отсутствие progress.
Пример кода с использованием Vow:
function readFile(filename, encoding) {
var promise = Vow.promise();
fs.readFile(filename, encoding, function(err, data) {
if (err) return promise.reject(err);
promise.fulfill(data);
});
return promise;
}
Vow.all([readFile('test1.txt', 'utf8'), readFile('test2.txt', 'utf8')]).then(function(results) {
console.log(results.join('n'));
});
Создание видео трансляции на JS
2013-03-12 в 15:37, admin, рубрики: JS, nodejs, php, Веб-разработка, Песочница, метки: nodejs, PHP Доброго времени суток, дорогой хабрачитатель.
Сегодня я расскажу, как можно организовать прямую трансляцию изображения с веб-камеры с помощью HTML5/JS и NodeJS, а так же PHP.
В статье наблюдается довольно большое количество кода. Так же эта статья ориентирована скорей на начинающих веб разработчиков, чем на профессионалов.
Читать полностью »
NodeSmarty новый шаблонизатор для node.js (3.beta)
2013-02-12 в 12:45, admin, рубрики: html, javascript, node.js, nodejs, шаблонизатор, метки: html, javascript, nodejs, шаблонизаторНаверно каждый веб-разработчик слышал о шаблонизаторе Smarty (php). Но так как я частенько увлекаюсь JavaScript'ом, то решено было найти подобный шаблонизатор для этого языка, но серверного (node.js, ага). Первые ссылки в поисковике выдают такие шаблонизаторы, как: ECT, JUST, Mu. Все они, естественно, не подходили для меня, т.к. слишком далеко были от синтаксиса Smarty.
Чтож, раз хочется, а решений нет — то сделай. Выискивая время на работе и иногда получая по «шапке», родился проект NodeSmarty, который, в будущем, будет частично копировать синтаксис Smarty.