Archive for October, 2008
Заглушка на сайт во время обновления
Задача: обновить веб приложение. Сложность: пользователи не должны работать в момент обновления с приложением, чтобы не нарушить целостностью базы данных .
Решение: на момент обновления вместо страниц ресурса пользователям всегда выдавать страницу с информацией, что сервер на обновлении и с просьбой вернутся чуть-чуть позже.
Если вебсервер 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 можно подключится к этому серверу и работать с кодом, как будно бы он расположен локально.
Аналог в виме неизвестен. Но в случае вима в таком функционале нет большой необходимости. Вим можно поставить (а скорее всего он уже стоит) на удаленный сервер и запускать его в терминале.
Зачем создаются сайты?
Я сейчас дочитываю книгу по google analytics и у меня возник вопрос, на который я сходу не смог ответить — “зачем создаются сайты?”. Для того, чтобы найти ответ, я решил структурировать свои мысли в виде этого поста.
Warning: многие сайты, которые указаны в примерах имеют несколько причин создания, то что я расположил их в какой-то группе, не означает, что они относятся только к ней одной.
Итак, зачем же создаются сайты?
Продержать людей как можно дольше на сайте/привязать людей к сайту
Цель этого — заработать денег на показе рекламы. Примеры: это всякие баши, одноклассники, атипичные хомяки, гугл, яндекс и иже с ними.
Продать что-нибудь
Цель этой группы — заработать денег на продаже товаров/услуг/сервисов. Особая прелесть, когда продается воздух (улучшенный аккаунт в игрушке, или же какой-нибудь доступ к online crm системе). Примером масса, например: амазон, травиан, яндекс деньги и еще многие-многие тысячи.
Создать общественное мнение
Цель — влиять на мысли человечества. Бабло на этом получают от тех, кто “заказывает музыку”.
Примеры, как новостные сайты, так и корпоративные сайты и сайты визитки, к этому же пункту я причисляю блоги.
Вспомнилась чудесная цитата из Дюны Френка Герберта “Люди должны знать, как я хорошо ими управляю. Как же они об этом узнают, если мы сами не скажем им?”
Предоставить информацию
Несколько пересекается с предыдущей группой (главное не перепутать). Дать драйвера для скачки — это предоставить информацию, а вот распиарить насколько будет лучше работать девайс именно с этим драйвером — это уже влияние на общ. мнение.
Поучится/развлечься
Цель — понять, что такое сайты и как их делать. Подавляющее большинство таких сайтов создаются в одиночку и никому кроме создателя нафинг не нужны (достаточно часто они не интересны и создателю тоже). Примеров приводить к этому пункту не буду =)
Уф… Пока больше не придумывается (но скорее всего я что-то забыл).
PS этот пост относится ко всем группам, кроме группы “продать что-нибудь” =)