The Curious Engineer

All blogs / Java / JVM

tanin

tanin.nanakorn.com

Writing about Scala, Play Framework, and startups.

Java / JVMDatabasesMobile / iOS / AndroidSoftware / engineering practice

Posts
55 from 2 Jan 2017 to 2 Oct 2026
Posting
monthly (14 in the last year)
Kind
personal blog
Feed
https://tanin.nanakorn.com/rss/

2026 8

  1. prevents me from logging into Vanguard
  2. My experience using JOOQ with Scala and Postgres
  3. Postgres AT TIME ZONE 'UTC' does NOT do what you think it does
  4. Set up a Claude DOCX sub-agent and reduce cost by 50%
  5. Ruby vs. Java vs. TypeScript: my experience on building a Cowork DOCX plugin
  6. Support per-field update with Scala Slick
  7. Integrating a log management platform with Dokploy
  8. Teach your child how to think

2025 29

  1. How to test in-app purchases on a Kotlin Multiplatform Mac app
  2. Publishing a Java-based database tool on Mac App Store (MAS)
  3. How to debug why a Mac app crashes
  4. ClickHouse with PlayFramework, Slick, and Evolutions
  5. Set up local ClickHouse on Mac for development
  6. Mocking java.time.Instant.now() in PlayFramework
  7. Virtual List: Overcoming the 16,777,200px Limitation of Chrome
  8. What not to do when publishing a Svelte component locally
  9. java.sql.SQLException: No suitable driver found
  10. A minimal working example of text ellipsis
  11. Java's HttpClient doesn't resolve localhost to IPv6
  12. An Omakase-style PlayFramework Template: PlayFast
  13. How to build a JDK on ARM-based Mac
  14. The "SLF4JServiceProvider not found" issue
  15. Obstacles in notarizing a Kotlin-Multiplatform-based Mac app
  16. Why we like what we make
  17. Gall's law
  18. Use KeyDown for shortcuts
  19. In zsh, `set -o vi` interferes with `history-search-end`
  20. How to solve a sliding puzzle
  21. I like using a Google Group for recording meeting notes
  22. My experience migrating a PlayFramework app to Scala 3
  23. One more reason to choose Postgres over MySQL
  24. Set up Programmable Tooltip to open Sublime with a specific file
  25. Set up the vim mode in IntelliJ to be aware of CamelCase
  26. My secret productivity app when I worked at Stripe
  27. Set up IntelliJ to run scalatest's FunSpec
  28. The correct way to model a timestamp range is [start, end)
  29. Building the load more mechanism for an infinite scroll

2024 6

  1. Play Framework: Session's Gotchas
  2. Integrate JobRunr into Play Framework [Update Sep 2025]
  3. A succinct early exit trick for Option in Scala
  4. Java: Meridiem (am/pm) date parsing surprise
  5. GraalVM and ChromeDriver in a Docker image for Render.com
  6. [Deprecated] Integrate New Relic into Play Framework

2023 4

  1. Connect Chromecast to a wifi with 2-step sign-in
  2. When high quality conflicts with solving user needs
  3. The best way to use Svelte with Play Framework
  4. An open-sourced Ruby DSL for composing maintainable analytical SQL statements

2021 2

  1. Analyze log files with SQL using Superintendent.app
  2. Use SQL instead of Spreadsheet/Excel

2020 1

  1. A programmable tooltip on Mac OS

2019 1

  1. Edgecases for timezones

2018 3

  1. The tale of Algolia's Scala client and Play Framework
  2. Parallelize tests in SBT on CircleCI
  3. Parallelize tests in SBT with frustration

2017 1

  1. The missing pieces of English pronunciation lesson