41554 blogs · [ { "id": "01a08795-3552-71c0-9ba9-fef56e14a8e3", "title": "A (Nearly) Branchless RESP Request Parser", "url": "https://kevinmontrose.com/2025/09/15/a-nearly-branchless-resp-request-parser/", "published_at": "2025-09-15T12:00:00+00:00" }, { "id": "01a08795-3552-71c0-9ba9-fef56ef60a3e", "title": "Thoughts On Truth In Our Time", "url": "https://kevinmontrose.com/2025/01/16/thoughts-on-truth-in-our-time/", "published_at": "2025-01-16T22:34:04+00:00" }, { "id": "01a08795-3552-71c0-9ba9-fef56f128ec6", "title": "Another Optimization Exercise – Packing Sparse Headers", "url": "https://kevinmontrose.com/2022/06/16/another-optimization-exercise-packing-sparse-headers/", "published_at": "2022-06-16T20:00:41+00:00" }, { "id": "01a08795-3552-71c0-9ba9-fef56fff2dc2", "title": "Overthinking CSV With Cesil: .NET 5", "url": "https://kevinmontrose.com/2021/05/26/overthinking-csv-with-cesil-net-5/", "published_at": "2021-05-26T20:53:25+00:00" }, { "id": "01a08795-3552-71c0-9ba9-fef5705a3eaf", "title": "Overthinking CSV With Cesil: Source Generators", "url": "https://kevinmontrose.com/2021/02/05/overthinking-csv-with-cesil-source-generators/", "published_at": "2021-02-05T15:25:53+00:00" }, { "id": "01a08795-3552-71c0-9ba9-fef570d06532", "title": "Overthinking CSV With Cesil: Performance", "url": "https://kevinmontrose.com/2020/11/20/overthinking-csv-with-cesil-performance/", "published_at": "2020-11-20T20:32:25+00:00" }, { "id": "01a08795-3553-7094-9b22-987d15288d13", "title": "Overthinking CSV With Cesil: Open Source Update", "url": "https://kevinmontrose.com/2020/09/24/overthinking-csv-with-cesil-open-source-update/", "published_at": "2020-09-24T16:11:20+00:00" }, { "id": "01a08795-3553-7094-9b22-987d15a0cbe7", "title": "Overthinking CSV With Cesil: Documentation in 2020", "url": "https://kevinmontrose.com/2020/08/28/overthinking-csv-with-cesil-documentation-in-2020/", "published_at": "2020-08-28T16:02:53+00:00" }, { "id": "01a08795-3553-7094-9b22-987d160850f5", "title": "Overthinking CSV With Cesil: Testing And Code Coverage in 2020", "url": "https://kevinmontrose.com/2020/07/20/overthinking-csv-with-cesil-testing-and-code-coverage-in-2020/", "published_at": "2020-07-20T16:34:52+00:00" }, { "id": "01a08795-3553-7094-9b22-987d16232435", "title": "Overthinking CSV With Cesil: Adopting Nullable Reference Types", "url": "https://kevinmontrose.com/2020/07/07/overthinking-csv-with-cesil-adopting-nullable-reference-types/", "published_at": "2020-07-07T16:33:24+00:00" }, { "id": "01a0bb48-6612-71bf-a4a5-8ba0b57814e3", "title": "Overthinking CSV With Cesil: C# 8 Specifics", "url": "https://kevinmontrose.com/2020/06/30/overthinking-csv-with-cesil-c-8-specifics/", "published_at": "2020-06-30T16:32:00+00:00" }, { "id": "01a0bb48-6612-71bf-a4a5-8ba0b5f6a9fe", "title": "Overthinking CSV With Cesil: “Maximum” Flexibility", "url": "https://kevinmontrose.com/2020/06/24/overthinking-csv-with-cesil-maximum-flexibility/", "published_at": "2020-06-24T17:20:41+00:00" }, { "id": "01a0bb48-6612-71bf-a4a5-8ba0b653191c", "title": "Overthinking CSV With Cesil: Writing Dynamic Types", "url": "https://kevinmontrose.com/2020/06/16/overthinking-csv-with-cesil-writing-dynamic-types/", "published_at": "2020-06-16T22:45:17+00:00" }, { "id": "01a0bb48-6612-71bf-a4a5-8ba0b6aff23b", "title": "Overthinking CSV With Cesil: Writing Known Types", "url": "https://kevinmontrose.com/2020/06/12/overthinking-csv-with-cesil-writing-known-types/", "published_at": "2020-06-12T17:01:33+00:00" }, { "id": "01a0bb48-6612-71bf-a4a5-8ba0b771ebf9", "title": "Overthinking CSV With Cesil: Reading Dynamic Types", "url": "https://kevinmontrose.com/2020/06/08/overthinking-csv-with-cesil-reading-dynamic-types/", "published_at": "2020-06-08T16:24:50+00:00" }, { "id": "01a0bb48-6612-71bf-a4a5-8ba0b7b6c20d", "title": "Overthinking CSV With Cesil: Reading Known Types", "url": "https://kevinmontrose.com/2020/06/02/overthinking-csv-with-cesil-reading-known-types/", "published_at": "2020-06-02T16:55:20+00:00" }, { "id": "01a0bb48-6612-71bf-a4a5-8ba0b89374a4", "title": "Overthinking CSV With Cesil: A “Modern” Interface", "url": "https://kevinmontrose.com/2020/05/29/overthinking-csv-with-cesil-a-modern-interface/", "published_at": "2020-05-29T16:25:17+00:00" }, { "id": "01a0bb48-6612-71bf-a4a5-8ba0b89f3cbb", "title": "Overthinking CSV With Cesil: CSV Isn’t A Thing", "url": "https://kevinmontrose.com/2020/05/28/overthinking-csv-with-cesil-csv-isnt-a-thing/", "published_at": "2020-05-28T21:06:18+00:00" }, { "id": "01a0bb48-6612-71bf-a4a5-8ba0b92683d6", "title": "Overthinking CSV With Cesil: An Introduction", "url": "https://kevinmontrose.com/2020/05/28/overthinking-csv-with-cesil-an-introduction/", "published_at": "2020-05-28T21:05:09+00:00" }, { "id": "01a0bb48-6612-71bf-a4a5-8ba0b960fc41", "title": "Adding Static Code Analysis to Stack Overflow", "url": "https://kevinmontrose.com/2019/10/04/adding-static-code-analysis-to-stack-overflow/", "published_at": "2019-10-04T14:52:28+00:00" }, { "id": "01a0bb56-5343-70c8-a13b-5df386960733", "title": "Sabbatical Log: Retrospective", "url": "https://kevinmontrose.com/2019/01/30/sabbatical-log-retrospective/", "published_at": "2019-01-30T17:14:58+00:00" }, { "id": "01a0bb56-5343-70c8-a13b-5df3877fecd9", "title": "Sabbatical Log: December 1st and 2nd", "url": "https://kevinmontrose.com/2018/12/08/sabbatical-log-december-1st-and-2nd/", "published_at": "2018-12-08T16:15:33+00:00" }, { "id": "01a0bb56-5343-70c8-a13b-5df387b71e5c", "title": "Sabbatical Log: November 30th", "url": "https://kevinmontrose.com/2018/12/07/sabbatical-log-november-30th/", "published_at": "2018-12-07T13:32:33+00:00" }, { "id": "01a0bb56-5344-733a-8d7a-fd075588aea4", "title": "Sabbatical Log: November 29th", "url": "https://kevinmontrose.com/2018/12/06/sabbatical-log-november-29th/", "published_at": "2018-12-06T13:25:47+00:00" }, { "id": "01a0bb56-5344-733a-8d7a-fd0755e9fe64", "title": "Sabbatical Log: November 28th", "url": "https://kevinmontrose.com/2018/12/05/sabbatical-log-november-28th/", "published_at": "2018-12-05T13:21:46+00:00" }, { "id": "01a0bb56-5344-733a-8d7a-fd0756e0dd11", "title": "Sabbatical Log: November 27th", "url": "https://kevinmontrose.com/2018/12/04/sabbatical-log-november-27th/", "published_at": "2018-12-04T13:44:37+00:00" }, { "id": "01a0bb56-5344-733a-8d7a-fd0757b25703", "title": "Sabbatical Log: November 26th", "url": "https://kevinmontrose.com/2018/12/03/sabbatical-log-november-26th/", "published_at": "2018-12-03T13:26:21+00:00" }, { "id": "01a0bb56-5344-733a-8d7a-fd0758082d43", "title": "Sabbatical Log: November 25th", "url": "https://kevinmontrose.com/2018/12/02/sabbatical-log-november-25th/", "published_at": "2018-12-02T16:47:25+00:00" }, { "id": "01a0bb56-5344-733a-8d7a-fd0758aa6df2", "title": "Sabbatical Log: November 24th", "url": "https://kevinmontrose.com/2018/12/02/sabbatical-log-november-24th/", "published_at": "2018-12-02T16:44:17+00:00" }, { "id": "01a0bb56-5344-733a-8d7a-fd0758b0b806", "title": "Sabbatical Log: November 22nd and 23rd", "url": "https://kevinmontrose.com/2018/11/30/sabbatical-log-november-22nd-and-23rd/", "published_at": "2018-11-30T16:54:23+00:00" }, { "id": "01a0bb5b-bccf-729f-b839-ff605d6d9bbd", "title": "Sabbatical Log: November 21st", "url": "https://kevinmontrose.com/2018/11/29/sabbatical-log-november-21st/", "published_at": "2018-11-29T15:15:05+00:00" }, { "id": "01a0bb5b-bccf-729f-b839-ff605df60a85", "title": "Sabbatical Log: November 20th", "url": "https://kevinmontrose.com/2018/11/28/sabbatical-log-november-20th/", "published_at": "2018-11-28T14:58:42+00:00" }, { "id": "01a0bb5b-bccf-729f-b839-ff605ea8fc8e", "title": "Sabbatical Log: November 19th", "url": "https://kevinmontrose.com/2018/11/27/sabbatical-log-november-19th/", "published_at": "2018-11-27T15:26:17+00:00" }, { "id": "01a0bb5b-bccf-729f-b839-ff605f972a24", "title": "Sabbatical Log: November 18th", "url": "https://kevinmontrose.com/2018/11/26/sabbatical-log-november-18th/", "published_at": "2018-11-26T14:45:24+00:00" }, { "id": "01a0bb5b-bccf-729f-b839-ff606011dea2", "title": "Sabbatical Log: November 17th", "url": "https://kevinmontrose.com/2018/11/25/sabbatical-log-november-17th/", "published_at": "2018-11-25T17:31:55+00:00" }, { "id": "01a0bb5b-bccf-729f-b839-ff6060e3fd8e", "title": "Sabbatical Log: November 16th", "url": "https://kevinmontrose.com/2018/11/24/sabbatical-log-november-16th/", "published_at": "2018-11-24T18:46:31+00:00" }, { "id": "01a0bb5b-bccf-729f-b839-ff606166702d", "title": "Sabbatical Log: November 15th", "url": "https://kevinmontrose.com/2018/11/23/sabbatical-log-november-15th/", "published_at": "2018-11-23T18:37:22+00:00" }, { "id": "01a0bb5b-bccf-729f-b839-ff6062626d0a", "title": "Sabbatical Log: November 14th", "url": "https://kevinmontrose.com/2018/11/22/sabbatical-log-november-14th/", "published_at": "2018-11-22T16:34:39+00:00" }, { "id": "01a0bb5b-bccf-729f-b839-ff6062e1ce6c", "title": "Sabbatical Log: November 13th", "url": "https://kevinmontrose.com/2018/11/21/sabbatical-log-november-13th/", "published_at": "2018-11-21T14:24:41+00:00" }, { "id": "01a0bb5b-bccf-729f-b839-ff6063b1b3c3", "title": "Sabbatical Log: November 12th", "url": "https://kevinmontrose.com/2018/11/20/sabbatical-log-november-12th/", "published_at": "2018-11-20T14:55:40+00:00" }, { "id": "01a0bb63-c717-72a0-b4fb-bf3964d4be24", "title": "Sabbatical Log: November 11th", "url": "https://kevinmontrose.com/2018/11/19/sabbatical-log-november-11th/", "published_at": "2018-11-19T13:58:47+00:00" }, { "id": "01a0bb63-c717-72a0-b4fb-bf396578b38d", "title": "Sabbatical Log: November 10th", "url": "https://kevinmontrose.com/2018/11/18/sabbatical-log-november-10th/", "published_at": "2018-11-18T18:06:16+00:00" }, { "id": "01a0bb63-c717-72a0-b4fb-bf3966341b97", "title": "Sabbatical Log: November 9th", "url": "https://kevinmontrose.com/2018/11/17/sabbatical-log-november-9th/", "published_at": "2018-11-17T14:50:54+00:00" }, { "id": "01a0bb63-c717-72a0-b4fb-bf3967244f01", "title": "Sabbatical Log: November 8th", "url": "https://kevinmontrose.com/2018/11/16/sabbatical-log-november-8th/", "published_at": "2018-11-16T14:13:09+00:00" }, { "id": "01a0bb63-c717-72a0-b4fb-bf3967937efc", "title": "Sabbatical Log: November 7th", "url": "https://kevinmontrose.com/2018/11/15/sabbatical-log-november-7th/", "published_at": "2018-11-15T14:27:46+00:00" }, { "id": "01a0bb63-c717-72a0-b4fb-bf3968877cc6", "title": "Sabbatical Log: November 6th", "url": "https://kevinmontrose.com/2018/11/14/sabbatical-log-november-6th/", "published_at": "2018-11-14T16:28:27+00:00" }, { "id": "01a0bb63-c717-72a0-b4fb-bf396917747c", "title": "Sabbatical Log: November 5th", "url": "https://kevinmontrose.com/2018/11/13/sabbatical-log-november-5th/", "published_at": "2018-11-13T14:13:56+00:00" }, { "id": "01a0bb63-c717-72a0-b4fb-bf396980c610", "title": "Sabbatical Log: November 4th", "url": "https://kevinmontrose.com/2018/11/12/sabbatical-log-november-4th/", "published_at": "2018-11-12T15:17:35+00:00" }, { "id": "01a0bb63-c717-72a0-b4fb-bf3969d9b654", "title": "Sabbatical Log: November 3rd", "url": "https://kevinmontrose.com/2018/11/11/sabbatical-log-november-3rd/", "published_at": "2018-11-11T15:33:35+00:00" }, { "id": "01a0bb63-c717-72a0-b4fb-bf396a8e5989", "title": "Sabbatical Log: November 2nd", "url": "https://kevinmontrose.com/2018/11/10/sabbatical-log-november-2nd/", "published_at": "2018-11-10T16:26:18+00:00" }, { "id": "01a0bb69-c7f6-7276-8d27-97975328d549", "title": "Sabbatical Log: November 1st", "url": "https://kevinmontrose.com/2018/11/09/sabbatical-log-november-1st/", "published_at": "2018-11-09T16:30:54+00:00" }, { "id": "01a0bb69-c7f6-7276-8d27-97975380907a", "title": "LinqAF: Release 3.0.0", "url": "https://kevinmontrose.com/2018/06/10/linqaf-release-3-0-0/", "published_at": "2018-06-10T17:48:16+00:00" }, { "id": "01a0bb69-c7f6-7276-8d27-9797540d071c", "title": "LinqAF: The (possible) future", "url": "https://kevinmontrose.com/2018/01/26/linqaf-the-possible-future/", "published_at": "2018-01-26T16:57:48+00:00" }, { "id": "01a0bb69-c7f6-7276-8d27-979754a82f83", "title": "LinqAF: Benchmarks", "url": "https://kevinmontrose.com/2018/01/25/linqaf-benchmarks/", "published_at": "2018-01-25T17:02:20+00:00" }, { "id": "01a0bb69-c7f6-7276-8d27-979754bf1acd", "title": "LinqAF: Testing", "url": "https://kevinmontrose.com/2018/01/24/linqaf-testing/", "published_at": "2018-01-24T22:50:10+00:00" }, { "id": "01a0bb69-c7f6-7276-8d27-97975531b66d", "title": "LinqAF: SelectMany and boxing", "url": "https://kevinmontrose.com/2018/01/23/linqaf-selectmany-and-boxing/", "published_at": "2018-01-23T17:09:38+00:00" }, { "id": "01a0bb69-c7f6-7276-8d27-97975605d31b", "title": "LinqAF: Allocating", "url": "https://kevinmontrose.com/2018/01/22/linqaf-allocating/", "published_at": "2018-01-22T16:54:36+00:00" }, { "id": "01a0bb69-c7f6-7276-8d27-979756c7dda6", "title": "LinqAF: All the operations", "url": "https://kevinmontrose.com/2018/01/19/linqaf-all-the-operations/", "published_at": "2018-01-19T16:58:21+00:00" }, { "id": "01a0bb69-c7f6-7276-8d27-97975751997a", "title": "LinqAF: Generating way too much code", "url": "https://kevinmontrose.com/2018/01/18/linqaf-generating-way-too-much-code/", "published_at": "2018-01-18T17:00:08+00:00" }, { "id": "01a0bb69-c7f6-7276-8d27-9797576dad0b", "title": "LinqAF: Replacing LINQ and not allocating", "url": "https://kevinmontrose.com/2018/01/17/linqaf-replacing-linq-and-not-allocating/", "published_at": "2018-01-17T16:55:27+00:00" }, { "id": "01a0bb6d-de7b-72cc-b385-ebcfb93c3590", "title": "LinqAF: A series of questionable ideas", "url": "https://kevinmontrose.com/2018/01/16/linqaf-a-series-of-questionable-ideas/", "published_at": "2018-01-16T17:36:29+00:00" }, { "id": "01a0bb6d-de7b-72cc-b385-ebcfb9ba3779", "title": "An Optimization Exercise", "url": "https://kevinmontrose.com/2016/04/26/an-optimization-exercise/", "published_at": "2016-04-26T13:55:20+00:00" }, { "id": "01a0bb6d-de7b-72cc-b385-ebcfba329a8f", "title": "Scripting and Profiling Improvements in StackExchange.Redis", "url": "https://kevinmontrose.com/2015/07/24/scripting-and-profiling-improvements-in-stackexchange-redis/", "published_at": "2015-07-24T18:58:47+00:00" }, { "id": "01a0bb6d-de7b-72cc-b385-ebcfba742234", "title": "Providence: Matching people to jobs", "url": "https://kevinmontrose.com/2015/02/04/providence-matching-people-to-jobs/", "published_at": "2015-02-04T00:34:30+00:00" }, { "id": "01a0bb6d-de7b-72cc-b385-ebcfbaa9d853", "title": "Providence: What technologies do you know?", "url": "https://kevinmontrose.com/2015/01/29/providence-what-technologies-do-you-know/", "published_at": "2015-01-29T20:00:53+00:00" }, { "id": "01a0bb6d-de7b-72cc-b385-ebcfbb67f2e7", "title": "Providence: Machine Learning At Stack Exchange", "url": "https://kevinmontrose.com/2015/01/27/providence-machine-learning-at-stack-exchange/", "published_at": "2015-01-27T17:10:16+00:00" }, { "id": "01a0bb6d-de7b-72cc-b385-ebcfbba0b5de", "title": "Jil: Version 2.x, Dynamic Serialization, And More", "url": "https://kevinmontrose.com/2014/09/15/jil-version-2-x-dynamic-serialization-and-more/", "published_at": "2014-09-15T20:38:17+00:00" }, { "id": "01a0bb6d-de7b-72cc-b385-ebcfbbeacd86", "title": "Jil: Dynamic Deserialization", "url": "https://kevinmontrose.com/2014/04/14/jil-dynamic-deserialization/", "published_at": "2014-04-14T17:15:21+00:00" }, { "id": "01a0bb6d-de7b-72cc-b385-ebcfbc30e8f4", "title": "Jil: Doing JSON Really, Really Quickly", "url": "https://kevinmontrose.com/2014/02/03/jil-doing-json-really-really-quickly/", "published_at": "2014-02-03T18:22:30+00:00" }, { "id": "01a0bb6d-de7b-72cc-b385-ebcfbd30bdc6", "title": "Jil: Serializing JSON Really, Really Quickly", "url": "https://kevinmontrose.com/2013/11/13/jil-serializing-json-really-really-quickly/", "published_at": "2013-11-13T16:39:56+00:00" }, { "id": "01a0bb71-a1cf-73a1-b5b1-c2037b4414d8", "title": "Your Future On Stack Overflow", "url": "https://kevinmontrose.com/2013/05/22/your-future-on-stack-overflow/", "published_at": "2013-05-22T18:00:28+00:00" }, { "id": "01a0bb71-a1cf-73a1-b5b1-c2037b45e88c", "title": "Making Magic: How Sigil Works", "url": "https://kevinmontrose.com/2013/05/16/making-magic-how-sigil-works/", "published_at": "2013-05-16T18:05:16+00:00" }, { "id": "01a0bb71-a1cf-73a1-b5b1-c2037b612a5d", "title": "Improving Sigil", "url": "https://kevinmontrose.com/2013/03/04/improving-sigil/", "published_at": "2013-03-04T21:02:12+00:00" }, { "id": "01a0bb71-a1cf-73a1-b5b1-c2037b6bc177", "title": "Sigil: Adding Some (More) Magic To IL", "url": "https://kevinmontrose.com/2013/02/14/sigil-adding-some-more-magic-to-il/", "published_at": "2013-02-14T18:32:12+00:00" }, { "id": "01a0bb71-a1cf-73a1-b5b1-c2037c1ff25e", "title": "Public Broadcasting: A Self-Describing Wrapper Around protobuf-net", "url": "https://kevinmontrose.com/2012/12/07/public-broadcasting-a-self-describing-wrapper-around-protobuf-net/", "published_at": "2012-12-07T19:37:38+00:00" }, { "id": "01a0bb71-a1cf-73a1-b5b1-c2037d1219bc", "title": "Kids These Days", "url": "https://kevinmontrose.com/2012/11/04/kids-these-days/", "published_at": "2012-11-04T16:37:04+00:00" }, { "id": "01a0bb71-a1cf-73a1-b5b1-c2037d4332cc", "title": "Trustable Online Community Elections", "url": "https://kevinmontrose.com/2012/08/04/trustable-online-community-elections/", "published_at": "2012-08-04T16:40:02+00:00" }, { "id": "01a0bb71-a1cf-73a1-b5b1-c2037d71eceb", "title": "Are you measuring your social media buttons?", "url": "https://kevinmontrose.com/2012/06/20/are-you-measuring-your-social-media-buttons/", "published_at": "2012-06-20T15:42:18+00:00" }, { "id": "01a0bb71-a1cf-73a1-b5b1-c2037dc46f6b", "title": "Extending Type Inferencing in C#", "url": "https://kevinmontrose.com/2012/06/10/extending-type-inferencing-in-c/", "published_at": "2012-06-10T02:34:06+00:00" }, { "id": "01a0bb71-a1cf-73a1-b5b1-c2037ec4221c", "title": "More, a CSS compiler", "url": "https://kevinmontrose.com/2012/05/08/more-a-css-compiler/", "published_at": "2012-05-08T20:15:07+00:00" }, { "id": "01a0bb75-1072-73b9-9b0c-a9b4625d7194", "title": "Committing A Horrible Atrocity Against C#", "url": "https://kevinmontrose.com/2012/05/05/committing-a-horrible-atrocity-against-c/", "published_at": "2012-05-05T20:00:40+00:00" }, { "id": "01a0bb75-1072-73b9-9b0c-a9b462f2b2e0", "title": "Stack Exchange API V2.0: Throttling", "url": "https://kevinmontrose.com/2012/03/22/stack-exchange-api-v2-0-throttling/", "published_at": "2012-03-22T22:07:46+00:00" }, { "id": "01a0bb75-1072-73b9-9b0c-a9b463e2973e", "title": "An Absurd Experiment In String Parsing", "url": "https://kevinmontrose.com/2012/02/26/an-absurd-experiment-in-string-parsing/", "published_at": "2012-02-26T07:47:18+00:00" }, { "id": "01a0bb75-1072-73b9-9b0c-a9b46450d6c1", "title": "Stack Exchange API V2.0: The Stable Future", "url": "https://kevinmontrose.com/2012/02/22/stack-exchange-api-v2-0-the-stable-future/", "published_at": "2012-02-22T21:45:26+00:00" }, { "id": "01a0bb75-1072-73b9-9b0c-a9b46536ba02", "title": "Stack Exchange API V2.0: Consistency", "url": "https://kevinmontrose.com/2012/02/16/stack-exchange-api-v2-0-consistency/", "published_at": "2012-02-16T01:27:13+00:00" }, { "id": "01a0bb75-1072-73b9-9b0c-a9b4655c9020", "title": "Stack Exchange API V2.0: Safety", "url": "https://kevinmontrose.com/2012/02/08/stack-exchange-api-v2-0-safety/", "published_at": "2012-02-08T22:12:54+00:00" }, { "id": "01a0bb75-1072-73b9-9b0c-a9b4660a56ef", "title": "Stack Exchange API V2.0: No Write Access", "url": "https://kevinmontrose.com/2012/02/01/stack-exchange-api-v2-0-no-write-access/", "published_at": "2012-02-01T22:19:32+00:00" }, { "id": "01a0bb75-1072-73b9-9b0c-a9b4664f5f20", "title": "Stack Exchange API V2.0: JS Auth Library", "url": "https://kevinmontrose.com/2012/01/25/stack-exchange-api-v2-0-js-auth-library/", "published_at": "2012-01-25T22:23:42+00:00" }, { "id": "01a0bb75-1072-73b9-9b0c-a9b4673ac51f", "title": "Stack Exchange API V2.0: Authentication", "url": "https://kevinmontrose.com/2012/01/18/stack-exchange-api-v2-0-authentication/", "published_at": "2012-01-18T20:44:35+00:00" }, { "id": "01a0bb75-1072-73b9-9b0c-a9b4680bcbdb", "title": "Stack Exchange API V2.0: Implementing Filters", "url": "https://kevinmontrose.com/2012/01/11/stack-exchange-api-v2-0-implementing-filters/", "published_at": "2012-01-11T21:20:02+00:00" }, { "id": "01a0bb78-4235-72aa-a872-585f0eba01fa", "title": "Stack Exchange API V2.0: Filters", "url": "https://kevinmontrose.com/2012/01/06/stack-exchange-api-v2-0-filters/", "published_at": "2012-01-06T23:18:59+00:00" }, { "id": "01a0bb78-4235-72aa-a872-585f0f7bd506", "title": "Disabling Third-Party Cookies Doesn’t (Meaningfully) Improve Privacy", "url": "https://kevinmontrose.com/2011/09/26/disabling-third-party-cookies-doesnt-meaningfully-improve-privacy/", "published_at": "2011-09-26T02:30:39+00:00" }, { "id": "01a0bb78-4235-72aa-a872-585f1059b956", "title": "History Of The Stack Exchange API, Version 1.1", "url": "https://kevinmontrose.com/2011/09/06/history-of-the-stack-exchange-api-version-1-1/", "published_at": "2011-09-06T05:30:22+00:00" }, { "id": "01a0bb78-4235-72aa-a872-585f110a9f3d", "title": "History Of The Stack Exchange API, Mistakes", "url": "https://kevinmontrose.com/2011/08/14/history-of-the-stack-exchange-api-mistakes/", "published_at": "2011-08-14T01:00:48+00:00" }, { "id": "01a0bb78-4235-72aa-a872-585f11698328", "title": "History Of The Stack Exchange API, Version 1.0", "url": "https://kevinmontrose.com/2011/08/07/history-of-the-stack-exchange-api-version-1-0/", "published_at": "2011-08-07T04:30:10+00:00" }, { "id": "01a0bb78-4235-72aa-a872-585f121dffa0", "title": "Your Email Is (Practically) Your Identity", "url": "https://kevinmontrose.com/2011/07/31/your-email-is-practically-your-identity/", "published_at": "2011-07-31T04:30:22+00:00" }, { "id": "01a0bb78-4235-72aa-a872-585f1237cefb", "title": "Why I Love Attribute Based Routing", "url": "https://kevinmontrose.com/2011/07/25/why-i-love-attribute-based-routing/", "published_at": "2011-07-25T02:00:32+00:00" }, { "id": "01a0bb78-4235-72aa-a872-585f12d36233", "title": "Mobile Views in ASP.NET MVC3", "url": "https://kevinmontrose.com/2011/07/17/mobile-views-in-asp-net-mvc3/", "published_at": "2011-07-17T04:00:53+00:00" } ] posts Claim your blog
Back to kevinmontrose.com
Blog · corpus.blog/blogs/kevinmontrose.com/posts

kevinmontrose.com

kevinmontrose.com

2025

2022

2021

2020

2019

2018

2016

2015

2014

2013

2012

2011