WordPress, Missed Schedule и др

Ради эксперимента обновил WordPress до версии 2.8. По традиции, в кактусовой версии.

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

Утверждают, что админка стала легче работать — это очень даже возможно. Но мне показалось, что после апгрейда на сервере сразу же осталось меньше свободной памяти и к прежнему уровню за прошедшие дни оно так и не вернулось.  Хотя утверждать, что дело именно в новой версии я не буду, но и обновлять остальные сайты тоже не буду. Тем более, что у меня сервер неплохо «заточен» под WordPress и админки и без того просто летают, а потому разницы между «до» и «после» я не заметил.

Между тем, случайно узнал, что с момента переезда на новый сервер перестал работать отложенный постинг (что в 2.8, что в более ранних версиях). Выглядит это так: штуковина, в принципе, работает, ведет обратный отсчет... А в нужное время ни хрена не публикует и пишет в соответствующем поле в админке «Ну не шмогла я, не шмогла» (Missed Schedule).

Сначала поморщился: ну вот, опять копаться в конфигурации сервера, а там все так неплохо вроде бы... А потом почитал, что пишут в Интернетах, и оказалось, что это известный баг, причем, если у вас два сайта на одной площадке, то на одном сайте все может работать  нормально, а на другом может глючить.  Как выяснилось, публикация отложенных записей в WordPress сделана немного через жопу (подробности, по-английски). К счастью, есть плагин для обхода этого маразма: 5upport WordPress Plugin.

LJ-Crossposter, который я использовал раньше, тоже был связан с тем же глючным куском кода, что препятствовало его нормальной работе с вышеуказанным плагином. Так что ему на замену был поставлен JournalPress, прошу любить и жаловать.

Этот пост был опубликован с использованием отложенного постинга.

UPD. После обновления на «окончательный» вариант кактусового 2.8 пришлось откатиться на 2.7.1. Может быть, что-то где-то недообновилось или недокачалось, однако даже админка не работала и отображалась только частично. Нет времени и желания разбираться, но, возможно, следовало залезть в настройки сервера и увеличить лимит памяти для скриптов — а оно мне надо?

UPD2. Ага. Вот тут в комментариях тоже пишут, что 2.8 памяти стал кушать больше. Зато, якобы, быстрее. Извините: я лучше серверную и клиентскую часть оптимизирую.  Вернее, уже.

UPD3. Пишут, что скоро выйдет 2.8.1, менее прожорливый до памяти.

WordPress — снижение нагрузки // Я б в сантехники пошел...

В общем, в кризис у меня богатый выбор: идти в сантехники или в программисты. А то и совмещать. Даст б-г, не пропаду.

1. На неделе встала проблема повышенных нагрузок на сайт. Причем, как выяснилось, чтобы сайт на WordPress начал создавать недопустимую нагрузку на процессор сервера, много не надо: достаточно 15-20 раз подряд (с паузой не более 0,75 секунды) кликнуть по одной и той же ссылке или просто открыть с предельной скоростью 15-20 страниц сайта во вкладках.

Если недопустимой нагрузкой провайдер называет уже 5 процентов, то таким вот нехитрым кликаньем, если очень постараться, можно вызвать нагрузку, если верить логам, до 28 процентов (!!!). А теперь представим, что кликать начал не один пользователь, а два? Да, проблема актуальна только для виртуального хостинга, да и то есть мысли, как они могли бы это оптимизировать... Но тем не менее проблема существует.

Вспомнив бурную программистскую юность, я (не без участия товарища И. Крейна) наваял-таки плагин, который защищает от таких вот DDoS-еров и любителей покликать. Надо еще тестировать и тестировать, но очевидно одно: максимальная нагрузка на CPU, которую удалось создать в ходе испытаний, равна уже не 28 процентам, а 5,9. К тому же, паразита, которому придет в голову вот так DDoS-ить, плагин забанит раньше, чем означенный паразит сможет создать нагрузку выше 6 процентов.

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

Теперь надо тестировать, так как еще неизвестно, как оно все дружит с другими хостингами и другими «Вордпрессами»...

Желающие потестить плагин могут отмечаться в комменатриях.

