ホーム

野ログはノロキュアMaxHeart

OS X LionのMacbookAirを買ってからRailsの開発環境整えるためにやったことメモ

OS X Lionのセットアップ後やったことまとめとく。

なんかまだあんまり情報なくてSnowLeopardの記事とかみながら適当に。

とりあえずrvmとPow!でRailsとかの開発環境とか整えようと思ってます。
これ書きながらやってるんでグダグダですがとりあえず進めます。

・とりあえず初期起動まではチュートリアルに沿って行った。
・SafariからGoogleChromeインストールしてセットアップ
・Skypeのインストール
通知系設定
・Limechatのインストール
・システム環境設定>トラックパッド 弄る
・Dockの整理。しばらく使わなそうなの全部外した。
・ソフトウェアアップデート
・AppStore起動してアップデート

アプリケーションがLaunchPadになってる以外ここまで対して違いなかった。
Git入れようと思ってMacPorts入れようと思ったけど若干今までと手順変えないといけないみたい。

・とりあえずAppStoreからXcodeインストール

svnからmacportsインストールしようと思ったけど今はMacPortsじゃなくてHomebrewってのの方が良さそうなのでそっちに変更。

・ターミナル起動

・Homebrewをインストール

ruby -e "$(curl -fsSL https://gist.github.com/raw/323731/install_homebrew.rb)"

簡単!
でもXcodeがないよ!って怒られる。AppStoreからインストールされてると思ったらインストーラが入ってあるだけだった。

・Xcodeをインストール
LaunchPadからインストーラ起動してインストール
途中で起動したこともないiTunesを終了しろと怒られる。多分ソフトウエアアップデートで勝手にiTunesHelperというのが起動してたみたい。
アクティビティモニタからiTunesHelper終了させたらインストール無事完了

・gitをインストール

brew install git

Xcodeインストール前は上手くいかなかったけど、Xcode入れたら上手くいった。

・Homebrewをアップデート
gitで管理してるみたいでgitがあればアップデート可能みたい。

brew update

・よく使いそうなの適当にhomebrewでインストール

brew install wget
brew install readline
brew install zsh
brew install sqlite

Formulaの書き方とかも覚えた方がよさそう。。。

・ログインシェルをインストールしたzshに
chshしようとしたけどstandard-shellじゃないとか怒られた。
/etc/shellsに書いてないと駄目みたいなので

sudo vim /etc/shells

/usr/local/bin/zsh
を一番下に追加

そんで

chsh -s /usr/local/bin/zsh

・RVMのインストール

bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

.zprofileに設定追加

echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.zprofile

GCC指定した状態でインストールしないとRubyちゃんと動かないっぽので(ここ一番はまった)

echo "export CC=/usr/bin/gcc-4.2" >> ~/.zprofile

これやらずに先に進むとgem install rakeとかで

/Users/nog/.rvm/rubies/ruby-1.8.7-p352/lib/ruby/1.8/timeout.rb:60: [BUG] Segmentation fault

とかなる。

・RVM設定読み込むためターミナル再起動

・Rubyインストール

rvm install 1.9.2
rvm install 1.8.7

2011/07/30追記
上記Rubyのインストールだとreadlineが有効になってないためインストールしなおした

brew link readline #上でインストールしてるreadlineにリンク貼る
rvm install 1.9.2 -C --with-readline-dir=/usr/local
rvm install 1.8.7 -C --with-readline-dir=/usr/local

・Pow!インストール
MacでRailsやRackアプリやるならPow!超便利なので入れとく。

curl get.pow.cx | sh

・dotfiles引っ張ってくる。
個人リポジトリからガーッと持ってくる!!!

とりあえずこれでコピペ運動会は動いた。
Ruby環境は多分これでいけた。

iPhoneアプリだとかAndroidアプリだとかもまた後日やろう。

このエントリーをはてなブックマークに追加
はてなブックマーク - OS X LionのMacbookAirを買ってからRailsの開発環境整えるためにやったことメモ

tail -f と 多段grep

tail -f access.log

みたいな感じでログを追うことはよくありますよね。

いやでもほむほむに関するログだけでいいわー。って時は

tail -f access.log | grep homuhomu

みたいにしますよね。

青いのが関係するログはいらないわーって時更に

tail -f access.log | grep homuhomu | grep -v sayaka

みたいにしますよね。

grep1段階までなら問題ないんですが、多段のgrepをかました時にtail -f してるのにリアルタイムに出力されねー。
なんかまとめて表示されるんだけど・・・

ってなりませんか?

これgrepが出力先が標準出力かどうかを見てbufferを切り替えているかららしいです。

オプションで行単位のbufferに変えられるのでパイプに対して出力しているgrepに –line-bufferedとい指定してやると期待通りの動作になるみたいですね。

さっきのだと

tail -f access.log | grep --line-buffered homuhomu | grep -v sayaka

これで期待通りの動作になるようです。

このエントリーをはてなブックマークに追加
はてなブックマーク - tail -f と 多段grep

Macでトラックポイントキーボードをスクロールまで含めて使う方法

Macでトラックポイントキーボード使えても、どうせスクロールはちゃんと出来ないんだろ。

