読者です 読者をやめる 読者になる 読者になる

徒然日記 - 突発的呑み会と渋谷の工事

仕事終わりにお誘い頂いたので居酒屋へ突入してビールとハイボール

渋谷駅近くの歩道橋から眺めた工事の様子は渋谷の街を作り変えている様に見えた。ここ数年の間でも大分様子が変わるもんだな。

f:id:hideack:20170422095023j:plain:w500

googleカレンダー(iCal)の内容を読み取ってSlackのユーザーステータスを更新する

Slackでユーザーのステータスを更新できる様になりました。

Set your status in Slack – Several People Are Typing — The Official Slack Blog

これを知ったときにカレンダーの予定を読み取って自動的にステータス更新できたら自分の予定を自分に声をかけようとしている人に対して知らせることができるなと思って、APIでも更新できることを知ったので雑に社内で使っている自分のGoogleカレンダーの予定をiCal経由で読み取ってSlackのステータスを更新してみるのを試してみました。

もしこれができると、自分が社内の用事で離席をしていたり外出しているときなどにSlackで何らか声をかけていただいても反応できないときに状況を把握してもらえたり、外部から御電話いただいたときも代表電話を受け付けていただいた方がわざわざ自分のカレンダーを開いて予定を確認していただくといった手間も多少は緩和できそうだな。と。

ということで、こういうときの実験台には当方作成のevacで実験をします。入力をiCal、出力をPOSTリクエスト指定すればよさそう。

なお、出力で指定しているtokenはこのページで取得できます。

以下の様なYAMLを用意して、evacで実行。

in:
  ical:
    url: https://calendar.google.com/calendar/ical/hideack〜/basic.ics
    within: 1
out:
  httpPost:
    url: "https://slack.com/api/users.profile.set"
    body:
      form:
        token:profile: '{"status_emoji":":clock2:", "status_text":"__word__"}'

これを定期的に実行すると実行時から1時間以内の予定があればSlackのステータスが更新されます。

例えば、下は4月16日 12:00〜 「slackステータス更新試してみるテスト」という予定があった場合。

ステータスを示すアイコンにマウスカーソルを合わせると

f:id:hideack:20170416113246p:plain

といった感じで表示されますし、DMを送ろうとすれば入力欄に

f:id:hideack:20170416113310p:plain

と表示される様になるので当方がいま外出しているかだったり、ミーティング中なのかだったりはお知らせできそうな感じがします。

Slackはこういった形で基本的なコミュニケーションツールとしての基礎の上にプログラマブルに拡張できたりしていく仕掛けを備わっているのが本当に素敵だなぁ。といつも思う。

参考

qiita.com

こんな感じで毎日手帳へメモしてますという話

普段仕事をしている机の上で広げていたり、仕事で生じた外や社内でのミーティングで常にMacbookほぼ日手帳のデカイやつ(カズンといいます)を抱えて回っていて、メモを取っている様子を見た人から「いつもメモってますね」「メモの字が小さい!」「パソコンと紙のメモで使い分けてるんですか」と質問いただくことが数回あったので自分なりにこんな形で使っていますというご紹介。

正直こういったメモの取り方は右往左往を続けていて、完全にPC上に寄せてみたり所謂大学ノートにしてみたりルーズリーフ使ってみたりといろいろ試していたのだけれども、いまいまはこうしていますという話。手帳術といったところまでのレベルではないですが、4月という時期でもあるので、もし何か参考になるところがあればこれ幸いです。

さすがに実際の業務をメモしているページは貼れないので、今日のページへこんな形でやってみていますというのを書いてみました。

f:id:hideack:20170409205235p:plain

手帳にかいていること

TODO

基本会社ではタスクをgithub issueとして書き起こしていることが多いのでここで書くのは更に細かく砕いたり個人的に消化しないといけないタスクについて書き起こします。

ほぼ日手帳には右上に欄が設けられているのでそのまま利用しているので、基本的に席についたら手帳を開いて、まずその日のTODOになっていることを右上のTODO欄に記載します。 そして、消化したらチェック欄にチェックを入れて、仮に消化しきれないことが生じた場合は二重線で取り消した上で次の日のTODOにすぐ書き写します

