ChangeLog 最新ページ / カテゴリ最新ページ / 1 2 3 4 次ページ / page 1 (4)

programming - ~matubara/ChangeLog移動しました

最終更新時間: 2009-02-01 00:57

2008-02-07 Thu

Valgrind -- Tool Suite [programming][net]

<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 valgrind-3.3.0.

キャッシュ使用状況のエミュレーションと回数つきコールグラフの生成 callgrind
とその可視化 kcachegrind

2008-02-07 Thu

アルゴリズムとデータ構造演習 [programming][net]

<http://hagi.is.s.u-tokyo.ac.jp/ade/pre/1.html>

課題1-A: シェルを実装せよ。
課題2-A: データを圧縮・解凍するプログラムを実装せよ。
課題3-A: スパムフィルタを実装せよ。

この課題が授業の目標:伝えられた仕様を大体何でも実装できるようになるこ
とという風に解釈した。
詳しくは別紙

面白いのは圧縮解凍、スパムフィルタに関しては、
圧縮率、正解率という優劣をかなりはっきり決める一次元の指標があること。
(シェルは基本は誰が作っても同じ、詳細な機能の設計に差異が出るが優劣は個別にみる必要がある)

2008-02-07 Thu

Concrete Abstraction [programming][book][net]

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

2008-02-04 Mon

Pastry -- A substrate for peer-to-peer applications [programming][net]

<http://freepastry.org/>

Pastry - A scalable, decentralized, self-organizing and fault-tolerant substrate for peer-to-peer applications

2007-12-26 Wed

boost::regex [cxx][programming]

boost::regex は Perl みたいな感じで正規表現を使わせてくれるライブラリ。

#include <iostream>
#include <boost/regex.hpp>

int main() {
  using namespace std;
  using boost::regex;
  using boost::sregex_token_iterator;
  string s("a/b c/d e/f");
  sregex_token_iterator
    i(s.begin(), s.end(), regex("\\s"), -1),
    end;
  for ( ; i != end; ++i ) {
    string w(i->first, i->second);
    cout << w << endl;
    sregex_token_iterator
      j(w.begin(), w.end(), regex("/"), -1);
    for ( ; j != end; ++j ) {
      cout << string(j->first, j->second) << endl;
    }
  }
}
wregex, wsregex_token_iterator を使うと、とりあえず多バイト文字が扱える。

u32regex, u32regex_token_iterator を使うと、Unicode の文字クラスが使える(ICU必要)。
http://www.boost.org/libs/regex/doc/icu_strings.html

2007-11-25 Sun

C++におけるユニコード文字列は std::wstring で [programming][cxx]

C++でユニコード文字といえば
ICU4C
があるけれど、
・APIが非常にJava的なので、あまり使いたくない(STLと相性が悪い)
・正規化処理等を含んでいるので、単に格納して単なる文字列と同じように使いだけの場合にはオーバースペック
などという問題がある。

そこで vector<short> とか考えたけれど、
入出力とかソートとかそれはそれで用意しなければならない。
Javaと違って、統一interfaceをimplementsしてそれを満たせば終わりというわけじゃないので、
面倒。

実は2バイト文字が格納できて入出力もサポートされていて、
かつSTLに対応済(というかSTLの中にある)の
std::wstring
がある。

std::wstring は言語仕様上、単に、
1文字が8ビットより大きいバージョンの std::string
としか定義されていない。
文字長とか文字集合とか、エンコーディングとか、ソート順序とかは全部処理系依存。
この辺が原因で、ポータビリティがないとされている。
(2007-12-18T22:41:39+0900) : 実際、文字コードの指定方法(名前)に関して、Linux同士でも互換性がない。また、複数のエンコーディングを扱うのも苦手。

その辺はあくまで言語仕様の話で、存在する実装では
windows と linux で、wstring = UTF-16文字列
ソートはUTF-16の辞書式らしい。(要出典)
linux では UTF-16 を 32ビットのintに入れて格納しているので、メモリはかなり食う。
wstring の作成は
・処理系がlocaleを持っている
・ソースコードが locale のエンコーディングで書かれている
・扱うデータが locale のエンコーディングで書かれているものだけ
という前提だったら、

std::wstring s;
std::wcin >> s;

という感じでやれる。
このとき、cinを混在させるとなんかややこしいことになった気がするので注意。

2007-08-09 Thu

www.codeblog.org - CODE blog [programming][net]

<https://www.codeblog.org/>

2007-08-02 Thu

Processing 1.0 (BETA) [ui][programming][net]

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

2007-07-07 Sat

Natural Language Toolkit [nlp][programming][net]

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

2007-07-03 Tue

JScience [java][programming][net]

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

2007-03-11 Sun

Sparse Matrix [programming]

行列の和を計算するメソッドが

for ( i: 1 .. M )
 for ( j: 1 .. N )
  c[i][j] = a[i][j] + b[i][j]

なのは、まずい。
空間計算量はハッシュが均一と仮定するとO(非ゼロ要素数)だが、
時間計算量が O(次元数 ^ 2) になってしまい、 SparseMatrixにする意味がない。

イテレータでまわしましょう。

掛け算はどうするかなあ。

sparse matrix multiplication でぐぐるといろいろあるね。

2007-03-05 Mon

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

<http://www.yamdas.org/column/technique/21-daysj.html>
teach yourself * (days or weeks or months)

いくつかのプロジェクトで、一番のプログラマーになるか、そうでなければしんがりのプログラマーになること。あなたが一番なら、プロジェクトを指揮し、他の人達にあなたのビジョンをふきこむ能力を試す機会を持つことになる。あなたがしんがりならば、達人がやることを学び、彼らはどういういうことをやりたがらないか知ることになる(そうしたことはあなたにやらせようとするから)。

2007-02-16 Fri

比較関数 [programming][net]

<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 and Mergesorts are Broken も同様。

証明されたプログラムにもバグは残る。
証明された性質を成立させるための仮定が成り立たないことに気づかない場合。

2006-12-21 Thu

PDFBox - Java PDF Library [markup][programming][net]

<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文字として出してくれたりする。

2006-12-18 Mon

Linkers and Loaders [cxx][programming][book][net]

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

2006-12-06 Wed

2006-11-30 Thu

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

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

2006-11-13 Mon

JDocs.com - Your javadocs super-center [java][programming][net]

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

org.apache.commons.math.complex とかがある。

2006-10-09 Mon

数値計算ガイド -- Sun [programming][net]

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

2006-10-02 Mon

Powered by chalow
inserted by FC2 system