管理人

プログラミング

Google TestのASSERT_EQとEXPECT_EQの違い

普段C++のユニットテストはGoogle Testを使って書くことが多いのですが、ちょっと時間が空くと諸々仕様忘れて同じこと何回も調べなおしてる気がするので、自分がちょいちょいハマる仕様を順次残していこうかと思います。ASSERT_*とEX...
linux

lsyncd 2.1で特定のファイルのみを同期させる

lsyncdで特定のファイルだけを同期したかったのですが、lsyncdはバージョン2.1未満と2.1以上で使い方が違ってはまったのでその対応メモです。lsyncdの導入方法はこちら。バージョン2.1ではrsyncOpsが廃止されたlsync...
linux

Ubuntuにlsyncdを導入する

ディレクトリのリアルタイム同期をしたかったのでUbuntu 18.04 LTSにlsyncdを導入しました。その時の手順メモです。lsyncdのインストールまずはlsyncdをインストールします。これはaptコマンド一発で入ります。$ su...
DB

【MySQL】新規DBを作成してデータを登録するまで

普段MySQLをあまり弄らないので、たまに弄ろうとすると毎回各種コマンド忘れて無駄に時間取られるので、新規DBを作成してそこにデータを挿入するまでの手順をメモしておきます。MySQLへ接続何はともあれまずはMySQLに接続します。これでro...
Web開発

【Golang】Echo v4をインストールする

Go言語のWebフレームワーク、Echoを使ってみようと思ったのですが、導入に少しはまってしまったので対応メモです。なお環境はUbuntu 18.04 LTS (WLS)Golang 1.13.4となっています。問題Echoをインストールし...
linux

Linuxのデフォルトシェルを確認する

久しぶりにログインしたLinuxサーバで、デフォルトで使用しているシェル何だっけ?となった上に確認方法を忘れていたのでメモです。確認方法これで確認できます。$ echo $SHELL/bin/bash参考:デフォルトシェルの変更方法デフォル...
linux

【シェルスクリプト】$’\r’: command not foundと表示される原因と対処法

定期的に同じトラップにはまるので、いい加減忘れないよう備忘録です。現象こんな感じで絶対に動きそうなシェルスクリプトがあります。#!/bin/bashecho "hogehoge"でも実際に実行してみると以下のようなよくわからないエラーが表示...
開発環境

vimでファイル末尾の改行コードを保存しないようにする

vimで保存すると末尾に改行コードが入るLinuxのvimだと、デフォルトでファイル末尾に改行コードが挿入されるようになってます。なので、catで見たら1行しかないように見えるようなファイルでも、$ cat hoge.txt hogehog...
linux

rsyncのappendオプションのせいでファイルが壊れたり転送されない件について

データのバックアップにrsyncを使ってみたのですが、appendオプションをつけたせいでファイルが壊れたり転送されなかったりしてはまったので、もうはまらないように備忘録を残しておきます。現象rsyncでファイルの同期をとろうと思ったのです...
ブラウザ拡張

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拡張を作りたいです。現象manifest...
linux

【Linux】mvとcp+rmの違い

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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