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

Log

すぐ忘れそうなのでメモ.Eclipseプラグイン開発でLoggerを取得する方法. AbstractUIPlugin のサブクラスが Logger を持っているのでそれを使う.ILog#log(IStatus) は引数に Status クラスが必要なので作ってやる必要がある.ログはワークスペース/.metada…

ACM Portal のキーバインド for OPERA

ACM Portal をよく使うので練習がてらOPERA の user.js を書く. 要 shortcut.js と最近流行のJavaScript-XPath. j: 次の論文へ k: 前の論文へ n: 次の20件 p: 前の20件 Enter: 現在選択している論文の詳細を開く という感じにしたい. なんだかまだ不安定…

OPERA ショートカット

今更 これ を入れてみた.google と checkpad の操作が快適になりました. del.icio.us は使ってないので快適かどうかは分かりません.google のショートカットで,そのタブでページを開くショートカットはあったけど,新規タブで開くショートカットが無かっ…

keydown と keypress (Opera 9.5 beta)

前にも書いたけど,beta になっても userjs で document.addEventListener で keydown を指定しても ctrlKey がどうやっても true にならない.← Mac だけだろうか? たとえば, (function(){ document.addEventListener( 'keydown', function(e){ if (e.ctrl…

Lightbox

必要に迫られて, Lightbox2 を使ってみました. 結構簡単にクールなスライドショーが作れます. <meta http-equiv="content-type" content="text/html;charset=euc-jp"/><script type="text/javascript" src="js/prototype.js"></script> <script type="text/javascript" src="js/scriptaculous.js?load=effects"></script> </meta>

map (LMNtal)

ふとしたきっかけで LMNtal map関数のつもり. map(f, [1,2,3], result).f(X, R) :- R=X+1. map(f, [X|XS], R) :- YS=map(f, XS), f(X, Z), R=[Z|YS]. map(f, [], R) :- R=[]. 追記:コメントいただきました.汎用的な map はコメント参照.

選択範囲の取得

ISelection には選択範囲情報が含まれないらしい. 完全に名前に騙された.正しくは ITextSelection から取得します. ITextSelection textSelection = (ITextSelection) ((ITextEditor)editor).getSelectionProvider().getSelection(); int startLine = tex…

screen の session を保存する場所を変える

screen の session はデフォルトでは(このデフォルトはコンパイル時に決まるとmanualに書いてあったが) /tmp/uscreens/S-xxx/ に保存される. これを変えるには $SCREENDIR という環境変数に保存したいディレクトリ名を入れておけばいいらしい.ただし,パー…

コマンドラインで sleep @ Mac OS X

osascript -e 'tell application "System Events"' -e 'sleep' -e 'end tell'

Opera 9.5 alpha for Mac

Opera 9.5 alpha の Mac 版を使っているのですが,JavaScriptでコントロールとかコマンドとかシフトのキーイベントが取れません.たとえばこんな感じ. <SCRIPT TYPE="text/javascript"> <!-- document.addEventListener('keydown', function (event) { alert(event.shiftKey); }, false); /</script>…

Opera9.5 alpha for Macでevent.ctrlKeyがずっとfalseに

久々にこちらに投稿. せっかくなので Opera9.5 alpha を使っている訳ですが、 event オブジェクトの ctrlKey も shiftKey も metaKey も、 とにかく修飾キーに関するプロパティが何を押しても false になります. どうやら Mac だけみたいだけどなんでだろ…

1 <= n < 2 ならば n = 1

Coq

こんな簡単な証明が分からなかった... まだ使いこなせないな.とりあえずできたからいいか. Require Import Arith.Lemma ge1andlt2 : forall n:nat, 1 <= n < 2 -> n = 1. Proof. intros n H. elim H. intros Hge Hlt. assert (1 <= n <= 1). constructor. …

ProofGeneral Coq-mode

ProofGeneral で Coq を使う.Coq のインストール方法はハイテンションなインストール記事にまかせるとします. この記事みたいにハイテンションにインストール記事を書こうかとも思ったけどレベルが高すぎます. Mac にウインドウズ・ベロは無いしw Mac 版…

フォントの設定 Carbon Emacs

こういうのはすぐに忘れる.僕の Carbon Emacs フォント設定に書いてるやつ. (set-face-attribute 'default nil :family "monaco" :height 140) (set-fontset-font "fontset-default" 'japanese-jisx0208 '("ヒラギノ丸ゴ pro w4*" . "jisx0208.*")) (set-f…

emacs-w3m

僕はあまりマウスを使わないのですが,どうしても Web ページからのコピペでマウスが必要になる. あまりに面倒なので,ついにテキストベースの Web ブラウザを併用することにする.ということで Carbon Emacs に emacs-w3m のインストール. メニューバーか…

'todo.txt で日本語が表示できない問題の解決'の修正

先日の記事ですが,やっぱり bash にするだけではうまくいかない場合もあるらしく,きちんと対応する必要がある様子. 以下の修正が必要なようです. 284c284,285 < echo -e "`sed = "$TODO_FILE" | sed 'N; s/^/ /; s/ *\(.\{2,\}\)\n/\1 /' | sed 's/^ /0/…

todo.shの補完

todo.txt が使えそうになってきたが,まともに使い始めると zsh の補完が欲しくなる. ザッとググった限りではまだ無いみたいなので.自分で作る. # ただし bash 版は本家で公開されている.目標はコンテキスト名とかプロジェクト名が @ とか + の直後でタ…

todo.txt で日本語が表示できない問題の解決

todo.txt で list 時に日本語が表示されない問題について少し調べました.実験によるとどうやら一部の OS の /bin/sh でだけで再現する問題のようです.解決策としては,todo.sh の一行目の /bin/sh を /bin/bash に変えるのが一番簡単です.追記: 上記では…

birdseye.py

birdseye.py TODO.txt 関連.

Mac OS X の url.sty を修正する

Mac OS X の ptex package でインストールされる url.sty は壊れているらしい.なので,その修正パッチを当てなきゃまともに動かない. ここからパッチをダウンロード して # cd /usr/local/share/texmf/tex/latex/url/ # patch < url.sty.diff

コインを減らす払い方

コインを減らす払い方 (どう書く?org) いま、あなたの財布の中にはコインがたくさん入っています。これを少しでも減らしたいと思います。支払うべき金額と持っているコインの種類と数を与えられたときに、どのコインを何枚出せばおつりを受け取った後のコイ…

ハノイの塔

OCaml で手続き的に書いてみる. ハノイの塔hanoi' が実質計算します.型合わせていったらできたけどぐちゃぐちゃになりました. あまり説明する気も,かといって綺麗に書き直す気もおきません.解き方はセオリーどうり 1. n-1個を a から c を使って b に移…

逆ポーランド計算機

S式ストリームパーサ版を作ろうと思って書いてたら id:mzp が書いてしまったので方向転換. 逆ポーランド計算機 #load "camlp4o.cma" type token = Op of string | Num of int let lexer = Genlex.make_lexer ["+"; "-"; "*"; "/"]let rec parse = parser | […

完全数

煮詰まったときの頭の体操. divisors :: Int -> [Int] divisors n = divisor' n 1 where divisor' n m | n >= m * 2 && n `mod` m == 0 = m : divisor' n (m + 1) | n >= m * 2 && n `mod` m /= 0 = divisor' n (m + 1) | n < m * 2 = [] isPerfectNumber :…

Emacs 22.1

今更ですが Emacs22.1 がリリースされました. このバージョンから Mac OS X 正式対応ということでビルドしてみました.とにかく 本家から最新版(22.1系)ダウンロードします.展開してから $ ./configure --enable-carbon-app $ make bootstrap $ sudo make …

prosper.sty

prosper は tex でスライドを作るためのスタイルです.Power Point は有料だし,数式打つのが面倒だし,そもそも Power Point が入っているマシンでないとプレゼンができない. Distiller とかで PDF にする方法もあるけどそんなの持ってないし. あと頻繁に…

超簡単S式計算機

ここの問題 よりまた一問解いてみる.四則演算のみが使えるS式を解釈して結果を出力するプログラムを書け。入力例:(+ 1 2) => 3 (* (+ 2 3) (- 5 2)) => 15ということで ocamlyacc で書いてみる.(ちょっと大掛かりすぎか?) 入力例は2引数になってるけど,一…

しりとり

なんか煮詰まったので息抜きに ここの問題 をひとつ解いてみる.しりとり: 1. 文字列のリストの要素全てを使ってしりとりが完結するかを判定 2. 最長のしりとりを出力とりあえずいけるところまでしりとりさせる. OCaml でやろうかと思ったけどバックトラッ…

常日頃から時間軸が違うような気がしていた

OCaml-Nagoyaな友達の id:yoshihiro503 さんがはてダで 定理証明系Coqを使った証明をゴリゴリ書き始めたもよう。 未来日記で。

Main> comb 3 [1..5]

[[1,2,3],[1,2,4],[1,2,5],[1,3,4],[1,3,5],[1,4,5],[2,3,4],[2,3,5], [2,4,5],[3,4,5]]