Skip to content

Instantly share code, notes, and snippets.

View grafi-tt's full-sized avatar

Shunsuke Shimizu grafi-tt

View GitHub Profile
Wikiに書こうとしたけど、オフトピな気がしたので。
課題出すやつは、ターミナルからコマンドを叩いて課題を提出するためのRubyスクリプトです。ブラウザでファイル選ぶのめんどいとか、ターミナルから出るのがめんどいとかあればどうぞ。
動かすにはRubyが動いて、ThorとMechanizeというライブラリが入った環境が必要です。rubygemsが使える環境で、
#highlight(sh){
gem install thor mechanize
}
をターミナルで実行すればいけると思います。Ruby1.9系、Ruby1.8系で多分動きますが、動かなかったらどこかにコメントください。サーバーに迷惑かもしれないので、あんまり極端な回数実行しないでください。同様に、サーバーの仕様が変わって使えなくなった気がするときは、あんまり繰り返し実行しないでください。
import Data.Maybe (fromMaybe)
data TwoThreeSet a = Empty | One a | Tree (TwoThreeTree a)
emptyMap :: TwoThreeSet a
emptyMap = Empty
search :: Ord a => TwoThreeSet a -> a -> Bool
search Empty _ = False
search (One x) y | x == y = True
(define (position-of-highest-bit-32 n)
(let ((m n) (v 0))
(set! m (ash n -16))
(if (not (= m 0))
(begin (set! v (+ v 16))
(set! n m)))
(set! m (ash n -8))
(if (not (= m 0))
(begin (set! v (+ v 8))
(set! n m)))
@grafi-tt
grafi-tt / wikirss.py
Last active December 16, 2015 17:29
./wikirss.py cookie を一度実行したのちに、./wikirss.py を実行すると、最後に./wikirss.pyを実行したとき以降の更新が表示されるはずです。 ACCESS_TIME_FILEを消すと、最後に実行した時刻はリセットされます。最後に実行してから5分間は何もしないようになっています。 学科PCの.zshrcなどで呼び出す感じにしたら良さげかも?
#!/usr/bin/env python2.7
import xml.etree.ElementTree as ET
from datetime import datetime, tzinfo, timedelta
import time
import cookielib
import urllib
import urllib2
import sys
import os.path
@grafi-tt
grafi-tt / bridge.rb
Last active December 20, 2015 07:49
require 'serialport'
sio = SerialPort.new("/dev/ttyUSB0", 9600, 8, 1, 0)
INSTS = {
fadd: {
op: 0x42,
in: [4, 4],
out: [4]
}
(define (fib-pathological n)
(define (go m prev tag acc)
(cond
((= m (+ n 1))
acc)
((< m 2)
(if (even? tag)
(go (+ m 1) m (quotient tag 2) (+ acc 1))
(go (+ m 2) m (quotient tag 2) (+ acc 1))))
((= prev (- m 2))
w, h = 200.0, 200.0
vertexes = [[130.0,80.0], [50.0,50.0], [60.0,140.0]]
def ext(a,b) 11*a-10*b end
lines = vertexes.combination(2).map do |(x1,y1),(x2,y2)|
[[ext(x1,x2),ext(y1,y2)],[ext(x2,x1),ext(y2,y1)]]
end
ratios = [[1,0,0].permutation, [1,1,0].permutation, [4,-1,0].permutation, [3,3,-2].permutation, [5,-1,-1].permutation, [[1,1,1]]].map(&:to_a).flatten(1).uniq
@grafi-tt
grafi-tt / a.diff
Last active December 26, 2015 23:23
--- suda-bug.c 2014-07-15 03:32:15.950329411 +0900
+++ suda.c 2014-07-15 03:32:22.298329432 +0900
@@ -80,15 +80,19 @@
case 0:
amask_reg = _mm256_set_pd(one, one, one, one);
rmask_reg = _mm256_set_pd(0, one, one, one);
+ break;
case 1:
amask_reg = _mm256_set_pd(0, 0, 0, one);
rmask_reg = _mm256_set_pd(one, one, one, 0);
let rec f : 'c. unit -> ((unit -> 'a -> 'b) -> 'c) -> 'c = fun () k -> k g
and g () k = f () (fun l -> l () k);;
f () (fun x -> x)
||||||||||||||||||||||||||||||||||||||
||||||||-→