Wed Jun 02 11:58:45 JST 2010

忘れてしまうのでメモしておく。 samba の設定状況 (smb.conf) の確認には、testparm コマンドを使用する。

# testparam -v
  (各セクションの parse 結果が表示される)
Press enter to see a dump of your service definitions
  (全てのデフォルト値を含んだ smb.conf が表示される)

何というデフォルト値が採用されているかを確認する時に便利だろう。


Fri Jun 04 09:09:41 JST 2010

C バッテリを全使用後のフル充電。97% までしか行かなかった。まぁそんなものか…。


Sun Jun 12 22:05:58 JST 2010

いつからか shutdown しても起動するようになっていた自宅マシンの BIOS を確認。 「Resume on PME」を切ったら、止まるようになった。 Wake On LAN の実験であちこちいじった時に結局実現できずに、 戻し忘れていたらしい。


Mon Jun 14 15:52:44 JST 2010

#ThinkPad x61s #FreeBSD 8.0-STABLE にて。 無線&Bluetooth の OFF/ON スイッチは、OS 稼働中に入れるのはアリらしい。 ちなみに、このスイッチが OFF になっていると wpa_supplicant を動かしても wlan0 が一向に associated にならない。


Mon Jun 14 22:16:32 JST 2010

C バッテリが、充電完了してると思われるのに 99% のままで止まって 100% になってくれない。むむぅ…


Tue Jun 15 13:09:04 JST 2010

cassandra を入れてみた。

# make install
===>  Installing for cassandra-0.6.1
===>   cassandra-0.6.1 depends on file: /usr/local/jdk1.6.0/bin/java - found
===>   Generating temporary packing list
===>  Checking if databases/cassandra already installed
===>   Registering installation for cassandra-0.6.1

おや、拍子抜け。なんかもっと苦労するものだと覚悟していたのだが…。


Tue Jun 15 16:17:06 JST 2010

JDK は 1.6 だけ入れて安心していた。1.5 も要るんだった。あわてて diablo を投入した。


Tue Jun 15 16:27:51 JST 2010

uploadingit.com っていうオンラインストレージサービスを見付けた。 SpeedX とか言う iPad アプリの広告から辿ったものだが、20GB までストアできて、 一日あたり 20GB までのトラフィックが許されている模様。 iPad アプリもあるので、ネットワーク環境がある前提でのファイル置場としては 使えるのかもしれない。 実際に自分が使うかどうかは別として、なかなか太っ腹じゃないか。


Tue Jun 15 17:02:32 JST 2010

sphinx を入れてみた。

# easy_install sphinx
Searching for sphinx
Reading http://pypi.python.org/simple/sphinx/
Reading http://sphinx.pocoo.org/
Best match: Sphinx 1.0b2
Downloading http://pypi.python.org/packages/2.6/S/Sphinx/Sphinx....(後略)

インストールは簡単だな。続いてセットアップ。長いけど貼っておく。

% sphinx-quickstart
Welcome to the Sphinx 1.0b2 quickstart utility.

Please enter values for the following settings (just press Enter to
accept a default value, if one is given in brackets).

Enter the root path for documentation.
> Root path for the documentation [.]:

You have two options for placing the build directory for Sphinx output.
Either, you use a directory "_build" within the root path, or you separate
"source" and "build" directories within the root path.
> Separate source and build directories (y/N) [n]:

Inside the root directory, two more directories will be created; "_templates"
for custom HTML templates and "_static" for custom stylesheets and other static
files. You can enter another prefix (such as ".") to replace the underscore.
> Name prefix for templates and static dir [_]:

The project name will occur in several places in the built documentation.
> Project name: FirstExample
> Author name(s): Takeo Hashimoto

Sphinx has the notion of a "version" and a "release" for the
software. Each version can have multiple releases. For example, for
Python the version is something like 2.5 or 3.0, while the release is
something like 2.5.1 or 3.0a1.  If you don't need this dual structure,
just set both to the same value.
> Project version: 1.0
> Project release [1.0]: 1.0.1

The file name suffix for source files. Commonly, this is either ".txt"
or ".rst".  Only files with this suffix are considered documents.
> Source file suffix [.rst]:

One document is special in that it is considered the top node of the
"contents tree", that is, it is the root of the hierarchical structure
of the documents. Normally, this is "index", but if your "index"
document is a custom template, you can also set this to another filename.
> Name of your master document (without suffix) [index]:

Sphinx can also add configuration for epub output:
> Do you want to use the epub builder (y/N) [n]: y

Please indicate if you want to use one of the following Sphinx extensions:
> autodoc: automatically insert docstrings from modules (y/N) [n]:
> doctest: automatically test code snippets in doctest blocks (y/N) [n]:
> intersphinx: link between Sphinx documentation of different projects (y/N) [n]:
> todo: write "todo" entries that can be shown or hidden on build (y/N) [n]:
> coverage: checks for documentation coverage (y/N) [n]:
> pngmath: include math, rendered as PNG images (y/N) [n]:
> jsmath: include math, rendered in the browser by JSMath (y/N) [n]:
> ifconfig: conditional inclusion of content based on config values (y/N) [n]:
> viewcode: include links to the source code of documented Python objects (y/N) [n]:

