@ledsun blog

無味の味は佳境に入らざればすなわち知れず

2024-01-01から1年間の記事一覧

JS.falsy?

ruby.wasmように値がJavaScriptのFalsyな値か判定する関数を実装しました。 https://github.com/ledsun/ruby.wasm/blob/19b8f245af9806ceb67601f851300d2df6ac5674/packages/gems/js/lib/js.rb#L98-L109 def self.falsy?(value) value == JS::Null || value …

orbital ring その1

ruby.wasmを使ってRubyでフロントエンドフレームワークをつくったらどうなるかを考えてみましょう。 テンプレートエンジンはERBを使うと良さそうです。 イベントハンドラーのバインドはRailsのルーティングっぽくなる良さそうです。 次のイメージです。 Orbi…

マネジメント入門 その2

できるリーダーは、「これ」しかやらない メンバーが自ら動き出す「任せ方」のコツ作者:伊庭 正康PHP研究所Amazon マネジメント入門 その1 - @ledsun blog につづいて 管理職必読 順番に読むと理解が深まる「マネジメントの名著」11冊 | 日経BOOKプラス で紹…

マネジメント入門 その1

離職率ゼロ!部下が辞めない1on1ミーティング!作者:竹野潤自由国民社Amazon 管理職必読 順番に読むと理解が深まる「マネジメントの名著」11冊 | 日経BOOKプラス で紹介されていた本です。 とりあえず一冊目を読んでみました。 マネジメントの本は経営者から…

開発チームの人数とふるまいイメージ

チームの自律性 お仕事でソフトウェアを開発するプログラマーチームに対して、僕が持っているイメージを整理しました。 人数 2 リードとサブ コンビ 3 リードとサブ x 2 コンビとサポート チーム 4 リードとサブ x 3 チームとサポート チーム 5 マネージャー…

MySQLのロックに関する調査メモ その4

MySQLのロックに関する調査メモ その3 - @ledsun blog の続きです。 SHOW ENGINE INNODB STATUS\Gで出力されるロック情報を眺めていたら意味がわかってきました。 まずテーブルに格納されているレコードの情報です。 select * from mysqlcasual; +----+-----…

MySQLのロックに関する調査メモ その3

MySQLのロックに関する調査メモ その2 - @ledsun blog の続きです。 概念だけ勉強しても理解に限度があります。 実際にロックを起こして観察してみました。 InnoDBのロックの範囲とネクストキーロックの話 - かみぽわーる を参考にしました。 MySQL Shellを…

iroshizuku<色彩雫> 冬柿

万年筆のインクです。 PILOT 万年筆水性インキ 色彩雫/iroshizuku ミニボトル 15ml【冬柿】 INK15FGパイロットAmazon 赤っぽいのかと思っていました。 茶色とオレンジの間ぐらいの色でした。 好きな感じの色です。 冬柿で書いた文字の写真 写真で見ると、赤…

MySQLのロックに関する調査メモ その2

MySQLのロックに関する調査メモ その1 - @ledsun blog の続きです。 MySQLのロックについて - SH2の日記 のPDFを読みました。 面白かったです。 MySQL(というかInnoDB)の最初のスタート地点が「絶対にファントムリードさせたくない」なようです。 つまり一…

MySQLのロックに関する調査メモ その1

MySQLのロックのついては MySQL :: MySQL 8.0 リファレンスマニュアル :: 15.7.1 InnoDB ロック に書いてあるはずです。 読んでもいまいちよくわかりません。 MySQL/MariaDBとTransactdのInnoDBロック制御詳細 その1 - BizStationブログを合わせて読むとわか…

Windows Formの同期イベントハンドラーから入れ子になった非同期関数を呼ぶとデッドロックする

await と Task.Result によるデッドロックによるとWindows FormでTaskを使ったときにデッドロックするケースがあるようです。 検証してみます。 デッドロックするソースコード 試しに次のようなコードを書いてみました。 namespace AwaitDeadLockEight { pub…

ruby.wasmのJS::Object#newにブロックでコールバック関数を渡す

ruby.wasmのKernel#sleepをどう実装したものか? - @ledsun blog の続きです。 次のようにruby.wasmで動くKernel#sleepを実装できます。 <html> <head> <title>Kernel#sleep</title> <script src="https://cdn.jsdelivr.net/npm/@ruby/head-wasm-wasi@2.4.1-2024-01-26-a/dist/browser.script.iife.js"></script> <script type="text/ruby" data-eval="async">…</head></html>

オートローダー設計調査

ruby.wasmでオートロードする - @ledsun blog でModule#const_missingをつかってオートローダーを書いてみました。 Module#const_missingのAPIで、汎用的なオートローダーを書くのは少し難しそうなことがわかりました。 難しそうですが、どれくらい難しいの…

ruby.wasmでオートロードする

kakikataというペン習字練習用紙を印刷するruby.wasmアプリケーションがあります。 ledsun.github.io 複数ページ印刷する機能を追加するついでに、requrie_relativeを使ってファイル分割していました。 やっている内に、単純作業が面倒臭くなってオートロー…

万年筆

万年筆を買いました。 ペン習字をはじめた - @ledsun blog のの一環です。 練習するなら良い道具を使った方が気持ちが盛り上がります。 セーラー万年筆 万年筆 プロフィットスタンダード アイボリー 太字 11-1219-617セーラー万年筆Amazon 以前、パイロット…

rustのWASI用のThreadのsleep関数を読む

https://github.com/rust-lang/rust/blob/e9271846294c4ee5bd7706df68180320c0b5ff20/library/std/src/sys/wasi/thread.rs#L137 *1 pub fn sleep(dur: Duration) { let nanos = dur.as_nanos(); assert!(nanos <= u64::MAX as u128); const USERDATA: wasi::…

ruby.wasmのKernel#sleepをどう実装したものか?

ruby.wasmを使ってブラウザ上でKernel#sleepを呼ぶとエラーが起きます。 <html> <body> <script src="https://cdn.jsdelivr.net/npm/@ruby/head-wasm-wasi@2.4.1-2024-01-05-a/dist/browser.script.iife.js"></script> <script type="text/ruby"> sleep 1 </script> </body> </html> エラーのスクリーンショット とりあえずこんなパッチを当てれば動くことはわかっています。 module Kernel de…

Rubyでテトリスを実装する その9

Rubyでテトリスを実装する その8 - @ledsun blog の続きです。 すべてのテトリミノを実装しリファクタリングしました。 github.com CLIバージョンはひとまず完成です。

Rubyでテトリスを実装する その8

Rubyでテトリスを実装する その7 - @ledsun blog の続きです。 今回は 行を消すロジックの修正 T字形テトリミノの追加 デバッグ表示の追加 です。 行を消すロジックの修正 より宣言的にならないか工夫してみました。 https://github.com/ledsun/tetoris/blob…

ペン習字をはじめた

私は字が汚いです。 理由はわかっています。 脳内に収納している字形の解像度が低すぎるのです。 空で字を書くと、脳内の間違ったモデルをお手本に書くので、必ず汚い字が書けます。 克服するためには、脳に正しい字形をインプットする必要があります。 そこ…