概要
年の瀬なので2023年に買ってよかったものを挙げてきます。
SESAMEタッチ & オープンセンサー
2021年買ってよかったものリスト - Carpe Diem
でも紹介したスマートロックで
に対応したデバイスがリリースされました。
【New】SESAMEタッチjp.candyhouse.co
開閉検知のセンサーも合わせることで自動ロックも対応しました。
CEOのプレゼンも面白いので応援してるベンチャーです。
続きを読む年の瀬なので2023年に買ってよかったものを挙げてきます。
2021年買ってよかったものリスト - Carpe Diem
でも紹介したスマートロックで
に対応したデバイスがリリースされました。
【New】SESAMEタッチjp.candyhouse.co
開閉検知のセンサーも合わせることで自動ロックも対応しました。
CEOのプレゼンも面白いので応援してるベンチャーです。
続きを読む前回紹介したBackstageをローカルで使うための説明です。
開発者ポータル Backstage とは - Carpe Diem
以下のコマンドでアプリケーションを作成できます。
今回はmy-app
という名前で作るとします。
$ npx @backstage/create-app@latest ? Enter a name for the app [required] my-app続きを読む
KubernetesでPodがOOM Killされた際には以下のようなログが発生します。
Memory cgroup out of memory: Kill process 9130 (XXXX) score 1592 or sacrifice child Killed process 9130 (XXXX) total-vm:423008kB, anon-rss:122484kB, file-rss:33792kB, shmem-rss:0kB
その中でtotal-vm
、anon-rss
、file-rss
、shmem-rss
といった単語が出てくるのでそれぞれの違いを説明していきます。
仮想メモリはメインメモリ(RAM)の抽象概念で、プロセスとカーネルにほぼ無限(64bitOSだと約16,000PB)のアドレス空間を提供します。
これにより各プロセスとカーネルは競合を気にすることなく専用のアドレス空間を利用できます。
上図のように仮想メモリはメインメモリ(物理メモリ、RAM)やストレージデバイス(ディスク)へマッピングされます。カーネルはできる限りアクティブなデータをメインメモリの方に残そうとします。
続きを読む開発チームが抱えるよくある課題として
といったことが良くあります。
解決方法としては以下のように、GitHub&ルールベースで管理するといった例があります。
また組織・システムが大きくなってくると認知負荷を低減するためにドメインで区切るような形でチームの分割が始まりますが、
となり、先程のドキュメント管理の課題と相まって生産性を低下させます。
このような状況で、総合的なソリューションとして生み出されたのがSpotifyのBackstageです。
Spotifyでは数百もの独立したマイクロサービスが存在し、それぞれが異なるチームによって管理されていました。
この複雑さを管理するため、Spotifyは開発プロセスを標準化し、チーム間の共有と協力を促進する内部ツールとしてBackstageを開発しました。
今回はそのBackstageについて説明します。
続きを読む支払い処理などで問題になりがちな二重サブミット問題(Double Posting Problem)ですが、主に以下のようなケースで発生します。
今回はその防止方法について説明します。
大まかな方針としてはユニークなトークンを発行してそれをチェックする方法です。
サーバサイドでトークンを発行するパターンです。
シーケンス図はこちらです。
続きを読む
GraphQLでN+1になってないかを確認したいときに、スロークエリだけでなく全てのクエリログを見たくなったのでその設定方法を説明します。
の2通りで説明します。
まずは直接コンテナに入って見る方法です。
ローカルもしくはDockerコンテナ内でmysqlにログインして次のクエリを投げると設定を確認できます。
mysql> show variables like 'general_log%'; +------------------+---------------------------------+ | Variable_name | Value | +------------------+---------------------------------+ | general_log | OFF | | general_log_file | /var/lib/mysql/cfadc6a5faf3.log | +------------------+---------------------------------+続きを読む