ローファイ日記

出てくるコード片、ぼくが書いたものは断りがない場合 MIT License としています http://udzura.mit-license.org/

JXAでMacのちょっとしたブラウザ操作を自動化する

SmartHR Advent Calendar 2024、14日目の記事です。昨日のご担当は tnagatomi さんでした! qiita.com 株式会社SmartHRのプロダクトエンジニア @udzura です。労務基本機能を開発するチームで働いています。 今日は最近知った JXA で、Macのちょっとしたブラ…

自作WASM Runtimeでグレースケール処理を動かすまで

あらすじ udzura.hatenablog.jp tl;dr 自作WASM Runtimeでグレースケール処理を動かした グレースケール処理はRustで書いたもの WebAssembly specificationはテストケース付きで公開されてるので便利

Pure Ruby なWASM Runtimeを型付きで実装してみた

Wardite というWASM Runtimeを作っていました。 github.com 今の所、「RustでWasm Runtimeを実装する」の内容を一通り実装した段階です。 zenn.dev fibまで動くようになったので、ゴリラさんのコースの範囲は一旦完成あとはwasm坂を登り続けるだけだ... pic.…

手を動かして理解するwasmCloud 〜旅立ち編〜

wasmの可能性を「理解」したくてwasmCloudをさわってみている。動かしてみたメモや感想などを晒しておく 免責事項 wasmCloud公式のGetting Startedに書いてあるレベルのことしかしていないので、これから学ぶ人は直接そっちを読んだほうがいいと思う。 wasmc…

RubyKaigi 2024で話そうと思ってること

RubyKaigi 2024二日目(16th, May)に登壇します。 rubykaigi.org 本ブログで前々から言っている mruby/edge に関する発表です。 udzura.hatenablog.jp 構想自体ははっきり言って去年のRubyKaigi CfPオープンぐらいからあって、地道な素振りをしていた。懐か…

mruby/edge でimport/exportする関数における、文字列の仕様の話

はじめに この文字列の扱いの仕様はアルファ版であり、もっといいアイデアが出たら大胆に変更します 何もわかっていないんですが、 WASM Component Model では string の扱いも言及されており 、それに合わせたいい感じのやつにきっと将来なるでしょう ご意…

mruby/edge ってブラウザで動くんですか?

A: 動きます。

mruby/edge進捗: RBSを使ってwasmのexport対象関数を指定するようにした

mruby/edgeの進捗ブログです。 mruby/edgeとは、という話はここです: udzura.hatenablog.jp もっと聞きたい人は5月に沖縄にいくといいらしい。 rubykaigi.org

eBPFくじ引き

eBPFのヘルパー関数には bpf_get_prandom_u32() というものがあります: (Chromeの「この箇所へのリンク」を使いました) bpf-helpers(7) - Linux manual page これは色々な用途に使える(まず想像するのはサンプリングとか?)と思いますが、おみくじに使っ…

wasmで動くmruby(とバイナリ互換のVM)近況報告

RubyKaigi CfP 2024のクローズ期限は本日です。みなさんは準備ですか? 今日は、先日紹介した mruby/edge の近況を報告します。 udzura.hatenablog.jp VTRをどうぞ youtu.be う〜ん地味! できてること mec というcli経由でRubyスクリプトを直接wasmファイル…

wasm環境で動くmrubyを作りたかった... 話

mrubyファミリー Advent Calendar 2023 24日目の記事です.............................. qiita.com wasm環境で動くmrubyを作っているのでその途中経過をダラダラ書きます。 本当は.............. 今の時点である程度まともに動かしたり、情報も整理したかっ…

DockerのAPIバージョンを推測する

日記... sizu.me 静かなインターネットを始めてそっちにもたまに書いているが、はてな.....。

ハンズオンWebAssemblyを読んだ

日記、やっぱり書いたほうがいいなとなるきっかけがあったので漠然とやっていく。 この本、バイナリが好きなので読んだ。 ハンズオンWebAssembly ―EmscriptenとC++を使って学ぶWebAssemblyアプリケーションの開発方法作者:Gerard GallantオライリージャパンA…

Xの動画を見るときに落とされるファイルを眺める

あまりにも個人の日記を書いていないので、某所にただのメモとしておいてあるやつを再構成したりしてお茶をにごす。 例えばこのツイート... ポスト。 #スイカゲーム #NintendoSwitch pic.twitter.com/ukIwEVZm1t— Uchio Kondo (@udzura) 2023年10月2日 動画…

mruby 3.2 で実行できるmrbバイナリを自作した

