Sign up

Karn Wong

Not verified No WebSub updates No webmention support Invalid

Homepage and blog by Karn Wong

Generator
Zola
Public lists
I ♥ RSS
Fetched

Karn Wong
Text • Unknown

2025-08-01

The lengths I go to not have to fish out my phone out to check for stuff, yup - I wrote my own garmin apps to display qrcode and my todo list.


สองสามวันนี้นั่งคลำๆ Garmin Connect SDK เขียนแอปใช้เอง เพราะความขี้เกียจขั้นสุดที่ไม่อยากเอามือถือออกจากกระเป๋าเวลาต้องการดูอะไรไวๆ

Print statement ก็ยังคงใช้ debug ได้ทุกอย่าง

เจ็บกระดองใจตรงที่โดนวางยา ตอนยิง imageRequest มันไม่ยอมส่ง headers ให้ เลยต้องไปอ้อมใช้ apiKey ผ่าน queryParams แทน

ลงทุนเขียน app เอาไว้ดู qr code แค่นั้นเลย (มีหลังบ้านแยก ไปส่องดูได้ใน github)

มีทำไว้อีกอัน คือ เอาไว้ดู todo list (คนรอบตัวที่ยังคบกันอยู่ทุกวันนี้คงทำใจแล้วล่ะ ว่ายังไงก็เลิก DIY ไม่ได้ 55555)

Karn Wong
Text • Unknown

2025-07-27

ใน bluesky มีคนถามว่า ใช้ llm ช่วยเขียน IaC (จะ terraform หรือ pulumi ก็แล้วแต่ศรัทธา) เวิกมั้ย

มันก็ช่วยทุ่นแรงได้ แต่ไล่เช็ค config ทุกจุดก็ดี ว่า ตรงตามที่ต้องการมั้ย

typo นิดเดียว อาจจะหมดตัวได้ตอนปัก machine size

ทั้งนี้ ถ้าใช้ ui หรือ web console สร้าง infra ไม่เป็น

IaC ไม่ใช่วิธีแก้ปัญหา จะงงกว่าเดิมด้วย เพราะมันไม่มี wizard ช่วยดัก control flow

Karn Wong
Text • Unknown

2025-07-24

When you can write python and other languages, you might find yourself accidentally prototype in python, then rewrite in another language.

I am guilty of this, been doing this a lot with my projects, oops.


สิ่งที่จะเกิดขึ้น เมื่อเขียน python คล่องพอๆ กับภาษาอื่น คือ

จะมีการหลวมตัวเผา prototype ใน python แล้วค่อยไป rewrite ใหม่ในภาษาที่มีการทำ typing ดีๆ

ทำมากับหลายโปรเจคจนเห็น pattern ตัวเอง

ความเผลอมีอยู่จริง 🫣

Karn Wong
Text • Unknown

2025-07-23

Was renaming env var and my IDE updated it in my sops file, and it bricked the file. Good to know that the key name is taken into the checksum as well.

Karn Wong
Text • Unknown

Terraform project structure

Recently I gave a terraform talk, and people ask how to get started with terraform. The simple answer is to try to get your hands dirty with it, but at certain point you have to learn how to "manage" the ever-growing terraform project. Single-project structure In the beginn...

Karn Wong
Text • Unknown

The true cost of deploying on EC2

Naturally, when you are working on a project, be it python, go, rust, you would write code and make sure it works as expected. For deployments, packaging your project into a docker image and deploy it as a container would guarantee that it would work the same regardless of w...

Karn Wong
Text • Unknown

2025-07-17

Recently gave a talk about IaC and FinOps. People couldn't agree on who should own cloud cost optimization initiative. But if you ask me, it's a team sport :) Also, if finance isn't monitoring the numbers, high cloud costs would be the least of your worries. https://speakerd...

Karn Wong
Text • Unknown

2025-07-14

I'm in the "labels don't define your camp" in case it isn't obvious. But you are more than the sum of all parts.

