ぽよメモ

レガシーシステム考古学専攻

coreutilsのlnでのシンボリックリンクの更新はアトミックになっている気がする

シンボリックリンクの更新におけるatomicity やってみた Ubuntu 22.04 LTS macOS 14 いつ変わった? まとめ シンボリックリンクの更新におけるatomicity シンボリックリンクをアトミックに更新するには、単にln -snf ではダメだという記事を昔読んでずっとそ…

ソフトウェアエンジニア4年目

はじめに TL; DR お仕事 今のポジション お仕事内容もう少し詳しく 今後のキャリアに関する所感 キャリアのために意識してやっていること 他の人の手助けをする 意見を述べる・質問をする 仕事を任せられる人を増やす 多様な情報にアンテナを張る 次にやろう…

ISUCON優勝したくてGrafana Cloudで分析基盤を整えた

去年のnonyleneくんのブログを読んだ僕の、一年越しの回答です。 nonylene.hatenablog.jp poyo.hatenablog.jp ISUCON13に参加し、最高107000点くらい106457点をマークしましたがfailしたチーム ツナ缶です。来年は優勝します。 公式から全チームのスコアおよ…

おうちサーバ無料監視 by Grafana Cloud

TL; DR おうちサーバも監視したい SaaS 比較検討 Mackerel Datadog Elastic Cloud NewRelic Grafana Cloud セットアップ Grafana Cloudのアカウント作成 Grafana Agentのインストールとセットアップ cAdvisorを建てる cAdvisorのメトリクスを参照する Grafan…

Go 1.20で入ったexec.CommandのCancelとWaitDelayで外部コマンドを正しく終了させる

背景 Goでは外部コマンドの実行時に os/exec パッケージの Command や CommandContext を利用します。特に CommandContext を利用することで、 Goのcontextの流儀に従ってコマンドのタイムアウトや中断が可能であり大変便利です。 一方で、LinuxやmacOSなど…

GitHub Actionsのキャッシュをより細かく制御するactions/cache/restoreとactions/cache/save

はじめに 背景 actions/cache/restoreとactions/cache/save ユースケースの紹介 トピックブランチではキャッシュを保存しない 常にキャッシュを保存する restoreとsaveで異なるkeyを使う まとめ はじめに これはGitHub Actions Advent Calendar 2022 22日目…

go.workはmonorepoの夢を見るか

TL; DR はじめに Workspace modeが解決したい課題 Workspace modeのユースケース 複数リポジトリにまたがる開発をする experimentalWorkspaceModuleを置き換える monorepoとWorkspace mode single moduleの場合 multi moduleな場合 goplsのためのワークアラ…

clapの使い方まとめ

はじめに インストール 使い方 位置引数 エスケープされた位置引数 引数を取るオプション 引数を取らないオプション 環境変数と紐付ける 一つのフラグで複数の値を取る 排他オプション 候補から選択するオプション サブコマンド グローバルなオプション テス…

壁を感じたISUCON12本戦

TL; DR はじめに 参加前の準備 今回の出題内容 やったこと 10:00~11:00 初期セットアップ 11:00~12:00 作戦会議とか 12:00~13:00 obtainItemの闇に触れる 13:00~14:00 admin関連のテーブルを別DBに分離しようとしてベンチが落ちる 14:00~15:00 generate…

Mozilla Foundationへの寄付を始めた

TL; DR はじめに OSSと持続可能性 何を支援したらいいのか問題 自分が一番世話になっているのはブラウザではないか 寄付の仕方 おわりに TL; DR WebやOSSの発展に対して継続的な支援がしたくなった 自分が一番世話になっているのはブラウザなのではないかと…

ISUCON12予選突破の記録~絶望の4年間~

はじめに これまでの記録 参加前の準備 方針の決定 改善〜デプロイ〜ベンチを回すサイクルの高速化 ドキュメントの用意 当日やったこと 10:00〜11:00 初期セットアップ 11:00〜11:30 作戦会議 11:30〜13:45 細かい改善・レビュー・バグ取り 13:45〜14:30 doc…

イケてる高級キーボードmountain ergoを買った

My new keyboard... キースイッチ キーキャップ ファームウェア かかった金額 なんで買ったの? まとめ My new keyboard... KBDfansのmountain ergoを買いました。 [Restock] KBDfans mountain ergo keyboard kitkbdfans.com 背面のロゴ リストレストのロゴ…

go.modについての陥りやすい誤解

Go

はじめに go.modにおけるGoのバージョン指定 依存先のgoディレクティブの方が古いバージョンを指す場合 依存先のgoディレクティブの方が新しいバージョンを指す場合 goのバージョンよりgoディレクティブが先行する場合 goディレクティブまとめ 1.21以降のgo.…

おうちKubernetes feat. cybozu-go/neco-apps

はじめに なぜおうちKubernetes? ハードウェアの選定 クラスタのブートストラップ cybozu-go/neco-apps Metallb cert-manager Contour TopoLVM Rook SealedSecret ArgoCD GitHubアカウントでSSOする gRPC用とWeb UI用でサービスを分ける VictoriaMetrics Gr…

マルチアーキテクチャ対応イメージのビルドをどうにか早くしたかった

マルチアーキテクチャ対応イメージって何? どうやって作るか docker manifestコマンドを使う docker buildxコマンドでビルドする buildxとQEMUによるビルドは遅い CIでのビルドを速くしたい アーキテクチャごとに別ジョブでビルドする クロスビルドを活用す…

MAASでストレージレイアウトのカスタマイズを探求したがよくわからなかった話

