unicornのlog rotationでハマったが、実は test コマンドの exit コード起因だったという話

unicorn の log を cron で毎日ローテートする設定を書いたところ、下記エラーメールが届いて「なぜだろう」と数時間唸ってました。ようやく解決に至ったので、メモしておきます。 メール 件名: Cron <root@***> test -x /usr/sbin/anacron || ( cd / && run-parts --</root@***>…

irisデータをロジスティック回帰とSVMで分類してみた

Coursera の Machine Learning の演習は、コスト関数とその最小化を自前で実装することになるのでなかなか大変だけど、python の sklearn を使うと交差検定含め、ものすごくカンタンに書ける。 import numpy as np import sklearn.datasets as datasets from…

nginx try_filesディレクティブ

nginx の try_files ディレクティブについての備忘録。 Syntax Syntax: try_files file ... uri; try_files file ... =code; Default: — Context: server, location Module ngx_http_core_module 書かれていることを箇条書きでまとめると... 指定された順序…

sshできるdockerコンテナをつくるために最低限必要なこと

3ヶ月ぶりにDockerを触ったのですが、全てを忘れていて愕然としたので最低限必要なことをメモしておきます。 ホストOSは Mac OS X です。 Getting Started Get Started with Docker for Mac OS X に立ち戻るのが基本です。 以下、Docker Toolbox をインスト…

Mac OS X でのpyenvによるpython環境構築

pythonで機会学習入門するために Mac OS X に環境構築したので、メモを残しておきます。 1. pyenv と pyenv-virtualenv のインストール brew install pyenv brew install pyenv-virtualenv 2.bashrcの設定 # pyenv [[ -s "$HOME/.pyenv" ]] && export PYENV_…

InnoDBのロックに関する記事まとめ

InnoDBのロック機構どうなってたっけ?? と思ったら、読み返したい記事たち。 14.2.6 InnoDB のレコード、ギャップ、およびネクストキーロック https://dev.mysql.com/doc/refman/5.6/ja/innodb-record-level-locks.html MySQL InnoDBのネクストキーロック …

opensslコマンドで証明書を確認する

ssl

自分用メモです。 OpenSSL の s_client コマンドを使うと、SSL/TLS クライアントとして リモートホストに接続できます。 The s_client command implements a generic SSL/TLS client which connects to a remote host using SSL/TLS. It is a very useful di…

ActiveRecord の with_options に関する注意書き

with_options (Object) - APIdock にて、ActiveRecord の with_options について注意書きが書かれていたのでメモ。 和訳はちょっと雑です。 with_options はネストすることができ、receiver に引き継がれます。 メモ: ネスト階層は継承したデフォルトオプシ…

/etc/shadow の password field

/etc/shadow の password field に出現する "!" や "*" についてのメモ。 MAN USERMOD(8) OPTIONS The options which apply to the usermod command are: -L, --lock Lock a user's password. This puts a '!' in front of the encrypted password, effectiv…

deploy:assets:backup_manifest が失敗する

Rails を 4.2.0 から 4.2.4 にアップグレードしようと capistrano でデプロイしたらエラーが発生した。 INFO [e43c382f] Running /usr/bin/env cp /home/myapp/myapp/releases/20150916085015/public/assets/manifest* /home/myapp/myapp/releases/201509160…

thorでサブコマンドを指定しない方法

thorは CLI を作成するのによく使われる gem (らしい)ですが、サブコマンドを指定せずに実行する方法が Github Wiki や 公式サイト に見当たらず、小一時間悩んだのでメモっておく。 例えば こんなことがやりたい。 $ bin/cli.rb -l ja world こんにちは w…

Rails で発生した Error を NewRelicに通知する

Rails アプリでは newrelic_rpm を Gemfile に書いておけば、よしなにエラーを NewRelic のダッシュボードに通知してくれます。 が、 rescue_from Exception, with: :render_500 def render_500(e = nil) logger.error e render file: 'public/500', status:…

XMLにおいて アンパサンド(&)はエスケープが必要

xml

基本的すぎる話かもしれないが... sitemap_generator で XML を生成していて気付いた。 サイトマップ ファイルは UTF-8 エンコードで作成する必要があります (ファイルを保存すると、通常は UTF-8 エンコードで保存されます)。 他の XML ファイルと同じよう…

sitemap_generator + whenever + S3 で サイトマップを配信する

Rails - sitemap_generator + whenever + S3 で サイトマップを配信する - Qiitaqiita.com

ActiveRecordのestablish_connectionを読む

ActiveRecord における DB との接続確立方法をきちんと理解できてなかったので、pry-byebug を使いながらコードを読み解いてみる。 Railsのversion は 4.2.0 という前提で。 establish_connection [Ruby] 例えば、ActiveRecord の connection_pool を止める …

ブロードキャストなICMP Echo Requestを無視する

OSはUbuntu 14.04。 結論から書くと、 echo "net.ipv4.icmp_echo_ignore_broadcasts=1" > /etc/sysctl.d/60-icmp-echo.conf service procps start でOK(のはず)。 設定前 $ ping 192.168.33.255 PING 192.168.33.255 (192.168.33.255): 56 data bytes 64 b…

White Paper : いまさら聞けない、SSL サーバ証明書とルート証明書の関係 - Symantec

分かりやすくまとまってるので、ふと忘れてしまった時に。 https://www.jp.websecurity.symantec.com/welcome/pdf/wp_sslandroot-certificate.pdf ついでに CSR についてもメモっておく。 CSRとは、お客様が生成し、認証局に提出する署名リクエスト(Certifi…

Ubuntuにおけるinitと起動方法

sysvinit, upstart, systemd, update-rc.d, insserv の関係性・歴史的背景がよくわからなくていろいろ調べたので、メモしておく。 基礎知識 sysvinit とは? sysvinitはSystemV initの略で,UNIX SystemV(システムファイブ)と呼ばれるAT&T社謹製の古典的な…

Active Record のvalidation と error message 対応表

とりあえず memo。 対応表 Rails Internationalization (I18n) API — Ruby on Rails Guides

Mac + VirtualBox + Vagrant で MySQLのレプリケーション環境構築

MySQLのレプリケーションを手軽に試す環境が欲しいなぁと思い、Vagrant を使って複数のGuest OSを立ち上げてみることにした。 Environments Host OS: 10.10.3(Yosemite) VirtualBox: 4.3.26 Vagrant: 1.7.2 Guest マスター・スレーブ 1台ずつで。 OS: Ubuntu…

railsのルーティングエラーを捕捉する

特に何も設定せずとも routes.rb にマッチしなかったリクエストは rails がエラーにしてくれますが、ログに書き出す等の特別な処理を差し込みたい時にはルーティングエラーを捕捉する必要があります。 少々苦戦したので、忘れないようにメモしておきます。 …

memo: Railsで、とあるRSSを生成した際のbuilder

「:」付き要素を生成したり、キャッシュを使ったり、アレコレ調べて苦労したので、自分用メモとして残しておく。 # feed.rss.builder xml.instruct! xml.rss version: "2.0", "xmlns:dc" => "http://purl.org/dc/elements/1.1/" do xml.channel do xml.title…

utf8_unicode_ci から utf8_general_ci に一括ALTERする

だいぶ前ですが、Rails の config/database.yml で collation を指定し忘れて、全てのテーブルが utf8_unicode_ci になってしまいアタマを抱えるという事件がありました。 なぜこれで困るのかについては、 Rails - ActiveRecordでデフォルトの照合順序を変更…

loadイベントについて調べてみた

理解が十分でなかったので、loadイベントについてきちんと調べてみた。 DOMContentLoaded と load の違い まずはここから。 The DOMContentLoaded event is fired when the document has been completely loaded and parsed, without waiting for stylesheet…

Railsのautoload_paths

autoload_paths について、きちんと調べてみました。 とは言うものの、Autoloading and Reloading Constants — Ruby on Rails Guides にほぼ知りたいことは書かれていたので、重要なポイントを抜粋しておきます。訳は適当です。 autoload_paths の デフォル…

Railsというかactive_supportのhtml_safe仕様

memo。 Active Support Core Extensions — Ruby on Rails Guides

APIを一覧から探せるサービス・記事

個人用memoですが。。 Mashape - Free API Management Platform & Marketplace ProgrammableWeb 国内向けだとちょっと古いけど... 日本の全エンジニアに捧ぐ!現在公開されているAPI一覧【2013年版】 | Find Job ! Startup

Rails 悲観ロック

Memo. ActiveRecord::Locking::Pessimistic

daemontools + start_server + unicornでhot deploy

「Server::Starterに対応するとはどういうことか」の補足 : sonots:blog daemontools + start_server + unicorn でのハマりどころと対策がまとまってて、とても助かった。 sonot++

submit_tag

memo. submit_tag(value = "Save changes", options = {}) confirm と disable_with は 3.2.3 までは options に定義していたが、3.2.5からは data属性に定義が必要になった模様。。 submit_tag (ActionView::Helpers::FormTagHelper) - APIdock