PHP левелап (5.x ==> 7.x). Проблемы и решения

Вордпресс давно горит красненьким: обновите свой PHP. Ну и хрен с тобой — гори!

Но тут, как беременному, приспичило селёдки перевести WP-сайты на статику и убрать WP с сервера. А модный плагин WP2Static в открытую шантажирует – работаю только на PHP 7.

Ну давай, блин, обновляться!..

Начал с локальной машины, где всё крутится на Denwer 3 (A2.2.22, P5.3.13, M5.5).

Сначала накатил PHP 5.6.19 + Apache 2.40 отсюда и затем повысил PHP до 5.6.40 из архива дистрибутивов по этой инструкции (ну а вдруг?! 😉 ). Вордпресс не оценил.

Оокей! Едем дальше.

Тогда старый сервер отправил в архив и перешёл на новую сборку Denwer (Apache 2.4, PHP 7, MySQL 5.7).

Вордпресс обновился, WP2Static подтянулся, тестовый сайт загнал в статику.

Супер, чо!

Но голос капитана Зелёного в моей голове:

И понеслась… 😀

Запуск OpenGoo 1.3.1 в 2019

Нежно люблю дерево задач из древнего OpenGoo.

В своё время искал, перепробовал многое, но остановился на этом комбайне, из которого юзаю одну только функциональность – дерево задач.

Оно умеет назначать задачи разным юзерам, выращивать их деревом, создавать шаблоны из выращенных деревьев.

Мне удобно делать релизы и публикации по чеклисту из шаблонов, накидывать туда все списки дел, дробить их на подзадачки и потом с наслаждением удалять их по мере выполнения. 😉

Хреновина ресурсоёмкая, по нагрузке на сервер не супер-оптимизированная, насколько я могу судить по периодическому 500 ответу сервака.

Но вот привык.

А на новом сервере оно не взлетело.

Суть, как и во многом далее – в использовании в OpenGoo устаревшего драйвера mysql (который в PHP7 выпилили) и отсутствие обратной совместимости с новым mysqli, который идёт с PHP 7.

ОКей, починяю этот примус и запускаю древнючий OpenGoo 1.3.1 в 2019 году 😉 :

    1. Перевёл все обращения к MySQL базе под формат mysqli. Для этого установил на сервер скрипт, путь к директории – относительно сервера:
      /home/бла-бла-бла/convert
    2. Указал в конфиге OpenGoo использовать mysqli адаптер, вместо mysql. По инструкции:
      define('DB_ADAPTER', 'mysqli');
    3. Ну и собсно добавил сам адаптер-класс в папку
      /opengoo/environment/library/database/adapters

И оно завелось (на самом деле нет).

Где-то валится при создании шаблона. Погружаться в дебри того кода желания нет и потому из говна и палок сделал костыль: импортировал базу в старый денвер, создал там себе пачку заготовок под шаблоны и импортировал базу обратно в новый денвер. 😉

Запуск GeoIP для PHP5

yum install php-pear gcc make php-devel – установит php-pear пакет для компилирования исходников

yum install GeoIP GeoIP-data GeoIP-devel – установит пакеты geoip

pecl install geoip – соберёт PECL библиотеку geoip.so
echo "extension=geoip.so" > /etc/php.d/geoip.ini – включит библиотеку после рестарта апача.

Если есть альтернативный PHP (у меня это PHP 7.3), то под него собираем свой модуль:

/opt/php73/bin/pecl install geoip-1.1.1 – соберёт PECL библиотеку geoip.so

И прописываем в своих php.ini его подключение. Поскольку это альтернативный php, то php.ini может быть для каждого юзера своя. Смотри в папке юзера.

#потелеку… в 17:54

В Инстаграм-ленте 28-Nov-2019:

#потелеку… в 17:54
По телеку какой-то мужик с пробитым носом вещает про погоду и про настроение.

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

Судя по его довольной роже, у него такой термосочек точно есть. 😀

Холодное Сердце 2