そう思っていた時期が僕にもありました。

Keyremap4macbookというキーボードカスタマイズユーティリティとトラックポイントキーボードを使えばMacでもThinkpadのようにセンターキーを押しながらの移動でスクロールを行うことが出来ます。

まずはこちらなどを参考にWindows用のキーボードでもあまり違和感がなく使えるような設定を行います。

そして最後に

•MiddleClick+CursorMove to ScrollWheelにチェック

その瞬間いつもの感覚でスクロールが可能に!

こんなジャストな設定があったんですね。素晴らしい。

Keyremap4macbookから調べるとすぐ見つかる情報なのに、トラックポイントキーボードをベースに探すと全然見つからない情報なので、きっとここに書くことで誰かの役に立つはず。

まぁ本当はMac使うなら完全に移行しちゃった方がいいんでしょうけどね。

まだまだどうしてもWindows(というかThinkpad)に未練のあるnogでした。

このエントリーをはてなブックマークに追加
はてなブックマーク - Macでトラックポイントキーボードをスクロールまで含めて使う方法

不正な(X)HTMLをNokogiriで簡単に修正する

お久しぶりです。

カリスマスクレイパーのnogです。こんばんは。

最近仕事で使う言語がPerlに変わったのでRubyを書く量が当社比3分の1以下くらいに減ったんですがRubyネタです。

Rubyでスクレイピングとかやってると非常にお世話になるNokogiriですが、それを別の場所で活用できる方法を紹介します。

ユーザーにHTMLを入力させてそれを出力するような場合、ユーザーがタグの閉じ忘れとかすると面倒ですよね。

ユーザー入力のHTMLの閉じ忘れはNokogiriを利用すれば簡単に修正することができます。

require 'rubygems'
gem 'nokogiri'
require 'nokogiri'

Nokogiri::HTML.fragment("<div><br>").to_s
# => "<div><br></div>"

Nokogiri::HTML.fragment("<div><p><br></div>").to_s
# => "<div><p><br></p></div>"

Nokogiri::XML.fragment("<div><br />").to_s
#=> "<div>\n  <br/>\n</div>"

HTML片を作るときはNokogiri::HTML.fragmentでXHTML作るときはNokogiri::XML.fragmentを使うといいよ。

簡単なネタだけど困ってるとき割と思い浮かばないんだよね。

Nokogiri通すとその後禁止タグ取り除いたりするのも簡単だよ!

このエントリーをはてなブックマークに追加
はてなブックマーク - 不正な(X)HTMLをNokogiriで簡単に修正する

Heroku環境でのRailsのエラーをおっかけるなら「Exceptional」

Herokuを利用することで非常に簡単にRailsアプリを公開出来るようになりました。

Heroku上の環境では通常の環境でのproduction.logにあたるものを100行分しか見ることが出来ず、運用中のエラーをproduction.logから知るというのはなかなか難しいものがあります。

Rails公式で提供されているもので ExceptionNotificationというプラグインも存在するのですが、メールの送信環境を別に用意しなければならないHerokuでは若干めんどくさいです。

そこでHerokuのアドオンで提供されているExceptionalを利用すると非常に便利です。

Exceptionalを利用することでエラーの通知をメール等の方法で受け取ることができます。

またExceptionalが同様のエラーまとめて管理してくれるため、ある程度エラーの発生が多いアプリでも大量のメールに困ってエラーメールの意味がなくなる。

といったことも発生しにくくなります。

もちろんそんな状況にならないようアプリを開発するのがベストです :)

またエラー単位での解決状況も管理してくれるため、エラー修正の管理も行いやすくなります。

下記のような形で管理してくれます。

皆様がよりよいHerokuライフを送れれば幸いです!

宣伝

現在Heroku上で無料で運営しているPubTasksをよろしくお願いします!

公開で簡単なタスク管理を行ったモチベーションを維持してやりたいことをちゃんとやろう!

というサイトです。

スクリーンショットを見ても分かるとおりExceptionalも利用しています!

このエントリーをはてなブックマークに追加
はてなブックマーク - Heroku環境でのRailsのエラーをおっかけるなら「Exceptional」

Adlantisで超簡単にバナーの種類増加による効果調整を行う方法

非モテのえがちゃんがバナーを大量に作ることでクリック率(CTR)が4倍以上になりますというような記事を書いていました。

えがちゃんということであまり印象の良くない方もいらっしゃるかもしれませんが、書いてあることはもっともなことです。

特に「インプレッション × CTR × CVR × 単価 × リピート率」という部分は

WEBメディアに関わる人間なら皆が意識しておくべきことだと思います。

ただメディアといわれるようなサイトの場合インプレッションの伸びがある程度落ち着くまでは、最初は他の項目を無視してでもインプレッションの増加を目指すべきです。

もちろんそれだけでは駄目である程度のインプレッションを獲得した後はその他の項目の増加を目指さなくていけません。

今回は広告配信メディア側からの視点でADサーバー利用とクリエイティブ数増大における広告効果のアップについて書きたいと思います。

広告効果を増大するには

さて、上の記事にあるバナーの数を増やすことで結果広告の効果を増大させるという話ですが、

