Forum teuk.org

TeuK  Admin

Member since 2025-12-22 09:24:20Z · 6mo ago

Total posts: 149  ·  Total topics: 146


Topics (page 8/15)

← PrevPage 8 / 15Next →

Posts (page 14/15)

Just pushed a small cleanup commit on mediabot_v3:

🪄 Mischief managed: banished stray SELECT * queries and taught Mediabot cleaner SQL spells

This pass removes a bunch of leftover SELECT * queries and replaces them with explicit column lists where it made sense. The goal is simple: cl…

Overview

This session tackled one of the oldest forms of technical debt in the codebase: implicit SQL JOINs. Since Mediabot’s origins in 2007, many queries were written in the traditional comma-separated FROM A, B WHERE A.id = B.id style. Modern SQL has preferred explicit JOIN ... ON synta…

Overview

This session focused on a methodical bottom-up audit of all 32 Perl modules in the stack. No new features — just making the existing code more correct, more defensive, and less likely to silently misbehave under load or after a connection drop.

Three distinct categories of issues w…

Why This Matters

A codebase that’s been evolving since 2007 accumulates technical debt. Some of it is cosmetic. Some of it is a ticking clock. After a methodical audit of all 32 Perl modules, five categories of real issues surfaced — ranging from broken database calls to latent shell injection…

Mediabot v3 — Development Journal, March 2026


A Monster in the Making

Every long-lived project has one: a file that started small and quietly grew into something terrifying. For Mediabot v3, that file was Mediabot.pm — a 15,530-line monolith containing everything: IRC dispatc…

Background

Mediabot v3 has been using Mediabot::Context and Mediabot::Command objects for a while, but their adoption was partial and inconsistent. Two dispatch functions — mbCommandPublic and mbCommandPrivate — were mixing three different coding styles simultaneously: legacy `($sel…

Building a portable Windrop environment under Cygwin

Overview

This guide describes a reproducible method for building a portable Windrop environment under Cygwin around the following components:

  • OpenSSL 3.6.1
  • Tcl 9.0.3
  • TclTLS 2.0
  • tcllib 2.0
  • Eggdrop 1.10.1
  • optional addi…

Introduction

If you still run or maintain Eggdrop bots in 2026, chances are you are dealing with more than just an IRC bot binary. You are also dealing with an ecosystem: Tcl itself, TLS support, auxiliary Tcl packages, legacy scripts, and all the small runtime assumptions that tend to accumul…

Fixing Mediabot v3 on Libera.Chat: Net::Async::IRC CAP Negotiation and the is_connected Race Condition

Background

Mediabot v3 uses Net::Async::IRC as its IRC backend, running inside an IO::Async event…

Hey everyone,

I’ve spent the last few sessions building a proper test framework for Mediabot v3, and I wanted to share what’s now in place because it covers quite a bit of ground.

Phase 1 — Unit test framework (no IRC required)

The first phase is a fully offline test suite. It uses a set …

← PrevPage 14 / 15Next →