Последнее время стал замечать за собой, что мне процесс программирования как таковой - не очень то и интересен. Мне даже не так интересен процесс решения каких-либо программных проблем. Больше всего меня волнует процесс и результат оптимизации. Собственно замечать я это начал после того, как скачал с сайта MaxSite.org стааарую версию Wordpress, ещё 2.3.3. Максим писал, что она потребляет значительно меньше системных ресурсов, чем новые версии блог движка. Как я уже писал не раз - я использую свою сборку, более лёгкую, Wordpress, в планах ещё чуть облегчить её, и в принципе можно будет публиковать. В общем я сравнил два скрипта новенький 2.6 и старый, 2.3, тестировал я в боевых условиях, поскольку нагрузку которую вызывает моя версия я примерно знаю, а вот сборку Макса я потестировал так - написал пару статей, и опубликовал их (обычно публикация даёт 200 переходов/сутки непосредственно на блог). Ну и по прошествии суток сравнил, и всё таки старый блог оказался тяжелее процентов на 30, памяти - безусловно, ест меньше, однако на главной странице делает ~ 30-40 запросов, против обычных 13-14 в новой версии. Кстати, MaxSiteCMS которую Максим разрабатывает - очень хорошая штука, пользовался бы с удовольствием, но...
Собственно все эти тесты подвигли меня на написание своего движка, причем несколько необычного. Необычный он тем, что никакой динамики при генерации страниц - нет, скрипт генерирует все страницы один раз - когда запускается на локальной машине. Пишу я движок на славном языке программирования - Perl, который я выбрал среди всех достаточно неплохих(Python в спарке с Django, различные пхпшные фреймворки, Ruby ...) И выбрал его как раз из-за того, для чего он собственно и проектировался - работа с текстом. Был написан достаточно простой шаблонизатор, который позволяет быстро работать с возможными вариантами компоновки страниц.
На текущий момент в скрипте реализован только небольшой парсинг экспортного скрипта Wordpress(Пока только вывод всех постов в одно большое полотно + распихивание их по папкам согласно шаблону Год/Месяц/День/Название/index.html). Самой большой проблемой на текущий момент является - реализация комментариев(не совсем понятно как их реализовывать, то ли динамическив страиванием комментариев в текст страницы, то ли надо как то работать с базой данных) и реализация всей этой вебдванольной модной фигни, типа облака тегов и.т.д ну и + САМЫМ для меня сложным является верстка шаблона. Я знаю, что текущий блога вообще не работает нормально с IE, поэтому есть цель попробовать написать новый, более качественный шаблон, соотсветствующий моим вкусам.
На реализацию этой концепции движка меня сподвигла идея Movable Type(о генерации статики) и некоторый опыт с работой с nginx... Вот nginx меня вообще поразил, пока апач отдавал страничку сделанную на php(простенький аналогичный скрипт), nginx буквально сразу отдал(ну некоторое время на загрузку данных потратилось) в считанные доли секунды ровно ту же самую страницу, но статичную. Это был для меня достаточно большой шок. Я и раньше много читал про nginx, но личный опыт - превозмог всё...
P.S Перестроил систему, переделал чуть-чуть init скрипты(для небольшого ускорения загрузки, я до сих пор под впечатлением от загрузки за 5 секунд). Перестройка дала небольшое улучшение всего порядка пары секунда + ещё пару секунд дала пересборка системы apt-build'ом(итого 40, ниже вообще никак не выходит), кстати система стала работать заметно быстрее. Я бы даже сказал в разы. Очень жалею, что компьютер староват, хотелось бы всё таки два ядра, тогда можно было бы эффективно распараллелить загрузку, думаю секунд 10 бы дало.
P.P.S. Столкнулся с странным багом - http://img.librarian.spb.ru/7c826cd12eb9cdc0a1fcaa43710a0e11.png страннейшие черные линии вокруг окон, появились хз изза чего, после обновления до Interpid.
При загрузке, например, gedit, выдаёт -
.themes/MurrinaDuoClean/gtk-2.0/gtkrc:68: Murrine configuration option "hilight_ratio" will be deprecated in future releases. Please update this theme to get rid of this warning.Причем, и убирал, и менял значение, ничего не меняется.