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
👩‍💻 tldr.sh

Утилита для получения короткой справки по командам с конкретными примерами использования. Поддерживается сообществом.

#foss #javascript #shell #docs 👨‍💻@axenov_dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 direnv.net

Утилита для установки переменных окружения в зависимости от текущей директории. Более простая альтернатива: 👩‍💻 hyperupcall/autoenv

#foss #shell 👨‍💻@axenov_dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 ytdlcue.sh (mirror)

Написал скрипт для генерации cue-sheet к аудиофайлам, которые были скачаны через youtube-dl. Вкратце: качаешь аудио-дорожку с YT или YTM (можно моим готовым алиасом) вместе с метаинформацией, запускаешь ytdlcue с указанием аудио файла и БАМ — готовый cue оказывается рядом.

Для этого в видео должны быть метки: их можно заметить по засечкам и названиям конкретных мест на полосе перемотки (например, как здесь).

Когда я собирал инфу о том, какие вообще есть решения, их оказалось по пальцам одной руки, да и те — на питоне и js. Мне потребовались только баш и jq для парсинга json, который выкачивает youtube-dl с метаинформацией о видео.

Скрипт не учитывает некоторые мелочи, но отрабатывает очень хорошо, результат проверен.

#моё #foss #shell 👨‍💻@axenov_dev
Please open Telegram to view this post
VIEW IN TELEGRAM
onelinerhub.com

2800+ примеров однострочных решений по 75 технологиям с объяснениями; как #foss, так и языкам программирования.

#docs 👨‍💻@axenov_dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Почему Laravel пытается подключиться к БД при инициализации?

Столкнулся на работе с занятной проблемой на Laravel 9.

Однажды, я, прогоняя тесты phpunit, никак не мог добиться их удачного выполнения: они постоянно падали, но написаны гарантированно верно, вчера их запускал. Через какое-то время всё прошло. Я не был удивлён: на БД-песочнице проводились работы, вскоре она была перезапущена и я таки прогнал тесты с успехом.

Но осознав произошедшее меня обдало ледяным потом -- стоп, а какого хуя? В моих тестах нет подключения к БД!

https://axenov.dev/почему-laravel-пытается-подключиться-к-бд-пр/

#блог #моё
👨‍💻@axenov_dev 👍@axenov_blog
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 git-quick-stats.sh

Утилита для сбора статистики по 👩‍💻 git-репозиторию

#foss #shell #git 👨‍💻@axenov_dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 jamesob/desk

Простая и гениальная утилита для ручного управления рабочим окружением оболочки. Например, при вызове desk myproj выполняет shell-сценарий ~/.desk/desks/myproj.sh, т.о. можно на лету менять контекст (шелл-функции, алиасы, переменные окружения) и выполнять прочие необходимые команды для быстрой подготовки к дальнейшей работе.

#foss #shell 👨‍💻@axenov_dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Deprecating spatie/data-transfer-object

Пакет для работы с ДТО прекратили развивать. В посте предлагаются альтернативные пакеты, но также можно создать форк и подключить его, либо явно включить пакет в проект.

#php 👨‍💻@axenov_dev
Please open Telegram to view this post
VIEW IN TELEGRAM
📝 Настройка среды php-разработки с нуля на Netbeans + php8.1 + docker + xdebug3

Привет. Это здоровенный мануал-шпаргалка по настройке IDE для 👩‍💻 php-разработки. Полагаю, он больше сгодится для российских и белоруских разработчиков, переходящих c 👩‍💻 PhpStorm, ибо есть предпосылочка. В этом контексте было решено построить себе запасной инструментарий. А ещё я всё-таки закрыл гештальт и познакомился с Netbeans, как давно хотел.

На деле эта IDE во многих отношениях проще шторма, но местами и переусложнена. Постараюсь раскрыть здесь это поподробнее. Поэтому статья иногда будет дополняться и корректироваться.

https://axenov.dev/netbeans-php-docker-xdebug/

#php #блог #моё #NetBeans
👨‍💻@axenov_dev 👍@axenov_blog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
📝 Termux: настроить доступ по ssh между Android и Ubuntu

