Обновить
32K+

Node.JS *

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

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

Лёгкий деплой Meteor-приложения на собственный сервер

Время на прочтение2 мин
Охват и читатели14K
Вы можете делать всё, что вам нужно, с помощью Meteor, и вы можете делать это легко. Такой подход вдохновил разработчиков на добавление команды meteor deploy, которая должна была волшебным образом закрыть все потребности в развёртывании приложений. Но не закрыла.

meteor deploy работает, только если вы используете облачное решение Galaxy (от 0.035 $ в час) или бесплатный хостинг на Meteor.com (который закрывается уже 25 марта).

Запустить приложение на своём сервере можно: нужно собрать его под выбранную платформу, отправить на сервер и запустить как обыкновенное Node.js-приложение. Правда, вместо запуска посыпятся сообщения об ошибках. Чтобы всё прошло хорошо, важно использовать правильную версию Node.js. Вот гарантированно работоспособная инструкция.
Читать дальше →

Собираем грабли Electron.js или десктопные JS-приложения на практике

Время на прочтение5 мин
Охват и читатели83K
image

Electron — система позволяющая создавать кроссплатформенные приложения используя одни только веб-технологии, такие как HTML, CSS и конечно, JS.

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

Агрегат для node.js

Время на прочтение8 мин
Охват и читатели11K
GitHub и NPM библиотеки.


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

Некоторое время назад я задумался, почему же в node.js работа с реляционными БД, такими как *SQL, и некоторыми noSQL типа Mongo, сложна, и сделал альтернативное решение, заточенное под скорость работы программиста (в сравнении с классическими решениями, заточенных под скорость работы с БД) и прямолинейность и компактность API для минимального порога вхождения. Первым источником вдохновления стал доклад "минимальная поверхность API", вторым — знаменитая цитата Дональда Крута:

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

Kibana-мать или Зачем вам вообще нужны логи?

Время на прочтение9 мин
Охват и читатели274K
Вы можете сказать, что “иногда бывает нужно...” Но на самом деле, вы хотите всегда видеть, что у вас в логах, через графический интерфейс. Это позволяет:

  • Облегчить жизнь разработчикам и сисадминам, время которых просто жалко и дорого тратить на написание grep-конвейеров и парсеров под каждый отдельный случай.
  • Предоставить доступ к информации, содержащейся в логах, умеренно-продвинутым пользователям — менеджерам и техподдержке.
  • И видеть динамику и тенденции появления залогированых событий (например, ошибок).

Так что сегодня вновь поговорим о стэке ELK (Elasticsearch+Logstash+Kibana).
Но на этот раз — в условиях json-логов!

Такой use case обещает наполнить вашу жизнь совершенно новыми красками и заставит испытать полную гамму чувств.


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

Примеры реализации Pub-Sub: Azure Topics, EventHub, ZeroMQ, microServiceBus, etc

Время на прочтение11 мин
Охват и читатели23K
Основная идея Pub-Sub довольно простая: "publish–subscribe is a messaging pattern where senders of messages, called publishers, do not program the messages to be sent directly to specific receivers, called subscribers, but instead characterize published messages into classes without knowledge of which subscribers, if any, there may be. Similarly, subscribers express interest in one or more classes and only receive messages that are of interest, without knowledge of which publishers, if any, there are." В свободном переводе это может звучать так: "Издатель-подписчик (англ. publisher-subscriber или англ. pub/sub) — поведенческий шаблон проектирования передачи сообщений, в котором отправители сообщений, именуемые издателями (англ. publishers), напрямую не привязаны программным кодом отправки сообщений к подписчикам (англ. subscribers). Вместо этого сообщения делятся на классы и не содержат сведений о своих подписчиках, если таковые есть. Аналогичным образом подписчики имеют дело с одним или несколькими классами сообщений, абстрагируясь от конкретных издателей."
Читать дальше →

Node.js. Паттерны проектирования и разработки

