При программировании часто приходится сталкиваться с необходимостью быстро внести определённые уже известные изменения в код, например, если вышла новая версия, либо исправлена какая-нибудь ошибка. В Unix для этих целей, как правило, используется “сладкая парочка” diff и patch. Утилита diff анализирует указанные файлы (каталоги) на предмет внесённых изменений и выдает результат в специальном формате. Используя эти данные, с помощью другой утилиты patch можно быстро применить изменения для других файлов.

По какой-то причине, данный подход не получил широкого распространения при программировании под Windows и для PHP. Так, например, разработчики популярного форума phpBB для публикации модицикаций (по другому mod-ов) используют обычные текстовыми файлы (а начиная с третьей версии – специальные xml файлы) с инструкциями для ручного изменения кода. Создание данных файлов – достаточно кропотливое занятие и отнимает очень много времени и сил.

Немного поискал и нашёл данные утилиты под Windows (взял из дистрибутива FPC – Free Pascal Compiler), положил здесь, надеюсь, кому-нибудь пригодится.

Недавно, в связи с покупкой SUN компании разработчика MySQL, я задавался вопросом, каким образом SUN зарабатывает на свободном ПО. На пресс-конференции, которая прошла в минувшую среду, президент SUN Джонатан Шварц, рассказал о стратегии компании в отношении свободного ПО. Компания считает, что предоставление свободного ПО пользователям в дальнейшем окупается покупкой этими пользователями аппаратных решений SUN, коммерческих лицензий, и контрактов на поддержку. Эта стратегия началась несколько лет назад с бесплатной версии своего сервера приложений и усилилась с такими продуктами, как StarOffice, OpenSolaris, системы виртуализации Open xVM, и совсем недавно приобретённой MySQL.

Наверное, всё действительно так и есть, но мне кажется, что в наших условиях это пока что мало применимо.

Firefox 3 Beta 3

14.02.2008

Firefox

Несколько дней назад разработчики Mozilla объявили о выпуске третьей бета версии третьей версии браузера Firefox. Скачать данную бету можно здесь. В данной версии можно протестировать новые функции и возможности, которые появятся в финальной версии Firefox 3. Несмотря на то, что сейчас многие пользуются Оперой, я с момента выхода первой версии остаюсь приверженцем “Огненной лисы” (её можно разглядеть на логотипе), и пока привычке изменять не собираюсь.

FLEUROPНесколько дней назад у шефа загорелась идея подарить на день рождения сестре, которая сейчас учится в Германии, букет цветов. После анализа рынка предложений решили сделать заказ именно в Германии и остановились на сайте FLEUROP (просто фотографии цветов шефу больше понравились). Поскольку с немецким я вообще не знаком, то в процессе оформления заказа пришлось воспользоваться здравым смыслом и переводчиком от Google, который позволяет делать перевод с немецкого на привычный для меня английский язык. Понравилось, что помимо собственно цветов в заказ можно заказать различные дополнительные аксессуары. К букету заказали плюшевого медвежонка, коробку конфет и указали необходимую дату доставки. Оплату произвели виртуальной картой Народного банка (у шефа была такая). Через некоторое время по электронной почте пришло подтверждение, что заказ принят. Сегодня с поистине немецкой пунктуальностью заказ был доставлен. Интересно, если организовать подобный сервис по Казахстану, будет ли на него вообще какой-нибудь спрос?

Support GoPHP5.orgГруппа разработчиков языка PHP организовала проект GoPHP5.org, назначением которого является агитация программистов, администраторов и разработчиков приложений к переходу на пятую версию. С пятого февраля ряд проектов и хостеров, полный список которых имеется на сайте, обязуется перейти на PHP 5, и в минимальных требованиях указывать версию PHP 5.2. Дата была выбрана исходя из цифр версии PHP, которые можно трактовать как дату 05/02.

Совершенно случайно натолкнулся на интересную новость:
“16 января 2008 г. – Санта-Клара, Калифорния — Сегодня корпорация Sun Microsystems объявила о заключении окончательного соглашения о приобретении компании MySQL AB – легендарного создателя систем с открытым исходным кодом и разработчика одной из самых быстрорастущих баз данных с открытым исходным кодом в мире – за общую сумму приблизительно 1 миллиард долларов.”

