Рубрика «node.js» - 89

Разработка проекта AppJS прекращена, в дальнейшем пользуйтеся node webkitЧуть больше года назад (1 октября 2012 года) я выложил на Хабрахабре блогозапись «Node.js + Chromium = AppJS: один из перспективных вариантов второго шага эволюции веборазработчика», в которой привёл AppJS в качестве примера такого объединения движков Node.js и Chromium, которое позволяет каждому веборазработчику, употребляя привычные ему по работе технологии (JavaScript, HTML, CSS), сделаться разработчиком приложений с GUI (графическим интерфейсом пользователя), объединяющих в себе выразительные способности браузера Chromium и мощь API Node.

На следующий же день (2 октября 2012 года) во блогозаписи «Node.js + Chromium = node-webkit: ещё более перспективный вариант второго шага эволюции веборазработчика» я указал, что AppJS — не единственный и даже не лучший вариант: node-webkit отличается удобством и бóльшими возможностями API, более обширной документацией, а также обеспечивает запуск ZIP-упакованных приложений.

И что же? — не прошло и тринадцати месяцев, как успех node-webkit сделался очевидным и для разработчиков AppJS. Сегодня во твиттере у AppJS вы можете прочесть о том, что разработка проекта AppJS прекращена, поскольку node-webkit достиг его цели:

[скриншот Twitter]

Читать полностью »

Здравствуй!

В этой открытой лекции я попытался сжато рассказать и показать полный цикл (full stack) разработки веб-приложений на JavaScript.

Начнем мы с короткого введения в язык, потом в двух словах поговорим о клиентской части, в частности, об MVC фреймворках вроде Angular.js, после чего перейдем на серверную часть: Node.js и MongoDB. В конце обсудим возможность автоматизации разработки и сборки проектов с помощью Grunt.js.

Скачать слайды и исходные коды.

Лекция была записана в офисе компании ChocolifeЧитать полностью »

Derby.js Авторизация

Тем временем у Derby появился свой хаб.

Ну а сегодня мы поговорим об авторизации и ограничении доступа к данным. Что лучше использовать everyauth или passport? Сложно ли добавить авторизацию? Как ограничивать доступ к данным? Как разделить приложение для пользователй и админку в рамках одного derby-приложения?

Читать полностью »

Удобства на улице для MySQL драйвера в Node.jsКто пишет на Node.js и использует MySQL, тот непременно знает, что наш дорогой товарищ Felix Geisendörfer три года назад совершил героический и самоотверженный подвиг: в одиночку разработал очень качественный драйвер для подключения к MySQL, нативно реализовав двоичный протокол этой СУБД на JavaScript. Потом к проекту подключились другие уважаемые товарищи, была реализована поддержка пулов соединений, кластеров, транзакций, восстановление при временной утере соединения и т.д. Сейчас драйвер является самым развитым, хорошо проработанным и активно поддерживаемым из того, что мы имеем в открытых репозитариях npm и github. Удивительно даже, что при хорошо проработанной низкоуровневой реализации, все удобства, которые предоставляет это драйвер для прикладного разработчика, сводятся к одному методу query. Для меня лично, этого очень мало, ну привык дедушка к удобствам для возврата скалярных значений, строк и столбцов в массивы, интроспекции структур БД. Так что, с удовольствием делюсь этими наработками с вами, мои дорогие читатели, но предупреждаю, что все удобства будут на улице. Есть конечно вариант тесной интеграции с драйвером, но FelixGe желает оставить драйвер исключительно низкоуровневым, поэтому я остановился на варианте внешней библиотеки с добавлением к драйверу через примеси. В виде примесей удобства попали и в платформу Impress, а так же, опубликованы как патч к драйверу. О функционале и вариантах использования далее.
Читать полностью »

WebRTC

WebRTC позволяет реализовать real-time аудио/видео связь через браузер (firefox и chrome).

В этом топике я расскажу как реализовать простейшее WebRTC приложение.
Читать полностью »

Awsbox — PaaS инфраструктура для развёртывания приложений Node.js в облаке AmazonОт переводчика: Это двенадцатая, последняя статья из цикла о Node.js от команды Mozilla Identity, которая занимается проектом Persona.


После того как вы написали приложение на Node.js, как развернуть его на сервере? Вместо того, чтобы использовать готовое PaaS-решение, наша команда создала собственную инфраструктуру поверх Amazon EC2. Сейчас мы расскажем подробнее о том, как мы это сделали.

