ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

postgresql の where 句でエラーが出た

以下のSQLを実行したところエラーになりました。 select {{id}} from {{table}} where {{id}}=123エラー ERROR: operator does not exist: character varying = integer LINE 1: ...ect {{id}} from {{table}} where {{id}}=123; HINT: No operator matches …

飼い猫と病院

先日飼い猫が風邪をひいたため病院に行ってきました。後ろ向き 振り向き

ただねこがくつろいでいる

ただただねこがのんびりしている様子を動画にしてみました。 www.youtube.com

暖かくなってきました

外を散歩すると暖かくなってきていることが実感できます。 飼い猫の様子 www.youtube.com

Docker の multi stage build を使って crystal のアプリ環境を構築してみる

crystal と node を使ったアプリの開発環境を準備しようとしたところ依存ライブラリが複雑で準備に時間がかかってしまいました。 そんな時、Docker multi stage build という方法が解決策になったので、ここにメモしたいと思います。 multi stage build とは…

squash merge とは

squash merge がよくわかってなかったので調べてみました。 squash merge とは スカッシュマージ(圧縮マージ)ということで、git merge コマンドを実行するときに、--squash オプションを指定すると、ブランチ先でのすべてのコミットを1つにまとめて、mast…

docker のイメージがうまく削除できない時は[-f] オプションを加えてみる

以下のコマンドで docker のイメージを削除しようとしたら失敗してしてしまいました。 $ docker rmi `docker images -q` Error response from daemon: conflict: unable to delete 84c277656e40 (must be forced) - image is referenced in multiple reposit…

Makefile 依存関係のある場合の書き方について

Makefile の依存関係を処理する部分について調べたことをここにメモします。 (そういえば24時くらいに地震ですごく揺れた...) 依存ターゲットについて - 自動化のためのGNU Make入門講座 - Makefileの基本:ルール依存ターゲットとは,そのターゲットを作…

Docker コンテナ(docker image alpine)内に一般ユーザーを作成して sudo の設定をする

Docker コンテナ内で一般ユーザで処理を行わせようとすると、権限の問題でうまくいかないことがありました。その時は、仕方がないので sudo の設定を入れて回避しました。 後々別方法でことが足りたのですが、ここにその時の設定方法をメモしておきます。処…

いろいろ物体検知してみる

いろいろな動画を使って物体検出をしてみました。 猫とおもちゃ www.youtube.com 飛行機① 飛行機は、対象が小さいと鳥や凧と間違わるようです。 www.youtube.com 飛行機② 飛行機は、対象が小さいと鳥や凧と間違わるようです。 www.youtube.com ねこ食事 猫が…

docker でローカルホストのネットワークにマッピングなしでアクセスする方法

docker を使っていたら、docker とローカルにある DB を通信させたくなったので方法を調べてみました。以下のサイトを参考にすることで解決しました。 inocop.hatenablog.com”network_mode: host” とすることで、ホストのネットワークに対してポート番号を e…

うちのネコを題材に絵画風の動画を作成してみる

fast-style-transfer を使ってうちのネコを題材に絵画風の動画を作成してみました。 www.youtube.com www.youtube.com www.youtube.com www.youtube.com www.youtube.com

うちの動物たちの動画を絵画風に変換してみる

うちにいる動物たちの動画を絵画風に変換してみました。 ハムスター ねこ www.youtube.com

機械学習の勉強ということでうちのネコをキモくしてみた

なんとなく暇だったので、機械学習の勉強というお題目でうちのネコの写真を変換して遊んでみました。 a1026302.hatenablog.com うちのねこ 階段まえで座っているねこ 座布団の上で寝ているねこ 窓を眺めるねこ 階段にいるねこ ローソファーで寝るねこ 廊下で…

うちのネコを検出してみる②

前回に引き続き、Google Colab で「YOLO v5」を使って物体検出で遊んでみました。 (おまけでハムスターも...) 今回は動画編です。a1026302.hatenablog.com階段を降りているところの動画ですが、以下のコマンドで検出処理を実行させます。 !python detect.py …

うちのネコを検出してみる①

今回はうちのネコの写真を使って物体検出をしてみました。 方法は、Google Colab で「YOLO v5」を使用すといった感じです。 Google Colab Google Colab は以下のサイトから使用します。 colab.research.google.com YOLO v5 を Google Colab にインストール g…

【rails / crystal】 例外処理の書き方(ZeroDivisionError)

