トップ(最新) | <前

nDiki : Python

Python

スポンサード リンク

Related term

2005年11月21日 (月)

定型書式で内容を記述していくのに便利な形式は? このエントリーを含むはてなブックマーク

スポンサード リンク

要求仕様書LaTeX で書いている。 要求と仕様の組をまとめて longtable で記述しているのだが、 LaTeX らしい繁雑さがあってちょっと効率が悪い。 マクロを定義すればある程度書きやすくなると思うが、それでもそこそこまでな気がする。

文書の中にレコードの並びが書けて、レコードの並びの中に文章が書きやすいそんなフォーマットはないものかなぁ。

  • LaTeX + マクロ
    • 整形は綺麗。
    • 記述が繁雑になりがち。\マクロ名とか {} とか。
  • DocBook
    • 仕様デカスギ
    • 以前使ってみたことがあるが、手で書くのにはしんどい。
  • XML
    • 構造的な情報の表現には良いのだが、手で書くのはしんどい。開きタグも閉じタグも。
    • 普通の章節や、マークアップのルールを考えなければならない(定義するか借りてくるか)。
    • LaTeX等へのコンバータを書く必要あり。
  • YAML
    • レコードの並びだけだったら良いが、文書の他の要素を一緒に書くのには適さない。
    • ある程度の構造やボリュームがあると、思ったほど手書きしやすくない。
    • YAML Perl モジュールで痛い目にあっている。

Wiki に慣れきっている自分にとっては Wiki 文法のような感じで記述できて、一部に定型レコードの並びが書けて、そこの整形ルールだけ定義してあげれば LaTeX に変換できるとかそういった感じがのものが欲しい。 定型レコードの部分は RFC822 のヘッダみたいな感じで良くで、値の部分に長めの文章を複数行で書けるものがいい。

構造化テキスト用フォーマット、あるいはWiki フォーマットをアレンジするのがいいかもしれないな。 このあたりのフォーマットは、ソーステキストのままでも充分読み易いことを意識して定義されているので書くのは楽。

  • reStructuredText
    • いいらしい。
    • HTMLLaTeXXML へのコンバータがある。
    • 拡張性も考慮されているらしい。
    • でも Python
  • Markdown
  • WiKicker (Wiki)
    • かなり書き慣れている。
    • レコードの並びの書き方を考える必要あり。
    • 複数行にまたがる処理を書くのが面倒。
    • 自分で書いているシステムなので中身は何でも知っている。
    • マイナー。

レコード部分とは関係ないけれど reStructuredTextMarkdown の「アンダーラインのあるテキストを見出しとする」っていうのはいいな。 普段メールプレーンテキストでちょっと文書を打つときに使っているスタイルと一緒だ。

要求仕様書用に使うかどうかは別として、要チェック。

◇ Twitter やってます。この記事が気にいったらぜひ twitter.com/Naney の follower になってください。
◇ 2GB 無料のオンラインストレージサービス Dropbox に次のリンク先から登録すると今なら 250MB プラス! → Dropbox


[ 11月21日全て ]

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氏がパッチ

を作成されているので、これを適用。

これでばっちり。


[ 11月22日全て ]

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 を作るのがよさそうだ。


[ 12月1日全て ]

2005年12月7日 (水)

DocutilsreStructuredText から 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 を作ってしまう方が良さそうだ。


[ 12月7日全て ]

2006年1月12日 (木)

Windows でも Linux でも動くタスク管理ツール Task Coach このエントリーを含むはてなブックマーク

仕事をもらさず、先送りせず進めていくには

  1. タスクを書き出して
  2. 実行可能な小アクションに分割

するのがひとつのポイントである。

Palm (To Do / DateBk5 / Progect) であったり、裏紙であったり、方眼ノートであったりに、To Do リストを書き出して終わるとチェックしていく。

