41554 blogs · [ { "id": "01a0e521-bef0-7360-8a49-08063fbfdc46", "title": "Carp in Glamorous Toolkit", "url": "https://blog.veitheller.de/Carp_in_Glamorous_Toolkit.html", "published_at": "2026-09-26T00:00:00+00:00" }, { "id": "01a0d74d-301b-7091-a99a-6703738f5a16", "title": "A First Futamura Projection", "url": "https://blog.veitheller.de/A_First_Futamura_Projection.html", "published_at": "2026-09-21T00:00:00+00:00" }, { "id": "01a0d74d-301b-7091-a99a-670373ffb504", "title": "A tale of two talks", "url": "https://blog.veitheller.de/talks.html", "published_at": "2026-09-14T00:00:00+00:00" }, { "id": "01a094db-998e-7183-b643-4a5bada30a3f", "title": "Metacarp", "url": "https://blog.veitheller.de/Metacarp.html", "published_at": "2026-09-12T00:00:00+00:00" }, { "id": "01a07d5d-626c-7316-acbf-28e059866fdc", "title": "I Wrote a Package Manager Ten Years Ago", "url": "https://blog.veitheller.de/I_Wrote_a_Package_Manager_Ten_Years_Ago.html", "published_at": "2026-09-07T00:00:00+00:00" }, { "id": "01a07d5d-626c-7316-acbf-28e059b3f141", "title": "Tracing np.add, all the way down", "url": "https://blog.veitheller.de/numpy.html", "published_at": "2026-09-02T00:00:00+00:00" }, { "id": "01a07d5d-626c-7316-acbf-28e05a98b1dd", "title": "Can one hear the gauge of a string?", "url": "https://blog.veitheller.de/gauge.html", "published_at": "2026-08-25T00:00:00+00:00" }, { "id": "01a07d5d-626c-7316-acbf-28e05b8003af", "title": "The Creation of Abulafia", "url": "https://blog.veitheller.de/abulafia.html", "published_at": "2026-08-16T00:00:00+00:00" }, { "id": "01a07d5d-626c-7316-acbf-28e05bd17740", "title": "A fully legible mind", "url": "https://blog.veitheller.de/legible.html", "published_at": "2026-08-13T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86bade04b5", "title": "Simple Sudoku Solvers SII, EVI: SQL", "url": "https://blog.veitheller.de/Simple_Sudoku_Solvers_SII,_EVI:_SQL.html", "published_at": "2026-08-11T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86bbc05a29", "title": "A More Immediate Intuitive Appeal", "url": "https://blog.veitheller.de/intuition.html", "published_at": "2026-08-04T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86bbea22f1", "title": "Mid-Training and the Middle-End", "url": "https://blog.veitheller.de/Mid-Training_and_the_Middle-End.html", "published_at": "2026-07-27T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86bca6b93b", "title": "Simple Sudoku Solvers SII, EV: Racket/miniKanren", "url": "https://blog.veitheller.de/Simple_Sudoku_Solvers_SII,_EV:_Racket_miniKanren.html", "published_at": "2026-07-23T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86bd05e912", "title": "Metrics, Life, and Money", "url": "https://blog.veitheller.de/metrics.html", "published_at": "2026-07-16T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86bd9a2608", "title": "Simple Sudoku Solvers SII, EIV: Smalltalk", "url": "https://blog.veitheller.de/Simple_Sudoku_Solvers_SII,_EIV:_Smalltalk.html", "published_at": "2026-07-08T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86be4aa8e0", "title": "Thinking about Legacies", "url": "https://blog.veitheller.de/legacy.html", "published_at": "2026-07-02T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86bed3d1b7", "title": "Triptych", "url": "https://blog.veitheller.de/triptych.html", "published_at": "2026-06-25T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86bf84f7f1", "title": "Generative art over the years", "url": "https://blog.veitheller.de/Generative_art_over_the_years.html", "published_at": "2026-03-30T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86c01337d7", "title": "Simple Sudoku Solvers SII, EIII: Forth", "url": "https://blog.veitheller.de/Simple_Sudoku_Solvers_SII,_EIII:_Forth.html", "published_at": "2026-03-21T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86c090bb00", "title": "Some notes on on-call", "url": "https://blog.veitheller.de/Some_notes_on_on-call.html", "published_at": "2026-03-16T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86c144ab3d", "title": "cfg: a simple configuration language", "url": "https://blog.veitheller.de/cfg.html", "published_at": "2026-03-09T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86c215a715", "title": "Lisa: Vibecoding a JIT-compiled language with cj", "url": "https://blog.veitheller.de/Lisa.html", "published_at": "2026-03-04T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86c265de1f", "title": "Simple Sudoku Solvers SII, EII: Carp", "url": "https://blog.veitheller.de/Simple_Sudoku_Solvers_SII,_EII:_Carp.html", "published_at": "2026-02-25T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86c2bbbabe", "title": "Impatient", "url": "https://blog.veitheller.de/Impatient.html", "published_at": "2026-02-24T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86c32b5f70", "title": "Renormalization, Lite: a powerful toy model", "url": "https://blog.veitheller.de/Renormalization,_Lite:_a_powerful_toy_model.html", "published_at": "2026-02-11T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86c364cd74", "title": "Practicing My Security Skill", "url": "https://blog.veitheller.de/Practicing_My_Security_Skill.html", "published_at": "2026-02-04T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86c420e7de", "title": "A quick apology to Dyalog APL", "url": "https://blog.veitheller.de/A_quick_apology_to_Dyalog_APL.html", "published_at": "2026-01-31T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86c4694a73", "title": "On Replaceability: Craft, Taste, and AI", "url": "https://blog.veitheller.de/On_Replaceability:_Craft,_Taste,_and_AI.html", "published_at": "2026-01-27T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86c54b9559", "title": "Simple Sudoku Solvers SII, EI: Dyalog APL", "url": "https://blog.veitheller.de/Simple_Sudoku_Solvers_SII,_EI:_Dyalog_APL.html", "published_at": "2026-01-20T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86c64489c8", "title": "My Revenue in 2025", "url": "https://blog.veitheller.de/My_Revenue_in_2025.html", "published_at": "2026-01-12T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86c73d0ce4", "title": "Scope and Experience", "url": "https://blog.veitheller.de/Scope_and_Experience.html", "published_at": "2026-01-05T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86c76d8db0", "title": "Two Hundred", "url": "https://blog.veitheller.de/Two_Hundred.html", "published_at": "2025-12-28T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86c7cf2f81", "title": "Building a PostgreSQL extension for fun and absolutely no profit", "url": "https://blog.veitheller.de/Building_a_PostgreSQL_extension_for_fun_and_absolutely_no_profit.html", "published_at": "2025-12-17T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86c88ca5f2", "title": "Seasonal Sudoku", "url": "https://blog.veitheller.de/Seasonal_Sudoku.html", "published_at": "2025-12-09T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86c93a3758", "title": "Some thoughts on performance reviews", "url": "https://blog.veitheller.de/Some_thoughts_on_performance_reviews.html", "published_at": "2025-11-30T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86c93c1547", "title": "Scheme Macros X: Meta macros", "url": "https://blog.veitheller.de/Scheme_Macros_X:_Meta_macros.html", "published_at": "2025-11-23T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86c974f126", "title": "Some notes on architecture diagrams", "url": "https://blog.veitheller.de/Some_notes_on_architecture_diagrams.html", "published_at": "2025-11-18T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86c9d74a81", "title": "Building a small language with cj", "url": "https://blog.veitheller.de/Building_a_small_language_with_cj.html", "published_at": "2025-11-09T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86cab8b524", "title": "Swimming", "url": "https://blog.veitheller.de/Swimming.html", "published_at": "2025-11-05T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86cb47c8cb", "title": "Six Simple Sudoku Solvers VI: Elixir", "url": "https://blog.veitheller.de/Six_Simple_Sudoku_Solvers_VI:_Elixir.html", "published_at": "2025-11-03T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86cb66e795", "title": "cj: Making a minimal, complete JIT", "url": "https://blog.veitheller.de/cj:_Making_a_minimal,_complete_JIT.html", "published_at": "2025-10-27T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86cbf5a87a", "title": "Feedback Sans Sandwiches", "url": "https://blog.veitheller.de/Feedback_Sans_Sandwiches.html", "published_at": "2025-10-24T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86ccf057e5", "title": "Six Simple Sudoku Solvers V: Rust", "url": "https://blog.veitheller.de/Six_Simple_Sudoku_Solvers_V:_Rust.html", "published_at": "2025-10-20T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86cd6265ae", "title": "Six Simple Sudoku Solvers IV: Haskell", "url": "https://blog.veitheller.de/Six_Simple_Sudoku_Solvers_IV:_Haskell.html", "published_at": "2025-10-13T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86cd998dda", "title": "Some notes on 1:1s", "url": "https://blog.veitheller.de/Some_notes_on_1_on_1s.html", "published_at": "2025-10-09T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86cded28c0", "title": "Git, self-hosted", "url": "https://blog.veitheller.de/Git_self_hosted.html", "published_at": "2025-10-08T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86ce65b524", "title": "Some notes about post-mortems", "url": "https://blog.veitheller.de/Some_notes_about_post-mortems.html", "published_at": "2025-10-06T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86cf318f3e", "title": "Coffee chats", "url": "https://blog.veitheller.de/Coffee_chats.html", "published_at": "2025-10-01T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86cfdc858c", "title": "Six Simple Sudoku Solvers III: Prolog", "url": "https://blog.veitheller.de/Six_Simple_Sudoku_Solvers_III:_Prolog.html", "published_at": "2025-09-29T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86d084eb7a", "title": "Secure-by-default over Manuals", "url": "https://blog.veitheller.de/Secure-by-default_over_Manuals.html", "published_at": "2025-09-19T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86d1403a75", "title": "Six Simple Sudoku Solvers II: Common Lisp", "url": "https://blog.veitheller.de/Six_Simple_Sudoku_Solvers_II:_Common_Lisp.html", "published_at": "2025-09-18T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86d151bbc2", "title": "Scheme Macros IX: Algebraic Data Types", "url": "https://blog.veitheller.de/Scheme_Macros_IX:_Algebraic_Data_Types.html", "published_at": "2025-09-16T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86d17ddd4a", "title": "Threat Modeling For the Rest of Us", "url": "https://blog.veitheller.de/Threat_Modeling_For_the_Rest_of_Us.html", "published_at": "2025-09-11T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86d183b5e5", "title": "Six Simple Sudoku Solvers I: Python (Reference)", "url": "https://blog.veitheller.de/Six_Simple_Sudoku_Solvers_I:_Python_(Reference).html", "published_at": "2025-09-08T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86d190fbde", "title": "What “good” looks like in a data room", "url": "https://blog.veitheller.de/What_good_looks_like_in_a_data_room.html", "published_at": "2025-09-03T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86d2289688", "title": "Simple SSDLCs", "url": "https://blog.veitheller.de/Simple_SSDLCs.html", "published_at": "2025-09-01T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86d2afe2b0", "title": "PSA: Plausible Analytics, maybe tip jar options?", "url": "https://blog.veitheller.de/PSA:_Plausible_Analytics,_maybe_tip_jar_options.html", "published_at": "2025-08-26T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86d2cd7583", "title": "Building a simple reranker", "url": "https://blog.veitheller.de/Building_a_simple_reranker.html", "published_at": "2025-08-25T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86d2ce14ec", "title": "Some notes about SBOMs", "url": "https://blog.veitheller.de/Some_notes_about_SBOMs.html", "published_at": "2025-08-18T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86d3c6561f", "title": "gtstartup: Spinning up development GT images quickly", "url": "https://blog.veitheller.de/gtstartup:_Spinning_up_development_GT_images_quickly.html", "published_at": "2025-08-18T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86d3fcb67f", "title": "News from The Ministry of Bad Ideas, or: Delayed F-Strings", "url": "https://blog.veitheller.de/News_from_The_Ministry_of_Bad_Ideas,_or:_Delayed_F-Strings.html", "published_at": "2025-08-02T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86d45e2bb4", "title": "Waves, inspired by Hokusai sketches", "url": "https://blog.veitheller.de/Waves,_inspired_by_Hokusai_sketches.html", "published_at": "2025-06-09T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86d4d95392", "title": "LlmL", "url": "https://blog.veitheller.de/LlmL.html", "published_at": "2025-05-29T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86d5b4086f", "title": "On starting hard things", "url": "https://blog.veitheller.de/On_starting_hard_things.html", "published_at": "2025-05-27T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86d5f454fb", "title": "gt4atproto at ESUG 2023", "url": "https://blog.veitheller.de/gt4atproto_at_ESUG_2023.html", "published_at": "2023-11-11T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86d6ceef89", "title": "Unstar everything, unfollow everyone (sorry)", "url": "https://blog.veitheller.de/Unstar_everything,_unfollow_everyone_(sorry).html", "published_at": "2023-10-02T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86d744281b", "title": "How I write and publish blog posts from Glamorous Toolkit II", "url": "https://blog.veitheller.de/How_I_write_and_publish_blog_posts_from_Glamorous_Toolkit_II.html", "published_at": "2023-09-11T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86d74f8260", "title": "How I write and publish blog posts from Glamorous Toolkit I", "url": "https://blog.veitheller.de/How_I_write_and_publish_blog_posts_from_Glamorous_Toolkit_I.html", "published_at": "2023-09-10T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86d81c680f", "title": "Implementing an IDE in GT", "url": "https://blog.veitheller.de/Implementing_an_IDE_in_GT.html", "published_at": "2023-02-27T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86d8616bfa", "title": "Dear M", "url": "https://blog.veitheller.de/Dear_M.html", "published_at": "2022-08-29T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86d8cb6424", "title": "Variable Arity through Macros", "url": "https://blog.veitheller.de/Variable_Arity_through_Macros.html", "published_at": "2022-04-04T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86d98764b4", "title": "Helping Ukrainians, from Berlin", "url": "https://blog.veitheller.de/Helping_Ukrainians,_from_Berlin.html", "published_at": "2022-03-13T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86d9b12eac", "title": "Feenk", "url": "https://blog.veitheller.de/Feenk.html", "published_at": "2022-01-24T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86da5ca976", "title": "Building Setf", "url": "https://blog.veitheller.de/Building_Setf.html", "published_at": "2022-01-23T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86dad98a9f", "title": "CXXVI", "url": "https://blog.veitheller.de/CXXVI.html", "published_at": "2021-08-17T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86dbb114a4", "title": "You Cant Always Be Productive", "url": "https://blog.veitheller.de/You_Cant_Always_Be_Productive.html", "published_at": "2021-07-06T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86dc77c448", "title": "Back", "url": "https://blog.veitheller.de/Back.html", "published_at": "2021-06-29T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86dd671c15", "title": "Thoughts on Identity", "url": "https://blog.veitheller.de/Thoughts_on_Identity.html", "published_at": "2021-05-23T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86de173d31", "title": "Bathtime", "url": "https://blog.veitheller.de/Bathtime.html", "published_at": "2021-05-18T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86df0898bc", "title": "Like That?", "url": "https://blog.veitheller.de/Like_That.html", "published_at": "2021-05-13T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86df4be505", "title": "A New Pouch", "url": "https://blog.veitheller.de/A_New_Pouch.html", "published_at": "2021-05-08T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86dfc4a0b8", "title": "Blockchain: The Post I Didnt Want to Write", "url": "https://blog.veitheller.de/Blockchain:_The_Post_I_Didnt_Want_to_Write.html", "published_at": "2021-05-03T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86e087c509", "title": "A New Life", "url": "https://blog.veitheller.de/A_New_Life.html", "published_at": "2021-05-02T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86e0cb89cd", "title": "Adopt A Character", "url": "https://blog.veitheller.de/Adopt_A_Character.html", "published_at": "2021-04-05T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86e16e8692", "title": "Maps Are Everything", "url": "https://blog.veitheller.de/Maps_Are_Everything.html", "published_at": "2021-02-24T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86e18a90dc", "title": "The Worst Professional Advice You Will Ever Get", "url": "https://blog.veitheller.de/The_Worst_Professional_Advice_You_Will_Ever_Get.html", "published_at": "2021-02-16T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86e27e54a7", "title": "Carp and derive II: This Time Its Personal", "url": "https://blog.veitheller.de/Carp_and_derive_II:_This_Time_Its_Personal.html", "published_at": "2021-02-09T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86e2ce4877", "title": "Apart", "url": "https://blog.veitheller.de/Apart.html", "published_at": "2021-02-03T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86e3609106", "title": "Carp Patterns IV: Modules", "url": "https://blog.veitheller.de/Carp_Patterns_IV:_Modules.html", "published_at": "2021-02-02T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86e37404d7", "title": "Waiting in Berlo", "url": "https://blog.veitheller.de/Waiting_in_Berlo.html", "published_at": "2021-01-28T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86e415ef57", "title": "Lets Build a Quasiquoter", "url": "https://blog.veitheller.de/Lets_Build_a_Quasiquoter.html", "published_at": "2021-01-25T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86e508de60", "title": "Hiring", "url": "https://blog.veitheller.de/Hiring.html", "published_at": "2021-01-11T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86e5645be2", "title": "Contextual Leadership", "url": "https://blog.veitheller.de/Contextual_Leadership.html", "published_at": "2020-12-22T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86e646da37", "title": "Three", "url": "https://blog.veitheller.de/Three.html", "published_at": "2020-12-09T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86e6aae1bd", "title": "A New Home", "url": "https://blog.veitheller.de/A_New_Home.html", "published_at": "2020-10-14T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86e72007cb", "title": "Carp Patterns III: Macros", "url": "https://blog.veitheller.de/Carp_Patterns_III:_Macros.html", "published_at": "2020-09-29T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86e7ca2a18", "title": "Working on my Nutrition", "url": "https://blog.veitheller.de/Working_on_my_Nutrition.html", "published_at": "2020-05-29T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86e817a386", "title": "Carp Patterns II: Testing", "url": "https://blog.veitheller.de/Carp_Patterns_II:_Testing.html", "published_at": "2020-05-20T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86e87c3576", "title": "Carp Patterns I: Documentation", "url": "https://blog.veitheller.de/Carp_Patterns_I:_Documentation.html", "published_at": "2020-05-15T00:00:00+00:00" }, { "id": "01a07d5d-626d-7281-8754-5d86e95a5e77", "title": "Lets Build Lenses in Carp, Part II: Prisms", "url": "https://blog.veitheller.de/Lets_Build_Lenses_in_Carp,_Part_II:_Prisms.html", "published_at": "2020-05-09T00:00:00+00:00" } ] posts Claim your blog
Back to Veit Heller
Blog · corpus.blog/blogs/blog.veitheller.de/posts

Veit Heller

blog.veitheller.de

2026

2025

29 May 2025

2023

2022

2021

29 Jun 2021

2020