This action will delete this post on this instance and on all federated instances, and it cannot be undone. Are you certain you want to delete this post?
This action will delete this post on this instance and on all federated instances, and it cannot be undone. Are you certain you want to delete this post?
This action will block this actor and hide all of their past and future posts. Are you certain you want to block this actor?
This action will block this object. Are you certain you want to block this object?

The thing with the AI tools is... they are tools. It's not a sentient thing. It's a tool. And you have to learn how to use it if you want to get anything out of it. The fact that it's being sold as not-a-tool is the main issue with regard to utility. "Your virtual co-worker!" "Anyone can use it" "Just use natural language", etc. Nonsense.

I just asked Claude Code to diagnose an issue in code it wrote. I told it to also use Gemini on the CLI to do the same analysis. Claude was to discuss the issue with Gemini until they had a consensus on the problem. This actually worked! Kind of nutty, but the outcome was a good plan to fix it. Better than what I was getting from Claude alone.

Quote from a friend during a chat about "AI" and pareidolia: "Tech just put googly eyes on an algorithm" 😀
(edited for typo)


I'm trying to get through the backlog of bugs and features in my to-do list. Release v2.4.10 of Ktistec packages up several important improvements. The most impactful change is graceful server shutdown—I've never had a problem with shutdown leaving the database in a broken state, but prevention is the best cure.
Added
Fixed
Changed
I'm considering adding lightweight multi-user support (invitation-only, not open registration). I'm interested in your thoughts on whether this would be useful.

Because of spammers, I am going to have to now redo how my family sends/receives email at my custom domain. Too many folks required DKIM now for me to be able to use Send As on Gmail without using a custom SMTP server that can handle signing, or paying for a Google Workspace (which I don't want to do). Sartre was right about Hell.

I got two AI agents, Claude and Gemini, to help generate a doc for new developers on how to work with one of our services. In the end, I am quite pleased with what it did.
Example:# Developer's Guide to the User-Profile Service
Welcome! This document is the comprehensive guide for developers working on the
User-Profile service. It outlines our architecture, established patterns, and
development workflow. Adhering to these conventions is key to maintaining a
clean, consistent, and scalable codebase.
## Table of Contents
1. [**Getting Started: Your First 5 Minutes**](#getting-started-your-first-5-minutes)
2. [**Core Architectural Principles**](#core-architectural-principles)
3. [**Codebase Tour**](#codebase-tour)
4. [**Quick Decision Guides**](#quick-decision-guides)
5. [**The Golden Path: Adding a New Feature**](#the-golden-path-adding-a-new-feature)
6. [**Deep Dive: Key Patterns & Conventions**](#deep-dive-key-patterns--conventions)
- [The Data Layer (`stores/`)](#the-data-layer-stores)
- [Event Handling (`event_consumer/`)](#event-handling-event_consumer)
- [Command Handling (`command_consumer/`)](#command-handling-command_consumer)
- [The API Layer (`webapi/`)](#the-api-layer-webapi)
- [Error Handling Patterns](#error-handling-patterns)
- [Testing (`*_test.go`)](#testing-_testgo)
- [Long-Running Tasks (`temporal/`)](#long-running-tasks-temporal)
- [Observability Best Practices](#observability-best-practices)
- [Configuration Management](#configuration-management)
- [Performance Considerations](#performance-considerations)
- [Cross-Cutting Concerns](#cross-cutting-concerns)
7. [**Development Cheatsheet**](#development-cheatsheet)
8. [**Glossary of Terms**](#glossary-of-terms)

It makes me laugh/cry that we spent decades trying to get the software industry to internalise that it takes far more effort to support & maintain systems than it does to write them in the first place, and yet seemingly every trendy development in the last 5-10 years has been about making that initial stage faster & sloppier at the expense of everything else

We've been fairly effective at getting Claude Code to write useful code on our repos. I say useful, in that it saves some time. Not in that it's ready to ship. However, this seems to be in a large part because we have a lot of patterns that are supportive of human developers as well:
All of the above makes it easy to work on our codebases for humans. And it makes AI much less likely to go off script and make a mess.

Quitting programming as a career right now because of LLMs would be like quitting carpentry as a career thanks to the invention of the table saw.

I finally published the blog post I was working on about how we wrote a C Node in #CrystalLang to call into our existing #Golang libraries from #ElixirLang! You can read about it here: https://relistan.com/calling-go-from-elixir-with-a-cnode
