OMake

omake を使ってみる. http://omake.metaprl.org/index.html AUR にもあるが,そのままだと ocaml 3.12.0 でビルドできない.どうやら警告の種類が増えて,警告をエラーとして扱っているのでそのままではビルドできなくなってしまったらしい. そこで http:/…

ghc_complete をちょっと更新

まず Pragma の補完に対応した. http://github.com/ujihisa/ghc_complete/commit/85f9732c5bc127a0b4fad6b224892be5793d61f2 これで LANGUAGE だとか GHC_OPTIONS といった Pragma 名も補完されるようになった. あとマイナーな変更として,import している…

情報工学創作実習

という講義を受けていて,これは自分の好きなテーマに関して先生の助言を受けつつ夏休みを利用して何か作って最終的に発表するというようなものだ. で,その発表会が今日だった. 興味や専門の分野は聞き手でバラバラなので,そもそもの問題設定の説明に苦…

Skype で日本語入力

skype も 32bit only なので yaourt -S multilib/skype. これが原因なのか他に原因があるのかよくわからないけど,少なくとも uim-skk で日本語入力ができなかった. とりあえず aur/skype4pidgin を入れて pidgin 経由なら大丈夫だとわかったので今はそう…

gjslint

Vim

http://d.hatena.ne.jp/Craftworks/20100908/1283941430 Vim からこのようなツールを利用する場合にはコンパイラプラグインを書くとより便利. 以下のプラグインはかなり手抜きだけど,まぁ最低限の機能は提供できていると思う. if exists("current_compile…

MeCab およびその Ruby バインディングのインストール

MeCab 本体は AUR にあるので yaourt -S mecab で入る. ただしこのとき,UTF-8 でしか使う予定はないので PKGBUILD を編集して ./configure --with-charset=utf8 --enable-utf8-only とした. 次に辞書を入れる.今回は NAIST の辞書を利用する. AUR にな…

環境構築メモ

デスクトップとして Arch Linux を入れるときのメモ. http://wiki.archlinux.org/index.php/Beginners'_Guide を参考に初期設定. X を入れるときに xf86-video-* なビデオドライバを入れ忘れないように. まずは /etc/pacman.conf に [archlinuxfr] Server…

64bit の Arch Linux で 32bit パッケージをインストール

今までは http://d.hatena.ne.jp/harre_orz/20100725/1280045436 のような方法をとっていたらしいが,今は multilib というプロジェクトが動いている. http://wiki.archlinux.org/index.php/Multilib_Project ここにあるように /etc/pacman.d/mirrorlist に…

Scrap your boilerplate

ずっと前から存在は知っていたけど読まずにいた Scrap your boilerplate: a practical approach to generic programming を一通り読んだ. http://research.microsoft.com/en-us/um/people/simonpj/papers/hmap/ これを利用した短いコードを書いてみた. htt…

Haskell で OAuth

hoauth があるけどこれまた使いにくい,というか自分には使い方がわからなかったので自分で書いた. HTTP の Request_String を作るのでこんなかんじに使える. import Control.Applicative ((<$>)) import Network.URI import Network.HTTP import qualifie…

ruby-oauth にブロックを渡せるようにする

Ruby には既に OAuth ライブラリ があるが,ブロックを渡せないのでちょっとずつ body を読み込みつつ何かする,というような処理ができない. 最終的には net/http を使っているので,適当にブロックを運ぶように書き換えて consumer = OAuth::Consumer.new…

C78

2日目と3日目に一般参加. 2日目 だいたい正午くらいにビッグサイトについて,まず最初に東方島に向かった. ひとつだけ欲しいものがあったのと,友人にいくつか頼まれていたものがあったのとで行ったけどホントに混雑がひどかった. 正直もう行きたくない.…

Twittperator 素敵

Vimperator からさくっと TL 見たりポストしたりするのに便利. ちゃんと各種コマンドで補完もきくのでわりと使いやすい. で,ちょっと不満な点があったので適当に書き足した. まず home_timeline, user_timeline, mentions の各 API に count が指定でき…

GHC API でモジュールが export している名前とその型を得る

