nDiki : Python
Related term
2005年4月20日 (水)
■ SCons は GNU Autotools のかわりになるか

NSIS のサイトによるとビルドに「SCons」を使うようしたらしい。
と興味深いツールになっているようだ。
現在プロジェクトLaTeXベースのドキュメント生成には GNU Make を使っているのだが、UNIX、Windows の両方でビルドできるようにするには ComSpec 環境変数の有無で使用するコマンドを切り換えたり等いろいろ面倒なので、代替ツールとして使えないかなと。
基本的な機能は Make に対する改良がなされているようであるし、コピー等ファイル操作も SCons 自体がもっているのでクロスプラットフォームでビルドできるようにするのも楽そうだ。
一方 Autoconf 系の機能については、インストール済みのライブラリの検出や実装レベルのチェック等を実装しているようである。 make check や make dist、make install 等にあたるターゲットに関する機能(あるいは規約)のようなものは無い。これは非常に残念。 結局自分が Ant を使わなくなったのも GNU Autotools にあるこれらの機能に欠けているからであるし。
実は私がPerl が好きな理由の一つとして、これらサポートが充実しているという点がある。Perl では ExtUtils::MakeMaker (あるいは Module::Build)があり、ビルドからテスト、ソースパッケージのパッケージングまでフレームワークが整っている。
SCons は Python ベースで、Makefile にあたるファイルも Python スクリプトである。 SCons が影響を受けた Cons は Perl ベースであったのだが、既に2001年5月ごろから開発が止まってしまっている。残念。
ということで Make の代替には使えそうであるが、GNU Autotools と同じようなことをするにはいろいろ手をかけないといけないといった印象。
- Module::Build でソースパッケージング (2005-08-24)
- Windows 向けソフトウェア開発者はソースパッケージを作る習慣がない (2007-07-31)
- 私的10大ニュース2004 [ comp ] (2004-12-31)
- ActivePerl で Ming (2005-02-23)
- NSIS 2.22 は Linux でビルドできず (2006-12-20)
2005年11月21日 (月)
■ 定型書式で内容を記述していくのに便利な形式は?

今要求仕様書を LaTeX で書いている。 要求と仕様の組をまとめて longtable で記述しているのだが、 LaTeX らしい繁雑さがあってちょっと効率が悪い。 マクロを定義すればある程度書きやすくなると思うが、それでもそこそこまでな気がする。
文書の中にレコードの並びが書けて、レコードの並びの中に文章が書きやすいそんなフォーマットはないものかなぁ。
- LaTeX + マクロ
- 整形は綺麗。
- 記述が繁雑になりがち。\マクロ名とか {} とか。
- DocBook
- 仕様デカスギ
- 以前使ってみたことがあるが、手で書くのにはしんどい。
- XML
- 構造的な情報の表現には良いのだが、手で書くのはしんどい。開きタグも閉じタグも。
- 普通の章節や、マークアップのルールを考えなければならない(定義するか借りてくるか)。
- LaTeX等へのコンバータを書く必要あり。
- YAML
- レコードの並びだけだったら良いが、文書の他の要素を一緒に書くのには適さない。
- ある程度の構造やボリュームがあると、思ったほど手書きしやすくない。
- YAML Perl モジュールで痛い目にあっている。
Wiki に慣れきっている自分にとっては Wiki 文法のような感じで記述できて、一部に定型レコードの並びが書けて、そこの整形ルールだけ定義してあげれば LaTeX に変換できるとかそういった感じがのものが欲しい。 定型レコードの部分は RFC822 のヘッダみたいな感じで良くで、値の部分に長めの文章を複数行で書けるものがいい。
構造化テキスト用フォーマット、あるいはWiki フォーマットをアレンジするのがいいかもしれないな。 このあたりのフォーマットは、ソーステキストのままでも充分読み易いことを意識して定義されているので書くのは楽。
- reStructuredText
- Markdown
- reStructuredText よりもソーステキストが読み易いらしい。
- Perl
- HTMLへの変換しかない。
- WiKicker (Wiki)
- かなり書き慣れている。
- レコードの並びの書き方を考える必要あり。
- 複数行にまたがる処理を書くのが面倒。
- 自分で書いているシステムなので中身は何でも知っている。
- マイナー。
レコード部分とは関係ないけれど reStructuredText や Markdown の「アンダーラインのあるテキストを見出しとする」っていうのはいいな。 普段メールやプレーンテキストでちょっと文書を打つときに使っているスタイルと一緒だ。
要求仕様書用に使うかどうかは別として、要チェック。
- reStructuredText いいんじゃない? (2005-11-22)
- 早速 reStructuredText から LaTeX へのコンバータを書く (2005-11-24)
- 私的10大ニュース2005 [ comp ] (2005-12-31)
- Docutils は自分にとっての Python キラーアプリかも (2005-12-01)
- WiKicker に JSON でのページ出力機能を追加 (2007-04-03)
2005年11月22日 (火)
■ reStructuredText いいんじゃない?

