dogwood008の開発メモ!

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

【Shell】一気に深いパスのディレクトリを掘るには、mkdir -p

要旨 下記のように -p オプションを付けると、その深さまで必要に応じてディレクトリを掘ってくれる。 mkdir -p /path/to/the/directory/you/want なお、既に存在する場合も終了コードが0となり、正常終了扱いになる。 詳細 これ以上書くことはあまりない。R…

【GTM】Google Tag Managerは、任意のHTMLを配信できる

Google Tag Manager (GTM) は、Google Analytics のトラッキングコードを配信する目的で、良く使用される事が多い。しかし、その他の使い方として、任意のHTMLを配信することもできる。もちろん、<script></script>で囲めばJavaScript (JS)を配信することもできる。 やり方は…

【Ruby】Hash#fetchがデフォルト値を取る時、ブロックを与える方がパフォーマンスが良い

要旨 ブロックを使うのがおすすめ。 詳細 Hash#fetch は、Hashに指定したKeyが存在する際に、そのValueを返すメソッドである。 このメソッドは、指定したKeyが存在しなかった際、デフォルト値を返すことができる。その際、デフォルト値の与え方は下記の2通り…

【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…

Google Pixel 4a の eSIM を使う:楽天モバイルで物理 SIM から eSIM への変更手続きとインストール

Pixel 4aで、eSIMを使うまでのレポート。楽天モバイルで既に契約して使っていた物理の SIM カードを eSIM に変更するまでのレポートも含む。

200215 トレンドニュース

GitHub - szimek/signature_pad: HTML5 canvas based smooth signature drawing HTML5のcanvasで手書きサインできるやつ github.com

200214 トレンドニュース

Working with AWS Lambda and Lambda Layers in AWS SAM | AWS Compute Blog このページが一番レイヤーの分離に詳しい aws.amazon.com

200124 トレンドニュース

Python: データパイプライン構築用フレームワーク Luigi を使ってみる - CUBE SUGAR CONTAINER すごくわかりやすい blog.amedama.jp

200123 トレンドニュース

S3 バケットを AWS Lambda を使って、ウィルススキャンしてみた | Developers.IO 丁寧に書かれていてすごく良い記事だった dev.classmethod.jp

200120 トレンドニュース

GitHub - cortexlabs/cortex: Deploy machine learning models in production 機械学習モデルを本番環境にデプロイ・管理してくれる便利なやつ github.com A 6 Step Field Guide for Building Machine Learning Projects 簡潔にまとまっていて良い記事 towar…