41554 blogs · [ { "id": "01a08750-095b-72f5-9b27-92e68a88d8f2", "title": "Debugging duplicates in paginated entries", "url": "https://blog.metters.dev/posts/debugging-duplicates-paginated-query-result-jpa/", "published_at": "2026-08-28T00:00:00+00:00" }, { "id": "01a08750-095c-723a-b46e-4e75abf1d878", "title": "Second line of defence against phishing: labels", "url": "https://blog.metters.dev/posts/label-publicly-visible-email-address/", "published_at": "2025-12-04T00:00:00+00:00" }, { "id": "01a08750-095b-72f5-9b27-92e68fb34fee", "title": "Getting your GitHub Action detected", "url": "https://blog.metters.dev/posts/getting-github-actions-detected/", "published_at": "2025-09-30T00:00:00+00:00" }, { "id": "01a08750-095b-72f5-9b27-92e68aec023e", "title": "Fully automated deployments with GitHub Action workflows", "url": "https://blog.metters.dev/posts/deployment-static-artefact-via-github-workflow/", "published_at": "2025-09-25T00:00:00+00:00" }, { "id": "01a08750-0959-7392-8c7f-0d561f0ee75e", "title": "Chinese characters have colours", "url": "https://blog.metters.dev/posts/chinese-characters-have-colours/", "published_at": "2025-09-05T00:00:00+00:00" }, { "id": "01a08750-095b-72f5-9b27-92e68bc2ffa3", "title": "Deploying your static site using rsync on your laptop", "url": "https://blog.metters.dev/posts/deployment-static-artefact-via-rsync/", "published_at": "2025-07-13T00:00:00+00:00" }, { "id": "01a08750-0965-7088-960a-c5f7b6abf0ff", "title": "Verkehr in China vs. Deutschland", "url": "https://blog.metters.dev/posts/verkehr-in-china/", "published_at": "2025-06-06T00:00:00+00:00" }, { "id": "01a08750-0958-7042-8b34-b41e3280be77", "title": "Access frontmatter values in Astro markdown", "url": "https://blog.metters.dev/posts/access-frontmatter-in-astro-markdown/", "published_at": "2025-06-01T00:00:00+00:00" }, { "id": "01a08750-095c-723a-b46e-4e75acca06e6", "title": "Lessons learnt from HSK3/HSKK exams", "url": "https://blog.metters.dev/posts/lessons-learnt-hsk3-hskk-exams/", "published_at": "2025-04-18T00:00:00+00:00" }, { "id": "01a08750-095c-723a-b46e-4e75ad3d7dfb", "title": "Looking back on 2+ years after ditching (most of) Google", "url": "https://blog.metters.dev/posts/looking-back-on-two-plus-years-without-gmail/", "published_at": "2025-03-29T00:00:00+00:00" }, { "id": "01a08750-095c-723a-b46e-4e75a9787973", "title": "TIL about HTML5 ruby tag", "url": "https://blog.metters.dev/posts/html-ruby-tag/", "published_at": "2025-02-15T00:00:00+00:00" }, { "id": "01a08750-0965-7088-960a-c5f7b5d0d5ce", "title": "Using LLMs to generate test data quickly", "url": "https://blog.metters.dev/posts/using-llms-to-generate-test-data/", "published_at": "2025-01-08T00:00:00+00:00" }, { "id": "01a08750-095b-72f5-9b27-92e68d3c7a64", "title": "Niemand braucht einen tiptoi Manager", "url": "https://blog.metters.dev/posts/download-tiptoi-without-manager/", "published_at": "2024-12-17T00:00:00+00:00" }, { "id": "01a08750-0965-7088-960a-c5f7b7adb98c", "title": "Reisen mit dem Zug in China vs. Deutschland", "url": "https://blog.metters.dev/posts/zugreisen-in-china/", "published_at": "2024-11-03T00:00:00+00:00" }, { "id": "01a08750-0965-7088-960a-c5f7b481fb7d", "title": "vorname.nachname@gmail.com - seems legit", "url": "https://blog.metters.dev/posts/totally-legit-email-address-vorname-nachname/", "published_at": "2024-07-08T00:00:00+00:00" }, { "id": "01a08750-0965-7088-960a-c5f7b54d8545", "title": "Note-taking: Bringing back my notebook", "url": "https://blog.metters.dev/posts/using-a-notebook-during-meetings/", "published_at": "2024-06-13T00:00:00+00:00" }, { "id": "01a08750-0959-7392-8c7f-0d561ec485a5", "title": "Configuring Client-Side Routing for React SPA with Caddy", "url": "https://blog.metters.dev/posts/caddy-routing-and-reload-safety-with-csr-on-spa/", "published_at": "2024-04-28T00:00:00+00:00" }, { "id": "01a08750-095c-723a-b46e-4e75aab144bd", "title": "TIL about Jenkins Replay Feature", "url": "https://blog.metters.dev/posts/jenkins-replay-feature/", "published_at": "2024-03-01T00:00:00+00:00" }, { "id": "01a08750-095b-72f5-9b27-92e68de78dea", "title": "Forwarding your GitHub Pages link to custom domain", "url": "https://blog.metters.dev/posts/forward-github-page-custom-domain/", "published_at": "2023-11-29T00:00:00+00:00" }, { "id": "01a08750-095b-72f5-9b27-92e690e0215d", "title": "TIL about git branch name conflicts with directories", "url": "https://blog.metters.dev/posts/git-branch-name-conflict/", "published_at": "2023-11-25T00:00:00+00:00" }, { "id": "01a08750-095c-723a-b46e-4e75a8895d77", "title": "Self-host a static website in the cloud", "url": "https://blog.metters.dev/posts/how-to-self-host-static-website-cloud-setup/", "published_at": "2023-09-26T00:00:00+00:00" }, { "id": "01a08750-0965-7088-960a-c5f7b49a6ff0", "title": "Jenkins Pipeline insight: Trim shell command outputs", "url": "https://blog.metters.dev/posts/trim-command-outputs-before-storing-in-variables/", "published_at": "2023-08-18T00:00:00+00:00" }, { "id": "01a08750-095b-72f5-9b27-92e68edc8d3f", "title": "Getting DNS hijacked", "url": "https://blog.metters.dev/posts/getting-dns-hijacked/", "published_at": "2023-05-10T00:00:00+00:00" }, { "id": "01a08750-095b-72f5-9b27-92e69049a7cb", "title": "Git switch to previous branch", "url": "https://blog.metters.dev/posts/git-alias-previous-branch/", "published_at": "2023-04-22T00:00:00+00:00" }, { "id": "01a08750-0965-7088-960a-c5f7af325494", "title": "Goodbye Hexo, hello Astro!", "url": "https://blog.metters.dev/posts/migrating-to-astro/", "published_at": "2023-04-17T00:00:00+00:00" }, { "id": "01a08750-0965-7088-960a-c5f7b6cf741a", "title": "Der \"Nachweis zur Erlangung des Bonus beim Zahnersatz\"", "url": "https://blog.metters.dev/posts/zahnarzt-bonusheft/", "published_at": "2023-03-15T00:00:00+00:00" }, { "id": "01a08750-095b-72f5-9b27-92e68a25eff5", "title": "TIL about Kotlin builder functions", "url": "https://blog.metters.dev/posts/collection-builder-functions-kotlin/", "published_at": "2023-03-14T00:00:00+00:00" }, { "id": "01a08750-0965-7088-960a-c5f7b229b350", "title": "(Self-hosted) Pizzateig Grundrezept", "url": "https://blog.metters.dev/posts/self-hosted-pizzateig-grundrezept/", "published_at": "2023-03-04T00:00:00+00:00" }, { "id": "01a08750-0965-7088-960a-c5f7afbe5ff4", "title": "Reading official documentation first", "url": "https://blog.metters.dev/posts/official-documentation-first/", "published_at": "2023-01-22T00:00:00+00:00" }, { "id": "01a08750-095c-723a-b46e-4e75ab496fc9", "title": "TIL about @JvmOverloads annotation", "url": "https://blog.metters.dev/posts/jvmoverloads-annotation/", "published_at": "2022-12-18T00:00:00+00:00" }, { "id": "01a08750-095c-723a-b46e-4e75aa493c9f", "title": "Lessons learnt from introducing Lombok", "url": "https://blog.metters.dev/posts/introducing-lombok/", "published_at": "2022-12-15T00:00:00+00:00" }, { "id": "01a08750-0958-7042-8b34-b41e32e927df", "title": "Configuring Caddy to route to custom 404-page", "url": "https://blog.metters.dev/posts/caddy-404-routing/", "published_at": "2022-11-24T00:00:00+00:00" }, { "id": "01a08750-095c-723a-b46e-4e75ac28de29", "title": "Leaving Gmail behind", "url": "https://blog.metters.dev/posts/leaving-gmail-behind/", "published_at": "2022-11-23T00:00:00+00:00" }, { "id": "01a08750-095c-723a-b46e-4e75a93e9ba0", "title": "TIL about HTML5 details and summary tags", "url": "https://blog.metters.dev/posts/html-details-summary/", "published_at": "2022-11-08T01:00:00+00:00" }, { "id": "01a08750-095b-72f5-9b27-92e68c3e8eb6", "title": "Using ASCII art to document data structures in code", "url": "https://blog.metters.dev/posts/documenting-data-structures/", "published_at": "2022-11-08T00:00:00+00:00" }, { "id": "01a08750-0965-7088-960a-c5f7b15a8da5", "title": "Positive and negative lookaround", "url": "https://blog.metters.dev/posts/regex-lookaround/", "published_at": "2022-08-24T00:00:00+00:00" }, { "id": "01a08750-095c-723a-b46e-4e75a881a2d6", "title": "How to add a robots.txt file to your hexo blog", "url": "https://blog.metters.dev/posts/how-to-add-robots-txt-to-hexo-blog/", "published_at": "2022-07-09T00:00:00+00:00" }, { "id": "01a08750-095c-723a-b46e-4e75add65e34", "title": "How to manually roll back Jenkins plugins from command line", "url": "https://blog.metters.dev/posts/manual-rollback-jenkins-plugin/", "published_at": "2022-06-19T00:00:00+00:00" }, { "id": "01a08750-095b-72f5-9b27-92e689447c5f", "title": "Coding-Kata in der Praxis", "url": "https://blog.metters.dev/posts/coding-kata-2/", "published_at": "2022-05-10T00:00:00+00:00" }, { "id": "01a08750-0965-7088-960a-c5f7b3c22f94", "title": "Is \"sut\" a good variable name?", "url": "https://blog.metters.dev/posts/sut-naming/", "published_at": "2022-03-18T00:00:00+00:00" }, { "id": "01a08750-0965-7088-960a-c5f7b2c3da94", "title": "Lessons learnt from getting the last day of any month", "url": "https://blog.metters.dev/posts/sql-last-day-of-month/", "published_at": "2022-02-22T00:00:00+00:00" }, { "id": "01a08750-0965-7088-960a-c5f7b0659357", "title": "Alternative to high-end pc gaming: PCSXR emulator", "url": "https://blog.metters.dev/posts/pcsxr-emulator/", "published_at": "2022-02-17T00:00:00+00:00" }, { "id": "01a08750-095b-72f5-9b27-92e688715929", "title": "Coding-Kata - Nicht nur langweiliges Heruntergetippe!", "url": "https://blog.metters.dev/posts/coding-kata-1/", "published_at": "2022-02-12T00:00:00+00:00" }, { "id": "01a08750-095c-723a-b46e-4e75a81ca805", "title": "Hello, World!", "url": "https://blog.metters.dev/posts/hello-world/", "published_at": "2022-02-11T00:00:00+00:00" } ] posts Claim your blog
Back to blog.metters.dev
Blog · corpus.blog/blogs/blog.metters.dev/posts

blog.metters.dev

blog.metters.dev

2026

2025

2024

2023

2022