Jestはハマりやすかった 仕様まとめ モックを元実装に戻す方法 モックの実行タイミング jest.doMock()の注意点 jest.isolateModulesでモジュールへのモックの影響を閉じ込める 参考 Jestはハマりやすかった 数年Jestを書いていますが、Jestのモック周りで頭…
先日、Robert C. Martin氏の有名な著書 Clean Architecture を読み終えました。 良著というのは前々から聞いていたのですがEngineering Managerとしてのインプットに時間を割いていた都合で読む機会を逸しておりました。 翻訳版の言い回しが微妙に理解し辛か…
macOSのターミナルで有名なiTerm2。 iterm2.com 実務でよくお世話になっているんですが、頻繁に叩く複数のコマンドを予めPythonスクリプトに記述しておいて一括実行させることもできます。 やってみて結構便利だったのでご紹介します。 Pythonスクリプトを新…
先日CursorでほぼVibe CodingでChrome拡張を作りました。 tm-progapp.hatenablog.com この拡張では右クリックメニューから拡張専用メニューを選択すると、任意のプロンプト+選択中のテキストをクリップボードにコピーしてAIサービスのプロンプト入力ページ…
先日Cursor Meetup Tokyoがありましたが、現地参加者349人、オンライン参加者5818人とかなり熱量を感じたイベントでしたね。(当日connpassのサーバが一時落ちたのも印象的でした) Cursor Meetup Tokyo - connpass 各セッションでのAI活用事例を聞きなが…
本業が忙しくめっきりブログ更新してなかったのですが、ネタが少しずつ溜まってきたので徐々に再開していこうと思います。 今回は最近自分がどうAIを活用をしているのかを書き連ねてみようと思います。 Perplexity Claude ChatGPT GitHub Copilot NotebookLM…
最近Kindleで「Clean Architecture」を読んでいます。 ボブおじさんことRobert C.Martin氏の有名な著書ですね。 この書籍の14章では「SAP = Stable Abstractions Principle(安定度・抽象度等価の原則)」という原則が紹介されるのですが、そこでは依存性…
最近Engineering Manager(EM)というロールで日々開発を推進するようになりました。 ロールを任命された当初は右も左も分からない状態でしたが、上司から薦められた「エンジニアリングマネージャーのしごと」という書籍を読んだことで いくつか実務上の学びに…
先日、MySQL(InnoDB)でトランザクションを張ったまま大量のクエリを発行することによりhistory listが肥大化し障害に繋がるケースがあることを知り、個人的に調査した記録を残そうと思います。 Undo Logとは history listとは history listを確認する 何故長…
UnityのプロジェクトをGit管理する場合、必然的にサイズの大きいバイナリも管理対象とする必要が出てきます。しかしGitHubにはpushするファイルの容量制限が設けられておりバイナリをそのままpushできないケースがよくあります。 File size limits ... GitHu…
自宅に眠っていた中古MacBookをどうにか有効活用したい… そう思ってネットの海をさまよっているとUbuntuをぶち込むことができるようなので 実際にやってみたことを備忘録として残そうと思います。 使ったもの Macbookを初期化する isoファイルをDLする isoフ…
ちょっとハマってしまったのでメモがてらに書きます。。 やりたかったこと 以下のようなFirestoreのあるCollectionにDocumentを追加するような処理を書いてました。 import { cert, initializeApp } from "firebase-admin/app"; import { getFirestore } fro…
最近ずっと放置していたポートフォリオサイトをアプデしました。 My Portfolio 元々はNext.jsで構成していたのですが、今回React.jsに置き換えをしました。 何で置き換えたの? ビルド、デプロイはGitHub Actionsで実行されるようにしていたのですが、その際…
日頃技術系のニュースを追う際に、よく見るサイトの記事を俯瞰して見たいので毎日スクレイピングした記事をDBに格納して、自作アプリから見れるようにしています。 ↓こんな感じ https://birds-eye.ts-soda.net/news 特に大きな問題はなく運用できていたんで…
以前Spring Frameworkについて調べていた時、RDBMSとの通信方法をまとめていたのですが記事として公開せず放置していたので公開しておきます。
DBのロックについて考える際にTransaction Isolation Levelsを確認することはよくあると思いますが、バックエンドを触ってない期間が長くなると細かい部分を忘れてしまうのでまとめてみました。
業務ではバックエンドにSpringを使っているのですが、単体テストを書く場合のモックフレームワークとしてMockitoを使っています。 割合としてはE2Eテストの方が多く単体テストを書く機会が少ないのですが、今後は単体テストも割合を増やしていきましょうとい…
プライベート用のReactアプリをたまに手直しすることがあるのですが、いい加減CI/CDでデプロイを楽できるようにしとかなきゃなぁと思い、先日GitHub Actions用の設定を追加しました。
Gradleあるあるだとは思いますが、先日ちょっとハマったことを書きます。
プライベートの開発機はWindowsを使っているのでターミナルは基本的にGit Bashを使っていたのですが、最近Ubuntu on Windowsに変えてみました。 crontabは別途設定しないと動いてくれなかったりしますが、基本的にはWindowsの仮想環境でUbuntuが動くのでGit …
年末は自宅で稼働する5台のラズパイ達のパッケージアップデートやスクリプト整理などをやっておりました OSのメジャーアップデートもそろそろやらなきゃなということで、ついにbullseyeへアプデすることにしました。 なお既存環境からメジャーアップデートさ…
UnityのLocalizationを利用する際、制作中のゲームではStringTableCollectionをCSVからインポートしていました。 ただ用途によってStringTableCollectionを複数に分割している為、CSVも分割した数だけ存在するのでGUIからのインポートがとても苦痛…。 そこで…
SQLiteを今まで使ったことが無かったのですが、先日ExcelでSQL的なことをしようとして思うように書けず辛かったのでSQLiteへデータを流し込んでSQLのクエリで集計しました。 SQLiteはPostgreSQL, MySQL等と比較すると気軽にデータを格納・集計できるので、普…
tm-progapp.hatenablog.com ↑の記事にてInnoDBのロックについてまとめましたが、公式ドキュメントを読み漁る中で「locking read」と「non-locking read」という言い回しがあり、気になったのでまとめてみました。 MySQL :: MySQL 8.0 Reference Manual :: 15…
MySQLを実務で触っているのですが、改めてInnoDBのロックの仕様について頭の整理をするためにまとめてみました。 ロックの種類 共有ロック 排他ロック ロックの範囲 レコードロック ギャップロック ネクストキーロック テーブルロック ロックの範囲はどのよ…
最近知ったnpm linkというものについて書いてみようと思います。 やりたかったこと とあるnpmパッケージの実装を変更した後、npm publish前にパッケージをimportしている別プロジェクト側から動作が確認したいというケースがありました。 具体的には、プロジ…
VSCode便利ですよね。 拡張機能を使いこなすと大体やりたいことができちゃう凄いエディタだという印象を持っていますが、実はデフォルトでも便利な機能が実装されています。 文字列比較した時の表示 例えば以下はVSCodeで異なるテキストファイル同士を比較し…
Unityのエディタ拡張を使えば、シーンビューにボタンを配置することが出来ます。普段はWindowsで開発をしているので、Git Bashで実行するシェルスクリプトのボタンを置いてみました。
Cloud Watch Insightsは、膨大なCloud Watchのログから必要なものをフィルタリングするのに便利です。 AWSコンソール上から利用できるようになっていますが、AWS CLIからも利用ができるとのことで実際に試してみました。 動作環境 # uname -a Linux b93945d4…
デバッグをしていて一部のHTTPリクエストのパラメータだけ変えてcurlしたいなーと思っていたところ、Chromeの開発者ツールで既に便利な機能が用意されていたことを知りました。 やり方 Chromeで開発者ツールを開き、「Network」タブを表示する。 コピーした…