2007-04-01から1ヶ月間の記事一覧

Vim

そういえば、最近私はすっかりVimな人になってしまって、emacsの使いかたを忘れてしまいました ;p

MySQL : C API : PreparedStatement

PreparedStatementを使って、任意の長さの文字列を受け取る方法がわからない。 PreparedStatementでなければ大丈夫みたいなのだけど。 - MYSQL_DATA_TRUNCATEDが返ったら、mysql_stmt_fetch_column()を使ってoffsetを指定して取り直せばよいのか。 - 通信量…

C : 基本型とか配列とか

C言語のことは、基本型の回りがよくわかっていないので、恐い。 今考えているのは、配列の引数の型ってなんだんだろうということ。size_tというやつなのか。

AMD64

今のマシンはAMD64のはずなので、64bitバイナリを作ったり実行したりできるはず、と思って試してみることにした。 ついでに、基本型のサイズを確認しようと次のプログラムを作成。 #include <stdio.h> int main (int argc, char **argv) { printf("int : %d\n",sizeof</stdio.h>…

C : 桁溢れを検知したい

整数の加算を行ったときに桁溢れが起こったときに、フラグレジスタには桁溢れが報告されているはずなのだけれど、それをC言語側で取得する方法ってあるのだろうか?

なにやら面白げだった資料

http://www.emblix.org/forum2007/pdf/PD-2_takeoka.pdf Googleっていたときに見つけた。

はてな : 実体参照や文字参照

をきちんと扱えるようにしてくれないかなー。 半角を全角にして逃げるみたいなのをいつまで続けるのだろう・・・ (商用アプリケーションというものの宿命として、こういう「普通の」ユーザーがわかりにくいところの実装って、社内でも説得しにくいところな…

MySQL : C API

昨日のあれは必要なヘッダーをインクルードしていなかったことが原因だった。 あとでまた困ったときのために、エラーメッセージとか貼っておく。 /usr/include/mysql/m_ctype.h:287: error: expected ‘;’, ‘,’ or ‘)’ before ‘*’ token /usr/include/mysql/m…

Java : autoboxing

Javaにautoboxingが導入されて、どうにも落ち着かないことが1つ。 Object a = 1; が正しいJavaの文になってしまったこと。

MySQL : C API

なんで、mysql_connect()とmysql_real_connect()がわかれているんだろ? - mysql_connect()は古くて使ってはいけないらしい。 - コンパイルにこける。mysqlのヘッダファイルで大量のエラーが。

Java : 回答編(2)

[id:lethevert:20070414:p2] void f (List l) { for (int i=0; i

Java : 回答編(3)

[id:lethevert:20070415:p1] こっちも回答してしまいましょう。 void f (HashMap<K,V> m) { for (K k: m.keySet()) { g (k, m.get(k)) } } 以下ネタバレ注意</k,v>

Java : 回答編

回答してみようと思います。 ArrayList<String> list = new ArrayList<String>(); 以下、ネタバレ注意</string></string>

DI

http://d.hatena.ne.jp/higayasuo/20070416#1176719022 DIって、ある分野では当り前だったテクニックがメジャーな言語でもわりと普通にできることがわかって、騒いでいるだけなのではないかという気がします。(暴言)

MapReduce

MapReduceはmapしてreduceするというところより、ノードの割り当てやエラー状態からのリカバリに関する部分の方が重要なのではないかと、ずいぶん前に論文を読んだときに思いました。

Concurrent Clean : SQLite3 binding

http://d.hatena.ne.jp/lethevert/20070415/p8 残りの修正も完了して、チェックインしました。

情報処理学会: http://www.atdot.net/s-prosym2007/

これって、私みたいのが行ってもいいとこなのかな?

Java : 問題2

似たような話でもう一つ。 いずれにしてもJavaの初級的なクイズだけれども、ソフトウェア開発の現場というのは、この辺ですら危ういところがあって、頭の痛いことです。 void f (HashMap<K,V> m) { for (K k: m.keySet()) { g (k, m.get(k)) } } (追記)voidが抜け</k,v>…

Vim : 矩形挿入

Vimで矩形挿入するにはどうするのだろう? 矩形挿入というのは、つまり、選択した領域の特定の列に同じ文字列をペーストしたり入力したりすることですが。

Concurrent Clean : 型クラス

使いかたに悩む。 これでは、うまく動かないのだよね。こういう場合ってどうすればいいんだろう?

you're screwed

「あなたはまずい状況にいる」という意味であってる?

Concurrent Clean : 型クラス (2)

[id:lethevert:20070415:p4]について 型引数で関連する型を渡しておけばよかったらしい。

目の前で寝ている猫が

寝言を言っている! 猫が寝言!

Concurrent Clean : OptSQL, SQLite3

SQLite3 bindingを新しいDBインターフェースに合わせて修正する作業が一段落した。 後残る問題は、sqlFetchの返値のBool型がFalseになるタイミングを変更したいことと、sqlite3_resetを呼ぶタイミングを変更したい(これはしなくてもよいが)ことだ。 それが…

TODO : Concurrent Clean : 型クラスと高階型とシノニム型

先のSQLConnectionみたいに、型クラスで高階型を使ったときに、instanceで型名が長くなるのを避けるために、シノニム型を使いたくなることがあるが、これはCleanコンパイラは受け付けてくれない。 この件について、少し整理してMLにポストすること。

Concurrent Clean : Linux

Linux環境でCleanを使う場合には、公式ホームページからバイナリパッケージをとってくるかソースパッケージを取ってきてmakeするかして実行ファイルを取得した後に、それらのファイルを配置することになるのだけれど、そこのところについてちょっと解説して…

Java : 問題

http://dev.ariel-networks.com/Members/inoue/seek-for-exam ふーん。 こういうのはどうかな? 次のコードで何が問題かを答えよ void f (List l) { for (int i=0; i

Concurrent Clean : スコープ付き型変数

昨日あたりから、CleanのMLで型変数についての議論が続いている。 問題となっているのは、次の関数が型エラーになる所。 f :: a -> a f x = y where y :: a y = x yに付けられた型が問題で、これをコメントアウトすればコンパイルエラーにはならない。 これ…

Java : volatile

volatileの効果を確かめるテストというのは難しいな。 次のプログラムは、volatileの有無で差が出なかった。 Javaの場合、JITの後にどういうコードになっているかをみないといけないので、逆アセンブルというのも難しいしな。 public class Test2 { static f…

Java : volatileと-serverオプション

下の件、違いを確認できたよ。 java -server Test2として実行してやると、volatileなしでは lethevert@lethevert-svr:~/dev/java/MultiThreadTest$ java -server Test2 count=0 lethevert@lethevert-svr:~/dev/java/MultiThreadTest$ java -server Test2 cou…