マウスの寿命の話

Updated:

デスクトップPCで使っているワイヤレスマウスの右クリックが効かなくなりました。ドライバの問題かと思い,いろいろと調べてみましたが,ソフトウェア側には異状がありませんでした。試しに,別のマウスをつなぐと,右クリックが効くので,右ボタンが物理的に壊れてしまったようです。

調べてみると,このマウス(Microsoft Wireless Optical Mouse 5000)は2006年8月に買ったものでした。その後,2009年12月にボタンが引っかかるようになりましたが,保証期間が5年(!)だったので,無償で交換してもらいました。

結局,買ってから3年3か月間で新品に交換してもらい,さらに3年間強使ったので,合わせて6年半使ったことになります。かなり長生きといえます。

故障したマウス

買った時には,自作のマシンでWindows XPを使っていました。(ちなみに,Windows Vistaは,2007年1月30日発売です。) その後,デスクトップをDellのマシン(Windows Vista)にリプレースしましたが,マウスは今まで使ってきました。ご存知のように,Windows自体は,Vistaの後にWindows 7とWindows 8が登場しています。

こうして考えてみると,OSやその他のソフトウェアと比較して,メカニカルな部品から構成されるマウスの寿命が意外に長いことに驚かされます。

もう保証期間(5年)は過ぎたので,これで引退ということで,ちょっぴり感傷的な気分です。長い間ありがとう。

Dropboxの容量が48GB増えた話

Updated:

突然"Dropbox bonus space received!"というタイトルのメールが届きました。

文言は次のようなものです。

Congrats on becoming a Dropbox Guru! We've awarded you
48 GB of bonus space for the next 24 months! You now
have 72 GB on Dropbox.

つまり,「おめでとうございます!あなたはDropbox Guruになりました。今後24か月にわたり48GBのボーナス容量を贈呈します。あなたの総容量は72GBです」という内容です。

何かとってもうさんくさい感じですね。From:フィールドは Dropbox <no-reply@dropbox.com>となっていて,もっともらしいですが,何となく怪しい。

しかも,最初の「Congrats on becoming a Dropbox Guru!」のDropbox Guruがリンクになっていて,罠っぽさ全開です。

SPAMくさいなあ,と思って検索してみたところ,SamsungのスマホにプリインストールされているDropboxで,最初にログインしたアカウントに対して,容量を2年間48GB増量してくれる,というキャンペーンをやっていることがわかりました。

Dropboxの公式サイトのIs my Samsung phone or tablet eligible for the free space promotion?というページに説明されていました。

そういえば,その前日に,Galaxy S IIIのDropboxを初めて使ってログインしたのでした。

というわけで,ウェブサイトhttp://dropbox.comにログインして確認すると,確かに容量が72GBになっていました。(増量前は容量が24GBでした。)

次に,PCのDropboxクライアントで,容量を確認すると24GBのままです。何か謎です。

たぶん,ファイルを転送するタイミングで,Dropboxクライアントの容量の情報も更新されるのだろうと思い,Dropboxのフォルダにファイルを作ったら,PCのクライアントでも72GBと表示してくれました。

というわけで,今後はDropbox Guruと呼んで下さい2年間にわたって,Dropboxの容量が48GB増えることになりました。

Galaxy S IIIのユーザで,プリインストールされたDropboxクライアントをまだ使ったことがない人は,使ってみましょう。

<追記> Dropboxの説明ページにあるように,ドコモはこのキャンペーンの対象になっていないようです。

RVMを使ってRuby on RailsをUbuntu 12.04LTSにインストールする

Updated:

Ubuntu 12.04LTSが動いているマシンに、Ruby on Railsをインストールしました。Ubuntuでは、Ruby言語も、Ruby on Railsも、パッケージを使って簡単にインストールできます。しかし、パッケージからインストールした場合、利用できるバージョンが制約されることが多いので、今回は自前でインストールすることにしました。

RVM(Ruby enVironment Manager)を使ってRubyをインストールして、その上にRailsを入れることにしました。RVMを使ってRubyをインストールすれば、複数のバージョンを共存させることができます。

まずは、(RVMとは干渉しないようですが)念のために、Ubuntuのパッケージでインストールしたruby1.9.1をアンインストールしておきます。

インストールしたバージョンは、Rubyが1.9.3系列の最新版、Railsが3.2系の最新版です。

ステップ 1. RVMをインストールする

次のコマンドを実行すると、RVMのソースを取得してインストールしてくれます。(curlが必要です。入っていなければ、curlパッケージをインストールしてください。)

$ curl -L https://get.rvm.io | bash -s stable

RVMは、ディレクトリ~/.rvmの下にインストールされます。また、RVMを使って、インストールしたRubyやgemも、~/.rvmの下に置かれます。

実行結果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
$ curl -L https://get.rvm.io | bash -s stable
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   185  100   185    0     0    123      0  0:00:01  0:00:01 --:--:--   178
100 10956  100 10956    0     0   4125      0  0:00:02  0:00:02 --:--:-- 12686
Downloading RVM from wayneeseguin branch stable
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   131  100   131    0     0    151      0 --:--:-- --:--:-- --:--:--   208
100 1244k  100 1244k    0     0   193k      0  0:00:06  0:00:06 --:--:--  273k
 
Installing RVM to /home/cond/.rvm/
    Adding rvm PATH line to /home/cond/.bashrc /home/cond/.zshrc.
    Adding rvm loading line to /home/cond/.bash_profile /home/cond/.zprofile.
 
# RVM:  Shell scripts enabling management of multiple ruby environments.
# RTFM: https://rvm.io/
# HELP: http://webchat.freenode.net/?channels=rvm (#rvm on irc.freenode.net)
# Cheatsheet: http://cheat.errtheblog.com/s/rvm/
# Screencast: http://screencasts.org/episodes/how-to-use-rvm
 
# In case of any issues read output of 'rvm requirements' and/or 'rvm notes'
 
Installation of RVM in /home/cond/.rvm/ is almost complete:
 
  * To start using RVM you need to run `source /home/cond/.rvm/scripts/rvm`
    in all your open shell windows, in rare cases you need to reopen all shell windows.
 
# Yoshiyuki Kondo,
#
#   Thank you for using RVM!
#   I sincerely hope that RVM helps to make your life easier and
#   more enjoyable!!!
#
# ~Wayne
 
$

インストールが完了したら、rvmを有効にするために、次のコマンドを実行します。(実行結果の26〜27行目にTo start using RVM you need to run `source /home/cond/.rvm/scripts/rvm`と表示されています。)

$ source ~/.rvm/scripts/rvm

次のsource文を~/.bashrcに追加しておけば、いちいち手でsource文を実行しなくても、ログインすればすぐにrubyを使えるようになります。

source $HOME/.rvm/scripts/rvm

ステップ 2. Rubyのビルドに必要なパッケージをインストールする

次に、Rubyをビルドするために必要なパッケージをインストールしておきます。

rvm requirementsコマンドを実行すると、どのパッケージをインストールすべきかを表示してくれます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
$ rvm requirements
 
Requirements for Linux "Ubuntu 12.04.1 LTS"
 
NOTE: 'ruby' represents Matz's Ruby Interpreter (MRI) (1.8.X, 1.9.X)
             This is the *original* / standard Ruby Language Interpreter
      'ree'  represents Ruby Enterprise Edition
      'rbx'  represents Rubinius
 
bash >= 4.1 required
curl is required
git is required (>= 1.7 for ruby-head)
patch is required (for 1.8 rubies and some ruby-head's).
 
To install rbx and/or Ruby 1.9 head (MRI) (eg. 1.9.2-head),
then you must install and use rvm 1.8.7 first.
 
Additional Dependencies:
# For Ruby / Ruby HEAD (MRI, Rubinius, & REE), install the following:
  ruby: /usr/bin/apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion pkg-config
 
# For JRuby, install the following:
  jruby: /usr/bin/apt-get install curl g++ openjdk-6-jre-headless
  jruby-head: /usr/bin/apt-get install ant openjdk-6-jdk
 
# For IronRuby, install the following:
  ironruby: /usr/bin/apt-get install curl mono-2.0-devel
 
# For Opal, install the following:
  opal: /usr/bin/apt-get install nodejs npm

普通のRubyをインストールする場合には、19から20行目に表示されているパッケージが必要になります。

次のように、apt-get installコマンドでパッケージをインストールしておきます。

$ sudo apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion pkg-config

ステップ3. Rubyをインストールする

rvmコマンドを使って、Ruby 1.9.3をインストールします(かなり時間がかかります)。

$ rvm install 1.9.3

rvmコマンドが完了したら、イントールされたRubyのバージョンを確認しましょう。

$ ruby -v
ruby 1.9.3p362 (2012-12-25 revision 38607) [i686-linux]

whichコマンドを使えば、rubyが~/.rvmの下にインストールされていることがわかります。

$ which ruby
/home/cond/.rvm/rubies/ruby-1.9.3-p362/bin/ruby

rvmを使って複数バージョンのRubyをインストールしている場合には、rvm listにより、インストールされているRuby処理系の一覧が表示されます。

$ rvm list
 
rvm rubies
 
=* ruby-1.9.3-p362 [ i686 ]
 
# => - current
# =* - current && default
#  * - default
 

この例では、1つのバージョン(1.9.3-p362)だけがインストールされていることがわかります。

複数バージョンがインストールされている場合には、rvm useコマンドを使って、使用するRubyを切り替えることができます。

$ rvm use 1.8.7

また、--defaultオプションを指定すれば、そのバージョンがデフォルトになります。

$ rvm use 1.9.3 --default
Using /home/cond/.rvm/gems/ruby-1.9.3-p362

ステップ4 RubyGemsをインストールする

rvmコマンドを使って、RubyGemをインストールします。

$ rvm rubygems current

インストールされたgemのバージョンを確認します。

$ gem -v
1.8.24

ステップ4 Railsをインストールする

gemコマンドを使ってRailsをインストールします(結構時間がかかります。)

$ gem install rails

gemコマンドが終わったら、railがインストールされていることを確認しましょう。

$ rails -v
Rails 3.2.11

これで、Ruby on Railの環境が構築できました。

MySQLの文字コード関連の設定を調べる方法

Updated:

前のエントリに引き続きMySQLについての話です。今回は、文字コードの設定を確認するためのコマンドを紹介します。

文字コード関係の設定を表示する

次のコマンドを実行すると、文字コードに関する設定が表示されます。

mysql> show variables like 'character_set%';

前回のエントリで書いたように、Ubuntuでは特に何もしないと、MySQLのデフォルトの文字コードはlatin1になっています。ですから、次のように表示されます。

mysql> show variables like 'character_set%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

前のエントリで説明したように、my.cnfにcharacter_set_server = utf8という設定をしておくと、次のように文字コードがutf8となります。(character_set_filesystemはファイルシステムの文字コードで、binaryで構いません。)

mysql> show variables like 'character_set%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

このような設定になっていれば、文字コードを指定しないでcreate databaseやcreate tableを実行した時に、データベースやテーブルの文字コードがutf8になります。

データベースの文字コード設定を表示する

特定のデータベースの文字コード設定を知るには、次のコマンドを実行します。

mysql> show create database データベース名;

次の例は、mydbデータベースの文字コードを表示しています。「DEFAULT CHARACTER SET utf8」となっているので、文字コードがutf8に設定されていることがわかります。

mysql> show create database mydb;
+----------+---------------------------------------------------------------+
| Database | Create Database                                               |
+----------+---------------------------------------------------------------+
| mydb     | CREATE DATABASE `mydb` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+---------------------------------------------------------------+
1 row in set (0.00 sec)

テーブルの文字コード設定を表示する

特定のテーブルの文字コード設定を知るには、次のコマンドを実行します。

mysql> show create table テーブル名;

次の例は、mydbデータベースのusersテーブルの文字コードを表示しています。11行目の「DEFAULT CHARSET=utf8」から、文字コードがutf8に設定されていることがわかります。

mysql> show create table mydb.users \G
*************************** 1. row ***************************
       Table: users
Create Table: CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  `password` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

UbuntuでMySQLを使う際の文字コードの設定

Updated:

Ubuntu (12.04LTS)でMySQLを使う際に必要な設定についてまとめてみました。

このように、最初に1回だけ行なう設定や手順は、次に必要になった時には忘れていて、改めて調べ直すことが多いものです。

MySQLをインストールする

mysql-serverパッケージをインストールすれば、最新版のMySQL一式がインストールされます。(2013/1時点では、MySQL 5.5系です。)

$ sudo apt-get install mysql-server

MySQLの起動と停止

起動や停止といったいわゆる運用系の操作は、Ubuntuの標準的なやり方で行ないます。

# MySQLを起動する
$ sudo /etc/init.d/mysql start
 
# MySQLを停止する
$ sudo /etc/init.d/mysql stop
 
# MySQLを再起動する
$ sudo /etc/init.d/mysql restart
 
# MySQLの現在の状態を表示する
$ sudo /etc/init.d/mysql status

utf8を使うように設定する

Ubuntuでは、MySQLの設定ファイルmy.cnfは、/etc/mysql/my.cnfに置かれています。

Ubuntuでは、デフォルトではサーバの文字コードは(utf8ではなく)latin1になります。そのために、文字コードを指定せずにデータベースやテーブルを作成すると、文字コードがlatin1となり日本語(utf8)が文字化けしてしまいます。

日本語のデータを扱うならば、デフォルトの文字コードをutf8としておくとよいでしょう。それには、my.cnfに次の設定を追加します。

[mysqld]
character_set_server = utf8