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
Как и хотел, достряпал свой бойлерплейт 💃

https://packagist.org/packages/axenov/blessphp

Постарался подготовить максимально готовый минимально сложный проект, который развернул и погнал. Под капотом twig, flightphp, bootstrap 5, ionicons 6, phpunit, готовый docker-compose.yml, мультиязычность, консольный скрипт bless и коллекции от ларки.

Вообще, местами я делал BlessPHP с оглядкой на #laravel (например, bless чем-то напоминает artisan, конфиги, функции-хелперы...). Для работы с БД из коробки (пока) ничего нет, ибо это легко расширяется вручную, но у меня есть желание доработать проект под PDO и Redis через psr-совместимые пакеты. Этого там не хватает и тогда получится вполне самодостаточная связка, при этом проект сильно не разжиреет.

У меня на packagist есть пакет-библиотека, это — проект, считай, чуть иной опыт, интересный. Щупайте, жду issues.

#composer #php #моё #foss @axenov_dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👏3
Flexbox Playground

Простая, наглядная и открытая песочница для изучения работы flex-свойств CSS

#foss #tools #js #css @axenov_dev
👍1
Написал простой скрипт для копирования файлов из одной директории в другую. Что?

Ситуация: syncthing синхронит фотки/видюхи с мобилки на комп в один конец (и создание, и удаление). Это уже хорошо, но мне постоянно приходится держать файлы на мобилке, чтобы потом на компе их скопировать всё куда надо, и только потом уже чистить мобилку. Иначе на компе тоже всё затрётся.

Довольно поздно, но всё же я решил полениться правильно: по мере появления файлов, копировать их из директории syncthing в другую. Эта другая просто будет постепенно копиться и сортироваться мной уже в любое время вручную. Это даст мне безопасно очистить место на мобилке и не потерять копии на компе.

В итоге написал простую обёртку над inotifywait. Он ждёт, пока наступит событие MOVED_TO. Здесь фига в том, что syncthing при синхронизации создаёт временный скрытый файл, пишет его и потом переименовывает (перемещает) в правильное имя. Когда файл записан, событие MOVED_TO, в отличие от многих других, гарантированно возникает лишь единожды. А чтобы игнорировать лишние файлы, я строго урезал нужные по регулярке.

В общем, если у тебя есть какой-то похожий кейс, то можешь заточить скриптик под себя:

👩‍💻 https://gist.github.com/anthonyaxenov/49c640dd4aaee77e8df33d6f5d2eeb0c

#foss #моё #shell @axenov_dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
👩‍💻 scottslowe/learning-tools

Репозиторий с материалами для изучения по разным проверенным годами технологиям. Нацелен на профи, которые хотят вкатиться во что-то новое и повысить продуктивность. Обновляется редко, охватывает прежде всего *nix операционные системы, инструменты контейнеризации, деплоя и оркестрации.

#docs #github #codecamp @axenov_dev
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
👩‍💻 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