Jim Cheung

Monday, June 03, 2024

reading two books:

there's also a podcast about the first book: SE Radio 497: Richard L. Sites on Understanding Software Dynamics


Implementing GUIs using Clojure and LWJGL Nuklear bindings

What do I think about Lua after shipping a project with 60,000 lines of code?

Wednesday, June 05, 2024

learned pocketbase: Open Source realtime backend in 1 file from this episode: The Modern Dev CMS - Pocketbase - Syntax #777

I tried and it's pretty useful, and it's just a single binary and sqlite db files, I think I'll add it to my toolbox


more tools around sqlite


this one is interesting: andyk/ht: headless terminal - wrap any binary with a terminal interface for easy programmatic access.

as it said it's like a headless browser but for terminals, means I can send command to a terminal app

Thursday, June 13, 2024

reading couple books:


turns out ht is not useful for my project, the issue is when main program got terminated, it can only kill the ht process, not able to kill child processes spawned by ht

and I don't have the need to maintain a tui view, it's overkill to use it for my case

Wednesday, June 19, 2024

reading Hypermodern Python Tooling, it introduces modern tools like rye, hatch, pipx and uv

I tried some hatch

$ hatch python install 3.12
$ hatch python remove 3.12

create virtual env

$ hatch env create
$ hatch shell

then use exit to quit and hatch env show to check

removal is just hatch env remove

for simplicity reason, hatch only uses python in the PATH, to use specific python version can use something like

export PATH=$(hatch python find 3.11):$PATH


environment in hatch is a bit different than the virtual environment I used to use, they're global that allows applicaion to use one environment for running and another environment for testing

also dependencies are added to project config manually, unless using plugin like hatch-requirements-txt

it's interesting and useful under project setup, but I feel more comfortable with requirements.txt:

alias py="\"$(hatch python find pypy3.10)\""
py -m venv venv
source venv/bin/activate
python -m ensurepip
pip install <pacakge>
pip freeze > requirements.txt

Monday, June 24, 2024

Microfeatures I Love in Blogs and Personal Websites, even more in the hn comments

I only like plain html, with one exception: I love to have a preview on hover for footnotes


Start all of your commands with a comma is such a good idea for personal commands/scripts, I may start to adapt it


Ruby: a great language for shell scripts!

again, there are more gems in the hn comments

nowadays I use babashka for heavy scripting, but I've missed how easy it is to get results by wrapping backticks around shell commands

Wednesday, June 26, 2024

I borrowed Simon Willison's OCR and integrated into my notebook

tesseract.js can also be run in the command line, so I have a quick setup for screen capturing and watch a folder to run the OCR, data is saved to a sqlite db for searching (yes, sounds just like Microsoft Recall)

Friday, June 28, 2024

I quite like this one: Making the Kinopio Source Code Public

adding it to my notebook toolbox


kinopio is a local-first app, the difference between local-first and local apps:

If it doesn’t go to the internet at all, it’s just local software.

from Local, first, forever

more local-first resources:

Blog Archive