徒然日記

朝、通勤中の電車の中で久しぶりに完全熟睡してしまい、危うく折り返すところだった。連休中に生活のリズム崩れてしまったのだろうか。せっかく通勤中に読もうと思っていた本をまったく目に触れることなく到着。

日中は打ち合わせのため外出したり、1on1の面談の時間に使ったりしながら時間が過ぎていった。

徒然日記

朝、「あ!寝坊してしまった!」と飛び起きたが今日は祝日であった。久しぶりに熟睡したので慌てて起きてしまった。起きたあと、一通りボーッとした後に録画してたプロフェッショナル仕事の流儀を見る。

www4.nhk.or.jp

その中で、

諸悪の根源は頑固だと思う

という一言があって、腑に落ちた。何かしらで人の課題を解決する際にこの感覚がないと駄目なのだろうなと。

徒然日記 - 安住紳一郎の日曜天国, 川村元気「仕事。」を読む

午前中、お約束の安住紳一郎の日曜天国を聞く。今日はオープニングトークで突然赤坂のマッサージ店の店員から声をかけられる話から、パンダ命名の話まであり、盛りだくさんで笑えた。 昼ごはんに雑炊を作る。夫婦揃って体調微妙な感じなので消化の良いものを食べてしっかり体調を取り戻す。食後に飲む薬の影響かとても眠くなるので横になっていた。 目が覚めると、仕事。を読む。

仕事。 (文春文庫)

仕事。 (文春文庫)

印象に残ったセンテンスいくつか。

秋元康との対談の中から。

「慎重に、間違っちゃいけないと思って選んだ道でも、人間は間違えてしまうもの。だから、間違った道を行っても、戻ってくる力さえ磨いておけばいい」 川村元気.仕事。(文春文庫)(Kindleの位置No.1040-1042).文藝春秋.Kindle版.

糸井重里との対談から。

確かにネットは評論家を増やしたけど、クリエイターを減らした気もします。後からきて重箱の隅をつつく人がかっこいいということになってしまっている。 川村元気.仕事。(文春文庫)(Kindleの位置No.1373-1374).文藝春秋.Kindle版.

鈴木敏夫との対談の中から。

最近はみんな丁寧につくるから中身が時代とズレてしまう 川村元気.仕事。(文春文庫)(Kindleの位置No.1966-1967).文藝春秋.Kindle版.

丁寧に作っている間に状況が変わっていたということがない様に。

鈴木敏夫はいつもこうやって予定調和を崩し、人を楽しく働かせて、自分以外のすべての人を「当事者」にするのではないかと。 川村元気.仕事。(文春文庫)(Kindleの位置No.2057-2058).文藝春秋.Kindle版.

坂本龍一との対談の中から。

人間もそうだけど、陰がないと面白くないもんね。 川村元気.仕事。(文春文庫)(Kindleの位置No.2272).文藝春秋.Kindle版.

日が当たるところと影の部分と。一見して見える部分とその裏にある部分が魅力になるなと思う所。

勉強するってことは過去を知ることで、過去の真似をしないため、自分の独自なものをつくりたいから勉強するんですよ。本当に 川村元気.仕事。(文春文庫)(Kindleの位置No.2362-2363).文藝春秋.Kindle版.

「なんで勉強するんですか」という問いの一つの答えかもしれない。個性だとか自分だけしかできない仕事だったりとかを求める前にそれが本当にユニークなのかを知るために勉強する。

最近、再びKindleというか電子書籍で本を読む様になっていろいろ読めて嬉しい。

徒然日記 - 通院

午前中から通院。更に夕方から家人の体調が悪くなって休日診療を受ける。その時、タクシーで移動しようとJapanTaxiのアプリで送迎をお願いして併せてGoogle pay 支払いとなり、降車の際に支払い同意しますと口頭で伝えるだけで完了して非常に便利だった。

一日中ドタバタして終了した。自分の体調も万全ではないとで早めに休む。

ref

japantaxi.co.jp

髪を切った

最近、髪を染めるのを控えていたところ、当然髪が伸びるのに併せて白いものが目立つ様になり稀に周りの人から心配されることも時々あって、「実は頭皮に炎症できて数回染めるのを飛ばしてたんですよ」と回答していたのだけれども本当に心配されるケースもあるので今回はきちんと染めた。