Думаю, что приобретение никак не отразится на этом хорошо зарекомендовавшем себя продукте, и разработка будет продолжаться. Но, интересует другой вопрос: какая выгода Sun от продукта с открытым исходным кодом, или это такой вид благотворительности?

Недавно (недели две назад) ко мне обратились с просьбой решить проблему с “медленными запросами” на форуме phpBB второй версии. Хостер (1Gb.ru) предоставил проблемные запросы, и я, особо не задумываясь, просто закомментировал их вызовы, тем более что уже была готовая наработка (mod).
На этих выходных опять пришло предупреждение от хостера, в этот раз я решил подойти к делу более основательно. Внимательно просмотрел запрос, обратил внимание на наличие индексов по запрашиваемым полям, некоторое сомнение вызывало наличие в запросе IN с большим списком ID, но, прочитав документацию по MySQL, убедился, что такие запросы при наличии индекса без проблем оптимизуются сервером. Спросил тех. поддержку хостера, с чем может быть это связано, получил потрясающий ответ, что IN вообще не подлежит оптимизации. Я подобные вещи ещё вручную делал на Клиппере с dbf базами.

При помощи команды EXPLAIN посмотрел потребляемые запросом ресурсы – действительно, по какой-то причине сервер просматривал большое количество строк, и использовались tmp (временные таблицы) для filesort. Начал гуглить, из-за чего такое возможно, и в одном месте наткнулся, что кому-то помогла SQL команда ANALYZE TABLE. Попробовал проделать данную операцию со всеми таблицами, участвующими в запросе, и действительно, проблемный запрос стал оптимизироваться, как ему и положено.

Отписал хостеру. Думаю, что они сделали оптимизацию индексов на SQL сервере, поскольку у другого обратившегося с подобной проблемой человека я её уже просто не обнаружил.

В последнее время понемногу принимаю заказы на различные технические работы, в основном по форуму phpBB. Поскольку мошенничество имеет место быть как и в обычной жизни, так и в Интернете, потенциальный заказчик всегда интересуется вопросом, можно ли мне доверять. Интересно, если сделать портфолио, исчезнут ли подобные вопросы? С другой стороны, не представляю, какую информацию там размещать? Я же не дизайнер, качество работ которого можно оценить визуально. А информация типа “сайт такой-то, исправлена ошибка с загрузкой вложений в сообщениях на форуме” большинству людей будет малопонятна, да и проверить не всегда получится. Пока нахожусь в раздумьях, может в комменты кто-нибудь дельное напишет.

Сегодня пытался сделать в WordPress такую простую вещь – исключить из показа на главной странице посты с определённой рубрикой. Сначала по привычке пошёл в лоб, следуя принципу “исходный код – лучшая документация”, просидел около часа разбираясь с вызовами функций и объектами, в итоге бросил (отложил до лучших времён). Вечером сел читать кодекс WordPress, и вуаля, буквально через несколько страничек, идёт пример моего случая, и ссылка на более правильную реализацию. В итоге понадобилось добавить в файл темы всего три строчки кода. Обожаю WordPress.

if (is_home()) {
	query_posts($query_string . "&cat=-3");
}

Стало уже традиционным подарком от налоговой и государства, ежегодное понижение ставки налога на добавленную стоимость (НДС). Не стал исключением и этот год. Поэтому, выйдя на работу 3 января, пришлось заниматься внесением изменений в конфигурации любимой всеми бухгалтерами 1C. Используемая нами конфигурация уже достаточно древняя (более 7 лет), и ставки НДС были зашиты прямо в конфигурацию и в поля некоторых документов. Кардинально переделывать конфигурацию желания никогда не было, поэтому ограничивались косметическими изменениями, в итоге на смену ставки НДС у меня обычно уходило не более трёх часов. Поскольку напрочь отсутствует привычка записывать свои действия, то пришлось заново вспоминать все производимые год назад манипуляции. Всё удалось нормально, но вчера выяснилось, что я всё-таки забыл про один важный документ. Теперь, как путёвый, нарисовал конспект с последовательностью действий, только подозреваю, что в свете нового бухгалтерского плана счётов он вряд ли понадобится.