Skip to content

Instantly share code, notes, and snippets.

View hediet's full-sized avatar

Henning Dieterichs hediet

View GitHub Profile
@hediet
hediet / XmlDocumentationProvider.cs
Last active August 29, 2015 14:14
DocumentationProvider using NuDoc
namespace Hediet.Reflection
{
interface IDocumentationProvider
{
string GetDocumentationText(MemberInfo memberInfo);
string GetDocumentationText(ParameterInfo memberInfo);
}
class XmlDocumentationProvider : IDocumentationProvider
{
@hediet
hediet / BijectivMap.cs
Created March 9, 2015 15:25
A class which maps a fixed size array of integer bijective to a single integer.
namespace Hediet.Math
{
public class BijectivMap
{
private readonly int[] lowerKeyBounds;
private readonly int[] upperKeyBounds;
public BijectivMap(int[] lowerKeyBounds, int[] upperKeyBounds)
{
this.lowerKeyBounds = lowerKeyBounds;
@hediet
hediet / CustomDiscriminatorObjectConverter.cs
Last active August 29, 2015 14:16
CustomDiscriminatorObjectConverter
using System;
using System.Diagnostics.Contracts;
using System.Linq;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace Hediet.Json.Converter
{
public class CustomDiscriminatorObjectConverter : Newtonsoft.Json.JsonConverter
{
@hediet
hediet / data.json
Last active August 29, 2015 14:19 — forked from phiresky/data.json
Data für blattabgabe.studium.sexy
{
"help": "{n} is replaced with the sheet number, n represents the padding of the number e.g. ({2} => (01,02,03))",
"name": "KIT Inf SS2015 (4. FSem)",
"uebs": {
"Sicherheit": {
"begin": "2015-04-23 15:45",
"every": 14,
"url": "https://crypto.iti.kit.edu/fileadmin/User/SicherheitSS15/Uebung/Sicherheit_UE{2}.pdf",
"info": "Keine Abgabe. Besprechung in der Übung. <a href='https://crypto.iti.kit.edu/index.php?id=sic-sose15'>Vorlesungsseite</a>"
},
@hediet
hediet / ListConverter.cs
Last active August 29, 2015 14:21
ListConverter
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
namespace Hediet.Common
{
/// <summary>
/// Casts a list of objects to a strong typed list of any type.
@hediet
hediet / WebBrowserIE11Fix.cs
Created August 17, 2016 03:42
A fix that enables IE11 for the WPF browser control.
internal static class WebBrowserIE11Fix
{
public static void SetIE11KeyforWebBrowserControl(string processPath = null)
{
if (processPath == null)
{
processPath = Process.GetCurrentProcess().ProcessName + ".exe";
}
RegistryKey Regkey = null;
@hediet
hediet / main.md
Last active March 11, 2024 15:05
Proof that TypeScript's Type System is Turing Complete
type StringBool = "true"|"false";


interface AnyNumber { prev?: any, isZero: StringBool };
interface PositiveNumber { prev: any, isZero: "false" };

type IsZero<TNumber extends AnyNumber> = TNumber["isZero"];
type Next<TNumber extends AnyNumber> = { prev: TNumber, isZero: "false" };
type Prev<TNumber extends PositiveNumber> = TNumber["prev"];
@hediet
hediet / main.ts
Created April 21, 2017 19:29
Acceptor / User Pattern for TypeScript
interface Acceptor<T extends string> {
accept(x: UserOf<T>): any;
allow<T1 extends string>(x: T1): Acceptor<T|T1>;
}
interface UserOf<T extends string> {
_brand: T;
}
function use<T extends string>(name: T): UserOf<T> { return null!; }
@hediet
hediet / installation.json
Created July 9, 2017 13:09
Alternative to node_modules
{
"dependencies": {
"classnames": {
"ref": "classnames@2.2.5_1"
},
"mobx": {
"ref": "mobx@3.2.0_2"
},
"mobx-react": {
"ref": "mobx-react@4.2.2_3"
function tex(str: TemplateStringsArray, ...data: string[]) { }
const c = Sigma* *1
const Sigma = "uiae";
const SigmaS = "";
const x =
(
<def>
Ein {Sigma}-{Sigma}-Advice (Hinweis) {A} ist eine Abbildung
{A : Sigma* -> Pot(Gamma*)}