Skip to content

Instantly share code, notes, and snippets.

// Current (C# 5) syntax
var request = new CreateIndexRequest("new-index-name")
{
IndexSettings = new IndexSettings
{
Settings = new Dictionary<string, object>
{
{"index.settings", "value"}
},
Mappings = new List<RootObjectMapping>
@tomlokhorst
tomlokhorst / gist:6ed40e0e00cd2989a282
Last active August 29, 2015 14:08
SegueManager.swift
@tomlokhorst
tomlokhorst / gist:413457d8956d01638993
Created December 18, 2014 09:01
Don't zoom in on Google Maps when scrolling through a website
function fixMapScrollwheel(map) {
map.setOptions({ scrollwheel: false });
google.maps.event.addListener(map, 'click', function() {
map.setOptions({ scrollwheel: true });
});
google.maps.event.addListener(map, 'mouseout', function() {
map.setOptions({ scrollwheel: false });
});
@tomlokhorst
tomlokhorst / Promise.java
Last active August 29, 2015 14:16
Example of wrapping a RxJava Observable to get promise semantics.
// This is now available as a full library instead of a gist: https://github.com/Q42/RxPromise
@tomlokhorst
tomlokhorst / invalid-cast.swift
Created March 4, 2015 18:29
Invalid cast causing runtime crash in Swift <= 1.2
import Foundation
let obj = NSNumber(int: 2)
func correct<T>() -> T? {
if let val = obj as? T {
println("matching types")
return val
}
@tomlokhorst
tomlokhorst / gist:663733aa392e5dc19438
Created May 27, 2015 18:00
Json model vs Domain model
/* Domain model */
// A Profile consists of a person name and an optional avatar
struct Profile {
let personName: PersonName
let avatarURL: NSURL?
}
// These are the UX rules for showing a greeting:
@tomlokhorst
tomlokhorst / NSUserDefaults+Keys.swift
Created July 26, 2015 12:21
Strongly typed NSUserDefaults using Phantom Types.
// We can use Phantom Types to provide strongly typed acces to NSUserDefaults
// Similar to: http://www.objc.io/blog/2014/12/29/functional-snippet-13-phantom-types/
// A key to UserDefaults has a name and phantom type
struct Key<T> {
let name: String
}
@tomlokhorst
tomlokhorst / FuctorTest.cs
Created February 22, 2010 13:07
Functor type class ported to C#
// Functor type class ported to C#
// Only tested with: Mono C# compiler version 2.4.2.3
//
// Because .NET doesn't support higher kinded generics, we can't exactly port
// the Functor type class.
// However, if we're willing to give up a bit of type safety, we can get the
// IFuctor interface to work.
//
// We only have to add a single type cast, directly after using fmap. E.g:
// var xs = new List<int>();
@tomlokhorst
tomlokhorst / ReadTest.cs
Created February 23, 2010 18:14
Read type class ported to C#
// Read type class ported to C#
// Only tested with: Mono C# compiler version 2.4.2.3
//
// Because there are no static interface members, new instances of the
// Dictionary classes have to be created (although they contain no state).
//
// The functions using the read method (like mulStrings) explicitly mention
// `int` in IReadDictionary<int>, but that's just like `x = read "4" :: Int` in
// Haskell.
//
{-# LANGUAGE DoRec #-}
module ExprLang where
import Control.Monad.Error
import Data.List
import Data.Maybe
-- Language