南極の図書館

ペンギンが寝ていた…。

MacOSX LionでのRubyの扱い方、またはllvm-gccについて。

はじまりはgem install sqlite3-rubyが上手くいかなかったこと。
gemが悪いのかsqlite3が悪いのかと調べていったら、最終的な原因はLion(Xcode)のgccだった。
※以降、LionのXcodeを入れることでインストールされるgccをllvm-gccと記載する。

目次

  • 環境
  • 迷走の記録
  • Xcodeの更新
  • gccのインストール
  • 解決
  • 参考サイト

環境

今回の作業開始時の環境は以下の通り。

  • iMac Mid 2010(プリインストールはSnowLeopard)
  • Xcodeインストール済み
  • Ruby1.8.7
  • gem1.3.7
  • OSをSnowLeopardからLionに更新した

迷走の記録

備忘として、簡単なまとめ。

  1. gem install sqlite3-rubyでエラー。
  2. sqlite3をyumかMacportsでいれろと言われるが、port install sqlite3 +universalでエラー。
  3. portのためにXcodeを更新する。(数時間かかる)
  4. port install sqlite3 +universalは成功。
  5. それでもgem install sqlite3-rubyでエラー。
  6. 何が悪いのかわからず、実験としてrvmの1.9.2で試すとすんなり入る。これはこれで困る。
  7. rvmで1.8.7を入れたらsqlite3-rubyも入るんじゃないかと閃く。(systemのRubyはもう諦めよう。)
  8. rvm install 1.8.7は成功するが、gemコマンドで右のようなエラー。(略)/ruby/1.8/timeout.rb:60: [BUG] Segmentation fault
  9. 検索するとllvm-gccだと上記のエラーとなるらしいのでgccを入れる。
  10. rvm install 1.8.7をやり直し、sqlite3-rubyを入れると成功。
  11. もしや?と思いsystemのRuby(1.8.7)でsqlite3-rubyを入れると成功。


要するに、全部llvm-gccが悪い!
(逆に考えるとRuby1.8系が悪い(古い)、ということにもなるが。)


なお、rvmについてはこちら。
Rubyの複数バージョンを共存させるgem。rvmとpikについて - holyppの日記


sqlite3-rubyで何度も出たエラーはこちら。

iMac% sudo gem install sqlite3-ruby
Password:
Building native extensions.  This could take a while...
ERROR:  Error installing sqlite3-ruby:
	ERROR: Failed to build gem native extension.

/opt/local/bin/ruby extconf.rb
checking for sqlite3.h... no
sqlite3.h is missing. Try 'port install sqlite3 +universal'
or 'yum install sqlite-devel' and check your shared library search path (the
location where your sqlite3 shared library is located).
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
	--with-opt-dir
	--with-opt-include
	--without-opt-include=${opt-dir}/include
	--with-opt-lib
	--without-opt-lib=${opt-dir}/lib
	--with-make-prog
	--without-make-prog
	--srcdir=.
	--curdir
	--ruby=/opt/local/bin/ruby
	--with-sqlite3-dir
	--without-sqlite3-dir
	--with-sqlite3-include
	--without-sqlite3-include=${sqlite3-dir}/include
	--with-sqlite3-lib
	--without-sqlite3-lib=${sqlite3-dir}/lib
	--enable-local
	--disable-local


Gem files will remain installed in /opt/local/lib/ruby/gems/1.8/gems/sqlite3-1.3.5 for inspection.
Results logged to /opt/local/lib/ruby/gems/1.8/gems/sqlite3-1.3.5/ext/sqlite3/gem_make.out

Xcodeの更新

(2012/7/23追記)この項は行わず、次項の「gccのインストール」のみ行っても動作すると思います。急ぎでxcodeが不要の方は飛ばして下さい。


上記のとおり、gemだけじゃなくMacportsもエラーを出すし、どうしようか困っていた。
調べていると「LionにしたらXcodeは入れなおせ」と各所に書いているので入れ直す。
AppStoreから無料でインストールできるが時間がかかる。3Gほどあり、1時間どころじゃないのでしばらく放置した。
Mac App Store - Xcode
※↑リンクがうまくいかなければ「xcode app store」などで検索して下さい。


Xcodeを入れ直す理由は、Lionにするとgccやmakeが消えるからということ。これはひどい。
Macportsがエラーを出してたのもXcodeを入れ直すことで解消され、sqlite3がインストールできた。
(sudo port clean libeditしろとは言われたけど。)


そして、Ruby1.8系などを除けばこれで十分動くんだろうけど、実はここで入ったllvm-gccが諸悪の根源だった。

iMac% gcc --version
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

gccのインストール

