axenov.dev
44 subscribers
26 photos
94 links
Канал о разработке, FOSS + кросспост из блога

Навигация: https://t.iss.one/axenov_dev/11

🚀 https://t.iss.one/axenov_dev?boost
✍️ @axenov_blog — оффтоп
🤕 @anthonyaxenov
🌐 https://axenov.dev
Download Telegram
Как прокачаться в PHP: 70 ресурсов из опроса русскоязычного сообщества

Список книг и ресурсов (в т.ч. в телеграме) для изучения языка. Подойдёт на любом уровне, от нулёвого новичка до сеньора.

#php @axenov_dev
👍1
Forwarded from S0ER
В программировании есть вещи, которые не стареют. С ASCII графикой в комментариях к коду я познакомился году эдак в 1996, когда подписался в FIDO на NICE.SOURCES. Хорошо запомнил пример с кодом для декодирования JPG, который сопровождался ASCII.

Я заговорил об этом, потому что наткнулся вот на эту статью - https://blog.regehr.org/archives/1653 которая содержит кучу примеров с инфографикой из кода.
👍1
endoflife.date

Open-source сервис, в котором собраны "даты жизни" разных версий ОС, ПО, фреймворков, языков и библиотек. Предоставляет простой бесплатный публичный API, с помощью коего можно легче отслеживать подходящий момент для обновления своих проектов, например, путём интеграции на уровень CI или какого-нибудь кастомного скрипта твоего пакетного менеджера.

#tools @axenov_dev
📝 Делаем бекап проекта простым путём

Сегодня 07.07.2022. Два дня назад я очень глупо и почти случайно потерял всё, что было на этом сервере. Бэкапы были только от мая — это лучше, чем ничего, однако регулярного резервирования не было. Тут либо жизнь меня ничему не учит, либо уже научила и я стал достаточно аккуратен, чтобы не ронять проды как слон в…

https://axenov.dev/?p=1234

#shell #mysql #блог #моё
👨‍💻@axenov_dev 👍@axenov_blog
Please open Telegram to view this post
VIEW IN TELEGRAM
Зачем нужен static при объявлении анонимных функций?

Обращаем внимание в #php на неочевидную разницу между (non)static-замыканиями. @axenov_dev
👍1
Attributes in PHP 8

Наиболее полный и понятный мануал по работе с атрибутами в #php. Можно использовать как справочник.

По опыту могу сказать, что атрибуты — суперский механизм (мета-)проргаммирования проекта на уровне рефлексий. Его определённо стоит попробовать.

@axenov_dev
🔥1
vitalets/github-trending-repos

Интересный реп. Подписываешься на ишью интересующего ЯП и получаешь на почту список ссылок на репы в ГХ, которым отсыпали звёзд за последние сутки или неделю.

Проскакивают интересные вещи. Можно использовать как источник репов, в которые можно поконтрибьютить.

#foss #github @axenov_dev
📝 Русификация iptvnator

К разработке этот пост относится весьма посредственно, но тем не менее. Я тут вспомнил, что ранее в этом блоге уже выкладывал русификации, которые делал сам. И ещё я тут вспомнил, что когда-то давно я сделал pull-request в проект iptvnator.

Это довольно простая софтинка для просмотра разных IPTV-плейлистов на своём компе или из браузера. Понятное дело,…

https://axenov.dev/?p=1353

#блог #моё
👨‍💻@axenov_dev 👍@axenov_blog
Please open Telegram to view this post
VIEW IN TELEGRAM
How to Use Linux Signals in Bash Scripts

Годная информация о сигналах в Linux и о том, как их использовать в своих #shell-скриптах с помощью trap

@axenov_dev
👍1
📝 KDE: ошибка «execvp: Ошибка формата выполняемого файла»

Ситуация

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

Я встречал это на Oracle SQLDeveloper любой версии 20+, который устанавливался из официального rpm в среде Ubuntu + KDE с помощью sudo alien -dic. Ошибки не было в MATE. Может не встречаться в GNOME. Встретил только в KDE.

Ошибки нет, если запустить…

https://axenov.dev/?p=1394

#блог #моё
👨‍💻@axenov_dev 👍@axenov_blog
Please open Telegram to view this post
VIEW IN TELEGRAM
📝 Прокачиваем бекап проекта простым путём

Это продолжение предыдущего поста. Я решил сделать более интересный вариант:

- резервировать в холодный S3-бакет;
- прикрутить нотификации на телефон об ошибках и успехах резервирования;
- исправить пару недочётов из прошлой версии.

В прошлом посте можешь глянуть исходную версию скрипта. Здесь мы его скорректируем и нарастим вкусным мясом.

https://axenov.dev/?p=1272

#mysql #shell #s3 #блог #моё
👨‍💻@axenov_dev 👍@axenov_blog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Немного полезной информации об опкодах в #php.

🔹 JIT в PHP 8: Просто о сложном — коротко о том, как работает opcache, JIT-компиляция и как это включить.

🔹 How to dump and inspect PHP OPCodes — как просмотреть опкоды скриптов на примерах. Полезно в изучении подкапотного оптимизатора.

К слову: JIT-компиляция несовместима с xdebug. Кроме того, он местами довольно существенно замедляет выполнение скриптов. Поэтому на продах его ставить не следует, но следует держать это в голове даже при локальной отладке.

@axenov_dev
👍1
Большой наглядный cheat-sheet по #make

https://makefiletutorial.com

@axenov_dev
👍3
Если ты при выполнении docker exec стал часто сталкиваться с ошибкой

OCI runtime exec failed: exec failed: unable to start container process: open /dev/pts/0: operation not permitted: unknown

Значит, скорее всего, у тебя используется runc версии 1.1.3 (runc --version) с ошибкой. Она будет исправлена в runc 1.1.4, черновик релиза уже создан.

Теоретически, также можно откатиться на <=1.1.2, но быстрого способа я пока не нашёл. Конкретно мне случайно помог мой скрипт переустановки докера, составленный по офиц. мануалу — там как раз, по сути, containerd был переустановлен и запущен сызнова, так что ошибка ушла.

На самом деле, вполне можно обойтись командой:

sudo systemctl restart containerd.service

Главное, не трогать systemctl daemon-reload!

В любом случае, ждём релиза с фиксом.

#docker @axenov_dev
👍1
Рассматривая пул-реквест из прошлого поста, я обнаружил использование участниками акронимов, которые ранее не знал. Точечно прогуглив, составил небольшой список аббревиатур, которые можно встретить в обсуждении пулл-реквестов разных проектов на GitHub:

LGTM (looks good to me) — «мне нравится».

FYI (for your information) — «к вашему сведению».

PTA[C]L (please, take a [closer] look) — «посмотри, пожалуйста», требуется мнение другого участника.

ACK (acknowledgement) — подтверждение, согласованное/принятое изменение.

NACK/NAK (negative acknowledgement) — отрицательное подтверждение, несогласие с изменением и/или концепцией.

RFC (request for comments) — запрос комментариев; думаю, это хорошая идея, давайте обсудим.

WIP (work in progress) — «в работе», пока не объединять.

AFAIK/AFAICT (as far as I know/can tell) — «насколько я знаю/могу сказать».

IDK (I don't know) — я не знаю.

IIRC (if I recall correctly) — «если я правильно помню».

IANAL (I am not a lawyer) — «я не юрист», допускаю проблемы с лицензированием.

IM[H]O (in my [humble] opinion) — «по моему скромному мнению», по-моему.

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

#github @axenov_dev
👍1