Обновить
18.76

Node.JS *

Среда для запуска JavaScript-приложений

Сначала показывать
Порог рейтинга
Уровень сложности

Пишем код для Node.js в стиле «машина состояний»

Время на прочтение3 мин
Количество просмотров13K
Вы пишите сервер на Node.js, который принимает входящие TCP-соединения и ведёт с клиентами нетривиальный диалог по нестандартному протоколу? Возможно вам будет интересен пример, который я развиваю в своих проектах. Что я имею ввиду под нетривиальным диалогом?

Давайте сравним.
Читать дальше →

Имитация рации с помощью Freeswitch и немного про voip-конференции

Время на прочтение6 мин
Количество просмотров7.6K
Вот даже такое бывает, что надо заставить такого монстра как Freeswitch работать по принципу обычной рации.
Один говорит, все слушают.

А поможет нам в этом NodeJs и npm модуль modesl для взаимодействия с Freeswitch.



Подробности

Тестируем облачную платформу IBM на примере чата

Время на прочтение3 мин
Количество просмотров9.6K

Недавно мне довелось познакомиться с техническим специалистом IBM, который рассказал мне о возможностях сравнительно новой платформы IBM Bluemix, которая должна облегчить жизнь разработчика. На примере простенького чата я решил проверить это утверждение.



Предыстория


Ранее мой опыт работы с платформой был близок к нулю, поэтому чтобы разобраться в огромном количестве сервисов платформы, я снова обратился к своему знакомому из IBM. Мне казалось очевидным использовать сервис Message Hub, но в итоге оказалось, что для решения нашей задачи лучше подойдет MQ Light. Основные причины:
  • тариф в бесплатные 10 тысяч сообщений в месяц
  • хорошая масштабируемость
  • простой в использовании API

Читать дальше →

Создание десктопного приложения с помощью Electron и веб-технологий

Время на прочтение4 мин
Количество просмотров68K
Знакомство с Electron

Официальная страница проекта Electron.

Изначально Electron был разработан для редактора Atom компанией GitHub.

Electron (ранее известный как Atom Shell) позволяет нам создавать кроссплатформенные приложения, используя HTML, CSS и JavaScript. Что является большим плюсом для команд, которые занимаются веб-разработкой. Отпадает надобность искать новых разработчиков для создания десктопных версий уже существующих проектов.

Electron являет собой прекомпилированый бинарник и библиотеки, нужные для работы приложения и доступа к native API операционной системы. Он включает в себя Node.js, направленный на работу в десктопной среде, и минимальную версию браузера Chromium, контролируемого JavaScript.
Читать дальше →

AllcountJS: Делаем систему для места продажи (POS)

Время на прочтение12 мин
Количество просмотров9K
Продолжаем знакомство с AllcountJS — фреймворком для быстрой разработки приложений на платформе NodeJS. В этой статье мы рассмотрим пример реализации кастомного интерфейса с использованием AngualrJS и jade, а также некоторые возможности конфигурирования, о которых мы ещё не упоминали.

POS (Point Of Sale) — в прямом смысле точка (место) продажи, но обычно этот термин обозначает рабочее место кассира вместе с торговым оборудованием. Такие терминалы находятся почти в каждом месте где нам что-нибудь продают. И сейчас мы создадим простое приложение, которое позволит вести список товаров с остатками и создавать записи о продажах.

POS main UI

Как обычно, на результат можно посмотреть в демо-галерее.
Читать дальше →

PostCSS быстрый старт

Время на прочтение3 мин
Количество просмотров29K
В этом руководстве вы узнаете, как можно использовать PostCSS вместе с GULP, позволяя вам самим определять, какие плагины вы хотите использовать и, следовательно, включать в вашу экосистему.

Требования


Мы будем работать как уже было сказано выше с GULP, предполагается что у вас уже установлены:

  • Node.js
  • NPM
  • Git
Читать дальше →

Использование websocket в приложениях Extjs

Время на прочтение9 мин
Количество просмотров15K
Websocket, наверное, самое серьезное и полезное расширение протокола HTTP с момента его появления в начале девяностых. Использование websockets для обмена данными с сервером намного более выгодно, чем привычный AJAX. Экономия трафика в стандартных приложениях существенна, особенно, при активном обмене клиента и сервера небольшими сообщениями. Также, существенно сокращается время отклика при запросах данных. Основным препятствием на пути широкого распространения этой технологии долгое время было то, что многие прокси-сервера криво поддерживали расширенную версию http-протокола. Что приводило, в худшем случае, к проблемам безопасности (пруф). За последние пару лет ситуация с поддержкой вебсокетов стала выправляться и сейчас, на мой взгляд, настало их время.

