ぶていのログでぶログ

思い出したが吉日

rake testのseed値を固定する

rake testでは初期値を変更することでテストの順番をランダム化したりしている。 時々特定のseed値の場合だけテストが落ちる*1ということがある。 そういうときにseed値を固定したいことがある。 毎回忘れるのでメモしておく。 $ SEED=$SEED bundle exec rak…

rtxを使ってstarship+asdfのプロンプトの表示が遅くなる問題を解決する

以前にstarship+asdfでプロンプトの表示が遅くなるのを改善するという記事を書いた。 この時はdirenvを使うことで解決したのだが、どうも最近再発していた。 さすがに、プロンプトの表示が遅いのはストレスなので、他のものに乗り換えるかasdfをやめるかって…

WSLでGNOME Keyringを使ってssh-agentのパスフレーズ入力を省略する

WSLになってからssh-agentのパスフレーズ入力をどうするか悩んでいた。 毎回パスフレーズを入力するのはめんどくさいし、ssh-agentはプロセスを再起動すると再度パスフレーズの入力を求められる。 今までだましだまし使っていたが、最近WSL上でGNOME Keyring…

WSL上のDockerコンテナからarchive.ubuntu.comにアクセスできない問題を解決する

いきなり結論。WSLのIPレンジとDockerのIPレンジがバッティングしていた。 $ ip a -- snip -- 6: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:15:5d:fc:7a:41 brd ff:ff:ff:ff:ff:ff inet 172.17.209.53/20 brd 172.17.223.25</broadcast,multicast,up,lower_up>…

RISC-VとChiselで学ぶ はじめてのCPU自作を読んだ

最近RISC-Vは熱いらしいというのを見たので[どこで?]、キャッチアップしなくてはと思いRISC-VとChiselで学ぶ はじめてのCPU自作を買って読んだ。 この本を選んだ理由はRISC-VとCPU自作で検索したときに一番最初にヒットしたからという単純な理由。 gihyo.jp…

Crystal Disk Markとdiskspd-for-linuxの比較 / USB-SSDデバイスSSD-PUT250U3-BKCを買ってみた

Amazonの初売りでBuffaloのSSD-PUT250U3-BKCが30% OFFくらいで売っていたので衝動買いしてしまった。3本も(?!) これはUSB接続のポータブルSSDになっていて、USBメモリやSDカードよりかなり高速に読み込み・書き込みができるのがウリになっている。 今作って…

2022年の振り返りと2023年の抱負

年末年始の連休も終わって明日から仕事なので、去年の年初に掲げた2022年抱負の振り返りと2023年の抱負を掲げて今年も頑張って行こうと思う。 2022年の振り返り 去年掲げた抱負は以下の通り。 技術的な内容のブログ記事を毎月2本以上書く 年を通して技術書ま…

mitamae+hochoで自宅Linuxサーバを管理するときのTips

この記事はRubyアドベントカレンダー2022の12/22の記事とLinuxアドベントカレンダー2022の12/15の記事です。 最近自宅サーバ熱が高まり、microk8sを使ったクラスタを組んでいたりする。 私の職業柄、すべてのサーバをコードで管理したいのでmitamaeとhochoで…

Mackerelでサーバインベントリを取得する / mipsel向けのmackerel-agentを作った

この記事はMackerel Advent Calendar 2022の12/21の記事です。 昨日はid:stefafafanさんのMackerelのサービスメトリックを簡単に投稿するためのGitHub Actionsを作ったでした。 GitHub Actionsを使ってMackerelにサービスメトリックを投稿するという内容でし…

MinitestをRSpec風に書く

この記事はRuby Advent Calendar 2022の12/6の記事です。 最近、Ruby on Railsを使って初めて1からWebシステムを作っている。 Railsではデフォルトで*1Minitestのテストコードが生成される。 システムを作成しはじめた当初はデフォルトであるMinitestで書い…

Nano Pi R4S(Friendly Core)でcontainerd snapshotterをnativeにせずに使う

前回の記事で、Nano Pi R4S(Friendly Core)のみcontainerd snapshotterをnativeに変更する必要があると書いた。 原因としては /var/snap を含むrootfsがoverlay fsになっていて、containerd snapshotterがさらにonverlayを作るからだった。 解決方法: /var/s…

RaspberryPi4とNanoPi R4Sとmicrok8sでKubernetesクラスタを組む

この記事はGMOペパボエンジニア Advent Calendar 2022の12/5の記事です。 昨日はbobの2022年に統計学や機械学習について学習したことまとめでした。統計学や機械学習のキャッチアップをするためのどのように勉強を行ったかというのがまとめられて参考になり…

サーバの温度を監視するmackerel-plugin-thermalを作った

この記事はMackerelのカレンダーの12/4の記事です。 昨日は@ysetoさんのmackerel でネットワークスイッチのトラフィックを監視するでした。 ネットワーク機器のようなインターフェイスがたくさんあるデバイスの監視をしたい場合、SNMPだと取りこぼしが発生す…

入門 Kubernetesを読んだ

この記事はアドベントカレンダー向けに書いた記事ではないです!ですが、今日からGMOペパボエンジニアアドベントカレンダーが始まっているので、そちらもよろしくお願いします。 なんと今年はエンジニアだけで2会場あります! GMOペパボエンジニア Advent Ca…

Fukuoka mruby Kaigiでmrubyで始める自作シェルというタイトルで発表した

2022/10/15にオンラインで行われたFukuoka mruby Kaigiに参加しそこでmrubyで始める自作シェルというタイトルで発表しました。 内容的には、このブログで定期的に開発報告しているreddish-shell(自作シェル)の話です。 ワンバイナリでシステムコールを駆使し…