port install sqlite3 +universal が成功するも gem install sqlite3-ruby のエラーメッセージは変わらず。
systemのRubyを消すのもはばかられるし、rvmで1.8.7を入れてメインにしようと考える。
結局それはllvm-gccのせいで失敗するのだが。
ログを取ってなかったのでllvm-gccを使って再現しようとしたら、今ではしっかり教えてくれて再現すらできなかった。

iMac% rvm install 1.8.7-head
The provided CC(/usr/bin/gcc) is LLVM based, it is not yet fully supported by ruby and gems, please read `rvm requirements`.


当初は rvm install 1.8.7-head は成功したように見え gem install sqlite3-ruby で [BUG] Segmentation fault というエラーが出ていた。
そこから検索するとllvm-gccが悪いという情報が出てくるので、gccをこちらからインストール。
kennethreitz/osx-gcc-installer · GitHub
readmeの OS X 10.7 Lion: GCC-10.7.pkg からダウンロードして実行するだけ。

そして環境変数CCを.bash_profileに書き、ターミナルを再起動する。

iMac% echo "export CC=/usr/bin/gcc-4.2" >> ~/.bash_profile

その場限りなら export CC=/usr/bin/gcc-4.2 とコマンドを打つだけで良い。

解決

sqlite3を入れるのにここまで苦労するとは思わなかった。
いろいろとやってきたが、結局、問題はllvm-gccだけだったのだ。

iMac% echo $CC
/usr/bin/gcc-4.2

iMac% ruby -v
ruby 1.8.7 (2011-02-18 patchlevel 334) [i686-darwin10]

iMac% gem -v
1.3.7
iMac% gem list

*** LOCAL GEMS ***

actionmailer (2.3.5)
actionpack (2.3.5)
activerecord (2.3.5)
activeresource (2.3.5)
activesupport (2.3.5)
i18n (0.4.2)
mime-types (1.16)
mysql (2.8.1)
rack (1.1.0, 1.0.1)
rails (2.3.5)
rake (0.9.0)
rest-client (1.6.1)
rubygems-update (1.3.7)


iMac% sudo gem install sqlite3-ruby
Building native extensions.  This could take a while...

#######################################################

Hello! The sqlite3-ruby gem has changed it's name to just sqlite3.  Rather than
installing `sqlite3-ruby`, you should install `sqlite3`.  Please update your
dependencies accordingly.

Thanks from the Ruby sqlite3 team!

<3 <3 <3 <3

#######################################################

Successfully installed sqlite3-1.3.5
Successfully installed sqlite3-ruby-1.3.3
2 gems installed
Installing ri documentation for sqlite3-1.3.5...

No definition for libversion

Enclosing class/module 'mSqlite3' for class Statement not known
Installing ri documentation for sqlite3-ruby-1.3.3...
Installing RDoc documentation for sqlite3-1.3.5...

No definition for libversion

Enclosing class/module 'mSqlite3' for class Statement not known
Installing RDoc documentation for sqlite3-ruby-1.3.3...
iMac% 

お疲れ様。

「スティーブ・ジョブズ2」読了

ジョブズ熱もいくらか冷めた頃ということで、書くには良い時期かな。
スティーブ・ジョブズの自伝『2』について。
『1』ではジョブズの幼少時代からネクストまで、主に人間性について書かれていた。
『2』ではアップルの復帰から、ジョブズの成し遂げた多くのことについて書かれている。

目次

・あるべき姿のキーボード
・アップルストア
選択と集中

あるべき姿のキーボード

『1』を読むとジョブズは変人を超えて、一般的にいう「どうしようもないヤツ」だと感じる。
ただ、一生を通して正しいものを作るという芯はブレず、情熱も最後まで失わなかった。

この学生に、マッキントッシュのキーボードにサインしてほしいと頼まれたジョブズは、自分が会社を追い出されたあと、マックに追加されたキーを外していいならと承諾。車の鍵を取り出すと、まず、かつて自分が拒否したカーソルキー、4つを取り除く。続いて、最上段に並ぶファンクションキー(F1,F2,F3……)も外してゆく。
「僕は、あるべき姿のキーボードを世の中に広め、世界を変えていきたいとおもっているんだ」
とまじめな顔で宣言すると、ジョブズは、見るも無残になったキーボードにサインした。(P23-24)

アップルに復帰する前のエピソードだが、これこそジョブズという人をよく表している。同時に、アップルが如何に迷走していたかも。
ジョブズには製品に対するビジョンがあり、ジョブズ抜きのアップルにはそんなものは無かった。
ただし、それではジョブズの方が正しいのかというと、一企業としてはそういうわけでもない。
事実『1』ではジョブズのビジネス上の失敗がいくつも書かれており、決して順風満帆ではないことがわかる。


