Skip to content

Instantly share code, notes, and snippets.

View davidfowl's full-sized avatar

David Fowler davidfowl

View GitHub Profile
davidfowl / fastlinkedlist.cs
Created March 30, 2014 23:07
Specialized lock free linked list with 2 operations, Add and GetListAndClear. Useful for implementing batching.
View fastlinkedlist.cs
public class FastLinkedList<T>
private Node Head;
public void Add(T value)
var node = new Node();
node.Value = value;
while (true)
davidfowl / NowinServerFactory.cs
Created May 25, 2014 00:34
Nowin on ASP.NET vNext
View NowinServerFactory.cs
using System;
using System.Collections.Generic;
using System.Net;
using System.Threading.Tasks;
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Hosting.Server;
using Microsoft.AspNet.Owin;
using Microsoft.Framework.ConfigurationModel;
namespace Nowin.vNext
View FsharpLoader.cs
using System;
using System.Linq;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.Versioning;
using System.Text;
using Microsoft.Framework.Runtime;
using System.IO;
using NuGet;
davidfowl / AzureStreamingLoggerProvider.cs
Created November 16, 2014 07:25
View AzureStreamingLoggerProvider.cs
public class AzureStreamingLoggerProvider : ILoggerProvider
public ILogger Create(string name)
return new AzureLogger(name);
private class AzureLogger : ILogger
private readonly string _name;
davidfowl / inferme.cs
Created February 9, 2015 04:59
C# type inference
View inferme.cs
public static class MyClass
public static void DoSomething<T>(Func<int, T, int> call)
public static void Example()
// This fails
View gist:2bf1c256e084ed2f9863
Warning: FindPackagesById: System.Runtime.Handles
Error getting response stream (ReadDone1): ReceiveFailure
Warning: FindPackagesById: System.Diagnostics.Process
Error getting response stream (ReadDone1): ReceiveFailure
GET'System.Diagnostics.Process '.
Warning: FindPackagesById: System.Reflection.Primitives
Error getting response stream (ReadDone1): ReceiveFailure
GET'System.Reflection.Primitiv es'.
Warning: FindPackagesById: System.IO.FileSystem.Primitives
davidfowl / 0_reuse_code.js
Last active August 29, 2015 14:15
Here are some things you can do with Gists in GistBox.
View 0_reuse_code.js
// Use Gists to store code you would like to remember later on
console.log(window); // log the "window" object to the console
davidfowl / gist:0fc85f3215adf4eab294
Created May 19, 2015 06:15
project structure DSL in C# 6.0
View gist:0fc85f3215adf4eab294
public class Program
public void Main()
var solution = new Directory
["global.json"] = new JObject
["projects"] = new JArray { "src", "test" }
davidfowl / UseMapMiddleware.cs
Created August 12, 2015 05:03
Middleware that rejoins the parent pipeline
View UseMapMiddleware.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Http;
namespace WebApplication58
public class MapUseMiddleware
davidfowl / loadcontextredux.txt
Last active August 29, 2015 14:27
LoadContext strikes again
View loadcontextredux.txt
A (project) -> B (package)
(build)-> CustomCompiler (project) (build)-> FSharpCompiler (project) -> System.Runtime (package)
public interface ILoadContextProvider {
IAssemblyLoadContext GetLoadContext(Project project, FrameworkName targetFramework);
var loadContextProvider = ...