nDiki : Wiki

2007年4月3日 (火)

WiKickerJSON でのページ出力機能を追加

最近は DiKicker ばかりに手を入れていたが、久しぶりに WiKicker の改良も行っている。 しばらく前から実装を始めていた JSON 形式での出力機能が今日完成。

今までは WikiPage について

  • HTML 形式による出力
  • Wiki 文法で書かれている生テキスト形式による出力

という2つの出力形式を持っていたので、JSON が加わることで3つめとなる。

サーバ側で WikiPage の構文解析まではやる

クライアントサイドの JavaScript でページの内容に合わせて様々な処理をできるように、サーバ側で構文解析まではしてあげるというのが主な目的。

JavaScript でまたパーサを書いてメンテしていくのも大変なので、その部分はサーバでやってしまおうかと。 構文解析した結果の解析木を JSON 形式で返して、JavaScript 側であとはお好きにという形。

CPAN にある JSON モジュールを使用

サーバ側の Perl プログラムには、構文解析をして解析木を作れるようになっている。 この解析木から Visitor パターンで JSON 形式を生成していく。

依存モジュールを増やすことを避けるべく、最初は自前で JSON 形式に変換していこうと思ったのだがやっぱり面倒だった。 ということで CPAN にあるモジュールをチョイス。

JSON 関連では JSONJSON::Syck、JSON::PC などがあるが今回はインストールのしやすさを考えて pure Perl モジュールとして実装されている JSON を採用することにした。

Visitor クラスで解析木を無名ハッシュ/無名配列のツリーに変換して、JSON モジュールに流しこめば OK。

 use JSON;
 my $json = JSON->new(pretty => 1);
 my $js = $json->objToJson($tree);

WiKickerフレームワークにはフォーマット別に出力を切り換える機構があるので、これに JSON を追加して application/json で送るようにして完成。

ちなみに残念ながら JSON 1.07 は Perl 5.005_03 では make test が fail するので、NaneyOrgWiki では使えない。

スポンサード リンク
[ 4月3日全て ]

2007年8月23日 (木)

無制限 HTML タグ付けブロックを使って nDikiGoogle Maps を貼る

Google Maps が ID を取得しないでも簡単に自分のサイトに貼れるようになった。 Google Maps で表示される HTML コードをページに埋め込めば、好きな場所の地図を貼ることができる。 これは嬉しい。

早速 nDiki でも貼りたい。

しかし WiKicker という WikiEngine をベースとした DiKicker を使っている nDiki では、現在のところ直接 HTML コードを使えるようにしていないのである。

HTML タグ付けを許すのは嫌」というスタンスできたのだが、他のサービスを貼るという魅力にはやはり勝てないな。 HTML 直書きを許すのは大局的にはデータ活用性などで好ましくない部分もあるが、各種サービスを活用できないで利用価値が下がるのは本末転倒なので、わかった上で使うということで。

ということで nDikiHTML タグ付けブロック機能を有効に設定。

ちなみに現行では HTML::Scrubber ベースで、使えるタグ・属性に制限をつけるフィルタしか用意してなかった。これだと Google Maps のコードがそのまま貼れない。 ということで「DiKicker」および「書く人が限定されているような Wiki」での利用を想定した無制限にスルーするフィルタモジュールを新規追加。

これで Google Maps を貼れるようにした。

では早速。


拡大地図を表示
[ 8月23日全て ]

2007年11月23日 (金)

最近の Twitter ステータスを nDiki最近のさえずり」ページに自動表示

11月9日から「Twitter ステータスを nDiki サイドバーに表示」しているのだが、それで使っているスクリプトにちょっと手を加えて「最近のさえずり」という nDiki ページを自動生成/更新するようにした。

サイドバーRSS フィードと同じく最近の20件を表示するのに対し、最近のさえずりページには数日分表示するようにした。

ここ最近は Twitter のステータスをとりまとめて、ライフログ的に nDiki に上げているのだが、今までは Twitter Web ページやサイドバーの部分から手作業でコピーして日時やリンクを整形していたので面倒であった。

今回の(30分毎に)自動更新するページは最初から WiKicker / DiKicker 用の Wiki 文法で出力している。 なので、これからはこの自動生成ページから必要なものだけを抜き出して貼り付ければよい。 これで楽ちんになるはず。

ほぼ自分用。自己満足。

[ 11月23日全て ]

2008年1月7日 (月)

