nDiki : WikiForum

WikiForum - Wikiフォーラム / Wiki Forum

WikiEngine によって生成される WikiPage (ページ)の集りのこと。

https://www.naney.org/ でも Wikiフォーラム

を提供している。

関連情報

2004年2月9日 (月)

[ WiKicker ] 自動InterWiki

一昨日実装した、 複数のキーワード集合による、AutomaticLinkモジュールを WiKicker CGI プログラムから使えるようにしてみた。

ローカルにおいておいたキーワードリストファイルを読み込み AutomaticLink 処理(WikiForum 内で AutomaticLink でマッチしていない部分文字列に対して)。 マッチした場合は InterWiki を使ってURIに変換しリンク化する。

あわせてIndexPage.txtWiKicker WikiForum 内の PageName を取得できるようにした。

これで例えば、2つの WiKicker WikiForumcron で互いの IndexPage.txt を定期的に取得し、AutomaticLink するようにすれば、相補的に連携する事ができるようになる(ただし AutomaticLink のみ。WikiNameBracketName は依然としてその WikiForum 内のみ)。

AutomaticLink でのリンク先は(指定した)任意の InterWiki で定義できるので、あるキーワード集合について Google検索結果ページや「はてなダイアリーキーワード」への自動リンクも実現可能(はてなダイアリーキーワード自動リンクAPIはキーワードリストではなく正規表現を返してくるので、元に戻す必要有り。またあれだけ巨大なキーワードリストだと毎回 AutomaticLink のために、trie 再生成するのも辛いのでもう一工夫必要)。

[ 2月9日全て ]

2005年4月19日 (火)

最後がピリオド(.)で終わるファイル名をつけられない

Windows で「最後がピリオド(.)で終わるファイル名」を新規作成する。 最後のピリオド(ドット)が無くなる。

……。

8.3形式の名残なのか? Explorer 上で作成しても、プログラム(Perlスクリプト)から作成しても駄目。

環境は Windows XP Home Edition SP2 + NTFSWindows 2000 + NTFS でも同様。

WiKicker

これは WiKicker のテストをしていて気がついた。 WiKicker では「PageNamebase64 を生成し 『/』 を 『.』 で置き換えたもの」をファイル名にしている。 例えば UTF-8 で「タ」は

 44K/

となるので、ファイル名は 「44K.」となる。 で最後の文字が消えてしまうので、デコードするとおかしくなると。

これを機会に Windows 環境でのエンコーディングは RFC3548 「4. Base 64 Encoding with URL and Filename Safe Alphabet」を使うように変更するか。

本当は全てこれに変更したいのだけれど、すでに動いている WikiForum の事を考えると移行は難しいかも。

[ 4月19日全て ]

2005年9月13日 (火)

[ WiKicker ] hell mode - HTMLタグ付けブロックの導入

WiKicker では、直接 WikiPageHTMLタグを記述して表示に反映させる機能を提供していない。

HTMLタグ付けを許すのは嫌だ

HTMLタグ付けを許すと

  • 入力ミスによるトラブル
  • 悪意ある入力によるトラブル

が起きやすくなるし、ページのソースの単純さが大きく失われてしまう。 レンダリングしてHTMLにした時に、正しいHTMLを出力されることを保証することが困難になるとともに、HTML以外へのレンダリング/コンバートもかなり難しくなる。

この機能を導入すると、Wiki の良さの半分(あるいはもうちょっと沢山か、もうちょっと少なめ)が失われてしまう。

でも

とはいえ欲しいという声があることも事実。 オープンな WikiForum では全くお勧めできないが、閉じたユーザグループの中ではまぁ必要悪なのかもしれぬ。

また正直ちょっとした表現を追加したい時に、WiKicker 用のプラグインを書くのも面倒だというのは確かにある。

WiKicker では開始・終了マーカによる複数行にまたがるブロックを表すための文法は(閉じ忘れを避けるため)意図的に排除してある。 このため、複数行にわけて書きたいような長いデータを扱うような拡張も導入しにくい。

ちょっと手抜きして「生HTML書けちゃえば」という誘惑はなくはない。

大人の事情

ということでまあ自分に言い訳をしつつ、標準ではオフというかたちで HTMLタグ付けブロックを導入することにした。 スイッチは hell mode とかにしたい (今回は syntax.html というプロパティ名にしたけれど)。

記法は単純に、

 normal wiki syntax text...
 <html>
 html tagged text...
 ...
 </html>
 normal wiki syntax text...