./BrowseType Prelude のように使うと (snip) break = forall a. (a -> GHC.Bool.Bool) -> [a] -> ([a], [a]) catch = forall a. GHC.Types.IO a -> (GHC.IO.Exception.IOError -> GHC.Types.IO a) -> GHC.Types.IO a ceiling = forall a. (GHC.Real.RealFra…

ghc-mod を利用した neocomplcache のプラグイン neco-ghc (ghc_complete.vim) を書いた

せっかく Emacs とは独立して ghc-mod が書かれているので,これを Vim での補完にも利用したいなーと思って書いた. ghc-mod は hackage で公開されているため,cabal install ghc-mod でインストールできる. http://www.mew.org/~kazu/proj/ghc-mod/ http…

いつのまにか Cabal の syntax ファイルができてた

http://code.google.com/p/vim/source/browse/runtime/syntax/cabal.vim?r=b9e314fe473fadd54b861a3836ad96c9ca26bce3 しかしちょっと cabalStatement が適当すぎる… 先に license にマッチしてしまうので license-file が絶対にマッチしなかったり,license…

Cabal でテストを走らせる

今のところ標準的な方法はないけど,@shelarcy さんによると GSoC のプロジェクトで Cabal の test 機能を改善している最中だそうです. http://socghop.appspot.com/gsoc/student_project/show/google/gsoc2010/haskell/t127230760295 http://cabaltest.blo…

let-polymorphism と value restriction

について,現時点での自分の理解をまとめておく. ML 系言語での話. let-polymorphism とは let によって束縛されたものが多相的に振舞えるためのもの. let twice = fun f x -> f (f x) let a = twice (fun x -> x + 1) 0 let b = twice not true このよう…

0530 Pyon-Pyon River Crossing (ぴょんぴょん川渡り)

AOJ

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0530 足場の位置とすべりやすさが与えられ,向こう岸に辿りつくルートのうち危険度の合計が最小になるときの値を求める問題. 最初はグラフとみて Dijkstra 法で解いて 00:19 sec,2988…

0530 Darts (ダーツ)

AOJ

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0529 N 個の得点が与えられ,この中から4つまで選んでその合計を最大値を求める問題. ただし,合計が M を超えてしまった場合は 0 点になってしまう. 最初 DP でいけるかと思ったけど…

0528 Common Sub-String (共通部分文字列)

AOJ

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0528 ある2つの文字列が与えられて,それの最長共通部分文字列の長さを答える問題. 空文字列は任意の文字列の共通部分文字列とし,空文字列の長さは 0 とする. 最初は最長共通部分文…

0527 Seting Go Stones (碁石ならべ)

AOJ

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0527 規則に従って白黒の碁石を並べていったときに,最終的に白が何個あるかとう問題. 言われた通りにシミュレーションすると最悪 O(n^2) になって n 連続する同じ色の碁石の数のリス…

2153 Mirror Cave

AOJ

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=2153 BFS するだけ. # だけじゃなくて部屋の端も # と同様に壁と見なされることに注意 (これで WA 出してしまった). なんか statistics 見ると自分だけメモリ使用量が少ないんだけど…

1168 Off Balance (Problem D: ぐらぐら)

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=1168&lang=jp 本番中に解けなかった問題. 入力がひどい(と思う)ので一旦それぞれのピースにユニークな id を割り振ってから解いた. check の型が若干アレだが,start の地点にあるピ…

ファイルから data URL を生成

そういう関数が用意されていてもよさそうな気もするけど. MIMEService で MIME type を得ているけど,どうやら拡張子から判断してるだけっぽい. function toDataURL(file) { // assert(file instanceof Ci.nsIFile) let type = 'plain/text'; try { type =…

Quiz

なんか見かけたので考えてみた. http://blog.hackers-cafe.net/2010/06/haskell-quiz.html 想定解っぽいもの (+), (!!), (==), sum, print に関しては didn't define と明言されているのに ($) はされてないからまぁこれを自分で定義しろということなんだろ…

ICPC 国内予選

id:osa_k くんと出てました.ABC の3問を解いて全体で27位,学内5位で敗退. A 最初に書いたのは少しミスがあったけど,すぐに気付けて問題無く解けた. B osa_k くんに任せた. C うまい解法が思いつかなくて,でもまぁとりあえず愚直にぐるぐる回しても答…

Mr. リトー郵便局

AOJ

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=2200&lang=jp Warshall-Floyd で陸路のみ・海路のみを用いた場合のそれぞれの最短経路を求めた後に DP. 街 j に船がある場合の i 番目の集配地への最小コストを dp[i][j] は,i 番目の…

Vim における文字列について その2

Vim

Vim には byteidx() という関数が用意されていて,これを使って文字単位のインデックスからバイト単位のインデックスに変換できる. " &encoding == 'utf-8' byteidx('abc', 2) " => 2 byteidx('あiうeお', 3) " => 7 これを用いると,例えばマルチバイト文…

2010年度 ICPC 模擬国内予選

初めて参加した.もっとできてもよかったなぁと思うけどまぁ実際にはできなかったのだし実力として認めなければならない. 問題文 http://acm-icpc.aitea.net/index.php?2010%2FPractice%2F%CC%CF%B5%BC%B9%F1%C6%E2%CD%BD%C1%AA%2F%CC%E4%C2%EA%CA%B8%A4%C8…