Привет. Сегодня я хочу связать по SSH два мобильника Samsung A50 и A53 (оба без root-прав) и Ubuntu 22.04, чтобы ходить туда-сюда с любого девайса на любой. Всё происходит дома в рамках одного wifi-роутера.

В сухом остатке всё оказывается быстро и просто. Поднимаем везде ssh-серверы и прописываем друг другу ключи. Специфика только в termux. Тут расписаны пошаговые команды: чтобы и самому не забыть, и тебе показать, ежели впервые.

https://axenov.dev/termux-настроить-доступ-по-ssh-между-android-и-ubuntu/

#блог #моё #termux #ssh #android
👨‍💻 @axenov_dev 👍 @axenov_blog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
📝 Laravel: скаляры в замыканиях маршрутов и контроллерах (перевод)

Для начала небольшое предисловие и контекст.

Это мой перевод оригинальной заметки «Primitive Types in Controllers and Closure Routes» от Paul Redmond. Я нашёл её когда пытался разобраться с одной маленькой проблемой при работе с маршрутами и их параметрами в Laravel.

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

https://axenov.dev/laravel-типы-в-маршрутах-и-контроллерах/

#блог #моё #laravel #php #перевод
👨‍💻@axenov_dev 👍@axenov_blog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
📝 Обновите свои SSH-ключи до Ed25519

Привет. Это мой самостоятельный перевод некогда случайно найденной мной оригинальной статьи Upgrade Your SSH Key to Ed25519, автор — Risan Bagja, ныне веб-разработчик из Швеции.

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

https://axenov.dev/обновите-свои-ssh-ключи-до-ed25519/

#блог #моё #Linux #SSH #Перевод
👨‍💻 @axenov_dev 👍 @axenov_blog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
📝 Отладка cli-скриптов на php из docker-контейнера в NetBeans штатными средствами

Привет. Я тут на досуге написал скрипт, которым я подменил php-интерпретатор в NetBeans.

Как известно, NetBeans сам не умеет запускать консольные скрипты, которые находятся внутри контейнера. Здесь же я покажу как я решил эту проблему для себя и теперь запускаю скрипты не из терминала, а одной кнопкой в гуйне. В целом, как показывает практика, решение работает исправно.

https://axenov.dev/netbeans-php-docker-xdebug-cli/

#блог #моё #bash #IDE #NetBeans #PHP
👨‍💻 @axenov_dev 👍 @axenov_blog
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1
📝 Домашний сервер на Ubuntu 22.04 LTS. Часть 1: покупка, настройка, старт

Большой пост о том, как я обзавёлся домашним сервачком. Настройка, первые впечатления и в целом полезная промежуточная инфа.

https://axenov.dev/домашний-сервер-на-ubuntu-22-04-lts-часть-1-покупка/

#блог #моё #MiniDLNA #Samba #SSH #Syncthing #Ubuntu #Железо #околоNAS
👨‍💻 @axenov_dev 👍 @axenov_blog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
📝 Резервное копирование фотографий со смартфона

Бекапинг фотографий с помощью Syncthing — дело хорошее, но есть нюансы. В этом посте я покажу как можно автоматизировать рутину.

https://axenov.dev/резервное-копирование-фотографий-со/

#блог #моё #Android #bash #Linux #Syncthing #Ubuntu #Резервирование
👨‍💻 @axenov_dev 👍 @axenov_blog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Перехвачен контроль над 14 PHP-библиотками в репозитории Packagist #opennet
https://www.opennet.ru/opennews/art.shtml?num=59075

Администраторы репозитория пакетов Packagist раскрыли сведения об атаке, в результате которой был захвачен контроль над учётными записями сопровождающих 14 PHP-библиотек, в числе которых такие популярные пакеты, как instantiator (526 млн установок всего и 8 млн установок за месяц), sql-formatter (94 млн установок), doctrine-cache-bundle (73 млн) и rcode-detector-decoder (20 млн).
Ниже будет #викторина #php
axenov.dev
Ниже будет #викторина #php
Что окажется в переменной $check при выполнении скрипта в php8.1?
Anonymous Quiz
71%
bool(false)
0%
int(0)
14%
string(3) "str"
0%
NULL
14%
Parse error