Участвовать имеет смысл в тех случаях, когда у вас есть доступ к логам с информацией о нагрузке.

2. Вчера поимел опыт работы сантехником. ;-) Знаете ли, в кухне перестала уходить вода. Вообще. Не то чтобы медленно утекать — нет, совсем не уходит. Перепробовал всё. Даже Хваленое Патентованное Средство За 300 Рублей Один Флакончик (для сложных засоров это доза на один раз)... Сантехник? Какой сантехник в праздники? Если только совсем никакой... Читать полностью...

.masterhost: «На заре ты меня не грузи...»

.masterhost прислал доброе письмо. Говорит, мы обновили серверное ПО и теперь будем контролировать, как ваши сайты нагружают наши процессоры. И если больше стольки-то процентов, то вместо страниц вашего так называемого сайта посетители увидят жопу сообщение об ошибке.

Ну, чувства у меня в связи с этим двойственные.

С одной стороны, когда я переносил свои сайты к ним, я их русским по белому спрашивал: как контролируется нагрузка и какие меры принимаются к нарушителям. Ответили, что особо не контролируется и беспокоиться не о чем.

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

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

Короче, чтобы посетители наших сайтов не видели жопу сообщения об ошибках при перегрузках, мы сели и написали плагин. Который просто не дает ботам Google и «Яндекса» слишком часто просматривать страницы.  Пришлось, правда, с нуля учиться писать плагины для WordPress, но оно того стоило. В жизни пригодится.

P.S. Найдутся, конечно, умники, которые спросят, почему бы не дать соответствующие инструкции ботам «Яндекса» через robots.txt. Ну, вы пойдите и спросите сами у ботов, почему они на эти инструкции срать хотели...

Google Chrome без рекламы

1. Скачайте утилиту Google Channel Changer, позволяющую переключаться между источниками обновления браузера.

Запустив утилиту, перейдите на канал для разработчиков dev (тут надо учесть, что эти версии браузера на самом деле выпускаются для разработчиков и тестировщиков, а потому стабильной работы никто не гарантирует) или на канал бета-версий (это постабильнее будет).

2. Теперь запустите (перезапустите) свой Chrome и обновите программу через меню «Настройка и управление» (иконка с гаечным ключом), опция «О браузере».

Не знаю как у вас, а у меня сервер обновлений программа видит не всегда.

3. Теперь нужно отредактировать ярлык запуска программы (правая кнопка мыши, пункт меню «Свойства») , добавив ключ -enable-user-scripts. У меня строка «Объект» в свойствах ярлыка Chrome выглядит примерно так:

<strong>"...\Documents and Settings\Влад\Local Settings\Application Data\Google\Chrome\Application\chrome.exe" -enable-user-scripts</strong>

Обратите внимание, что ключ находится за кавычками и пишется через пробел.

4. Найдите свою пользовательскую папку Chrome.  Под XP это будет что-то вроде

<strong>...\Documents and Settings\Влад\Local Settings\Application Data\Google\Chrome\User Data\Default</strong>

Под «Вистой» или «Семеркой» это будет

<strong>...\Users\Влад\AppData\Local\Google\Chrome\User Data\Default</strong>

5. В этой папке  нужно будет создать подкаталог User Scripts.

6. В созданный подкаталог следует скопировать вот этот скрипт (правая кнопка мыши на ссылке, «Сохранить как...»).

7. Теперь качаем собственно расширение (правая кнопка мыши на ссылке, «Сохранить как...»).

Скачанное расширение нужно будет запустить. Его запуск никакими спецэффектами не сопровождается, просто при этом оно копируется в нужную папку и все.

Если Windows не может определить, с помощью какого приложения нужно запускать расширение, укажите принудительно Google Chrome.

8. Теперь можно запускать (перезапускать)  браузер. Это нужно делать с помощью того ярлыка, который вы отредактировали в пункте 3 — при использовании неотредактированных ярлыков скрипт не заработает и реклама будет видна.

Замечу, что реклама вырезается не вся, но это явно лучше, чем было.

Кросспостинг

Тестируем плагин кросспостинга в «Живой журнал».

Вероятность корректной работы плагина, по оценкам независимых аналитиков, составляет 99,9 процента.