EM::DefaultDeferrable の使い道

というわけで http://d.hatena.ne.jp/eagletmt/20110211/1297413439 は class HtmlDocument include EM::Deferrable ... で良いのであった… では EM::DefaultDeferrable は何のために提供されているのかというと DefaultDeferrable is an otherwise empty cl…

include / extend と super

勘違いしてた.include / extend したメソッド(?)を上書きしたときも,上書きされたメソッドを super で参照できるのか. extend と super を使ったどーでもいい例. def mod(i) Module.new do define_method :f do super() + [i] end end end module B def …

/proc/$PID/fd とテンポラリファイル

http://memo.officebrook.net/20110211.html を見て,なるほどそうやってファイルを取り出せるのかと感心した. UNIX では open(2) で既に開かれているファイルを unlink(2) してもファイルディスクリプタは有効であり続け,実際に消えるのは close(2) され…

既存の EventMachine::Deferrable なクラスを薄くラップする

本格的に Deferrable なクラスを作りたいときは include EM::Deferrable するけど,そうではなく既存の Deferrable の上にちょっと乗せるだけみたいなときは EM::DefaultDeferrable を利用するといいらしい. em-http-request を利用して非同期にリクエスト…

コマンドラインで proxy の設定をできるようにするプラグイン

コードの最初に怪しい英語での説明が書いてあるけど,ようは Edit -> Preferences -> Advanced -> Settings のとこにある設定を Vimperator のコマンドラインから行えるようにしたもの. manual に設定したときの -ssl とか -no-proxy とかのオプションの扱…

PAC をリロード

「このサイトを見るときはこのプロキシを使う」ということを実現するためには PAC を書くと幸せになれることが多い. 特にそのプロキシを自分で書いているときは付けたり外したりする等で頻繁に PAC を書き換える,ということを稀によくやると思うのですが,…

3345 -- Bribing FIPA

POJ

http://poj.org/problem?id=3345 いくつかの木が与えられ,その各ノードにコストが割り振られている. 全部で N 個のノードの中から M 個以上の頂点を選んだときの,コストの和の最小値を求めたい. ただしあるノードを選んだとき,そのノードのコストで,そ…

Windows 7 と Linux でマルチブート

目的を達成することはできたけど,あんまりよくわかってないんで適当なこと言っているかも. 目的 Windows 7 がプリインストールされているマシンに新に Linux をインストールしてマルチブートしたい.ただしハードディスクは1つ. 手段 まずブートローダを…

YouTube の動画保存

なんかいつのまにか get_video が使えなくなっていたらしい. flashvars の fmt_url_map に列挙されている URL をそのままつっこめばいいっぽい. https://github.com/eagletmt/misc/commit/fc156f30d188be3f32a620e3f6988cdf975f5d27 でもブラウザ以外から…

非正規化数

浮動小数点数には非正規化数(denormal number, subnormal number)というものが存在することを知った. http://ja.wikipedia.org/wiki/%E9%9D%9E%E6%AD%A3%E8%A6%8F%E5%8C%96%E6%95%B0 これの存在は以下のようなコードで確認できる. #include <stdio.h> #include <float.h> dou</float.h></stdio.h>…

post C79

2日目と3日目で買ったものたち.まぁほとんどが3日目ですが. まぁいつも通りなのは系メイン. 犬耳っ娘の抱き枕カバーや首輪は残念ながら入手できず.なぜか首輪のほうが若干早く完売していた. 東方熱はもう冷めてしまっているけれど,それでもいくつか好…

pre C79

コミケです. なのはブースで特に欲しいものもなく*1,なのは系もコミケでなくてもリリマジとかもあるし別に行かなくてもいいかなーと思ってたんですが,大好きな桜沢いづみ先生が!久しぶりに!!犬耳っ娘本を出す!!!ということでこれは行きたいと思い始めて,…

C++0x と遊ぶときのちょっとした

GCC 4.5.1 で結構色々と実際に使えるようになってきたこともあって,C++0x 向けにちょっとだけ Vim の設定を足した.まず static_assert, decltype をハイライトするように ~/.vim/after/syntax/cpp.vim に syntax keyword cppOperator static_assert declty…

variadic templates なクラス

C++

std::tuple を見ながら徐々に tuple を実装して variadic templates なクラスの書き方を知ろう的な. tuple が tuple を継承し,更にそれが tuple を継承し… というようなかんじで,それぞれが T1, T2, T3, ... な値を保持するように実装する. はじめのいっ…

JOI予選