Palm を使う場合は繰り返し機能やアラームが使えるが、入力が面倒。電池問題あり。 紙を使うとリストアップが速く、常時表示が可能。しかし階層化書きしていくのが面倒。 それぞれ長所・短所がある。

PC用のツールだとどうだろう。タスクをサブタスクにブレークダウンしていけるもので、WindowsLinux で動くものを探してみた。

rimage:http://www.naney.org/img/2006/screenshot/TaskCoach-2006-01-12-0001-240.png Task Coach が良さそうなので、これを Debian GNU/Linux sidインストールしてみる。

@ Python 2.4 用 wxPythonインストール

Task Coach 0.54 は Python 2.4.1 以上、およ wxPython 2.5.5.1-unicode 以上が必要である。 sidwxPythonPython 2.3 用なので Python 2.4 だとそのままでは使えない。

ということで、まずは Python 2.4 用の wxPython パッケージを作成してインストールするところから。 wxPython2.6-2.6.2.1-1.src.rpm から deb パッケージにする。

一旦 Python 2.4 用の RPMパッケージ

  • 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 を起動しなおすことになる。

それ以外はなかなかいい感じ。

デスクワークはガンガンこれに突っ込んでアクションに分割していき、淡々とこなしてみますか。


[ 1月12日全て ]

2006年8月8日 (火)

Beagle クライアント比較 このエントリーを含むはてなブックマーク

Beagle クライアントとして

を試してみた。 それぞれ一長一短であり、今のところこれ1本で OK というのがないというのが感想である。

今のところ yaBi が一番使いやすそうである。

@ Beagle Search (beagle-search)

Beagle に付属する GNOME 系クライアント。

検索結果の1つを選択すると、画面下部に詳細情報が表示される。 選択したものと、表示される場所とが遠いため見にくい。

また選択されていないものはあまり情報が表示されないので内容わかりずらい。

最近は KDE を使っているので個人的には GNOME 系だと設定が面倒。

@ yaBi

Python で書かれた KDE 系クライアント。

検索結果に対する情報表示やアクションが豊富で使いやすい。

@ インストールと起動
 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

[ 8月8日全て ]

2007年11月19日 (月)

今日のさえずり - Google ドキュメントフォントでP明朝指定したら PDF にもきちんと変換できた このエントリーを含むはてなブックマーク


[ 11月19日全て ]

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 しなおし

こちらは、バーチャルホストといくつかのモジュールの有効化がリセットされてサイトが見られなくなっていたので、それぞれ有効化しなおして復帰。


[ 1月8日全て ]

2009年2月19日 (木)

Impressive - PDF ファイルでプレゼンテーション このエントリーを含むはてなブックマーク

先週 IDEA*IDEA で紹介されていたプレゼンテーションソフトウェア「Impressive」が良さそげだったので、少しずつ触ってみている。

@ PDF ファイルでプレゼンテーション

PDF ファイルでプレゼンテーションできるので、PowerPoint / PowerPoint Viewer 不要。PowerPoint互換性による見えの違いも気にしなくて済む。

@ インストール不要

Python で書かれているが Windows 版のバイナリパッケージが用意されていて、配布されているパッケージを展開するだけで使える。ポータブルアプリケーションとして、USB メモリに入れておけばいつでも使える。

impressive.exe に PDF ファイルをドラッグ&ドロップすることで起動できるが、プレゼンテーション時にそれをやるのはちょっとスマートではない。 引数に PDF ファイルを指定して PStart あたりから起動するのがいいと思う。

@ Linux でも動く

@ ページ遷移・全スライド一覧が格好良い

ページ遷移が格好良い。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 ファイル化したのだけれども。


[ 2月19日全て ]

2010年8月18日 (水)

今日のさえずり: すごいね! サイコキネシスじゃん! このエントリーを含むはてなブックマーク