https://www.freyaindia.co.uk/p/nobody-has-a-personality-anymore

Karn Wong
Text • Unknown

2025-07-12

Recently gave a talk about WASM. Mostly a tour on deployment infrastructure 😛

https://speakerdeck.com/kahnwong/bkk-dot-js-number-23-intro-to-wasm


สไลด์ของวันก่อนที่ไปแชร์เกี่ยวกับ WASM มา

มีคนถามเยอะ ว่า ตอนไหนควรใช้ WASM

เลยมีเพิ่มหน้าเล็กน้อย

จริงๆ คือพาทัวร์ ว่า ตอน production ใช้ท่าไหนได้บ้าง

https://speakerdeck.com/kahnwong/bkk-dot-js-number-23-intro-to-wasm

Karn Wong
Text • Unknown

Dataframe processing benchmarks (ภาษาไทย)

English ช่วงหลังๆ มานี้ duckdb กับ polars มาแรงขึ้นเรื่อยๆ พ่วงมากับการที่ parquet เป็นที่นิยมมากขึ้นในการใช้เก็บข้อมูล เลยว่าเป็นฤกษ์ดีในการมาดู ว่า data format กับ framework จะมีผลกับความไวในการปั่นข้อมูลขนาดไหน Processing 1 Million Rows สำหรับการ transform ข้อมูลแบบง...

Karn Wong
Text • Unknown

Dataframe processing benchmarks

ภาษาไทย Given the rise of duckdb and polars in recent years, in addition to parquet format being more widely adopted for data storage format, it might be a good time to see how source data format affects data processing speed - in addition to the framework choice. Process...

Karn Wong
Text • Unknown

Simplify SSH (and HTTP & Postgres) access management with Warpgate

Background If you have to work with virtual machines (VMs), you know the drill: disable password authentication and only allow private key authentication. If you want to sleep better at night, make the VMs only accessible through a private network to reduce the attack surfa...

Karn Wong
Text • Unknown

2025-06-26

Finally! Back then we had to manually assign lochash to all datasets we have to join, and it's a lot of stuff to keep track!

H3 makes things better but still it's not as smooth as I'd like it to be. Data mapping is messy.

https://overturemaps.org/announcements/2025/overture-maps-launches-gers-a-global-standard-for-interoperable-geospatial-ids-to-drive-data-interoperability/


ชาว GIS จะสบายแล้ว

เมื่อก่อนจะเอาแต่ละอย่างมาผูกกัน ต้องไล่เช็ค zoom level (สมัยก่อนมี H3) แล้วต้องตี grid กะให้ขนาดพอดี แล้วงอก mapping column มาผูกกันข้าม dataset

join แล้ว join อีก join จนท้อ กว่าข้อมูลจะพร้อมให้เอาไปแงะ (เหนื่อยอีกทีตอนเช็คว่า ผูกตรงกันมั้ย กับ ทุก dataset)

https://overturemaps.org/announcements/2025/overture-maps-launches-gers-a-global-standard-for-interoperable-geospatial-ids-to-drive-data-interoperability/

Karn Wong
Text • Unknown

2025-06-25

I'm eval-ing a tool where you can upload artifacts to it. The docs say you can use toolA, toolB, toolC to upload, but it doesn't mention anywhere that you can also use toolX for this (and toolX is more popular and widely used). Very turf war vibe.

Karn Wong
Text • Unknown

2025-06-24

Recalled this prod story. Had to restart a container on a vm to update its config (can also be changed via ui). Previous guy set it up, and he left the org by then, luckily we can ssh into the vm. We restarted container, only to find out that the docker run command didn't mo...

Karn Wong
Text • Unknown

Using Nix for CI, but with a twist

CI (continuous integration) is kind of tricky in a sense that each CI vendor has its own implementations, often glued together via yaml configurations. If you have a CI to build a binary, unless you use bash to 1) install dependencies and b) build the artifacts, most likely ...

Karn Wong
Text • Unknown

Hello Garage, goodbye MinIO

