Skip to content

Instantly share code, notes, and snippets.

@deejaygraham
deejaygraham / SimpleBatchHtmlValidation.cs
Last active December 17, 2015 10:58
Simple console reporting on html formatting errors using HtmlAgilityPack
using HtmlAgilityPack;
using System;
using System.IO;
using System.Linq;
namespace HtmlAgilityTest
{
class Program
{
static void Main(string[] args)
@deejaygraham
deejaygraham / DecompileAssembly.cs
Last active December 17, 2015 11:09
Rough CSharp Decompiler using ICSharpCode and Mono.Cecil
using System;
using System.Collections.Generic;
using System.IO;
using ICSharpCode.Decompiler;
using ICSharpCode.Decompiler.Ast;
class Program
{
static void Main(string[] args)
{
@deejaygraham
deejaygraham / MsBuildMostRecentFolder.cs
Last active December 17, 2015 14:49
MsBuild task to find the most recent sub-folder given the parent folder. Useful for finding the most recent build on a CI server file share.
using System;
using System.IO;
using Microsoft.Build.Framework;
using Microsoft.Build.Utilities;
namespace MostRecentFolder
{
/*
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
@deejaygraham
deejaygraham / MsBuildMake.cmd
Last active December 17, 2015 14:49
Example batch invoke of MsBuild project file with verbosity and target. Needs to check for x64/x86 paths.
@echo off
rem Assume x86 to start with
SET MsBuildPath="%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe"
rem Is this a 64 bit machine?
IF EXIST "%Programfiles(x86)%" SET MsBuildPath="%windir%\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe"
if "%1" == "" goto DefaultTarget
goto SpecificTarget
@deejaygraham
deejaygraham / WeaselGeneric.cs
Created December 13, 2013 16:09
Reworking of rosetta code implementation to make slightly more generic. http://rosettacode.org/wiki/Evolutionary_algorithm#C.23
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
namespace WeaselConsole
{
class Program
{
@deejaygraham
deejaygraham / post.cs
Last active January 4, 2016 19:49
Simple program to generate jekyll and github pages friendly posts.
class Program
{
static void Main(string[] args)
{
if (args.Length == 0)
{
Console.WriteLine("post <title> <optional-date> <optional-tags>");
return;
}
@deejaygraham
deejaygraham / PaddedText.cs
Last active August 29, 2015 13:57
Diamond Pattern Kata worked example from cyber-dojo
using System.Text;
public class PaddedText
{
public PaddedText()
{
this.SpaceCharacter = ' ';
}
public char SpaceCharacter { get; set; }
@deejaygraham
deejaygraham / StringCalculator.cs
Last active August 29, 2015 14:00
StringCalculator Kata worked example
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
public class NegativesNotAllowedException : Exception
{
}
/// <summary>
@deejaygraham
deejaygraham / xUnitTraits.cs
Last active August 29, 2015 14:00
xUnit test categorisation using traits
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public class InMemoryTestAttribute : TraitAttribute
{
public InMemoryTestAttribute()
: base("Category", "Fast")
{
}
}
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
@deejaygraham
deejaygraham / clean.rb
Created May 6, 2014 12:19
Clean a folder of empty sub-folders
Dir['**/*'] \
.select { |d| File.directory?(d) } \
.select { |d| (Dir.entries(d) - %w[ . .. ]).empty? } \
.each { |d| Dir.rmdir d }