Время на прочтение6 мин
Охват и читатели52K
Здравствуйте, уважаемые читатели.

Нас заинтересовала книга "Node.js Design Patterns", собравшая за год существования очень положительные отзывы, небанальная и содержательная.



Учитывая, что на российском рынке книги по Node.js можно буквально пересчитать по пальцам, предлагаем ознакомиться со статьей автора этой книги. В ней господин Кассиаро делает очень информативный экскурс в свою работу, а также объясняет тонкости самого феномена «паттерн» на материале Node.js.

Поучаствуйте, пожалуйста, в опросе.

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

Тонкости Javascript/Node.js. Увеличиваем производительность в десятки раз

Время на прочтение3 мин
Охват и читатели44K

Вступление


Появилась необходимость обмениваться сообщениями между сервером и клиентом в бинарном виде, но в формате JSON в конечном итоге. Начал я гуглить, какие существуют библиотеки упаковки в бинарный вид. Пересмотрел немало: MesssagePack, Bson, protobuf, capnproto.org и другие. Но эти все библиотеки позволяют паковать и распаковывать готовые бинарные пакеты. Не очень копался, возможно ли делать парсер входящего трафика по кускам. Но суть не в этом. С такой задачей никогда не сталкивался и решил поиграться с нодой и сделать свой. Куда же без костылей и велосипедов? И вот с какими особенностями Node.js я столкнулся…
Читать дальше →

Рип сетевых словарей при помощи Node.js, ч. 2: динамические страницы; подключение NW.js

Время на прочтение16 мин
Охват и читатели8.5K
В предыдущей части были описаны базовые операции и сопутствующие задачи при копировании сетевых словарей при помощи Node.js. В этой части описывается использование важного дополнительного инструмента для конвертирования веб-источников особого уровня сложности.

I. Зачем нам NW.js?


1. Чем сложнее структура веб-страниц словаря, тем больше оснований опереться на весь спектр возможностей, предоставляемый отточенным браузерным движком. JSDOM — довольно развитая библиотека, но даже она не сравнится с полным набором средств из Chromium.

2. Люди, занимающиеся созданием и конвертированием цифровых словарей, — в значительной мере гуманитарии, которых волей судьбы занесло в сферу IT. Иногда им комфортнее работать с GUI, чем с интерфейсом командной строки, особенно если они не пишут утилиты сами, а пользуются готовыми разработками коллег. NW.js предоставляет простые способы создания GUI к тривиальным приложениям для анализа, обработки и конвертирования веб-страниц.

Как пример для краткого описания этого инструмента я выбрал сайт www.wordspy.com.
Читать дальше →

Amelisa. Оффлайн и реалтайм движок для React и Mongo

Время на прочтение6 мин
Охват и читатели20K

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




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

Получаем данные по websocket используя swift и заполняем UITableView (сервер node.js)

Время на прочтение2 мин
Охват и читатели25K
Не нашел ни одного актуального гайда по работе с websocket в Xcode, вот мой опыт, надеюсь какому-то новичку поможет, и он не потратит столько времени в поисках как я.

Для подключения по websocket мы будем использовать SocketIOClientSwift

Скачать можно тут.

Установка там тоже в принципе описывается, но для тех кто совсем в танке расскажу, что есть простой способ, просто добавьте файлы из папки source в свой проект.

В нашем примере мы будем получать тикеты из системы технической поддержки которая работает на node.js
Читать дальше →

Neon: Node + Rust

Время на прочтение5 мин
Охват и читатели10K
Предлагаю вашему вниманию перевод статьи "Neon: Node + Rust".

Javascript программистам, которых заинтриговала rust-овская тема бесстрашного программирования (сделать системное [низкоуровневое] программирование безопасным и прикольным), но при этом ждущих вдохновений или волшебных пендалей — их есть у меня! Я тут поработал немного над Neon — набором API и тулзов, которые делают реально легким процесс написания нативных расширений под Node на Rust.

