dbdeployer is BACK from the dead, and it’s even better with the ProxySQL team at the wheel
No more crying in the server room trying to spin up test instances manually.
This is great for every dev and DBA who lives in MariaDB/MySQL land.
Thank you @lefred & @mariadb_org the sharing great news! https://t.co/vRKKMFWj0o
Etimología de RECALCITRANTE 🫏 Ya a la venta «El español no nació ayer», un libro divulgativo sobre la evolución del español 🤓 Cómpralo en cualquier librería, https://t.co/esRVLZBEBu o comenta NO NACIÓ AYER y te paso la información
Having been part of the industry for 50 years, I can confidently report that none of this is true.
Sure, writing code has a non-zero cost; this is true of any artifact.
But you know what costs even more, Jonathan?
Writing bad code; writing unnecessary code; writing more code than you really need simply because you think you might need it someday or you are too lazy or sloppy to clean up after yourself.
Anything that costs nothing is often worth nothing as well, and results in significant unintended consequences.
Orchestrator is back.
After being archived, it now has a new home at ProxySQL.
For me, this is about more than maintenance:
→ topology intelligence + traffic routing
→ MySQL + PostgreSQL
→ modern HA, done right
We’ve already started. Much more coming.
👉 https://t.co/zTafrxNxUV
Announcement: https://t.co/NB1pGCK08e
#proxysql #mysql #postgresql #highavailability #databases #failover #dba #opensource
ProxySQL is now maintaining dbdeployer.
A key tool for:
✔ local database sandboxes
✔ testing & experimentation
✔ reproducible environments
👉
https://t.co/GvNofDiPBw
https://t.co/woFGnhiR9d
#OpenSource#MySQL#PostgreSQL
We took over maintenance of dbdeployer.
For me, this is personal.
I’ve known @datacharmer for ~20 years, and I’ve always respected his work.
Now we’re giving the project a new home, modernizing it, and pushing it forward (MySQL + PostgreSQL).
More coming soon.
👉
https://t.co/Qv3LpklOFY https://t.co/Hj5oY3ApVO�
#opensource #mysql #postgresql
The future of MySQL needs an open conversation.
Governance, transparency, and a real community voice, are not optional for an ecosystem like MySQL—they are essential to its future.
If you care about where MySQL goes next, read and sign the open letter: https://t.co/OP2BgylE67
Go 1.26 is out, and the announcement says:
"Over the next few weeks, follow-up blog posts will cover some of the topics in more detail. Check back later."
So you can wait a few weeks OR you can read my interactive Go 1.26 tour right away:
https://t.co/9RDFW1jssg
Rarely in human experience has there been a technology so revolutionary, so important, so essential, so mind-blowingly awesome that its creators have to force it on everyone and beg people not to say anything bad about it.
This PhD says: 🤖🫧💥.
Go 1.26 received a somewhat under-the-radar language change: recursive type constraints in generics.
Previously, type constraints couldn't directly or indirectly refer to type parameters. For example, this interface declaration:
type Ordered[T Ordered[T]] interface {
Less(T) bool
}
resulted in a compile error: "invalid recursive type: Ordered refers to itself".
With Go 1.26, it compiles just fine.
A typical use case is a generic type that supports operations with arguments or results of the same type as itself (like Ordered[T]).
We can use such a type as a member in a generic container (like Tree[T Ordered[T]] — see the screenshot).
This makes Go's generics a bit more expressive.
There are a lot of major performance improvements in Go 1.26, but my favorite is this — a small but important one:
Optimized fmt.Errorf
As you know, both errors․New("x") and fmt.Errorf("x") create the same errorString error. So, it's simpler and more consistent to just always use fmt.Errorf.
The thing is, fmt.Errorf was 3x slower than errors․New.
So, one of the core Go developers got tired of hearing "fmt.Errorf is slow" and improved it. He created a fast path so that the "plain error" code branch doesn't involve all the heavy machinery and just calls errors․New right away (see the screenshot).
Now, fmt.Errorf("x") is just one allocation (like errors․New) and is only 20% slower (25ns vs 21ns).
Very nice!