Posts tagged 本
10月に読んだ本
1先月少なかった分、今月は結構読めました。
なぜ、週4時間働くだけでお金持ちになれるのか?
ダメなら、さっさとやめなさい! ~No.1になるための成功法則~
レバレッジ勉強法
スタバではグランデを買え! ―価格と生活の経済学
佐藤可士和の超整理術
パーソナルブランディング 最強のビジネスツール「自分ブランド」を作り出す
SAMURAI佐藤可士和のつくり方
無理なく続けられる年収10倍アップ時間投資法
勝手サイト 先駆者が明かすケータイビジネスの新機軸 (ソフトバンク新書 52) (ソフトバンク新書 52)
プログラマー現役続行 (技評SE新書 12)
月に100万稼げるドロップシッピング
図解 SEO対策がわかる (知りたい!テクノロジー)
ネット未来地図 ポスト・グーグル時代 20の論点 (文春新書 595)
ケータイハックス-いつでもどこでも仕事術 [マイコミ新書] (マイコミ新書)
BIALETTI Mukka Express ムッカカプチーノメーカー
1誕生日プレゼントにカプチーノメーカーをもらいました。
普通のエスプレッソメーカーに一緒にミルクも入れられてエスプレッソとミルクフォームを同時に作る感じです。
作るのに少しコツがいるのでまだたまに失敗しますが、おいしいカプチーノが簡単に作れます。
うちは IH ですが真ん中が IH ではなく熱くなるやつ(なんていうのか分からない。。。)なのでそこで使用しています。
できたカプチーノは下のような感じです。
本当は2カップ分できるのですが、写真のアマゾンのマグカップは大きいので2カップ分入ってしまいました。
お勧めは楽天で売っているペアのマグカップとコーヒー豆がセットになったセットです。
しかもアマゾンよりも安いですよ!
BIALETTI Mukka Express ムッカカプチーノメーカー(牛柄)2カップ用&ペアマグカップソーサー2客セット&自家焙煎珈琲
OpenPNE PHP で作成したプログラムを組み込む
1OpenPNE PHP で作成したプログラムを組み込むときのメモです。
基本的に、/openpne/webapp_ext/ 以下に追加するファイルを置きます。
URLのパターン
OpenPNE の URL は下記のようになります。
- ?m=pc&a=page_hoge_foo
- ?m=pc&a=do_hoge_foo
携帯だと m=ktai とかになりますが、今回はPC のみ考えます。
page_hoge_foo のパターンはページを表示する
do_hoge_foo のパターンはモデルに対して処理を行う
page_hoge_foo でモデルに対して処理を行うこともできるが
MVC の意味がないかも。
?m=pc&a=do_hoge_foo のURL を追加する
/openpne/webapp_ext/modules/pc/do 以下に
hoge_foo.php を作成
hoge_foo.php
class pc_do_hoge_foo extends OpenPNE_Action { function execute($requests) { // ここに処理を書く } }
/openpne/webapp_ext/modules/pc/validate/do 以下に
hoge_foo.ini を作成
例えば ?m=pc&a=do_hoge_foo&id=10&no=20 のように id, no を GET で渡したい場合は
[id] type = "int" required = 1 [no] type = "int" required = 1
のように定義する。
こうしておくと do/hoge_foo.php 内で
$id = $requests["id"];
のようにバリデーションを通して値を取得できる。
?m=pc&a=page_hoge_foo のURL を追加する
/openpne/webapp_ext/modules/pc/page 以下に
hoge_foo.php を作成
hoge_foo.php
class pc_page_hoge_foo extends OpenPNE_Action { function execute($requests) { // ここに処理を書く } }
/openpne/webapp_ext/modules/pc/validate/page 以下に
hoge_foo.ini を作成
中身は do_hoge_foo の場合と同じ。
その他
/openpne/webapp_ext/lib
クラスファイルなどを置きました
自分で作成クラスをインクルードしたいときは /openpne/webapp_ext/lib
からインクルードします。
8月に読んだ本
18月に読んだ本のメモ
OpenPNE や XOOPS などを調査中なので、その関係の書籍を何冊か読みました。
「OpenPNEでつくる!最強のSNSサイト」はかなりよかったです。
もうひとつの「OpenPNEではじめる自作SNS入門」は少し初心者向けかも。
「XOOPSコミュニティサイト構築ガイド」はモジュールの自作方法も載っていてかなり参考になりました。
OpenPNEでつくる!最強のSNSサイト
OpenPNEではじめる自作SNS入門
XOOPSコミュニティサイト構築ガイド
WEB+DB PRESS Vol.40
ご飯を大盛りにするオバチャンの店は必ず繁盛する―絶対に失敗しないビジネス経営哲学 (幻冬舎新書 し 4-1)
フラット革命
富裕層の財布―誰も知らないお金の使い方
誰も知らなかったケータイ世代
チームハックス 仕事のパフォーマンスを3倍に上げる技術
すぐに稼げる文章術 (幻冬舎新書)
グーグル革命の衝撃
ソフトバンク端末から mailto で件名と本文を入れる
1携帯サイトを作成していて mailto リンクで件名と本文を指定するのに下記のように指定します。
<a href="mailto:メールアドレス?subject=件名&body=本文">
※件名と本文は URL エンコードする必要があります。
しかしソフトバンクの3GC 端末で件名と本文の日本語がメーラに渡せないという現象がありました。
そこで、日本語を UTF-8 に変換してから URL エンコードすると渡せるようになりました。
HTML ソース自体は Shift-JIS です。
ソフトバンクの開発資料を見直したのですが、そういう記述は見つけられませんでした。
どこかに書かれているのでしょうか?
それとももっとうまいやり方があるのかなぁ。
ランキングを取得するSQL
3ランキングを取得するSQL です。
同じスコアの場合は同じ順位にするなどの必要があるため結構面倒ですが、
下記SQL でイッパツで取得できます。
実際に携帯ゲームのランキングを取得するのに使用しているSQLです。
ranking テーブル
CREATE TABLE ranking ( id bigint(20) NOT NULL auto_increment, name varchar(20) NOT NULL, score bigint(20) NOT NULL, );
SQL
SELECT r1.name, r1.score, (SELECT count(r2.score) FROM ranking as r2 WHERE r2.score>r1.score)+1 as rank FROM ranking as r1 ORDER BY r1.score DESC LIMIT 10;
rank というカラム名で順位が計算されます。
同じスコアの場合は順位は同じになります。
上記SQL はトップ10を取得していますが、実際にはLIMIT句を変更することにより
ページング処理などで下位のランキングを見れるようにしています。
副問い合わせで順位を計算しています。
MySQL ではバージョンが4.1 以降でないと副問い合わせが使用できないので注意してください。
※本運用ではインデックスを適宜作成しています。
CakePHP cakeError で日本語メッセージを表示できない
0ビューに直接メッセージを日本語で書けば表示できるのですが、
動的にメッセージを変えたいような場合に、
$params = array( array('message'=>'エラーです') ); $this->cakeError('foo', $params);
とし cakeError に日本語のメッセージをパラメータとして渡しても表示できません。
原因は /cake/libs/error.php のコンストラクタで
$clean = new Sanitize(); $messages = $clean->paranoid($messages, $allow);
となっていて、パラメータをサニタイズしていて半角英数字以外は削除されてしまいます。
ちなみに Sanitize::paranoid メソッドは
/cake/libs/sanitize.php
function paranoid($string, $allowed = array()) { $allow = null; if (!empty($allowed)) { foreach($allowed as $value) { $allow .= "\\$value"; } } if (is_array($string)) { foreach($string as $key => $clean) { $cleaned[$key] = preg_replace("/[^{$allow}a-zA-Z0-9]/", "", $clean); } } else { $cleaned = preg_replace("/[^{$allow}a-zA-Z0-9]/", "", $string); } return $cleaned; }
のようになっています。半角英数字と $allow で許可した文字以外は削除されます。
前回の投稿「cakeError でエラー処理」のように自分で cakeError 処理を書いた場合には /app/error.php でコンストラクタを上書きして問題の部分をコメントアウトすることにより、日本語を表示することができるようになります。
/cake/libs/error.php の __construct メソッドを丸ごと /app/error.php にコピペして
parent::__construct();
と
$messages = $clean->paranoid($messages, $allow);
の2行をコメントアウト
こうすることにより日本語を表示することができるようになりました。
※サニタイズ処理をコメントアウトしていますので、その点は十分に注意が必要です。
7月に読んだ本
07月に読んだ本のメモ
一番のお勧めは一番下に書いた「ビーサン屋げんべい物語」。
葉山にあるビーチサンダル専門店「げんべい」さんが出した本です。
たかがビーサンと侮れませんね。私も1年中愛用させていただいております。