41554 blogs · [ { "id": "01a08747-bdd0-72af-a116-79203194116f", "title": "Gleam is Pragmatic", "url": "https://blog.drewolson.org/gleam-is-pragmatic/", "published_at": "2024-10-05T00:00:00+00:00" }, { "id": "01a08747-bdd0-72af-a116-7920328efb96", "title": "Hello World Haskell", "url": "https://blog.drewolson.org/hello-world-haskell/", "published_at": "2022-09-16T00:00:00+00:00" }, { "id": "01a08747-bdd0-72af-a116-79203330564b", "title": "Easy JSON in Haskell", "url": "https://blog.drewolson.org/easy-json-in-haskell/", "published_at": "2022-09-12T00:00:00+00:00" }, { "id": "01a08747-bdd0-72af-a116-792033c471e7", "title": "Parsing Permutations", "url": "https://blog.drewolson.org/parsing-permutations/", "published_at": "2021-11-18T00:00:00+00:00" }, { "id": "01a08747-bdd0-72af-a116-792034753206", "title": "Adventures in Looping", "url": "https://blog.drewolson.org/adventures-in-looping/", "published_at": "2021-09-29T00:00:00+00:00" }, { "id": "01a08747-bdd0-72af-a116-792034be6bb5", "title": "Declarative Validation", "url": "https://blog.drewolson.org/declarative-validation/", "published_at": "2021-04-27T00:00:00+00:00" }, { "id": "01a08747-bdd0-72af-a116-792035a1ee5e", "title": "PureScript and Haskell", "url": "https://blog.drewolson.org/purescript-and-haskell/", "published_at": "2021-02-24T00:00:00+00:00" }, { "id": "01a08747-bdd0-72af-a116-7920368f33a7", "title": "Parsing Untrusted Input with Elixir", "url": "https://blog.drewolson.org/parsing-untrusted-input-with-elixir/", "published_at": "2020-08-23T00:00:00+00:00" }, { "id": "01a08747-bdd0-72af-a116-792037653adc", "title": "Drawing Fractals with PureScript", "url": "https://blog.drewolson.org/drawing-fractals-with-purescript/", "published_at": "2020-06-03T00:00:00+00:00" }, { "id": "01a08747-bdd0-72af-a116-792037aaf71b", "title": "Parser Combinators in Elixir", "url": "https://blog.drewolson.org/parser-combinators-in-elixir/", "published_at": "2020-03-14T00:00:00+00:00" }, { "id": "01a08747-bdd0-72af-a116-792037edc011", "title": "Building a Slack Bot in PureScript", "url": "https://blog.drewolson.org/building-a-slack-bot-in-purescript/", "published_at": "2020-01-31T00:00:00+00:00" }, { "id": "01a08747-bdd0-72af-a116-792038029bf5", "title": "PureScript Async FFI", "url": "https://blog.drewolson.org/purescript-async-ffi/", "published_at": "2020-01-04T00:00:00+00:00" }, { "id": "01a08747-bdd0-72af-a116-792038ecd3cd", "title": "Asynchronous PureScript", "url": "https://blog.drewolson.org/asynchronous-purescript/", "published_at": "2019-12-17T00:00:00+00:00" }, { "id": "01a08747-bdd0-72af-a116-7920398ec7f8", "title": "Laziness in PureScript", "url": "https://blog.drewolson.org/laziness-in-purescript/", "published_at": "2019-06-19T00:00:00+00:00" }, { "id": "01a08747-bdd0-72af-a116-79203a7a2b29", "title": "Go Dependency Injection with Wire", "url": "https://blog.drewolson.org/go-dependency-injection-with-wire/", "published_at": "2019-04-07T00:00:00+00:00" }, { "id": "01a08747-bdd0-72af-a116-79203b0c71a4", "title": "Concurrent Ruby with Tasks", "url": "https://blog.drewolson.org/concurrent-ruby-with-tasks/", "published_at": "2018-10-29T00:00:00+00:00" }, { "id": "01a08747-bdd1-7215-bf25-61fd8766ea15", "title": "So You Bought a Pixelbook", "url": "https://blog.drewolson.org/so-you-bought-a-pixelbook/", "published_at": "2018-06-16T00:00:00+00:00" }, { "id": "01a08747-bdd1-7215-bf25-61fd8839fc80", "title": "Lazy Providers in Dig", "url": "https://blog.drewolson.org/lazy-providers-in-dig/", "published_at": "2018-05-25T00:00:00+00:00" }, { "id": "01a08747-bdd1-7215-bf25-61fd88c0677d", "title": "Dependency Injection in Go", "url": "https://blog.drewolson.org/dependency-injection-in-go/", "published_at": "2018-05-15T00:00:00+00:00" }, { "id": "01a08747-bdd1-7215-bf25-61fd892b0578", "title": "Promises as Values", "url": "https://blog.drewolson.org/promises-as-values/", "published_at": "2017-07-13T00:00:00+00:00" }, { "id": "01a08747-bdd1-7215-bf25-61fd8960d89e", "title": "Elixir's Secret Weapon", "url": "https://blog.drewolson.org/elixirs-secret-weapon/", "published_at": "2017-05-12T00:00:00+00:00" }, { "id": "01a08747-bdd1-7215-bf25-61fd8987a065", "title": "Another Perspective on Promises", "url": "https://blog.drewolson.org/another-perspective-on-promises/", "published_at": "2016-12-28T00:00:00+00:00" }, { "id": "01a08747-bdd3-71b2-b949-3a74122f803c", "title": "Specify Your API", "url": "https://blog.drewolson.org/specify-your-api/", "published_at": "2016-08-05T00:00:00+00:00" }, { "id": "01a08747-bdd3-71b2-b949-3a74125ac7b6", "title": "Extensible Design with Protocols", "url": "https://blog.drewolson.org/extensible-design-with-protocols/", "published_at": "2016-03-19T00:00:00+00:00" }, { "id": "01a08747-bdd3-71b2-b949-3a7412ed1e5c", "title": "Elixir Streams", "url": "https://blog.drewolson.org/elixir-streams/", "published_at": "2015-06-08T00:00:00+00:00" }, { "id": "01a08747-bdd3-71b2-b949-3a7413d6422d", "title": "Sanity Tests", "url": "https://blog.drewolson.org/sanity-tests/", "published_at": "2015-05-29T00:00:00+00:00" }, { "id": "01a08747-bdd3-71b2-b949-3a741408d560", "title": "The Value of Explicitness", "url": "https://blog.drewolson.org/the-value-of-explicitness/", "published_at": "2015-04-03T00:00:00+00:00" }, { "id": "01a08747-bdd3-71b2-b949-3a7414c9fcb2", "title": "An Empathetic Functional Language", "url": "https://blog.drewolson.org/an-empathetic-functional-language/", "published_at": "2015-03-20T00:00:00+00:00" }, { "id": "01a08747-bdd3-71b2-b949-3a7415746a87", "title": "Pagination with Phoenix & Ecto", "url": "https://blog.drewolson.org/pagination-with-phoenix-ecto/", "published_at": "2015-02-20T00:00:00+00:00" }, { "id": "01a08747-bdd3-71b2-b949-3a7416704b4a", "title": "Composable Queries with Ecto", "url": "https://blog.drewolson.org/composable-queries-with-ecto/", "published_at": "2015-01-23T00:00:00+00:00" }, { "id": "01a08747-bdd3-71b2-b949-3a7417699f57", "title": "Building an Elixir Web App", "url": "https://blog.drewolson.org/building-an-elixir-web-app/", "published_at": "2015-01-19T00:00:00+00:00" }, { "id": "01a08747-bdd3-71b2-b949-3a74183ab321", "title": "Good Software Developers", "url": "https://blog.drewolson.org/good-software-developers/", "published_at": "2014-11-01T00:00:00+00:00" }, { "id": "01a08747-bdd3-71b2-b949-3a7418da69a5", "title": "Node Streams for APIs", "url": "https://blog.drewolson.org/node-streams-for-apis/", "published_at": "2014-01-04T00:00:00+00:00" }, { "id": "01a08747-bdd3-71b2-b949-3a7418dc9bfe", "title": "Understanding gen_server with Elixir and Ruby", "url": "https://blog.drewolson.org/understanding-gen_server-with-elixir-and-ruby/", "published_at": "2013-10-25T00:00:00+00:00" }, { "id": "01a08747-bdd3-71b2-b949-3a7419871b09", "title": "Clojure core.async and Go: A Code Comparison", "url": "https://blog.drewolson.org/clojure-core.async-and-go-a-code-comparison/", "published_at": "2013-07-04T00:00:00+00:00" } ] posts Claim your blog
Back to software is fun
Blog · corpus.blog/blogs/blog.drewolson.org/posts

software is fun

blog.drewolson.org

2024

2022

2021

2020

2019

2018

2017

2016

2015

2014

2013