В этой статье описаны рецепты использования вебсокетов в стандартных компонентах Extjs (gridpanel, treepanel, combobox). И, также, в качестве замены Ext.Ajax.
Читать дальше →

Подъём Node.js – и почему он будет лидировать в разработке корпоративного ПО

Время на прочтение5 мин
Количество просмотров12K
Появившийся несколько лет назад Node.js вызвал небывалый ажиотаж в среде разработчиков. Сегодня он продолжает развиваться и оставаться одним из самых востребованных на рынке.

В связи с этим, а также недавним релизом Node.js 5.1.0. предлагаем вам наш перевод статьи о преимуществах Node и причинах его стремительного развития.
Читать дальше →

Традиционный безалкогольный хакатон в Сибириксе: пишем бесплатный HelpDesk

Время на прочтение3 мин
Количество просмотров23K
Традиционно на хакатон мы берем небольшой проект. Который имел бы практическую пользу. Вот так, с наскока, мы уже сделали:
  • Хуижн — сервис для демонстрации заказчикам макетов с хранилищем в Google Docs. Это было прикольно.
  • Planing Poker — старый, но все еще довольно посещаемый проект.
  • KeyRights — корпоративный парольник. Пожалуй, единственный проект с хакатона, который решили сделать платным.



В этот раз мы решили покуситься на святое — написать HelpDesk. Абсолютно бесплатный, опенсорсный, безумно простой, ставится на раз-два. Рисуем дизайн, верстаем. Все это за неделю до. Собираемся в воскресенье в 10 утра в офисе. Закупаемся энергетиками, и понеслась!
Читать дальше →

Node.js на службе разработчика электроники: создаём библиотеки микросхем

Время на прочтение8 мин
Количество просмотров13K
Всем привет! Сегодня мы поговорим о схемотехнике. А чтобы было интереснее, приплетем сюда Node.js. Внимательный читатель тут же спросит, какая же между ними связь? А такая, что мы попытаемся, используя современные технологии, немного облегчить жизнь тем, кто дружит с паяльником, любит программировать всякие там Arduino/BeagleBoard ну и вообще увлекается электроникой чуть больше, чем на потребительском уровне. Если кратко, то мы попытаемся немного автоматизировать процесс создания библиотеки электронных элементов.

Если стало интересно, то добро пожаловать под кат.
Читать дальше →

HighLoad++ 2015 глазами иностранного докладчика

Время на прочтение3 мин
Количество просмотров8.1K
Всем привет!

Когда-то давно, еще года 4 назад, сидя в Бишкеке, я смотрел видео с конференции и думал, какие же докладчики крутые спецы и даже не думал, что сам попаду на эту конференцию, как докладчик. В этой статье я расскажу вам о том. как я подавал заявку, как готовился и как проходила сама конференция.

Заявку подавал я 19 января этого года, а 5го октября ее одобрили. Радости, конечно же было много и пришла пора готовиться к докладу.
Читать дальше →

Начинаем использовать Rust

Время на прочтение6 мин
Количество просмотров22K


Всем привет!

С недавнего времени я начал изучать прекрасный язык Rust. Практическое применение этого языка для себя я вижу во встраивании в критические по производительности места кода (по крайней мере, до момента «дозревания» и обрастания библиотеками и фреймворками).

Для закрепления теоретических навыков я решил сделать небольшой проект, суть которого состоит в следующем: динамическая библиотека на Rust реализует упрощенный вариант Алгоритма шинглов и посредством FFI позволяет подключать её (библиотеку). Всем кому интересно прошу под кат.
Читать дальше →

Минификация проекта, созданного в Blocs 1.5.2, с помощью Gulp

Время на прочтение5 мин
Количество просмотров12K


Не так давно узнал о новом для себя инструменте построения сайтов на Bootstrap — Blocs. На хабре не нашел о нем информацию, поэтому позволю себе немного маркетинговых заметок, так как этот инструмент облегчил мне работу.

Blocs ориентирован на простоту, этот инструмент приносит свежий взгляд к созданию современных, высококачественных веб-сайтов, без необходимости понимать или писать код.

Blocs позиционирует себя как конструктор, который позволяет генерировать код, чистота и качество которого не уступает работе профессионального верстальщика.

Blocs работает как десктопное приложение под операционной системой Mac OS X, и не ограничивает вас количеством создаваемых сайтов, как это делают онлайн-конструкторы.

Blocs на лету делает верстку адаптивной (не всегда, правда, качественно, но так как код читабельный и чистый, легко поправить), также он поддерживает Retina.

Больше о Blocs на официальном сайте. Доступен триал 5 дней.
Программа простая, поэтому этого триала достаточно.
Читать дальше →

Ближайшие события

Повышаем отказоустойчивость системы на nodejs

