41554 blogs · [ { "id": "01a0878a-f6c4-7384-b0cf-06b518e24e8f", "title": "Unified Filesystem Operations with Python's Pathlib Module", "url": "https://janert.me/blog/2026/unified-filesystem-operations-with-pythons-pathlib-module/", "published_at": "2026-08-25T00:17:07+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b51926f63a", "title": "Useful Packages for Buffer and File Handling in Emacs", "url": "https://janert.me/blog/2026/useful-packages-for-buffer-and-file-handling-in-emacs/", "published_at": "2026-08-17T02:30:17+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b519c07384", "title": "A Transient Mode for Safer Filesystem Operations", "url": "https://janert.me/blog/2026/a-transient-mode-for-safer-filesystem-operations/", "published_at": "2026-08-15T15:27:50+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b519e3077d", "title": "Building Regular Expressions with Emacs", "url": "https://janert.me/blog/2026/building-regular-expressions-with-emacs/", "published_at": "2026-08-12T16:08:03+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b51a87a03a", "title": "Upgrading to Mathjax 4", "url": "https://janert.me/blog/2026/upgrading-to-mathjax-4/", "published_at": "2026-07-08T00:24:21+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b51aca4fc1", "title": "The polyfill.io Sign-In Phishing Incident on janert.me", "url": "https://janert.me/blog/2026/the-polyfill.io-sign-in-phishing-incident-on-janert.me/", "published_at": "2026-06-18T16:58:33+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b51bb6ba10", "title": "Schrödinger Equation in a Wedge Potential: Exact and WKB", "url": "https://janert.me/blog/2026/schr%C3%B6dinger-equation-in-a-wedge-potential-exact-and-wkb/", "published_at": "2026-04-27T14:14:21+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b51c943f0d", "title": "Two Gmail Tricks", "url": "https://janert.me/blog/2026/two-gmail-tricks/", "published_at": "2026-04-25T15:51:28+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b51d5fa83c", "title": "An Ideal Math Curriculum for Physics Students", "url": "https://janert.me/blog/2026/an-ideal-math-curriculum-for-physics-students/", "published_at": "2026-04-03T11:52:43+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b51dce1ab3", "title": "A Simple Approximation for the Airy Function", "url": "https://janert.me/blog/2026/a-simple-approximation-for-the-airy-function/", "published_at": "2026-04-03T00:29:39+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b51e54578f", "title": "Exploring SymPy or: What, Really, is the Purpose of Computer Algebra Systems?", "url": "https://janert.me/blog/2026/exploring-sympy-or-what-really-is-the-purpose-of-computer-algebra-systems/", "published_at": "2026-03-28T12:59:13+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b51eddb9be", "title": "Case Study: Singular Perturbation Theory with SymPy", "url": "https://janert.me/guides/case-study-singular-perturbation-theory-with-sympy/", "published_at": "2026-03-18T14:55:51+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b51f61a8f6", "title": "The Feynman Lectures: Online", "url": "https://janert.me/blog/2026/the-feynman-lectures-online/", "published_at": "2026-03-06T15:51:00+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b51ff1323d", "title": "Hot Chocolate", "url": "https://janert.me/blog/2026/hot-chocolate/", "published_at": "2026-01-23T04:24:49+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b520950b94", "title": "Go's Named Types aren't Types", "url": "https://janert.me/blog/2025/gos-named-types-arent-types/", "published_at": "2025-10-10T22:07:52+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b5213fc3d2", "title": "JSON/REST from Scratch: A Guide to Go's net/http Package", "url": "https://janert.me/guides/golang-rest-from-scratch/", "published_at": "2025-10-10T14:26:47+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b521512443", "title": "Ist Dubslav von Stechlin wirklich Fontane's Selbst-Portrait?", "url": "https://janert.me/blog/2025/ist-dubslav-von-stechlin-wirklich-fontanes-selbst-portrait/", "published_at": "2025-10-09T16:29:35+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b521a967e0", "title": "Go: Reading a Plain-Text File", "url": "https://janert.me/blog/2025/go-reading-a-plain-text-file/", "published_at": "2025-10-06T16:52:18+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b52245cc46", "title": "Some Useful Latex Packages", "url": "https://janert.me/blog/2025/some-useful-latex-packages/", "published_at": "2025-08-23T20:36:12+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b522830f9b", "title": "Kästner's verlassene Kinder", "url": "https://janert.me/blog/2025/k%C3%A4stners-verlassene-kinder/", "published_at": "2025-08-22T15:41:04+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b522ff08de", "title": "Traffic Shaping with the Token Bucket Algorithm", "url": "https://janert.me/blog/2025/traffic-shaping-with-the-token-bucket-algorithm/", "published_at": "2025-06-02T20:17:56+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b523371f45", "title": "The Functional Equation of the Logarithm", "url": "https://janert.me/blog/2025/the-functional-equation-of-the-logarithm/", "published_at": "2025-06-02T02:26:26+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b5237d9965", "title": "Book Review: Matrix Analysis and Applied Linear Algebra, 2nd Edition", "url": "https://janert.me/blog/2025/book-review-matrix-analysis-and-applied-linear-algebra-2nd-edition/", "published_at": "2025-05-19T16:54:58+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b523945d5f", "title": "The Irrationality of e", "url": "https://janert.me/blog/2025/the-irrationality-of-e/", "published_at": "2025-05-19T12:04:51+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b52442d353", "title": "Go is weird: When is a Go slice empty?", "url": "https://janert.me/blog/2025/go-is-weird-when-is-a-go-slice-empty/", "published_at": "2025-05-19T01:06:13+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b5252390d0", "title": "Ein literarisches Portrait Bernhard von Lepels?", "url": "https://janert.me/blog/2025/ein-literarisches-portrait-bernhard-von-lepels/", "published_at": "2025-05-18T16:21:43+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b525df32e2", "title": "Absence of Evidence is not Evidence of Absence", "url": "https://janert.me/blog/2024/absence-of-evidence-is-not-evidence-of-absence/", "published_at": "2024-12-30T14:04:34+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b5267c8397", "title": "Locking Performance for Concurrent Updates to an In-Memory Cache in Go", "url": "https://janert.me/blog/2024/locking-performance-for-concurrent-updates-to-an-in-memory-cache-in-go/", "published_at": "2024-12-19T01:04:36+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b526f0d16d", "title": "An Intuitive Explanation for the Birthday Paradox", "url": "https://janert.me/blog/2024/an-intuitive-explanation-for-the-birthday-paradox/", "published_at": "2024-12-01T22:41:48+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b527347929", "title": "Go is Weird: Strings", "url": "https://janert.me/blog/2024/go-is-weird-strings/", "published_at": "2024-11-08T02:06:07+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b527f721f2", "title": "Understanding Go's context Package", "url": "https://janert.me/blog/2024/understanding-gos-context-package/", "published_at": "2024-10-06T17:46:16+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b528163dd0", "title": "Computing the Normal Distribution Function", "url": "https://janert.me/blog/2024/computing-the-normal-distribution-function/", "published_at": "2024-09-21T13:09:22+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b5289aa128", "title": "Typing Speed", "url": "https://janert.me/blog/2024/typing-speed/", "published_at": "2024-07-06T02:11:48+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b529324b04", "title": "Better Highlighting for the Emacs Region", "url": "https://janert.me/blog/2024/better-highlighting-for-the-emacs-region/", "published_at": "2024-07-01T02:00:01+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b52992ff4b", "title": "Compiling Emacs 29 for Debian/Ubuntu/Mint", "url": "https://janert.me/blog/2024/compiling-emacs-29-for-debian/ubuntu/mint/", "published_at": "2024-06-26T15:36:02+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b529bc41d1", "title": "Changing Cursor Shape to Indicate Emacs Minor Modes", "url": "https://janert.me/blog/2024/changing-cursor-shape-to-indicate-emacs-minor-modes/", "published_at": "2024-06-22T23:49:18+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b52a8fbff9", "title": "Queueing and Occupancy: The Linear Case", "url": "https://janert.me/blog/2024/queueing-and-occupancy-the-linear-case/", "published_at": "2024-06-17T04:08:58+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b52accf5b0", "title": "Book Review: Linux Observability with BPF", "url": "https://janert.me/blog/2024/book-review-linux-observability-with-bpf/", "published_at": "2024-06-17T02:32:58+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b52b45fa8a", "title": "Terrain Generation: River Networks", "url": "https://janert.me/blog/2024/terrain-generation-river-networks/", "published_at": "2024-05-28T23:48:17+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b52c314f4c", "title": "Book Review: Learning eBPF", "url": "https://janert.me/blog/2024/book-review-learning-ebpf/", "published_at": "2024-05-27T16:34:08+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b52c5a87dc", "title": "Ants and Chips", "url": "https://janert.me/blog/2024/ants-and-chips/", "published_at": "2024-04-22T23:42:56+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b52d24644b", "title": "A Tool to Display Cumulative Disk Usage", "url": "https://janert.me/blog/2024/tool-to-display-cumulative-disk-usage/", "published_at": "2024-04-15T01:41:46+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b52d92da74", "title": "eBook Review: Mastering Emacs", "url": "https://janert.me/blog/2024/ebook-review-mastering-emacs/", "published_at": "2024-04-12T13:08:01+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b52e405d27", "title": "Total Eclipse 2024", "url": "https://janert.me/blog/2024/total-eclipse-2024/", "published_at": "2024-04-09T16:12:22+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b52ee57c22", "title": "Go is Weird", "url": "https://janert.me/blog/2024/go-is-weird/", "published_at": "2024-03-31T17:05:52+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b52f219ee3", "title": "Who is Responsible for Writing Go Interfaces, Anyway?", "url": "https://janert.me/blog/2024/who-is-responsible-for-writing-go-interfaces-anyway/", "published_at": "2024-03-20T17:04:54+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b52f279cb1", "title": "Préparation du Poulet", "url": "https://janert.me/blog/2024/pr%C3%A9paration-du-poulet/", "published_at": "2024-03-10T17:02:19+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b530203ae8", "title": "Interfaces and the Handle/Body Idiom (continued)", "url": "https://janert.me/blog/2024/interfaces-and-the-handle/body-idiom-continued/", "published_at": "2024-03-07T16:59:49+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b53069d759", "title": "Indispensable Project Management Artifacts and Activities", "url": "https://janert.me/blog/2024/indispensable-project-management-artifacts-and-activities/", "published_at": "2024-02-26T20:54:34+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b53116c52c", "title": "Go Interfaces and the Handle/Body Idiom", "url": "https://janert.me/blog/2024/go-interfaces-and-the-handle-body-idiom/", "published_at": "2024-02-24T14:30:41+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b53180badc", "title": "Laplace's Theorem", "url": "https://janert.me/blog/2024/laplaces-theorem/", "published_at": "2024-02-01T13:01:32+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b53180bea4", "title": "Removable Drives on Linux: Convenience Options", "url": "https://janert.me/blog/2024/removable-drives-on-linux-convenience-options/", "published_at": "2024-01-27T15:56:06+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b5320dca54", "title": "A Mathematical Mystery", "url": "https://janert.me/blog/2024/a-mathematical-mystery/", "published_at": "2024-01-12T13:24:31+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b5322f593c", "title": "Heat Flow", "url": "https://janert.me/blog/2024/heat-flow/", "published_at": "2024-01-09T23:48:51+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b5327ee83a", "title": "A Guide to git: Three Essential Hidden Concepts", "url": "https://janert.me/blog/2023/a-guide-to-git-three-essential-hidden-concepts/", "published_at": "2023-12-29T11:50:47+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b5336525f2", "title": "Getting (g)it: A Case of Cognitive Dissonance", "url": "https://janert.me/guides/getting-git/", "published_at": "2023-12-28T13:05:44+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b53421ebab", "title": "Two Short Sorts", "url": "https://janert.me/blog/2023/two-short-sorts/", "published_at": "2023-12-20T02:40:25+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b53483fb08", "title": "If you want to go fast...", "url": "https://janert.me/blog/2023/if-you-want-to-go-fast.../", "published_at": "2023-12-19T13:05:44+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b535692695", "title": "SSG is not CMS - Or is it?", "url": "https://janert.me/blog/2023/ssg-is-not-cms-or-is-it/", "published_at": "2023-12-12T13:50:10+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b5363b014b", "title": "Linus on \"nice\" design decisions", "url": "https://janert.me/blog/2023/linus-on-nice-design-decisions/", "published_at": "2023-12-10T21:22:08+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b536ffa58f", "title": "Containers as Build Environments", "url": "https://janert.me/blog/2023/containers-as-build-environments/", "published_at": "2023-10-17T13:22:44+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b537706e72", "title": "Sampling from a Stream", "url": "https://janert.me/blog/2023/sampling-from-a-stream/", "published_at": "2023-10-14T14:06:48+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b53787fcb1", "title": "Random Shuffles", "url": "https://janert.me/blog/2023/random-shuffles/", "published_at": "2023-10-10T14:02:40+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b537fa5ff6", "title": "Nelder-Mead Simplex Optimization", "url": "https://janert.me/blog/2023/nelder-mead-simplex-optimization/", "published_at": "2023-09-12T21:19:03+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b538b2cf43", "title": "How Best to Capture Output from Scientific Calculations?", "url": "https://janert.me/blog/2023/how-best-to-capture-output-from-scientific-calculations/", "published_at": "2023-08-20T15:47:13+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b538dbeac3", "title": "Content Organization for Hugo", "url": "https://janert.me/blog/2023/content-organization-for-hugo/", "published_at": "2023-08-19T16:35:42+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b539b475a4", "title": "HTTP Client and Server in Go", "url": "https://janert.me/blog/2023/http-client-and-server-in-go/", "published_at": "2023-08-18T16:28:49+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b53aa85da0", "title": "QR Codes", "url": "https://janert.me/blog/2023/qr-codes/", "published_at": "2023-07-23T15:16:13+00:00" }, { "id": "01a0878a-f6c4-7384-b0cf-06b53af45feb", "title": "Transferring Files in a Local Linux Network", "url": "https://janert.me/blog/2023/transferring-files-in-a-local-linux-network/", "published_at": "2023-06-19T22:25:28+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb126a20896", "title": "Rail66 - 2023 Time Trial", "url": "https://janert.me/blog/2023/rail66-2023-time-trial/", "published_at": "2023-06-03T21:23:14+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb1272df6e5", "title": "Open Questions in Resource Allocation and Scheduling without Costs", "url": "https://janert.me/blog/2023/open-questions-in-resource-allocation-and-scheduling-without-costs/", "published_at": "2023-05-24T10:42:49+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb12805392d", "title": "Dirac's Delta as Weight Function", "url": "https://janert.me/blog/2023/diracs-delta-as-weight-function/", "published_at": "2023-03-10T18:47:22+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb128e58300", "title": "The Pyglet Game Library", "url": "https://janert.me/blog/2023/pyglet-game-library/", "published_at": "2023-01-11T18:17:08+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb1295b8179", "title": "Takeover: A Turn-Based Strategy Game", "url": "https://janert.me/blog/2023/takeover-turn-based-strategy-game/", "published_at": "2023-01-10T04:59:12+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb129ed0fd1", "title": "Bridson's Blue Noise Algorithm Examined", "url": "https://janert.me/blog/2022/bridsons-blue-noise-algorithm-examined/", "published_at": "2022-12-28T23:02:11+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb12a906238", "title": "Hidden Markov Models", "url": "https://janert.me/blog/2022/hidden-markov-models/", "published_at": "2022-12-08T21:25:48+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb12ae09e2c", "title": "Jamstack Reconsidered", "url": "https://janert.me/blog/2022/jamstack-reconsidered/", "published_at": "2022-12-07T19:09:21+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb12bac1833", "title": "The Newsvendor Problem", "url": "https://janert.me/blog/2022/newsvendor-problem.md/", "published_at": "2022-12-02T00:15:06+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb12c59cff7", "title": "Read Again: The Art of UNIX Programming by Eric S. Raymond", "url": "https://janert.me/blog/2022/reviewed-the-art-of-unix-programming/", "published_at": "2022-12-01T00:03:22+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb12cf78732", "title": "Command Line Arguments with Python's Argparse Module", "url": "https://janert.me/blog/2022/command-line-arguments-with-pythons-argparse/", "published_at": "2022-11-11T18:22:33+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb12df71a55", "title": "A Comparison of Pixel-Art Scalers", "url": "https://janert.me/blog/2022/pixel-art-scalers/", "published_at": "2022-11-11T03:16:57+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb12ea229af", "title": "A Guide to Running GUI Applications in a Docker Container", "url": "https://janert.me/guides/running-gui-applications-in-a-docker-container/", "published_at": "2022-09-30T15:40:54+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb12f6c4452", "title": "In Praise of Pic (and pikchr)", "url": "https://janert.me/guides/praise-of-pic/", "published_at": "2022-09-26T15:40:54+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb12f890f50", "title": "Running a GUI Application in a Docker Container: Users, Permissions, Dockerfile", "url": "https://janert.me/blog/2022/running-a-gui-application-in-a-docker-container2/", "published_at": "2022-09-23T15:27:27+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb12fbd09b8", "title": "A Fix for Pysolfc on Linux Mint 21 Vanessa", "url": "https://janert.me/blog/2022/fixing-pysolfc-on-linux-mint-21-vanessa/", "published_at": "2022-09-21T19:35:42+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb12fe10a2a", "title": "Running a GUI Application in a Docker Container", "url": "https://janert.me/blog/2022/running-a-gui-application-in-a-docker-container1/", "published_at": "2022-09-19T15:27:27+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb130c0ed8c", "title": "Using Xsession to Set an Environment Variable Without a Shell", "url": "https://janert.me/blog/2022/using-xsession-to-set-an-environment-variable-without-a-shell/", "published_at": "2022-09-13T23:13:15+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb13136a819", "title": "A Look at the HDF5 Format", "url": "https://janert.me/blog/2022/looking-at-hdf5/", "published_at": "2022-08-16T20:36:12+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb1323208c3", "title": "The Heilmeier Catechism", "url": "https://janert.me/blog/2022/the-heilmeier-catechism/", "published_at": "2022-07-29T20:36:12+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb13232eb43", "title": "A Strictly Geometrical Proof of the Altitude Theorem", "url": "https://janert.me/blog/2022/a-strictly-geometrical-proof-of-the-altitude-theorem/", "published_at": "2022-06-20T15:37:22+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb13264ed90", "title": "Two Further Hugo Gotchas", "url": "https://janert.me/blog/2022/two-further-hugo-gotchas/", "published_at": "2022-06-14T18:10:42+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb1331eb5a6", "title": "The Diamond-Square Algorithm for Terrain Generation", "url": "https://janert.me/blog/2022/the-diamond-square-algorithm-for-terrain-generation/", "published_at": "2022-06-10T08:03:33+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb133e32ff2", "title": "Solving a 1993 Programming Challenge in 2022 (Updated)", "url": "https://janert.me/blog/2022/solving-a-1993-programming-challenge-in-2022/", "published_at": "2022-06-05T20:40:54+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb134d09793", "title": "On Web Design", "url": "https://janert.me/blog/2022/webpage-design/", "published_at": "2022-03-30T02:57:57+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb135b083b4", "title": "\"That's funny...\"", "url": "https://janert.me/blog/2022/thats-funny/", "published_at": "2022-03-02T07:18:12+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb1366a04bf", "title": "Unix Tools Today", "url": "https://janert.me/blog/2022/unix-tools-today/", "published_at": "2022-02-02T06:54:12+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb136ffe99a", "title": "A Hugo Survival Guide", "url": "https://janert.me/guides/hugo-survival-guide/", "published_at": "2022-01-02T03:43:42+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb1376d5975", "title": "Announcement: Hugo Survival Guide", "url": "https://janert.me/blog/2022/hugo-survival-guide/", "published_at": "2022-01-02T01:37:47+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb137e55edf", "title": "Book Review: Two Books on Analytic Number Theory", "url": "https://janert.me/blog/2021/reviewed-two-books-on-analytic-number-theory/", "published_at": "2021-12-02T03:58:28+00:00" }, { "id": "01a0878a-f6c5-71da-8d9e-bcb138bf6b7b", "title": "Markdown and Mathjax", "url": "https://janert.me/blog/2021/markdown-and-mathjax/", "published_at": "2021-10-01T20:38:50+00:00" } ] posts Claim your blog
Back to janert.me
Blog · corpus.blog/blogs/janert.me/posts

janert.me

janert.me

2026

2025

2024

2023

2022

2021