@ 2010年08月18日

  • 09:32 車内子「すごいね! サイコキネシスじゃん!」()
  • 09:33 RT @xnomb: 一松信先生(数学者)の本はわかりやすいなあ。
  • 09:39 一松信先生懐かしいな。キャンパスで立ち止まっているときは、何かの計算をしているんだろうと言われてた気が。
  • 12:06 おにぎり 315円。 (@ セブン-イレブン神田佐久間町店) http://4sq.com/cEfW1k
  • 12:42 ほぼ日手帳2011のカバー、公式サイトでチラ見させている写真は女性向けっぽいのばかりだな。
  • 12:46 もう横綱にしちゃっていいよ。 RT @as_tone: そして今日も「ここ横綱って地名があるんだ!」と言っている人がいる@両国。横網(よこあみ)です…
  • 13:40 缶コーヒー 100円。
  • 14:14 久しぶりに C++ から C# の世界へ。ヘッダファイル書かなくていいの楽だわー。
  • 16:41 RT @rtmjp: 日本語によるRemember The Milkのtwitterアカウントを開設いたしました。最新情報、ブログ投稿、質問の回答などを行います。よろしくお願いします。参考までですが、ブログにも投稿しています。 http://ow.ly/2r9mX
  • 18:15 久しぶりに reStructuredText 使いたくなって Windows XP BOX に Python 3.1.2 と Docutils 0.7 をインストール
  • 18:37 reStructuredText でちょっこし書いて rst2html して Google ドキュメントアップロードしたら、変換できんってはねられた。
  • 20:03 雨降ってきてる。 (@ 秋葉原駅 (Akihabara Station) w/ 12 others) http://4sq.com/68fhHr
  • 20:26 こっちは今降ってない。
  • 21:08 頂き物のゆべし食べた。名前はどこかで聞いたような聞かないような感じだったけど、食べてみたところ多分お初。昔風だな。
  • 21:11 RT @America_Amazon: 友人の家に遊びに行ったらビニール袋に詰められた土が何個も飾ってあって、「何だよ、あれ?」と聞いたら「今まで付き合った女の家の、庭の土を記念に持って帰ってきたんだよ」という高校球児みたいな答えが返ってきた。リア充でも屈折するとキケンな ...
  • 21:23 明日から花輪ばやしだね。
  • 22:02 ぽ、PORTER ほぼ日手帳カバーだと!
  • 22:03 @_kojihiro 岩手のお土産らしいです。
  • 22:06 「手前のポケットはスマートフォンが収まるサイズ。」とか絶対狙い撃ちされてる。 RT @Naney: ぽ、PORTER ほぼ日手帳カバーだと!

WindowsreStructuredText 環境を このエントリーを含むはてなブックマーク

ちょっとした仕様のドキュメトを書くのに、久しぶりに reStructuredText を使いたくなったので、Windows XP BOX に環境を用意した。

まず Pythonインストール。公式サイトから python-3.1.2.msi をダウンロードしてインストールインストール先は c:\usr\local\Python31 に。

次に reStructuredText 形式ファイルを HTML 形式ファイルなどに変換するツールが含まれている Doctils wを公式サイトから取ってくる。docutils-0.7.tar.gz をダウンロード。アーカイブを展開したら setup.py のあるディレクトリで

 c:\usr\local\Python31\python.exe setup.py install

を実行。これでインストール完了。これ例えば reStructuredText 形式で書いてある mydoc.txt ファイルを HTML 形式ファイル mydoc.html に変換するには

 c:\usr\local\Python31\python.exe c:\usr\local\Python31\Scripts\rst2html.py mydoc.txt mydoc.html

で OK。必要なら docutils.conf ファイルを作って --config オプションで渡してあげる。環境にあわせて rst2html.bat を作っておけば、Windows でもまずまず reStructuredText を使えるはず。


[ 8月18日全て ]

この日記のはてなブックマーク数 Add to Google RSS

Process Time: 0.110586s / load averages: 0.13, 0.18, 0.21
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)