41554 blogs · [ { "id": "01a087b8-7475-73ea-91fc-77a3c4e8f770", "title": "A small event loop library", "url": "https://www.omarpolo.com/post/evloop.html", "published_at": "2025-03-28T00:00:00+00:00" }, { "id": "01a087b8-7475-73ea-91fc-77a3c55b348e", "title": "The state of sha256 in got", "url": "https://www.omarpolo.com/post/got-sha256.html", "published_at": "2024-07-18T00:00:00+00:00" }, { "id": "01a087b8-7475-73ea-91fc-77a3c59966bf", "title": "A small template engine for C", "url": "https://www.omarpolo.com/post/template.html", "published_at": "2024-02-29T00:00:00+00:00" }, { "id": "01a087b8-7475-73ea-91fc-77a3c5a38432", "title": "gmid 2.0", "url": "https://www.omarpolo.com/post/gmid-2.0.html", "published_at": "2024-01-11T00:00:00+00:00" }, { "id": "01a087b8-7475-73ea-91fc-77a3c6767302", "title": "CGI scripts: simple vs easy", "url": "https://www.omarpolo.com/post/cgi-simple-vs-easy.html", "published_at": "2023-08-29T00:00:00+00:00" }, { "id": "01a087b8-7475-73ea-91fc-77a3c70b4fd7", "title": "gmid 2.0 first alpha", "url": "https://www.omarpolo.com/post/gmid-2.0-first-alpha.html", "published_at": "2023-08-25T00:00:00+00:00" }, { "id": "01a087b8-7475-73ea-91fc-77a3c7180ae5", "title": "June 2023 Status Update", "url": "https://www.omarpolo.com/post/2023-06-update.html", "published_at": "2023-06-23T00:00:00+00:00" }, { "id": "01a087b8-7475-73ea-91fc-77a3c73c163d", "title": "A base32 decoder", "url": "https://www.omarpolo.com/post/base32-decoder.html", "published_at": "2022-10-20T00:00:00+00:00" }, { "id": "01a087b8-7475-73ea-91fc-77a3c77a2ebb", "title": "plass(1) first public release", "url": "https://www.omarpolo.com/post/plass-0.1.html", "published_at": "2022-10-02T00:00:00+00:00" }, { "id": "01a087b8-7475-73ea-91fc-77a3c79c362d", "title": "Running gotwebd behind nginx", "url": "https://www.omarpolo.com/post/gotwebd-behind-nginx.html", "published_at": "2022-09-08T00:00:00+00:00" }, { "id": "01a087b8-7475-73ea-91fc-77a3c8848cf8", "title": "A Brainfuck Compiler", "url": "https://www.omarpolo.com/post/bfc-intro.html", "published_at": "2022-04-28T00:00:00+00:00" }, { "id": "01a087b8-7475-73ea-91fc-77a3c8915fe4", "title": "Experiments in writing a full text search engine", "url": "https://www.omarpolo.com/post/fts-experiments.html", "published_at": "2022-04-14T00:00:00+00:00" }, { "id": "01a087b8-7475-73ea-91fc-77a3c8d3e44f", "title": "I wrote a music player", "url": "https://www.omarpolo.com/post/amused.html", "published_at": "2022-02-19T00:00:00+00:00" }, { "id": "01a087b8-7475-73ea-91fc-77a3c98bccc1", "title": "Telescope 0.7", "url": "https://www.omarpolo.com/post/telescope-07.html", "published_at": "2022-01-13T00:00:00+00:00" }, { "id": "01a087b8-7475-73ea-91fc-77a3ca14e638", "title": "A Clojure library for Gemini", "url": "https://www.omarpolo.com/post/gemini-clojure.html", "published_at": "2021-10-16T00:00:00+00:00" }, { "id": "01a087b8-7475-73ea-91fc-77a3ca791c44", "title": "One year of gmid", "url": "https://www.omarpolo.com/post/one-year-of-gmid.html", "published_at": "2021-10-12T00:00:00+00:00" }, { "id": "01a087b8-7475-73ea-91fc-77a3cb28219f", "title": "Extracting files from zips", "url": "https://www.omarpolo.com/post/extracting-from-zips.html", "published_at": "2021-08-21T00:00:00+00:00" }, { "id": "01a087b8-7475-73ea-91fc-77a3cb9807eb", "title": "Inspecting zip files", "url": "https://www.omarpolo.com/post/inspecting-zips.html", "published_at": "2021-08-19T00:00:00+00:00" }, { "id": "01a087b8-7475-73ea-91fc-77a3cbffda12", "title": "Writing a simple Emacs major-mode", "url": "https://www.omarpolo.com/post/writing-a-major-mode.html", "published_at": "2021-08-06T00:00:00+00:00" }, { "id": "01a087b8-7475-73ea-91fc-77a3cc02f7e0", "title": "Talking ’bout 9P: open and walk", "url": "https://www.omarpolo.com/post/taking-about-9p-open-and-walk.html", "published_at": "2021-08-01T00:00:00+00:00" }, { "id": "01a087b8-7475-73ea-91fc-77a3ccae9791", "title": "Talking ’bout 9P: intro", "url": "https://www.omarpolo.com/post/taking-about-9p-intro.html", "published_at": "2021-07-31T00:00:00+00:00" }, { "id": "01a087b8-7475-73ea-91fc-77a3cd0c75f8", "title": "The current state of theme switching", "url": "https://www.omarpolo.com/post/state-of-theme-switching.html", "published_at": "2021-07-26T00:00:00+00:00" }, { "id": "01a087b8-7475-73ea-91fc-77a3cd340790", "title": "How to suspend a UNIX process", "url": "https://www.omarpolo.com/post/suspend-unix-process.html", "published_at": "2021-07-15T00:00:00+00:00" }, { "id": "01a087b8-7475-73ea-91fc-77a3cd57d61d", "title": "gmid “Space-dye Vest” 1.7 update", "url": "https://www.omarpolo.com/post/gmid-1.7.html", "published_at": "2021-07-10T00:00:00+00:00" }, { "id": "01a087b8-7475-73ea-91fc-77a3ce009b87", "title": "Virtual users and OpenSMTPD/Dovecot", "url": "https://www.omarpolo.com/post/opensmtd-dovecot-virtual-users.html", "published_at": "2021-06-05T00:00:00+00:00" }, { "id": "01a087b8-7475-73ea-91fc-77a3cecf4bc1", "title": "Parsing text/gemini with Clojure revisited", "url": "https://www.omarpolo.com/post/gemtext-clojure.html", "published_at": "2021-04-16T00:00:00+00:00" }, { "id": "01a087b8-7475-73ea-91fc-77a3ced46538", "title": "gmid “Stargazers” v1.6 update", "url": "https://www.omarpolo.com/post/gmid-1.6.html", "published_at": "2021-03-20T00:00:00+00:00" }, { "id": "01a087b8-7475-73ea-91fc-77a3cfbff89d", "title": "Customize tty colors", "url": "https://www.omarpolo.com/post/change-tty-colors.html", "published_at": "2021-02-23T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f929201173", "title": "Being lazy, the Emacs macro edition", "url": "https://www.omarpolo.com/post/emacs-macros.html", "published_at": "2021-02-10T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f9298dcd54", "title": "Fun with seccomp & signals", "url": "https://www.omarpolo.com/post/fun-with-seccomp.html", "published_at": "2021-02-08T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f92a471507", "title": "Reloading a daemon", "url": "https://www.omarpolo.com/post/daemon-reload.html", "published_at": "2021-02-04T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f92a72c332", "title": "gmid “Interstellar Overdrive” v1.5 update", "url": "https://www.omarpolo.com/post/gmid-1.5.html", "published_at": "2021-01-30T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f92af693f7", "title": "Comparing sandboxing techniques", "url": "https://www.omarpolo.com/post/gmid-sandbox.html", "published_at": "2021-01-22T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f92b1bb12e", "title": "Parsing PO files in Clojure", "url": "https://www.omarpolo.com/post/parsing-po.html", "published_at": "2021-01-13T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f92b3e7dc1", "title": "Parsing UTF-8", "url": "https://www.omarpolo.com/post/parsing-utf8.html", "published_at": "2021-01-11T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f92c2b7aeb", "title": "Tangle text/gemini files", "url": "https://www.omarpolo.com/post/tangle-text-gemini-files.html", "published_at": "2020-12-30T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f92cad250a", "title": "text/gemini to HTML with AWK", "url": "https://www.omarpolo.com/post/text-gemini-to-html-with-awk.html", "published_at": "2020-12-29T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f92d0c4c69", "title": "The joy of elisp: an example", "url": "https://www.omarpolo.com/post/joy-of-elisp-sndio.html", "published_at": "2020-12-28T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f92dddfb2a", "title": "IRIs are not hard!", "url": "https://www.omarpolo.com/post/iris-are-not-hard.html", "published_at": "2020-12-26T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f92e38be08", "title": "Screen recording from stumpwm", "url": "https://www.omarpolo.com/post/stumpwm-record-screen.html", "published_at": "2020-12-09T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f92ee599b8", "title": "yasnippet and SPC", "url": "https://www.omarpolo.com/post/yasnippet-expansions.html", "published_at": "2020-12-01T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f92fe3d275", "title": "love for c(a|d)+r", "url": "https://www.omarpolo.com/post/love-for-cadr.html", "published_at": "2020-11-15T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f930605084", "title": "gmid update, cgi support and services", "url": "https://www.omarpolo.com/post/gmid-cgi-and-services.html", "published_at": "2020-11-10T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f931020f20", "title": "Emacs side window", "url": "https://www.omarpolo.com/post/emacs-side-window.html", "published_at": "2020-11-05T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f931c49a85", "title": "gmid", "url": "https://www.omarpolo.com/post/gmid.html", "published_at": "2020-10-15T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f93260d878", "title": "Parsing Gemtext with Clojure", "url": "https://www.omarpolo.com/post/parsing-gemtext-with-clojure.html", "published_at": "2020-10-03T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f932d8db69", "title": "Hello gemini!", "url": "https://www.omarpolo.com/post/hello-gemini.html", "published_at": "2020-10-02T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f933325656", "title": "sndio over the network", "url": "https://www.omarpolo.com/post/sndio-over-network.html", "published_at": "2020-09-22T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f9339d7a1f", "title": "Automatic USB Tethering on OpenBSD", "url": "https://www.omarpolo.com/post/openbsd-tethering.html", "published_at": "2020-09-21T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f934973265", "title": "EMMS", "url": "https://www.omarpolo.com/post/emms.html", "published_at": "2020-09-20T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f934bbf535", "title": "Using IP addresses to assume the language is dumb", "url": "https://www.omarpolo.com/post/ip-to-assume-language-dumb.html", "published_at": "2020-08-04T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f935197ebb", "title": "Localization of dates in web pages", "url": "https://www.omarpolo.com/post/localization-of-dates-in-web-pages.html", "published_at": "2020-08-03T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f9357aa553", "title": "enjoying CDPATH", "url": "https://www.omarpolo.com/post/enjoying-cdpath.html", "published_at": "2020-06-27T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f936501158", "title": "Threading macros for elisp", "url": "https://www.omarpolo.com/post/elisp-threading-macros.html", "published_at": "2020-06-04T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f9365a5789", "title": "Updating the ssh key to ed25519", "url": "https://www.omarpolo.com/post/upgrading-ssh-key-ed25519.html", "published_at": "2020-06-03T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f9370cffb4", "title": "Logstash + jdbc = role does not exists", "url": "https://www.omarpolo.com/post/logstash-jdbc-role-does-not-exists.html", "published_at": "2020-05-10T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f9375850b8", "title": "Finite State Machine in Godot", "url": "https://www.omarpolo.com/post/finite-automata-godot.html", "published_at": "2020-04-29T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f937c8cc32", "title": "cgit & gitolite", "url": "https://www.omarpolo.com/post/cgit-gitolite.html", "published_at": "2020-04-22T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f938801154", "title": "$HOME as a git repo", "url": "https://www.omarpolo.com/post/home-as-git-repo.html", "published_at": "2020-04-02T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f938d6b590", "title": "Multiplexing data in sh(1)", "url": "https://www.omarpolo.com/post/sh-multiplexing-data.html", "published_at": "2019-10-17T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f939421445", "title": "Poor man's unbound dashboard", "url": "https://www.omarpolo.com/post/poor-mans-unbound-dashboard.html", "published_at": "2019-10-16T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f939776770", "title": "Core naming in linux", "url": "https://www.omarpolo.com/post/core-naming-on-linux.html", "published_at": "2019-10-15T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f939e44b76", "title": "CSS sprites with awk and ImageMagick", "url": "https://www.omarpolo.com/post/css-sprites-awk-imagemagick.html", "published_at": "2019-08-08T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f93ac84b5d", "title": "Using the C preprocessors for CSS generation", "url": "https://www.omarpolo.com/post/cpp-css.html", "published_at": "2019-03-30T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f93bac04d6", "title": "F* on OpenBSD", "url": "https://www.omarpolo.com/post/fstar-openbsd.html", "published_at": "2019-03-25T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f93bb038cf", "title": "Abbreviations in vi(1)", "url": "https://www.omarpolo.com/post/abbreviations-vi.html", "published_at": "2018-09-14T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f93bf86d4a", "title": "Improving maildir opening time in mutt", "url": "https://www.omarpolo.com/post/maildir-mutt-time.html", "published_at": "2018-09-14T00:00:00+00:00" }, { "id": "01a087b8-7476-7193-b2ef-b3f93cf11f96", "title": "Spell checking in vi(1)", "url": "https://www.omarpolo.com/post/spell-checking-vi.html", "published_at": "2018-09-08T00:00:00+00:00" } ] posts Claim your blog
Back to omarpolo.com
Blog · corpus.blog/blogs/omarpolo.com/posts

omarpolo.com

omarpolo.com

2025

2024

2023

2022

2021

2020

15 Oct 2020
20 Sept 2020

2019

2018