概要
木俣ロバート久の日々の記録の *垂れ流し*
の纏め
- 都市伝説解体センターをクリアした
- 確定申告で申告漏れを見つけたので e-Tax から再提出 (期限内なので修正申告ではない)
- 20 年くらい使っているソーラー電波腕時計が壊れた
- iPhone 16, Apple Watch Serece 10, AirPods 4 Active Noise Cancellation を購入
- Qi2 3-in-1マグネット折りたたみ式ワイヤレス充電器 | Belkin JP を購入
- Pixel 8a 用に磁性体のリングステッカーを購入
- iOS の Update に失敗して一次的に文鎮化、直近のデータが飛んだ
- 久しぶりに発熱。多分コロナでもインフルエンザでもないが受診しないまま完治
- Microsoft Copilot と JavaScript のコーディングをして威力を実感する
- FF XIV Patch 7.2 公開
確定申告が完了して気が緩んで物欲が爆発した
金子一馬氏の新作ゲーム『神魔狩りのツクヨミ』正式発表、今春リリースへ。“金子氏を学習させたAIカネコ”が即興カードを創り出す、ローグライクカードゲーム - AUTOMATON
遊ぶかどうかは分からないが興味はある
FF XIV 至天の座アルカディア零式:クルーザー級
挑戦するので色々準備
Nintendo Direct: Nintendo Switch 2 - - YouTube
日本語・国内専用は ¥49,980、多言語対応版は ¥69,980
スペックから多言語対応版が妥当で日本版は非常に安い
Cyberpunk 2077 移植版の映像を見ると、どうやら PS4 以上、PS5 未満程度の性能らしい
開発者に訊きました : Nintendo Switch 2|任天堂
――― それはつまり、Switchと Switch 2 はハードウェアで互換しているわけではないということでしょうか。
佐々木 その通りです。ですので、今回は、新しい技術を使ってSwitch 2 でSwitch用のソフトを動かすということにチャレンジしてみることになりました。
堂田 ソフトエミュレーター※21のような技術を使おうとすると、Switch 2 の性能をフル回転させないといけないのですが、それだとバッテリーももたなくなってしまうので、ソフトエミュレーターとハード互換の中間のようなことをやっています。
※21 特定のハードウェアを模倣するソフトウェア。一般に、新しいシステムで古いソフトウェアを実行する際に使用されるが、対象となるハードウェアよりも高い処理能力が必要となる。
佐々木 技術的に細かな話になってしまうのですが、Switch用ソフトのデータを、Switch 2 で動くように変換する処理を、データを読み込むと同時にリアルタイムで実行しているんです。
これは JITで Switch 用のバイナリィを一旦逆アセンブルして、Switch 2 用にアセンブルを行っているという事だろうか
録画に注意! 「ガンダムジークアクス」、日テレはバラエティ番組と抱き合わせ ファンの怒りを買う - ITmedia NEWS
ジャンルが違い過ぎてリアルタイム視聴者層が一緒に観るものでもないと思うが
人間ドックで人生初胃カメラ
バリウム検査より身体の負担は小さいし、下剤を飲まなくていいのでその後も楽
今後は選べたら胃カメラにしたい
My Nintendo Store にて Nintendo Switch 2 の優先抽選販売の申し込み開始
抽選券をカートに入れたがエラーでレジに進めない
早い者勝ちではないので待ち
Switch2用パックンフラワー型カメラがドイツの通販サイトに登場、パッケージにはHORIロゴ。日本での発売にも期待 | ゲーム・エンタメ最新情報のファミ通.com
カメラとしてよりグッズとしてちょっと欲しい
頃に目が覚めたので My Nintendo Store にて Nintendo Switch 2 の抽選販売の申し込みをしたところ終了
途中エラー画面が表示されるなど不安になりもしたが (抽選販売申し込みの) 購入完了メールが届いたので多分大丈夫
PC に保存していた料理メモが見当たらない
無いものは仕方がないので憶えている範囲で改めて書き出し
大体どこかで観たり読んだりしたものを自宅用に修正しただけのものなので困りはしないがある筈の物がないのが困りもの
最近の~という場合、言う側がジェネレーションギャップを自覚していて自分の常識を共有していないのを分かっているのだから、説明しないのは言う側の説明不足
知らない側が知っている側に合わせるのは無理、知らないから
「Thunderbird」がメールやストレージを含む有料クラウドサービスを提供へ - 窓の杜
Thunderbird を使っているが継続的にお金を払うかと言うと……しかし、Thunderbird がなくなるのも困る
気付いたら Visual Studio Code が PC から消えていて焦る
状況から考えるにバージョンアップに失敗して Code.exe
が実行不可能になったらしい
拡張や設定ファイルは残っていたので再インストールで復旧
Happy Hacking Keyboard | HHKB Professional2 | PFU
持っているがキィボード側 USB port が Mini-B
入手は可能ではあるが購入時にはキィボードより USB port の規格の寿命の方が短いとは思わなかった
よもやよもや
相互関税 90日間停止を承認 トランプ大統領 中国の追加関税は125%に引き上げ | NHK | トランプ大統領
シンクタンクやブレインがいる筈だが、思い付きで出鱈目をやっているようにしか見えない
アメリカ国民が先に根を上げるのではと思うので、トランプ政権の次の手に備えつつも一旦静観が妥当だろうか
とは言え直近物を動かす必要がある物流の業務だと静観できないだろうけれど
localhost
での開発に Node.js
を採用して使い始めた
最終的な directory 構成例
├── .vscode/ │ └── launch.json ├── npm/ │ ├── node_modules/ │ ├── .env │ ├── package-lock.json │ ├── package.json │ └── server.js ├── public_html/ │ └── index.html └── .gitignore
`Node.js` の導入
- Node.js — どこでもJavaScriptを使おう から LTS 版 (で v22.14.0) をダウンロード
node-v22.14.0-x64.msi
を実行- ウィザードに従いインストールを完了させる
Node.js runtime
,npm package manager
などのオプションはそのまま
- インストールの正常終了確認
node -v
の結果 v22.14.0 が表示される事を確認npm -v
の結果 10.9.2 が表示される事を確認- 失敗したらインストールの正常終了や環境変数の設定を確認
console.log("Node.js is working!");
を内容とするtest.js
を用意node test.js
を実行して Node.js is working! の表示を確認
console.log("Node.js is working!");
PS > node -v
v22.14.0
PS > npm -v
10.9.2
PS > node test.js
Node.js is working!
`.gitignore` の編集
.gitignore
に以下の 2 行を追加node_modules/
.env
.env
は環境情報を格納するためチェックインする必要なく、ID/password などを格納する可能性があるため対象外とせねばならない
`npm` directory の初期化
npm
directory へ移動- 存在しなければ作る
npm init -y
を実行package.json
の生成を確認
- git のチェックイン対象を確認
package.json
が追加された事
express フレームワークの導入
npm
directory へ移動npm install express
を実行package-lock.json
、node_modules/
の生成を確認
- git のチェックイン対象を確認
package.json
、package-lock.json
が追加された事node_modules/
配下が含まれていない事- 失敗している場合
.gitignore
を確認
`npm` directory に `.env` ファイルを用意
PORT=3000
HOST_RELATIVE_PATH= ../public_html/
チェックイン対象に .env
が含まれていない事を確認する
`npm` directory に `express` framework を実行する js ファイルを用意
const express = require('express');
const path = require('path');
const app = express();
// 静的ファイルをホストする
const hostRelativePath = process.env.HOST_RELATIVE_PATH || '../public_html/'
const staticFolderPath = path.join(__dirname, hostRelativePath);
console.log(`Static server running on ${staticFolderPath}`);
app.use(express.static(staticFolderPath));
// サーバーを起動
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Static server running at http://localhost:${PORT}`);
});
Visual Studio Code で実行するので `launch.json` に `server.js` 実行用の構成を追加
{
"version": "0.2.0",
"configurations": [
{
"name": "server.js",
"type": "node",
"request": "launch",
"args": [
"--env-file=.env",
"server.js"
],
"skipFiles": [
"<node_internals>/**"
],
"cwd": "${workspaceFolder}\\npm"
}
]
}
こんな感じで一つ
は昼寝したし 前に寝たのに起床は
体調不良なのか、普段寝不足が過ぎるのか
code
要素に color: green; background-color: black;
の style を与えていたが pre > code
で広い面積が緑になると思った以上に目に煩かったので pre
要素の中の code
は白い文字に変更
ここら辺の見た目は今後とも変更するかも
node.js で Localhost 起動する script を改良
open module を導入して localhost 起動後に http://localhost:3000
を開くようにしたり、ファイルがない場合、DirectoryIndex に相当するファイルリストを渡して候補のファイルを探すようにしたり
node.js で使う script を修正
JavaScript にも node.js にも疎いのでほぼ Microsoft Copilot に書いてもらっている
- Copilot にやりたいことを説明してひな形を作って貰う
- 分からない所が有ったら適宜解説を依頼
- 固有の値などを設定して実行
- 動かなければ copilot にエラーコードを渡して修正依頼
- コードが動いたら一旦 git にチェックインして Copilot にレビュー依頼
Copilot にレビュー依頼して、修正したコードを更にレビュー依頼して修正、という作業を繰り返すと殆どコードを書かずにプログラムが出来ていく
上記のような作業をどこかで読んだな、と思って #100日チャレンジ 毎日連続100本アプリを作ったら人生が変わった を購入して読む
著者の大塚あみさんの方が私よりよほど大規模で大変なことをしているが LLM を活用したプログラミング作法の考え方自体は概ねあっている確信を得る
Copilot にはコードレビューして以外にも具体的にエラー処理足して、この処理をモジュール化してなど具体的に指示を出す場合もある
一方、私自身が具体的な改善案を持っていない場合このコードをいい感じにしてと人間相手だと怒られる指示を出すこともある
割といい感じになる
プログラミング学習の話
学習では量は質に勝るというか、質を問う前に量をこなす必要があると思っているが AI を使って湯水のようにサンプルコードを浴び続けるの、割と最適解かも知れない
分からない処理があればここの処理の逐次解説よろしくで説明してもらえる
一昔前のなんでもググると同じくなんでもAI に聞く
ただ、AI は間違えもするし、ハルシネーションを起こしたり、指示を無視したりもする
なので私に検品能力がないと駄目
今日の AI 頼りの node.js 勉強
作っている module がどうも使い勝手悪い
express module と連携して動くので object 指向で行こうと Copilot に指示
実装を進めると関数型へ書き直しを指示
書き直されたコードを見て、高階関数に作り直させて最終的にカリー化
人間相手なら例え部下でも最初から言えと怒られそう
一方、このレベルの提案や判断は現時点の AI はやってくれないので、人間の勉強する余地はまだ残っている
デザインパターンとかを改めて勉強し直すのも良いかもしれない
Node.js で立てたサーバーのログを見ていたら errorHandler が予期せず呼ばれているのに気付き、相対パスのミスや URL の Typo を発見に繋がる
単に localhost を建てたいだけだったが、こういうミスの検知機能を追加するのも良さそう
生涯で 3 番目くらいに苦しい便秘
30 分程度苦しんだ所で浣腸を使ったが、焦って用法を間違え効果を得られず、追加で 1 時間程度苦しむことに
薬は用量、用法を守って正しく使いましょう
その場で自分で気づける教訓は大体当たり前だけど見落としてたことなのでそれはそう
良いことと悪いことがあった
悪いこと:
にある会に問い合わせを行っていたが、回答を聞くために電話した所そもそもインシデント管理していないとの回答があった
良いこと:
問い合わせ内容は退会に関するもので、退会は順調
figure
要素をもっと活用すべきかも
The
figure
element represents some flow content, optionally with a caption, that is self-contained (like a complete sentence) and is typically referenced as a single unit from the main flow of the document.木俣訳:
figure
要素はcaption
をオプションで持ち、自己完結型 (独立した文) で本文から独立して参照される flow content を表す
単に独立した文の要素として article
や aside
もあるし pre
や blockquote
も独立した文と見做せる場合は多いだろう
解釈次第で万能 markup ができるが 4.4.12 The figure element - HTML Living Standard に用例があるので、濫用しないよう意識しつつ便利に使いたい
日本だけで約220万人という非常に多くの方に応募いただきました。ただ、これは私たちの事前の想定を大幅に上回っており、マイニンテンドーストアからにお届けできる「Nintendo Switch 2」本体の数量を大きく超えてしまっております。したがいまして大変残念なことに、明日4月24日の当選発表においては、相当数のお客様が当選しないことが想定されます。
任天堂が全力で生産体制を構築しても応募が 220 万台では致し方なし
仮に 100 万台用意していても (そんなにないと思うが) 当選率は 50% 未満で 120 万人が外れたと嘆くことになる
絶対数が多いだけにの SNS は悲喜こもごもになりそう
久しぶりに散髪
最初の確認時に長く残り過ぎていて再度切って貰って終了
二度手間で不満を覚えたが、長めに残してから確認して調整した方が安全なのでわざとだったのかも知れない
My Nintendo store の Nintendo Switch 2 の第一次抽選落選
その内手に入るだろうし焦らず気長に申し込み続けることにする