Мы представим вам awsbox — минималистичный слой PaaS-инфраструктуры для Node.js, который сейчас обслуживает пару дюжин некритичных сервисов Mozilla. Awsbox разработан для того, чтобы предоставить простоту и удобство развёртывания, характерные для PaaS, не теряя при этом гибкости кастомизированной инфраструктуры.
Читать полностью »

Локализация приложений Node.js. Часть 3: локализация в действииОт переводчика: Это деcятая статья из цикла о Node.js от команды Mozilla Identity, которая занимается проектом Persona.


Использование строк

Итак, сначала мы подключили к нашему приложению модуль i18n-abide и обернули строки в вызовы gettext. Затем наша команда переводчиков перевела эти строки и у нас есть готовый перевод для каждого языка.

Теперь давайте заставим наше приложение Node.js работать с локализованными строками. Переводы в виде po-файлов лежат в файловой системе в таком виде:

locale
  en
    LC_MESSAGES
      messages.po
  de
    LC_MESSAGES
      messages.po
  es
    LC_MESSAGES
      messages.po

Во время выполнения нашего приложения нужно извлекать переведённые строки из этих файлов. Есть два способа сделать это:

  • на стороне сервера с помощью всё той же функции gettext из модуля i18n-abide;
  • на стороне клиента с помощью скрипта gettext.js, который также входит в состав i18n-abide.

Оба этих метода требуют, чтобы строки были в формате JSON. При переводе на стороне сервера они загружаются при старте приложения, а клиент загружает их с помощью HTTP-запросов (или можно включить их в минифицированный файл JavaScript в процессе сборки).

Так как наша система перевода совместима с GNU Gettext, есть ещё и третий путь — модуль node-gettext. Он довольно эффективен при переводе на стороне сервера.

Дальше мы будем рассматривать первый способ, так как это наиболее привычный способ использования i18n-abide.
Читать полностью »

Локализация приложений Node.js. Часть 2: инструментарий и процессОт переводчика: Это деcятая статья из цикла о Node.js от команды Mozilla Identity, которая занимается проектом Persona.


В прошлой статье о локализации приложений Node.js мы узнали, как использовать модуль i18n-abide в нашем коде. Наша работа, как программистов, фактически закончилась на том, что мы обернули строки в шаблонах и коде приложения в вызовы gettext(). Но работа по локализации и переводу приложения только начинается.

Инструментарий

Инструментарий локализации команды Mozilla Persona совместим с теми инструментами, которые используются в остальном сообществе Mozilla, и при этом сохраняет преимущества в дружественности и гибкости, присущие Node.

Проекту Mozilla уже почти 15 лет, и наша команда локализаторов и переводчиков одна из самых больших (и клёвых) в мире Open Source. Поэтому у нас широко используются давно привычные, можно даже сказать старинные и причудливые инструменты.
Читать полностью »

Локализация приложений Node.js. Часть 1От переводчика: Это девятая статья из цикла о Node.js от команды Mozilla Identity, которая занимается проектом Persona.


image

Знаете ли вы, что продукты и сервисы Mozilla локализованы для 90 языков? Локализация включает в себя:

  • текст, переведённый на региональные вариации и диалекты языков;
  • рендеринг страниц с учётом написания справа налево;
  • пуленепробиваемый дизайн, способный вместить тексты любой длины;
  • заголовки, метки и текст на кнопках, подобранные для локальных аудиторий.

В этой серии из трёх статей, посвящённых локализации, я расскажу о технических аспектах создания многоязычного приложения Node.js.

Мы будем использовать общепринятые термины «интернационализация» (i18n) и «локализация» (l10n). Интернационализация — это набор технических приёмов, делающих возможной последующую локализацию, то есть собственно перевод и адаптацию для конкретного языка.

Mozilla Persona — веб-сервис на Node.js, локализованный для множества локалей. У нашей команды были весьма специфические запросы, и поэтому мы не стали использовать существующие библиотеки для локализации.
Читать полностью »

image

Проектируя архитектуру сервиса вы выбираете инструменты, наиболее подходящие для решаемых вами задач. Но чтобы использовать их по максимуму, необходимо найти самый надёжный и удобный драйвер. Конечно, если вы программируете на Python или, к примеру, PHP, найти нужный драйвер не проблема, ведь за много лет разработчики понаписали всякого, что проверено годами и стабильно работает. Но если вы программируете для node.js — это становится проблемой, драйверы скрипят, утекают и отказываются стабильно работать.
В данной статье мы расскажем о проблемах, с которыми столкнулись при выборе драйверов, и как их решили.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js