Обновить
64K+

Node.JS *

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

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

Один разработчик чуть не «сломал» пакетный менеджер NPM

Время на прочтение2 мин
Охват и читатели101K
Веб-разработчик Азер Кочулу (Azer Koçulu), автор более 250 модулей для Node.js, попал в неприятную ситуацию. В своём блоге он пишет, что несколько недель назад получил письмо от юриста компании Kik (мессенджер) с требованием отозвать модуль с аналогичным названием kik из пакетного менеджера NPM (Node Package Manager).

Программист отказался, тогда юрист обратился напрямую в NPM, и администрация проекта удовлетворила его требование, сменив владельца kik без разрешения автора.

Азер Кочулу был крайне недоволен этим. Настолько недоволен, что решил в ответ «освободить» (то есть отозвать) все свои модули — более 250 модулей NPM. К сожалению, среди них оказался и left-pad — маленький модуль из 11 строк кода на JavaScript. Он используется при установке зависимостей между пакетами через NPM, в том числе в Node.js, JavaScript-транскомпиляторе Babel и огромном количестве других билдов. Только за прошлый месяц left-pad скачали 2 486 696 с сервера NPM, по их статистике.
Читать дальше →

Шесть подработок для ИТ-специалиста, за которые платят в долларах

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


Не поймали за хвост удачу в виде главного бага известного сервиса, нет желания “толкаться” на oDesk или не хочется делать то же, что уже и так делаете в рабочее время?

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

Три пункта не про работу

Стек MEAN. Пример использования

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

Сегодня вашему вниманию предлагается статья о стеке MEAN (Mongo, Express, Angular, Node) который кажется нам перспективной (при этом достаточно модной) темой. Просим высказаться, хотите ли вы увидеть на русском языке книгу об этом стеке. Добро пожаловать под кат.
Читать дальше →

Лёгкий деплой 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, о чем я частично уже рассказывал в своей предыдущей статье. С течением времени библиотека несколько раз была переписана и в итоге обросла разными фишками. В статье я постараюсь рассказать о том, как с ее помощью писать ботов.



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