Около полутора лет назад возникла необходимость захостить небольшой статический сайт в три страницы и пару десятков. В тот момент была активна подписка MSDN и самым простым решением оказалось создать WebRole прямо в студии, положить туда статику и делать деплоймент, используя стандартные возможности Visual Studio. Прошел год, подписка кончилась, прогноз платежа за использование ресурсов Azure составил 5000 рублей в месяц. Мне показалось, что это перебор за трехстраничный сайт и начался поиск альтернативы. Критерии: бесплатность, простота конфигурирования и возможность просто перенести сайт, как он есть без доделок.
Читать полностью »
Рубрика «node.js» - 83
Простейший способ бесплатно захостить статику на Heroku
2013-12-08 в 12:01, admin, рубрики: heroku, html, javascript, node.js, static, метки: heroku, html, javascript, node.js, staticСмогут ли подружиться Angular.js и Facebook Login?
2013-11-29 в 12:14, admin, рубрики: AngularJS, express.js, Facebook API, javascript, node.js, метки: AngularJS, express.js, Facebook API, node.jsПриветствую, дорогие читатели Харба!
Свой первый пост, мне хотелось бы посвятить тому, с чем, пока что, интересней всего работать — Angular и Node.
За некоторое время, (около 7 месяцев) работы с Angular, появилось пару своих наработок, которыми горю желанием поделиться. Конечно же это не сам Facebook Login, каким его описывают в разделе Facebook JS SDK, и не «Hello World with Angular.js», но все довольно-таки просто.
Мотвация, в написании этой статьи, — желание делиться кое-каким опытом в интересных направлениях.
Читать полностью »
Встречайте: Node.js Tools for Visual Studio
2013-11-21 в 17:29, admin, рубрики: azure, microsoft, node.js, Visual Studio, visual studio 2012, visual studio 2013, метки: azure, microsoft, node.js, Visual Studio, visual studio 2012, visual studio 2013Вы думали, что после Python Tools for Visual Studio, Microsoft нечем больше вас удивить на ниве open source? Что ж, попробуем исправить положение: команда PTVS рада представить вам первую альфа-версию своего нового проекта: Node.js Tools for Visual Studio (далее по тексту – NTVS).
PhpStorm. Лайфхак: keep-alive automatic upload на коленке
2013-11-19 в 11:47, admin, рубрики: automatic, IDE, keep-alive, node.js, nodejs, phpstorm, upload, Блог компании Rangg, Веб-разработка, метки: automatic, IDE, keep-alive, nodejs, phpstorm, uploadМногие сталкивались с проблемой Automatic Upload в PhpStorm (сюда можно вписать другую IDE с подобной проблемой) при работе на удаленном сервере. Называть ее «проблемой» тоже можно с натяжкой, но тема жива: PhpStorm при заливке измененных файлов каждый раз поднимает новое подключение, что занимает достаточно ощутимое время (у меня уж точно: хостинг-провайдер Hetzner), поэтому приходится ждать несколько секунд прежде чем изменения зальются.
Под катом я расскажу как на коленке набросал скрипт keep-alive подключения с Automatic Upload проекта.
WidLib – декларативный js-фреймворк для построения виджетов
2013-11-19 в 8:15, admin, рубрики: javascript, javascript framework, javascript library, node.js, метки: javascript framework, javascript library, node.jsСегодня я хотел бы анонсировать js-фреймворк, позволяющий создавать диалоговые микро-приложения в несколько строк js-кода, разделяемого между клиентом и сервером.
Идея простого, удобного и специализированного под диалоговые решения фреймоворка родилась после нескольких лет работы нашей команды с интерактивными приложениями. Нам хотелось создать простой конструктор интерактивных виджетов, не перегруженный сложным функциналом и максимально заточенный под конкреную задачу. В итоге мы пришли к решению перекроить наши наработки и немного изменить концепцию продукта.
В отличие от большинства фреймворков, WidLib не претендует на универсальность: он предназначен для быстрого создания многостраничных диалоговых приложений.
Читать полностью »
Система наблюдения в автомобиле за ним же на Raspberry Pi. Часть 1
2013-11-13 в 15:35, admin, рубрики: diy или сделай сам, linux, node.js, Raspberry Pi, автомобили, метки: diy или сделай сам, linux, Raspberry Pi, автомобилиВведение
Добрый день.
Однажды я приобрёл Raspberry Pi без каких-то на то целей — как только начались упоминания о нём на хабре. Начала бесцельно запускать фтп-сервера, пробывать Node.js и прочие мелкие серверные дела, пока не приобрёл новый автомобиль. Конечно, заниматься тем, что можно найти на просторах интернета вроде дистанционного открытия гаража я не стал — в силу не знаю системы Linux и серверных языков программирования. Автомобиль стал мне дорог и возникла идея — поставить малинку в автомобиль с прикрученными к ней USB девайсами: GPS, Web-камера, 3G-модем — для чего и был куплен 2-ой Raspberry.
В этой статье я опишу подготовку: установку Node.JS, настройку OpenVPN и 3G.
Читать полностью »
Как работает basic-авторизация в ExpressJS
2013-11-12 в 22:38, admin, рубрики: connect, express.js, node.js, метки: connect, express.js, node.jsВ Express.JS есть встроенный middleware для авторизации. Если очень хочется заблокировать доступ к приложению — достаточно всего лишь добавить одну строчку в сетап express-приложения:
// Работает синхронно, то есть морозит всю nodeJS
app.use(express.basicAuth('username', 'password'));
Так же middleware поддерживает асинхронный вариант — с коллбэком:
app.use(express.basicAuth(function(user, pass, callback) {
var result = (user === 'testUser' && pass === 'testPass');
callback(null /* error */, result);
}));
Если нужно ограничить доступ только к определенным url'ам — middleware нужно использовать не глобально, а в рамках роутера, то есть так:
var auth = express.basicAuth(function(user, pass, next) {
var result = (user === 'testUser' && pass === 'testPass');
next(null, result);
});
app.get('/home', auth, function(req, res) {
res.send('Hello World');
});
Если не забираться под капот — на этом можно и закончить. Тех же, кто на диаграмме Венна находится между кругами «Мне интересно, что внутри» и «Я не знаю как работает basic авторизация apache», приглашаю под кат.
Читать полностью »
Как работает Passport.js
2013-11-07 в 10:13, admin, рубрики: express.js, node.js, passport.js, метки: express.js, node.js, passport.js
PassportJS — это middleware для авторизации под node.js. Passport поддерживает авторизацию с помощью огромного количества сервисов, включая «ВКонтакте» и прочие твиттеры. Список сервисов можно просмотреть здесь. Я хочу немного рассказать о том, как работает этот middleware на примере самой обычной авторизации с помощью логина и пароля.
Для самых нетерпеливых — готовый проект можно посмотреть здесь.
Читать полностью »
Require целой папки
2013-11-06 в 21:46, admin, рубрики: node.js, require, модуль, папка, метки: import, node.js, require, модуль, папка Здравствуй, %username%! Разрабатывая проект на Node.js я столкнулся с невозможностью сделать require
целой папки.
Допустим, у нас есть такое дерево каталогов:
Project
— handlers
— — admin.js
— — user.js
— — settings.js
— routes
— — admin.js
— — user.js
— — settings.js
— app.js
Как правило, если нам необходимо добавить новый handler, то мы создаем там файл, затем прописываем адрес к нему в require и радуемся, но иногда хочется иметь сразу все файлы в одном объекте (чтобы наш алгоритм сводился только лишь к созданию файла).
Читать полностью »
Как Groupon мигрировал от монолитного Rails приложения к новой Node.js инфраструктуре
2013-11-05 в 14:24, admin, рубрики: groupon, node.js, ruby on rails, перевод, переводы, метки: groupon, node.js, ruby on rails, переводI-Tier: Расщепление монолита
Недавно мы завершили годовой проект миграции веб-трафика компании Групон в США от монолитного Ruby on Rails приложения к новому стеку Node.js и получили существенные результаты.
С самого начала весь веб-фронтенд американского Групона был единым исходным кодом Ruby. Код фронтенда быстро развивался, что затрудняло его поддержку и усложняло процесс добавления новых фич. В качестве решения проблемы с этом гигантским монолитом мы решили реструктурировать фронтенд посредством его разделения на меньшие, независимые и более простые в управлении части. Основой этого проекта стало разделение монолитного вебсайта на несколько независимых Node.js приложений. Мы также переделали инфраструктуру, чтобы обеспечить совместную работу всех приложений. Результатом стал Interaction Tier (I-Tier).
Вот некоторые из важных моментов этой глобальной архитектурной миграции:
• Страницы на сайте загружаются значительно быстрее
• Наши команды девелоперов могут разрабатывать и добавлять новые фичи быстрее и с меньшей зависимостью от других команд
• Мы можем избежать повторной разработки одних и тех же фич в разных странах, где доступен Групон.
Этот пост является первым из серии постов о том, как мы реструктурировали сайт и какие огромные преимущества мы видим в дальнейшем, которые будут лежать в основе продвижения компании Групон.
Читать полностью »