プログラミング

cmakeメモ

ドキュメント http://www.cmake.org/cmake/help/cmake-2-8-docs.html printfデバッグ CMakeLists.txtの中にMessage(STATUS, 文字列)と記述することで、文字列が表示できる。 printfデバッグに使える。 非標準のパスの参照 依存するライブラリのインストール…

setup.pyの拡張

pythonのプログラムを書いたらsetup.pyでインストールできるようにしよう!ということで書いたけどMakefileのがよくね?とかそんな疑問を持ちつつほげーやりたいこと 適当なコマンドの追加 setup()のattrs引数で、このコマンドの対象とするファイルを指定する …

mapのタイミング

mapが実行されるタイミングの確認。 val a = List(1, 2, 3) def withPrint(x: Int): Int = { println(x) x } println("List Map") val b = a.map(withPrint) println("foreach") b.foreach { x => println("1st loop %s".format(x)); } println("foreach") b…

Triggered Executionの対象ファイル

sbtではタスクの前に~(チルダ)をつけて実行すると、ファイルが更新されるたびに、再度タスクが実行される。再度タスクが実行されるためのトリガーは、タスクの依存関係などに関係なくProject traitのwatchPathsが返すパスで示されるファイルのいずれかが更新…

サブプロジェクトを使う場合の注意

Simple Build Toolではサブプロジェクトを利用する際に、複数のサブプロジェクトで同じ外部Jarを利用する場合であっても、それぞれのプロジェクト毎にJarファイルを保存する。これを防ぐには、外部Jar専用のプロジェクトを作成し、外部Jarを利用するプロジェ…

ScalaでHadoopのジョブを書く

HadoopのジョブをScalaで書くためのこんなものがある。 - http://blog.jonhnnyweslley.net/2008/05/shadoop.html試したところ、サンプルがHadoop 0.20.2では動かないっぽい。 サンプルを動くように改変してみた。WordCount.scala import shadoop.SHadoop._ i…

Inner Class

JavaのInnerクラスを参照する際の方法 public class A { public class InnerClass { } } 上記のようなクラスが会った場合には"#"を使って以下のように参照できるようだ A#InnerClass

mutable.Mapはなんなんだろうか

scala.collection.mutable.Mapの要素の追加が+=演算子なんだけど、これはなんでこんな腐った仕様になってるのだろうか val a = scala.collection.mutable.Map("hoge" -> 1) a = a + ("foo" -> 2) これは当然エラー val a = scala.collection.mutable.Map("ho…

優先順位付キュー

優先順位付キューを使おうとしたときにヘルプを見ても、使い方がよくわからなかったためメモ。*1http://www.scala-lang.org/api/current/scala/collection/mutable/PriorityQueue.htmlクラスはscala.collection.mutable.PriorityQueue enqueueで要素を追加 s…

wait-free

以下のサイトを紹介してもらった。 http://www-06.ibm.com/jp/developerworks/java/041203/j_j-jtp11234.html それによるとマルチスレッドプログラミングにてロックを用いずに同期をとる方法をあるらしい。 そういう手法はlock-freeやwait-freeと呼ばれる。 …

gcc4.0での関数のキャスト

gcc4.0系で関数を別の関数型にキャストして呼び出すと、abort()に置き換えられる。 それを回避するためには一度 void (*)(void) 型にキャストした後、目的の関数型にキャストする。

メモ

Mercurial http://www.selenic.com/mercurial/wiki/index.cgi FreeBSDの中の人のお薦めバージョン管理ツール MoinMoin http://moinmoin.wikiwikiweb.de/ Pythonで書かれたWIKI。見た目はよさそう。

linuxthreads-0.10の挙動

(たぶん)linuxthreads-0.10でのみの挙動。 遅延キャンセルされたスレッドは、他のスレッドで exit() を実行しても終了しない。 キャンセルされたのだから、そのスレッドは終了してるはずである。しかし、 遅延キャンセルの場合は、スレッドはクリーンアップ…

基本的なプログラム

なんとなく、glibmmを使えるようになっておこうと思った。 http://www.gtkmm.org/ glibmmはglibのC++版である。 とりあえず、入力した文字列をそのまま出力するプログラムを書いてみた。 #include #include #include using namespace std; using namespace G…

メモリ破壊のバグ

ここのところ、原因不明の不具合の調査を行っている。メモリ破壊の不具合なのだが、さっぱりわからない。調査を行っていると発生条件の絞り込みは大切だなぁと思う。

OpenSSL

OpenSSL―暗号・PKI・SSL/TLSライブラリの詳細―こんな本買いました。 OpenSSLを使って自分のプログラムにSSLを組み込むなら、必須と言えるかもしれない。*1ちなみにSSL2はセキュリティ的に問題が多いらしい。16秒で乗っ取れるとか。 ブラウザではSSL2は大体標…

プログラムを2回書きたい。

プログラムでは事前の設計が重要であると言われている。しかし、事前にどれほど用意周到に設計を行っても実装段階で問題が出ないことはないと思う。そう考えると同じものを2回書くという無駄な行為が必要となるように思う。 一度実装を行うことにより、問題…

テスト

CUnitというものを使ってみたい。 真面目に単体テストをしたことがないなぁ

そのうち勉強したい作業

Eclipse:実はつかったことない。 Doxygen:これも実は(略 pythonかperlかruby:shばっかり慣れてきた... Javascript:友人が楽しそうだ((楽しくないと否定されるに違いないが)) OCaml:関数型言語をひとつぐらい習得したい。

sig_atomic_t

sig_atomic_t という型があるのを本日知った。代入と比較がアトミックに行えることを保証した整数のこと。 名前から察するに signal handler で設定するフラグとして使うものとして定義されていると思われる。C99で規定されているようだ。C99はあまり使いた…

pthreadに関する不満

pthread_t 出力する方法がない*1 pthread_cond とファイルからの読み込みなどを同時に待てない。 *1:unsiged intにキャストしちゃえばいいんだけど規格で保証されてない

シグナルについて

2006/02/17:読み直すと変な部分があったので、全体的に修正を行った。 signal()とsigaction()について シグナルハンドラを登録する関数には signal() と sigaction()という二つの関数がある。以下のふたつの理由によりsigaction()を使用すべきである。 signa…

プログラムエラーによるシグナルは、ループする?

SIGSEGVやSIGFPEなどのプログラムエラーによるシグナルは、シグナルハンドラ で処理する場合に適切な対処をしないと、再びシグナルが発生する。

プログラムエラーによるシグナルはブロックされないのか?

Redhat9でsigprocmask()関数でSIGSEGVをブロックして、 int a; a = NULL; *a = 1; を実行すると、ブロックしてないで、signal handler が起動する。 他の環境でもそうなのだろうか?