ものづくりのブログ

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

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

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

npm does not support Node.js v10.19.0

ubuntu 環境で、node.js の環境構築を行なっていたら、以下のエラーが出て、npm が使えなくなり困ったのでその時の回避方法をここにメモします。 症状 回避策 参考 回避コマンド 対応後 症状 npm のコマンドを実行すると、以下のエラーが表示されました。 $ …

AWS CloudWatch について

AWS CloudWatch について理解を深めようと思い調べたことをまとめてみました。 CloudWatch とは 費用について 無料枠 有料枠 できること CloudWatch CloudWatch Logs CloudWatch Events メリット モニタリングが簡単 運用パフォーマンスの最適化 可視化 デメ…

マネージドサービスとは

最近マネージドサービスという言葉を耳にするのですが、よくわかってないため自分なりに調べてみました。 マネージドサービス メリット コスト エンジニア(担当者)が本来の業務に集中できる環境を提供することができる 保守の専門技術をカバー デメリット 技…

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

PyDrive を使った古いプログラムを改修してライブラリをアップグレードしたら、 Google ドライブにアップロードする処理が失敗するようになって困ったためここに回避方法をメモします。 症状 原因 回避方法 症状 問題の python スクリプトを実行すると、処理…

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

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

【python】 yield の動きを調べてみる

yield の動きがピンとこないので、動作を調べてみました。 return と yield の違いについて return yeild プログラム yeild の挙動について(ループ) yeild の挙動について(ループ以外) return と yield の違いについて return と yeild を比較してみます。 r…

【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 の場合の値を確認す…

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

シェルスクリプトによく : を見かけるのですが、どのような挙動になるのかわからなかったため調べてみました。 ":" について 実行結果 用途 引数が与えられる 変数の初期化 true (関数)の代替 ":" について :(コロン)は1文字のコマンドのようです。 実行結…

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

シェルスクリプトなどで、「実行しているスクリプトが設置されているディレクトリ」のパスを取得したいというケースがあります。 そんなときは、次のようにすると欲しい情報が取得できます。 スクリプト コード 実行 コマンド説明 dirname コマンド realpath…

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

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

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

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

Python - Plotly でチャート作成

Python でデータ可視化の方法をここにメモしとこうと思います。 今回は Plotly を使ったチャートの作成方法です。 Plotly とは 前提条件 サンプルチャート作成手順 plotly インストール サンプルチャート Bar Chart Plotly とは カーソルを合わせると、その…

スタブ(stub)をつくってシステム改修

開発用の認証情報がない、システム改修の依頼があったのでスタブ(stub)をつくって対応する方針をとりました。 あまりスタブ(stub)をつくってシステム改修を行ったことがなかったのでここにメモを残しときます。 (認証したこととして...みたいな感じで認証部…

markdown で url のリンクを書く方法について

wiki や redmine などを markdown に切り替えて編集する際に url のリンクの書き方がわからなかったためここにメモします。以下のように記載します。 [タイトル](URL)例として google のサイトで作成してみます。 [google](https://www.google.com/)作成した…

mac の画面を録画して GIFアニメを作る方法

ブログを書いていると、説明資料としてGIFアニメが欲しくなるときがあります。 自分の場合は、はてなブログに GIF の説明資料をアップロードするときに必要になります。 今回は、作業端末が mac で GIFアニメを作る方法をここにメモしたいと思います。 GIF …

ターミナル分割 tmux コマンド

tmux コマンドを利用するのですが、コマンドを失念しやすいためここにメモを残します。 tmux とは 利点 インストール mac Ubuntu 使い方 セッション操作 セッション起動 名前をつけてセッション起動 セッション終了 中断していたセッションに戻る(Attach) セ…

diagrams.net でシステム構成図を作成してみる

最近ドキュメントの作成にdiagrams.netを使用しているので使い方をここにメモします。 (使い方をすぐに忘れちゃうので...) diagrams.netとは 使い方 アクセス 起動 保存方法選択 テンプレート選択 作図 diagrams.netとは 「diagrams.net」は、システム構成図…

PostgreSQL でテーブル情報を CSV ファイルに出力する方法

データベースに接続して CSV ファイルを取得したいことが度々あるが、その度にやり方を忘れてしまっているのでここにメモします。 CSV出力の構文 デフォルト カラムを選択してCSV出力 カラム名もCSV出力 値をダブルウォーとで出力 CSV出力の構文 PostgreSQL…

Nibbler という SEO /マーケティング分析ツールを使ってこのブログの評価を確認してみる

「Nibbler(ニブラー)」はウェブサイトのSEOや使いやすさなどを点数化してくれる無料サービスです。 ホーム画面の検索窓に評価したいサイトのURLを入力して[Test]ボタンをクリックすると、そのサイトを分析してくれます。nibbler.silktide.com今回、このブ…

MySQL でテーブル情報を CSV ファイルに出力する方法

データベースに接続してCSVファイルを取得したいことが度々あるのですが、その度にやり方を忘れてしまっているのでここにメモします。MySQLの場合は、SELECT 文に "INTO OUTFILE" を記述することで CSV ファイルを出力することができます。 CSV出力の構文 デ…

"403 Forbidden"が出たときに考えられること

システムの運用をしていると、たびたび“403 Forbidden”というエラーに遭遇する。 この“403 Forbidden”は、指定したページへの閲覧禁止を意味していますが、どういった場合になるのかを把握しておくと障害対応時に役立つと思いここにメモを残しておきます。ウ…

clickhouse で特定のカラムを探す方法について

clickhouse を使っていてテーブルがたくさんある中で、特定のカラムを探したい場合があります。 そんな時は、system.columns というテーブルからカラム名を検索する方法があります。 このテーブルを使用すると、DESCRIBE TABLE クエリと同様の情報を取得でき…

google docs で閲覧履歴を確認する方法

google docs で過去に誰が見たのか・何人の人がいつ見たかなどを確認する方法です。 「ツール」→「アクティビティダッシュボード」を開く 「閲覧者」→「すべての閲覧者」を選択 これで、過去に閲覧したユーザのリストと閲覧日を確認できます。

静的リンクと動的リンク

プログラムのリンク方式について調べたことをここにメモします。 スタティックリンク(静的リンク)はプログラムの生成(コンパイル時)にオブジェクト(ライブラリなど)をファイルにまとめる方式です。一つのファイルにまとめることが可能です。一方でダイナ…

github でリポジトリを削除する方法

githubのリポジトリを削除しようとしたら意外と手間取ったのでここにメモを残します。以下の手順でレポジトリを削除します。 githubアカウントにログイン github に接続 Your Repositories のページに移動 削除したいレポジトリに移動 settings をクリック …

【Crystal】 print デバッグ (PP!)

Ruby ライクなプログラミング言語 crystal で 面白い print デバッグがあったのでここにメモを残します。 'pp!'というデバッグのやり方があり、これは変数と展開された値が確認できるというものです。 REPL の icr で検証してみました。 icr(0.33.0) > a = 1…

ZenHub について

ZenHubは、GitHubというタスク管理ツールに「カンバン」機能を追加する拡張サービスです。 ZenHubをインストールすること以下の4つのタブがGithubに追加されます。 Board(カンバン機能) Switch Repository(リポジトリの簡単切り替え機能) Burndown(グラ…