Watchlist から確認できるのだが、お気に入り的なことはできないので
/takumines
/issei1213
/Naoki-Yuzu
/koushisa
https://owasp.org/www-project-go-secure-coding-practices-guide/
有志による日本語訳: https://tech.techtouch.jp/entry/gosecurecoding-jajp
v2.6.2(現行は v2.6.6)時点での翻訳なので、情報が少々古い
OWASP が公開している Go で Web アプリケーション開発をしている人向けのセキュリティに関するベストプラクティス集
https://zenn.dev/hsaki/books/golang-static-analysis
#Go #読了 #静的解析
...
#読書メモ #Terraform
...
#Terraform #読書メモ
import は v1.5.0 で追加された
既存のリソースを取り込むだけでなく、tf ファイルを新規作成する際にも活用できる
import ブロック以前の既存リソースの取り込み
まず、terraform import を用いて、既存リソースをステートに取り込む
その後、terraform plan を繰り返しながら差分がなくなるまで設定を追加する
繰り返し構文におけるリソース作成順序は担保されておらず、毎回ランダム
count
number を渡して、リソースを複製する
resource "terraform_data" "count_echo" {
count = 3
resource: https://developer.hashicorp.com/terraform/language/block/resource
インフラを構成する各種リソースを定義する
リソース種別とリソース名を指定する
この組み合わせは、ステート内において一意に定まっている必要がある
メタ引数: リソースそのものの設定ではなく、振る舞いを定める引数
variable ブロックで使えるパラメータ
default: 定義されていない場合に入るデフォルト値
type: 型
description: 説明文
validation: 値のルール
キーボード
HHKB Professional HYBRID Type-S
7sPro
Keychron K2
Moonlandar Mark Ⅰ: 修理中...
https://cryptolinc.com/blog/the_dao
https://forbesjapan.com/articles/detail/46069
https://knowledge.sakura.ad.jp/5391/?amp=1
https://developer.chrome.com/blog/chrome-devtools-mcp?hl=ja
https://github.com/ChromeDevTools/chrome-devtools-mcp/
{
"mcpServers": {
"chrome-devtools": {
WIP...
#Go #読書メモ
fuzz testing
ファジング
ソフトウェアテスト 手法の 1 つ
プログラムにランダムな入力値を与えることでバグを発見する
特に、意図的な攻撃者が制御できる入力が存在する場合に有用
心理的安全性 は、個人的に新しいプロジェクトにジョインする際に重視するポイント
しかし、今までフワッとした概念だったので、自分の中に軸を作るためにあらためて言語化する
どのようなカルチャーが心理的安全性が担保されていると言えるのか
ミスを責めるのではなく、学びとして共有する文化
責めてしまうと次から隠蔽するようになるため、また同じ失敗が起きてしまう
https://gocon.jp/2025/talks/959006/
https://www.slideshare.net/slideshow/swiss-table-deep-dive-go-conference-2025/283475359
Swiss Table
チェイン法 ではなく、オープンアドレス法 で実装された ハッシュテーブル
オープンアドレス法の方が、実装は複雑になるがキャッシュ効率が良い
https://gocon.jp/2025/talks/957443/
https://speakerdeck.com/uhzz/go-conference-2025
Graceful shutdown: 処理中のタスクのリソースを解放した後に、アプリケーション自身を修了する
SIGTERM を受け取ってからリソースを解放し、SIGKILL
Go で再現する: signal.NotifyContext + context.WithTimeout
https://gocon.jp/2025/talks/958892/
https://speakerdeck.com/masa0110/gonozi-ju-jie-xi-wosi-itemiru-8458b8d5-7222-49b5-ba43-bb2116e757e3
Go のトークンは identifiers, keywords, operators and punctuation, literals の 4 つに分類される
https://pyroscope.io/
#プロファイリング
https://www.vibekanban.com/
https://github.com/uber-go/fx
https://uber-go.github.io/fx/
Uber が提供している DI ライブラリ
#Go
https://github.com/yjs/yjs
#JavaScript
https://gocon.jp/2025/talks/939638/
https://speakerdeck.com/kuro_kurorrr/understanding-module-through-the-lens-of-supply-chain-attacks
2025 年 2 月、 3 年以上潜伏していた悪意あるパッケージが発覚した(タイポスクワッティング)
🙅 github.com/boltdb-go/bolt
https://gocon.jp/2025/talks/958036/
https://speakerdeck.com/nagano/v2dehe-gabian-waruka
従来の課題
複数キーがある場合、後にセットされた値が優先される
脆弱性 になりうる: 署名検証・監査・差分適用のシナリオで問題が発生する
https://gocon.jp/2025/talks/958992/
https://speakerdeck.com/zchee/the-current-status-of-green-tea-gc
既存の GC の実装(Tri-color Parallel Marking)
オブジェクトの状態を未走査(White)・処理中(Gray)・走査済(Black)で管理する古典的なアルゴリズム
並行処理によってチューニングされているものの、以下のような課題に対応できていない
https://gocon.jp/2025/talks/958503/
https://speakerdeck.com/karamaru/mockio-go-dynodexue-bumetapuroguramingu
Mockio
構造体(モックオブジェクト)の事前生成が不要
同開発者が提供している Go-dyno に強く依存している
https://github.com/golang/go/issues/73581
Go の新しい GC
現時点での GC: https://go.dev/doc/gc-guide
このページも Green Tea に変わったら、変わると思うのでアーカイブしておきたい...
v1.25 時点では、試験機能として提供
https://arxiv.org/abs/2005.11710
https://arxiv.org/pdf/2005.11710
#Go
https://gocon.jp/2025/talks/958952/
https://speakerdeck.com/takehaya/go-conference-2025-godeti-gan-surumultipath-tcp-go-1-dot-24-shi-dai-no-mptcp-listener-woli-jie-suru
Multipath TCP(MPTCP)
TCP のマルチパス化技術
https://gocon.jp/2025/talks/958977/
https://zenn.dev/canary_techblog/articles/ec8a96b4541685
bubble と durably blocked が synctest を理解する上での重要なコンセプト
v1.24 で testing/synctest パッケージが導入された経緯
非同期なテストは難しく、時間がかかる(time.Sleep) or Flaky test になりやすい
https://ebitengine.org/
#Go
https://gocon.jp/2025/talks/959061/
v1.24 から map 型の内部実装が Swiss Table を用いるように変わった
map の割り当て・読み取りのどちらでも Directory → Table → Group → Slot の順序で Key-Value を特定する
Table の特定
key から計算したハッシュと Directory の長さに応じた値で AND 演算した結果のビットパターンで特定
WIP...
#Go #読書メモ
encoiding/json/v2 を試すため
VSCode
{
"go.toolsEnvVars": {
"GOEXPERIMENT": "jsonv2"
https://context7.com/
#MCP_Server
Unison language
https://www.unison-lang.org/
純粋関数型プログラミング言語
インストール
$ brew tap unisonweb/unison
が触ったことのある言語一覧
太字は実際のプロダクト開発で利用したもの
社内プロダクトとかでも良いから自分の好きな言語で作ろう
~ 2018
Maple
https://www.anthropic.com/engineering/claude-code-best-practices
https://zenn.dev/heavenosk/scraps/a1eeb84535832c
Anthropic 公式の Claude Code のベストプラクティス集
1. Customize your setup
コンテキスト の収集には時間と トークン を費やすが、環境次第で最適化できる
WIP...
#Go #読書メモ
https://www.hacksplaining.com
#セキュリティ
https://ukiahsmith.com/blog/improved-golang-unmarshal-json-with-time-and-url/
#Go
https://blog.cloudflare.com/how-and-why-the-leap-second-affected-cloudflare-dns/
#DNS #Cloudflare
WIP...
#Go #読書メモ
https://revive.run/
#Go
WIP...
#Go #読書メモ
https://eli.thegreenplace.net/2019/simple-go-project-layout-with-modules/
#Go
集約するには、errors.Join を用いる
err1 := errors.New("err1")
err2 := errors.New("err2")
err := errors.Join(err1, err2)
集約した結果を分割して処理するには、interface{ Unwrap []error } でキャストしたのちに、Unwrap メソッドを呼び出せば良い
WIP...
#Go #読書メモ
WIP...
#Go
https://go.dev/blog/comparable
#Go
https://go.googlesource.com/proposal/+/refs/heads/master/design/43651-type-parameters.md
#Go
WIP...
#Go #読書メモ
from 初めてのGo言語 第2版 ―他言語プログラマーのためのイディオマティックGo実践ガイド
WIP...
#Go #読書メモ
WIP...
#Go #読書メモ
https://www.ardanlabs.com/blog/2017/05/language-mechanics-on-stacks-and-pointers.html
https://go.dev/doc/gc-guide
#Go #GC
https://github.com/bhauman/clojure-mcp
#Clojure
https://grafana.com/docs/k6/latest/k6-studio/
概要
実際のブラウザ操作を記録して HAR ファイル を作成し、そのファイルから k6 のテストスクリプトを作成する デスクトップアプリケーション
インストール
事前に Google Chrome をインストール必要がある
エミュレータ側の操作
1. Settings アプリを開いて、About emulated device をタップ
2. 「Build number」を 7 回タップして開発者オプションを有効化
3. Settings のホーム画面に戻り、「System」→「Developer options」
4. 「USB debugging」を ON にする(おそらく最初から ON になってるはず)
https://ja.react.dev/learn/sharing-state-between-components#controlled-and-uncontrolled-components
非制御コンポーネント
ローカル state を持つコンポーネント
Props による設定が少なく済むので、親コンポーネントの中に入れて使用することが容易
しかし、それらを協調して動作させたい場合など柔軟性に欠ける
from 初めてのGo言語 第2版 ―他言語プログラマーのためのイディオマティックGo実践ガイド
配列
インデックスに最大要素を超える値や負の値を指定すると、コンパイルエラーとなる
配列の大きさも型の一部なので、[3]int と [4]int は異なる型
一応、スライスを介して変換することは可能
from 初めてのGo言語 第2版 ―他言語プログラマーのためのイディオマティックGo実践ガイド
事前宣言された型(predeclared type)= 組み込み型
整数・浮動小数点数 リテラル
0 から始まる数字は 8 進数
16 進数 に p を付けると、累乗 を表現できる(e.g. 0x12.34p5 = 582.5)
from 初めてのGo言語 第2版 ―他言語プログラマーのためのイディオマティックGo実践ガイド
セミコロン挿入規則
Go は Java などと同様、各文の終わりに ; が必要だが、開発者が書くことはない
∵ コンパイラ が Effective Go に記載されている規則(セミコロン挿入規則)に沿って挿入しているため
https://github.com/browsh-org/browsh
#Go
https://www.gonum.org/
#Go
https://pol.is
https://github.com/compdemocracy/polis
参考
https://open.spotify.com/episode/3jyyy3ymS8Wklxaiq7yczm?si=Y_cVN5CbTmOfskI8cPPQ6A
https://note.com/tasaki_tomohiro/n/n8f0dd76ecd00
https://docs.expo.dev/versions/latest/sdk/ui/
概要
SwiftUI や Jetpack Compose を利用して、ネイティブな UI を構築するためのコンポーネント群
2025/08/08 現在 α 版
This library is currently in alpha and will frequently experience breaking changes.
https://github.com/jorgerojas26/lazysql
概要
Go で書かれた、データベース管理ツール TUI
スキーマの閲覧や クエリ の実行、データの直接編集が可能
特徴: https://github.com/jorgerojas26/lazysql?tab=readme-ov-file#features
https://anthropic.skilljar.com/claude-code-in-action
#Anthropic #Claude_Code
https://github.com/squint-cljs/squint
プロジェクトのセットアップ
$ pnpm init
$ pnpm i squint-cljs@latest
実行
https://github.com/oraios/serena
最近 Claude Code のパフォーマンス低下問題に端を発して注目されているため
LLM をコードベース上で直接作業できるエージェントとして振る舞わせるためのツール
Serena is a powerful coding agent toolkit capable of turning an LLM into a fully-featured agent that works directly on your codebase.
公式ドキュメント だと以下を .zshrc に記述すれば良いとある
eval "$(zellij setup --generate-auto-start zsh)"
しかし、実際に追加すると M-p n でパネルを追加しようとすると、無限にセッションが生成されてしまう