Archive for April, 2013

Visual Composer for WordPress

Friday, April 5th, 2013

1. Visual Composer for WordPress

2. Aqua Page Builder

Вот как это называется. Я уже несколько раз забывал и искал опять, поэтому положу сюда, чтобы не забыть. Это плагины-конструкторы, позволяющие сделать у обычной страницы Wordpress какой угодно дизайн. Первая платная, вторая нет.

Обе не пробовал и не буду пока. Но вдруг?

Контроль повторяющихся слов

Friday, April 5th, 2013

У меня нет времени писать это в коде, поэтому, как Энрико Ферма, я просто набросаю на полях :) Но он набрасывал лишь намёки, а я принципы.

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

Я пока не знаю, как удобнее это сделать - на PHP или jS, просто обрисую шаги, которые вижу.

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

Алгоритм проверки абзаца выглядит таким образом:

1. разбить исходный абзац Text на массив слов Words - то есть превратить в массив слов, разбив с помощью пробела

2. Провести в массиве Words подсчёт повторов для каждого слова. В PHP для этого есть встроенная функция array_count_values, кстати.

3. Найти все слова, для которых число повторов превышает заданный предел для абзаца - скажем 2. Но в абзаце, по хорошему, это должно быть 1. Переписать эти слова в массив BadWords

4. Пройтись по массиву BadWords и с помощью функций поиска-замены заменить все эти плохие слова в исходном Text на те же слова, только выделенные тегами или восклицательными знаками.

5. Вернуть новый абзац.

Есть очевидная проблема - повторяющиеся слова могут стоять в разных падежах и формах. Это можно обойти, отбрасывая по 2-3 знака с конца. То есть будем ликвидировать окончания в массиве Words. Количество отбрасываемых символов можно настраивать в зависимости от длины слова.

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

проверка догадки
- игра
- игрой
- игры
- играми
- игре
- играя

Черт, разное количество знаков…. Ха, я понял! Додумываю на ходу - проще не отбрасывать с конца N знаков, а ОСТАВЛЯТЬ N ЗНАКОВ с начала. Ок, так и запишу.

Кстати, последнее слово в проверке показывает, что таким методом можно частично ликвидировать и однокоренные слова. Не все, но тоже бонус.

Вторая мини-проблема - служебные частицы, союзы и предлоги. Их просто выносим из массива Words после его получения, проверяя минимальную длину (скажем 3 буквы). Это не избавит нас от повторения слов типа “эмо”, но от многих других должно помочь.

Хотя…. Какого черта? Пусть минимальная длина будет 1. Пусть авторы стремятся разнообразить даже служебные частицы. Многократное “и” (и жизнь, и слезы, и любовь - для примера) - так и быть, можно оставить. А вот для-для-для и прочие подобные пассажи - в баню!

Такой простой фильтр помог бы значительно улучшить качество текстов - даже при написании рассказов на конкурсы фантастики. К сожалению, я сейчас не могу это реализовать, так как у меня нет даже восьми лишних часов, которые, по моим прикидкам, требуются для “коробочной” версии этой утилиты как в виде плагина WP, так и в виде standalone-сервиса.

Да, надо будет делать это сразу в виде стандалоне-сервиса, чтобы сразу убить многих зайцев.

.
.
.
PS.
дополнительные мысли
1. разбивку текста на абзацы делать с проверкой размера - многие херачат гигантские абзацы, как Джеймс Джойс (у него в романе Улисс, по-моему, всего несколько абзацев).

2. А можно сразу разбивку на абзацы делать по M знаков, скажем по 300. При этом - внимание! - резать тексты надо по последней точке, то есть чтобы не рвалось посреди слова, а бралось законченное предложение. Старый и примитивный хак, но его ещё в эпоху “ушек” на сайтах забывали часто сделать.

3. Все переменные, разумеется, настраивать по желанию юзера.

