Блогу 15 лет!

Ну, если коротко, то вот.

Вряд ли есть в природе человек, который все эти 15 лет всё это читает. Ну, кроме меня, разумеется…

Технические работы на блоге

Разошелся в последние дни и провернул некоторое количество технических работ на этом блоге.

Во-первых, все же перевел блог полностью на https. Я давно к этому подступался, пару лет назад даже включил ssl на cloudflare, но сейчас все же решил перевести его полностью. Сейчас сделать это на порядок легче и проще — стали доступны бесплатные ssl-сертификаты от let’s encrypt, которые еще и ставятся практически автоматически, стоит только захотеть. Большинство протоколо-зависимых мест в сайте я починил еще в прошлый подход, так что никаких проблем вообще не случилось. Единственный минус от переезда — потерялась статистика лайков в Facebook для всех записей, поскольку там как раз указывается протокол. Есть довольно трудоемкий способ это починить, но я как раз не вижу особенного смысла в этом. Вообще, кажется, что польза от перехода на защищенный протокол — в том числе и для ранжирования в поисковиках, — немного больше, чем от цифр около кнопок.

Кстати, поскольку чуть позже я проделал такую же операцию над сайтом Терминала 42 (там пока не включена полная переадресация, но по https уже все доступно), могу сказать, что стандартный блог на WordPress, если он не увлекается раскладыванием картинок и всяких assets на разные хосты, переводится на https довольно просто — поставить сертификат, поменять настройки и включить редирект.

Во-вторых, разошелся и перешел с PHP5 на PHP7. Пара подводных камней меня все же подстерегла — например, плагин W3 Total Cache работать в режиме кэширования через Memcached отказался, роняя всё вообще, а в режиме кэширования на диск как-то не впечатлил. Оказалось, что недостаточно сказать install php7, надо еще руками доставить некоторое количество необходимых модулей. Но потому, когда всё заработало, стало просто так красиво и быстро, что я просто глазам не поверил и некоторое время просто ходил по админке WordPress, наслаждаясь скоростью. Даже с очень хорошими настройками админка обычно была нетороплива, а теперь просто летает, хотя, как я подозреваю, там есть что пооптимизировать в смысле настроек и конфигов.

Теперь можно немного подождать и поставить в план на будущее подключение HTTP/2. Прямо сейчас это сделать немного сложно, поскольку для установки штатной версии того же nginx, где это возможно, надо обновить версию ОС на сервере, а это прямо рекомендуют делать чуть попозже, когда Ubuntu 16.04 проживет хоть немного после релиза. Так что подождем.

Попробовал de:comments. Впечатления

Возможно, постоянные посетители заметили в последние две недели, что в блоге менялась система комментариев. Две недели назад я решил поэкспериментировать и поставил продвигаемый в последнее время плагин de:comments вместо работавшего ранее Disqus. Во-первых, просто захотелось повозиться, а во-вторых, disqus, как сторонний сервис имеет ряд недостатков, которые при длительном использовании начинают надоедать.

За две недели я навозился достаточно и вернул disqus обратно. И вот почему.

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

Во-вторых, de:comments не предлагает никакого способа работать с регистрациями. Вам надо или смириться со спаммерскими аккаунтами либо ставить еще один плагин, который разрешит пользователям логиниться через facebook или twitter или еще что-то. И авторы de:comments рекомендуют один такой, утверждая, что подойдут и любые другие. Увы — любые другие не подойдут. Они или не заработают вообще, либо будут ужасно выглядеть совершенно чужеродным куском дизайна. А тот, что рекомендуют авторы, не имеет настройки «Логиниться только через аккаунты в соцсетях», что опять-таки оставляет возможность для спаммеров регистрироваться.

В-третьих, никакой защиты от спама. Вообще никакой. Ставьте еще один плагин, включайте режим премодерации, настраивайте как хотите — ваш блог, вам его и защищать от спама через «most powerful plugin for comments».

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

Впрочем, окончательно заставило принять решение об отказе от плагина странное поведение всей системы — я понимаю, что я тут достаточно навертел с кэшированием и серверными настройками и конфигурация блога у меня причудливая, но почему включение плагина для комментариев заставляет блог периодически сваливаться в 404-ю ошибку в админ-панели (например, при переходе на wp-admin/index.php), я так и не понял.

Так что поживем дальше с disqus. Все-таки, столько лет вместе.

Перевел блог на https

Пришлось повозиться, но теперь блог доступен и по http, и по https. Во втором случае у вас еще и SPDY будет срабатывать, хотя никакого суперэффекта вы, скорее всего, не увидите.

Процесс оказался довольно интересный, тем более, что я использовал Flexible SSL от Cloudflare — когда браузеру пользователя отвечает по https собственно фронтенд-сервер Cloudflare, а коммуникация между ним и собственно блогом идет по http. Это немного осложнило — поскольку по умолчанию WordPress включает или нет поддержку SSL, ориентируясь на переменную окружения на своем сервере, не особо обращая внимание на то, какой протокол использует браузер. Если коротко — примерно в десятке разных мест в коде движка, шаблонов или плагинов пришлось руками указать протоколо-независимые пути или жестко прописать https.

Насильно всех отправлять на https я не планирую по совершенно банальным причинам — этому блогу 12 лет, за это время в нем опубликована масса картинок, например, которые, разумеется, используют путь через http. Что вручную, что автоматом это менять — совершенное безумие, наполовину бессмысленное притом — нет никакой гарантии, что все картинки доступны и по https.

Из неприятного — судя по всему, Twitter не склеивает ретвиты между протоколами. Из странного — пришлось выключить виджет Инстаграм, поскольку API этого сервиса всегда отвечает картинками по http, хотя все они доступны по обоим протоколам. Лезть руками в код и вырезать протокол из адреса пока не хочется.

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

Ghost и Cloudinary

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

Я было посмотрел на него — впрочем, я довольно внимательно смотрел на движок с месяц назад и, честно сказать, ничего, кроме попытки сделать еще один блог-движок, теперь уже на супермодном node.js, не увидел. Сейчас посмотрел ради интереса, тем более, что команда оперативно разработала скрипт для переезда с WordPress, но увы — с объемом этого блога скрипту справиться не суждено без допиливания.

Зато плагин, предназначенный для экспорта в Ghost, подсказал интересный сервис — Cloudinary. Это облачный сервис хостинга для картинок, который прекрасно интегрируется с WordPress и массой других сервисов, умно кэширует их, позволяет массу операций над ними — в общем, я включил попробовать, тем более, что стартовый план бесплатен и практически не ограничен в функциональности.

В новый год — с новым блогом!

Если точнее — то не с новым, а с изрядно обновленным старым. Меня уже давно изрядно нервировала необходимость мириться с очень старым движком в виде Movable Type, который уже не поддерживается толком даже собственными разработчиками, а желание что-то там все же поправить наталкивалось на такое количество старых проблем, что немедленно исчезало.

Поэтому пришлось взяться за дело радикально, тряхнуть стариной и всё такое. Блог переехал на новый движок (WordPress), радикально сменил дизайн и уж в довершение всего — и адрес. Теперь он будет находиться здесь, по адресу http://blognot.co, так что обновляйте закладки. 

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