ブックマーク / blog.shibayu36.org (206)

  • 文化による知覚・認識・行動への影響を知る - 異文化理解力を読んだ - $shibayu36->blog;

    文化理解力というおもしろいと聞いたことがあり、興味があったので読んだ。想像以上に面白く夢中になって一気に読んでしまった。 異文化理解力 ― 相手と自分の真意がわかる ビジネスパーソン必須の教養 作者:エリン・メイヤー,田岡恵英治出版Amazon このは、国ごとの文化が、そこに属する人々の知覚・認識・行動へどれほど影響を与えているかを教えてくれる。指標として8つを提示し、それぞれの中で各国がどのような位置にいるかを相対的に示してくれる。8つの指標とは次のようなものだ。 コミュニケーション:ローコンテキストvsハイコンテキスト 評価:直接的なネガティブ・フィードバックvs間接的なネガティブ・フィードバック 説得:原理優先vs応用優先 リード:平等主義vs階層主義 決断:合意志向vsトップダウン式 信頼:タスクベースvs関係ベース 見解の相違:対立型vs対立回避型 スケジューリング:直線

    文化による知覚・認識・行動への影響を知る - 異文化理解力を読んだ - $shibayu36->blog;
  • Goで関数の引数に、union型っぽくstruct Aもしくはstruct Bのどちらかを受け取れるようにしたい - $shibayu36->blog;

    Goで関数の引数に、struct Aという型もしくはstruct Bのどちらかを受け取るということをしたかった。interfaceをちゃんと切ってそれに必要なメソッドをAとBに実装することで実現できることを知った上で、あまり丁寧にそういうことをせずにやりたい。 色々調べると、genericsを使うとできるようだ。 package main import "fmt" type A struct { Field1 int } type B struct { Field2 string } type AorB interface { A | B } func PrintAorB[T AorB](s T) { // Tで受け取ったものをそのままs.(type)とは出来ないので、一旦anyへキャスト switch v := any(s).(type) { case A: fmt.Println(v.

    Goで関数の引数に、union型っぽくstruct Aもしくはstruct Bのどちらかを受け取れるようにしたい - $shibayu36->blog;
  • MySQLのREPEATABLE READとREAD COMMITTEDの違いを知るために色々試した - $shibayu36->blog;

    MySQLのトランザクション分離レベルについてふんわりとした理解しかないなと感じた。もう少し理解するために、とくにREPEATABLE READとREAD COMMITTEDの違いを手を動かして色々確認してみた。 以下の記事を参考にした。 [RDBMS][SQL]トランザクション分離レベルについて極力分かりやすく解説 #SQL - Qiita MySQL :: MySQL 8.0 リファレンスマニュアル :: 15.7.2.1 トランザクション分離レベル 大まかな違い 公式ドキュメントを見る限り ノンリピータブルリード、ファントムリードが発生するか 範囲に含まれるギャップへのほかのセッションによる挿入をブロックするか の違いがありそうに見える。 ノンリピータブルリード、ファントムリードが発生するかを試す 以下のテーブルを作る。 CREATE TABLE `posts` ( `title`

    MySQLのREPEATABLE READとREAD COMMITTEDの違いを知るために色々試した - $shibayu36->blog;
  • 本の内容が頭に入ってくるのは結局は知見まとめノートを作っている時 - $shibayu36->blog;

    最近は読書のやり方を変えてみたら知識の吸収速度・引き出し速度が上がった話 - $shibayu36->blog;に書いているやり方で読書をしている。こういう流れだ。 (1)学びたいと思った知識が書いてありそうなを2~5冊選ぶ (2)1冊ずつざっくり読みながら、面白かった部分・気になった部分はKindleで黄色にハイライトしておく (3)全冊読み終わったら、ハイライトした部分だけ眺めて、やっぱりおもしろいと思ったところは赤のハイライトを付け直す (4)赤のハイライトを眺めて、読書ノートに転記する (5)とくにおもしろい部分については、自分の知見まとめノートにカテゴリごとに整理する しばらくこれを続けて感じたのは、結局のところ(4)〜(5)に至るまで書籍の内容が全然頭に入っていないということだ。(4)(5)の時に、はじめて「書いている内容が言いたかったのはこういうことだったのか」と頭が急に理

    本の内容が頭に入ってくるのは結局は知見まとめノートを作っている時 - $shibayu36->blog;
  • あるレポジトリを別のレポジトリのサブディレクトリへ履歴付きで移動する - $shibayu36->blog;

    あるレポジトリのサブディレクトリ配下を別のレポジトリへ履歴付きで移行する - $shibayu36->blog; の逆バージョン。 あるレポジトリでずっと開発していたが、やっぱりモノレポの中に入れたいとなって、履歴付きでモノレポの特定のサブディレクトリ配下に移動したい時があった。たとえば https://github.com/shibayu36/go_todo_app の履歴をすべて https://github.com/shibayu36/go-playground のgo_todo_appディレクトリに移したいみたいなケースだ。この時コミット履歴としてはgo-playgroundのgo_todo_app/配下で初めから開発していたかのように移したい。 この解決策として Gitのサブツリーのマージについて - GitHub Docs にあるように、サブツリーマージという方法も取れる。しか

    あるレポジトリを別のレポジトリのサブディレクトリへ履歴付きで移動する - $shibayu36->blog;
  • fzfを使ってgit stashを便利に扱えるように - $shibayu36->blog;

    git stashをもっと便利に扱いたいと思い、fzfを使って使いやすくしてみた。以下のURLに載っているものを参考にして自分にとって使いやすいように改変した。 fzfでGUI選択したファイルをgit stashするシェルスクリプト git-stash-explore できたこと 今の変更ファイルをfzfを使って選択して、選択したものだけをstash (git-stash-select) stash一覧の中から中身をpreviewしながら選び、apply or deleteする (git-stashes) 現在の変更ファイルから一部を選んでgit stashするコマンド fzfでGUI選択したファイルをgit stashするシェルスクリプト を参考に、git-stash-selectというコマンドを作った。 #!/usr/bin/env bash # Get the root direct

    fzfを使ってgit stashを便利に扱えるように - $shibayu36->blog;
  • 特定ファイルを更新したマージコミットを探す - $shibayu36->blog;

    あるファイルが最近どの程度の頻度で更新されたのか、マージコミット単位(≒PullRequest単位)で調べたいことがあった。git logのコマンドを使ったら簡単に調べられたのでメモ。 たとえば1年以内に https://github.com/x-motemen/ghq のレポジトリで .github/ 以下に変更を加えたマージコミットを取得したい場合はこんな感じ。 $ git log --merges -m --first-parent --pretty=format:"%cd - %an: %s(%H)" --since="1 year ago" .github/ Sun Apr 16 23:27:26 2023 +0900 - Masayuki Matsuki: Merge pull request #359 from x-motemen/coverage(e7f736f22376d

    特定ファイルを更新したマージコミットを探す - $shibayu36->blog;
  • git logの内容を検索する-Sと-Gの違い - $shibayu36->blog;

    ずっとgit logの内容を検索するときに-Sオプションを使っていたが、実は近いオプションに-Gオプションもあり、探したい内容によっては使い分けないとダメということを初めて知った... 詳しくはhttps://git-scm.com/docs/git-logの-Sと-Gのドキュメントを見てほしい。簡単にまとめると -Sは指定した文字列の出現回数が変わるdiffがあるcommitを検索する -Gは指定した正規表現がマッチする文字列がdiffにあるcommitを検索する ドキュメントの事例部分が結構わかりやすくて、以下のようなdiffがあった場合 + return frotz(nitfol, two->ptr, 1, 0); ... - hit = frotz(nitfol, mf2.ptr, 1, 0); -S frotzで検索をかけると、frontsの出現回数は変わってないのでマッチしない

    git logの内容を検索する-Sと-Gの違い - $shibayu36->blog;
  • Goの学習のため書籍を三冊読んだ - $shibayu36->blog;

    A Tour of Goが終わり、もう少しGo自体の深掘りをしたいためGoの書籍をいくつか読んでみたのでメモ。今回読んだ書籍は以下の三冊。 実用 Go言語 ―システム開発の現場で知っておきたいアドバイス 作者:渋川 よしき,辻 大志郎,真野 隼記オライリージャパンAmazon Go言語プログラミングエッセンス エンジニア選書 作者:mattn技術評論社Amazon 改訂2版 みんなのGo言語 作者:松木 雅幸,mattn,藤原 俊一郎,中島 大一,上田 拓也,牧 大輔,鈴木 健太技術評論社Amazon それぞれの感想としては 実用Go言語:業務で使っていると起こるような色んなHowToを大量に提供してくれている。今の段階で全部読むというより、必要に応じて再度読むインデックス的な使い方が良さそう。クックブック的。 Go言語プログラミングエッセンス:最近出たのため、最近のGoに即した内容を学

    Goの学習のため書籍を三冊読んだ - $shibayu36->blog;
  • Rails勉強し直している - Webアプリケーション編 - $shibayu36->blog;

    Rails勉強し直している - DB操作編 - $shibayu36->blog;に引き続きRailsを勉強し直している。今回はHatena-TextbookのWebアプリケーションの課題を通して学習した。 作ったもの diffはこの辺。ユーザーが存在する前提で、記事のCRUD処理を実装した。 今回学んだことを雑多に記録していく。 /:username/entries/:id のようなルーティングを作る方法 あるユーザーの記事一覧というURLを作るため、/:username/entries/:id というルーティングが作りたかった。gitlabのこの辺とかを参考にすると、scopeを使うと良さそうであった。 例えばこんな感じ。 scope '/users/:username' do resources :entries end またルーティングヘルパーにUserモデルを渡すだけで /use

    Rails勉強し直している - Webアプリケーション編 - $shibayu36->blog;
  • 優先度付きキューにも使われる二分ヒープ構造をRubyで実装してみる - $shibayu36->blog;

    アルゴリズム図鑑 絵で見てわかる26のアルゴリズム 作者:石田保輝,宮崎修一翔泳社Amazon アルゴリズム図鑑を眺めていて、二分ヒープ構造は優先度付きキューに使われることを知った。面白いなーと思うと同時に、そういえば二分ヒープ構造の実装をしたことがなく、あまり理解できていないことに気づいた。そこで簡単にRubyで実装をしてみたのでメモ。簡単なテストケースを作ったので多分合ってると思うけど、もしかしたらバグっているかも... 二分ヒープの詳細は二分ヒープ - Wikipediaも参考。 【2023/01/03 14:01追記】要素数が1の時に要素が空にならないバグがあったので修正しました。コメントありがとうございます。https://github.com/shibayu36/algorithms/commit/6c2ce588f7bc7fb890c6a560c7ab062c6f531a9a

    優先度付きキューにも使われる二分ヒープ構造をRubyで実装してみる - $shibayu36->blog;
  • 子供の熱性けいれんを初体験した - $shibayu36->blog;

    すごく焦ったけど良い形で対応できたので書いておく。 状況 子供が40度近い熱が出たので小児科へ。インフルエンザA型の診断を受けて薬をもらう。自転車での帰り道に違和感を感じたので後ろを振り向いたら、子供がけいれんを起こしていて泡も吹いていた。 熱性けいれんのことも頭によぎりつつ、今まで体験したことなかったので自転車を停めてすぐに119連絡。呼吸を確認してくださいと言われたので確認すると大丈夫だった。けいれんが治っても意識は戻らなかったので救急車の到着を待つ。救急車の中でけいれんの様子を救急隊員に報告する。この時熱は40.6度まで上がっていた。受け入れ病院の電話を聞きながら1~2個から断られているのを聞いて、医療崩壊怖いと感じる。 病院に着いた時、反応は薄いが多少子供の意識が回復していた。けいれんの様子や意識の回復の様子から考えて、単純性の熱性けいれんだろうと病院が判断。けいれんを防ぐ坐薬を入

    子供の熱性けいれんを初体験した - $shibayu36->blog;
  • Re: チームのベロシティを上げる vs. 安定させる - $shibayu36->blog;

    yigarashi.hatenablog.com これが良い話だなと思ったので感想メモ。 「安定させる」のは良い。安定しないならチームの開発フローに問題が起こっていることが多く、「なんでブレちゃうんだっけ?」という議論からチームの課題が見つかることが多い。安定させるという考えなら変なハックが起こらない傾向にある印象 「上げる」は難しい。これまで、「上げよう」とした時に、ベロシティは基準によって変わる相対的指標なので、上げようと意識するとどれだけ気をつけても無意識にハックしてしまう経験がある。例えば 完了条件には完全に明文化されていないような地味かつ大切なポイントが終わっていない(例えばコードのメンテナンス品質が思ったより低い)時も、上げる意識だと終わりにしてしまいたくなる 考慮もれを見つけた時に、そのタスクで終わらせる意識ではなく、新タスクを作ってそっちで倒す意識になりがち 何となく、悲観

    Re: チームのベロシティを上げる vs. 安定させる - $shibayu36->blog;
  • マイクロサービス化や大規模リファクタリングの手順を学ぶ - モノリスからマイクロサービスへを読んだ - $shibayu36->blog;

    当に最高のでした。マイクロサービス化に取り組んでなかったとしても、規模が一定以上大きいプログラムのリファクタリング手法としても勉強になるので、みんな読みましょう!少なくともマイクロサービス化をしていきたいと思っていて、このを読んでないならば、まずは一旦手を止めて関係する人全員でこのを読んでから再度手を動かす、くらいでも良いレベルと感じました。 モノリスからマイクロサービスへ ―モノリスを進化させる実践移行ガイド 作者:Sam NewmanオライリージャパンAmazon このを読んでいると、マイクロサービス化をしたいときは、必ず以下の手順でやっていくべきと感じました。 目的を明確にする 達成したいことは何か?事業が達成しようとしていることにあった一連の成果が目的でなければならない。これは、システムのエンドユーザーへのメリットを説明する方法で明確にできる その目的を達成するために、な

    マイクロサービス化や大規模リファクタリングの手順を学ぶ - モノリスからマイクロサービスへを読んだ - $shibayu36->blog;
  • 株式会社アンドパッドに入社しました - $shibayu36->blog;

    2021/10/01から株式会社アンドパッドに入社しました。初めての転職なので緊張しているけれど、早めに馴染みたい。 andpad.co.jp 転職活動をしている中でいくつかオファーをもらっていたが、以下の理由で株式会社アンドパッドに入社を決めた。 裏側よりの難しい課題をクラウドネイティブな設計で解決するタスクができそう 組織規模が急拡大していて、組織マネジメントの経験が深まりそう 採用フローがしっかりしていて、今後も良い人がどんどん入ってきそう 裏側よりの難しい課題をクラウドネイティブな設計で解決するタスクができそう これまでのエンジニア経験の中ではインフラ〜フロントまで全体的に触ってきたが、自分の中ではインフラ領域〜バックエンド領域の中間くらいのエンジニアリングに最もモチベーションが湧いていた。またクラウドネイティブな設計をもっとできる機会があればなあと思っていた。 このように考えてい

    株式会社アンドパッドに入社しました - $shibayu36->blog;
  • 睡眠に関する本を読んだ - $shibayu36->blog;

    睡眠を学びたいと思ったので読んだ。最近自分が全然睡眠足りてなかったということに気づけて良かった。 スタンフォード式 最高の睡眠 作者:西野 精治サンマーク出版Amazon 睡眠こそ最強の解決策である 作者:マシュー・ウォーカーSBクリエイティブAmazon 「スタンフォード式最高の睡眠」の読書ノート * 睡眠負債を返すには3~4週間程度かかるので、週末の寝だめくらいでは機能しない 569 * 睡眠メンテナンスで意識したいのは「最初のノンレム睡眠」をいかに深くするか 620 * グロースホルモンが最も多く分泌されるのも最初のノンレム睡眠 * 睡眠圧も最初のノンレム睡眠で多くが解消される * 最初の90分を阻害すると、その後の睡眠は計測不能となる程乱れる 634 * 普通の人は最低でも6時間以上は睡眠が必要 644 * 眠りが足りているかの一番簡単な点検は自分の感覚。眠りの前後の「眠さ」 +

    睡眠に関する本を読んだ - $shibayu36->blog;
  • 「プロフェッショナルSSL/TLS」を読んだ - $shibayu36->blog;

    [asin:4908686009:detail] 最近ふとSSL/TLSの仕組みについて知りたくなったので、「プロフェッショナルSSL/TLS」を読んだ。 かなりいろんな話題を網羅していて、かつ具体的な設定例なども書かれていて良かった。TLSに関する仕事をするときや、SSL/TLSやHTTPS周りで何回かハマったことがあるなら非常にお勧めできる。 仕組みを理解したいなら1章 SSL/TLSと暗号技術・2章 プロトコル・3章 公開鍵基盤が参考になった。実運用なら8章 デプロイ・9章 パフォーマンス最適化・16章 Nginxの設定あたりが参考になりそう。またTLS周りでハマった時のトラブルシューティングには12章のOpenSSLによるテストが使えるだろう。 ただ最新のTLS 1.3に関してはそこまで多く言及はなかった(電子書籍版の巻末の付録のみ)ので、これについては別書籍や別資料で学ぶ必要があ

    「プロフェッショナルSSL/TLS」を読んだ - $shibayu36->blog;
  • Next.js + Prisma + NextAuth.js + React Queryを試した - $shibayu36->blog;

    2分コーディングの一環でNext.js + Prisma + NextAuth.js + React Query で作るフルスタックアプリケーションの新時代をやった。とにかく簡単に認証 + DBアクセスがあるアプリケーションを作ってvercelにデプロイできるサンプルが出来て非常に良かった。趣味プロダクトをちょっと作ってみるのに良さそう。 shibayu36/next-prisma-auth-tutorialに試した例を置いているので参考にどうぞ。 やれたこと Googleのアカウントを使ってサインインし、TODOを追加できるアプリケーション herokuのPostgreSQL dbをデータソースとして動くアプリケーションをvercelにデプロイ 作業メモ prisma、migrationのツールも入ってるし便利すぎる。 migrationしたけどpsqldocker内にアクセスできなか

    Next.js + Prisma + NextAuth.js + React Queryを試した - $shibayu36->blog;
  • 改善提案の議論をテキストで非同期に行う - リモートワークに合わせた提案方法を探る - $shibayu36->blog;

    最近はリモートワークが主体で、みんなで集まっての同期的コミュニケーションがやりづらくなり、他の人の非言語情報を受け取ることも困難になった。その結果として、自分がチームで改善提案をした時に、周りの人からコメントを受け取る、提案に対する温度感を探るということが難しくなった。 改善提案にこのような課題があったので、リモートワークに合わせた方法を探り、まず改善提案の議論をテキストで非同期に行うというやり方を行ったので紹介する。その過程で自分が作った提案のテンプレートも共有するので、参考にしてもらえると嬉しい。 課題: 現在の働き方でも改善提案に対するフィードバックをもらいやすくしたい もう一度課題をまとめる。 自分がチームの改善提案をした時は、チーム内の意見や反応を見ながら、より改善提案をブラッシュアップして実施したいと考えている。つまり開発フローなどチームの改善提案でもコードレビューと同様、コメ

    改善提案の議論をテキストで非同期に行う - リモートワークに合わせた提案方法を探る - $shibayu36->blog;
  • リモートワークでは自己主張スキルが大事な気がしてきた - $shibayu36->blog;

    リモートワークをしていると特定のスキルを保有しているか否かで自分の成果や成長が大きく変わってくると感じてきている。その中の一つとして最近感じているのが自己主張スキル。 なぜそう感じるか。それは最近ローカルでの開発からリモートの開発になったことで、自分がメンタリング・ファシリテーション・スクラム開発などをしている時に、非言語情報である表情や相槌、目線などの情報を使って良い感じに対処することが非常に難しくなったからだ。リモート会議だとミュートを多用したり人によってはビデオを切っていたりするので*1、言語情報以外の情報が全く入ってこなくなり、「良い感じ対処」のための情報量が圧倒的に不足するようになってしまった。例えば メンターとして困りごと相談を受けている時間に沈黙が生まれると、理解していて沈黙しているのか、今考え中で沈黙しているのか、全く理解不能で沈黙しているか分からず、どう対処したら良いか分

    リモートワークでは自己主張スキルが大事な気がしてきた - $shibayu36->blog;