Hi all,
Welcome to issue 208, I like migration stories, they showed us how others approach swap things out in production. I had 2 migrations stories in this issue. I hope you like them as much as I do.
If you like this newsletter, consider forward it to your friend, tell your co-worker.
Beside working on the newsletter, I build and run an email forwarding service, if you have domain sitting around, hook them up to my platform.
Now to our links.
Facebook was using MySQl 5.6 and missed out many improvement in 5.7 and especially 8.0. Their MySQL 5.6 also has 1700 code patches need to port to 8.0 version too. Given the scale of Facebook, upgrading database like this is huge and difficult.
The Zip file format is now 32 years old. You’d think being 32 years old the format would be well documented. Unfortunately it’s not.
Another database related migration. NoRedInk wanted to re-architecture their core engine to reduce MySQL load. Previous attempt to rewrite that engine failed and had to rolled back. To make it worth, they don’t quite trust their test either. So how they approach to rewrite the core business logic in a more peformance way?
On March 23rd Taras was honored to present at PAC HERO FESTIVAL 2021 their favorite append-only design property. The recording is available on YouTube and this article contains some of its highlights
Instead of returning rows from the database, initialize data structure on your app then serialize them to JSON string, you can ask Postgres to just return JSON and cut out all the middleware access.
In this post, we’ll explore at a high level the key concepts and defining characteristics of video codecs. Then, to further demystify them, we’ll even implement one from scratch in about a hundred lines of Rust.
executables always seemed like black magic to me. I always wondered how stuff worked under the hood, and how binary code is represented inside .exe files, and how hard it is to modify this ‘compiled code’ without access to the original source code.
I think among scripted language, Python has a very powerful import system. You can do relative import, parent import with ..
, and root import with ...
(yes, three dot if you are unfamiliar) and full path import. Once import an object, you can name it anything using import ... as
. Even if you aren’t using Python, read to understand how those import/require/include
mechainisms work
a framework for developing PostgreSQL extensions in Rust and strives to be as idiomatic and safe as possible.
RustCall itself a routing tree web toolkit. It’s unique among Ruby web framework where it used a Tree-based approach to define your route instead of an array/list page like Rails. Fastest among similar framework.
RubyRun periodic jobs in PostgreSQL. Good for thing like data cleanup, now you can just run SQL as a cronjob, define inside your postgres db, use the same CRON syntax
Chaos for Postgres, generate long query, idle transaction, locks etc
Have you ever send test email to see how it rendered in email client? Stop wasting that. Install this package(as a ruby gem), and run a local mailserver then you will have a web UI to view email locally. Fast, cheap(no more paying for extra mail)
web server scanner which performs comprehensive tests against web servers for multiple items, including over 6700 potentially dangerous files/programs, checks for outdated versions of over 1250 servers, and version specific problems on over 270 servers
BetterDev Link
Every Monday