56,966 blogs · [ { "id": "01a0e772-86a0-7034-a1bd-ecb5fd1f2994", "title": "Type-Level Programming in TypeScript", "url": "https://mjj.io/2021/03/29/type-level-programming-in-typescript/", "published_at": "2021-03-29T00:00:00+00:00" }, { "id": "01a0e772-86a0-7034-a1bd-ecb5fd64ee0d", "title": "Building a Passphrase Generator in Haskell", "url": "https://mjj.io/2021/01/26/building-a-passphrase-generator-in-haskell/", "published_at": "2021-01-26T00:00:00+00:00" }, { "id": "01a0e772-86a0-7034-a1bd-ecb5fe61cac6", "title": "Common Pitfalls in Ruby", "url": "https://mjj.io/2017/01/02/common-pitfalls-in-ruby/", "published_at": "2017-01-02T00:00:00+00:00" }, { "id": "01a0e772-86a0-7034-a1bd-ecb5feaeb92e", "title": "Curry On: A Retrospective", "url": "https://mjj.io/2016/07/20/curry-on-a-retrospective/", "published_at": "2016-07-20T00:00:00+00:00" }, { "id": "01a0e772-86a0-7034-a1bd-ecb5feef2594", "title": "2015 in Review", "url": "https://mjj.io/2016/01/01/2015-in-review/", "published_at": "2016-01-01T00:00:00+00:00" }, { "id": "01a0e772-86a0-7034-a1bd-ecb5ffceec44", "title": "Ruby Extensions in C", "url": "https://mjj.io/2015/02/07/ruby-extensions-in-c/", "published_at": "2015-02-07T00:00:00+00:00" }, { "id": "01a0e772-86a0-7034-a1bd-ecb6009d532f", "title": "Encrypting Files With GPG and Vim", "url": "https://mjj.io/2015/01/27/encrypting-files-with-gpg-and-vim/", "published_at": "2015-01-27T00:00:00+00:00" }, { "id": "01a0e772-86a0-7034-a1bd-ecb601240944", "title": "Curry Your Procs", "url": "https://mjj.io/2014/11/04/curry-your-procs/", "published_at": "2014-11-04T00:00:00+00:00" }, { "id": "01a0e772-86a0-7034-a1bd-ecb6020306d1", "title": "What We Talk About When We Talk About Rack", "url": "https://mjj.io/2014/09/27/what-we-talk-about-when-we-talk-about-rack/", "published_at": "2014-09-27T00:00:00+00:00" }, { "id": "01a0e772-86a0-7034-a1bd-ecb602e7cc3e", "title": "Investigating Sockets", "url": "https://mjj.io/2014/09/17/investigating-sockets/", "published_at": "2014-09-17T00:00:00+00:00" }, { "id": "01a0e772-86a0-7034-a1bd-ecb603839681", "title": "Kinesis Advantage Macros", "url": "https://mjj.io/2014/09/12/kinesis-advantage-macros/", "published_at": "2014-09-12T00:00:00+00:00" }, { "id": "01a0e772-86a0-7034-a1bd-ecb6045358e9", "title": "The Joy of .agignore", "url": "https://mjj.io/2014/08/05/the-joy-of-agignore/", "published_at": "2014-08-05T00:00:00+00:00" }, { "id": "01a0e772-86a0-7034-a1bd-ecb604ec59e0", "title": "Automate the Bastard", "url": "https://mjj.io/2014/02/13/automate-the-bastard/", "published_at": "2014-02-13T00:00:00+00:00" }, { "id": "01a0e772-86a0-7034-a1bd-ecb6052bb7b9", "title": "Make Preview Behave Like Vim", "url": "https://mjj.io/2014/01/19/make-preview-behave-like-vim/", "published_at": "2014-01-19T00:00:00+00:00" }, { "id": "01a0e772-86a0-7034-a1bd-ecb605365275", "title": "On Rails Controllers", "url": "https://mjj.io/2013/09/14/on-rails-controllers/", "published_at": "2013-09-14T00:00:00+00:00" }, { "id": "01a0e772-86a0-7034-a1bd-ecb6055ec1e7", "title": "Starting All Over Again", "url": "https://mjj.io/2013/09/07/starting-all-over-again/", "published_at": "2013-09-07T00:00:00+00:00" } ] posts Claim your blog
Back to mjj.io
Blog · corpus.blog/blogs/mjj.io/posts

mjj.io

mjj.io

2021

2017

2016

2015

2014

2013