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

メモ・MacPortsからDNSキャッシュサーバのUnboundを入れる

DNS

インストール $ sudo port install unbound 設定ファイルの雛形をコピー $ cd /opt/local/etc/unbound $ sudo cp unbound.conf-dist unbound.conf 設定ファイルを変更 $ sudo vi unbound.conf変更箇所は以下のとおり port: 53 interface: 127.0.0.1 access-c…

インターナルPython ー 文字列オブジェクトの生成

前回の続き インターナルPython ー Pythonの文字列とPyUnicodeObject構造体 - NO!と言えるようになりたい今回は文字列オブジェクト生成と,バッファの確保についてみてみる. _PyUnicode_New()関数 文字列を格納するためのバッファを実際に確保するのが,_Py…

インターナルPython ー Pythonの文字列とPyUnicodeObject構造体

前回の続きとなる. インターナルPython ー PythonのオブジェクトとPyObject構造体の関係 - NO!と言えるようになりたい今回は,UTF-8でエンコードされたバイト列から,文字列オブジェクトに変換するまでの,大まかな流れについて見てみる. PyUnicodeObject…

インターナルPython ー PythonのオブジェクトとPyObject構造体の関係

最近,Stackless Pythonの実装を追いかけており,理解したところまでメモがわりに記録しておく.コードを読んでも,詳しいところはすぐ忘れちゃうからね.読むコードは,Stackless Pythonの3.12(http://www.stackless.com/svn)となる.Stackless Pythonとは…

オブジェクト指向してないオブジェクト指向言語と,オブジェクト指向してる並行プログラミング言語

オブジェクト指向言語ってのが,全然オブジェクト指向じゃなくて,Erlangが本当のオブジェクト指向言語かもしれないという衝撃的な記事を見て,もう一度オブジェクト指向について考えてみた.元ネタ オブジェクト指向プログラミングは間違いだったか? http:/…

Stackless Python入門

Erlang,Scala,Goなどの並行プログラミング言語が注目を浴びているが,並行プログラミング言語の一つにStackless Pythonというものが存在する.Pythonで並行プログラミングが可能というのはとても魅力的なので,少し遊んでみた.元ネタは http://www.grant-…

コンパイラ・インタプリタを書く上での13の大罪

元ネタは,gccのwikiより. http://gcc.gnu.org/wiki/DeadlySinsP. J. Brownが1979年に書いた"Writing Interactive Compilers and Interpreters"(インタラクティブなコンパイラとインタプリタの製作)が出典らしいが,コンパイラやインタプリタじゃなくても…

正規表現で素数判定

追記:ハッキリ言ってこの正規表現はネタなので,実際に素数判定を行いたい場合は,もっと別な賢いアルゴリズムを使ったほうが良いです正規表現で素数が判定できるという記事を見たので試してみた. http://www.noulakaz.net/weblog/2007/03/18/a-regular-ex…

emacsでインテリセンス

CEDETなるものを使うとわりと簡単にできるらしいので,導入してみた. http://cedet.sourceforge.net/ダウンロードして解凍して,コンパイルを適当に行う. $ cd cedet-1.0pre7 $ make $ pwd /path/to/cedet-1.0pre7.emacsに設定を追加 ;; CEDET (load-file …

なぜ,/var や /etc が /etc や /cfg というディレクトリ名ではないのか?

Unixを使っていると,/usr が全然ユーザー用じゃなくどう見てもシステムのための物だったり,/etc が事実上設定ファイル置き場となっていたり,/var がログファイル置き場となっていたりと,名が体を現していなくて奇妙な感覚を覚える.もっと分かりやすい名…

Color Coherence Vector in C++

画像のフィンガープリントを計算する方法に,Color Coherence Vectorというものがあるらしく,その定義は以下のとおり*1The color coherence vector (CCV) is a refined histogram technique. However, instead of counting only the number of pixels of a …

ケンブリッジ大学のコピペがおもしろい

単語の頭と最後さえ合っていれば,中の順番が違っても人間は理解できるということが,ケンブリッジ大学による研究で明らかになったというコピペ. Aoccdrnig to a rscheearch at Cmabrigde Uinervtisy, it deosn't mttaer in waht oredr the ltteers in a wr…

gccでSSEを使ったベクトル演算を行う

n次元空間上にある二点間のユークリッド距離を計算する方法を考える.なお,それぞれの点は,n個の要素を持つfloatの配列で表されるとする.単純に考えると,以下のような関数で計算可能となる. float dist(const float *v1, const float *v2, int len) { f…

gnupgで鍵情報を他のホストへコピーする.

host1で鍵をエクスポート host1 $ gpg --export -a > pub.asc host1 $ gpg --export-secret-keys -a > secret.asc host1 $ gpg --export-ownertrust > trust.txt host2 $ scp pub.asc secret.asc trust.txt host2:host2で鍵をインポート. host2 $ pgp --imp…

gitでgnupgの署名付きtagを作成する

-u で署名付するユーザを指定すると出来る. $ git tag -u user@mail.com name_of_tag -m 'comment'検証は以下のコマンドで行える. $ git tag -v name_of_tagorigin へ tag を push しておく. $ git push origin --tags

3つの真偽値のうち2つ以上が真であるかを調べる

元ネタ Check if at least 2 out of 3 booleans is true http://stackoverflow.com/questions/3076078/check-if-at-least-2-out-of-3-booleans-is-true/ 一番単純な例 変数2つが真であるかを検査すれば良く,順列を考えない2変数の組み合わせの数はとなり,3…

MacでGnuPGを使った署名を行ってみる

GnuPGとはChain of Trustによる信頼モデルに基づいたPKIであり,これを用いると,署名,暗号化などを行うことが出来る.SSLなどの方式では,信頼できる第三者の存在(例えばVeriSignなど)が必要であるが,GnuPGではそれが必要ない.その代わり,どの公開鍵…

omake 0.9.8のコンパイル

omakeの0.9.8をコンパイルすると以下のようなエラーが出る. *** omake: reading OMakefiles *** omake: finished reading OMakefiles (0.9 sec) - build src/main omake.opt + ocamlopt -warn-error A -w Aez -I . -I ../libmojave -I ../util -I ../magic …

開発に最適なコンパイルオプションの模索

今作っている,DHTライブラリlibcageのソースコードが増大してきて,コンパイルに時間がかかるようになってきたので,どのくらいの時間がかかるの計測してみた.libcageのソースはGitHubにアップしてあるが,今回計測したのは現在鋭意開発中のrdpブランチ(h…

RFC 908 - Reliable Data Protocolにある間違い その弐

RFC 908 - Reliable Data Protocolにある間違い http://d.hatena.ne.jp/ytakano/20100315/1268611473 に引き続き間違いを見つけた.問題の箇所は25ページに有る下記の部分. If State = SYN-SENT If ACK set If RST clear and SEG.ACK != SND.ISS Send Endif…

ただの人間には興味はありません

次は,あるメランコリーな少女のセリフである. ただの人間には興味はありません.この中に宇宙人,未来人,異世界人,超能力者がいたら,あたしのところに来なさい. これが英語になるとこうなる. I have no interest in ordinary humans. If there are an…

call for papers

7月15日〜10月あたりまでのネットワーク関連のCFPsメモ. 締め切り 名称 URL 日程 場所 07/15 7th International Conference on Distributed Computing and Internet Technologies http://www.icdcit.ac.in/ 11/02/09-11 インド,ブヴァネーシュヴァル 08/01…

STL likeなradix treeを実装した

radix tree,PATRICIA tree,PATRICIA trie,基数木,パトリシア木,など色々な名前で呼ばれている木構造をC++で実装した.radix treeとは,IPのルーティングテーブルや転置インデックスなどに使われるデータ構造である.詳細はWikipediaでも見て欲しい.激…

It's no use +ingほか

It's no use +ing するのは無駄だ,してもしょうが無い It's no use worrying about it. 心配してもしょうがない. It's no good +ing するのは役立たない,してもしょうが無い It's no good trying to persuade me. 私を説得しようとしても無駄だ. There's…

Googleの検索を暗号化

最近,GoogleがSSLでの検索をサポートした. https://www.google.com/ これから,Googleで検索をするときはこれを使うべきであろう. Deep Packet Inspectionも実用化されつつあるので,httpを生で使う道理は無い. http://www.asahi.com/business/update/05…

Debianにcheckinstallを使ってgit-daemonを入れる

Debian squeezeのgit-coreにgit-daemonが入ってなかったのでソースから入れる. まず,checkinstallを入れる. $ sudo apt-get install checkinstall 次に、git-1.7.1のソースを取ってきて,コンパイル. $ wget http://kernel.org/pub/software/scm/git/git…

句動詞 lead to他

lead to cause 〔道などが〕〜に通じる[つながる・至る] 〔事が〕〜につながる、結果{けっか}として〜に導く、結局{けっきょく}〜となる、〜を引き起こす、〜をもたらす、〜を招く、〜の原因{げんいん}となる、結局{けっきょく}〜が落ちだ put off…

iDistanceを用いた多次元空間におけるK近傍法

元ネタは H. V. Jagadish, Beng Chin Ooi, Kian-Lee Tan, Cui Yu, and Rui Zhang. iDistance: An adaptive B+-tree based indexing method for nearest neighbor search. ACM Trans. Database Syst., Vol. 30, No. 2, pp. 364–397, 2005. iDistanceは多次元…

JavaScriptのラベル

JavaScriptにはラベルという概念がある.C言語にもラベルがあり,goto文と共に使用されるが,JavaScriptのラベルはC言語のそれとは違う.JavaScriptでラベルを使った例は以下の通りとなる. loop: for (;;) { for (;;) { break loop; } } この例では二重ルー…

tooとeitherとneitherとso

肯定文の同意はtooを使い,否定文の同意はeitherを使うというのは基本だが,soやneitherを使う事もできる.しかし,eitherとneitherは似ているし,soやneitherを使うと語順が変わったりするしで,どうにも覚えにくい.neither or so + 動詞 + 名詞,という順…