Философия |

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

Михаил Подивилов

Поиск по нескольким тегам сразу

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

Про первое рассказывать не так интересно: там всё построено на вордпрессовой функции the_date(), которая, в отличие от get_the_date(), умеет отличать первый пост за день от всех остальных. Интереснее про второе.

Я увидел поиск по двум тегам сразу в блоге Ильи Бирмана, и мне захотелось тупо повторить эту функцию у себя, просто из принципа — всё равно пользоваться ей будут полтора человека, если вообще будут. После визита в гугл оказалось, что в WordPress есть особенность, позволяющая по запросу а-ля https://site.com/tags/tag1+tag2 получать посты, где есть оба тега — и tag1, и tag2 (здесь я имею в виду, понятно, ярлыки этих тегов, а не названия). А заменив + на ,, можно бросаться похожими запросами, только не И, а ИЛИ.

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

Однако есть ещё функция get_query_var(), которая смотрит на ваш запрос и извлекает из него разное интересное. В том числе она умеет извлекать и список тегов. Но, зараза, извлекает его как есть, строчкой! То есть если вы перешли по ссылке https://site.com/tags/tag1+tag2get_query_var('tag') так и напишет в выводе: tag1+tag2! Хотя могла бы, ну, не знаю, сразу массив вывести, что ли.

Пришлось изобретать велосипед и вставлять его туда, где определяется заголовок <h1>:

/* Проверяем, есть ли в части запроса с тегами запятая: */
if ( strpos(get_query_var('tag'), ',') ) {
  /* Если есть, превращаем часть запроса с тегами в массив: */
  $tags_query_array_or = explode(',', get_query_var('tag'));
  foreach ($tags_query_array_or as $i => $tag) {
    if ($i !== 0) echo ' или ';
    $term = get_term_by('slug', $tag, 'post_tag');
    echo '<a href="/tags/' . $term->slug . '">' . $term->name . '</a>';
  }
} else if ( strpos(get_query_var('tag'), '+') ) {
  /* Если запятой не оказалось, ищем плюс: */
  $tags_query_array_and = explode('+', get_query_var('tag'));
  foreach ($tags_query_array_and as $i => $tag) {
    if ($i !== 0) echo ' и ';
    $term = get_term_by('slug', $tag, 'post_tag');
    echo '<a href="/tags/' . $term->slug . '">' . $term->name . '</a>';
  }
} else { // Если и плюса нет, значит, тег один, и надо просто написать его название:
  echo '<span>' . single_tag_title( '', false ) . '</span>';
}

Похожий код добавлен в функцию, обрабатывающую заголовки страниц.

Проверить, как всё это работает, можно, например, поискав посты, у которых одновременно стоит тег «как жить» и тег «Телеграм». По ссылке блог выдаст вам один пост, хотя постов с этими тегами отдельно — восемнадцать штук.

Так же можно комбинировать и три тега, и четыре, и вообще сколько угодно. Было бы что комбинировать: очевидно, эта фича заработает в полную силу, когда пройдёт лет пять, и постов на этом сайте будет несколько тысяч.

Это нововведение — из серии «ума не приложу, кому это может быть надо, но делать было интересно». Возможно, это же относится и к сайту в целом.

Впрочем, один use case у него всё же есть: как и на теги поодиночке, на комбинации тегов можно подписываться по RSS, добавив к адресу /feed. Например, вот ссылка на фид постов с одним из упомянутых выше тегов.

Интернет |

Для меня стало большим откровением, что оказывается, Google Таблицы (есть подозрение, что и Google Документы; не проверял, но почти уверен) не работают без интернета.

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

Но нет. Без интернета все кнопки, носящие хоть какие-то изменения, в Google Таблицах заблокированы, а наверху висит плашка “Connecting...”, хотя очевидно, что если ему за тридцать секунд сконнектиться не удалось, значит, и не удастся.

Могу только процитировать Вастрика:

Сначала было плохо, а потом пришли программисты и сделали еще хуже. Зато в облаке.

Добавлено 29 июля: в редакцию пишут, что там есть офлайн-режим, но без интернета он ваш документ не скачает. Бинго!

Когда интернет пропадает неожиданно, пользователь не может продолжать работать в Google Таблицах.

Трипофобия и её иллюстрации

У меня трипофобия — боязнь «органических отверстий» и разного рода пупырышек в большом количестве.

Я об этом узнал довольно давно, совершенно не помню, как. А сегодня в разговоре с товарищем как-то подвернулась тема фобий в принципе, и я говорю: вот, типа, есть у меня такое, сейчас гляну, как называется. Ввожу в гугл «боязнь органических отверстий», вижу — трипофобия. И ссылка на Википедию. Я по ней тут же иду, интересно же почитать.

И что же вижу? Прямо в начале статьи, не прикрытую никакими спойлерами, картинку с теми самыми органическими отверстиями, от которых мне немедленно становится плохо!

Гугл по запросу «трипофобия» тоже прямо на первом экране выдаёт такие картинки, причём ещё страшнее (после того, как я это выяснил, они минуты три стояли у меня перед глазами).

Я к чему.

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

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

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

Что я смотрю на YouTube

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

Почитать небольшой пост →

«Серебряный дождь» собирает донаты

Тут с моим любимым «Серебряным дождём» случилась история. «Серебряный дождь» на фоне пандемии и самоизоляции лишился рекламных доходов.

Далее привожу цифры из спецэфира основателя СД Дмитрия Савицкого.

Когда станция работала в нормальном режиме, в месяц на неё тратилось около 15 млн рублей. В мае вместо этих пятнадцати миллионов станция получила шестьсот тысяч. Поскольку к этому моменту у неё уже накопился долг, её решили переводить на авральный режим с сокращением сотрудников и урезанием всех возможных расходов (включая приостановку выхода большей части программ). В урезанном режиме месяц работы станции стоит 8,5 млн рублей.

В среду Савицкий вышел в утренний эфир, раскрыл описанное выше и сказал, что, скорее всего, если не удастся продержаться до сентября, «Серебряный дождь» к осени перейдёт на формат «музыкальной шкатулки» и будет круглосуточно играть музыку в стиле диско. И называться будет не «Серебряный дождь», а «Радио СД», потому что «Серебряным дождём» в эфире называть будет уже нечего.

Продолжить чтение →