natural born minority
自身は「何かどうやっていいかわからないこと」や「ゴールへの道筋がわからないもの」に当たる時、「マインドマップツール」を使用します。
この時の使い方は「タスク分解機」であり「放射状アウトラインエディタ」だったりします。(マインドマップ書いてませんw)
最近は「複数人で同時編集出来る」という理由で「Mindmeister」というWebサービスを使うことが多いのです。
で、そのタスク分解したものは「Trello」という、 タスクボードのコレまたWebサービスに転記して整理・Todo消化とかしていくわけです。
がっ!当たり前ながらその転記がめんどい…ので!
「Mindmeisterの末端アーティクル → Trelloのカード へと転送」
するバッチを作りました。
ツールを入れるため、その前にやっておくこととして…
が必要です。
ここ(本家README)を参考に、conscriptのインストールを行って下さい
自身はUbuntuLinuxですので
curl https://raw.githubusercontent.com/n8han/conscript/master/setup.sh | sh
でサクッと「csコマンド打てる状態」になりました。
ちょーっとこっちが面倒臭いのですが、Webサービス側からの準備として
という作業が必要です。(これはプログラムではなんともならんかった…)
Mindmeisterで「タスクにしたいマインドマップ」を開いて下さい。
画面右下の「下向き矢印マーク」をクリックすると、エクスポート先選択のダイアログが現れます。
最初から選択されている「Mindmeisterフォーマット」をそのままに、 「エクスポート」をクリックして下さい。
[マインドマップの名前].mind
というファイル名のZipファイルが落ちてきますので、
解凍して map.json
というファイルを取り出して置いて下さい。
こちらのページと同じことをするのですが、ちょいちょい説明していきます。
Trelloにログインした状態で、
https://trello.com/1/appKey/generate
にアクセスして下さい。
画面、上側n表示されている「Key:」の文字列がAPI Keyです。記録しておいてください。
今度は、取得した「API Key」を使って「Cardの投稿が出来る権限」を持った「API Token」を取得します。
以下のURLを組み立てて、アクセスして下さい。
https://trello.com/1/authorize?key=[上で取得したKey]&name=&expiration=never&response_type=token&scope=read,write
確認画面が出るので「Allow」をクリックして下さい。
クリックすると「シンプルな白地テキスト」以下のような感じの表示がなされます。
You have granted access to your Trello information.
To complete the process, please give this token:
XXXXXXXXXXXXXXXXXXXXXXXX
この「XXX…」の部分が「API Token」です。記録しておいて下さい。
タスクボードへは「タスクボード名」でも「日頃見てるURL」でもなく、内部で使用している 「タスクボードのID」とでも呼ぶようなものでタスクボードを特定します。
そのため、対象と成る「タスクボードのID」を取得しましょう。
https://trello.com/1/members/[username]/boards?key=[Key]&token=[Token]&fields=name
を指定することで「自身が見られるタスクボード名とIDの一覧」が取得できます。
…が、ログイン中ならkeyとtokenはケズれるので…
https://trello.com/1/members/[username]/boards?fields=name
で取得できます。指定すると…
[
{"name": "テスト","id": "XXXXXXXXX..."},
{"name": "日常","id": "XXXXXXXXX..."}
]
のようなJSONが帰ってきます。(実際は改行無し)
“name”で「今回カードを作りたいタスクボード」を探し、”id”を記録しておいて下さい。
ここで、やっと「準備」で用意した「conscript(csコマンド)」を使います。
コンソールから、以下を実行して下さい。
cs kazuhito-m/mindmeister2trello-importer
最後に
Conscripted kazuhito-m/mindmeister2trello-importer to ...
とか出ていればインストール完了です。
上記で収集した情報をすべて引数にのせて、インポートを実行します。
以下をコンソールから実行して下さい。
m2ti [API Key] [token] [タスクボードのIDの] [タスクリスト名] map.json
「タスクリスト名」というのは「タスクボード中のリストの表示名」です。(よく”Doing”,”Done”とかにしてるアレです)
今回の情報を元にすると…
m2ti XXXX... XXXX... XXXX... 'To Do' map.json
という感じになりました。(割と長いコマンドになりますね)
実行すると目的のタスクボード、タスクリストに”-“(ハイフン)区切りで要素名をつなげたカードが出来上がります。
Trelloを表示しながらコマンドを実行すると「カードがみるみる足されていく」ので面白いですね。
Trelloのタスクカードは「同じ名前(タイトル)でも別物」と捉えます。
したがって「2回実行すると同じカードが2度足される」こととなり単純増殖します…がTrelloは「極力カードを削除させない(ものすごーくやりにくい場所にDeleteがある)」という思想でできていますので、量を扱う場合はご注意下さい。
こちらのリポジトリ にソースがあります。
基本構成は、
な昨年末クローラ作った時の構成 です。(トレンド考えると少し古い技術でしょうか)
実現機能のために、
を追加しています。
trello4jとtrello-java-wrapperを迷いましたが…
trello-java-wrapperにしました。
…その割には「spring-webをDependencyに足さないと動かない」など 要らないものも持ってきてしまいましたがw
いやーScalaはなというか…「加減考えんといかんくらいリファクタングが出来る」のが凄いですね。
数えて見ると…「賞味のロジックが1ファイル20行満たない」「でも頃合い」というのは凄い。
いや、「ScalaのScalaたるトコロ」を全く知らないし、使い方もJavaなんですけど。
ツールとして、個人的には「なかなか便利になった」感じがあるので、複数人での「ブレストからのタスク出し」に活用していきたいと思います。
そして「INとOUTがはっきりしたツール」なので、Webサービス化もあるかも?…とか構想が広がりますね。
ま、気が向けばやってきますね。
以下を参考にさせていただきました。ありがとうございます。