Skip to content

Instantly share code, notes, and snippets.

Living the dream

Adam Ralph adamralph

Living the dream
View GitHub Profile
adamralph / DumpPalette.cs
Created Aug 26, 2019
For use in Bullseye Palette.cs when tuning for CI systems
View DumpPalette.cs
adamralph /
Last active Sep 9, 2019
My current assessment of SaaS CI systems

This assessment is performed with respect to the requirements of the .NET community open source projects which I maintain. It is restricted to the free tier provided by each system.

Only the drawbacks are listed, which makes the assessment sound a bit negative, but it's relative to a baseline functional expectation:

  • Linux and Windows
  • Fast provisioning
  • Concurrent builds
  • Common build properties surfaced as env vars (e.g build number)
  • Readable, copyable, and line-linkable log output, supporting ANSI colour codes and code page 437
adamralph / bullseye-custom-args-system.cs
Last active Aug 11, 2019
Using Bullseye with custom args with System.CommandLine.Experimental
View bullseye-custom-args-system.cs
// dotnet add package System.CommandLine.Experimental
using System.CommandLine;
using static Bullseye.Targets;
class Program
static void Main(string[] args)
var cmd = new RootCommand { TreatUnmatchedTokensAsErrors = false };
adamralph / ConcurrencyThrottlingByMessageType.cs
Created Dec 10, 2018
Throttling concurrency by message type in NServiceBus
View ConcurrencyThrottlingByMessageType.cs
using NServiceBus.Pipeline;
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
internal class ConcurrencyThrottlingByMessageType : IBehavior<IIncomingLogicalMessageContext, IIncomingLogicalMessageContext>
private static readonly Dictionary<Type, Throttle> throttles = new Dictionary<Type, Throttle>
adamralph / UdiWorld.cs
Created Oct 22, 2018
My solution to the saga homework for
View UdiWorld.cs
namespace UdiWorld
using System;
using System.Threading.Tasks;
using NServiceBus;
public class UserBecamePreferred
public Guid UserId { get; set; }
adamralph / bullseye-custom-args-mcmaster.cs
Last active Oct 17, 2019
Using Bullseye with custom args with McMaster.Extensions.CommandLineUtils
View bullseye-custom-args-mcmaster.cs
// dotnet add package McMaster.Extensions.CommandLineUtils
using System.Linq;
using McMaster.Extensions.CommandLineUtils;
using static Bullseye.Targets;
class Program
static void Main(string[] args)
View twitter-home-hider.js
// ==UserScript==
// @name Twitter Home hider 323465
// @version 1
// @grant none
// @include*
// ==/UserScript==
document.getElementById("global-nav-home").style.display = "none";
adamralph / search-package-usage.linq
Last active Nov 10, 2017
A LINQPad script to search GitHub repos for package usage (and potentially other things)
View search-package-usage.linq
<Query Kind="Statements">
// I wrote this script to help me find out where my NuGet packages are being used.
adamralph / list-video-duration.linq
Last active Sep 28, 2017
List duration of video files
View list-video-duration.linq
<Query Kind="Statements">
Util.AutoScrollResults = true;
FFbase.FFmpegDir = @"C:\ffmpeg-3.3.3-win64-static\bin";
adamralph / HashBus.DeDup-Program.cs
Created Mar 31, 2017
A hack to remove dups from HashBus, from before we fixed the app to strip them out on the way in
View HashBus.DeDup-Program.cs
namespace HashBus.DeDup
using System;
using System.Linq;
using System.Threading.Tasks;
using HashBus.ReadModel;
using HashBus.ReadModel.MongoDB;
using MongoDB.Driver;
class Program
You can’t perform that action at this time.