コピペコードで快適生活

明日使えるソースを自分のために

自動ログインするブックマークレット

↓のコードを適宜修正して、ブックマークのURL欄にコピペする。 javascript:(function(){document.querySelector('input[name=login_id]').value = 'LOGIN_ID'; document.querySelector('input[name=password]').value = 'PASSWORD'; document.querySelector(…

prependでクラスメソッドを拡張する

singleton_classにprependすればOK。 class Hoge def self.hogehoge(*args) puts 'hogehoge' end end Hoge.hogehoge # => hogehoge Hoge.singleton_class.prepend Module.new { def hogehoge(*args) super(*args) puts 'extended hogehoge' end } Hoge.hogeh…

複数のサーバで一度にsshコマンドを実行したい

メモ。 HOSTS="host01 host02 host03" for host in ${HOSTS}; do echo $host ssh -t $host <

既存RailsアプリにRspecを入れる

既存RailsアプリにRspecを入れたときのメモ。 インストール Gemfileに追記 group :development, :test do gem 'rspec-rails' gem 'factory_bot_rails' gem 'database_cleaner' end RSpecの設定 必要なファイルが作成される。 bundle install bundle exec rai…

nslookupメモ

使い方 nslookup www.google.com Server: 192.168.135.1 # 問い合わせたDNSサーバのIP(LAN内のDNSサーバ) Address: 192.168.135.1#53 # 上記 + ポート番号 Non-authoritative answer: # キャッシュDNSサーバがレスしたの意味 Name: www.google.com Address: …

Dockerの基本的な使い方メモ

Dockerを触ることになったので、基本的な使い方をメモしておく。 用語 イメージ: コンテナのベースとなるファイル群 コンテナ: イメージから作成されたインスタンスpullできるdockerのイメージはここから確認できる https://hub.docker.com/explore/ 基本的…

PostgreSQLのEXPLAINについて

PostgreSQLで重たいクエリの調査したときのメモ。 EXPLAINについて EXPLAINは問い合わせプランを表示するコマンド。PosgreSQLではSQL実行前に、プランナで問い合わせの実行コストを見積もり、 最小コストの問い合わせプランを算出する(問い合わせの最適化)。…

sidekiq-unique-jobsのunique値ごとの挙動

ちょっと古いけど、sidekiq-unique-jobs v4.0.8のunique値ごとの挙動を確認したのでメモしておく。GitHub - mhenrixon/sidekiq-unique-jobs at v4.0.8 while_executing 同じargsは実行中にならない。 同じargsを実行しようとしたらworkerは待ちになる。後続…

RailsConsoleでSidekiqジョブの状況を見る

運用していると状況確認したいときがあるのでメモ。 ## 実行中ジョブ Sidekiq::Workers.new.each do |process_id, thread_id, job| puts "#{process_id}, #{thread_id}, #{job}" end ## 待ち状態のジョブ Sidekiq::Queue.new("#{QUEUE_NAME}").each do |job|…

ActiveRecordで固定の日時最小値チェックのバリデーションを入れる

# # app/models/concerns/my_app/extend_validation.rb # 複数のフィールドに対して一括でバリデーション設定できるようにするために # バリデーションメソッドを追加するモジュール # module MyApp module ExtendValidation extend ActiveSupport::Concern …

cancancanでActiveRecord::RecordNotFoundを出したくないときのパッチ

module MyApp module CanCan module ControllerResourcePatch def find_resource # もともと定義してあるfind_resourceを呼び出す super rescue ActiveRecord::RecordNotFound => e # エラーさせたくないので握りつぶす end end end end CanCan::ControllerR…

RubyのGrapeメモ

たまにしか使わなくて、よく忘れている書き方をメモ。 随時追加していく。 params :example # enumの値のみ許可 optional :status, { type: String, allow_blank: true, values: User.statuses.keys } }

Rubyのinclude,extend,prepend,Concernの使い方メモ

なんとなく理解が怪しかったので復習をかねて。 includeだけでクラスメソッドとインスタンスメソッドを同時に追加する module MyModule def self.included(base) base.extend(ClassMethods) end module ClassMethods def hogehoge puts 'hogehoge!' end end …

screenコマンドメモ

本番サーバで手動でバッチをまわしたけど、sshのセッションが切れて「あぁぁぁぁ」って、状況にしたくないときとかに使う。 セッションを作る screen デタッチする <ctrl> + <a> おしてから d セッション一覧 screen -ls アタッチする screen -r screen -r セッション</a></ctrl>…

package.jsonで読み込み先を指定してインストール

たまにしか使わなくてよく忘れるのでメモ。 リポジトリ向ける { "name": "app", "version": "0.0.1", "description": "app", "author": "kinosuke", "dependencies": { "common": "git+ssh://git@github.com:account/rep.git#branch" } } ローカル向ける { "…

GNU版のコマンドセットをMacに入れておく

メモ $ brew install coreutils $ brew install gnu-sed $ brew install gawk $ brew tap homebrew/dupes $ brew install homebrew/dupes/grep 第29回シェル芸勉強会:福岡サテライト : ATND より転載

Rubyで外からプライベート変数にアクセスする

# プライベート変数の定義状況を確認する obj.instance_variable_defined?('@raw') # プライベート変数にアクセス obj.instance_variable_get('@raw')

SJISのCSVからシェルで集計するまでの流れ

CSVのデータを集計を、シェルでさくっと終わらせたいときのためのメモです。 まずは文字コードを変換 だいたいCSVはSJISであることが多いので、シェルで正しく処理できるようにUTF-8に変換します。 # 使える文字コード一覧 iconv -l # f(from)の文字コード #…

iTerm2ショートカットメモ

cmd + Enter フルスクリーン表示cmd + d 縦分割。cmd + shift + d 横分割。参考 iTerm2で外せないショートカットキー一覧 iTerm2ショートカット備忘録

Redisへの負荷を分散するためにtwemproxyを使ってシャーディングする

概要 Redis負荷分散のために前段にプロキシ(twemproxy)を配置/運用した内容について記載します。 twemproxyはコンシステントハッシュを使用してシャーディング(キーの分散)を実現します。 なお、twemproxy詳細については https://github.com/twitter/twempro…

zipコマンドメモ

# zip圧縮 zip -r filename.zip fileDir # zip圧縮(パスワード) zip -re filename.zip fileDir # zip解凍 unzip filename.zip

SublimeTextで設定したことメモ

随時追加 ¥(円)マークで\バックスラッシュを入力 Sublime Text 2 -> Preferences -> Keybindings - Userでキーマップの設定画面を開き、下記の行を追加する。 { "keys": ["\u00a5"], "command": "insert", "args": {"characters": "\\"}}参考にさせていただ…

ファイルディスクリプタの上限変更

確認 $ cat /proc/sys/fs/file-nr 576 0 1636820 file-nr内のパラメータはそれぞれ、 オープンされているファイル数 空きファイル管理データの数 システム中のオープンファイル管理データの最大数 を示します。 一時的な設定 ログインプロセスとその子プロセ…

AmazonLinuxでタイムゾーン設定メモ

AWS

どうするんだっけとなったときのメモ。 Linux インスタンスの時刻の設定 - Amazon Elastic Compute Cloud sudo vi /etc/sysconfig/clock # 下記編集する # ---------- # ZONE="UTC" を消して↓とする ZONE="Asia/Tokyo" # ---------- # シンボリックリンクは…

pyenvとpyenv-virtualenvでPython環境を作る

Pythonインストール # cloneする git clone https://github.com/yyuu/pyenv.git ~/.pyenv # 設定追加 vim ~/.bash_profile === export PYENV_ROOT=$HOME/.pyenv export PATH=$PYENV_ROOT/bin:$PATH eval "$(pyenv init -)" === # 上記設定の再読み込み exec …

Vim:改行時のコメントアウト対応

vim

vimでコメントアウトつきのテキストを貼り付けたいとき、 コメント行の次行以降が全部コメントアウトされてインデントも崩れて「あぁぁぁぁぁ」ってならないように、 貼り付ける前に以下のおまじないを唱える。 :set formatoptions-=ro

memcachedのtelnet操作メモ

接続 telnet localhost 11211 キー一覧を取る stats items # から SlabID を取得して stats cachedump #{SlabID} #{取得する件数} # で一覧が取れる

redis-cliコマンドメモ

接続 # localhost:6379接続 redis-cli # リモート接続 redis-cli -h #{ホスト名} -p #{ポート番号} -n #{DB番号} # 状態取得 reids-cli info コマンド # キー一覧 keys * # キーの値を取得 get #{key名} # キーをセット set #{key名} #{値} # キーを削除 del…

vagrant環境を100GBまで増やした時のメモ

8GBしかディスク容量がないvagrant環境を100GBまで増やした時のメモ ホストOSでの作業 # vagrantのディスクパスへ移動 cd /cygdrive/c/Users/kinosuke/VirtualBox VMs/golem_default_1514254535481_98090 # vdi形式にクローンする VBoxManage clonehd "cento…

dockerコマンドメモ

dockerよくわからんけど、ecsにデプロイする環境を作ってもらって、どんどこデプロイしまくって結果、僕の環境にdockerのimageがどんどこ溜まっていって、ディスクフルになってしまったので、消すコマンド等々をメモ。 # 停止しているコンテナ一覧 docker ps…