MAASとは 環境 MAASのストレージレイアウトつらい問題 curtin curtinのconfigを抽出する 抽出したconfigを流用する 疑問点 まとめ 参考 MAASとは maas.io Metal as a Service の略で、Ubuntuの開発元であるCanonicalが開発している、オープンソースのベアメ…

これからコーヒー趣味を始める人に伝えたいこと3選

tl; dr はじめに コーヒー器具の「○杯用」という表記 余談:コーヒーサーバはオールガラス製が洗いやすい ドリップするときの温度 ドリップポットで少し冷ます どこで豆を買うか まとめ tl; dr コーヒー器具の○杯用は小さいコーヒーカップ換算なのでマグカッ…

日本語論文をLaTeXで書いてtextlintで校正するテンプレートを作った

はじめに テンプレートの使い方 テンプレートの特徴 LaTeX on Docker Makefile Git管理 VSCode対応 まとめ textlintで校正する 環境構築 textlint-plugin-latex2e Rule textlint-rule-sentence-length textlint-rule-no-mix-dearu-desumasu textlint-rule-ja…

Protocol BuffersのGolang用API v2を使ってgRPCでHello Worldする

v2とは??? 環境 Hello World プロジェクトの準備 サービスを定義する gRPC用のコードを自動生成する サーバを実装する クライアントコマンドの実装 動かしてみる grpcurlで叩いてみる まとめ v2とは??? 以下の記事にまとまっています。 qiita.com blog…

M75q-1 TinyをWindows以外からでもリモート管理したい

M75q-1 Tinyって何? DASH Docker Image for DASH CLI DASH CLIの使い方 ヘルプの表示 DASHが有効なホストの探索 電源状態の取得・変更 boot順の表示・変更 ユーザの作成・削除 LEDも操作できる!? JSON形式での実行と表示 -jdo を使う方法 -ji と -jo を使…

GNU Make勉強会を開催した

なぜ今Make? 資料 学んだこと まとめ なぜ今Make? Makefileを書く機会がほとんどない割に、使う機会は多いなと昔から思っていました。 大学の講義でもC言語で書いたソースコードのコンパイルはEclipseに任せっきりで、TAとしてトラブルシュートする以外で…

リモート研修についての雑感

はじめに これは何 著者の状況 正直な感想 リモート研修で微妙だなと思ったこと 初日出社するかどうかを新卒に委ねる 昼飯食べながらの雑談会 成果の見えない(見えにくい)自学自習の時間 リモート研修で良かったこと 服装の自由 同期との雑談の時間 社員と…

大学院でやってよかったこと

これは何 ついに大学院情報工学専攻(修士)を修了してしまうため,何かポエムが書きたくなりました.ネットには研究室への怨嗟が溢れていて*1,大学院が楽しいとか(当たり前の人にとっては当たり前過ぎて)あんまり書いてないので,じゃあ自分で書いてみよ…

Moleculeを使う際にTestinfraからAnsible Factsを参照する

概要 環境 Testinfraにおける問題点 既存のアプローチ Testinfraから変数を参照する setup include_vars テストで使う メリット デメリット 現時点での制限 概要 Ansible公式のテストフレームワークであるMoleculeは,Ansibleによる構築の後に,デフォルトで…

Ansibleの冪等性について深く考えたことはありますか?

はじめに 冪等性 Ansibleにおける冪等性 冪等性は主観によって決まる モジュールの冪等性 Playbookの冪等性 構成管理ツールについての研究の今 冪等であるかどうかをテストする系 品質モデルを提唱する系 セキュリティ系 IaCに関する研究はブルーオーシャン …

deanishe/awgoを使って簡単にAlfred Workflowを作る

はじめに Alfred Workflowとは? Alfred Workflowの仕組み Alfred WorkflowとGo github.com/deanishe/awgo チュートリアル 1. 空のWorkflowを作る 2. 実行するアクションを並べる 3. info.plistを手に入れる 4. Goでプログラムを書く 6. パッケージングする …

内部向けWikiに技術記事を書くモチベーションと意義,そして今の悩み

はじめに 内部向けWikiとは? ありがちな問題 ググって出てくるから書かなくて良い? みんなに書いてもらうために 身内だけで通じる価値観を理解する 気軽に書ける雰囲気を作る 既にある記事の更新を躊躇わない 書くメリットを意識する あるべき内部Wikiの姿…

分割HHKB配列が実現できる自作キーボードキットChoco60を買った

はじめに Choco60とは? どこで買える? なぜChoco60? キースイッチやキーキャップなど キースイッチの潤滑 ホームポジションの目印を作る 作り方 1. ダイオードを基板に刺す 2. TRRSジャックとリセットスイッチのはんだづけ 3. スタビライザーを装着 4. 表…

macOS Catalinaでavrdudeを使ってProMicroに書き込もうとするとprogrammer is not respondingというエラーが出る

はじめに これは2019/11/4現在の情報です.macOS10.15よりも新しいバージョンでは当てはまらない可能性があります.何か更新があれば,コメントを頂けると幸いです. [2019/12/12 追記] この問題はmacOS Catalina 10.15.2で解消されました. 以下の内容はmac…

GoCon 2019 Autumnに参加してきた

はじめに 初めて参加してみて 面白かったセッション 1. Go GC algorithm 101 発表後に上がった質問 Goでヒープにアロケーションされるのはどのようなとき? 結局Goで世代別GCは効くのか? 2. Go で"超高速"な経路探索エンジンをつくる 発表後に上がった質問 …