Статистический взгляд на эволюцию WordPress

Возвращаясь к моей недавней борьбе с ненормальной работой новой версии WordPress 3.0.1 хочу показать несколько найденных мною статистических изысканий других блогеров.

Вот заметка от создателя антипода WordPress-a – MaxSite CMSЭволюции WordPress посвящается. В заметке автор провёл исследование потребления памяти скриптами WordPress-а. Выводы в общем неутешительные для авторов движка.
Вот так выглядит график использования памяти и тренд на увеличение, собственно, не собирается меняться: WP 3.0.1 отъедает 22 МБ выделенной памяти.

Посмотрев на этот график, я бы, на месте авторов, задумался не над остановкой выпуска новых версий ради реорганизации окружения WordPress (реорганизация сайта, форума, документации, хранилища тем и плагинов), а над усиленной работой по оптимизации работы с памятью.

Ну конечно существуют и вполне объективные причины увеличения используемой памяти – WordPress всё-таки очень сильно наростил функциональность к версии 3.0.1 по сравнению с первой официальной версией 0.7. Вот, например, эволюция пользовательского интерфейса WordPress.

Французский блогер Ozh собрал интересную статистику по всем основным версиям (54 релиза) WordPress, хотя сам почему-то он их назвал “бесполезными фактами”. Например, размер zip-файла с исходным кодом от 225 кб версии 0.7 вырос до 2897 кб в версии 3.0.1, т.е. более чем в 10 раз. Табличка с подробно статистикой по размерам файлов, количеству и типам можно посмотреть здесь. По этим данным были составлены интересный графики.

Кроме так сказать физических характеристик Ozh изучил и внутреннюю структуру движка и выяснил несколько IнTересных фактов:

  • В последней опубликованной версии WordPress 3.0.1 объявлено 3240 php-функций.
  • В первой версии (0.7.1) было всего 309, т.е. более чем в 10 раз меньше
  • Всего во всех версиях WordPress было объявлено и использовано 3920 php-функций
  • В среднем каждый номерной релиз “.X” (2.1, 2.9…) содержал 225,2 новых функций
  • Только один релиз был “худее” предыдущего: версия 1.2.1 содержала на 23 функции меньше чем предыдущая версия 1.0.2
  • Самый “мощный” релиз – WordPress 2.8 – добавил сразу 569 новых функций. Больше всего функций (121) было удалено с выходом версии 1.5.

Ещё один график по количеству функций в различных версиях (остальное на сайте автора):

Закончу фразой из анекдота:

– И вот теперь со всей этой фигнёй мы попробуем взлететь.


IнTересные ссылки №7 (2010-08-19)

Здравствуйте уважаемые читатели IнTересностей.
Представляю вашему вниманию очередной выпуск IнTересных ссылок. Этот выпуск пройдёт под знаком, неотвратимо надвигающегося на фрилансеров, нового Налогового Кодекса Украины – в выпуске вы найдёте несколько ссылок с обсуждениями проекта НК.

[IнTересные ссылки]

[IнTересное видео]

[IнTересный юмор]
Сегодня опять без юмора – наверное этот раздел всё-таки отомрёт.

[IнTересные обсуждения]

Какой-то не очень позитивный выпуск вышел, но вот как-то так в этот раз.
Спасибо за внимание и до следующих встреч.


WordPress 3.0.1 и Allowed memory size of exhausted

Вчера вечером решил всё-таки перейти на новую версию блого-движка WordPress. На текущий момент это версия 3.0.1. Т.к. уважаемый Lecactus забил на переводы, пришлось скачивать новую версию с официального сайта. Были выкачаны и английская, и русская версии.

Естественно перед установкой новой версии нужно сделать копию базы и, по возможности, всех файлов блога – что и было сделано.
Кстати копию базы делает у меня плагин WordPress Database Backup по расписанию и делает это очень успешно. Копия файлов была сделана ручками (особенно не забывайте о wp-contents где хранятся все темы, плагины и медиа-файлы, используемые в вашем текущем блоге).
Кстати ваши медиа-файлы могут находится и в другой папке – это зависит от настроек!