こうするといつの間にか消滅といったことも無いですし、そもそもこのあたりが滞留してきたら自分がボトルネックになっているという状況なのでタスクを適切に委譲したり仕組み化しないといけない状態だなと認識できます。

業務メモの場合

ページの大半を占める部分をメモとして利用します。ページの左側に一日の予定を時系列に書ける様にタイムラインが設けてありますが、これは別にウィークリーページがあるのでそちらに記載しています。

さて実際に取り掛かっていく仕事に対して自分は必ず見出しを付けていきます。

例えば、「◯◯用の資料提出」とか「〜について検討」といった感じで一つの仕事毎に区切りをつけていく意味を込めて見出しにします。 続けてそこで行った作業について箇条書きで起こしていきます。例えば資料提出だったら

  • ◎ ◯◯用の資料提出
    • 数字取得
    • google docsのシートに反映
    • ◯◯について経理に相談 → 解決

と言った具合に生じたオペレーションをメモしていきます。こうするとふと振り返ったときに「あ、無駄なことしたな。」といった気づきになることも多いので簡単でよいので書く様にしています。 ポイントは箇条書きにすることで頭の中で咀嚼できている証明だしメモを取っていくことへの負担が小さくなると思います。

オペレーションではなく、考えることが主な業務の場合は何かしら図を描く様にしています。格子があるのでフリーハンドでもまっすぐな線が引けるのでチャートだったり表だったりを随時整理しながら描いていきます。 大事なのは他人に見せるためのものではないから、 雑でもよいので書き出すこと。書き出して目を通してフィードバックがかかることで更にもう一段落とし込んで考えられる気がしています。

こういったところがPCでメモを作っているとできないところなので個人的には紙のメモがどうしても手放せないというのが現在までの自分の結論です*1

ミーティングのメモの場合

ミーティングのメモの場合は見出しをつけたときにまず予定時間を書くことをします。 次に決めることを書き出す様にしています。こうすることで「この時間までに何を決めないといけないか」を意識することができます。

実際にミーティング中はPCでメモを取る様にしていて、何故かというと議論のスピードを殺さないで済むことが多いと感じていて、どうしても紙にペンよりかは自分の場合はキーボードでタイピングするほうが数倍早く記録することができる*2ということもあるので、そのほうがきちんとミーティングに参加している方の話を聞きながら記録することができるという理由だったりします。

ただ、PCでメモをとった後も自分の席に戻った後に手帳へPC上で記録した内容を要約したものを書き写します。そうすることでTODOになったことの再確認だったり、更にもっと考えないといけないところが把握できます。

報告事がある場合は枠を用意して貯めておく

予めその日に報告をする必要があるミーティング等があることがわかっていれば、一日がはじまるときページの右下に自分で枠を作っておきます。

例えば自分の場合、隔日の終業前に事業部内での共有を行うミーティングがあるのでそこでシェアしたほうがよいなという情報が生じたら随時そこに書き出すようにしています。そうしないと、いざミーティングの場になって共有漏れが生じたりすることがあるためです。

使う記号

恐らく高校生のころから使う記号の意が大きく変わってなくて以下の様に使い分けてたりします。

  • ◎ : 一区切り (今の手帳上だと業務の一区切り)
  • ☆ : 大事なこと
  • ・ : 箇条書き
  • ・(に点々がついたやつ)*3 : 気づき, ポイントだと思っていること

これは、人にお薦めというよりかは自分のなかでずっと使い続けているルールですが、自分なりのわかりやすい記号(アイコン)を設けるのはよいなと思っています。

その他

雑誌だったりの切抜だったり、紙でもらった資料もベタベタ貼っています。液体ノリを使って貼り付け。

以前はファイルに分けることも試そうとしたのですが、結果情報が散っていることに気づいたので、そうであれば手帳に集約させようと考える様になって全て寄せています。

仕事以外のことも書く

