ぶていのログでぶログ

思い出したが吉日

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

新年一発目の更新。 年末に駆け込みでv1.14.0を出したので、前回ブログで書いたv1.13.0から2つアップデートした。 Features v1.14.0 Add changes for suppressing output when binary output is encountered by @buty4649 in https://github.com/buty4649/r…

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

1月ももう半分過ぎてしまったが、2023年の振り返りと2024年の抱負を書く。 2023年の記事はこちら。 2023年の振り返り 2023年に掲げた抱負は以下の通り。 技術的な内容のブログ記事を毎月3本以上書く 毎月1冊以上の技術書または同等の本を読み感想をブログに…

rfを作っているときに得られたmrubyでCLIツール作成のTips

この記事はmrubyファミリー Advent Calendar 2023の22日目の記事です。 昨日は@kurod1492(黒谷 明大)さんのPicoRubyでMatz葉がにロボコンに挑戦でした。 私はrfというRubyで書けるCLIのテキストフィルタツールを作っています。 詳しくは昨日の記事を参照して…

rfコマンドの紹介: Rubyでテキスト処理を便利に

この記事はRuby Advent Calendar 2023の21日目の記事です。 Rubyでワンライナーでテキストの処理をしたいと思ったことはありませんか?ありますよね! そういったときに便利に使えるCLIツールのrfを作ったので紹介します。 モチベーション 具体例 インストー…

WSLからハイパーリンクが付いたテキストをクリップボードにコピーしてリッチテキストとして貼り付ける

ニッチではあるのだけど、Markdown形式ではなくリッチテキスト形式でハイパーリンクされたテキストをコピーしたいときがある*1。 具体的にはSlackのワークフローでリッチテキスト形式のテキストボックスは、Markdownを解釈してくない。 Markdownでかけないと…

基礎からの新しいストレージ入門を読んだ

基礎からの新しいストレージ入門 基本技術から設計・運用管理の実践まで作者:坂下幸徳ソシムAmazon 本書を読むきっかけは、会社のSlackで本書が進められていて気になったからだった。 ストレージについては今までの経験から知識として備えているつもりだった…

RubyでC++のstd::cout << "Hello, world!"" << std::endlを再現する

会社のSlackで"Rubyでも>や<などがオーバライドできるのか!"という発言をしたところ、C++のstd::coutが実装できるのではないか??と返されたのでやってみたらできた。 std = Class.new do class Cout def <<(other) if other == :endl puts $stdout.flush …

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

前回ブログを書いたときはv1.6.0だったので7個くらいアップデートした。 今回までのアップデートでかなり実用的な機能を実装したので常用にも耐えられるのではなかろうと思う。 v1.7.0だけリリースビルドをミスったのでv1.7.1になっている。しょうがない git…

Zigを使ってWindows向けにmrubyをクロスビルドしたかったが失敗した

rfではLinux/Mac/Windows向けのバイナリを提供している。 LinuxとMac向けのバイナリについてはZigを使ってクロスビルドしている。 では、Windows向けはどうしているかというとgccを使ってクロスビルドしている。 何故かというと、rfのWindows対応を開発して…

Ubuntu 23.10がリリースされたのでWSL環境をアップデートした

本日Ubuntu23.10がリリースされた。 Ubuntu23.10のコードネームはMantic Minotaur(卜占(ぼくせん)のミノタウロス)とのこと。 コードネームにちなんで、「サイバーパンクなミノタウロスが占いをしている画像」をAIに生成してもらいアイキャッチにしてみたし…

WSLでsystemctl status --userがNo such file or directoryになる / Failed to connect to a Wayland serverとなってWalyandにつながらない

最近、おそらくUbuntuのアップデート*1をしてからというもの以下の現象が起こっている。 systemctl status --userを実行すると No such file or directory となってエラーになる wl-copyやwl-pasteを実行すると Failed to connect to a Wayland server とな…

rfコマンド v1.6.0をリリースした / Rubyでかけるワンライナーツール

前回ブログで書いたときはv1.4.0だったのでそこから2つほどバージョンアップした。 意識的にrfコマンドを普段遣いしていて*1気になったところと、jqコマンドのオプションの互換性を意識した変更をした。 github.com *2 github.com 主な変更点 -A オプション…

任意のURLからダウンロードするasdf/rtxプラグイン asdf-simple-download を作った

github.com モチベーション 私は普段ソフトウェアのバージョン管理にrtxを使っている。 大抵のソフトウェアは有志によりプラグインが作られているので rtx plugin add すればインストールすることができる。 しかしながら、プラグインがないソフトウェアも存…

asdf/rtxでFATAL: Found legacy version file 'main.tf' with unsupported required version constraint expressionがでる

結論から書くとasdf-hashicorpに含まれるparse-legacy-fileがrequired_versionパラメータのパースができなくてエラーになっている。 github.com このスクリプトがどのように使われているか正しく理解していないのだが、名前から察するに古いTerraformを使う…

wsshuttleを使ってWindowsとWSLのポートフォワードを行う

Mac環境やLinux環境ではsshuttleを便利に使っていたのだが、Windows/WSL環境になってからはsshuttleがうまく動かずにいた。 正確に書くと、WSLからはポートフォワードできるのだが、Windows側からはポートフォワードできない。 例えばサーバのリモートKVMに…