髪を切ってもらっている間に採用の面接の話になり、当然自分の事情と美容師さんの採用基準ではまったく違うところもあるのではあるが、なるほどそういうところに視点を置いて面接のときに話を聞くというやり方もあるのかと思うことが2,3あった。スキルの部分のところは当然求めるところは違えど、もしかすると根本的な人としての部分を見るときの視点は近いものがあるのかもしれない。サービス業である以上、お客様(ユーザーの方)にサービスを提供し、対価を頂くというところは変わらないのだから。

関西出張

大阪・京都へ行ってきた。もちろん元々予定していたことはそつなくこなせたのだけれども、どちらかというとこういうとき社外の人だったりとお話したときに得られる知見というか考え方というか。そういったものが得られるのは本当に貴重だと思う。携わっている仕事だったり役割に対する絶対的な自信だったり、今回垣間見えたのが貴重だった。自分にはまだまだ足りないな。

netshop.impress.co.jp

対談形式での登壇は初めてだったのだけれど無事こちらも終了。こちらの経験も糧にしていこう。

Franzに任意のアプリケーションを追加する(プラグインの作成と追加)

Franzという複数のメッセージング・コミュニケーション系のサービスを1つにまとめて管理することができるツールを最近使っている。

meetfranz.com

もともと社内ではSlackを利用しているのでSlackアプリを使って過ごしていたのだけれども、だんだん社外とのやり取りが増えるときにこれまではメールが主体だったのがChatworkだったりfacebookメッセンジャーだったりでコミュニケーションを取ることが増えてきた。そうしたときにChromeに複数のそういったアプリケーションをタブに複数開いて立ち上げておいてもよいのだけれども、やはり使っていくと不便が多い*1

そうしたときにFranzを使うとブラウザとは独立して管理することができるのでとても便利。但し、Franz自体にはデフォルトで65個のサービスを設定できる様になっているのだけれども、国内のみ普及しているサービスだったりするとデフォルトでは用意されていなかったりする。

そうしたときにFranzにはプラグインの機構があり任意のアプリケーションを追加することができる。一つだけ難があってFranzは内部ブラウザで別ウインドウのポップアップを出すことができないので、それが前提になっているアプリケーションはプラグインで追加した場合も実際に使うことができないので注意。この制限があって会社で利用しているワークフローシステムのアプリケーションはFranz上で使えなかった。残念。

プラグイン(レシピ)の作り方

plugins/integration.md at master · meetfranz/plugins · GitHub ここに書かれている通りなのでそこまで複雑ではない。必要なファイルは以下の通り。

  • package.json
  • icon.png
  • icon.svg
  • index.js
  • webview.js

これらのファイルを ~/Library/Application Support/Franz/recipes/dev 以下のアプリケーション名を入れたディレクトリを1段掘った後配置する。それぞれのファイルの内容を一番シンプルに書くと以下の様な感じになる。

package.json

設定ファイルとして利用していて、Franzに登録したいWebサービスに関する情報を記載する。npmのもの踏襲だが config , id あたりがFranz用に拡張されているところ。

{
  "id": "(Franzで識別用に使われるID)",
  "name": "(登録したいサービス名)",
  "version": "1.0.0",
  "description": "(このプラグインの説明)",
  "config": {
    "serviceURL": "(登録したいサービスのURL)",
    "serviceName": "(登録したいサービス名・アプリケーション一覧掲載用)"
  },
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "git@github.com:xxx/franz-foo-plugin.git"
  },
  "author": "hideack",
  "license": "MIT"
}

index.js

基本下の一行でよい。更にURLのバリデーションを行う場合にはここに処理を追記する。

module.exports = Franz => Franz;

webview.js

未読のメッセージ数をアイコンにバッジとして表示するなどのフロントエンド側の処理を記述することができる。Franzに登録ができる様にするWebアプリケーション中にある未読数等の要素を抜き出し、バッジとして設定することができる。

module.exports = (Franz) => {
  const getMessages = function getMessages() {
    /*
    // ex.
    const elements = document.querySelectorAll('.msg-unread-count');
    let count = 0;
    if (elements[0]) {
      count = parseInt(elements[0].innerHTML, 10);
    }
    */
    count = 1;

    Franz.setBadge(count);
  };
  Franz.loop(getMessages);
};

*1:誤ってタブ閉じたり、開きそこねていて連絡が来ていたのを気づかなかったりいろいろある