Так вот собственно к чему я пишу это всё – после перехода на новую версию сам блог остался в рабочем состоянии, а вот административная часть оказалась абсолютно в нерабочем. Практически любая страница загружалась или наполовину, или не загружалась совсем с ошибкой “Allowed memory size of exhausted“. Дело в том, что мой текущий тариф у хостера подразумевает выделение только 32 Мб для работы php скриптов. Однако этого для работы новой админки оказалось недостаточно. После долгих танцев с бубном проблема была конечно решена (наполовину) – админка заработала в полном объёме, но пришлось её оставить на английском, т.к. перевод на русский занимает слишком много памяти и, при включённой директиве define (‘WPLANG’, ‘ru_RU’); в файле wp-config.php, админка не загружалась совсем – White Screen of Death (WSOD).

Вариантов решения проблемы на самом деле несколько:

  1. Увеличение доступной памяти для php скриптов.
    Это также можно сделать несколькими способами (если есть соответствующий доступ к файлам):

    1. В файле php.ini изменить установить параметр memory_limit = 64M (по умолчанию 32Мб);
    2. В файле .htaccess прописать директиву php_value memory_limit 64M
    3. В файле wp-config.php прописать define(‘WP_MEMORY_LIMIT’, ’64M’);

    Все эти вариант сработают если у вас есть права на соответствующие изменения. Мой хостер (да и большинство других) запрещает изменять доступный объём памяти таким образом, поэтому для большинства такой способ, к сожалению, не подойдёт.

  2. Следующий способ чтобы хоть как-то избавится от WSOD заключается в том, что необходимо деактивировать все активные плагины. Во всяком случае мне это помогло увидеть админку. Для этого пришлось вернуть старую версию WordPress 2.9.2. Затем (не меняя версию) я установил довольно полезный плагин WP-Memory-Usage. Плагин выводит в подвал админки информацию об используемой памяти.

    Затем я опять обновил версию до английской 3.0.1 – с русской версией админка не работала даже при всех деактивированных плагинах. Админка чистого движка (ну с одним активированным плагином) отъела 25 Мб из 32. Затем я обновил все плагины до последних версий и стал активировать все необходимые мне. Всё нормально активировалось и вот сейчас используется Memory : 26.92 of 32 MByte

  3. Однако на этом танцы с бубном русским WordPress-ом не заканчиваются.
    Чтобы оживить админку и при этом оставить русский интерфейс для блога (все названия месяцев, дней недели и т.д., видимые для посетителей блога) – пришлось сделать вот такой финт ушами. В конфигурационном файле wp-config.php необходимо закомментировать define (‘WPLANG’, ‘ru_RU’); и прописать такую конструкцию
    if (strpos($_SERVER[‘REQUEST_URI’], ‘wp-admin’)) define (‘WPLANG’, ‘ ‘); else define (‘WPLANG’, ‘ru_RU’);
    Это будет означать что для блога используется русский язык, а для админки – язык по-умолчанию, т.е. английский.

    Я попробую перевести админку (основываясь на переводах Lecactus-а) и выложить чуть позже (если получится).

Вот собственно именно таким получился у меня переход на новую версию WordPress.

Кстати, совершенно забыл, рекомендую удалить неиспользуемые плагины – они тоже отъедают выделенную для php-скриптов память!

P.S.
Кстати, а никто не замечал, что как бы ни было написано слово

wordpress

(спасают только теги pre) – оно автоматически преобразуется в WordPress (большие буквы W и P).


Firefox 3.6.8

Не прошло и трёх дней, как компания Mozilla выпустила очередное обновление браузера Firefox – версия 3.6.8.

В данной версии исправлена лишь одна критическая ошибка, которая неожиданно появилась в версии 3.6.7, хотя была найдена ещё в 3.5.11 и исправлена в последующих версиях. Ошибка связана с обработкой повисших указателей в массиве параметров плагина. Это приводило к потенциальной возможности атаки, путём внесения вредоносного кода в блоки памяти, но которые ссылались такие указатели.

Странно что по этому поводу нет никакой информации на официальных ресурсах, то ли проверяют до сих пор, то ли хотят включить в релиз ещё что-то. Хотя непонятно – мой браузер уже обновился сам, т.е. все остальные изменения должны пойти следующей версией. А возможно у них там просто выходной 🙂

Самостоятельно, не дожидаясь автоматического обновления, можно в ручном режиме через главное меню: [Справка] — [Проверить наличие обновлений…]


Firefox 3.6.7

