41554 blogs · [ { "id": "01a0c50e-7b91-7105-be49-a6d5a8e4fbb8", "title": "AI 지원 로그 분석", "url": "https://gamlor.info/posts-output/2026-09-18-download-logs-and-analyze/kr/", "published_at": "2026-09-17T22:00:00+00:00" }, { "id": "01a0c50e-7b91-7105-be49-a6d5a9028a95", "title": "AI-Assisted Log Analysis", "url": "https://gamlor.info/posts-output/2026-09-18-download-logs-and-analyze/en/", "published_at": "2026-09-17T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75ac23855c", "title": "Good Article Roundup: AI Coding", "url": "https://gamlor.info/posts-output/2026-06-16-article-roundup/en/", "published_at": "2026-06-15T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75accfb5bb", "title": "좋은 기사 모음: AI 코딩", "url": "https://gamlor.info/posts-output/2026-06-16-article-roundup/kr/", "published_at": "2026-05-31T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75ad39ce7c", "title": "좋은 오류 메시지가 시간을 절약하다", "url": "https://gamlor.info/posts-output/2026-04-24-good-error-reduces-debugging/kr/", "published_at": "2026-04-23T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75ae1caf56", "title": "Good Error Messages Save Time", "url": "https://gamlor.info/posts-output/2026-04-24-good-error-reduces-debugging/en/", "published_at": "2026-04-23T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75ae847e7a", "title": "루트 없는 포트 80/443 사용하기 방법: 방화벽으로", "url": "https://gamlor.info/posts-output/2026-01-02-redirect-ports-via-firewall/kr/", "published_at": "2025-12-28T23:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75af4cd7cb", "title": "Using Port 80/443 without root: Via the Firewall", "url": "https://gamlor.info/posts-output/2026-01-02-redirect-ports-via-firewall/en/", "published_at": "2025-12-28T23:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75af62033d", "title": "OutOfMemoryError: Exit Immediately", "url": "https://gamlor.info/posts-output/2025-12-21-out-of-memory-java/en/", "published_at": "2025-12-20T23:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75af82d2f6", "title": "Create Types on Demand and Cecilifier", "url": "https://gamlor.info/posts-output/2025-12-02-just-in-time-types-and-cecilifier/en/", "published_at": "2025-12-01T23:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75aff1409f", "title": "Learned/Discovered this week: bpftrace, Windows in Docker, Testcontainers & Docker upgrade, Debugging-Tips", "url": "https://gamlor.info/posts-output/2025-11-16-learned-this-week/en/", "published_at": "2025-11-15T23:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75b0aeef68", "title": "Use Mill Build Caching in CI-Builds", "url": "https://gamlor.info/posts-output/2025-11-05-mill-build-caching-bitbucket/en/", "published_at": "2025-11-04T23:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75b0ff8917", "title": "Yes, Internet Explorer still runs on Win11, with some help", "url": "https://gamlor.info/posts-output/2025-04-29-run-ie6-on-win11/en/", "published_at": "2025-04-28T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75b1769183", "title": "Debug Hanging Programs with Thread- and Heap-Dumps", "url": "https://gamlor.info/posts-output/2025-03-28-stack-heap-debugging/en/", "published_at": "2025-03-27T23:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75b1dfaaf6", "title": "More Testing Tips With C#", "url": "https://gamlor.info/posts-output/2024-12-11-csharp-testing-stuff/en/", "published_at": "2024-12-10T23:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75b24fa7e4", "title": "Pitfalls with Mill Build", "url": "https://gamlor.info/posts-output/2024-09-27-downsides-mill/en/", "published_at": "2024-09-26T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75b2cafdc0", "title": "Circe JSON: Use JsonObject instead of cursors", "url": "https://gamlor.info/posts-output/2024-09-11-scala-circe-use-json-object/en/", "published_at": "2024-09-10T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75b36f21cd", "title": "Mill Build for Java Devs", "url": "https://gamlor.info/posts-output/2024-08-31-mill-for-java/en/", "published_at": "2024-08-04T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75b3e80e1d", "title": "Build Questions answered by Mill builds", "url": "https://gamlor.info/posts-output/2024-07-22-questions-answered/en/", "published_at": "2024-07-21T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75b4874bf5", "title": "Mill Basic Building Blocks", "url": "https://gamlor.info/posts-output/2024-07-15-mill-basics/en/", "published_at": "2024-07-14T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75b4b329bd", "title": "Whirlwind Tour of Mill Build", "url": "https://gamlor.info/posts-output/2024-06-10-mill-whirlwind-tour/en/", "published_at": "2024-06-09T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75b511fc2a", "title": "Intro to Mill Build: Pleasant Complex Builds", "url": "https://gamlor.info/posts-output/2024-06-05-mill-build/en/", "published_at": "2024-05-21T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75b52de386", "title": "JQuery: Always use dataType for $.ajax", "url": "https://gamlor.info/posts-output/2024-02-04-jquery-ajax-call-with-datatype/en/", "published_at": "2024-02-03T23:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75b5e8c63e", "title": "One Billion Row Challenge: Learned So Far", "url": "https://gamlor.info/posts-output/2024-01-12-one-billion-row-challenge/en/", "published_at": "2024-01-11T23:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75b6e494d5", "title": "Copy, Paste and Edit Java to C# after 20 years", "url": "https://gamlor.info/posts-output/2023-12-02-paste-and-edit-to-csharp/en/", "published_at": "2023-12-01T23:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75b7962aaa", "title": "Java: Native Memory Handling is Getting Easier", "url": "https://gamlor.info/posts-output/2023-05-15-native-memory/en/", "published_at": "2023-05-14T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75b8270803", "title": "Mysterious Hanging Java Process", "url": "https://gamlor.info/posts-output/2023-04-15-mysterious-hang/en/", "published_at": "2023-04-14T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75b83fbda6", "title": "Test Containers for C#/.NET", "url": "https://gamlor.info/posts-output/2022-12-22-test-containers/en/", "published_at": "2022-12-21T23:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75b876ba73", "title": "Redis Clone: Reducing Memory Pressure", "url": "https://gamlor.info/posts-output/2022-09-13-reducing-memory-usage/en/", "published_at": "2022-09-12T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75b8c7f16e", "title": "Creating Pseudo Terminals for Test Scripts with tmux", "url": "https://gamlor.info/posts-output/2022-08-29-using-tmux-for-pty-scripts/en/", "published_at": "2022-08-28T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75b8e9cf2f", "title": "Redis Clone: Improved IO Control", "url": "https://gamlor.info/posts-output/2022-08-27-redis-clone-optmize-io/en/", "published_at": "2022-08-26T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75b953bb58", "title": "Redis Clone: Virtual Threads (Project Loom)", "url": "https://gamlor.info/posts-output/2022-08-12-redis-clone-virtual-threads-aka-project-loom/en/", "published_at": "2022-08-11T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75ba14b8d2", "title": "Profiling the Naive Redis Clone", "url": "https://gamlor.info/posts-output/2022-07-29-redis-clone-profiling/en/", "published_at": "2022-07-28T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75ba42d55d", "title": "Building a (Java-) Redis Clone, naively", "url": "https://gamlor.info/posts-output/2022-07-04-java-redis-clone/en/", "published_at": "2022-07-03T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75ba880d6d", "title": "Model Results/States with Java 17's Records", "url": "https://gamlor.info/posts-output/2022-06-01-java-advanced-enums/en/", "published_at": "2022-05-23T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75bb85558e", "title": "Implement your own Clojure Atoms", "url": "https://gamlor.info/posts-output/2022-02-20-your-own-clojure-atoms/en/", "published_at": "2022-02-19T23:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75bbbdd3c0", "title": "Advanced Features of Clojure Atoms", "url": "https://gamlor.info/posts-output/2021-12-19-extended-clojure-atoms/en/", "published_at": "2021-12-18T23:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75bc626c71", "title": "Automated Tests Advice, C# Edition", "url": "https://gamlor.info/posts-output/2021-12-13-my-common-testing-advice/en/", "published_at": "2021-12-12T23:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75bcc54fee", "title": "Basic Process information via /proc", "url": "https://gamlor.info/posts-output/2021-07-18-prog-fs/en/", "published_at": "2021-07-17T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75bd7917c3", "title": "Tests Not Running: JUnit 5, Maven and Spring Boot Magic", "url": "https://gamlor.info/posts-output/2021-06-13-tests-not-running/en/", "published_at": "2021-06-12T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75bd8300d3", "title": "When a Pipe isn't enough: TTYs in Java", "url": "https://gamlor.info/posts-output/2021-05-29-tty-in-java/en/", "published_at": "2021-05-28T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75bda22be2", "title": "On Linux (Unix?) You Can Make Up a User ID On The Fly", "url": "https://gamlor.info/posts-output/2021-05-04-linux-on-to-fly-users/en/", "published_at": "2021-05-03T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75be50feb1", "title": "Make a Test Fail First", "url": "https://gamlor.info/posts-output/2021-04-18-let-tests-fail/en/", "published_at": "2021-04-17T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75be667545", "title": "Adding an Extra Indirection to Enable Code Reloading in Clojure/Java Interop Code", "url": "https://gamlor.info/posts-output/2021-02-07-clojure-java-reloading/en/", "published_at": "2021-02-13T23:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75be8da672", "title": "C# Updates for the Absent C# Developer (C# 6.0 and newer overview)", "url": "https://gamlor.info/posts-output/2020-12-05-csharp-for-the-absent/en/", "published_at": "2020-12-04T23:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75bf5454fc", "title": "127.0.0.0/8 IP Range Is All Loopback", "url": "https://gamlor.info/posts-output/2020-09-26-local-ips/en/", "published_at": "2020-09-25T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75bff9fd48", "title": "Time is Complicated: java.time", "url": "https://gamlor.info/posts-output/2020-06-06-java-time/en/", "published_at": "2020-07-11T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75c0bee209", "title": "Time Does Not Flow Evenly", "url": "https://gamlor.info/posts-output/2020-05-24-time-stamps-are-not-simple/en/", "published_at": "2020-05-30T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75c179167b", "title": "Terminal Utilities I Often Use", "url": "https://gamlor.info/posts-output/2020-05-16-unixy-tools/en/", "published_at": "2020-05-16T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75c24a60ad", "title": "Slack Java API and the Data Non Problem", "url": "https://gamlor.info/posts-output/2020-05-03-slack-api-and-data-non-problem/en/", "published_at": "2020-05-08T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75c2819bac", "title": "Keep Time Explicit", "url": "https://gamlor.info/posts-output/2020-05-01-keep-time-explicit/en/", "published_at": "2020-05-01T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75c2b4233c", "title": "C# Loves Code Patterns", "url": "https://gamlor.info/posts-output/2019-12-11-csharp-structural-pattern/en/", "published_at": "2019-12-10T23:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75c2ba6f19", "title": "Synchronizing File Writes", "url": "https://gamlor.info/posts-output/2019-11-27-write-coordination/en/", "published_at": "2019-11-26T23:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75c2c6008c", "title": "FileChannel Closes When Interrupted", "url": "https://gamlor.info/posts-output/2019-11-13-file-channel-closes-when-interrupted/en/", "published_at": "2019-11-11T23:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75c39a4a85", "title": "MVStore: Accessing Old Versions", "url": "https://gamlor.info/posts-output/2019-11-06-mv-store-old-versions/en/", "published_at": "2019-11-05T23:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75c44bfbc7", "title": "Bastel Proxy: HTTPS and reverse proxy for development environments", "url": "https://gamlor.info/posts-output/2019-11-05-introducing-bastel-proxy/en/", "published_at": "2019-11-04T23:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75c47dbbd0", "title": "OpenJDK's Flight-Recorder and Mission Control", "url": "https://gamlor.info/posts-output/2019-11-03-openjdk-mission-control/en/", "published_at": "2019-11-03T23:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75c4e23599", "title": "Mystery Jetty Threads Due To Failed Startup", "url": "https://gamlor.info/posts-output/2019-10-30-jetty-mystery-threads/en/", "published_at": "2019-10-29T23:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75c56a34d5", "title": "Create HTTPS Certificates in Java with Bouncy Castle", "url": "https://gamlor.info/posts-output/2019-10-29-java-create-certs-bouncy/en/", "published_at": "2019-10-28T23:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75c588760f", "title": "Create HTTPS Certificates in Java: The unsafe way", "url": "https://gamlor.info/posts-output/2019-10-28-java-create-certs-unsafe/en/", "published_at": "2019-10-27T23:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75c5abf734", "title": "Secret SQL Weapon: Indexed (or Materialized) Views", "url": "https://gamlor.info/posts-output/2019-10-27-secret-weapon-indexed-views/en/", "published_at": "2019-10-26T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75c63d5f44", "title": "Clojure defonce: Keep Your Apps State", "url": "https://gamlor.info/posts-output/2019-10-25-clojure-defonce/en/", "published_at": "2019-10-24T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75c66a112e", "title": "Compiling Java Classes with Clojure Deps", "url": "https://gamlor.info/posts-output/2019-10-24-compile-java-with-clojure-deps/en/", "published_at": "2019-10-23T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75c6a31d86", "title": "Java, Let me use the damn FileDescriptor!", "url": "https://gamlor.info/posts-output/2019-10-15-java-file-descriptor-rant/en/", "published_at": "2019-10-14T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75c6dbfdb5", "title": "Intro to MVStore, an embedded key value store", "url": "https://gamlor.info/posts-output/2019-09-23-mv-store-intro/en/", "published_at": "2019-09-24T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75c7406a2f", "title": "Missing SNI with Java's HTTPS client", "url": "https://gamlor.info/posts-output/2019-09-05-java-client-sni/en/", "published_at": "2019-09-05T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75c8360246", "title": "Good Bye Turbo.net", "url": "https://gamlor.info/posts-output/2019-09-04-good-bye-turbonet/en/", "published_at": "2019-09-03T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75c8808872", "title": "Korean Hangul Stopped Working After IBus Update to 1.5.18? A Work Around", "url": "https://gamlor.info/posts-output/2018-05-06-hangeul-not-working/en/", "published_at": "2018-05-05T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75c9168612", "title": "IBus 1.5.18 업데이트 후에는 한글 멈췄어요? 임시 해결이 있어요", "url": "https://gamlor.info/posts-output/2018-05-06-hangeul-not-working/kr/", "published_at": "2018-05-04T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75c95c146e", "title": "Async Database Connector for Java (ADBCJ) on JCenter", "url": "https://gamlor.info/posts-output/2017-10-24-adbcj-on-jcenter/en/", "published_at": "2017-10-23T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75ca48607d", "title": "Need a CDN? Try out edgemesh.com", "url": "https://gamlor.info/posts-output/2017-10-06-edgemesh-cdn/en/", "published_at": "2017-10-05T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75cb2f3c81", "title": "CDN 필요하면 edgemesh.com 사용해보세요", "url": "https://gamlor.info/posts-output/2017-10-06-edgemesh-cdn/kr/", "published_at": "2017-10-04T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75cbe8a296", "title": "Adding Timestamp to Logs", "url": "https://gamlor.info/posts-output/2017-09-27-add-timestamps-on-logs/en/", "published_at": "2017-09-26T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75cce42605", "title": "Java’s Enum.values() Hidden Allocations", "url": "https://gamlor.info/posts-output/2017-08-31-java-enum-hidden-allocation/en/", "published_at": "2017-08-30T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75cdd7a980", "title": "Deploying JVM in tiny containers, be careful!", "url": "https://gamlor.info/posts-output/2017-04-25-jvm-in-containers/en/", "published_at": "2017-04-24T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75cebf77e5", "title": "JVM는 작은 컨테이너 안에 배포하면 주의!", "url": "https://gamlor.info/posts-output/2017-04-25-jvm-in-containers/kr/", "published_at": "2017-04-23T22:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75cf218c17", "title": "Joyent’s Manta. Store and Compute", "url": "https://gamlor.info/posts-output/2017-02-12-manta-store-and-compute/en/", "published_at": "2017-02-11T23:00:00+00:00" }, { "id": "01a0877b-7ce2-7220-950c-ef75cf2a7d05", "title": "Joyent의 만타 (Manta): 저장하고 계산하다", "url": "https://gamlor.info/posts-output/2017-02-12-manta-store-and-compute/kr/", "published_at": "2017-02-10T23:00:00+00:00" } ] posts Claim your blog
Back to gamlor.info
Blog · corpus.blog/blogs/gamlor.info/posts

gamlor.info

gamlor.info

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017