プライベートIPアドレス早見表

クラス 範囲 サブネットマスク CIDR表記 IPアドレスの数 クラスA 10.0.0.0~10.255.255.255 255.0.0.0 8 16,777,216 クラスB 172.16.0.0~172.31.255.255 255.240.0.0 12 1,048,576 クラスC 192.168.0.0~192.168.255.255 255.255.0.0 16 65,536

Ubuntu 16.04 でマウスの速度を永続的に変更する (2)

下記の内容を記載したファイルを ~/.config/autostart/xset.desktop として保存する。 [Desktop Entry] Type=Application Exec=xset m 4/1 0 Hidden=false NoDisplay=false X-GNOME-Autostart-enabled=true Name[ja_JP]=Set mouse config Name=Set mouse con…

vagrant-hostmanagerを使ったVagrantfile

Vagrant.configure("2") do |config| config.hostmanager.ip_resolver = proc do |machine| result = "" machine.communicate.execute("ifconfig enp0s8") do |type, data| result << data if type == :stdout end (ip = /inet (\d+\.\d+\.\d+\.\d+)/.match(…

独立したステージング環境をワンクリックまたはワンコマンドで用意したい

アイデアのメモです。 ローカル環境だと言語やミドルウェアのバージョンの差異により正常に動作しない場合がある。複数のプロジェクトを開発しているとその状況に陥る可能性が高くなる。 VagrantやDockerにより独立したステージング環境を用意する。 すぐに…

Ubuntu 16.04 でマウスの速度を永続的に変更する

/usr/share/X11/xorg.conf.d/50-mouse.conf というファイル名で下記の内容を記述する。 Section "InputClass" Identifier "My Mouse" MatchIsPointer "yes" # Default value of mouse acceleration: 2/1 4 # Set AccelerationNumerator to zero to disable O…

docker rm でコンテナを削除しようとすると Devise is Busy と表示されコンテナを削除できないが、/var/lib/docker/devicemapper/mnt に該当のディレクトリが無いときの対処方法

docker サービスを再起動する。

ディレクトリの容量を調べるコマンド

du -s DIRECTORYPATH -s は与えられた引数の位置だけの容量を表示する。 DIRECTORYPATH は調べたいディレクトリのパス。

self と self.class の違い

self.class は自身のクラスを返す。 self は自身のクラスまたはインスタンスを返す。 class Hoge def moge puts self.class.methods end def noge puts self.methods end end h = Hoge.new h.moge puts "-----" h.noge 出力結果は下記となる。 new allocate …

手段が目的となっても良い

概要 「手段と目的を混同してはいけない」「手段の目的化はダメ」のようなセリフはこれまで生きてきて何度も聞いていて、その意味や伝えたいことはなんとなく理解していたつもりでしたが、具体的に考えてみると違和感が出てきました。結論として、手段が目的…

unicorn のプロセスを終了させる

下記のコマンドを実行する。 kill -QUIT `cat tmp/pids/unicorn.pid` unicorn の親プロセスの ID は tmp/pids/unicorn.pid に保存されている。

親プロセスのプロセスIDを調べる

ps alx コマンドで表示される PPID が親のプロセスIDを示す。

unicorn の起動コマンド

bundle exec unicorn_rails -c config/unicorn.rb -E development -D -c: コンフィグファイルのパスを指定する。 -E: Rails の環境を指定する。この場合は development 環境となる。 -D: バックグラウンドで実行する。

指定した名前のDockerコンテナが存在すればdocker stopコマンドを実行する

sudo docker ps -a --filter "name=app" | awk 'BEGIN{i=0}{i++;}END{if(i>=2)system("sudo docker stop app")}' --fileter "name=app" は docker ps -a の結果の中からコンテナ名が app であるものだけを表示するオプション。 sudo docker ps -a --filter "…

全てのDockerイメージを削除する

sudo docker images -q | xargs sudo docker rmi

全てのDockerコンテナを削除する

sudo docker ps -aq | xargs sudo docker rm コンテナは停止している必要がある。 -aオプションは全てのコンテナを表示する。 -qオプションはコンテナIDのみを表示する。

Capistrano のタスク間で共有できる変数

set :hoge, capture("pwd") 変数 hoge に capture("pwd") の実行結果が格納される。この hoge は別のタスクからでも fetch(:hoge) と書くとアクセスすることができる。

Cygwin でデスクトップに移動しやすくするエイリアス

下記を.bashrcに書くとデスクトップに移動しやすくなります。 alias desktop='cd $USERPROFILE/Desktop'

PHPloy を使った FTP サーバーへのデプロイ

いろいろと FTP サーバーへのデプロイツールを探していましたが、PHPloy が今のところの使用感としては良い感じです。 https://github.com/banago/PHPloy PHPloy は Git と連携しており、php phploy.phar deploy というコマンドを実行すると最後のコミットの…

qrank を WordPress から Flight に移行した

Flight への移行 qrank では WordPress をフレームワークとして使っていましたが、ランキングデータの保存をすべて外部のサーバーで行うようにしたので、WordPress の役割はルーティングとビューだけになってしまいました。となると WordPress である必要は…

qrank の API サーバーを Serversman から ConoHa に移管した

概要 qrank はもともと WordPress で動かしていましたが、保存している記事の件数が増えてレスポンスが遅くなっていたため、記事情報の保存やランキングの計算を外部のサーバーに委ねることにしていました。そのサーバーに Serversman のメモリ 1GB のプラン…

$LOAD_PATH.unshift File.join(File.dirname(__FILE__), *%w[.. lib]) の意味

Serverspecのbin/serverspec-initに書かれていた一行です。 $LOAD_PATH.unshift File.join(File.dirname(__FILE__), *%w[.. lib]) 趣旨 $LOAD_PATH に実行中のファイルのディレクトリから ../lib の場所を追加する。 $LOAD_PATH に lib ディレクトリの位置を…

日付の期間を扱いやすくする PHP ライブラリ DateRange を作りました

PHP

ある日付がある期間に含まれているかどうかやある期間とある期間が重なっているかどうかを検査したりする機能を提供するライブラリを作りました。 GitHub https://github.com/suzuki86/DateRange GitHub Page http://suzuki86.github.io/DateRange/ 使い方 D…

委譲の使いどころ

委譲について調べたので記録を残しておきます。 参考 Rubyでdelegation(委譲)を簡単にする2つの方法 http://qiita.com/w650/items/671cc9c49b2ebf60620d 「継承より委譲」≠「継承使うな」 http://osa.hatenablog.com/entry/2014/08/28/204853 まとめ Ruby で…

配列の要素の中で特定の条件を満たす要素を取り出す

partition メソッドを使うことで特定の条件を満たす要素を取り出すことができます。 下記は [1,9,3,15,5] という配列から 4 以上の要素を変数 a に、3 未満の要素を変数 b に代入します。 a, b = [1,9,3,15,5].partition{ |item| item > 3 }

特異メソッドから直接インスタンスメソッドは呼び出せない

下記のような書き方をするとエラーになる。 class A def self.speak say_hello end def say_hello puts "Hello" end end A.speak # undefined local variable or method というエラーが表示される。 self.speakメソッドの中で自分自身のクラスをnewすると呼…

qrank に新着記事一覧を追加しました

qrank に新着記事を一覧表示するページを追加しました。Qiitaはログインしないと新着記事の一覧を見られないので、多少便利かと思います。 qrank | Qiitaの人気記事ランキング

Rails 4.0.0 でコントローラーに GET リクエストを行うと、何故か複数回コントローラーが実行される

Rails 4.0.0 で特定のコントローラーに GET リクエストを送ると、何故か複数回コントローラーが実行される現象に遭遇しました。しかも直接 URL に GET リクエストを送ると、1度だけ実行されるのですが、HTML の a タグを使って他のページからのリンクで移動…

ターミナルの現在のディレクトリ名や $ が表示される部分(PS1)の色を変えると見やすい

ターミナルで作業をしていると、どの行が自分が実行したコマンドでどの行が標準出力なのか分かりづらかったので、これの色を変えると見やすくなりました。 ターミナルの現在のディレクトリ名や $ が表示される部分は PS1 と呼ばれ、PS1 という変数に書式が定…

Rails 4 で shared_context を使ったテストを実行すると 「Could not find shared context "hoge"」 というエラーが出るときの対処方法

環境 Rails 4.1.5 RSpec 3.1.4 現象 bundle exec rspec を実行すると、「Could not find shared context "hoge"」 というエラーが表示される。 対処方法 spec_helper.rb の RSpec.configure do |config| の外側に下記を記述することでエラーが出なくなった。…

初級者から中級者にあがるための英語を勉強するのに engVid シリーズが良い感じ

初級者から中級者にあがるための英語を学習するのに engVid というシリーズが良い感じです。英語の文法、熟語の意味や使い分け等を全て初級英語で解説してくれる動画です。全て初級英語で解説されているってところが重要で、初級すぎず、上級すぎない絶妙な…