ちなみに、ジョブズが関与しているはずの今のMacのキーボードにはカーソルキーもファンクションキーもある。
時の流れ、時の試練によって、今ではどちらも必要であると判断したのだろう。
今のMacの機能を考えると、それらがないと明らかにキーが足りなくなるし。
(Macではファンクションキーをコンビで押すことによって音量や画面の明るさの調節、音楽プレイヤーの操作などができる。)
私が知ってる中で、今買えてどちらもないのはHHKBProくらい。HHKBLiteにはカーソルキーがあって、私は重宝している。
参考 Happy Hacking Keyboard Lite2を買ったらWindows+Lが押せなくて - holyppの日記

アップルストア

本書でもう一つ取り上げたいのはアップルストアについて。
なぜなら、アップルのやっていることで、私が唯一納得できなかったものだからだ。
具体的には、銀座と渋谷にあるアップルストアの存在意義がわからなかった。


『誰が、わざわざ銀座や渋谷にまでいって、Macを買うんだよ』と思っていたのだ。


もしかして、儲かってるから道楽でやってるのではないかと思っていたくらいだ。
もちろんそれは間違いであり、アップルストアの存在意義と、その成り立ちについては『2』にしっかりと書かれている。
目的はやはり「わざわざ出向いてMacを買ってもらう」ためにあるわけではなかった。
私は郊外の地代の安いところに大きい店舗を構えたほうがいいと思っていたが、それに対する答えがそのまま書いてあった。

「ウチの製品を見に10マイルも運転させるのは難しくても、10フィート歩いてもらうことならできるはずだ」
「十分に入りやすい雰囲気を作れれば、通りかかったとき、興味を引かれて立ち寄るはずだ。製品を紹介するチャンスさえ得られればこっちのものさ」(P134)

これを見ると、これこそが「アップルらしい戦略」だと思えてしまうから不思議だ。
銀座や渋谷を歩く人が、ふらっと入ってくれればいい。『製品を紹介するチャンスさえ得られればこっちのものさ』ということだ。


そのアップルストア1号店は2001年5月19日、ヴァージニア州タイソンズコーナーにオープンした。
ジョブズはそのために店舗のプロトタイプを6ヶ月も作りこみ、そして壊し、また作り直した。
最初のプロトタイプは、パワーマック、iMaciBook、パワーブックと製品ラインごとの展示としていたが、そろそろ完成かという頃にロン・ジョンソンは「4種類のコンピュータを中心に製品を配置するのではなく、『人々がしたいであろうこと』を中心に配置するべきではないか」と訴える。
ジョブズは一度「6ヶ月も必死こいてやってきたのに、それを全部ぶん投げようというのか!」と声を荒げるが、後から「ロンが正しいのはあきらかだった」と言うようにオープンが遅れてもやり直すことを決める。

「我々は根本的な間違いを犯しているとロンは主張している。製品を中心にするのではなく、人々がしたいことを中心にレイアウトすべきというのが彼の考えだ。」(P139)

2000年の話だが、これは今でも通じるはずだ。
アップルストアは細部にもジョブズのこだわりが行き届いており、階段については特許を申請しているほど。
2010年にはジョブズが「この店は、単位面積あたりの売り上げで世界最高だ」と言うほどの店舗となった。


私が「道楽でやってんじゃないか」なんて思っていたのはとんでもない勘違いだったわけだ。
とはいえ、休日の銀座アップルストアは人が多すぎ、ごちゃごちゃしていてあまり行きたいものではないけれど。

選択と集中

最後にジョブズの選択と集中について。
ジョブズが復帰したときのアップルは製品の種類が多すぎた。
そこでジョブズは「友達にはどれを薦めるべきなんだい?」と尋ねる。すぐに答えが返ってこないことに対し、

「君たちは優秀だ。優秀な人間がこんなお粗末な製品に時間を無駄遣いしちゃいけない」(P87)

そしてホワイトボードに「田」と書き

「我々が必要とするのはこれだけだ」そう言いながら、升目の上には「消費者」「プロ」、左側には「デスクトップ」「ポータブル」と書きこむ。各分野ごとにひとつずつ、合計4種類のすごい製品を作れ、それが君たちの仕事だとジョブズは宣言した。(P88)

これがパワーマックG3、パワーブックG3、のちのiMac、のちのiBookとなるのだが、ここまでシンプルなメッセージを私は知らない。