Время на прочтение5 мин
Количество просмотров38K
Отказоустойчивость системы на nodejs
3 года назад я поверил в будущее nodejs и начал кампанию по имплементации этого языка в самые “проблемные” сервисы нашего проекта. У нас все получалось — нагрузка падала, стабильность повышалась. Но все же были грабли, о которых захотелось рассказать.

Это не исчерпывающее руководство к действию, просто я делюсь своим опытом, если вы профи в nodejs можете дописать в коментах свои рекомендации, на которые я с удовольствием сошлюсь в статье.
Читать дальше →

Node.js в бою (создание кластера)

Время на прочтение9 мин
Количество просмотров72K
Когда вы используете приложения на node.js в продакшене, вам приходится задумываться о стабильности, производительности, безопасности и удобстве поддержки. Данная статья описывает мои мысли о лучших практиках использования node.js в бою.

К окончанию данного руководства вы получите систему из 3 серверов: балансировщик (lb) и 2 сервера приложений (app1 и app2). Балансировщик будет следить за доступностью серверов и распределять между ними траффик. Серверы приложений будут использовать комбинацию systemd и кластеризации node.js для балансировки траффика между несколькими процессами ноды на сервере. Вы сможете выкатывать код с помощью одной команды со своей машины, и при этом не будет перерывов в обслуживании или необработанных запросов.
Все это можно представить в виде схемы:


Читать дальше →

Janusjs: концепт системы, где клиент и сервер — сиамские близнецы

Время на прочтение14 мин
Количество просмотров6K
image По роду своей деятельности мне часто приходится заниматься разработкой разнообразных crm-систем. Клиентскую часть уже очень давно собираю на Extjs (начинал еще со 2-й версии). На сервере пару лет назад прочно обосновался Nodejs, заменив привычный PHP.

В прошлом году появилась идея унифицированной платформы для клиентской и серверной частей веб-приложения на базе Extjs. После года проб и ошибок, пазл более-менее сложился. В этой статье я хочу поделиться концептом фрэймворка, код которого выглядит одинаково на клиентской и серверной стороне.
Читать дальше →

Gulp: как я проект для production собирал, livereload запускал и перехват ошибок делал

Время на прочтение5 мин
Количество просмотров28K
image


Хочу поделиться историей моего знакомства с gulp и как я решал некоторые проблемы при разработке. Материал ориентирован на тех, кто знаком с nodejs и только начинает знакомиться с gulp, а также на тех, кто ищет решение схожей проблемы. Как следует из названия, статья состоит из трех глав.
Читать дальше →

Реализация сортировки в V8 от Google

Время на прочтение6 мин
Количество просмотров39K
image
Привет, Хабр.

Мир javascript развивается с невероятной скоростью: новые стандарты языка, новые фреймворки, и в браузере, и на сервере и в десктопных приложениях и так далее… Но иногда хочется вместо изучения новой супер-фичи погрузиться в какую-то более базовую тему. И погрузиться глубоко, до самых исходников.

И в этот момент под моим пристальным взглядом оказалась незаметная строчка «native code», которая так или иначе появляется перед глазами любого JS разработчика в консоли Chrome или Node.js:

[].sort.toString();
"function sort() { [native code] }"

Итак, кому интересно, какая реализация сортировки скрывается в V8 за надписью [native code] — добро пожаловать под кат.
Читать дальше →

Плагин для gulp — собираем файлы по кусочкам

Время на прочтение2 мин
Количество просмотров25K
Недавно встала задача сверстать сайт не просто быстро, а очень быстро.

Поэтому было принято решение развернуть gulp-проект (до сегодняшнего дня я еще никогда не прибегал к его помощи) и сосредоточиться непосредственно на кодинге. К сожалению, этого оказалось недостаточно.

В процессе верстки стало понятно, что огромные полотна html- и js-кода с каждой строчкой все больше и больше замедляют процесс верстки. Если честно, данная проблема возникала и раньше, а сегодня встала особенно остро.

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

Порывшись в интернете, нашел плагин gulp-rigger. Получаса хватило для того, чтоб понять, что это совсем не то, что нужно:
Читать дальше →

AllcountJS: Делаем простую CRM с веб-интерфейсом и REST API за 15 минут

Время на прочтение5 мин
Количество просмотров30K
Допустим моя компания кому-то звонит и что-то продаёт и мне нужна простая CRM, которая позволит вести справочник контактов и наглядно отслеживать их состояние в плане продажи.

Сейчас мы с вами сделаем такую систему с нуля за считанные минуты. Для этого мы будем использовать фрэймворк Allcountjs.

Самые нетерпеливые могут сразу же посмотреть на результат.


Читать дальше →

Вклад авторов