Skip to content

Instantly share code, notes, and snippets.

@JamesTryand
JamesTryand / UpgradePowerShellToDotNet4.ps1
Created March 8, 2011 22:46
Upgrades your powershell to .net runtime 4
Set-ItemProperty "HKLM:\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine" -n 'RuntimeVersion' -val 'v4.0.30319'
@JamesTryand
JamesTryand / about.md
Created August 10, 2011 18:16 — forked from jasonrudolph/about.md
Programming Achievements: How to Level Up as a Developer
@JamesTryand
JamesTryand / Program.cs
Created December 30, 2011 17:22
Simple Static Code Analysis Summary Tool For Legacy Projects
using System;
namespace SSCASTFLP
{
class Program
{
public static void Main(string[] args)
{
Console.Write("Holy Fucking Shit. That Codebase Is Shocking.");
Console.ReadKey(true);
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Simple.Testing;
using Simple.Testing.ClientFramework;
namespace ClassLibrary1
{
public class Class1
22:43:40.516 - Publishing message of type AutoTest.Messages.InformationMessage
22:43:40.528 - Initial configuration finished
22:43:40.563 - Checking license
22:43:40.668 - Setting up cache
22:43:40.686 - C:\Dev\Scratch\ClassLibrary1\ClassLibrary1\ClassLibrary1.csproj initialize cache
22:43:40.693 - C:\Dev\Scratch\ClassLibrary1\ClassLibrary1\ClassLibrary1.csproj preparing cache
22:43:40.720 - Trying to get path Class1.cs relative to C:\Dev\Scratch\ClassLibrary1\ClassLibrary1
22:43:40.726 - Trying to get path Properties\AssemblyInfo.cs relative to C:\Dev\Scratch\ClassLibrary1\ClassLibrary1
22:43:40.728 - Trying to get path packages.config relative to C:\Dev\Scratch\ClassLibrary1\ClassLibrary1
22:43:40.733 - Publishing message of type AutoTest.Messages.InformationMessage
@JamesTryand
JamesTryand / uri.js
Created April 23, 2012 20:58 — forked from jlong/uri.js
URI Parsing with Javascript
var parser = document.createElement('a');
parser.href = "http://example.com:3000/pathname/?search=test#hash";
parser.protocol; // => "http:"
parser.hostname; // => "example.com"
parser.port; // => "3000"
parser.pathname; // => "/pathname/"
parser.search; // => "?search=test"
parser.hash; // => "#hash"
parser.host; // => "example.com:3000"
@JamesTryand
JamesTryand / InferHelper.cs
Created April 30, 2012 14:29
Helper class to infer type from lambdas in C#
/// <summary>
/// These classes are helper classes to help type inference for lambdas.
/// <example>var f = () => 4; // will not compile,
/// var f = Infer.Func(() => 4); // will compile.</example>
/// <see cref="http://blogs.msdn.com/b/jaredpar/archive/2007/12/14/c-lambda-type-inference.aspx"/>
///
/// </summary>
public static class Infer
{
public static Func<A> Func<A>(Func<A> f)
@JamesTryand
JamesTryand / NuGet.targets.xml
Created May 3, 2012 09:47 — forked from half-ogre/NuGet.targets.xml
A replacement for the NuGet.targets file that requires nuget.exe be on the path, so you don't have to commit it.
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">$(MSBuildProjectDirectory)\..\</SolutionDir>
<!-- Windows specific commands -->
<PackagesConfig Condition=" '$(OS)' == 'Windows_NT'">$([System.IO.Path]::Combine($(ProjectDir), "packages.config"))</PackagesConfig>
<PackagesDir Condition=" '$(OS)' == 'Windows_NT'">$([System.IO.Path]::Combine($(SolutionDir), "packages"))</PackagesDir>
<!-- We need to launch nuget.exe with the mono command if we're not on windows -->
@JamesTryand
JamesTryand / gist:2630087
Created May 7, 2012 20:11 — forked from mausch/gist:2630024
VB.NET funcs
Just found out that VB.NET can infer function types correctly. I.e. this won't work in C#:
var withMemoryStream =
(Action<MemoryStream> f) => () => {
using (var ms = new MemoryStream())
f(ms);
};
("Cannot assign lambda expression to implicitly-typed local variable", because it can't tell a Func<T> from an Expression<Func<T>>).
But the exact same code in VB.NET does work:
@JamesTryand
JamesTryand / MonadExamples.fs
Created May 9, 2012 18:57 — forked from t0yv0/MonadExamples.fs
Emulating higher kinds with F# inline functions.
(* F# lacks proper support for higher-kinded abstraction such as ML
functors or Haskell typeclasses. In particular it makes it seemingly
impossible to define functions that work for every type constructor.
The code below demonstrates that this functionality can be partially
recovered by using inline functions with static member constraints.
The approach requires explicitly passing typeclass instance values.
Error messages and derived types are horrible. Nonetheless, there is
some type safety - if the typeclass instances have been defined right,
type-unsafe code will be rejected by the typechecker, albeit with a
hairy message. Another disadvantage is the need to invent operators. *)