他にも本書ではジョブズの最後の仕事まで、つまりiTunes、iPodそしてiPhone、iPadとクラウドについて、また闘病と家族についてもしっかりと書かれている。
大筋ではそうだろうなというところが多かったが、ここまで音楽が好きだということには驚く人もいるかもしれない。
ページ数も400を超え中身も濃いので、2011年の本としては一番だと思う。私は滅多にハードカバーの本は買わないのが、これは買って良かった。
『1』も読むべきだが、1冊だけというなら『2』の方が良いかも。


「スティーブ・ジョブズ1」読了 - holyppの日記

「スティーブ・ジョブズ1」読了

1を読み終わった。ジョブズの伝記ではあるが、私はウォズニアックが出てくる度に興奮した。
残念ながら、後半ではウォズはほとんど出てこない。その役割はジョン・ラセターが代わって引き受ける。
大きく見ると、前半はウォズのパトロンとして、後半はラセターのパトロンとして活動したことがジョブズの成功の素だった。
おそらく2ではそういう色が薄まり、ジョブズ自身の活動がメインとなっていくのだと思う。
ここでは、本筋とは違うが主にウォズに関する箇所について書いていく。

アタリのボーナス

ウォズは親から、エンジニアリングが世界で最も重要なものであること、正直であること、そして中庸が一番だということを教えられて育つ。
最初の有名なエピソードは、アタリでジョブズの仕事をウォズが手伝うシーンだろう。
ウォズは「複数のエンジニアが2〜3ヶ月かけてつくるゲーム」をたった1人、4日完徹で完成させる。
ただその天才性よりも「そのボーナスをジョブズがちょろまかした」というエピソードの方が有名で、それについてP101にいろいろと書かれている。
ウォズは「正直に言ってくれたらよかったのにとは思うよ。お金が必要だと言ってくれればぼくの分はあげたのに。彼は友達で、友達は助け合うものなんだから」と言っている。後述のIPOの件も含め、ウォズの人柄が表れている。

アップル設立

アップルIを作ったときも、ウォズはみんなにタダで配ろうと思っていた。
そこでジョブズが「売ったほうがいい」と言い、会社を作ることになる。
ウォズは当時貧乏だったが、お金が儲かるかどうかよりも、自分の会社が持てることに興奮する。

「自分たちがそんなことをすると思っただけで元気が出たよ。親友とふたりでいっしょに会社をはじめる。すごい。すっかりその気になったよ。やるしかないよね」


そしてウォズは電卓を売り、ジョブズは車を売ってアップルを設立する。
当時の二人がどんなものかはP115でロン・ウェインがこう言っている。

「まったく似てないふたりでしたが、パワフルなチームでした」
ジョブズは悪魔が憑いているのではないかと思うような言動をすることがあったが、逆にウォズはナイーブで、天使とたわむれているような人間だった。


かといって、ウォズは決して自分の能力に無自覚なわけではなく、役割分担をわかっていた。
ウォズの父が、ジョブズに「おまえはたいしたことをしていない。なにも作っていないじゃないか」と言うシーンがある。
ジョブズは泣きながら、パートナーシップを解消してもいいとウォズに提案するが、ウォズはそのままで良いと言う。


一方、さすがにギークらしく、ジョブズを相手に強く意見をいうこともあった。
アップルIIのとき、ジョブズは拡張スロットを2本にすると言ったが、ウォズは8本を主張した。

「ぼくが人と争うことはめったにない。でも、このときだけは違った。『どうしてもそうしたいのなら、どこかほかでコンピュータを手に入れろよ』って言ってやったんだ。」


開発者としては気持ちの良い言葉だ。こんなに良いものは自分以外に作れるわけがないというわけだ。
ただ、それに続けて「あのころのぼくは、こう言えるだけの立場にいた。でも、ずっとそうだったわけじゃない」とも言っている。
結局、アップルIIの拡張スロットは8本になる。
アップルのIPOのときも、ジョブズはとてもシビアだったが、ウォズは自分の株式を職位が高くない社員40人に安く売った。それは家を買えるくらいの額になった。
IPOの後は、あまりウォズの話は出てこなくなる。

その後

アップルIPO後、ジョブズは紆余曲折がありつつもマッキントッシュを作ることになる。
ウォズはしばらくアップルIIの部署で開発を続けるが、退職する(結局、アドバイザーとして留まることになる)。
ジョブズはアップルを追い出され、NeXT、ピクサーと活動の場所を変えていく。
NeXTでは結果的に失敗に終わり、ピクサーで資金が底を付きそうになる。
それでもジョブズはジョブズでありつづけ、ラセターとともにトイ・ストーリーを成功させる。
その間に結婚もするし、子供も生まれる。
そこまでが「スティーブ・ジョブズ1」で書かれている。