На сайте mozillalinks.org появилось сообщение о выходе следующего релиза браузера Firefox – номер релиза 3.6.7

Сообщается об исправлении 126 ошибок и 14 уязвимостей, 8 из которых признаны критическими.

Обновление, как всегда, будет предложено всем пользователям в течении 48 часов. Однако я рекомендую обновится в ручном режиме через главное меню: [Справка] — [Проверить наличие обновлений…], всё-таки сразу 8 критических уязвимостей.


IнTересные ссылки №6 (2010-07-09)

Здравствуйте уважаемые читатели IнTересностей. Сегодня я решил выпустить очередные (6-е по счёту) IнTересные ссылки. В сегодняшнем выпуске будет только два подраздела: ссылки и видео

Итак приступим.

[IнTересные ссылки]

[IнTересное видео]

[IнTересный юмор]

[IнTересные обсуждения]

Спасибо за внимание и до следующих выпусков.


Яндекс-почте 10 лет

26 июня почтовый сервис Яндекса отпраздновал своё десятилетие. Всем пользователям сервиса, зашедшим через веб-интерфейс показали практические персональное приветствие и количество лет, которое пользователь уже отдал этому сервису.

Вот такой баннер показали мне, хотя почему-то мне кажется что свой почтовый ящик на Яндексе я завёл намного раньше:

На промо-сайте десятилетия Яндекс-почты можно раздобыть себе вот такую марку:

Яндекс.Почте 10 летЯ.Почта у меня 3 года

Лично я очень доволен этим ящиком – минимум спама, быстрый интерфейс – что ещё надо простому пользователю!


Firefox 3.6.6

Компания Mozilla решила не откладывать в долгий ящик выпуск следующей версии своего флагманского продукта и выпустила следующую версию браузера Firefox 3.6.6

Напомню, что данная версия нумероваться как 3.6.6 (а не 3.6.5) потому, что сделано это для синхронизации с нумерацией мобильных версий Firefox.

Итак, столь быстрый выпуск нового релиза обусловлен только одним усовершенствованием – увеличением времени отзыва того или иного плагина до выдачи сообщения о его (плагине) падении. О чём собственно речь. Предыдущая версия браузера (3.6.4) ознаменовалась архитектурными изменениями в структуре браузера – работа плагинов (не путать с расширениями) вынесена в отдельный процесс операционной системы.

Вот что по поводу нового релиза написано в официальном блоге:

Сегодня (26 июня 2010 года) мы выпускаем обновление для системы предотвращения сбоев и увеличиваем время, которое Firefox будет ждать перед тем, как выгрузит зависший плагин.

Система защиты от сбоев, представленная в Firefox 3.6.4, защищает пользователей Windows и Linux от падения или зависания браузера из-за сторонних плагинов, таких как Flash или Silverlight. Когда плагин зависает, пользователь может просто перезагрузить страницу для перезапуска плагина и продолжить просмотр страницы. Когда плагин зависает и делает зависшим весь браузер, Firefox 3.6.4 выгружает его после 10-и секундного ожидания. Все эти изменения тестировались на большой аудитории – около одного миллиона пользователей.

После выхода Firefox 3.6.4 мы стали получать сообщения от пользователей, у которых старые компьютеры, что они хотели бы чтобы период ожидания был несколько больше, особенно на страницах с играми. Для таких пользователей период в 10 секунд был очень коротким. С соответствии с этим мы увеличиваем размер периода с 10 до 45 секунд. Это изменение и сделано в Firefox 3.6.6, который и выйдет сегодня как автоматическое обновление.

Для меня конечно это представляет некоторую загадку – почему нельзя просто ввести параметр в about:config и не парить себе мозг с обновлениями? Каждый установит себе тот период, который пожелает.
[UPD]
Это я поторопился с выводами – параметр в about:config всё-таки есть – dom.ipc.plugins.timeoutSecs и теперь его значение по-умолчанию 45 секунд. И всё-таки непонятно – то ли этот параметр добавили только в 3.6.6, то ли 3.6.6 всё-таки выпустили зря – можно просто было бы написать инструкцию какой параметр менять и не “портить” номер релиза. Скорее всего, всё-таки, просто выровняли нумерацию версий в обычной и мобильной версиях Firefox, воспользовавшись таким мелким предлогом.

