41554 blogs · [ { "id": "01a087a3-c59a-7370-8337-3dc3141eb6a7", "title": "Source Generator Course Published", "url": "https://melgrubb.com/2025/06/28/source-generator-course-published/", "published_at": "2025-06-28T12:59:27+00:00" }, { "id": "01a087a3-c59a-7370-8337-3dc314905212", "title": "Repositories are dead. Long live repositories.", "url": "https://melgrubb.com/2021/10/09/repositories-are-dead-long-live-repositories/", "published_at": "2021-10-09T15:00:55+00:00" }, { "id": "01a087a3-c59a-7370-8337-3dc315847f0c", "title": ".Net Source Generators", "url": "https://melgrubb.com/2021/06/21/net-source-generators/", "published_at": "2021-06-21T12:43:42+00:00" }, { "id": "01a087a3-c59a-7370-8337-3dc31680e3fa", "title": "Don’t Repeat Yourself (Meta Edition)", "url": "https://melgrubb.com/2019/11/29/dont-repeat-yourself-meta-edition/", "published_at": "2019-11-29T20:42:02+00:00" }, { "id": "01a087a3-c59a-7370-8337-3dc316f77256", "title": "Notes: Including and Excluding Assemblies from Code Coverage", "url": "https://melgrubb.com/2019/10/17/notes-including-and-excluding-assemblies-from-code-coverage/", "published_at": "2019-10-17T17:00:10+00:00" }, { "id": "01a087a3-c59a-7370-8337-3dc31773aa78", "title": "Fit and Finish", "url": "https://melgrubb.com/2018/12/01/fit-and-finish/", "published_at": "2018-12-01T13:55:54+00:00" }, { "id": "01a087a3-c59a-7370-8337-3dc317f66198", "title": "The Eternal Journeyman", "url": "https://melgrubb.com/2018/10/06/the-eternal-journeyman/", "published_at": "2018-10-06T13:06:19+00:00" }, { "id": "01a087a3-c59a-7370-8337-3dc318ec1111", "title": "Pluralsight Course Updated", "url": "https://melgrubb.com/2018/07/15/pluralsight-course-updated/", "published_at": "2018-07-15T12:00:13+00:00" }, { "id": "01a087a3-c59a-7370-8337-3dc3197449bd", "title": "External SSH access on the Raspberry Pi", "url": "https://melgrubb.com/2018/02/05/external-ssh-access-on-the-raspberry-pi/", "published_at": "2018-02-05T17:10:56+00:00" }, { "id": "01a087a3-c59a-7370-8337-3dc319b85246", "title": "CrashPlan is dead", "url": "https://melgrubb.com/2017/08/23/crashplan-is-dead/", "published_at": "2017-08-23T22:41:55+00:00" }, { "id": "01a0bb92-91ef-731f-a031-47193dde4a7d", "title": "Upgrading from Jessie to Stretch", "url": "https://melgrubb.com/2017/08/19/upgrading-from-jessie-to-stretch/", "published_at": "2017-08-19T16:23:55+00:00" }, { "id": "01a0bb92-91ef-731f-a031-47193e09bb13", "title": "Raspbian Stretch Released", "url": "https://melgrubb.com/2017/08/17/raspbian-stretch-released/", "published_at": "2017-08-17T16:18:51+00:00" }, { "id": "01a0bb92-91ef-731f-a031-47193e2558a1", "title": "CrashPlan Experiment", "url": "https://melgrubb.com/2017/06/10/crashplan-returns/", "published_at": "2017-06-10T15:37:03+00:00" }, { "id": "01a0bb92-91ef-731f-a031-47193e9c792c", "title": "Adding an “Emergency Stop” button to the Raspberry Pi", "url": "https://melgrubb.com/2017/03/05/rphs-emergency-stop/", "published_at": "2017-03-05T15:32:12+00:00" }, { "id": "01a0bb92-91ef-731f-a031-47193ef08e54", "title": "Raspberry Pi Home Server v2: Creating a Home Page", "url": "https://melgrubb.com/2016/12/11/rphs-v2-home-page/", "published_at": "2016-12-11T17:17:55+00:00" }, { "id": "01a0bb92-91ef-731f-a031-47193fda4e60", "title": "Raspberry Pi Home Server v2: Syncthing", "url": "https://melgrubb.com/2016/12/11/rphs-v2-syncthing/", "published_at": "2016-12-11T17:16:04+00:00" }, { "id": "01a0bb92-91ef-731f-a031-47193fe69cb2", "title": "Raspberry Pi Home Server v2: Web Administration", "url": "https://melgrubb.com/2016/12/11/rphs-v2-webmin/", "published_at": "2016-12-11T17:15:36+00:00" }, { "id": "01a0bb92-91ef-731f-a031-47194053ca7b", "title": "Raspberry Pi Home Server v2: CrashPlan-less CrashPlan", "url": "https://melgrubb.com/2016/12/11/rphs-v2-crashplanless/", "published_at": "2016-12-11T17:14:38+00:00" }, { "id": "01a0bb92-91ef-731f-a031-471940e859a5", "title": "Raspberry Pi Home Server v2: Transmission", "url": "https://melgrubb.com/2016/12/11/rphs-v2-transmission/", "published_at": "2016-12-11T17:13:59+00:00" }, { "id": "01a0bb92-91ef-731f-a031-4719415b8f69", "title": "Raspberry Pi Home Server v2: Backing up the OS partition", "url": "https://melgrubb.com/2016/12/11/rphs-v2-backuphdd/", "published_at": "2016-12-11T17:12:18+00:00" }, { "id": "01a0bb9e-50e8-7171-bd0d-dc34e7a6e4b4", "title": "Raspberry Pi Home Server v2: Booting from the hard drive", "url": "https://melgrubb.com/2016/12/11/rphs-v2-hddbooting/", "published_at": "2016-12-11T17:11:38+00:00" }, { "id": "01a0bb9e-50e8-7171-bd0d-dc34e8609abb", "title": "Raspberry Pi Home Server v2: Network UPS Tools", "url": "https://melgrubb.com/2016/12/11/rphs-v2-ups/", "published_at": "2016-12-11T17:10:23+00:00" }, { "id": "01a0bb9e-50e9-7350-adfc-122d6b5a4f5c", "title": "Raspberry Pi Home Server v2: Resilio Sync", "url": "https://melgrubb.com/2016/12/11/rphs-v2-btsync/", "published_at": "2016-12-11T17:09:19+00:00" }, { "id": "01a0bb9e-50e9-7350-adfc-122d6bd1d2f9", "title": "Raspberry Pi Home Server v2: OpenVPN", "url": "https://melgrubb.com/2016/12/11/rphs-v2-openvpn/", "published_at": "2016-12-11T17:08:14+00:00" }, { "id": "01a0bb9e-50e9-7350-adfc-122d6be91cfe", "title": "Raspberry Pi Home Server v2: Sharing Media with MiniDLNA", "url": "https://melgrubb.com/2016/12/11/rphs-v2-minidlna/", "published_at": "2016-12-11T17:07:08+00:00" }, { "id": "01a0bb9e-50e9-7350-adfc-122d6c103006", "title": "Raspberry Pi Home Server v2: Sharing Files with Samba", "url": "https://melgrubb.com/2016/12/11/rphs-v2-samba/", "published_at": "2016-12-11T17:06:03+00:00" }, { "id": "01a0bb9e-50e9-7350-adfc-122d6c16e43f", "title": "Raspberry Pi Home Server v2: Adding a Hard Drive", "url": "https://melgrubb.com/2016/12/11/rphs-v2-hdd/", "published_at": "2016-12-11T17:05:37+00:00" }, { "id": "01a0bb9e-50e9-7350-adfc-122d6cf7fc2a", "title": "Raspberry Pi Home Server v2: Remote Desktop", "url": "https://melgrubb.com/2016/12/11/rphs-v2-vnc/", "published_at": "2016-12-11T17:04:59+00:00" }, { "id": "01a0bb9e-50e9-7350-adfc-122d6df51074", "title": "Raspberry Pi Home Server v2: Network Configuration", "url": "https://melgrubb.com/2016/12/11/rphs-v2-network/", "published_at": "2016-12-11T17:03:09+00:00" }, { "id": "01a0bb9e-50e9-7350-adfc-122d6e650194", "title": "Raspberry Pi Home Server v2: Trimming the Fat", "url": "https://melgrubb.com/2016/12/11/rphs-v2-trimming-the-fat/", "published_at": "2016-12-11T17:02:13+00:00" }, { "id": "01a0bba4-4142-7041-8fab-a54b987cec04", "title": "Raspberry Pi Home Server v2: Installing the OS", "url": "https://melgrubb.com/2016/12/11/rphs-v2-installing-the-os/", "published_at": "2016-12-11T17:02:04+00:00" }, { "id": "01a0bba4-4142-7041-8fab-a54b98fd6083", "title": "Raspberry Pi Home Server v2: Meet the Raspberry Pi", "url": "https://melgrubb.com/2016/12/11/rphs-v2-meet-the-raspberry-pi/", "published_at": "2016-12-11T17:01:32+00:00" }, { "id": "01a0bba4-4142-7041-8fab-a54b99143aac", "title": "Raspberry Pi Home Server v2: Introduction", "url": "https://melgrubb.com/2016/12/11/rphs-v2-introduction/", "published_at": "2016-12-11T17:00:36+00:00" }, { "id": "01a0bba4-4142-7041-8fab-a54b99ab094c", "title": "Almost there", "url": "https://melgrubb.com/2016/12/08/almost-there/", "published_at": "2016-12-09T03:58:13+00:00" }, { "id": "01a0bba4-4142-7041-8fab-a54b9a58cf7f", "title": "State of the Blog", "url": "https://melgrubb.com/2016/11/13/state-of-the-blog/", "published_at": "2016-11-13T22:19:38+00:00" }, { "id": "01a0bba4-4142-7041-8fab-a54b9af22cae", "title": "Raspberry Pi Home Server: Changes", "url": "https://melgrubb.com/2016/10/04/raspberry-pi-home-server-changes/", "published_at": "2016-10-04T16:39:21+00:00" }, { "id": "01a0bba4-4142-7041-8fab-a54b9b01e06a", "title": "Backing up a Pi that boots from the hard drive", "url": "https://melgrubb.com/2016/07/10/backing-up-a-pi-that-boots-from-the-hard-drive/", "published_at": "2016-07-10T21:23:58+00:00" }, { "id": "01a0bba4-4142-7041-8fab-a54b9b68db36", "title": "CrashPi Zero?", "url": "https://melgrubb.com/2015/11/27/crashpi-zero/", "published_at": "2015-11-27T16:01:30+00:00" }, { "id": "01a0bba4-4142-7041-8fab-a54b9b9a6eda", "title": "CrashPi – An off-Site backup for the whole family", "url": "https://melgrubb.com/2015/11/24/crashpi-an-off-site-backup-for-the-whole-family/", "published_at": "2015-11-24T14:32:52+00:00" }, { "id": "01a0bba4-4142-7041-8fab-a54b9bda019d", "title": "Raspbian Jessie released", "url": "https://melgrubb.com/2015/09/29/raspbian-jessie-released/", "published_at": "2015-09-29T12:13:00+00:00" }, { "id": "01a0bba9-7cb3-71a3-be49-6eca1a4bd4da", "title": "The Raspberry Pi Home Server series is now on Pluralsight", "url": "https://melgrubb.com/2015/08/07/the-raspberry-pi-home-server-series-is-now-on-pluralsight/", "published_at": "2015-08-07T13:33:37+00:00" }, { "id": "01a0bba9-7cb3-71a3-be49-6eca1b0608d3", "title": "Raspberry Pi Home Server: Part 15b – Adding more Pis to the UPS", "url": "https://melgrubb.com/2015/02/28/raspberry-pi-home-server-part-15b-adding-more-pis-to-the-ups/", "published_at": "2015-03-01T00:25:10+00:00" }, { "id": "01a0bba9-7cb3-71a3-be49-6eca1bd49167", "title": "Raspberry Pi Home Server: Part 15–Power Failures", "url": "https://melgrubb.com/2014/09/05/raspberry-pi-home-server-part-15power-failures/", "published_at": "2014-09-06T01:22:25+00:00" }, { "id": "01a0bba9-7cb3-71a3-be49-6eca1c0dd9b1", "title": "Raspberry Pi Home Server: Part 14, BitTorrent Sync", "url": "https://melgrubb.com/2014/08/03/raspberry-pi-home-server-part-14-bittorrent-sync/", "published_at": "2014-08-04T01:49:10+00:00" }, { "id": "01a0bba9-7cb3-71a3-be49-6eca1c7e3a01", "title": "Raspberry Pi Home Server: Extra, SD cards gone bad", "url": "https://melgrubb.com/2014/08/01/raspberry-pi-home-server-extra-sd-cards-gone-bad/", "published_at": "2014-08-01T06:14:00+00:00" }, { "id": "01a0bba9-7cb3-71a3-be49-6eca1d705301", "title": "Raspberry Pi Home Server: Part 13, WordPress", "url": "https://melgrubb.com/2014/08/01/raspberry-pi-home-server-part-13-wordpress/", "published_at": "2014-08-01T06:13:00+00:00" }, { "id": "01a0bba9-7cb3-71a3-be49-6eca1d986008", "title": "Raspberry Pi Home Server: Part 12, The LAMP Stack", "url": "https://melgrubb.com/2014/08/01/raspberry-pi-home-server-part-12-the-lamp-stack/", "published_at": "2014-08-01T06:12:40+00:00" }, { "id": "01a0bba9-7cb3-71a3-be49-6eca1dc9c827", "title": "Raspberry Pi Home Server: Part 11, OpenVPN", "url": "https://melgrubb.com/2014/08/01/raspberry-pi-home-server-part-11-openvpn-2/", "published_at": "2014-08-01T06:11:50+00:00" }, { "id": "01a0bba9-7cb3-71a3-be49-6eca1e6aea50", "title": "Raspberry Pi Home Server: Part 9, Transmission", "url": "https://melgrubb.com/2014/08/01/raspberry-pi-home-server-part-9-transmission/", "published_at": "2014-08-01T06:09:00+00:00" }, { "id": "01a0bba9-7cb3-71a3-be49-6eca1f1f6494", "title": "Raspberry Pi Home Server: Part 8, MiniDLNA Media Server", "url": "https://melgrubb.com/2014/08/01/raspberry-pi-home-server-part-8-minidlna-media-server/", "published_at": "2014-08-01T06:08:00+00:00" }, { "id": "01a0bbae-7917-72d0-b0bc-0efdac236d0f", "title": "Raspberry Pi Home Server: Part 7, Sharing Files With Samba", "url": "https://melgrubb.com/2014/08/01/raspberry-pi-home-server-part-7-file-sharing/", "published_at": "2014-08-01T06:07:00+00:00" }, { "id": "01a0bbae-7917-72d0-b0bc-0efdacf30935", "title": "Raspberry Pi Home Server: Part 6, Adding a hard drive", "url": "https://melgrubb.com/2014/08/01/raspberry-pi-home-server-part-6-adding-a-hard-drive/", "published_at": "2014-08-01T06:06:00+00:00" }, { "id": "01a0bbae-7917-72d0-b0bc-0efdad2cd460", "title": "Raspberry Pi Home Server: Part 4, Web Administration", "url": "https://melgrubb.com/2014/08/01/raspberry-pi-home-server-part-4-web-administration/", "published_at": "2014-08-01T06:04:00+00:00" }, { "id": "01a0bbae-7917-72d0-b0bc-0efdadf1453c", "title": "Raspberry Pi Home Server: Part 3, Configuring the OS", "url": "https://melgrubb.com/2014/08/01/raspberry-pi-home-server-part-3-configuring-the-os/", "published_at": "2014-08-01T06:03:00+00:00" }, { "id": "01a0bbae-7917-72d0-b0bc-0efdae199f0d", "title": "Raspberry Pi Home Server: Part 2, Installing the OS", "url": "https://melgrubb.com/2014/08/01/raspberry-pi-home-server-part-2-installing-the-os/", "published_at": "2014-08-01T06:02:00+00:00" }, { "id": "01a0bbae-7917-72d0-b0bc-0efdae984870", "title": "Raspberry Pi Home Server: Part 1, Meet the Raspberry Pi", "url": "https://melgrubb.com/2014/08/01/raspberry-pi-home-server-part-1-meet-the-raspberry-pi/", "published_at": "2014-08-01T06:01:00+00:00" }, { "id": "01a0bbae-7917-72d0-b0bc-0efdaf242214", "title": "Raspberry Pi Home Server: Index", "url": "https://melgrubb.com/2014/08/01/raspberry-pi-home-server-index/", "published_at": "2014-08-01T06:00:00+00:00" }, { "id": "01a0bbae-7917-72d0-b0bc-0efdaff6412a", "title": "Raspberry Pi Home Server: Part 10, CrashPlan", "url": "https://melgrubb.com/2014/08/01/raspberry-pi-home-server-part-10-crashplan/", "published_at": "2014-08-01T05:10:00+00:00" }, { "id": "01a0bbae-7917-72d0-b0bc-0efdb0d631b4", "title": "Raspberry Pi Home Server: Part 5, Remote Desktop", "url": "https://melgrubb.com/2014/08/01/raspberry-pi-home-server-part-5-remote-desktop/", "published_at": "2014-08-01T05:05:00+00:00" }, { "id": "01a0bbae-7917-72d0-b0bc-0efdb1198b4e", "title": "Urinal Code Kata", "url": "https://melgrubb.com/2012/01/16/urinal-code-kata/", "published_at": "2012-01-16T21:22:27+00:00" }, { "id": "01a0bbb3-6c8a-701c-a06e-a8c3b3d6c6a6", "title": "First-class testing code", "url": "https://melgrubb.com/2011/12/22/first-class-testing-code/", "published_at": "2011-12-22T14:05:31+00:00" }, { "id": "01a0bbb3-6c8a-701c-a06e-a8c3b4a687f3", "title": "CodeMash, Can you dig it?", "url": "https://melgrubb.com/2011/01/09/codemash-can-you-dig-it/", "published_at": "2011-01-09T15:17:47+00:00" }, { "id": "01a0bbb3-6c8a-701c-a06e-a8c3b5550203", "title": "A matter of perception", "url": "https://melgrubb.com/2010/05/23/a-matter-of-perception/", "published_at": "2010-05-23T13:57:49+00:00" }, { "id": "01a0bbb3-6c8a-701c-a06e-a8c3b5972224", "title": "The real-world value of high test coverage", "url": "https://melgrubb.com/2010/04/17/the-real-world-value-of-high-test-coverage/", "published_at": "2010-04-17T05:28:01+00:00" }, { "id": "01a0bbb3-6c8a-701c-a06e-a8c3b5d6c6a1", "title": "Upcoming PEX Presentation", "url": "https://melgrubb.com/2010/03/13/upcoming-pex-presentation/", "published_at": "2010-03-14T00:52:45+00:00" }, { "id": "01a0bbb3-6c8a-701c-a06e-a8c3b659f1c6", "title": "CodeMash is coming!", "url": "https://melgrubb.com/2009/12/27/codemash-is-coming/", "published_at": "2009-12-27T21:57:03+00:00" }, { "id": "01a0bbb3-6c8a-701c-a06e-a8c3b7081396", "title": "Code Generation Presentation", "url": "https://melgrubb.com/2009/08/15/code-generation-presentation/", "published_at": "2009-08-15T14:57:01+00:00" }, { "id": "01a0bbb3-6c8a-701c-a06e-a8c3b75462ad", "title": "Tech Night, August 12th", "url": "https://melgrubb.com/2009/08/05/tech-night-august-12th/", "published_at": "2009-08-05T12:47:32+00:00" }, { "id": "01a0bbb3-6c8a-701c-a06e-a8c3b82ddba0", "title": "Who needs RowTest?", "url": "https://melgrubb.com/2009/07/06/who-needs-rowtest/", "published_at": "2009-07-06T17:28:49+00:00" }, { "id": "01a0bbb3-6c8a-701c-a06e-a8c3b89a87aa", "title": "IoC Auto-registration", "url": "https://melgrubb.com/2009/06/24/ioc-auto-registration/", "published_at": "2009-06-24T14:03:48+00:00" }, { "id": "01a0bbb8-f33e-70dd-81cf-e48ac9255889", "title": "Book Review: Anathem by Neal Stephenson", "url": "https://melgrubb.com/2009/05/30/book-review-anathem-by-neal-stephenson/", "published_at": "2009-05-31T02:47:48+00:00" }, { "id": "01a0bbb8-f33e-70dd-81cf-e48ac93b5f2c", "title": "Joel Spoelsky just became irrelevant", "url": "https://melgrubb.com/2009/02/18/joel-spoelsky-just-became-irrelevant/", "published_at": "2009-02-18T13:20:34+00:00" }, { "id": "01a0bbb8-f33e-70dd-81cf-e48ac9554f08", "title": "Shuffle meme", "url": "https://melgrubb.com/2009/01/23/shuffle-meme/", "published_at": "2009-01-23T13:41:19+00:00" }, { "id": "01a0bbb8-f33e-70dd-81cf-e48aca4a4a06", "title": "On Unit Testing, Mocks, and Isolation", "url": "https://melgrubb.com/2009/01/22/on-unit-testing-mocks-and-isolation/", "published_at": "2009-01-22T13:23:44+00:00" }, { "id": "01a0bbb8-f33e-70dd-81cf-e48acb14f911", "title": "Framework Design Guidelines (Second Edition)", "url": "https://melgrubb.com/2009/01/17/framework-design-guidelines-second-edition/", "published_at": "2009-01-18T01:57:16+00:00" }, { "id": "01a0bbb8-f33e-70dd-81cf-e48acb7aabbf", "title": "Use DateTimeContext to put your code in a time warp", "url": "https://melgrubb.com/2008/12/31/use-datetimecontext-to-put-your-code-in-a-time-warp/", "published_at": "2008-12-31T22:36:14+00:00" }, { "id": "01a0bbb8-f33e-70dd-81cf-e48acbe735eb", "title": "I’m going to CodeMash", "url": "https://melgrubb.com/2008/12/22/im-going-to-codemash/", "published_at": "2008-12-22T12:42:10+00:00" }, { "id": "01a0bbb8-f33e-70dd-81cf-e48acc49dbbf", "title": "Generating DataContext Proxy Classes With T4 Templates", "url": "https://melgrubb.com/2008/12/08/generating-datacontext-proxy-classes-with-t4-templates/", "published_at": "2008-12-08T14:21:04+00:00" }, { "id": "01a0bbb8-f33e-70dd-81cf-e48acd3bf9e2", "title": "Itty Bitty IoC (A C# IoC container in 100 lines)", "url": "https://melgrubb.com/2008/11/03/itty-bitty-ioc-a-c-ioc-container-in-100-lines/", "published_at": "2008-11-03T16:16:17+00:00" }, { "id": "01a0bbb8-f33e-70dd-81cf-e48acdd97a7b", "title": "Teeny Tiny Templates", "url": "https://melgrubb.com/2008/10/31/teeny-tiny-templates/", "published_at": "2008-10-31T17:51:29+00:00" }, { "id": "01a0bbbd-5de1-72b0-8080-c8fde29b4e90", "title": "Running the Zune software on low memory machines", "url": "https://melgrubb.com/2008/09/19/running-the-zune-software-on-low-memory-machines/", "published_at": "2008-09-19T16:41:50+00:00" }, { "id": "01a0bbbd-5de1-72b0-8080-c8fde33d6cbc", "title": "Accessor? We don’ need no steeenking Accessor!", "url": "https://melgrubb.com/2008/08/29/accessor-we-don-need-no-steeenking-accessor/", "published_at": "2008-08-29T14:05:29+00:00" }, { "id": "01a0bbbd-5de1-72b0-8080-c8fde3519677", "title": "Linq, Like, Mocks, and Expression Trees", "url": "https://melgrubb.com/2008/07/15/linq-like-mocks-and-expression-trees/", "published_at": "2008-07-15T15:10:41+00:00" }, { "id": "01a0bbbd-5de1-72b0-8080-c8fde409756f", "title": "In the name of the suck", "url": "https://melgrubb.com/2008/06/03/in-the-name-of-the-suck/", "published_at": "2008-06-04T04:03:27+00:00" }, { "id": "01a0bbbd-5de1-72b0-8080-c8fde4b4365e", "title": "Resharper, day whatever it is", "url": "https://melgrubb.com/2008/05/30/resharper-day-whatever-it-is/", "published_at": "2008-05-30T16:37:40+00:00" }, { "id": "01a0bbbd-5de1-72b0-8080-c8fde5675f1b", "title": "Communication Error", "url": "https://melgrubb.com/2008/05/23/communication-error/", "published_at": "2008-05-23T16:28:23+00:00" }, { "id": "01a0bbbd-5de1-72b0-8080-c8fde6395622", "title": "Presenting yourself", "url": "https://melgrubb.com/2008/05/22/presenting-yourself/", "published_at": "2008-05-23T02:19:26+00:00" }, { "id": "01a0bbbd-5de1-72b0-8080-c8fde678486e", "title": "ReSharper, Day 2", "url": "https://melgrubb.com/2008/05/07/resharper-day-2/", "published_at": "2008-05-07T20:25:11+00:00" }, { "id": "01a0bbbd-5de1-72b0-8080-c8fde67a013d", "title": "ReSharper impressions", "url": "https://melgrubb.com/2008/05/06/resharper-impressions/", "published_at": "2008-05-06T19:06:10+00:00" }, { "id": "01a0bbbd-5de1-72b0-8080-c8fde73ed949", "title": "Introduction to WF slide deck available", "url": "https://melgrubb.com/2008/04/21/introduction-to-wf-slide-deck-available/", "published_at": "2008-04-21T12:49:23+00:00" }, { "id": "01a0bbc1-de47-73de-bc97-fc27add56c4a", "title": "WOR KITTNZ!", "url": "https://melgrubb.com/2008/03/27/wor-kittnz/", "published_at": "2008-03-28T01:40:08+00:00" }, { "id": "01a0bbc1-de47-73de-bc97-fc27ae54a77c", "title": "WF Project Types", "url": "https://melgrubb.com/2008/03/26/wf-project-types/", "published_at": "2008-03-26T13:05:55+00:00" }, { "id": "01a0bbc1-de47-73de-bc97-fc27ae907e7f", "title": "WaitContext: A class to disable UI controls during long-running processes", "url": "https://melgrubb.com/2008/03/13/waitcontext-a-class-to-disable-ui-controls-during-long-running-processes/", "published_at": "2008-03-14T03:42:39+00:00" }, { "id": "01a0bbc1-de47-73de-bc97-fc27af54b50d", "title": "Linq joining to in-memory collections is bad", "url": "https://melgrubb.com/2008/03/04/linq-joining-to-in-memory-collections-is-bad/", "published_at": "2008-03-04T14:54:19+00:00" }, { "id": "01a0bbc1-de47-73de-bc97-fc27afe3db09", "title": "Oops", "url": "https://melgrubb.com/2008/02/13/oops/", "published_at": "2008-02-13T17:04:57+00:00" }, { "id": "01a0bbc1-de47-73de-bc97-fc27b00d6a63", "title": "Hosting the workflow rules designer", "url": "https://melgrubb.com/2008/01/25/hosting-the-workflow-rules-designer/", "published_at": "2008-01-25T17:38:21+00:00" }, { "id": "01a0bbc1-de47-73de-bc97-fc27b07ba3f5", "title": "Reflection cheat", "url": "https://melgrubb.com/2008/01/17/reflection-cheat/", "published_at": "2008-01-17T20:11:19+00:00" }, { "id": "01a0bbc1-de47-73de-bc97-fc27b158e404", "title": "Enumerating classes which implement a generic interface", "url": "https://melgrubb.com/2008/01/16/enumerating-classes-which-implement-a-generic-interface/", "published_at": "2008-01-16T16:24:38+00:00" }, { "id": "01a0bbc1-de47-73de-bc97-fc27b18ca67a", "title": "Mashed", "url": "https://melgrubb.com/2008/01/11/mashed/", "published_at": "2008-01-11T17:03:07+00:00" }, { "id": "01a0bbc1-de47-73de-bc97-fc27b1ef9188", "title": "Two sessions down", "url": "https://melgrubb.com/2008/01/10/two-sessions-down/", "published_at": "2008-01-10T17:02:21+00:00" } ] posts Claim your blog
Back to melgrubb.com
Blog · corpus.blog/blogs/melgrubb.com/posts

melgrubb.com

melgrubb.com

2025

2021

2019

2018

2017

2016

2015

2014

2012

2011

2010

2009

2008

13 Feb 2008