Skip to content

Instantly share code, notes, and snippets.

View JamesDunne's full-sized avatar

jsd1982 JamesDunne

View GitHub Profile
@JamesDunne
JamesDunne / ImmutableObjectGenerator.tt
Created October 6, 2011 03:43
A Visual Studio T4 template for generating immutable object models in C#
<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ assembly name="System.Core.dll" #>
<#@ import namespace="System.Linq" #>
<#@ output extension=".generated.cs" #><#
// Describe the immutable model types to generate:
var types = new[] {
new {
name = "ImmutableSample",
comment = "A complete commit object.",
idType = "int",
@JamesDunne
JamesDunne / moved
Created October 14, 2011 03:18
Simple drop-in ASP.NET ashx to provide a simple yet safe SQL query builder/executor web tool
Moved to https://github.com/JamesDunne/QueryAshxClient
@JamesDunne
JamesDunne / FindConflictingReferences.cs
Created January 4, 2012 20:42 — forked from brianlow/FindConflictingReferences.cs
Find conflicting assembly references
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
namespace MyProject
{
public class UtilityTest
{
@JamesDunne
JamesDunne / RFC3339DateTime.cs
Created February 1, 2012 17:01
RFC3339 DateTime struct for C#
public struct RFC3339DateTime : IEquatable<RFC3339DateTime>, IComparable<RFC3339DateTime>
{
private readonly DateTimeOffset _value;
private static readonly string[] _formats = new string[] { "yyyy-MM-ddTHH:mm:ssK", "yyyy-MM-ddTHH:mm:ss.ffK", "yyyy-MM-ddTHH:mm:ssZ", "yyyy-MM-ddTHH:mm:ss.ffZ" };
public RFC3339DateTime(string rfc3339FormattedDateTime)
{
DateTimeOffset tmp;
if (!DateTimeOffset.TryParseExact(rfc3339FormattedDateTime, _formats, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AssumeUniversal, out tmp))
@JamesDunne
JamesDunne / SqlAsyncConnectionString.cs
Created May 4, 2012 20:58
SqlAsyncConnectionString wrapper class to modify a SQL connection string to add Asynchronous Processing=True if it does not exist
/// <summary>
/// Represents a connection string that is guaranteed to have been altered to enable asynchronous processing.
/// </summary>
public sealed class SqlAsyncConnectionString
{
private readonly string _connectionString;
/// <summary>
/// Creates a connection string prepared for enabling asynchronous processing with an optional connection timeout.
/// </summary>
@JamesDunne
JamesDunne / bigbenircbot.cs
Created November 14, 2012 16:33
Big Ben C# IRC bot
using System;
using System.Linq;
using System.Threading.Tasks;
namespace IrcBots {
public class BigBenIrcBot : PircBot {
const string IRC_CHANNEL = "#bitswebteam";
public BigBenIrcBot() { setName("isu_big_ben"); }
static void Main() {
var bot = new BigBenIrcBot();
@JamesDunne
JamesDunne / divide-benchmark.cpp
Created October 2, 2013 19:41
A small benchmark in C++ to demonstrate integer vs. floating point division operations on various platforms.
#include <stdlib.h>
#include <stdio.h>
#ifdef _WIN32
#include <sys/timeb.h>
#else
#include <sys/time.h>
#endif
#include <time.h>
double
@JamesDunne
JamesDunne / makegif-itoldyouso.cmd
Last active August 29, 2015 14:01
Creating animated GIFs from videos using ffmpeg and imagemagick
@echo off
rem http://i.bittwiddlers.org/b/KHh
rem goto extract
goto annotate
rem goto combine
:extract
rem Extract frames:
rem del /f /q glass.avi
@JamesDunne
JamesDunne / makegif-sociopath.cmd
Last active August 29, 2015 14:02
Make animated GIF from Sherlock S03E02 scene: High-functioning sociopath
@echo off
rem Final result: http://i.bittwiddlers.org/b/KH8
rem goto annotate
:capture
ffmpeg -i Sherlock.3x02.the_sign_of_three.mkv -ss 10:37 -t 10 fr%d.png
:annotate
del /f /q v*.txt 2>NUL
rem Bloody psychopath!
@JamesDunne
JamesDunne / private.xml
Last active August 29, 2015 14:02
KeyRemap4MacBook good settings for Windows keyboards
<?xml version="1.0"?>
<root>
<appdef>
<appname>Google Chrome</appname>
<equal>com.google.Chrome</equal>
</appdef>
<item>
<name>Refresh with F5 in Chrome</name>
<identifier>private.Chrome.Refresh</identifier>
<only>Google Chrome</only>