Как и всегда обновиться можно через главное меню: [Справка] — [Проверить наличие обновлений…]


Firefox 3.6.4

22 июня вышел очередной релиз браузера Firefox – Firefox 3.6.4 Данный релиз – это очередной шаг к выпуску Firefox 4, в котором разработчики кардинально поменяют саму архитектуру приложения. Основной особенностью данной версии является отделение работы плагинов (не путать с дополнениями) в отдельные независимые процессы. Т.е. теперь при падении или нестабильной работе плагина не будет страдать весь браузер целиком и не нужно будет перезагружать все вкладки. Кроме этого исправлено несколько критических ошибок. Подробнее можно увидеть в полном списке изменений.

Напомню, что изначально выделение плагинов и вкладок в отдельные процессы планировалось в версии Firefox 3.7, однако разработчики посчитали что такая кардинальная переработка архитектура стоит новой номерной версии, поэтому версии 3.7 не будет – выйдет сразу Firefox 4.0

В случае сбоя одного из плагинов страница в браузере будет выглядеть вот так (источник):

Также напомню что есть специальная страничка на сайте Mozilla – проверка плагинов на актуальность, на которой любой пользователь сможет посмотреть какие плагины ему стоит обновить для стабильной и безопасной работы с браузером Firefox.

Скачать Firefox 3.6.4 можно с официального сайта. Для постоянных пользователей придёт уведомление что браузер нужно перезапустить, т.к. обновление установилось. Это произойдёт в течении 24-48 часов.
Самостоятельно можно обновиться через главное меню: [Справка] — [Проверить наличие обновлений…]

Сообщается также, что следующая версия будет нумероваться как 3.6.6 (т.е. 3.6.5 не будет) – сделано это для синхронизации с нумерацией мобильных версий Firefox.


WordPress 3.0

После, более чем, полугода разработки вышла финальная версия WordPress 3.0. Версия получила кодовое имя WordPress 3.0 “Thelonious” в честь выдающегося джазового пианиста и композитора Тело́ниуса Монка.

Немного странная позиция разработчиков в связи с наименованием своих версий (напомню – одна из предыдущих версий (2.8) была названа в честь Чета Бэйкера (Chet Baker) – джазового трубача и певца). Странность же, с моей точки зрения, заключается в девизе “Code is poetry” – т.е. “Код – это поэзия”. Написали бы просто – “Code is jazz” 🙂

Немного информации о новой версии (тезисно):

  • полгода разработки;
  • 218 человек вносили правки в код
  • исправлено 1217 ошибок
  • версия 3.0 это тринадцатый основной релиз
  • скачать WordPress 3.0 можно здесь или обновиться через панель администрирования в любом блоге
  • по-умолчанию устанавливается новая тема, которая называется Twenty Ten (2010 – год релиза)
  • разработчики тем получили новый API, который позволяет просто управлять фоном, заголовком, ссылками, меню, типом записей, свойствами объектов.
  • слияние MU и WordPress, т.е. теперь одна инсталляция и сколько угодно блогов на ней
  • полный список всех нововведений можно посмотреть в Кодексе
  • количество скачек WordPress 3.0 (информация обновляется динамически)

Очень оригинальные планы на будущее от Мэта Муленвэга:

По хорошему вы ожидаете что я скажу – мы начали работу над версией 3.1 – однако я не скажу этого. Мы отойдём от выпуска релизов и сфокусируемся на вещах вокруг WordPress. Рост сообщества впечатляет – 10,3 миллионов раз скачали версию 2.9. Однако на разработке WordPress было сосредоточено так много наших усилий, что на все остальное не хватало времени. В ближайшие три месяца мы разделимся на команды и сосредоточимся на различных аспектах WordPress: Кодексе, форумах, профилях, обновлении и совместимости API, темах, плагинах, списках рассылки, плагинах «ядра», wordcamp.org и т.д. Цель этих групп не совершенствовать все и сразу, а просто сделать что-то лучше, чем сегодня. Мы надеемся, что это время послужит для роста аудитории WordPress.org на десятки миллионов пользователей, присоединившихся к нам при работе над веткой 3.х.

Ну я как обычно сразу обновляться не буду – ждём неделю-две :). И я всё же очень надеюсь, что наконец-то возьмусь за новый проект, относящийся к WordPress – ждите анонсов.