率直な印象を言うと、ジョブズはLSDもやるし風呂には入らないし嘘はつくし人の話を聞かない。
どうにもこうにもダメ人間という印象が拭えないが、強さがある。
ここぞというときの強さ、それに人を惹きつける力がある。
2は、アップルに戻るところから。ここからが本番だと思っているので、続けて、楽しく読んでいきたい。


MacOSXにmysqlとRedmine1.2.0をインストールする

iMacにRedmine1.2.0を導入した。
mysqlも入れていなかったので、Macportsでインストールを行った。
以下、作業ログとメモ。

今回行ったこと

mysql5(-server)のインストールと確認。
mysql5の初期化と設定。
mysql5の起動と接続確認。
指定されたバージョンのgemを3つインストール(mysql,i18n,rack)
データベースの作成。
Redmineの最小限の設定。
Redmineの起動(WEBrick)。

作業ログ

ダウンロードはこちら。
RubyForge: Redmine: Project Filelist


環境の確認。
Redmine1.2.0はRails2.3.11が必要だが、上記サイトから落とすとRailsは中に含まれているので意識しなくてOK

% gem -v
1.3.7
% rails -v
Rails 2.3.5

mysql5(-server)のインストール。

% sudo port install mysql5
(略)
% sudo port install mysql5-server
      • > Computing dependencies for mysql5-server
      • > Fetching mysql5-server
      • > Verifying checksum(s) for mysql5-server
      • > Extracting mysql5-server
      • > Configuring mysql5-server
      • > Building mysql5-server
      • > Staging mysql5-server into destroot
      • > Creating launchd control script
########################################################### # A startup item has been generated that will aid in # starting mysql5-server with launchd. It is disabled # by default. Execute the following command to start it, # and to cause it to launch at startup: # # sudo port load mysql5-server ###########################################################
      • > Installing mysql5-server @5.1.57_0
 ******************************************************  * In order to setup the database, you might want to run  * sudo -u _mysql mysql_install_db5  * if this is a new install  ******************************************************
      • > Activating mysql5-server @5.1.57_0
      • > Cleaning mysql5-server

確認。

% port info mysql5              
mysql5 @5.1.57 (databases)
Variants:             universal

Description:          MySQL is an open-source, multi-threaded SQL database with a command syntax very similar to mSQL.
Homepage:             http://www.mysql.com/

Library Dependencies: zlib, openssl, readline
Conflicts with:       mysql5-devel, mysql4
Platforms:            darwin
License:              GPL-2
Maintainers:          ryandesign@macports.org

インストール時の指示(上記参照)にしたがって初期化。

% sudo port load mysql5-server   
% sudo -u _mysql mysql_install_db5
Installing MySQL system tables...
OK
Filling help tables...
OK
(略)
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/opt/local/lib/mysql5/bin/mysqladmin -u root password 'new-password'
/opt/local/lib/mysql5/bin/mysqladmin -u root -h .local password 'new-password'
(略)

mysql5の設定。

% sudo cp /opt/local/share/mysql5/mysql/my-small.cnf /opt/local/etc/mysql5/my.cnf
Password:

下記を追加する。
% sudo vim /opt/local/etc/mysql5/my.cnf
[mysqld]
default-character-set=utf8
skip-character-set-client-handshake

[mysql]
default-character-set=utf8

起動と接続確認。

% sudo /opt/local/share/mysql5/mysql/mysql.server start
Password:
Starting MySQL
.. SUCCESS! 

% mysql5 -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.57 Source distribution
(略)
mysql> exit
Bye

% /opt/local/lib/mysql5/bin/mysqladmin -u root password '任意のパスワード'
% sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
Password:
org.macports.mysql5: Already loaded

gemのインストールと確認。
↓ちなみに、下記ではriとRDocで注意が出ているが問題が無いようで、コマンドもgem install mysql --no-rdoc --no-riで良いということ。

%sudo gem install mysql
Building native extensions.  This could take a while...
Successfully installed mysql-2.8.1
1 gem installed
Installing ri documentation for mysql-2.8.1...

No definition for next_result
No definition for field_name
...

% gem list mysql       
 *** LOCAL GEMS ***
mysql (2.8.1)

ここからはこちらを参考にした。ありがとうございます。
Redmine 1.1をCentOS5.5にインストールする手順 | Redmine.JP Blog


i18nとrack(指定のバージョン)をインストール。

% sudo gem install i18n -v=0.4.2
% sudo gem install rack -v=1.1.0

設定の確認。

% mysql5 -u root@
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       | /opt/local/share/mysql5/mysql/charsets/ |
 +--------------------------+-----------------------------------------+

データベースの作成。

% pwd
/Users/xxxxxxxx/dev/redmine-1.2.0

