EBtシェル 2010年6月13日版
EBtシェル 2010年6月13日版.zip」をダウンロード

アクセスしてきたユニークユーザをリスト化し、アクセス権を制御するためのパーミッション管理機能を追加しました。
ユーザを「管理者ユーザ」「一般ユーザ」「書き込み禁止ユーザ」「クローラ」に分別し、新しいユーザさんは「一般ユーザ」としてリストに追加します。管理者ユーザがアクセスログを表示すると、エージェント名/リモートホストと一緒にリンク付きのユーザ名が表示され、ユーザ情報編集パネルを呼び出せます。
ちょっと前に海外のドメインからスパムな書き込みがあったので、そうしたアクセスに機能制限を加えるために追加した機能です。
ローカルCGIとして利用する場合は無条件に管理者ユーザとして扱われますので、ローカルで使う方に不便を強いるものではありません。

このサイトでは、一般ユーザの皆さんに対して機能制限を行うようなことはできるだけしないつもりでしたが、設定画面の利用とファイル削除は制限させていただきました。
あと、既存メモの書き換えは書き込んだ本人だけができるようにし、それ以外のユーザさんの書き換えを制限しています。
その機能の実現のために、メモ本文の続きに更新時刻と作成したユーザのIDを追記するようになっています。(ローカル利用の場合は追記しません)

また、この機会にブログ風のコメント欄を設置しました。
コメントといっても、書き込んだコメントは新規メモとして作られ、そのメモファイル名をメモ本文の続きに追記します。
「このメモとのリンク」の内容と関係なく、本文内に追記されたメモの内容を読み込み時に展開表示してコメントとして見せる仕組みです。
追記部分はEBtシェルで見る分にはコメントとして整形されて見えますが、同じテキストをEBtやEBtW等で見ると
タイトル
本文
----------lastupdate----------
/2010/06/07000940 ←更新時刻
投稿者ID
----------comment----------
/2010/06/04220658000 ←メモファイル名
投稿者ID
というフォーマットになっています。はい。EBtの流儀からいえば明らかに邪道です。

ただ、EBtシェルにコメント欄を追加するにあたって、コメントもメモとして扱うのがEBtの本懐だという思いがあったのと、メモ同士の主従関係をこれで表現できるかなと思ったんです。
あるメモを親メモとしてそこに子メモを作るというEBtのデフォルト挙動に沿うかぎり、二つのメモの関係は対等ではなく明らかに文脈上の主従関係があるものだと思うんですが、相互リンクしてしまうとそれがわかりにくくなるんですよね。
今回はそれを、親メモの方に子メモのファイル名を追記するという形で表現したわけですが、新規メモ作成時に子メモの方へ親メモファイル名を追記するのもアリですね。どうせ邪道なら。

文脈上の主従関係を表現する方法としては「リンク一覧の表示順を編集する機能」というのを元々は考えていたんですが、そちらはまだ実現していません。
先頭行を親メモへのリンクを置く定位置として、その下のリンクを重要度などで並べ変えられる、というようなイメージです。
そっちの方がうれしいというEBtユーザさんもいらっしゃるかも知れませんね。
ちなみに、現状のEBtシェルでは「このメモとのリンク」のリンク一覧は古い順にソートして表示しています。自分でも忘れているような古いメモほど思い出す価値が高い、という考え方からです。

あと、手書きメモ機能を実現すべく、商用以外完全フリーだという手書きフォームのJavascriptライブラリ「inputdraw.non-commercial.package.v1.5」をパッケージに同梱し、ファイルメニューにも「手書きメモを登録」という項目を追加しているんですが、ルーチンの方はうまく動かずまだ実装できていません。

Posted : 2010/06/13 17:31:53 上垣内


Comments (2)

2010/06/13 21:58:35 上垣内

「EBtシェル 2010年6月13日版」へのコメント

「EBtシェル 2010年6月13日版」
http://webspace-kk.sakura.ne.jp/myfolder/cgi-bin/ebtshell/ebtshell.cgi?page=/2010/06/13173153000
をごらんください。

このメモがコメントとして入っています。
2011/03/08 17:46:21 mura

Re: EBtシェル 2010年6月13日版

WindowsMobile版のEBtWMとデータを共有しながら使わせていただいています。

そのなかで自分なりに工夫したところをいくつか…。

EBtWMではindexファイル中に空行が存在するとクラッシュしてしまうようで、EBtShellでtrashにリンクした際にindexに空行が入ってしまうのを改めました。

また、メモ複製の際にlocation.rewriteで2つのリンクを連続してアクセスするようになっている部分ですが、当方の環境ではうまく動作せずメモが複製できない場合がありました。多分ブラウザの動作にサーバからのレスポンスが追いついていないからではないかと。
2つ目のlocation.rewriteを削除し、cgi側でコピー後のメモにリダイレクトするように改めたところ正常に動くようになりました(cgiでコメントアウトされていた部分を戻しました)。

Comments (2)

2011/03/12 17:02:43 上垣内

Re: Re: EBtシェル 2010年6月13日版

muraさん、コメントありがとうございます!嬉しいです!

>EBtWMではindexファイル中に空行が存在するとクラッシュしてしまうようで
EBtシェルのデータをEBtWMに読ませると頻繁にクラッシュするので、EBtWMの利用は諦めてずっとEBtシェル1本で来てたのですが…そういうことだったのですね。

本家おかださんのAndroid版EBtでもEBtシェルのデータを読ませると同様にクラッシュするので、原因はEBtシェルの方にある→indexファイル中の空行が原因ではないか?と目星をつけていたのですが、muraさんのコメントでハッキリしました。

こちらの方でも修正を加えて後日リリースします。

ありがとうございます。
2011/03/12 19:55:44 おかだ

Re: Re: EBtシェル 2010年6月13日版

EBtのおかだです。

あぁ、なんかEBt本体の頑健性が低くてご迷惑をかけているみたいですね…
こちらの方も空行でもトラブらないように対応入れる方向で検討します。(時間とらないと…)
両方で対応すれば、それだけ頑健になりますから。

Comments (1)

2011/03/13 17:27:21 おかだ

Re: Re: Re: EBtシェル 2010年6月13日版

うーん、空行あっても落ちない…空行の条件を間違えている?
でもまぁ、せっかく空行あったら読み飛ばすルーチンを作ったので、Androidマーケットに今から登録します。

Comments (1)

2011/03/14 23:18:03 おかだ

恐縮です。

おかださん、コメントありがとうございます。
EBtシェルの不具合に、本家EBtの方で対応していただくなんて…恐縮です。
早速アップグレードして使わせていただきます。
こっちのEBtシェルの方も、不具合データを一括修正するルーチンを追加して早くリリースしなければ…
このメモとのリンク
最近のメモ