昨日の続きであるが、reStructuredText がライトなドキュメント書きにはいいんじゃないかという感蝕を得た。
基本的にプレーンテキストのままで充分見られるので、そのままメールに貼りつけられる。
今までは文書を作成する際、メールで草稿をやりとりしたのち内容が固まったら LaTeX のコマンドでマークアップしてコンパイルしてPDF化していた。 これだとちょっと手間であるのだが、最初から reStructuredText 形式で書いていれば、そのまま rst2latex で LaTeX に落とせる。
また必要に応じて rst2html で HTMLに変換してWebサイトに置いておくこともできる。
これらで満足できない場合は Python のコードをいじって変更ということになるが、Python が駄目でも rst2xml でXMLに変換してしまえば他の言語でも reStructuredText のパーサを書かなくても(XMLの処理系を使って)コンバータを書くことができるの比較的楽である。
しかも欲しかったレコードの表現用にフィールドリストというシンタックスがあるではないか。
いいじゃん。
ということで早速今日から使うことにした。
Debian GNU/Linux sid にある Docutils 0.3.9 ではいわゆる全角文字も文字幅を1として扱かう。 このためテーブルなど桁揃えを用いる書式の部分がこのままだと不便である。 画面上では2文字分幅があっても1文字として数えられるため Docutils が通るようにするためには余計な空白などを入れて文字数を調整しなければならないが、そうすると今度は見た目的にずれるので可読性がかなり落ちてしまう。
この問題のためにMatsumoto,Tadashi氏がパッチ
を作成されているので、これを適用。
これでばっちり。
- 定型書式で内容を記述していくのに便利な形式は? (2005-11-21)
- 私的10大ニュース2005 [ comp ] (2005-12-31)
- Docutils は自分にとっての Python キラーアプリかも (2005-12-01)
- Twitter ベイジアンフィルタプロキシ (2007-12-29)
- Impressive - PDF ファイルでプレゼンテーション (2009-02-19)
2005年12月1日 (木)
■ Docutils は自分にとっての Python キラーアプリかも

