2021-09-01から1ヶ月間の記事一覧

microsoft / vs-streamjsonrpc の Formatter を MessagePack にして使う

github.com Microsoft が提供している jsonrpc ライブラリ vs-streamjsonrpc は Json 以外にも MessagePack でシリアライズ・デシリアライズできるように作成されています。 以前の記事 microsoft/vs-streamjsonrpc のバージョンが 2 になっていたので使って…

2水準系直行表の作成

2水準系直行表を作成するスクリプト require 'terminal-table' require 'csv' def dup_row(rows) new_rows = [] rows.each do |row| 2.times do new_rows << row.dup end end new_rows end def add_cols(rows) c = [0,1].cycle new_rows = rows.dup new_rows…

子プロセス間でパイプをつなぐ

親プロセスで作成したパイプを子プロセス間でつなぐ方法 以下のスクリプトは、標準入力で 何か文字を入力すると、それが出力されるサンプル。 out_r, out_w = IO.pipe script1 = <<~SCRIPT1 $stdout.sync = true loop do v = gets puts '1:' + v sleep 1 end…

Windowsファイルパスを標準添付ライブラリで生成/パースする時の言語ごとの違い

Ruby 、 C# 、 Go の標準添付ライブラリで file:///c:\temp\doc.txt のようなパスを生成・パースした時の違いを示します。Ruby だけは標準ライブラリの仕様上少し手を加えてあげないと動きませんでした。そのあたり少しフェアじゃないかもしれません。 参考…

プラットフォームがWindowsかそうでないかで処理を変える方法

RUBY_PLATFORM で Ruby が動作しているプラットフォームがわかります。 Windowsは x64-mingw32 とかになります。windows ではありません。 Visual Studio とかでビルドすると mswin が入るようです。(環境がないのでフルネームはわかりません...) なので、こ…