2012年4月16日

Sakura-ConにおけるOrg-mode



(これはHideki's Random Stuff掲載、Whitepaper: Org-mode at Sakura-Conの和訳です。)

はじめに

本書ではコンベンションの管理に特化したOrg-modeの使用について説明しています

著者について

私はSakura-Con 2012(訳注:日本語正式名「桜コン」、「サクラコン」とも表記されます。)の日本人ゲストマネージャーとして17人のゲスト及びそのグループ(約60人)や30人近くのスタッフに係わるスケジュール管理、人事や現場管理などを担当しました。また、チームとしてアテンド担当スタッフと3人の通訳スタッフを含んでいます。


チームはコンベンション内外、80時間あまりのスケジュールを3日間の間に管理しました。

目的

日本人ゲスト担当チームとして、Sakura-Conにおいてはいくつもの考慮すべき点がありました。以下がそのいくつかの部分です。

スケジュール管理

Sakura-Conではスケジュールのシステムを使用しており、カレンダーに入力していく方法が採られ、複数の部署がそれらを参照、更新することができるようになっていました。これは巨大な会議室管理システムみたいなものであり、時系列の参照は容易ではあるものの、一覧性が乏しいものでした。(空き時間の参照などは容易にできるものの割り当て対象のリソースを追いかけるのには難しいものでした。)日本人ゲスト部門においてはより適切なソリューションが必要となりました。

スケジュール印刷

日本人ゲスト部門においては来賓及びスタッフに向けてスケジュールを作成し、配布しました。発行の作業自体はスタッフに委託していましたが、スケジュールが完了する前に作成を開始する必要性に駆られていました。

通訳スケジュール

アテンド担当者の他に、通訳の割り当てが必要でした。通訳はゲストではなくイベントに割り当てるため、通訳は独自のスケジューリングが必要になりました。スケジュールにおいては複数のイベントが同時に開催されているため、運用可能な通訳リソースの上限がイベントの最大同時開催数を決定することになります。これらも関連する変更がスケジュールに加えられた際に考慮する必要がありました。

スタッフ管理

Sakura-Con 2012においては新しいスタッフを多数採用する必要がありました。それぞれのスタッフにはチェックリストが設けられ、採用プロセスを管理していました。
それぞれのスタッフには来賓が割り当てられ、それらはそれまでのスタッフ経験や、嗜好など様々な要素をもとに決定していました。

Org-modeを使用した管理

Sakura-Con 2012の準備段階では、様々な種類の情報を管理する必要がありました。Org-modeにおいてはOrgファイルから様々な出力をすることが可能であったため、スタッフに必要な形で必要な情報を渡すことを可能にしました。

スケジュール

スケジュールは一覧性を高め、また、それと同時に詳細を込める必要がありました。そのため、それぞれの来賓のヘッディング化に一覧性を高めた時系列の表を非活性タイムスタンプとともに配置し、イベント名、時間、場所などを併記しました。


また、その下部にさらに詳しい情報をサブヘッディングとして入力し、アルファベット順に配置しました。


こちらには活性タイムスタンプを含んでいたため、この情報を元にiCalカレンダーファイルを生成することができ、通訳担当者がスケジュールをすることを容易にしました。


以下はそのサンプルです。(機密保護のため、以下の情報は一部削除しており、実際のコンベンションで使用されたものと多少異なります。)




これは確かに冗長なのですが、テーブルからカレンダー出力をすることが不可能であるため、このような形態に落ち着きました。また、それぞれのイベントをサブヘッディングとして持つことにより、それぞれに未定情報などTODO情報を持たせることが可能でした。


このファイルよりHTML出力、カレンダーファイル出力をすることが可能であり、印刷、通訳スケジュールなどに使用することが可能でした。


入力ミスに起因する問題以外はこのスケジュールは非常に役に立ちました。


来賓管理

Sakura-Conでは来賓招致の際にいくつかのプロセスを踏み、例えば招待状の送付などが含まれます。これらもOrg-modeで作成したチェックボックスなどで管理し、関連する情報にリンクがなされていました。これらの情報もHTMLファイルなどで出力し、共有が可能でした。

スタッフ管理

スタッフに関しても来賓と同じように管理されていますが、こちらは違う種類のチェックリストが使用されていました。これらには連絡情報や面接の情報などが含まれていました。これらの情報を元にスタッフのリストなども作成しました。

チームサイト

上記の情報を使用することにより、ゲストスケジュールやスタッフ情報などを含んだ独自のチームサイトを作成しました。スマートフォンのブラウザを使用することによりどこでもこれらの情報を参照することが可能でした。静的なサイトではあったものの、現場での更新も可能でした。バックエンドにはGitを使用し、更新をプッシュすることが可能でした。更新は専らClearホットスポットにつないだノートから行いました。緊急用にUSBに一通りの環境(完全なEmacsの構成、SSH、Gitなど)を含んだものを準備しており、必要な場合は他の場所からも更新することができるよう準備していましたが幸いなことにこれは使用されませんでした。


チームサイトはチーム外の部署からも参照され、一週間で3500件以上のリクエストを受け、その分部署への問い合わせが削減できたことになります。

将来に向けて

今回Sakura-Con 2012では日本人ゲスト部門においてOrg-modeは広く使用していました。静的なページをベースにしたシステムでもその有効性が確認できましたが、将来的には必要に応じて的確な方法で情報を表示するようなフレームワークの開発、使用も視野に入れたいと思っています。


また、今回、MobileOrgなどのモバイル統合などの試みは行いませんでしたが、これらについても今後取り入れていく予定です。

2012年2月17日

Org-modeとこれを使うべき理由

(これはHideki's Random Stuff掲載、Org-mode and Why You Should Consider Using Itの和訳です。)
個人的にOrg-modeは2012年の最初の二ヶ月で発見した最もいいものであると思っている。現在、これをノート取りや、コンベンション業務や、ドキュメント作成などに使用している。
プレーンテキストベースでマークアップが可能なこの方式はChromebookなど使用しているプラットフォームが多様化している状態で非常に有用なものとなった。

バイナリブロッブはダメだ

過去にも標準化されていない形式のファイルや、果てはwinmail.datなどに関していろいろと文句を書いてきた。(ところでMicrosoft、いつになったらあの忌々しいwinmail.datをネットから撲滅してくれるのか。)
どんなオフィスソフトでもこの問題があったが、OpenDocumentや、ある意味Office Open XMLなどでこの問題は比較的解決に向かっており、また、市場を支配している(まだしているか……)独自形式のドキュメントを撲滅する意味ではこの動きは非常に重要な動きであると評価できる。
しかしながら、これらの標準化はドキュメントのアクセス性を上げる点を上げるものではない。ファイル形式がオープン化したところで、プレーンテキストとは違ってある程度複雑なソフトがないと開くことができない。TeX(LaTeX)は長く存在しており、プレーンテキストによる編集を可能にしているが、容易に編集するには敷居が高すぎる面がある、とはいえ、Microsoft Wordなどで編集するよりも100倍はましだとは思うけど。
Org-modeはプレーンテキストのシンプルなフォーマットであり、このドキュメントは広い範囲のプラットフォームで開き、編集することができる。PC、Mac、Chromebook(とはいえ、ChromeOSにはソフトウェアのコンセプトがないため、やりにくいのは確かではあるが)や電話などで編集ができる。変換作業にはPCが必要だがそれに関しては後述。

構造化されたドキュメントが簡単に

Org-mode(TeXやLaTeXなどでも言えることだが)で重要だと思うのがこれが構造化されたドキュメントを強制することである。受け取るファイルでヘッダがフォントサイズしていだったり、前述の原因により目次が通常のテキストで記述されていたりと酷いものもよく見かける。
これはソフトを使う人の能力に依存するものも多いため、一絡げに評価できるものではないが、Org-modeの場合、構造をきちんと持たせることにより情報管理がより容易になるという正の動機がある。

プロジェクト管理が簡単に

最近の仕事はプロジェクト管理が主なわけだが、Microsoft Projectなどのプロジェクト管理システムを使用したがあまり役に立つものではなかった。これはチャートなどを作るには役に立つかもしれないものの、これらのソフトが想定する制限項目などは必ずしも現場の状態、例えばスケジュールの変更や要求項目の変更などを反映したものではないことに気がついた。完璧な会社で働いていない限りはこれらは結局は絵に描いた餅になる。
つい先日まで、コンベンションのイベントの調整を行なっていたが、Org-modeでは依存などの全体像を非常につかみやすいため、延べ80時間にも及ぶスケジュールの更新を非常に短時間で行うことができた。
また、これを他の人に渡すときがまた非常に便利なのだ。それは事項に続く。

ドキュメント作成が簡単に

Org-modeでの編集作業が完了するとそれをHTML、OpenDocumentやLaTeXに変換するのは単純な作業である。
ドキュメントにはスプレッドシートで作成できるようなテーブルを含ませることができ、数式を含めることでさえできる。要はテキストベースのスプレッドシートである。
これにより、情報管理からドキュメント作成までシームレスなパイプラインを持つことになる。

短所

Org-modeの短所について言及しないとフェアではなかろう。図などを多く含む書類の作成にはプレゼンテーション作成ソフトや描画ソフトが向いている。(頼むからこの目的にMicrosoft Excelを使うのはやめてくれ!)埋め込み自体はできないことはないものの、それらは外部的に作成する必要が出てくる。その他に関してはOrg-modeは非常に優れた汎用情報管理システムであり、書類編集のツールである。

2011年11月27日

あるスポーツジムの失敗

(この記事はHow the Gym has Failedの和訳版です。この記事の要旨は一部の店舗に対して文句をいうことではなくて業界全体の体質を批判しているため、記事中の固有名詞は仮名です。ただし、チェーン自体は日本にも進出している大きめのものであることは表記しておきたい。)

先日、近所にあるスポーツジムの11月中の無料券なるものが届いたので、どんなものかと言ってみることにした。運動も必要だとは思ってたし。結局は2時間無駄にしただけに終わったのだが。

その「無料券」自体、同じ系列の違うところのものだったのだが・・・・・・。まあ、それはしょうがない。

カウンターの中の人にそう言われたから帰ろうとしたら店の人に呼び止められた。どうやらセールスの人で、体格からして多分トレーナーなんかもやっているんだろう、まあ、とにかくこの人を仮にジョンとしておく。(後から調べてみるとジェネラルマネージャーの肩書きをもつ人物だった。)まあ、話してみるだけならいいかと思って話をしてみる。まあ、内容自体はなぜジムの会員になるのを考えているのか、というような話。その後、施設を案内してくれた。

施設はなかなかいい場所で、体重と身長を測った後にもう一度テーブルに戻った。この時には特に金払って会員になることを考えていなかった。無料券の使用を目的に来ているわけだから・・・・・・。この後は想像できることかもしれないが、その場で有料の会員登録を迫られたというわけ。まあ、長期のコミットメントではなくて、月毎のものではあったが、長期、短期問わず、コミットメントを迫られたわけだからどっちも同じ事だ。

連中は登録を説得するためにある一種の「恐怖」で迫ってくる。
「今、会員登録しなければあんたは不健康になる。」
その次は「焦り」を使う。
「今登録しなければ入会金が100ドル高くなります」
それでもダメなら抱き合わせ。
「今これを登録すれば同じ値段でこれとこれがつきます。」
実はこれまでに他社の人とも話したことがあるのだが、連中は「検討する」機会を与えないように持っていく。この表明をすると連中はそれが逃げるための口実だと言ってくるのだ。その時のお決まりのセリフ。
「今、契約しなければあんたは(気が弱いから)逃げて戻ってこないだろう。」
まあ、こんな感じでのらりくらりと、ジョンの方もその勧誘がどうにもならないと気がついたのだろうが、それまでの戦法から打って変わって軽い「罵り」戦法を発動して、だんだんと本当の罵りに変えていった。まあ、このあたりで自分も腹が立って交渉決裂させた。ジョンの強欲は失敗に終わり、2時間無駄にしたわけだ。あ、あと、もし普通に接していればもしかして会員料ぐらいは払って入っていたかもしれないから、その商機も逃したわけだ。
ジョンにも言い分はあるのだろうが、顧客としての立場から言えば彼の営業は圧迫商法以外の何者でもない。この体験によって、絶対にそのジムには行かないし、行くとしても他のところだ。おそらく、この商法で取り込める人がいるからこういう商法を展開するのだろうが。前述のように、同じ業界の人と前に話した機会があるが、同じような手口だった。

今回の体験と観察からジムに入ろうとする場合は以下のようなことに気をつけるべきであると考える。
  1. 常に相手は商品を売りつけようとしている人物であると認識する。会話の中で「あなたのことを考えてのこと」などということがあるが、それは「自分が儲ける必要があるから、あなたのことを考えてのこと」と読み替える。彼らが行うアドバイスというのは会員として取り込むことを目的に行っている。彼らは商売であって決してあなたの親友ではないのだから。
  2. 最近では「あなたの本当の年齢」などという情報を提示しながら話してくることがあるが、これは疑ってかかること。もしかしてそのデータ自体はそこまでは間違っていないのかもしれない。しかし、それを交渉を押し切るためのツールとして使ってくるのであれば別だ。ジョンの態度で興味深かったのは「検討」の意思を出した前と後でそれが客観的なものから主観的なものになったことである。(最初は「この情報からすると、あなたの大体の年齢水準はこういうかんじになる」と言って後からは「あんたのこのデータは危険だ」というような感じ。)
  3. 同じチェーンで無料チケットを使った他の人の体験を聞くと、人によって標的にされやすい層があるらしい。不健康的な人を狙ってるんだろうな。(まあ、確かに砂漠の住人に砂を売るようなムダはしないだろうし。)
  4. 店に一歩入ると連中のコントロール下にあると思っていい。彼らに止める権利はないんだから、必要であれば席を立つべき。(というか、2時間無駄にする前にこれをしておけばよかった。)
  5. 持ち帰って検討をさせないような態度を取るのであれば特に気をつけるべき。
  6. 疑問が感じるような商法による営業を受けた場合は州の司法長官局に消費者保護の機関があるのでそこに連絡しておく。
  7. (よほどモグリな商売をやっているようなところではない限りはここまでいくとは思えないが)身の危険を感じたら911で警察を呼ぶこと。特に立ち去るのを阻まれたときなどは。

あと、サービスを提供する側にも言っておきたい。
  1. 答えるのは聞かれたことでいい。もし問い合わせが対応できないことであるのであればその場で拒否してくれ。(この自分のケースの場合、二時間を無駄にする前に店側は対応できない正当な理由があったはずだ。)Xのことを聞いているのにYをオファーする理由はない。
  2. 「検討する」って言っているんだから検討させろ。一日に「わずか」2ドルであろうが100ドルであろうが関係ない。検討するって言っているんだから検討したいのだ。戻ってくるか来ないかはあんたらには関係ない。「逃げるための口実」ってアホか、なぜあんたらに断らないといけないんだ、買う側の自由だ。それはあんたらの仕事じゃない。自分の金を使って何かするのに指図されるいわれはない。(あと、もし本当に「あなたのことを考えている」って言うのであればじゃあ代わりに金払ってくれ。)
  3. みんなが目的を持って来ているわけじゃない。なぜ会員になるかという答えを真に受けてそれを短期的な目標と決め付けるな。あんたらの「効果的な運動論」を受け入れると言った覚えはない。もしその点に質問があればこちらから聞く。
  4. その場で全部売れると思うな。トライアルはそのためにあるんだよ。その後営業機会はいくらでもあったわけだ。その押し付けで商機を全部失ったと考えていい。
  5. 圧迫営業なんて時代遅れ。これでも見てくれ。http://theoatmeal.com/comics/sell_generation
  6. 絶対に客を罵るな。あんたらのその行為はその本人ならず、周りに広がるぞ。個人的には自分の一番嫌いな奴にでさえ薦めることはしない。
まあ、フリーランチはないとはよく言うが、フリートライアルもないってことか。

2011年8月18日

ちゃんみおスペシャル注文用のドキュメント

前に書いたちゃんみおスペシャル、米国やその他の英語圏でも簡単に注文できるように店員さんへの指示を書いたものを作成しました。

印刷して持っていって見せると作ってくれると思います。(「その他の英語圏」とは言いましたが、検証は米国の一部の店舗でしか行っていません。)

尚、スタバ以外も作ってくれないことはないかとは思いますが、フラプチーノってスタバの登録商標なので……。

2011年8月7日

米国でもちゃんみおスペシャル

日常の18話で出てきた、ちゃんみおスペシャルを米国のスタバでも注文できるのかを検証してみた。
結論から言えば、できる。
ちゃんみおスペシャルで使われている材料はすべて米国のスタバでも揃っているので、注文すればちゃんと出てきます。

ただ、オーダーを覚えるのは少し大変なのでメモに書いて渡すことをお勧め。




2011年7月24日

Chrome OSでSSHトンネルを使用する方法

Google Chrome OSではSSHのサポートが組み込まれてるのですが、これを使用したトンネリングの使用方法をまとめてみます。

SSHサーバへの接続は比較的簡単に行うことができます。

方法は以下のとおり。

  1. Ctrl-Alt-Tを押し、croshを立ち上げ
  2. sshと入力
  3. SSHサーバの要件によって以下の情報を順番に入力します。

    • host [hostname]
    • user [username]
    • port [port number] (サーバのポートが通常と違ったものを使用している場合)
    • dynamic-forward [port number] (転送に使うポート番号、今回はポートを8800を使用しているものとみなします、この場合dynamic-forward 8800)
    • key [key file name] (公開鍵認証の場合)
    • nocmd (トンネルを使用する場合はシェルを立ち上げる必要がないのでこれを使用)

  4. connectを入力
  5. サーバのパスワード、もしくは秘密鍵のパスフレーズを入力)

これにより、SSHサーバに接続され、ポート8800にSOCKSポートが開きます。

現状の問題として、ChromeOSではSOCKS5をUIより設定する方法がありません。このため、少し特殊な方法で接続を設定する必要があります。(ChromeOSの設定では、SOCKS4のみが設定可能となります。この場合、DNSがローカル側で解決されるため、ローカル側の設定によりネームが他のホストに転送されたりブロックされてしまう可能性があります。)ChromeOSでは内部的にはSOCKS5がサポートされているので、これをプロクシ自動設定の仕組みを使用して設定します。
以下がこれを設定するプロクシ自動設定スクリプトです。



function FindProxyForURL(url, host)
{
   return "SOCKS5 localhost:8800;";
}



これをChromeOSシステムに転送します。(もしくは次からダウンロード可能です。ssh.pac。ファイル名は上書き等を防ぐため、他のファイル名の設定をお勧めします。)転送後、プロクシの自動設定スクリプトして file://home/chronos/user/Downloads/ssh.pacを指定します。 この後chrome://net-internals/#proxyを確認し、Effective SettingsがPACスクリプトがDIRECTではなく、PACファイル名になっていれば正常に設定されています。さらにIPアドレスががリモートのものになっていれば正常に設定されています。

SSH接続を常に使用する場合は別ですが、そうではない場合は直接接続を使用する場合は直接接続のオプションと切り替えて使う必要があります。しかし、これを指定するとPACスクリプトのファイル名が消えてしまうので、ファイルのフルパスを覚えておく必要があるため、直接接続を行うスクリプトと併用するとファイル名の書き換えで切り替えることができます。



function FindProxyForURL(url, host)
{
   return "DIRECT;";
}


(このファイルは次からダウンロード可能です -- direct.pac.)

2011年6月21日

ATOK for Android

ATOK for Androidはスルー。てか買えないからね。トライアルでさえダウンロードができず試すことをさえできないということで個人的にはジャストシステムという会社への株が下がった。

海外にも普通に販売してくれるいい会社だったけどがっかりした。

PCのも毎年のように買ってたけど(辞書セットも2~3年に一回)今年からやめた。Android版の方針から、いつ方針が変わって購入ができなくなるかわからないし危なっかしいソリューションとしか見えない。

いままで結構こっちの知り合いにもATOK(PC、Mac版)を勧めたけど今後はやめることにする。