Denoばた会議 Monthly 第7回参加メモ
Denoばた会議 Monthly 第7回 - connpass
Permissions オプションの挙動が変更(破壊的変更)
v1.20 から test の permission 絞り込みがちゃんとした。 test の permissions に与えていない permission は無効になった。 今までは与えていなくても、コマンドラインで指定してある permission があれば有効だった。
deno task コマンド
deno.json という設定ファイルがある。 そこへ tasks というプロパティが増えた。 tasks プロパティに shell が書ける。 そこの shell を自前で実装していて、Windows、Mac、Linux 間の非互換性を吸収する。
ryが不在時に導入が進んでしまい、あまりryは納得していないっぽい。 shellは古い機能なので、web的な何かで実装した方が良いのでは。
deno bench コマンド
ベンチマークを実行してくれる。 標準ライブラリにもベンチマーク用のモジュールがある。 それとの兼ね合いはどうなるのか?
HTTP レスポンスの自動圧縮
deno test --trace-ops
リソースリーク検出時のエラー内容が改善。
Deno.connectのAPIが変更
Deno.listenTlsでcertとkeyがサポート
パフォーマンス改善
V8から外の世界にアクセスする時にopを作る必要がある。そこが改善。 atob/botaはbase64処理部分が改善した。 Jarredさんがパフォーマンス争いを挑んでくるのが、denoパフォーマンス向上に貢献している。
その他の変更点
Web Streams APIへの移行について
GoスタイルのAPIからWeb Streams APIへ移行している。
dotenvモジュールが追加
deno_std/nodeの改善
crypt-browerify/publicEncrypt
deno.landがNode.jsからDenoへ移行
Fresh Island Archtechture
RemixでのDenoサポート
OakのNode.jsサポートについて
capsid -- フロントエンド
Node学園 38時限目 オンライン Node.js vs Deno 徹底討論のふりかえり
ゼロ・グラビティをみた
パニック映画で深みがないな〜
オブリビオン (字幕版)を観た
荒廃した地球で、無人偵察機のメンテナンスをするジャック・ハーパー(クルーズ)。数十年前、“スカヴ”と呼ばれるエイリアンの襲撃により地球は壊滅。人類は別の惑星へ移住を果たした。高度1000メートル上空に居を構え、地球の監視という職務を遂行していたジャックだったが、墜落した宇宙船で眠る美女を救出したことで、平穏な生活に変化が訪れる。美女の出現によって、ジャックは自身を取り巻く環境に疑問を抱くようになり、さらには人類の運命をその手に委ねられることになる―。
Amazon.co.jp: オブリビオン (字幕版)を観る | Prime Video
視聴前の宇宙人が地球を侵略するストーリーというイメージからいい意味で裏切られた。
綺麗にまとまったSF、サスペンス、ラブストーリーになっている。
映像も美しい。
視聴後の気持ちも、スッと腑に落ちるような納得感のある終わり方だった。
Spring framework Transactional annotation を使いこなせずはまった
下の記事に救われた、ありがたや
ti-tomo-knowledge.hatenablog.com
下のケースをやってしまっていた
これはクラス全体ではなくメソッドにアノテーションを付与した場合に関係することですが、コントローラなどから別メソッドを呼び出して更新処理をする場合、@AutowiredでDIしたクラスのメソッドを直接呼び出す形でないとトランザクションは効きません。
Laravel Middleware 呼び出し順序ログ
Laravel の Middleware を2つ登録した場合に、リクエスト前後の処理がどのような順序で実行されるか確認するため、ログ出力してみた。
そのメモ。
<?php namespace App\Http\Middleware; use Closure; class Middle1 { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { logger("Middle1-before"); $response = $next($request); logger("Middle1-after"); return $response; } }
<?php namespace App\Http\Middleware; use Closure; class Middle2 { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { logger("Middle2-before"); $response = $next($request); logger("Middle2-after"); return $response; } }
<?php namespace App\Http; use Illuminate\Foundation\Http\Kernel as HttpKernel; class Kernel extends HttpKernel { /** * The application's global HTTP middleware stack. * * These middleware are run during every request to your application. * * @var array */ protected $middleware = [ \App\Http\Middleware\TrustProxies::class, \App\Http\Middleware\CheckForMaintenanceMode::class, \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, \App\Http\Middleware\TrimStrings::class, \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, \App\Http\Middleware\Middle1::class, \App\Http\Middleware\Middle2::class, ]; // 以下、省略
laravel.log
[2021-09-28 14:30:22] local.DEBUG: Middle1-before [2021-09-28 14:30:22] local.DEBUG: Middle2-before [2021-09-28 14:30:22] local.DEBUG: Middle2-after [2021-09-28 14:30:22] local.DEBUG: Middle1-after
以上
フォードvsフェラーリをみた
名作です。WikiPedia のあらすじだけでも読み応えあり。