Skip to content

Instantly share code, notes, and snippets.

View takaki's full-sized avatar

TANIGUCHI Takaki takaki

View GitHub Profile
@takaki
takaki / gist:3967886
Created October 28, 2012 06:36
blaze-builder sample
import Data.Monoid
import Blaze.ByteString.Builder
import Blaze.ByteString.Builder.Char.Utf8
import qualified Data.ByteString.Char8 as BSC
main = do
let end = 50000
-- print $ foldl1 (++) (map show [1..end]) -- too much slow
print $ length $ BSC.unpack $ toByteString $ foldl1 mappend $ map fromString $ (map show) [1..end]
print $ length $ BSC.unpack $ foldl1 mappend $ map BSC.pack $ Prelude.map show [1..end] -- slow
@takaki
takaki / gist:4063677
Created November 13, 2012 02:55
xpyb sample
# -*- coding: utf-8 -*-
from xcb import xcb
from xcb import xproto
r = [ 20, 20, 60, 60 ]
title = "test"
c = xcb.connect()
s = c.get_setup().roots[0]
g = c.generate_id()
@takaki
takaki / gist:4169514
Created November 29, 2012 14:41
Parsec: RFC 5322 (RFC 822) email address parser
import Debug.Trace
import Control.Monad.State
import Text.Parsec
import Data.Char
import Control.Monad.Trans
import Control.Applicative hiding((<|>),many,optional)
-- trace s f = f
-- ref. RFC5322 and RFC5234
@takaki
takaki / gist:4528081
Last active December 11, 2015 02:08
Encode.pm sample
#!/usr/bin/perl
#
use strict;
use Encode qw(decode encode from_to);
use Data::Dumper;
open IN, 'euc.txt';
while(<IN>){
my $euc = $_;
my $string = decode('euc-jp', $euc);
@takaki
takaki / gist:4528092
Created January 14, 2013 06:21
HTML::TableExtract sample
#!/usr/bin/perl
use strict;
use HTML::TableExtract;
use Data::Dumper;
my $html = "<table>" .
"<tr><td>" .
"<table><tr><td>1</td><td>a</td></tr><tr>".
"<td>2</td><td>B</td></tr></table>" .
"</td></tr>" .
@takaki
takaki / gist:4595438
Created January 22, 2013 15:21
Data.Lens test
import Data.Lens.Common
data Hoge = Hoge {
x :: Int,
y :: Int,
z :: Int
} deriving(Show)
getX = x
getY = y
@takaki
takaki / gist:5342165
Last active December 15, 2015 23:39
Knapsack
#!/usr/bin/python3
data = [(2,3), (4,7), (1,1), (3,8)]
q_max = 8
# wrong: p = [[0] * (q_max+1)] * (len(data) + 1)
p = [[0 for j in range(q_max+1)] for i in range(len(data)+1)]
ps = [[None for j in range(q_max+1)] for i in range(len(data)+1)]
@takaki
takaki / label.tex
Last active December 16, 2015 15:59
\documentclass{jsarticle}
\usepackage{ifthen}
\pagestyle{empty}
\addtolength{\textwidth}{15mm}
\setlength{\oddsidemargin}{-15mm}
\setlength{\topmargin}{-30mm}
\addtolength{\textheight}{55mm}
package org.media_as.takaki.jfshogiban.gui;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.concurrent.Service;
import javafx.concurrent.Task;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.input.MouseEvent;
package org.example.javalabo;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonParser;
public class GsonJsonPP {
public static void main(String[] args) {
System.out.println(new GsonBuilder().setPrettyPrinting().create()
.toJson(new JsonParser()
.parse("{\"aaa\":0, \"bbb\": [\"ddd\", \"eee\"], \"fff\":{\"ggg\":\"hhh\"}}")));