2017-05-11、ChatWork の Emacs 用フロントエンド chatwork.el のバージョン 0.3 をリリースした。
バージョン 0.3 での変更は、ChatWork API のバージョン変更。2017-05-15 をもって、ChatWork API の v1 が廃止され v2 へと移行される。移行期間ギリギリで、その対応を行なった。
chatwork.el は MELPA からインストールできるので、興味があったら是非お試しあれ。
2017-05-11、ChatWork の Emacs 用フロントエンド chatwork.el のバージョン 0.3 をリリースした。
バージョン 0.3 での変更は、ChatWork API のバージョン変更。2017-05-15 をもって、ChatWork API の v1 が廃止され v2 へと移行される。移行期間ギリギリで、その対応を行なった。
chatwork.el は MELPA からインストールできるので、興味があったら是非お試しあれ。
ぼくが働いてる ChatWork 株式会社の主力サービス「チャットワーク」の解説本が Amazon で予約可能になっている。書名は「チャットワーク【公式】活用ガイド」。発売予定日は 2015-08-06。定価は 1,620 円。
チャットワークの解説本は、公式・非公式含めて初めてと思う。本の著者は ChatWork Academy。ChatWork 社のグループ会社。ちなみに、ぼくはまだその本の内容を知らない (ので発売されて初めて読む)。
拙作 chatwork.el に To を補完入力する機能を追加した。chatwork-send-message-in-region と一緒に使うことを想定している。
ChatWork では相手を指定してメッセージを送ることができる。Twitter の @記法 のようなもの。To で自分が指定されたメッセージを受け取ったら、ChatWork 上の「To」タブにバッジが付く。
To の指定方法は簡単。チャットの送信領域から「To」をクリックして送信相手を選択するだけ。すると、送信フィールドに「To タグ」が挿入される。こんな感じ。
ちなみに、複数の To を送りたい場合は Shift ボタンを押しながら。全員に To を送る場合は、「メンバー名を検索」の下にある「すべて選択」をクリックする。
「名前」と「To タグ」のコンスセルを chatwork-room-member-alist に設定する。「To タグ」はウェブから実際に人を選択して現れた「To タグ」をコピペするのが楽。というか、それ以外に方法はないんじゃないかな。人の選択は「名前」で行なうけど、日本語入力をオン・オフするのは手間なのでぼくはアルファベットで入れている。
設定例はこんな感じ:
(setq chatwork-room-member-alist '(
("ataka" . "[To:927811] 安宅 正之さん")
("someone" . "[To:123456] Mr. Foo")
))
これを .emacs にでも入れておく。
M-x chatwork-insert-tag-to で入力プロンプトが出る。「名前」を補完入力すると、カーソル部分に「To タグ」が挿入される。
適当なバッファに「To タグ」とテキスト本文を書き込んで、chatwork-send-message-in-region でチャットワークに送信する。そんな使い方を想定している。
To の候補リストは自分のいる「チャットルーム」ごとに変わる。具体的には、「チャットルーム」に所属している人しか候補に現れない。
ぼくの方式では、「チャットルーム」にいない人にでも To が書けてしまう。送ったところで、チャットルームにその人はいないので、単なるテキストが送られるのと変わらないけど。
この方式の悪い所は、chatwork-room-member-alist が大きくなると、収拾がつかなくなること。これから送ろうと思ってるチャットルームに、その相手がいるかどうか分からない。
本当はルームを選択した上で、そのルームに含まれる人だけを候補に出す仕組みにしたかった。何でしかなかったかと言うと、そういうコードを書くのが手間で、それより先に、とにかく To を送る仕組みが欲しかったから! ちゃんとした To 送信の機能は、時間をかけて作るつもり。それまで、この簡易版でご容謝を。
今日 (2015-01-26) から 2015-02-03 まで、7 日間、在宅勤務となった。
理由は遡ること一週間ほど前。2015-01-18 の早朝に吐いたことから始まった。ウィルス性胃腸炎だった。2 日会社を休み、なんとか出社。悲しいかな、一人、また一人と胃腸炎で臥せる人が出てきた。
2 人目の病人は、ぼくが会社を休んでる間に病気になったので、ぼくがうつしたのではない、と信じたい (潜伏期間とか体力によって数日の差があったりするかもなので確証はないけれど)。
で、どんどん感染していくのでコリャ、ヤバイね、と。
あと、この注意書きがショッキングだった。
治ったと思っても2週間はウィルスが便、嘔吐物で排出される。
ぼくの体調は完調じゃないのに、ウィルスさんお元気ねぇ!!
これ以上、感染者を出さないためにも「2 週間の在宅勤務」。まあ、英断だよね。
ちなみに、会社の近くに引越してから初めての在宅勤務。歩いて 10 分ほどの位置にオフィスがあるのに在宅してる、ってのは何か不思議な気持ち。これだけ家とオフィスの距離が近いと、次に在宅勤務をするのは何年後かしらん。
在宅勤務についての所見は、過去記事に書いてある。
今のぼくは、これ以上のことは書けないけど、この在宅勤務期間が終わったら何か記事を書くかも。
とりあえず、今日一日やってみての感想。
会社は部屋が広いので暖房がいくら強力とはいえ、暖まるのに時間がかかる。8 畳程度の (会社と比べて) 小さな部屋ならちょっとした暖房ですぐ暖かくなる。地味にメリット。
会社ではランダムに音楽を再生しているけど、家ではオーディオを使って音楽が楽しめる。音楽好きな自分にはたまらない。
会社では専らコーヒー派のぼく。緑茶もほうじ茶も飲むんだけど、会社と自宅の両方に全部をセットするわけにもいかなくて... リラックスできる環境は自宅だからこそ作れる。ただし、コーヒー/緑茶はまだ刺激が強くて飲めない。お腹がまだ本調子じゃない。これはツライところ。
会社の机はやっぱり広い。ぼくの机は、キッチン・ワゴン! 狭い!! これに 24 インチのディスプレイと Kinesis のキーボードを置いたら、殆んどのスペースを取ってしまう。昔は大きな机を持ってたんだけど、扱いきれず引越のタイミングで捨てちゃった。
会社の椅子はイイ! パイプイスで 8 時間座るのはつらい。快適さだけを取れば、座椅子の方が快適なんだけど、その高さに合う机がなくてねぇ。それに、どうも座椅子で PC をタイプするのは、どうもぼくの性に合わないみたい。
そして一番のデメリット。初日にして。寂しい。オフィスとの距離が近いのも原因の一つかな。あんな目と鼻の先で、ワイワイガヤガヤやっている! それに交ざれないのが、なんとも切ない。
体調はおかげさまで 9 割回復、と思って昨日、コーヒーをオーダーしたら随分、胃にこたえた。身体は正直ね。気力は 10 割。体調 6 割くらいなのかもしれない。コーヒーが好きなので、コーヒー飲めないのはもどかしい。
ChatWork に意見・要望フォーラムができている。
意見や要望を出せるのは当然として、投稿済の意見・要望を閲覧 & 投票することができる。例えば、スクリーン・ショットを見ると「メッセージの書き込みとファイル送信を一度にする」という要望がホット・アイデアのトップに来ている。投票数は 172。ホット・アイデアの 2 位は 93 票で「プログラムのソースコードを挿入したい」というもの。
一番最初に意見・要望を書くのは敷居が高いかもしれない。
さらりと眺めて、好みな要望があれば一票「投票」しておくだけなら、手間もかからないし、他の人がどんな要望を持っているのか分かるので面白いと思う。時間があればどうぞ。
最近、この手の「投票」機能付きの要望フォーラムが増え始めた。ぼくの知るところでは、feedly が同様の要望フォーラムを開いている。
要望の見える化は、使ってるユーザーとしてもどんな機能が望まれているか (→ 望まれてる率が高いほど、採用される率が高そうな期待が持てる) という意味で、また自分がコメントを追記してアイデアを更にブラッシュ・アップさせられるという意味で、良いものと思う。
先日、私的プロジェクトで ChatWork の Emacs クライアントを開発・紹介した (see also. clmemo@aka: ChatWork に入社しました)。
今日 (2014-12-10, Wed) は公式プロジェクトのお話。
チャットワークの Android アプリがメジャー・バージョンアップした。開発プロジェクト名 The Shard。バージョンは 3.0。
これは Titanium で作られていた前プロジェクトを、(Android 本格の開発言語である) Java で書き直したもの。メリットとして、次の様な事柄が上げられる:
新しい ChatWork アプリは Material Design を採用して UI 構築されている。
簡単に新しくなった ChatWork アプリをウォークスルーしてみる。
まずはチャットルーム一覧。虫めがねマークをタップすると、チャット名をインクリメンタル検索できる。スクリーンショットでは「chat」と入力した。すると、会社名に「chat」が入ってる人達のチャットルームが表示された。ルームの検索が楽にできる。
左上のアイコンをタップすると、サイドバーが現れる。サイドバーの中身は、チャット・タスク・コンタクトそして設定。
一足先に「設定」を見てみる。うん、バージョンは 3.0.3。最新版! ちなみに「ChatWork について」をタップすると、アプリで使っているオープンソース・ライブラリーのライセンス一覧が表示される。気づいてた?
チャットからルームを選択するとタイムラインが表示される。表示が前バージョンより高速化されたはず。初回だけ読み込みが遅い時があるかもしれない。その時は、バック・ボタンで戻って再表示。う〜ん、コレ、再現性があるのかないのかよく分からなくて困ってる。
ちなみに、チャットのタイムラインで画面を右にスワイプすると、その「チャットルーム」のタスク、そしてその「チャットルーム」のファイルを見ることができる。
自分に振られたタスクを全部見る場合は、サイドバーを開いて「タスク」を選択。おっと、この画面はぼくの個人アカウントなんで未完了タスクは一つだけ。
という感じで、新しくなった ChatWork アプリをウォークスルーしてみた。
ぼくは、iOS アプリの開発を進めていて、この Android アプリについてはバグ出しテスターな役割くらいしか関わっていない。でも、自分の Nexus 7 で会社のチャットを見たりするために Android アプリは使ってた。いわゆる、ドッグフードを食べる (自社サービスを使う) ってやつだけど、日に日に使い勝手が良くなっていったのを実感した。
新バージョンの ChatWork for Android 3.0 (The Shard) を楽しんで頂けたら幸い。
chatwork.el —— いわゆる ChatWork for Emacs —— を作った。ソースは github にある。今、サポートしている機能は、ルームを選択してメッセージを送信するだけ。
MELPA に登録したので、Emacs の package システムからインストールできる。
過去記事にも書いたけど、2014 年 4 月、ChatWork 株式会社に入社した。同社の主力サービス チャットワーク は会社向けのチャット・サービス (もちろん、個人での利用しても問題ない)。チャット機能にタスク管理をひもづけているのが特徴。一人 5 GB のファイル・ストレージ機能やビデオ通話機能といった機能がある。
IT 企業で働く楽しみの一つに「ドッグフードを食べる」ことが挙げられる。これは、自社サービスを自分たち自身で日常的に使うことを指す。一つ反例を挙げるなら、ぼくはケンウッドという音響メーカーに入社したけれど、就業中に音楽を聴きながら作業することはできなかったし、ケンウッドのアンプやスピーカーを買って使うこともなかった。一方、ChatWork 社では、自社サービス・チャットワークを使って日常的に業務を行なっている。
さて、ぼくは Emacs エディター愛用者。当ブログのタグ・クラウドを見れば、5 番目に多く書いているのが Emacs 関連の記事なことが分かる。このブログ記事も Emacs で書いているし、多くのプログラムを Emacs でコーディングしている。昔は Android のソースコードも Emacs で書いていた。流石に iOS アプリは XCode で書いているけれども... ともかく Emacs から離れられない。
ぼくが会社でチャットワークを使う時は、Emacs でテキストを書いてから、それをチャットワークの入力フォームへコピーしている。なんで、Emacs から直接チャットワークにメッセージを送れないんだろう?
誰もやらないなら、自分でやるしかないじゃない!!
そんなわけで、週末を使って chatwork.el を書いた。ChatWork 社内で ChatWork Advent Calendar 2014 をやることが決まったので、そのネタにもなると思った... りはしないよ!?
Advent Calendar の記事では少し優しめに chatwork.el の説明を書いた。YouTube に 40 秒のデモ・ムービーもアップして、Advent Calendar 記事の中に貼り付けたりもした。初めて ChatWork という名前を聞いた方は、上記記事も併せて読んで頂ければ嬉しい。
インストールの手順を書いておく
(setq chatwork-token "YOUR CHATWORK API TOKEN")
準備完了。
用意しているコマンドは 2 つだけ。
M-x chatwork-send-message はミニバッファーからメッセージを入力後、送信先たるルームを選択する。
M-x chatwork-send-message-in-region は予めリージョンで囲んだテキストをメッセージとしてルームに送信する。ルームの選択方法は chatwork-send-message と同じ。
久しぶりに EmacsLisp でパッケージを作った。url.el で外部プログラムを呼び出さず HTTP メソッドを叩いたり、レスポンスの JSON コードを json.el を使って解析した。ネット系の組み込み EmacsLisp パッケージを使うのは初めてで、色々とまどった。
MELPA に自分で登録するのも今回初めて自分でやってみた (clmemo と blgrep が MELPA に入っているけど、あれは他の方がやって下さった (感謝!))。
url.el, json.el, MELPA の登録については、後日記事を書きたい。自分の得た知識を定着させるために。
chatwork.el については、やりたいことが山積している。メッセージを作成するメジャー・モードを作りたい。タスクの登録を行ないたい。ファイルの送信をサポートしたい。少しずつ進化させていくつもりなので、温かい目で見守って頂ければありがたい。
2014-09-18 (土)、五反田はfreee 社のオフィスにて開かれた ReactiveCocoa Tokyo にて LT をやってきた。
タイトルは「distinctUntilChanged の使いどころ」。ReactiveCocoa で基本となる RAC
マクロと RACObserve
の使い方から始めて map
や subscribeNext
を使った書き方。循環参照を避けることができる便利な rac_liftSelector
での書き直し。RACSignal
を作ってシグナルを使い回す方法を一連の流れで紹介した。その後、ChatWork のライブ機能 (ビデオ・チャット機能) を例に少し込み入ったコードを書いて、問題点を提起。解決策に distinctUntilChanged
を使う、という内容。
今回は初めて Mac の Keynote アプリを使ってプレゼン資料を作ってみた。今までは Goodle Slide だったので、使い勝手の小さな違いに苦しんだ。何より話の流れがまとまらなくて、かなり足ぶみした。資料が出来たのは発表当日の午前 3 時だった。5〜10 分の LT 枠なのに、資料の枚数が 20 枚になっていて、再び頭を痛めた。
本番では早口になってしまったけど、大丈夫だったかな? ReactiveCocoa の入門的な内容にもなるよう資料を組んだつもりなので、参考になったら嬉しいな。
ReactiveCocoa 関西から約 3 か月。話すネタはなくなったかな? なんて声も聞こえたけど、懇親会ではまだ知らない ReactiveCocoa の便利なメソッドや思わぬ落とし穴の話を聞くことができた。1 時間近い大きな講演は難しいかもしれないけど、30 分くらいのトピックならまだまだザクザクとネタが残ってるんじゃないかな。
今日は帰るだけなので、張りつめていたものが切れたよう。朝食は四日目にお世話になった Panera Bread (結局、朝ごはんは Paris Baguette か Panera Bread の二択で終わってしまった)。オーダーは白い玉子とアボガドとほうれん草の朝食パワー・サンドイッチ (Egg White, Avocado & Spinach Breakfast Power Sandwich)。
食後は一路空港へ。ホテルからサンフランシスコ国際空港へ向かうシャトルバスを待つこと 15 分。来ない! 確認してもらったら、忘れていたとのこと。この大らかさがアメリカ! 更に待つこと 15 分。シャトルバスがやって来た。
アメリカはクレジットカード社会。朝食から夕食、カフェにタクシー (というか Uber) まで全てクレジット・カード決済。現金を使ったのは、ホテルのベッド・メイキング用チップと路上駐車場くらいしかなかったと記憶している。なので、シャトルバスが「No card. Cash, cash!」と言った時には慌ててしまった。
搭乗時間には余裕を持っていたので、免税店を回ったり、Il Fornaio Caffe Del Mondo でカフェ・オレを注文したりして優雅な一時を過ごす。
サンフランシスコ時間で 14:30 頃離陸。まずはお菓子が一袋。
チキンの晩ごはん。
パスタの朝ごはん (?)
仁川に 19:15 頃着陸。
そして今、仁川国際空港の無料 Wi-Fi を使ってブログ記事をポストしている。20 時半頃に羽田行きに搭乗して、日本時間 23:05 に到着予定。帰る電車がないので... さて、どうしようかな。
雨降る仁川を横目で見ながら考える。
明日の昼、日本へフライトするので、実質最終日。起床は 6 時。朝食は三度 Paris Baguette。ただ、三度目ともなるとね、「アメリカン・サイズ」というものが分かってくる。二つ入ったサンドイッチ・ボックスを買って、二人でシェアーした。一つでもサイズ十分。
今日の主戦場はサンフランシスコ。「霧のサンフランシスコ (原題: I Left My Heart in San Francisco)」という曲があるほどに霧が有名なサンフランシスコ。その巨大な霧をハイウェイから望む。
サンフランシスコにも (シリコンバレーに負けず) IT 企業が沢山ある。代表格の一つ、Github を訪問。ビルの入り口に Github のマスコット・キャラクター Octcat が目を光らせている (?)。
受付前にはショーウィンドウ。オクトキャットに...
オクトキャットの骸骨。
Github の「Pull Request」を作った三人のうち一人 Ryan "Turn Up King" Tomayko が使っていたラップトップ PC。
ガランとした社屋。
ランチは Crossroads Café。オーダーはカリビアン・チキン・サラダ。シスコでインターンしている方と待ち合わせ。技術話に頃を咲かせた。
この後、デザイン会社のスタートアップを訪問したり、ChatWork のサンフランシスコ・オフィスでディスカッションしたり、技術系スタートアップと会ったりして、一応の予定は消化終了。
時間が少しあったので、観光もした。
霧がかかるゴールデン・ゲートブリッジ (とても寒かった)。
急勾配で有名なロンバート・ストリート。
車窓からベイ・ブリッジ。
晩ごはんはパロ・アルトにある冨貴寿しへ。
久しぶりの畳!
一品目。
舟に乗った 4 人前のお寿司! 美味!!
閉店時間の 22 時まで食事と会話を楽しんだ。
最後の締めは、社長宅にてインタビュー。(引き続きシリコンバレーへ来るであろう) 他の社員へ向けてのメッセージ、一週間のシリコンバレー訪問で得たこと、etc.
ホテルに帰ったら、ベッドに入る前に力尽きて (掛布団の上で) 寝落ちした。
シリコンバレー訪問 4 日目の様子。
起床は 7 時。二日連続、朝食を Paris Baguette で摂るのは面白くないね、ということで新規開拓。Panera Bread というパン屋さんに挑戦。ベーコンとチーズと玉子のサンドウィッチを注文。意外とサイズが小さくて、朝食にはピッタシ。
朝食後、車に乗って Trader Joe's というスーパー (?) へ。日本にはない面白い食材・調味料・食品に目を奪われる。エコバッグも販売中。小さなサイズから大きなサイズまで。一番小さなエコバッグは、なんとワイン用のエコバッグだった。
シリコンバレーを代表する大学 Stanford University を訪ねた。大学設置は 1891 年。ヒューレット・パッカード、Yahoo!, Google, といった世界で名だたる IT 企業がこの大学から羽ばたいていった。IT の歴史とは切っても切り離せない大学。
芝生が調えられた広場から大学へと入ってゆく。
スタンドガラスの綺麗な建物。
石造りの通廊。壁面には「INFORMATION」の文字。
物理屋としては気になる文字の入った建物。「CENTER OF TURBULENCE RESEARCH」。Turbulence は「乱流」の意味。
ロダンの「カレーの市民」(複数あるうちの一つ) もスタンフォード大学にある。
ちょっとスタンフォードの大学生の真似をしてみる。
大学内にあるフーバー・タワーは観光名所とのこと。約 87 m の塔。
フーバーって、初代 FBI 長官のジョン・エドガー・フーヴァーかと思っていたら、第 31 代アメリカ大統領のハーバート・フーヴァーだった。
塔の上から見える敷地は全てスタンフォード大学とのこと。広い!!
塔には巨大なベルも。楽譜が置いてあったけど、この曲を鳴らすのかな?
フーバー・タワーを降りたら購売へ。「Atack on Titan (進撃の巨人)」の英語版コミックスが売っていた。びっくり!
最後に大学の入り口から芝生広がる広場を撮影。良い風景。
お昼は中華のお店でアラカルト。
昼食後は、インキュベーション・センター Plug and Play に戻ってブレスト。
夜は Hacker Dojo で開かれたイベントに参加 (プレゼンターは ChatWork 社長の山本敏行)。
スタンフォード・キャンパス巡りがとっても楽しくて、はしゃいで、眠い...