Записи за February, 2010

Таймауты для SSH-сессий

Sunday, February 21st, 2010

ssh

Сколько раз уж бывало так, что сидишь на удалённом сервере, залогинившись по SSH, никого не трогаешь. Потом отвлечешься ненадолго (ну… пообедать там, новости почитать, Симпсонов посмотреть), смотришь в консоль, а сессия отвалилась. Вроде и не смертельно, вроде и секьюрно. В общем, не задумывался об этом и просто залогинивался по-новой. Сегодня, однако, задумался – в какой бы конфиг и какую бы строчку забабахать, чтобы этого не происходило. Гугл и man sshd_config в помощь. В общем, нашёл способ. И не один. (more…)

Метки: ,
Категория: Linux | 3 Комментариев »


Почтовый сервер — в каждый дом. Exim+Dovecot+SpamAssasin+ClamAV+PostfixAdmin

Saturday, February 20th, 2010

“А если вы на него бочку катите, то это уже контейнерная перевозка. Этим Трансагентство занимается.”
— Печкин

exim

Как ясно из названия — мы будем заниматься организацией собственного почтового сервера, главным компонентом которого будет MTA Exim, который будет заниматься приемом-отправкой почты и скармливанием её различным фильтрам и MUA Dovecot. Почему именно Exim? Это вопрос скорее философский. Мне недавно подсказали, что он хорош. Я его потрогал, и он действительно оказался хорош. Он хорошо задокументирован (хотя н русском языке инфы мало, здесь правит бал всё-таки Postfix), секьюрен, производителен, лёгок в настройке. В общем, правильный выбор.

Данные о пользователях и вспомогательные таблицы будут храниться в MySQL. Для управления доменами и виртуальными почтовыми акаунтами будем использовать postfixadmin. Да и структуру базы данных будем использовать от этого проекта. Postfixadmin, конечно, предназначен обычно для работы с MTA Postfix, но это непринципиально. Он даже и догадываться у нас не будет, что подоткнут к Exim’у. Он достаточно удобен и лёгок в настройке.

После того, как всё заработает, подключим SpamAssassin и ClamAV для проверки на спам и вирусы.

И всё это добро будет у нас стоять на Ubuntu 9.10.

(more…)

Метки: , , ,
Категория: Linux | 28 Комментариев »


Ускоряем web-сценарии на Perl, или ещё раз про Perl vs PHP

Wednesday, February 17th, 2010

“Концепция единообразия жизни позволяет наслаждаться каждым моментом, не отвлекаясь на сопоставление и сравнение.”
— х/ф “Эквилибриум”

Two_fast_two_furious_ver5Идея этой статьи родилась совершенно случайно после пары бесед с адептами PHP, утверждавшими, что Perl для Web-программирования не подходит по причине своей тормознутости, сложности и отсутствию многих полезных фич. Про второй и третий фактор говорить не будем по причине их субъективности. А вот с “тормознутостью” можно поработать. Действительно, из коробки сценарии на PHP должны работать быстрее сценариев на Perl из-за принципиального отличия их базовых парадигм: интерпретатор PHP загружен как модуль в Apache и не требует постоянной загрузки в память на каждый новый HTTP-запрос, в то время как интерпретатор Perl как раз и запускается отдельным процессом, выполняет сценарий и выгружается из памяти. Однако же спор на этом заканчивать рано, потому как для Perl существуют такие замечательные вещи, как mod_perl и FastCGI, которые могут добавить очков в корзину этому языку. При этом mod_perl по аналогии с mod_php загружается в память при старте Apache и не тратит драгоценных мгновений на запуск и выгрузку из памяти (жертвуя, правда, ресурсами сервера при этом), а FastCGI позволяет запустить интерпретатор с зацикленным сценарием один раз и обращаться к нему при поступлении новых запросов (здесь стоит отметить необходимость внесения некоторых изменений в сам скрипт).
Так вот. Попробуем разобраться, как всё это заставить работать и насколько всё это улучшает производительность по сравнению с работой сценариев в стандартном режиме с модулем mod_cgi.

(more…)

Метки: , , ,
Категория: Apache, Perl, Web-dev | Нет комментариев »


XHTML-валидация для чайника

Wednesday, February 10th, 2010

