Как в Guzzle указать версию TLS/SSL

Иногда нужно делать HTTPS запросы к внешним ресурсам с нестандартными параметрами подключения. Т.к. библиотека Guzzle является обёрткой над Curl, то делается это так: $this->guzzle = new Client([‘timeout’ => 5, ‘base_uri’ => $uri, ‘curl’ => [ CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_3 ]]);

Composer PHP Fatal error: Allowed memory size

Пакетный менеджер Composer внезапно может удивить и вместо установки или обновления пакетов выдать сообщение об ошибке: PHP Fatal error: Allowed memory size of XXXXXX bytes exhausted <…> Да, композер беспощадно потребляет ОЗУ и не влезает в установленные лимиты. Обойти можно следующими способами:

Как в PHP декодировать содержимое email-письма

При чтении письма из электронного ящика при помощи функции imap_body его содержимое будет частично закодировано. Раскодировать его достаточно просто, нужно лишь воспользоваться функцией quoted_printable_decode. В некоторых сложных случаях потребуется дополнительное декодирование кодировки:

Как подсчитать доход с займов по кредитным лимитам в сервисе Webmoney Debt

Так случилось, что в разделе «Займы, которые я выдал» (https://debt.web.money/Credits.aspx) сервиса Webmoney Debt отсутствует экспорт отчёта. А вам как назло хочется получить все данные с этой страницы в виде Excel-таблицы и провести аналитику. К счастью это можно сделать, выполнив на странице JavaScript сценарий. В сервисе используется библиотека jQuery и сделать это […]

Pipe Viewer: prograssbar для консольных утилит в Linux

Рассмотрим сценарий, когда вы только начали копировать очень большой файл с флэш-накопителя на вашей системе Linux с помощью командной строки. Учитывая, что данный файл является тяжелым, вы знаете, процесс займет некоторое время, и поэтому вы начинаете делать другую работу. Через некоторое время вы вернулись, только чтобы увидеть, что команда все еще […]

Смена раскладки в Windows 10 по нажатию Caps Lock

Делаем так, чтобы при нажатии Caps Lock в Windows 10 менялась раскладка клавиатуры. Не помню точно момент, когда я стал на всех машинах и ОС перебивать дефолтный Shift + Alt на Caps Lock. Хотелось попробовать, а рациональные аргументы были такие, что меньше кнопок жать, и вообще капс никто и нигде не использует. Сейчас я уже […]

Docker and IPtables

TL;DR; By default, docker daemon appends iptables rules for forwarding. For this, it uses a filter chain named DOCKER. Chain FORWARD (policy DROP) target prot opt source destination DOCKER all — 0.0.0.0/0 0.0.0.0/0 … Chain DOCKER (1 references) target prot opt source destination Moreover, when you tell docker to expose a port of a container, it […]

Как научиться играть на гитаре быстро

Быстрее!!! Это слово, словно маяк на горизонте, движет многими начинающими гитаристами. Особенно когда дело касается электрогитары. И неудивительно, ведь послушав записи таких мастеров, как Ингви Мальмстин и Джо Сатриани, практически каждый, кто в состоянии отличить фендер от ибанеза, загорится желанием проделать то же самое — повторить эти невероятные запилы и […]

Golang — изящная обработка ошибок

Несмотря на то, что в go предусмотрена простая модель ошибок, на деле все не так уж и просто. В данной статье я хочу рассказать вам об эффективном способе обработки ошибок и решения сопутствующих проблем. Для начала, необходимо понять, что именно считается ошибкой в go. Затем рассмотрим весь процесс, от создания ошибки до […]