TL;DR:


  • Neon — это API для создания быстрых, надежных нативных расширений Node на Rust
  • Neon позволяет использовать параллелизм Rust-а с гарантированной потокобезопасностью
  • Neon-cli позволяет легко и непринужденно создавать Neon проект и дает легкий старт… и наконец...
  • проекту требуется помощь!

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

Понимание сборки мусора и отлов утечек памяти в Node.js

Время на прочтение7 мин
Охват и читатели36K
Плохие отзывы в прессе о Node.js часто относятся к проблемам с производительностью. Это не значит, что с Node.js больше проблем, чем с другими технологиями. Просто пользователь должен иметь в виду некоторые особенности её работы. Хотя у технологии пологая кривая обучения, обеспечивающие её работу механизмы довольно сложные. Необходимо понять их, чтобы предотвратить появление ошибок производительности. И если что-то пойдет не так, необходимо знать, как быстро привести всё в порядок. В этой статье Даниэль Хан рассказывает о том, как Node.js управляет памятью и как отследить связанные с памятью проблемы.


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

Генераторы в ES6 и асинхронный код по-новому

Время на прочтение4 мин
Охват и читатели32K
Когда мы начинаем разбираться с ES6, генераторы находятся чуть ли не в конце списка нововведений, на которые мы обращаем внимание. Зачастую мы просто воспринимаем генераторы как простой способ создания кастомных итераторов, но на самом деле они могут предоставить нам намного более интересные возможности и скорее всего являются одним из самых интересных нововведений в ES6.
Читать дальше →

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

Ryo CDR: еще один asterisk CDR viewer

Время на прочтение3 мин
Охват и читатели19K
Для астериска, наверное, только ленивый не писал cdr viewer. Таких решений полно: asterisk cdr viewer, agcdr,  asterisk cdr viewer mod (статья на Хабре), cdr-stats и еще много других, которых я не знаю.

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

Недолго поискав по гитхабу, я наткнулся на webcdr. Немного обработал его напильником: убрал лишнее, добавил http basic авторизацию и получил необходимый вариант cdr viewer'а. C привычным тетушке веб-интерфейсом в стиле Twitter Bootstrap. Тетушка довольна.

image

Далее немного деталей.

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

Экспорт, импорт в Node.JS

Время на прочтение2 мин
Охват и читатели41K
Вроде, все просто и ясно:

var module = require("./some_module.js");

module.f(); // запуск экспортируемой функции модуля
console.log(module.obj); // печать экспортируемого объекта модуля
module(); // запуск самого модуля

Что бы экспортировать что-то в самом модуле нужно прописать:

exports.f = function() { return 123; };
exports.obj = { name: "Foobar", age: 33 };

// или даже так, что вместе с предыдущими строчками
// в одном модуле не сработает!
module.exports = function() { return "I have not a name"; }

Почему не всегда работает?

Ответ на этот вопрос лежит в понимании работы функции require().
Читать дальше →

Chakra официально принят Node.js

Время на прочтение3 мин
Охват и читатели26K
Как уже сообщалось ранее, Microsoft сделал пулл реквест с добавлением поддержки открытого JS-движка Chakra собственной разработки в Node.js. Разработчики Microsoft предложили сделать весьма спорное изменение, что вызвало ожесточенную дискуссию среди участников проекта: звучали обвинения в адрес MS, с последующими блокировками ветки обсуждения, а трезвая критика местами тонула среди чрезмерно восторженных комментариев. И несмотря на то, что сам пулл реквест до сих пор не был принят, Microsoft получил официальную поддержку сообщества Node.js.
Читать дальше →

Фреймворк для создания ботов для Telegram