プログラム内である数を0で割る処理をしてしまった場合は、ZeroDivisionError という例外が発生して次の処理に移ることができなくなります。その場合、例外処理を入れてみます。 begin hoge = 10 / 0 rescue p "0で割れません" end ただこれだと、好みにもよ…

npm does not support Node.js v10.19.0

以下のエラーが出て、npm が使えなくなり困ったのでその時の回避方法をここにメモします。 $ npm -v npm does not support Node.js v10.19.0 You should probably upgrade to a newer version of node as we can't make any promises that npm will work wit…

AWS CloudWatch について

AWS CloudWatch について理解を深めようと思い調べたことをまとめてみました。 CloudWatch とは CloudWatch は、AWS で提供されているモニタリングサービスを指します。 アプリケーションの監視(環境内における異常動作の検知、アラームの設定)や、リソース…

マネージドサービスとは

最近マネージドサービスという言葉を耳にするのですが、よくわかってないため自分なりに調べてみました。 マネージドサービス マネージドサービスは、サーバーの運用管理・保守の一部をアウトソーシングできるサービスのことを指すようです。 一般的にシステ…

PyDrive をアップグレードしたら Google ドライブにアップロードする処理が失敗するようになって困った

PyDrive を使った古いプログラムを改修してライブラリをアップグレードしたら、 Google ドライブにアップロードする処理が失敗するようになって困ったためここに回避方法をメモします。 エラー httplib2 で RedirectMissingLocation という例外が発生してい…

ssh ポートフォワーディングについて

作業端末から別ネットワークのサーバに接続して開発を行う場合に ssh の接続はできるけれど、 http サーバのアクセスや DB 接続などができないケースがありました。 そこで ssh のポートフォワーディングを使って 他のポートの通信を行なったので、その時の…

python : yield の動きを調べてみる

yield の動きがピンとこないので、動作を調べてみました。 return と yield の違いについて return と yeild を比較してみます。 return 関数の処理の終了 値を返す yeild 関数の処理を 一旦停止 再度実行の場合 (yeild の次行から) 値を返す プログラム yei…

python で pep8 の E501 とは何か調べてみる

python で開発を行っていると、たまにプルリクエストのコメントで E501 の指摘を目にします。 そこで今回は、pep8 の E501 についてメモしようと思います。python には pep8 というコーディング規約があります。 www.python.orgE501 は「E501 line too long…

python - うちのねこの画像をリサイズ

うちのネコの写真を OpenCV でリサイズしてみました。 import cv2 from matplotlib import * from pylab import * fname = "cat.jpg" img = cv2.imread(fname) imshow(img) リサイズ dst = cv2.resize(img, dsize=None, fx=0.1, fy=0.1) imshow(dst)

redis に保存されている値を確認する方法

redis に保存した内容を確認したいときのメモになります。コマンドの一覧は以下のとおりです。 コマンド 処理内容 keys * redis に登録されているキーの一覧を表示 type [key] value の種類を取得 get [key] type が string の場合の値を確認するコマンド lr…

シェルスクリプト - ”:”(コロン)の使い方

:(コロン)は1文字のコマンドのようです。 実行すると終了ステータス 0 (true)を返します。調べてみたら以下のような使い方ができるようです。 例 処理内容 ${parameter:-other} $parameter が未定義か空の場合、other を展開 ${parameter:=other} $parameter…

シェルスクリプトの内でスクリプトを格納しているディレクトリのパスを取得する方法

シェルスクリプトなどで、「実行しているスクリプトが設置されているディレクトリ」のパスを取得したいというケースがあります。 そんなときは、次のようにすると欲しい情報が取得できます。 スクリプト スクリプトの内容 BASH_SOURCE=sample.sh SCRIPTDIR=$…

リモートに push しちゃったコミットのコメントを修正する方法

git の作業でコミット時のコメントの内容をリモートに push した後に修正したくなることが度々あります。そんな時のメモです。 $ git commit --amendリモートに push 改変した結果をリモートにpushします。 ローカルとリモートの歴史の差分が生じているため…

stdbuf コマンドでログをモニタリング

"tail -f" とかでログの書き込みをモニタリングしていると、grep や sed などを使うことがありますが、このようなコマンドをパイプでつなげてフィルタリングするとログファイルがどんどん追記されてもリアルタイムに結果が表示されなくなります。そんな時は…