Skip to content

Instantly share code, notes, and snippets.

View nakamura-to's full-sized avatar

Toshihiro Nakamura nakamura-to

View GitHub Profile
@nakamura-to
nakamura-to / gist:2631807
Created May 8, 2012 01:15
KageDB.open abstraction fragment
var onsuccess;
Object.defineProperty(req, "onsuccess", {
get: function () {
return onsuccess;
},
set: function (onsuccess_internal) {
req.removeEventListener('success', onsuccess);
onsuccess = function onsuccess(event) {
var db = event.target.result;
db.kage_kageDB = self;
@nakamura-to
nakamura-to / gist:3037834
Created July 3, 2012 05:18
MSPointer Capture
var panel = document.getElementById("panel");
panel.addEventListener("MSPointerDown", function (event) {
panel.msSetPointerCapture(event.pointerId);
WinJS.UI.Animation.pointerDown(event.target);
});
panel.addEventListener("MSPointerUp", function (event) {
panel.msReleasePointerCapture(event.pointerId);
WinJS.UI.Animation.pointerUp(event.target);
});
@nakamura-to
nakamura-to / gist:3224648
Created August 1, 2012 07:38
Cache-enabled Gateway for Metro Style Applicatoin
(function () {
/* */
/* EXAMPLE */
/* */
//var db = new KageDB({
// name: "db",
// version: 1,
// migration: {
// 1: function (ctx, next) {
@nakamura-to
nakamura-to / gist:3233019
Created August 2, 2012 03:26
pseudo inheritance in F#
type Animal = { Name: string; Bark: unit -> string }
let newDog name = { Name = name; Bark = fun _ -> "Bow wow" }
let newCat name = { Name = name; Bark = fun _ -> "meow" }
let newCheetah name =
let cat = newCat name
{ Name = name; Bark = cat.Bark >> (fun a -> a + " " + a)}
let dog = newDog "Pochi"
let cat = newCat "Tama"
@nakamura-to
nakamura-to / Js.stg
Created August 12, 2012 08:13
Translator with ANTLR
group Js;
program(vars, text) ::= <<
(function () {
var <vars : {var | <var> = 0}; separator=", ">;
<text>
})();
>>
if(cond, thenBlock, elseBlock) ::= <<
@nakamura-to
nakamura-to / app.config
Created September 27, 2012 02:03
Use Soma with F# 3.0
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral">
</assemblyIdentity>
@nakamura-to
nakamura-to / Db.cs
Created October 3, 2012 21:54
Simple DB access in C#
using System;
using System.Collections.Generic;
using System.Dynamic;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;
namespace DbConsole
{
public class Db
@nakamura-to
nakamura-to / gist:3863309
Created October 10, 2012 05:20
TryChangeType with op_Explicit
class Program
{
static void Main(string[] args)
{
var value = new Celsius(10);
Fahrenheit result;
if (TryChangeType(value, typeof(Fahrenheit), out result))
{
Console.WriteLine(result.Degrees); // 50
}
@nakamura-to
nakamura-to / DomainConverter.java
Created October 15, 2012 08:27
Concept code of ExternalDomain in Doma
package org.seasar.doma.jdbc.domain;
public interface DomainConverter<D, V> {
// Java to DB
V fromDomainToValue(D domain);
// DB to Java
D fromValueToDomain(V value);
}
@nakamura-to
nakamura-to / gist:3925528
Created October 21, 2012 02:47
Rethrow the inner exception of a TargetInvocationException with .NET 4.5 ExceptionDispatchInfo
class Program
{
static void Main(string[] args)
{
var method = typeof (Program).GetMethod("Hello");
try
{
method.Invoke(null, new object[] {});
} catch(TargetInvocationException e)
{