先日 reStructuredText ベースの要求仕様書ファイルから、LaTeX への変換プログラムを Perl で作成した。rst2xml で変換した XML 文書経由で。
欲しいところだけまずは実装して使ったんだけれど、この先使っていくには細かいところを組んでいく必要がある。やっぱりフルスクラッチするのは面倒だな。
本来は Docutils 用の Writer を作成するのが王道。
しかし Python なんだよね。以前に何度か覚えておこうと思ったんだけれど動機付けが弱かったのかいつも途中でフェードアウト。 しかし今回は明確な目的があるので、もりもりやりそう。
まずは既存の docutils.writers.latex2e.py あたりをコピーしていじって遊んでみるかな。 自分の場合この方法が一番覚えるのが早い。 小学生の時に最初にBASICをいじった時も、既存のゲームのパラメータとか改造から入ったし。
さて、その latex2e.py であるが「documentclass がオプションや設定ファイルで変更できるものの、標準の LaTeX2e 用のもののどれかしか駄目」だったりなど、普通に使うにもちょっといじる必要がありそう(jsbook とか使いたいし)。
一旦自分好みの LaTeX2e Writer を作ってから、それを拡張する形で特定文書毎の Writer を作るのがよさそうだ。
- 定型書式で内容を記述していくのに便利な形式は? (2005-11-21)
- reStructuredText いいんじゃない? (2005-11-22)
- Docutils の reStructuredText から LaTeX ... (2005-12-07)
- 早速 reStructuredText から LaTeX へのコンバータを書く (2005-11-24)
- SCons は GNU Autotools のかわりになるか (2005-04-20)
2005年12月7日 (水)
■ Docutils の reStructuredText から LaTeX への Writer は継承しづらい

この間やっつけでPerl で コンバータをちょっと書いたのだが、やはりここは正攻法で Docutils の Writer として書いておきたい。
Docutils に含まれている LaTeX2e Writer (docutils.writers.latex2e) のクラスを継承してカスタマイズ版を作ればいいかなと着手。 この Writer の生成する TeX ファイルがちょっと好みではないので、継承して自分好みの Writer を書いた上で、それを継承してドメイン毎の Writer を書く事にする。
Python でコードを書いたことはほとんどないのだがそれほど迷う点はない。 素直な言語なのかな。$ とか @ が出てこないのはちょっと寂しい。ブロックをインデントで示すので「閉じ」がなく、ちょっと「スースー」する。 わかる? この気持ち。
Docutils はパースした結果 DOM ライクなツリーができて、これに対して visit / depart 式の visitor を使って処理をしていけるようになっている。 そのあたりはフレームワークがあるし、典型的なパターンなので楽ではある。
ただし、docutils.writers.latex2e のクラスが継承されることを意識されている感じがしないので、メソッドをコピーして書き換えてオーバーライドといった事が必要になる箇所が思ったよりあるのがちょっと気になる。 今後バージョンアップした時に内部も変わる可能性があるだろうし、最終的にはごっそり Writer を作ってしまう方が良さそうだ。
- Docutils は自分にとっての Python キラーアプリかも (2005-12-01)
- reStructuredText いいんじゃない? (2005-11-22)
- SCons は GNU Autotools のかわりになるか (2005-04-20)
- 早速 reStructuredText から LaTeX へのコンバータを書く (2005-11-24)
- 定型書式で内容を記述していくのに便利な形式は? (2005-11-21)
2006年1月12日 (木)
■ Windows でも Linux でも動くタスク管理ツール Task Coach

