@ledsun blog

Hのキーがhellで、Sのキーがslaveだ、と彼は思った。そしてYのキーがyouだ。

Rails 7 はユニバーサルJavaScriptモジュールの夢を叶えるか?

2009年に発表されたCommonJSの夢。この夢が叶えられるかもしれない時がきています。それもJavaScriptではないRuby on Railsによってです。 JavaScriptのライブラリ管理の歴史を紐解いてみましょう。 モジュール前夜 jQueryによるプラグイン管理がありました…

Rails 7はESモジュールをどう扱うのか?

www.youtube.com の手順で作成したRailsアプリケーションの動作を見てみましょう。 このRailsアプリケーションの http://localhost:3000/posts のHTML、特にheadタグを見ます。 Post一覧画面のheadタグ なかでも気になるのは次の行です。 <script type="module">import "applicatio</script>…

人間不信の冒険者たちが世界を救うようです

人間不信の冒険者たちが世界を救うようです 1 (MFC)作者:川上 真樹KADOKAWAAmazon 漫画の描写が丁寧です。 第1話が64ページもあって、導入が丁寧なので、入り込みやいです。 最近流行の、裏切られた主人公が再帰する物語です。 もともと実力のあるメンバー…

ふかふかダンジョン攻略記 ~俺の異世界転生冒険譚~

ふかふかダンジョン攻略記 ~俺の異世界転生冒険譚~ 1巻 (ブレイドコミックス)作者:KAKERUマッグガーデンAmazon 異世界転移物だけど、あんまり関係ないです。 「無職転生」みたいに、幼少期から努力を続けたモチベーションの理由づけくらいです。 あ、弓矢…

Sprocketから要らなくなった機能を削減したPropshaft

"Propshaft is an asset pipeline library for Rails. It's built for era where bundling assets to save on HTTP connections is no longer urgent, where JS and CSS is either compiled by dedicated Node.js bundlers or served directly to the browse…

プログラミング言語Rubyを修正する方法

RubyのDateからTimeへ移行する道程、いまここ - @ledsun blog で、RubyのTimeにパッチを投げると取り込まれやすそうだということがわかりました。 どうのような手順で、Rubyの修正、パッチの提出をすれば良いのでしょうか? Kaigi on Rails new と言う去年の…

Rails 7 のActiveStrageはデフォルトではImageMagickの代わりにlibvipsを使う

Rails 7 αを試して、エラーで躓いているところ - @ledsun blogでCould not open library 'libvips.42.dylib': dlopen(libvips.42.dylib, 5): image not foundというメッセージを含むエラーが起きたので、ググったところ次のissueが見つかりました。 github.c…

Rails 7 αを試して、エラーで躓いているところ

www.youtube.com を真似て素振りしていきます。 rails new showtell 最初は--devオプションをつけて、ローカルに入っているRailsがインストールされて失敗しました。 cd showtell bin/rails g scaffold post title:string content:text bin/rails action_tex…

Rails 7 ではアプリケーション作成時にBulma(CSSフレームワーク)のインストールもできるようになりそう(なった)

github.com 最初はBulmaはNode.jsを使ってコンパイルしないからとクローズされました。 カスタマイズする際はsassを使ってコンパイルするので再オープンされました。 CSSフレームワークインストール用のGemがRails本体から分かれたからなのか、結構柔軟に取…

RubyのDateからTimeへ移行する道程、いまここ

RubyKaigiでRubyの改善のために、次の協力が求められていました。 youtu.be RubyのDateライブラリーのメンテナンスが行われていません。 Dateと同じ機能がほとんどTimeで提供されています。 strptime, parseなどはDateの機能が残っています。 この機能をTime…

nbodyのチューニング

benchmarksgame-team.pages.debian.net のスクリプトをチューニングします。 特に知見はないので、思いついた色々なパターンを試して、雰囲気を掴んでみましょう。 ソースコードはURLのみ載せます。 変更前 https://github.com/ledsun/nbody/blob/main/hoge.…

Ruby 3.0のJITの特性

Ruby 3.0のJITのすごさを体験する - @ledsun blogのスクリプトは引数で計算回数を指定することができます。 5000万回計算するとJITありはなしの2倍近い速度になりました。 施行回数を減らすとどうなるでしょうか? ~ time ruby hoge.rb 500 -0.169075164 -0.…

Ruby 3.0のJITのすごさを体験する

Benchmarks Game(旧Shootout)のn-bodyのRubyコードを18%高速化しておきました! @yukihiro_matz #rubykaigiRuby #2 が従来のバージョン(232.08秒)、Ruby #3 が自分の改善版(188.10秒)ですhttps://t.co/nmzuNtYnuX— Yusuke Endoh (@mametter) September…

文章中のサンプルコードが壊れていませんか?

ドキュメントにサンプルコードを書くことがありますが、しばしば壊れていることがあります。 読む方からすると、ちゃんとチェックして欲しいと思いますが、 書く方からすると、文章のどこにスクリプトがあるか探すのも大変だし、それをいちいち動かして確認…

Rails 7 のリリーススケジュールの目標

https://github.com/rails/jsbundling-rails/issues/16#issuecomment-918439258 Rails 7 is going to ship an alpha as soon as this week. Then probably the first beta within a month. Maybe quicker. And then final 1-2 months after that. So let's s…

