Skip to content

Instantly share code, notes, and snippets.

@eguchi-ken
eguchi-ken / sidekiq-checker.rb
Created September 1, 2022 09:39
sidekiq のジョブの引数の長さとか調べるやつ
def get_working_job_argument_size
workers = Sidekiq::Workers.new
workers.filter_map do |_process_id, _thread_id, work|
payload = work.to_a[1]
job_class = payload[1]['args'][0]["job_class"]
arguments = payload[1]['args'][0]["arguments"]
if arguments && arguments.length > 1
result = [job_class]
@eguchi-ken
eguchi-ken / log_profiler.rb
Last active October 27, 2022 10:33
rails のログに含まれる SQL を分析します
# frozen_string_literal: true
Query = Struct.new(:type, :raw_sql, :model_name, :duration, keyword_init: true) do
def abstract_sql
raw_sql.gsub(/\d+/, 'N')
end
def unknown?
type.nil? && model_name.nil?
end
@eguchi-ken
eguchi-ken / git_comit_template
Created June 9, 2022 05:48
絵文字とかのテンプレート
# 🐛 fix:
# ✨ feat:
# ♻️ refactor:
# ✅ test:
# 📝 docs:
# 📦 package:
# ⚡️ perf:
# 💚 ci:
# ⚠️ wip とか workaround に使う
# 👮 rubocop とかに使うかも
@eguchi-ken
eguchi-ken / emacs-memo.md
Last active December 4, 2019 02:46
Emacs memo

Emacs Memo

org-mode

  • TODO を追加するには alt + shift + return を使う。
  • TODO -> DONE -> 何もなし でローテーションさせるには C-c C-t を使う。
  • 複数ファイルを横断して TODO を見つけることができる。
    • org-agenda-files 変数にスキャンしたいファイルパスを与える。
    • org-todo-list でスキャンを実行する。
  • todo list のバッファで t を叩くとステータスをローテーションできる。
@eguchi-ken
eguchi-ken / tech-tips.md
Last active September 13, 2019 04:28
tech tips

ripgrep

grep よりも5倍くらい早い検索コマンド。

  • 普段から git grep でこと足りてるなら問題ないが、巨大なプロジェクトを横断的に検索する場合にはインストールしたほうがいい。
  • インストール方法を調べると brew install ripgrep と書いてあったりするのだが、これは c のコンパイラから始まって boost ライブラリや rust をインストールすることになるので死ぬほど遅い。マシンの性能や通信の速さによるが、自分は半日くらいかかった。 rust の開発環境が欲しいのでなければバイナリをインストールするべき。 バイナリはここからとってくる。
  • 無視したいファイルは ~/.rgignore に書き込む。
@eguchi-ken
eguchi-ken / rails-memo.md
Last active September 13, 2019 05:02
Rails memo

Enum で ArgumentError

モデルに enum 宣言した属性は、定義していない値をセットした時点 ArgumentError になる。このエラーは save や validation する前に発生するので注意が必要。モデルを更新するインターフェース(たとえばCSV)によっては不正な値を受け取る可能性を排除できない。したがってそのようなインターフェースを使う場合には値のチェック、もしくは ArgumentError のエラーハンドリングを行う。このメッセージはバリデーションエラーではないので、簡単に i18n ローカライズすることができないことに注意。

モデルの名称と属性の名称をローカライズする

モデルの名称と属性の名称をローカライズするには、下記のような翻訳データを用意する。

@eguchi-ken
eguchi-ken / vimium_settings.txt
Created June 11, 2019 06:32
my vimium settings
# https://github.com/philc/vimium/blob/master/README.md
unmap b
map h previousTab
map l nextTab
@eguchi-ken
eguchi-ken / .comit_template.txt
Last active September 13, 2019 01:54
sample emoji comit template
#==== Emojis ====
# 🆕 新規実装
# 🏥 バグ修正
# 🤘 機能改善
# ✨ 部分的な機能追加
# 🎉 盛大に祝うべき大きな機能追加
# ♻️ リファクタリング
# 👮 アラート等の修正
# 🚿 不要な機能・使われなくなった機能の削除
# 💚 テストやCIの修正・改善