基本的に一日の業務のフローを記録していくために手帳を使っているのですが、仕事以外のこともメモしています。例えば、自分の場合左下に一日の食事の内容書いていたりするので、稀に見返すと飲み過ぎだな。とか、麺を食べ過ぎだなといったところに気づけます。


こんなところが、社会人10数年目の自分なりのメモ術だったりします。

やり方はひとそれぞれだと思うのですが、一つのやり方に固執することはないかなと思います。とりあえず自分が心がけているのは 「人間は必ず忘れるのでメモは何らか細かくとったほうがよい」 ということです。それがストックしていくことによって振り返ることができると思います。

*1:iPadとかでもできるとは思うのですが、頭に浮かんでから図や票に落とすまでのスピードがどうしても紙のほうが早い

*2:このあたりは世代によって違うんだろうなと、最近よく思う

*3:このマークがホワイトボードにあると私が議事録をとったとすぐわかる

今年もたくさんの桜をあちこちで見た。上の桜は今日見た桜だけれども、一層色が染まった花びらが少しずつ散り始めていてとても綺麗だった。綺麗だけど切ない。

昨日、会社でチームのみんなとお昼ごはんを食べた後、桜並木を眺めながらオフィスにもどった。

来年も桜をみるのがとても楽しみ。

pickup.calamel.jp

2017年3月に読んだ本を振り返る

雑誌も入れて14作品。

社員の力で最高のチームをつくる――〈新版〉1分間エンパワーメントは情報の共有と境界線(=ゴールと役割)を明確にし、その上でセルフマネジメントできる組織へという一連のエンパワーメントしていくための流れを読み物調で書かれていて読みやすくわかりやすかった。良書。

DeNAのサイバーセキュリティ Mobageを守った男の戦いの記録はCSIRTというサービスの収益へ直接的に繋がらない組織をどの様に立ち上げていったかといったことがまとめられた内容。具体的に社内でどの様な理解を求めながら進めていったかが書かれていて興味深かった。

Amazonをつくったジェフ・ベゾス (時代をきりひらくIT企業と創設者たち)は子供向けに書かれていた本ではあるのだけど、どういった内容が書かれているのだろうかと興味を持って読んでみたら一般的なビジネス書で出版されているAmazon創業の歴史として書かれている内容と変わりがなくて驚いたのと、こういった本を読んでこの業界に興味を持って育った世代とそのうち一緒に仕事をする機会が出てくるんだろうなとふと思った。


hideackの本棚 - 2017年03月 (14作品)
powered by Booklog

ボールペンの替芯

昨年末から使っているボールペンのインクが切れたので入れ替えた。 使っているボールペンは以下のお店で購入できる木製のボールペンで使っているうちに一層手に馴染んでくる感があってすっかり手放せなくなってしまった。

handmade-mibu.shop-pro.jp

ボールペンの替芯として、CROSSタイプか三菱鉛筆のSK-8のいずれかが使えるのでロフトで後者のものを求めた。いままであまり意識的に眺めたことがなかったのだけど、ボールペンの替芯の棚だけでもいろいろな種類があるのだなと気づいた。この歳になって。

いままでボールペンも使い捨てのものを使ったりしていたのだけれども、これをじっくり使っていく所存。

ブロックチェーン基盤Hyperledger Fabric の環境をdockerで作る (ローカルに立ち上げ編)

ビットコインとブロックチェーン:暗号通貨を支える技術といった本を読んだりだとか身辺でビットコインの話題が出るに連れ、個人的にはブロックチェーンに興味があるのでそのあたりの環境を作るのに手軽な基盤はないかなと見ていたところHyperledgerというプロジェクトを知った。 Hyperledger自体はLinux Foundationが進めているブロックチェーン技術に関するオープンソースコミュニティーで、そこで開発されているブロックチェーンの基盤にHyperledger Fabric*1があり、他にも複数のプロジェクトが推進されている。(詳しくはこちらのページが詳しい)

f:id:hideack:20170320171631p:plain:w350

Home | Hyper Ledger Foundation Home | Hyper Ledger Foundation