手作りの温かみのあるバイナリです。 作りかた そろそろRustで書くか、と思ってRustで書いた。 bytes というcrateが今回の用途にめちゃくちゃマッチしていた。数値をBig Endianで書き込めればいいので、こういう感じで。 pub fn write(&self, mut out: impl …

mruby 3.2.0 のバイナリフォーマット

なんとなくバイナリを解析してえ〜と思ったので、mruby 3.2.0 (最新stable?)の .mrb ファイルのフォーマットを眺めることにした。 Rustでパースしました!だとかっこいい、ナウだなと思ったけれど、動的型育ちな自分をどうしても甘やかしてしまい、 Ruby …

自作 LSM-Tree その1

Log-Structured Merge Tree というデータ構造があって、データ指向アプリケーションデザインを読んでいるとかなり最初の方に出てくる。Wikipediaの記事の通りLevelDBを始めきょうびのさまざまなデータベース製品で使われている。 特徴はめちゃくちゃざっくり…

Cloud BuildからCloud Functionsを呼びたい、それだけなんだ

Google Cloudのサーバレス主要サービスであるCloud BuildとCloud Functionsを使っていて、Cloud BuildからCloud Functionsをなるべく安全っぽく呼びたかったのだが、適当な手順がなかなか見つからなかったのでここに残しておき、将来自分が忘れた時に検索可…

Lima 0.14 のVirtualization.framework対応を試す

Linux Advent Calendar 2022 19日目の記事です、と言いつつ遅くなりましたが....。 qiita.com Lima 、使ってますか Linux Advent Calendar なのにMacの話では?となりそうな感じもありますが、Lima使っていますか? Docker の環境を colima で作っている方も…

OSS Halfwayというワークショップを始めるよという話

皆さんは公開情報ですか?(挨拶) 初めに言いたいこと タイトルの通りのワークショップを始めます。最初は福岡市内でオンサイトで、エンジニアカフェ[PR]でやっていくので、まずはぜひ福岡近辺のソフトウェアに関わるエンジニアに届いてほしい。 engineerca…

SlackのInteractionCallbackに含まれるMessageからもとのURLを復元する

10月何もしていない...(会社のブログはギリギリ書いた記憶がある)。 何もしなすぎてるので極小ネタを。 SlackのAppにはUser Interactionという機能があり、例えばSlackの入力画面からのショートカット実行結果を受け取り、フォームを返したりさらに入力を…

RubyKaigi 後日譚: GC のレイテンシを可視化する人の補足

本日RubyKaigiでお話ししてきました。BPFのObservability関連の機能を紹介しながら実際にサンプルをRubyで書いていくみたいな流れでした。以下に資料を。 docs.google.com 一番見せたかった「RubyのGC関係USDTを用いてレイテンシを可視化する」というツール…

PyRoute2 + PyCall.rb でネットワークインタフェースの操作をする

前回、BCCのPythonバインディングで、TCにBPFを引っ掛けてegressのIPを表示した。 udzura.hatenablog.jp ところで私はRuby版BCCを開発しているわけだが、上記プログラムは一部iproute2的な操作をPythonで行うPyroute2に依存している。RubyにはPyroute2に相当…

BCCでTCにアタッチし、egressのIPを表示する

サーバではいろいろな通信があるけれど、実際どんな通信が行われているか全貌を確認するのはなかなか難しい。 blog.ssrf.in 上記のソリューションはかっこいいが、KRSIなんで、「うちの環境のカーネルじゃちょっと...」となりがち。BPFあるあるだと思う。 一…

RustによるRubyアプリケーションサーバー Flamboyant: version 0.1.0.rc

「なんとか動かせた」という世界の話なんですが、途中経過をメモしておきます。 先日Rustでgemをなるべくイマい形で書く方法をメモっていたんですが、一つは実用的なものを作ろうと思ってサーバを書いています。 udzura.hatenablog.jp Flamboyant という名前…

Fukuoka.rb #256 LTの補足: RustでRubyGemを書く話

fukuokarb.connpass.com docs.google.com キリがいい回で話しました。およそLTで収まる話ではなかった(5分、一番難しい)ため、最も肝心の「どうやってコードを書くか」の部分を全部端折ってこのブログで補足することにしました。 サンプルプロジェクト git…

archof: リモートのままイメージのarchitectureを確認するコマンド

背景 Apple SiliconのMacが販売されてそれなりの時間も経ち、エコシステムもできてきてお仕事の開発に使っている人も増えてきたように思う。 ところで、colimaのようなツールを使い、Docker環境をMacに作成した時、Apple Silicon上ではデフォルトで arm64 版…

How to build ruby.wasm on Apple Silicon Mac

ここまでのあらすじ <読み飛ばし推奨> 子どもたちのためにJava版マインクラフトを買い、よーしパパ*1MOD作って「威厳*2」を見せちゃうぞ〜 と思ったが全くやる気配がない。 一方で、子どもは無限の時間をScratchに費やしていた。Scratch 3.0はReactで作ら…

Apple Silicon上でx86_64のDockerを使う

Apple Silicon上でLinux向けx86_64の環境が欲しくなったり、x86_64向けのバイナリやイメージを作らないといけなくなる事態は、稀に良くあると思う。 colimaを使うと、Aarch64なMac上であっても、かなり楽にx86_64のLinux環境とDocker環境が手に入る。 最近の…

Notion の使い方、私見など

1月がまるっとスキップされている... だと...。 hisaichi5518.hatenablog.jp id:hisaichi5518 さんがこういうことを書いていて、非常にわかりみがあった。 一方で、Notionというツールはそこまですごい銀の弾丸ではないというか、得意な分野と無理に使っても…