管理人

ブラウザ拡張

Create React Appを使ったChrome拡張開発

最近趣味でChrome拡張を開発してるのですが、JQueryで大きなhtmlをDOMに挿入するのが辛くなってきました。Reactを使えばそのへん上手く切り分けられて幸せになれるんじゃない?って思ったので、ReactでChrome拡張の作成を...
Web開発

Create React Appでinline scriptを使用しないようにビルドする

やりたいこと Create React Appで開発したアプリを何も考えずビルドすると、JavaScriptのコードはbuild/index.htmlにインラインスクリプトとして埋め込まれます。 これをbuild/index.htmlから外...
ブラウザ拡張

【Chrome拡張】SPAやSSRのWebページでページ遷移を検知する

GitHub上で動作するChrome拡張を作成したかったのですが、目的のページへ遷移しても動作しなくてはまったので対応メモです。 やりたいこと GitHub上の特定のページへ遷移すると発火するChrome拡張を作りたいです。 現象 mani...
linux

【Linux】mvとcp+rmの違い

ファイルをmvするのと、cpしてから元ファイルをrmで消すのは一見して同じ挙動のように見えます。自分もそう思っていたのですが、微妙に挙動が異なることに気づいたので、違いをまとめます。 結論 先に結論から書いておくと、mvとcp+rmの違いは...
linux

zcatで未圧縮のファイルの中身も表示する

たまにgzファイルと未圧縮のテキストファイルをまとめて表示したい時があるのですが、毎回オプションを忘れるのでメモです。 やりたいこと 以下のようにgzファイルとテキストファイルをまとめて表示したいです。 gzファイルを表示したいときはzca...
プログラミング

Xcode付属のclangだとC++のfilesystemは動かなかった話

以前Windowsで書いたC++のコードをMacで動かそうとしたら「filesystemなんてないよ!!」ってclangコンパイラに怒られてちょっと調査したので、その調査メモです。 先に結論を書いておくと、Xcode付属のclangだとどう...
開発環境

homebrewでgccをインストールする

Xcode付属のclangがいまいち使えなかったので、homebrewでgccをインストールすることにしました。その導入手順のメモです。 gccのインストール はい、brewコマンド一発でインストール自体は完了します。 $ brew ins...
linux

権限があるはずなのにfindコマンドでPermission deniedが表示される場合の対処法

findコマンドを使ったときに、対象ディレクトリの権限があるはずなのにPermission deniedと表示されて原因究明に時間がかかったため原因と対応メモです。 現象 以下のように、findコマンドを叩くとfind: Failed to...
画像処理

ExifからPixel単位の焦点距離を計算する

3次元復元系の論文を読んでいると、よく「初期値にはExifから取得した焦点距離を使用する」的なことが書いてあります。しかし、カメラ内部パラメータとかの焦点距離はピクセル単位なのに、Exifに記録されてる焦点距離はmm単位です。 このExif...
プログラミング

yaml-cpp 0.6.2をVisual Studio 2017以降でビルドする

ちょっとyaml形式でログを吐きたくてyaml-cppを使ってみようと思ったものの、ビルドではまったので対応メモです。 まずは普通にビルド yaml-cppはCMakeLists.txtを持っているため、CMakeを使えば簡単にVisual...
Windows

【Windows】Portを占有しているプロセスを見つけて強制終了する

最近vue.js使ったWebサービス開発の勉強をしてたのですが、ある時npm run serveを叩いてもlocalhostに繋がらなくなったので、その対応メモです。 ポートを占有しているプロセスを見つける まずは、ポートを占有しているプロ...
Web開発

CSSのgrid layoutを使って画面を縦に分割する

自分は基本的にはバックエンドエンジニアなんですが、GWだし時間あるしフロントエンドも触ってみようかなと思って触ってみました。 CSSとかほぼ初めて触ったので、初心者が躓くところすべてに躓いてる感あるので、もう躓かないように備忘録がてら記事に...
画像処理

【OpenCV】decomposeProjectionMatrixの使い方~完全版~

以前こんな記事を書きましたが、OpenCVの透視投影変換行列を分解するdecomposeProjectionMatrixには他にもいろいろと罠があったので完全版の使い方をまとめていきます。 まずは単純に分解 され、まずは単純にdecompo...
画像処理

透視投影変換行列は定数倍しても問題なかった話

考えてみれば当たり前だったのですが、透視投影変換行列はスケール不定性的なものを持っていることに気づいたので、まとめてみます。 透視投影変換の定数倍 透視投影変換行列とは、世界座標点を画像座標点に投影する行列のことでした。 この行列を\(n\...
画像処理

【OpenCV】decomposeProjectionMatrixを使った外部パラメータの導出

透視投影変換行列を内部パラメータと外部パラメータに分解するため、OpenCVのdecomposeProjectionMatrixを使用したのですが、ちょっと使い方にはまったので使い方メモです。 公式ドキュメントを見てみる decompose...
画像処理

2次元点-3次元点の対応付けからカメラパラメータを導出する

SfMやSLAMでは、2次元点と3次元点の対応付けから、カメラパラメータ(透視投影変換行列)を求める必要があります。今回は、DLT (Direct Linear Transformation)を使った透視投影変換行列の導出法について書いてみ...
ブラウザ拡張

【Chrome拡張開発】ポップアップに表示したリンクが開けない場合の対処

前回、Chrome拡張機能のポップアップの表示について書きました。このポップアップにhrefでリンクを追加したのですが、リンクをうまく開けなかったので、その対応メモです。 やりたいこと ポップアップにリンクを追加して、リンククリック時に新し...
ブラウザ拡張

【Chrome拡張開発】拡張機能アイコンのクリック時にポップアップを表示する

最近Chrome拡張を開発してみてるので、その開発メモです。基本的にはGoogleの公式リファレンスを参考にしてます。 やりたいこと こんな感じで、Chromeのツールバーにある拡張機能のアイコンをクリックしたら、設定画面的なものを表示させ...
プログラミング

Pythonのopenで改行コードが変わった話 in Windows

Pythonでちょっとしたスクリプトを書いていたのですが、どうにも入力ファイルと出力ファイルの改行コードが変わってしまってちょっとはまったので、対応メモです。 環境はWindows 10 + Python3.5になります。 そもそも改行コー...
プログラミング

【JQuery】Uncaught TypeError: xxx.find is not a function at yyyy.jsの原因と解決法

フロントエンド開発に慣れてなくて、JQueryの初歩的な部分ではまったのでメモです。 エラー エラーを吐いたコードはこれです。 let elements = $('.g'); for(let i = 0; i < elements.leng...