Fabric自体はDockerHubにイメージが提供されているので、これを使うとローカルにもFabricによるブロックチェーン基盤を立てることができるということなので試してみた。 まずはイメージをpullする。

$ docker pull hyperledger/fabric-membersrvc:latest
$ docker pull hyperledger/fabric-peer:latest

fabric-membersrvcが証明書等のCAとなるコンポーネントのコンテナ、fabric-peerがブロックチェーン内でのpeerのコンテナに該当する。 membersrvcと少なくとも1つpeerを立ち上げる必要があるので、pullが完了したら以下の様なdocker-compose用のYAMLを用意する。

membersrvc:
  image: hyperledger/fabric-membersrvc
  command: membersrvc
vp0:
  image: hyperledger/fabric-peer
  ports:
    - "7050:7050"
  environment:
    - CORE_PEER_ADDRESSAUTODETECT=true
    - CORE_VM_ENDPOINT=http://172.17.0.1:2375
    - CORE_LOGGING_LEVEL=DEBUG
    - CORE_PEER_ID=vp0
    - CORE_PEER_PKI_ECA_PADDR=membersrvc:7054
    - CORE_PEER_PKI_TCA_PADDR=membersrvc:7054
    - CORE_PEER_PKI_TLSCA_PADDR=membersrvc:7054
    - CORE_SECURITY_ENABLED=true
    - CORE_SECURITY_ENROLLID=test_vp0
    - CORE_SECURITY_ENROLLSECRET=MwYpmSRjupbT
  links:
    - membersrvc
  command: sh -c "sleep 5; peer node start --peer-chaincodedev"

上を準備した上でコンテナを立ち上げると

$ docker-compose up

Starting fabric_membersrvc_1
Starting fabric_vp0_1
Attaching to fabric_membersrvc_1, fabric_vp0_1
vp0_1         | 07:33:18.451 [logging] LoggingInit -> DEBU 001 Setting default logging level to DEBUG for command 'node'
vp0_1         | 07:33:18.451 [nodeCmd] serve -> INFO 002 Running in chaincode development mode
vp0_1         | 07:33:18.451 [nodeCmd] serve -> INFO 003 Set consensus to NOOPS and user starts chaincode
vp0_1         | 07:33:18.451 [nodeCmd] serve -> INFO 004 Disable loading validity system chaincode
vp0_1         | 07:33:18.452 [peer] func1 -> INFO 005 Auto detected peer address: 172.17.0.3:7051
vp0_1         | 07:33:18.454 [peer] func1 -> INFO 006 Auto detected peer address: 172.17.0.3:7051
(snip)

何やら動き始めた感があるので、サンプルユーザーとしてJimというユーザーが登録されているのでAPIを叩いてみる。

$ curl -X POST -H 'Content-Type: application/json' -d '{"enrollId":"jim","enrollSecret":"6avZQLwcUe9b"}' http://localhost:7050/registrar
{"OK":"Login successful for user 'jim'."}

また、ブロックチェーン自体も素朴に http://localhost:7050/chain を開くと確認できる。

HTTP/1.1 200 OK
Access-Control-Allow-Headers: accept, content-type
Access-Control-Allow-Origin: *
Content-Length: 123
Content-Type: application/json
Date: Mon, 20 Mar 2017 07:55:16 GMT

{
    "currentBlockHash": "RrndKwuojRMjOz/rdD7rJD/NUupiuBuCtQwnZG7Vdi/XXcTd2MDyAMsFAZ1ntZL2/IIcSUeatIZAKS6ss7fEvg==",
    "height": 1
}

こういった形で何やら動き始めるところまでは確認できたので実際に諸々試すのはまた次回。

備考

この本で大雑把に技術周りも含めて把握したつもりなのだけれども、なんらか手を動かさないとどうもピンとこない性分なので試してみている。

ビットコインとブロックチェーン:暗号通貨を支える技術

ビットコインとブロックチェーン:暗号通貨を支える技術

https://www.hyperledger.org/

*1:Pythonのツールと名前が被りますね…