добавить (не заменить) аудиодорожки в видеофайлах в директории
#snippet
#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 — итераторы оказались слишком удобнымиGitHub
GitHub - ninedraft/itermore
Contribute to ninedraft/itermore development by creating an account on GitHub.
👍7🤪2
☕️ Мерлин заваривает τσάι 🐌
#домашний_сервер В итоге я провёл небольшую ревизию и теперь работа с сервером выглядит вот так: На сервере и на рабочих устройствах поднят Yggdrasil, адреса рабочих станций разрешены в ip6tables: -A input -i $YGG-TUN -p tcp -s $PEER-IP -j ACCEPT В проектах…
upd
на сервер я теперь хожу исключительно через yggdrasil — разрешён только мой IP + Port Knocking
Плюсов, как водится, почти никаких - разве что адрес не поменяется при переезде сервера
Всё ради вайбов криптопанка, конечно же 😎
на сервер я теперь хожу исключительно через yggdrasil — разрешён только мой IP + Port Knocking
Плюсов, как водится, почти никаких - разве что адрес не поменяется при переезде сервера
Всё ради вайбов криптопанка, конечно же 😎
😁12❤3👍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 — результат получается не просто рабочим, но ещё и достаточно приятным глазу
к тому же он очень приятно стыкуется с htmx
В общем и целом, можно очень быстро и приятно клепать админки для домашних или внутренних поделок с помощью htmx + templ + picocss — результат получается не просто рабочим, но ещё и достаточно приятным глазу
GitHub
GitHub - a-h/templ: A language for writing HTML user interfaces in Go.
A language for writing HTML user interfaces in Go. - a-h/templ
👍8❤1
#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
[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
😱6❤4👏4
в биологии есть крабофикация, а в языках программирования - питонификация
сначала скала, потом рэкет, теперь и guile
https://srfi.schemers.org/srfi-119/srfi-119.html
сначала скала, потом рэкет, теперь и guile
https://srfi.schemers.org/srfi-119/srfi-119.html
😁7👍2😭1
☕️ Мерлин заваривает τσάι 🐌
#til повторить команду в sh* n раз не спотыкаясь об цикл: seq N | xargs -I{_} command args
😤
👍
while :
do
do-something
sleep 10
done
👍
yes | xargs -I{} bash -c 'do-something && sleep 10 '😁5
Отличный выпуск про сеть в многопользовательских играх
#подкаст
https://xn--r1a.website/podlodkanews/1325
#подкаст
https://xn--r1a.website/podlodkanews/1325
Telegram
Podlodka Podcast – анонсы и новости подкаста про IT
Podlodka #377 – Сетевой код в играх
Любой мультиплеер – это набор очень хитрых иллюзий, которые создают ощущение одновременной игры в окружении, где ее принципиально не может быть.
Михаил Панин, инженер VR в Meta, а в прошлом техлид популярных мобильных…
Любой мультиплеер – это набор очень хитрых иллюзий, которые создают ощущение одновременной игры в окружении, где ее принципиально не может быть.
Михаил Панин, инженер VR в Meta, а в прошлом техлид популярных мобильных…
Вчера вышел релиз #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/
Помимо пакета нового пакета
Так же в этом релизе добавлена функциональность сбора телеметрии тулчейна 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 корневых модулей (не зависимостей) можно использовать директиву
⁃ В
⁃ Новая функция
⁃ Максимальная глубина стека для
⁃ Новые функции
Интерактивные заметки к релизу https://antonz.org/go-1-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/
go.dev
Go 1.23 Release Notes - The Go Programming Language