4. Обработка текста так - засасываем первые 300 знаков или меньше, сколько получится, если “ломать по точке”. Оставляем указатель сразу после точки, полученный кусочек текста форматируем нашей чудо-функцией (то есть выделяем повторяющиеся слова), возвращаем в текст. Экономно и практично, а если текст большой - юзер будет видеть прогресс.

Переносим плагины в functions.php

Tuesday, April 2nd, 2013

Хозяину на заметку - functions.php в теме WordPress можно назвать аналогом личного плагина темы.

Код многих простых плагинов можно просто скопировать из их файлов в этот functions.php и всё будет работать. Это очень полезно для оптимизации, особенно если названия функций в плагинах не конфликтуют. Разумеется, плагины при таком переносе следует деактивировать.

Оптимизация заключается в том, что уменьшая количество плагинов и передавая их код в functions.php, мы снижаем число обращений к файловой системе. А это, поверьте, тоже решает. Эта процедура оптимальна для плагинов, которые
- просты
- не требуют настроек
- необходимы в каждой инсталляции

К примеру, к таким плагинам относятся

  1. Disable Revisions and Autosave - отключение ревизий и автосейвов
  2. Post List - вывод анонсов постов по заданной теме
  3. Select Posts Character Count Admin - подсчёт количества знаков в постах (удобно для работы с авторами)
  4. Posts Date Ranges - выборка постов в админке по заданной дате
  5. RusToLat - представлять не нужно
  6. Admin Author Filter - выборка постов в админке по заданному автору

Всё это очень простые хаки и функции, не требующие настроек. Их нужно просто активировать и они, по сути, просто нужны по дефолту. Можно поспорить насчет ревизий и автосейва, да, но остальные настолько необходимы, что даже становится удивительно, почему они не реализованы в Вордпрессе по дефолту.

Сколько получилось? Шесть? Значит, будет убрано шесть обращений к файловой системе - хороший выигрыш, если не сказать - великолепный. Ибо functions.php и так присутствует в теме, как правило.

Если у вас больше таких простых плагинов - значит при такой оптимизации будет убрано ещё больше обращений к серверу

Заодно меньше будет операций по установке и закачке плагинов при настройке нового сайта.

Кое-что из сплетен и слухов

Tuesday, April 2nd, 2013

- Ня-картинки повышают траст и позиции сайта.

- Вообще хороший дизайн повышает траст и позиции сайта.

- Конверт в SEO самый дешевый, как и раньше. Самый дорогой - в SMM. Не, хорошую вещь сосальной сетью не назовут.

- у некоторых знаменитостей ходят специальные люди по сайтам и предлагают деньги - за уборку статей с компроматом с сайта. Маул так заработал, если не врёт. Упоминалась цифра 27 000 рублей за 1 статью. Аха-ха-ха. О том, чтобы кто-то повторил или чтобы это происходило регулярно - не слышал.

- некоторые сайты с играми для девочек приносят больше бабла в чистом выражении дохода, чем монструозные проекты Mail.Ru. Должны приносить, если не приносят - пусть застрелятся. Как так можно - иметь 300 000 траффика в день на голимом Вордпресс-сайте с минимальными затратами на дизайн, контент и проч, и не зарабатывать чистыми больше, чем разбухшие мэйловские структуры?

Плавающий тулбар WordPress жрет до 3 мегабайт

Monday, April 1st, 2013

Кстааати!!!!
Сейчас проверял свой перепаянный движок на другом сайте, увидел, что суперкэшированная версия жрет от 600 килобайт до 3 мегабайт памяти.

Сильно удивился, так как на первом сайте вывод кэшированной страницы занимал 60 кило примерно памяти. Потом посмотрел на страницу и понял - дело в тулбаре плавающем, который в последних версиях WordPress и в теме по дефолту отображается при показе страниц. Он за счет Аякса дергает движок Вордпресса, поэтому даже статическая кэшированная версия - поджирает до нескольких мегабайт.

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

.

.

.

PS: кстати, вывод кэшированной страницы на шаред-хостинге и на тарифе “сервер для одного” у Мастерхоста практически одинаков по времени - тысячные или десятитысячные доли секунды. Как статику выплевывает :)