ケータイ用にプライベート Wiki を設置

パケ・ホーダイ契約してから、MovaTwitterRTMモバイル Gmail などで携帯電話を活用するようになった。そんななか、決定打がないのが、ノートアプリケーション。電車の中などの隙間時間に、この nDiki の 下書きなどはケータイでできるようにしたい。

Google ドキュメントが使えればいいが、前年ながらまだiモードでは使えない。 メールベースでやる手もあるが、メモには良いものの再編集を繰り返したいようなものに難がある。

ということで自前でプライベート Wiki を立てそこに書き込んでみることにした。

iモードから WiKicker

使う WikiEngine はいつも通り自作の WiKicker

書き込んだテキスト内のキーワードを nDiki自動リンクさせることができるので、パーソナルナレッジベースとして自分にとっては一番便利。書式も同じなので、Wiki に書いた下書きを、そのまま nDiki で使える。

肝心のケータイからの書き込みだが Ajax 等凝った技術を使っていないおかげで、問題なく FOMA 端末(D703i)からiモードで読み書きできた。WiKickerUTF-8 でページを出力しているが、網側か端末側の処理かは知らないが今のところ問題なし。

なお認証は簡単に Basic 認証で済ますことにした。 安全とは言えないがそれほど重要なデータを置くわけではないしいいかな。 cookie は必要ないし WikiEngine に手を入れなくてもよいので、すぐできるのはコレ。

ユーザ名とパスワード付きのトップページ URL を端末でブックマークしておけば1発でアクセスできる。

Google Mobile Proxy 経由で使う

これでケータイ(と PC)から使えるプライベート Wiki を設置できたわけだが、なにぶんもともとケータイをサポートしている WikiEngine ではないため、長いページの分割機能などはないのがちょっと不安。PageName で生成される URL が長くなった時の振る舞いもちょっと不安。

