2010-01-01から1年間の記事一覧

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 …

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…