Author: drweb

Let’s be honest for a second. If you walk into most enterprise IT environments and ask whether they should modernize their SQL Server infrastructure, you’re not going to get alignment. You’re going to get a debate. Sometimes a polite one. Sometimes not. And that’s not dysfunction. That’s reality. Because the people in that room are optimizing for completely different things. You’ve got DBAs who have spent years building systems that don’t go down. Not theoretically. Not “in a lab.” Actually stable. Predictable. Recoverable. The idea of introducing new platforms, new operating systems, or containers into that equation feels like you’re…

Read More
SQL

Jan Laš joined HOPI as CIO with a pragmatic view of technology: it should solve real problems for real people, and the measure of success is whether those people actually use it. When we started working together on a data agent for HOPI’s logistics department, that pragmatism shaped almost every decision we made, sometimes in the direction I expected, and sometimes not. I sat down with Jan to talk through what the project looked like from his side. Jan’s perspective is valuable precisely because it comes from the client’s seat rather than the consultant’s, and he tends to be more candid about the hard parts than most case studies allow. 

Read More

The “Inner Loop” of software development—the iterative cycle of writing, building, and debugging code—has just broken the sound barrier. With the emergence of agentic coding tools like Claude Code and GitHub Copilot Workspace, the developer experience has undergone a fundamental shift. Developers are no longer merely tab-completing snippets; they are orchestrating agents that generate entire features, refactor monolithic modules, and manage complex terminal commands in real-time. However, this unprecedented acceleration has exposed a critical structural flaw: the “Outer Loop” of the traditional Software Development Life Cycle (SDLC) is anchored in legacy speeds. While the Inner Loop now operates at the…

Read More
SQL

PlanTrace: Stop Reading Redshift EXPLAIN Plans. Start Seeing ThemIntroducing PlanTrace — a free, browser-based tool that turns raw execution plans into interactive graphs and actionable tuning insights.plantrace.studyyourdata.comPlanTrace graph view — color-coded cost nodes, execution flow arrows, and the tuning insights drawer, all in one screen. If you work with Amazon Redshift, you’ve been there. You run EXPLAIN on a slow query, and you get back something like this: XN Limit (cost=2000000000000.00..2000000000125.00 rows=100 width=256) -> XN Merge (cost=2000000000000.00..2000000000125.00 rows=100 width=256) -> XN Hash Join DS_DIST_BOTH (cost=384729183746.25..903741293847.50 rows=32000000000 width=256) Hash Cond: (“outer”.customer_id = “inner”.customer_id) -> XN Hash Join DS_BCAST_INNER (cost=182938471623.00..723481920384.00 rows=28000000000 width=224)…

Read More

I first ran into namedtuples when debugging a data pipeline. Reading record[0] and record[1] everywhere was a nightmare – switching to record.city and record.state was a instant clarity upgrade that I came back to every time. A namedtuple is a tuple subclass from Python’s collections module that gives you named field access while keeping the immutability and hashability of a tuple. This makes it perfect for fixed records, configuration objects, and lightweight data transfer objects. This article covers creating namedtuples, accessing fields, built-in methods, and common patterns. TLDR Namedtuples are tuples with named fields, created via collections.namedtuple() Fields are accessed…

Read More

Atlassian used its Team ’26 user conference this month in Anaheim to explain how its platform has now further evolved to underpin the reality of what the company defines as the AI‑native organization. This still-emerging entity is a company (or indeed a department, an individual team or working group) where human teams are co‑creating alongside agents.  User Base Spread & Reach While many of the automation advancements coming out of Atlassian will be directed at businesspeople and non-technical staff, an equal and opposite number (give or take) are aligned to serve software engineering teams with agentic automations. The company champions…

Read More

Last month, you learned the basics of Textual’s DOM queries. If you missed it, you can read the article now! In this tutorial you will be learning about the following topics: The DOMQuery object Getting the first or last widget Query filters Query exclusions Other query methods Let’s get started! query[1] len(query) reverse(query) etc However, DOMQuery has additional methods of its very own. You can get a list of these methods using Python’s dir() function against the DOMQuery object. To see this in action, create a new file named domquery_methods.py in your Python IDE and add this code: # domquery_methods.py import pprint from textual.app import App, ComposeResult from…

Read More

For the past year or so, AI coding agents have been tethered to your local machine. You kick off a task, watch the terminal, and babysit every step. It works — but it’s not exactly hands-free. Mistral just changed that. On April 29, the Paris-based AI company announced remote coding agents for its Vibe platform, powered by a new model called Mistral Medium 3.5. The idea is simple: Instead of running coding sessions on your laptop, they now run in the cloud — asynchronously, in parallel, and without you watching over them. What’s Actually New Coding sessions can now work…

Read More

I needed to build an inventory optimization system for a warehouse client last year. The problem was classic: too much working capital tied up in stock, but not enough safety buffer to handle demand spikes. I ended up using a combination of EOQ, safety stock calculations, and time series forecasting to solve it. Python made every step tractable. This article walks through the four techniques I now reach for when building inventory models. By the end, you will have working code for Economic Order Quantity (EOQ), safety stock, ARIMA demand forecasting, and exponential smoothing. TLDR Economic Order Quantity (EOQ) finds…

Read More

I needed a fun weekend project that actually taught me something useful about Python. Rock Paper Scissors seemed simple enough, but I quickly realized there are two versions of this game out there – the classic three-move version and the extended Rock-Paper-Scissors-Lizard-Spock from The Big Bang Theory. I decided to build both. This article walks through building both versions in Python from scratch. By the end, you will have a working terminal game that handles player input, generates random computer moves, determines winners, and keeps running until the player quits. The same logic applies to any simple game you want…

Read More