Telegram Web
How to Go wrong
Точно не за горами: https://www.tgoop.com/go_perf/330
Не пройдёт и двух лет, как encoding/json/v2 завезут в стандартную библиотеку Go 1.25 (но пока через GOEXPERIMENT).
Хороший интерактивный обзор: https://antonz.org/go-json-v2/
👍13
Теперь людям, продолжающим думать, что в Go нет дженериков, можно не просто ссылку на документацию кидать, а сразу на этот блог пост: https://go.dev/blog/generic-interfaces

(и обратите внимание на автора — это https://github.com/Merovius, которого вы знаете по всем обсуждениям, и он даже не сотрудник Гугла)
👍7👏4😢2
How to Go wrong
Мы катились к этому больше года, и, наконец, докатились: * https://blog.ferretdb.io/ferretdb-releases-v2-faster-more-compatible-mongodb-alternative/ * https://opensource.microsoft.com/blog/2025/01/23/documentdb-open-source-announcement/ * https://github.c…
Долго молчал из-за дел на работе, про которые наконец-то можно начать говорить:

* MongoDB Inc. подали на нас в суд. 🥁
* Код DocumentDB задонатили в Linux Foundation. 🥁
* LF начала работу над открытым стандартом для MongoDB-совместимого языка запросов. 🥁

Нас, правда, этой волной может напрочь снести.

Потом напишу больше, а пока, пожалуйста, пошарьте это (если можно, то share, а не просто like), даже если вы далеки от мира БД: https://www.linkedin.com/feed/update/urn:li:share:7365677213309976577/ Чем больше людей об этом узнает, тем лучше.

Про Go скоро опять начну писать, не переключайтесь.
1😢35👍7🤔2🤣1
В общем, нас этой волной снесло. После четырёх лет разработки open source альтернативы MongoDB и совместимого с ней открытого стандарта не быть приглашёнными ни в технический комитет, ни в сам проект (сайт которого прямо использует наши слова!) – это просто нож в спину. Ни сил, ни желания, (ни денег) заниматься этим с такими «партнёрами» больше нет.

Ищу работу. В первую очередь рассматриваю предложения с переездом во Францию или западную Европу. https://www.linkedin.com/posts/alexeypalazhchenko_opentowork-activity-7370777229657661440-E1po/ Буду очень благодарен за like, share, и endorsement.

В ближайшее время буду выносить разные интересные штуки из кода FerretDB в отдельные библиотеки и писать про них в канал. Не переключайтесь.
😢100👍7🤣2
Внезапно, в Go завезли поддержку Valgrind’а. Пользователи cgo и разработчики низкоуровневых штук оценят. Немного подробностей есть вот тут.
👏14👍10🤔2
How to Go wrong
И новый опрос в этом году: https://survey.alchemer.eu/s3/90751981/Go-2024 Результаты прошлого, если вы пропустили: https://devcrowd.ru/go-2023/
И опять опрос, который вот-вот закончится: https://survey.alchemer.eu/s3/90907937/Go-2025
Результаты (весьма интересные) прошлого года: https://devcrowd.ru/go-2024

P.S. Мой поиск работы почти закончен. На следующей неделе начну выносить разные вспомогательные пакеты и утилиты из FerretDB в отдельные репо и рассказывать о них. Не переключайтесь.
9👍27👏7👎1
Новая работа пока занимает гораздо больше времени, чем ожидалось, но вот наконец вынес первый пакет: https://github.com/AlekSi/lazyerrors – error wrapping для прагматично-ленивых программистов.
👍22🤔5👎2
How to Go wrong
Будет официальный SDK для Model Context Protocol’а на Go. Когда-нибудь: https://github.com/orgs/modelcontextprotocol/discussions/224#discussioncomment-12730162 Очень надеюсь, что будет лучше, чем существующие, которые как-будто с JS портированы один-в-один.
В это новости (и в анонсе выхода версии 1.0 https://github.com/modelcontextprotocol/go-sdk в октябре) как-то потерялся новый интересный пакет: https://github.com/google/jsonschema-go. Заметьте, что это «An official Google project», а не как обычно.

А вот ещё новость: Ян Ланс Тейлор, ушедший из Google, опубликовал свою библиотеку для JSON Schema: https://www.airs.com/blog/archives/675

Кажется, our long national nightmare (с качеством библиотек JSON Schema в Go) is over.
👏13
Получив уведомления о новых мучениях людей с кешом компиляции Go (нельзя настроить потребление места на диске и время хранения, нельзя отключить очистку), собрался, почистил и выложил тулзу: https://github.com/AlekSi/hardcache Если вы собираете проект с modernc.org/sqlite реже, чем раз в неделю, и вынуждены эту зависимость постоянно пересобирать – это для вас. 😄
Большую часть функционала, ещё сыроватую, вроде сетевого кеша через GOCACHEPROG, пока убрал, но, со временем, тоже выложу.
2👏20
How to Go wrong
Есть желающие потестировать новый навайбкоженный с Claude race detector без cgo?
Ладно, на эту ерунду можно и не смотреть – там Даннинг-Крюгер в полный рост.

А вот на что стоит посмотреть, так это на написанный органическими человеками прототип race detector без cgo:
* https://github.com/golang/go/issues/57175#issuecomment-3559108965
* https://go-review.googlesource.com/c/go/+/718640
👍9
Это регулярное напоминание в общественных интересах: не профилируйте на macOS, даже если вот-же-он-прямо-тут-зачем-идти-на-сервер.

https://github.com/golang/go/issues/57722
2👍9😢3👎1
Вот пишете вы программу на Go, которая добавляет файлы в zip-архив. Используете https://pkg.go.dev/archive/zip, который под капотом использует https://pkg.go.dev/compress/flate. Документация на первый ничего не говорит про используемый уровень компрессии второго.

Две викторины:
Forwarded from Go Update
🔐runwww.tgoop.com/secret: secret.Do 🔐

Тем временем, абсолютно буднично и рутинно произошло хорошее: пакет runwww.tgoop.com/secret получил свою реализацию и будет доступен в Go 1.26 (правда будет скрыт за флагом GOEXPERIMENT=runtimesecret устанавливаемым во время компиляции).

Собственно весь пакет пока состоит из одну функции: secret.Do, которая принимает на вход функцию с сигнатурой func() и подчищает за ней следующие вещи на выходе из этой функции:
Весь стек который использовался во время работы горутины заполняется нулями. Если при работе стек «рос» (по факту — копировался в новое место) то прямо во время копии старый участок памяти рантайм заполнит нулями.
Все регистры ЦПУ которые «могут содержать секреты» будут заполнены нулями после выхода. Подозреваю, что здесь речь идет о регистрах которые не используются самим рантаймом для служебных действий (верх, низ стека и прочая).
Если в процессе работы переданной функции мы создаем объекты в хипе, то сразу после сборки мусора, их память будет заполнена нулями.
Если внутри передаваемой функции произошла паника, подменяют стектрейс, что-бы скрыть любую информацию о переданной функции.

Для большинства это изменение ничего не меняет.

Но для тех кто работает с криптографией (включая TLS которое мы все используем в HTTPS, HTTP/2 и gRPC без флага insecure) это хорошая новость, которая позволяет усилить защиту приложений и усложнить чтение секретов злонамеренными акторами, даже если скомпрометирована вся железка. Плюс «надежную» очистку секретов часто требуют при сертификации софта в разных регионах нашей планеты.

П.С. Пакет пока доступен только для архитектур amd64 и arm64 (если вы не поняли, что это значит, это хорошо тк вы точно попадаете в доступные архитектуры).
П.П.С. Так-же пока пакет работает только под Linux.
👍27👏7
Старожилы всхлипнули — Dave Cheney вернулся с новым квизом: https://dave.cheney.net/2025/11/27/pointer-pop-quiz
👍16🤔4
2025/12/04 17:53:48
Back to Top
HTML Embed Code: