The Bit Bucket

Book Review: The Dead

Book Review: The Dead

I’ve spent some time lately reading some older and more famous books. One that seemed fascinating was a short story by James Joyce called The Dead .

Author

James Joyce was an Irish novelist and poet. He was also well-known as a literary critic. Wikipedia says he is regarded as one of the most influential and important writers of the 20th century. I’ve spent time in Ireland over the years, and I’ve seen a lot of tributes to him both up in Dublin, and also around Kildare. He’s treated as somewhat of a national treasure.

2026-08-20

Writing SQL Queries for DuckDB Course Released

Writing SQL Queries for DuckDB Course Released

Even more SQL love !

Another popular SQL dialect is for DuckDB. And we’ve just completed our first course using it.

Creating reports, analytics, or applications? And need to get data out of DuckDB? Or are you building applications using DuckDB.

Learn to write SQL queries like a pro !

We now have very popular SQL courses, for all the most important SQL dialects. There’s our flagship course for T-SQL, then already courses for PostgreSQL, Snowflake, Oracle, DB2, MySQL, Azure HorizonDB, and Google BigQuery. We’ve just added our new course Writing SQL Queries for DuckDB and you can enrol in it now. It’s just $95 USD.

2026-08-20

Fabric RTI 101: Governance and Compliance

Fabric RTI 101: Governance and Compliance

Governance and compliance are critical considerations in real-time systems — they apply every bit as much as they do in traditional batch workloads. The difference is that in streaming environments, everything happens continuously, so your controls and monitoring must operate in real time as well.

The first step is to track data lineage — understanding where each event originated, how it was transformed, and what downstream systems or actions it affected. Lineage visibility helps you answer questions like Where did this number come from? or Which events led to this automated decision? It also supports root cause analysis when problems occur.

2026-08-19

SQL: Using Database Snapshots to Provide Large Unit Testing Data with Quick Restores

SQL: Using Database Snapshots to Provide Large Unit Testing Data with Quick Restores

SQL Server databases have a reputation for being hard to test, or at least hard to test appropriately.

For good testing, and particularly for unit tests, you really want the following:

  • Database in a known state before each test
  • Database containing large amounts of (preferably masked) data (production-sized)
  • Quick restore after each test before the next test

For most databases, this is hard to achieve. The restore after each test means that a normal database restore can’t be used. What I often see instead, is people using transactions to try to achieve this i.e. the process becomes:

2026-08-18

Fabric RTI 101: Security and Governance for Pipelines

Fabric RTI 101: Security and Governance for Pipelines

Security and governance are just as important in real-time streaming systems as they are in traditional batch pipelines — and in some cases, even more so. Because streaming data is continuous, a single misconfiguration can expose sensitive data for long periods before it’s noticed.

The first principle is to secure event sources and destinations.

Security and Governance for Pipelines

Every data connection — whether it’s an IoT device, API, or event broker — should use authentication to verify its identity and encryption in transit to protect data as it moves. In Microsoft Fabric, this typically means using TLS for secure transmission and managed identities for authentication, avoiding hard-coded credentials wherever they are available.

2026-08-17

Opinion: Don't just hire clones of yourself

Opinion: Don't just hire clones of yourself

Many years back, I was invited to chair a course accreditation panel for a local TAFE (Technical and Further Education) course. They had started to offer a computing-related 3-year diploma, and the hope was that it wasn’t too far below the 3-year degrees offered at local universities. One part of that accreditation process involved me discussing the course with the staff members who were teaching it.

After talking to almost all the staff, what struck me was how similar they all were. In the requirements for the course, there was a standard that each staff member needed to meet, but there was also a requirement for the group of staff to be diverse enough to have broad knowledge of the industry. There was no individual staff member that you could identify as not being at the appropriate standard, but almost all of them had exactly the same background, career progression, etc.

2026-08-16

Fabric RTI 101: Replay and Reprocessing

Fabric RTI 101: Replay and Reprocessing

In a real-time data system, it’s not enough to process events once and move on. There are many cases where you need to replay or reprocess event data that has already passed through the system.

Replay and reprocessing allow you to go back in time — to re-run data through your pipelines as if it were arriving again in real time.

Replay and Reprocessing

This capability is especially useful for debugging issues, conducting compliance audits, or retraining machine learning models with historical data.

2026-08-15

Book Review: Causal Inference with Bayesian Networks

Book Review: Causal Inference with Bayesian Networks

I recently received a review copy of Causal Inference with Bayesian Networks by Yousri El Fattah and Reza Bagheri from my friends at PackT.

Authors

Yousri El Fattah is the CEO of Causal Computing and an expert in machine intelligence, causal modelling, control systems engineering, and data science.

Reza Bagheri is a working data scientist at Ipsos. He has written extensively on data science and machine learning, and has spoken at substantial conferences.

2026-08-14

Fabric RTI 101: Providing Fault Tolerance

Fabric RTI 101: Providing Fault Tolerance

Fault tolerance means designing systems that can keep running even when parts of them fail. In real-time data pipelines, something will eventually go wrong — a node might go offline, a network connection could drop, or a consumer might crash. The key is to plan for those failures from the start.

The first principle is to expect failure and aim for graceful degradation rather than total outage. Your system should continue operating, perhaps with reduced functionality or performance, while recovery takes place.

2026-08-13

SQL: Odd TRY_CAST and TRY_CONVERT Behavior

SQL: Odd TRY_CAST and TRY_CONVERT Behavior

Here’s a quick T-SQL test for you.

Without looking below to see the answer first, try to guess what each of these statements will produce as output:

SELECT TRY_CAST('' AS int);
SELECT TRY_CAST('    ' AS int);
SELECT TRY_CAST('' AS date);
SELECT TRY_CAST('' AS decimal(18, 2));
SELECT TRY_CONVERT(date, '', 103);

And to slightly distract you from checking out the answers yet, here is another wise-looking owl who is thinking about the answers, and warning you not to look further down the page yet:

2026-08-12