UI と I/O の関係図を作成中…
2009 年 7 月 6 日 月曜日なんだけど、いまいちしっくりこないので、まだ未公開です…。ちょっと時間をかけすぎてしまった (1時間以上オーバー^_^;)。
…操作と入出力がごっちゃになっちゃってるなぁ。入力はファイルを規定しているのに出力はそれを規定しないからアンバランスになってるんだろうな。操作が処理を呼び出す関係と処理による入出力の関係は切り離さないとな。出力はどうやって示そう? コネクタが良いのかなぁ… (以上独り言)
なんだけど、いまいちしっくりこないので、まだ未公開です…。ちょっと時間をかけすぎてしまった (1時間以上オーバー^_^;)。
…操作と入出力がごっちゃになっちゃってるなぁ。入力はファイルを規定しているのに出力はそれを規定しないからアンバランスになってるんだろうな。操作が処理を呼び出す関係と処理による入出力の関係は切り離さないとな。出力はどうやって示そう? コネクタが良いのかなぁ… (以上独り言)
otoco の処理におけるデータの流れを書いてみました。この奇っ怪な図の作図には OpenOffice.org の Draw を利用しています。
この手のツールの場合、データの流れはそのまま必要な処理を浮き彫りにするので、システムの構成を表現する情報の一つとして重要な資料になります。そして、実際のモジュール構成をもろに規定する仕様とはならないので、あくまで外部仕様として扱うことができるのも大きな利点です。
明日以降はこれに加えて、UI と処理との関係を設計します。
コマンド仕様、用語集の転載が完了。これで、既存の仕様の転載は完了しました。
用語集の中で脚注 (フットノート) を使っていたので、急遽FootNoteMacro プラグインをインストールしました。 wget ではうまくダウンロードできなかったので、手元でダウンロードしたものを rsync で転送した後、
% unzip footnotemacro-r6151.zip % cd footnotemacro/0.11 % sudo setup.py install
とし、Trac の管理メニューでプラグインを有効に。メインの仕事で使っているプロジェクトの Trac からも使えるようになっているはずなので、ちょくちょく使っていこうかな? …あっちはおいら一人で使ってるから脚注なんて使う機会無いか。(^_^;
(さらに…)
メインの仕事の方が押していたので、朝からそっちの作業を進めていました。
で、本当なら今頃リリース作業の予定だったのですが、諸事情合って急遽中止。開発案件もまだ残ってるし作業を進められなくもないのですが、疲労もたまっているのでとりあえず一休みして、野球の中継が始まったら観戦しつつ otoco の方をちょこちょこ進めようかなと思っております…。
制御命令一覧の転載が完了しました。
otoco の制御命令は Perl 版でも実装実績がまだ無く、仕様に関しても、構想はあるんだけれども内容は埋まらないまま穴だらけ、という状態です。メタイベントの類とか、むしろ実装が容易な上にプライオリティも高そうなものが未定義のままほったらかしですね…。早いとこどうにかしないと。
すでに仕様が埋まっている制御命令にもいくつか問題があります。まず #charset 。これ、Encode.pm の仕様を前提にして書かれているので、指定できる文字セット名がちょっと豊富すぎますw。そもそもの問題として、文字セットを扱うライブラリに何を利用するのか決めないといけません (iconv にするか、nkf にするか、他のを探すか… boost にその辺やってくれるクラスがあればいいんだけどなぁ…)。
それともう一つ、#function で関数を定義するときに用いるスクリプト。 Perl 版では eval を用いる気満々で、まんま Perl で書かせるつもりでいたのですが (ファイルとかを扱えてしまえるのは問題なので、その辺の安全性をどうやって確保するかで頭を悩ませてはいましたが)、C++ から Perl パーサを呼び出す気にはなれないし (あんまり動作安定してないですからね、あれ)、自前で Perl パーサを作るなんて以ての外。という訳で、自前でスクリプト言語の仕様を考えなければなりません。まぁ、Lua かなぁ…。
otoco project の Trac ですが、一通りのステータスを設定し終えて利用準備が概ね整いました。すでにチケットを一つ立てて、作業を開始しています。
まずは、ERK 避難所に眠る仕様書の一部を Trac の wiki に転載する作業からです。すでに、MML 書式仕様は転載を完了しています。で、演奏命令一覧の転載作業中にタイムアップ。
避難所の wiki は PukiWiki を利用していたのですが、Trac の wiki は wiki 文法が扱いやすいものの、テーブルに関する記法が貧弱なのが困りものですね…。reStructuredText はなんだか使いづらいし、HTML 直書きもできるけどそれもなぁ…。
本当にただ作っただけですが…。中身はまだ全然いじくってません。ロゴは作ったけど (これにほとんどの時間を費やしてしまった…^_^;)。
trac の設定自体は以前メモした内容とほとんど相違ありません。強いて言えば、otoco プロジェクトは基本的にオープンであり、SSL を用いる必要がないのと、サイト全体を認証で隠す必要がないので、
/etc/httpd/conf.d/ssl.conf
に記述していたのと同等の内容を /etc/httpd/conf/httpd.conf
内に直接記述した。といった辺りが相違点になります。
なお、ロゴの作成には LogoShader を利用させて頂きました。ツールを使い慣れていなかったこと、急ごしらえであったことなどにより、出来はイマイチですが…そのうち作り直しますか…。ともあれ、作者のツッダキミオさんに多謝!!
初っぱなから 40分オーバーです (汗。2時間だけ作業するってのは難しいな。
とりあえず svn だけ設定しました (←まだ匿名アカウントを用意していないので私以外はアクセスできませんが…)。Subversion/WebDAV は初めて設定するのでちょっと手こずりました。
設定の際に参考にさせて頂いたサイトを以下に記します (敬称略)。多謝!!
基本的な内容は概ねここに書かれていました。SELinux は使っていないのですが…。
Apache 側での設定がもう少し詳しく触れられています。ユーザー毎の制御についても書かれています。
ユーザー毎の制御を行う AuthzSVNAccessFile の設定方法について解説されています。
Subversion/WebDAV でアクセス時に 403 Forbidden エラーが出て失敗してしまう場合は、こちらをチェックしましょう。私もこれでハマりました (^_^;A 。
WebDAV/Subversion を設定する前にシステム全体アップデートかけないとなぁとか思いつつ yum -y update 始めたら大量の更新パッケージが検出…。しばらくサーバーメンテナンスほったらかしにしてたからなぁ (^_^; 。手持ち無沙汰にブログを更新…。
これからしばらく、こんな感じで小さなコメントも頻繁にブログに上げていくことにしますー。やっぱりほったらかしはよくないですからね、何事も。
WordPressのバージョンが上がってますね…。あとで上げなきゃ…。
頂いているお仕事の方はまだ継続中なのですが、順調かと問われると微妙なところです。滞りなく完遂したら、それにより得られた資金で社内開発を…と目論んでいたのですが、転換期を迎えられそうな見通しが、正直なところ立っておりません。こうしてブログを更新すること自体、気が引けたりもするのですが…。
で、思い立ったら実践しよう、ということで、明日からちょっと、朝早起きしようかな、と思います。
具体的にはどういう事かと言いますと、AM6:30~8:30 を、社内での予備開発に充て、その時間が空けられる日は必ずその開発を行う、と言う時間割を、当分の間徹底して実践してみようか、と言う試みです。
何を作るのかというと、トッププライオリティにしていなかったもの。ぶっちゃけちゃうと、otoco という、某所で Perl で開発を進めていた MML コンパイラをベースとした音楽制作システムを弊社で買い上げ (と言っても別に費用が発生する話じゃないのですが ^_^;)、それを C++ でスクラッチから起こし直そう、という話です。
こいつの開発は急ぎではないので、毎日 2時間だけ時間を取ってゆっくり進める。で、それ以外に時間が取れるようになったら、日中はトッププライオリティで開発を予定していたものの開発を進めるようにする。という感じで。
そうと決めたら明日は早速、Trac と svn のリポジトリを作ってしまおう。