☕️ Мерлин заваривает τσάι 🐌
1.08K subscribers
3.54K photos
64 videos
94 files
2.43K links
Merlin makes a slice
Merlin iterates it's twice
Happy compiling!
Download Telegram
добавить (не заменить) аудиодорожки в видеофайлах в директории

#snippet

basename -s .mkv ./*.mkv | \
xargs -I{} ffmpeg -i '{}.mkv' \
-i './soundtracks/{}.mka' \
-map 0 -map 1:a -c:v copy \
'{}_alter_track.mkv'


-s .mkv — убрать суффикс .mkv

-map 0 — из первого входа (.mkv) взять все стримы
-map 1:a — из второго файла (.mka) взять только аудио
-c:v copy - просто копировать видео без перекодировки
🔥6
☕️ Мерлин заваривает τσάι 🐌
Пропоузал от rsc - добавить пакет iter https://github.com/golang/go/issues/61897
В go1.22 стали доступны экспериментальные итераторы. Я немного поигрался с ними и в итоге сваял библиотеку https://github.com/ninedraft/itermore комбинаторов, конструкторов и прочих утилит.

Кажется для полного счастья мне не хватает буквально пары дополнительных функций — так что возможно добавлю в нормальном виде позже.

В итоге сейчас каждый проект у меня начинается с echo export GOEXPERIMENT=rangefunc > .envrc — итераторы оказались слишком удобными
👍7🤪2
☕️ Мерлин заваривает τσάι 🐌
#домашний_сервер В итоге я провёл небольшую ревизию и теперь работа с сервером выглядит вот так: На сервере и на рабочих устройствах поднят Yggdrasil, адреса рабочих станций разрешены в ip6tables: -A input -i $YGG-TUN -p tcp -s $PEER-IP -j ACCEPT В проектах…
upd

на сервер я теперь хожу исключительно через yggdrasil — разрешён только мой IP + Port Knocking

Плюсов, как водится, почти никаких - разве что адрес не поменяется при переезде сервера

Всё ради вайбов криптопанка, конечно же 😎
😁123👍1👏1
☕️ Мерлин заваривает τσάι 🐌
Шаблонизатор, который позволяет встраивать Go код внутрь HTML Как в старом добром PHP! <https://github.com/adhocteam/pushup> ^import "time" ^{ title := "Hello, from Pushup!" } <h1>^title</h1> <p>The time is now ^time.Now().String().</p> ^if tim…
https://github.com/a-h/templ понравился по итогу больше

к тому же он очень приятно стыкуется с htmx

В общем и целом, можно очень быстро и приятно клепать админки для домашних или внутренних поделок с помощью htmx + templ + picocss — результат получается не просто рабочим, но ещё и достаточно приятным глазу
👍81
gRPCREST gateway
😁18👍61
#TIL (thankfully second hand) that running "systemd-tmpfiles --purge" will delete /home in systemd 256 [1]. Apparently if you think linux is mainly for running cloud services, this seems reasonable to you. Or something.

[1] tested with systemd-tmpfiles --dry-run --purge on debian. I guess it _could_ be a Debian addition, but I'm guessing not.

https://mathstodon.xyz/@bremner/112615591101488528
😱64👏4
в биологии есть крабофикация, а в языках программирования - питонификация

сначала скала, потом рэкет, теперь и guile

https://srfi.schemers.org/srfi-119/srfi-119.html
😁7👍2😭1
Смерть мерзкая от тьюринг-полноты
😁17👍3
Мои поздравления, bouncepaw
Usage: tool [options…] <arg>

-ꙮ very verbꙮse logs
Вчера вышел релиз #go 1.23 - самый спорный релиз на моей памяти https://go.dev/doc/go1.23

В нём стали доступны функции-итераторы https://go.dev/doc/go1.23#language, добавление которых вызвало довольно много негативной реакции в сообществе https://www.gingerbill.org/article/2024/06/17/go-iterator-design/

Помимо пакета нового пакета iter в пакеты slices и maps много новых функций типа Backward, Chunk, Values, Keys и Collect

Так же в этом релизе добавлена функциональность сбора телеметрии тулчейна Go. Телеметрия отключена по умолчанию и собирает анонимную информацию о параметрах go и gopls (https://go.dev/doc/telemetry). Одно время обсуждения самой возможности были довольно бурными https://www.reddit.com/r/golang/comments/10z5ig1/googles_go_may_add_telemetry_reporting_thats_on/ . Телеметрия не затрагивает результат сборки.

Посмотреть на статистические выкладки телеметрии и скачать собранный датасет можно вот тут https://telemetry.go.dev/

Список багов, пойманных телеметрией https://github.com/golang/go/issues?q=label%3Agopls%2Ftelemetry-wins

Из менее противоречивых изменений мне приглянулись
⁃ Новый флаг go mod tidy -diff - печатает изменения, которые произойдут при go mod tidy и возвращает exit_code=1 если такие изменения есть. Сильно упрощает проверки в CI
⁃ Новый флаг go env -changed - печатает изменения в go env, сделанные с помощью -w
⁃ Упрощена работа с time.Timer и time.Ticker - теперь вызовов .Reset и .Stop достаточно для корректного сброса и остановки - не надо вытаскивать stale значения из каналов
⁃ Новый пакет unique, который позволяет интернировать comparable значения
⁃ Новый пакет structs с маркерным типом structs.HostLayout для контроля memory layout структур
⁃ В go.mod корневых модулей (не зависимостей) можно использовать директиву godebug (https://go.dev/doc/godebug), которая позволяет включать старое runtime поведение некоторых частей стандартной библиотеки. Например, новое поведение таймеров можно отключить вот так

godebug(
asynctimerchan=1
)



⁃ В net/http добавили много утилит для работы с cookie и поле Request.Pattern, которое содержит паттерн роута из http.Mux. Ждём когда chi будет выставлять его тоже
⁃ Новая функция os.CopyFS, которая копирует содержимое fs.FS в локальную директорию. Писать распаковщики zip никогда не было так просто!
⁃ Максимальная глубина стека для runtime/pprof увеличина до 128 фреймов (да, я упирался в глубину стека на трейсах 😔)
⁃ Новые функции atomic.And и atomic.Or (и комплиментарные методы), которые позволяют атомарно применять битовые маски

Интерактивные заметки к релизу https://antonz.org/go-1-23/