じまろぐ

めめ

Slackのステータス機能を活用するためにアプリを作った

Slackのユーザーステータス、使ってますか?Slack上で絵文字+テキストによって自身の状態を示すことができる機能。

f:id:nakajmg:20171124155907p:plain

メッセンジャー系ソフトウェアの機能としては目新しいものではないが、コミュニケーションの質を向上させるポテンシャルがあるなと感じている。

リモートワークとステータス

リモートでは基本のやりとりは非同期だが、たまーに同期的なコミュニケーションが必要なときに相手がどんな状態でいるのかを知りたいときがある。

自分の状態を示したいときもある。カフェで仕事してるときとか。

この状態のやりとりにSlackのステータスがうまく機能するようにできればいいのでは?と考えた。

最近移転した弊社オフィスを作業場所として使うことが多くなってきたので、オフィスに誰がいるのかを把握するのにも使えそうだな〜と思っていたところ、次のようなエントリを読んだ。

ステータス変更を自動化する

polidog.jp

このエントリではつないでいるSSIDをもとにSlackのステータスを変更するというコマンドラインツールを作ったと紹介していた。

この方法は自身の状態を大まかに示すのに最適だなと思った。

ただコマンドラインで動作するツールというのが、同僚にインストールしてもらうのには障壁になりそうだなと思った。

Electronでアプリを作った

f:id:nakajmg:20171124155339p:plain

https://nakajmg.github.io/SlackStatusChanger/

メニューバーで動作するアプリをElectronで作った。

機能は👇のような感じ

SSIDによるステータス変更

つないでいるWi-FiSSIDによってステータスを自動で変更する。

https://nakajmg.github.io/SlackStatusChanger/ss/preference_02.png

サスペンド時のステータス変更

PCがサスペンドしたときにステータスを自動で変更する。設定はSSIDと紐付ける。

例えば、オフィスのネットワークにつないでいるときにPCを閉じたときなどに離席中といったステータスに自動で変更するように設定できる。

https://nakajmg.github.io/SlackStatusChanger/ss/preference_04.png

ステータスのリスト作成

Slackの場合、デフォルトのステータスは5個までで、チーム全員で共有される。

このアプリではアプリごとに好きなステータスのセットを保存しておけるので、よく使うステータスを1クリックで適用することができる。

https://nakajmg.github.io/SlackStatusChanger/ss/preference_01.png

アプリを活用するために

作ったアプリでステータスの変更が超カンタンにできるようになったが、メンバーのステータスを知る手段が名前の横に表示されているやつしかない。

これだとあまりステータスが有効活用できないので、botとスラッシュコマンドを作って追加した。

ステータス変更通知bot

ステータスの変更を監視して、変更があったステータスをbotに通知させるようにした。

f:id:nakajmg:20171124171311p:plain

heroku上で特定のURLを叩くとSlack APIでステータスを取得して、前回の結果との差分を取得して専用のチャンネルに流すようにしている。

URLを叩くのにはGoogle Apps Scriptの分タイマーを使ってる(herokuのschedulerがイマイチだった)。

ソース https://github.com/nakajmg/SlackStatusNotifier

ステータス一覧コマンド

メンバーのステータスを一覧で見たかったので、スラッシュコマンドを作成して追加した。

f:id:nakajmg:20171124170201p:plain

通知と一覧によってステータスの可視化ができるようになってアプリの利用価値も高まったように思う。

おわり

DLはこちらから

https://github.com/nakajmg/SlackStatusChanger/releases/tag/v2.2.0

フィードバックお待ちしております 😆

[追記] サインインとSlackへのインストールについて

アプリにサインインするにはManage PermissionでSign in with Slackを有効にする必要があります。

f:id:nakajmg:20171124185352p:plain

SlackのApp Directoryに乗せる審査を通していないので、Teamの設定でNon distributedなappのインストールが許可されてない場合にはサインインでエラーになります 🙇🏻。(PermissionのOnly allow apps from the Slack App Directoryが有効な場合)

また、インストールにAdminの許可が必要な場合(Approved Appsが有効な場合)にもサインインでエラーがでますが、インストールが許可されると使えるようになります。

