<rmcreative>

RSS
  1. Замена клавиш Huawei Matebook X Pro

    22 марта

    Понадобилось заменить на ноуте SHIFT и CTRL. Заводской шифт сначала облез, а затем разломился пополам.

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

    • replacementlaptopkeys - 20$ + доставка.
    • Можно поискать "Matebook X Pro Keys" на eBay. Это 15$ + доставка. Но клавиши там с разборки и нужных часто нет.
    • laptopkey - 8€.

    К счастью, есть Aliexpress. Найти там что нужно оказалось не так просто, так что вот ссылка. 100 рублей кнопка и ножницы (лучше брать комплект) + 550 рублей доставка.

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

    Как менять:

    4 комментария
  2. Расшифровка "Теория программирования: пакетные принципы и метрики"

    17 марта

    Вышла расшифровка моего доклада про пакетные метрики, дополнение к SOLID. Опубликована на хабре:

    Читаем

    1 комментарий
  3. Новости Yii 2021, выпуск 1

    5 марта

    Первый выпуск новостей за год. Релизы пакетов, интересное из разработки и немного про финансы.

    Читаем на хабре

    Комментировать
  4. PHP: превращаем ошибку в исключение локально

    20 февраля

    В PHP часто для обработки ошибки в функциях вроде dns_get_record() используют оператор @:

    $result = @dns_get_record($hostname, DNS_A);
    if (!$result) {
        throw new \RuntimeException('Unable to get record.');
    }

    Проблем несколько:

    • Использование @ не очень хорошо сказывается на производительности
    • Часто подавляется слишком много разных ошибок.

    Есть способ лучше:

    set_error_handler(
        static function (int $errorNumber, string $errorString) use ($hostname): ?bool {
             throw new \RuntimeException(
                 sprintf('Unable to get record: "%s". ', $hostname) . $errorString,
                  $errorNumber
             );
        }
    );
     
    $result = dns_get_record($hostname, DNS_A);
     
    restore_error_handler();
    2 комментария
  5. PHP, OpenSSL и ошибка certificate verify failed

    17 февраля

    При попытке использования OpenSSL на некоторых системах возникает ошибка:

    stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed

    Исправляется довольно просто:

    1. Сливаем https://curl.haxx.se/ca/cacert.pem.
    2. В php.ini добавляем openssl.cafile="/путь/до/cacert.pem".

    Так же точно исправляется ошибка "cURL error 60".

    Вроде просто, но почему-то подавляющее большинство советов на эту тему, в том числе большинство ответов на StackOverflow, говорят "отключить проверку", что, конечно же, приводит к возможности атаки man in the middle.

    Комментировать
  6. Онлайн митап от ВсеИнструменты.Ру о PHP, MySQL, нагрузках и асинхронности

    4 февраля

    12 февраля в 17:00 состоится митап, в котором я приму непосредственное участие. Темы:

    • Best Practice из Go для PHP.
    • Оптимизация MySQL в условиях HighLoad.
    • Холивар про асинхронность в PHP.

    Регистрируемся

    Комментировать
  7. Интервью с Hexlet

    4 февраля

    Ещё одно интервью с Hexlet. На этот раз текстом и брал его Святослав Иванов. Про то, как я втянулся в PHP, про сам язык, его сообщество, OpenSource и Yii.

    Читаем

    Комментировать
  8. PHP Russia 2020 переносится на 28 июня 2021 года

    23 января

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

    Комментировать
  9. Евгений Россинский про прыгунов

    14 января

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

    Об одной из них в интервью рассказал Евгений Россинский, СТО ivi и член ПК Highload и РИТ:

    Люди, которые прыгают из одной компании в другую, проработав по году, не отвечают за свои слова. Это значит, что те архитектурные решения, которые они сделали, проверяет кто-то другой. И они не получают того самого опыта, который нужен для жизни долгоиграющего сервиса. Ты устроился работать в компании, проработал там два месяца, написал какой-то сервис или сделал какую-нибудь фичу, а когда эта фича через 7-8 месяцев перешла в суровую эксплуатацию, ты увольняешься. Но кто будет отвечать за то, что эту хрень написал ты?

    11 комментариев
  10. 2020

    2 января

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

    Читаем

    2 комментария