ねののお庭。

かりかりもふもふ。

【C#】Roslyn とその活用法。

というタイトルで.NETラボで喋ってきました。 スライドはこちら。 内容的には Roslynはいいぞ! Roslynを使うとあんなことやこんな事ができるぞ! というのを、OSSという具体例と共に紹介 みたいな具合です。よかったらどうぞ! 以下、スライド中で紹介して…

【C#】Generics と null 比較と boxing。

Generic Method 内部で null 比較を行ったら、はたして boxing するんでしょうか? たとえば以下みたいな関数があったとします。 // 参照型の null と、Nullable<T> の null の数が知りたい。 public static int CountNull<T1, T2, T3>(T1? value1, T2? value2, T3? value3)</t1,></t>…

【Python】trimeshでmeshから色付きの点(群)をサンプリングできるようになりました。

動機 自分の研究では、しばしば3d meshをコードからこねくり回していました。操作対象は深層学習の学習用データだったので、数が多く、とてもGUIでチマチマやれる量ではなかったのです。 で、こんな需要が私にはありました。 「テクスチャ付きの3d meshから…

【C#】 C#の型定義からTypeScriptの型定義を生成するTapperというライブラリ/CLI Toolをリリースしました。

背景 注意) サーバサイドはC#で書く前提です。 こんなご時世なのでサーバとクライアントを通信させない、なんて事は滅多にないでしょう。 その際皆さんは通信の中身というかコンテンツ、要するにWEB APIの場合はhttpのbodyですが、をどのような形で定義/シリ…

【C#】マルチスレッド関連操作の詳説。

この記事は Qiita C# Advent Calendar 2021 23日目の記事です。 マルチスレッドプログラミングにおける問題。 原子性 コンパイラによる命令の並び替え メモリバリアについて acquire / release acquire / releaseの取り扱いづらさ sequential consistency C#…

【C#】ConsoleアプリがMain関数の終了と同時に終了しないようにする。

タイトルが分かりずらいですね、はい。 コンソールアプリ、Main関数が終了すると同時にアプリは終了します。 それはそう、当たり前。 なんですが裏のスレッドでなんか動いてるからアプリは落ちてほしくない、けどMainは終わっとるし別にawaitするべきものも…

【C#】ASP.NET CoreでIdentityやEFを使わずに、googleなどの外部プロバイダによるOAuthを利用する方法。

ASP.NET Coreにおける認証。 googleを外部プロバイダとしてOAuthを利用する。 準備 サービスの設定 AddAuthentication() AddCookie() / AddGoogle() http pipeline Challenge / Sign in / Sign out Authorize 全体の流れ まとめ。 References なんでこんなの…

Open3Dでlookatするためのextrinsic matrixの作り方、及びextrinsic matrix (CG的にはview matrix)の解釈。

Open3dでは標準で任意の視点からのlookatが出来ない。 Open3dでは標準で任意の視点からのlookatが出来ません。ViewControlにset_lookatという関数生えてるんですが、残念ながらGUIでマウスぐりぐりしたときにlookatする点を設定できるだけで、特定の座標から…

【C#】Source Generatorを使ったSignalR Clinetに強く型付けするためのライブラリをリリースしました、という話。

タイトルの通りなんですが、C# 9で導入された新機能であるSource Generatorを使った、SignalR Clinetに強く型付けするためのライブラリをリリースしました。 github.com SignalRってなんぞ、っていうと、リアルタイム通信用のライブラリ。Socket.IOと似たよ…

【CV】深層学習ベースの3D Reconstruction / Completionの論文紹介。

深層学習ベースの3D Reconstruction / Completionの手法およびデータセットの紹介スライド。 ラボ内向けに作ったんですが、結構気合入れて作ったのでパブリックにしておきます。 紹介してる論文たちは以下の通り。 データセット NYU (ECCV 2012) ShapeNet (arxi…

【VSCode】踏み台サーバ越しのリモートサーバ内で動いているDockerコンテナにVSCodeをアタッチする。

欲求としては以下みたいな感じ。 自分は今まではただ単にVSCodeのRemote SSH使ってました。Remote SSHは~/.ssh/configから設定読み込んで上の図の作業環境まで一発で繋いでくれるので楽です。 marketplace.visualstudio.com 今回は繋ぎたい対象がコンテナな…

【工作】画面共有した際にニコニコみたいにコメント流すアプリを作ってみた。

画面共有した際にニコニコみたいにコメント流すアプリケーション作ってみました。 アプリケーション名はReaction is All You Need. を略してRaynです。 画面共有している人はクライアントアプリのダウンロードが必須ですが、視聴者側はブラウザで完結します…

Windowsでputtyを使わずにX11 Forwardingをする。

リモートサーバで3Dモデルの可視化~やらなんやらしたのを手元のwindowsマシンでも確認したい。 3Dモデル単体とかならThree.jsとか叩いてブラウザで見たりしてもいいのだけど(実際昔はそうした)、描画したいものが複雑だったり、OSSに乗っかってしまいたかっ…

【C#】DapperでGuidをBINARY(16)に対応させる。

C#のGuidは16バイトです。なので個人的にはDBにも16バイトのまま入ってほしいところ。 なのでBINARY(16)とかでDBのテーブルを作るわけです。 が、DapperはデフォルトでGuidを文字列に変換するため、Guidに対応するカラムの型をBINARY(16)で作ったテーブルと…

【C#】int[]とかfloat[]をbyte[]にcastしたい(もしくはその逆)。

C++だとこんな感じで簡単にint配列をbyte(char)配列として取り扱うことができます。 int* intArray = new int[2]; intArray[0] = -1; //32ビット全部1が立つ intArray[1] = 2; for(int i = 0; i < 2; i++) { cout << intArray[i] << endl; } cout << "======…