Posts tagged

10月に読んだ本

1

先月少なかった分、今月は結構読めました。

なぜ、週4時間働くだけでお金持ちになれるのか?

なぜ、週4時間働くだけでお金持ちになれるのか?

ダメなら、さっさとやめなさい! ~No.1になるための成功法則~

ダメなら、さっさとやめなさい! ~No.1になるための成功法則~

レバレッジ勉強法

レバレッジ勉強法

スタバではグランデを買え! ―価格と生活の経済学

スタバではグランデを買え! ―価格と生活の経済学

佐藤可士和の超整理術

佐藤可士和の超整理術

パーソナルブランディング 最強のビジネスツール「自分ブランド」を作り出す

パーソナルブランディング 最強のビジネスツール「自分ブランド」を作り出す

SAMURAI佐藤可士和のつくり方

SAMURAI佐藤可士和のつくり方

無理なく続けられる年収10倍アップ時間投資法

無理なく続けられる年収10倍アップ時間投資法

勝手サイト 先駆者が明かすケータイビジネスの新機軸 (ソフトバンク新書 52) (ソフトバンク新書 52)

勝手サイト 先駆者が明かすケータイビジネスの新機軸 (ソフトバンク新書 52) (ソフトバンク新書 52)

プログラマー現役続行 (技評SE新書 12)

プログラマー現役続行 (技評SE新書 12)

月に100万稼げるドロップシッピング

月に100万稼げるドロップシッピング

図解 SEO対策がわかる (知りたい!テクノロジー)

図解 SEO対策がわかる (知りたい!テクノロジー)

ネット未来地図 ポスト・グーグル時代 20の論点 (文春新書 595)

ネット未来地図 ポスト・グーグル時代 20の論点 (文春新書 595)

ケータイハックス-いつでもどこでも仕事術 [マイコミ新書] (マイコミ新書)

ケータイハックス-いつでもどこでも仕事術 [マイコミ新書] (マイコミ新書)

9月に読んだ本

1

先月はあまり読めなかった。。。

あなたの会社が90日で儲かる!―感情マーケティングでお客をつかむ

あなたの会社が90日で儲かる!―感情マーケティングでお客をつかむ

3時間で「専門家」になる私の方法

3時間で「専門家」になる私の方法

大人が知らない携帯サイトの世界 ~PCとは全く違うもう1つのネット文化~ [マイコミ新書] (マイコミ新書)

大人が知らない携帯サイトの世界 ~PCとは全く違うもう1つのネット文化~ [マイコミ新書] (マイコミ新書)

デリヘルの経済学―すべてのビジネスに応用できる究極のマーケティングノウハウ極秘公開!

デリヘルの経済学―すべてのビジネスに応用できる究極のマーケティングノウハウ極秘公開!

そろそろ本気で継続力をモノにする!

そろそろ本気で継続力をモノにする!

BIALETTI Mukka Express ムッカカプチーノメーカー

1

誕生日プレゼントにカプチーノメーカーをもらいました。
普通のエスプレッソメーカーに一緒にミルクも入れられてエスプレッソとミルクフォームを同時に作る感じです。
作るのに少しコツがいるのでまだたまに失敗しますが、おいしいカプチーノが簡単に作れます。

うちは IH ですが真ん中が IH ではなく熱くなるやつ(なんていうのか分からない。。。)なのでそこで使用しています。

できたカプチーノは下のような感じです。

カプチーノ

本当は2カップ分できるのですが、写真のアマゾンのマグカップは大きいので2カップ分入ってしまいました。

お勧めは楽天で売っているペアのマグカップとコーヒー豆がセットになったセットです。
しかもアマゾンよりも安いですよ!



BIALETTI Mukka Express ムッカカプチーノメーカー(牛柄)2カップ用&ペアマグカップソーサー2客セット&自家焙煎珈琲

OpenPNE PHP で作成したプログラムを組み込む

1

OpenPNE 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月に読んだ本

1

8月に読んだ本のメモ

OpenPNE や XOOPS などを調査中なので、その関係の書籍を何冊か読みました。
「OpenPNEでつくる!最強のSNSサイト」はかなりよかったです。
もうひとつの「OpenPNEではじめる自作SNS入門」は少し初心者向けかも。
「XOOPSコミュニティサイト構築ガイド」はモジュールの自作方法も載っていてかなり参考になりました。

