CakePHPで簡単な管理画面を作ったので、認証をかけたいけど、UserテーブルつくってAuthComponentっていうのはめんどくさい。
複数人のアカウント制御できる必要もないし、そんなのオーバースペックだ。
つい先ほど、まさにこの状態になって、簡単に認証を設定できないかと
ネットの海をさまよっていると、やはりありました。
CakePHP 1.2 の Basic 認証設定があまりにも簡単すぎる
SecurityComponentを使ってController#beforeFillterでベーシック認証を設定するという方法です。
class HogeController extends AppController {
public $components = array('Security');
public function beforeFilter() {
$this->Security->loginOptions = array('type'=>'basic');
$this->Security->loginUsers = array('username'=>'password');
$this->Security->requireLogin('*'); // 全アクションを指定(特定アクションも設定できる)
}
}
確かにすごい簡単でした。
パスワードが平文というのが少し気になりますが、簡単な認証でしたらこれで十分ですね。
AUから発売された初のAndroid、IS01を購入してきました!

起動した状態

折りたたんだ状態

裏面
ヨドバシで予約して、受け付け開始の朝10時に気合いを入れて行ってきましたが、誰もいなくて(お客さんも店員さんも少ない)少し寂しくなりました。
# iPhoneの予約受付時は、平日昼で予約だけなのに行列ができて、この暇人どもが!と言う感じだったんですけどね。
まだ電源を入れただけで全然使えていませんが、以外と動きはなめらかで、ちょっとしたところが作り込まれていたりします。
ただ、少しナビゲーションに迷うところもありますね。「日本の携帯らしい」良いところがあるけど、肝心の日本の携帯を僕は使えないというのが問題?
購入目的は主に検証用なので、MusicFlyやカタぞうも対応させていこうと思います。
ヨコ画面専用なので、デザインを新しく作らないといけませんね。
カタぞうは、フロントカメラにも対応させたいです。
去る土曜日、期待のカメラアプリ「カタぞう」のベータ版をリリースしました!
http://katazou.bpsinc.jp

