調子が悪い時の仕事のやり方

調子がいまいちで全然仕事がはかどらないな〜と思って、ノートアプリに「仕事の調子が悪い」というページを作って腰が痛いとか、誰に見せるでもないメモを書いていたら、過去の自分が「調子が悪い時の仕事のやり方」というページを作っているのを見つけた。

特別なことは書いてなかったけど、面白いので過去の自分が作ったマニュアルにしたがって仕事をしてみている。

全文公開はしないけど、ざっくりいうと以下のようなことが書いてあった。

  • 考えていることを文章にする
  • やることを書き出し、時間を区切ってしろ。仕上がりに満足が行かなくても、そこまでやったことにする
  • 自分がどういう状態なのか把握して、体調が悪いのなら休む

こうやったら集中できるみたいなことも書いてあってなかなか便利。

元気なうちに「調子が悪い時の仕事のやり方」を作っておくのおすすめです。

会社に子供を連れてることへの是非

会社に子供を連れてることへの是非、ネットで話題になりがち。

anond.hatelabo.jp

anond.hatelabo.jp

頻度によりそう

個人的にはたまに連れてくるくらいなら、楽しいので問題ない。同僚のプライベートなところを垣間見れるのも嬉しい。

たまになら、というのが条件かもしれない。他人の子供はたまに見るから可愛いくて、毎日何人も子供を職場に連れてきてると、うるさそうで勘弁してくれとなる気がする。

職場に赤ちゃんがいたこと

そういえば、かつて同僚(社長)が職場に赤ちゃんを連れてきたことがあった。4人の小さい会社で、床の上のダンボールに入れられていた。そのときはヘッドホンをして仕事をしてたし、あまり気にならなかった。おとなしい子だったのかも。

子育て情報が社内に流れることの是非

たまに子供のおもしろ写真を見せてくれたりするとほっこりするが、毎日ミーティングの冒頭で今日の子供情報みたいなのを挟まれるとそれは勘弁してくれとなりそう。

ただそれは子育てに限ったことではなくて、趣味の話でもあまりに関心がないことを毎日ミーティングで報告されると、そこに集中力や時間をつかいたくないと思ってしまう。

ただ仕事から雑談を排除したいわけではなく、仕事で確認する必要がある情報と、雑談などの情報は分けつつ両立させたいという気持ちはある。

喫煙所みたいな雑談にちょうどよいスペースがあるとオンオフ切り替えられて便利なのかな。もうタバコは吸わないしリモートワークだけど。

SpatialChat を使ったオンライン開発合宿の体験がよかった

会社のオンライン開発合宿をSpatialChatを使って行った。体験はよかった。

spatial.chat

SpatialChatとは

  • ブラウザで動く
  • ゲーム画面のような会場に参加者のアイコンが置かれ、近くにいる人の声だけが聞こえる

いい体験

  • ドラッグ・アンド・ドロップで移動が簡単
  • 画面共有が簡単
  • 全体に聞こえるスピーカーモードもあるので、成果発表やアナウンスも簡単

(オンライン合宿の)悪い体験

  • 温泉がない。合宿といえば温泉。温泉がないのはオンラインの悪い体験。

宣伝

開発合宿のグループ分けやペアプロのペア決めを自動で行うにはグループわけわけくんが便利です。

【宣伝】WEB+DB Press vol.129 に PerlでGraphQL API を開発する知見が紹介されてます

PerlでGraphQL APIを開発する手法を紹介した記事がWEB+DB PRESS Vol.129掲載されます。現在発売中です(2022年6月24日発売)。

gihyo.jp

いつも技術書を購入している技術評論社の出版物に自分の名前が載るのは感慨深いです。

webで自分だけで記事を書くのとは違い、文章の構成や表現に指定があったり、紙面にちょうど収まるように工夫する必要があり、良い体験ができました。コードやGraphQLのクエリを載せているとどんどんスペースを使ってしまい、コンパクトにまとめるのに手を焼きました。なお記事に載せきれていないコードはサンプルコードとして公開されます。

基本的なAPIの実装方法から、応用的なキャッシュの作成方法まで紹介されています。PerlとGraphQLの組み合わせで採用している記事はあまり多くないと思うので、ぜひ購入して参考にしてください。

GraphQLのスキーマ設計の相談をするときにはUIのデザインももっていくと便利

GraphQL API を開発していると、 どういうスキーマににしたらよいのかとチームメンバーのエンジニアに相談したい時が出てくる。

相談するときにUIのデザインももっていくと、相談される側がクライアントサイドの要求を認識できるので用意しておいたほうがよさそうだ。

サーバーサイドの開発をやってると、エンジニア同士の相談ではテキストベースになりがちだから自分でも注意したい。

デザイナーが作ったFigamaのページにアクセスする権限がなかったりするので、スクショでポンと見せるくらいが手軽でよさそう。

