Skip to content

Instantly share code, notes, and snippets.

View ObservableEx_ThrottledBuffer.cs
public static partial class ObsEx
public static IObservable<IList<T>> ThrottledBuffer<T>(this IObservable<T> source, TimeSpan period, IScheduler scheduler)
return Observable.Create<IList<T>>(obs =>
var yieldTimer = new SerialDisposable();
var buffer = new List<T>();
Action yeildBuffer = () => {
//Not on same thread, so need to be careful here.
LeeCampbell / IncrementBenchmarks.cs
Last active Dec 1, 2016
Benchmark via gist sample
View IncrementBenchmarks.cs
using System.Threading;
using BenchmarkDotNet.Attributes;
public class IncrementBenchmarks
private int _intValue;
private long _longValue;
public void Setup()
LeeCampbell / InstallSqlForDev.ps1
Created Nov 15, 2016
Install SQL 2016 Dev command line (Powershell)
View InstallSqlForDev.ps1
#Installs SQL Server locally with standard settings for Developers/Testers.
# Install SQL from command line help -
$sw = [Diagnostics.Stopwatch]::StartNew()
$currentUserName = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name;
$SqlServerIsoImagePath = "???\Downloads\Microsoft\SQL Server 2016 Developer Edition\en_sql_server_2016_developer_x64_dvd_8777069.iso"
#Mount the installation media, and change to the mounted Drive.
$mountVolume = Mount-DiskImage -ImagePath $SqlServerIsoImagePath -PassThru
$driveLetter = ($mountVolume | Get-Volume).DriveLetter
$drivePath = $driveLetter + ":"
LeeCampbell / ProjectDependencies.cs
Created Nov 3, 2016
LinqPad Script that generates the GraphViz file to visualize dependencies.
View ProjectDependencies.cs
void Main()
//Generates the .gv file content that can be put into GraphViz to vizualize your dependency tree.
// Once in GrpahViz, export to svg to avoid guessing how big you will need it (e.g. compared to PNG/JPG or other raster formats)
var rootPath = @"C:\source\GitHub\Mercury";
var outputPath = @"C:\source\GitHub\Mercury\";
var limit = 1000;
var projects = Directory.GetFiles(rootPath, "*.csproj", SearchOption.AllDirectories)
.Where(path=>!path.ToLowerInvariant().Contains("test")) //Exclude tests for sanity
LeeCampbell / ReportCodeDuplication.ps1
Last active Nov 11, 2016
Code Duplication command line reporter. Uses Jetbrains cmdline tools.
View ReportCodeDuplication.ps1
$codeDupFolder = 'C:\Users\lee.campbell\Downloads\JetBrains.ReSharper.CommandLineTools.2016.2.20160913.100041\'
$codeDuplicateExe = $codeDupFolder + '\dupfinder.exe'
$codeDuplicateXsl = $codeDupFolder + '\dupFinder.xsl'
$xmlOutput = 'C:\Users\lee.campbell\Desktop\LoanServiceSlnDupes.xml'
$htmlOutput = 'C:\Users\lee.campbell\Desktop\LoanServiceSlnDupes.html'
.$codeDuplicateExe --show-text --output="$xmlOutput" -e="**/*.Designer.cs" -e="**/*.generated.cs" -e="**/*Test*/**/*.cs" -e="**/*Event.cs" 'C:\Source\GitHub\Mercury\src\Mercury.LoanService.sln'
$xslt = New-Object System.Xml.Xsl.XslCompiledTransform;
LeeCampbell / IRunnable.cs
Last active Jul 29, 2016
SerialDisposable Perf Tests
View IRunnable.cs
namespace RxPerformanceTest.SerialDisposable.Console
interface IRunnable
ThroughputTestResult[] Run();
LeeCampbell / LeftFold.cs
Created May 11, 2016
An example of a LeftFold helper for Cedar EventStore lib.
View LeftFold.cs
using System;
using System.Collections.Generic;
using System.Globalization;
using Cedar.EventStore.Streams;
namespace DunkyMoleFanClub
public static class LeftFold
public static readonly string DefaultKey = string.Empty;
LeeCampbell / PerfTest.cs
Created Oct 11, 2015
Simple LinqPad sample of how to execute a performance test in C#
View PerfTest.cs
void Main()
var messageCount = 10000;
var sum =0L;
var result = ThroughputTestResult.Capture(messageCount, () => sum = SumOfSquares(messageCount));
Console.WriteLine($"Result: SumOfSquares({messageCount}) = {sum}");
View EventStoreWritePerfTestFuxture.cs
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using EventStore.ClientAPI;
View MoneyPennyKafkaDump
leecampbell@lxc-vm:~$ sed -i 's/\r//'
leecampbell@lxc-vm:~$ bash
in the file
lxc-net stop/waiting
lxc-net start/running
Setting up the GPG keyring
ERROR: Unable to fetch GPG key from keyserver.
lxc_container: lxccontainer.c: create_run_template: 1125 container creation template for zookeeper failed
lxc_container: lxc_create.c: main: 271 Error creating container zookeeper