% mysql5 -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.1.57 Source distribution
(略)

mysql> create database db_redmine default character set utf8;
Query OK, 1 row affected (0.00 sec)

mysql> grant all on db_redmine.* to user_redmine identified by '任意のパスワード';
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)

mysql> exit;
Bye

もし、ここでうまくいかない場合は一回消して、障害を解消してからやりなおす。(上手くいったら不要)

mysql> drop database db_redmine ;
Query OK, 0 rows affected (0.01 sec)

redmineの設定。
host.example.jpの部分は、Redmineを実行するサーバのFQDNを設定する。

% vim config/email.yml               

  1 production:$
  2   delivery_method: :smtp$
  3   smtp_settings:$
  4     address: localhost$
  5     port: 25$
  6     domain: host.example.jp$
  7 $

% rake config/initializers/session_store.rb
% rake db:migrate RAILS_ENV=production     

後でpassengerにする予定だが、ひとまずWEBrickで起動確認する。

% script/server -d -e production
=> Booting WEBrick
=> Rails 2.3.11 application starting on http://0.0.0.0:3000


下記URLで起動の確認をする。
http://localhost:3000/
お疲れ様でした。

iPadのリモートデスクトップアプリ「Splashtop」で寝ながらニコニコメッセを使う

※環境はiPad2, MacOSX10.6.7, WindowsXP


こちら(iPad2を買うとSoftBank WiFiスポット利用が2年間無料 - やねうらお−よっちゃんイカを食べながら、息子語録を書き綴る)で知って導入してみたら、すごい神アプリだった。
前から「ベッドで寝ながらニコニコメッセしたい」と思ってたんだけど、わずか115円で実現してしまった。
スクリーンショットは全てiPad2のもの。)


f:id:holypp:20110531000053j:image

WindowsがそのままiPadの画面に。右下のアイコンを押すとキーボードが出てくる。


f:id:holypp:20110531000054j:image

iPadの他のアプリと同様にズームも可能、文字入力も問題無くできる。


f:id:holypp:20110531000055j:image

縦にもできる。文字入力時はこちらのほうがスッキリするかな。

特徴

115円。安い。本来350円らしいけど今は115円。
Windowsは上の画像の通り、Macでも問題なく動作することを確認した。
モードが二つあり、画面が綺麗だけど反応速度が遅いSHARPと、画像が少し荒くなって反応速度が良くなるSMOOTH。
SHARPで見る画面は本当に綺麗で、PCでもズームしたくなる。(上の画像は変換の影響もあり、実際よりずいぶん荒い。)
アプリケーションはリモートコンピュータ上で動作するので、Flashでもなんでも動く。
画面を投影して、キー操作だけ送っているイメージ。
アメーバピグも動く、ニコニコ動画も動く、それにネットゲームなども動くようだ。
ただ、遅延はあるので激しいアクションはできないと思う。
遅延時間はモードがSHARPなら0.5秒程度、SMOOTHで0.2秒程度と感じる。


なお、iPadを接続した状態でもPC側の操作はできる。
PCで操作しているとiPadの画面が0.5秒遅れでぬるぬると動く。

導入方法

簡単なので大雑把に。