飲み会のグループわけを偏りなく行いたいのでグループわけのツールを作ってる

飲み会のグループわけを偏りなく行いたい

大勢のいる飲み会で、一度に全員が話すのは大変なのでいくつかのグループにわかれることがある。

色んな人と話すために、グループを入れ替えるのだが、ランダムに行うと、同じ人と何度も同じグループになったり、一度も同じグループにならないひとが出てくる。

なるべく偏りなく多くの人と話せるようにグループわけを行いたい。

解決方法を考える

ランダムで何パターンかグループわけをして、そのパターンのなかで一番ばらつきが小さいパターンを選ぶようにすれば単純に実装できないだろうか。

実装方法を考える

  • 各メンバーごとに、これまでに何回同じグループになったのかというデータを保持する。
  • そのデータから分散を計算する。
  • 複数のグループ分けのパターンに対して、一番分散の小さいグループわけを選ぶ。
  • これをグループの入れ替え回数だけ繰り返す。

コードで書くとこのような感じになる。

// roundCount: グループの入れ替え回数
for (let i = 0; i < roundCount; i++) {
    // もっともばらつきが小さいパターンを入れておくための変数
    let leastVarianceGroups;
    // 比較するための値を入れるための変数
    let leastMaxVariance = Number.MAX_VALUE;
    // tryCount回試行して、最もばらつきが少ないグループを採用する
    for (let j = 0; j < tryCount; j++) {
        const groups = makeGroups(names)
        // 分散を計算するための一時的なデータを作る
        const tempData = makeTempData(data, groups)
        // 分散を計算する
        const tempVariances = calculateVariances(tempData);
        // ばらつきを比較する値として一番大きい分散を選ぶ
        const tempMaxVariance = max(tempVariances);
        // ばらつきが小さいグループを採用する
        if (tempMaxVariance < leastMaxVariance) {
            leastMaxVariance = tempMaxVariance;
            leastVarianceGroups = groups;
        }
    }
    // 選ばれたグループわけを保持する
    rounds.push(leastVarianceGroups);
    // データを更新する
    updateData(data, leastVarianceGroups);
}

実装して公開する

実装してみた。

https://grouping.pages.dev/

ブラウザだけで動くアプリなのでユーザーの入力データをサーバーに送ったりはしない。使用したツールやプログラミング言語は以下の通り。

仕事でフロントエンドを触る機会が増えそうだったので、軽く触っておこうかなというのも実は目的の一つだった。久しぶりにReactを触って、最近のHookを使った書き方ができてよかったと思ってる。

デザインとか、細かいところの改善をすれば飲み会だけじゃなくてワークショップとか、色んなシチュエーションで使えるのではと思ってるので時間を見つけて細かい改善はやりたいなと思ってる。

GW(2022)にしたこと

普段は朝起きて仕事をして、仕事が終わったらもう7時過ぎで、夕食を食べて寝るという日々を送っている。仕事は悪くないが、現状維持の生活で少しつまらない。だから連休は新しいことを少しは学び、運動をして衰えつつある体力を回復したいと思ってすごした。

やったこと

ゲームは Baba is You を少し遊んだ。発想が面白い。プログラミング言語のようなパズルなので、子供の教育にもいいと思う。しかしパズルが解けてうれしいとあまり思わないタイプなのですぐに飽きた。

ジムのプールで泳いだ。相変わらずうまく泳げない。疲れない泳ぎ方を身に着けて、延々と泳げる様になりたい。YouTubeみて、疲れない泳ぎ方試してみたけど全然だめ。説明されてすぐにできるものでもないのかもしれない。コツコツ続けたい。

あまり得意ではないJavaScriptを触ってみた。webpack, React, NextJSあたりだ。最近はesbuild や vite がよいと聞いているが、仕事で触る可能性が高く成熟していそうなものを選んだ。特に何か作っていたわけではなく、触って遊んで情報を整理してただけ。

オーディブルでオーディオブックを聞いた。無職転生という小説(ラノベ)を聞いている。魔法大学編を聞いて、GW中に迷宮編まで進んだ。プロのナレーターなので聞きやすい。キャラクターの声を演じ分けていてすごい。オーディブル、1500円で聴き放題なのは破格だと思う。

鳴門市の大塚国際美術館に行った。京都から徳島まで高速バスで移動した。移動時間は3時間くらいだ。移動中もオーディブルを聞いていたので、移動中も暇が潰せた。美術館では壁画やでかい絵を見て、実物サイズはでかいなというのが体感できて楽しかった。でかい絵がたくさんあるというのがおもしろい。写真OKなので、普通の美術館よりもワイワイ楽しめて面白かった。本物の作品を前にすると、どうしてもかしこまって見てしまうけど、複製とわかっていたら、そういう「ありがたさ」抜きで鑑賞できるのがよかった。