Кто не в курсе, мы в @generictalks завели рубрику читаем вместе, по одной главе в неделю, а потом обсуждения и разбор (книгу с кабанчиком сейчас).
Так вот, через 2ч будет выпуск и была глава Encoding & Evolution. Как можно догадаться, там не только о жсон.
По случаю такой важной, увлекательной, красивой, стильной, непревзайденной теме нашел сборник-сравнение, полезно ознакомиться https://wiki.alopex.li/BetterThanJson
Так вот, через 2ч будет выпуск и была глава Encoding & Evolution. Как можно догадаться, там не только о жсон.
По случаю такой важной, увлекательной, красивой, стильной, непревзайденной теме нашел сборник-сравнение, полезно ознакомиться https://wiki.alopex.li/BetterThanJson
Просто говори, что ты делаешь как Martin Thompson и никто не усомнится
Если вы работаете с Go и кто-то вам занёс мысль "а давайте юзать wire для dependency injection", то смело говорите "неа" и пишите iferrnil дальше.
Блин не понимаю, какой пластик нужно было раскуривать в офисе, чтобы это вышло на свет. И кто их пустил писать пост на blog.golang.org
А еще я нашел там свой коммит с фиксом кода. Очень стыдно.
Теперь пойду это выпиливать. Кодген это круто, когда в нём есть сокращение рутины, вот только для этого кодгена приходится копипастить буквально столько же, сколько получишь на выходе.
Ь
Блин не понимаю, какой пластик нужно было раскуривать в офисе, чтобы это вышло на свет. И кто их пустил писать пост на blog.golang.org
А еще я нашел там свой коммит с фиксом кода. Очень стыдно.
Теперь пойду это выпиливать. Кодген это круто, когда в нём есть сокращение рутины, вот только для этого кодгена приходится копипастить буквально столько же, сколько получишь на выходе.
Ь
Развернутое сравнение rust & Zig. Не побоюсь сказать, что лучшее из увиденного по теме.
https://scattered-thoughts.net/writing/assorted-thoughts-on-zig-and-rust/
https://scattered-thoughts.net/writing/assorted-thoughts-on-zig-and-rust/
Те, кто сталкивается с БД и скриптами миграции: какие вы тулзы используете?
https://github.com/pressly/goose
https://github.com/golang-migrate/migrate
и...не только в го конечно же.
Поделитись своим опытом. В теории интересны только накатывания-откатывания новых-старых версий схем для Постгри или Майскл. Но все средства хороши.
А ну и проприетарные тоже можно, мы не такие бедные, чтобы жить за счет одного опенсурса. Тыкать @olegkovalov
https://github.com/pressly/goose
https://github.com/golang-migrate/migrate
и...не только в го конечно же.
Поделитись своим опытом. В теории интересны только накатывания-откатывания новых-старых версий схем для Постгри или Майскл. Но все средства хороши.
А ну и проприетарные тоже можно, мы не такие бедные, чтобы жить за счет одного опенсурса. Тыкать @olegkovalov
GitHub
GitHub - pressly/goose: A database migration tool. Supports SQL migrations and Go functions.
A database migration tool. Supports SQL migrations and Go functions. - pressly/goose
Если интересно про интеграцию и любовь-ненависть Apple & Google, то советую читнуть. Логично, что дружба выгоднее войны, и сделка считается успешной, когда каждая сторона считает, что кинула другую. В общем все очевидно. Хотя думаю Apple в чуть большем плюсе.
https://www.nytimes.com/2020/10/25/technology/apple-google-search-antitrust.html
https://www.nytimes.com/2020/10/25/technology/apple-google-search-antitrust.html
NY Times
Apple, Google and a Deal That Controls the Internet (Published 2020)
In a landmark antitrust complaint, the Justice Department is targeting a secretive partnership that is worth billions of dollars to both companies.
oleg_log
Те, кто сталкивается с БД и скриптами миграции: какие вы тулзы используете? https://github.com/pressly/goose https://github.com/golang-migrate/migrate и...не только в го конечно же. Поделитись своим опытом. В теории интересны только накатывания-откатывания…
https://flywaydb.org/
https://www.liquibase.org/
Для python+postgres
https://pypi.org/project/yoyo-migrations/
Для Go используем https://github.com/golang-migrate/migrate
alembic, на питоне, но очень обширный, правда весьма сложный в освоении был на тот момент, документация была на уровне приватных либ.
еще кстати вариант создать пустой любой active record фреймворка проект (django, rails) и делать автомиграции которые уже есть + редактировать их если что-то не подходит, очень удобные инструменты
https://github.com/rubenv/sql-migrate
Для мускля есть такая штука прекрасная:
https://www.percona.com/doc/percona-toolkit/LATEST/pt-online-schema-change.html
Йо. Мы для миграции схем на больших объемах юзаем gh-ost https://github.com/github/gh-ost
dotnet-ef. Как понятно из названия это dotnet only, но это очень круто и удобно
Используем https://github.com/amacneil/dbmate
Простая как палка, при этом все базово нужные вещи есть
Спасибо всем откликнувшимся.
https://www.liquibase.org/
Для python+postgres
https://pypi.org/project/yoyo-migrations/
Для Go используем https://github.com/golang-migrate/migrate
alembic, на питоне, но очень обширный, правда весьма сложный в освоении был на тот момент, документация была на уровне приватных либ.
еще кстати вариант создать пустой любой active record фреймворка проект (django, rails) и делать автомиграции которые уже есть + редактировать их если что-то не подходит, очень удобные инструменты
https://github.com/rubenv/sql-migrate
Для мускля есть такая штука прекрасная:
https://www.percona.com/doc/percona-toolkit/LATEST/pt-online-schema-change.html
Йо. Мы для миграции схем на больших объемах юзаем gh-ost https://github.com/github/gh-ost
dotnet-ef. Как понятно из названия это dotnet only, но это очень круто и удобно
Используем https://github.com/amacneil/dbmate
Простая как палка, при этом все базово нужные вещи есть
Спасибо всем откликнувшимся.
Red-Gate
Flyway Community: Database Migration Tool by Redgate - Redgate Software
Flyway Community is the open-source edition of Redgate Flyway. Automate database migrations with version control. Download and get started in minutes.
Postgres Feature Matrix.
Понятия не имею, зачем это может понадобиться (хотя пригодится), но повтыкать можно.
https://www.postgresql.org/about/featurematrix/
Понятия не имею, зачем это может понадобиться (хотя пригодится), но повтыкать можно.
https://www.postgresql.org/about/featurematrix/
oleg_log
Postgres Feature Matrix. Понятия не имею, зачем это может понадобиться (хотя пригодится), но повтыкать можно. https://www.postgresql.org/about/featurematrix/
И давайте еще о Постгрес. Померяем что там с хранением текста и как это влияет на перф.
А еще на странице можно 203 раза прочитать TOAST. Советую не упустить возможность.
https://hakibenita.com/sql-medium-text-performance
И перевод https://habr.com/ru/company/ruvds/blog/525412/
А еще на странице можно 203 раза прочитать TOAST. Советую не упустить возможность.
https://hakibenita.com/sql-medium-text-performance
И перевод https://habr.com/ru/company/ruvds/blog/525412/
Hakibenita
The Surprising Impact of Medium-Size Texts on PostgreSQL Performance
Why TOAST is the best thing since sliced bread
Forwarded from 🇺🇦 Go performance channel (Oleg Kovalov)
proposal: cmd/compile: switch to a register-based calling convention for #golang functions
Preliminary experiments indicate this will achieve at least a 5–10% throughput improvement across a range of applications
is accepted! 🚀
https://go.googlesource.com/proposal/+/master/design/40724-register-calling.md
https://github.com/golang/go/issues/40724
Preliminary experiments indicate this will achieve at least a 5–10% throughput improvement across a range of applications
is accepted! 🚀
https://go.googlesource.com/proposal/+/master/design/40724-register-calling.md
https://github.com/golang/go/issues/40724
GitHub
cmd/compile: switch to a register-based calling convention for Go functions · Issue #40724 · golang/go
I propose that we switch the Go internal ABI (used between Go functions) from stack-based to register-based argument and result passing for Go 1.16 1.17. I lay out the details of our proposal and t...
Forwarded from 🇺🇦 Go performance channel (Oleg Kovalov)
More #golang awesomness! Happening in 1.16 🎉
Go 1.16 will include an early devirtualization pass, which allows better escape analysis of interface method calls (i.e., fewer heap allocations) when the compiler can see the interface always has a known concrete type.
https://github.com/golang/go/issues/33160
https://twitter.com/mdempsky/status/1321894360116420608
Go 1.16 will include an early devirtualization pass, which allows better escape analysis of interface method calls (i.e., fewer heap allocations) when the compiler can see the interface always has a known concrete type.
https://github.com/golang/go/issues/33160
https://twitter.com/mdempsky/status/1321894360116420608
GitHub
cmd/compile: use devirtualization in escape analysis · Issue #33160 · golang/go
#19361 introduced devirtualization when the concrete type is known statically. This would be extremely useful to compensate for the unfortunate design of the hash.Hash functions, which make it impo...
Сперва хотел поругаться на документацию к ah-pee Google Firestore (https://pkg.go.dev/cloud.google.com/go/firestore)(вот эта строка вывела из себя
Но на самом деле я пришел похвалить даже. Берешь такой, ставишь env-var
Мне эт оч понравилось, что торчащее апи для клиента ничего не знает про хост, к которому надо идти, а в тестах нормально, что мы одной переменной все клиенты переключим (наверное некоторые пуристы тут не согласятся и захотят
Да, как можете догадаться, в коде все просто https://github.com/googleapis/google-cloud-go/blob/firestore/v1.3.0/firestore/client.go#L65
Короч лайк.
status.Code(err) == codes.NotFound, она с потолкам, непонятно что это, короч как часто у гугла и их апи).Но на самом деле я пришел похвалить даже. Берешь такой, ставишь env-var
FIRESTORE_EMULATOR_HOST на свой желаемый хост и гоняешь в тестах.Мне эт оч понравилось, что торчащее апи для клиента ничего не знает про хост, к которому надо идти, а в тестах нормально, что мы одной переменной все клиенты переключим (наверное некоторые пуристы тут не согласятся и захотят
HostResolver интерфейс, но проигнорим их).Да, как можете догадаться, в коде все просто https://github.com/googleapis/google-cloud-go/blob/firestore/v1.3.0/firestore/client.go#L65
Короч лайк.
pkg.go.dev
firestore package - cloud.google.com/go/firestore - Go Packages
Package firestore provides a client for reading and writing to a Cloud Firestore database.
Сегодня в Generic Talks (https://t.me/generictalks/163) обсудили статью об отменах операций (timeout, deadline, cancel), которую я вспомнил из-за одного выпуска Good-Bad reviewer (https://t.me/good_bad_reviewer/58).
Так вот, советую почитать. Довольно полезно и интересно описано о том, почему каждый из способов может быть неочень. Еще там рассказывают про либку на питоне Trio от автора, но теория применима ко всему и всем.
Ссыль https://vorpus.org/blog/timeouts-and-cancellation-for-humans/
Так вот, советую почитать. Довольно полезно и интересно описано о том, почему каждый из способов может быть неочень. Еще там рассказывают про либку на питоне Trio от автора, но теория применима ко всему и всем.
Ссыль https://vorpus.org/blog/timeouts-and-cancellation-for-humans/
Telegram
Generic Talks
Generic Talks S02E06 "Девиртуализированый контекст отмены на сжатом дереве большой длины"
Состав: Олег и Богдан.
Темы:
1. Timeouts and cancellation for humans
- https://vorpus.org/blog/timeouts-and-cancellation-for-humans/
2. Adaptive Radix Tree…
Состав: Олег и Богдан.
Темы:
1. Timeouts and cancellation for humans
- https://vorpus.org/blog/timeouts-and-cancellation-for-humans/
2. Adaptive Radix Tree…