@ledsun blog

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

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.…

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 …

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 三つ統…

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>

esbuild-rails

DHHが空のRailsアプリケーションにesbuildをインストールするGemを作りました。 中身を見てみます。 GitHub - rails/esbuild-rails: Bundle and transpile JavaScript in Rails with esbuild You develop using this approach by running esbuild in watch m…

PPLサマースクール2021

ss2021 - 日本ソフトウェア科学会 プログラミング論研究会 (JSSST-SIGPPL) (Special Interest Group on Programming and Programming Languages) に参加というか、視聴しました。 例えば、あるHTML要素の上にマウスカーソルがあるときに マウスの左ボタンを…

Angular CLI

Angularの開発環境はRuby on Railsと同じくらい複雑です。 最小でindex.htmlファイル1つで動かせるAngularJSと比べると驚きです。 このような環境を手動で作るのは大変なので、自動的に作成してくれるコマンドがあります。 これがAngular CLIです。 Ruby on …

echoするAngularJSアプリケーション

See the Pen とてもシンプルなAngularJSアプリケーション by shigeru.nakajima (@ledsun) on CodePen. AngularJSはng-app属性が付いたHTML要素に対して機能を追加していきます。 ng-app属性をつける代わりに、次のようにangular'bootstarp関数に対象のHTML要…

Google ChromeのSimulate mobile devicesのタッチ操作が無効になるのはいつか?

Google Chormeでは、スマートフォンなどでの見た目を確認するのに便利なSimulate mobile devicesという機能があります。 この機能を有効にすると、タッチ操作が有効になります。 例えば次のJavaScriptの式で、タッチ操作が有効であるか確認できます。 'ontou…

AngularのplatformBrowserとplatformBrowserBynamicの違い

stackoverflow.com チェックが付いているAnswerは嘘情報です。 その下が正解です。 platform-browser-dynamicとplatform-browserの違いは、angularアプリのコンパイル方法です。 dynamic platform を使用すると、angular は Just-in-Time コンパイラをアプリ…

AngularJSとAngularの歴史の整理

現Angular、当時Angular2ってずっと最近になって出たと思っていました。 調べたら、Angular2は結構前に出ていたことを知りました。 日付 AngularJS Angular 2015/01/13 AngularJS 1.4 開発始まる *1 2015/03/24 Angular2 開発始まる *2 2015/05/26 AngularJS…

実行するたびに決まった順番で値を返すRubyスクリプトはなぜか自分を書き換える

Webアプリケーションのテストに使う端末を決定するために、最初はruby -e 'p %w(iPad Firefox Android).sample'とランダムで値を返していました。 使っていると、ランダムよりは順番がよいと感じました。 また、順番も前回使った端末を覚えていて、その次か…

importmapのサンプル

Google Chorme、Firefox、Safariのような、現代的なブラウザは、<script type="module">を使ってESMモジュールが読み込めます。 さらに、import文を使って依存モジュールを解決できます。 例えば、次のHTMLではvueが動きます。 <html> <body> <div id="container"> The Planet Wercury was formed {{ age }} age. </div> <script type="module"> </body></html>…

AirDropを使ってコマンドラインからiPadで指定のURLを開く

開発中のWebアプリケーションのテストのiPadのSafariで開きたいです。 Webアプリケーションを動かしているMacBook ProにはDHCPでIPアドレスを設定しているためIPアドレスが変わります。 IPアドレスが変わると、iPadのSafariのアドレスバーのIPアドレスを変更…

シン・「*(アスタリスク)がワイルドカードとして使われるまで」

*(アスタリスク)がワイルドカードとして使われるまで - @ledsun blogを公開したところいくつか新情報をいただきました。 サマリ 1951年、スティーヴン・コール・クリーネが正規表現の閉包演算子として*を生み出す。 1965-1969年のどこか、Multicsに*をワイ…

*(アスタリスク)がワイルドカードとして使われるまで

* をワイルドカードとして使う文化、いつ頃からできたんだろう? https://t.co/CvuNGS1Sld— うおめし (@uomeshi) August 8, 2021 正規表現のスター演算子に関してはkleene starとも呼ばれるようにStephen Kleeneの発案で初出は1951年のようですhttps://t.co/…

クリティカルチェーン

クリティカルチェーン作者:エリヤフ ゴールドラットダイヤモンド社Amazon 2005年頃に、「ザ・ゴール」は読んだ記憶があります。 そのときはクリティカルチェーンまではたどり着きませんでした。 最近、仕事の関係でクリティカルチェーンを勉強する必要があっ…