しるろぐ

いろいろ書きます。

Confluenceで ctrl+shift+v を有効にして幸せペーストできるようにする

一般に、スタイルなしにペーストするときは ctrl+shift+v または command+shift+v するが、Confluence にはすでにそのショートカットが設定されており、うまく動かない。 そこで、Confluence上のキーボードショートカットを無効にすることで、スタイルなしにペーストできるようにする。

インストール方法

  1. Tampermonkey( https://www.tampermonkey.net/ ) をインストール
  2. https://gist.github.com/silvers/fad3f99ec8ef288cb116a7afc86ed4c2 を開き Raw をクリックするとTampermonkey でインストールしますか?と言われるのでインストールする

ソースコード

gist.github.com

Confluence は TinyMCE を使っているので、TinyMCE のショートカットを削除してあげているだけ。 他にも邪魔なショートカットがあれば同様のやり方で、消すことが出来る。

Confluence の検索を OR から AND にする UserScript を書いた

Confluence の検索には罠があり直感的な検索ができないので、それをいい感じに検索できるようにしました。

Confluence: Change from OR search to AND search. · GitHub

Confluence 検索の闇

その1. 二文字ずつ分割して検索

Confluence を日本語で使っている人はおそらく検索インデックスとして CJK を利用していると思います。 CJK にした場合、単語区切りではなく、bi-gram(検索文字列を2文字ずつ分割)で全文検索を行います。

https://<YOUR-CONFLUENCE-URL>/explain.action?queryString=東京特許許可局 で細かい挙動を確認することができます。

query:
((((spanNear([title:東京, title:京特], 5, false) spanNear([title:東京, title:特許], 5, false) spanNear([title:京特, title:特許], 5, false) spanNear([title:東京, title:許許], 5, false) spanNear([title:京特, title:許許], 5, false) spanNear([title:特許, title:許許], 5, false) spanNear([title:東京, title:許可], 5, false) spanNear([title:京特, title:許可], 5, false) spanNear([title:特許, title:許可], 5, false) spanNear([title:許許, title:許可], 5, false) spanNear([title:東京, title:可局], 5, false) spanNear([title:京特, title:可局], 5, false) spanNear([title:特許, title:可局], 5, false) spanNear([title:許許, title:可局], 5, false) spanNear([title:許可, title:可局], 5, false))^2.0) (spanNear([contentBody:東京, contentBody:京特], 5, false) spanNear([contentBody:東京, contentBody:特許], 5, false) spanNear([contentBody:京特, contentBody:特許], 5, false) spanNear([contentBody:東京, contentBody:許許], 5, false) spanNear([contentBody:京特, contentBody:許許], 5, false) spanNear([contentBody:特許, contentBody:許許], 5, false) spanNear([contentBody:東京, contentBody:許可], 5, false) spanNear([contentBody:京特, contentBody:許可], 5, false) spanNear([contentBody:特許, contentBody:許可], 5, false) spanNear([contentBody:許許, contentBody:許可], 5, false) spanNear([contentBody:東京, contentBody:可局], 5, false) spanNear([contentBody:京特, contentBody:可局], 5, false) spanNear([contentBody:特許, contentBody:可局], 5, false) spanNear([contentBody:許許, contentBody:可局], 5, false) spanNear([contentBody:許可, contentBody:可局], 5, false)))^4.0) title:"東京 京特 特許 許許 許可 可局"^2.0 contentBody:"東京 京特 特許 許許 許可 可局" ((title:東京^2.0 title:京特^2.0 title:特許^2.0 title:許許^2.0 title:許可^2.0 title:可局^2.0) (contentBody:東京 contentBody:京特 contentBody:特許 contentBody:許許 contentBody:許可 contentBody:可局) (content-name-unstemmed:東京 content-name-unstemmed:京特 content-name-unstemmed:特許 content-name-unstemmed:許許 content-name-unstemmed:許可 content-name-unstemmed:可局))

その2. 単語を並記はOR検索

また、Confluence の検索エンジン Lucene では、ANDやORを明示的に指定する必要があり、指定しない場合(スペースの場合)ORとして扱われます。

「Confluence 検索」と検索したとき:

  • 期待するもの:「Confluence AND 検索」
  • 実際の動作:「Confluence OR 検索」

いい感じにするUserScript

2つの UserScript を書きました。

confluence-replace-search.user.js

f:id:ofsilvers:20200915132310g:plain

  • ヘッダーにある quick-search で開くパネルが対象
  • 入力と同時にクオーテーションとANDを差し込んでくれる

confluence-suggest-search.user.js

f:id:ofsilvers:20200915131024g:plain

  • 検索ページ ( /dosearchsite.action ) が対象
  • 検索後、クオーテーションとANDを差し込んだものを提案してくれる

インストール方法

ユーザの場合

  1. Tampermonkey( https://www.tampermonkey.net/ ) をインストール
  2. ↑のリンクを開くと Tampermonkey でインストールしますか?と言われるのでインストールする
  3. replace-search のほうは、 @match をあなたの Confluence URL に書き換える(suggest-search は書き換えなくても動きます)

管理者の場合

全ユーザに反映させたい場合は、いい感じにソースコードをコピーして、管理画面のカスタムHTMLに貼り付けてください。

社内外で読書会を開催するときのパターンあれこれ

いくつか読書会を開催してきたので、振り返りも兼ねてそれぞれの良いところと悪いところをメモ程度にまとめてみる。自分がやってきてこうだった、という内容なので、他のもっと進行がうまい人がやったなら違う結論になりそう。参考程度に。
分類名や分類の仕方は適当。もっと適切な名前あるかも。

読書会のいいところ

まず最初に読書会の意義について。

  • インプットもアウトプットもあり、フィードバックももらえる
  • ひとりでは辛い本を読むモチベーションになる
  • ひとりだとついつい読み飛ばしてしまうところをじっくり考える機会になる
  • 自分が感じたことや、自分の意見をまとめて言葉にする練習になる
  • 自分とは全然違う意見を聞いて議論することができる
  • 共通言語ができる

交流会

本を持ち寄って、ご飯食べたりお酒飲んたりしながらワイワイ本について話す。
一人ずつ自分の持ってきた本を5分程度で紹介する時間などを取ると会も引き締まって良い。交換会は、いらない本持ち寄り会になる場合もあってなんともなーという感じになることもある。
少人数から大人数まで対応可能。

良い点

  • 楽しい
  • 普段興味のない本に触れることができる
  • いろいろな意見や考え方を聞くことができる
  • 短い時間で本を紹介するには読み込む必要があり理解が深まる

悪い点

  • 趣味が合わない人が多いと辛い感じになる
  • 主に紹介と雑談なので特に結論が決まるということがない

毎回違う本好きなメンバーとワイワイして、刺激を受けるのにおすすめ。

その場で読む読書会

予習は不要。参加者はそれぞれ本を持ってきて、その場で読んで、感想や意見を言い合う方式。10人程度が限度。
読みながら話してもいいが、読む速度が違う人がいると話が合わないので、節とかページで区切って全員が読み終わってから話すのが良い。
その際、札みたいなものを用意して、読み終わったら札を倒す方式にすると全員が読み終わったのが分かりやすくてよい(立てるより倒すほうがわかりやすい)。
また、全員が読み終わるまでの時間を記録したり、会が終わったときに読み終わったページ数を記録するのを続けると、だんだんと読む速度が上がっていくのがわかって楽しい。

良い点

  • 事前の予習がいらないので、忙しい人に向いている
  • 予習に合わせて話す必要がないので、じっくり話したいところに時間を割いたり、盛り上がらなかったらひたすら読み進めるみたいなことができる
  • 疑問点をすぐに解消できるので、わからないまま次を読むことがない

悪い点

  • 小出しに読むと分からない系の本には向かない(逆に技術書とかは良い)
  • 読む速度が遅い人が遠慮しがちになる
  • 問題提起をしたり積極的に話す人がいないと、「うん、なるほどね…」みたいな感じで終わりやすい
  • 参加者全員が本を持っていないといけない

事前に読む時間が取れない場合や、関連する話や事例などをじっくり吟味して話し合いたいときにおすすめ。

輪講形式

大学のゼミとかでよくやるアレ。
章ごとに担当を分け、担当者が本の内容を発表・講義する。他の参加者は、発表を聞いて質問したり意見を言ったりする。発表者の内容が正しいとは限らないので、良さそうだなと思ったら、原本を読むことが必要。ただ、ある程度理解した状態で読めるのでスイスイ読める。
全員がある程度、興味を持った本を対象にすると良い。意識の高い人たち向け。

良い点

  • 本を読む負担が分担される
  • 本を回し読みできる
  • 発表者は、内容を要領よく的確にまとめる訓練になる
  • 後日、本を読むとしても大体の内容が頭に入っているので楽に読める

悪い点

  • 発表者が間違えた場合に、全員が間違えた解釈をしてしまう場合がある
  • 発表者によってクオリティが違いすぎる
  • 発表者以外はだらけるリスクがある

同じ目的や問題意識を持ったメンバーで難しめの本を読むときにおすすめ。

全員が読んでくる会

輪講形式と違い、参加者全員が対象の本を事前に読んで、議論する。本の内容や分量によっては章ごとに分けて1冊の本を何回かに分けて読む場合もある。一冊丸々の場合は、盛り上がり具合によってすごい時間になることがある。逆に盛り上がらないと時間が余ってしまうので、ちょっと余らせるぐらいの分量を予習するようにしておいて、話が長引いたら次回、にすると良い。
予習がかなりアレで、開催頻度が高いと大分つらいので週一はおすすめしない…。

良い点

  • 事前に自分の意見をまとめておくことができる
  • それぞれが自分のペースで読むことができる
  • 全員がある程度理解していることを前提に議論が進むので深い話ができる

悪い点

  • 予習の時間が必要
  • 予習ができなかった人がついてこれない
  • 意識を保つのが大変
  • 参加者全員が本を持っていないといけない

深い議論がしたくて、予習の時間を取る時間/意欲があるならおすすめ。

ワークショップ形式

本を読むのはおまけ程度で、本を実践するのを主眼に置いた会。
読み方は特に決まっていないが、実際に自分で読んだほうが実践しやすいので、「その場で読む会」または「全員が読んでくる会」が良さそう。輪講形式は、先生(発表者)の言ったとおりに、みたいな感じになりやすい感がある。
実際の実務に密接に関わった本を選ぶことが多いし、そうしたほうがモチベーションあがる。
実践する内容によるが、1日かかることもあれば、実際に業務で試してみてどうだったかを発表するみたいなのをやることもある。

良い点

  • 楽しい
  • 実践するので身につきやすい/理解が深まる
  • 読むだけでは分からなかった問題に気づくことができる

悪い点

  • 本の選定が難しい
  • 社外の人とやるときはなかなか事例を出しづらい
  • 内容によっては一回でも休むとついていけないことがある

実際に手を動かして何かしたいときにおすすめ。

まとめ

自分はやっぱり一番やってるっていうのもあるけど、その場で読む会が好きだなあ。
他の人が開催してくれるならワークショップ形式や交流会は楽しいので参加したい。
輪講形式は、それに向いた本やメンバーがいれば全然やっていけると思うので、これから数を重ねていきたい分野。

プロダクトマネージャー風林火山

小野和俊さんの風林火山の話おもしろいなと思ったので真似して分類してみたメモ。

小野和俊のブログ:プログラマー風林火山

分類 能力
風のプロダクトマネージャー 顧客の要望に素早く対応し、プロダクトを成長させていくプロダクトマネージャー。立ち上げ直後のプロダクト向きで市場の変化にいち早く対応できる。開発者出身が多い。
林のプロダクトマネージャー 冷静に市場分析や顧客分析を行い、プロダクトを改善していくプロダクトマネージャー。安定したプロダクト向きで着実に良い製品を作り出す。主なスキルは分析。
火のプロダクトマネージャー 情熱を持ってチームを整え、強い開発力でプロダクトを飛躍させるプロダクトマネージャー。チームが一丸となり、短期間での目標達成に強い。
山のプロダクトマネージャー プロダクトのロードマップを整え、プロダクトの品質を担保するプロダクトマネージャー。一貫した方針でプロダクトのブランドを守り、様々なしがらみからチームを守る。

完全に独断と偏見なので、もっとこうしたほうがわかりやすそう!とかあれば教えてください!

おにやんま - ISUCON6予選敗退反省会 #isucon

ISUCON6予選に、 id:karupanerura, id:ar_tama と3人で「チームおにやんま」として参加しました。

当日の動きなどは他の二人が書いてくれると思うので、反省点をまとめておきます。

昨年のふりかえりはこちら。

ofsilvers.hatenablog.com

まとめ

isucon.net

以下の4チームは、最終スコアは上位10チームを上回っていたものの、それぞれ下記の理由により失格となりました。

再起動後のチェックで正しいレスポンスを返せなかった
・ヴェンティッグ
チームおにやんま

KEEP

きっちりと役割分担できた

インフラ整えるあたりで3人とも同じ罠(symlinkがー、daemon offがー、再起動がー)にハマったりしていたので、誰か一人が全メンバーのインスタンスでインフラ整えて渡すみたいなことをしておけばよかった。 その間に残りのメンバーはアプリケーションの仕様を把握したりコード読んだり。

昨年、このような反省をしたので、今回はきっちりと役割分担をした。 インフラや破壊的な大規模改修は id:karupanerura、地道なアプリケーションの改善は id:ar_tama、計測やベンチ、プルリクのマージ・テスト等サポート全般は id:ofsilvers という感じ。

githubのプルリクもうまく使えて、今回は誰が何をやっているか全員が把握しつつ、一度も作業がバッティングすることなく進められた。

落ち着いて作業できた

なんか午前中にインフラまわりで時間かけてしまって、進捗ゼロです!みたいなので、お昼の時間も忘れて焦ってしまった*1ので、もっと時間をかっちり決めても良かった

音楽流したり、アロマを炊くなどして、精神を整えられた。

思わぬ事態に遭遇したときも、固執せずに代替案などに切り替えられたと思う。

相談の時間がとれた

開始前に、XXXが終わったら相談の時間をとる。XX時になったらアレをする等、相談のルールを決めていたので、3人の方針の認識は統一がとれていたと思う。

PROBLEM/TRY

前回の反省と違って、細かい作業レベルの反省になってきたのは良さそうに感じる。

systemdって分かっていたので準備しておく

workerの調整が結構ギリギリになってしまったので、systemdまわりも最初にリポジトリにいれておくことで、変更履歴を管理するとともに、ansible で配れるようにしておけばよかったなと反省。

コードもデプロイできるようにする

設定等はansibleで配布していたけれど、コード周りは環境でpullしていたのでいっそのことコードも配布できるようにする。

早めの締切を作る

18:00終了の予定で動いていたため17:00過ぎたあたりから最終調整に入ったが、毎回、最終調整の内容が重く、「あと数分あればかなり改善が見込める変更が反映出来たのに!!!」みたいな状況で終わってしまう。 そのため、17:00を提出時間だと思っておくとよさそう。

ふせんを使う

ホワイトボード、githubのissue、slack等情報が分散されてしまったのでタスク等は付箋で管理してみる(分散してそんなに困ったわけではないが、より良く情報を管理できそう)。

おまけ1

おまけ2

1on1ミーティングに備えるアンケート

最近は、大体月一ぐらいのペースでメンバーと1on1ミーティングをするようにしている。

一人あたり30分から60分ぐらいで、前回のミーティングからの振り返りとその他相談を話す感じ。相談は仕事のことが主だけれど、プライベートな内容もある。

1on1ミーティングにあたって今年から事前アンケートを用意するようにしたのだけれど、そこそこいい感じに回っているのでまとめてみる。

事前アンケートを用意するメリット

話すことが事前に想定できる

アンケート自体がアジェンダになるので、ミーティングがコントロール可能になる。 どんな話をするか分かっていると安心感もあるし、話が横道に逸れることもない(雑談は雑談で良いものだけど)。

その場で回答が思いつかなくて適当な返しになることがなくなる(お互いに)

自分の体験談なんだけど、何か質問をされたときにその場では「うーん、今は特に思いつかないです」と答えたのに終わってからアレコレ思いついて、まあいっか、今度話そ、みたいになって忘れてしまうことがよくあって、それって非常にもったいないなと思っていた。 事前に回答を用意する感じになれば、いくらでも悩めるし、アンケート時には思いつかなかったけどあとから「そういえば…」みたいなこともある。

事前に準備ができる

これがすごい良くって、スピード感が出る。

例えば、「会社やチームにこんな不満/要望がある」みたいなことが事前アンケートに書かれていれば、ミーティング前に調整を行って、ミーティング時には「あれ対応しといたよ」みたいなことが言える。 通常であれば、面談 → 対応 → 報告みたいなフローをとる必要があって、結構面倒だったりする。 全員に共有できる内容であれば対応後すぐに報告することもできるのだけれど、内容によっては個別に共有が必要で再度予定確認して会議室とって、みたいになると思いの外時間を使ってしまう原因になる。

また、Aさんの話を聞いた後にBさんの話を聞いたらちょっと見え方が変わってきたみたいなことも多くって、それを事前にみんなの意見を見てからミーティングにのぞめるのも良い。

アンケートの内容(レギュラー)

常に表示しているアンケート項目。回答は任意。

キャリアについて

  • 5年後どうなっていたいですか?
  • そのために今年このチームでは何をしたいですか?

将来のキャリアプランと計画を聞くことで、今後どのような業務・役割をしてもらうかを判断するために聞いている。 場合によってはこのチームにいたら目標に近づけないこともあるので、別のチームを紹介するなど異動の手伝いをすることもある。

目標/評価について

  • 目標や評価について何か悩んでいること・障害はありますか?

期初に決めた目標の進捗がよろしくないみたいなときに、一緒に解決の方向を探るために聞いている。 障害であればできる限り取り除き、自己評価と周りの評価が大きく違っていれば認識を合わせたりする。

相談/不安/不満/報告

  • 会社/経営について
  • プロダクト/チームについて
  • 一緒に働くメンバーについて

いろいろなカテゴリでとにかく話したいことがあれば書いてねという項目。 ここも同様で、障害であれば取り除いたり、意見や提案であれば、取り入れるか取り入れられない理由を説明する。

アンケート項目(季節替わり)

チームのフェーズに合わせて変えていく質問。回答は必須。

プロダクトをよくするために何をしたいですか?

まずはプロダクトのマイルストーンを決めるために、チームメンバーがプロダクトをどう思っているか、どうしたいと思っているかを聞いた。 現実的な回答よりは夢を語ってほしかったので、お金や時間やその他もろもろのしがらみを無視して答えてもらった。

人によってプロダクトのとらえ方が違っていたので、回答をもとに改めてプロダクトの立ち位置やミッションを共有した。

あなたがPMだとしたらプロダクト/チームをどう改善したいですか?

ある程度運用を行ったので、それぞれが考えるプロダクトやチームと、PMが決めたマイルストーンとの差異を確認するために聞いた。 すごい長文で回答をくれたメンバーもいて熱意が伝わってきたし、自分になかった切り口などを知れてとても勉強になった。

今の仕事や環境は、あなたや周りのメンバーの能力をちゃんと引き出せていますか?

みんなが同じ方向を向けるようになったので、今度は配置について聞いてみた。 ほんとはこれがやりたい、あれがやりたい、みたいなことを期待していたのだけれど、そこは満足度が高くて良かった。 かわりに、自分はあの人に以前一緒だったんだけどこういうこともできるので任せてみては?みたいな回答があって、なんか嬉しかった。

あなたに与えられた仕事は、おもしろいですか?

能力は引き出せているけど、ただの作業になってしまって学びがない、みたいなことを防ぐために聞いてみた。

今チームでやっていることで1つだけやめるとしたら何ですか?(一番無駄だと思うことを教えてください)

形骸化した習慣を捨てるために聞いてみた。 結構いろいろな意見があったので、きっぱりやめてみたり、やめる検討中。 「すごい考えたけど思いつかなかった」みたいな回答もあったけれど、今やっている習慣やフローの必要性や目的を振り返る良い機会になったと思う。

まとめ

といった感じで事前アンケート良いよというお話でした。

2015年と私

毎年弊社では最終営業日に有志で 忘年会議 という一年を振り返るLTをやりながら飲んだり騒いだりする会をやっているのだけれど、今年は参加できなかったのでブログにまとめておく。

普段はいろいろな数値を出してアレコレするんだけど、今回は単純な振り返りで。

1月

f:id:ofsilvers:20150117165054j:plain * ボードゲーム熱が再燃して、Amazonで買えるボードゲームをひたすら買いまくった * 宅飲みするときとかオフィス飲みするときに便利 * 飲みながらプレイするのであまりものを広げない感じのやつが良い * 犯人は踊る はルールが微妙に調整されているので2015年版オススメ

Drei Magier ごきぶりポーカー

Drei Magier ごきぶりポーカー

ロストレガシー

ロストレガシー

2月

  • ネイティブアプリ開発の勉強はじめた
  • バランスボードを買って会社に置いたら大人気っぽい

TOEI LIGHT(トーエイライト) バランスディスク40 H-7412

TOEI LIGHT(トーエイライト) バランスディスク40 H-7412

  • 会社の先輩からJawboneもらったので睡眠時間の計測をはじめた
    • グラフみるだけで楽しい
  • 本棚を整理したり、靴や洋服のメンテナンスグッズを買っていたらしい
    • 定期的に整理してるけど整理するたびに2,30冊買ってて減らない

3月

  • マネジメント回りや感情の制御的な本をよく読んでいたらしい
  • 小布施ワイナリーが作った日本酒がおいしい
  • 疲れ気味だったので休養もかねて会津出張
    • お酒も料理もおいしいしやすくて最高だった。また行きたい

f:id:ofsilvers:20150314121402j:plain

4月

  • 新卒が入ってきた
  • 産直屋 たか、最高に良かった

f:id:ofsilvers:20150408200549j:plain tabelog.com

  • Kindleデビューして本買いまくった
    • 調子に乗りすぎてあと数年は本買わなくても大丈夫そう
  • この時期から買い物面倒くさい病でAmazonで日用品買うようになったらしい
  • huluで名探偵コナンの映画を見まくった

5月

  • チームメンバー増えてきたのでマネジメント寄りな作業多

ofsilvers.hatenablog.com

  • アロマにはまり始めて一式揃えた
  • ゲームジャム部でゲーム作った
    • 幼児を操作して邪魔者をよけながらおもちゃを片付けるゲーム

ofsilvers.hatenablog.com

ofsilvers.hatenablog.com

6月

  • 京都出張

f:id:ofsilvers:20150612211533j:plain

  • 手ぬぐいにはまる
    • 最近は見かけたらとりあえず買うようにしている
  • 「SAKE おかわり」という日本酒注ぎ放題のお店がオフィスのすぐ近くにできた

tabelog.com

7月

  • 産直屋 たか、最高に良かった

f:id:ofsilvers:20150718202957j:plain

  • 鳥料理 それがし、最高に良かった

f:id:ofsilvers:20150726203431j:plain tabelog.com

8月

  • MapBoxの検証など

ofsilvers.hateblo.jp

  • たまりがちなissueを消化したり、一番コード書いてた時期っぽい
  • 日本酒のジャケ買い

f:id:ofsilvers:20150801142257j:plain

  • gotanda.js発足
    • ちょっと放置してたら後輩がいろいろ取りまとめてくれてるらしい
  • YAPCスタッフ業

9月

  • フィルターボトル、今年買ってよかったものベスト3に入る
    • だし作ったり、水出しなんちゃら作ったりが手軽にできる

  • ISUCON予選参加した
    • 反省点は以下のエントリに

ofsilvers.hatenablog.com

  • HuluからNetflixへ乗り換えた
    • オリジナル作品とかあって良い

10月

  • ISUCON参加メンバーで予選の復習
    • 2度目ということもあって落ち着いて作業できた
    • お互いの能力がわかって役割分担できるようになったので次回こそ
  • 駅奪取というアプリのイベント参加で1泊2日で河口湖行った
    • 面白かった

f:id:ofsilvers:20151024134018j:plain

11月

  • 友人の結婚式でハワイへ
    • 8年ぶりぐらいの海外だったけど良かった
    • 自販機までクレジットカードですごかった
    • アロマキャンドルたくさん買った

f:id:ofsilvers:20151031042416j:plain f:id:ofsilvers:20151101091929j:plain f:id:ofsilvers:20151104070804j:plain

  • ワイン展面白かった

12月

  • 社内でワークショップ開催した

ofsilvers.hatenablog.com

過去の忘年会議資料

www.slideshare.net

www.slideshare.net

www.slideshare.net