"Добродетель опровергается, если спрашивать, «зачем?»…"
— Фридрих Ницше

uncle-samПолезность стандартизации всегда была весьма очевидной, а о её необходимости в Web-девелопменте уже как-то и говорить не приходится. И что уж тут обсуждать —  веб-стандарты вышли из тени и распространяются огромными темпами. Особенно это удивительно, если вспомнить, что в первой половине первого десятилетия о стандартах мало кто думал, и всё кодилось и версталось как бог на душу положит. А бог на душу клал изумительно. Но это камень всё-таки не в сторону web-девелоперов, а в сторону производителей браузеров, потому как всё разношёрстные костыли и прочие ухищрения были направлены в первую очередь на попытки заставить сайты работать адекватно и в IE, и в Netscape и в прочих Мозиллах с Операми.
Сейчас же интернет-сообщество, пинаемое всякими консорциумами, чьи названия всуе произносить не будем, движется в сторону веб-стандартизации. Стандарты, само собой, разные: XHTML1.1, XHTML1.0 Transitional, XHTML1.0 Strict, HTML4.01, HTML5.0 и т.д. В общем, на любой вкус.
Для облегчения участи кодеров и верстальщиков с подачи всё тех же консорциумов появились Валидаторы разметки (Markup Validators) для проверки сайтов на наличие ошибок и соответствие стандартам. Один из них можно найти по адресу http://validator.w3.org.

Посмотрим, какие ошибки у меня на сайтах, заявленных в DTD как XHTML1.1, могут найти валидаторы и как с ними справиться.
(more…)

Метки:
Категория: Apache, Web-dev | 4 Комментариев »


mod_rewrite для Apache

Friday, February 5th, 2010

“Despite the tons of examples and docs, mod_rewrite is voodoo. Damned cool voodoo, but still voodoo.”
— Brian Moore

mod_rewrite_logo
В своей недавней статье “mod_security2 для Apache” я начал тему безопасности для web-сервера Apache. Там, конечно, не было никаких откровений – простая разминка для мозгов плюс полезная памятка на будущее. Но в целом оставлять эту благодатную тему не хочется, поэтому сейчас я пробегусь по ещё одному полезному модулю – mod_rewrite.

Если вкратце, то модуль предназначен для преобразования URL’а из одного вида в другой. Кроме каких-то специфических утилитарных применений (вроде улучшения читабельности адресов, как это, меж тем, реализовано прямо здесь, на WordPress’е) модуль может повысить безопасность сервера, скрывая от пользователя параметры, передаваемые серверному сценарию. Также в контексте SEO можно упомянуть, что такие укороченные ссылки лучше индексируются поисковыми системами.

Но… ближе к телу!

(more…)

Метки: ,
Категория: Apache, Linux, Security, Web-dev | Нет комментариев »


Переход на MQL5

Tuesday, February 2nd, 2010

MT5Повсеместный переход на платформу MetaTrader 5 пока что кажется делом отдалённым и необязательным, но мысли “а вдруг” и “что будет, если” в голове всё-таки роятся. И в первую очередь они касаются всех с таким трудом написанных, оттестированных и практически взлелеянных скриптов, индикаторов и советников на языке MQL4. В новом языке MQL5 хоть и обещается “максимальная совместимость” с предшественником, но она всё равно не полная, и придётся приложить некоторые усилия для перевода своих трудов на новые рельсы.
Рассмотрим-ка проблему поближе.

(more…)

Метки: ,
Категория: Forex | Нет комментариев »


Постепенный вывод в Web-страницу (tail -f для Web)

Tuesday, February 2nd, 2010

tailf-iframeПредыстория такова, что мне потребовалось сделать web-интерфейс, позволяющий запускать и останавливать на сервере определённый процесс. И при этом хотелось в режиме реального времени видеть отладочную информацию, которую процесс пишет в свой лог-файл, примерно так, как это делает tail -f в командной строке. В моём случае это был Tomcat и его лог catalina.out, но это не принципиально. С тем же успехом это мог быть, например, Postfix и mail.log. В процессе работы встретились кое-какие подводные камни и интересные решения. Но обо всём по порядку…

(more…)

Метки: ,
Категория: Apache, Perl, Web-dev | 5 Комментариев »