今日も信長をやり続ける…。
スミマセン、ペコさん。
いま、カテゴリ対応版にしか無い仕組みを使ってタイトルの横に表示させたものがこれです。(ペコさんが利用中)
で、tDiary-1.5.2.20030122なら動作するようにしたものが、こっちです。(ここで動作中)
変更点は表示位置とスタイルくらいなのですが、お好みの方を選んでください。。。
やっと身分が与力になりました。レベルは23。
チーズバーガーが値上がりするそうです。おそらく原因は「チーズバーガーとハンバーガーだけ4つづつ下さい」とか注文している自分と同じような人が多かったことだと思います。
そんなわけで、値上がり後はハンバーガーだけ6個頼むことにします(ぉ
なれない朝食を食べたらおなかが痛い…
さすがに実家に一ヶ月もいると暇になってきた。大学にはちらほら企業の就職担当がきてるらしいしなあ。完全に出遅れている予感。
暇と書いたら仕事というかアルバイトの話が舞い込んできたぞう。
北海道に帰るってことで、実家の両親に電話したら有給使って荷物運搬の手伝いに来てくれるとのこと。最後のすねかじり(になるのか?)。感謝、感謝。
そんなわけで、新潟を発つのは25日(土)か26日(日)、札幌の新居に入るのは27日(月)という感じで予定を調整中。新居の方は2-3件に絞ったんで、後はそれぞれの家のネット環境がどうなっているかを仲介業者に問い合わせている最中。一番快適な環境の物件に決定する予定。
仲介業者が今の部屋と同じくらいの広さの部屋を見つけてくれたので、その部屋にとっとと決めてしまった。こういうことは悩んだ所で話は進まないので、ある程度の基準をクリアしたら決めてしまって、Agileに進めていかないとな。
さて、来週は発表会終了後に引越し業者の手配とか見積もりとか。
引越し日程が確定したんだが、新居を決めているうちに父がとっととフェリーを予約してしまったらしい。で、フェリーをネットで予約をするにあたって以下の事項にぶちきれたらしい。
なんつーか、タコなWebサービスに共通する項目だな。これはネットジャンキーのオレでもぶちきれるよ。とりあえず、こういうシステムを放置している企業は死んで欲しいです。
今日は毎度おなじみのメンバーで一日遅れの手巻き寿司飲み会です。
一昨日くらいなんだけど、 firefox の profile が吹っ飛んでブックマークやらアドオンの設定が全て初期化。
ここまでは別に許容できる範囲なんだけど、なんかウィンドウの位置やボタン表示の設定を記憶できなくなってる。うーん、アドオンの設定の関係なんだろうか。いちいちダウンロードマネージャーのサイズとかボタンを小にするとかだるいよ。
firefox そのものをアンインストールして、アドオンとか Greasemonkey とか全部入れなおした。1.5 のときからごちゃごちゃしてたので丁度いいか(と考えることにする)
昨日のまちゅさんのコメントを見て、そろそろ delicious にもブックマーク数取得APIができてねーのかなと del.icio.us/help を眺めてみたら、JSON として提供されているのを発見。というわけで、件数を取得する Ruby スクリプト
require 'digest/md5' require 'open-uri' require 'json' url_md5 = Digest::MD5.hexdigest("http://www.hsbt.org/diary/20070201.html#p02") count = 0 open('http://badges.del.icio.us/feeds/json/url/data?hash=' + url_md5 ) do |file| data = JSON.parse(file.read) if data[0] != nil count = data[0]["total_posts"].to_i end end p count => 5
なんか、Ruby の JSON ライブラリはあっちこっちにあってしかも使い方が微妙に違ったりしてよくわからなかったので、JSON library for Rubyを使ってみた。これ、YAMLでパースするのが Rubyist とかあったりするんですかね。
で、これを元に section の下につけていた del.icio.us アイコンを復活させて、すでにブックマークしているユーザーがいる場合はユーザー数を表示するようにした。上記の JSON ライブラリは先日追加された misc/lib の下に置いて呼び出して使う。
んー、とりあえず add_section_leave_proc で処理するようにしてるんだけど、そのたびに JSON のリクエストを出すのはすごい遅いし負荷が高いような気がする。section ごとの JSON データをキャッシュかなんかに保存しておいた方がいいのかなあ。それとも tDiary 側では数字を表示せずに innerHTML とかで埋め込んだ方がいいのだろうか。
添削募集中ですよ!
999 Unable to process request at this time -- error 999 (OpenURI::HTTPError)
さっそくエラーががが。やっぱり1日2-3回程度の更新頻度なキャッシュファイルとかにしないとダメか。ひとまず delicious 表示部はお休み。
しかし、今も大絶賛エラー表示中。動作チェックは明日に持ち越しかなあ。
うちの彼女は DJ OZMA 大好きっ子なんで一緒に聞いていたら、どっかで聞き覚えのあるこの曲。必死に思い出したら深夜の馬鹿力の「赤坂25時 カリスマホストへの道」のオープニングの曲なのだな。
最初から最後まで聞きたくて iTMS でポチっとな。なかなかよさげ。
tDiary で ツッコミを spam とみなす日数が過ぎたらツッコミフォームを非表示にする(3)の続き。
「ユーザーにとってあまりにも不便だから何とかせい。」と御大から指令が来てたんだけど、DMC4に忙しくて いまいち実現方法が浮かばなくて放置していたのであった。そんなこんなしてる内に御大からサンプルコードがコミットされてしまったので、それをさらに拡張して
という感じに変更した。
この変更は 2.2.0.20080204 に入ってるけど、結構熱い変更なので利用する人は注意してケロ。
起動時に wig.rb やら tig.rb やらのコマンドを打つのも流石にアレなので LaunchCtl の設定をしてみた。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Disabled</key> <false/> <key>KeepAlive</key> <false/> <key>Label</key> <string>tig</string> <key>ProgramArguments</key> <array> <string>ruby</string> <string>-I/Users/hsbt/dev/net-irc/lib</string> <string>/Users/hsbt/dev/net-irc/examples/tig.rb</string> <string>-n</string> <string>hsbt</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist>
上のような内容のファイルを tig.plist とかいう名前で
~/Library/LaunchAgents/tig.plist
として保存する。最後に LaunchCtl を使って有効化
launchctl load -w ~/Library/LaunchAgents/tig.plist
最初、gem update したら、net-ircがみつからねーとか怒られたので -I でソースコードを配置しているフォルダを直接指定してお茶濁し。
設定が終わってから知ったんだけど、Lingonというソフトを使用すると上でやったような設定ファイル作成やら、有効化もGUIでできるので、そっちのがたぶん楽。
数日前の port のコマンドのエントリで、昼間にいじっていた yolk の名残で non-active って書いたんだけど、よくよく考えてみたら inactive だよね。
これ、使い分けに何か理由とかあるのかな。相変わらず英語力が乏しいなー。
暴行の事実自体は報道を見る限りは有無が判断できないので触れないでおくとしても、
これだけの騒ぎを起こしたんだから引退して当然
という論調は何言ってんのって感じ。騒ぎなんて本人の意志や事実に関係無く起こすことは可能だし、まさにいじめの構図。だいたい品格品格って高見盛みたいなパフォーマンスを認めたり、公式な選挙での造反者捜しを平然と行うような団体がどれだけの品格をもっているんだよ。
あーあ、東京に引っ越したら行く場所リストの一つになっていた大相撲観戦がこれで無くなってしまったなあ。
早い物で来週には引越日なので荷物の梱包を開始。本は結構整頓したつもりでも段ボール3箱になってしまったよ。しかも重いし。
後は部屋の中にある小物と台所周りのものなんだけど、段ボール2箱に収まるかなあ。足りないような気がしてきた。
ぎりぎりまでRails3アプリケーションを開発していたので会場である渋谷のECナビさんに到着した時には既に会長による"楽しいRuby"が始まっていたのであった。とほほ。
ひとまず、ECナビさんから提供されていたサンドイッチをひたすら食べてからテーブルトークに移動。時間が短くて一歩先の話まではできなかったけど、だらっとしない分には25分くらいでちょうど良かったかもね。
だいたいみんなテストは書くようになったし、書けるようになったけど、テストを何処まで書けばいいのかの感覚がわからない、テストが沢山になると遅くてしんどい、モデルだけじゃなくてビューやクライアント(iPhoneとか)のテストどうすんのという悩みを何となくみんなで話していた。
時間が短かったので、強引に仕切ったりしてたけどだいぶ良かったんじゃないかなあ。上のような話の続きをやりたい人は火曜の asakusa.rb に来ると良いと思います。
休憩の時にトイレに行ってしまったおかげで何処のテーブルにも紛れ込むことに失敗したのであぶれた人とこしばさんを捕まえて、初心者から中級者になるにはどうすればいいかねえとか、Windowsでタンポポ作業こそRubyだ!とかそんな話をしていた。
ちょっとばたばたしている感もあったけど、コンパクトにまとまっていて良かったと思います! 運営の皆さんとECナビさんありがとうございました。
ふと Dropbox の Experimental ビルドをダウンロードしようとフォーラムを見てみたら
During this beta period, we are also offering additional free space to test automatic uploading of photos and videos. For every 500MB of photos and videos automatically uploaded, you'll receive another 500MB space bonus, up to 4.5GB total.
ということらしい。
早速、写真と動画が 4GB ちょっと入ってる iPhone4 を接続したらもりもりアップロードが開始されて容量も 52GB から 57 GB に増加した。増加を確認したら写真は削除すればいいので今まで通りの使用量で最大容量だけ増加した状態になる。
こっそり応募してアカウントを作成しておいた。
夜は友達とプレイしたけど風邪でLv7まで上げたところでダウン。朝に起きてちまちまとクエストをこなしつつクローズドβの参加条件であるLv10まで上げるなど。PSO2はジャンプができるようになったことで、モンハンとの差別化がわりとくっきりした感じだけど、ちゃんと正式版をリリースするまでプロジェクトが続くのかどうかが気になるなあ。
我らが平鍋さんが書いたアジャイル開発とスクラムを福岡出張の行きの飛行機で読んだ。割と読みやすくて2時間くらいあれば読めちゃうというのと、実践例として書かれているリクルートと楽天の章もとてもプラクティカルで参考になる部分が多かったという2点が良かった。
基本的に書いてあることは、「アジャイル開発」と呼ばれる文脈のプラクティスであるとか、基本的な考え方なので特に新しい部分はないけど、1冊にコンパクトにまとまっているのが良いところだと思う。ただ、アジャイル開発のメタファでケーキを出すのは、実際に作ってるパティシエは横に割ってケーキを作って行くしかないにも関わらず、縦に作って行くという表現はよくわからない感高いので別の表現の方が良いかなあ。
この本はとりあえず前提知識として持っておかないと、サービス開発とか以前の話なので新卒氏に渡して読んでもらいつつ、書いてある内容をじわじわ広げてもらうことにした。
せっかく海外の美術館に行っているのだから、行く前も行った後も芸術について勉強した方がよかろうと色んな本を読んでいる中でTVでもお馴染みの美の巨人たちの本が出ているというので、Amazonの中古ストアで買ってみた。
若干汚れてはいるものの、勉強する分には全く問題の無いレベル。今まで何となく新品しか買ってなかったけど、読み捨てるつもりなら中古でも良いよなあ。今後は積極的に使っていこう。
さすがにそろそろ全環境を引っ越さないと世の中のUIやプラットフォームに適用できないだろうという気がしてきたのでえいやっとアップグレードした。/usr/local
はそのままにして寝る前にインストーラを実行して起きたら終わっていた。というやつ。
各種バイナリがぶっ壊れているので以下の手順で再インストールした。
$ brew list | xargs brew reinstall
$ ruby -rpathname -e 'Dir.glob(".rbenv/versions/*").each{|v| `rbenv install #{Pathname.new(v).basename} -f`}'
$ rbenv each gem pristine --extention
途中、すでに消えている formula があったりして、それは uninstall とか gem pristine がこけたりしていたのでそれらは個別にビルドオプションを追加したりして解決。わりとあっさり出来たかな。
Ruby でコアの機能を変更する時に gem-codesearch を用いて、 rubygems の全ての gem を調べて、傾向を見るということをよくやるのだけど google が作った codesearch というのもあるというのを akr さんがつぶやいていたので試してみた。
https://twitter.com/tanaka_akr/status/695195509351264256
go で書かれているようなので何も考えずに go get github.com/google/codesearch/cmd/...
してから、gem-codesearch のディレクトリで cindex latest-gem
を実行したところ、驚くことに 40 分程度でインデックスが完成してしまった。gem-codesearch の groonga だと 数時間-1日かかるというのに何なんだこれは。
実際の検索も csearch 'rake/runtest'
などでささっと出るので大変便利。行は表示されないものの、やりたいこととしてはこれで十分なのでしばらくは codesearch を使ってみようと思う。
銀座の美術展示スペースにいくつか気になる展示があったので、久しぶりに銀座から日本橋にかけてを散策してきた。
まずは資生堂ギャラリーでやっていた吉岡徳仁のスペクトルへ。光の展示は東京都現代美術館などでやっているものでおなじみだけど、今回はオルセーにもあるベンチの系統も展示されていてよかった。GINZA SIX のショーウィンドーができつつあって、アッパーブランドを結構気合い入れて集めたなあという並びで、結構楽しみな感じだった。
続いて、ポーラ Museum Annex で開催していた青木美歌のあなたに続く森へ。ガラスで虫や生物、水などを表現するという展示で、こちらも良い展示だった。この後は日本橋方面に向かって新しいビルや店舗を妻と寄り道したり何だかんだおしゃべりしつつ移動。
最後に高島屋の催事でやっていたバレンタインデーフェアでめぼしいチョコをいくつかと、深川製磁で良い感じのティーセットがあったのでそれを買ってから帰ってきた。
今までモンベルのジャンパーはゴアテックスの普通のジャンパーしかもっていなかったんだけど、冬はさすがにという感じなので、ダウンコートタイプのパウダーランド パーカを買った。
色は黒以外にしたかったけど、在庫がなかったのでしょうがなく黒で。明るい色の方が海外旅行の時などで目印になって便利なんだけどなあ。Tシャツ一枚でもこのパーカ着るだけで十分な暖かさになるので大変便利。
1週間飲み続けたので次は2ヶ月ごに再検診して完治していたら終わり。まだ残っていたら投薬治療をもう一度、という流れ。
今日、旧マシンを初期化して返却したので今日が最終回。
cask_args appdir: "/Applications"
brew "fish"
brew "fzf"
brew "git"
brew "gnupg"
brew "hub"
brew "diff-so-fancy"
brew "ghq"
brew "exa"
brew "bat"
brew "ripgrep"
brew "fd"
brew "direnv"
brew "go"
brew "autoconf"
brew "openssl"
brew "gdbm"
brew "coreutils"
brew "findutils"
brew "gnu-sed"
brew "gnu-tar"
brew "grep"
brew "gzip"
brew "gawk"
brew "cmake"
brew "ninja"
brew "circleci"
brew "m-cli"
brew "postgresql"
brew "mysql"
tap "homebrew/cask"
cask "google-cloud-sdk"
brew "snapcraft"
cask "multipass"
tap "heroku/brew"
brew "heroku"
~/Library/Dictionaries
にコピー/usr/local/share/fish/vendor_completions.d/bat.fish
を削除。難しいね。だいたいこれで完了というところ。1-3の作業を全自動にしたい...
久しぶりに参加、最近月一くらいになっちゃうなあ...。今週は神田の永和オフィスで開催でした。会場提供ありがとうございます。
https://asakusarb.esa.io/posts/976
来週開催される Oedo08 の残タスクを確認して懇親会の申し込みページをオープンにしたり、今年の Ruby のカンファレンスの一覧を眺めて「うおー、ネッシーじゃん」などを話していた。
スコットランドには興味があるけど、あまりにも北の果て、という感じで躊躇してしまう...
嫌われる勇気、幸せになる勇気に続いて、第三弾として岸見先生の Audible の聞いた。こっちはアドラー心理学をベースにしてリーダーシップについて「褒めない、叱らない、感謝しろ」って感じの内容を読者からの質問に答える形で淡々と解説するって内容だった。
嫌われる勇気などに比べて朗読が単調で聞いてる分にはあまり入ってこなかったかなあ。Audible こんな感じで朗読の人や口調に左右されるのでなかなか難しい。
タイトルは https://qiita.com/jnchito/items/0a0b46106681f41f2f0e のインスパイアです。
昔エンジニアなどをやっていた時に、マネージャや上司から何かコメントを受けると「とは言っても、このコードも書けないのにさあ」というような気持ちになった経験から、自分が実際にマネジメントをする立場になると、「は〜、React とかあまりわからんので方針とか出しにくいなあ」となって止まってしまうことがあります。
昨今のソフトウェアエンジニアリングは幅も深さも異次元のレベルまで広がっているので、全てのことをマネジメントが実践できるというのは正直無理な話です。自分ができることしかマネジメントできないなら、ソフトウェア開発の世界では何もできないのに等しいです。
そこで必要なことは「自分のことは棚にあげる」です。
Google のソフトウェアエンジニアリングという本にも技術マネジメントは「わかったふりをして進める」というようなことが書いてありましたが、概念や理論はざっくりと把握した上で、「あー、はいはい。React ね」とわかったふりをしてそれがビジネス的にどういう成果を出すのか、エンジニアリングとしての効果はどれくらいか、というのを推進していくのがマネジメントの極意と思います。
ただ、わかったふりをしながらリーダーシップを発揮するというのが難しいポイントで、ある領域においてはわかったふりをしつつ、ある領域においては率先垂範をしていく、例えばドキュメントの整備は誰よりもやる、というような活動は必要と考えています。自分も Ruby, Python, AWS, GCP などでは、なんかトラブルが起きたら「あー、はいはい、〜がミスってるんじゃないの」とすぐ答えられるようには日頃から鍛錬しています。
以上、エンジニアリングマネジメントにおける棚上げ力について解説しました。なお、この棚上げ力というのは同僚の @kentaro がよく言ってる言葉で、最近よくあちこちで使ってます。棚上げ力おすすめです。
先週の金曜にそれなりに動くようにした M1 Max の MacBook Pro 14 インチを 1 週間使ってみたので感想です。
make -j
でビルドしても何も音がしない、遅くもならない以上って感じでした。最後がとにかく致命的ですね。Asakusa.rb でも話していたんですが、コンテナ環境にするくらいなら、昔のようにネイティブで Rails 動かしたり、go なり rust で開発したほうがいいと思います。いやあ、時代はぐるぐる回るものですね。
ウィッチャー3の方は、DLC であるトゥサンのマップの未探索地域を全て埋めたところで、残りのスケリッジは海しかないしまあいいか、って気持ちになったので Lv 59 でプレイを終えて、積んだままになっていたゲームの中から PS5 の HITMAN 3 を再開することにした。
以前はチュートリアルだけやって、なんじゃこりゃ?で終わっていたけど、改めてちゃんとプレイしてみると単にクリアするというだけではなくて、マップと NPC の行動パターンや補助アイテム、設備などを観察してミッションを達成するということに主眼が置かれていてなかなか面白い。
以前にアサシンクリードシンジケートやユニティをプレイしていて、他の人の感想を読んでいるときに、ステルスアクションをやるなら HITMAN の方が面白いというコメントを見て、「へー、そんなゲームがあるんだ」となったけど、確かに特定の条件を達成したときだけ有効となる暗殺方法などもあって自分好みだった。
シリーズ全部を最初から全部やってるので HITMAN 2 のシナリオに到達したというレベルだけど、しばらくはこれで遊べそう。
山口といえば、YCAM があるところ...?というくらいには情報の連想が偏っているのだが d design travel の山口号を読んだ。誌面も建物としての YCAM だけではなく、周辺の文化や沿革についても結構なボリュームを使って解説されていたのが良かった。
福岡からも広島からもシュッと行ける距離でもないので、山口に行くなら YCAM であるとか強い気持ちを持って目的地を設定して行くことになりそう。島根から石見を経由して山口へ〜というのも考えたことがあるけど、それでもかなり距離があるんだよなあ。うーん。
東京都美術館で開催されているレオポルド美術館エゴンシーレ展を見てきた。別にもう少し後にしても良かったけど、行けるうちに行っておこうということで土曜の夕方の枠を予約した。
この日は想像以上に混んでいて、「うへえ」ってなるくらいには人が多くてちょっとしんどかった。海外からきたのか日本に住んでいるのかはわからないけど、日本語話者以外の観覧者も多く、なおかつ日本のローカルルールであるところの美術館での撮影禁止を無視というか把握しないままバンバン写真に撮りまくっていて、その度に係員が写真は撮るなと注意するんだけど、日本語あんま伝わってない、というのをあちこちで繰り返していて苦笑してしまった。ほんとこういうのにコストをかけるくらいなら基本 OK に舵を切ればいいのに。
日本の美術館、特に特別展は係員や美術館が並ぶな、と先導しているにも関わらず壁際に大行列ができるのが本当に嫌で無視して並ばずに歩いて見ているのだが、この日の人の量は行列を作ってる場合ではない、というくらいに混んでいたからか、人々があちこちにわちゃわちゃ動いてみるという感じだったので、目的の絵は大体間近でみることができたので良かった。
このあとは上野駅に行って軽く買い物をしてから、科学博物館で開催されている毒展へ。自分は一度見たので流しモードになりつつ、妻に見どころを説明しながら歩いていた。ミュージアムショップで、もう一つの毒キノコのぬいぐるみを買おうと提案したけど置く場所がないということで諦め。残念。
デスク周りに本が溢れてきてどうにもならなくなってきたので、整頓グッズを買うために前から気になっていたニトリと、ニトリが運営しているダイニングレストランに行ってきた。
レストラン、これはびっくりドンキーだな、という感じの店でなかなか良かった。ニトリの方は久しぶりにでかいニトリということで、「これ便利じゃね?」「確かに、でもいらないのでは?」というのを妻と無限ループしながらあれこれ見て楽しかった。結局買ったのは当初の目的のキャスター付きボックスと台所の整頓グッズの2つだけ。
ニトリのレストランもだけど、ほぼ無人レジになっていてちょっと関心した。レジの人手不足が技術で解決されているのは良いことっぽい。
9章まで進んだところ。主人公が春日と桐生とで分かれてパーティー作り直しというところだけど、この辺の導入やストーリーの流れもよくできていて大変おもしろい。桐生パートで結構育成してから、春日パートに戻るとやたら弱く感じたりと2パートの作り込みが今のところは絶妙なバランスとストーリー展開に感じている。
すでにネタバレなしのレビューを読んでしまった後ではあるのだけど、出てくる悪役というかボスが小物すぎて従来のシリーズにあったようなこいつは巨悪かつ強いというのがないのは確かになあと思いながらプレイしている。
この日は Matz も来ない上に何も話題がなく虚無の時間のまま90分が経過という感じだった。自分はというとひたすら fiddle を消したら Windows で Ruby の動きがなんか変、という症状を追っていた。
というわけで月曜火曜と結構な時間を使って調べたり、コードを書いて fiddle を bundled gems にした
https://github.com/ruby/ruby/pull/12616
pull-request の上部に書いているけどやや難しい問題として RJIT が rjit.rb という Ruby のインタプリタに組み込む技を使っているところで fiddle を使っているというのと、fiddle を消したら何故か Windows の CI が全部なんだかよくわからないエラー、gem install
ができない、とかそういうので落ちるのでちゃんと調べた。
まず RJIT については、暫定措置ではあるけど bundled gems でビルドした .so などのパスを rjit.rb に埋め込んで LOAD_PATH を通したらなんとか動くようになった。
if RubyVM::RJIT.enabled?
begin
fiddle_paths = %w[.bundle/gems/fiddle-*/lib .bundle/extensions/*/*/fiddle-*].map do |dir|
Dir.glob("#{File.expand_path("..", __FILE__)}/#{dir}").first
end.compact
$LOAD_PATH.unshift(*fiddle_paths) unless fiddle_paths.empty?
require 'fiddle'
require 'fiddle/import'
rescue LoadError
...
こういうテスト向けのコードを配布コードに入れるのは最悪なので、nobu あたりに相談してテストでだけ外からパスを差し込むようにしようと思う。
で、Windows の方はかなりむずくて Windows の開発機で試したらすぐに再現したのでなんだろう、と深追いをしたら RubyGems > resolv > win32/resolv > win32/registry > fiddle という順序で参照していることでネットワークの通信箇所で落ちているということだった。
色々考えてどうしたものか戦略を考えたら、win32/resolv は resolv に必要な DNS の情報などを win32/registry を使って取得していたので、これを win32/registry というか fiddle を使わないでレジストリから取り出せばいいのでは、ということで powershell を使って値を取り出すようにしたら無事動いた。
パスとキーを渡して値を取り出す、というのでやってることはこんな感じ。
def get_item_property(path, name, expand: false)
if defined?(Win32::Registry)
Registry::HKEY_LOCAL_MACHINE.open(path) do |reg|
expand ? reg.read_s_expand(name) : reg.read_s(name)
rescue Registry::Error
""
end
else
cmd = "Get-ItemProperty -Path 'HKLM:\\#{path}' -Name '#{name}' -ErrorAction SilentlyContinue | Select-Object -ExpandProperty #{name}"
output, _ = Open3.capture2('powershell', '-Command', cmd)
output.strip
end
end
powershell の使い方は LLM に聞いては試しつつって感じで書いていた。こういうあまり詳しくない言語や環境でやりたいことをやる時には大変便利。
こんな感じに fiddle がなくても powershell を使って resolv が動くようになったところで困っていた Windows で動かないというのは解決できた。これ、resolv でレジストリを参照して色々複雑な処理でインターフェースごとに値を取り出しているけど、素朴に グローバルな DNS を使うだけじゃダメなんかなあ。
これで 2024 年に予告していた bundled gems 化はひと段落。ちょっと微妙なコードや処理が残っているので2月はその辺の「整頓」かなあ。頑張ろう。
夕食の時間が遅くなってしまって、discord でチャットを眺めるというだけになってしまった。
https://asakusarb.esa.io/posts/1237
https://railsconf.org/ の cfp がオープンしたので honda さんと眺めながら、フィラデルフィアってどう行くのがいいのか?というのを軽く話していた。最初は乗り継ぎかなあとか思っていたけど、ニューヨークの JFK まで行ってしまって列車で移動、というのも楽で良さそうだった。
それはそれとしてまずは proposal を通さないとなー。
# ぺこ [ありがとうです。無事設定できました。感謝♪]