iTunesでSplashtopを購入し、iPadと同期する。
・Mac(またはWindows)でSplashtopクライアントをインストールする。
・起動し、設定する。(PC/iPad


iTunesでSplashtopを購入し、iPadと同期する。

Splashtop Remote Desktop for iPad

こちらから。以上。


Mac(またはWindows)でSplashtopクライアントをインストールする。

404 | Page Cannot Be Found | Splashtopからクライアントをダウンロードする。選択肢はMac/Windowsの二つしか無い。
・Splashtop Streamer for Windows
・Splashtop Streamer for Mac
私の環境だけかもしれないが、ダウンロードがすごい低速で5Mbyteのダウンロードに10分近くかかった。


インストールは特に難しいことはなく、NextとかYesのようなボタンを押していけば完了する。
入力するのはパスワードくらい。(適当ですいません。)

起動し、設定する。(PC)

リモートコンピュータへのインストールと同時に起動されるはずだが、起動してなければ起動しよう。
他のアプリケーションと同様に、Windowsはスタート→すべてのプログラムの中に入っているし、Macはアプリケーションに入っている。
Macは右上に、Windowsはタスクバー右下に常駐する。クリックするとこうなる。


f:id:holypp:20110531000052j:image


設定タブには、「コンピュータ起動時に起動しますか?」「音声をリダイレクトしますか?」の二つの設定がある。
自動起動は有効にする。音声はお好みで。
ちなみに、私のWindowsXPでは音声が上手くリダイレクトされなかった。
そのため、上記設定をオフにして(すると両方から音声が出る)Windowsに接続してるスピーカーの電源を落とした。するとiPadだけ音が鳴る。
Macはリダイレクトしてくれた。


セキュリティタブはパスワードのみ。ネットワークタブはポート番号のみ。
全体を通して、設定項目は少ない。そして日本語が少しおかしい。

起動し、設定する。(iPad

iPad側でアプリを起動すると、自動でローカルにあるPCを探してくれる。
そのため、設定は特に無しでも使えるが、起動画面で右の「>」をクリックするといくつか設定ができる。


・コンピュータの名前
任意。デフォルトでPC名が入っている。


IPアドレス
自分でコンピュータを追加した場合のみ設定可能で、自動で見つけたPCではこの設定自体が無い。
ローカル環境以外のPCと接続するときに使うものだが、ローカルにあるPCを手動で追加しても問題無く接続できる。


・パスワード
ここに書いておけば、その後はパスワードの入力無しで起動できる。
ここに何も書かなければ、起動する度にパスワードを入力することになる。
セキュリティのことも考えて、お好みで。


・詳細
詳細とあるが解像度の設定のみ。以下の三択で、デフォルトは1024*768。
800*600 / 1024*768 iPadネイティブ / リモートコンピュータのネイティブ設定を使用
私は全て「リモートコンピュータのネイティブ設定を使用」にしている。


・起動後の設定
リモートデスクトップを起動した状態で、三本指でタップするといくつかの設定ができる。
SHARP/SMOOTHの切り替えもここで行う。




久しぶりに神アプリに出会えました。やねうらおさんに感謝します。

そろそろしっかりvimを使う。dotfilesのgithub管理とvundleの導入。

vimを使い始めて暫く経つのだが、なかなか初心者レベルを抜けられない。
そろそろしっかりvimを使ってみようと思う。


聞いたところ、dotfiles(.vimrcなど)はgithubで管理すると便利らしい。
また、vimのpluginはvundleで管理するのがナウいらしい。
今回はこの二つを実際に行ってみる。
なお、dotfilesはWindowsとMacで共有する。

目次

・vundleとは
・目的と方針
・dotfilesの管理とvundleの導入
・vundleを利用したプラグインのインストール

vundleとは

そもそも、vundleとは何か。
簡単に言うと、vimのpluginを管理するpluginである。
RubyのBundlerに影響を受けたらしい。(個人的にこれがポイント高かった。)
特徴は、pluginを.vimrcで管理すること。
.vimrcに必要な情報を書いておけば、vimのコマンドでpluginの導入及び更新ができる。
またディレクトリもpluginごとに配置され、管理しやすい。

目的と方針

今回の目的は二つ。
・MacとWindowsでdotfilesを共有し、githubで管理すること。
・pluginをvundleで管理すること。

そのために、Windowsのファイル名でgithubで管理する。
Macでは全てシンボリックリンクを作成する。
つまり、差異は柔軟な方(Mac)で吸収する。
その方が、何か問題があったときに対応しやすい。

dotfilesの管理とvundleの導入

上記方針の通り、.*rcをgithub管理用フォルダに移動してシンボリックリンクを作成する。
イメージしやすいように、最終的なディレクトリ構成を先に提示する。(一番左は$HOMEで、余計なファイルは)

f:id:holypp:20110515155159j:image

はじめに、ターミナルを起動してディレクトリとシンボリックリンクの作成を行う。

mkdir ~/dotfiles
mv  ~/.vimrc ~/dotfiles/_vimrc
mv  ~/.gvimrc ~/dotfiles/_gvimrc
ln -s ~/dotfiles/_vimrc ~/.vimrc
ln -s ~/dotfiles/_gvimrc ~/.gvimrc

次に、githubのwebでリポジトリdotfilesを作成する。
githubの使い方に不安があれば、こちらを参照のこと。
gitとgithubを使ってみる - holyppの日記


その後、再びターミナルに戻る。

#dotfilesをgithubで管理する。
cd ~/dotfiles
git init
touch README
git add README
git add _vimrc
git add _gvimrc
git commit -m 'first_commit'

#vundleを導入する。
git submodule add http://github.com/gmarik/vundle.git ~/dotfiles/vimfiles/vundle.git
git commit -m 'add_vundle'
git push origin master

#pluginディレクトリのシンボリックリンクを作成する。
ln -s ~/dotfiles/vimfiles ~/.vim

vundleを利用したプラグインのインストール

.vimrc(~/dotfiles/_vimrc)に下記の通り追記する。

set nocompatible
filetype off

set rtp+=~/vimfiles/vundle.git/        #vundleのディレクトリ
call vundle#rc()
Bundle 'Shougo/neocomplcache'        #Bundle...は使用するプラグインを書く。詳細はguthubのREADMEが詳しい。
Bundle 'Shougo/unite.vim'
Bundle 'thinca/vim-ref'
Bundle 'thinca/vim-quickrun'
filetype plugin indent on     " required!

vimを起動しコマンドを打つと、自動でインストールされる。

:BundleInstall

なお、更新する場合は!をつける。>:BundleInstall!
下記のログが出力されれば成功。

Installed bundles:
neocomplcache
unite.vim
vim-ref
vim-quickrun
Helptags: done. 4 bundles processed    

これらのpluginはgithubで管理しないため.gitignoreを作成する。

vi ~/dotfiles/.gitignore
#ファイルには1行だけ書いて保存する。
/vimfiles/bundle/
#複数PCで同期をとるため.gitignoreも管理する。
git add .gitignore
git commit -m 'add_gitignore'
git push origin master

ここまでで、Mac側の準備は完了となる。
Windows側の作業と、vundleでいれた各種pluginの設定に関しては別途記載予定。

別途→そろそろしっかりvimを使う。github+vundleを利用したWindowsとの同期。 - holyppの日記

私がiPad2発売日に、WiFi32GBのBLACKに決めた理由

iPad2は回線、容量、色の違いで合計12種類もあるため、買うことは決めてもどれがいいか迷ってしまう。
私はタイトルのものを入手したが、ここでその理由と、初日の使用感を書いておく。


iPad2購入について
・なんでWiFi32GBのBLACKなの?
・初日の使用感

iPad2購入について

当初は退社後に買おうと思っていたのだが、売り切れる可能性があると判断したので昼休みに秋葉原へ。
ヨドバシカメラは、12時過ぎにはWiFiは全て品切れということで、私は焦りながらいくつかの店舗を回った。
最終的にはソフマップMac館で買うことができた。時刻は12:20くらい。
安心して、さてtweetでもしようと思ったら、dankogaiさんも同じタイミングで同じものを買っていたようで、少し驚いた。

なんでWiFi32GBのBLACKなの?

結局のところ、一番人気は「白の64GB」だったようで、午前中から各地で売り切れの報告があがっていた。
発売前のwebでも、黒より白の方が圧倒的に人気があるようだったし、妥当な結果だったと思う。
私も「ここは白を買って自慢するべきか?」と少し考えたが、結局は自分が使うものなので、決めていたものを買った。


WiFiにした理由は、主に自宅で使うから。
もし外で使うようになって困ったら、そのときに(持ち歩けるWiFiなどを)検討する。
時間が経つとそのあたりのコストも下がってくるだろうし、今必要無いものは買わない。
プログラミングのYAGNIと同じで、どうせ使わないよ、って。
32Gにした理由も同じで、今は32Gあれば十分だから。
1年後に足りなくなったら、iPad3で64Gを買えばいい。


最後に、色。
これは、白の方がシャレオツであると思う。私はそう思うし、おそらく一般的な評価もそうだ。
さらに、iPad(1)との差別化ができる。白ということは、「2」だ。
それでも私が黒を選んだのは、実用性を気にして。
いくつか比較サイトを見たところ、白では「フレームが浮く」と感じた。
何を見ても白い縁が気になってしまう。
これは昼の時点でdankogaiさんも言っていた。

Dan Kogai
画像を見る時、より本体の存在感がなくなる方を< @willmonia blkにした理由はなんでしょうか?やはり(明るく見えるらしい)画質の面でしょうか。 RT @dankogai: #iPad2 入手なう。WiFi 32GB blk

追記:エントリも書かれてました。>404 Blog Not Found:news - Faster, Cheaper, Lighter, and Righter = iPad2


とはいえ、白という選択はアリだと思うし、むしろ白のほうが人気がある。
私もきっと「せっかくiPad2なのに、なんで白にしなかったの?」と何人かに聞かれると思う。

初日の使用感

まず、Echofonがぬるぬる動いて驚いた。
ニコニコ動画もぬるぬる動く。
私の一番の用途になりそうな電子書籍は、想像通り見やすくて安心した。


それに、ベッドの上でtwitterができるようになって、これは楽だなぁと感じた。
Youtubeニコニコ動画も寝ながら見れる、しかも快適に。
これは想像以上に気分が良いものだった。


以前買った本立て(↓)もiPad2をひっくり返すとしっくりくるし、いい感じ。
ブックスタンドを使って技術書の写経を楽にする - holyppの日記
こんな感じで使っている。カニ。

f:id:holypp:20110429000044j:image