56,966 blogs · [ { "id": "01a0d2c9-6809-72b3-9fb1-cc6c577ddffa", "title": null, "url": "http://justinhj.github.io/tag/svn/", "published_at": "2026-09-06T19:00:13+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c57ad10b2", "title": null, "url": "http://justinhj.github.io/tag/tags/", "published_at": "2026-09-06T19:00:13+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c57f4ab4a", "title": null, "url": "http://justinhj.github.io/tag/tar/", "published_at": "2026-09-06T19:00:13+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c58a052f0", "title": null, "url": "http://justinhj.github.io/tag/tokenizer/", "published_at": "2026-09-06T19:00:13+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c5920e8a8", "title": null, "url": "http://justinhj.github.io/tag/transmission/", "published_at": "2026-09-06T19:00:13+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c59d29365", "title": null, "url": "http://justinhj.github.io/tag/typelevel/", "published_at": "2026-09-06T19:00:13+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c59ffb327", "title": null, "url": "http://justinhj.github.io/tag/ubuntu/", "published_at": "2026-09-06T19:00:13+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c5a07bbac", "title": null, "url": "http://justinhj.github.io/tag/udash/", "published_at": "2026-09-06T19:00:13+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c5a34453f", "title": null, "url": "http://justinhj.github.io/tag/vancouver/", "published_at": "2026-09-06T19:00:13+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c5a9bdb60", "title": null, "url": "http://justinhj.github.io/tag/vim/", "published_at": "2026-09-06T19:00:13+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c5b1437e6", "title": "Visual Studio", "url": "http://justinhj.github.io/tag/visual-studio/", "published_at": "2026-09-06T19:00:13+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c5b192a05", "title": "Web Jump", "url": "http://justinhj.github.io/tag/web-jump/", "published_at": "2026-09-06T19:00:13+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c5bd0393c", "title": null, "url": "http://justinhj.github.io/tag/wget/", "published_at": "2026-09-06T19:00:13+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c5c3bfe43", "title": null, "url": "http://justinhj.github.io/tag/win32/", "published_at": "2026-09-06T19:00:13+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c5c8e494b", "title": null, "url": "http://justinhj.github.io/tag/windows/", "published_at": "2026-09-06T19:00:13+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c5cf76eb5", "title": null, "url": "http://justinhj.github.io/tag/xml/", "published_at": "2026-09-06T19:00:13+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c5d02da13", "title": null, "url": "http://justinhj.github.io/tag/zio/", "published_at": "2026-09-06T19:00:13+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c9486abf5", "title": null, "url": "http://justinhj.github.io/clubandcountry.html", "published_at": "2026-09-06T19:00:11+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c94d76730", "title": null, "url": "http://justinhj.github.io/clubfootball.html", "published_at": "2026-09-06T19:00:11+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c958c6255", "title": "Keynote", "url": "http://justinhj.github.io/purefunctionaleffects/assets/player/KeynoteDHTMLPlayer.html", "published_at": "2026-09-06T19:00:11+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c95e8710d", "title": null, "url": "http://justinhj.github.io/purefunctionaleffects/presentation-purefunctionaleffects.html", "published_at": "2026-09-06T19:00:11+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c96470e59", "title": "React App", "url": "http://justinhj.github.io/wordle/", "published_at": "2026-09-06T19:00:11+00:00" }, { "id": "01a08792-98f5-70a6-af08-8adbbf6766d5", "title": "Refreshing your Neovim config for 0.12.0", "url": "http://justinhj.github.io/2026/04/06/refreshing-your-neovim-config-for-0-12-0.html", "published_at": "2026-04-06T00:00:00+00:00" }, { "id": "01a08792-98f5-70a6-af08-8adbc043bcab", "title": "Visualizing K-Way Merge&#58 An Interactive Guide to Database Sorting", "url": "http://justinhj.github.io/2026/01/19/visualizing-k-way-merge.html", "published_at": "2026-01-19T00:00:00+00:00" }, { "id": "01a08792-98f5-70a6-af08-8adbc0bdf22b", "title": "Optimizing training a GPT style Tokenizer with C++", "url": "http://justinhj.github.io/2025/07/30/journey-in-optimizing-a-bpe-tokenizer.html", "published_at": "2025-07-30T00:00:00+00:00" }, { "id": "01a08792-98f5-70a6-af08-8adbc10cb805", "title": "The Magic of Lazy Lists", "url": "http://justinhj.github.io/2022/11/05/magic-of-lazy-lists.html", "published_at": "2022-11-05T00:00:00+00:00" }, { "id": "01a08792-98f5-70a6-af08-8adbc10e4190", "title": "Monad Transformers - the prelude to ZPure", "url": "http://justinhj.github.io/2021/06/04/monad-transformers-the-prelude-to-zpure.html", "published_at": "2021-06-04T00:00:00+00:00" }, { "id": "01a08792-98f5-70a6-af08-8adbc1af7842", "title": "Monads in Scala 3 for the Genius", "url": "http://justinhj.github.io/2021/02/02/monads-in-scala-3-for-the-genius.html", "published_at": "2021-02-02T00:00:00+00:00" }, { "id": "01a08792-98f5-70a6-af08-8adbc2a4f311", "title": "Functional Error Handling with Applicative in Scala 3", "url": "http://justinhj.github.io/2021/01/21/functional-error-handling-with-applicative-in-scala-3.html", "published_at": "2021-01-21T00:00:00+00:00" }, { "id": "01a08792-98f5-70a6-af08-8adbc2e58666", "title": "Handling Errors functionally with Scala 3", "url": "http://justinhj.github.io/2021/01/06/handling-errors-functionaly-with-scala-3.html", "published_at": "2021-01-06T00:00:00+00:00" }, { "id": "01a08792-98f5-70a6-af08-8adbc31ff3b6", "title": "Type classes with Scala 2", "url": "http://justinhj.github.io/2020/12/06/type-classes-scala-2.html", "published_at": "2020-12-06T00:00:00+00:00" }, { "id": "01a08792-98f5-70a6-af08-8adbc3f1fc6b", "title": "Scala 3 Context Functions", "url": "http://justinhj.github.io/2020/11/18/scala-3-context-functions.html", "published_at": "2020-11-18T00:00:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c8b6737ad", "title": null, "url": "http://justinhj.github.io/2020/08/02/whats-ap-with-zio-prelude.html", "published_at": "2020-08-02T00:00:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c8afc5ecb", "title": null, "url": "http://justinhj.github.io/2020/04/04/whats-ap.html", "published_at": "2020-04-04T00:00:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c8af2834b", "title": null, "url": "http://justinhj.github.io/2020/03/09/how-to-blog-with-org-mode.html", "published_at": "2020-03-09T00:00:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c8a90a7b0", "title": null, "url": "http://justinhj.github.io/2019/06/20/comonads-for-life.html", "published_at": "2019-06-20T00:00:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c8a1fe009", "title": null, "url": "http://justinhj.github.io/2019/06/10/monoids-for-production.html", "published_at": "2019-06-10T00:00:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c89b9afbb", "title": null, "url": "http://justinhj.github.io/2019/05/05/using-47degs-fetch-with-zio.html", "published_at": "2019-05-05T00:00:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c89a2212c", "title": null, "url": "http://justinhj.github.io/2019/04/07/hacker-news-api-5.html", "published_at": "2019-04-07T00:00:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c88dea43f", "title": null, "url": "http://justinhj.github.io/2018/11/19/eredis-updated-emacs-redis-api.html", "published_at": "2018-11-19T00:00:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c8833e025", "title": null, "url": "http://justinhj.github.io/2018/10/24/radix-trees-dash-and-company-mode.html", "published_at": "2018-10-24T00:00:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c87c5c3ab", "title": null, "url": "http://justinhj.github.io/2018/05/05/hacker-news-api-4.html", "published_at": "2018-05-05T00:00:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c87434edc", "title": null, "url": "http://justinhj.github.io/2017/10/11/hacker-news-api-3.html", "published_at": "2017-10-11T00:00:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c864b7646", "title": null, "url": "http://justinhj.github.io/2017/08/27/roman-numeral-tool-with-udash.html", "published_at": "2017-08-27T00:00:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c85fa2100", "title": null, "url": "http://justinhj.github.io/2017/07/30/hacker-news-api-2.html", "published_at": "2017-07-30T00:00:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c85059f9b", "title": null, "url": "http://justinhj.github.io/2017/07/26/hacker-news-api-1.html", "published_at": "2017-07-26T23:00:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c84bbd2be", "title": null, "url": "http://justinhj.github.io/2017/07/16/future-with-timeout.html", "published_at": "2017-07-16T00:00:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c84961888", "title": null, "url": "http://justinhj.github.io/2017/06/18/future-either-with-cats.html", "published_at": "2017-06-18T10:00:40+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c847cf808", "title": null, "url": "http://justinhj.github.io/2017/06/02/future-either-and-monad-transformers.html", "published_at": "2017-06-02T00:00:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c83b6e878", "title": null, "url": "http://justinhj.github.io/2016/02/17/python-babel.html", "published_at": "2016-02-17T16:31:40+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c83870e14", "title": null, "url": "http://justinhj.github.io/2015/04/22/including-equations-in-blogger-post.html", "published_at": "2015-04-22T17:18:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c82fd4b32", "title": null, "url": "http://justinhj.github.io/2015/04/17/installing-rpostgresql-for-r-on-max-os.html", "published_at": "2015-04-17T17:12:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c822b584c", "title": null, "url": "http://justinhj.github.io/2014/06/29/easy-find.html", "published_at": "2014-06-29T16:47:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c81b5c234", "title": null, "url": "http://justinhj.github.io/2014/05/26/sending-notifications-from-emacs.html", "published_at": "2014-05-26T17:09:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c8146b882", "title": null, "url": "http://justinhj.github.io/2014/04/01/watch.html", "published_at": "2014-04-01T16:22:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c8141abc5", "title": null, "url": "http://justinhj.github.io/2014/03/12/checkout-out-your-db-tables.html", "published_at": "2014-03-12T21:03:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c8064dfd2", "title": null, "url": "http://justinhj.github.io/2013/02/06/configuring-emacs-to-send-icloud-mail.html", "published_at": "2013-02-06T10:33:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c8011727d", "title": null, "url": "http://justinhj.github.io/2012/04/29/find-grep-on-mac-os-x.html", "published_at": "2012-04-29T19:24:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c7fe6d4c0", "title": null, "url": "http://justinhj.github.io/2012/03/22/starting-program-to-run-in-background.html", "published_at": "2012-03-22T19:18:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c7f16a4da", "title": null, "url": "http://justinhj.github.io/2011/12/26/making-emacs-lisp-expression-expand.html", "published_at": "2011-12-26T18:32:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c7ee6cae4", "title": null, "url": "http://justinhj.github.io/2011/07/30/eredis-update.html", "published_at": "2011-07-30T07:03:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c7e1186c0", "title": null, "url": "http://justinhj.github.io/2011/07/25/eredis-redis-client-in-emacs-lisp.html", "published_at": "2011-07-25T08:06:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c7df18b0d", "title": null, "url": "http://justinhj.github.io/2011/06/14/emacs-progress-indication.html", "published_at": "2011-06-14T22:12:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c7d2b942a", "title": null, "url": "http://justinhj.github.io/2011/06/06/more-on-duplicate-file-handling-in.html", "published_at": "2011-06-06T03:41:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c7cee1d04", "title": null, "url": "http://justinhj.github.io/2011/06/02/finding-duplicate-files-in-dired-buffer.html", "published_at": "2011-06-02T04:31:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c7bf6bb4f", "title": null, "url": "http://justinhj.github.io/2011/04/26/programmer-tips-for-mac-osx.html", "published_at": "2011-04-26T22:12:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c7b1225db", "title": null, "url": "http://justinhj.github.io/2011/04/26/movieratings.html", "published_at": "2011-04-26T22:00:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c7b0d43f4", "title": null, "url": "http://justinhj.github.io/2011/04/26/talking-to-mysql-from-python-on-mac-os.html", "published_at": "2011-04-26T00:40:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c7a2b1494", "title": null, "url": "http://justinhj.github.io/2011/01/15/grabbing-rotten-tomatoes-movie-ratings.html", "published_at": "2011-01-15T18:22:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c795c5f61", "title": null, "url": "http://justinhj.github.io/2011/01/11/view-data-from-clojure-repl.html", "published_at": "2011-01-11T19:09:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c79243c1e", "title": null, "url": "http://justinhj.github.io/2010/12/15/f-vs-c.html", "published_at": "2010-12-15T18:26:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c7902267e", "title": null, "url": "http://justinhj.github.io/2010/11/02/just-browsing.html", "published_at": "2010-11-02T18:04:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c78a99817", "title": null, "url": "http://justinhj.github.io/2010/10/19/rgrep-on-windows-7-for-emacs.html", "published_at": "2010-10-19T23:14:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c78782c38", "title": null, "url": "http://justinhj.github.io/2010/07/30/couple-of-mysql-tips.html", "published_at": "2010-07-30T21:55:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c77be5180", "title": null, "url": "http://justinhj.github.io/2010/06/08/adjusting-server-logging-level-at.html", "published_at": "2010-06-08T21:12:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c7703d043", "title": null, "url": "http://justinhj.github.io/2010/05/17/growling-mac.html", "published_at": "2010-05-17T01:28:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c7652bf6c", "title": null, "url": "http://justinhj.github.io/2010/04/17/using-tar-and-gzip.html", "published_at": "2010-04-17T17:01:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c75e5f2cc", "title": null, "url": "http://justinhj.github.io/2010/01/24/nice-code.html", "published_at": "2010-01-24T06:18:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c756f6bb7", "title": null, "url": "http://justinhj.github.io/2010/01/02/securing-ssh-server-with-fail2ban.html", "published_at": "2010-01-02T03:26:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c74878f3c", "title": null, "url": "http://justinhj.github.io/2010/01/02/using-screen.html", "published_at": "2010-01-02T02:49:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c741ce0cd", "title": null, "url": "http://justinhj.github.io/2009/10/13/transparent-emacs-on-windows.html", "published_at": "2009-10-13T04:35:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c73df17da", "title": null, "url": "http://justinhj.github.io/2009/10/09/msdos-iterating-filenames-in-file.html", "published_at": "2009-10-09T19:18:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c733e0a3e", "title": null, "url": "http://justinhj.github.io/2009/09/23/windows-command-window-title.html", "published_at": "2009-09-23T23:18:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c72b67297", "title": null, "url": "http://justinhj.github.io/2009/09/21/english-quote-in-common-lisp.html", "published_at": "2009-09-21T16:55:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c7206a677", "title": null, "url": "http://justinhj.github.io/2009/09/10/making-emacs-growl.html", "published_at": "2009-09-10T14:13:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c7175a200", "title": null, "url": "http://justinhj.github.io/2009/09/08/directional-window-movement-in-emacs.html", "published_at": "2009-09-08T21:12:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c70eb08be", "title": null, "url": "http://justinhj.github.io/2009/09/01/handful-of-emacs-tips.html", "published_at": "2009-09-01T21:37:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c70648c47", "title": null, "url": "http://justinhj.github.io/2009/08/27/simple-budget-forecasts-in-emacs.html", "published_at": "2009-08-27T06:36:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c6f6aaa84", "title": null, "url": "http://justinhj.github.io/2009/06/17/1337-on-stackoverflow.html", "published_at": "2009-06-17T18:41:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c6f0c9923", "title": null, "url": "http://justinhj.github.io/2009/05/27/linux-looking-at-files-changed-recently.html", "published_at": "2009-05-27T17:35:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c6ecc1f0c", "title": null, "url": "http://justinhj.github.io/2009/05/14/linking-mingw32-with-psapi.html", "published_at": "2009-05-14T23:48:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c6e33d989", "title": null, "url": "http://justinhj.github.io/2009/05/14/writing-quick-c-programs-in-emacs.html", "published_at": "2009-05-14T23:36:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c6dbef0af", "title": null, "url": "http://justinhj.github.io/2009/05/13/converting-flac-to-mp3.html", "published_at": "2009-05-13T04:59:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c6cd515f3", "title": null, "url": "http://justinhj.github.io/2009/05/08/emacs-renaming-multiple-files-at-once.html", "published_at": "2009-05-08T15:33:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c6be69d64", "title": null, "url": "http://justinhj.github.io/2009/05/07/emacs-searching-programming-apis-with.html", "published_at": "2009-05-07T16:08:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c6b1b4d99", "title": null, "url": "http://justinhj.github.io/2009/04/15/running-elisp-function-on-each-marked.html", "published_at": "2009-04-15T17:49:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c6af47224", "title": null, "url": "http://justinhj.github.io/2009/04/02/securely-copying-files-to-another.html", "published_at": "2009-04-02T18:51:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c6a19ba64", "title": null, "url": "http://justinhj.github.io/2009/03/18/vancouver-game-companies.html", "published_at": "2009-03-18T15:46:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c69f2b87f", "title": null, "url": "http://justinhj.github.io/2009/03/09/using-tags-in-emacs-on-windows.html", "published_at": "2009-03-09T17:06:00+00:00" }, { "id": "01a0d2c9-6809-72b3-9fb1-cc6c69ac69fd", "title": null, "url": "http://justinhj.github.io/2009/02/20/sending-mail-with-emacs-in-windows.html", "published_at": "2009-02-20T18:31:00+00:00" } ] posts Claim your blog
Back to justinhj
Blog · corpus.blog/blogs/justinhj.github.io/posts

justinhj

justinhj.github.io

2026

2025

2022

2021

2020

2019

2018

2017

2016

2015

2014

2013

2012

2011

2010

2009