カタぞうは、型(カタ)で象(カタド)るカメラアプリ。
お気に入りのテンプレートを使って、面白い写真を簡単に撮影できます。
Androidマーケットからダウンロードできますので、是非お試し下さい。
iPhone版も、近日公開予定です。
よろしくお願い致します。
久々の技術ネタです。
Androidでデバッグ用のログを出力する際には
Log.d(String tag, String msg);
としますが、これで出力しているログは、このまま何もしなければリリース時にユーザーさんからも見えてしまします。
やはりデバッグ用のログが見えてしまうのは都合が悪いと思うので、
リリース時に少しのコストでこれを解消するTIPSをご紹介します。
方針としましては、
マニフェストファイルのis_debuggableがtrueの際にデバッグログの出力をオフにすることとします。
public class DeployUtil {
/**
* マニフェストファイルを読んでデバッグモードかどうかを取得
*/
public static boolean isDebuggable(Context context) {
PackageManager manager = context.getPackageManager();
ApplicationInfo appInfo = null;
try {
appInfo = manager.getApplicationInfo(context.getPackageName(), 0);
} catch (NameNotFoundException e) {
return false;
}
if ((appInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE) == ApplicationInfo.FLAG_DEBUGGABLE) {
return true;
}
return false;
}
}
public class Katazou extends Application {
private static boolean isDebuggable;
@Override
public void onCreate() {
// デバッグモードか調べる
isDebuggable = DeployUtil.isDebuggable(getApplicationContext());
}
}
public class LogUtil {
/**
* デバッグログを出力する マニュフェストファイルでデバッグモードになっていなければ出力しない
*/
public static final void d(String tag, String msg) {
if (Katazou.isDebuggable()) {
Log.d(tag, msg);
}
}
}
あとは、ソースコード中のLog.dを一括置換でLogUtil.dとすれば、
リリース時にis_debuggableをtrueにするだけで簡単にデバッグログをオフにすることができます。
参考
Android で自動オフできるログ出力
MusicFlyユーザーの皆さま。
MusicFlyでお気に入りに登録してあるアルバムを、あなたのブログ上でかっこいいスライドショーで配置できるようになりました。
あなたのブログをかっこよく彩るMusicFlyのブログパーツで、ぜひともMusicFlyを応援してください。
こちらがデモとなります。
導入方法
- アプリのオプションメニューから【情報】を選択し、【ブログパーツ】をクリックしてください。
- 表示されたダイアログにメールアドレスを入力してください。
- 入力したメールアドレス宛てにブログパーツのHTMLが送られますので、ご自身のブログ等にコピペしてください。
CakePHPでOAuthを使うのに、このライブラリが有名だと思います。
http://code.42dh.com/oauth/
MITライセンスなのが良いですよね。
ところが、これを使ったCakePHPのシステムで、debug=2の時は動くのに、debug=0にすると動かないという謎の問題に出くわしました。
止まる場所は、認証ページへのリダイレクトに使う、
$consumer->getRequestToken('http://twitter.com/oauth/request_token', $callback);
のあたりです。
ソースを追ってみたところ、OAuth.phpの以下の場所で止まっていました。
public function get_normalized_http_url() {
$parts = parse_url($this->http_url);
$port = @$parts['port']; // ←ここ!!
$scheme = $parts['scheme'];
$host = $parts['host'];
$path = @$parts['path'];
$port or $port = ($scheme == 'https') ? '443' : '80';
if (($scheme == 'https' && $port != '443')
|| ($scheme == 'http' && $port != '80')) {
$host = "$host:$port";
}
return "$scheme://$host$path";
}
いや、確かに、portというキーは無かったんですけど、
そのための@演算子だし、そもそもこんなのでFatal Errorになるはずもなく。
要するに、PHPエンジンの方のバグなのか、謎ですね・・・
解決策は以下。
public function get_normalized_http_url() {
$parts = parse_url($this->http_url);
//== add this ==
if (!array_key_exists('port', $parts)) {
$parts['port'] = (isset($parts['scheme']) && $parts['scheme'] == 'https') ? '443' : '80';
}
//== add this ==
$port = @$parts['port'];
$scheme = $parts['scheme'];
$host = $parts['host'];
$path = @$parts['path'];
$port or $port = ($scheme == 'https') ? '443' : '80';
if (($scheme == 'https' && $port != '443')
|| ($scheme == 'http' && $port != '80')) {
$host = "$host:$port";
}
return "$scheme://$host$path";
}
先日の記事でご紹介させていただいた日本Androidの会が開催する年二回のAndroidの祭典
Android Bazaar and Conference 2010 Springに出展してまいりました。
開催は10:00からだったのですが、われわれは8:00に会場に到着し、会場設営のお手伝いをさせていただきました。
そこで周りを見渡してみると、なんとスーツできてらっしゃる方がほとんどいない!
去年のイベントでは出展者のほとんどの方がスーツできていたと聞いていたので、意気込んで全員でスーツを着ていったのですが逆に少数派だったようです。
日中の蒸し暑さにヘコタレ、若干後悔しながらも、全員スーツ着用というブースも珍しかったので、それで目を惹けるのならOKと自分の気持ちに嘘をついて乗り切りました。
肝心の出展内容は告知通り、3つのエンターテイメントアプリケーションを展示、デモを行いました。
MusicFly2
音楽検索&視聴ができる次世代ミュージックプレーヤー!
カタぞう
誰でもその場でハッピーになれる21世紀の「プリクラ」!
イケメン☆チェッカー
あなたはイケメン?それとも・・・先端技術があなたのイケメン度を計測します
ありがたいことに、ブースを訪れる方々の波は途切れることなく、予想以上に多くの方が足を運んでくださりました。うれしい悲鳴のなか、へとへとになりながらも確かな手ごたえを感じ、有意義な時間を過ごすことができました。

イベント終了後の写真
最後になりますが、
本日弊社ブースに足を運んでくださったみなさま、
イベントの開催、運営をしていただい日本Androidの会のスタッフのみなさま
ありがとうございました!
お疲れ様でした。
Xperiaの解像度は480*854です。
しかし、以下のコードで解像度を取得すると、320*569と返ってくることがあります。
Display disp = getWindowManager().getDefaultDisplay();
int dispWidth = disp.getWidth();
int dispHeight = disp.getHeight();
こんな時の検索ワードは、ずばり「Xperia 569 320」ですね。
発売直後に既に回答が議論されていました。
http://groups.google.co.jp/group/android-group-japan/browse_thread/thread/5fad044c9b0429dd
要するに、minSdkVersion=”4″にしろということですね。
まあ、Android 1.5の機種はほぼ絶滅なので、特に問題はないんですが、なんだこれ・・・・
本日発売のAndroid携帯書籍『Android MASTER GUIDE』にて弊社のMusicFLyを紹介していただきました。

表紙のアイコンの中で一番大きい赤い音符のアイコンがMusicFlyのアイコンです。
目立つ所にあって、いいですね。
ありがたいことに音楽カテゴリーの最初の記事として掲載されています(80ページ)。
よろしければ、手にとってみてください。
神奈川在住の方は弊社で買い占めるかもしれないので、早めにお買い求めください。
弊社システムチームの改善によってMusicFlyの読み込み速度が改善され、操作が快適になりました。
MusicFlyをお使いのみなさま、ご不便をおかけしました。
取り急ぎご報告まで。