Main

software Archives

September 19, 2006

Syndy 0.7を公開しました

Syndyはフィード・アプリ・ランチャです。OPMLをベースとしていて、OPML編集機能もあります。そうすることで、RSS/AtomフィードやXHTML文書のグループに対して、アプリケーションを適用することができます。

ここでアプリケーションとは、xfyのボキャブラリー・コンポーネントとして実装されている必要があります。

このSyndy 0.7(zipアーカイブ)を使うには、xfy Basic Edition 1.3 (Windowsまたは他のプラットフォーム向け)が必要です。readmeはこちら

使い方

ダウンロードとインストール

  1. ここからSyndyのzip圧縮アーカイブをダウンロードーしてください: "Syndy-0.7-20060917.zip"。
  2. zip圧縮アーカイブを展開して、次のファイルとフォルダを、xfy Basic Edition 1.3をインストールしたフォルダの下の"scripts"フォルダに置いてください。
    • Syndy_Main.xvcd
    • Syndy_List.xvcd
    • Syndy_FeedView.xvcd
    • Syndy_BasicView.xvcd
    • Syndy.resource (フォルダです)

サンプル

  1. zip圧縮アーカイブにはサンプルファイルが含まれています。"sample.opml"ファイルと"Sample"フォルダを任意のフォルダに置いてください、ただし、同じフォルダに置いてください。
  2. "sample.opml"をxfyで開いてください。

操作