http://www.ioi-jp.org/joi/2010/2011-yo-prob_and_sol/index.html 問いてみた. 1 Total Time 足して割るだけ int main() { int a, b, c, d; cin >> a >> b >> c >> d; const int sec = a+b+c+d; cout << sec/60 << endl; cout << sec%60 << endl; return 0…

filter

特に関数型言語においてはよく filter という名前の関数が用意されている. これは述語 p とリスト xs を受け取り,xs の要素 x のうち p(x) を満たす要素だけを返すというような関数だ. これを Java でも書こうとして一苦労したのでその記録を. まず型を…

auto-vectorization on floats

GCC

http://sourceforge.jp/magazine/10/11/26/0710258 を見て. gcc の場合は -ffast-math を渡してやる必要があったような,と思って調べてみた. http://gcc.gnu.org/projects/tree-ssa/vectorization.html ここによると -fassociative-math を渡してやる必要…

/ に関するバグ

ずっと気になっていたけれどもクリティカルじゃないためにすぐに忘れていた Vimperator の不具合があって,それは / で検索モード(?)に入って, で履歴を辿ってから で検索を実行しても直前の検索語で検索されてしまうというもの. たまたまその現象に出会っ…

vector, copy, construct, reference

C++

メモ http://ideone.com/XaKQV

こんぱいら

一週間くらい前まで大学の実験で PL/0 言語のコンパイラを書いたりしていました. 全然知らなかったけど PL/0 というのはコンパイラ作成の学習においてわりと使われるものらしい. 実装言語は Java で,適当な命令セットを持ったスタックマシンの命令列にコ…

ファイルの変更を監視

Linux だと inotify(2) を利用してできる.poll(2) 等と組み合わせるといい.*BSD とか Mac OS X とかだと kqueue(2) を使うらしいけどあんまり調べてない. 監視対象のファイルが削除されるか C-c されると止まる. #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <stddef.h></stddef.h></unistd.h></stdlib.h></stdio.h>…

Emacs + DDSKK + Riece (+ dbskkd-cdb)

Mac だと LimeChat が使いやすいのだけど,Linux 環境だと使えないので代替を探していて,結局 Riece に落ち着きそう. そうなるとまぁ DDSKK は使いたいし,辞書は SKK server で統一して DDSKK からも uim-skk からも利用できるようにしたい. AUR にも DD…

GHCi.vim

inf-haskell.el から最低限の機能を抜き取ったかんじの Vim script 書いた. https://github.com/eagletmt/ghci-vim 使い方としては l でファイルをロードした後に,t で型を見たり i で info を見たり. vimproc のおかげで Vim からプロセスと会話できる.…

ループ

http://tnomura9.exblog.jp/12169729/ 自分で再帰を書かなくてもどっちもなんとかなる. 以下 import Control.Monad しているということで n 回ループ 今何回目のループかを知りたいときはリストを使って forM_ [1..n] $ \i -> do putStrLn $ "loop " ++ sho…

clang_complete.vim

Vim

clang にはコード補完をサポートする機能があって % clang -cc1 -fsyntax-only -code-completion-at=$file:$line:$col $fileというように使うと,構文構造から補完の候補を表示してくれる. この機能の詳しいドキュメントがどこにあるのかわからないが,まぁ…

AST

抽象構文木を表現したいときというのはよくあると思うんだけど,Java で具体的にどういう風に表現するのがいいのかわからない. 普段は代数的データ型とかヴァリアントとか呼ばれているもので表現しているのだけど,残念なことに Java には無い. そういえば…

Haskell はデフォルトで遅延評価することだとか,スペースリークとはどんなものかとかはわかっているつもりでも, import Data.IORef main = do r <- newIORef undefined v <- readIORef r writeIORef r (v+1) putStrLn "done" これが error ではなく正常に…

Python is now Python 3

http://www.archlinux.org/news/python-is-now-python-3/ というわけでついに python パッケージが Python 3.1.2 になった. それに伴って本家のリポジトリにある python 依存なパッケージがリビルドされて python2 に依存するようになった. そっちはうまく…

NamedFieldPuns, RecordWildCards

初めて知ったのでメモ. NamedFieldPuns 旧名 RecordPuns. レコード型のパターンマッチを書くときの手間を少し減らすもの. もともと data C = C { field1 :: Int, field2 :: String } f C { field1 = x } = x + 1 というようにパターンマッチを書けるのだ…

SSL/TLS

Haskell で https な通信を行おうとしたら http://hackage.haskell.org/package/curl http://hackage.haskell.org/package/download-curl といった curl を利用したライブラリを使うのが(たぶん)普通だった. が,最近純粋に Haskell を用いて作られた tls …