OpenPNEでつくる!最強のSNSサイト

OpenPNEでつくる!最強のSNSサイト

OpenPNEではじめる自作SNS入門

OpenPNEではじめる自作SNS入門

XOOPSコミュニティサイト構築ガイド

XOOPSコミュニティサイト構築ガイド

WEB+DB PRESS Vol.40

WEB+DB PRESS Vol.40

ご飯を大盛りにするオバチャンの店は必ず繁盛する―絶対に失敗しないビジネス経営哲学 (幻冬舎新書 し 4-1)

ご飯を大盛りにするオバチャンの店は必ず繁盛する―絶対に失敗しないビジネス経営哲学 (幻冬舎新書 し 4-1)

フラット革命

フラット革命

富裕層の財布―誰も知らないお金の使い方

富裕層の財布―誰も知らないお金の使い方

誰も知らなかったケータイ世代

誰も知らなかったケータイ世代

チームハックス 仕事のパフォーマンスを3倍に上げる技術

チームハックス 仕事のパフォーマンスを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 以降でないと副問い合わせが使用できないので注意してください。

※本運用ではインデックスを適宜作成しています。

WordPress コメントスパム対策プラグイン Akismet の設定

1

最近コメントスパムが増えてきたのでコメントスパム対策のプラグイン Akismet の設定をしてみた。

Akismet の対応バージョン

WordPress1.5.2 以降ではインストールすることにより使用可。

Akismet のインストール

WordPress2.0 以降は標準で付属しているのでインストールの必要はなし。

  • WordPress1.5.2 の場合は以下よりお好みのほうをダウンロード
    Akismet 配布元
    Akismet 日本語化
  • 解凍して plugins フォルダへアップロード。
  • 管理画面のプラグインのメニューから Akismet を有効化。

「Akismet は作動していません」という警告が表示されるので次のステップへ。

Akismet API-Keyの入手

WordPress.com にユーザ登録することにより API-Key が取得できる。

  • WordPress.com でユーザ登録する。
  • 入力したメールアドレス宛に WordPress.com よりメールが届く。
  • そのメールの最後の方に「API Key:」とありその後ろに12桁の英数字が書かれている。
  • 自分のWordPress管理画面->プラグイン->Akismetの設定よりAPI-Key を登録。

スパムの確認

捕らえたコメントスパムは管理画面->コメント->Akismet Spam より確認できる。

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月に読んだ本

0

7月に読んだ本のメモ
一番のお勧めは一番下に書いた「ビーサン屋げんべい物語」。
葉山にあるビーチサンダル専門店「げんべい」さんが出した本です。
たかがビーサンと侮れませんね。私も1年中愛用させていただいております。

Lifehacker インターネット時代のワークスタイル改善術!

Lifehacker インターネット時代のワークスタイル改善術!

2ちゃんねるはなぜ潰れないのか? (扶桑社新書 14)

2ちゃんねるはなぜ潰れないのか? (扶桑社新書 14)

「1日30分」を続けなさい!人生勝利の勉強法55

「1日30分」を続けなさい!人生勝利の勉強法55

PHPによるデザインパターン入門

PHPによるデザインパターン入門

WordPress標準ガイドブック―導入&基本操作からフルチューンまで

WordPress標準ガイドブック―導入&基本操作からフルチューンまで

モバゲータウンがすごい理由 ~オジサンにはわからない、ケータイ・コンテンツ成功の秘けつ~

モバゲータウンがすごい理由 ~オジサンにはわからない、ケータイ・コンテンツ成功の秘けつ~

WEB+DB PRESS 総集編 [Vol.1~36]

WEB+DB PRESS 総集編 [Vol.1~36]

レバレッジ・シンキング 無限大の成果を生み出す4つの自己投資術

レバレッジ・シンキング 無限大の成果を生み出す4つの自己投資術

ネットで人生、変わりましたか?

ネットで人生、変わりましたか?

iPhone 衝撃のビジネスモデル

iPhone 衝撃のビジネスモデル

ビーサン屋げんべい物語―葉山の片隅から世界を狙うオンリーワン商店


Go to Top