仕事をもらさず、先送りせず進めていくには
- タスクを書き出して
- 実行可能な小アクションに分割
するのがひとつのポイントである。
Palm (To Do / DateBk5 / Progect) であったり、裏紙であったり、方眼ノートであったりに、To Do リストを書き出して終わるとチェックしていく。
Palm を使う場合は繰り返し機能やアラームが使えるが、入力が面倒。電池問題あり。 紙を使うとリストアップが速く、常時表示が可能。しかし階層化書きしていくのが面倒。 それぞれ長所・短所がある。
PC用のツールだとどうだろう。タスクをサブタスクにブレークダウンしていけるもので、Windows、Linux で動くものを探してみた。
Task Coach が良さそうなので、これを Debian GNU/Linux sid にインストールしてみる。
@ Python 2.4 用 wxPython のインストール
Task Coach 0.54 は Python 2.4.1 以上、およ wxPython 2.5.5.1-unicode 以上が必要である。 sid の wxPython は Python 2.3 用なので Python 2.4 だとそのままでは使えない。
ということで、まずは Python 2.4 用の wxPython パッケージを作成してインストールするところから。 wxPython2.6-2.6.2.1-1.src.rpm から deb パッケージにする。
- wxPython-common-gtk2-unicode-2.6.2.1-1.i386.rpm
- wxPython2.6-2.6.2.1-1.src.rpm
- wxPython2.6-devel-gtk2-unicode-2.6.2.1-1.i386.rpm
- wxPython2.6-gtk2-unicode-2.6.2.1-1.i386.rpm
をビルドし、その後 deb パッケージ
- wxpython-common-gtk2-unicode_2.6.2.1-2_i386.deb
- wxpython2.6-devel-gtk2-unicode_2.6.2.1-2_i386.deb
- wxpython2.6-gtk2-unicode_2.6.2.1-2_i386.deb
に変換してインストールする。
apt-get install libgtk2.0-dev freeglut3-dev python2.4-dev rpmbuild --rebuild --define 'pyver 2.4' wxPython2.6-2.6.2.1-1.src.rpm cp /usr/src/rpm/RPMS/i386/wxPython* . fakeroot alien *.i386.rpm dpkg --purge python-wxtools dpkg --insstall *.deb
このままだと共有ライブラリが認識されないので、ld.so.conf を修正。
echo /usr/lib/wxPython-2.6.2.1-gtk2-unicode/lib > /etc/ld.so.conf /sbin/ldconfig
これでいけるかと思ったらなぜかロードできない。なぜ?
確認したらライブラリディレクトリの権限が 700 になっていた。
chmod 755 /usr/lib/wxPython-2.6.2.1-gtk2-unicode chmod 755 /usr/lib/wxPython-2.6.2.1-gtk2-unicode/lib
これでOK。
@ Task Coach のインストール
tarball を展開
tar zxvf TaskCoach-0.54.tar.gz
以上。
python2.4 TaskCoach-0.54/taskcoach.py
で実行できる。
@ Windows へのインストールの場合
TaskCoach-0.54-win32.exe がインストーラなので、実行するだけ。簡単。
@ 使い勝手
基本的な機能はほぼそろっている感じだ。
リスト表示とツリー表示をタブで簡単に切り換えられるのが良い。
「ツリー表示の方でタスクをブレークダウン」していきそれぞれに期日を設定すると、「リスト表示の方で期日順に並べて表示して上から実行」していくことができる。
Task Coach の特徴として、各タスク毎のストップウォッチ機能がある。 これを使うとどのタスクがどれぐらい時間がかかったかを記録しておけるので、今後同じようなタスクを作成するときの時間見積もりに役立てることができる。
手元の環境だと uim との相性が良くないのか、途中で日本語入力ができなくなることがあるのが今のところ問題。その場合は Task Coach を起動しなおすことになる。
それ以外はなかなかいい感じ。
デスクワークはガンガンこれに突っ込んでアクションに分割していき、淡々とこなしてみますか。
- TrueCrypt で USB メモリに Windows と Linux ... (2006-12-14)
- Evernote 使用開始 (2009-03-03)
- TrueCrypt 6.1a を Debian GNU/Linux sid に (2009-02-02)
- Debian GNU/Linux で Dropbox (2008-09-16)
- 今日のさえずり - 餞別用意したけど最終日の今日来なかった (2009-06-15)
2006年8月8日 (火)
■ Beagle クライアント比較