そこで Google Mobile Proxy (http://www.google.co.jp/gwt/n) 経由で Wiki を使うことにした。 ページを携帯端末向けに変換してくれる proxy で、Basic 認証もできるしフォーム の POST もできる。

Google Mobile Proxy 経由で見たページ内のリンク先も全て自動的に proxy 経由になるので、 PC 向け Web ページの URL を書いておけばそのまま携帯電話で見ることができる。

安全のためか、比較的短い一定時間立つと認証の再確認画面が表示されてしまうが、ユーザ名とパスワードを入力すれば、セッションは継続される。 テキスト編集に時間がかかってしまうと POST する時にひっかかってしまい認証の再入力がちょっと面倒だが、再認証が通れば POST リクエスト自体は有効で書き込みがロストすることはないようだ。

しばらくはこれで読み書きしてみよう。

[ 1月7日全て ]

2008年3月30日 (日)

Google ドキュメントソフトウェアかんばん

ソフトウェア開発見える化としてソフトウェアかんばんの良さは実感しているのだが、分散開発ではさすがに「情報カードで」というわけにいかず実行しにくい。

今回の分散開発プロジェクトに向けていろいろ考えた結果、Google ドキュメントのスプレッドシートを使ってソフトウェアかんばんを遠隔共有してみようと思う。

他の検討候補

TRICHORD を使ってみたいのだけれど予算の問題が。 検討したのは以下。

  • TRICHORD - 本命。使ってみたいが予算が。
  • Firefox + Internote (light-board.com ライク) - カード感は十分。しかし共有に難。
  • 影舞用に新しくソフトウェアかんばんテンプレートを作る - 影舞を使い慣れているという点では○。ただストリーカードとタスクカードをどう扱うかが課題。
  • Wiki - 以前やって失敗した。
  • XPlanner - インストールと学習が手間。それと開発止まっている?
  • その他 Agile Project Management Tool - カードメタファで良さそうなのはあるが、予算が。
  • Google ドキュメント プレゼンテーション - 矩形をカードにしようとしたが文字は別オブジェクトで書かなければならず×。文字の背景を設定するというのも試したが見栄え・操作性が良くなかった。

スプレッドシートだとカードっぽさが薄れるが、共有・同時編集という点では安心して使えるし最大行数的にも OK。 一番運用しやすそうだということでこれでいくことにした。

スプレッドシートの作成

以下のようにスプレッドシートを作る。

  • 1シート目はインフォメーションシートにする。ソフトウェア概説・かんばんルール・通信事項などを書くのに使う。
  • 2シート名以降をかんばんにする。複数ソフトウェアならシートを分けてもよいかもしれない。
  • かんばんシートE列の背景を「条件をに応じて変更」で本日より前だと赤くなるように設定する。
  • かんばんシートF・G・H列の背景を「条件に応じて変更」で @ と書くと背景がそれぞれ赤・黄・青くなるようにする。

カードの書き方

内容
Aカード番号をつける。
ストーリーカードは S番号。タスクカードは S番号T番号とする。
Bカード作成日を書く。
Cストーリーカードの時にストーリー名と作成者名をかく。
Dタスクカードの時にタスク名と作者名をかく。
E期日をかく。
FTODO の時に @ とかく。DOING に移行した時は @ を消す。
GDOING の時に @ と開始日、担当者の名前を書く。DONE に移行した時は @ を消す。
HDONE の時に @ と終了日、担当者の名前を書く。
I備考欄

TODO、DOING、DONE 列は1列にまとめることもできるが、ちょっとは「かんばん」っぽくなるかと思って分けることにした。

運用

  • カード番号は重複しないように。
  • カードの状態にあわせて @ を書き換えていく。
  • DOING から TODO に移る時には、開始日と担当者名を消さないで残しておく。
  • 列単位でソートしないこと。
  • タスクの粒度はできるだけ揃える(例えば半日~1日にする)。

課題

  • カードが増えた時に使いにくくならないか? 終わったカードを別シートに分けるルールなどを考える。
  • タイムボックス等にあわせて並べ替える時の手間。
  • カード番号が手動。
  • 集計について考慮していない。
[ 3月30日全て ]

2008年7月23日 (水)

2008年夏の GTD 運用ツール

ほぼ日手帳使用再開したんで、GTD をサポートしているツールを久しぶりに書き出してみる。 今後は以下の体制で。

RHODIA No11inbox
Remember The Milk (RTM)inbox (携帯電話からメールで入力)、次の行動リスト(リピートものと買い物リスト)
システム手帳いつか/もしかしたらリスト(願望系)
Gmail外出先参照ファイル (KB ラベル)
Google カレンダー時間を決めたスケジュール (マスター)
ThinkingRock (TR)inbox、次の行動リストプロジェクトリストいつか/もしかしたらリストtickler file
ほぼ日手帳時間を決めたスケジュール(コピー)、tickler file次の行動リスト(Personal なものを ThinkingRock からプリントアウトしたものを挟み込む)

inbox

キャプチャツールとしてのRHODIA No11 は使用開始(記事)以来3年ほど経つが健在。手書き時のキャプチャはこれ。 移動中で片手で入力したい時はケータイから Gmail フィルタ経由で Remember The Milk (RTM) 受信箱へ。

これらは ThinkingRock (TR) の inbox に投入される。PC に向かっている時は直接 TR へ。

次の行動リスト

基本は TR 上。階層化したプロジェクトの下に直接アクションを書いておけるのが非常に便利。それと次の次の行動を一緒にプロジェクト上に inactive として作成しておくと、前の行動を完了にすると同時に自動的に ASAP にしてくれる機能がある。これのおかげで思いついた先々の次の行動を積んでおけるのでグッド。

Personal なアクション・自宅がコンテキストなアクションについては、PC レスで参照したいので今のところデイリーで TR から PDF エクスポートして A4印刷手帳に挟み込んでいる。これは工夫の余地あり。

ケータイから参照できるようにするため、買い物リストは RTM に。

ルーチンワークなどのリピート系も RTM

プロジェクトリスト

TR に全面的に移す予定。一部まだシステム手帳に残っている。

待つリスト

これも TR に全面的に移す予定。一部まだシステム手帳に残っている。

スケジュール

Google カレンダーがマスター。

  • 日時変更が容易。細かい作業予定もストレスなく入れておける。
  • ケータイにリマイダメールを送れる。
  • 共有/公開できる。
  • 済んだイベントをログ化しておける。

という点で紙ベースより便利。

ポイントメント等の重要項目は、手書きでほぼ日手帳と同期する。 これはミーティングや自宅など PC レスでさっと確認できるようにしたいため。 同期の手間の削減と、同期漏れをないようにするのが課題。

いつか/もしかしたらリスト

Someday/Maybe については、指定した期日に再度通知させたい場合はやはり TR に入れておくことにしよう。 ただ、行きたい場所リストや願望的なリストは紙で眺めた方がよさそうなので、これはしばらくシステム手帳に。

参照ファイル

これはそれぞれ適宜。 システム手帳に書いておいてもほとんど参照しなかった。 ケータイ用プライベート Wiki (記事)も結局使わなくなった。 TR の Reference も多分使わない。

外出先で参照する可能性のあるメモは、Gmail 上に KB (knowledge base の意で) ラベルをつけて置くようにしている。 ケータイから参照するのにはまずはこれで。

tickler file

tickler については今までほぼ日手帳/ダイアリーのリマインドしたい日にメモしておくことで実現していた。これは継続。

TR の Someday/Maybe からの Tickle on も確実に inbox に入れてくれるという点で良さそげなので、一部使ってみることにする。

システム手帳について

ほぼ日手帳復活なので、システム手帳は不要にしたい。 しかし

などの数年スパンで固定的あるいは逆に差し替えがおきるものについては、綴じ手帳だと融通がきかないのでやはりシステム手帳を潰せないんだよなあ。 これも今後の課題。

[ 7月23日全て ]

2009年12月23日 (水)

www.naney.orgさくらのレンタルサーバへ移転

naney.org メールサーバの移転に次いで、Web サーバの移転作業。

静的コンテンツのアップロード

現行 Web サーバUnisonファイル同期している Web コンテンツを、さくらのレンタルサーバUnisonファイル同期

WiKickerインストール

nDiki 用に DiKicker (WiKicker) を make install。

 %bash
 $perl -MCPAN -e mkmyconfig
 $perl -MCPAN -e shell
   o conf makepl_arg PREFIX=/home/naney/local/WiKicker
   o conf mbuildpl_arg --install_base=/home/naney/local/WiKicker
   o conf commit
   notest install CGI::SpeedyCGI

 $tar zxvf WiKicker-0.420.tar.gz
 $cd WiKicker-0.420
 $export PERL5LIB=$HOME/local/WiKicker/lib/perl5/site_perl/5.8.9
 $perl Makefile.PL PREFIX=$HOME/local/WiKicker
 $make
 $make install

以前きっちり Module::InstallMakefile.PL を作っておいたおかげで、比較的スムーズにインストールできた(自画自賛)。

ちょっとはまったところは CGI::SpeedyCGI の make test を実行する(される)と SSH 接続がサーバ側から切られてしまうという現象にあったところ。 テスト用に大量にスクリプトが起動されるの検出して自動的に kick されたのだろうか。

.htaccess の修正

さくらのレンタルサーバでは .htaccess Options が使えないようなので削除。 ExecCGI や MultiViews が有効になっているようなので問題なし。

いつくかのスクリプトの修正

Perl 5.005_03 用に書いてあったスクリプトについて、Perl 5.8.9 で文字化けしないように utf8 まわりを修正。

cron 設定

1時間毎に実行したい処理を列挙するシェルスクリプトを1つ作って、コントロールパネルから1時間毎に実行するように設定。

現行サーバでは任意の crontab を設定できたので、1時間毎はちょっと物足りない。 おいおい負荷にならない範囲で、外部から定期的に HTTP アクセスして処理を定期的に実行できるようにもするかな。

DNS 設定変更

まだ動いていないスクリプトもあるけれど(大きいところだと NaneyOrgWiki (Wiki))現行サーバの解約日もせまっているので、サーバ移転させてしまうことに。

VALUE-DOMAINDNS サーバ設定を変更し www.naney.orgさくらのレンタルサーバにアクセスできるように A レコードを変更。

今のところ特に重い等もなく順調。 現行サーバでは深夜非常に重くなる時間帯があったのだが、それが無くなるのが嬉しい。 また容量が100MB*1から10GB*2になったので心理的にセーブしなくて良くなった。

年内に移行できて良かった良かった。


[ さくらのレンタルサーバ プレミアム ]

*1メール等別

*2メール他を含む

[ 12月23日全て ]

2010年2月18日 (木)

今日のさえずり - ホントに真っ白でビビった

2010年02月18日

  • 07:21 何となく「窓開けたら真っ白だったりして」って寝ぼけてたんだけど、起きてカーテン開けたらホントに真っ白でビビった。 L:東京都
  • 09:05 今日は有給休暇です。
  • 09:42 @aokimarky お子さんおめでとうございます!
  • 14:55 2009年5月4日賞味期限の柿の種が出てきた。
  • 15:37 湿気ってたけれど喰えた。
  • 16:22 さて、風呂
  • 17:42 風呂上がった。すっきり。腹ヘリ。
  • 23:32 よく寝た。
  • 24:03 @kmunaka こんにちは。もしかして以前 Wiki つながりでお会いしたけいむなさんですか?
  • 24:13 Life-X かなり久しぶりにログインした。フレンドがいないしやっぱり全然面白くない。 http://life-x.jp/
  • 24:43 2010年2月15日の歩行: 4497歩、3.48km、37分、5.58km/h、消費 176.2kcal、脂肪燃焼 25.2g、2.6エクササイズ。
  • 24:44 2010年2月16日の歩行: 6244歩、4.84km、52分、5.54km/h、消費 242.6kcal、脂肪燃焼 34.7g、3.6エクササイズ。
  • 24:46 2010年2月17日の歩行: 6040歩、4.67km、51分、5.42km/h、消費 231.5kcal、脂肪燃焼 33.0g、3.3エクササイズ。
  • 24:46 2010年2月18日の歩行: 0歩、0.00km、0分、0.00km/h、消費 0.0kcal、脂肪燃焼 0.0g、0.0エクササイズ。
  • 25:08 チョコレートありがとう。 [Flickr] =http://goo.gl/fb/iU3C
[ 2月18日全て ]

2010年12月2日 (木)

WEBrick で Redmine を実行しっぱなしにする場合には -d オプション

先日セットアップして走らせている Redmine、基本的にはうまく機能しているのだが Wiki を編集した後に[保存]ボタンを押した場合や、ガントチャートで表示する月数を変えて[適用]を押した場合、Web ブラウザ上でページが真っ白になってしまう現象に遭遇している。

なんでかなあと、script/server を再起動したところうまく動くようになった。良かった良かった。 Ctrl+Z して bg して SSH 抜けて mlterm 落としたら再発。 ああバックグランド実行にしたのが良くなかったのかな。

 /usr/local/redmine/bin/ruby script/server webrick -d -e production

と -d でデーモンとして起動するようにしたら、この変な現象は起きなくなった。 めでたしめでたし。

[ 12月2日全て ]

2011年4月21日 (木)

今日のさえずり: Wiki 文化が発達しているので Evernote の必要性があまりないことが判明

2011年04月21日

  • 13:53 ハンバーグランチセット 800円。 (@ サイゼリヤ 渋谷青山通り店) http://4sq.com/dFhTA2
  • 13:59 Wiki 文化が発達しているので Evernote の必要性があまりないことが判明。
  • 14:24 高校生でも時給1000円からとかいいな。
  • 16:49 なんか LT る流れになった。ちなみにあまりテクニカルなネタは無いですけど。
  • 18:08 初コンポタ。つぶつぶ入ってるんだと思ってた。
  • 19:33 リーダーから IRC のニックネーム Naney でいいってお許しが出た。素早く変更。やっぱこっちの方が落ち着くわ。頑張って周知に努めよう。
  • 20:30 退勤。
  • 20:59 選挙の街頭活動って時間帯制限無いんだっけ?
  • 22:36 SpinNet (ISP) から 「『児童ポルノブロッキング』対応開始のお知らせ」がきてた。今日から。
  • 22:40 Google Chrome に入れてる緊急地震速報 by Extension の震源・最大震度・マグニチュードで、cond できるようになってきた。
  • 22:45 RT @as_tone: 壁に掛けてある鏡がまだ揺れている。固有振動数が一致してしまったらしい。
  • 22:55 今使っている RHODIA No19 (切り取ると A4)を使い切ったら、今後仕事では大きいのは A5RHODIA No16 にしようかな。以前みたいに穴開けてファイルするということもしないつもりだし。
  • 23:02 @ken2754 そうなんですよね。RHODIA No19 って高いのがネックで。そうれで No16 にしようかと。
  • 23:04 @ken2754 以前、ブレーンストーミングに No16 使っているとおっしゃられていましたが、今でも? http://bit.ly/gj6QJ2
  • 24:26 @mitsuaki_i とても有益なソフトウェアありがとうございます! PC を使っている時の速報時にはまず安全確保に体が動くようになりました。
[ 4月21日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.098517s / load averages: 1.33, 1.29, 1.25
nDiki by WATANABE Yoshimasa (Naney)
Powered by DiKicker