dogwood008の開発メモ!

最近のマイブームは機械学習, Ruby on Rails。中でも機械学習を使った金融商品の自動取引に興味があります。

2022-05-01から1ヶ月間の記事一覧

【PC全般】Tabキーを押すと、テキストボックスを移動できる

意外と知られていない事があるので紹介する。 Webブラウザ等で入力する時テキストボックスだが、次の入力ボックスへ移動する際、マウスでクリックしても良いがTabキーを押すと素早く移動できるので便利。

【JavaScript】debuggerを入れておけば、そこで止まる

debugger を入れておけば、そこで動作が止まってデバッガが開く。便利。

【JavaScript】console.log({ somevalue }) とすると変数名と値を同時に出力できて便利

要旨 console.log({ somevalue }) としてコードに埋め込んでおくと、「somevalue: (somevalueの値)」とコンソールに表示されるので、デバッグに便利。 console.log({ somevalue })とした例 詳細 ES2015で入った「略記プロパティ名」という記法を使うと、 obj…

【mac】Ctrl + A, Ctrl + E で文頭文末へ移動

mac

emacsのキーバインドと同じ。Ctrl + Aで文頭へ、 Ctrl + Eで文末へ移動する。未対応のアプリもある。

【ActiveRecord/Rails】レコード数を数える時はcountを使うと確実、size, lengthとの違い

要旨 ActiveRecord::Relation#count を使っておくのが良い。 size や length もあるが、キャッシュが効いて期待する値を返さない場合があるので、よほどそのような状況ではない限り、使用を避けるのが無難であろう。 やってはいけないのは、ActiveRecord::Re…

【mac】「Cmd + ,」でたいていのアプリケーションは設定画面を開ける

mac

Cmd + , を入力すると、設定画面が用意されていないアプリを除いて、結構な数のアプリが設定画面を開いてくれる。

【mac】pbpasteを使うと、クリップボードの中身を扱える

mac

macには、pbpasteというコマンドが用意されている。これを使うと、下記のようなサンプルを実行する事ができる。 `pbpaste`.split("\n").map {|entry| Integer(entry) }.sum これは、クリップボードにある値を改行区切りで分割し、数値に変換し、合計値を出す…

【mac】pbcopyへパイプで渡すと、クリップボードにコピーする

mac

pwd | pbcopy のように呼ぶと、実行結果をクリップボードにコピーできる。

【Shell】timeを使うとコマンドの実行時間を計測できる

$ time pwd /tmp real 0m0.001s user 0m0.000s sys 0m0.000s このように、かかった時間が表示される。3つの行はそれぞれ、次の通りの意味を持つ。 real: 起動から終了までに経過した実時間 (real time) (iii) システム CPU 時間 times(2) が返す struct tms …

【Docker】FROMより前の段階でARGを使う

要旨 Dockerfile には、FROMより前の段階でARGを置くことができる FROMより後の段階でそのビルド引数を使用したければ、再度宣言が必要 詳細 下記記事より。 blog.dogwood008.com github.com # Dockerfile # 使用するDebianのバージョンを固定 ARG DEBIAN_CO…

【Rails, Docker】最新安定版の Rails 7.0.3, Ruby3.1.2 を Docker 環境で動かす

github.com ここに置いた。これから数日掛けて、使った知識をまとめていくことにする。 使った知識: blog.dogwood008.com

【Docker Compose】docker-compose.yml はもう古い、今は compose.yaml

要旨 推奨されるのは、compose.yaml である。 ただし、後方互換のために docker-compose.ya?ml もサポートされる実装であるべき(SHOULD)と公式ドキュメントに記載がある。 なお、 compose.yml も使用できる。 詳細 まず、下記は Docker 公式による説明である…

【Docker】Docker Composeの run と exec の違い

Docker Composeの run と exec は、どちらも同じような効果が得られる。つまり、コンテナの中に入ったり、コンテナ上でプログラムを実行したりできる。 しかし、もう少し異なった視点で見ると、それぞれ異なる機能を持っているのがわかる。 docker compose r…

【Shell】カレントディレクトリ内のファイル数を知る

ls -1 でカレントディレクトリ内のファイルとディレクトリの一覧を、1エントリ1行で出力する。 wc -l は、標準入力に与えられたテキストの行数をカウントしてくれる。 これらを組み合わせると、カレントディレクトリにファイルがいくつあるかを知ることがで…

【Rails/ActiveRecord】特定のカラムの情報だけ欲しい場合は、pluckかselectを使う

例えば、「特定の条件を持つユーザIDだけ欲しい」といった場合に有効。この時、 pluck を使うと戻り値は Array で、 select を使うと ActiveRecord::Relation が返る。 この時、 map を使うのは無駄なメモリを食ったり動作が遅くなったりするので、やっては…

【mac】ワンプッシュでスクリーンロックをかける

mac

MacBook Proの場合、指紋センサと電源ボタンが一緒になっている。電源が入っているときにこのボタンを押すと、すぐにスクリーンロックがかかる。 復帰するにはパスワードの入力か指紋の照合が必要なので、少し離席するときにセキュリティ確保の目的で実施す…

【Bash】tee でstdoutとstderrをそれぞれ別々にする方法 (Process Substitution)

要旨 Bashで用意されているプロセス置換 (Process Substitution) という仕組みを使うと、下記のような書き方ができる。 $ ls /foo/bar 1> >(tee stdout.log) 2> >(tee stderr.log) ls: /foo/bar: No such file or directory # <--- 標準エラー $ cat stderr.…

【Shell】teeでログを画面に出しつつ、ファイルにも書き込む

要旨 tee コマンドを使用すると、標準出力の内容をコンソールに出力しつつファイルにも出力できる。 $ pwd | tee output.log /tmp $ cat output.log /tmp # <--- 標準出力に出たものと同じものが記録されている 参考 linuxjm.osdn.jp

【RSpec】letは遅延評価、後から上書きできる

RSpecの世界では、 let は遅延評価される。これは宣言した値が本当に必要とされる時まで評価を遅延するということを指す。具体的な例を持って説明する。 例えば下記のようなテストを行うとする。ここでは、あるAPIのエンドポイントにPOSTする際のステータス…

【Kubernetes】 ネットワーク不通・応答無しになったNodeは、K8sがTaintsを付けてくれる

Kubernetesを使っていると、Nodeが応答不能になった時にTaintsを付けてくれる。 例えば、Amazon EKS を使っていて、Nodeが応答できなくなった時(例えば、 Kubelet が止まってしまった時)には、下記のTaintsを付けてくれる。 node.kubernetes.io/unreachabl…

踏み台サーバ (Bastion Server)を経由したSSHを、コマンド一発で

要旨 予め下記のように ~/.ssh/config に記入しておくと、 ssh work_server を実行するとそのまま一発で踏み台サーバを経由した先のサーバへSSHで入ることができる。 # ~/.ssh/config Host work_server User ec2-user HostName ip-xxx-xxx-xxx-xxx.ec2.inter…