sprockets-css-purgerのAPIを考えるために、tailwindcssとPurgeCSSの境界を考える

sprockets-css-purgerの姿を想像する - @ledsun blogの続きです。 tailwindcssからPurgeCSSを呼び出している箇所 https://github.com/tailwindlabs/tailwindcss/blob/v2.2.15/src/lib/purgeUnusedStyles.js#L188-L220 const purgeCSS = new PurgeCSS() purge…

sprockets-css-purgerの姿を想像する

DHHはsprockets-css-purgerというCSSをパージするための汎用的なGemが欲しいようです。 github.com This is btw and open invitation to anyone who'd like to work on this とありますので、誰がやっても良いようです。ところで、このbtwってどういう意味…

npm auditは有益なのか?

体感として、npm auditが出してくる警告は、利益より手間の方が多いように感じてはいます。 とはいえセキュリティに関わることなので、手間でも対応しなきゃなあと、頑張って対応しています。 僕自身は、主にアプリケーションのメンテナンスだけなので、それ…

今日のDHH

DHHのGithub上の活動から気になったものをピックアップします。 Exception thrown when log level is set by environment variable · Issue #262 · ruby/debug · GitHub 11: from /Users/dhh/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/debug-1.0.0/li…

Rails 7のデバッガ は byebug から ruby/debugになる

ruby-jpのslackでmrknさんが次のissueを紹介していました。 github.com 最初にこのissueを見たときは今から移行しようか迷っているのかと思いました。 Railsのコミットをあさったら、もう少し、と言っても18時間ぐらい前に、次のissueがありました。 github.…

めがね

めがね小林聡美Amazon 2007年の映画。 南の島で旅行者が妖怪じみた登場人物に囲まれてのんびりする話です。 市川実日子がかわいかった。 怒ってても笑ってても笑顔でもかわいかった。 前から見ても後ろから見てもかわいかった。 動いても止まってもかわいか…

Rails 7でJavaScriptバンドラーとCSSプロセッサを同時に起動するときはforemanを使うらしい

jsbundling-railsとcssbundling-rails両方に修正が入りました。 Add bin/dev via foreman to run multiple processes · rails/jsbundling-rails@91d8d2b · GitHub Add bin/dev to run multiple processes · rails/cssbundling-rails@1ed4dc5 · GitHub ポイン…

cssbundling-railsの誕生

github.com jsbundling-railsのCSSプロセッサ版です。 jsbundling-railsのissueでJavaScriptバンドラー以外をサポートしないのか聞かれてDHHは次のように答えました。 https://github.com/rails/jsbundling-rails/issues/4#issuecomment-914039291 Although …

ゲート 自衛隊 彼の地にて、斯く戦えり19

ゲート 自衛隊 彼の地にて、斯く戦えり19 (アルファポリスCOMICS)作者:竿尾悟,柳内たくみアルファポリスAmazon 前半が、自衛隊の特殊部隊、特戦群が拉致された日本人を救出して脱出するお話。 後半が普段はトリックスター役を演じる竜人間の亜神ジゼルがア…

jsbundling-rails

github.com esbuild-rails - @ledsun blogで紹介したesbuild-railsの後継Gemです。 最初は次の2つのGemのようにバンドラー毎に、別々のGemとして作られていました。 https://github.com/rails/esbuild-rails https://github.com/rails/rollupjs-rails 三つ統…

女だって時間停止できるんだからっ!

女だって時間停止できるんだからっ!(1) (ヤングキングコミックス)作者:さんりようこ少年画報社Amazon AVにある「時間停止」というジャンルを男女逆にしたらどうなるか?という漫画です。 ネタとにしては出落ちになるのでしょうか? 結果的には、性の知識に…

洞窟王からはじめる楽園ライフ ~万能の採掘スキルで最強に!?~

洞窟王からはじめる楽園ライフ ~万能の採掘スキルで最強に!?~ 1 (MFC)作者:出店 宇生KADOKAWAAmazon スペック低めの主人公が未開の地に追放されたら才能を開花して活躍する漫画です。 採掘スキルというのが新しい点でしょうか。 わりとのんびりした漫画で…

Rails 7のフロントエンド政策

world.hey.com DHHからご神託がありました。 僕の理解は次の通りです。 一番のオススメはHotwireとimport maps。HEY(Gmailクローン)も作れるし大抵のWebアプリケーションはこれでいける JavaScriptをバンドルしたい人はesbuild/rolllup/webpackの好きなも…

HTMLのscriptタグのdefer属性

HTMLのscriptタグにdefer属性があります。 これを使うと何が嬉しいのでしょうか? スクリプトがDOM構築に与える影響 スクリプトはdocument.write を実行してHTMLを操作することが許されています。 このため、ブラウザは<script>タグを見つけると、DOM構築を一度停止…

echoするAngularJSアプリケーションを新Angularの環境で動かす

Angularには、AngularJSからの移行を支援するための@angular/upgrade/staticがあります。これを使ってみましょう。 まず、Angular CLIで新Angularの環境を作ります。 次のように簡単なAngularJSアプリケーションを組み込みます。 <html lang="en"> <head> <meta charset="utf-8"> <title>MyApp</title> <base href="/"> </base></meta></head></html>