Время на прочтение6 мин
Охват и читатели64K
Так уж вышло, что род моей деятельности тесно переплетен с созданием ботов для Telegram. Писать я их начал сразу после появления Telegram Bot API, тогда никаких инструментов для этого не было. Пришлось самому писать библиотеку для работы с API, о чем я частично уже рассказывал в своей предыдущей статье. С течением времени библиотека несколько раз была переписана и в итоге обросла разными фишками. В статье я постараюсь рассказать о том, как с ее помощью писать ботов.



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

С телефона в облака: Azure Mobile Services. С чего начать?

Время на прочтение8 мин
Охват и читатели8K

Автор: Анастасия Белокурова, .NET Developer DataArt.

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

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

Преимущества облачных технологий

Термин «облачные вычисления» появился достаточно давно, но его значение немного менялось. Сначала облачными вычислениями называли просто распределенные вычисления. Но сейчас облачная платформа — большой набор удобных сервисов, которые вы можете использовать для решения своих задач.

Итак, почему же облака? Они предоставляют следующие преимущества вашему приложению:
  • Масштабируемость.
  • Надежность.
  • Большой выбор сервисов.


Представьте, что вы запускаете небольшой интернет-магазин — сначала просто хотите проверить, будет ли он вообще востребован. Бюджет у вас небольшой. Поэтому вы пишете небольшое веб-приложение и размещаете его на своем компьютере, который не выключаете на ночь. К вашему сайту есть доступ извне, и он может выдержать, допустим, 10 пользователей одновременно. Со временем ваш сайт становится популярным, и вам уже нужно, чтобы он выдерживал 100 пользователей одновременно. Но ваш компьютер не способен справиться с такой нагрузкой. И тут вы начинаете думать, не превратить ли мне мою квартиру в серверную?.. Нет, это ужасно неудобно! Тогда вы покупаете сервера, предоставляемые хостингом. Теперь ваш сайт поддерживает 100 запросов в минуту и даже тысячу. Наконец в какой-то момент вы понимаете, что выходите на глобальный рынок, т. к. у вас очень много пользователей, круглосуточно, и сервера, которые вы купили, уже не справляются.

Тут мы подходим к первому преимуществу облачных платформ — они предоставляют масштабируемость практически всего практически в любой момент времени. И это делается очень просто, быстро и удобно: вам остается думать только о разработке, а не о размещении и нагрузке. Это первое преимущество.
Читать дальше →

Instagram Like Bot

Время на прочтение1 мин
Охват и читатели66K
Все началось с того, что супруга завела аккаунт в Инстаграме, начала постить кучу фоток и обижаться, если я вовремя их не лайкую. Пришлось заняться автоматизацией семейных отношений.

Заказчик в моем лице определил следующие требования:
1. Симуляция работы в Инстаграме как обычный пользователь, лайкание в одном треде (чтобы Instagram не забанил моего бота).
2. Возможность авто-лайкания произвольного количества аккаунтов с произвольной глубиной лайков.
3. Запуск через шедулер, работа в бэкграунде.

Выбор пал на nodejs. Почему nodejs? Потому на Perl'е (который я использую время от времени уже несколько лет) делать не хотелось, а nodejs привлек внятным менеджеров пакетов, нативной поддержкой JSON и вообще Javascript в браузере роднее чем какой-нибудь Python.

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

Microsoft отправила запрос на аппрув реализации поддержки ChakraCore в Node.js наряду с движком V8

Время на прочтение2 мин
Охват и читатели23K


Корпорация Microsoft признала, что Node+ChakraCore работает более эффективно, чем NOde+V8. На днях редмондская компания отправила официальный запрос ( «pull request») на аппрув уже реализованной корпорацией поддержки ChakraCore в Node.js.

С самого начала своего существования Node.js всегда работал с V8 JavaScript, и эта связка работала весьма эффективно, обеспечивая функционирование многих real-time приложений, в чем Apache, nginx, Tomcat никогда не были особенно хороши. Сообщество Node.js процветало, а Node становился все более и более популярным в среде разработчиков. Крупные компании вроде PayPal, Yahoo, IBM и других присоединились к сообществу проекта.
Читать дальше →