Сен 02

Перевод интервью Мэта Муленвэга (Matt Mullenweg) – автора WordPress

Как возникла идея создать WordPress и почему ты решил сделать его бесплатным?
WordPress реализовывал мои пожелания, каким должен быть продукт для ведения блога чтобы сделать мой сайт лучше, и избавлял от разочарования существующими решениями, которые по ощущениям были слишком сложны и тяжелы для использования. WordPress был основан на существующем продукте, который назывался b2 и распространялся по лицензии GPL, поэтому естественно он также стал распространятся по лицензии GPL и сохранять свободу для пользователей.

Как ты зарабатываешь на нём и что планируешь делать дальше чтобы зарабатывать ещё больше?
5 лет назад я основал компанию Automattic для создания коммерческих сервисов для WordPress – это позволило выйти на рынок. Первым был антиспам сервис Akismet, который позднее был использован WordPress.com, Gravatar, Polldaddy, IntenseDebate, VideoPress, VaultPress, и многих других.

Как организован процесс разработки: сколько разработчиков у тебя есть, они с полной/частичной занятостью, они сидят в офисе (где?) или работают удалённо? Какая IDE и какую среду они используют, работая над WordPress?
Сейчас около 200 активных участников разработки ядра WordPress, все они добровольцы. Некоторые (включая Automattic) получают зарплату за вклад в WordPress. Специальной среды разработки нет, каждый использует то, что ему наиболее удобно.

Какое влияние оказывает WordPress на рынок и как это влияет на конкурирующие продукты (коммерческие и бесплатные)?
WordPress сейчас – это, определённо, самая распространённая платформа для публикации контента, но есть и отличные конкуренты – например, Blogger. Инновации на рынке это хорошо, потому что они подталкивают нас вперёд.

Начиная с версии 2.3.3 наибольшая часть изменений связана с админ-панелью и удобством пользования, а не с оптимизацией кода. Можем ли мы надеяться что в один прекрасный день движок станет оптимальнее?
Мы постоянно переписываем, рефакторим и оптимизируем код WordPress – часто это 10-20% за один релиз. Начиная с 2.3.3, наверное 95% кода было переписано. Такой неспешный процесс усовершенствования кода лучше чем полное переписывание, потому что каждое изменение тестируется нами для сохранения обратной совместимости.

Планируете ли прекратить поддержку PHP4 и прекратить использование deprecated.php?
Да, в 2011 году.

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

Вы поощряете разработчиков плагинов и тем?
Я уверен, что многие разработчики тем и плагинов высоко вознаграждены за свою работу. Мы не платим деньги за что либо с WordPress.org.

Добавите ли какие-нибудь плагины в коробочную версию кроме Akismet и Hello Dolly?
Скорее всего нет.

Что ты думаешь по поводу того, что WordPress превращается из блого-движка в полноценную CMS?
Это достаточно нормальный процесс, который начался после реализации возможности создания страниц (Pages). Больше половины всех новых инсталляций WordPress не используются как блоги вообще.

Если бы сейчас ты начинал писать WordPress с нуля – на что бы он был похож?
Начиная с сегодня я бы пожалуй отказался от некоторых возможностей, которые практически не используются, например blogroll manager, и сфокусировался больше на SEO и социальной интеграции.

Что ты думаешь о таких фреймворках как ZendFramework, Сodeigniter, Symfony и т.д.? Ты не думал использовать их при разработке WordPress?
WordPress сам по себе фреймворк, с помощью которого вы можете строить продвинутые и расширяемые приложения.

Какие CMS/CMF тебе нравятся? На какие проекты ты обращал внимание, когда создавал?
Наша страница about упоминает и ссылается на Textpattern, Movable Type и Drupal как вдохновителей.

Спасибо за ответы Мэт!

Авг 20

Возвращаясь к моей недавней борьбе с ненормальной работой новой версии 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.

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

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

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

Авг 18

Вчера вечером решил всё-таки перейти на новую версию блого-движка 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).

Июн 18

После, более чем, полугода разработки вышла финальная версия 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 – ждите анонсов.

Июн 11

Команда разработчиков блогоплатформы WordPress решила выпустить последнюю, перед окончательным релизом, сборку новой версии WordPress 3.0 – Release Candidat 3.

В официальном блоге по этому поводу даже написали хайку:

Last call; final bugs
Itch, scratch, contort; calmly wait

Ссылка для скачивания WordPress 3.0 RC3.
Эта версия хоть и довольно стабильная, и, скорее всего, она и будет финальным релизом WordPress 3.0, но всё же не рекомендуется для установки на боевые проекты – мало ли что. Ждём доработки, точнее отчётов тестеров о том, что всё ОК.

Особое обращение от разработчиков платформы к разработчикам плагинов – тестируйте свои плагины на совместимость (и работоспособность) с WordPress 3.0!

Июн 08

8 июля 1995 года Расмус Лердорф (Rasmus Lerdorf) анонсировал выход первого релиза PHP. Небольшая выдержка из его сообщения в конфе comp.infosystems.www.authoring.cgi:

Announcing the Personal Home Page Tools (PHP Tools) version 1.0.
These tools are a set of small tight cgi binaries written in C.

Краткий перевод заметки на sitepoint.com.

Изначально сокращение PHP обозначало “Personal Home Page”. Расмус начал этот проект в 1994. PHP был написан на C и предназначался для замены некоторых скриптов на Perl, которые использовались на его домашней странице. Некоторые уже настолько стары, что ещё помнят CGI-программирование на Perl – весёлого было мало. Нельзя было встраивать код в HTML и разработка была медленной.

