はじめるRails3の写経も一段落したので、何かいいRails本ないかと思って調べてたら、これが評判よかったので買ってみた。
会社で買った人も多いみたい。Amazonの評価がやたら良かった。
↓の本と迷ったけど、難しそうだったので今回は見送り。↑の本を無事クリアできたら、次は挑戦しよう。
RailsによるアジャイルWebアプリケーション開発 第4版 | オーム社eStore(β)
ポエムがないほうのpplogです
はじめるRails3の写経も一段落したので、何かいいRails本ないかと思って調べてたら、これが評判よかったので買ってみた。
会社で買った人も多いみたい。Amazonの評価がやたら良かった。
↓の本と迷ったけど、難しそうだったので今回は見送り。↑の本を無事クリアできたら、次は挑戦しよう。
RailsによるアジャイルWebアプリケーション開発 第4版 | オーム社eStore(β)
(プログラムの方の)写経の話。
はじめるRails3(1)(2)の写経、二週目が大体終わった。
一周目では( ゚д゚)ってなってたところが少しだけ分かったりして大変楽しい。
二週目は演習問題で用意されてた「書籍管理アプリケーション」を作った。
はじめるRailsの本編で作るのは「タスク管理アプリケーション」で、その仕組をちょっと変えて「書籍管理アプリケーション」を作る、というのが演習問題で用意されている。
演習問題は答えが用意されてないので、管理するものを「タスク」から「書籍」に置き換えながら作る必要があって、ただ写経するだけの一周目よりも格段に意味がわかった。
とくにエラーが発生した場合に、答えのソースコードがないのでエラーメッセージから原因を調べたり、少し前のバージョンに戻してみて正常に動いてた時との違いを調べたりと、試行錯誤したのがよかったかもしれない。
これが写経ではなくてコピペでやってたら、エラーが出た時点ですぐに挫折してたと思うんだよなー。
エラー画面に負けない気持ちが生まれたのもちょっとは成長した証か。
さて、三週目に突入するか、他の本に手を伸ばすか。
リファクタリングできたと思ってコミットしたら、動かなくなってた。
と思って、git revert を試してみたらエラー出る。
うーむ、git reset で元に戻してみるもうまく動かない。
ということは、以前から動いてなかった?
思い切って随分前の状態に戻してみるか。
しっくりしない感じで一日が終わりそう。
ううむ。
—-
■追記
動いた。
やっぱり書きなおしたコードがおかしかった。
@がついてなくて期待したデータが取れてなかったというオチ・・・。
はーー、原因がわかってすっきりしたけど、HP削られた。
今日参加した技術者ランチで教えてもらった「minibufexpl.vim」をインストールしたのでメモ。
vimのバッファをタブ風に切り替えるプラグインだそうです。
http://www.vimpusher.com/plugins/290
.vimrcに以下を追記して:BundleInstall
Bundle 'thinca/vim-quickrun'
さらに、.vimrcにキーバインドの設定
"minibufexpl
let g:miniBufExplMapWindowNavVim=1 "hjklで移動
let g:miniBufExplSplitBelow=0 " Put new window above
let g:miniBufExplMapWindowNavArrows=1
let g:miniBufExplMapCTabSwitchBufs=1
let g:miniBufExplModSelTarget=1
let g:miniBufExplSplitToEdge=1
nnoremap <C-d> : bd<CR> " バッファを閉じる
nmap <Space> : MBEbn<CR> " 次のバッファ
nmap <C-n> : MBEbn<CR> " 次のバッファ
nmap <C-p> : MBEbp<CR> " 前のバッファ
画面の上の方に開いてるバッファ一覧が表示されるようになって、スペースキーで簡単に切り替えができる。
いやー、便利便利。
@lamanotramaありがとうございます!
プログラムの実行結果をvimの画面内で確認できるQuick-runっていうプラグインをインストールした。
プログラムの編集画面と実行画面を行き来する必要がなくなってとても便利。
http://www.vimpusher.com/plugins/45
.vimrcに以下を追記して:BundleInstall
Bundle 'thinca/vim-quickrun'
てな感じで、
書いては試し、書いては試し、というときに大変便利。
「:QuickRunもしくは、<leader>rで起動」と説明に書いてあったんだけど、<leader>rって何だろう。
と思って、調べてみたらバックスラッシュ()のことだった。
JIS配列のキーボードだと¥なのかな。
いやー、便利便利。
ブログを毎日更新しはじめて78日。
ブログを日々書いててめんどくさいのが、各サービスや知り合いのtwitterにリンクを貼ること。
ということでrubyでプログラム書いてみることにした、という話です。
blog.txtの中身を読み込んで、指定したキーワードがあれば、リンクを張った文字列に置換して出力する。
プログラムの名前はautolink.rb。
# -*- encoding: UTF-8 -*-
#ブログの下書きを読み込む
f = open('blog.txt')
str = f.read
#リンク貼りたいキーワードと変換後の文字列をここに書いていく
str = str.gsub('ペパボ','<a href="http://paperboy.co.jp">ペパボ</a>')
str = str.gsub('JUGEM','<a href="http://jugem.jp">JUGEM</a>')
str = str.gsub('30days Album','<a href="http://30d.jp">30days Album</a>')
str = str.gsub('ザ・インタビューズ','<a href="http://theinterviews.jp">ザ・インタビューズ</a>')
str = str.gsub('ケンタロさん','<a href="https://twitter.com/#!/kentarow">ケンタロさん</a>')
#出力
print str
オリジナルはGitHubで公開してますので、失笑してください(しないでください)。
autolink.rb at cc98ee9092d004b1668836ea749562097124f5c1 from pplog/misc – GitHub
とまあ、プログラムといったものの、gsubで文字列を置換していってるだけだし、プログラムっぽいループとかしてないし、書き方があまりにもイケてないことは自分が見てもわかるけど、他の書き方よくわからないし・・・。
うごけば正義!と思ってやってきたけど、もっと綺麗に書きたい・・・。
ということで別の書き方を模索します。
キーワードと置き換え後の文字列を配列にして、それをループしてごにょごにょすればいけるはず。
@banyanが作ってるVimpusherのコラボレータにしてもらいました。
デザインとかお手伝いする予定です。
以下、開発環境のセットアップメモ。
$ git clone git@github.com:banyan/Vimpusher.git vimpusher
mysqlが何とかかんとかで怒られた
Gem files will remain installed in /Users/pplog/Vimpusher/vendor/bundler/ruby/1.9.1/gems/mysql2-0.3.11 for inspection.
Results logged to /Users/pplog/Vimpusher/vendor/bundler/ruby/1.9.1/gems/mysql2-0.3.11/ext/mysql2/gem_make.out
An error occured while installing mysql2 (0.3.11), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.3.11'` succeeds before bundling.
そういえばずっとsqliteでやってきたので、MySQLインストールしてなかった。
$ brew install mysql
$ mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
$ sudo vi /etc/my.cnf
新規で作成した my.cnf に以下を書く
[mysqld]
socket = /tmp/mysql.sock
character-set-server = utf8
innodb_file_per_table
max_allowed_packet=64M
[mysql]
auto-rehash
default-character-set = utf8
[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set = utf8
$ mkdir -p ~/Library/LaunchAgents
$ cp /usr/local/Cellar/mysql/5.5.19/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/
$ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
バージョン(5.5.19)はインストールした時期でかわるだろうから要確認で。
mkdir -p の -p って、
引き数に指定した各々の directory で、存在しない親ディレクトリも含めて作成する。
ということらしい。勉強になった。
起動しているかどうかは以下で確認
$ ps aux | grep mysql
$ bundle install --path vendor/bundler
$ brew install pow
$ gem install powder
で、そのあと
$ rbenv rehash
$ powder link
Pow is not installed.
怒られる。
$ powder install
こっちをやったら、うまくいった。
$ rbenv rehash
$ powder link
Your application is now available at http://vimpusher.dev/
$ gem install resque
$ brew install redis
インストール完了後に表示される手順に沿って、redisが起動しておくようにする
$ mkdir -p ~/Library/LaunchAgents
$ cp /usr/local/Cellar/redis/2.4.6/homebrew.mxcl.redis.plist ~/Library/LaunchAgents/
$ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
起動してるかどうかの確認
$ ps aux | grep redis
今日やったのはここまで。また明日。
Railsで画像をアップロードできる簡単なアプリケーションを作りたいと思い、適当にググってみたけど挫折したという話です。
大抵うまくいかないときの方が学ぶこと多いからね。記録しとこ。
ということで、この記事を最後まで読んでも何もできません。
MacでImageMagickとRMagickをインストールする – アインシュタインの電話番号☎
という記事を見て、画像を扱ったアプリケーションを作ってみたいなー、と思い立った。
思い立ったが吉日という言葉がありますように、後先考えずやってみる。
$ brew install imagemagick
しばらく待ったら完了。便利な世の中になりましたね。
$ gem install rmagick --no-rdoc --no-ri
完了。いやー便利n(ry
Rails3での画像アップロードの実装(ImageMagick + Rmagick + file_column) – hogehoge foobar Blog Style5
こちらを参考に作ってみる。
画像を扱う、file_column というプラグインがあるらしくそれをインストール。
$ rails plugin install git://github.com/tekin/file_column.git
ひと通り写経した後、サーバーを立ち上げてファイルをアップロードしてみるも、サーバーが停止してしまう。
エラーメッセージをググってみると、プラグインのファイルを少し修正するといい、みたいな記事がひっかかったのでやってみるもダメ。
いくつかのサイトを回っていたら、file_columnよりもよさげなプラグインがあるみたい。
ということで、今の自分の手に負えないエラーで停止してしまうfile_columnを追いかけるのは諦めて、CarrierWaveを試してみることにします(これから)。
今日はプログラムの勉強と読書で一日が終わった。
昨日からGitHubでドットファイルを管理するようになって、MBPはrbenv、MBAはRVMというめんどくさいことになってしまってたのでrbenv+ruby-buildで統一することにした。
$ rvm implode
さようならRVM・・・
さ、次いくよー。気持ち切り替えていこー。
$ brew update
$ brew install rbenv
$ brew install ruby-build
.bash_profileにrbenvの設定を追記して、RVMの設定はコメントアウト(消してもいいか)
eval "$(rbenv init -)"
# if [[ -s $HOME/.rvm/scripts/rvm ]] ; then source $HOME/.rvm/scripts/rvm ; fi$
よくわからないけどこれも実行。
$ eval "$(rbenv init -)"
$ rbenv install
ってやるとインストールできるrubyのバージョン一覧がでてくるので、1.9.2-p290をインストールしようとすると
$ rbenv install 1.9.2-p290
ERROR: This package must be compiled with GCC, and we
couldn't find a suitable `gcc' binary on your system.
Please install GCC and try again.
As of version 4.2, Xcode is LLVM-only and no longer
includes GCC. You can install GCC with these binary
packages on Mac OS X:
問題発生。
Xcode4.2にするとRubyがインストール出来ない、っていうやつにはまってみた – KUROIGAMEN(黒い画面)
↑これが原因だったので、ここからGCCをダウンロードしてインストールした。
こんな画面が出て、GCCのインストール完了。
$ rbenv install 1.9.2-p290
今度は無事インストールできた。
完了したら、インストールしたrubyを使うように設定する。
$ rbenv global 1.9.2-p290
$ ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.1.0]
参考書見ながら作ってる pooklog/ でいつも通り rails sとかrails c とかしてもrails ないよと言われる。
RVM削除したから、なくなったってことかな。
$ gem install bundler
$ rbenv rehash
$ bundle install --path vendor/bundler #pathを指定しておくと他のやつと衝突しないのでおすすめだと教えてもらった。
.gitignoreに /vendor/bundler/ を追加しておく。
今見てる参考書が 3.0系なので3.0.10をインストール。
$ gem install rails -v 3.0.10
これでおっけーかな。いつもどおりの手順でサーバー立ち上がった。
終わり!
ターミナル力がかなりアップした気がする!
頭から湯気出そうなので、今日はもう帰る!