のように行頭が <html> である行から、行頭が </html>である行までをHTMLタグ付けブロックとすることに。 このため、<html>ではじまる段落が書けなくなるという小さな非互換が発生するが、いたしかたない。

サニタイズ

HTMLタグを直接使えるようにするとはいえ、全てを許してしまうのはあまりに危険で非人道的すぎる。 有効なHTMLタグや属性は限定的であるべきだ。

このあたりの処理は面倒だが、幸いにしてCPANにモジュールがある。 今回は HTML::Scrubber を使うことにした。 HTML::Parserを使って parse し、指定したルールに従ってサニタイズしてくれる。

ちょっと使ってみた範囲では日本語(UTF-8UTF8 フラグなし)でも問題ないようだし、文法的に正しくなくてもきちんとサニタイズできているようだ。

ということで、これを採用することに。

どの要素・属性を許すかはまだきちんと決めかねる。 当面は様子をみながら、調整していく予定。 サニタイザは設置者が置き換えられるようにプラガブルにしておかねばならないな。

[ 9月13日全て ]

2005年10月20日 (木)

社内で Wiki やっとブレイク?

社内に WikiForum を作ってからもう3年ぐらい経っている。 現在動いている社内サーバ上で、WiKickerサービスを開始してからももう2年半ぐらい経つ。

必要な時に閲覧はされていたみたいだけれど、実際に編集までする人はあまりいなくて、自分のチームのメンバぐらいであった。

しかしここにきてようやく啓蒙活動が実ってきたのか、昼休みに話題になって数人がちょっと編集しはじめた。

やはり勝手に編集していいかどうかのタメライが最初はあるようだな。 その辺りの周知不足であったか。

[ 10月20日全て ]

2007年1月13日 (土)

[ WiKicker ] spam検索エンジン対応に noindex、nofollow を追加

<a rel="nofollow">

相変わらず www.naney.org 上の WikiForum (NaneyOrgWiki) にも毎日のようにリンク spam 書き込みがある。

気がつき次第削除と、その URL や関連キーワードの書き込み禁止文字列ブラックリストへの登録を行っているが、手間でしょうがない。

これらのリンク先に貢献するのは腹立たしいのでリンク (A 要素)へ

 rel="follow"

属性をデフォルトで設定するように WiKicker を書き換えた。 ようやく。

<meta name="robots" content="noindex,nofollow">

あわせて、検索エンジン対応もしていおくことにした。

編集ページや履歴ページは検索エンジンに登録してもしょうがないので、インデックスから除外されるように HTML の HEAD に

 <meta name="robots" content="noindex,nofollow">

を追加するように修正。

クエリ付きの URL のページで noindex した場合、クエリ無しや他のクエリを持つ URL のページまで一緒にインデックスから外されてしまわないかちょっと心配で、今まで保留にしていたのだけれど、Wikipedia などを見ても大丈夫のようだ。


[ SEO ]

[ 1月13日全て ]

2011年1月4日 (火)

今日のさえずり: セメダイン臭のする酒をみんなが飲んでた

2011年01月04日

[ 1月4日全て ]

2012年5月7日 (月)

今日のさえずり: 腰リール通じなかった

  • 09:46 気分一新。 (@ 株式会社ミクシィ (mixi, Inc.)) http://t.co/ycoC031I
  • 10:38 「jig.jp、『モバツイ』を運営するマインドスコープ株式会社の全株式を取得」 びっくり。
  • 12:21 WikiForum 内で WikiPage 名ではなくて URL でリンクを書く行為、不可解。
  • 13:22 チキンタツタ。 (@ マクドナルド 渋谷東映プラザ店) http://t.co/ANe1q5Kh
  • 16:05 腰リール通じなかった。
  • 19:53 諸般の事情によりオフィスにてティシューで折り鶴折ってる。
  • 20:07 ICPA に補足されたくさい……。
  • 20:50 退勤。
[ 5月7日全て ]

2014年2月13日 (木)

今日のさえずり: カジノ系とかポルノ系とかの URL 書かれるの止めるのに禁止パターン随時追加していたのだけれど、まあ面倒だった