Расмус добавил свой интерпретатор форм и другие библиотеки, включая библиотеки для работы с базами данных. PHP 2.0 родился в этот день 15 лет назад. (Примечание переводчика: Вот тут я немного не понял. Исследования вики проекта не дал каких-нибудь положительных результатов – новости начинаются с 1998 года) 6 июня 1998 года вышла версия 3.0. Парсер был полностью переписан Анди Гутмансом (Andi Gutmans) и Зивом Сураски (Zeev Suraski). Они и сменили имя проекта на “PHP: Hypertext Preprocessor”, которое осталось и по сей день.

Критики говорили что PHP 3.0 был небезопасным, имел ужасный синтаксис и не соответствовал стандартам кодирования (например отсутствовала парадигма ООП). Некоторые из этих замечаний актуальны до сих пор. Несмотря на это, PHP был элегантен и позволял выполнять веб разработки очень легко.

PHP 4.0 вышел 22 мая 2000 года. Была добавлена простейшая объектно-ориентированность и исправлены некоторые ошибки безопасности. PHP 4.0 получил очень большую популярность и до сих пор установлен на некоторых хостингах. Популярные системы, такие как WordPress и Drupal до сих пор совместимы с PHP 4.0, несмотря на то что его поддержка давно прекращена.

Ну и наконец, PHP 5.0, который вышел 13 июля 2004 года. Язык наконец-то получил нормальную реализацию объектно-ориентированного подхода, были исправлены многие ошибки и улучшена производительность.

PHP может быть установлен практически на любую ОС, он установлен на очень многих серверах. Не важно что вы думаете о языке, PHP представляет полноценные возможности для server-side programming и разработки веб-приложений последние 15 лет. И всё ещё впереди.
Конец перевода

Язык фактически бурно развивался и получил признание как раз в то время, когда я учился в Одесском Политехе. Как это ни прискорбно, но за все пять лет обучения (с 1995 по 2000) нам никто ни разу не упомянул его – до сих пор обидно что мы учились во время бурного роста IT-технологий, а проучились чуть ли не на ЕС ЭВМ.

Апр 08

Просьба тем немногим посетителям моего блога не пугаться – с сайтом ничего особенного не случилось. Просто сегодня и завтра (48 часов) мой блог 3-й год участвует в акции CSS Naked Day 2010 – один день без css. Почему акция длиться 48 часов, а не одни сутки, можно прочитать на сайте акции, там, кстати, есть и русская версия.

Акция CSS Naked Day направлена на то, чтобы показать с одной стороны насколько сайты могут некрасиво выглядеть без css, а с другой стороны показать насколько грамотно веб-разработчик написал html структуру страницы – страница должна нормально и логично отображаться и без css.

Присоединяйтесь к нам!
P.S. Кстати сам автор этой идеи что-то не спешит её распространять на 2010 год – последние изменения страницы акции касаются только 2009 года. Ну да мы и сами с усами.

Апр 07

Ну ни для кого не секрет, что с выходом iPad началась новая эра в распространении и использовании мобильных планшетов.
Естественно новый класс устройств добавляет головной боли для программистов и верстальщиков.

Дэвид Уолш (David Walsh) в своей заметке даёт несколько советов как определить что сайт отображается в браузере Safari на iPad.

Вот такую строку User-Agent возвращает браузер iPad-а

Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko)
Version/4.0.4 Mobile/7B334b Safari/531.21.10


Несколько советов как определить в каком браузере отображается сайт

JavaScript

var isiPad = navigator.userAgent.match(/iPad/i) != null;


PHP

$isiPad = (bool) strpos($_SERVER['HTTP_USER_AGENT'],'iPad');



Ну и на закуску совет как перенаправить пользователя на специальную версию сайта, созданную под iPad. Довольно полезно если ваш «нормальный» сайт использует Flash – как известно эта технология в iPad не поддерживается.

.htaccess

RewriteCond %{HTTP_USER_AGENT} ^.*iPad.*$
RewriteRule ^(.*)$ http://ipad.yourdomain.com [R=301]



Я то думал что с повсеместным внедрением мониторов с диагональю от 22″ и разрешением от 1600 пикселей по ширине сайты постепенно будут уходить от «width: 960px». Однако всеми любимое число ещё долго будет в умах верстальщиков и дизайнеров сайтов. Как сказано в одном фильме – «Всё только начинается!».

Мар 31

Нашёл очень IнTересный сайт, но котором сравниваются встроенные в различные браузеры каскадные стили. В основном упор делается на различные версии Internet Explorer-а (IE6, IE7, IE8 и IE9) – сайт собственно и называется www.iecss.com, однако там есть ссылки и на родные стили последних версий некоторых других браузеров (Firefox 3.6.2, браузеров на движке Webkit (r56629) и Opera 10.51).

Для всех версий Internet Explorer-а сделана сравнительная таблица, для остальных браузеров только ссылки на css-файлы.

Просмотрев такие сравнительные таблицы можно по новому приступать к созданию reset.css.

Мар 24

Обнаружил на просторах сети очень интересные таблицы, в которых отражена поддержка браузерами HTML5 и CSS3.

Данные разделены на 5 таблиц:

  • CSS3 свойства (border-radius, box-shadow и др.)
  • CSS3 селекторы (:nth-last-child, :empty и др.)
  • HTML5 веб-приложения (локальные хранилища, геолокация и т.д.)
  • HTML5 внедрённый контент (canvas, audio, video и т.д.)
  • HTML5 формы ввода, атрибуты и аудио/видео кодеки

Вот так это выглядит:

Стр. 1 из 512345