Node.js и упущенные возможности



О возможности писать серверные приложения на JavaScript я слышал давно и воспринимал сообщения об этом за проявления неких экзотических тенденций. Прочитав же на днях статью о программировании в среде Node.js понял, что зря не обрашал на них серьезного внимания. Действительно, плюсы видны невооруженным взглядом:

  • высокая скорость (задействован гуглевский движок v8 );
  • асинхронность (сервер не простаивает, ожидая окончания сравнительно медленных операций, таких, как запросы к БД);
  • компилировать не нужно;
  • все необходимые возможности — работа с файлами, сетевыми сокетами, http-запросами — в наличии;
  • внешние библиотеки подключать можно.

Есть и другие достоинства, но самое главное — клиент и сервер пишутся на одном и том же языке — JavaScript. Причем сервлеты создавать можно просто с полпинка:

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');


Чтобы накодить такое на Java нужно раза в два-три больше букв (с учетом импорта), да еще компилировать и к серверу прикручивать. Здесь же написал код, запустил:

node HelloWorldServer.js


— и всё, можно открывать в браузере 127.0.0.1:1337/ и любоваться результатом. Консольный «Hello, World!» делается и того смешнее:

echo 'console.log("Hello, World!")' > Test.js
node Test.js


Короче говоря, рекомендую, это уже экзотика, а вполне себе профессиональный инструмент. Но это вовсе не означает, что нужно бросить привычные языки программирования и принять новшество как истину в последней интанции. Node.js на это и не претендует. Его целесообразно использовать для сбора информации на веб-интерфейсах и ее первичной обработки, после чего данные будут передаваться более серьезным серверам, написанным, например, на той же Java. Накладные расходы на запуск Node.js-сервлетов не велики (написан фреймворк на C++), так что перерасхода памяти на запуск нескольких серверов опасаться не стоит.

В тексте разобрать бардак кто поможет? Только Awk!

Ни одна из серьезных новостных лент, связанных с IT, не прошла мимо того факта, что свет увидела очередная версия языка Awk. С 1977 года, когда он появился на свет, без awk-вставок не обходится сколь-нибудь серьезный bash-скрипт.

Самоучителей по Awk в Инете много (рекомендую вот этот, где довольно сжато, но весьма толково изложено процентов, наверно, 90 возможностей языка). Но, все-таки, давайте вкратце попробуем понять как это работает.



( Читать дальше )

Perl-скрипт вместо Sendmail

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

Часто бывает нужно отправить с сервера почту в автоматическом режиме. Обычно в таких случаях используют sendmail или другой серьезный почтовый smtp-сервер. Такой подход чреват уязвимостями, возней со спам-фильтрами и т.п. Если почтовая нагрузка невелика, то с ней справится perl-скрипт sendEmail, который можно взять здесь. Используя gmail-аккаунт, можно отправлять письма следующим образом:

sendEmail -f [email protected] -u Тест -t [email protected] -m Привет -s smtp.gmail.com -o tls=yes -xu [email protected] -xp yyyyyyyyyy


где [email protected] — аккаунт на Gmail,
yyyyyyyyyy — соответственно, пароль.

Скрипт поддерживает ssl, tls, utf-8, т.е. всё необходимое для рассылки текстовых сообщений.
  • +10
  • 05 марта 2011, 20:55
  • yababay
  • 1