2023-01-01から1年間の記事一覧
Rubyでテトリスを実装する その6 - @ledsun blog の続きです。 今回は、ライン消しです。 https://github.com/ledsun/tetoris/commit/fb4fd5d11f58d7353d4501124290574206a98dbf がコミットです。 行単位の処理が増えたので、FieldクラスからRowクラスを分離…
Rubyでテトリスを実装する その5 - @ledsun blog の続きです。 左右キー下キーでテトリミノを移動出来るようにしました。 https://github.com/ledsun/tetoris/commit/bda62edefc2d13cdb6c93c242fc97b2729526313 が、コミットです。 実装は簡単でした。 落下…
Rubyでテトリスを実装する その4 - @ledsun blog の続きです。 今回はゲームオーバーとリスタートを実装しました。 https://github.com/ledsun/tetoris/commit/0a19308d3ad2c0deef31ab01a73d77c214054d6c がコミットです。
Rubyでテトリスを実装する その3 - @ledsun blog の続きです。 今回はテトリミノの種類を増やします。 同時に、テトリミノが着地したときに新しいテトリミノを追加します。 着地しとテトリミノと新しいテトリミノが衝突する判定も必要なので、それもいれます…
Rubyでテトリスを動かす その2 - @ledsun blog の続きです。 前回、I字型テトリミノが落ちてくるようになりました。 今回は、上キーの入力でテトリミノを回転します。 変更は https://github.com/ledsun/tetoris/commit/f93310b1254d2b53f8ca27ac0a15a373b95…
Rubyでテトリスを動かす その1 - @ledsun blog の続きです。 前回、枠を表示しました。 今回は、I字型テトリミノを表示して落下させます。 https://github.com/ledsun/tetoris/commit/9000667616f82486fe55c20e2c42b9c29e41bf34 の1コミットにまとめてありま…
WSL2上にRuby開発環境を構築してテトリスを作ってみた #Ruby - Qiita を見ながらテトリスを動かそうとしています。 読む分には簡単にできそうと思いました。 実際に、写経して動かそうとしてみたら結構大変でした。 特に、Cursesアプリケーションのデバッグ…
変更後のテーマのスクリーンショット matrixという中2っぽいテーマにしました。 ついでに .wezterm.lua に次の設定を追加してフォントを変更しました。 config.font = wezterm.font '源ノ角ゴシック Code JP' config.font_size = 14.0 もともとは補完途中の…
https://github.com/ruby/ruby.wasm/pulls?q=+author%3Aledsun+is%3Amerged+created%3A%3E2023-01-01 で一覧できます。 6件でした。 時系列で見ていきます。 github.com JavaScriptのオブジェクトを、newメソッドで作れるようにしました。 それまでは、次の…
URL: URL() コンストラクター - Web API | MDN を使うと、基準になるURLからの相対パスを解決したURLが得られます。 例えば、次のように使います。 // ベース URL: let baseUrl = "https://developer.mozilla.org"; new URL("ja/docs", baseUrl); // => 'htt…
ruby.wasmのテストコードを書いていました。 PlaywrightでHTTPリクエストをMockしているスクリーンショット cdn.jsdriver.netへのリクエストをMockして、レスポンスの内容をローカルファイルに置き換えています。 リダイレクトしたあとはMockできていないス…
ruby.wasmのコミットのなかで、make を並列実行する -j オプションを追加するコミットがありました。 build: use -jN option for "make install" in crossruby · ruby/ruby.wasm@02e84be · GitHub 本当に並列化されているのか観察してみました。 Rubyをビル…
PlaywrightのNewwork mockingをつかってみる - @ledsun blog ではテスト用のUIを使ってリダイレクトの動作を確認しました。 テストコードで確認してみましょう。 import { test, expect } from '@playwright/test'; test.beforeEach(async ({ context }) => …
次のようなindex.htmlを用意します。 <html> <title>Playwright</title> </html> テストは次のように書きます。 import path from 'path'; import { test, expect } from '@playwright/test'; test('has title', async ({ page }) => { const htmlPath = `file://${path.join(__dirname, …
Amazon Linux 2では、Node.jsの新しいバージョンをインストールできなかったり、少しずつ時代遅れ感が出ています。 では、「Amazon Linux 2023にすればいいのか?」というと、どうもそう簡単ではないようです。 これは、アップデートに挑戦して苦戦した話で…
名古屋出張があったので、翌日を休みにして名古屋駅周辺を半日散歩しました。 名古屋といえばナナちゃん人形 大きな教会がありました。 在日大韓基督教教科書という建物らしいです。 サムネイルのモアレがすごいです。 ノリタケの森 無料で入れました。 公園…
Playwrightをつかってみる - @ledsun blog でPlaywrightが最低限動く環境ができました。 リダイレクトレスポンスを扱うテストを書こうと思います。 Playwrightには Netwrok mockingという機能があります。 実行するテストからのHTTPリクエストをモックして書…
Installation | Playwrightの手順に従って進めます。 npm init playwright@latest いまはnpm initにプロジェクトテンプレートをつくる機能が組み込まれているようです。 npm-init | npm Docsによると initializer in this case is an npm package named crea…
ruby.wasmでrequire_relativeしたときのリダイレクトレスポンスの扱い方 - @ledsun blog に書いたように、HTTPリクエストのリダイレクトレスポンスでURLが変わったら、変更後のURLをロード済みとして扱いたいです。 リダイレクトレスポンス対応版 require_re…
require_relativeでリダイレクトレスポンスをサポートしたいと思っています。 たとえば次のようなシナリオです。 require_relative "a" を実行する fetch('a.rb') を実行する a.rb にGETリクエストを送る サーバーから302レスポンスでb.rbが返ってくる b.rb …
自分でビルドしたruby.wasmを実行する環境をつくる - @ledsun blog で、ruby.wasmのカスタムビルドを動かせるようになりました。 実装中の require_relative が動くか確かめてみましょう。 次のような index.hml を作成します。 <html> <script src="browser.script.iife.js"></script> <script type="text/ruby"> require 'js/require_remo</html>…
ブラウザからruby.wasmを実行するときは https://cdn.jsdelivr.net/npm/[email protected]/dist/browser.script.iife.js を使うことが多いです。 browser.script.iife.jsは https://cdn.jsdelivr.net/npm/[email protected]/dist/ruby+stdli…
ruby.wasmのE2Eテストをデバッグする - @ledsun blog で、次のように書きました。 そこで、テストケースで次のようなイベントリスナーを設定します。 page.on("console", (msg) => console.log("LOG:", msg.text())); ruby.wasmのソースコードをみると元々組…
ruby.wasmのE2Eテストをデバッグする - @ledsun blog で、Response.urlにリダイレクト後のURLが入っていない現象を観測しました。 MDNには url プロパティの値は、あらゆるリダイレクトの後に得られる最終的な URL になります。 とあります。矛盾しているよ…
ruby.wasmにPlayWrightで書かれたE2Eテストがあります。 https://github.com/ruby/ruby.wasm/blob/84707d656d007577947ced6c14a9a33e3ffd4033/packages/npm-packages/ruby-wasm-wasi/test-e2e/integrations/browser-script.spec.ts テストに失敗したときに、…
透過pngを作る - @ledsun blog の続きです。 手元にあるツールで、背景色の透明化を試しましたが上手く行きませんでした。 新しツールをインストールしてみます。 フリーの画像編集ソフトといえばGIMPがあります。 最近はMicrosoft Storeからインストール出…
ChatGPTで画像が作れるようになりました。 楽しく画像をつくりました。 ChatGPTで作った画像 作った画像でトレーナーが作りたくなりました。 背景色の白が印刷されてしまいます。 絵だけを残して背景を透過したいです。 Windowsの3Dペイントには良い感じに塗…
KPTは「チームの力で問題を見つけるふるまい」の養成ギブスです。 ふるまいに慣ていない間は違和感があります。 たとえば次のような問題が起きます。 トライ狙いすぎ問題 KPTの「改善活動」の面に強く期待しすぎて生じる問題です。 無意識に、KPTの成功指標…
お題 WebAssembly text formatからwasmバイナリをつくる環境を整える - @ledsun blogで、watからwasmが作れるようになりました。 すこし複雑な例をつかってwasmバイナリを生成して読んでみましょう。 WebAssembly テキスト形式の理解 - WebAssembly | MDNにw…
wasmバイナリのカスタムセクションを書いてみる - @ledsun blog でプリアンブルとセクションを持つwasmバイナリを書き出せるようになりました。 最低限のwasmバイナリファイルの構造を理解したといえます。 お題 Writingの次はReadingです。 シンプルなwasm…