A zero-dependency logging proxy that sits between Claude Code and the Anthropic API. It forwards every request untouched, streams the reply straight back (so the CLI is unaffected), and writes a readable Markdown document for each request — led by a ranked table of what is eating your context.
A pattern for building personal knowledge bases using LLMs.
This is an idea file, it is designed to be copy pasted to your own LLM Agent (e.g. OpenAI Codex, Claude Code, OpenCode / Pi, or etc.). Its goal is to communicate the high level idea, but your agent will build out the specifics in collaboration with you.
Most people's experience with LLMs and documents looks like RAG: you upload a collection of files, the LLM retrieves relevant chunks at query time, and generates an answer. This works, but the LLM is rediscovering knowledge from scratch on every question. There's no accumulation. Ask a subtle question that requires synthesizing five documents, and the LLM has to find and piece together the relevant fragments every time. Nothing is built up. NotebookLM, ChatGPT file uploads, and most RAG systems work this way.
| import ctypes | |
| import hid, sys | |
| import time | |
| user32 = ctypes.windll.user32 | |
| def get_active_language(): | |
| h_wnd = user32.GetForegroundWindow() | |
| thread_id = user32.GetWindowThreadProcessId(h_wnd, 0) | |
| klid = user32.GetKeyboardLayout(thread_id) |
Over the last 24-48 hours, I've fielded quite a flurry of tweets related to a couple of threads I posted recently. Upon reflection on the feedback, especially the negative stuff, I decided to write this blog post to clarify a few things about my background on the topic, what I was trying to say, what I've done so far, and what I'm hoping to do (and learn!) in the future.
It's a bit of a lengthy read, but if you find you've got the time, I hope you'll read it.
To be clear, the feedback has been on a broad spectrum. A lot of it was actually quite positive, people thanking me and appreciating my continued efforts to try to make dev topics approachable. As a matter of fact, over the years, I've received boat loads of such positive feedback, and I'm tremendously grateful that I've had a helpful impact on so many lives.
But some of it veered decidedly the other direction. I'm deliberately not linking to it, because I don't want to either amplify or gang up on those folks. I'm offended an
| async function validatePassword(password: string): string[] { | |
| let errors = [] | |
| // 1. Don't regex for things you can trivially express in code | |
| // ----------------------------------------------------------- | |
| // For example, we could have written this as `/^.{0,7}$/` but that's not | |
| // nearly as clear as checking the length of the string. | |
| if (password.length < 8) { | |
| errors.push("Password must be at least 8 characters long") |
| /* don't limit the block width for tables */ | |
| .rm-block-text { | |
| max-width: none!important; | |
| } | |
| /* clean up tables embedded in tables and blocks within tables */ | |
| .roam-table, .roam-table th, .roam-table td, .roam-table tr { | |
| padding:0!important; | |
| vertical-align: top; | |
| min-width:auto!important; |
| [server] | |
| SERVER | |
| [server:vars] | |
| server_name=SERVER | |
| email=noc@gopractice.io | |
| docker_nginx_ssl=true |
You should have the following completed on your computer before the workshop:
- Install the AWS CLI.
- Have Node.js installed on your system. (Recommended: Use nvm.)
- Install
yarnwithbrew install yarn.
- Install
- Create an AWS account. (This will require a valid credit card.)
- Create a Travis CI account. (This should be as simple as logging in via GitHub).
There exist several DI frameworks / libraries in the Scala ecosystem. But the more functional code you write the more you'll realize there's no need to use any of them.
A few of the most claimed benefits are the following:
- Dependency Injection.
- Life cycle management.
- Dependency graph rewriting.