2014年02月13日

  • 13:22 調査午前の部完了。 (@ 株式会社ミクシィ (mixi, Inc.)) http://4sq.com/1g06CVh
  • 14:09 「『今の若い人は知らないだろうなぁ』と思う物は?」読むの結構楽しい。 http://bit.ly/1eRpysL
  • 16:24 昔々に WikiEngine 自作して WikiForum 立てていた時はカジノ系とかポルノ系とかの URL 書かれるの止めるのに禁止パターン随時追加していたのだけれど、まあ面倒だった。今数えたら 4321 パターン/URL書いてあった。
  • 20:03 明日を待たずに愛の告白された!
  • 22:53 ヴァネッサ2人目。
  • 23:28 “ミクシィ社第3四半期の決算発表を行いました - オレンジ畑でつかまえて” http://bit.ly/1gyIr0P
  • 23:28 よろしくお願いいたします。 / “naneyさんが承認されています - 承認プラットフォーム 大承認http://bit.ly/1mcCXQ3
[ 2月13日全て ]

2014年2月19日 (水)

いよいよ WiKicker から WikiEngine のコードを抜いて DiKicker のみにする

2002年10月19日から開発を始めてしばらく公開・運用をしていた WikiEngine だけれど最近は WikiEngine そのものは使っていなくて、今はそのコードをベースに作った日記システムDiKicker 部分しか使っていない。DiKicker の方は自分自身で今後も使っていくんだけれど、さすがにいろいろ古いのでそろそろ大改修しようかなと。基盤部分的には

  • Perl 5.005_03Perl 5.6 系との互換処理を捨てる。
  • 文字列処理をバイナリ文字列ベースから(いわゆる UTF8 フラグ界隈的な)テキスト文字列ベースにする。
  • CGI.pm ベースから PSGI ベースへ移行する。
  • 中間管理用のストレージを Berkeley DB から SQLite にする。

などをして今後も使っていけるようにしたい。既に使っていないアプリケーションとしての WikiEngine 部分は移行させていく手間をかける必要はないと思うので、コードを削除していくことにした。WikiForum 立てるなら既にいろいろ他の選択肢があるしね。

CVS での管理もやめて Git 管理に変更。最後の公開 tarball を展開して git init して最初のコミットとし、その後に変更した作業ディレクトリを Git 側の作業ツリーに上乗せしていったんコミット。あらためて最後の公開コードの上に差分を積んでいくつもり。

[ 2月19日全て ]

2016年11月7日 (月)

テキストファイル todo.txt でのタスク管理

先週の金曜日からテキストファイル todo.txt でタスク管理をするアプリを試してみています。

1行に1タスクを書くシンプルな todo.txt フォーマットが定義されており、それら対応した Todo.txt CLI やスマートフォン向けアプリ、デスクトップアプリ、エディタプラグインなどがいろいろ作られています。

これらを使ってタスクを追加・編集していきます。もちろんテキストエディタで簡単に追加・編集できます。Dropbox を使うことで複数のデバイスでも問題なく運用できます。

アプリ

まずは以下のアプリは使うことにしました。

  • Mac
    • TodoTxtMac
      • 複数のファイルをそれぞれ別ウインドウで開けます。
      • 残念ながら日本語入力と相性が悪く、実質テキスト入力はできません。
      • インクリメンタル検索で絞り込みができるけれど AND 検索はできない模様。
  • EmacsiA Writer・Atom
    • ファイルに変更があるとすぐに再読み込みしてくれるので、他のアプリとの併用に便利。
  • Android
    • Simpletask
      • UI はシンプルですが使い勝手は良いです。同時に1つしかファイルは開けません。
  • iOS
    • SwiftoDo
    • Simpletask ほどではないけれどまずまず使えそう。

サブタスク

仕様上サブタスクという概念はありません。「+プロジェクト名」という記法でタスクをタグ付けできるのですが、これだけだと見にくいので

 # プロジェクト名 h:1
 (A) タスク1 +project1 @office
 (B) タスク2 +project1 @home

のように書いてみています。「h:数字」は hidden を表す key:value で、各アプリはこれが書かれたタスク(行)を隠すことができます。一方 Markdown 対応テキストエディタで見出し扱いにしてくれるので視認性が良くなります。

雑感

コンテキスト(@文字列)やプロジェクト(+文字列)をタスク文中に埋め込める点、そしてそれらが空白は許さないことから WikiForum に書き込んでいるような感じがしました。

いわゆる開始日指定にあたる threshold や繰り返しのための rec などが指定できるため一通りのことはできそうです。 Remember The Milk から一部タスクを移して運用してみます。

[ 11月7日全て ]

About

Naney Naneymx

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

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

Process Time: 0.026998s / load averages: 0.25, 0.29, 0.31