Skip to content

Instantly share code, notes, and snippets.

View khellang's full-sized avatar

Kristian Hellang khellang

View GitHub Profile
@khellang
khellang / IoC.cs
Last active August 29, 2015 14:14
public interface IApplicationSingleton
{
void MethodCalledEachRequest();
}
public interface IRequestScopedService
{
void DoSomething();
}
#region License and Terms
// MoreLINQ - Extensions to LINQ to Objects
// Copyright (c) 2008 Jonathan Skeet. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
public static class Crc32
{
private const uint Seed = 0xFFFFFFFF;
private const uint Polynomial = 0xEDB88320;
private static readonly uint[] LookupTable;
static Crc32()
{
using System.Threading;
Console.Beep(659, 125);
Console.Beep(659, 125);
Thread.Sleep(125);
Console.Beep(659, 125);
Thread.Sleep(167);
Console.Beep(523, 125);
Console.Beep(659, 125);
Thread.Sleep(125);

Keybase proof

I hereby claim:

  • I am khellang on github.
  • I am khellang (https://keybase.io/khellang) on keybase.
  • I have a public key whose fingerprint is 4CBC 3C71 8B18 5CCD 2675 3C10 1451 C164 06CD C320

To claim this, I am signing this object:

public class ValidatableModel : INotifyDataErrorInfo, INotifyPropertyChanged
{
private ConcurrentDictionary<string, List<string>> _errors =
new ConcurrentDictionary<string, List<string>>();
public event PropertyChangedEventHandler PropertyChanged;
public void RaisePropertyChanged(string propertyName)
{
var handler = PropertyChanged;
# PowerShell + HTML5 prototype. Needs audio. Run: iex (New-Object Net.WebClient).DownloadString("https://gist.githubusercontent.com/khellang/8c708cd511125fab134b/raw/7d34a68073b715a3d19d1f6041637a8de6be9802/Invoke-PSHtml5.ps1")
$data = 'H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcplVmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/In638zpb5E36Wfp7biUpPR+lP/ZjvyeeH//xH/89f5x/0C9Dz4/rvz/2ex4+0kd+Ofz4k0/MewIC/3zyyScfH9Lz6PDwx3/s95T2I/Pio0O8Ii/5nX/Cb/ivcGN57BsGGfcKnuAVfcn1gtbyAr3ycfwVfklesQ+N4uNPOq+M+D8e/CH+k3af8JtoT80+1p+2l5G05v/jM3mBn48/jr4ywiNIDb1yqDT2X9Fh8D+fdF5BYzct/iv8EX7EXzGd4BWLlyHZx+EL/M7Hn0gX+goTzL3i3vjkYzsY/ONeca39Vyyl5SWlQu8V6evjT7Qffsdy5MeHOlp5xcMLvXzM73Dbj/kfDIbJaSkWIPboUBoyWh8zmvrKobxlGMbh9ejRJwYzxsiMwgB8pETmF/i/kTcY88rH+oq8Frwykp68mWFS8TsOcXnFodV9xcyle8N/ZSTI4ZVDeeHHzSuuE6bYj3sA7MedXjqvuF70gQx0MDv8xBLMUExe0bfwsXTz4zKX4JdPPu73gn91goCG6cYg9uM//nHwiocXXsIcB4ihHesL5jKn+vxXwjf0FXnL9WIHj1eUy0LEftyozd9Te/FeYXViujGY/binC90rShJp+ONWyAxizgJAkN3DL2DSuTH+wc/eK9q

Results 10,000,000 iterations:

Start

Method Time
IndexerEquals 31ms
CharIndexOfEquals 102ms
StartsWith [Ordinal] 138ms
SubstringEquals 179ms
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
public class C
{
public async Task<IEnumerable<string>> M()
{
return await N();
}
public static class ObservableExtensions
{
public static IObservable<TResult> WithLatestFrom<TResult, TFirst, TSecond>(
this IObservable<TFirst> first,
IObservable<TSecond> second,
Func<TFirst, TSecond, TResult> resultSelector)
{
return second.Select(a => first.Select(b => resultSelector(b, a))).Switch();
}
}