ペイパルでの事前承認支払いサンプル

昨今C2C(コンシューマtoコンシューマ)メディアを作りたいってお話を非常に良く聞く事が多いので一寸Paypalを使ってRails+Mongoidでサンプルを買いてみました。

Gemは active_paypal_adaptive_payment を使用します。

初期化

モデル

コントローラ

ソーシャルコマース

ソーシャルコマースって、てっきり
人の顔が見えるから買う時に少しだけ安心出来ますって事と

そもそもの物販の際の
売る相手の顔が見れますって事なんじゃないかなって思う。

だから、逆に人の顔が見えると売りづらい物
買いづらい物は

今までどうり、ECで良い気が
凄いする。

毎回忘れるからPaypalメモ。

今見ているURLを拡散する為だけのツールを作った

今見ているURLを拡散する為だけのツールを作った。 http://fun.sh/

likeitってラベルが付いてるリンクが
ブックマークレットになっているので
ブックマークバーにコピーして使える。

また、拡散したURLの閲覧回数も取得して
一覧出来る様にしておいた。

MacでRuby on Rails 環境をキレイキレイする方法

最近では、macportsも、rvmもオワコンらしいので
ちょっと環境を刷新してみました。

前にテキトーに、homebrewも入れてみたりとかも
してたので、両方とも削除する

使用しているディレクトとかを削除

sudo port -f uninstall installed
sudo rm -rf /opt/local
sudo rm -rf /usr/local
ruby -e "$(curl -fsSLk https://gist.github.com/raw/323731/install_homebrew.rb)"

だいぶ、強引だけど、これでキレイなbrewの出来あがり。

brew install readline
brew link readline
brew install mysql
brew install mongo
brew install git
brew install wget
brew install w3m
brew install tree

mysql,mongo は最後に出てくる
コマンドをコピペって自動起動させておく
後必要な物も入れる。

次に、rubyを入れる

git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zprofile
echo 'eval "$(rbenv init -)"' >> ~/.zprofile
git clone git://github.com/sstephenson/ruby-build.git
cd ruby-build
./install.sh
CONFIGURE_OPTS="--with-readline-dir=/usr/local" rbenv install 1.9.3-p0
rbenv global 1.9.3-p0
rbenv rehash

一寸強引だけど

とりあえずruby on rails
MongoDBとかMySQLとか使える環境が
瞬殺で出来あがります。

個人的なWebアプリケーションの設計手法 (C-R-P)

個人的なWebアプリケーションフレームワーク
取っている手法としては、

Configure - Resource - Process と言った形に分ていて

Configureが各処理を、HTTPとバインディングをしていて

あるURLリソースに関して、何がしかの処理を行うっと言った形で
Webアプリケーションを表現している。

bind(IndexResource).method(GET).uri('/index')
.process(Init)
.process(html.path('index.html'))

プロセスにて、MVCで有る所のViewを表現したり
リダイレクト等の、遷移を表現したりする。

リソースは、URLリソースをそのまま表現する

リソースが必要な情報に関しては、DIにて解決する
そっから先の、責務の分割については普通のオブジェクト指向的な
解法にて何とかする。

シンプルに綺麗に解決したければ
シンプルな仕組みで全てが解決される用にする。
レイヤが増えれば増える程に難しく。

Webって言うメモリライフサイクル
処理のライフサイクルを忠実に表現する方が
見通しは良くなると思う。

ユーザー追加

GRANT ALL PRIVILEGES ON *.* TO mgmt@"%" IDENTIFIED BY "";
GRANT ALL PRIVILEGES ON *.* TO mgmt@"localhost" IDENTIFIED BY "";
GRANT ALL PRIVILEGES ON *.* TO mgmt@"10.0.%.%" IDENTIFIED BY "";
GRANT ALL PRIVILEGES ON *.* TO mgmt@"192.168.%.%" IDENTIFIED BY "";
FLUSH PRIVILEGES;