Ruby
WindowsだとRubyのspawnメソッドでプロセスを作成すると親プロセスからは切り離されて、親プロセスが終了しても残り続けます。 これが便利な時もありますが、私のユースケースでは不便に働くことがありました。なので、今回は親子共々死んでもらいます。 以…
私は Windows 使いなので Windows を使って Rust で Ruby を拡張したい。 最近(といっても半年前)rubygem が Rustで書けるようになったらしいので書いていきたい。 Ruby をインストール rubyinstaller.org ここから +DevKit のインストーラーを使ってイン…
2013年に以下の記事を書いた。この時はJSONではなく、XMLフォーマットを用いてリアルタイムパケットモニタリングを実現したが、最近では jsonが隆盛してきているため、jsonフォーマットでのリアルタイムパケットモニタリングを行いたい。また、Rubyのバージ…
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…
Ruby 、 C# 、 Go の標準添付ライブラリで file:///c:\temp\doc.txt のようなパスを生成・パースした時の違いを示します。Ruby だけは標準ライブラリの仕様上少し手を加えてあげないと動きませんでした。そのあたり少しフェアじゃないかもしれません。 参考…
RUBY_PLATFORM で Ruby が動作しているプラットフォームがわかります。 Windowsは x64-mingw32 とかになります。windows ではありません。 Visual Studio とかでビルドすると mswin が入るようです。(環境がないのでフルネームはわかりません...) なので、こ…
Linux で プロセスグループを指定して spawn を実行する場合は pgroup を指定しますが、Windowsではこのオプションはサポートされていません。Windowsでプロセスグループを作成するには new_pgroup を指定します。ただし、spawnの記述を間違うとshell経由で…
参考サイト equj65.net モチベ プロセスグループとCtrl+Cの関係がよくわからなかったので調べてみた。 結論 pgroup: false だと子プロセスにも SIGINTを送信する pgroup: true だと子プロセスには SIGINTは送信しない プロセスグループなしで spawn 以下のプ…
Ruby3.0から Win32API ライブラリが廃止になってしまったらしく 久々に Win32API使おうと思ったら使えなくて困った。 代替品として fiddle/import を使ってねということだったの使ってみた。 require "fiddle/import" require 'fiddle/types' def L(text) te…
はじまり Rubyに限った話ではないのかもしれないですが、Rubyで改行を含むテキストデータを送受信するようなプログラムをWindowsで書いていた時に思った通りに処理されなくて嵌ってしまったので、自戒を込めてブログに残しておきます。 結論 Windowsで CR/LF…
Hotwire とは hotwired.dev Railsの作者 DHHが提唱する新しいSPAの形を実装したライブラリになります。 今まではサーバーサイドのデータをJSONのようなフォーマットでクライアントに渡し、クライアント側のJavascriptでHTMLをレンダリングすることでSPAを実…