programming

Concrete Abstraction

http://jaortega.wordpress.com/2007/01/31/a-scheme-bookshelf/ yet another introduction to (functional) programming

アルゴリズムとデータ構造演習

http://hagi.is.s.u-tokyo.ac.jp/ade/pre/1.html 課題1-A: シェルを実装せよ。 課題2-A: データを圧縮・解凍するプログラムを実装せよ。 課題3-A: スパムフィルタを実装せよ。 この課題が授業の目標:伝えられた仕様を大体何でも実装できるようになるこ …

Valgrind -- Tool Suite

http://valgrind.org/info/tools.html Official Home Page for valgrind, a suite of tools for debugging and profiling. Automatically detect memory management and threading bugs, and perform detailed profiling. The current stable version is val…

Pastry -- A substrate for peer-to-peer applications

http://freepastry.org/ Pastry - A scalable, decentralized, self-organizing and fault-tolerant substrate for peer-to-peer applications

www.codeblog.org - CODE blog

https://www.codeblog.org/

Processing 1.0 (BETA)

http://processing.org/ Yet another programming environment for education http://processing.org/reference/libraries/

Natural Language Toolkit

http://nltk.sourceforge.net/index.php/main_page 各種コーパスやWordNetのパーザーがPythonで提供されている。

JScience

http://jscience.org/ 単位変換と精度つき数、行列とベクトルのライブラリ

Sparse Matrix

行列の和を計算するメソッドが for ( i: 1 .. M ) for ( j: 1 .. N ) c[i][j] = a[i][j] + b[i][j] なのは、まずい。 空間計算量はハッシュが均一と仮定するとO(非ゼロ要素数)だが、 時間計算量が O(次元数 ^ 2) になってしまい、 SparseMatrixにする意味が…

プログラミングを独習するには10年かかる

http://www.yamdas.org/column/technique/21-daysj.html teach yourself * (days or weeks or months) いくつかのプロジェクトで、一番のプログラマーになるか、そうでなければしんがりのプログラマーになること。あなたが一番なら、プロジェクトを指揮し、…

比較関数

http://d.hatena.ne.jp/odz/20070212/1171345311 これに気づかないのはけっこう危険ですね。 int cmp(const int *a, const int *b) { return *a - *b; }たとえば INT_MIN - INT_MIN はオーバーフローにより 0 でない値をとる。 Nearly All Binary Searches a…

PDFBox - Java PDF Library

http://www.pdfbox.org/ PDF から中身抽出できるライブラリ。 java -cp lib//PDFBox-0.7.3.jar:../FontBox-0.1.0/lib/FontBox-0.1.0.jar:$CLASSPATH org.pdfbox.ExtractText xxx.pdf xxx.txt ギリシャ文字もunicode文字として出してくれたりする。

Linkers and Loaders

http://www.iecc.com/linker/ リンカの本。

RjpWiki - RjpWiki

http://www.okada.jp.org/rwiki/

sumim’s smalltalking-tos - オブジェクト指向の概念の発明者は誰ですか?

http://d.hatena.ne.jp/sumim/20040525/p1

JDocs.com - Your javadocs super-center

http://www.jdocs.com/ いくつかの異なる Java ライブラリの API がまとめて置かれている。 ある機能を提供するライブラリを探す、というときに便利かも。org.apache.commons.math.complex とかがある。

数値計算ガイド -- Sun

http://docs.sun.com/source/806-4847/ncgtoc.html 浮動小数点演算の説明がかなり詳細。 via 浮動小数点数 - Wikipedia -

GCC 解読室 Wiki*

http://wikiwiki.jp/aloha/

GNU GLOBAL source code tag system

http://www.gnu.org/software/global/ ソースコード読みの補助ツール。 gtags で索引データ(カレントディレクトリに GTAG 他のファイル)生成 htags でHTML化。 htags --frame --symbol でフレーム化、変数の追跡を有効にする。gonzui は LL に強いが、C++ …

プログラミングの教科書的なもの

Essentials of Programming Languages Types and Programming Languages の Piece 先生おすすめの。 2ch Books Program - Lisp/SchemeではSICPの次に、とか言われている。

Javassist 3.1とjavaagentでmemorization

http://d.hatena.ne.jp/bellbind/20050903/p2 Java で eval な javassist と、 クラス・メソッド・フィールドの修飾子をユーザー定義できる annotation を利用して、 副作用のないメソッド(値の変換のための関数)なら いつも使える修飾子 @memorize を提供す…

実行時間と使用メモリ量の測定

現在、time コマンドと memusage コマンドを使って測定している。どちらも time memusage のように実行すると、 を実行すると同時に測定をして、 最後に結果を出力する。少し問題なのは、 memusage は LD_PRELOAD=/lib/libmemusage.so としてしか使えない場…

memusage

time コマンドに相当するようなもの。 http://turing.ubishops.ca/home/csc218/node5.html glibc に付いてくるらしいが、gentoo のパッケージではインストールされないらしい。 スクリプトなので、glibc-2.3.6/malloc/memusage.sh から取り出すとか、 どこか…

STUDIO KAMADA

http://homepage2.nifty.com/m_kamada/ JavaScript と、力学シミュレーション。 多倍長演算とか素因数分解とかのピンポイントの効率的実装などがみもの。

The Scala Programming Language

http://scala.epfl.ch/ yet another JVM languageOOな継承と総称プログラミングができて、 関数型なパタンマッチとカリー化ができて、 closure と 中置記法ができて、 Java VM と .NET で走るバイナリにコンパイルできる。 Java のクラスファイルとは自由に…

Jacques Garrigue -- Home Page

http://www.math.nagoya-u.ac.jp/~garrigue/home-j.html 講義資料充実しています。

Java の switch 文

「あらゆる分岐を、メソッドのオーバーロードに帰着させる」というのは、 オブジェクト指向設計の「標準形」のひとつだと思う。switch 文 void proc(var variable) { switch ( variable ) { case c1: ... break; case c2: ... break; } }は、 interface Proc…

The Computer Language Shootout Benchmarks

http://shootout.alioth.debian.org/ 言語のベンチマーク。

Traits

http://sumim.no-ip.com:8080/wiki/818 via d.y.d.

Developing applications with Objective Caml

http://caml.inria.fr/pub/docs/oreilly-book/ 700ページくらいあるOcamlの本。