fish-shell向けのopenstack-cliの補完スクリプトを作った

数年前に作りかけで放置していたのだが、数日前に「どうやって使うの?」っとコメントがついて慌てて作った…という感じ。 github.com 使い方 READMEに書いてあるとおりで pip install . して eval "$(openstack complete --shell fish)" すれば使えるように…

Windows11でVmmemWSLのCPU使用率が高くなる

Windows11で休止状態、スリープから復帰するとVmmemWSLプロセスのCPU使用率が高くなりWSLの操作が全くできなくなるという事象が発生した。 この状態になると wsl --shutdown もできずOSごと再起動しないといけなくなるという状態で不便だった。 この問題は以…

Ubuntu 22.04 on WSLをUbuntu 22.10にアップグレードした

Ubuntu 22.10がリリースされた。 ubuntu.com WSL上で動いているUbuntu22.04を22.10にアップグレードした。 デフォルトではアップグレードできないようになっているので、 /etc/update-manager/release-upgrades を修正してアップグレードできるようにしてお…

Windows10/11のWSL2でDocker Engineを使う

最近、私に支給されている会社PCがデスクトップLinuxからWindows*1になったので環境を整えている。 デスクトップLinuxからWindowsになって一番困るのは環境構築である。 しかしながら、最近のWSLはかなりよくできていてデスクトップLinuxと同じような感じで…

Ubuntu22.04でRubyのERROR: OpenSSL::PKey::PKeyError: rsa#set_key= is incompatible with OpenSSL 3.0を回避する

Ubuntu22.04からOpenSSLが3.0になった。 OpenSSL3.0には後方互換があるようだが、いくつかのライブラリではうまく動かない場合がある。 例えば、Rubyのnet-sshである。 この記事のタイトルにあるとおり、ERROR: OpenSSL::PKey::PKeyError: rsa#set_key= is i…

Wasmer CLIでruby.wasmを試してみる

reddish-shellに使えるか技術検証のためにruby.wasmを試してみる。 最終的にはRustに組み込むことになると思うのでランタイムにWasmer - The Universal WebAssembly Runtimeを使う。 WasmerにはCLIがあるのでそれを使ってみる。 Wasmerのインストール手順は…

Sparrow62(+1) v2をPRK Firmwareで動かす

Sparrow62(+1) v2キーボードはRasberry Pi Picoをメインとして構成されている。 Rasberry Pi Picoで動きそしてRuby(Pico Ruby)で動くキーボードファームウェアとしてPRK Firmwareがある。 github.com Sparrow62(+1) v2でPRK Firmwareを動かしてみたという備…

onelogin-ruby-sdk v3.0.0-alpha.1を使う

注意: この記事で紹介しているonelog-ruby-sdk v3.0.0-alpha.1は開発版であり今後大幅に変更される可能性がある OneLoginのAPIをRubyから操作するライブラリとしてonelogin-ruby-sdkがある。 OneLogin公式が提供しているライブラリで安心感があるのだが、こ…

自作キーボードキットSparrow62(+1) v2を組み立てた

4年前くらいにErgoDashを組み立てて以来愛用してきたのだが、ガタが来たのかここ最近調子が悪かった。 具体的には * USBケーブルを下側に抑えないと認識しない * 左右のキーボードをつないでいるTRSケーブルがずれると起動しない * 3キーを押すとedcも入力…

最近の私のissue、Notion、Slackの使い分け

会社において情報を蓄積ツールが複数ある。 GitHub Enterprise(以下GHES)のissue Notion Slack これらの使い分けについて最近うまくできている感じがするのでブログに残しておく 結論 issue: 作業した内容のサマリ、結果を書く Notion: 作業のログをベタで貼…

フレッツ光(VDSL方式)からauひかりマンションタイプGに変更して高速インターネットを手に入れた

こんにちは令和のインターネット! 引越しで1番懸念だった低速インターネット問題が解決した! 嬉しいのでブログに書いておく。 私のインターネット遅すぎ?!(いつもの画像) ことの始まりはモンハン。 モンハンをオンラインでマルチプレイしてたところめち…

Terraformでfor文とfileset関数を使って複数の設定ファイルの読み込みをDRYに書く

Terraformにおいて例えば、A,B,Cという種類のサーバの属性がありそれぞれモジュールで定義されていて、それらに属するサーバが複数あると行った場合、何も考えずに書くと以下のようなコードになると思う。 locals { servers_a = { node-a-1 = "192.168.0.1",…

Ubuntuで使用するカーネルを変更する / grub-set-defaultを有効化する

Ubuntuに限らないが、Linuxディストリビューション(以下、ディストリ)ではLinuxカーネル(以下、カーネル)を起動時に指定して変更することができる。 基本的にはディストリが標準で提供しているカーネルを使えば良いと思うが、カスタムカーネルを入れたい場面…

lsblkでIOスケジューラを確認する

-o オプションに SCHEDを追加するか、もしくは -O オプションをつけることでIOスケジューラを確認できる。 # -o SCHEDの出力例 $ lsblk -o NAME,TYPE,SCHED /dev/vda NAME TYPE SCHED vda disk mq-deadline ├─vda1 part mq-deadline ├─vda14 part mq-deadlin…

PromQLでN日前のグラフと比較する

毎度忘れてそのたびに色々検索するのでブログにメモしておく。 結論から書くとoffset modifierを使うと実現できる。 prometheus.io 例えば、exampleサーバの5分間のCPUの%idleを取りたい場合は以下のように書くと思う。 sum by (mode)(irate(node_cpu_second…