Beagle クライアントとして
を試してみた。 それぞれ一長一短であり、今のところこれ1本で OK というのがないというのが感想である。
今のところ yaBi が一番使いやすそうである。
@ Beagle Search (beagle-search)
検索結果の1つを選択すると、画面下部に詳細情報が表示される。 選択したものと、表示される場所とが遠いため見にくい。
また選択されていないものはあまり情報が表示されないので内容わかりずらい。
最近は KDE を使っているので個人的には GNOME 系だと設定が面倒。
@ yaBi
検索結果に対する情報表示やアクションが豊富で使いやすい。
@ インストールと起動
tar zxvf 33222-yabi-0.6.1.tar.gz mv yabi-0.6.1 /usr/local cd /usr/local/yabi-0.6.1 python2.4 yabi.py
@ Kerry Beagle
KDE 系クライアント。 システムトレイに対応している。
タイプを問わずに混ぜこぜにスコアの高いものから順に表示するのが特徴。
検索結果における1項目の表示が大きく適度な情報量があるものの、狭くしたり畳んだりすることができないため結果の一覧性はいまいち。
@ インストールと起動
tar jxvf kerry-0.1.90.tar.bz2 cd kerry-0.1.90 ./configure --prefix=/usr/local/kerry-0.1.90 make make install /usr/local/kerry-0.1.90/bin/kerry
- Linux で使えるデスクトップ検索ツール Beagle でローカルファイ... (2006-08-08)
- Google Desktop Linux 版をインストール (2007-07-02)
- amaroK で Linux 上の iTunes 音楽データを聞く (2006-01-22)
- タスクにどれだけ時間がかかっているか作業記録を取ってみる (2007-02-05)
- 今日のさえずり - ささやかな気持ちDES (2008-11-07)
2007年11月19日 (月)
■ 今日のさえずり - Google ドキュメント、フォントでP明朝指定したら PDF にもきちんと変換できた

- 09:30 近日オープンするエクセルシオールカフェの囲いがとれてる。L:大井町[mb]
- 10:06 最近 Google デスクトップ Linux が、サスペンド/リジュームすると終了している。前はそうではなかったのだが。v1.1.0.0068
- 11:49 deb http://apt.wxwidgets.org/ etch-wx main を APT ラインに追加。
- 11:56 Task Coach 最新 Debian パッケージ(0.66.2-1)入れたけれど動かない。Python 2.5 用のパッケージらしいのでそれもこれから入れる。
- 12:02 うーん動かない。2.4 と 2.5 がごっちゃになってる。
- 13:23 Todoist に入れたプロジェクト/タスクを Task Coach に移した。 *Tw*
- 16:14 RTM と Task Coach をうまく連動させるいいアイデアはないかな。 *Tw*
- 17:53 Google ドキュメント、フォントでP明朝指定したら PDF にもきちんと変換できた。そういうことか。 *Tw*
- 19:21 同時プリント受け取り。後ろに並んでた人、APS フィルムだった。L:秋葉原[mb]
- 今日のさえずり - 今年は予想以上にわくわくできそう (2010-01-18)
- Impressive - PDF ファイルでプレゼンテーション (2009-02-19)
- 今日のさえずり - 勢いあまって NCSA Mosaic 3.0 for ... (2007-11-08)
- 今日のさえずり - 「けいはんな」が「京阪奈」で「京都+大阪+奈良」だとい... (2007-11-20)
- Evernote 使用開始 (2009-03-03)
2008年1月8日 (火)
■ sarge からetch へのアップグレードで危うくサービス壊すところだった

APT ラインが stable だったため中途半端に etch が混ざっているのが気になっているサーバがある。 セットアップした管理者がしばらく不在にしているので、アップグレードすることにしたが、やはりすんなりとはいかなかった。
@ Python 2.3 から 2.4
Python を使っているパッケージより先にインタープリタが削除されたため、そのパッケージが削除できなくなった。
依存関係無視して一旦削除して、更新。
@ Dovecot は設定がそのまま使えず、ダウングレード
Dovecot はアップデートしたら、設定ファイルの項目が変わったのか、エラーメッセージを吐いてデーモンがあがらなくなった。 MySQL 使ってたり、いろいろ苦労して設定してたものなので、いじるのは危険。 sarge からパッケージ持ってきてダウングレード。
@ Linux kernel もアップデートできず
kernel も 2.4 から 2.6 へアップデートしたが、再起動したら md まわりでエラー。 RAID のところがそのままでは駄目っぽい。 慌てて元に戻す。
一旦 udev にしたのも hotplug に戻した。
@ Apache は a2ensite・a2enmod しなおし
こちらは、バーチャルホストといくつかのモジュールの有効化がリセットされてサイトが見られなくなっていたので、それぞれ有効化しなおして復帰。
- [ Debian ] GRUB でソフトウェアRAID1 ブート設定 (2004-01-05)
- 今日のさえずり - 今日も勢いのあるいい小便でした (2009-09-27)
- Debian Linux kernel 2.6.23 をビルドする。 (2007-12-23)
- Debian Linux kernel 2.6.26 にアップデート (2009-02-07)
- Debian kernel パッケージ構築 (2004-05-09)
2009年2月19日 (木)
■ Impressive - PDF ファイルでプレゼンテーション

