Skip to content

Instantly share code, notes, and snippets.

@jmcd
jmcd / Act.cs
Created May 8, 2012 15:17
Making an action expression from a function expresstion
var funcExp = (MyThing x) => x.MyMethod(foo);
var actExp = Expression.Lambda<Action<MyThing>>(funcExp.Body, funcExp.Parameters);
@jmcd
jmcd / gist:2660070
Created May 11, 2012 14:30
Adding paths to view engine without subclassing
var viewEngine = (RazorViewEngine)ViewEngines.Engines.Single(ve => ve is RazorViewEngine);
viewEngine.PartialViewLocationFormats = new List<string>(viewEngine.PartialViewLocationFormats)
{
"~/Views/Shared/Fields/{0}.cshtml",
"~/Views/Shared/ReadOnlyModels/{0}.cshtml",
}.ToArray();
public static class ResolveUrlExtension
{
public static MemberConfigurationExpressionWrapper<TSource> ResolveUrl<TSource>(this IMemberConfigurationExpression<TSource> opt)
{
return new MemberConfigurationExpressionWrapper<TSource>(opt);
}
public class MemberConfigurationExpressionWrapper<TSource>
{
private readonly IMemberConfigurationExpression<TSource> _opt;
@jmcd
jmcd / gist:3187094
Created July 27, 2012 09:30
Delete bin and obj directories
for /d /r . %d in (bin,obj) do @if exist "%d" rd /s/q "%d"
@jmcd
jmcd / gist:3187143
Created July 27, 2012 09:46
Fix permissions on IIS Site directory
icacls d:\SiteData\%1 /grant "IIS APPPOOL\%1":(OI)(CI)(F)
@jmcd
jmcd / LambdaExpressionFactory.cs
Created August 1, 2012 11:30
Runtime generation of a lambda of member-expression
public class LambdaExpressionFactory
{
// With member type
public static Expression<Func<T, TProperty>> Lambda<T, TProperty>(string memberName)
{
var parameterExpression = Expression.Parameter(typeof(T), "x");
var memberExpression = Expression.PropertyOrField(parameterExpression, memberName);
var result = (Expression<Func<T, TProperty>>)Expression.Lambda(memberExpression, parameterExpression);
return result;
}
@jmcd
jmcd / ASCIIFoldingAnalyzer.cs
Created November 19, 2012 10:48
Searching for text stored with accents in Lucene.NET
using System;
using System.IO;
using Lucene.Net.Analysis;
using Lucene.Net.Analysis.Standard;
using Lucene.Net.Documents;
using Lucene.Net.Index;
using Lucene.Net.QueryParsers;
using Lucene.Net.Search;
using Lucene.Net.Store;
using NUnit.Framework;
@jmcd
jmcd / FizzBuzz.cs
Last active October 13, 2015 05:48
An unreadable Fizz Buzz
class FizzBuzz
{
static void Main()
{
for (var i = 1; i < 101; i++)
System.Console.WriteLine(i % 15 == 0 ? "FizzBuzz" : i % 3 == 0 ? "Fizz" : i % 5 == 0 ? "Buzz" : "" + i);
}
}
@jmcd
jmcd / AnnotationCoordinateUtility.m
Last active October 4, 2021 19:32
Calculate a new coordinate given a starting coordinate, bearing and distance. Objective-C
#import <CoreLocation/CoreLocation.h>
#import <MapKit/MapKit.h>
#import "AnnotationCoordinateUtility.h"
@implementation AnnotationCoordinateUtility {
}
+ (void)mutateCoordinatesOfClashingAnnotations:(NSArray *)annotations {
@jmcd
jmcd / gist:4510858
Created January 11, 2013 13:59
Add a border to a UIView for visual debugging
self.mapView.layer.borderColor = [UIColor redColor].CGColor;
self.mapView.layer.borderWidth = 3.0f;