Microsoft アカウントの生年月日設定

久々にプライベートのアカウントで teams にアクセスしようとしたら、 未成年だから使えない、というような内容が表示された。 「どういうことっちゃ?」と思い、 ブラウザでログインしてアカウント設定を見てみると、 生年月日が 2016 年になっていた。なお誕生日は本来の日付だった。 2016 年というと、たぶん win7 から win10 へのアップグレードをしたタイミングだと思われる。 そして、そのアップグレードをするタイミングで windows のライセンスを登録するため

Windows のマイクの音が小さい(というか無音)

普段ウェブ会議には使わない作業用 PC でウェブ会議をしようと思い、 会議の少し前に外付けのマイクとカメラのセットアップを開始。 しかし、カメラは設定できたものの、マイクは音が録れない状況に。 そんな訳で、今回はマイクの音が小さい(というか無音)の場合の 対処方法について。 結論 先に結論を書くと、以下の手順で問題解決できた。 「スタートメニュー」 → 「設定」→ 「プライバシー」→ 「マイク」 「アプリがマイクにアクセスでき

久々のネタ更新(さらに久々の lctags 更新)

github に上げている個人的なツールの中で、 スターの付いている数少ないプロジェクトの1つである lctags。 これを久し振りに更新した。 更新内容は以下の通り。 docker による環境構築対応 C++ の auto 型推論対応 libclang15 対応 暫くノーメンテだった lctags を、このタイミングで更新したのは、 イマドキの C++ に使うには色々と不備があった為。 仕事で新しいプロジェクトに入り、そこで C++ をメインで利用していたので、 ソースを読む補助ツールとして lctags を導入しよう

monaco editor に自作言語拡張(インデント、補完、syntax エラー)を登録する

次の URL で提供している LuneScript playground 環境のエディタを、 シンプルな textarea からモダンな monaco editor に変更しました。 <https://ifritjp.github.io/LuneScript-webFront/lnsc_web_frontend/for_wasm/> 今回のネタは、monaco editor に独自言語の次の機能を追加する方法についてです。 インデント調整 コード補完 syntax エラー表示 monaco editor monaco editor は、 vscode のエディタ・コアです。 <https://microsoft.github.io/monaco-editor/> web 上で動作する高機能エディタには、 monaco editor とは別に Ace もありますが、 今回は monaco editor の方を採用しました。 その理由は、 近い将来的に vscode 用の LuneScript extension を作成するときに、 monaco editor を知っていた方

LuneScript のセルフホストビルド時間と GOMAXPROCS

LuneScript のセルフホストビルド時間が1秒を切れない問題。 GOMAXPROCS を設定すれば、もしかしたら簡単に短縮できるのではないか? と思って GOMAXPROCS を 1 〜 11 まで変えてみた。 その結果が次の図。 この図を見ると、GOMAXPROCS を上げるごとに、僅かにビルド時間(real time)が下っている。 一方で、 real time の下げ幅よりも、 並列処理の合計時間(user time)の上げ幅の方が大きくなってしまっている。 今は 6 コアの Ryzen 3600 使っていて、 次の候

LuneScript のコレクション側を Go の generics を利用するように変更

<../../2023/2023-02-11-go-generics2/> 前回の記事で書いた通り、 go の generics のパフォーマンスが向上したため、 LuneScript の v1.6.0 で go の generics を利用するように対応しました。 なお、現状は collection 型の対応に限定しています。 LuneScript で、新しくクラスで定義した generics は、従来通りの対応です。 詳しくは以下を参照。 <https://ifritjp.github.io/documents/lunescript/generics-go/> なお、この対応前と対応後では、 LuneScript のパフォーマンスはほとんど誤差レベルの差しかありませんでした。。。 なので、現状は積極的に使っていくモノではないです。 まぁ、でも今回の対応で既存バ

Golang の generics パフォーマンスがもの凄く改善されていた

以前 Golang 1.19.2 の generics のパフォーマンスを計測したところ、 generics を使ったケースと、自前で any からキャストするケースを比較すると、 なぜか自前で any からキャストする方が速くなるという謎の現象が発生していました。 前回の結果はここ。 ../../2022/2022-10-15-go-generics/ go のバージョンが 1.20 に上ったので、 再度同じテストをして確認してみます。 確認方法 テストするコードは前回と全く同じものを使います。 このコードを go の 1.19.2 と 1.20 でビルドし、実行結果を比較します。 実行結果 実行結

LuneScript のタプルの go 実装

LuneScript の v1.5.3 からタプルを対応している。 このタプルの go 実装についてパフォーマンスを調べた内容を載せておく。 LuneScript のタプルの go 変換初期実装 ここでは、LuneScript のタプルを go に変換した際に、 どのような実装になっているかを説明する。 LuneScript で次のようなタプル (int と str のペア) を定義した場合、 (int,str) go では次の型として扱う。 []any つまり、タプルの各要素の型情報は一旦 any に丸め、 タプルから値を取得する際に型変換を行なう。 例えば次の LuneScript

Raspberry pi に接続していた USB HDD が調子悪いので色々と対応してみた(未解決)

Raspberry pi でサーバ運用を始めて約 2 年。 どうにも最近 Raspberry pi に接続している USB HDD の調子がイマイチだったので、 その対応を行なった。 ただし、未解決。。。 ここでは、その対応の記録を残す。 症状と作業内容 不調の症状は以下。 「HDD のファイルを Read すると、不定期に iowait が増大し、最悪数秒程度止まる。」 ちなみに usb hdd は、 バスパワーではなく AC アダプタ付きの USB HDDケースを使ったもの。 なので「電流が足らない」ということではないはず。 念の

actix-web (Rust の web フレームワーク)

Web サーバを作成するにあたり actix-web を使ってみたので、 初心者の目線から見た感想など。 actix-web 世の中には言語ごとに様々な web フレームワークがありますが、 actix-web は Rust の web フレームワークです。 なんで actix-web を選んだのかと言えば、「Rust を使いたかった」から。 Rust は数年前に話題になったときに、どんなもんなんだろう?と、 チュートリアルと簡単なツールを作っただけで、それ以降触っていなかったので、 そろそろちゃんと触っておこう、と思ったのが