01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
<http://d.hatena.ne.jp/secondlife/20060108/1136650653>
emacs での M-/ が zsh でできる。
# dabbrev HARDCOPYFILE=$HOME/tmp/screen-hardcopy touch $HARDCOPYFILE dabbrev-complete () { local reply lines=80 # 80行分 screen -X eval "hardcopy -h $HARDCOPYFILE" reply=($(sed '/^$/d' $HARDCOPYFILE | sed '$ d' | tail -$lines)) compadd - "${reply[@]%[*/=@|]}" } zle -C dabbrev-complete menu-complete dabbrev-complete bindkey '\M-/' dabbrev-complete bindkey '\M-/^_' reverse-menu-complete
でもよく考えると、これじゃ zsh の上で emacs を動かしたときに、
emacs の補完機能が上書きされちゃう。
JDK 5.0 の場合、
java -Dcom.sun.management.jmxremote
というオプションつきでプログラムを起動すると、
jconsole
からそのプログラムの使用メモリ量などの状態が見れる。
Java SE 6 Mustang じゃじゃ馬ならし Heap
<http://d.hatena.ne.jp/bellbind/20050903/p2>
Java で eval な javassist と、
クラス・メソッド・フィールドの修飾子をユーザー定義できる annotation を利用して、
副作用のないメソッド(値の変換のための関数)なら
いつも使える修飾子 @memorize を提供する。
泥臭い実装と、きれいなインターフェイスが実にJavaらしい。
p.65 Types and Programming Languages より。
afact は、引数に階乗関数を渡されたとき階乗関数になる関数。
つまり、階乗関数に適用すると階乗関数が帰ってくる関数。
#! /usr/bin/env perl use strict; use warnings; use integer; my $afact = sub { my $f = shift; sub { my $n = shift; print "*$n\n"; $n == 0 ? 1 : $n * $f->($n - 1); } }; # afact = L[f]. L[n]. n==0 ? 1 : n * f (n-1) my $fix = sub { my $f = shift; my $f1 = sub { my $x = shift; $f->( sub { my $y = shift; $x->( $x )->( $y ); } ) }; $f1->($f1); }; # fix = L[f]. f1 f1 where f1 = L[x]. f ( L[y]. x x y ) my $fact = $fix->($afact); # fact = fix afact # -> f1 f1 where f1 = L[x]. afact( L[y]. x x y ) # -> afact( L[y]. f1 f1 y ) where f1 = L[x]. afact( L[y]. x x y ) # <-*- afact( L[y]. fact y ) = afact( fact ) print $fact->(4), "\n";
print sub { my $f = shift; my $f1 = sub { my $x = shift; $f->( sub { my $y = shift; $x->( $x )->( $y ); } ) }; $f1->($f1); } -> ( sub { my $f = shift; sub { my $n = shift; print "*$n\n"; $n == 0 ? 1 : $n * $f->($n - 1); } } )->(4), "\n";再帰を含む処理を1文で書けました。
sub { my $x = shift;
は、lambda x のこと。
これは名前にカウントしないことにする。
Essentials of Programming Languages
Types and Programming Languages の Piece 先生おすすめの。
2ch Books Program - Lisp/SchemeではSICPの次に、とか言われている。
現在、time コマンドと memusage コマンドを使って測定している。
どちらも
time <command>
memusage <command>
のように実行すると、<command> を実行すると同時に測定をして、
最後に結果を出力する。
少し問題なのは、
memusage は LD_PRELOAD=/lib/libmemusage.so <command> としてしか使えない場合があり、
これだと、time を内側にせざるをえない。
で、memusage は fork したプロセスごとに結果を表示するらしく、
time と <command> それぞれに対するメモリ使用量が表示されてしまう。
(たとえば、LD_PRELOAD=/lib/libmemusage.so perl -e'system "ls"; system "ls"' でも起きる)
シェルコマンドの time では起きないけれど、
/usr/bin/time を無視して シェルコマンドを優先する方法は?
追記
ていうか、
time env LD_PRELOAD=.. <command>
で、time 外側にできた。
time コマンドに相当するようなもの。
<http://turing.ubishops.ca/home/csc218/node5.html>
glibc に付いてくるらしいが、gentoo のパッケージではインストールされないらしい。
スクリプトなので、glibc-2.3.6/malloc/memusage.sh から取り出すとか、
どこからとってくればいい。
というか
LD_PRELOAD=/lib/libmemusage.so <command>
でいいらしい。
LD_PRELOADで指定されたファイル内の関数は、
glibcより優先して使われる。
libmemusage.so は malloc とかを上書きして、使用量をカウントしている。
変になった文字にカーソルを合わせて
M-x describe-char
とすると、その文字の所属している(と判定された)文字集合が分かる。
mule-unicode-0100-24ff と出たら、
日本語の文字集合として判定されていない。
ローカル文字集合からUCSへは一意に変換できるが、
逆は決定できない。
西欧語文字集合を日本語文字集合より優先させる事例の逆をやればいい。
(require 'un-define) (require 'un-tools) (require 'jisx0213) (un-define-change-charset-order '(ascii japanese-jisx0208 japanese-jisx0213-1 japanese-jisx0213-2 japanese-jisx0212 mule-unicode-0100-24ff mule-unicode-2500-33ff mule-unicode-e000-ffff latin-jisx0201 katakana-jisx0201 ))
<http://www.idealliance.org/papers/extreme/proceedings/html/2006/Novatchev01/EML2006Novatchev01.html>
XSLT は関数型プログラミングをサポートしたらしい。
<http://citeseer.ist.psu.edu/8956.html>
2値分類器を合わせて多値分類。
まず、ラベルにビット列を適当に(?)割り当てて、
ラベル集合を等長符号化する。
訓練サンプルについているラベルの符号の i ビット目を正解として、
第 i 番目の2値分類器を訓練する。(i=1, ... , ビット数)
テストサンプルをそれら2値分類器にかけて、
テストサンプルのラベルの符号を得る。
あとはもっとも近い符号語(ラベルの符号)を探して、それにデコードする。
List<List<String>> ll = new ArrayList<List<String>>();
というステートメントには、型が多すぎる。
public class ListFactory { public static<T> List<T> newInstance(T x, int ncopy) { return new ArrayList<T>(Collections.nCopies(ncopy, x)); } public static<T> List<T> newInstance() { return new ArrayList<T>(Collections.<T>emptyList()); } public static void main(String... args) { List<List<String>> ll = ListFactory.newInstance(ListFactory.newInstance("a", 2), 3); // ll.add(ListFactory.newInstance()); List<String> l = ListFactory.newInstance(); ll.add(l); System.out.println(ll); } }変数初期化のコンテキストが要求する型は完全な型だけれど、
public static void main(String... args)
何がうれしいかというと、
main を別のメソッドから呼ぶとき、長さ0の引数
main();
で呼べるということ。
もともと書けていた
main(new String[]{});
main(new String[]{"a", "b"});
でも呼べるし、長さ1以上の引数リスト
main("a", "b");
でも呼べる。
ジェネリックメソッドの型推論を使う。
<http://www-06.ibm.com/jp/developerworks/java/060310/j_j-jtp02216.shtml?ca=drs->
public static <K,V> Map<K,V> newHashMap() {
return new HashMap<K,V>();
}
これを使えば、型パラメーターを2度入力することを安全に回避することができます。
Map<Socket, Future<String>> socketOwner = Util.newHashMap();
<http://homepage2.nifty.com/magicant/programmingmemo/genericsjavavscs.html>
C# は型引数の数だけクラスを展開し、
そのバイトコードを生成するので、実行時に型引数の情報が残る。
Java は型引数の一致をコンパイル時に判定するが、
バイトコートは型引数によらない(ワイルドカードの)クラスだけなので、
実行時に型引数の情報が残らない。
(Java のジェネリクスは、ダウンキャストを自動化するだけ)
<http://www.stringology.org/event/2005/p3.html>
Suffix Vector 、その後。
ぱっと見では、Review の性格が強そう。
<http://www.google.com/search?q=C%2B%2B+for+Java+Programmers>
これらのドキュメントはだいたい、
Java プログラマが C++ で書けるようになることを目標にしている。
書くのは、大体、逐語訳で書ける。
C++の方が多くの構文を持っているので。
# interface がないとかデフォルトが値渡しだとか
# 無名クラスができないとか
しかし、Java プログラマが C++ を読めるようになるのは、
そこからかなり遠いような気がする。
template specialization のパターンマッチは、
類推も効かないし、翻訳するにもけっこう複雑な翻訳になる。
あと typedef はないので、つい頭がそこに行かない。
型名と変数名が混乱して、
初期化引数つき変数定義と、関数呼び出しの区別が付きにくい。
あと演算子オーバーロードと暗黙の型変換のコンボが強すぎる。
結局、C++ をネイティブなみに読み書きするには、
Java を忘れなければならない。
<http://karetta.jp/book-cover/cforjava>
Q.クラスが無いのにどうやってプログラミングするのですか?
Q.VMが無いのになぜ動くのですか?
pure C++ OPT++ An Object-Oriented Nonlinear Optimization Library
リンク集 Kaisa Miettinen - Links
IpOpt
ちょっと古いけど、サーベイ Nonlinear Programming Algorithms for Large Nonlinear Gasoline Blending Problems
<http://en.wikipedia.org/wiki/Artifact>
って「人工物」ぢゃあないのですか。
# もちろん colorless permanent でもない
自然科学では、
any perceived distortion or other data error caused by the instrument of observation
要するに「人災としての誤差」のことらしい。
<http://homepage2.nifty.com/m_kamada/>
JavaScript と、力学シミュレーション。
多倍長演算とか素因数分解とかのピンポイントの効率的実装などがみもの。
2005年のCVPRのチュートリアル。
<http://palantir.swarthmore.edu/cvpr05/blurbs.htm#tut3>
イントロ
動的計画
グラフ
Vision やってる人は、絵の使い方がうまいのかな。
2002年にリリースされた言語モデリングのためのツール。
ファイルレベルでは ARPA 形式互換。
コマンドレベルの CMU との互換性はなし。
# CMUと同時にインストールできるので、むしろ都合が良いかも
Palmkit とか CMU-Cambridge とか [2006-07-10-4]って、
もしかして誰も使ってないの?
Java の継承は C++ の public 継承。つねに is-a 関係が成立する。
#include <iostream> class Root { private: static const int priv = 100; protected: static const int prot = 20; public: static const int pub = 3; public: int get() { return priv + prot + pub; } }; class SubPub : public Root { public: int get() { return pub + prot; } }; class SubPriv : private Root // overrides all the members as private {}; class SubPrivPub : public SubPriv { public: //int get() { return pub; } int get() { return -1; } }; int main() { SubPub s1; std::cout << s1.get() << std::endl; // SubPriv s2; // std::cout << s2.get() << std::endl; // the private inherited class is NOT a subclass of the Root return 0; }参考 C++ Annotations
<http://sonic64.com/2004-11-17.html>
サーバー側におく公開鍵には、権限設定が可能。
あと、クライアントでは鍵のパスフレーズをなくしてしまう。
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,
command="echo $SSH_ORIGINAL_COMMAND; umask 077; f=backup`date +%F-%H%M%S`.tar.bz2.encoded; echo $f; cat >/home/hiroaki/backup/$f;,from="*.example.com"
ssh-dss AAAAB3NzaC1kc
3MAAACBAKZhqMdcujcJgGOCIsi+PrmkEEaAy/gpRPpB3Q5OA
wNG+PwTdU5O8/NPde64wNux4XNUB7XkV2eXWfaTZRYyYe0oC
XeJMh2LKZ/a/F3Wu283uuExSZhbkt3Dcv3+u6oyjBzIfNU+P
(以下略)
<http://subversion.bluegate.org/doc/book.html#svn.reposadmin.maint.backup>
[2005-11-05-1]は並行動作時にリポジトリ読み取りの atomicity が保証されていない。
svnadmin hotcopy か、そのwrapperを使う。
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
最終更新時間: 2009-02-01 00:57
Powered by chalow