Forwarded from HABR FEED + OPENNET
Как отлаживать bash-script-ы по шагам или возможно, самая короткая статья о программировании/отладке на Хабре
https://habr.com/ru/post/666982/?utm_source=habrahabr&utm_medium=rss&utm_campaign=666982
Tags: *nix, bash, bash-скрипт, bash-программирование, debug, bash-scripting, one-liners, one-liner
Author tminnigaliev #habr
https://habr.com/ru/post/666982/?utm_source=habrahabr&utm_medium=rss&utm_campaign=666982
Tags: *nix, bash, bash-скрипт, bash-программирование, debug, bash-scripting, one-liners, one-liner
Author tminnigaliev #habr
Хабр
Как отлаживать bash-script-ы по шагам или, возможно, самая короткая статья о программировании/отладке на Хабре
Введение Мне всегда хотелось иметь возможность отлаживать bash-scripts так же, как и любой другой код, т.е. по шагам, и bash такую возможность предусмотрел, но о ней не все знают. Несмотря на довольно...
👍1
Overview of Modern Concurrency and Parallelism Concepts
Про отличия процессов, потоков, корутин, горутин, файберов, etc. Параллелизм и конкуренция.
@axenov_dev
Про отличия процессов, потоков, корутин, горутин, файберов, etc. Параллелизм и конкуренция.
@axenov_dev
Nikgrozev
Overview of Modern Concurrency and Parallelism Concepts
Most software engineers know about operating system (OS) level processes and threads. They are taught in all university OS courses. However, newer concepts p...
axenov.dev
Overview of Modern Concurrency and Parallelism Concepts Про отличия процессов, потоков, корутин, горутин, файберов, etc. Параллелизм и конкуренция. @axenov_dev
Fibers в #PHP 8.1
🌐 https://habr.com/ru/company/vk/blog/551240/
🌐 https://php.watch/versions/8.1/fibers
@axenov_dev
🌐 https://habr.com/ru/company/vk/blog/551240/
🌐 https://php.watch/versions/8.1/fibers
@axenov_dev
Хабр
Fiber’ы — новая фича в PHP 8.1
PHP пытается восполнить недостаток возможностей в своей кодовой базе, и Fiber ’ы — одно из значимых нововведений. Они появились в PHP 8.1 в конце 2020 и привнесли в язык своего рода асинхронное...
Асинхронность, конкурентность, параллельность, многопоточность — разбираемся «по понятиям» :)
https://habr.com/ru/post/667590/
#php @axenov_dev
https://habr.com/ru/post/667590/
#php @axenov_dev
Хабр
Асинхронность, конкурентность, параллельность, многопоточность — разбираемся «по понятиям» :)
Эта статья представляет собой краткий ( шутка! ) конспект одноименного (почти) вебинара, недавно проведенного автором. Цель и вебинара и статьи - дать начинающим представление о тех понятиях, которые...
👍1
Как прокачаться в PHP: 70 ресурсов из опроса русскоязычного сообщества
Список книг и ресурсов (в т.ч. в телеграме) для изучения языка. Подойдёт на любом уровне, от нулёвого новичка до сеньора.
#php @axenov_dev
Список книг и ресурсов (в т.ч. в телеграме) для изучения языка. Подойдёт на любом уровне, от нулёвого новичка до сеньора.
#php @axenov_dev
👍1
Forwarded from S0ER
В программировании есть вещи, которые не стареют. С ASCII графикой в комментариях к коду я познакомился году эдак в 1996, когда подписался в FIDO на NICE.SOURCES. Хорошо запомнил пример с кодом для декодирования JPG, который сопровождался ASCII.
Я заговорил об этом, потому что наткнулся вот на эту статью - https://blog.regehr.org/archives/1653 которая содержит кучу примеров с инфографикой из кода.
Я заговорил об этом, потому что наткнулся вот на эту статью - https://blog.regehr.org/archives/1653 которая содержит кучу примеров с инфографикой из кода.
👍1
endoflife.date
Open-source сервис, в котором собраны "даты жизни" разных версий ОС, ПО, фреймворков, языков и библиотек. Предоставляет простой бесплатный публичный API, с помощью коего можно легче отслеживать подходящий момент для обновления своих проектов, например, путём интеграции на уровень CI или какого-нибудь кастомного скрипта твоего пакетного менеджера.
#tools @axenov_dev
Open-source сервис, в котором собраны "даты жизни" разных версий ОС, ПО, фреймворков, языков и библиотек. Предоставляет простой бесплатный публичный API, с помощью коего можно легче отслеживать подходящий момент для обновления своих проектов, например, путём интеграции на уровень CI или какого-нибудь кастомного скрипта твоего пакетного менеджера.
#tools @axenov_dev
📝 Делаем бекап проекта простым путём
Сегодня 07.07.2022. Два дня назад я очень глупо и почти случайно потерял всё, что было на этом сервере. Бэкапы были только от мая — это лучше, чем ничего, однако регулярного резервирования не было. Тут либо жизнь меня ничему не учит, либо уже научила и я стал достаточно аккуратен, чтобы не ронять проды как слон в…
https://axenov.dev/?p=1234
#shell #mysql #блог #моё
👨💻 @axenov_dev 👍 @axenov_blog
Сегодня 07.07.2022. Два дня назад я очень глупо и почти случайно потерял всё, что было на этом сервере. Бэкапы были только от мая — это лучше, чем ничего, однако регулярного резервирования не было. Тут либо жизнь меня ничему не учит, либо уже научила и я стал достаточно аккуратен, чтобы не ронять проды как слон в…
https://axenov.dev/?p=1234
#shell #mysql #блог #моё
Please open Telegram to view this post
VIEW IN TELEGRAM
Блог Аксенова
Делаем бекап проекта простым путём
Photo by Markus Winkler on Unsplash Сегодня 07.07.2022. Два дня назад я очень глупо и почти случайно потерял всё, что было на этом сервере. Бэкапы были только от мая -- это лучше, чем ничего, однако регулярного резервирования не было. Тут либо жизнь меня…
Зачем нужен static при объявлении анонимных функций?
Обращаем внимание в #php на неочевидную разницу между (non)static-замыканиями. @axenov_dev
Обращаем внимание в #php на неочевидную разницу между (non)static-замыканиями. @axenov_dev
👍1
Attributes in PHP 8
Наиболее полный и понятный мануал по работе с атрибутами в #php. Можно использовать как справочник.
По опыту могу сказать, что атрибуты — суперский механизм (мета-)проргаммирования проекта на уровне рефлексий. Его определённо стоит попробовать.
@axenov_dev
Наиболее полный и понятный мануал по работе с атрибутами в #php. Можно использовать как справочник.
По опыту могу сказать, что атрибуты — суперский механизм (мета-)проргаммирования проекта на уровне рефлексий. Его определённо стоит попробовать.
@axenov_dev
🔥1
vitalets/github-trending-repos
Интересный реп. Подписываешься на ишью интересующего ЯП и получаешь на почту список ссылок на репы в ГХ, которым отсыпали звёзд за последние сутки или неделю.
Проскакивают интересные вещи. Можно использовать как источник репов, в которые можно поконтрибьютить.
#foss #github @axenov_dev
Интересный реп. Подписываешься на ишью интересующего ЯП и получаешь на почту список ссылок на репы в ГХ, которым отсыпали звёзд за последние сутки или неделю.
Проскакивают интересные вещи. Можно использовать как источник репов, в которые можно поконтрибьютить.
#foss #github @axenov_dev
GitHub
GitHub - vitalets/github-trending-repos: Track GitHub trending repositories in your favorite programming language by native GitHub…
Track GitHub trending repositories in your favorite programming language by native GitHub notifications! - vitalets/github-trending-repos
📝 Русификация iptvnator
К разработке этот пост относится весьма посредственно, но тем не менее. Я тут вспомнил, что ранее в этом блоге уже выкладывал русификации, которые делал сам. И ещё я тут вспомнил, что когда-то давно я сделал pull-request в проект iptvnator.
Это довольно простая софтинка для просмотра разных IPTV-плейлистов на своём компе или из браузера. Понятное дело,…
https://axenov.dev/?p=1353
#блог #моё
👨💻 @axenov_dev 👍 @axenov_blog
К разработке этот пост относится весьма посредственно, но тем не менее. Я тут вспомнил, что ранее в этом блоге уже выкладывал русификации, которые делал сам. И ещё я тут вспомнил, что когда-то давно я сделал pull-request в проект iptvnator.
Это довольно простая софтинка для просмотра разных IPTV-плейлистов на своём компе или из браузера. Понятное дело,…
https://axenov.dev/?p=1353
#блог #моё
Please open Telegram to view this post
VIEW IN TELEGRAM
Блог Аксенова
Русификация iptvnator
К разработке этот пост относится весьма посредственно, но тем не менее. Я тут вспомнил, что ранее в этом блоге уже выкладывал русификации, которые делал сам. И ещё я тут вспомнил, что когда-то давно я сделал pull-request в проект iptvnator. Это довольно простая…
How to Use Linux Signals in Bash Scripts
Годная информация о сигналах в Linux и о том, как их использовать в своих #shell-скриптах с помощью trap
@axenov_dev
Годная информация о сигналах в 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
Ситуация
При запуске программы через меню приложений возникает эта ошибка, программа не запускается.
Я встречал это на Oracle SQLDeveloper любой версии 20+, который устанавливался из официального rpm в среде Ubuntu + KDE с помощью sudo alien -dic. Ошибки не было в MATE. Может не встречаться в GNOME. Встретил только в KDE.
Ошибки нет, если запустить…
https://axenov.dev/?p=1394
#блог #моё
Please open Telegram to view this post
VIEW IN TELEGRAM
Блог Аксенова
Ошибка KDE: «execvp: Ошибка формата выполняемого файла»
Элементарное решение проблемы запуска приложений из меню KDE
📝 Прокачиваем бекап проекта простым путём
Это продолжение предыдущего поста. Я решил сделать более интересный вариант:
- резервировать в холодный S3-бакет;
- прикрутить нотификации на телефон об ошибках и успехах резервирования;
- исправить пару недочётов из прошлой версии.
В прошлом посте можешь глянуть исходную версию скрипта. Здесь мы его скорректируем и нарастим вкусным мясом.
https://axenov.dev/?p=1272
#mysql #shell #s3 #блог #моё
👨💻 @axenov_dev 👍 @axenov_blog
Это продолжение предыдущего поста. Я решил сделать более интересный вариант:
- резервировать в холодный S3-бакет;
- прикрутить нотификации на телефон об ошибках и успехах резервирования;
- исправить пару недочётов из прошлой версии.
В прошлом посте можешь глянуть исходную версию скрипта. Здесь мы его скорректируем и нарастим вкусным мясом.
https://axenov.dev/?p=1272
#mysql #shell #s3 #блог #моё
Please open Telegram to view this post
VIEW IN TELEGRAM
Блог Аксенова
Прокачиваем бекап проекта простым путём
Photo by Pero Kalimero on Unsplash Это продолжение предыдущего поста про резервирование. Я решил сделать более интересный вариант: резервировать в холодный S3-бакет;прикрутить нотификации на телефон об ошибках и успехах резервирования;исправить пару недочётов…
👍1
Немного полезной информации об опкодах в #php.
🔹 JIT в PHP 8: Просто о сложном — коротко о том, как работает opcache, JIT-компиляция и как это включить.
🔹 How to dump and inspect PHP OPCodes — как просмотреть опкоды скриптов на примерах. Полезно в изучении подкапотного оптимизатора.
К слову: JIT-компиляция несовместима с xdebug. Кроме того, он местами довольно существенно замедляет выполнение скриптов. Поэтому на продах его ставить не следует, но следует держать это в голове даже при локальной отладке.
@axenov_dev
🔹 JIT в PHP 8: Просто о сложном — коротко о том, как работает opcache, JIT-компиляция и как это включить.
🔹 How to dump and inspect PHP OPCodes — как просмотреть опкоды скриптов на примерах. Полезно в изучении подкапотного оптимизатора.
К слову: JIT-компиляция несовместима с xdebug. Кроме того, он местами довольно существенно замедляет выполнение скриптов. Поэтому на продах его ставить не следует, но следует держать это в голове даже при локальной отладке.
@axenov_dev
YouTube
JIT в PHP 8: Просто о сложном
Привет, друзья!
В данном видео мы поговорим о JIT в PHP 8. В ходе просмотра видео вы узнаете что это такое, зачем это вообще нужно, как это включить и какую пользу с этого можно получить.
0:00 Введение
1:47 Как выполняется код на PHP?
4:14 PHP и OPCache…
В данном видео мы поговорим о JIT в PHP 8. В ходе просмотра видео вы узнаете что это такое, зачем это вообще нужно, как это включить и какую пользу с этого можно получить.
0:00 Введение
1:47 Как выполняется код на PHP?
4:14 PHP и OPCache…
👍1
Если ты при выполнении
Теоретически, также можно откатиться на <=1.1.2, но быстрого способа я пока не нашёл. Конкретно мне случайно помог мой скрипт переустановки докера, составленный по офиц. мануалу — там как раз, по сути, containerd был переустановлен и запущен сызнова, так что ошибка ушла.
На самом деле, вполне можно обойтись командой:
В любом случае, ждём релиза с фиксом.
#docker @axenov_dev
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
GitHub
[1.1] Fix failed exec after systemctl daemon-reload (regression in 1.1.3) by kolyshkin · Pull Request #3554 · opencontainers/runc
A regression reported for runc v1.1.3 says that after systemctl
daemon-reload runc exec fails:
exec failed: unable to start container process: open /dev/pts/0: operation not permitted: unknown
Ap...
daemon-reload runc exec fails:
exec failed: unable to start container process: open /dev/pts/0: operation not permitted: unknown
Ap...
👍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
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