Вообще говоря, просто сходил с 13-ти летней дочкой  на мультик Холодное Сердце 2, а всё, что хочется рассказать про этот поход – как я залез в телевизор. Такой вот “интересный” мультик у Диснея получился (#рапунцельванлав 😛 ). 😕

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

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

Вышли мы из зала примерно, как герои мульта на картинке выше – это вообще чего такое было?! 😀

Юляха тоже ожидала большего. На утро, за завтраком стали вспоминать, ну хоть что-то из мульта – и ничего. 🙁

На троечку.

Лайфхак по парковке в Охта-Молле

Если подойти на стойку информации кинотеатра, показать билет и предъявить парковочный талон, то 2 бесплатных часа подземной парковки (а по будням и наземной) превращаются в пять. Каро от себя накидывает +3 часа.

Узнал об этом здесь, подтверждаю – работает. 😉

Рекомендую узнать, возможно в других местах с платными парковками такие плюшки тоже есть. 🙂

#всемпривет!… в 18:06

В Инстаграм-ленте 17-Nov-2019:

“Всем привет!” – пишет Оля @olchik.knits, – и наконец-то делится частичкой нового проекта.

Это будет целый подарочный новогодний набор: вязаная шапка, перчатки и уютный вязаный снуд.

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

А ещё такие вязаные вещи очень здорово дарить дорогим людям!

Контакты мастера Оли на сайте ЗимаБудет.ру

#дорогобогато… в 20:45

В Инстаграм-ленте 15-Nov-2019:

#дорогобогато мыша моя живёт. #моюруки, разуваюсь, садясь за комп. 😁

Специально такое не ищешь, но когда оно само тебя находит, то что-то накатывает из глубины, про #сопливоедетство, молоко с мёдом и похожий ковёр на стене возле кровати, из которого я, пока засыпал, дёргал ниточки… 😉

Можно мальчика вывезти из деревни, деревню из мальчика – никогда.

По качеству коврик годный – не толстый, эластичный, с резиновой подложкой, без запаха. Брал на али. 😉

Проверка своей кредитной истории для самых ленивых

Читал где-то месяц назад статью, как дядька один доказывал, что он не верблюд. Сначала МФО (некоторым через суд :'( ), а потом бюро кредитных историй.

Суть в том, что мошенник методом коврового бомбометания получил баблос у этих вот сомнительных (как по мне, полукриминальных) лавок aka Микро Финансовых Организаций aka МФО от имени того самого дядьки. Ну и понеслось г*но по трубам…

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

А сегодня…

А сегодня получил письмо из банка УБРиР, где обслуживаюсь последние лет пять:

Контролируйте свою кредитную историю вместе с УБРиР, – предлагают они.

Предложение – это совместный продукт УБРиР и Объединенного кредитного бюро. Чтобы инициировать проверку не нужно быть клиентом УБРиР, логинится можно через учётку Сбербанка или Госуслуг:

Зашёл, проверил, работает. Левых записей нет. Запросы только из банков, с кем работал и работаю. Скоринговый бал, пишут – очень высокий.

Получил, что и хотел. Легко и просто, не вставая с кресла. Торт для лентяя! 😉

Будут ли не клиентам банка приходить после этой проверки предложения от УБРиР – не знаю, не в курсе, условия не читал. 😀

Люблю это название, кстати. УБРиР. Ласкает слух в моём шепелявом исполнении 😛

#интернетмоторист… в 19:02

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

Всё в жизни бывает впервые! 😎

Чего сказать-то хочу. Как же это всё таки здорово – Сеть!

Да, здесь полно шлака, фейков, холиваров и разного треша. Но можно вот просто найти, изучить, распечатать толковые пошаговые инструкции, например, на ремонт двигателя 21126 и запилить на коленке то, что когда-то казалось околокосмическими технологиями. 😉

Грущу, конечно, по уютному дополитическому интернету, до всех этих вот поездов в/на Украину, но рад, что не надо переть в Техническую книгу на Пушкинской, в надежде найти там нужную мурзилку, чтобы узнать таки, как поменять воздухан на своём подержанном немце/итальянце/шведе/американце. 😀

Google PageSpeed Insights : и снова здравствуйте!

Было уже. Раз и два

Тут что-то зашёл снова и приуныл: 52/100.

Виновники по подсказкам – сторонние ресурсы. Причём самого же гугла: шрифт, который я подгружаю и ютюб, который вообще живёт во фрейме и не факт, что юзер его запустит.

Фонт блокирует отображение содержимого, написаного им, пока не прогрузится сам, а ютюб подгружает js код какого-то дикого объёма. Всё это фигачится с разных узлов и тормозит мои страницы.

Надо решать.

font-display : swap

В 2019-ом с фонтом всё оказалось просто. Гугл добавил поддержку конструкции font-display:swap в свой css загрузки шрифта. Инструкция говорит браузеру не дожидаться загрузки шрифта, а отображать текст, следующим по списку шрифтом. Типа некогда ждать, пиши, чем есть, потом перепишем. 😉

Всё, что требуется – это добавить ключ &display=swap при описании шрифта. В моём styles.css это так:

@import url('https://fonts.googleapis.com/css?family=Roboto:100,400&display=swap&subset=cyrillic');

Если теперь открыть этот .css, то увидим инструкцию
font-display:swap. PageSpeed её тоже увидит.

Да, обращение по прежнему идёт на сторонний сайт, но тащить шрифты к себе, делать под них обёртку и вот это вот всё показалось нецелесообразным.

Блокировка страницы из-за YouTube фрейма

Здесь уже приходится делать подъём с переворотом. ;(

Суть рекомендаций в сети: в div блоке отображаем миниатюру нужного видоса, а при клике по нему javascript’ом подменяем картинку фреймом с YouTube-роликом.

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

Проблема здесь в том, что современные браузеры игнорируют ключ autoplay=1 и не стартуют видос при замене pic на frame. Для запуска видоса приходится дважды жамкать на значок play: для замены pic на frame и второй раз для запуска видоса в этом frame. Это конечно понижает опыт общения юзера с сайтом. ;(

У себя кастомизировал вот этот рецепт

Пока остановился. Всякие метрики и адзисы тоже жрут, но отказаться от них (пока?) не готов.

Полезные ссылки

Минимайзер и бьютификатор всего: html, css, js –
FREEFORMATTER.COM

Упаковщик .png и .jpg файлов – https://tinypng.com

GGMM W710 – bluetooth наушники, которые можно брать

В то самое время, когда всё прогрессивное человечество тонет в океане TWS наушников, я открываю для себя внутриканальники на шейном шнурке.

Это GGMM W710 – моя первая блютус-гарнитура.

Обзор с конца

Ссылка на покупку

Наушники требуют компромиссов из-за своей посадки, но звучат на мой вкус – огонь-огонь!

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

Заряда хватает на мой вполне себе длительный день: часов четыре-пять mp3 музычки, вечером часовой эпизод какого-нить сериальчика, на ночь на зарядку к павербанке. Громкость в «ушах» выставлена чуть выше среднего, на смартофоне почти максимум. Громкость у «ушей» и смартофона раздельная, у каждого своя.

Связь не рвут, коннектятся быстро.

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

По итогу, для меня, GGMM W710 заменили собой предыдущие боевые TRN V20, которые уехали в коробку к Hangrui Qian25. Комплектные от LG G6 даже доставать не стал.

А, да. Покупал мою прелесть за 600 рублей (сейчас цена выше).

Вот как-то так. Дальше много картинок и букав для раскрытия темы. Можно не читать 🙂

Картинки и букавы про GGMM W710

Не помню как, но GGMM W710 давно поселились у меня в вишлисте на ali по какой-то неприемлимой (за незвестных мне китайцев) цене. И вдруг, в конце августа, ценник превратился в 586 рублей. Блютус, aptX, защита от брызг, доставка за 5 дней из РФ и такая вот цена. Надо брать! – подумал я. И взял.

Спецификация того, что должен был получить:

        • частотный диапазон: 20 ~ 20 кГц
        • сопротивление: 32 Ом
        • чувствительность: 92 дБ
        • версия Bluetooth: 4.1
        • aptX (говорят, мне оно не надо 😉)
        • протокол: HFP, HSP, A2DP, AVRCP
        • время работы: 5-7 часов
        • время в режиме ожидания: ~ 180 часов
        • время зарядки: ~ 2 часа

Но через 5 дней они не приехали. Не приехали и через 20. Я инициировал возврат, продавец ни с чем не спорил, я получил обратно деньги и забыл эту историю. А через 40 дней курьер мне их доставил на порог.

Так вот случился нечаянный пункт 18, по терминологии муськи — получил вещицу на халяву. 😉

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

Сказано — сделано. Погнали!

Поставляются наушники в обтянутой плёнкой плотной картонной коробке. Выглядит и внешне и тактильно весьма добротно:

Внутри всё тоже симпатично уложено и оформлено: ушки лежат в мягкой форме под защитной прозрачной крышкой:

Дальше — больше, то есть остальной комплект. Он стандартный: сами уши, три размера силиконовых амбушюр, три размера накладок-упоров, USB шнурок (50 см), здоровенная инструкция на 10-ти языках (включая русский), гарантийный талон (тоже мультиязычный) и отдельная памятка, с повтором инструкции, как носить эту сбрую.

Сами наушники довольно массивные по виду, но достаточно лёгкие. Полностью пластиковые. Звуковод имеет непривычно глубокую канавку для фиксации амбушюра. Защищен сеткой из какой-то синтетики (точно не металл). Компенсационные отверстия отсутствуют. Есть незаметная маркировка R и L, но она излишня: из-за формы самих «ушей» – право-лево здесь не перепутать.

Соединяющий провод — мягкий силикон. От «ушей» армирован более плотной, но гибкой трубкой. Крепление к наушникам неразборное.

За правым наушником висит трёхкнопочный пульт (+ O –) с микрофоном, цветовым индикатором и miniUSD разъёмом под резиновой заглушкой. На проводе есть зажим для регулирования его длины.

Из коробки ушки идут с надетыми амбушюрами средней размерности, без упоров.

Ну всё-всё, помлел на распаковке, давай уже. Давай!

Использование GGMM W710

Поставил средние упоры, воткнул в уши, зажал среднюю кнопку O для включения – тишина. Аккумулятор разряжен в нулину. Поставил на заливку.

Уже позже, раза через три-четыре после цикла разряд-заряд залились они у меня на 84 mAh, судя по синему доктору (заявлено 100mAh).

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

 

И тут я приуныл. Правильная вставка подобных «ушей» — это ритуал. Он требует некоторой сноровки и времени. Это вам не обычные затычки и не вкладыши. Не каждому понравится, но я вроде уже как и привык (на самом деле нет :D):

 

Как надевать GGMM W710

 

Ладно, включаю. Женский английский сообщает, что «пауэр он». Этот же голос будет рапортовать о сопряжении, малом заряде аккумулятора, выключении питания. Отключить, как я понимаю нельзя. Спасибо, что не на китайском. 😉

 

Сопрягаю со смартофоном LG G6 (сразу после включения зажимаю всё ту же среднюю кнопку, индикатор мигает “красный-синий”, гарнитура становится видна):

 

 

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

 

 

Вроде как (хвала богам — за что боролись!) aptX!

Вообще говоря ситуация с ним (как и со многим в описании) странная. В сети всюду вместе с GGMM W710 пишут слова “aptX” и “водонепроницаемые”. На коробке же и в инструкции таких слов нет. Наоборот, в рекомендациях по эксплуатации есть явное указание не оставлять гарнитуру во влажных местах и не использовать во время интенсивных физических нагрузок. Про поддерживаемые кодеки и вообще ничего. Но смартофон рапортует о использовании кодека aptX.

 

Окей, давай слушать!

 

Звук в GGMM W710

 

На мой взгляд — он отличный!

 

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

Но тем не менее… Тем не менее, воинствующий ламер на марше. 😀

Звук, повторюсь, для меня хорош.

Слушаю я всякий-який музкомпот, скачанный в mp3 из ВК в битрейте 320 (мой плейлист) — со времён TRN V20 разницу с треками в меньшем битрейте даже я слышу и периодически приходится перекачивать своё любимое.

Итак, в GGMM W710 низкие есть, они не долбят в мозг, не забивают собой весь поток. Деликатные я бы сказал. 😉 Средние и высокие тоже молодцы. Звучат чисто, насыщенно и сбалансированно. Рапсодия Queen звонко перекатывает галилео-стерео внутри головы, гитарные аккорды Despasito вместе с волнами плещутся ясно и чутко, Коэн звучит чисто. И в то же время, Билли Айлиш вполне неплохо качает своим Bad Guy.

Как к гарнитуре, претензий тоже нет. Собеседники не жаловались, слышу их отлично. Только вот пользуюсь в этом режиме мало. Управление пока непривычно (привык к однокнопочным). В профиле на смартофоне можно отказаться от использования гарнитуры, как гарнитуры. Оставить только «режим» наушников с управлением плейлистом/громкостью.

Компромиссы GGMM W710

Для меня их два. Один – это мой таракан, а второй – конструктивная особенность.

Мой таракан — это амбушюры. Заменил их на пенные. Как-то попробовал с TRN’ами и подсел. В комплектных силиконовых звук мне кажется каким-то резковатым, фанерным чтоли. С «пенками» он становится более мягким, упругим, приятным. Ламповым, бескислородной меди мне в проводку! 😀

Ганритура GGMM W710 с амбушюрами из пены

Конструктивная особенность – сбруя – более назойливая. По инструкции носить гарнитуру нужно на шее, отрегулировав длину. Но мне не удобно. Пульт, хотя и имеет небольшой вес, но всё же его имеет. Поэтому старается съехать вниз, провод его не пускает, в итоге конструкция теребит шею и не даёт о себе забыть. Да и сам пульт с микрофоном находится далековато.

Ношу проводом под шею:

Провод обвисает вниз, оттягивая заушины. Это придаёт ощущение более уверенной фиксации. Но уже нельзя вот так просто вытащить «уши» одной рукой, сцепить их крючками заушин под шеей и встать на руки. Приходится выполнять обратный ритуал – извлечение наушников.

Но тем не менее…

Тем не менее: страдаю, вздыхаю, но продолжаю использовать свои новые фавориты — GGMM W710.

#гдеэтаулицагдеэтотдом.… в 11:17

Появилось в Инстаграм-ленте 19-Oct-2019:

#гдеэтаулицагдеэтотдом.

Дышал здесь Петроградской когда-то #всопливомдетстве коммунальных квартир. #улицаолегакошевого

#дорожныеистории:… в 19:19

Появилось в Инстаграм-ленте 12-Oct-2019:

#дорожныеистории:… в 19:19
#дорожныеистории:

Тошнишь вот бывает в левом ряду по кольцевой и вдруг, как тот Винни-Пух понимаешь, что это вот ПЫФФФФ!!! за окном не спроста.

#ивотонты в полдвенадцатого ночи: примеряешь светоотражающую маечку, натираешь пол-колеса резиновой стружки, тошня на ободе колеса до заправки, знакомишься с разными дальнобоями, в поисках головки на 21, прыгаешь до полвторого с домкратом вокруг машины, веселя операторш АЗС  своими попытками поставить спущенный по итогу бублик, бросаешь в итоге машину #вэтойжопемира и катишь наконец-то в такси домой, чтобы завтра с новым силами продолжить это нечаянное приключение…

#хорошовсёчтохорошокончается #позовименядорога