スキップしてメイン コンテンツに移動

投稿

2月, 2008の投稿を表示しています

Gauche-dbd-sqlite クエリ実行その一

Gauche-dbd-sqliteモジュールを作ろうと、クエリの実行機能をを実装していたが、あらかじめsqliteで作成しておいたhoge.dbをオープンしSELECTしようとすると、サポートしていないファイルシステムであるとのエラーが。 問題切り分けのために、SQLiteのサイトにある、Cのサンプルを作成して試して見たところ、以下のようなエラーが出た ./sqlite-client ~/src/hoge.db "select * from hoge" SQL error: file is encrypted or is not a database エラーが出ていた理由は、sqliteコマンドのバージョンは、2.8.17で、sqlite-clientが利用していたライブラリはSQLite3だったという凡ミス。 Ubuntu 7.10の場合は、sqlite3で、データベースを作成すればOK。

イーモバイル速度

認証に失敗することが多かったので、イーモバイルのユーティリティを再インストール。 新宿区の自宅で、電波二本立っている状態のとき、実測値0.4Mbps程度。外出しているときには、十分な速度。

Apacheモジュール作成のステップ

mod_XXXを作る際にベースは簡単に作成できるように、mod_helloworldの作り方まとめ。(Ubuntuの場合) apx2で、モジュールの雛形を作る。Ubuntuの場合、apache2-threaded-devパッケージに入っていた。 apt-get install apache2-threaded-dev apxs2 -g -n helloworld これで、helloworldディレクトリに、以下のファイルができる。 cd helloworld/ ls ./modules.mk ./.deps ./mod_helloworld.c ./Makefile Makefileを見て、make installするだけでOKかと思いきや、下記のエラー。 /build/instdso.sh: No such file or directory というエラー。Makefileを確認し、/usr/share/apache2/build/special.mkファイルの、instdso.shファイルのパスが、 $(top_srcdir)/build/instdso.sh SH_LIBTOOL='$(SH_LIBTOOL)' $$i $(DESTDIR)$(libexecdir); \ となっていたので、Makefile中のtop_srcdirを設定するとOK。 top_srcdir=/usr/share/apache2 sudo make install make[1]: ディレクトリ `/home/tnoborio/src/helloworld' に入ります /usr/share/apr-1.0/build/libtool --silent --mode=install cp mod_helloworld.la /usr/lib/apache2/modules/ make[1]: ディレクトリ `/home/tnoborio/src/helloworld' から出ます /usr/share/apr-1.0/build/libtool --silent --mode=install cp mod_helloworld.la /usr/lib/apache2/modules/

さあ、才能に目覚めよう

34種類に大別された人の持つ才能・強みが分かり、それを伸ばすための本。 僕の持つ五つの強みは以下のとおり。 MAXIMIZER/最上志向 FUTURISTIC/未来志向 INTELLECTION/内省 CONNECTEDNESS/運命思考 INPUT/収集心 なるほど、180問も問題に答えただけあって(一つに5秒としても、15分!)自分の思考パターンにあっていると思う。200万人のインタビューという膨大なデータから書かれているだけに、強みを生かしかたは参考になる。 ただ、運命思考と書いてある説明にギャップがあるような違和感を感じた。

Gauche-dbd-sqliteで、open、close

ようやくsqlite3-open、sqlite3-closeまでこぎつけた。 dbd/sqlite.scm (define-module dbd.sqlite (export sqlite3-open sqlite3-close)) (select-module dbd.sqlite) (dynamic-load "dbd_sqlite") (provide "dbd/sqlite") Cのコンパイルエラーをマクロレベルで見てなくて初歩的なところで詰まった。 dbd.mysqlを見ていて、stubファイル、c、hファイル、scmファイルの関連が、ようやく分かった。

イーモバイルでVMware

引っ越した際、ネット環境を、フレッツ光+無線ルータから、イーモバイル7.2Mbpsにしたところ、 VMwareからネットが利用できない。 Windowsのネットワーク接続には、 VMware Network Adapter VMnet1 VMware Network Adapter VMnet8 とあるので、接続できるはず。 いろいろ試して、以下の操作を行ったら利用できるようになった。 VMwareのバージョンアップ。VMware Player 2.0.2 VMware上のUbuntuの再起動。普段は、サスペンドしているので、Ubuntuを再起動することはない 接続をNAT接続に切り替える。 たぶん、バージョンアップは必要ない。 ちなみに、VMware Playerに用意されている接続方法の違いは、 ブリッジ: LAN上にあるIPが振られる。他のマシンからアクセスできるためにはこのモードに。 NAT: ホストOSのIPを共有して利用。ネットを利用するだけならこちら。 ホストオンリー: 文字通りホストOSのみとしかつなげない。 といったところ。 ノートマシンはネットが利用できるが、デスクトップマシンがネットを使えないので、なんとかブリッジできる方法を考えねば。

Gauche-dbd-sqlite其の二

引き続き、Gauche-dbd-sqlite。sqlite3_openの第一引数へ渡すハンドルを作るだけで、 dbd_sqlite.c:28:`handle` undeclared (first use in this function) というコンパイルエラー。Schemというより、Cをちゃんとかけなきゃいけないな。

GaucheでSQLiteモジュール

Schemeを勉強がてら、Gauche用のSQLite3モジュールを作ろうと奮闘中。 dbd_sqlite.stub - (gosh genstub) -> dbd_sqlite.c -> dbd_sqlite.so という仕組みが分かったのと、libsqlite3をロードするMakefile.inファイルが書ける。 Gauche-dbd-mysqlと、以下のサイト参考にしつつ、stubファイルを書いているところ。 http://practical-scheme.net/wiliki/wiliki.cgi?Gauche%3AMeCab