先週 IDEA*IDEA で紹介されていたプレゼンテーションソフトウェア「Impressive」が良さそげだったので、少しずつ触ってみている。
@ PDF ファイルでプレゼンテーション
PDF ファイルでプレゼンテーションできるので、PowerPoint / PowerPoint Viewer 不要。PowerPoint の互換性による見えの違いも気にしなくて済む。
@ インストール不要
Python で書かれているが Windows 版のバイナリパッケージが用意されていて、配布されているパッケージを展開するだけで使える。ポータブルアプリケーションとして、USB メモリに入れておけばいつでも使える。
impressive.exe に PDF ファイルをドラッグ&ドロップすることで起動できるが、プレゼンテーション時にそれをやるのはちょっとスマートではない。 引数に PDF ファイルを指定して PStart あたりから起動するのがいいと思う。
@ Linux でも動く
- Linux でも動く。Debian GNU/Linux sid にも Debian パッケージがある。
@ ページ遷移・全スライド一覧が格好良い
ページ遷移が格好良い。OpenGL を使ったエフェクトで PowerPoint にはない一味違った表示ができる。
PDF ファイルのファイル名が slide.pdf ならば同じディレクトリに slide.pdf.info というファイル名で設定ファイルを書いておくと、実行時に一緒に読み込んでくれる。 めくる感じのエフェクトでページ遷移させるならば、以下のようなファイルを用意しておく。
# for Impressive AvailableTransitions = [ PageTurn ]
また Tab キーを押すことで全スライド一覧表示に切りかわるのだが、これがズームですっと表示されるで格好良い。見れば良さを実感すること請け合い。
@ キー・ボタン操作のバッファリングには注意
起動すると impress!ve ロゴが表示されるのだが、その後最初のページが表示されるまで少し時間がかかる。 最初のページのロードが終わるとスライドショーが始まるのだが、自分はその前に impress!ve ロゴ画面でつい1ページ送ろうとマウスの左ボタンを押してしまった。 そうすると入力がバッファリングされていて、開始後2ページ目までに飛んでしまう。 この点については注意が必要だ。
特徴はこんな感じ。PowerPoint ラブではない*1ので、今後プレゼンテーションの際は使っていきたい。
*1とはいえ明日のプレゼンテーション資料は PowerPoint で作って PDFCreator で PDF ファイル化したのだけれども。
- TrueCrypt で USB メモリに Windows と Linux ... (2006-12-14)
- Debian GNU/Linux で Dropbox (2008-09-16)
- 今日のさえずり - ミニパトに男性警官が乗っているとガッカリする (2009-11-26)
- Windows でも Linux でも動くタスク管理ツール Task Coach (2006-01-12)
- 今日のさえずり - ずっと「黄金のたれ」だと思っていたのだが (2009-02-17)
■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザイン ビックカメラProcess Time: 0.136673s / load averages: 0.22, 0.19, 0.13
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)




■ Twitter やってます。この記事が気にいったらぜひ twitter.com/Naney の follower になってください。
■ Google Buzz はよろしければ Naney の Google プロフィールからどうぞ。