PageSourceSearch

https://jonathanchannon.com/archive/

html jonathanchannon.com collected 2026-10-02 05:25:54 UTC 24,888 bytes, 77 lines download raw bytes

1<!doctype html><html lang=en-gb><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta http-equiv=X-UA-Compatible content="IE=edge"><title>Archive | Jonathan Channon's Blog</title><meta name=description content="Jonathan Channon's Blog"><meta name=author content="Jonathan Channon"><meta name=twitter:card content="summary_large_image"><meta name=twitter:title content="Archive"><meta name=twitter:description content="Jonathan Channon's Blog"><link rel=preconnect href=https://fonts.googleapis.com><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link href="https://fonts.googleapis.com/css2?family=Source+Code+Pro:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap" rel=stylesheet><link rel=stylesheet href="/css/style.css?v=1768233931">
1<script>(function(){const e=localStorage.getItem("theme");(e==="dark"||!e&&window.matchMedia("(prefers-color-scheme: dark)").matches)&&document.documentElement.setAttribute("data-theme","dark")})()</script>
1<meta property="og:url" content="https://blog.jonathanchannon.com/archive/"><meta property="og:site_name" content="Jonathan Channon's Blog"><meta property="og:title" content="Archive"><meta property="og:description" content="Jonathan Channon's Blog"><meta property="og:locale" content="en_gb"><meta property="og:type" content="article"><meta property="og:image" content="https://blog.jonathanchannon.com/images/og-site.png">
vendor: 63 bytes, line 1
1<script async src="https://www.googletagmanager.com/gtag/js?id=
1G-JEEX96WRGE
vendor: 11 bytes, line 1
1"></script>
1<script>var dnt,doNotTrack=!1;if(!1&&(dnt=navigator.doNotTrack||window.doNotTrack||navigator.msDoNotTrack,doNotTrack=dnt=="1"||dnt=="yes"),!doNotTrack){window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}gtag("js",new Date),gtag("config","G-JEEX96WRGE")}</script>
1</head><body><header class=site-header><div class="container header-inner"><nav class=main-nav><div class=nav-tabs><a href=https://blog.jonathanchannon.com/ class=nav-tab>Blog</a>
2<a href=/archive/ class="nav-tab active">Archive</a></div><div class=header-right><div class="social-links header-social"><a href=https://bsky.app/profile/jonathanchannon.com target=_blank rel="noopener noreferrer" aria-label=Bluesky><svg viewBox="0 0 24 24" fill="currentColor"><path d="M12 10.8c-1.087-2.114-4.046-6.053-6.798-7.995C2.566.944 1.561 1.266.902 1.565.139 1.908.0 3.08.0 3.768c0 .69.378 5.65.624 6.479.815 2.736 3.713 3.66 6.383 3.364.136-.02.275-.039.415-.056-.138.022-.276.04-.415.056-3.912.58-7.387 2.005-2.83 7.078 5.013 5.19 6.87-1.113 7.823-4.308.953 3.195 2.05 9.271 7.733 4.308 4.267-4.308 1.172-6.498-2.74-7.078a8.741 8.741.0 01-.415-.056c.14.017.279.036.415.056 2.67.297 5.568-.628 6.383-3.364.246-.828.624-5.79.624-6.478.0-.69-.139-1.861-.902-2.206-.659-.298-1.664-.62-4.3 1.24C16.046 4.748 13.087 8.687 12 10.8z"/></svg>
3</a><a href=https://github.com/jchannon target=_blank rel="noopener noreferrer" aria-label=GitHub><svg viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.374.0.0 5.373.0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931.0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176.0.0 1.008-.322 3.301 1.23A11.509 11.509.0 0112 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221.0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"/></svg>
4</a><a href=https://linkedin.com/in/jonathanchannon target=_blank rel="noopener noreferrer" aria-label=LinkedIn><svg viewBox="0 0 24 24" fill="currentColor"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853.0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601.0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433A2.062 2.062.0 013.274 5.368a2.064 2.064.0 112.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225.0H1.771C.792.0.0.774.0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2.0 22.222.0h.003z"/></svg></a></div><button class=theme-toggle id=theme-toggle aria-label="Toggle dark mode">
5<svg class="sun-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg>
6<svg class="moon-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></button></div></nav></div></header><main class=container><article class=archive-page><header class=post-header><h1 class=post-title>Archive</h1></header><div class=archive-list><div class=archive-year><h2>2026</h2><ul class=archive-posts><li class=archive-item><time class=archive-date datetime=2026-01-12>Jan 12
7</time><a href=https://blog.jonathanchannon.com/2026-01-12-agentic-semantic-data-modelling-csharp/ class=archive-title>Agentic Semantic Data Modelling in C#</a></li><li class=archive-item><time class=archive-date datetime=2026-01-09>Jan 09
8</time><a href=https://blog.jonathanchannon.com/2026-01-09-running-csharp-against-ollama/ class=archive-title>Running C# against Ollama</a></li><li class=archive-item><time class=archive-date datetime=2026-01-06>Jan 06
9</time><a href=https://blog.jonathanchannon.com/2026-01-06-using-ai-csharp/ class=archive-title>Using AI in a C# app</a></li></ul></div><div class=archive-year><h2>2025</h2><ul class=archive-posts><li class=archive-item><time class=archive-date datetime=2025-12-23>Dec 23
10</time><a href=https://blog.jonathanchannon.com/2025-12-23-introduction-to-ai/ class=archive-title>Introduction to AI</a></li></ul></div><div class=archive-year><h2>2022</h2><ul class=archive-posts><li class=archive-item><time class=archive-date datetime=2022-01-29>Jan 29
11</time><a href=https://blog.jonathanchannon.com/2022-01-29-azuread-golang/ class=archive-title>Using Azure AD authentication for a Go API</a></li></ul></div><div class=archive-year><h2>
112021</h2><ul class=archive-posts><li class=archive-item><time class=archive-date datetime=2021-04-13>Apr 13
12</time><a href=https://blog.jonathanchannon.com/2021-04-13-terminology-glossary/ class=archive-title>Terminology Glossary</a></li><li class=archive-item><time class=archive-date datetime=2021-01-29>Jan 29
13</time><a href=https://blog.jonathanchannon.com/2021-01-29-tracing-io-netcore/ class=archive-title>Tracing IO in .NET Core</a></li></ul></div><div class=archive-year><h2>2020</h2><ul class=archive-posts><li class=archive-item><time class=archive-date datetime=2020-08-07>Aug 07
14</time><a href=https://blog.jonathanchannon.com/2020-08-07-understanding-type-aliases/ class=archive-title>Understanding type aliases</a></li><li class=archive-item><time class=archive-date datetime=2020-07-17>Jul 17
15</time><a href=https://blog.jonathanchannon.com/2020-07-17-understanding-fsharp-applicatives-custom-operators/ class=archive-title>Understanding F# applicatives and custom operators</a></li><li class=archive-item><time class=archive-date datetime=2020-06-28>Jun 28
16</time><a href=https://blog.jonathanchannon.com/2020-06-28-understanding-fsharp-map-and-bind/ class=archive-title>Understanding F# map/bind</a></li><li class=archive-item><time class=archive-date datetime=2020-06-18>Jun 18
17</time><a href=https://blog.jonathanchannon.com/2020-06-18-feature-management-fsharp/ class=archive-title>Feature Management in F#/Giraffe/ASP.NET Core</a></li><li class=archive-item><time class=archive-date datetime=2020-06-16>Jun 16
18</time><a href=https://blog.jonathanchannon.com/2020-06-16-goodbye-nancyfx-hello-fsharp/ class=archive-title>Goodbye NancyFX, Hello F#!</a></li></ul></div><div class=archive-year><h2>2018</h2><ul class=archive-posts><li class=archive-item><time class=archive-date datetime=2018-04-10>Apr 10
19</time><a href=https://blog.jonathanchannon.com/2018-04-10-announcing-carter/ class=archive-title>Announcing Carter</a></li></ul></div><div class=archive-year><h2>2017</h2><ul class=archive-posts><li class=archive-item><time class=archive-date datetime=2017-06-07>Jun 07
20</time><a href=https://blog.jonathanchannon.com/2017-06-07-debugging-netcore-docker/ class=archive-title>Debugging .Net Core apps inside Docker container with VSCode</a></li><li class=archive-item><time class=archive-date datetime=2017-05-15>May 15
21</time><a href=https://blog.jonathanchannon.com/2017-05-15-using-docker-with-netcore-ci/ class=archive-title>Using Docker with .Net Core in CI for OSS</a></li><li class=archive-item><time class=archive-date datetime=2017-05-04>May 04
22</time><a href=https://blog.jonathanchannon.com/2017-05-04-announcing-botwin/ class=archive-title>Announcing Botwin</a></li></ul></div><div class=archive-year><h2>2016</h2><ul class=archive-posts><li class=archive-item><time class=archive-date datetime=2016-07-13>Jul 13
23</time><a href=https://blog.jonathanchannon.com/2016-07-13-building-all-current-dotnet-core-projects-vscode/ class=archive-title>Building all and current dotnet core projects in VSCode</a></li><li class=archive-item><time class=archive-date datetime=2016-06-27>Jun 27
24</time><a href=https://blog.jonathanchannon.com/2016-06-27-porting-owin-middleware-aspnetcore/ class=archive-title>Porting OWIN middleware to ASP.Net Core</a></li><li class=archive-item><time class=archive-date datetime=2016-04-28>Apr 28
25</time><a href=https://blog.jonathanchannon.com/2016-04-28-what-is-a-hypermedia-client/ class=archive-title>What is a Hypermedia client?</a></li><li class=archive-item><time class=archive-date datetime=2016-03-30>Mar 30
26</time><a href=https://blog.jonathanchannon.com/2016-03-30-vq-communications-funds-coreclr-nancyfx/ class=archive-title>VQ Communications Funds NancyFX to run on CoreCLR</a></li><li class=archive-item><time class=archive-date datetime=2016-02-11>Feb 11
27</time><a href=https://blog.jonathanchannon.com/2016-02-11-profiling-coreclr-application/ class=archive-title>Profiling a CoreCLR application with dotMemory</a></li></ul></div><div class=archive-year><h2>2015</h2><ul class=archive-posts><li class=archive-item><time class=archive-date datetime=2015-11-16>Nov 16
28</time><a href=https://blog.jonathanchannon.com/2015-11-16-content-negotiation-golang/ class=archive-title>Introducing Negotiator - a GoLang content negotiation library</a></li><li class=archive-item><time class=archive-date datetime=2015-10-27>Oct 27
29</time><a href=https://blog.jonathanchannon.com/2015-10-27-introducting-pogo-golang-twitter-pocket/ class=archive-title>Introducing PoGo - a GoLang, Twitter favourites to Pocket importer</a></li><li class=archive-item><time class=archive-date datetime=2015-08-07>Aug 07
30</time><a href=https://blog.jonathanchannon.com/2015-08-07-hypermedia-and-nancyfx/ class=archive-title>NancyFX and Hypermedia</a></li><li class=archive-item><time class=archive-date datetime=2015-04-27>Apr 27
31</time><a href=https://blog.jonathanchannon.com/2015-04-27-cookie-authentication-angularjs-csrf-owin-mono/ class=archive-title>Cookie Authentication & CRSF with AngularJs, Owin & Mono</a></li></ul></div><div class=archive-year><h2>2014</h2><ul class=archive-posts><li class=archive-item><time class=archive-date datetime=2014-11-24>Nov 24
32</time><a href=https://blog.jonathanchannon.com/2014-11-24-running-gulp-in-visual-xamarin-studio/ class=archive-title>Running Gulp in Visual & Xamarin Studio</a></li><li class=archive-item><time class=archive-date datetime=2014-11-12>Nov 12
33</time><a href=https://blog.jonathanchannon.com/2014-11-12-csharp-first-class-citizen-sublime-text/ class=archive-title>Microsoft Endorsing C# as a First Class Citizen in Sublime Text</a></li><li class=archive-item><time class=archive-date datetime=2014-08-05>Aug 05
34</time><a href=https://blog.jonathanchannon.com/2014-08-05-nancy-aspnetvnext-osx-sublime-text/ class=archive-title>Nancy, ASP.Net vNext, OSX and Sublime Text</a></li><li class=archive-item><time class=archive-date datetime=2014-06-14>Jun 14
35</time><a href=https://blog.jonathanchannon.com/2014-06-14-nancy-aspnet-vnext-vs2014-azure/ class=archive-title>
35Nancy, ASP.Net vNext, VS2014 & Azure</a></li><li class=archive-item><time class=archive-date datetime=2014-06-06>Jun 06
36</time><a href=https://blog.jonathanchannon.com/2014-06-06-modifying-bash-adding-git-auto-completion-to-terminal/ class=archive-title>Modifying the bash prompt and adding Git completion to terminal</a></li><li class=archive-item><time class=archive-date datetime=2014-05-07>May 07
37</time><a href=https://blog.jonathanchannon.com/2014-05-07-introducing-owin-statelessauth-with-nancy-angular-demo/ class=archive-title>Introducing Owin.StatelessAuth with Nancy/Angular demo</a></li><li class=archive-item><time class=archive-date datetime=2014-03-22>Mar 22
38</time><a href=https://blog.jonathanchannon.com/2014-03-22-using-node-and-ftp-with-promises/ class=archive-title>Using NodeJS and FTP with Promises</a></li><li class=archive-item><time class=archive-date datetime=2014-01-02>Jan 02
39</time><a href=https://blog.jonathanchannon.com/2014-01-02-unit-testing-with-sqlexception/ class=archive-title>Unit Testing with SqlException</a></li></ul></div><div class=archive-year><h2>2013</h2><ul class=archive-posts><li class=archive-item><time class=archive-date datetime=2013-12-20>Dec 20
40</time><a href=https://blog.jonathanchannon.com/2013-12-20-using-sql-server-with-nodejs/ class=archive-title>Using SQL Server with node.js</a></li><li class=archive-item><time class=archive-date datetime=2013-11-25>Nov 25
41</time><a href=https://blog.jonathanchannon.com/2013-11-25-octopus-xml-transformation-in-services/ class=archive-title>Octopus XML Transformation in Services</a></li><li class=archive-item><time class=archive-date datetime=2013-11-07>Nov 07
42</time><a href=https://blog.jonathanchannon.com/2013-11-07-using-git-to-update-youtrack-via-teamcity/ class=archive-title>Using Git to update YouTrack via TeamCity</a></li><li class=archive-item><time class=archive-date datetime=2013-10-21>Oct 21
43</time><a href=https://blog.jonathanchannon.com/2013-10-21-running-mocha-tests-with-sublime-text/ class=archive-title>Running Mocha tests within Sublime Text</a></li><li class=archive-item><time class=archive-date datetime=2013-10-01>Oct 01
44</time><a href=https://blog.jonathanchannon.com/2013-10-01-blogging-with-markdown-and-git/ class=archive-title>Blogging with Markdown & Deploying via Git - Introducing Sandra.Snow</a></li><li class=archive-item><time class=archive-date datetime=2013-09-20>Sep 20
45</time><a href=https://blog.jonathanchannon.com/2013-09-20-returning-multiple-fake-objects-with-fakeiteasy/ class=archive-title>Returning multiple fake objects with FakeItEasy</a></li><li class=archive-item><time class=archive-date datetime=2013-09-16>Sep 16
46</time><a href=https://blog.jonathanchannon.com/2013-09-16-enabling-cors-in-iisexpress/ class=archive-title>Enabling CORS in IISExpress</a></li><li class=archive-item><time class=archive-date datetime=2013-09-12>Sep 12
47</time><a href=https://blog.jonathanchannon.com/2013-09-12-keeping-sql-data-organised-in-integration-tests/ class=archive-title>Keeping SQL Data Organised in Integration Tests</a></li><li class=archive-item><time class=archive-date datetime=2013-09-11>Sep 11
48</time><a href=https://blog.jonathanchannon.com/2013-09-11-comparing-object-instances-with-fakeiteasy/ class=archive-title>Comparing object instances with FakeItEasy</a></li><li class=archive-item><time class=archive-date datetime=2013-08-24>Aug 24
49</time><a href=https://blog.jonathanchannon.com/2013-08-24-async-route-handling-with-nancy/ class=archive-title>Async Route Handling with Nancy</a></li><li class=archive-item><time class=archive-date datetime=2013-08-22>Aug 22
50</time><a href=https://blog.jonathanchannon.com/2013-08-22-a-quick-look-at-visual-node/ class=archive-title>A quick look at Visual Node</a></li><li class=archive-item><time class=archive-date datetime=2013-07-03>Jul 03
51</time><a href=https://blog.jonathanchannon.com/2013-07-03-modifying-files-within-git-history/ class=archive-title>Modifying files within Git history</a></li><li class=archive-item><time class=archive-date datetime=2013-05-29>May 29
52</time><a href=https://blog.jonathanchannon.com/2013-05-29-why-net-should-become-independent/ class=archive-title>Why .Net should become independent!</a></li><li class=archive-item><time class=archive-date datetime=2013-04-30>Apr 30
53</time><a href=https://blog.jonathanchannon.com/2013-04-30-mocking-httpcontext-with-fake-it-easy/ class=archive-title>Mocking HttpContext with Fake It Easy</a></li><li class=archive-item><time class=archive-date datetime=2013-04-17>Apr 17
54</time><a href=https://blog.jonathanchannon.com/2013-04-17-up-running-with-typescript-and-webstorm/ class=archive-title>Up & Running with TypeScript and WebStorm</a></li><li class=archive-item><time class=archive-date datetime=2013-04-08>Apr 08
55</time><a href=https://blog.jonathanchannon.com/2013-04-08-using-datetime-in-c-and-sql/ class=archive-title>Using DateTime in C# and SQL</a></li><li class=archive-item><time class=archive-date datetime=2013-04-08>Apr 08
56</time><a href=https://blog.jonathanchannon.com/2013-04-08-using-a-markdown-viewengine-with-nancy/ class=archive-title>Using a Markdown ViewEngine with Nancy</a></li><li class=archive-item><time class=archive-date datetime=2013-04-02>Apr 02
57</time><a href=https://blog.jonathanchannon.com/2013-04-02-the-old-development-language-switcheroo/ class=archive-title>The Old Development Language Switcheroo</a></li><li class=archive-item><time class=archive-date datetime=2013-03-04>Mar 04
58</time><a href=https://blog.jonathanchannon.com/2013-03-04-the-many-approaches-to-e
58ntity-framework/ class=archive-title>The many approaches to Entity Framework</a></li><li class=archive-item><time class=archive-date datetime=2013-02-05>Feb 05
59</time><a href=https://blog.jonathanchannon.com/2013-02-05-evaluating-knockoutjs-and-angularjs-part-2/ class=archive-title>Evaluating KnockoutJS and AngularJS – Part 2</a></li><li class=archive-item><time class=archive-date datetime=2013-02-05>Feb 05
60</time><a href=https://blog.jonathanchannon.com/2013-02-05-evaluating-knockoutjs-and-angularjs-part-1/ class=archive-title>Evaluating KnockoutJS and AngularJS – Part 1</a></li><li class=archive-item><time class=archive-date datetime=2013-01-24>Jan 24
61</time><a href=https://blog.jonathanchannon.com/2013-01-24-using-angularjsbackbonejs-in-windows-8-javascript-app/ class=archive-title>Using AngularJS/BackboneJS in Windows 8 JavaScript app</a></li><li class=archive-item><time class=archive-date datetime=2013-01-09>Jan 09
62</time><a href=https://blog.jonathanchannon.com/2013-01-09-javascript-is-the-future-maybe/ class=archive-title>JavaScript is the future…maybe!</a></li></ul></div><div class=archive-year><h2>2012</h2><ul class=archive-posts><li class=archive-item><time class=archive-date datetime=2012-12-19>Dec 19
63</time><a href=https://blog.jonathanchannon.com/2012-12-19-why-use-nancyfx/ class=archive-title>Why use NancyFX?</a></li><li class=archive-item><time class=archive-date datetime=2012-12-07>Dec 07
64</time><a href=https://blog.jonathanchannon.com/2012-12-07-easily-publish-a-nuget-package/ class=archive-title>Easily publish a NuGet package</a></li><li class=archive-item><time class=archive-date datetime=2012-11-29>Nov 29
65</time><a href=https://blog.jonathanchannon.com/2012-11-29-asp-net-web-api-testing/ class=archive-title>ASP.NET Web API Testing</a></li><li class=archive-item><time class=archive-date datetime=2012-11-23>Nov 23
66</time><a href=https://blog.jonathanchannon.com/2012-11-23-the-for-loop-is-the-devil-in-disguise/ class=archive-title>The For Loop is the devil in disguise</a></li><li class=archive-item><time class=archive-date datetime=2012-11-18>Nov 18
67</time><a href=https://blog.jonathanchannon.com/2012-11-18-gitignore-not-working-fixed/ class=archive-title>.gitignore not working – fixed!</a></li><li class=archive-item><time class=archive-date datetime=2012-11-06>Nov 06
68</time><a href=https://blog.jonathanchannon.com/2012-11-06-publishing-to-windows-azure-from-github/ class=archive-title>Publishing to Windows Azure from Github</a></li><li class=archive-item><time class=archive-date datetime=2012-10-25>Oct 25
69</time><a href=https://blog.jonathanchannon.com/2012-10-25-testing-your-applications-email-logic/ class=archive-title>Testing your application’s email logic</a></li><li class=archive-item><time class=archive-date datetime=2012-10-25>Oct 25
70</time><a href=https://blog.jonathanchannon.com/2012-10-25-simple-net-twittergooglefacebook-authentication/ class=archive-title>Simple .Net Twitter,Google,Facebook Authentication</a></li><li class=archive-item><time class=archive-date datetime=2012-10-08>Oct 08
71</time><a href=https://blog.jonathanchannon.com/2012-10-08-node-js-express-hello-world-formula-1-style/ class=archive-title>Node.js, Express, Hello World Formula 1 Style</a></li><li class=archive-item><time class=archive-date datetime=2012-09-28>Sep 28
72</time><a href=https://blog.jonathanchannon.com/2012-09-28-abstracting-the-file-system/ class=archive-title>Abstracting the File System</a></li><li class=archive-item><time class=archive-date datetime=2012-09-25>Sep 25
73</time><a href=https://blog.jonathanchannon.com/2012-09-25-is-oss-good-for-your-career/ class=archive-title>Is OSS good for your career?</a></li><li class=archive-item><time class=archive-date datetime=2012-09-21>Sep 21
74</time><a href=https://blog.jonathanchannon.com/2012-09-21-nancyfx-ravendb-nerddinner-and-me/ class=archive-title>NancyFX, RavenDB, NerdDinner and Me</a></li><li class=archive-item><time class=archive-date datetime=2012-09-17>Sep 17
75</time><a href=https://blog.jonathanchannon.com/2012-09-17-ive-started-blogging-why/ class=archive-title>I’ve started blogging. Why?</a></li></ul></div></div></article></main><footer class=site-footer><div class="container footer-inner"><div class=social-links><a href=https://bsky.app/profile/jonathanchannon.com target=_blank rel="noopener noreferrer" aria-label=Bluesky><svg viewBox="0 0 24 24" fill="currentColor"><path d="M12 10.8c-1.087-2.114-4.046-6.053-6.798-7.995C2.566.944 1.561 1.266.902 1.565.139 1.908.0 3.08.0 3.768c0 .69.378 5.65.624 6.479.815 2.736 3.713 3.66 6.383 3.364.136-.02.275-.039.415-.056-.138.022-.276.04-.415.056-3.912.58-7.387 2.005-2.83 7.
75078 5.013 5.19 6.87-1.113 7.823-4.308.953 3.195 2.05 9.271 7.733 4.308 4.267-4.308 1.172-6.498-2.74-7.078a8.741 8.741.0 01-.415-.056c.14.017.279.036.415.056 2.67.297 5.568-.628 6.383-3.364.246-.828.624-5.79.624-6.478.0-.69-.139-1.861-.902-2.206-.659-.298-1.664-.62-4.3 1.24C16.046 4.748 13.087 8.687 12 10.8z"/></svg>
76</a><a href=https://github.com/jchannon target=_blank rel="noopener noreferrer" aria-label=GitHub><svg viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.374.0.0 5.373.0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931.0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176.0.0 1.008-.322 3.301 1.23A11.509 11.509.0 0112 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221.0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"/></svg>
77</a><a href=https://linkedin.com/in/jonathanchannon target=_blank rel="noopener noreferrer" aria-label=LinkedIn><svg viewBox="0 0 24 24" fill="currentColor"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853.0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601.0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433A2.062 2.062.0 013.274 5.368a2.064 2.064.0 112.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225.0H1.771C.792.0.0.774.0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2.0 22.222.0h.003z"/></svg></a></div><p class=copyright>&copy; 2026 Jonathan Channon's Blog. All rights reserved.</p></div></footer>
77<script src=/js/theme-toggle.js></script>
77</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.