Recent Favourite Reads - Newsletter 16.07.2023-11.09.2023
Main
- Curbing Connection Churn in Zuul ;
10 min
- Interesting patterns to consume ZIO Streams ;
6 min
- Weird Python "Features" That Might Catch You By Surprise ;
5 min
- Things DBs Don't Do - But Should ;
12 min
Even though I completely agree with most of the points in the article, I would like to add a little context and address some of the wishes. To begin with, from time immemorial (since Oracle 8i), Oracle has Row Level Security with later applications in the form of Virtual Private Database and Real Application Security. All these technologies bring tenant awareness up to the next level and simplify the development process in the pooled model - no more missing "where" clauses.
Another point is that a browser can talk to an Oracle database via HTTP-based protocol: SODA, REST-Enabled SQL and other techs are provided by a database. Edition-based redefinition allows engineers to have multiple versions of packages, aliases (and some other objects), which doesn't solve version control issues completely but simplifies it much. Oracle Scheduler supports job scheduling and even more advanced things such as job chains and prioritising. And so on. Many of the identified issues are partially or entirely resolved in the Oracle database ecosystem, leading to the whole thing turning into an incredible monster with a rather sharp learning curve and an inhumane price tag. It seems to me that the article contains various shortcomings of databases, which should rather be addressed in the field of standardising approaches to data platforms. There are already dozens of solutions for almost every point, and the problem is their fragmentation, lack of composition and widespread adoption. An additional risk is that all this leads to a dangerous temptation to start developing business logic. If everything you need is available out of the box, why complicate it? And I'm not against stored procedures - they can indeed save the day in some cases, but a separation of concerns is necessary for a variety of reasons. - How I joined the bug 323 community ;
10 min
- Why Does gRPC Insist on Trailers? ;
7 min
- The road to running Apache Flink applications on AWS KDA ;
8 min
- Data Streaming: Real-time data for real-time decisions (Palantir RFx Blog Series, #8) ;
11 min
- Historic Algorithms Help Unlock Shortest-Path Problem Breakthrough and paper mentioned: Negative-Weight Single-Source Shortest Paths in Near-linear Time and Maximum Flow and Minimum-Cost Flow in Almost-Linear Time;
8 min
- Anti-hype LLM reading list;
- Java 21: So How Should We Construct Strings Now? ;
6 min
- Apache SeaTunnel and Paimon: Unleashing the Potential of Real-Time Data Warehousing ;
18 min
- Leaving Haskell behind ;
14 min
- Where’s My Data — A Unique Encounter with Flink Streaming’s Kinesis Connector ;
12 min
- Technology Lifecycle ;
10 min
- Scaling the Instagram Explore recommendations system ;
10 min
- How Uber Optimized Cassandra Operations At Scale ;
10 min
- A Flexible Framework for Effective Pair Programming ;
11 min
- Metis: Building Airbnb’s Next Generation Data Management Platform ;
8 min
- Two Erlang patterns I love ;
8 min
- Debugging Crashes and Deadlocks in Python using PyStack ;
7 min
- Software Engineering Culture Metrics ;
8 min
- Microservices Retrospective – What We Learned (and Didn’t Learn) from Netflix ;
25 min
- Applying SRE Principles to CI/CD ;
6 min
- Under the hood: How we built API versioning for LinkedIn Marketing APIs ;
6 min
- Analyzing Time Series for Pinterest Observability ;
8 min
- Why You (Probably) Don’t Need to Fine-tune an LLM ;
10 min
- Challenging algorithms and data structures every programmer should try
4 min
I'm not a big fan of catchy headlines like "N things every X should know/try", but this article is concise and inviting for discussion. I recommend following the comments here and cannot help but agree. Even if you're not going to implement all of these on your own, knowing that in advance could save you a considerable chunk of time just because you can recognise that you're facing a well-known problem with a dedicated algorithm or approach to solve. I have used topological sort in various applications, from validation complex/combined therapies in biotech context up to resolving dependencies graph for calculation expressions; Myers diff algorithm for comparison and automatic merge of annotated texts; simplex method for building field engineer schedules; binary expression tree for a small DSL for describing treatments; interval trees in balance management subsystem, annotation spans merging and so on. I can confidently say that all this significantly saved time and eliminated the need to come up with non-optimal and reinventing-the-wheel solutions on the fly without any sensible reason.
- Scala cake pattern with a following criticism
5 min
;4 min
- Yes, you should test on production… ;
12 min
- The EU’s Digital Services Act goes into effect today: here’s what that means ;
4 min
- Rules of Thumb for Software Development Estimations ;
15 min
- Farewell EC2-Classic, it’s been swell ;
4 min
- Does your organization have a culture of mediocrity? ;
8 min
- HashiCorp adopts Business Source License with Open Source answer The OpenTF Manifesto and its latest announce on Terraform fork. Fork repo is available here;
2 min
- Zero Configuration Service Mesh with On-Demand Cluster Discovery ;
8 min
- static final what? ;
4 min
- The Dark Side of Sharding: Mistakes You Can’t Afford to Make ;
12 min
- My mental model of transducers ;
4 min
- Optimizing Postgres's Autovacuum for High-Churn Tables ;
8 min
- Profile-guided optimization in Go 1.21 ;
12 min
- Why we always end up with waterfall with comments;
3 min
- My Solution To The Dev Skills Crisis: Much Smaller Teams ;
4 min
- AI, ML, and Data Engineering InfoQ Trends Report - September 2023 ;
7 min
- Exponential Value at Linear Cost ;
4 min
- Highlights from Git 2.42 ;
12 min
- JEP 447: Statements before super() (Preview) ;
12 min
- JEP draft: Computed Constants ;
8 min
- JDK 21 G1/Parallel/Serial GC changes ;
4 min
- This is the Beginning of the End of the N+1 Problem: Introducing Single Query Loading ;
7 min
- (JVMLS) The Challenges of Introducing Virtual Threads to the Java Platform - Project Loom
Video content
;45 min
- (JVMLS) Continuations - Under the Covers
Video content
;35 min
- (JVMLS) Value Objects in Valhalla
Video content
;50 min
Misc
- Societies of strangers do not speak less complex languages ;
30 min
- Engineering Serendipity: When Does Knowledge Sharing Lead to Knowledge Production? ;
40 min
- Positive Association between Altitude and Suicide in 2584 U.S. Counties ;
22 min
- Ask vs guess culture ;
8 min
- Piranesi, Borges, and the Labyrinths of Time ;
7 min
- The Psychological Depths of Rock-Paper-Scissors ;
4 min
- How did "oxen" (plural of "ox") survive as the only plural form with the Old English plural ending -en? ;
7 min
- Executive Function Theft ;
12 min
- When tech says ‘no’ ;
6 min
Interesting projects
- Interactive Runbooks Built with Markdown;
- jacobin: A more than minimal JVM written in Go and capable of running Java 17 classes;
- micro: A modern and intuitive terminal-based text editor;
- Capacities: A studio for your mind;
- A collection of debugging stories;
- Async-Await support for Java
Definitely not a production-ready code, but it's a nice demo of how concise async/await (and, in fact, emulation of coroutines) implementation on the top virtual threads could be. Based on that project PoC of async/await in Vert.x was created.
- JSON Schema Store;
- tRPC: Move fast and break nothing. End-to-end typesafe APIs made easy.;
- Legal Lullabies: Lull yourself to sleep with the soothing white noise of your favorite tech giant’s terms of service;
- Grammar generator app;
- Jujutsu: A Git-compatible DVCS that is both simple and powerful with slides;
- Scan of month: Coffee
It's just so fun. I am not sure about the practicality of applying computed tomography to every other surrounding object, but it is so curious and even aesthetically pleasing that I can only support the project with both hands.
- little-rat: Small chrome extension to monitor (and optionally block) other extensions' network calls;
- EventCatalog: Discover, Explore and Document your Event Driven Architectures powered by Markdown;
- Tuple: The best remote pair programming app on macOS and Linux;
- RFC 3339 vs ISO 8601;
- DevTools Tips;
- Climate Change Tracker;
- School of SRE: curriculum for onboarding entry-level talents into the SRE role;
- Alexandria: A minimalistic cross-platform eBook reader;
Books
- The Architecture of Open Source Applications
It is a fairly fundamental series of books that helps better understand how some large, complex or well-known open-source projects were designed and developed and the rationale behind these decisions. Some of the chapters are posted on the site to catch your interest. Definitely could recommend it as a learning material, evening reading for curious minds or an endless source of topics for a software engineering book club.