ぶていのログでぶログ

思い出したが吉日

RubyのYAML.dumpは改行の前にスペースを置くとエスケープされる

RubyのオブジェクトをYAML.dumpしてYAMLの設定ファイルを作るというコードを書いているときに、掲題の挙動に気がついた。 通常、複数行が含まれる文字列をYAML.dumpすると |- を使った表記になる。 $ ruby -ryaml -e 'puts YAML.dump("foo" => "a\nb")' --- …

rfコマンドv1.4.0をリリースした

rfコマンドを普段遣いしていて気になったところをちょくちょく直していて、先程v1.4.0をリリースした。 前回ブログを書いたときはv1.1.0だったので3つほどバージョンアップした。 github.com github.com github.com 以下では、このバージョンアップによる変…

Ubuntu 22.04までのlibyamlだとvalueがないHashのキーをダンプすると空白が入る

root@e5432af20b73:/# ruby -v ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux-gnu] root@e5432af20b73:/# dpkg -l | grep libyaml ii libyaml-0-2:amd64 0.2.2-1build2 amd64 Fast YAML 1.1 parser and emitter library root@e5432af20b73…

rfコマンドv1.1.0をリリースした

github.com rfコマンドのv1.1.0をリリースした。 もう少し機能を追加してからにしようと思ったけど、サクサクリリースしていこう精神でバージョンを上げた。 以下、追加された機能や変更点の説明をする。 バイナリをstripしてファイルサイズを少し減らした c…

Dash/Zealで使えるmruby APIのDocsetを作った

mruby APIのオンラインドキュメントをDocset化した。 DocsetはDashやZealで閲覧できる。 オフラインでmrubyのAPIを参照できるので便利。 なお、私はMacを持っていないのでDashでの動作確認はしていないのであしからず…。 ↓のFeed URLから追加できるはず(Zeal…

rfコマンドv1.0.0をリリースした / Rubyのコードでplain text/JSON/YAMLを整形できるCLIツール

Rubyのコードでplain text/JSON/YAMLを整形できるrfコマンドを作っている。 このrfコマンドのv1.0.0をリリースした。 といいつつも、前回のv0.2.0から大きく機能を増やしたということはなく、バグの除去やテスト環境の構築のみになっている。 だが、v0.3.0、…

CLIツールのテストフレームArubaを使うときのTips

前回の記事でrfというツールを作っていることを書いた。 記事を書いた時点ではテストコードが一切なかった。 さすがに、テストコードがないのは今後開発を続けていくのは不安なのでArubaを使ってテストコードを書いた。 github.com Arubaはあまり使い方を紹…

Rubyのコードでplain text/JSON/YAMLを整形できるrfコマンドを作った

github.com 2023/05/15追記: リポジトリのリンクを追加(thx: id:k1low !!) モチベーション 私はcliでテキストを編集するときはawk/sedを使い、JSONはjq、YAMLはyqを使っている。 それぞれ単純な処理ならあまり苦労せず使えるのだが、複雑な処理をしたい場合…

Intel iceドライバをDKMS対応する

昨日書いたUbuntu 22.04でIntel E810 NICを使ってbondingデバイスを設定するとブート時にハングアップする の続き。 Intelのiceドライバは以下からダウンロードできる。 www.intel.co.jp インストール自体は同梱のREADMEに書いてある手順でできる。 私の手元…

Ubuntu 22.04でIntel E810 NICを使ってbondingデバイスを設定するとブート時にハングアップする

久しぶりにめちゃくちゃハマった…。 Intel E810 NICを搭載したベアメタルサーバーにUbuntu 22.04をインストールし、Intel E810 NICのポートを使ってbondingデバイス*1を設定しOSを再起動するとブート時にハングアップする。 私の環境では、netplan applyでbo…

WEB+DB PRESS Vol.134を読んだ

先月に引き続きWEB+DR PRESS Vol.134を読んだ。 月末に駆け込みで読む習慣になっていて良くないね。 gihyo.jp 以下気になった記事と感想。 サバンナ便り 第6回 自動テストのサイズダウン戦略 テスタブルを活用することで自動テストのサイズダウンを行うこと…

osc-fish-completeのv0.2.0をリリースした

tech.buty4649.net 以前にfish-shell向けのopenstack-cliの補完スクリプトを作り公開した。 最近このスクリプトのリポジトリにissueが立てられてたので内容を確認したところ --fit-width のようなオプションが --fitwidth になるという報告だった。 実際に試…

WSLでWindowsのEXEが実行できなくなったときの対処

前の記事でUbuntu 23.04 on WSLにしても問題は起こっていない!っと書いた直後に、WindowsのEXEが実行できないことに気がついた…しょぼーん。 EXEを実行すると以下のようなエラーを吐く。 ❯ wslview . grep: /proc/sys/fs/binfmt_misc/WSLInterop: No such f…

Ubuntu 23.04のリリースされたのでWSL環境をUbuntu 23.04にアップグレードした

image: The Lunar Lobster has landed ahead of Ubuntu 23.04 Ubuntu 23.04がリリースされた discourse.ubuntu.com 早速、WSL上のUbuntu22.10を23.04にアップグレードした。 ❯ sudo do-release-upgrade -d 特に問題なく完了。 WSLの制限でカーネルはそのま…

WEB+DB PRESS Vol.133を読んだ

発売されたのは先月だったのだが、積読してしまったので(よろしくない)読んだ。 gihyo.jp 気になった章の感想 特集1 識者がたどり着いた最適解 TypeScript最新活用 リンタ,バンドラ,ランタイム,エッジ TypeScriptの今を解説した特集。TypeScriptは全然キ…

Ruby LSPのバージョンマネージャーにrtxを使う

Shopifyが出しているRuby LSPのVSCode拡張をrtx(asdf clone)で動かしてみようというのがこの記事。 code.visualstudio.com 結論 以下の実行ファイルをasdfという名前にしてPATHの通っているディレクトリに配置すれば動くはず。 #!/bin/bash if [[ "$1" == "e…

AtCoder Beginner Contest 295(ABC295)に参加した

先週にに引き続き今週も参加。 atcoder.jp 私の回答 atcoder.jp C問題までACしたがD問題でTLEした。 以下感想。 A - Probably English 雑に puts gets.match(/and|not|that|the|you/) ? "Yes" : "No" みたいなコードを書いたら見事WAした 単語を分割して規…

AtCoder Beginner Contest 294(ABC294)に参加した

最近、会社のSlackにある競プロチャンネルにジョインしたのもあって、久しぶりに競プロ熱が戻ってきたので参加している。 昨日行われたABC294に参加したのでその感想とか。 なお、問題の意図や解き方を解説するものではなく個人の感想です。またABC294のネタ…

入門 考える技術・書く技術 日本人のロジカルシンキング実践法を読んだ

www.diamond.co.jp 私は下位等級のエンジニアの評価も担当していて毎月2on1*1を行っている。 その中で「技術的な資料の書き方がわからない」といった悩みがよく聞かれる。特に評価資料の提出月近くに。 もちろん資料を書くための材料集めやアドバイスは行う…

mrubyを使ってWASMバイナリを作る

Zigで簡単クロスコンパイル 2022を読んでZigを使えばクロスコンパイルできることを知る -> Zigを使えばWASMバイナリが作れる ->つまりmrubyでWASMバイナリが作れるのでは?っと思いついたのでやってみたら、条件付きでWASMバイナリにクロスコンパイルできた…

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で書い…