{"id":19115401,"url":"https://github.com/polytypic/blog","last_synced_at":"2025-10-29T10:17:58.069Z","repository":{"id":51381730,"uuid":"46327978","full_name":"polytypic/blog","owner":"polytypic","description":"Links to some of my publications","archived":false,"fork":false,"pushed_at":"2025-02-11T13:55:11.000Z","size":5027,"stargazers_count":38,"open_issues_count":0,"forks_count":0,"subscribers_count":21,"default_branch":"main","last_synced_at":"2025-02-11T14:25:06.727Z","etag":null,"topics":["articles","programming","talks"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/polytypic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-11-17T06:34:18.000Z","updated_at":"2025-02-11T13:55:16.000Z","dependencies_parsed_at":"2023-12-29T11:44:52.897Z","dependency_job_id":null,"html_url":"https://github.com/polytypic/blog","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polytypic%2Fblog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polytypic%2Fblog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polytypic%2Fblog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polytypic%2Fblog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/polytypic","download_url":"https://codeload.github.com/polytypic/blog/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240170084,"owners_count":19759145,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["articles","programming","talks"],"created_at":"2024-11-09T04:46:17.316Z","updated_at":"2025-10-29T10:17:57.979Z","avatar_url":"https://github.com/polytypic.png","language":null,"readme":"N.B. You can watch this repository if you want to be notified of new posts.\n\nPosts:\n\n- [Counters are not toys!](posts/2020-05-11-counters-are-not-toys.md)\n- [Referentially transparent GUIs](posts/2020-05-11-referentially-transparent-guis.md)\n- [Solid and Functional](posts/2014-08-18-solid.md)\n- [Freedom of Expression has a Cost.](posts/2014-07-24-freedom-of-expression.md)\n- [Equality forall and forever](posts/2014-07-14-equality-forall.md)\n\nTalks:\n\n- [A lock-free hash table for OCaml](https://polytypic.github.io/blog/a-lock-free-hash-table-for-ocaml/)\n- [Building a lock-free STM for OCaml](https://icfp23.sigplan.org/details/ocaml-2023-papers/6/Building-a-lock-free-STM-for-OCaml)\n  - [Video](https://www.youtube.com/watch?v=Mt8wPCHU1ZU)\n  - [Slides](https://polytypic.github.io/kcas-talk/)\n- [k-CAS for sweat-free concurrent programming](https://gist.github.com/polytypic/3214389ad69b16d28b957ced86e1b1a4#k-cas-for-sweat-free-concurrent-programming)\n  - [Video from presentation on 2023-02-15](https://www.youtube.com/watch?v=1z8PshvWOF8)\n- [HTTP requests beyond promises](https://drive.google.com/file/d/1v47Q9ey1S_HeULZKC164M5AHhu9JCMsZ/view?usp=sharing)\n- [The future is algebraic](https://polytypic.github.io/blog/the-future-is-algebraic/)\n- [A pattern matcher in JavaScript](https://polytypic.github.io/blog/a-pattern-matcher-in-javascript/)\n  - [Screen capture from presentation](https://youtu.be/Wl5w60ERkrc)\n  - [Slides from HelsinkiJS edition](https://polytypic.github.io/blog/a-pattern-matcher-in-javascript_hkijs)\n- [Transactional Locking](https://polytypic.github.io/blog/transactional-locking/)\n- [Inverting Event Streams is a Choice](https://docs.google.com/presentation/d/1Yowsc3MV9xWqHJ3u11B0xYqqqeK368BW_dfZ9_H0WJI)\n\nGists:\n\n- [Generalized approach to turn a functional data structure into a lock-free starvation avoiding data structure](https://gist.github.com/polytypic/3bff98742e26bcbbc8ca3e8dfac103d7)\n- [Extending k-CAS with efficient read-only CMP operations](https://gist.github.com/polytypic/0efa0e2981d2a5fc4b534a0e25120cc9)\n- [Simplified MSI model of shared memory](https://gist.github.com/polytypic/781a69a0a8e2d1f3ddcc4170887fc412)\n- [Zio like monad in F# with extensible error handling](https://gist.github.com/polytypic/d4c646527ca1241f630e2c10dfc0af8d)\n- [Learning day: ReDiSL](https://gist.github.com/polytypic/08929bfe060f9cafe0d45f2b4ebf9f38)\n  \u0026mdash; This is a short writeup on a proof-of-concept Scala DSL for working\n  with Redis drafted using a HOAS GADT based compiler.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolytypic%2Fblog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpolytypic%2Fblog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolytypic%2Fblog/lists"}