home.social

#golang — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #golang, aggregated by home.social.

  1. As someone who's new to programming, I cannot recommend "A Tour of Go" that's oftentimes mentioned as a thing you should start off with.

    It has way too many situations where a thing isn't explained and you'll just end up looking for answers instead of moving on.

    For example when studying what "ranges" are, the example had a "<<" and it wasn't explained that it's some kind of "bitwise left shift", so that just sent me down a rabbit hole and I keep losing time with this stuff...

    #golang

  2. context.Context в Go. Суть и частые ошибки

    Привет, Хабр! Сегодня поговорим о контексте: о его тонкостях и ошибках, которые возникают при его использовании.

    habr.com/ru/articles/1078940/

    #backend #golang #context #программирование #developer #development #std #go #timeout #разработка

  3. context.Context в Go. Суть и частые ошибки

    Привет, Хабр! Сегодня поговорим о контексте: о его тонкостях и ошибках, которые возникают при его использовании.

    habr.com/ru/articles/1078940/

    #backend #golang #context #программирование #developer #development #std #go #timeout #разработка

  4. f4, сайд-проекты и помощь экосистеме Go

    В процессе работы над f4 , современной репродукцией Far Manager на Go, мне пришлось столкнуться с кучей ограничений экосистемы и написать массу вспомогательных библиотек, добавив недостающие кусочки паззла. Встроенный mp3 плеер f4 (да, он уже есть, пусть и на стадии PoC, вызывается по Ctrl+Shft+M) на скрине не просто так — это чуть ли не единственный плеер для *nix, нормально работающий с русскими кодировками id3v1 тэгов, для чего в том числе как раз потребовалась отдельная библиотека. Обзор всех наработок f4, которыми вы можете воспроизоваться в своих Go проектах — в этой статье.

    habr.com/ru/articles/1078850/

    #f4 #Far_Manager #файловый_менеджер #двухпанельник #библиотеки #go #golang

  5. f4, сайд-проекты и помощь экосистеме Go

    В процессе работы над f4 , современной репродукцией Far Manager на Go, мне пришлось столкнуться с кучей ограничений экосистемы и написать массу вспомогательных библиотек, добавив недостающие кусочки паззла. Встроенный mp3 плеер f4 (да, он уже есть, пусть и на стадии PoC, вызывается по Ctrl+Shft+M) на скрине не просто так — это чуть ли не единственный плеер для *nix, нормально работающий с русскими кодировками id3v1 тэгов, для чего в том числе как раз потребовалась отдельная библиотека. Обзор всех наработок f4, которыми вы можете воспроизоваться в своих Go проектах — в этой статье.

    habr.com/ru/articles/1078850/

    #f4 #Far_Manager #файловый_менеджер #двухпанельник #библиотеки #go #golang

  6. yzma v1.26 is here and it is the big one: local inference in the browser!

    Write @golang compile with @TinyGo run GGUF models 100% locally on WebAssembly. Uses WebGPU/CPU

    Plus llama.cpp v0.4.0 support. Go get it!

    github.com/hybridgroup/yzma

    #golang #tinygo #wasm #webgpu #yzma

  7. Ваш сервис на домене клиента: CNAME, certbot и 300 строк Go вместо ACME on-demand

    Есть класс фич, которые выглядят на одну строчку в тикете и на неделю в реализации. «Хочу, чтобы статус-страница жила на моём домене» — из таких. Клиент добавляет CNAME status.client.ru → status.your-service.com , и дальше начинается интересное: кто выпустит сертификат для чужого домена, кто его продлит, как не дать одному пользователю положить всю схему мусорными доменами и почему X-Forwarded-For может превратить внутренний эндпоинт в публичный.

    habr.com/ru/articles/1078312/

    #certbot #tls #nginx #whitelabel #cname #custom_domains #golang

  8. So I needed a WebP encoder for a Go project where I had disabled. I found there is an option using compiled to running on , but that's pretty slow and uses lots of memory.

    So I made a pure encoder, ported from a Rust encoder then optimized: github.com/SeriousBug/webp-go-

    I managed to get better performance than the WASM version! Both encoding speed and memory use, although compression rate and quality is a bit worse.

  9. pcfg-go v0.5.3 has been released.

    This release focuses heavily on pcfg_guesser performance and memory efficiency:

    • half the memory usage of v0.5.2
    • 2x faster than v0.5.2
    • 2,578% faster than the original Python3 pcfg_guesser.py

    Twice the speed with half the memory usage? Nice.

    forum.hashpwn.net/post/11277

    #pcfg #wordlist #generator #hashcracking #golang #hashpwn

  10. 📝 Designing a listen later pipeline #development #webdev #tech #rss #preact #golang #audio #audiobookshelf

    I've had this long, long running relationship with bookmarking and read it later services. I'll commit to one, excited about whatever feature set it offers and then, without fail, my list grows and grows and grows and grows. I archive things to reset, repeat and then move to a different service. The only thing that's...

    coryd.dev/posts/2026/designing

  11. B4 — сетевой мультитул по обходу блокировок

    С момента написания первой статьи о B4 прошло полгода. Казалось бы, не очень много времени, но софтина получила ну очень большое количество фич, о которых хочется рассказать подробно. Не буду скрывать: хабраэффект сделал своё дело, и благодаря большому интересу после первой статьи очень многие не разочаровались в отсутствии какого-то функционала, а активно помогали - коммуникацией, запросами, тестированием, - благодаря чему все эти фичи в B4 и появились. В итоге на сегодняшний день B4 - это не инструмент для обхода блокировок (коим и задумывался изначально), а полноценный сетевой мультитул с гибкой и продвинутой маршрутизацией таргетированного трафика.

    habr.com/ru/articles/1055056/

    #golang #netfilter #nfqueue #b4 #zapret #dpi #rkn #tspu #packet #sni

  12. Писал мониторинг на Go «за выходные» — застрял на месяцы. Вот на чём

    В этой статье я расскажу, на какие подводные камни я споткнулся при разработке своего пет‑проекта — мониторинга сайтов на Golang, аналог UptimeRobot. Начнем издалека... Я хотел разработать пет‑проект, но не банальный todolist, а что‑то свежее, интересное в плане архитектуры и реализации. Шерстя по просторам интернета, я наткнулся на UptimeRobot — сервис для мониторинга сайтов. Азарт и любопытство взяли верх и я начал продумывать, как буду разрабатывать «свой» UptimeRobot. Думал — делов на пару недель от силы. Ведь принцип прост: дергать URL по таймеру и проверять код ответа и всё. Но на практике все оказалось намного сложнее, чем я изначально представлял...

    habr.com/ru/articles/1046696/

    #мониторинг #мониторинг_сайта #go #golang #uptime #горутины #ssrf #DNS_rebinding #timescaledb #postgresql

  13. NEW: sulpher

    sulpher v0.2.0 is out — a Cypher graph query language parser written in Go.

    This release completes openCypher 9 coverage and adds several Neo4j 5+ idioms:

    ✓ CALL {} subquery blocks (with variable scope clause and IN TRANSACTIONS)
    ✓ COUNT {} / COLLECT {} subquery expressions
    ✓ Label boolean expressions: (n:Person&Employee), (n:!Bot)
    ✓ LOAD CSV, pattern comprehensions, reduce(), quantified paths {n,m}
    ✓ Hex/octal literals, || GQL string concatenation
    ✓ 45-file corpus, 269 queries, 100% pass rate

    Compatibility: openCypher 9 100% · Neo4j 5 ~85% · Neo4j 25 ~65%

    github.com/ha1tch/sulpher

    #Go #Golang #Neo4j #Cypher #GraphDatabase #OpenSource #Parser #FOSS #Sulpher

  14. В поисках баланса в backend-архитектуре

    Размышление о backend‑архитектуре между двумя крайностями: академической чистотой и радикальным прагматизмом. На примере read/write path, CQRS, кэширования готовых ответов и собственного framework‑а на Go я показываю, как архитектурные шаблоны сталкиваются с production‑реальностью.

    habr.com/ru/articles/1044218/

    #backend #golang #go #clean_architecture #ddd #cqrs #архитектура #framework #read_path #write_path

  15. we just cut #wazero 1.12.0! your favorite #wasm runtime for #golang now supports more specs than ever! getting closer to WasmGC!

    github.com/wazero/wazero/relea

  16. От LLM к агенту: Как заставить Go приложение думать и действовать

    Всё началось с доклада про AI-агентов. Заинтересовало настолько, что решил написать своего на Go. Было сложно, но получилось! Делюсь опытом: LangChainGo, инструменты, цепочки, MCP и интеграция с GigaChat.

    habr.com/ru/articles/1033718/

    #go #golang #ai #исскуственный_интеллект #gigachat #langchain #голанг

  17. Code Review Horror Stories. Часть 2: API, ошибки и graceful shutdown

    Продолжение разбора реального кода с собеседования. В первой части разобрали 8 проблем concurrency и memory: race conditions, утечки горутин, проигнорированный mutex, TOCTOU. Это была первая половина из 21 бага в одном сервисе на 150 строк. Сегодня — вторая часть. Тут нет страшных race conditions, но есть то, что выдаёт уровень разработчика на собесе: отношение к ошибкам, валидация, API design, graceful shutdown, observability . Эти баги не упадут “вдруг” в продакшене — они будут тихо пилить вам костыль за костылём, пока кто-то не сядет переписывать. Актуально для Go 1.26. Напомню итог первой части: из 8 багов про concurrency на интервью нашёл 7, пропустил только TOCTOU race. В этой части из 13 багов пропустил два : package applike с func main() (то, что код не компилируется — банально не посмотрел на объявление пакета) и отсутствие slog (просто не зацепился за log.Println , а зря). Остальные 11 — поймал. Расскажу, какими паттернами в чтении кода я их вылавливал.

    habr.com/ru/articles/1033634/

    #go #golang #code_review #интервью #баги #api #graceful_shutdown #concurrency #go_126

  18. Как я завалил кучу собесов по Go и что из этого вынес

    Привет! Меня зовут Александр. Некоторые могут помнить мои статьи про финансовую аналитику на Python - анализ ETF, оптимизацию портфелей. Но последние 6 лет я Senior Go Backend Engineer, специализируюсь на финтехе и трейдинге. Эта комбинация - domain expertise в финансах + техническая экспертиза в Go - оказалась очень ценной. Но путь был тернистым. Последние полгода активно собеседовался: 8 интервью в разных компаниях - от крупных российских IT-гигантов до международных финтех стартапов. Где-то взяли, где-то нет. Решил поделиться самыми дурацкими ошибками, которые делал я и другие кандидаты. Может, кому поможет не наступить на те же грабли.

    habr.com/ru/articles/1030108/

    #golang #go_собеседования #ошибки_программистов #карьера #интервью #backend #разработка

  19. After a ton of compiling, the v2 release is official. Containers all work, the client works, and now I'm gonna relax and watch some YouTube videos. Releases are available on the website though I still need to update the docs with the new "installation" process (much simplified).

    Releases: git.jamesthebard.net/jweatherl

    #sisyphus #encoding #programming #golang

  20. The long test is looking good for the `av1an`, `mkvmerge`, and `cleanup` modules, the Golang client is doing exactly what its supposed to which is a welcome change from yesterday. I need to do long tests on the `ffmpeg` and `handbrake` modules next, but I'll handle those tomorrow.

    After that, I'll update documentation, release the `2.0.0` client, and deprecate the old client.

    #sisyphus #av1an #ffmpeg #matroska #encoding #programming #golang

  21. The long test is looking good for the `av1an`, `mkvmerge`, and `cleanup` modules, the Golang client is doing exactly what its supposed to which is a welcome change from yesterday. I need to do long tests on the `ffmpeg` and `handbrake` modules next, but I'll handle those tomorrow.

    After that, I'll update documentation, release the `2.0.0` client, and deprecate the old client.

    #sisyphus #av1an #ffmpeg #matroska #encoding #programming #golang

  22. The long test is looking good for the `av1an`, `mkvmerge`, and `cleanup` modules, the Golang client is doing exactly what its supposed to which is a welcome change from yesterday. I need to do long tests on the `ffmpeg` and `handbrake` modules next, but I'll handle those tomorrow.

    After that, I'll update documentation, release the `2.0.0` client, and deprecate the old client.

    #sisyphus #av1an #ffmpeg #matroska #encoding #programming #golang

  23. The long test is looking good for the `av1an`, `mkvmerge`, and `cleanup` modules, the Golang client is doing exactly what its supposed to which is a welcome change from yesterday. I need to do long tests on the `ffmpeg` and `handbrake` modules next, but I'll handle those tomorrow.

    After that, I'll update documentation, release the `2.0.0` client, and deprecate the old client.

    #sisyphus #av1an #ffmpeg #matroska #encoding #programming #golang

  24. The long test is looking good for the `av1an`, `mkvmerge`, and `cleanup` modules, the Golang client is doing exactly what its supposed to which is a welcome change from yesterday. I need to do long tests on the `ffmpeg` and `handbrake` modules next, but I'll handle those tomorrow.

    After that, I'll update documentation, release the `2.0.0` client, and deprecate the old client.

    #sisyphus #av1an #ffmpeg #matroska #encoding #programming #golang

  25. Lots of progress and a lots of pain. However, all of the Sisyphus modules have been implemented and I'm currently running a test across the `2.0.0b2` version. The most painful thing I fought was literally tailing a log file. Got lazy and brought in `hpcloud/tail` because it did what I needed it to, but what it _didn't_ do was work well for my application. After a day or two of battling it, I removed it and went with `bufio.NewReader`and a nice `context.CloseWith` setup and now it works every time.

    Also added a `PostRun()` call to each module just to have a place to do basic module cleanup if needed.

    Learned a ton on this one so far and while annoying at times: it's been pretty fun.

    Repo: git.jamesthebard.net/jweatherl

    #golang #sisyphus #encoding #programming

  26. Ah previous me...I see you've decided to make this rewrite more difficult because you got _clever_ and I decided to keep backward compatibility. Thought that the `ffmpeg` module would be the biggest pain in the ass, but I was completely wrong. The `mkvmerge` part is coming along and I'm hoping to have it done today or tomorrow. Things progress.

    #matroska #mkvmerge #sisyphus #golang

  27. Ah previous me...I see you've decided to make this rewrite more difficult because you got _clever_ and I decided to keep backward compatibility. Thought that the `ffmpeg` module would be the biggest pain in the ass, but I was completely wrong. The `mkvmerge` part is coming along and I'm hoping to have it done today or tomorrow. Things progress.

    #matroska #mkvmerge #sisyphus #golang

  28. Ah previous me...I see you've decided to make this rewrite more difficult because you got _clever_ and I decided to keep backward compatibility. Thought that the `ffmpeg` module would be the biggest pain in the ass, but I was completely wrong. The `mkvmerge` part is coming along and I'm hoping to have it done today or tomorrow. Things progress.

    #matroska #mkvmerge #sisyphus #golang

  29. Ah previous me...I see you've decided to make this rewrite more difficult because you got _clever_ and I decided to keep backward compatibility. Thought that the `ffmpeg` module would be the biggest pain in the ass, but I was completely wrong. The `mkvmerge` part is coming along and I'm hoping to have it done today or tomorrow. Things progress.

    #matroska #mkvmerge #sisyphus #golang