サインイン以外にTokenの入力でもアプリを使えるようにするか検討中です🤔

VS Codeへの乗り換えをあきらめた話

Veturのチカラを試したくてVS Codeに乗り換えようと試みました。

nakajmg.hatenablog.com

が、Vueのアプリを書くうえでは、ちょっと耐えられないなという部分があるということで乗り換えをあきらめました。

足りない

.vueファイルへの対応

vscはintellisenseという賢いやつがパスとか色々いい感じに解決してくれますが、.vueのファイルをうまいこと認識してないようで、import fromしたファイルに飛ぶのがうまくいかないパターンがありました。ファイル名の補完も同様。

ショートカットキーの設定

ショートカットキーをWebStormに寄せるためにカスタマイズしましたが、¥ にショートカットを割り当てる方法がみつかりませんでした。cmd+¥をエディタのツリービューのトグルにずっと使っているので、これができないのがかなりのストレスになりました。

またいつか

乗り換えはあきらめましたが、それでも良いところはいっぱいあるなと思えたので、WebStorm開くまででもないなというファイルを編集するときはvscを使うようにすることにしましたとさ。

おしまい

VeturのためにVS Codeを使ってみる

長いこと開発にはWebStormを使っているが、VueのLanguage ServerであるVeturのチカラを試してみたすぎて、VS Codeへ短期間の移行を決意。

Language Serverは各種言語やライブラリの、補完や構文チェックをサポートするやつで、veturをインストールするとVS Code上でVueの補完が効きまくるようになる。

1週間くらい試してみて問題なさそうだったら本格移行も考えよう

静岡JavaScript勉強会でVue.jsへの💓を話してきた

f:id:nakajmg:20161121154915j:plain

#3のときにこのスライドで名前とアイコンだけ登場してから1年半、ついに静岡JavaScript勉強会 #4でお気に入りなJavaScriptフレームワークのVue.jsについて話してきた。

👆今回の目標

今回は参加者に「Vue.jsなんかヨサソウだしちょっと使ってみようかな〜」と思ってもらうことを目標にして資料を作った🤔

📝 使った資料

🔗 💓 Vue.js (ブラウザのコンソールを開くと喋った内容が見れる)

この資料のまとめ

  • 💪 少ない学習で大きなパワー
  • 💨 軽くて速い
  • 👐 ライブラリ/ツールでどんな規模にも対応
  • 📖 ドキュメントがすごい
  • 🇯🇵 日本語コミュニティの存在

結果

参加者の何人かに「Vue.js使ってみよう」と思わせることができたようで☺

⚙ スライド作成に使ったツール

ahomu/Talkie を使ってみた。Markdownでイケてるスライドが簡単にできて良い感じ。

でもHTMLの中にMarkdown書くのと属性値編集するのがちょっとめんどくさいなと思った。文章はMarkdownで完結させたいし、その他の設定はJSで書いて使い回せれば楽だなと思って簡単なジェネレータを作った。

nakajmg/talkie-generator

MarkdownにHTMLのコメント文でページ名を設定して、そのページ名に対応するようにJSで背景画像とかレイアウトの種類を指定して使いまわせるようにした。ページの区切りは-----とか設定できるように。

文章と設定をわけて作れるようになって文章を書くモードのままスライドが作れた。

感想

今回は40分貰ったんだけど、そんな長く話した経験がなかったのでスライド作りからなにからいい経験になった。時間ありすぎて最初はアレもこれも内容に盛り込むか〜と書いてたけど、目標を設定してからはページの流れとかに気を使った。

