ねののお庭。

かりかりもふもふ。

【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 << "======…

2020振り返り。

多くの人が書いてるから私も書くか~という年越し60分前。 振り返りブログとか初めて。 学業ないし研究とか。 一応ACM MM Asia通ったし、まぁ最低限度はできたのかなぁ、という感じ。単一の食事RGB画像から食事(食品+食器)と食器の三次元形状を復元して、ご…

【C#】配列とかのシーケンスからn番目に小さい/大きい値を取得する。

シーケンスからn番目に小さい/大きい値を効率よく取得するにはどうすればいいのかなー。という話。 C++だとstd::nth_elementって関数が標準であって、n番目の値とか比較的簡単に効率的な実装で求めることができます。 C#...というか多くの言語で標準ライブラ…

UnityでgRPC使う時の一連の流れとか。

はい、素でgRPCのデイリービルドからUnity用のzip落としてきて、Unityに突っ込んでも動きません。 やっかいな。。。 Unity側でgRPC使えるようにするための一連の流れを説明して、動作を確かめるべくサーバ側(ASP.NET Core)も用意します。 Unity側 Unity用の…

リモートでの開発環境のあれこれ。

大学とかの計算資源は基本的にssh張っていろいろするので、ローカルで開発するのとは勝手が違います。 あと更に権限がいろいろないのでそんなに好き勝手はできません。 なのでいろいろ便利手段を書いておきます。(TAしてる授業向けですが) ssh先でサーバー立…

C#での非同期メソッドの分析。

C#

Dissecting the async methods in C# Async method internals 非同期メソッドを手動で分解する Async machinery The original method The state machine 1. “Hot path” optimization 2.Error handling How different pieces are glued together? Execution C…

Android(Oculus Quest)向けにlibrealsenseをビルドするときに引っかかったことと解決方法。

RealSenseをOculus Questに合体させるためにlibrealsenseをビルドしてたら2箇所かコケたのでメモを。 Android事情なんもわからんマン向け。 基本的にはlibrealsenseのissueに書いてあるので、書いてある通りビルドしつつ設定しておけばOKなのですが。 github…

Pythonと仮想Webカメラを使ってGoogleハングアウトとかに任意の画像を流す。

デスクトップで変換してGoogleハングアウトでMBPに流してる。 コロナことCOVID-19のせいで、ZoomやらGoogleハングアウトやらそのあたりのサービスがよく使われるようになりました。 でWebカメラなんかから画像を垂れ流すわけですが、垂れ流す画像, 自分でプ…

Rider(Mac)でgRPCのprotoファイルから生成されたC#スクリプトの補完が効かなかったりした件。

Riderのほうにもこんな感じのissueが存在していたで問題は認識されてるっぽい。2019.3になれば普通に解決するのかなぁ。(問題にぶつかったの2019.2です) C#でgRPCのため、protoファイルからC#のテンプレートを生成して参照するため、 Grpc.Toolsパッケージを…

