Set up a Claude DOCX sub-agent and reduce cost by 50%
Or how to set up a subagent in Claude Code and Cowork.
Writing about Scala, Play Framework, and startups.
Or how to set up a subagent in Claude Code and Cowork.
Ruby is used for the first prototype. Java is the easiest to write and has the most mature libraries with zero issues. TypeScript has been chosen due to its ecosystem where Claude Desktop may potentially provide MCPB support which reduces the binary size by 99%.
I want to show you how I support per-field update with Slick + Postgres. Note This blog serves as a documentation for PlayFast , an opinionated production-ready PlayFramework template that makes you productive. It bothered me for a long while that I had to make an update function for each
I spent too much time figuring out how to integrate a log management platform with Dokploy. I was looking at 3 different platforms: NewRelic, OpenObserve, and Papertrail. Eventually, I've chosen NewRelic due to the combination of UX (haha) and ease of integration. OpenObserve seems good but doesn'
I've just finished "Teach Your Child How to Think" by Edward de Bono. It was published in 1994. I found this book while going through things at my childhood home back in Bangkok. Since my daughter was a bit over 3 years old right now, I
There are 2 ways of testing an in-app purchase: (1) using a local storekit config and (2) using a sandbox testing account. Using a local StoreKit config requires an xcode project. Since a Kotlin Multiplatform Mac app doesn't generate one, we cannot use this approach. A KMP
In the past month, I was working on publishing a Java app to Mac App Store (MAS). It's quite a journey. While Java has come so far in terms of packaging a desktop app, it also lacks in some other critical parts. Sometimes I wonder how others publish
The first thing I'd do is to run the app in Terminal: $ cd /Application $ ./YourApp.app/Contents/MacOS/YourApp Then, we might see some useful outputs. If we don't see anything useful, then we should utilize Console.app that comes with MacOS.
I wanted to show you how to add another database in PlayFramework that uses Slick and Evolutions. That database is ClickHouse , which also requires a little bit of special handling. In the end, it works out quite cleanly. I'll later integrate it into PlayFast , an opinionated production-ready
It took me 1-2 hours to set up ClickHouse to work with a JDBC connector in Java. The ClickHouse documentation is somewhat obscure. For example, it shows all the ports from a ClickHouse server: https://clickhouse.com/docs/guides/sre/network-ports But the Server Settings page doesn'
It gets a bit tricky to make the production code clean while making it convenient to mock a static method in a multi-threaded setting.
Summary Many virtual list libraries like react-window , svelte-virtual-list , and TanStack's Virtual cannot handle the total height larger than 16,777,200px due to Chrome's limitation. If you have a list of 1M rows where each row is 28px, you won't be
Summary Using local dependency like "your-package": "file:../some-path" or npm link doesn't work with Svelte because you will have duplicated Svelte runtimes. What works is to use npm pack and then npm install <path_to_tgz> Bundlers look for Svelte
This seems to happen sometimes in test and dev. After digging into java.sql.DriverManager , which is responsible for loading all drivers, it seems to use ServiceLoader to discover all subclasses of java.sql.Driver . Apparently, sometimes it fails in test. No idea why. To fix it, we can register
The example is in Tailwind: <div class="w-[200px]"> <div class="w-full"> <ul class="w-full"> <li class="w-full"> <a href="overflow-hidden text-ellipsis whitespace-nowrap">text&