A Makefile and a Windows command file can be generated for you so that you
only have to run e.g. `make html' instead of invoking sphinx-build
directly.
> Create Makefile? (Y/n) [y]:
> Create Windows command file? (Y/n) [y]:

Finished: An initial directory structure has been created.

You should now populate your master file ./index.rst and create other documentation
source files. Use the Makefile to build the docs, like so:
   make builder
where "builder" is one of the supported builders, e.g. html, latex or linkcheck.

基本的にデフォルト値を採用したけど、epub だけ ON にしてみた。 セットアップができると、いろんなファイルが生成される。

% ls
Makefile        _static/        conf.py         make.bat
_build/         _templates/     index.rst

$HOME でやらなくてよかった…。このまま生成してみる。

% make html
sphinx-build -b html -d _build/doctrees   . _build/html
Making output directory...
Running Sphinx v1.0b2
loading pickled environment... not yet created
building [html]: targets for 1 source files that are out of date
updating environment: 1 added, 0 changed, 0 removed
reading sources... [100%] index

looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
writing output... [100%] index

writing additional files... genindex search
copying static files... done
dumping search index... done
dumping object inventory... done
build succeeded.

Build finished. The HTML pages are in _build/html

これで HTML ファイル(群)が生成される。

% ls _build/html/
_sources/       genindex.html   objects.inv     searchindex.js
_static/        index.html      search.html

たったこれだけで、立派な HTML ファイル(群) ができるのは、すごい。

日本語は、UTF-8 で書けば通るものと推測される。

もちろんウェ〜ブダッシュには期待していないけど、 本当にダメだった。左から右に向かっておくとして、 「まず上に行ってから下に行く」のが期待する文字なんだけど、 「まず下に行ってから上に行く」という悲しい文字になる。 こういうところが Unicode のダメなところだ。悲しい。

sphinx では、epub も作れるらしい。 epub は iTunes 経由でないと iPad に入れられないのかな。帰宅後に試してみよう。


Tue Jun 15 18:42:20 JST 2010

sphinx で生成したドキュメントのウェ〜ブダッシュの件は、 閲覧環境にも依存する模様。


Wed Jun 16 13:29:02 JST 2010

namazu のインデクスを作りなおし。


Thu Jun 17 20:49:46 JST 2010

cassandra に向かう理由。

kumofs はインフラ的に「大丈夫そう」だし面白いんだけど、仕事で使うような Web アプリにサクっと組み合わせて使うには、ちょっと足りないところがある。 それは、「memcached ベースの KVS であること」だ。 仕事で使うようなアプリでは、TokyoCabinet で言うところの TCTDB (テーブルデータベース) に相当するような、カラムに対する検索を行って 結果を iterate したいことがままある。しかし、純粋 KVS の世界では、これが難しい。 データ構造をうまいこと考えてあげればできなくはないのかもしれないが、 サクっとできないのであれば保守が重くなってしまう。

では TokyoCabinet を使えばいいのかというと、そうでもない。 kumofs は memcached プロトコル前提なので、 バックエンドが tchdb から tctdb になったとしても アクセス方法は純粋 KVS のままだからだ。

では kumofs を噛ませずに TokyoCabinet を使うかというと、 それでは単に高速な DBM を使っているだけになってしまうので、 スケールしない。アプリの要求としては満たすかもしれないが、 インフラの要求としてはスケールしたりディザスタリカバったりする のが楽しいところなので、せっかくの楽しみを削る方向に進むのは避けたい。

そこで、cassandra を検討してみると、カラムに対する検索はできそうだし、 スケールしそうだし、要求は満たせそうだ。 分散DB「Cassandra」に関する調査/検証 によると 「kumofs で言う所の kumo-gateway 的な物はないため、 分散実装をクライアント、サーバのレベルで行う必要がある」 とこのことだが、 cassandra は SPOF が無いのが謳い文句のはずなので、何か逃げ道があると思われる。

というわけで、ちょっと cassandra を追ってみたい。


Thu Jun 17 22:43:40 JST 2010

先日投入した cassandra は、/usr/local/share/cassandra 以下に居た。

しかし根拠なく一般ユーザで行けると踏んだので、自分ユーザで独自に行ってみる。 ブツは 本家 から ダウンロードする。今日現在の最新版は 0.6.2 のようだ。 アーカイブは置く所が無いので、とりあえず /usr/ports/distfiles/ に置いておく。 /var/lib/cassandra と /var/log/cassandra が必要なので、掘る。

% cd /opt/
% tar xvf tar xvfz /usr/ports/distfiles/apache-cassandra-0.6.2-bin.tar.gz
% ln -s apache-cassandra-0.6.2 cassandra
% mkdir -p /opt/cassandra/log
% mkdir -p /opt/cassandra/data
# cd /var/log/
# ln -s /opt/cassandra/log/ cassandra
# cd /var/lib/
# ln -s /opt/cassandra/data/ cassandra
% /opt/cassandra/bin/cassandra -f
 INFO 22:56:36,468 Auto DiskAccessMode determined to be standard
 INFO 22:56:37,016 Saved Token not found. Using 87575231855042221276090663372849713519
 INFO 22:56:37,017 Saved ClusterName not found. Using Test Cluster
 INFO 22:56:37,048 Creating new commitlog segment /var/lib/cassandra/commitlog/CommitLog-1276782997048.log
 INFO 22:56:37,142 Starting up server gossip
 INFO 22:56:37,272 Binding thrift service to localhost/127.0.0.1:9160
 INFO 22:56:37,279 Cassandra starting up...

フォアグラウンドで起動はできたようだ。

% /opt/cassandra/bin/cassandra-cli --host localhost --port=9160
Connected to: "Test Cluster" on localhost/9160
Welcome to cassandra CLI.

Type 'help' or '?' for help. Type 'quit' or 'exit' to quit.
cassandra> show keyspaces
Keyspace1
system
cassandra> set Keyspace1.Stadard1['testdata']['name'] = 'sempre ff'
unconfigured columnfamily Stadard1
cassandra> set Keyspace1.Standard1['testdata']['name'] = 'sempre ff'
Value inserted.
cassandra> set Keyspace1.Standard1['testdata']['weight'] = '82'
Value inserted.
cassandra> set Keyspace1.Standard1['testdata']['type'] = 'human'
Value inserted.
cassandra> get Keyspace1.Standard1['testdata']['name']
=> (column=6e616d65, value=sempre ff, timestamp=1276783281037000)
cassandra> get Keyspace1.Standard1['testdata'] 
=> (column=776569676874, value=82, timestamp=1276783334285000)
=> (column=74797065, value=human, timestamp=1276783354569000)
=> (column=6e616d65, value=sempre ff, timestamp=1276783281037000)
Returned 3 results.
cassandra> del Keyspace1.Standard1['testdata']['weight'] 
column removed.
cassandra> get Keyspace1.Standard1['testdata']
=> (column=74797065, value=human, timestamp=1276783354569000)
=> (column=6e616d65, value=sempre ff, timestamp=1276783281037000)
Returned 2 results.
cassandra> quit

動いているようだ。サーバを Ctrl-C で止め、再度起動する。

cassandra> get Keyspace1.Standard1['testdata']
=> (column=74797065, value=human, timestamp=1276783354569000)
=> (column=6e616d65, value=sempre ff, timestamp=1276783281037000)
Returned 2 results.
cassandra> 

データは失われていない。正しい止め方がわかりません。


Sat Jun 19 18:23:00 JST 2010

cassandra では super column を使う場合には5次元の配列になる。 この時、途中を飛ばすことはできないみたいだ。

cassandra> set Keyspace1.Super1['mynote']['spec']['ram'] = '2048'
Value inserted.
cassandra> set Keyspace1.Super1['mynote']['spec']['hdd'] = '500'
Value inserted.
cassandra> set Keyspace1.Super1['mynote']['name'] = 'habanero'
supercolumn parameter is not optional for super CF Super1
cassandra> set Keyspace1.Super1['mynote']['name']['office'] = 'habanero'
Value inserted.
cassandra> get Keyspace1.Super1['mynote']                               
=> (super_column=73706563,
     (column=686464, value=500, timestamp=1276939267989000)
     (column=72616d, value=2048, timestamp=1276939237571000))
=> (super_column=6e616d65,
     (column=6f6666696365, value=habanero, timestamp=1276939356619000))
Returned 2 results.
cassandra> 

さて、何に使おうか…


Thu Jun 24 11:05:37 JST 2010

会社マシンにて、Firefox 3.6.4 と Opera 10.54 が来てました。


Thu Jun 24 18:36:38 JST 2010

Helios 拾い食い。

  • Resource Property で Unix file Permission が設定できる
  • Open Resource でパターンマッチと相対パスが使えるようになった
  • ローカル履歴の数の上限を指定しないことができるようになった

あとは M6 までと一緒だな。 終了処理が速くなるけど、そのかわりローカル履歴がずっと残りまくるってのは…


Fri Jun 25 13:41:54 JST 2010

会社置き去りの Windows 2000 マシンから Samba 3.4 に入れなくて困っていた。 実際のところは Samba 側は一切変更を加えてなくて、ある日、急に Windows 側が 切れたという症状なの。 で、これが、net use でパスワードまで指定してやったら入れた。 意味がわからんよ。


Mon Jun 28 09:39:08 JST 2010

久々に plain2 でもいじってみようと試みる。 TeX 環境は、今は teTeX というのが主流らしい。 だがしかし、plain2 のパースが何だかズレているようで、 タイトル部分を認識しないばかりか、 セクション名などもとんでもないところから拾ってしまう。 これでは使えないし、直し方もわからないよ。


Mon Jun 28 11:10:43 JST 2010

Eclipse RAP を試してみようとしたが、どうにも動かない。 朝から2連敗か…


Tue Jun 29 18:12:24 JST 2010

git 入れてみた。動くってことはわかった。 実験で roo を取り出してみたが、見ないだろうな(苦笑


HOME | index | prev | next
[Rev: --not under control--]
[EOF]