2025-01-01から1年間の記事一覧

【C#】シンプルなLRU(LeastRecentlyUsed)キャッシュを実装する

Wiki を眺めていたらキャッシュアルゴリズムの一つでLRU(Least Recently Used)というものを見つけたので C# で実装してみたいと思います。 LRUの実装方法ですが、データの時間的局所性という概念(最近アクセスされたデータは近いうちにまた使われやすいが…

【C#】Taskにタイムアウトを追加する

C# の非同期タスクにタイムアウトを追加して処理をキャンセルする方法の紹介です。 .NET の標準ライブラリのネットワーク呼び出し系の API は呼び出しにタイムアウトがついてることが多いですが、一般の API だとタイムアウトが通常無いですが、上位から Can…

SuperGrokでDeepsearchが選択できない場合の対処法

この記事は 2025/08/02 時点の情報です。時間で変化が非常に大きい話題のため、しばらく経つと内容が役に立たくなっている可能性が非常に高いのでご注意ください。 ↓ 2025/08/14 追記: Grok側の仕様が変更されこの記事の内容ではなくなりましたのでご了承く…

【C#】ラムダのローカル変数のキャプチャーを回避する

string.Create の実装を見て気が付いた内容です。 ラムダの式の変数キャプチャーを回避して実行時に生成されるデリゲートでヒープのメモリ確保を削減できるという内容になります。 ラムダ式の変数キャプチャーとは ラムダ式内からローカル変数やフィールドを…

【C#】R3のReactivePropertyのスニペット

R3 という Reactive Extensions(Rx) のモダンな実装が登場しました。Unity 向けの専用機能としてではなく、通常の .NET 開発環境でも利用可能のため、R3 を使った Observable なメッセージングの仕組みを環境を選ぶことなく利用できるようになりました。 利…

【C#/.NET8版】文字列の先頭だけを大文字 or 小文字に変換する

ものすごい昔に「【C#】文字列の先頭だけを大文字 or 小文字に変換する」という記事を書きましたが、あれからかなり時間が経って(前に記事を書いたのは今から5年前).NETに Span<T> や string.Create という機能が追加されよりパフォーマンス良く実装できるよ</t>…

【C#】ファイル名にサフィックスを追加する

最近同じ処理を同じ実装を何度も書いて面倒だったので実装をの事したいと思います。 ファイルで拡張子とファイル名の間にサフィックスを追加する処理を何度も何度も書いてる気がするのでいい加減記事にしようと思ったので書いた内容です。 あと、フォルダの…

【C#】System.Threading.Channels<T>の使い方

System.Threading.Channels の使い方を紹介したいと思います。 Channels は一定量のデータを格納するコンテナとして使用でき、入れた内容は取り出すまで保存されます。Channels は非同期操作に対応している FIFO(キュー)構造でスレッドセーフを保証しつつ…

Unity6でエディター編集中のシーン開始を高速化する

Unituでエディター上で作業しているシーンの開始(再生)の高速化の手段として「Enter Play Mode Settings」「Enter Play Mode Options」という設定項目がUnity2019.3頃から追加されています。これをONすると開始が爆速になると話題になりました。この機能で…

ASP.NET Core 9.0をWindowsサービス化する

タイトルの通り、ASP.NET Core 9.0 の Kestrel を Windows サービス化してみようと思います。 以前「ASP.NET Core 2.0をWindowsサービス化する」という記事を書きましたがあれから状況が大きく変わっているため現時点の最新環境でどのように実現するのか紹介…

QTTabBarの個人的な設定

フォルダの余白をダブルクリックすると親フォルダーに移動できる機能が使いたくて使用していますが、標準とは少し異なる設定をしているためPC引っ越し時に毎回設定が分からなくなるため私的なメモになります。 基本的に標準のエクスプローラーにタブを追加と…

【Unity】エディターフォントが変更できなくなった件

2025年5月現在、Unity6のエディターフォントの変更ができなくなってしまっていたため状況のメモです。 2019年11月: 以下のフォント変更アセットを作成する https://takap-tech.com/entry/2019/11/30/231258 ↓↓↓ 2021年ころ: 特殊なファイルを変更することで…

【C#】バイナリにローカルパスを含めない設定

C#をビルドしてEXEやDLLを生成するとバイナリの中にビルドしたときのパスが入っていたりするのを除去する方法です。 特に設定しない状態でC#をビルドしたバイナリを一般公開してしまうと、ユーザーフォルダ内で開発していてパスに個人名に関係する名称が含ま…

【C#】あるフォルダ内のファイルを一つにまとめるツール

あるディレクトリ以下の特定のファイルを一つにまとめるツールを作成しました。 ローカルにあるソースコードをGeminiのような大きいトークン数を扱えるAIにファイルで渡して内容をレビューや改善するために、フォルダ内の特定のファイルを全て1つのファイル…