คุณเขียน if-else ทุกวัน คุณรัน code ใน terminal แล้ว REPL มันตอบกลับมา คุณ lambda ใน Python, arrow function ใน JavaScript, closure ใน Rust — ทั้งหมดนี้ เกิดจากภาษา LISP และที่น่าทึ่ง��... | Continue reading
LangGraph isn't cheaper than LangChain — unless you opt out of its defaults Cost-audit series, episode 4. This series began with an AI agent that burned 136M tokens overnight →. When LangChain deprecated ConversationBufferMemory (the subject of episode 1 in this series), th … | Continue reading
Intro named references (symbol) to values of fn they live in a namespace mutable reference to an immutable value Var is separate from the value so you can redefine it Note: symbol is just name Dig Deeper Functions are actually stored in vars (defn greet [ … | Continue reading
I'll guide you through Python fundamentals by comparing concepts with JavaScript. Let's start! 1. Hello World & Basic Syntax JavaScript console.log("Hello World"); let x = 5; Python print("Hello World") x = 5 # No semicolon, no let/c … | Continue reading
1. Subsystem Decomposition 1.1 The Decomposition Problem A subsystem decomposes a codebase into smaller, cohesive units. Two primary axes of decomposition exist: Technical axis: grouping by component type (controller, service, model, view) Functional axis: groupi … | Continue reading
You have a Java application, and now you need it to do something Java is awkward at. Maybe you want to let users script your app without recompiling it. Maybe you want to change a piece of business logic without a full redeploy. Maybe you just want to run a quick, throwaway scrip … | Continue reading
I started as a Java developer, but for some time now, I have broadened my horizons. Recently, I thought about how early languages were dedicated to a single target and platform, and now they are broadening their focus. In this post, I want to write down my thoughts in the hope th … | Continue reading
Most design tools treat developers as an afterthought. You get handed a file, you squint at a spec panel, and you manually translate someone else's pixels into code that drifts out of sync the moment the design changes. Penpot is an open-source design and prototyping platform wh … | Continue reading
Methodology note: This article is a product of GenAI. The methodology imposed online research for generation, then multiple rounds of adversarial reviews and fixes until convergence, which needs 2 consecutive review-fix rounds with 0 issues found. Analysis date: June 2026. All … | Continue reading
Yeah, I'm starting to think my initial comment about taking until the heat death of the universe to complete this wasn't far off the mark. I'm not really slow at finishing the tasks, it's just between working , the drudgery of everything else in life and possible undiagnosed ADHD … | Continue reading
The Age of Accountable Agents: Building Trust in Your AI Automation\n\nThe air around AI feels different this "Long Hot A.I. Summer." Big tech is pouring billions into development-Elon Musk's legal battles, Meta reassigning 7,000 employees to focus on AI-it's a high-stakes, high- … | Continue reading
For two days, my company laptop kept showing this error: Your organization has deleted this device. To fix this, contact your system administrator and provide error code 700003. At first, it looked like the only option was to disconnect and reconnect my work account from Wind … | Continue reading
You just finished a statistics assignment. The code works. The results are correct. Then you read the submission requirements and see it: "all functions must be properly documented." You have twenty functions. No docstrings. Twenty minutes left. That's the problem this tutoria … | Continue reading
In the world of DeFi, precision isn't just a requirement—it's a security primitive. My recent audits of protocols like Panoptic and Autonolas revealed a recurring theme: subtle rounding errors can lead to "dust leaks," creating a discrepancy where Total Shares exceed Total Assets … | Continue reading
Introduction Immutability is often presented as a best practice: once data is created, it is never changed. Instead of modifying existing data, you create new versions. That sounds clean, predictable, and safe—and it often is. But treating immutability as a universal rule lead … | Continue reading
Kevin Lynagh published a short essay this week about how he sabotages his own projects by overthinking, scope creep, and structural diffing. Four hours researching semantic diff tools when he needed an Emacs shortcut. Hundreds of hours on background research for a Clojure-Rust hy … | Continue reading
Bisql I'm building Bisql, a data access library for 2-way SQL in Clojure. https://github.com/hatappo/bisql Since it's “2-way,” I called it bisql with the bi- prefix. It is pronounced like bicycle. A common weakness of SQL-template libraries, not just 2-way SQL libraries, is … | Continue reading
Most working engineers have spent ninety percent of their concurrent-programming life in one model: shared memory protected by locks. Threads that all see the same variables. Mutexes around the critical sections. Hope and care. It's the model every OS textbook teaches, every main … | Continue reading
There is a pattern I keep seeing with customer environments. You get access to a VM for development. The code stays there. The dependencies are already there. The network access is there too. On paper, it looks fine. Then reality starts. You are expected to work through Remote … | Continue reading
Leiningen is the build tool and project manager for Clojure. Think of it like npm (Node), Maven (Java), or pip (Python) — but designed around Clojure's philosophy. What Leiningen Does Creates and scaffolds projects Manages dependencies (from Clojars + Maven Central) Runs R … | Continue reading
In Part 1, you ran GitHub Copilot CLI against a local model using LM Studio. That setup gives you control. No external calls. No data leaving your machine. But it comes with clear limits. Small models struggle, and output quality drops fast on anything non-trivial. This is wher … | Continue reading
Local AI is getting attention for one simple reason: control. Cloud models are strong and fast, but for many companies and developers, especially when experimenting or working with sensitive code, that is not ideal. This is where local models come in. Tools like LM Studio let … | Continue reading
Meta-programming = the broad idea of “programs that manipulate or generate programs”. It can happen at runtime (reflection) or compile-time (macros). Macros = one specific style of meta-programming, usually tied to transforming syntax at compile time (in a pre-processor or AST-t … | Continue reading
Most GitHub Copilot setups are too polite to be useful. By default, Copilot tries to agree, avoid criticism, and keep answers "safe". That sounds good, but in practice it leads to weak suggestions, missed problems, and bad decisions slipping through. If you want better output, … | Continue reading
AI coding agents are powerful — but they're also blind. Every time Claude Code, Codex, or Gemini CLI needs to understand your codebase, they explore it file by file. Grep here, read there, grep again. For a simple question like "what calls ProcessOrder?", an agent might burn thro … | Continue reading
During a Git migration, the new platform is rarely switched on overnight. In many real scenarios, two systems must coexist for a while. For example: repositories move from GitLab to GitHub CI pipelines still run in GitLab developers start working in GitHub In this transit … | Continue reading
📖 Series: Time-Travel Debugging in State Management (Part 1 of 3) From debugging tool to competitive UX advantage Introduction Imagine: you're testing a checkout form. The user fills in all fields, clicks "Pay"... and gets an error. You start debugging. … | Continue reading
Disclaimer I want to start off by saying that I don't expect anyone to read this. However, neither OpenAI nor Anthropic's models get this right on the first try, so I figure that writing about it might get picked up in future training runs. Inheritance A pattern tha … | Continue reading
Look at this line of code: processCustomerOrder(customer, orderItems) Any developer with six months of experience knows roughly what that does. The name is explicit, the structure is familiar, the intent is readable. Now look at this: (reduce + (map f xs)) The r … | Continue reading
So I came across this (quite old) post on stackoverflow, someone wanted to print a list next to a string and he was struggling with it Elixir: Printing list along with string Aug 5 … | Continue reading
Most commit messages are useless. "fix stuff" “update code" "changes" They work in the moment. They fail six (actually one) months later. Commit messages are not for today or for something special. They are for: your future self your teammates automation pipelines changelog … | Continue reading
Python to Wisp: The Lisp That Stole Python's Indentation Every Lisp programmer has heard the complaint: "too many parentheses." Every Python programmer has heard the praise: "the indentation makes it readable." Wisp asks a dangerous question: what if we put them together? Wisp … | Continue reading
Python to Clojure: A Gentle Guide for Pythonistas Python is the world's most popular general-purpose language. Clojure is a quiet powerhouse — a modern Lisp on the JVM that has earned fierce loyalty among developers who discover it. Both languages prize simplicity, but they mea … | Continue reading
I've been very impressed, so far, with Datastar[https://data-star.dev], a tiny JavaScript library for front-end work; I've been switching a personal side-project from using Svelte for it's UI to Datastar, and as amazing as Svelte is, Datastar has impressed me more. Datastar's es … | Continue reading
Let’s be honest. Java is not sexy. Nobody wakes up excited thinking “wow, I hope today I can write some beautiful enterprise Java code.” And yet… Banks, fintechs, payment processors, credit engines, risk platforms, and trading systems are still massively powered by Java in 20 … | Continue reading
I use GitFlow even for my side projects. Not because it is elegant. Not because it is modern. I use it because it forces me to behave like the project matters, even when nobody else is watching. When you work alone, shortcuts are tempting. You push directly to main. You skip re … | Continue reading
A mental model for understanding Python’s role Anyone who started programming in the early 1980s might have started with Apple II BASIC, BBC BASIC or Sinclair BASIC (ZX-81 or ZX Spectrum) - and 6502 or Z80 assembler. Those early environments were all defined by immediacy. Yo … | Continue reading
▶ What Java Is ? A verbose, boilerplate-heavy, object-oriented language. Created during the dot-com bubble by Sun Microsystems. Originally meant for TV remotes, released publicly in 1996. Runs on billions of devices for decades. ▶ Java Philosophy Motto: "Write once, run eve … | Continue reading
Claude Code has taken the software engineering world by storm and it's changing how the field looks in leaps and bounds. Prominent engineers are proudly saying that they're writing 0 lines of code already. Jaana Dogan, a Principal Engineer at Google working on Gemini, recently sh … | Continue reading
Spend any time around Clojure and a familiar cluster of claims soon appears. You will be told that: the Read–Eval–Print Loop (“REPL”) is what makes Clojure fundamentally different REPL-driven development supersedes the Edit–Compile–Run model typical of C-family, .NET and Java … | Continue reading
My Functional Programming Learning Journey I recently completed a comprehensive workbook with 45 exercises to learn about lambda functions and functional programming in Python. I want to share my experience with fellow beginners who are on the same learning path. What … | Continue reading
A Java Virtual Machine (JVM) é uma das tecnologias mais influentes e bem-sucedidas da história da computação moderna. Desde seu lançamento em 1995, a JVM tem sido fundamental para o sucesso da plataforma Java e representa um dos melhores exemplos de como abstrair a complexidade d … | Continue reading
I love VS Code. It is fast, flexible, and works for almost any stack. But the default layout is not great if you want a clean space to think. The editor area is smaller than it should be, and the UI is packed with elements that pull attention away from the code. With the new Copi … | Continue reading
Welcome to the world of compile-time metaprogramming in Scala 3! Macros can seem like magic, but they are built on a powerful and elegant system of Quoting and Splicing. Today, we're going to dissect a practical and elegant macro that converts any case class into a Map[String, An … | Continue reading
Hi everyone! 👋 On December 10 at 18:00 (GMT+1) Health Samurai is hosting an online meetup “core.async: Deep Dive”. This talk goes under the hood of clojure.core.async to show how channels, queues, timers, and event loops actually work together to power asynchronous workf … | Continue reading
O que é a Clojure South? Segundo site oficial: "Organizada pelo Nubank, a Clojure South faz parte da programação oficial da comunidade de Clojure, conectando pessoas desenvolvedoras, entusiastas e empresas para compartilhar experiências reais, discutir tendências e fortalecer … | Continue reading
VS Code tasks are powerful, but most developers barely use them. The problem is not the feature itself. It is the workflow. Tasks are hidden behind menus, the command palette, or a tasks.json file that nobody enjoys editing. Running the same commands over and over becomes a small … | Continue reading
10 Developer Habits That Separate Good Programmers From Great Ones There's a moment in every developer's career when they realize that writing code that works isn't enough. It happens differently for everyone. Maybe you're staring at a pull request you submitted six months ago, … | Continue reading