あと今回は@polidogと同じ会で二人とも話す側になったのが少し感慨深かった(本当に少しだけど😌

f:id:nakajmg:20161121150844j:plain

さわやかのげんこつハンバーグ美味しかった🍖

謝辞

主催&誘ってくれた@tomofさん本当にありがとうございました🙏

交通費と宿泊費を出してくれた懐の深い弊社にも感謝感謝🙏

さいごに

弊社の技術メディアCodeGridでVue.js 2系の連載はじめました。基本的な使い方からvue-routerとかVuex使ったSPAの開発までフォローする予定なので、よろしくお願いします🙏

リモートワークを始めて起こった変化

リモートワークを始めてから、メンタル的にもフィジカル的にも変化があり、色々なことへの意識と考え方が変わった。変化には良いことも悪いこともどっちもあった。

リモートワークを始めたことで、自分には総じて良い変化が起きていて、まだまだこの仕事を続けられそうだなーと感じている。

前提

これを書いてるのは「リモートワーク万歳」をしたいわけではなく、こんな働き方をしてる人もいるよということを書きたかった。オフィスワークを否定したいわけでもない。リモートワークにもオフィスワークにもそれぞれメリット・デメリットがあり、合う会社・合わない会社があり、合う人・合わない人がいる。

また、一口にリモートワークといっても様々な環境や条件があるので、全てのリモートワーカーに当てはまるようなことではない。自分の働いている会社は、コアタイムが設定されていない完全自由裁量なリモートワークが許可されている。リモートワークを導入してる会社の中には、コアタイムを設定してる場合もあると思うので、そういった環境とは少し感触が異なると思う。

通勤時間

まず通勤時間について。

通勤時間と幸福度の関係については多くの記事で触れられているが、"通勤時間が長くなるほど幸福度が減る"という研究などの結果に異論を唱える人はあまりいないのではと思う(個人的にね)。

実際自分は通勤で電車に乗るのが大嫌いだったので、通勤がなくなって電車に乗る必要がなくなり、そのストレスが完全に消えた。x時x分までの電車に乗らないと遅刻する、という強迫観念もないし、満員電車に乗らなければならない、なんて憂鬱になる必要もない。

通勤の必要がなくなったことで、朝にゆとりができ、心の余裕が生まれた。好きな時間に起きて、着の身着のまま仕事に取り組む日も多い。朝に余裕ができると、早く寝ないと明日がつらい、みたいに考えすぎて眠れなくなることもなくなった。

一方で、通勤の時間がなくなったことでやらなくなったこともある。

電車に乗っている間にやってた習慣としてフィードの消費や読書があった。テック系の記事を読み漁ったり、ニュースに目を通したり、小説や技術書を読んだり、隙間の時間を使っていた。

この時間がなくなったことで、フィードの消費量・読書量のどちらも減った。キャッチアップに意識的に時間を割く必要があるので、若干心理的なハードルが上がった気がする。キャッチアップが以前よりもできてないのでは、と若干不安を覚えることもある。

読書、どうも自分は好きでやってたわけではないらしく、いつでも読める状態になったことでいつでも読まなくなってしまった(技術書は別)。

メンタル面

自分のいる会社は週に1回、オフィスで英会話のレッスンを受けられる制度がある。自分はこのレッスンを受けるために週1回オフィスに行って作業するようにしているが、それ以外の日は自宅を作業場としている。

通勤で外に出る機会がなくなったことで、もともと出無精だった自分は更に外に出なくなった。その結果、人と話をする機会が圧倒的に減少した。喋ってなさすぎてたまに人と合うときに「会話ってどうやるんだっけ…」な感覚になることもあった。

人間、ずっと1人でいると段々とマイナスの方向に行く気がしてて、自暴自棄に似たような状態に陥りそうになることがあった。今はリモートに慣れたのでなくなったが、食べまくったり、衝動買いが抑えられない、みたいな欲求をコントロールできない状態になってたこともある。

リモートを始めたばっかりの状態のときは、勉強会に多めに出たり、カフェワークを試してみたり、意識的に人と合ったり外に出る機会を増やしたほうがヨサソウ、と今の自分なら昔の自分にアドバイスしてあげたい。社会性が薄れていくのはあまりヨクナイ。

自宅を作業場にするなら部屋選びも要所でこだわったほうがいいポイントがあるな、というのもわかった。日当たり、場所、周辺施設、これについては別の記事で書く。

フィジカル面

自分の場合、基本的に家にいるので移動量がとにかく少ない。運動不足。通勤のちょっとした移動もなくなるので、なにもしなければオフィスワーカーよりも運動不足になる可能性がずっと高い。作業する場所にしっかりした机や椅子がない場合、姿勢が悪いせいで肩こりや腰痛が発生することも。

運動しなければ筋肉が落ちて代謝も減るので、カロリーを取り過ぎないように注意してる。移動がないことで、必要なカロリーも変わると思うので、朝・昼・晩、3食を食べるのが普通という考えは捨てた。その日の身体の状態によるけど、夜だけ食べる日が多い。

30歳を超えて、この働き方を続けるには身体の状態を意識していかないといけないと思うようになり、フィットネスに通うようになった。時間の制限もないので、好きな時間、好きな場所で身体を動かせる。

現状、昼のうちに仕事をすることが多いので、平日の夜に通うようにしてる。たまに昼に身体を動かしたくなるときもあるので、フィットネスに行ってからそのままどこかで仕事することもある。身体を動かすと謎の自身みたいなのが湧き出てくるので、心身ともに良い影響がありそう。

時間

時間的な制約がなくなったので、働きたいときに働いて、遊びたいときに遊べるようになった。色々なことへのモチベがアップしている。

個人的なプロジェクトを進める時間が自由に取れるので、以前より仕事以外のコードを書く時間が増えた。今はaigisというCSSのスタイルガイドジェネレータを育てている。

OSS活動など、仕事以外でいっぱいコードを書きたいという人には、リモートワークは合ってそうな気がする。もちろんオフィスワークしながらでもコードは書けるけど、朝早くとか、夜遅くくらいしか時間が取れない、という状況よりも配分はしやすいと思う(世の中にはコミッター採用とかGitHubスター制度みたいなのもあるから、リモートワークだけが手段ではないが)。

とにかくこの"時間"。時間があればなんでもできるし、時間がなければなんにもできない。

おわり

リモートワークを始めたことで時間に追われることがなくなり、色々とゆとりが持てるようになった。身体をケアするという意識も持てるようになって、健康な状態を保てている(と思う)。

リモートワークをしてる人たちの現状、いろいろと聞いてみたい感。

最近お気に入りの炭酸水

炭酸が飲みたいけど砂糖の入ってるやつは飲みたくない、ダイエット系のもヤダ、となると炭酸水の出番。

今までなんとなくウィルキンソンのタンサンを飲んでたけど、ちょっと浮気して他のを試してみたら戻れなくなった。

それがポッカサッポロのおいしい炭酸水。

炭酸の強さが抜群で、飲み切らないで冷蔵庫で保存しておいてもすぐに気が抜けるなんてこともない。飲んだときの口当たりもよくて、スイスイ飲める。お酒割るのにもよく使ってる。

ポッカサッポロ おいしい炭酸水 500ml×24本

ポッカサッポロ おいしい炭酸水 500ml×24本

特に気に入ってるのがレモンの風味がついてるやつ。スッキリとしたレモン風味で、めちゃくちゃ清涼感がある。風呂あがりに飲むのが最高だけど、ご飯のときにビールの代わりに飲んだりしてる。

ポッカサッポロ おいしい炭酸水レモン 500ml×24本

ポッカサッポロ おいしい炭酸水レモン 500ml×24本

毎日飲んでて1ケースが1ヶ月持たないから最近は2ケースずつ買うようにしてる。

2年半のリモートワークを振り返ってみる

フルリモートワークな会社に勤めて2年半が経った。簡単に振り返ってみる。

前職と現職

前職はごく普通の勤務体系(10:00 ~ 19:00)で働いていた。

今いる会社は全社員がフルリモートワークで、出社義務も一切なく、勤務時間も各自の裁量で決められる。業務はフロントエンドの受託開発をメインとしていて、CodeGridという自社の技術系メディアの運営もしてる。担当業務としては案件のフロント部分全般と、記事執筆がある。

コアタイムとかそういった規則が一切ないので、いつどこで働くかを自分でコントロールできる。そんな会社に入って2年半が経過したので振り返ってみる。

適応しようともがく期

いきなりフルリモートに適応できる人は稀だと思う。業務のことも同僚のこともわからないので、最初はとにかく環境に適応するために邁進。心理的な余裕が少なく、ゲームやっててもあんまり楽しめてなかった気がする。

リモートワークの文脈でよく言われる「働き過ぎちゃう」に自分もハマり、朝日が昇るまで仕事してることが多かった。今なら「働き過ぎが良くないこと」というのが理解できるけど、当時は働いてないと思われるのが嫌だったり、自分の能力を示したいというのでいっぱい働かないと〜的なある種の強迫観念に襲われていた。

当然のように昼夜は逆転していて、めちゃくちゃな生活リズムになっていた。この時期は運動を全くしてない。

社員同士のコミュニケーションは難しかったけど、チャットツールと隔週のオフラインの社内勉強会でなんとかなってた(気がする)。

作業場所は主にオフィス。光熱費がかからなくてコーヒーも飲めて最高〜と思ってた(のちにこの考えは変わる。)

なんか慣れてきた期

同僚との良好な関係が築けると、もがく期のような強迫観念もなくなり、仕事量は自分の担当+αくらいで十分、と思うようになってた。仕事はほどほどにして技術のキャッチアップだったりゲームだったり、自分のやりたいことに時間を充てるように意識が変化した。

この時期はとにかく夜型の生活に。回りが静かになる0時から日の昇る4時すぎくらいまでが自分が一番集中できる時間だった。非同期のコミュニケーションにも慣れ、チャットとGitHubのissueのやりとりでなんとでもできるな〜という感触を得ていた。

作業場所は主に自宅。ソファだったり机だったり。大きな窓のある部屋だったので街並みを見下ろしながら仕事する、いい感じの環境。この頃から部屋の環境を気にし始める。歩くのがめんどくさくてオフィスはあんまり行かなくなった。自宅での作業に慣れた結果、人がいるのが逆に集中を妨げる要因に…。

超出無精。どんどん不健康に。

そして今

1日平均して働くのは5時間くらい。とにかく集中して、今日やると決めたタスクを消化する。10時くらいから初めて15時くらいにはおしまい。気分的に仕事する気にならない日は気が済むまで遊んで、その後に仕事。ノッてないときにだらだらやるより、ノッてるときにサッとやるほうが成果がでるので、裁量で働けるのが大変プラスになってる。

生活リズムは昼型に戻った。1日が長く感じられて良い。

リモートワークする前から運動不足だったけど、リモートワークでさらに運動不足が加速。さすがにやばいと思いフィットネスに通い始めた。効果は抜群で、1ヶ月で5kg減ったり、疲れにくくなったり、健やかになった。健康はVAAMプロテインに支えられている。

結局行き着くのは筋肉。

リモートに向いてそうな人

リモートワーク、向いている人と向いてない人が確実にいるなーと思う。オフラインでのコミュニケーションが好きな人とか、寂しがりやの人とかは向いてなさそう。👇みたいな人はリモートワークを検討してみるのもヨサソウ。

自分の時間がほしい人

とにかく自分の時間がいっぱい持てる。人生は仕事だけに使うにはもったいなさすぎる。心の余裕も持てていろいろやってみようっていう気が起きる。

子供がいる人

弊社は妻子持ちの人が多い。子供の成長を側で見ながら暮らしてて、大変そうだけどとても幸せそうだな〜と思っている。自分は小さい頃に父親と遊んだ記憶が数えるほどしかない。リモートなら仕事と家庭の両立がしやすいから、子供との時間を作りたいパパさんはリモートで働ける環境を探してみるのもいいんじゃないかな〜。

昼に眠くなる人

これは昔の自分なんだけど、昼〜夕方くらいにどうやっても抗えない睡魔に襲われて、まともに仕事ができなくなっちゃうような人。しっかり睡眠取っててもダメだし、コーヒーもエナジードリンクも効果なし。仕事したいのにできない、みたいな葛藤と戦いつつ仕方なく残業する…みたいなことになってた。働く時間がずらせればパフォーマンス出せるのにな〜みたいに思ってる人がいたら別の道を探すのも手かと。

おわり

慣れるまでは辛いときもあったけど、慣れたらとにかく楽。今後リモートワークじゃない環境で働けるのか不安になるくらい。最近はリモートオッケーな会社も増えてきてるし、もっと増えるといいな。