操作の基本は"選んで適用"です (^^ゞ

ノードを選択: フォルダ、フィードまたはXHTML文書

左上のペインでノードを選択します。ノードは、RSS/AtomフィードやXHTML文書のグループを表すフォルダか、またはRSS/AtomフィードやXHTML文書そのものを示します。

フォルダを選択フォルダを選ぶことで、フィードや文書のグループを選びます。

フィードを選択この例では、一つのフィードが選択されています。

アプリケーションを適用

カーソルを右のペインに置いて、ボキャブラリー・コンポーネントを変更します: ドキュメント・ビュー・エリアのタイトル・バーにある"ボキャブラリコンポーネントの切り替え"をクリックします。

ドキュメント・ビュー・エリアのタイトル・バーにある"ボキャブラリコンポーネントの切り替え"をクリックします

このようにして、フィードに対してアプリケーション(ボキャブラリー・コンポーネント、またはXVCD)を適用することができます。xfy Communityにあるフィードアプリケーションを試してみてください。

アンインストール

次のファイルやフォルダを、xfy Basic Edition 1.3をインストールしたフォルダの下にある"scripts"フォルダから削除してください。

  • Syndy_Main.xvcd
  • Syndy_List.xvcd
  • Syndy_FeedView.xvcd
  • Syndy_BasicView.xvcd
  • Syndy.resource (folder)


このページは xfy Blog Editor を利用して作成されました。

September 23, 2006

対訳エディタ(仮称) 0.7

対訳エディタ(仮称)は、英語を日本語に翻訳したり、「単語帳」ならぬ「英語表現帳」を作って勉強したりしている人のためのエディタです。具体的には、英語の国際規格を日本語にローカライズする作業の支援を目標にしています。

対訳エディタが入出力する文書のデータ形式はXHTMLなので、モダンブラウザで表示することができます。適用するCSSを工夫することで、モダンブラウザ上でも、上記作業に十分使えるレイアウトで表示できるのではないかと考えています。

対訳エディタの基本機能は、英日の文章を対にして表示・編集できることと、各対にToDoリストを割り付けることです。これと、xfyのXHTMLコンポーネントを組み合わせて、計3通りのビューで作業することを想定しています。

対訳エディタは、英語の文章と日本語の文章を、2通りに表示します:

  • 並行表示: 英日が左右で対になるように表示し、文書全体は縦方向にスクロール表示します。
    parallel editing
  • カード表示: 英日の1対を1画面に表示し、ボタン操作で前後のカードに移動します。
    card editing

対訳エディタでは、文章の文字列のみ編集できます。リストを作ったり下線を付けたりは、xfyのXHTMLコンポーネントでおこなってください。

各対には、複数のToDoを割り当てて、期限を設定したり完了日を記録することで、進捗を管理することができます。

以上の対訳エディタ固有の機能・動作は、XHTML文書のclass属性の値に基づいて実現しています。

システム要件など

Version 0.7
Submitted Date 2006-09-23
Requirements xfy Basic Edition 1.3 for Windows or for other platforms

使い方

インストール

  1. 対訳エディタのzipアーカイブをダウンロードします: "Taiyaku-v0.7-20060923.zip".
  2. xfy Basic Edition 1.3を終了します。
  3. zipアーカイブを展開して、次のファイルをフォルダを、xfy Basic Edition 1.3をインストールしたフォルダの下にある"scripts"フォルダの下に置きます。
    • Taiyaku.xvcd
    • Taiyaku.resource (フォルダ)
  4. 新規作成: 「ファイル-新規作成」を選択すると、新規作成ダイアログが開きます。そこにテンプレート一覧が表示されるので、「Yamahige」フォルダの下の「Taiyaku」を選択して、対訳文書を新規作成します。
  5. 既存の文書に対訳エディタを使うには、下の「仕組み」をご参考。

アンインストール

上記ファイルとフォルダを削除する。以上。

操作

メインメニュー、ツールバー、コンテキストメニューによって、英日の対を追加、削除したり、ToDoを編集できます。意図しない結果になっても、たいていはアンドゥで元に戻ります。

仕組み

対訳エディタ固有の機能・動作は、XHTML文書のclass属性の値と、特定の構造に基づいています。

英日の対

英語・日本語の対は、それらfragmentsをdiv要素に含めて、そのdiv要素にclass属性を指定し値を"Taiyaku"とすることで、それらが対であることを表現します。

それぞれが英語、日本語の内容であることは、xml:lang属性とlang属性を併用して表現します。

これら以外の要素は無視するだけなので、多分、好きなことを書いても大丈夫、…のハズ。

以上は、ざっとこんな感じ:

<body>
  <div class="Taiyaku">
    <p xml:lang="en" lang="en">...English...</p>
    <p xml:lang="ja" lang="ja">…日本語…</p>
    <p>ここも無視。</p>
  </div>
  <p>ここは無視。</p>
</body>

ToDo

ToDoはMicroformatのhCalendarで表現しています。ToDoなので、"vevent"ではなく"vtodo"プロパティを使っていることに注意してください。

ToDoに該当するfragmentsは、上記div要素の中にあります。

ToDoのプロパティは、リストul要素の中に割り当てています。また、このul要素内には特定の構造を想定しています。これを変更すると、hCalendarに合致していても、対訳エディタで編集することはできません。

以上、ざっとこんな感じ:

<div class="Taiyaku">
  <ul class="vtodo">
    <li><abbr class="due" title="2006-09-22">昨日 (^^ゞ</abbr></li>
    <li class="summary">ネットで用例を確認する。</li>
    <li class="description">普通、こんな言い方するか?</li>
  </ul>
</div>

履歴

version 0.7, 2006-09-23

概要

  • ToDo機能を追加
  • カード操作を改善

version 0.3, 2006-01-20

概要

First release。並行表示とカード表示。

アンインストール

次のファイルを削除する。

  • Taiyaku.xvcd
  • Taiyaku.resource (ファイル!)

このページは xfy Blog Editor を利用して作成されました。

October 9, 2006

Syndy Chronicle 0.7.1

Syndy Chronicleを若干手直しして0.7.1として、それから説明をつけました。

本体はここから"Syndy_Chronicle-0.7.1-20061008.zip"をダウンロードしてください。操作説明などはここ

このページは xfy Blog Editor を利用して作成されました。

Syndy Feed Calendar 0.7.3

Syndy Feed Calendarは、hCalendarでマークアップしたイベント情報をカレンダー表示します。ダウンロードはこちらから。

イベント情報は、Atomフィードのentryドキュメントの中のcontent要素から取り出します。ざっとこんな感じです:

<feed xmlns="http://www.w3.org/2005/Atom">
  ...
  <entry>
    ...
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <div class="vevent">
          <span class="summary">International Medical Writing Workshop</span>
        </div>
      </div>

この点が"hCalendar via RSS XVCD"との違いです。"hCalendar via RSS XVCD"は、entryドキュメントがリンクしているXHTMLドキュメントから取り出します。

まだおかしなところがありますが、xfy Communityが、hCalendarでイベント情報を配信し始めたので、急いで公開することにしました (^^ゞ。Syndy Feed Calendarをセットアップしてから、xfyでxfy Communityのフィードを開いて、ボキャブラリーコンポーネントを"Syndy Feed Calendar"にしてみてください。

おっと、このBlogもwell-formedを維持しないと (^^ ;

詳しい説明はこちら(まだ英語…)。

このページは xfy Blog Editor を利用して作成されました。

October 14, 2006

Syndy Chronicle 0.7.2をリリースしました

  • タイトル:Syndy Chronicle 0.7.2 リリース
  • 開始日時:2006-10-14 22:30
  • 詳細:参照する年表側をAtomフィードに対応。自分史・将来側もOPML、Atomフィードに対応

これで参照する年表、自分史・将来の両方ともXHTML、Atomフィード、OPMLに対応しました。自分史や将来計画をBlogの複数の記事に分散して書けます。

となると今度は、年表入力ウィザードでも作りますかね。xfy Blog Editorの拡張コマンドとして、とか。

このページは xfy Blog Editor を利用して作成されました。

October 15, 2006

Syndy Chronicle 0.7.3をリリースしました

  • タイトル:Syndy Chronicle 0.7.3リリース
  • 開始日時:2006-10-15 18:20
  • 詳細:description部分を表示するのに、テキスト値を表示するのではなく、元のXHTML fragmentの構造ごと表示するようにした。

その他、サイト構成の不整合なども直しました。
このページは xfy Blog Editor を利用して作成されました。

October 21, 2006

Syndyで外部OPMLへのリンク

タイトル

Syndyをversion 0.7.1.1にアップデートしました

日付

2006年10月20日

内容

OPML文書中から外部のOPMLへのlinkをサポートしました。type属性の値がlinkの場合です。Syndyのページからたどって入手してください。

これで、分散OPMLディレクトリ(distributed OPML directories)なんてできるのかな、と思います。これについてはあとで。

OPMLタイプのノードには"OPML Icon Project"のアイコンをつけました。OPMLタイプのノードは、参照先のOPML文書へのリンクとして扱われます。左ペインでOPMLタイプのノードを選択すると、右ペインには、参照先のOPML文書でウィンドウを書き換えるのか、新たにウィンドウを開くのかの選択肢が示されます。

OPML type of node has an icon from the " OPML Icon Project" and link type choice is displayed in the right pane

This page was created using xfy Blog Editor

October 30, 2006

Syndy Feed Calendarをバージョン0.7.4に

  • タイトル:Syndy Feed Calendar version 0.7.4公開
  • 開始日時:2006-10-29 23:00
  • せっかくCSSで描いてるので、カレンダーのセルのサイズを柔軟に変えて、イベントの詳細記述までスムーズにたどれるように工夫してみました。

このページは xfy Blog Editor を利用して作成されました。

October 31, 2006

Syndy Chronicleで期間表示

詳細:
Syndy Chronicleをバージョン0.7.4に更新:
  • 複数年のイベントについては、開始年と終了年を表示
  • マウスカーソルを置くと、対応する開始/終了年のペアをハイライト表示

これでhResumeの'education' や'experience' のように複数年にわたるイベントに適用しても、なんとかサマになるようになったかと。

このページは xfy Blog Editor を利用して作成されました。

January 20, 2007

プレゼンツール「SayYes!」公開しました

  • タイトル:SayYes! 0.3.1公開
  • 開始日時:2007-01-19 23:00
  • 詳細:SayYes!は、Blog記事など、別の目的で公開されたXHTML文書をソースとしてスライドショーを実行するプレゼンテーションツールです。

わたしがこれまで公開してきたプレゼンテーションツールと比べると、技術的には、ざっと次の特徴があります:

スライド構成
p要素、ul要素などのブロック要素を1つずつ取り出して、スライドを構成します。1スライドに1ブロック要素、です。
以前のプレゼンテーションツールでは、h3要素などをもとにセクション構造をスライドの中に移していました。
クラス名による内容の選択
スライドに表示する内容をクラス名で限定できます。Blog記事をソースXHTML文書とする場合でも、本文だけを取り出すことができます。

ドキュメントが未整備ですが、まずは公開することにしました。
このページは xfy Blog Editor を利用して作成されました。

January 24, 2007

Deep Reference Lite 0.3.1公開

  • タイトル:Deep Reference Lite 0.3.1公開
  • 開始日時:2007-01-23 23:00
  • 詳細:XHTML文書中のリストを軸として引用して表を生成するツール、Deep Reference Lite 0.3.1を公開しました。

紙文書の時代からそうですが、従来の引用は、1つの文書の一部分を一節、あるいはひとかたまりのブロックとして引用しました。そして、他の文章中でこの引用部分を評価したり、批判したりするときも、引用部分を一節やかたまりとして評価したり批判しました。HTMLのq要素やblockquote要素はこの従来のやり方に対応していると思います。

これに対して、Deep Reference Liteは、リストとして記述された文章の一部分をリストとして引用します。そして評価や批判はリストの各項目に対して行えます。この「引用 - 評価」構造を表で表現します。これを「一歩踏み込んだ参照」と見て「Deep」 Referenceと名付けました。

また、引用するリストを2つ選んで表の縦横2軸に用いることで、2つの引用先を組み合わせて評価や批判することができます。たとえば、縦軸に評価対象、横軸に定評のある評価観点を引用するといった使い方です。

しかし狙いは、もっと気軽なところにあります。Web文書中のリストをコピー&ペースト感覚で引用して気軽に表を作れるので、あまり構えずに、とりあえず、2つのリストを組み合わせてみてはいかがでしょう?文書中にリストを見つけたら、別のリストをぶつけて見ましょう。何か発見があればよし、なければ別の組み合わせを試すもよし、そのままスルーするもよし。

なお、公開してませんが、"Lite"のついていないDeep Referenceもあります。これは、参照先のリストの変更に追従するようになってます。
このページは xfy Blog Editor を利用して作成されました。

February 7, 2007

CrossConcept

CrossConceptというツールを公開しました。

  • タイトル:CrossConcept 0.3.0公開
  • 開始日時:2007-02-06 23:00
  • 詳細:XHTML文書中のリストから2つを選んで、それらを軸として表を構成するツールCrossConcept 0.3.0を公開しました。。

CrossConceptは、1つのXHTML文書のリストから2つを選んで、それらを軸として表を構成するツールです。構成した表は、XHTMLのtable要素として編集中の文書に挿入したり、クリップボードに設定したりできます。

CrossConceptの概観

CrossConceptは次のような使い方を想定しています:

  • 発想支援
  • リスト構成を検討する
  • 単にリストから表を構成する

CrossConceptとは「考えが出会う交差点」という意味です。1つの考えをリストとして表現すると、同じくリストとして表現された他の考えと交差させて、考えを検討したり、新たな発想を得たりしやすくなります。CrossConceptはこの手法を支援するツールです。

Deep Referenceは編集中のXHTML文書とは別の文書からリストを引用しますが、CrossConceptは編集中の文書中のリストを使います。その意味で、xfy Communityに掲載されているList 2 Table for Blog Editorの高機能版と思えば、理解しやすいかもしれません。

CrossConceptは、xfy Blog Editorの拡張コマンド、およびxfy Basic Editionのボキャブラリーコンポーネントとして実装されています。

このページは xfy Blog Editor を利用して作成されました。

February 9, 2007

CrossConcept 0.3.1

CrossConceptのUIを若干手直ししました。

  • タイトル:CrossConcept 0.3.1
  • 開始日時:2007-02-08 08:00
  • 詳細:CrossConcept 0.3.0のUIを若干改善。

Tabキーでボタンだけを渡り歩いたり、EscキーでCancelボタンと同じ動作をしたり、などです。

このページは xfy Blog Editor を利用して作成されました。

February 12, 2007

Deep Reference、CrossConceptを更新

それぞれ、少し改訂しました。

  • タイトル:Deep Reference Lite 0.3.2
  • 日時:2007-02-11 19:30
  • 詳細:
    • 3つ以上のリストを取り込めるようにした。そのうちから2つを選んで、表の軸に設定することができる。
    • 表をクリップボードに設定したことを通知するメッセージボックスを追加した。
    • 表の列見出しを斜めにする機能に蓋をした。
    • 作りとしては、CrossConceptとテンプレートなどを共有する構成にした。
  • タイトル:CrossConcept 0.3.2
  • 日時:2007-02-12 20:00
  • 詳細:表をクリップボードに設定したことを通知するメッセージボックスを追加。

Deep Reference Liteは、あちこちのXHTMLページからリストをどんどん取り込めるようになり、いわば多次元の表になりました。こうなると、XHTMLのtable要素に変換される前の、Deep Reference Lite固有のデータを保存しておきたくなりますが、やめておいてください。まだやりたいことがあって、今後の改訂で、互換性を保証できません。今回の改訂でも、前の版のデータを読めなくなってます。

さて、では実際にDeep Referenceを使って、これらDeep ReferenceやCrossConcept自身を評価してみます。The microformats principleとWhat is Web 2.0?を再利用してみます:

 solve a specific problem 2つのリストを表のカタチでつき合わせるだけ。それ以外、例えばリストDBは、今のところout of scope。
 start as simple as possible まずは、List 2 Table for Blog Editorから試すと理解しやすいかも。
 design for humans first, machines second
  • invisible metadataは入力しないし、出力もしない。
  • 出力の表に、引用先をcite要素で添えてあるが、XHTMLで表現できる以上のことはしていない。つまり、出力の表には行列の見出しとして2つのリストが含まれているが、2つのcite要素のどちらが、行列どちらの見出しに該当するを示すデータやメタ・データを含めていない。
  • CrossConceptはBlogで利用することを想定した。
  • 出力の表にはスタイルやクラス指定は一切ついていない。Blog側のスタイルを尊重している。
 reuse building blocks from widely adopted standards 入力はリスト(ul、ol、dl)、出力は表(table)いうXHTMLの一般的な要素だけで構成した。
 modularity / embeddability 出力の表(table要素)は、もちろん再利用可能、XHTML文書に埋め込み可能だ。
 enable and encourage decentralized and distributed development, content, services Deep Referenceは、Web上のリストを、いわば分散した知識として再利用するものだ。

"the microformats principles"より

プラットフォームとしてのウェブ
(The Web As Platform)
集合知の利用
(Harnessing Collective Intelligence)
リストとして表現された個々のintelligence(の出力)を、表のカタチで結びつける。
データが重要
(Data is the Next Intel Inside)
考えをリストのカタチでWebに置いておくことが、けっこう重要なのだ。
商品としてのソフトからサービスとしてのソフトへ
(End of the Software Release Cycle)
段落よりもリストにすることで情報はより役に立つ。重要なのはCrossConceptやDeep Referenceというツールではなくて、Webに散在するリストなのだ。…というので、趣旨に沿ってるかな…。
ハッキングと連動が容易な軽量プログラミング
(Lightweight Programming Models)
PCに限定されない利用
(Software Above the Level of a Single Device)
Ajaxに代表されるリッチなUI
(Rich User Experiences)

"The Web KANZAKI - Web 2.0からセマンティック・ウェブへ"

…と、軽い気持ちで始めてみると、けっこう奥が深そう(^_^;)。今日はのところは、こういうことが気軽に始められることが、これらツールの狙いだというところまでで。

このページは xfy Blog Editor を利用して作成されました。

February 14, 2007

Deep Reference Lite 0.3.3

  • タイトル:Deep Reference Lite 0.3.3
  • 開始日時:2007-02-14 01:00
  • 詳細:リストとしてul要素しか、クリップボードから取り込めなかったのを改修しました。

このページは xfy Blog Editor を利用して作成されました。

Continue reading "Deep Reference Lite 0.3.3" »

March 13, 2007

CrossConcept 0.3.3、Deep Reference Lite 0.3.4

どちらも、操作性を改善してみました。

  • タイトル:CrossConcept 0.3.3
  • 開始日時:2007-03-11 15:00
  • 詳細:
    • マウスカーソルのあるセルと、該当する行・列の見出しをハイライトするようにした。
    • セルの既定値として「N/A」を設定するのをやめた。
  • タイトル:Deep Reference Lite 0.3.4
  • 開始日時:2007-03-11 18:00
  • 詳細:
    • マウスカーソルのあるセルと、該当する行・列の見出しをハイライトするようにした。
    • セルの既定値として「N/A」を設定するのをやめた。

マウスカーソルのあるセルと該当する行列見出しがハイライト表示されている図

このページは xfy Blog Editor を利用して作成したぜっ!

March 14, 2007

Template It!

ようやくTemplate It!公開にこぎつけました。

  • タイトル:Template It! 0.3.1
  • 開始日時:2007-03-12
  • 詳細:Template It!を使うと、気になる文章のバリエーションを容易に作ることができます。気になる文章を選択して、それをテンプレートにして、そのいくつかの部分を置き換えながら、いくつものバリエーションを作ることができます。

Template It!は、文章を「テンプレ」化するテンプレ・ジェネレーターであり、かつ、そのテンプレからコピペ、すなわちバリエーションを生成するコピペ・ジェネレーターでもあります。

テンプレ・ジェネレーター
気になる文章から、コピペ生成機能を持つ様々なテンプレを生成することができる。
コピペ・ジェネレーター
テンプレから、コピペのバリエーションを容易に生成できる。

狙いは、コピペ作成の敷居を低くすることで、コピペ作成を促し、その過程から様々な気づきを引き起こす(inspire)ことです。特に、元の文章について様々な発見をするでしょう。すなわち、コピペを作ることは手段であって、元の文章を深く読むことが目的です。これは文章リーダーなのです。

そうはいっても、これは単に道具ですから、様々な使い方があるでしょう。例えば:

  • 競合製品のリリース記事で、製品名を自社製品に置き換えてみる。
  • 格言の一部を置き換えてみる。
  • 自分の言い分、相手の言い分を書き下して、主客を入れ替えてみる。
  • よい文章をお手本にして、いま必要な文章を作成する。

などなど。

Template It!の作業結果として生成されたコピペは、xfyのクリップボードに設定することができます。…そりゃぁ、コピペですから…。

Template It!の概念

このページは xfy Blog Editor を利用して作成したぜっ!

April 3, 2007

Firefoxからリストをコピぺ

FirefoxからCrossConceptやDeep Reference Liteへリストをコピペできるようにしました。

  • タイトル:Deep Reference extension for Firefox
  • 日時:2007-04-01 12:00
  • 詳細:Deep Reference extension for Firefoxを公開しました。HTMLページ中のリストを引用して、XHTMLフラグメント(fragment、一部)としてクリップボードに設定する、Firefoxの拡張機能(extension)です。クリップボード経由で、FirefoxからCrossConceptやDeep Reference Liteにリストを渡すのが目的です。
  • タイトル:CrossConcept 0.3.4
  • 日時:2007-04-01 23:00
  • 詳細:クリップボードのXHTMLフラグメントからリストを追加できるようにしました。
  • タイトル:Deep Reference Lite 0.3.5
  • 日時:2007-04-03 07:00(予定 済み)
  • 詳細:クリップボードのXHTMLフラグメントからリストを追加できるようにしました。

これで、特にCrossConceptは、外とつながるようになりました。これまでは事実上、書きかけのBlog記事中のリストしか扱えませんでした。

同様にして、まだ公開してませんが、MicroformatsのhCalendarで記述されたイベント情報を、Firefoxからxfy上のアプリにコピペすることも可能です。さらに、これもまだ公開していませんが、同様のことをブックマークレットで実装して、Internet Explore(IE)からxfy上のアプリにコピペすることも可能です。

ここで、XHTMLフラグメントは文字列です。「XMLはもともと文字列だろう」って?そうなんですけどね…。つまり、Deep Reference extension for Firefoxを実行した後で、テキストエディタで「貼り付け」を実行すると、次のようなテキストが貼り付けられます。

<?xml version="1.0"?>
<blockquote xmlns="http://www.w3.org/1999/xhtml"
 title="Xyndy .jp" cite="http://xyndy.oops.jp/blog-jp/">
<!-- Deep Reference extension for Firefox 0.3.0.20070327 -->
<ul><li>パッと見て頭に入りやすい。覚えやすい。</li>
<li>使いやすい。例えばチェックリストというカタチで。</li>
<li>チェックされやすい。</li>
</ul>
</blockquote>

で、この状態でCrossConceptにリスト追加コマンドを実行させると、CrossConceptは、xfyクリップボード中のstring要素の内容にxml-string-to-dom関数を適用します。

リストはblockquote要素で包まれています。元(X)HTMLページのタイトルやURLもblockquote要素の属性として渡り、Deep Referenceが作成した表をクリップボードに設定するときに添えるcite要素に使われます。

ちなみに、CrossConceptは、この元(X)HTMLページのタイトルやURLを使っていません。ここへきて、CrossConceptとDeep Referenceの機能分担を見直す必要がありそう。

このページは xfy Blog Editor R4を利用して作成したぜっ!

April 12, 2007

CrossConcept、Deep Referenceのリスト・軸操作

Firefoxの拡張機能に続いて、IE用のブックマークレット(bookmarklet)として、HTMLページ中のリストを引用してクリップボードに設定する機能を実装しました。

で、いろんなページからいくらでもリストを取り込めるようになったので、CrossConceptやDeep Reference Liteでリストを折りたたみ・展開できるようにしたり、ドラッグ・アンド・ドロップでリストを軸に設定できるようにしました。こんな感じ。

リストの展開・折りたたみは[+]や[-]や... >> moreのとこをクリックします。デザイン的にどうだろ…(^_^;)、でも時間切れ。まずは使えるように。なにせ、Web 2.0 Design Patternsなんかを引用すると、でかくてスクロールが大変なので。

  • タイトル:Deep Reference bookmarklet for Internet Explore
  • 開始日時:2007-04-07 23:00
  • 詳細:HTMLページ中のリストを引用してクリップボードに設定する、Internet Explore(IE)用のブックマークレット(bookmarklet)です。クリップボード経由で、IEからCrossConceptやDeep Reference Liteにリストを渡すのが目的です。
  • タイトル:CrossConcept 0.3.5
  • 開始日時:2007-04-11 23:00
  • 詳細:
    • リストの折りたたみ・展開ができるようにした。
    • リストを表の軸に採用する操作でドラッグ・アンド・ドロップできるようにした。
  • タイトル:Deep Reference Lite 0.3.6
  • 開始日時:2007-04-11 23:00
  • 詳細:
    • リストの折りたたみ・展開ができるようにした。
    • リストを表の軸に採用する操作でドラッグ・アンド・ドロップできるようにした。

IE用のブックマークレットはWindows XP上のIE6で確認してます。

あとは次の3つ。

  • Safari、Operaで同様にリストをコピーする機能を実装。
  • CrossConcept上で、取り込んだリストを編集する機能を実装。
  • これらの英語版、英語記事…(^_^;)

ま、そのうちに…。

このページは xfy Blog Editor を利用して作成されました。

April 18, 2007

SayYes!更新

SayYes!を更新しました。

  • タイトル:SayYes! 0.3.2
  • 開始日時:2007-04-17 23:00
  • 詳細:
    • カスタムスタイルシートをSayYes!に対して設定できるようにした。
    • 本文領域の幅を調整できるようにした。
    • デフォルトスタイルシートを改修。本文の内容が多い場合、縦のスクロールバーが表示されるようにした、など。

知人からアドバイスをもらって、縦スクロールバーが表示されるようにしました。

デスティネーションのスタイル

以前は、ソースXHTML文書から直接CSSへリンクするか、SayYes!のデフォルトスタイルシートを使うかしかありませんでした。ソースXHTML文書からプレゼン用のスタイルシートにリンクする方法は、代替スタイルシート(alternate stylesheet)を使い、media属性に"projection"と指定するものです。これには次のように問題があると思います。

  • このスタイルは変換後XHTML文書に適用される
    このスタイルシートは、SayYes!がソースXHTML文書から作成した変換後XHTML文書に対して適用される。スタイルシートのセレクター (selector)が選択する要素は変換後XHTML文書のものであって、ソースXHTML文書のものではない。このようなスタイルシートにソース文書からリンクを張るのは好ましくないのでは?
  • Blog記事をソースXHTML文書にする場合
    プレゼンのレイアウトを変えるために、その都度、Blogのテンプレートに手を入れるのは非現実的。つまり実質的にBlog記事に対しては使えない。

1番目は、変換後XHTML文書、つまりボキャブラリーコンポーネントが生成するデスティネーションに対して適用するスタイルシートは、ボキャブラリーコンポーネントに依存するのに、それをソースからリンクしておくのはおかしかろう、ということです。こう言うと、そもそもそんなこと、できるようにした前リリースがおかしかろうと (^_^;)…。

ただ、それに近いニーズが自分にあったわけで。これについては、もう少し考える必要がありそう。

このページは xfy Blog Editor を利用して作成されました。

April 26, 2007

PasTeX

PasTeX(ペーストエックス)というのを公開しました。クリップボードのXHTML文書フラグメントテキストを、xfyのDOMに変換してBlog記事に挿入する、xfy Blog Editorの拡張コマンドです。

  • タイトル:PasTeX
  • 開始日時:2007-04-25 06:00
  • 詳細:PasTeXは、システムクリップボードのXHTML文書フラグメントテキストを、xfyのDOMに変換してBlog記事に挿入する、xfy Blog Editorの拡張コマンドです。

Deep Reference extension for Firefoxなどでは、FirefoxなどのブラウザからCrossConceptやDeep Reference LiteへXHTMLフラグメントをコピペできるようにしました。同様に、ブラウザからBlogエントリに、構造化された情報をコピペできるようにしていきます。PasTeXはコピペのペ、貼り付ける側のツールです。

XHTMLフラグメントテキストをブログのエントリーに貼り付ける。

コピペのコピ、コピーする側のツールは、各ブラウザのDOMやらシステムインターフェースやらをいまさら勉強せねばならず、しんどいです (^_^;)。

このページは xfy Blog Editor を利用して作成されました。

May 6, 2007

Deep Reference bookmarklet 2 for Safari

HTMLページ中のリストを引用するブラウザ向けDeep ReferenceのSafari版を公開したほか、Firefox版やIE版でも別UI版や改修版を公開しました。

  • タイトル:Deep Reference bookmarklet 2 for IE
  • 開始日時:2007-05-05
  • 詳細:IE向けDeep Referenceブックマークレット。実行すると各リストにアンカーが表示され、それをクリックすることでリストを引用できる。
  • タイトル:Deep Reference bookmarklet for Internet Explore
  • 開始日時:2007-05-04
  • 詳細:
    • &(ampersand)と"(quotation mark)が、それぞれ最初の1文字しか実体参照に置き換わらない不具合を改修。
    • blockquote要素のtitle属性に設定するページタイトル、すなわちtitle要素の内容に"(quotation mark)があると、整形式のXMLとならない不具合を改修。"を実体参照に置き換える処理を追加。
    • blockquote要素のcite属性に設定するページのURLをエスケープするように改修。
  • タイトル:Deep Reference extension for Firefox
  • 開始日時:2007-05-06
  • 詳細:
    • &(ampersand)と"(quotation mark)が、それぞれ最初の1文字しか実体参照に置き換わらない不具合を改修。
    • blockquote要素のtitle属性に設定するページタイトル、すなわちtitle要素の内容に"(quotation mark)があると、整形式のXMLとならない不具合を改修。"を実体参照に置き換える処理を追加。
    • blockquote要素のcite属性に設定するページのURLをエスケープするように改修。
    • メニュー構成を変更。

次はOperaですかね。なぜSafariが先だったかというと、MacでSafariを愛用している知人にCrossConceptを使わせたいからです。

クロスブラウザとクリップボードへのアクセス

"bookmarklet 2"というのは、UIが異なる版という意味です。IE版の場合、これを実行すると、図のようにリストの最後の項目としてアンカーが表示され、ここをクリックするとそのリストを引用できます。

ブックマークレットを選択するとアンカーが表示される

Safariの場合は、このアンカーのテキストを、一部でもいいので、Safariの通常の操作でコピーすることで、該当するリストを引用できます。通常のコピー操作とは、たとえばCommand + Cですね。

ここにきて、ようやく分かってきたのは、Safariでは、JavaScriptからクリップボード(Pasteboardといいます)にデータを設定するには、ユーザーに通常のコピー操作をしてもらうしかないようだ、ということです。…ま、リーズナブルな設計だと思います。

一方、IEでは、もっと自由なタイミングでクリップボードにセットできます。

普通、こういうものは、同じ機能を同じUIで実現してそれを同一のHTMLページで提供するために、クロスブラウザのテクニックを駆使するのでしょう。しかし、ブラウザ用のDeep Referenceは、そうはなっていません。これについて、これ以上は、別の機会にあらためて。

…ということで、このページは xfy Blog Editor を利用してMacBookで作成しました。

Continue reading "Deep Reference bookmarklet 2 for Safari" »

May 16, 2007

CrossConcept 0.4.1

CrossConceptで、リストの作成・編集ができるようにしました。

  • タイトル:CrossConcept 0.4.1
  • 開始日時:2007-05-15 23:00
  • 詳細:リスト編集機能を追加。リスト貼り付け機能を強化。

これまでは、他で作ったリストを参照するだけでしたが、リストを新規に作成したり、編集したりできるようにしました。このようにして作成・編集したリストを、クリップボードにコピーして、XHTML文書に貼り付けることができます。

以前、リストを役に立てる局面には次のようなものがあると言いました:

他人の知識を使わせてもらう
チェックリスト、○○10原則、など。これは分かり易いと思います。
自分の考えを整理する
リストのカタチにしてみると、同じくリストのカタチになった他人の知識とクロスさせることで整理しやすい。特に、抜け・漏れに気づきやすくなる。

考えを表現するカタチとしての"リスト" (Xyndy .jp)

この「自分の考えを整理する」操作をCrossConcept上で行えるようになったので、CrossConceptのコンセプトを実体験しやすくなったと思います。

…つまり、ひとに説明しやすくなった、と。

当面の残作業は:

  • Operaで、リストをコピーする機能を実装。
    Deep Reference bookmarklet 2 for SafariみたいなもののOpera版です。
  • リスト要素、ul要素、ol要素、dl要素でなくても、取り込めるように。

    例えば:

    • h3要素などで見出しをつけた一覧
    • div要素を組み合わせて作った一覧
    • 表table要素で作った一覧
  • これらの英語版、英語記事…(^_^;)

それから、CrossConceptの機能追加としては:

  • 行列の役割を区別。今は行列を入れ替えると、該当するセルが追従して移動するだけですが、セルに表示される内容を連動して変えこともできるようにする。主客逆転版、みたいな。
  • 3次元の表。セルの内容にカテゴリーをつけたり。例えば、わたしの意見、あなたの見解、など。

このページは xfy Blog Editor を利用して作成したぜっ!

June 1, 2007

Multiple Panes

xfy Communityに掲載されているMultiple Panes for XHTML XVCDを改訂しました。…といっても、フレーム幅を保存して、次に適用したときにそのフレーム幅を再現するようにしただけですが。

  • タイトル:Multiple Panes 0.9.1
  • 開始日時:2007-05-30 23:00
  • 詳細:フレーム幅を保存するようにした。

リンク先のページが英語ですが(謎)、単純なツールなので問題ないでしょう(^^ゞ。

このページは xfy Blog Editor を利用して作成されました。

July 16, 2007

TOC Builder

CrossConceptなど、ツール紹介ページに目次を入れ始めました。で、面倒になってきたので、ツールを作りました。

  • タイトル:TOC Builder: 目次ビルダー 0.3.0
  • 開始日時:2007-07-11 22:00
  • 詳細:目次構築ツールTOC Builder(目次ビルダー)を公開。XHTMLページ中の見出し要素(h1要素、h2要素など)から目次を作って、カーソル位置に挿入したり、目次を再構築したりするツールです。

こんな感じ:

ul要素による目次

目次はリスト、ul要素を使って記述してます。style属性もclass属性も設定しません。素のままのul要素です。なので、思うように使いこなすにはCSSの知識が必要です。

目次の自動再構築

文書中の見出しを編集しても、これが作った目次は連動しません。それを実現するには、多分、こうしなくてはならない気がします:

  • 連動するために、独自のボキャブラリーを導入して、目次として、XHTML文書に埋め込む。
  • 最終的に文書を公開するときに、この独自ボキャブラリーによる目次を、XHTMLの要素などだけによる目次に変換する。

2番目の変換は必須です。これを怠ると、xfyを持ってない人には目次が見えません。しかし…。

そもそも、xfy上で読み書きするぶんには、これは不要です。xfy Personal ClientについているOutline Viewを使えばいいんですから。xfyを持ってない人のために目次機能を文書に埋め込むためのツールです。

つまり、結局のところ手動再構築が必要なんだ、ということで。

さて、ul要素の入れ子を使って目次が作れるなら…

このページは xfy Blog Editor を利用して作成されました。

Heading Operator

ul要素の入れ子を使って目次が作れるなら…」ということで、アウトラインエディターを作ろうと…してみました。研究会の予稿やら、学会のextended abstractなど、多少でも長文を書くようになるとセクション構造を編集したくなることがあります。

  • タイトル:Heading Operator
  • 開始日時:2007-07-14 14:00
  • 詳細:Heading Operatorは、見出し要素(h1要素、h2要素、…)に基づいて、XHTML文書を編集するツールです。

こんなことができます:

  • 見出し要素で区切った文書部分の移動
  • 見出しレベルの上下

こんな感じ:

で、ネーミングですが、作ってるうちに「アウトラインエディター」とは違う気がしたので「Heading Operator」という素っ気ない名前に。

このページは xfy Blog Editor を利用して作成されました。

August 28, 2007

CrossConcept 0.4.4

CrossConceptを改訂しました。

  • タイトル:CrossConcept 0.4.4
  • 開始日時:2007-08-28 20:00
  • 詳細:いくつかの改修
    • リストを編集する時のキャレット(カーソル)の動きを改修。
    • 説明付きリスト(dl要素)を編集しているときに、dd要素ないでShift + ENTERキーを押したとき、dd要素を分割していたのを、br要素を挿入するように変更した。
    • 説明付きリスト(dl要素)と、番号なしリスト(ul要素)や番号付きリスト(ol要素)との相互変換機能を追加。

このページは xfy Blog Editor を利用して作成されました。

October 14, 2007

SayYes! 0.3.4

SayYes!を改訂しました。

  • タイトル:SayYes! 0.3.4
  • 開始日時:2007-10-14 22:00
  • 詳細:
    • 強調表示モードを追加。
    • 多言語対応し日本語用のメニューなどを用意した。これによってインストール/アンインストール方法が変わった。
    • Atomフィードで複数のXHTML文書を統合したとき、いくつかのXHTML文書中にスライド表示する内容が存在しない場合に対応。

あ…、前回の改訂を告知してませんでした。

  • タイトル:SayYes! 0.3.3
  • 開始日時:2007-09-04 09:00
  • 詳細:
    • 基本文字サイズ変更のUI
    • 本文領域幅変更のUI
    • スライドの背景にSVGを設定できるようにした。
    • 複数のブロック要素をグルーピングするグループ・コンテナdiv要素を導入。
    • 表示するブロック要素の選択規則を、「子要素を選択する」から「子孫要素を選択する」に変更。
    • その他の改善

インストール/アンインストール方法

0.3.4からインストール/アンインストール方法が変わりました。多言語対応するために、xfyプラグインJARファイル形式で配布することにしました。

参考: 「XVCDでボキャブラリコンポーネントを開発する手順
2.4. ボキャブラリコンポーネントの利用」
http://www.xfy.com/jp/manual/dev/developer/1.5/howto/vc_develop.html#making_install

これより前のリリースでは、インストールは「…xfy Basic Editionをインストールしたフォルダ配下の scripts フォルダに配置し…」ましたが、これは「…xfy Basic Editionのツール - パッケージ構成メニューから、パッケージをインポート…」します。

SayYes!の狙い

前回と今回の改訂で、SayYes!の個性をだいぶ明確にできたかなと思います。

SayYes!は、プレゼンのその場だけ、あるいはそのスライド単独での品質よりも、関連する前後の作業や文書群全体の品質向上に重きをおいています。次のような場合に、このツールでプレゼンするメリットを感じてもらえるのではないでしょうか:

すぐプレゼンしたい、プレゼンだけのための資料作成作業を減らしたい
設計チーム内でのレビューのためだけにプレゼン資料を作るのは無駄な手間だ。体裁を整えるよりも、中身の充実の方が重要なはず。かといって、仕様書をワープロソフトでそのまま表示するのでは、ポイントを絞った議論ができない。
一群の素材から場や目的に応じて選択してプレゼンする
聞き手の関心や自分の目的に応じて素材を組み合わせてプレゼンしたい。あるプレゼンに向けて資料を修正をしたら、その修正を素材そのものに反映したい。

文字サイズや本文領域の幅をプレゼンしながら簡単な操作で変えたり、内容がはみ出す場合はスクロールできたりするのは、1つのスライドに収めるだけのために記述内容を削るような本末転倒な作業や、そのために事前に時間を割く無駄を排除するためです。

マウスを重ねるとリスト項目や強調部分(em要素)がハイライトされます。また、リスト項目を順次表示できます。これらも、元々のXHTML文書にある文書構造を、プレゼンという場に即して視覚効果に反映しているだけです。つまり、印刷時に強調する部分とプレゼンのときに強調する部分は同じハズで、そこはem要素などで構造化されているハズです。また、プレゼンのときに順次表示したい単位は、リスト項目や段落(p要素)として構造化されているハズです。

新しい道を造って新しい車で走ろう

SayYes!は、今まで置き去りにされてきた古くて新しい課題、プレゼンする機会の多い人なら誰もが感じているに違いない、上記のもどかしさを解決しようとしています。

このようにこれからも、xfyという新しい仕組みを使って、新しい価値を訴えていきたいと思います。

当然!このページは xfy Blog Editor を利用して作成されました。

October 30, 2007

CrossConcept 0.4.5 - 3軸の表 -

CrossConcept 0.4.5を公開しました。

  • タイトル:CrossConcept 0.4.5
  • 開始日時:2007-10-27 20:00
  • 詳細:
    • 3軸表を導入した。
    • 多言語化した。

3軸の表

3軸表では、1軸を共有して表が2つ並びます。こんな感じ:

3軸表の概観

図の例では、「シンポジウムのスコープ」軸を共有して「講師」x「シンポジウムのスコープ」表と「対象」x「シンポジウムのスコープ」表が水平に並んでいます。垂直にも並べることができます。この配置で、「対象」を横にらみしながら、「講師 C」と「Business agility」との関係を検討しています。

3軸といっても、3次元キューブではありません。

  • 主たる検討の対象は軸そのもの、すなわちリスト、すなわち概念です。セルにあてはめられる内容ではありません。
  • 2項関係を見るようにデザインしてあります。3項関係ではありません。

そもそも…

  • 人の考え方を写し取ろうとしているし、
  • 2軸の関係でも対称ではないだろうと見ています。

3次元以上のキューブの場合、描画の問題は解決できたとしても、そもそもどう解釈するのだろう?軸が増えるほど、その解釈が見えにくくなってしまい、結局、考えを写し取ったことにならないのではないか。

データ分析の場合、セルにあてはめられる内容が主語で軸は属性だから、軸が増えても属性が増えるだけで、まだマシでしょう。ポルシェはスポーティでクラッシーで外車で…、と。

では、スポーティであることと、クラッシーであることと、外車であることと、…であることとの関係は?

このページは当然!、xfy Blog Editor を利用して作成されました。

January 3, 2008

STORYWRITER 0.3.5公開

やっと…公開にこぎつけました。

  • タイトル:STORYWRITER 0.3.5
  • 開始日時:2008-01-02 18:00
  • 詳細:STORYWRITERの最初の公開。

しかも、いきなり0.3.5。作り始めたのは2007年5月22日。翌、5月23日に動かしたのが0.3.0。7月27日に第62回デジタルドキュメント研究会での「Parallel Narratology試論…」でデモしたのが0.3.4.1でした。

それからが長かった…。見かけ上、動作はさほど変わっていません。では何をしてきたのかというと、次の3点でのレベルアップだったと思います:

  • Webに普通にある文書との親和性
  • 用途の明確さ、機能の単純さ
  • 考えるプロセスとの親和性

Webに普通にある文書との親和性については、問題を整理して、STORYWRITERとして実装する範囲を割り切りました。どう整理したかは、第十回XML開発者の日で話させてもらった「Parallel Narratology平行物語を読み解くSTORYWRITER」を参照してください。br要素で整形した部分をp要素に変換するツールを作ったのですが、STORYWRITERとは別のものにして、…まだ公開できません、しないかもしれない。

「え?用途が単純?そうなのか…?」(^_^;)

「え?固有情報の削除?」(^_^;;)

このページは xfy Blog Editor を利用して作成されました。

January 6, 2008

CrossConcept Presenter公開

CrossConcept Presenterを公開しました。

  • タイトル:CrossConcept Presenter 0.3.0
  • 開始日時:2008-01-05 23:00
  • 詳細:CrossConceptでプレゼンするツールの最初のリリースです。

KICSS2007や第2回横幹連合コンファレンスでは、これでプレゼンしました。

CrossConceptは分析ツールであると思われることが多いようです。しかし、狙いはそこではないということが、CrossConceptのプレゼンモードであるこのツールによって、示せるのではないかと思っています。CrossConceptは分析よりも、言わばもう一つ下のレイヤーに位置するものです。従って、CrossConceptは分析に《も》使える、と思っていただくのがよいかと。

ある種のプレゼンは説得の場ですから、そこでは、単に事実を見いだしてみせるだけでは不十分です。自分の狙い、相手の状況、予想される相手の反応を踏まえて、内容をデザインする必要があります。この《内容をデザイン》するところで、CrossConceptが役に立つのではないか、と。

このページは xfy Blog Editor を利用して作成されました。

January 12, 2008

CrossConcept 0.4.6

  • タイトル:CrossConcept 0.4.6
  • 開始日時:2008-01-08 23:00
  • 詳細:操作性向上や不具合の改修:
    • リスト内、リスト間の項目コピー、移動。
    • セル中のエントリーにこれまでの概要に加えて「内容」も記述可能に。リストなどが書けるようになった。

ちょっと思い立って気軽に使う、会議中にスクリーン表示してみんなの前で使う、などなどの機会が増えてきました。

また、STORYWRITERやCrossConcept Presenterとコードを共有していて、そっちで使ってるうちに不具合を見つけたり、と。

そんなこんなで、少しずつ重ねてきた修正を反映した版です。

概念操作の外在化がテーマですから、なめらかな操作感ってのは肝ですね。もう一皮、二皮むけるひつようがありそうです。

このページは xfy Blog Editor を利用して作成されました。

Lynx Retriever

  • タイトル:Lynx Retriever 0.3.0
  • 開始日時:2008-01-11 22:00
  • 詳細:Lynx Retrieverは、リンク先の内容をリンク元に引き寄せて表示するツールです。

投稿論文とかツールのドキュメントをXHTMLで書いてますが、参考文献リスト、目次や「○○は、△△を参照」といった文書内リンクを使うので、作ってみました。

機械的なリンク切れチェックよりも、一歩踏み込んで、内容的にそこへのリンクでよいのか?などのチェックから、文字列程度の修正までできます。

ZIPにサンプルはつけなかったのですが、例えばこのページで試すことができます:
CrossConceptにおける概念操作モデルと知性・感情の工学的支援

昔のSTORYWRITER

というか、STORYWRITERの初期の実装ではクラス属性ではなくてリンクを使ってました。その復活版と言うべきかも。

つまり、Webはハイパーテキストによって、シリアルに読む以外の《読み》が可能ですが:

  • その場で実際にリンクをたどったら、スムーズに読めるのか?
  • あくまで戻ってくることを想定したリンクなのか、行くなら行きっぱなしを想定したリンクなのか?

などなどを意識しながら《書く》ことをやってみよう、というわけです。

文書全体へのリンク

現状、外部へのリンクには対応してません。外部のXHTMl文書へのリンクの場合、何をどこまで引き寄せればいいのでしょうね?

fragment識別子がついているなら、そのfragmentを持ってくれば役に立つような気がします。

そうでなければ、文書全体へのリンクなんて、行ったきりしばらく戻ってこない想定のリンクと思えます。つまり、部分的に引き寄せてもしょうがないだろう、と。

やればすぐにできるので、そのうちにやってみるかも。

このページは xfy Blog Editor を利用して作成されました。

January 20, 2008

hCalendar Marker 1.2.0

hCalendar Marker 1.2.0を公開しました。xfy Communityに掲載してもらってる「hCalendar Marker XVCD バージョン: 1.1」の改訂版です。

  • タイトル:hCalendar Marker 1.2.0
  • 日時:2008-01-19 23:00
  • 詳細:段落、リスト項目、コンテナ(div要素)などのブロック要素を詳細(description)に設定できるようにした。

前回の改訂から1年以上経ちました。放置してたのではなく、自分ではずっと使っています。STORYWRITER等ツールにはドキュメントを付けてますが、それらの改訂履歴にhCalendarで日付を入れています。

改訂内容はリストになってたりするのですが、これらをhCalendarのdescriptionに設定することにだけhCalendar Markerが使えません。これまではずっと、秀丸で開いて、XHTMLのソースを直に直してました(^_^;)

いいかげんいらいらしてて、時間をとってようやく機能追加できた、というところです。

ブロック要素にクラス設定するUIの概観ということで、今回は文書を構成する要素、特に段落(p要素)、リスト(ul要素など)、コンテナ(div要素)などのブロック要素にクラス設定するUIを作ったことになります。

マウスでダブルクリックするたびに、選択対象が親要素に移るというUIにしました。これって従来の(テキスト)エディタやワープロと同じですよね。

このページは xfy Blog Editor を利用して作成されました。

January 28, 2008

hMemo - hCalendarを利用するメモ帳

普段使ってるメモ帳を公開しました。

  • タイトル:hMemo 0.3.2
  • 開始日時:2008-01-27 23:00
  • 詳細:メモの日時にhCalendarを利用するXHTML形式のメモ帳です。

自分では、かれこれ1年以上使ってます。

自分が使うことしか考えてなかったのでドキュメントが不十分ですが、抱え込んでるよりはマシだろうと思えてきたし、仕様が安定してきたので公開しようと思います。

ちなみに《エロティックなメモ》ではありません (^_^;)

このページは xfy Blog Editor を利用して作成されました。

January 31, 2008

SayYes! 0.3.6

  • タイトル:SayYes! 0.3.6
  • 開始日時:2008-01-31 02:00
  • 内容:
    • 「強調表示モード」の「マウスを重ねて強調」と「順次表示」の設定をシステムに記録するように変更した。次回に起動したときにも設定が再現され、文書間でも設定が共有される
    • 「強調表示モード」で、「マウスを重ねて強調」と「順次表示」を同時に設定できるように変更した。

このページは xfy Blog Editor を利用して作成されました。

February 13, 2008

CrossConcept Positioning Designer

ポジショニングマップツールを作ってみました:

  • タイトル:CrossConcept Positioning Designer
  • 日時:2008-02-11 23:00
  • CrossConcept版のポジショニングマップ(positioning map)…のようなものです。軸そのものを検討の対象とするCrossConceptの趣旨を表すために、この作業をマッピング(mapping)ではなくデザイン(designing)と呼び、CrossConceptの冠をかぶせておくことにします。

合わせてCrossConceptも改訂しました:

  • タイトル:CrossConcept 0.4.8
  • 日時:2008-02-11 23:00
  • 詳細:クイックエントリーとリストの編集処理を改修した。

このページは xfy Blog Editor を利用して作成されました。

May 26, 2008

対訳エディタ改訂

久しぶりに、対訳エディタを改訂しました:

  • タイトル:対訳エディタ0.7.1
  • 日時:2008-05-25 23:00
  • 詳細:英日の対を括る要素として、div要素に加えて、span要素も使えるようにした。

もともとは単語帳で始まったアプリケーションですが、翻訳作業に使ってくださってる方がいます。今回、span要素も使えるようにしたのは、その方面の必要からです。

次のような構造に加えて:

<body>
  <div class="Taiyaku">
    <p xml:lang="en" lang="en">...English...</p>
    <p xml:lang="ja" lang="ja">…日本語…</p>
  </div>
</body>

次のような構造でも、対訳表示するようにしました:

<h3>
  <span class="Taiyaku">
    <span xml:lang="en" lang="en">Abstract</span>
    <span xml:lang="ja" lang="ja">概要</span>
  </span>
</h3>

このページは xfy Blog Editor を利用して作成されました。

June 7, 2008

対訳エディターにタグダイレクト機能

対訳エディターを改訂しました。

タグダイレクト機能

タグダイレクト機能とは、わたしが勝手にとりあえず付けた名前です。これから、他のツールにも組み込んだり、xfy Blog Editorの拡張機能版も作ろうと思います。xfy Blog Editor版の方が、融通がききそう。

タグダイレクト機能は、ソースにあたるタグ付きテキストをキー入力すると、カーソル位置に、それに該当するノードを作成してくれる、というものです。これを使うと、こんなことができます:

  • 入力がサポートされていない要素、例えばem要素などを入力できる。
  • style属性値などをダイアログを介さずに入力できる。

これだけだと、XHTMLのソースを直接書ける人向けの、オプショナルな入力手段って感じですが、もっと重要な用途はこれ:

  • ATOKと組み合わせて、タグ付き単語登録・入力したり、タグ付きで用語統制する。

XHTMLソースの知識は、辞書を作る人が持っていればよいのです。タグダイレクト機能で入力するときにちらっとタグが見えますが…まぁ、気にしない。

このページは xfy Blog Editor を利用して作成されました。

June 8, 2008

タグダイレクト

というわけで、タグダイレクト - Tag Direct for xfy Blog Editorを公開しました:

  • タイトル:タグダイレクト 0.3.0.20080607
  • 日時:2008-06-07 23:00
  • 詳細:タグダイレクトは、xfy Blog EditorのWYSIWYGモードで、ソースモードのようにしてタグを直接入力する拡張コマンド。ATOKを使って、タグ付き文章入力を簡単で正確にするのが狙い。

能書きはこちら: 「対訳エディターにタグダイレクト機能」。

けっこうシンプルなソース、正味100行弱。1日でできた。でも、ドキュメント書いたりで、さらに半日かかった…。

このページは xfy Blog Editorタグダイレクトを利用して作成されました。

June 10, 2008

xfy Blog Editorでも「タグ付きテキストを変換」: タグダイレクト

早速、要望をいただいたので、タグダイレクトを改訂して、xfy Blog Editorでも「タグ付きテキストを変換」ができるようにしました。

  • タイトル:タグダイレクト 0.3.1
  • 開始日時:2008-06-10 03:00
  • 詳細:xfy Blog Editorでも、「タグ付きテキストを変換」機能を使えるようにした。

実際、入力を始める前に、タグダイレクト開始コマンドを忘れることがあるんですね。この記事の最後の「…タグダイレクトを利用して…」を入力したときもそうでした。アンドゥーしてやり直しは悲しいので、打ち込んでしまったものは活かしたい、ということで。

タグダイレクトが一番役に立つのは、タグダイレクト自身の説明文だったりもします。

ところで…

こういう小ネタをもっと公開していこうかな、と思うこの頃。自分の仕事用の便利ツールはいくつかあるんですよね。

それと、こういったものの作りの解説記事も。

タグダイレクトの作り

マークアップとしてではなく通常の文字列として書かれたXML文書 -- それをタグ付きテキストとタグダイレクトの説明では呼んでいますが -- をxfyのDOMに変換するのは、function:xml-string-to-dom関数がやってくれるので簡単です。

タグダイレクトの課題は、その関数を利用するUIの工夫です。

ダイアログを出すのが最も簡単な -- 特にxfy Blog Editorで使うための -- 解だと思います。でも、師匠に「ダイアログはいやだ、できるだけ《近い》ところで処理して」と、ダイアログを却下されてしまったんですよね。わたし自身も、いやだし。で、いまの作りになっています。

このやり方は、他にも応用がきくと思うんですよね。…いつか、どこかで書きます。

このページは xfy Blog Editorタグダイレクトを利用して作成されました。

June 20, 2008

タグダイレクトで即変換

タグダイレクトに文字入力したらすぐに変換するコマンド・拡張コマンドを追加しました。

  • タイトル:タグダイレクト 0.3.2
  • 日時:2008-06-19 23:00
  • 詳細:文字入力されると即、変換するコマンドを追加した。

慣れてくると、IMEに単語登録したタグ付きテキストを入力する場合、IMEで確定してから、タグダイレクト側でもう一度ENTERキーで確定みたいなことをするのは面倒ですよね。これをスキップする「タグ付きテキスト入力」を開始するコマンドを作りました。

June 29, 2008

長いタグ付きテキストとTips: タグダイレクト

タグダイレクトを改訂しました:

  • タイトル:タグダイレクト0.3.3
  • 日時:2008-06-28 23:00
  • 内容:長いタグ付きテキスト入力時の振る舞いを改善。

また、長いタグ付きテキストの利用法など、使いこなしの工夫を「タグダイレクトTips」として少しずつ書いていこうと思います。

長いタグ付きテキスト

長いタグ付きテキストを入力しようとするとエラーになることがありました。それを改善した…つもりです。

で、ここからはコーディングの話なのですが…

実験。改行の入らない数百文字のタグ付きテキストを用意して、uxc:Tag_Direct実行してからコピペなどで一気に入力、その後でENTERキーを押さずに、取り消し(undo)してみます。すると、一気に戻らずに何回かに分けて入力した文字列が消えていきます。…う~む、見かけとは異なり、実際の処理では、何回かに分けて入力されているのではないでしょうか?それで、即変換するuxc:Tag_Direct_Right_Nowを使う場合には、全部入力される前の中途半端なタグ付きテキスト(XML)を解釈(パーズ)することになって、文法エラーになっているのでは?

…という仮説をもとに、変換の実行を500ms遅らせてみました。変換して挿入する部分をコマンドとして切り出し、instruction:postインストラクションで実行します。

これで、わたしのPCやMacでは、

  • 長いタグ付きテキストでも
  • また途中に改行が入っていても、

うまくいくようになりました。その代わり、短いタグ付きテキストでも、変換に一呼吸かかる感じになってしまいました。

いずれ、このあたり、自分の環境や用途に合わせて調整できるようにしようかと:

  • ユーザーが、変換実行の遅延時間を調整できるようにする
  • ユーザーが、変換キーを変えられるようにする。例えば、ENTERではなくて、Ctrl+ENTERにするとか。

実用に近づく反面、コードがだんだん判りづらくなりますね…(^^;)。そのうち、わたしの限界を超えると思います (^^ゞ。

July 5, 2008

Lynx Retrieverでリンクを逆に手繰る

Lynx Retrieverを改訂しました:

  • タイトル:Lynx Retriever 0.4.0
  • 日時:2008-07-04 23:00
  • 詳細:
    • 参照先に参照元を引き寄せて表示する機能を追加。
    • 参照先・参照元の範囲を広げる・狭める操作を変更。アイコン[+]、[-]をクリックするようにした。
    • 動作を安定させることができていないので、固定配置表示と絶対配置表示に蓋をして、使えないようにした。

文書の整合性や構成

自分のを実験台にします。例えば、次のプレゼン資料「文書内容の操作に見るマークアップの効果 - 解説 -」で使われている「通常の意味の文書」ということばの用法を見てみます。

  1. まず、Lynx Retrieverをxfy Basic Editionにセットアップします。
  2. URL「http://www.yamahige.jp/documents/2008-06-06_SigDD_66/20080606-SigDD-66_v3_20080704.html#term-ordinary」をコピーして、xfy Basic EditionのブラウズバーのURL欄に貼り付けて開くと、「通常の意味の文書」を説明した…と著者が思ってる箇所が表示されます。
  3. ボキャブラリーコンポーネントを「Lynx Retriever」に変えます。
  4. さっきの部分に⇒]が表示されています。ここをクリックします。
  5. すると、この部分へリンクしている、つまりこの部分を参照している6箇所が表示されます。これらは、文書内に登場する順番に並んでいます。
  6. 各部分の左側の[+]をクリックすると、そこに引き寄せて表示する範囲が広がります。[-]をクリックすると狭まります。右肩の[x]をクリックすると、引き寄せた全体が消えます。

で、どうすかね…。こうして見ると、「通常の意味の文書」という概念がまだまだすんなりとは呑み込めない気がします。それは、「通常の意味の文書とは、○○である。」という直接的な書き方をしてる部分がないから、かもしれません。この書きっぷりを良しとするかしないか…。

…ってなことを、検討する役に立てるためのツールなんです、Lynx Retriever。

つまり整合性といっても、数字が合ってるか?とか、リテラルに同じ内容を機械的にリンク挿入するとか、そういう整合性ではありません。もちろん、それはそれで重要な整合性です。ここでは、意味的な整合性をさしています。

また、内容の構成といっても、目次的な構成ではありません。概念をどのように導入して、どう使っていくか?といった構成ですね。

今後

それらを踏まえると、引き寄せた箇所に直近の見出しも合わせて表示した方がよいかも。SayYes!でやってるみたいに。

また[+]や[-]で、引き寄せて表示する範囲を広げたり狭めたりできますが。このアルゴリズムも改善の余地が…かなり広いですね(^_^;)。いまは、[+]をクリックすると親要素に広がるので、いきなりページ全体に広がったりします。これを、兄弟姉妹の範囲で1つずつ広げるとかしないと。

July 6, 2008

対訳エディターにLynx Retriever機能を

対訳エディターを改訂しました:

タグダイレクト機能はATOKを使って用語を挿入するため。Lynx Retrieverは用語の用法の整合性を見るのが目的です。

機能を統合して使う

自慢。

Firefoxで拡張機能をアドオンするようなものですね。これを用途・目的別にやる、と。

もともと対訳エディターもLynx RetrieverもタグダイレクトもXHTML文書を対象にしているので、何もしなくても同じ1つの文書に対してこれら機能を使うことができます。

でも、より使いやすくなるように、対訳エディターの並行表示ビューに機能を統合しています。それぞれ、対象とするソースボキャブラリーはXHTMLと同じですが、各機能はそれぞれ固有の名前空間の基に実装しています。なので、わりとあっさりと統合できます。

具体的には、テンプレート(xvcd:template要素)には、それぞれ固有のmode属性を付けているし、コマンド(xvcd:command)や関数(xvcd:function)も固有の名前空間に属しています。このため、衝突する心配がありません。xvcd:importするスクリプトファイルを切り替えたりして、機能を上書きすることもやってます…これはちょっと危険(^_^;

August 14, 2008

CrossConceptをXHTML形式へ: 近況

CrossConceptをXHTMLベースにすると宣言したのが2月、はや6ヶ月、…まだできてません。仕様を決められない。時間がとれない。

これまでのCrossConceptは、コンセプトを示すツールとしては役割を果たしてると思う。1つで、あれこれ様々な可能性を示せる。でも、そのぶん抽象的すぎる。せめて、「箇条書きと連動する表エディター」くらいにはしないと。

データ構造は、当初はhAtom方式を考えていました。今は、いわば「Table rendering by non-visual user agents」方式で実装を進めてます。

hAtom方式
もともとAtomに準じて設計していたので、hAtomに倣えばよいと。
Table rendering by non-visual user agents方式
th要素、td要素のscope属性、headers属性、axis属性を使えば、所望のデータ構造を表現できるのではないか…?

次のようなCrossConceptの表を例に、検討の過程をダイジェストしてみます。

対象

  • Webデザイナー

トピック

  • Web 2.0

Webデザイナー

Web 2.0

とても適した演題になるでしょう。

図 CrossConceptの画面例

hAtom方式

hAtom方式では、表のセルに表示される内容は、例えば次のように表現するのだろうな:

<ul id="target">
 <li id="CIO">…</li>
 <li id="WD">Webデザイナー</li>
 <li id="OFFICE">…</li>
</ul>

<div class="hentry">
 <h3 class="entry-title">◎</h3>
  <div class="entry-content">
   <p>とても適した演題になるでしょう。</p>
  </div>
  <p>Related to: <a rel="bookmark" href="#WD">Webデザイナー</a></p>
  <p>Related to: <a rel="bookmark" href="#Web20">Web 2.0</a></p>
</div>

これを解釈して、CrossConceptが上図のような表として表示します。

…つまり、これだと、CrossConceptが表形式で表示しているコンセプト間の関係が、通常のブラウザ上では表形式では見えない。それはいやだ。

じゃぁ、最初から表にしてしまえばよいのでは?次はどうか?

<td class="hentry">
 <h3 class="entry-title">◎</h3>
  <div class="entry-content">
   <p>とても適した演題になるでしょう。</p>
  </div>
  <p>Related to: <a rel="bookmark" href="#WD">Webデザイナー</a></p>
  <p>Related to: <a rel="bookmark" href="#Web20">Web 2.0</a></p>
</td>

これだと、<a rel="bookmark" href="#WD">Webデザイナー</a>の邪魔さが際だつ。

でも、もう表になってるんだから、対応する見出しを指すリンクは不要なんじゃないの?これでどう?

<td class="hentry">
 <h3 class="entry-title">◎</h3>
  <div class="entry-content">
   <p>とても適した演題になるでしょう。</p>
  </div>
</td>

いや、リンクは必要。リストから「Webデザイナー」という項目を削除したら、連動して表の列を削除できなくては…。

Table rendering by non-visual user agents方式

HTML 4.01の「11.4 Table rendering by non-visual user agents」は、まるでCrossConceptのために書かれたかのよう。CrossConceptは、思いっきりvisualなuser agentだけど。「non-visual user agents」を「CrossConcept」に置き換えて読むと、scope属性、headers属性、axis属性を使うのが正しいと思えます。

<ul id="target">
 <li id="CIO">…</li>
 <li id="WD">Webデザイナー</li>
 <li id="OFFICE">…</li>
</ul>

<th id="TH-WD" axis="target">
 <a href="#WD">Webデザイナー</a>
</th>

<td headers="TH-WD TH-Web20">
 <p>◎</p>
 <p>とても適した演題になるでしょう。</p>
</td>

headers属性はIDREF型なのですね、HTML唯一の。

axis属性も実は同様なのかも。CrossConceptはこれを、カンマ区切りのIDREFもどきとして扱うことにします。

HTML 4.01では次のようになっているので、この扱い方はCrossConcept固有のモノとなりますが、規格違反にはならないでしょう。

  • axis = cdata [CI]。つまりcase-insensitive
  • The value of this attribute is a comma-separated list of category names.
  • This specification does not require user agents to handle information provided by the axis attribute, nor does it make any recommendations about how user agents may present axis information to users or how users may query the user agent about this information.

HTML 4.01のaxis属性が、大文字小文字を区別せず、また区切りにカンマを使うのは、speech synthesizersが読み上げることを想定しているから、かも。

要求定義と暗黙的に知る過程

こうして検討する過程で、自分がCrossConceptを何だと思っているのかが分かってきます。これを外したらCrossConceptじゃなくなる、そういうものは何か?

また、CrossConceptを日常的に使ううちに感じるもどかしさを整理してみると、XHTMLベースに移行することで達成したいことも見えてきました。

  • CrossConceptで表に見えるモノは、ブラウザでも表に見せたい。印刷も任せたい。
  • 素のXHTMLのリストと表から、CrossConcept用の構造を構築できるようにしたい。

ところで…、ここで、少し話題を変えます。

データ構造が決まるとき、別の何かも決まるのですね。同時進行で、寄り添うように決まる。でも、両者の論理的な関係は、後者の「別の何か」を前提にして前者の「データ構造」が決まる、というものです。「別の何か」が「データ構造」の副産物であるとか、副次的であるとかいうのは違う気がします。

このような「決めごと」「知ること」の構造を踏まえて、来週、「知識再利用システムならびにその展開」という企画セッションでお話しする予定です。

September 8, 2008

見出しエディター 0.3.1

昨年の7月に「Heading Operator」として公開したものを改訂して、「見出しエディター 0.3.1」として公開しました。

特に、これという大きな修正はしてません。ただ、自身を2ペインにしたり、見出しの文字が修正できたりと、これまで自分で使ってて、少しずつ溜めてた改善を反映しました。

September 14, 2008

コンテナエディター 0.3.1

コンテナエディターを公開しました。ここで報告する前に修正が入って、0.3.1です。

  • コンテナエディター 0.3.1
  • リリース日:2008年9月13日(土)
  • 主にコンテナ(div要素)のツリー構造やクラス設定を編集するツールです。リストなどブロック要素に対しても使えます。

    • ドラッグ&ドロップによるコンテナの移動・コピー
    • 複製: IDを更新して、IDを削除して、構造のみ
    • クラスの編集
    • 要素の削除

コンテナ(div要素)は、要素をグルーピングするのに使われます。わたしもよく使います。でも、WYSIWYG編集では、その存在が見えにくい。いくつか階層が重なると、選択して、クラス設定を変えて…という操作がまどろっこしい。そういうときは、WYSIWYGよりも、昔ながらのXMLエディターのようなツリー型で編集したくなります。

用途はこんなところ:

初めはブロックエディターと呼んでましたが、XHTMLコンポーネントでは、「囲む」操作が「コンテナ」と結びついているので、コンテナエディターと呼ぶことに。

アウトラインエディターか?

1年ちょっと前に見出しエディターを -- 当時はHeading Operatorと呼んでいた -- アウトラインエディターと呼ばなかった理由は2つ:

1つは、これが頭にあったから。見出しエディター、コンテナエディター、どちらかをアウトラインエディターと呼んでしまったら、もう一方の名前に困るだろう、と。

もう1つは、見出しの並びや章節の階層構造だけが、文章のアウトライン -- 概略、概要 -- ではないだろう、ということ。アウトラインを、なんらかの《構成》、《構造》を指すものだと限定しても。例えば『藪の中』のアウトラインは、STORYWRITER 2が示すようなものではないか。

YAMAGUCHI Taku
(FAMILY Given)

About software

This page contains an archive of all entries posted to Xyndy .jp in the software category. They are listed from oldest to newest.

document is the previous category.

Many more can be found on the main index page or by looking through the archives.