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 config
Comment[ja_JP]=
Comment=

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(result)) && ip[1]
  end

  config.hostmanager.enabled = true
  config.hostmanager.manage_host = true
  config.hostmanager.ignore_private_ip = false
  config.hostmanager.include_offline = false

  config.vm.box = "centos7"

  config.vm.define "moge" do |node|
    node.vm.hostname = "moge.localhost"
    node.vm.network "private_network", type: "dhcp"
  end

  config.vm.define "hoge" do |node|
    node.vm.hostname = "hoge.localhost"
    node.vm.network "private_network", type: "dhcp"
  end

  config.vm.provider "virtualbox"
end
  • vagrantのバージョンは1.9.4、virtualboxはのバージョンは5.1.2r108956、OSはUbuntu 16.04で動作確認を行った。
  • このVagrantfileを使用してvagrant upを行うと、mogehogeという名前が付けられた仮想マシンが起動する。
  • どちらの仮想マシンもプライベートIPアドレスDHCPにより割り当てられる。
  • vagrant-hostmanagerにより、割り当てられたIPアドレスとそれに対応するホスト名の組み合わせがホストOSの/etc/hostsに自動的に書き込まれる。
  • 利用者はホスト名を知っていれば、どのIPアドレスが割り当てられたかを意識する必要がなくなる。
  • 自分のマシン内に開発環境を作る場合にIPアドレスの管理の手間が省ける。(DHCPで起動した場合は、仮想マシンが起動するまでどのIPアドレスが割り当てられるか分からないため、起動した仮想マシンにログインしてIPアドレスを確認する必要がある。固定IPアドレスで起動した場合でも、予め他の仮想マシンが使用していないIPアドレスをVagrantfileに書かなければならない。)

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

イデアのメモです。

  • ローカル環境だと言語やミドルウェアのバージョンの差異により正常に動作しない場合がある。複数のプロジェクトを開発しているとその状況に陥る可能性が高くなる。
  • VagrantやDockerにより独立したステージング環境を用意する。
  • すぐにステージング環境にアクセスできるよう、テスト環境を起動した段階でIPアドレスやポート番号、バーチャルドメインが自動的に割り当てられるようにする。
  • ステージング環境を破棄したらIPアドレスやポート番号、バーチャルドメインは開放される。
  • リポジトリにVagrantfileやDockerfileをチェックインしておくと良い?

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
    Option "AccelerationNumerator" "4"
    Option "AccelerationDenominator" "1"
    Option "AccelerationThreshold" "0"
EndSection
  • PCを再起動する。

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
superclass
<=>
module_exec
class_exec
<=
>=
==
===
include?
included_modules
ancestors
name
public_instance_methods
instance_methods
private_instance_methods
protected_instance_methods
const_get
constants
const_defined?
const_set
class_variables
class_variable_get
remove_class_variable
class_variable_defined?
class_variable_set
private_constant
public_constant
singleton_class?
deprecate_constant
freeze
inspect
module_eval
const_missing
prepend
method_defined?
class_eval
public_method_defined?
private_method_defined?
<
public_class_method
>
protected_method_defined?
private_class_method
to_s
autoload
autoload?
instance_method
public_instance_method
include
instance_of?
public_send
instance_variable_get
instance_variable_set
instance_variable_defined?
remove_instance_variable
private_methods
kind_of?
instance_variables
tap
public_method
singleton_method
is_a?
extend
define_singleton_method
method
to_enum
enum_for
=~
!~
eql?
respond_to?
display
object_id
send
nil?
hash
class
singleton_class
clone
dup
itself
taint
tainted?
untaint
untrust
trust
untrusted?
methods
protected_methods
frozen?
public_methods
singleton_methods
!
!=
__send__
equal?
instance_eval
instance_exec
__id__
-----
moge
noge
instance_of?
public_send
instance_variable_get
instance_variable_set
instance_variable_defined?
remove_instance_variable
private_methods
kind_of?
instance_variables
tap
public_method
singleton_method
is_a?
extend
define_singleton_method
method
to_enum
enum_for
<=>
===
=~
!~
eql?
respond_to?
freeze
inspect
display
object_id
send
to_s
nil?
hash
class
singleton_class
clone
dup
itself
taint
tainted?
untaint
untrust
trust
untrusted?
methods
protected_methods
frozen?
public_methods
singleton_methods
!
==
!=
__send__
equal?
instance_eval
instance_exec
__id__
  • self.methodsインスタンスのメソッド一覧を返すので、インスタンスメソッドであるhogemogeが含まれている。
  • self.class.methods はクラスHogeのメソッド一覧を返すので、インスタンスメソッドであるhogemogeが含まれていない。