3Dモデルの体積を求める。(C#のライブラリ/CLIアプリ付き)

最近3Dスキャンとかで3Dモデル吐き出すとかありますよね。まぁあるんです。あったんです。 でこれらのモデルの体積がほしいなーと思っても、複雑な形状のmeshの体積を求めるのは地味に難しいです。ぱっとアルゴリズム思いつく人はきっと数学に慣れ親しんでい…

ASP.NET CoreでWebSocketを使ってチャットを作ってみる。

双方向通信大事。 というわけでASP.NET CoreでWebSocketを使ったチャットのサンプル作りました。 でなんでこんなことやっているかというと、msのドキュメントに書いてあるあるやつ だと自分が送信したものに対して自分に返ってくるだけで双方向通信生かされ…

ASP.NET CoreなどのサーバーサイドC#におけるasync/awaitについて。

クライアントサイドでasync/await利用するときってだいたいメインスレッドで長々計算するとUI固まってアカンので別のスレッドでスレッド回すぜ!っていっているケースが多いと思います。 そのノリでサーバサイドのC#を書くと、疑問にぶち当たって、 別にサー…

VSCodeのSSH FS拡張がうまく動かない時にハマったこと。

最近サーバ側で作業することも多かったのですが、vimは多少使えるもののvimerではないのでしんどさがあります。そこでVSCodeの拡張であるSSH FSを使おうと思ったのですが。 ワークスペースを解決できません。 とかいうエラーが出てくるわけです。これ自分が…

Windowsから踏み台サーバ越しにsshするときのconfigの書き方の注意事項。

windows10のバージョン1700番台くらいでデフォルトでsshができるようになったのでまぁまぁ(puttyとか使わないで済むようになったので)いろいろ幸せになりました。しかし踏み台サーバ越しにsshする際にちょっと罠があったので書き記しておきます。 踏み台サー…

.NET Standardの実体について。

.NET Standard完全に理解していますか? .NET Standard,いろんな環境で使える共通のAPIという認識はみなさんしていると思います。が、内実...というか.NET Standardで作成したライブラリが、どのように.NET Core環境と.NET Framework環境で動いているのか、…

System.Reactiveの中身をほんのちょっと読んで見る。(その3)

その1(s_implは何ですか) その2(クラスとその役割) その3(動作を追ってみる) 動作を追う。 メソッドチェーン時(Subscribe前) サブスクライブが走るまでは、単にIObservableを返し、生成されたオブジェクトとしては、上流のObservableと、Func<TSource, TResult>の関数を保存す</tsource,>…

System.Reactiveの中身をほんのちょっと読んで見る。(その2)

その1(s_implは何ですか) その2(クラスとその役割) その3(動作を追ってみる) 使われているクラスなどを見ていく。 前回具象クラスがなんであるかわかったので、一番最初の疑問であった public static partial class Observable { //〜略〜 public static IOb…

System.Reactiveの中身をほんのちょっと読んで見る。(その1)

その1(s_implは何ですか) その2(クラスとその役割) その3(動作を追ってみる) Rxの中身をほんのちょっと読んで見る。 前々回にふと気になったのでRxのチェーンがどういう感じなのかなと思ってうんたららみたいな記事を書いたのですが、今度はちゃんとSystem.R…

EqualityComparer<T>.Defaultの実装を追ってみる。

気になりません? 純粋にどうやって生成してるのか疑問に思ったので気が済むまで追ってみる。 完全に備忘録でありいろいろ雑。 using System.Runtime.CompilerServices; namespace System.Collections.Generic { [TypeForwardedFrom("mscorlib, Version=4.0.0…

Reactive Extensionsのメソッドチェーンの後ろ側が気になったので見ていく。

Rx難しいね。 Rx、使う分にはぺちぺちメソッドチェーンで幸せいっぱいなのですが、IObserverとIObservableがどういうふうに連結されていっているのかイマイチ想像がつかなかったので、オペレータ自作という形で調べてみたり動かしてみたりデバッグしてみたり…

.NET Coreにおけるローカルなnugetパッケージの使い方とその参照の持ち方。

.NET Core におけるローカルでのnugetパッケージの使い方。 コマンドの解説。 本題(参照とかがどうなってるのか) まとめ 追記(2021/01/14) .NET Core におけるローカルでのnugetパッケージの使い方。 パッケージ、作っておくと何かと楽ですよね。dllの直接参…

2つの平面(領域)間の対応をとる方法。(C#で射影変換)

お品書き 2平面間の対応 射影変換ってなんぞ ライブラリ作った。(C# / .NET Standard2.0) 可視化してみる まとめ 2平面間の対応 はい。よくあると思います。 Canvas座標値と、そこの表示している地図画像の実世界上の値の対応(画素でnピクセルのところは実世…

OpenCV4で追加されたG-APIについて。

お品書き OpenCV4新機能、変更点ざっくりまとめ G-APIとは とりあえずコードを見る。 動かす。 感想 OpenCV4.0.0リリース! めでたい。 新機能とか変更点 OpenCV4.0になって、いろいろ変更とか追加があったので詳細は公式 を読むのが一番詳しいですが本流の…

HoloLensのアプリ開発でIL2CPP使っていろいろハマった話。

お品書き< インターン先で。 IL2CPPはつらいよ。(ハマったポイントとか) 意外と知らない機能。 IL2CPP関係なくハマった点。 注意 この記事で書かれているものはUnity2017.4.8,visual studio2017,MRTK2017.4.1.0で起きた現象を元に書かれています。 インター…

blenderとgimpの拡張「External Paint Autorefresh」が動かない問題。

そう、テクスチャ書くときにblenderとgimp(photoshop)を連携させてのお絵描きする拡張「External Paint Autorefresh」というものがありますが、なぜかGIMP側がうまく動かない。 初期のロード画面で読み込めていることは確認できるのですが、Filter->Blender-…

CMakeで外部ライブラリとリンクさせたりするのどうすんのという話。

どうも、今までVC++書いてきていたので、ライブラリとかをビルドするときにCMakeとか使っていたものの、Visual StudioのおかげでmakefileとかCMakeListsなどは書かないで過ごしてきた人です。 しかし最近Linux(Ubuntu)上でC/C++書きたくなったのでCMake書く…