特に1ユーザー辺りのPVが多いサイトは意識をした方がいいです。

一つの広告枠であっても単一の広告を表示し続けるものと、

CTR等で調整を行いつつ多くの広告を表示しているサイトでは広告効果に非常に大きく差が発生します。

純広告を取り扱っている広告枠ではなかなか難しい話なのですが、広告対象自体も出来る限り多く持って効果をみつつ調整を行った方が効果に大きく差がでます。

具体的にどうするか

先ほどから書いている結果をみて表示する広告を調整するという話ですが、実際に行うとなると多少面倒です。

えがちゃんはAnalyticsとOpenX(オープンソースの広告管理サーバ)を利用して効果の測定を行っているようですが、

Analyticsはバナーの効果を気にする人間は多くの人が利用していると思いますが、OpenXは人によっては利用するハードルが高いと思います。

しかしAnalyticsのみでは広告別のクリック率測定を行うことは出来ても、広告の表示を簡単に切り替えることは出来ません。

そこでASP型の広告管理サーバを利用することで自分でAdサーバーの運用を行わずに簡単に広告の管理と調整を行うことが出来ます。

僕はAdlantisという広告管理サーバを利用しています。

Adlantisで何が出来る?

adlantis

広告枠の管理

まず当然ですが広告枠の管理を行うことが出来ます。

Adlantisの広告枠はPC向け,スマートフォン向けはJavaScript, モバイル向けはimgタグもしくはサーバサイドでの取得からの配信を行うことが出来ます。

Adlantisの配信サーバは非常に高速な上、JavaScriptによる配信では遅延読み込みに対応しています。

広告の管理

当然ですが広告枠には広告を登録することが出来ます。

当然複数の広告を登録することが出来、

これらの配信比率を手動で設定もしくはAdlantis側でクリック率を最適化するようなアルゴリズムで配信率を調整してもらうことも出来ます。

えがちゃんのブログで元々話題にあがっていた2chまとめブログだとAmazonアソシエイト等が多く使われているイメージなのですが、

キャンペーンとしてAmazonアソシエイトを作りそこに多くのアフィリエイト広告を登録、

サイトのHTMLを弄ることなく管理画面から管理画面からクリック率を見て配信する広告の調整を行うことが出来ます。

また、Adlantisのクリック最適化アルゴリズム(クリック率と単価による調整かな。。。)にまかせて配信を行うことも出来ます。

人気のある2chまとめブログ等ですとある程度PVもあると思われるので、自動最適化の効果も期待できると思います。

また純広告を頂くことが出来た場合、その広告枠を純広告の期間の間だけそちらの広告に切り替えることも非常に簡単に出来ます。

もちろん純広告の方でも頂いたクリエイティブをクリック率で調整して表示することが出来ます。

実際何がよかった

僕はAdlantisを利用していますが、広告配信サーバを利用する利点を書きたいと思います。

効果の自動効率化が出来る

広告の表示調整による効果の最大化は、収益効率の最大化に非常に重要です。

Adlantisを利用してクリエイティブ表示率の調整は最高の効果ではないかもしれません。

ですが、毎日自分で効果を調整するのと比べ、非常に手間が少なく効果の増大を狙えます。

サービス運営、メディア運営と広告管理を綺麗に分離できる

しっかりとしたサイトではあまりないと思いますが、立ち上げたばかりのサイトだとありがちなことだと思い込んでいるのですが…

広告タグ張り替えといて!いつからいつまでこの広告表示して!!

等の非常にわずらわしい作業とオサラバ出来ます。

またブログ等の運営でもテンプレートのHTMLタグと睨めっこしながら広告を埋め込む。といったことをする必要がなくなります。

同時に効果測定が出来る

広告効果の測定は非常に重要なことですが、なかなか大変です。

広告配信サーバを利用することで、全ての広告を同一のフォーマットで管理することが出来ます。

効果測定タグを埋め込めない広告についてはクリックのみの管理ですが、これだけでもまとめて管理出来る事は非常に有益です。

一緒にサイトやりたい人募集

えがちゃんの最後に仲間募集メソッドは凄く面白いので真似します。

日々悶々とWEBのことばかり考えて生活しています。

何か一緒にサイトをやりたい方、勉強したい方一緒にサイト作りましょう!

興味がある方は

i.love[at]cureblack.com
skype:s_noguchi
twitter:nog

まで連絡ください!

このエントリーをはてなブックマークに追加
はてなブックマーク - Adlantisで超簡単にバナーの種類増加による効果調整を行う方法

ブログ変更

最近Wordpressを利用する機会が増えてきたので自分のブログもWordpressに変えてみました。

これを機会に記事書くことが出来るようになればいいんだけど。

今までのブログは

http://old.cureblack.com/

過去記事はちゃんとリダイレクトされるようにしたつもり。

以下テスト

require 'time'
puts Time.now
import datetime
print datetime.datetime.now()
このエントリーをはてなブックマークに追加
はてなブックマーク - ブログ変更

ホーム

カテゴリー
Tag cloud
自分のサイト
twitter
メタ情報

ページの上部に戻る