Re:

感銘高き名言は「1%のひらめきがなければ99%の努力は無駄である」(トーマス・エジソン)

カテゴリ:開発 > PHP

ローカル環境で開発ができるのはサーバを介さない即確認!メリットはあるものの、外部APIのコールバックがテストできないとか不便が付きまとう。

そんな訳で、リバースプロキシを設定する。


MacのXAMPPにはhttpd-proxy.confが入ってないん?他のOSでも今は含んでないのかな。

とりあえずhttpd.confの最後に追加

#Proxy
<IfModule mod_proxy>
ProxyRequests Off
<Proxy *>
Order deny, allow
Allow from all
</Proxy>
</IfModule>


クライアントの方(公開サーバ)でもProxyモジュールを有効にして<Proxy>ディレクティブでローカルIPをAllowして、VirtualHostの設定にProxyPass、ProxyPassReverseを追加すれば完了。


やはりいろいろヤりたいと思ったときに、(自宅に)固定IPのネット環境は欲しいよなぁーと感じたのであった。


それまではSoftBankが独自に割り当てたコードで扱われていた。

iOS5.xになってからUnicodeに準拠した?絵文字の扱いになったらしい。

だもんで、全く違うコードで飛んできます。


それにかなりバラバラのコードなので、、、それはそれで面倒だったりするんですが、それ以上に面倒なのがサロゲートペアと呼ばれ2文字で1絵文字が表現されてるところでしょう!

( ゚∀゚)・∵. グハッ!! 


四角1や国旗なんかがそう。

四角1の絵文字は、数字の1(\x31)と四角(\xe283a3)で表されます。

日本国の国旗の絵文字は、\xf09f87af のJと\xf09f87b5 のPで表されます。

JやPのように4バイトUnicodeであれば \xf0\x9f[\x00-\ff][\x00-\xff] でざっくりと削除しちゃえばいいんですけど(個人的にはちゃんと指定した)…四角1なんかは mb_strlen() で文字数カウントすると2が返ってきますからねー。

それに、晴れ(太陽)や雨(傘)、エクスクラメーションやクエッションマーク、コピーライトなんかは、そのまんまUnicode。


iOS4.xとマッピングさせたりする必要があったりなかったりして、でもとりあえず現状でiOS5.xの絵文字だけ除去って寸法。iOS4.xはBanしちゃおうぜ!w


まあ、MySQLの特定バージョン以上かつキャラセットをutf8mb4にしちゃえば格納できるので、新しいサービスとか環境セットアップから始まるならそれ良いんじゃね?って個人的には思う。

ガラケーとの絵文字の兼ね合いでマッピングさせたりなんだり、大変な苦労をしてるところもあるんだろうね。

ご愁傷様です。

 

per_times
180
(const or define)

user_id,life,expired
1,10,2011-05-29 07:49:00
(table user_life)

now
2011-05-29 07:45:00

expired - now
240
(sec.)

remaining
e.g.
_life = ceil((expired - now)/per_times) ※切り上げる。負は影響ないけど-1.9切り上げは-1ですよ、一応。
life - ((_life < 0) ? 0 : _life))


よくあるソーシャルアプリの体力に関して、実行毎にexpiredにper_timesを加算して更新することでlifeに対しての残が求まるという仕様の例。

DATETIMEが急にTIMESTAMPになってるとか細かいことは無視してください。

こういう値は固定値で持っておくとデータ処理が複雑になったり、意図しない値になったり、不必要なデータを記録し続けたり、更新処理が無駄に発生しかねないのでそういう仕様にしておくのが個人的には良いと思う。

もちろんテーブルはこのために正規化しておくべきだね!

間違ってもユーザマスタに持つことは避けたい。


もっと賢い方法もあるのかもしれないけど、これがオレ仕様の限界w


PHP_INI_ALLなので、どこでも設定可。

.htaccess
php_value session.save_path /var/tmp/pocketwarz.com
php_value session.cookie_lifetime 86400
php_value session.gc_maxlifetime 86400
php_value session.gc_probability 1
php_value session.gc_divisor 100

ケータイが主だったから、あまりセッションの細かいことは気にせず作ってきた。

デフォルトだと /tmp 配下に sess_ で始まるセッションファイルが生成されるのは環境共存においては不便だよねってことで、save_path をサービス毎に設定。

ついでにライフタイムを長めに。

save_path を設定しない限り、デフォルトの設定共有において他サービスで実行されるガベージコレクタによって、.htaccess の lifetime に関わらず消失してしまう(←概略)。

probability, divisor に関しては実行確率程度なので設定不要かと思うけど、一応。

↑このページのトップヘ