2014年3月16日日曜日

Rails でIPを取得するとき

RailsでIPを取得するとき、古い記事だと
    request.env["HTTP_X_FORWARDED_FOR"] || request.remote_ip
これで取れると書いてあります。

しかし、HTTP_X_FORWARDED_FORは、カンマ区切りで複数のIPが帰ってきてしまうので、使い勝手よくありません。
request.remote_ipも、いくつかのIP取得のメソッドの集合のようで、HTTP_X_FORWARDED_FORを含んでおり、カンマ区切りで帰ってくる可能性大。

そういうわけで、こっちを使うほうがいいかも。
    request.env["HTTP_X_FORWARDED_FOR"].split(",")[0] || request.remote_ip

メモ。

2013年12月5日木曜日

IE10の凄いバグ

IE10で
問題の署名:  問題イベント名:APPCRASH  アプリケーション名:****  アプリケーションのバージョン:****  アプリケーションのタイムスタンプ:4****
  障害モジュールの名前:MSHTML.dll  障害モジュールのバージョン:****
  障害モジュールのタイムスタンプ:****
こんなエラーが出てサイトが見れないという現象に悩まされました。
結局問題は、

<p>【テスト】テスト</p><img src="test.jpg" /> 
こんな感じの行の1文字目の【でした。

画像の直前の行の最初の1文字が【だったらIE10が落ちる。

<p>”テスト”テスト</p><img src="test.jpg" /> 
に変更して対応。

2013年10月28日月曜日

jQueryのajaxが、IEで動かなかった。

$.ajax({
url: '/login/items/test/'+id,
success: function(result){}
})

というように、ajaxを叩いてゴニョゴニョすることがよくあるのですが、IEで動かないとのことで調べましたところ、IEではキャッシュが効いて正常に動かなくなることがあったんですね。
そこで、ユニックスタイムを付けて解決。

$.ajax({
url: '/login/items/test/'+id+'?'+ parseInt((new Date)/1000),
success: function(result){}
})
もしくは、パラメータに以下を追加。
$.ajax({ cache: false})

メモメモ。

2013年9月13日金曜日

サーバのデータをS3にアップロードする

メモです。
大量のデータをS3にアップするために、cronで叩くためのファイル。


#!/bin/bash
AWS_ACCESS_KEY_ID='アクセスキー'
AWS_SECRET_ACCESS_KEY='シークレットキー'
export AWS_ACCESS_KEY_ID
export AWS_SECRET_ACCESS_KEY
export AWS_CALLING_FORMAT="SUBDOMAIN"
/home/s3sync/s3sync.rb -r -p --delete /home/webmaster/public_html/img/ バケット名:xxx

オプション
-r
再帰的
-p
公開状態
--delete
S3にアップしたファイルを削除



2013年9月10日火曜日

jQueryのajaxで、heightを調整しようとしたら潰れる

よくわからないタイトルになりましたが・・・
ajaxでsuccess時にhtmlを返してもらうわけですよ。
それをdevにほりこんで、その後に高さを調整する、そんな必要があったわけです。

$.ajax({
type:"GET",
url:url,
success: function(data) {
//devを書き換え
$('.target').html(data);
//高さを再計算
$('.target').carousel();
}
});
ところが、高さがうまくいかないんですよね。
潰れてしまうんです。
おかしいなーと思ったら、画像が悪さしていました。

画像が読み込まれるのが遅いので、画像のない状態のheight()計算されていました。
幸い画像が固定サイズだったので、<img src="" height=120 />で解決。

2013年9月3日火曜日

古代ローマから学ぶ。

紀元前753年に、イタリア半島の沼地に、羊飼いやゴロツキが集まった小さな集落ができました。
後にヨーロッパからアフリカまで支配する大帝国を築いたローマです。

その2代目の王になったのが、ヌマ・ポンピリウスです。



当時ローマは、初代の王ロムルスに率いられて、戦争に明け暮れ、危ないながらも勝利を重ねて勢力を伸ばしてきていました。
ゴロツキの集団が大きくなってきた今、ヌマはローマに法と秩序が必要であると考えます。

そこでヌマは平和の神殿を建立し、カレンダーを作り、法律を定め、神への儀式を定着させました。
礼節や、法に順ずる誓約、信義がローマ人に身についてくると、近隣諸国からの態度も変わっていきました。

こうしてヌマの在位中に力を蓄えたローマは、3代の王からまた大きく勢力を伸ばしていくことになります。


物事には、段階と、その段階において必要なことが違います。
ローマが成長を遂げる中で、次の成長に必要な準備期間が、ヌマの統治でした。


拡大路線を突き進んできたグリーがついに赤字に、なんていう記事が出ていましたが、成長段階に応じて何が必要かを考える必要がありそうです。
そうやって成長段階に応じて必要な対策を取りながら成長していけるスピードというのが、ビジョナリーカンパニーにいう20%成長なのかもしれませんね。



 








2013年9月2日月曜日

Guthubからcloneするときに怒られたメモ

とりえずCloneしてみたらエラー。
$ git clone git@github.com:****/****.git
Cloning into ****...
Permission denied (publickey). fatal: The remote end hung up unexpectedly

Githubに公開キーを登録するらしい。
なのでキーを作成。
#cd /root/.ssh/
#ssh-keygen -t rsa -f github
パスワードは空欄で行いました。
で、生成されたpubファイルの中身をコピーして、GithubのDeploy keysに保存。

次に、configを作成。
#vi config
Host github.com
User ****
IdentityFile /root/.ssh/github

最後に、cloneするディレクトリで、clone開始。