Given the trend where open-source software license changes to be less permissive, or move features behind a paywall, existing users might not be quite as happy about this predicament. Case in point: MinIO Removes Web UI Features from Community Version, Pushes Users to Paid P...

Karn Wong
Text • Unknown

Cloudflare's terraform v5 provider migration strategy

Back in February 2025, Cloudflare announced that its terraform v5 provider is GA. However, this release contains a lot of breaking changes, but I understand why it had to be this way - because it's less work if you generate a terraform provider via OpenAPI specs. The v4 to v...

Karn Wong
Text • Unknown

Model inference in ONNX

Everyone agrees that python is great for data stuff, be it data engineering or machine learning. Although rust is gaining more traction for data-related applications, python is here to stay. Those who venture into machine learning are at least familiar with sklearn - a popul...

Karn Wong
Text • Unknown

My code search setup throughout the years

Initial Setup Around 2022-23, I was browsing awesome self-hosted and came across Sourcegraph, a popular code search tool. I don't plan to pay, and they allowed self-hosting, so it was perfect for me at the time. Then you still can't search code in GitHub (which we used for ...

Karn Wong
Text • Unknown

2025-05-07

Poking holes into websites is my version of fun. People act like I grow two heads when I say I do it to relieve stress.

Oops.

And when I deploy a lot of new services to my kube cluster at home, yup that’s my peak stress and I need to let off some steam.

Karn Wong
Text • Unknown

WASM FFI performance benchmark

WASM is known for being very portable because the only thing it asks for is a browser runtime. This means it doesn't matter if you have machines on linux/amd64, windows/amd64, darwin/aarch64, WASM can run on all these platforms without required modifications. WASM can be u...

Karn Wong
Text • Unknown

2025-04-02

Happy to say I'm a direnv convert. No more setting up dotenv for every project I work on is a godsend (and especially when you write in multiple languages this gets old real fast).

Karn Wong
Text • Unknown

2025-03-15

I had this android tablet since 2019-ish, the last official update was android 8, so I thought why not flash Lineage on it.

Turns out I can't unlock bootloader because the [device region] and [account region] are not the same.

Yup, no longer buying devices from this manufacturer.

Karn Wong
Text • Unknown

WASM deployment benchmark

Correction 2025-06-16: there was a calculation error for artifacts size difference, it has been fixed. Previously, we've seen how WASM performs. But what about delivery methods? This means runtime overhead as well, because executing a raw binary vs container means startup t...

Karn Wong
Text • Unknown

Migrate from Docker Desktop to Podman on Darwin

Lately Docker Desktop on Mac behaves weirdly, namely its erratic memory consumption. Not willing to babysit the memory usage, I looked into alternatives, and found a few contenders: Colima, Podman and Orbstack. Being an open-source aficionado, naturally I gravitate to Colima...

Karn Wong
Text • Unknown

2025-02-21

Was writing down vendors list from a security conference I attended last month.

There's this one vendor, where their website at www is fine, but if you access it without leading www, it shows you an admin page. Hoo boy.

And their SSL cert is not valid!!!!! 😬

Karn Wong
Text • Unknown

Cross-platform keyring-like setup (also works without desktop environment)

Sometimes, running an application requires you to supply a password, or something along these lines. If you have a terminal-based workflow, sometimes it can require an authentication token. These configurations would need to be supplied either at runtime or stored somewhere ...

Karn Wong
Text • Unknown

2025-02-11

It's very amazing with the amount of work put into Proton engine for running windows games on linux.

I installed a game from 2015-ish with native linux port - the screen stutters when I move the camera, and it crashes very often. But if I run this game through Proton, zero issues!

Karn Wong
Text • Unknown

2025-02-06

I'll never forget that time when my Intel NUC was running hot on idle (70 C). I removed a lot of workloads from it, still high temp.

Turns out the culprit was accumulated dust. Turned it off, blow it from every angle. Lo and behold, the idle temp is now at 50 C.