Как узнать, что за программа слушает порт?
Ответ: с помощью программы lsof.
Например:
$ sudo lsof -i :80
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
apache2 17176 www-data 5u IPv6 6181425 TCP *:www (LISTEN)
apache2 17945 www-data 5u IPv6 6181425 TCP *:www (LISTEN)
apache2 24898 root 5u IPv6 6181425 TCP *:www (LISTEN)
apache2 24947 www-data 5u IPv6 6181425 TCP *:www (LISTEN)
apache2 24952 www-data 5u IPv6 6181425 TCP *:www (LISTEN)
apache2 25715 www-data 5u IPv6 6181425 TCP *:www (LISTEN)
apache2 26421 www-data 5u IPv6 6181425 TCP *:www (LISTEN)
apache2 29851 www-data 5u IPv6 6181425 TCP *:www (LISTEN)
apache2 30981 www-data 5u IPv6 6181425 TCP *:www (LISTEN)
apache2 31104 www-data 5u IPv6 6181425 TCP *:www (LISTEN)
apache2 31962 www-data 5u IPv6 6181425 TCP *:www (LISTEN)
$ sudo lsof -i :21
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
vsftpd 3800 root 3u IPv4 12036 TCP *:ftp (LISTEN)
Блокировка ip адреса в случае попытки брутфорса
Обнаружил интересную софтину — fail2ban, она сканирует лог файлы, например /var/log/pwdfail или /var/log/apache/error_log и с помощью правил файрвола банит те ip адреса с которых идет слишком много неудачных попыток входа в систему.
PS наткнулся на эту штуку с пожелания по изменения roundcube для дебиана.
Вторая версия мега кнги «Дизайн пользовательского интерфейса»
Вчера вечером прочитал великолепную книгу «Дизайн пользовательского интерфейса2 Искусство мыть слона», автор Влад В. Головач. Дима, спасибо огромное за ссылку!
Это прекрасная книга. 97 страниц умнейшего, увлекательного чтения. Первую часть книги в обязательно порядке нужно читать всем (вообще всем, а не только всяким дизайнерам). Книга читается на одном дыхании — очень приятно сверстана, отличные фотографии.
Книжка распространяется совершенно бесплатно. На сайте http://uibook2.usethics.ru/ доступна pdf-ка для скачивания.
Вообщем, настоятельно рекомендую.
PS для того, чтобы получить удовольствие от прочтения, я настоятельно советую сначала прочитать последнюю страницу, разделы «как удобнее читать, напечатать» (к сожалению, я прочел эти рекомендации после прочтения всей книги, поэтому не смог ими воспользоваться).
Сайт книжнего магазина «Москва»
Вчера, перед выходом с работы, несколько минут провел на сайте книжного магазина «Москва», — решил почитать Дэвида Аллена. Нашел и аудиокнигу, и простую книгу. Вообщем, поехал за покупками.
Приезжаю — магазин закрыт. Учет до 15:00 восемнадцатого числа. =(
Резюме: если сайт отражет нечто существующее в офлайне, и эта офлайновая состовляющая главенствует над интернет представительством, то все что происходил в офлайне должно быть отписано на сайте, причем если это важная информация, то она должна быть представлена на каждой странице.
Триадж
Наверное, самое глубокое и одновременно простое, что я вычитал по менеджементу за последний год:
Триаж — термин в менеджменте, применяемый для процесса выбора задач для выполнения, в ситуациях когда выполнить все задачи заведомо невозможно. В этом случае, по принципу медицинской сортировки, выбираются только самые важные задачи, у которых есть шанс быть завершенными.
Эта цитата взята с русской википедии, а вообще на это я наткнулся при изучении, как организован процесс разаботки системы Trac.
PS причем впервые мне про это рассказали года полтора назад, вот действительно “слушал, но не слышал”.
Заглушка на сайт во время обновления
Задача: обновить веб приложение. Сложность: пользователи не должны работать в момент обновления с приложением, чтобы не нарушить целостностью базы данных .
Решение: на момент обновления вместо страниц ресурса пользователям всегда выдавать страницу с информацией, что сервер на обновлении и с просьбой вернутся чуть-чуть позже.
Если вебсервер apache и к нему прикручен mod_rewrite, то это элементарно реализуется с помощью двух файлов:
.htaccess
RewriteEngine on
RewriteBase /
RewriteRule .* index.html
index.html
Сервер на техобслуживании. Пожалуйста обратитесь позже.
В моем примере index.html даже не является валидным html файлом, но если есть желание, то можно сделать большую и красивую страницу (тут только нужно учитывать, что все внешние файлы, картинки, цэ-эс-эс-ки и все такое нужно размещать на другом сервере)
План яндекса
Цитирую яндекс: “Возможно, такой подход поможет нам к началу весны … все-таки завоевать мир. ” http://company.yandex.ru/blog/index.xml?&msg=104430&month=10
Михаил Донской на Радио Свобода
Очень рекомендую прослушать запись радиопередачи с участием Михаила Донского: http://itblogs.ru/blogs/pod/archive/2007/12/16/24195.aspx. Тема передачи — образование для программистов. Очень интересно, несмотря на то, что этой записи более года.
PS мега жаль, что подкасты на
itblogs.ru уже год не обновлялся.
PPS а вот еще статьи Михаила Донского:
http://itblogs.ru/blogs/donskoy/default.aspx
Мой первый скринкаст
Я записал свой первый скринкаст! Он рассказывает про то, что такое irc и как этим пользоваться. Посмотреть его можно вот тут: http://bessarabov.ru/screencast/.
История повяления скринкаста такова: на работе мне задали вопрос по перлу (нечто сложное про регулярные выражения). Ответа я не знал, но очень быстро получил ответ на канале #perl сервера irc.perl.org. Как оказалось, irc умеют пользоваться не все и для того, чтобы показать что это за штука я и записал этот скринкаст. Писал его без всякой подготовки, то есть все что можно увидеть - это полный экспромт.
Строго не судите, это первый блин (но все-таки не очень комом), но мне понравилось, так что будут еще выпуски =)
Eclipse vs Vim
С большим удовольствием посмотрел скринкаст Eclipse: знакомство, плагины. Большое спасибо лектору Сергею Чикуеноку, а так же Студии, которая выложила эту вещь в открытый доступ.
Для веб разработки (perl, html, css, javascript, xml, xsl) я всегда иполььзую редактор Vim.
Vim мне очень нравится так:
- как он существует практически везде
- очень быстро работает в консоле на удаленной машине
- безумно удобен
- главное - он мне очень нравится
Во время просмотра видео про Eclipse, я записывал все фичи, которые мне нравились. Сделал я это, чтобы найти возможность делать то же самое и в виме.
Ниже следуюет список приятных фичек Eclipsa, а так же описание как достить того же в виме (не для всех вещей я знаю, как это сделать, я буду постепенно выискивать и дописывать сюда).
Special thanks goes to rafl, perl hacker, how helped me much with writing this post.
TODO’s
В Эклипсе есть очень удобная штука: в коде можно оставить специальный коммент (например TODO или FIXME), Эклипс в отдельном окне показывает список этих пометок, и можно очень просто перейти на этот файло на эту позицию.
Как реализовать в VIM: пока не ясно.
Форматирование
Эклипс умеет, с помощью специальной команды из неотформатированного текста делать очень и очень красивый код.
Перловый код в виме можно отформатировать с помощью perltidy:
:set equalprg=perltidy\ -pbp
Вводится команда выше, выделяется текст, который нужно отформатировать и нажимается на кнопку “=”.
Как в виме форматировать html/css/javascript/… пока не ясно.
Автодополнение
В эклипсе есть достаточно интеллектуальное авто дополнение. В виме есть автодополнение по ctrl+p и, вроде как, еще что-то (искать по слову “omni”). Вот ссылка на скрипт omniperl.
Документация
Например в JavaScript есть такая штука как JSDoc. С помощью нее в комментарии записывается описание кода. Так вот, Эклипс отображает документацию на функцию при написании названия функции (например). Очень удобно, так как в доке можно описать как она вызывается, что делает и что возвращает.
Как сделать в виме: пока не ясно.
Версионность файлов
Эклипс сохраняет промежуточные состояния файлов, т.е. можно в любой момет посмотреть, как выглядел файл месяц назад, а так же сравнить разные версии и перетащить изменения из предыдущих версий файла в текущую.
Существуют svn и другие системы контроля верий, но иногда удобно иметь историю изменений и в svn и локально.
Аналог в виме: неизвестно.
Полоска overview
У эклипса существует удобный элемент управление, который называется overview. Это необльшая полоска, которая находится справа от вертикальной полосы прокрутки кода. Она логически соответствует файлу который редактируется - на ней отображаются разые метки (например, все найденое при поиске, строки с ошибками, etc). При клике на меке, происходит переход на стрку, которая соотвествует этой метке.
Подбная штука есть в chrome, а так же Артем Горбунов нечто подобное делал.
Как реализовать в vim: no idea.
Remote System Explorer
Отличная штука в Эклипс, с помощью которой возможно работать с кодом, который расположен вне локальной машины. Т.е. есть сервер на котором расположен код, к нему есть доступ (telnet, ssh, ftp). С помощью Remote System Explorer можно подключится к этому серверу и работать с кодом, как будно бы он расположен локально.
Аналог в виме неизвестен. Но в случае вима в таком функционале нет большой необходимости. Вим можно поставить (а скорее всего он уже стоит) на удаленный сервер и запускать его в терминале.
| M | T | W | T | F | S | S |
|---|---|---|---|---|---|---|
| « Jun | ||||||
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | |||