Dropboxの容量が48GB増えた話


突然”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にインストールする


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の下に置かれます。

実行結果:

$ 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コマンドを実行すると、どのパッケージをインストールすべきかを表示してくれます。

$ 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の文字コード関連の設定を調べる方法


前のエントリに引き続き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を使う際の文字コードの設定


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

新年のご挨拶


明けましておめでとうございます。本年もよろしくお願いいたします。

昨年は,久しぶりに,個人的な活動を再開した年でした。

7月には,初版から長年にわたり翻訳を担当させていただいている『初めてのPerl』の第6版が出版されました。(初版の日本語版の出版は1995年6月なので,17年も昔のこととなります。)

9月にはYAPC::Asia 2012に参加して,「Perlの勘所をマスターしよう! コンテキストとリファレンスを我が物に!」と題して話させていただきました(スライド動画)。YAPC::Asiaでは,Perlの産みの親であるLarry Wallさんと,久しぶりにお会いして話すことができました。

また,しばらく更新が滞っていたこのブログの更新も,(かなり不定期ではあるものの)再開しました。

個人サイトwww.kondoyoshiyuki.comも,Bootstrap.jsを使って,今風に(?)リニューアルしました。更新しやすいようにちょっとした仕組みを作ってみました。コンテンツはMarkDownで記述して,Gitで管理しており,git push webを実行すると,自動的にサイトに反映させるようにしています。しかし,仕組みを作ったことで満足してしまい,ほとんど更新していなかったりします。(ありがちな話ですけど。)

今年は,昨年以上に,できるだけ頻繁にブログを更新していこうと思います。また,サイトwww.kondoyoshiyuki.comのほうも,コツコツと内容を充実させていきますので,ご期待ください。

また,いろいろと新たに習得したい事も多いので,今年は,積極的に勉強会やセミナーに参加しようと思います。勉強会などで見かけたら,気軽に声をおかけください。

技術書も,読もうと思って購入したものの,積ん読状態になっているものが多いので,頑張って読んでいこうと思います。

以上,つらつらとまとまりの無い事を書いてしまいましたが,今年もよろしくお願いいたします。