WebkeepersのVPSプランにZend_Frameworkを入れる必要が出たため、入れてみた。
Pleskとか初めて触ったけどうざいね。。。
とりあえず普通に設置したけどPleskが何やら邪魔をしていたので、conf.dディレクトリからPlesk設定系を消した。
そして設置したけどうまくいかない。。。
どうやらPHPのバージョンの問題のようだ。。。
PHP5.1.6。。。
Zend_Applicationでエラーが出ている。。。
CentOS testing を利用すればPHP5.2.9を入れる事ができるとの情報ここのサイトから入手したので早速入れてみようと。。。
http://www.e-secure.co.jp/laboTechnical/?cat=3
しかし、yumが入っていない。。。
先に yumを入れる。
今回入れたのはこれ。
wget http://ftp.riken.jp/Linux/centos/5.4/os/i386/CentOS/yum-3.2.22-20.el5.centos.noarch.rpm
wget http://ftp.riken.jp/Linux/centos/5.4/os/i386/CentOS/python-elementtree-1.2.6-5.i386.rpm
wget http://ftp.riken.jp/Linux/centos/5.4/os/i386/CentOS/python-urlgrabber-3.1.0-5.el5.noarch.rpm
wget http://ftp.riken.jp/Linux/centos/5.4/os/i386/CentOS/python-sqlite-1.1.7-1.2.1.i386.rpm
wget http://ftp.riken.jp/Linux/centos/5.4/os/i386/CentOS/m2crypto-0.16-6.el5.6.i386.rpm
wget http://ftp.riken.jp/Linux/centos/5.4/os/i386/CentOS/rpm-python-4.4.2.3-18.el5.i386.rpm
wget http://ftp.riken.jp/Linux/centos/5.4/os/i386/CentOS/yum-metadata-parser-1.1.2-3.el5.centos.i386.rpm
wget http://ftp.riken.jp/Linux/centos/5.4/os/i386/CentOS/python-iniparse-0.2.3-4.el5.noarch.rpm
wget http://ftp.riken.jp/Linux/centos/5.4/os/i386/CentOS/yum-fastestmirror-1.1.16-13.el5.centos.noarch.rpm
wgetでダウンロードしたら rpm -ivh で各自入れていく。
もちろんyum-3*以外は依存するために入れるだけなので、yumより先に入れなければならない。
しかし、 yum-fastestmirror*はyumと同時に入れなければならない。
rpm -ivh yum-3* yum-fastestmirror*
てな感じに。
その後testingからPHPを入れてみたらうまくいった。
これでうまくZend_Frameworkも動く事が確認できた♪
2009年12月30日水曜日
2009年12月25日金曜日
JavaScript 0埋めされた数字をキャストする方法
'001250' といった0梅された文字列を parseInt('001250') などでキャストすると 0 になってしまいます。
そこでできるだけ短くで考えたのがこれ。
'001250'.replace(/^0+/, '').replace(/^$/, '0')
お尻の「.replace(/^$/, '0')」は置換して空になってしまった場合の処理です。。。
もっとスマートなのあるかな。。。
そこでできるだけ短くで考えたのがこれ。
'001250'.replace(/^0+/, '').replace(/^$/, '0')
お尻の「.replace(/^$/, '0')」は置換して空になってしまった場合の処理です。。。
もっとスマートなのあるかな。。。
2009年12月24日木曜日
JavaScript 0埋め
JavaScriptには0埋めに使えそうな関数が用意はされていない。
そこでこんな感じできる事を発見したのでメモ。
これが一番簡単ですね。。。
var month = 3;
var result = ('00' + month).slice(-2);
alert(result);
結果は03となる。
0を最大文字数分付けておいて、後ろから指定文字数切り出す。
'00'の0が2つなのは2で統一したかっただけです。
そこでこんな感じできる事を発見したのでメモ。
これが一番簡単ですね。。。
var month = 3;
var result = ('00' + month).slice(-2);
alert(result);
結果は03となる。
0を最大文字数分付けておいて、後ろから指定文字数切り出す。
'00'の0が2つなのは2で統一したかっただけです。
2009年12月15日火曜日
ZendFramework エラーメッセージをform内で制御する
form内でElementの生成等と行う際にエラーメッセージも設定したい場合下記のように行う事ができる。
ただし他言語対応の事を考えるとViewの方で制御する方が良いのかも。
$this->addElement('hidden', 'token_key', array(
'required' => true,
'validators' => array(
array(
'breakChainOnFailure' => true,
'validator' => 'Token',
),
)
));
$this->getElement('token_key')->getValidator('token_key')
->setMessage(
'トークンチェックができませんでした。',
Plugin_Validate_Token::TOKEN_IS_NULL)
->setMessage(
'不正なアクセスです。',
Plugin_Validate_Token::TOKEN_IS_NOT_MATCH)
;
ただし他言語対応の事を考えるとViewの方で制御する方が良いのかも。
$this->addElement('hidden', 'token_key', array(
'required' => true,
'validators' => array(
array(
'breakChainOnFailure' => true,
'validator' => 'Token',
),
)
));
$this->getElement('token_key')->getValidator('token_key')
->setMessage(
'トークンチェックができませんでした。',
Plugin_Validate_Token::TOKEN_IS_NULL)
->setMessage(
'不正なアクセスです。',
Plugin_Validate_Token::TOKEN_IS_NOT_MATCH)
;
2009年12月11日金曜日
Dell から Androidタブレット発表 ってほんと?
DELLがAndroidでタブレットPCを出すそうな。。。
出てもほしいとは思わないかも。。。 Androidって携帯が絶対くっついてくるのかな。。。
そうだったらちょっとほしいかも。SIMカードだけ入れたらいつでも携帯ってのはありかな。。。
http://www.itmedia.co.jp/news/articles/0912/11/news047.html
出てもほしいとは思わないかも。。。 Androidって携帯が絶対くっついてくるのかな。。。
そうだったらちょっとほしいかも。SIMカードだけ入れたらいつでも携帯ってのはありかな。。。
http://www.itmedia.co.jp/news/articles/0912/11/news047.html
2009年12月9日水曜日
自転車にナビとしてマップアプリを利用してみようと思った モバイルホルダー
マップアプリもバージョンアップしたので、前から買おう買おうと思って買ってなかったモバイルホルダーと呼ばれるアイテムを購入してみました。
今回実際に購入したモバイルホルダーはこれです。
自転車用携帯端末ホルダー「BICYCLE PHONE HOLDER」
FJK
FJKというメーカーは全く謎ですが、以前これを会社の人が購入していて見せてもらったら良い感じっぽかったのと、安いのでこれにしました。
絶対に買ってはいけないのは、サンワサプライのような手でカリカリっとバンドで固定するタイプですね。。。
あれは見るからに振動でズレそうなんですが、想像通りよくズレるようです。。。
今回の商品はネジで固定するので、しっかり固定できそうです。
自分の自転車はロードバイクなので、よくズレるはずなので。。。
買ったら他のブログで見た再度のスポンジを少し削って返しを作らなければ。。。
商品の到着は11日だそうなので、装着後にレビューしたいと思います。
ちなみに会社の人はスペーサー的なゴムを付ける事を知らなくてブランブランしてました。。。
そしてそのうち盗まれていました。。。
その後同じ場所でタイヤも違う人が盗まれてました。。。
今回実際に購入したモバイルホルダーはこれです。
自転車用携帯端末ホルダー「BICYCLE PHONE HOLDER」
FJK
FJKというメーカーは全く謎ですが、以前これを会社の人が購入していて見せてもらったら良い感じっぽかったのと、安いのでこれにしました。
絶対に買ってはいけないのは、サンワサプライのような手でカリカリっとバンドで固定するタイプですね。。。
あれは見るからに振動でズレそうなんですが、想像通りよくズレるようです。。。
今回の商品はネジで固定するので、しっかり固定できそうです。
自分の自転車はロードバイクなので、よくズレるはずなので。。。
買ったら他のブログで見た再度のスポンジを少し削って返しを作らなければ。。。
商品の到着は11日だそうなので、装着後にレビューしたいと思います。
ちなみに会社の人はスペーサー的なゴムを付ける事を知らなくてブランブランしてました。。。
そしてそのうち盗まれていました。。。
その後同じ場所でタイヤも違う人が盗まれてました。。。
2009年12月8日火曜日
ここがダメだよGoogleApps
実はGoogleのアカウントには色々な種類があるんですが、その中で今回はGoogle Appsでのアカウントを利用すると利用できないAndroidの機能を書きます。
・マーケット※Googleアカウントとの併用でカバーできる。
・マップマップ
他にもいくつかあったんですが。。。
思い出したら書きます。
・マーケット※Googleアカウントとの併用でカバーできる。
・マップマップ
他にもいくつかあったんですが。。。
思い出したら書きます。
マップがバージョンアップ♪
マップアプリがバージョンアップしました♪
立ち上げると新機能の案内が表示されます。
地図自体はそんなに変わっていませんね。
左下のLatitudeアイコンが無くなった?
レイヤという機能が増えた気がします。
渋滞状況が増えたのかな?
その他のレイヤをクリックしてみます。
マイマップがとても気になりますね~
クリック!!
ショック。。。
自分はGoogleAppsのアカウント使っているので、たまにこういう壁にぶち当たります。。。
ショック大です。。。
立ち上げると新機能の案内が表示されます。
地図自体はそんなに変わっていませんね。
左下のLatitudeアイコンが無くなった?
レイヤという機能が増えた気がします。
渋滞状況が増えたのかな?
その他のレイヤをクリックしてみます。
マイマップがとても気になりますね~
クリック!!
ショック。。。
自分はGoogleAppsのアカウント使っているので、たまにこういう壁にぶち当たります。。。
ショック大です。。。
2009年12月7日月曜日
Eclipse RSEを入れてみた。
まずElipseサイトから下記プラグインをダウンロードする。
http://download.eclipse.org/dsdp/tm/downloads/drops/R-3.1.1-200909160905/index.php
自分がダウンロードしたのは、RSE-runtime-3.1.1.zip
この中の、featuresとpluginsを既存Elipseディレクトリへ上書き追加する。
Eclipseを立ち上げる。
ウィンドウ >> パースペクティブを開く >> その他 >> リモート・システム・エクスプローラー
を選択してOKをクリック。
初期ではローカルしか表示されていないので、左エクスプローラーの何もないところで右クリックで 新規 >> 接続 などで追加。
今回はSSH接続を追加したかったので、SSHのみを選択して次へ
ホスト名等を入力してひとまず完了。
追加された接続情報にあるSftpファイルを右クリックして接続を選択。
ID、パスワードを入力してOKをクリック。
何やら確認画面が出るが適当にはいをクリックする。
これで接続ができる。
Sftpの下にはマイ・ホームとルートというのがあるが、これはマイホームは接続アカウントユーザーのディクトリ、そしてルートが/を表す事となる。
これだとまだ使いにくい場合はSftp右クリックの新規>>フィルターで自分がデフォルトとしたいパスを追加できる。
ローカルのファイルをサーバーにアップする時はローカルで右クリックコピーでサーバーで右クリックペーストいった感じになる。。。とても使いにくい。。。
どっちかというと直接サーバー上のファイルをいじる方に向いているので、最初からそういう目的なんですかね。。。
それでもいいんですが、その場合SVN使えないので残念です。。。
きっともっと良い使い方があるんでしょうね。。。
http://download.eclipse.org/dsdp/tm/downloads/drops/R-3.1.1-200909160905/index.php
自分がダウンロードしたのは、RSE-runtime-3.1.1.zip
この中の、featuresとpluginsを既存Elipseディレクトリへ上書き追加する。
Eclipseを立ち上げる。
ウィンドウ >> パースペクティブを開く >> その他 >> リモート・システム・エクスプローラー
を選択してOKをクリック。
初期ではローカルしか表示されていないので、左エクスプローラーの何もないところで右クリックで 新規 >> 接続 などで追加。
今回はSSH接続を追加したかったので、SSHのみを選択して次へ
ホスト名等を入力してひとまず完了。
追加された接続情報にあるSftpファイルを右クリックして接続を選択。
ID、パスワードを入力してOKをクリック。
何やら確認画面が出るが適当にはいをクリックする。
これで接続ができる。
Sftpの下にはマイ・ホームとルートというのがあるが、これはマイホームは接続アカウントユーザーのディクトリ、そしてルートが/を表す事となる。
これだとまだ使いにくい場合はSftp右クリックの新規>>フィルターで自分がデフォルトとしたいパスを追加できる。
ローカルのファイルをサーバーにアップする時はローカルで右クリックコピーでサーバーで右クリックペーストいった感じになる。。。とても使いにくい。。。
どっちかというと直接サーバー上のファイルをいじる方に向いているので、最初からそういう目的なんですかね。。。
それでもいいんですが、その場合SVN使えないので残念です。。。
きっともっと良い使い方があるんでしょうね。。。
2009年12月3日木曜日
Zend_Db で LIKE検索する場合quoteだけでは不十分である
LIKE検索の場合 % や _ なんかは前に\なんかを付けてESCAPEする必要がある。
しかし、Zend_DbのアダプタにはそんなLIKE用のlikeQuoteやlikeEscapeといったようなメソッドが無い。。。
用意されていたのはこの3つ
quote()
quoteInto()
quoteIdentifier()
quoteIntoはちょっと使い方が違うので除くと2つ。
もちろんこの2つともそんな用途には対応していない。
通常この手の処理であればquoteというよりescapeという名前を関数に付けそうなのですが、ダメですね。。。
もっと辿っていっても今回はPostgreSQLで検証しているのですが、ありません。。。
どうやらPHP::PDOにも無いようですし、こういうものなんでしょうか。。。
とりあえずは自作で専用のESCAPEを作る事にして、Ver2.0とかで追加される事を祈っておきます。。。
しかし、Zend_DbのアダプタにはそんなLIKE用のlikeQuoteやlikeEscapeといったようなメソッドが無い。。。
用意されていたのはこの3つ
quote()
quoteInto()
quoteIdentifier()
quoteIntoはちょっと使い方が違うので除くと2つ。
もちろんこの2つともそんな用途には対応していない。
通常この手の処理であればquoteというよりescapeという名前を関数に付けそうなのですが、ダメですね。。。
もっと辿っていっても今回はPostgreSQLで検証しているのですが、ありません。。。
どうやらPHP::PDOにも無いようですし、こういうものなんでしょうか。。。
とりあえずは自作で専用のESCAPEを作る事にして、Ver2.0とかで追加される事を祈っておきます。。。
2009年11月27日金曜日
JavaScript JQuery JqueryId を利用する際の注意
JQuery では 独自のIDを各オブジェクトに持たせて管理するようにしている。
これがちょっと勘違いしてしまいがちで、
foo
というものがあった場合に
$('li') で取得できる。
これは配列ライクに取得するので、 li == $('li') とはならない。
これは解りやすいんだけども、これと同じようにもし
$.data($(this)) という場合には $(this) != this となる。
雰囲気的には同一なものを参照するには $(this[0]) == this というニュアンスになる。
以下実際にハマったパターン。。。
$.data($(this).parent())
で全く違うIDが来るので何故。。。と思っていたらこうだったw
$.data($(this).parent()[0]
これすぐ忘れてしまう。。。
これがちょっと勘違いしてしまいがちで、
というものがあった場合に
$('li') で取得できる。
これは配列ライクに取得するので、 li == $('li') とはならない。
これは解りやすいんだけども、これと同じようにもし
$.data($(this)) という場合には $(this) != this となる。
雰囲気的には同一なものを参照するには $(this[0]) == this というニュアンスになる。
以下実際にハマったパターン。。。
$.data($(this).parent())
で全く違うIDが来るので何故。。。と思っていたらこうだったw
$.data($(this).parent()[0]
これすぐ忘れてしまう。。。
2009年11月26日木曜日
今回は下記プラグインを利用しました。
PHPにはPDT を利用しており PDT のバージョンは2.1 でした。
入れたプラグイン名は 「Smarty Support for PDT 」 です。
ダウンロードは下記URLより。
http://code.google.com/p/smartypdt/
ダウンロードページから
http://code.google.com/p/smartypdt/downloads/list
smartypdt-0_9_0.zip をダウンロードして解凍してできたfeaturesとpluginsディレクトリをecilpseディレクトリに保存しました。
※ecipseの中には上記2つのディレクトリは既にありますので、確認メッセージが出ると思いますが、ファイルは無いはずです。
PHPには
入れたプラグイン名は 「
ダウンロードは下記URLより。
http://code.google.com/p/smartypdt/
ダウンロードページから
http://code.google.com/p/smartypdt/downloads/list
※ecipseの中には上記2つのディレクトリは既にありますので、確認メッセージが出ると思いますが、ファイルは無いはずです。
ここが嫌だよPHPEclipse ※から始まる行の場合半角スペースの幅がおかしい。。。
「※」から行が始まる場合何故なのか「※」より前の半角スペースが通常の半角スペースの半分位になる。。。
何のためかさえも不明である。。。
現象を確認したのは拡張子.tplのHTMLです。
何のためかさえも不明である。。。
現象を確認したのは拡張子.tplのHTMLです。
ここが嫌だよPHPEclipse 黒背景にできない。。。
黒背景は結構やってる人が多いと思うだけどな。。。
目が疲れるので、黒背景モードは必ず用意していてほしい。。。
以外に用意されてないエディタ多いような。。。 日本だけ?
目が疲れるので、黒背景モードは必ず用意していてほしい。。。
以外に用意されてないエディタ多いような。。。 日本だけ?
ここが嫌だよPHPEclipse ファイル保存時に末尾の半角スペースが消えてほしい
自分はインデントはタブではなくて半角スペース4つでやってるんですが、EmEditorを利用している時はファイル保存時に行末尾の半角スペースは自動的に削除するという機能があったんですが、PHPEclipseには無い。。。
凄くスッキリしてよかったのにな。。。
凄くスッキリしてよかったのにな。。。
2009年11月25日水曜日
2009年11月19日木曜日
カレンダーアプリ Pure Glid Calendar Widget を入れてみた
☆今回はかなりヒット商品です☆
前からカレンダーには不満だったので、これでちょっとスッキリしました♪
Laik Agenda Widget と組み合わせればさらにGOODです♪
Pure Glid Calendar Widget と一緒に作者で Laik Agenda Widget と良く似たのも出しているので、それを入れれば見た目もさらによくなると思います。
やっと色分けもできて帯が出るようになったのが本当にうれしい。。。
ラインの太さも今は最大の5ですが変更できるようです。
2009年11月17日火曜日
Flash ActionScript3 でtrim関数を作ってみた
PHPのtrimと同様の関数を作成してみた。
FlexBuilderだと mx.utils.StringUtil クラスにtrimメソッドが用意されているが、Flashには mx.utils.StringUtil が無いので。。。
PHPのtrimでも全角スペースは対象としていないので、今回はあえて全角スペースは対応させていたい。
内容は 先頭、末尾の 半角スペース or 改行 or キャリッジリターン を削除するというものになる。
▼サンプルと関数
var Str1 = "\n\n\r\r" + ' tests ' + "\n"
+ ' yrdydyry ' + "\n\n\r\r";
trace(Str1);
trace(trim(Str1));
function trim (str) {
var regexHead:RegExp = new RegExp('^[ \n\r]*');
var regexFoot:RegExp = new RegExp('[ \n\r]*$');
return str.replace(regexHead, '').replace(regexFoot, '');
}
FlexBuilderだと mx.utils.StringUtil クラスにtrimメソッドが用意されているが、Flashには mx.utils.StringUtil が無いので。。。
PHPのtrimでも全角スペースは対象としていないので、今回はあえて全角スペースは対応させていたい。
内容は 先頭、末尾の 半角スペース or 改行 or キャリッジリターン を削除するというものになる。
▼サンプルと関数
var Str1 = "\n\n\r\r" + ' tests ' + "\n"
+ ' yrdydyry ' + "\n\n\r\r";
trace(Str1);
trace(trim(Str1));
function trim (str) {
var regexHead:RegExp = new RegExp('^[ \n\r]*');
var regexFoot:RegExp = new RegExp('[ \n\r]*$');
return str.replace(regexHead, '').replace(regexFoot, '');
}
ラベル:
ActionScript3,
Flash
2009年11月16日月曜日
FlashDevelopを入れてみた
今回入れたのは FlashDevelop Ver3.0.6 です。
・まず本体は下記からダウンロード
http://www.flashdevelop.org/wikidocs/index.php?title=Main_Page
All Downloads ⇒ FlashDevelop 3.0.6 RTM released
・続いて Flex SDK を下記からダウンロード
http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+3
Stable Builds ⇒ 「3.4.1.10084 Fri Sep 18, 2009」 ⇒ Adobe Flex SDK
・ダウンロードしてきた lashDevelop-3.0.6-RTM.exe をインストール。
・ダウンロードしてきた flex_sdk_3.4.1.10084.zip をフォルダを作成して解凍
※自分の場合 D:\usr\local\flex_sdk_3.4.1.10084 へ解凍した
・FlashDevelopを起動して Tools ⇒ Program Settings で AS3Context を選択して Flex SDK Location という項目があるので、そこに D:\usr\local\flex_sdk_3.4.1.10084 を設定。
・次に FlashViewer を選択して External Player Path という項目があるので、そこにFlashPlayerのパスを設定する。
※自分の場合は「D:\usr\local\flex_sdk_3.4.1.10084\runtimes\player\win\FlashPlayer.exe」でした。
・まず本体は下記からダウンロード
http://www.flashdevelop.org/wikidocs/index.php?title=Main_Page
All Downloads ⇒ FlashDevelop 3.0.6 RTM released
・続いて Flex SDK を下記からダウンロード
http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+3
Stable Builds ⇒ 「3.4.1.10084 Fri Sep 18, 2009」 ⇒ Adobe Flex SDK
・ダウンロードしてきた lashDevelop-3.0.6-RTM.exe をインストール。
・ダウンロードしてきた flex_sdk_3.4.1.10084.zip をフォルダを作成して解凍
※自分の場合 D:\usr\local\flex_sdk_3.4.1.10084 へ解凍した
・FlashDevelopを起動して Tools ⇒ Program Settings で AS3Context を選択して Flex SDK Location という項目があるので、そこに D:\usr\local\flex_sdk_3.4.1.10084 を設定。
・次に FlashViewer を選択して External Player Path という項目があるので、そこにFlashPlayerのパスを設定する。
※自分の場合は「D:\usr\local\flex_sdk_3.4.1.10084\runtimes\player\win\FlashPlayer.exe」でした。
ラベル:
ActionScript3,
Flash
2009年11月12日木曜日
ActionScript3(Flash) ComboBoxのフォント色が変わならい。。。
1フレーム目でComboBoxのdataProviderをセットした後にすぐ文字色を変更しようとすると変わらない。。。何なんこれ。。。
RadioButtonのフォントカラーは変わるのに。。。
ソースはこんな感じ。
this._root.sendDate.dataProvider = new DataProvider(this.getDateList());
var format3 = new TextFormat();
format3.color = 0xCCCCCC;
this._root.sendDate.setStyle("textFormat", format3);
どうやら予め設置されたコンボボックスの色を変更するのがダメみたい。
4フレーム目で実行してみると色が変わるところを見たらオブジェクトが生成される前にTextFormatを指定しようとしているみたいだ。。。
コンポーネントインスペクタのパラーメータにフォントカラーとかがあったらいいのにな。。。
何か方法あるのかな。。。
addChildでrootに追加したものはコンボボックス生成の際に指定するから色がちゃんと変わってる。。。
フォームオブジェクトなんかは基本的にスクリプトから追加するのがセオリーって事なのかな。。。
結局クラス内でフォームオブジェクトを管理するようにした。
var textFormat:TextFormat = new TextFormat();
textFormat.color = 0xCCCCCC;
this._forms.sendDate = new ComboBox();
this._forms.sendDate.name = 'sendDate';
this._forms.sendDate.dataProvider = new DataProvider(this.getDateList());
this._forms.sendDate.dropdown.iconField = null;
this._forms.sendDate.labelField = "label";
this._forms.sendDate.textField.setStyle("textFormat", textFormat);
this._forms.sendDate.dropdown.setRendererStyle("textFormat", textFormat);
this._forms.sendDate.width = 130;
this._forms.sendDate.move(160, 469);
this._root.addChild(this._forms.sendDate);
こんな感じ。 。。
この時に気付いたんだけど、 rootにaddChildで追加してnameでインスタンス名付けてるのに、this._root.sendDateで参照できない。。。undefinedになる。。。
フレームも跨いで現れるし、どういう追加になってるんだろうか。。。
RadioButtonのフォントカラーは変わるのに。。。
ソースはこんな感じ。
this._root.sendDate.dataProvider = new DataProvider(this.getDateList());
var format3 = new TextFormat();
format3.color = 0xCCCCCC;
this._root.sendDate.setStyle("textFormat", format3);
どうやら予め設置されたコンボボックスの色を変更するのがダメみたい。
4フレーム目で実行してみると色が変わるところを見たらオブジェクトが生成される前にTextFormatを指定しようとしているみたいだ。。。
コンポーネントインスペクタのパラーメータにフォントカラーとかがあったらいいのにな。。。
何か方法あるのかな。。。
addChildでrootに追加したものはコンボボックス生成の際に指定するから色がちゃんと変わってる。。。
フォームオブジェクトなんかは基本的にスクリプトから追加するのがセオリーって事なのかな。。。
結局クラス内でフォームオブジェクトを管理するようにした。
var textFormat:TextFormat = new TextFormat();
textFormat.color = 0xCCCCCC;
this._forms.sendDate = new ComboBox();
this._forms.sendDate.name = 'sendDate';
this._forms.sendDate.dataProvider = new DataProvider(this.getDateList());
this._forms.sendDate.dropdown.iconField = null;
this._forms.sendDate.labelField = "label";
this._forms.sendDate.textField.setStyle("textFormat", textFormat);
this._forms.sendDate.dropdown.setRendererStyle("textFormat", textFormat);
this._forms.sendDate.width = 130;
this._forms.sendDate.move(160, 469);
this._root.addChild(this._forms.sendDate);
こんな感じ。 。。
この時に気付いたんだけど、 rootにaddChildで追加してnameでインスタンス名付けてるのに、this._root.sendDateで参照できない。。。undefinedになる。。。
フレームも跨いで現れるし、どういう追加になってるんだろうか。。。
ラベル:
ActionScript3,
Flash
Flash ActionScript3 文字色を変更してみよう
テキストを設置する。
次に設置したテキストをプロパティから「ダイナミックテキスト」へ変更する。
するとインスタンス名が付けれるようになるので、「name01」とでも付けておく。
次に1フレームでも何でもいいからステージ上に下記スクリプトを書く。
var format = name01.getTextFormat();
format.color = 0xFF0000; // とりあえず赤色
name01.setTextFormat(format);
実行すると色が変更されている。
まずname01のTextFormatというオブジェクトを取得して、そのオブジェクトには色々なプロパティがあるので、そいつを編集する。
そして編集したものを今度はセットしてやるというわけ。
その色々なプロパティはここを参考に
http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/text/TextFormat.html
次に設置したテキストをプロパティから「ダイナミックテキスト」へ変更する。
するとインスタンス名が付けれるようになるので、「name01」とでも付けておく。
次に1フレームでも何でもいいからステージ上に下記スクリプトを書く。
var format = name01.getTextFormat();
format.color = 0xFF0000; // とりあえず赤色
name01.setTextFormat(format);
実行すると色が変更されている。
まずname01のTextFormatというオブジェクトを取得して、そのオブジェクトには色々なプロパティがあるので、そいつを編集する。
そして編集したものを今度はセットしてやるというわけ。
その色々なプロパティはここを参考に
http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/text/TextFormat.html
ラベル:
ActionScript3,
Flash
Googleマップでプチ発見!!現在地が移動するじゃないか♪
Googleマップアプリでちょっとした発見をしました。
恐らくAndroid1.5の時は現在地ってメニューからクリックしても現在地を調べてはくれるけどそのまま携帯を持ったまま移動すると現在地マークは移動するけど地図はスクロールしてくれなかったはずなんです。
でもAndroid1.6 になってからは移動してくれるようになってました♪
でも地図上をクリックするとまた現在地をメニューからクリックするまでオートスクロールしませんけど。。。
何秒後にまたオートスクロールしだすとかって設定あったらいいのにな。。。
あとスポットが登録できたらな。。。
恐らくAndroid1.5の時は現在地ってメニューからクリックしても現在地を調べてはくれるけどそのまま携帯を持ったまま移動すると現在地マークは移動するけど地図はスクロールしてくれなかったはずなんです。
でもAndroid1.6 になってからは移動してくれるようになってました♪
でも地図上をクリックするとまた現在地をメニューからクリックするまでオートスクロールしませんけど。。。
何秒後にまたオートスクロールしだすとかって設定あったらいいのにな。。。
あとスポットが登録できたらな。。。
2009年11月11日水曜日
Google Maps Navigation でiPhoneより有利になれるか?
Android2.0 が出るにあたってもう一つ話題なのが、ナビアプリの「Google Maps Navigation」である。
どうやら名前の如くナビゲーションしてくれるアプリみたいなんですが、これがあればカーナビなんかがいらなくなるというものなようです。
ちなみにルート検索だけなら既にありますが、「Google Maps Navigation」ではストリートビューと合わせて表示するようなんです♪
日本にはどれくらいのタイミングで対応してくれるかは不明ですが、恐らくする??無理??お願いして。。。
Android2.0はマルチタッチにも対応するしAndroid機種も一気に来年増えるっぽいしiPhoneも再来年にはレア機になるんでしょうかね。。。
なってほしいですね。。。
今のHT-03Aはハード面でも課題が多いので、どんどん色んな企業が切磋琢磨で頑張ってほしいです♪
そしてiPhone今までお疲れさまでした…。
携帯なら自転車でロードバイクとか流行ってるし載ってる人にはモバイルホルダー付けてやれば結構使い道あるんじゃないでしょうか?バイクにも便利だろうし☆
http://internet.watch.impress.co.jp/docs/news/20091029_325068.html
どうやら名前の如くナビゲーションしてくれるアプリみたいなんですが、これがあればカーナビなんかがいらなくなるというものなようです。
ちなみにルート検索だけなら既にありますが、「Google Maps Navigation」ではストリートビューと合わせて表示するようなんです♪
日本にはどれくらいのタイミングで対応してくれるかは不明ですが、恐らくする??無理??お願いして。。。
Android2.0はマルチタッチにも対応するしAndroid機種も一気に来年増えるっぽいしiPhoneも再来年にはレア機になるんでしょうかね。。。
なってほしいですね。。。
今のHT-03Aはハード面でも課題が多いので、どんどん色んな企業が切磋琢磨で頑張ってほしいです♪
そしてiPhone今までお疲れさまでした…。
携帯なら自転車でロードバイクとか流行ってるし載ってる人にはモバイルホルダー付けてやれば結構使い道あるんじゃないでしょうか?バイクにも便利だろうし☆
http://internet.watch.impress.co.jp/docs/news/20091029_325068.html
DroidAnalytics でGoogleAnalyticsを携帯でも楽しもうとしてみた
今回入れてみたのはコレ。
DroidAnalytics
$0.99
どうやらGoogleAnalytics用のアプリで携帯からもアクセス統計情報を確認しようというもののようです。
GoogleAnalyticsとはGoogleのサービスで発行されたJavaScriptをサイト上に埋め込んでおくとアクセス数を統計として色んな角度から見れるもの。
つまりサイトを運営していない人には全く無縁なツールです。
さっそく入れてみました♪
日本語にもちゃんと対応しているみたいです。
1$位なので買ってみようかな。。。初購入です(@@
返品ばかりでしたから。。。
DroidAnalytics
$0.99
どうやらGoogleAnalytics用のアプリで携帯からもアクセス統計情報を確認しようというもののようです。
GoogleAnalyticsとはGoogleのサービスで発行されたJavaScriptをサイト上に埋め込んでおくとアクセス数を統計として色んな角度から見れるもの。
つまりサイトを運営していない人には全く無縁なツールです。
さっそく入れてみました♪
日本語にもちゃんと対応しているみたいです。
1$位なので買ってみようかな。。。初購入です(@@
返品ばかりでしたから。。。
2009年11月10日火曜日
ActionScript3 で文字コードSJISを利用する
System.useCodePage = true;
を1フレーム目の一番上にでも書いておく。
以上。。。
を1フレーム目の一番上にでも書いておく。
以上。。。
ラベル:
ActionScript3,
Flash
ActionScript3 URLLoaderDataFormat.VARIABLES の使い方が解らない。。。
var load:URLLoader = new URLLoader();
load.dataFormat = URLLoaderDataFormat.VARIABLES;
load.addEventListener(Event.COMPLETE, this.ExecResAction);
load.load(request);
上記のようなスクリプトを書いていたら下記のようなエラーが出ました。。。
Error: Error #2101: URLVariables.decode() に渡される文字列は、名前/値のペアを含む、URL エンコーディングされたクエリー文字列でなければなりません。
原因は
load.dataFormat = URLLoaderDataFormat.VARIABLES;
どうやら dataFormat は不用意に指定しない方が良いのかもしれません。。。
この行を削除するとうまく動くようになりました。
load.dataFormat = URLLoaderDataFormat.VARIABLES;
load.addEventListener(Event.COMPLETE, this.ExecResAction);
load.load(request);
上記のようなスクリプトを書いていたら下記のようなエラーが出ました。。。
Error: Error #2101: URLVariables.decode() に渡される文字列は、名前/値のペアを含む、URL エンコーディングされたクエリー文字列でなければなりません。
原因は
load.dataFormat = URLLoaderDataFormat.VARIABLES;
どうやら dataFormat は不用意に指定しない方が良いのかもしれません。。。
この行を削除するとうまく動くようになりました。
ラベル:
ActionScript3,
Flash
ActionScript3 日にちの取得はgetDayじゃなくてgetDateだ。。。
最初下記のようにしていたらなんか日が1ケタになってる。。。
なぜ。。。10分位ハマった orz
var date:Date = new Date();
(date.getMonth()+1) + '月' + date.getDay() + '日',
で、調べてみたらgetDayじゃなくてgetDateか。。。
そらそうか。。。
var date:Date = new Date();
(date.getMonth()+1) + '月' + date.getDate() + '日',
なぜ。。。10分位ハマった orz
var date:Date = new Date();
(date.getMonth()+1) + '月' + date.getDay() + '日',
で、調べてみたらgetDayじゃなくてgetDateか。。。
そらそうか。。。
var date:Date = new Date();
(date.getMonth()+1) + '月' + date.getDate() + '日',
ラベル:
ActionScript3,
Flash
2009年11月5日木曜日
無料アプリ 「Laik Agenda Widget」 を入れてみた
アプリ名: Laik Agenda Widget
パッケージ名: laik.widget.agenda
デフォルトのカレンダーウィジェットでは場所を取るくせに1件2件位しか予定を出してくれないのですが、 これは日を跨いで複数件表示してくれるので、ナイスでした。
当分これを使ってみます♪
パッケージ名: laik.widget.agenda
デフォルトのカレンダーウィジェットでは場所を取るくせに1件2件位しか予定を出してくれないのですが、 これは日を跨いで複数件表示してくれるので、ナイスでした。
当分これを使ってみます♪
2009年11月2日月曜日
連絡先一覧には全件表示されない
Android1.5の時から確認できたけど1.6でも改善はされてない。
連絡先一覧には何を基準にしているのか全件表示はされていません。。。
検索したらもちろん表示されていないのも出てくるんですが、ひらがな入力した時に候補として出てくるところには出てこないものもあります。。。
これはバグでしょう。。。
電話なのだから電話機能をまず普通にしてほしいですね(T。T
連絡先一覧には何を基準にしているのか全件表示はされていません。。。
検索したらもちろん表示されていないのも出てくるんですが、ひらがな入力した時に候補として出てくるところには出てこないものもあります。。。
これはバグでしょう。。。
電話なのだから電話機能をまず普通にしてほしいですね(T。T
2009年10月30日金曜日
Android カレンダーアプリがいつの間にか修正されてるw
HT-03Aに入ってるデフォルトカレンダーアプリは予定を作成しようとするとカレンダーのプルダウンで選択できると見せかけて個人カレンダーしか選択できないという不具合がありました。
ですが、Android1.6なのかいつのまにかちゃんと選択できるようになってました♪
これでやっと携帯から個人以外の予定が作成できる!!
あとはデフォルトカレンダー表示タイプの選択と月での表示の際の見せ方さえ修正してくれればもっといいのにな。。。
ですが、Android1.6なのかいつのまにかちゃんと選択できるようになってました♪
これでやっと携帯から個人以外の予定が作成できる!!
あとはデフォルトカレンダー表示タイプの選択と月での表示の際の見せ方さえ修正してくれればもっといいのにな。。。
Android 2.0はこんなんらしい
Android1.6がやっと今日入れれたのにもう2.0のリリースが近い。。。
SDKは既にリリースされている。。。
Android2.0ではこんな事が変わるらしいです。
・マルチタッチのサポート
これによってiPhoneのような2本指で拡大なんかができるようになるんでしょう。
でもマルチタッチってAppleが著作権(?)の持ってたんじゃ??
お金払ってるって事でしょうか。。。
あとこのマルチタッチ対応によって今まで2本指で文字入力しようとすると同時に同時に反応してしまう事によってうまく入力できない時があったのですが、これで解消なようです。
・「Microsoft Exchange」対応
アカウントおよび連絡先を含む複数の電子メールアカウントとの同期がサポートされている。
自分には必要ないです。。。
これは企業によっては非常にありがたいのかと。
※Exchangeのサポートをデバイスに搭載するかどうかは、各携帯電話メーカーに任されているらしいです。という事はこれからの機種のみっぽいのでHT-03Aじゃダメっぽいですね。。。
・カメラアプリがパワーアップ
デジタルズーム、シーン選択モード、ホワイトバランスの調整、カラーエフェクト、マクロフォーカス機能などが増えるみたいですが、肝心なカメラがHT-03Aじゃしょぼいのでこれもこれからの機種に期待ですかね。。。
その他Bluetooth2.1対応など色々あるようですが、ハードに依存するものも多いでしょうからその他期待するものは無いですね。。。
何よりもより高速になってほしい。。。
あと、最近知ったんですがカスタマイズされたOSを入れてる人もいるようですね~。
iPhoneみたいな見た目になってる人も見つけました。
SDKは既にリリースされている。。。
Android2.0ではこんな事が変わるらしいです。
・マルチタッチのサポート
これによってiPhoneのような2本指で拡大なんかができるようになるんでしょう。
でもマルチタッチってAppleが著作権(?)の持ってたんじゃ??
お金払ってるって事でしょうか。。。
あとこのマルチタッチ対応によって今まで2本指で文字入力しようとすると同時に同時に反応してしまう事によってうまく入力できない時があったのですが、これで解消なようです。
・「Microsoft Exchange」対応
アカウントおよび連絡先を含む複数の電子メールアカウントとの同期がサポートされている。
自分には必要ないです。。。
これは企業によっては非常にありがたいのかと。
※Exchangeのサポートをデバイスに搭載するかどうかは、各携帯電話メーカーに任されているらしいです。という事はこれからの機種のみっぽいのでHT-03Aじゃダメっぽいですね。。。
・カメラアプリがパワーアップ
デジタルズーム、シーン選択モード、ホワイトバランスの調整、カラーエフェクト、マクロフォーカス機能などが増えるみたいですが、肝心なカメラがHT-03Aじゃしょぼいのでこれもこれからの機種に期待ですかね。。。
その他Bluetooth2.1対応など色々あるようですが、ハードに依存するものも多いでしょうからその他期待するものは無いですね。。。
何よりもより高速になってほしい。。。
あと、最近知ったんですがカスタマイズされたOSを入れてる人もいるようですね~。
iPhoneみたいな見た目になってる人も見つけました。
Android1.6 追加機能:検索設定
@gmail.com アカウントでのみ利用可能なようです。
自分はGoogle Appsアカウントを利用しているので、ログイン画面が出てきました。
しかし@gmail.comアカウントでログインしようとするとエラーが出てログインできませんw
大丈夫いつもの事です♪
必要無いでしょうこんな機能♪ 諦めます。。。
自分はGoogle Appsアカウントを利用しているので、ログイン画面が出てきました。
しかし@gmail.comアカウントでログインしようとするとエラーが出てログインできませんw
大丈夫いつもの事です♪
必要無いでしょうこんな機能♪ 諦めます。。。
Android1.6 追加機能:電源管理ウィジェット
これは結構便利かと。
前から似たようなアプリはありましたけど、セットになってるのが良いです。
音量制御関連のウィジェットもついでに追加してくれたらよかったのに。。。
でもこれメインのデスクトップに置いてたら間違って押す率高いですねw
自分は左ウィンドウ全く使ってなかったので、そこに放置してます。
前から似たようなアプリはありましたけど、セットになってるのが良いです。
音量制御関連のウィジェットもついでに追加してくれたらよかったのに。。。
でもこれメインのデスクトップに置いてたら間違って押す率高いですねw
自分は左ウィンドウ全く使ってなかったので、そこに放置してます。
2009年10月29日木曜日
PHP Zend_Mailで日本語の際には7bitを指定するのを忘れないように
変わったメーラーだと Content-Transfer-Encoding に 7bit を指定しないと文字化けする事があるようです。
Zend_Mailでは下記のように指定できます。
▼訂正前
Zend_Mailでは下記のように指定できます。
▼訂正前
$mail = new Zend_Mail(’ISO-2022-JP’);
$mail->setBodyText($body);
▼訂正後
$mail = new Zend_Mail(’ISO-2022-JP’);
$mail->setBodyText($body, null, Zend_Mime::ENCODING_7BIT);
$mail->setBodyText($body);
▼訂正後
$mail = new Zend_Mail(’ISO-2022-JP’);
$mail->setBodyText($body, null, Zend_Mime::ENCODING_7BIT);
2009年10月28日水曜日
まだアップデートされない。。。
なぜに自分は最後なんでしょうか。。。
というか回り誰もアップデートの通知来てません。。。
ニュースには2.0の話まで出てるし、悲しいな。。。
http://k-tai.impress.co.jp/docs/news/20091028_324818.html
というか回り誰もアップデートの通知来てません。。。
ニュースには2.0の話まで出てるし、悲しいな。。。
http://k-tai.impress.co.jp/docs/news/20091028_324818.html
2009年10月26日月曜日
まだ更新されない。。。。
ググってみるともうアップデートした人もいるようですね。。。
自分はまだアップデートの通知が出ません(T。T)
パターン入力のロックをしているからか。。。
1週間で分散ってどういう事やねん(T。T
早よさせんかい。。。
自分はまだアップデートの通知が出ません(T。T)
パターン入力のロックをしているからか。。。
1週間で分散ってどういう事やねん(T。T
早よさせんかい。。。
PHP session_name を PHPSESSID 以外へと変更して session_set_save_handler を利用すると爆発!?
PHPのバグのようなのですが、PHPのセッションにはバグがあるようです。
具体的な条件は
sesison_name を PHPSESSID 以外へと変更する。
これだけでは出ない?
そして
session_set_save_handler を利用する。
※DBでセッションを管理する場合には使う必要があります。
http://hain.jp/index.php/tech-j/2006/08/11/session_set_save_handler_php
以前同様の問題で悩んだので、メモを。。。
具体的な条件は
sesison_name を PHPSESSID 以外へと変更する。
これだけでは出ない?
そして
session_set_save_handler を利用する。
※DBでセッションを管理する場合には使う必要があります。
http://hain.jp/index.php/tech-j/2006/08/11/session_set_save_handler_php
以前同様の問題で悩んだので、メモを。。。
2009年10月24日土曜日
Android OS 1.6へのバージョンアップ開始
やっとこさOS1.6のアップグレードが開始されたんですけど、まだ自分通知がこないんですけど。。。
設定からシステムアップグレード見ても開始されない。。。
これって順番で通知されていってるのかな。。。
にしても遅くないか。。。またショップ行きか。。。
シェアウェアのダウンロードとかカメラ機能もアップグレードしてるみたいなんで凄く楽しみです♪
何よりも動作が早くなってくれている事を祈ります。。。
http://www.nttdocomo.co.jp/support/utilization/software_update/version_up/ht03a/procedure.html#
設定からシステムアップグレード見ても開始されない。。。
これって順番で通知されていってるのかな。。。
にしても遅くないか。。。またショップ行きか。。。
シェアウェアのダウンロードとかカメラ機能もアップグレードしてるみたいなんで凄く楽しみです♪
何よりも動作が早くなってくれている事を祈ります。。。
http://www.nttdocomo.co.jp/support/utilization/software_update/version_up/ht03a/procedure.html#
2009年10月20日火曜日
Android OS 1.6 へのアップグレードがアメリカで開始されました
残念ながら日本はまだアップデート対象となっていないようですが、アメリカでは開始されているようです。
Announcing Android 1.6, "Donut"
⇒アンドロイド1.6、「ドーナツ」を発表します。
T-Mobile has begun delivery of the Android 1.6 update known as "Donut". The update is being sent automatically, over the air. It contains a few new features you will notice on your phone.
⇒T-Mobileはドーナツとして知られている、Android1.6のアップデートの配布を始めました。
自動的に空気上にアップデートを送ります。 それはあなたが電話で気付くいくつかの新機能を含んでいます。
空気上に?謎です。。。
とにかく何か通知されるんでしょうw
そしてこのアップデートによって新機能が追加されますよという事でしょうか。。。
http://forums.t-mobile.com/tmbl/?category.id=Android
日本でももうちょっとですかね。。。
早くしたいです。。。動作は改善されるんでしょうか。。。
最近何もアプリが入れる気がしない位、動作が不安定です。。。
Announcing Android 1.6, "Donut"
⇒アンドロイド1.6、「ドーナツ」を発表します。
T-Mobile has begun delivery of the Android 1.6 update known as "Donut". The update is being sent automatically, over the air. It contains a few new features you will notice on your phone.
⇒T-Mobileはドーナツとして知られている、Android1.6のアップデートの配布を始めました。
自動的に空気上にアップデートを送ります。 それはあなたが電話で気付くいくつかの新機能を含んでいます。
空気上に?謎です。。。
とにかく何か通知されるんでしょうw
そしてこのアップデートによって新機能が追加されますよという事でしょうか。。。
http://forums.t-mobile.com/tmbl/?category.id=Android
日本でももうちょっとですかね。。。
早くしたいです。。。動作は改善されるんでしょうか。。。
最近何もアプリが入れる気がしない位、動作が不安定です。。。
2009年10月19日月曜日
JQueryを利用して簡単に行を追加
以下のHTMLの状態で下記JavaScriptを実行すると行が追加される。
と一緒か。。。?
でも下記の方が早いみたいですね。。。
<table id="hoge"> <tbody> <tr> <td>col1-row1</td> <td>col2-row1</td> </tr> </tbody> </table>
▼JavaScript
$('#hoge').append('' + '<tr>' + '<td>' + 'col1-row2' + '</td>' + '<td>' + 'col2-row2' + '</td>' + '</tr>' ; );
これってようするに
$('#hoge')[0].innterHTML = $('#hoge')[0].innterHTML + '<tr>' + '<td>' + 'col1-row2' + '</td>' + '<td>' + 'col2-row2' + '</td>' + '</tr>' ;
と一緒か。。。?
でも下記の方が早いみたいですね。。。
$('#hoge').append(
$('<tr>').append(
$('<td>').text('col1-row2')
).append(
$('<td>').text('col2-row2')
)
);
2009年10月14日水曜日
JavaScript エラーメッセージ「識別子、文字列または数がありません。」 IE
IEの場合、配列やオブジェクトの最後が「,」で終わる場合エラーとなる。
メッセージ: 識別子、文字列または数がありません。
発生する例
修正前
var Hoge = {
test1 : {},
test2 : {},
}
修正後
var Hoge = {
test1 : {},
test2 : {}
}
メッセージ: 識別子、文字列または数がありません。
発生する例
修正前
var Hoge = {
test1 : {},
test2 : {},
}
修正後
var Hoge = {
test1 : {},
test2 : {}
}
2009年10月8日木曜日
カーナビアプリ「Nav4All navigation/track&trace」
パッケージ名 : gmb.APP
NAVITIMEは無料で出たけどカーナビアプリは無料で無いのかなと思って探してみました。
どうやら 「Nav4All navigation/track&trace」というのが有名なようでしたので。
というかこれしかそれらしいのが解らなかった。
日本語対応してるみたいです。
しかも音声ガイドも日本語ありました。
しかも女性と男性の2種類w
初期設定画面でキャプチャ撮るの忘れてしまったので、メインメニュー画面を
NAVITIMEは無料で出たけどカーナビアプリは無料で無いのかなと思って探してみました。
どうやら 「Nav4All navigation/track&trace」というのが有名なようでしたので。
というかこれしかそれらしいのが解らなかった。
日本語対応してるみたいです。
しかも音声ガイドも日本語ありました。
しかも女性と男性の2種類w
初期設定画面でキャプチャ撮るの忘れてしまったので、メインメニュー画面を
初の日本有料アプリ?「NAVITIME」
NAVITIMEがAndoroidで出たようです。
アプリ自体は無料で配布されているのですが、有料会員になってアカウントを取得しないと利用できないようです。
どんどんシェアウェア出てほしいですね~
アプリ自体は無料で配布されているのですが、有料会員になってアカウントを取得しないと利用できないようです。
どんどんシェアウェア出てほしいですね~
Android セカイカメラのAndroid版「Wikitude」
パッケージ名 : com.wikitude
起動した時の画面。
メインメニュー画面、ここから「Cam」をクリックするとセカイカメラと同様にリアル風景にメッセージを被せて表示する事ができるようです。
これがその画面です。今は屋内なのでこんな映像ですが、レーダーには結構点が表示されているので、これがメッセージなんでしょうか。結構な件数がありそうです。
これはメインメニューから「Map」をクリックした画面です。Gmapを利用した表示なようです。
面白味には欠けるかもですが、単純に位置とメッセージだけならこれが一番見やすいですね。
セカイカメラにもこのモードはあるのでしょうかね。。。
利用者が少ないAirPainterよりこっちの方が良いですね。。。
※マーケットではパッケージ名で検索する必要があるようです。
起動した時の画面。
メインメニュー画面、ここから「Cam」をクリックするとセカイカメラと同様にリアル風景にメッセージを被せて表示する事ができるようです。
これがその画面です。今は屋内なのでこんな映像ですが、レーダーには結構点が表示されているので、これがメッセージなんでしょうか。結構な件数がありそうです。
これはメインメニューから「Map」をクリックした画面です。Gmapを利用した表示なようです。
面白味には欠けるかもですが、単純に位置とメッセージだけならこれが一番見やすいですね。
セカイカメラにもこのモードはあるのでしょうかね。。。
利用者が少ないAirPainterよりこっちの方が良いですね。。。
ラベル:
ソーシャルネットワーク,
マップ,
海外
2009年10月6日火曜日
PHP 配列キーに含まれるかのチェック方法について
▽通常下記のようにすると思いますが、
$hoge = array(
'01' => '北海道',
'02' => '青森',
'03' => '岩手',
'04' => '新潟'
);
if( !@array_key_exists('01', $hoge) ) {
die ('NG');
} else {
die('OK');
}
▽下記のような書き方をしていると全く違った結果となります。。。
$hoge = array(
'01' => '北海道',
'02' => '青森',
'03' => '岩手',
'04' => '新潟'
);
if( !@in_array('1', array_keys($hoge)) ) {
die ('NG');
} else {
die('OK');
}
2つ目のような方法だと
1
'1'
'000001'
どれでもOKになってしまいます…。
※in_array()の第3引数に下記のようなものが用意されているので、これを指定すればいけます。
三番目のパラメータ strict が TRUE に設定された場合、 in_array() は、haystack の中の needle の 型も確認します。
$hoge = array(
'01' => '北海道',
'02' => '青森',
'03' => '岩手',
'04' => '新潟'
);
if( !@array_key_exists('01', $hoge) ) {
die ('NG');
} else {
die('OK');
}
▽下記のような書き方をしていると全く違った結果となります。。。
$hoge = array(
'01' => '北海道',
'02' => '青森',
'03' => '岩手',
'04' => '新潟'
);
if( !@in_array('1', array_keys($hoge)) ) {
die ('NG');
} else {
die('OK');
}
2つ目のような方法だと
1
'1'
'000001'
どれでもOKになってしまいます…。
※in_array()の第3引数に下記のようなものが用意されているので、これを指定すればいけます。
三番目のパラメータ strict が TRUE に設定された場合、 in_array() は、haystack の中の needle の 型も確認します。
Windows でPHPをCRONみたいに実行する方法
コントロールパネル
↓
タスク
↓
スケジュールされたタスクの追加
↓
次へ
↓
参照
↓
PHP-winを選択
例:D:\ProgramFiles\php-5.2.6-Win32\php-win.exe
※php.exeではコンソールが毎回表示される。
↓
適当な名前を付けて実行単位を選ぶ
※5分置きに実行の場合は日単位を選択
↓
開始時刻選択
※とりあえず8:00。
※毎日実行。
※今から開始で良いので今日の日付で。
↓
PCのログインする時の各自アカウント情報
↓
[完了]をクリックした~ にチェックを入れて完了。
↓
実行するファイル名の後で実行ファイルを指定
D:\ProgramFiles\php-5.2.6-Win32\php-win.exe -f d:\project\test\test.php
↓
スケジュールタブの詳細設定
↓
タスクを繰り返し実行にチェックを入れて間隔を5分、継続期間15時間
↓
OK
↓
ID、PASSの画面出たらまた各自アカウントで。
↓
タスク
↓
スケジュールされたタスクの追加
↓
次へ
↓
参照
↓
PHP-winを選択
例:D:\ProgramFiles\php-5.2.6-Win32\php-win.exe
※php.exeではコンソールが毎回表示される。
↓
適当な名前を付けて実行単位を選ぶ
※5分置きに実行の場合は日単位を選択
↓
開始時刻選択
※とりあえず8:00。
※毎日実行。
※今から開始で良いので今日の日付で。
↓
PCのログインする時の各自アカウント情報
↓
[完了]をクリックした~ にチェックを入れて完了。
↓
実行するファイル名の後で実行ファイルを指定
D:\ProgramFiles\php-5.2.6-Win32\php-win.exe -f d:\project\test\test.php
↓
スケジュールタブの詳細設定
↓
タスクを繰り返し実行にチェックを入れて間隔を5分、継続期間15時間
↓
OK
↓
ID、PASSの画面出たらまた各自アカウントで。
Smarty strip内で改行したい場合
{strip}
・1行目
・2行目
・3行目
{/strip}
上記の場合表示結果はこのようになる。
・1行目・2行目・3行目
できれば
・1行目
・2行目
・3行目
としたい場合、どうすれば良いんだろうと探したんですが、どうやら{stirp}は変数内に影響しないという事なので、下記のようにして解決できました。
{strip}
・1行目{"\n"}
・2行目{"\n"}
・3行目{"\n"}
{/strip}
・1行目
・2行目
・3行目
{/strip}
上記の場合表示結果はこのようになる。
・1行目・2行目・3行目
できれば
・1行目
・2行目
・3行目
としたい場合、どうすれば良いんだろうと探したんですが、どうやら{stirp}は変数内に影響しないという事なので、下記のようにして解決できました。
{strip}
・1行目{"\n"}
・2行目{"\n"}
・3行目{"\n"}
{/strip}
2009年10月5日月曜日
iモード.net は詐欺サービス?
ドコモのサービスにiモードメールをAndroidに変えてからも使えるようにという目的かは不明だけど少なくとも定員は強く勧めてくるiモード.netサービスがある。
このiモード.net というサービスがある。
このサービスかなり使えないサービスで、ログインする旅にiモードメールにメールが送信される。
この送信されるメールが実におもしろくない。。。
なんとiモードメールを確認するためのiモード.netで確認できないらしい。
つまり削除できないらしい。。。
という事は、いつか容量不足に陥る。。。
という事はiモード端末で受信しなければならないFOMAカードを差し替えて、電源入れて送受信するとスッキリ♪
なんて事ができたらいいけどドコモはiモード端末の場合Bizじゃなくてパケホーダイを契約しないといけない。。。という事はそんな事したらドコモが勝手に送ったメールを消すためにドコモを大量に払う事に。。。
結果、iモード.netは携帯買い替えた案内するまでの気休めにしか使えません。。。
やるな~ドコモw チリも積もれば凄いわけで、ドコモはこのログインメール通知機能だけでどれだけ設けたんでしょうかね。。。
このiモード.net というサービスがある。
このサービスかなり使えないサービスで、ログインする旅にiモードメールにメールが送信される。
この送信されるメールが実におもしろくない。。。
なんとiモードメールを確認するためのiモード.netで確認できないらしい。
つまり削除できないらしい。。。
という事は、いつか容量不足に陥る。。。
という事はiモード端末で受信しなければならないFOMAカードを差し替えて、電源入れて送受信するとスッキリ♪
なんて事ができたらいいけどドコモはiモード端末の場合Bizじゃなくてパケホーダイを契約しないといけない。。。という事はそんな事したらドコモが勝手に送ったメールを消すためにドコモを大量に払う事に。。。
結果、iモード.netは携帯買い替えた案内するまでの気休めにしか使えません。。。
やるな~ドコモw チリも積もれば凄いわけで、ドコモはこのログインメール通知機能だけでどれだけ設けたんでしょうかね。。。
ドコモ使い過ぎユーザーに規制 最悪。。。
ソフトバンクユーザー規制のニュースを先週聞いてざまーみろiPhoneとか思ってたらドコモは既にしてた。。。
http://k-tai.impress.co.jp/docs/news/20091001_318672.html
も~最悪やドコモ。。。
ま~ソフトバンクは1カ月規制するみたいやけどドコモは過去3日間でを範囲として条件に満たなくなった日から解除らしいからまだましか。。。
AUもやるみたいやし、3社で仲良く話し合ったんやろうな。。。
http://k-tai.impress.co.jp/docs/news/20091001_318672.html
も~最悪やドコモ。。。
ま~ソフトバンクは1カ月規制するみたいやけどドコモは過去3日間でを範囲として条件に満たなくなった日から解除らしいからまだましか。。。
AUもやるみたいやし、3社で仲良く話し合ったんやろうな。。。
PHP MDB2のprepareでLIKEを使用する方法
MDB2のprepareでLIKEを使用する場合には、executeでのquoteだけではワイルドカードである_、%などをエスケープしなければならないので、不十分である。
そこでescapeというものを通常利用するのだけど、これまたダメ。
$mdb2->esacape() だと\\%となってしまうので、その後のexecuteでのquoteで更にエスケープされて\\\\% となってしまう。。。
そこでmdb2にはescapeではなくて escapePatternというものが用意されているのでこれを利用する。
$sql = " SELECT * FROM hogetable WHERE testcode LIKE :testcode ";
$types = array("text");
$data = array('testcode' => '%' . $mdb2->escapePattern($_GET['testcode'], true) . '%');
$sth = $this->_db->prepare($db['sql'], $sql['types'], MDB2_PREPARE_RESULT);
if ( PEAR::isError($sth) )
throw new Exception('FILE:' . __FILE__ . ' LINE:' . __LINE__ . ' MESSAGE:' . $sth->getMessage());
$result = $sth->execute($sql['data']);
if ( PEAR::isError($result) )
throw new Exception('FILE:' . __FILE__ . ' LINE:' . __LINE__ . ' MESSAGE:' . $result->getMessage());
var_dump($result->fetchAll());
こんな感じですね。
そこでescapeというものを通常利用するのだけど、これまたダメ。
$mdb2->esacape() だと\\%となってしまうので、その後のexecuteでのquoteで更にエスケープされて\\\\% となってしまう。。。
そこでmdb2にはescapeではなくて escapePatternというものが用意されているのでこれを利用する。
$sql = " SELECT * FROM hogetable WHERE testcode LIKE :testcode ";
$types = array("text");
$data = array('testcode' => '%' . $mdb2->escapePattern($_GET['testcode'], true) . '%');
$sth = $this->_db->prepare($db['sql'], $sql['types'], MDB2_PREPARE_RESULT);
if ( PEAR::isError($sth) )
throw new Exception('FILE:' . __FILE__ . ' LINE:' . __LINE__ . ' MESSAGE:' . $sth->getMessage());
$result = $sth->execute($sql['data']);
if ( PEAR::isError($result) )
throw new Exception('FILE:' . __FILE__ . ' LINE:' . __LINE__ . ' MESSAGE:' . $result->getMessage());
var_dump($result->fetchAll());
こんな感じですね。
2009年10月2日金曜日
WindowsXPにPHP5.3.0(モジュール)を入れてみた。
まずPHPのダウンロードサイトからファイルを入手。
http://windows.php.net/download/
入手するファイルは「VC6 x86 Thread Safe」です。
VC9=IIS用
VC6=Apache用
Non Thread Safe = CGI用
Thread Safe = モジュール用
入手したファイルを解凍して設置したい場所に移動する。
一応パスに日本語が含まれないように設置。
PHPディレクトリの中に下記2つのINIテンプレートがあるけど今回はとりあえず「development」で
php.ini-development
php.ini-production
ファイル名を変更する。
php.ini-development ⇒ php.ini
httpd.conf に下記を追記する。
LoadModule php5_module "D:/PHP/php5apache2_2.dll"
AddType application/x-httpd-php .php
PHPIniDir "D:/PHP"
これでApacheを再起動すると、エラー。。。 なぜ。。。
CGI版を入れてみたところ正常に起動できました。
php5apache2_2.dll がダメなのか。。。
php -v では確かに3.5と表示されている。。。
仕方がない、5.3.0の php5apache2_2.dll は壊れているという事で5.3.1に期待しましょ。。。
pgsql.dll破壊事件もあったのできっとそうなんだろう。。。
http://windows.php.net/download/
入手するファイルは「VC6 x86 Thread Safe」です。
VC9=IIS用
VC6=Apache用
Non Thread Safe = CGI用
Thread Safe = モジュール用
入手したファイルを解凍して設置したい場所に移動する。
一応パスに日本語が含まれないように設置。
PHPディレクトリの中に下記2つのINIテンプレートがあるけど今回はとりあえず「development」で
php.ini-development
php.ini-production
ファイル名を変更する。
php.ini-development ⇒ php.ini
httpd.conf に下記を追記する。
LoadModule php5_module "D:/PHP/php5apache2_2.dll"
AddType application/x-httpd-php .php
PHPIniDir "D:/PHP"
これでApacheを再起動すると、エラー。。。 なぜ。。。
CGI版を入れてみたところ正常に起動できました。
php5apache2_2.dll がダメなのか。。。
php -v では確かに3.5と表示されている。。。
仕方がない、5.3.0の php5apache2_2.dll は壊れているという事で5.3.1に期待しましょ。。。
pgsql.dll破壊事件もあったのできっとそうなんだろう。。。
Zendframework Elementで選択系を用いる際に値が0の場合の対処方法
以前にElementにRadioやSelectなんかの選択系を用いた時にInArrayでチェックしてるから入力された値をキャストしなくてはならないと書いたんですが、その時の0値の対処方法を今さら思いつきましたw
なんでこんな簡単な事を。。。って感じですがw
デフォルトではIntにキャストするFilterがInt1つしか無いのですが、このIntは単純にキャストするだけなので、キャストする前のStringが本当にIntらしい値なのかをチェックしてそうでなければキャストしないオリジナルFilterを作れば良いだけでした。。。
今回作ったのはこれです。。
class Plugin_Filter_StrIntToInt implements Zend_Filter_Interface
{
public function filter($value)
{
if ($value === '') return $value;
$cast = (string)((int)$value);
if ($cast === $value) {
return (int)$value;
} else {
return $value;
}
}
}
なんでこんな簡単な事を。。。って感じですがw
デフォルトではIntにキャストするFilterがInt1つしか無いのですが、このIntは単純にキャストするだけなので、キャストする前のStringが本当にIntらしい値なのかをチェックしてそうでなければキャストしないオリジナルFilterを作れば良いだけでした。。。
今回作ったのはこれです。。
class Plugin_Filter_StrIntToInt implements Zend_Filter_Interface
{
public function filter($value)
{
if ($value === '') return $value;
$cast = (string)((int)$value);
if ($cast === $value) {
return (int)$value;
} else {
return $value;
}
}
}
ZendFramework に Zend_Filter_Null が無い。。。
ZendFramework のZend_Filterマニュアルサイトには Zend_Filter_Null があるのに実際Filterディレクトリの中に無い。。。
前バージョンまで入ってた?
入れる予定?
なんなんだこれ。。。
クラス毎にマニュアルに追加するのは良いんだけどどのバージョンから使えるようになったか書いてほしいな。。。
前バージョンまで入ってた?
入れる予定?
なんなんだこれ。。。
クラス毎にマニュアルに追加するのは良いんだけどどのバージョンから使えるようになったか書いてほしいな。。。
FireBug + FirePHP 出力されない
FireFoxを3.5に変えてから自然とFireBugもアップグレードする事になった。
新しいFireBugではデフォルトでコンソールがOFFになってたりスクリプトがOFFになってたらり個別にON/OFFが切り替えるようになっている。前もそうだっけ。。。
スクリプトとコンソールはよく使うからすぐに気付いたんだけどFirePHPが何故か出力されないようになって戸惑った。
解決策としては接続パネルがDisableになっていたのが原因でした。
コンソールに表示されるのでそこばかっかりチェックしてましたよ。。。
新しいFireBugではデフォルトでコンソールがOFFになってたりスクリプトがOFFになってたらり個別にON/OFFが切り替えるようになっている。前もそうだっけ。。。
スクリプトとコンソールはよく使うからすぐに気付いたんだけどFirePHPが何故か出力されないようになって戸惑った。
解決策としては接続パネルがDisableになっていたのが原因でした。
コンソールに表示されるのでそこばかっかりチェックしてましたよ。。。
2009年10月1日木曜日
連射可能なカメラをアプリで手に入れてみよう。「Continuous Shoot」
パッケージ名 : com.tokasiki.android.continuousshoot
iPhoneでは「QuadCamera」というアプリがシェアウェアであるようです。
で、Androidでは無いのかなと探してみたら今回の「Continuous Shoot」にたどりつきました。
まずは早速インストール♪
ってまたダウンロードの失敗エラーに直面。。。
とりあえず再起動したらできるようになるのは経験済みなので、再起動。。。
できない。。。
とりあえずそれについてはこちらの記事を。。。
http://android.unlax.com/2009/09/blog-post_9024.html
どうにかこうにか入りました。。。
動画を撮ってから切り刻んでいるようですね。
動かれるとボケボケですがカメラの性能だろうし仕方ないですね。。。
※ちなみにこのカメラ音が鳴らないです。。。盗撮対応という事なんでしょうかw
※マーケットではパッケージ名で検索する必要があるようです。
iPhoneでは「QuadCamera」というアプリがシェアウェアであるようです。
で、Androidでは無いのかなと探してみたら今回の「Continuous Shoot」にたどりつきました。
まずは早速インストール♪
ってまたダウンロードの失敗エラーに直面。。。
とりあえず再起動したらできるようになるのは経験済みなので、再起動。。。
できない。。。
とりあえずそれについてはこちらの記事を。。。
http://android.unlax.com/2009/09/blog-post_9024.html
どうにかこうにか入りました。。。
動画を撮ってから切り刻んでいるようですね。
動かれるとボケボケですがカメラの性能だろうし仕方ないですね。。。
※ちなみにこのカメラ音が鳴らないです。。。盗撮対応という事なんでしょうかw
セカイカメラのAndroid版 「AirPainter (market)」 というのを教えてもらいました
パッケージ名 : org.iwillnow.AirPainter
iPhoneではセカイカメラというアプリが話題なようですが、Androidには無いので興味が無かったのです。が、Androidにも似たような物が出てきてるようですw
とりあえず入れてみました。
最初は設定しないといけないようです。ちゃんと日本語なので、安心です。
誰かが投稿したポイントに行くとこんな感じでメッセージが現れます。
まずはタイトル付けて手書きでメッセージを書きます。「ココのボタンを押せ」とかw
右下のズームで赤枠の大きさを変えれます。
左上のゴミ箱で赤枠内の塗りを消す?
左下でペンの色を変える。
てな感じでメッセージを作ったらバックボタンで戻って「手順3配置」ボタンをクリックします。
この配置場所が思った通りになかなかいかないです。。。
コツがあるんでしょうね。。。
きっと撮影した場所と向きを記憶するのでその対象物を記憶するというよりカメラマンの立って位置と方向を記憶すると考えた方が良いです。解りにくいな。。。
ようするに撮影者と同じ気持ちになれるって事かな。。。
ちなみに登録したこのメッセージは「發布」ボタンをクリックしないと他人からは見れないです。
最高1カ月公開のみみたいですね。共有とかにボタン名変えてほしいな。。。
※マーケットではパッケージ名で検索する必要があるようです。
iPhoneではセカイカメラというアプリが話題なようですが、Androidには無いので興味が無かったのです。が、Androidにも似たような物が出てきてるようですw
とりあえず入れてみました。
最初は設定しないといけないようです。ちゃんと日本語なので、安心です。
誰かが投稿したポイントに行くとこんな感じでメッセージが現れます。
まずはタイトル付けて手書きでメッセージを書きます。「ココのボタンを押せ」とかw
右下のズームで赤枠の大きさを変えれます。
左上のゴミ箱で赤枠内の塗りを消す?
左下でペンの色を変える。
てな感じでメッセージを作ったらバックボタンで戻って「手順3配置」ボタンをクリックします。
この配置場所が思った通りになかなかいかないです。。。
コツがあるんでしょうね。。。
きっと撮影した場所と向きを記憶するのでその対象物を記憶するというよりカメラマンの立って位置と方向を記憶すると考えた方が良いです。解りにくいな。。。
ようするに撮影者と同じ気持ちになれるって事かな。。。
ちなみに登録したこのメッセージは「發布」ボタンをクリックしないと他人からは見れないです。
最高1カ月公開のみみたいですね。共有とかにボタン名変えてほしいな。。。
2009年9月30日水曜日
色々なところの動画を見てみる「Adown エイダウン無料版」
mixiに投稿された友達の日記に最速でレスしたい人はこれ「mixi 日記新着アプリ」
パッケージ名 : jp.gr.netfort.dancer.mixi
自分はもうmixiやってないんで、興味が無いですがまだ回りでは結構やってる人が多い事に最近気付いたので、興味ある方はどうぞw
※マーケットではパッケージ名で検索する必要があるようです。
自分はもうmixiやってないんで、興味が無いですがまだ回りでは結構やってる人が多い事に最近気付いたので、興味ある方はどうぞw
Office(Word,Excel)を閲覧、編集してみる。「Documents To Go 2.0 Main App」
パッケージ名 : com.dataviz.docstogo
外国が作られたアプリなんですが、何をするアプリかというとMicrosoft Office関連で作られたWordやExcelファイルを開いて閲覧、編集しようとするアプリです。
いつかできるだろうと誰しもが思っていたようなものですね。
で、早速入れてみました。
簡単なテストとして日本語ファイル名とデータが閲覧できるのかという事をしてみました。
結果は下記画面キャプチャの通りです。
現在配布されているDocuments To GoはFree版で色々制限があります。
とりあえずWordとExcelだけはファイル開けられるみたいですね。
日本語ダメだと思っていたのでラッキーでした。
詳しくはご自分で調査してみてください。
>>画像1
Free版ではWordとExcelしか対応していない。
>>画像2
開いたファイルは履歴として出るようです。
ちゃんと日本語出てますね。
>>画像3
ファイルを選択する画面です。
>>画像4
拡張子.xls対応ですね。
>>画像5
拡張子.xlsxにも対応しているみたいです。
※マーケットではパッケージ名で検索する必要があるようです。
外国が作られたアプリなんですが、何をするアプリかというとMicrosoft Office関連で作られたWordやExcelファイルを開いて閲覧、編集しようとするアプリです。
いつかできるだろうと誰しもが思っていたようなものですね。
で、早速入れてみました。
簡単なテストとして日本語ファイル名とデータが閲覧できるのかという事をしてみました。
結果は下記画面キャプチャの通りです。
現在配布されているDocuments To GoはFree版で色々制限があります。
とりあえずWordとExcelだけはファイル開けられるみたいですね。
日本語ダメだと思っていたのでラッキーでした。
詳しくはご自分で調査してみてください。
>>画像1
Free版ではWordとExcelしか対応していない。
>>画像2
開いたファイルは履歴として出るようです。
ちゃんと日本語出てますね。
>>画像3
ファイルを選択する画面です。
>>画像4
拡張子.xls対応ですね。
>>画像5
拡張子.xlsxにも対応しているみたいです。
2009年9月29日火曜日
すれちがったー ですれ違い通信をしてみよう
パッケージ名 : org.sevenleaves.droidsensor
すれちがったーというアプリがあるのですが、これを入れるとドラクエⅨ?みたいな すれ違い通信ができるというアプリです。
どんな風になるか詳しくは下記サイトを見てください。以外とすれ違えるみたいですw
すれ違ったユーザー名とかが解ったりすると面白いんですけどね~
作るか。。。
※設定のAll Bluetooth Devices はONにしてる方が楽しそうです。
恐らくONにしてないとすれちがったーアプリ入れてる同士のみ反応するようなので、全然すれ違えない。。。
http://d.hatena.ne.jp/melodymaker0930/20090928/1254151913
※マーケットではパッケージ名で検索する必要があるようです。
すれちがったーというアプリがあるのですが、これを入れるとドラクエⅨ?みたいな すれ違い通信ができるというアプリです。
どんな風になるか詳しくは下記サイトを見てください。以外とすれ違えるみたいですw
すれ違ったユーザー名とかが解ったりすると面白いんですけどね~
作るか。。。
※設定のAll Bluetooth Devices はONにしてる方が楽しそうです。
恐らくONにしてないとすれちがったーアプリ入れてる同士のみ反応するようなので、全然すれ違えない。。。
http://d.hatena.ne.jp/melodymaker0930/20090928/1254151913
マーケットからのアプリダウンロードに失敗する
最近9割以上の確率でマーケットからのアプリダウンロードに失敗するようになった。。。
原因不明。。。
ワイヤレス設置 > モバイルネットワーク > ネットワークオペレータ で Docomoを選択しなおすとたまダウンロードできるようになるけどほとんど失敗。。。
場合によってはダウンロード完了と、ダウンロード失敗のメッセージが両方でる時もある。
どっちやねん。。。って失敗してんのかい。。。
その後、何回か再起動してると直りました。。。 なんじゃこれ。。。
ちなみに同時期に他の端末でダウンロードすると凄く正常に行えます。
そこから推測するとサイト側ではないような気もw
その後
「ダウンロードできませんでした。しばらくしてからもう一度試してください。」
とまた相変わらず発生するのですが、遂に再起動しても復活できなくなってきました。。。
ハードの問題なのかサイトの問題なのか。。。
知り合いの端末にも同症状が発生してきているとの事だったのでやっぱりサイトなのか。。。
アプリダウンロードに失敗って痛すぎるぞGoogleさん。。。
完全な解決策は今だ見つからず。。。
とりあえず再起動を繰り返す事が一番の解決策なようです。
原因不明。。。
ワイヤレス設置 > モバイルネットワーク > ネットワークオペレータ で Docomoを選択しなおすとたまダウンロードできるようになるけどほとんど失敗。。。
場合によってはダウンロード完了と、ダウンロード失敗のメッセージが両方でる時もある。
どっちやねん。。。って失敗してんのかい。。。
その後、何回か再起動してると直りました。。。 なんじゃこれ。。。
ちなみに同時期に他の端末でダウンロードすると凄く正常に行えます。
そこから推測するとサイト側ではないような気もw
その後
「ダウンロードできませんでした。しばらくしてからもう一度試してください。」
とまた相変わらず発生するのですが、遂に再起動しても復活できなくなってきました。。。
ハードの問題なのかサイトの問題なのか。。。
知り合いの端末にも同症状が発生してきているとの事だったのでやっぱりサイトなのか。。。
アプリダウンロードに失敗って痛すぎるぞGoogleさん。。。
完全な解決策は今だ見つからず。。。
とりあえず再起動を繰り返す事が一番の解決策なようです。
HT-03A 電磁コンパスが壊れたらドコモショップで新品と交換
HT-03Aでは電磁コンパスや加速度センサー?が反応しなくなる不具合がある。
まだドコモは認めてはいないので、前例を訪ねても無いと言われてしまうが実際は新しいものと交換してもらえます。
自分も交換してもらいましたので。
お持ちの機種がデフォルトアプリの方位磁石が正常に動作するかを確認してみては?
自分のは次にマーケットのダウンロードできない問題が発生してますが。。。
まだドコモは認めてはいないので、前例を訪ねても無いと言われてしまうが実際は新しいものと交換してもらえます。
自分も交換してもらいましたので。
お持ちの機種がデフォルトアプリの方位磁石が正常に動作するかを確認してみては?
自分のは次にマーケットのダウンロードできない問題が発生してますが。。。
FxCamera でオシャレな写真を撮ろう
FxCamera というアプリを見つけました。
これはトイカメラや魚眼レンズをシミュレートしてくれるアプリで、画像が汚い携帯カメラではこういったエフェクトをおもいっきりかけた方が味のある写真が撮れます♪
汚いのならばあえて汚くしてしまおうという感じですw
これはトイカメラや魚眼レンズをシミュレートしてくれるアプリで、画像が汚い携帯カメラではこういったエフェクトをおもいっきりかけた方が味のある写真が撮れます♪
汚いのならばあえて汚くしてしまおうという感じですw
バッテリー寿命について
HT-03Aを使っているのですが、この携帯買ったばかりの時は電池が短すぎた。。。
でも、最近は2,3日持ちますw
まず、買ってから落ち着いてきて1日中触りっぱなしって事もなくなったw
常駐アプリはニコタッチ位。
※デフォルトアプリは対象外。
アプリはすぐにTaskillerで終了するように癖づいた。
定期的な同期はGmailのみ。
Astridも使ってますが、起動した時に同期とれば十分なので。
Remember the milk のアプリでAstridより良いものが出ればな~無料でw
でも、最近は2,3日持ちますw
まず、買ってから落ち着いてきて1日中触りっぱなしって事もなくなったw
常駐アプリはニコタッチ位。
※デフォルトアプリは対象外。
アプリはすぐにTaskillerで終了するように癖づいた。
定期的な同期はGmailのみ。
Astridも使ってますが、起動した時に同期とれば十分なので。
Remember the milk のアプリでAstridより良いものが出ればな~無料でw
TasKiller Free
今まではTaskRoidを使っていたんだけど、最近TasKillerを使ってみた。
さすが後発♪ ワンクリックで全て終了できるので、めちゃくちゃ楽です。
終了させたくないアプリも登録できるので、ニコタッチなんかは対象外にする事も可能。
ただしFreeでは登録件数に制限があるようです。
Package name : com.tni.TasKiller
※マーケットではパッケージ名で検索する必要があるようです。
さすが後発♪ ワンクリックで全て終了できるので、めちゃくちゃ楽です。
終了させたくないアプリも登録できるので、ニコタッチなんかは対象外にする事も可能。
ただしFreeでは登録件数に制限があるようです。
Package name : com.tni.TasKiller
※マーケットではパッケージ名で検索する必要があるようです。
絵文字が送れるようになった
ニコタッチもしくはOpenWnnフリック入力対応版で絵文字が入力できるようになった。
でも残念ながらGmail自体はHTMLにも絵文字にも対応していないので、プレビューする事はできない。。。
しかも送信先がドコモの場合は絵文字は表示されるけどEZwebやSoftbankだと化けちゃうみたいです。一覧表示がちょっと重いですが、無いよりかは全然マシですね♪
パッケージ名 : com.hiroshica.android.input.nicownn2
でも残念ながらGmail自体はHTMLにも絵文字にも対応していないので、プレビューする事はできない。。。
しかも送信先がドコモの場合は絵文字は表示されるけどEZwebやSoftbankだと化けちゃうみたいです。一覧表示がちょっと重いですが、無いよりかは全然マシですね♪
パッケージ名 : com.hiroshica.android.input.nicownn2
2009年9月25日金曜日
PHP Zend_Mail_Transport_Smtp で大量にメール送信するとメモリー不足になる
完全に辿ったわけではないので、推測だがどうやらこの Zend_Mail_Transport_Smtp は通信ログを内部で持っているのかしてメモリーリークを起こしてしまう。
切断などして開放する事はできるだろうけど、その都度再接続したりどこかのタイミングでってのもな。。。
これに関しては今だ解決策は見つかっていないので、大量メール送信の場合にはテーブルに一度入れてCRON負荷分散するなどして対策が必要となる。
というか元から素で送信しようとするなら必要だけどね。。。
切断などして開放する事はできるだろうけど、その都度再接続したりどこかのタイミングでってのもな。。。
これに関しては今だ解決策は見つかっていないので、大量メール送信の場合にはテーブルに一度入れてCRON負荷分散するなどして対策が必要となる。
というか元から素で送信しようとするなら必要だけどね。。。
2009年9月18日金曜日
MySQL 日本語(マルチバイト)文字をソート(ORDER BY)する UTF-8
MySQLで日本語を入れた列をソートしようとするとうまくいかない現象を確認。
解決策は下記を発見。
SELECT * FROM [table_name] ORDER BY CAST([sort_column] AS char);
これが調査した感じではベストでしたが、しっくりこない。。。
DBのセットアップの時に対応させる方法があったような。。。
解決策は下記を発見。
SELECT * FROM [table_name] ORDER BY CAST([sort_column] AS char);
これが調査した感じではベストでしたが、しっくりこない。。。
DBのセットアップの時に対応させる方法があったような。。。
2009年9月15日火曜日
Zend_Validate NotEmptyでは0を正確にチェックできない時がある。
NotEmpty というだけに0が入力されても普通はOKなんですが、Filter で Int を使うと isEmpty となってしまいます。
これは Validate_NotEmpty の中で empty 関数を利用してチェックしているからです。。。
普通のValidateクラスなら問題ないんですが、この NotEmpty はやっかいな事に IsRequred で必須を指定した時に強制的に追加される Validate です。
removeValidate で削除してオリジナル Validate を追加しようにも自動で追加される Validate は isValid のタイミングで追加されるので対象外になってしまうようです。。。
対応策は見つからず。。。
前回のMulti系エレメントの問題で Int にキャストする事で回避と書きましたが、合わせるとどうしようもない問題に変わります。。。
Multi系の時に array_keys を利用しているのですが、こいつは Int ぽいのしか無ければ必ずIntにしてしまうからです。。。
DBには0以外で管理するしか無いですね。。。
boolの変わりにIntを使う時でも1と2でやった方が良いです。
オリジナルFilterを作成して対処する方法がありました。
http://developer.unlax.com/2009/10/zendframework-element0.html
これは Validate_NotEmpty の中で empty 関数を利用してチェックしているからです。。。
普通のValidateクラスなら問題ないんですが、この NotEmpty はやっかいな事に IsRequred で必須を指定した時に強制的に追加される Validate です。
removeValidate で削除してオリジナル Validate を追加しようにも自動で追加される Validate は isValid のタイミングで追加されるので対象外になってしまうようです。。。
対応策は見つからず。。。
前回のMulti系エレメントの問題で Int にキャストする事で回避と書きましたが、合わせるとどうしようもない問題に変わります。。。
Multi系の時に array_keys を利用しているのですが、こいつは Int ぽいのしか無ければ必ずIntにしてしまうからです。。。
DBには0以外で管理するしか無いですね。。。
boolの変わりにIntを使う時でも1と2でやった方が良いです。
オリジナルFilterを作成して対処する方法がありました。
http://developer.unlax.com/2009/10/zendframework-element0.html
HTTP_Request でアクセス先がリダイレクトを要求している場合への対応
RSSリーダー作成の時にちょっとはまったのでメモ。
$options = array(
'timeout' => '10', // タイムアウトの秒数指定
);
$req = new HTTP_Request('', $options);
上記から下記へ修正する事により対応可能となった。
$options = array(
'timeout' => '10', // タイムアウトの秒数指定
'allowRedirects' => true,
'maxRedirects' => 2,
);
$req = new HTTP_Request('', $options);
$options = array(
'timeout' => '10', // タイムアウトの秒数指定
);
$req = new HTTP_Request('', $options);
上記から下記へ修正する事により対応可能となった。
$options = array(
'timeout' => '10', // タイムアウトの秒数指定
'allowRedirects' => true,
'maxRedirects' => 2,
);
$req = new HTTP_Request('', $options);
2009年9月14日月曜日
PHP Zend_Filterではcontextが使えない。。。
Zend_Filterではcontextが使えないみたいです。。。
生年月日 □□□□年□□月□□日
といった場合に3つの入力欄に分けた場合にFilterでマージするようにしたいのだが、これができない。。。
Validateの後にすればいいけどValidateでchkdateだってしたいだろうし。。。
結局Validateの際にマージするようにできるけど本来Filterの仕事のような気も。。。
生年月日 □□□□年□□月□□日
といった場合に3つの入力欄に分けた場合にFilterでマージするようにしたいのだが、これができない。。。
Validateの後にすればいいけどValidateでchkdateだってしたいだろうし。。。
結局Validateの際にマージするようにできるけど本来Filterの仕事のような気も。。。
PHP Zend_Form_Elementには同じValidateを2重登録できない。
どうやらZend_Form_Elementの中身を見てみると、ValidateをElementに追加する時に同じ名前を登録しようとすると上書きされてしまうようだ。
これで困る事は、現在デフォルトで用意されているようなNoRecordExistsなんかである。
大体は1回しか利用しない事が多数だが、場合によっては2回以上利用する必要がある場合がある。
例えば
テーブルAとテーブルBに登録されていないメールアドレスならばOKとしたい場合である。
テーブルAをチェックするValidateを登録した後にテーブルBをチェックするValidateを登録するとクラス名が一緒のためテーブルBのみをチェックして判断してしまう。。。
対処方法としてはクラス名を変えてオリジナルの物を用意するしかない。
Abstract.php は別にいるので簡単にできるのだが、同じクラスが2個、3個と増えていくのは全く納得がいかない。。。。
これ位の事が想定できなかったとも考えにくいのだが、方法があるのか。。。
Validateを重複ありにする設定とか。。。
ちなみに1.8.0にあったNoRecordExistsなんかは1.6.1に安易に移植可能だった。
検証対象 Zend_Framework 1.6.1、1.8.0
これで困る事は、現在デフォルトで用意されているようなNoRecordExistsなんかである。
大体は1回しか利用しない事が多数だが、場合によっては2回以上利用する必要がある場合がある。
例えば
テーブルAとテーブルBに登録されていないメールアドレスならばOKとしたい場合である。
テーブルAをチェックするValidateを登録した後にテーブルBをチェックするValidateを登録するとクラス名が一緒のためテーブルBのみをチェックして判断してしまう。。。
対処方法としてはクラス名を変えてオリジナルの物を用意するしかない。
Abstract.php は別にいるので簡単にできるのだが、同じクラスが2個、3個と増えていくのは全く納得がいかない。。。。
これ位の事が想定できなかったとも考えにくいのだが、方法があるのか。。。
Validateを重複ありにする設定とか。。。
ちなみに1.8.0にあったNoRecordExistsなんかは1.6.1に安易に移植可能だった。
検証対象 Zend_Framework 1.6.1、1.8.0
PHP Zend_Element SlectやRadioなどでは値に0が含まれる注意が必要
ZendFramework の Zend_Formを利用する時にZend_Elementを利用するが、その際にSelectやRadioを利用するとMultiOptionsを指定して利用する。
この時にちょっとした落とし穴があって、本来このMultiOptionsを指定すると自動的にInArrayというValidateが追加されるこれはこの連想配列に含まれるキーに該当するかをチェックしてくれるバリデートなのだが、このキーに0が含まれる場合、つまり 0=>いいえ, 1=>はい といった場合です。
この場合InArrayは自動的にセットされない。
これが何を目的としてこうなっているのかは解らないがリファレンスにもそれらしい事は書かれているので、何かのためにあえてそうなっているようだ。。。
対処方法としては自動的にセットしてくれないので、自分でValidateにInArrayをしてやればいいんだろうと思ったけどダメみたい。。。
って、やっと解った。。。
PHPでは結構型の扱いというのが曖昧なせいで、こんな歪を発見。
in_array で
$res = in_array('aaa', array(
1,
2,
0,
));
var_dump($res);
とすると結果は TRUE となる。
なぜ?
これは'aaa'をIntにキャストすると0になってその0が入っているからTRUEとなる。。。
Zend_Validate_InArray でもこの現象が発生しているのです。。。
一応このin_arrayにはこの現象を回避するために第2引数にStrictが用意されており、ここをTRUEにすれば解消されるのですが、問題は Zend_Validate_InArray では指定できるようになっているけどElementでselectなどのMulti系を指定する時は指定できないのです。。。
なので、仕方ないので、
'validators' => array(
array (
'breakChainOnFailure' => true,
'validator' => 'InArray',
'options' => array((array)$arrayHoge, true),
),
),
として自動で入れたものをStrictをTRUEで上書きしてやるしかないのです。
また、この時に型まで見るようになるためりフォームから受け取った値はStringなので、このままだとどんな値でもエラーになります。。。
なので、今度はFilterでIntを指定してフォームの値をキャストしてやりましょう。
これで解決ですね。。。
あ~ハマった。。。
この時にちょっとした落とし穴があって、本来このMultiOptionsを指定すると自動的にInArrayというValidateが追加されるこれはこの連想配列に含まれるキーに該当するかをチェックしてくれるバリデートなのだが、このキーに0が含まれる場合、つまり 0=>いいえ, 1=>はい といった場合です。
この場合InArrayは自動的にセットされない。
これが何を目的としてこうなっているのかは解らないがリファレンスにもそれらしい事は書かれているので、何かのためにあえてそうなっているようだ。。。
対処方法としては自動的にセットしてくれないので、自分でValidateにInArrayをしてやればいいんだろうと思ったけどダメみたい。。。
って、やっと解った。。。
PHPでは結構型の扱いというのが曖昧なせいで、こんな歪を発見。
in_array で
$res = in_array('aaa', array(
1,
2,
0,
));
var_dump($res);
とすると結果は TRUE となる。
なぜ?
これは'aaa'をIntにキャストすると0になってその0が入っているからTRUEとなる。。。
Zend_Validate_InArray でもこの現象が発生しているのです。。。
一応このin_arrayにはこの現象を回避するために第2引数にStrictが用意されており、ここをTRUEにすれば解消されるのですが、問題は Zend_Validate_InArray では指定できるようになっているけどElementでselectなどのMulti系を指定する時は指定できないのです。。。
なので、仕方ないので、
'validators' => array(
array (
'breakChainOnFailure' => true,
'validator' => 'InArray',
'options' => array((array)$arrayHoge, true),
),
),
として自動で入れたものをStrictをTRUEで上書きしてやるしかないのです。
また、この時に型まで見るようになるためりフォームから受け取った値はStringなので、このままだとどんな値でもエラーになります。。。
なので、今度はFilterでIntを指定してフォームの値をキャストしてやりましょう。
これで解決ですね。。。
あ~ハマった。。。
2009年9月11日金曜日
PHP Windows環境にPECL FileInfoをインストール
http://pecl.php.net/package/Fileinfo
でダウンロードしても中にDLLファイルが無い。。。
続いて
http://pecl4win.php.net/ext.php/php_fileinfo.dll
で取得しようにもサイトが改装中。。。
で、行きついたのがここ。
モジュールは発見したけど入れてみると。
http://dllcentral.com/php_fileinfo.dll/5.2.5.5/
だめだ。。。。なぜ。。。
PHP5.3.0からだと標準でモジュールが入っているみたいなんでコメントアウトを外すだけで良いんだけどな。。。
PHP5.3.0から持って来てみようかな。。。
ってやっぱり駄目だった。。。
でダウンロードしても中にDLLファイルが無い。。。
続いて
http://pecl4win.php.net/ext.php/php_fileinfo.dll
で取得しようにもサイトが改装中。。。
で、行きついたのがここ。
モジュールは発見したけど入れてみると。
http://dllcentral.com/php_fileinfo.dll/5.2.5.5/
だめだ。。。。なぜ。。。
PHP5.3.0からだと標準でモジュールが入っているみたいなんでコメントアウトを外すだけで良いんだけどな。。。
PHP5.3.0から持って来てみようかな。。。
ってやっぱり駄目だった。。。
PHP JPEG(JPG)のRGBとCMYK等のカラーモードを判別する方法
$FileInfo = getimagesize($ImagePath);
if ($FileInfo['channels'] == 1) {
echo 'これはグレースケールです。';
} else if ($FileInfo['channels'] == 2) {
echo 'これは?です。';
} else if ($FileInfo['channels'] == 3) {
echo 'これはRGBです。';
} else if ($FileInfo['channels'] == 4) {
echo 'これはCMYKです。';
}
if ($FileInfo['channels'] == 1) {
echo 'これはグレースケールです。';
} else if ($FileInfo['channels'] == 2) {
echo 'これは?です。';
} else if ($FileInfo['channels'] == 3) {
echo 'これはRGBです。';
} else if ($FileInfo['channels'] == 4) {
echo 'これはCMYKです。';
}
2009年9月8日火曜日
PostgreSQL UNIQUE制約の削除
これらは全部ダメ
× ALTER TABLE [table_name] ALTER COLUMN [column_name] DROP INDEX [index_name];
× ALTER TABLE [table_name] ALTER COLUMN [column_name] DROP UNIQUE;
× ALTER TABLE [table_name] DROP INDEX [index_name];
× DROP INDEX [index_name];
これが正解
○ ALTER TABLE [table_name] DROP CONSTRAINT [column_name];
× ALTER TABLE [table_name] ALTER COLUMN [column_name] DROP INDEX [index_name];
× ALTER TABLE [table_name] ALTER COLUMN [column_name] DROP UNIQUE;
× ALTER TABLE [table_name] DROP INDEX [index_name];
× DROP INDEX [index_name];
これが正解
○ ALTER TABLE [table_name] DROP CONSTRAINT [column_name];
Windows CSEを利用してPostgreSQLに接続する
まずPostgreSQLのドライバをインストールする。
検索 > ダウンロード
pgAdminⅢを起動してパスワードを入力してログインする。
データベースを選択して接続する。
接続するとツールサーバー構成が選べるようになるので、そこにある pg_hba.conf を選択する。
127.0.0.1 の設定されているレコードをダブルクリックする。
方法という項目がmd5になっているので、password に変更する。
そして上書き保存してCSEで接続可能かを確認する。
※CSEでユーザー名、パスワードを入力するようになっているがODBCの設定で入力していれば必要なし。
今回参考にしたサイトはこちら
検索 > ダウンロード
pgAdminⅢを起動してパスワードを入力してログインする。
データベースを選択して接続する。
接続するとツールサーバー構成が選べるようになるので、そこにある pg_hba.conf を選択する。
127.0.0.1 の設定されているレコードをダブルクリックする。
方法という項目がmd5になっているので、password に変更する。
そして上書き保存してCSEで接続可能かを確認する。
※CSEでユーザー名、パスワードを入力するようになっているがODBCの設定で入力していれば必要なし。
今回参考にしたサイトはこちら
2009年9月4日金曜日
Smarty バイトで文字数指定する場合にエスケープもする。UTF8対応
前回紹介したものはエスケープはしていなかったので、XMLを出力する際には使えなかった。
理由
・エスケープしてからだとエスケープ後のエンティティが壊れてしまう可能性がある。
・丸めた後だと、バイト数がオーバーしてしまう。
以上の理由から、エスケープもしてくれるタイプを作った。
function smarty_modifier_org_escape_truncate_byte ($string, $length='', $end="…", $enc='UTF-8') {
$length = (int)$length;
$end = (string)$end;
$MbLength = @mb_strlen($string, $enc);
$ByteCount = 0;
$ResStrings = $OverStr = '';
for ($i=0; $i<$MbLength; $i++) {
$str = htmlspecialchars(mb_substr($string, $i, 1, $enc));
$len = strlen($str);
if (($ByteCount + $len + strlen($end)) > $length && $OverStr == '')
$OverStr = $ResStrings . $end;
if (($ByteCount + $len) > $length) {
return $OverStr;
} else {
$ResStrings .= $str;
$ByteCount = $ByteCount + $len;
}
}
return $ResStrings;
}
理由
・エスケープしてからだとエスケープ後のエンティティが壊れてしまう可能性がある。
・丸めた後だと、バイト数がオーバーしてしまう。
以上の理由から、エスケープもしてくれるタイプを作った。
function smarty_modifier_org_escape_truncate_byte ($string, $length='', $end="…", $enc='UTF-8') {
$length = (int)$length;
$end = (string)$end;
$MbLength = @mb_strlen($string, $enc);
$ByteCount = 0;
$ResStrings = $OverStr = '';
for ($i=0; $i<$MbLength; $i++) {
$str = htmlspecialchars(mb_substr($string, $i, 1, $enc));
$len = strlen($str);
if (($ByteCount + $len + strlen($end)) > $length && $OverStr == '')
$OverStr = $ResStrings . $end;
if (($ByteCount + $len) > $length) {
return $OverStr;
} else {
$ResStrings .= $str;
$ByteCount = $ByteCount + $len;
}
}
return $ResStrings;
}
Smartyで指定文字数までに丸める(削る)。ただし指定はByteで指定する。UTF-8へも対応
Smarty側で指定バイト数を超えている場合に文字化けしよいように丸める。
UTF8は1バイト~4バイトまで混じっているので、ちょっと工夫が必要となる。
下記関数では文字数を超えている場合まだ続きを表すための文字を追加できる。
もちろん追加した状態で最大文字数を超えないようにしている。
※デフォルトは”…”
※空を渡せば丸めた後に何も付けずにギリギリまで表示できる。
function smarty_modifier_org_truncate_byte ($string, $length='', $end="…", $enc='UTF-8') {
$length = (int)$length;
$end = (string)$end;
$MbLength = @mb_strlen($string, $enc);
$ByteCount = 0;
$ResStrings = $OverStr = '';
for ($i=0; $i<$MbLength; $i++) {
$str = mb_substr($string, $i, 1, $enc);
$len = strlen($str);
if (($ByteCount + $len + strlen($end)) > $length && $OverStr == '')
$OverStr = $ResStrings . $end;
if (($ByteCount + $len) > $length) {
return $OverStr;
} else {
$ResStrings .= $str;
$ByteCount = $ByteCount + $len;
}
}
return $ResStrings;
}
▼利用方法
テンプレート内で下記のように書く。
{$hogehoge|org_truncate_byte:100}
UTF8は1バイト~4バイトまで混じっているので、ちょっと工夫が必要となる。
下記関数では文字数を超えている場合まだ続きを表すための文字を追加できる。
もちろん追加した状態で最大文字数を超えないようにしている。
※デフォルトは”…”
※空を渡せば丸めた後に何も付けずにギリギリまで表示できる。
function smarty_modifier_org_truncate_byte ($string, $length='', $end="…", $enc='UTF-8') {
$length = (int)$length;
$end = (string)$end;
$MbLength = @mb_strlen($string, $enc);
$ByteCount = 0;
$ResStrings = $OverStr = '';
for ($i=0; $i<$MbLength; $i++) {
$str = mb_substr($string, $i, 1, $enc);
$len = strlen($str);
if (($ByteCount + $len + strlen($end)) > $length && $OverStr == '')
$OverStr = $ResStrings . $end;
if (($ByteCount + $len) > $length) {
return $OverStr;
} else {
$ResStrings .= $str;
$ByteCount = $ByteCount + $len;
}
}
return $ResStrings;
}
▼利用方法
テンプレート内で下記のように書く。
{$hogehoge|org_truncate_byte:100}
2009年8月26日水曜日
Smarty リソースのエラーについて
ちょっとハマってしまったので、メモ。
リソースが空だよ!!的なエラーが出た時はdisplayを疑ってしまうけど、テンプレート内のincludeも確認する事。
displayばっかり見て変に時間かかった。。。
リソースが空だよ!!的なエラーが出た時はdisplayを疑ってしまうけど、テンプレート内のincludeも確認する事。
displayばっかり見て変に時間かかった。。。
2009年8月24日月曜日
TaskManagerちゃんと終了してくれない?
最近気付いたけどどうやらこのTaskManagerには2つの起動中アプリ一覧(タスク一覧、プロセス一覧)の表示させる方法があるのですが、タスク一覧で停止させても終了しないようです。
試しにタスク一覧でSTOPした後に、プロセス一覧を見てみても起動のままになってました。
何故なんでしょうかね。。。
最近imeemを入れてから重いです。。。
終了は必ずプロセス一覧からしないとダメですが、そこまでなかなかたどり着けない場合もあります。。。
でも気に入りすぎて消せません(笑)
2009年8月17日月曜日
直交表を作成しました
HAYST法でテストケースを作ろうにもなかなか直交表が無料で配布されていない。。。
なので作りましたL32までとりあえず作りましたが、L64の必要が出てきたところで更新したいと思います。
直交表をダウンロード
なので作りましたL32までとりあえず作りましたが、L64の必要が出てきたところで更新したいと思います。
直交表をダウンロード
2009年8月11日火曜日
UPDATE でJOINする方法(PostgreSQL)
2つのテーブルにまたがってユニークとなるキーが存在した場合に必要となった。
PostgreSQLでは対応可能であったのでメモ。
UPDATE
hoge1
SET
flag = 1
FROM
hoge2
WHERE
hoge2.code = hoge1.code
AND
TRANSLATE(hoge2.col1, '-', '') || hoge1.col2 = 'testtest'
★ポイントはココ
FROM
hoge2
WHERE
hoge2.code = hoge1.code
PostgreSQLでは対応可能であったのでメモ。
UPDATE
hoge1
SET
flag = 1
FROM
hoge2
WHERE
hoge2.code = hoge1.code
AND
TRANSLATE(hoge2.col1, '-', '') || hoge1.col2 = 'testtest'
★ポイントはココ
FROM
hoge2
WHERE
hoge2.code = hoge1.code
2009年7月31日金曜日
新着iがブラウザを開かなくても返信できるようになった
新着iというアプリは以前から何度も裏切られて自分はもう使わなくなりましたが、会社の友達はまだ信じて使い続けているようです(笑)
そこでその友達に聞いたのですが、新着iは結構こまめにバージョンアップしているようでして、今ではブラウザを立ち上げずに返信できるようになっているそうです。
しかし残念なのがアドレス帳は参照できないようです。。。おしい。。。
あと常駐させているとめちゃくちゃ電池の消費が激しいらしいです(笑)
ま~これは仕方ないですね。。。
そこでその友達に聞いたのですが、新着iは結構こまめにバージョンアップしているようでして、今ではブラウザを立ち上げずに返信できるようになっているそうです。
しかし残念なのがアドレス帳は参照できないようです。。。おしい。。。
あと常駐させているとめちゃくちゃ電池の消費が激しいらしいです(笑)
ま~これは仕方ないですね。。。
HT-03A用の便利でオシャレな充電器を見つけました
HT-03Aは予備のバッテリーが付いてくるのですが、いちいちバッテリーを外して充電してもう一つも。。。ってのが面倒で(T。T
そこでバッテリーだけ充電できるものを探していたのですが、ネットで探してもどこも売り切れで。。。
っていうか種類も全然無いようで全く見つかりません。
そこで売り切れ表示が無いサイトをやっと見つけましたので。
もしかしたら表示が無いだけで売り切れている可能性もありますが。。。
でも見た目的にもシンプルでLEDも充電完了したら色が変わったりするみたいなんで非常に良いな~と思います。
これは海外のものなので仕方ないのですが、できればどこもの普通の充電器が後ろにACアダプターとして刺せるようになっているとうれしいと思いました。
とりあえず買おうかな。。。
でもここの
そこでバッテリーだけ充電できるものを探していたのですが、ネットで探してもどこも売り切れで。。。
っていうか種類も全然無いようで全く見つかりません。
そこで売り切れ表示が無いサイトをやっと見つけましたので。
もしかしたら表示が無いだけで売り切れている可能性もありますが。。。
でも見た目的にもシンプルでLEDも充電完了したら色が変わったりするみたいなんで非常に良いな~と思います。
これは海外のものなので仕方ないのですが、できればどこもの普通の充電器が後ろにACアダプターとして刺せるようになっているとうれしいと思いました。
とりあえず買おうかな。。。
でもここの
2009年7月24日金曜日
カメラアプリSnapphotoの使い方
現在使っているカメラアプリSnapphotoの使い方を調査してみようと思います。
まず設定項目は9つあります。
露出とは画像の明るさを調整するものだと思ってください。
数字が大きいほど明るくなります。しかし、その分画像は加工されるので汚くなります。
あまり変化が見られないというかHT-03Aのカメラは元が酷いのでしょうかね。。。
ホワイトバランス
モードは7つあります。ホワイトバランスは写真の色と実際の色が同じになるように調整すために使用します。
8つのエフェクトが用意されています。
ナイトモード
セルフタイマー
フォーカス
3種類用意されています。
画像サイズ
3種類のサイズが用意されています。
連射
手ぶれ補正
※ONの状態だとピントが会うまで時間がかかります。
Snapphotoのダウンロードはこちら
http://jp.androlib.com/android.application.com-ap-snapphoto_free-wtB.aspx
まず設定項目は9つあります。
- 露出
- ホワイトバランス
- エフェクト
- ナイトモード
- セルフタイマー
- フォーカス
- 画像サイズ
- グリッド
- 手ぶれ補正
露出とは画像の明るさを調整するものだと思ってください。
数字が大きいほど明るくなります。しかし、その分画像は加工されるので汚くなります。
あまり変化が見られないというかHT-03Aのカメラは元が酷いのでしょうかね。。。
ホワイトバランス
モードは7つあります。ホワイトバランスは写真の色と実際の色が同じになるように調整すために使用します。
- Auto: オート
- Incandescent: 白熱灯
- Fluorescent: 蛍光灯
- Daylight: 太陽
- Cloudy: 曇り
- Twilight: 薄明かり
- Shade: 日陰
8つのエフェクトが用意されています。
- None
- Mono
- Negative
- Solarize
- Sepia
- Whiteboad
- Blackbload
- Aqua
ナイトモード
セルフタイマー
フォーカス
3種類用意されています。
- Normal
- Off
- Pre-Focus
画像サイズ
3種類のサイズが用意されています。
- Large
- Medium
- Small
連射
手ぶれ補正
※ONの状態だとピントが会うまで時間がかかります。
Snapphotoのダウンロードはこちら
http://jp.androlib.com/android.application.com-ap-snapphoto_free-wtB.aspx
2009年7月23日木曜日
Android 文字入力はこれを使おう!
前回Simejiというアプリを紹介して フリッカやベル打ちなどが便利だと紹介してきましたが、毎日使っていると悪いところも見えてきます。。。
結局今はSimejiは使ってません。
Simeji のベル打ちは非常に便利なのですが、あまりにも遅い。。。
慣れればなれるほど早く入力できるようになるのですが、逆に早くなれば早くなるほどSimejiの処理が間に合わず文字が表示されない。。。
致命的です。。。
まだまだバグも多いです。。。
また文字の変換方法が大きく問題で、Simejiは変換のための辞書をサーバー上で共有管理?しているっぽいのですが、このせいで文字変換の度に通信が発生するので遅い。。。
しかも個人情報漏れまくり。。。
文字入力ではカード番号や名前なんかを入力するので、そんなものが他人の入力候補に表示されれば危険すぎます。。。
これらは企業が作ったアプリであれば、慎重に対応してくれるのでしょうが、タダほど高いものはありません。。。
事件が起きる前に自分は利用しない事にしました。。。
で、問題はじゃー何にするんだ?ってことなんですが。
結局はiWnnを利用しています。
ちょっとした裏技を友達に教えてもらって左下の文字モード変換ボタンを長押ししているとQwenty(?)モードに変更できる事を知りました。。。。
ずっとこれはSimejiかAndroidキーボードじゃないとダメなんだと思ってましたので、ショックできた。。。
今はこれを使っています。
変換候補もGOODでデフォルトで入っているアプリだけに安心して良いのでしょうからw
設定もいろいろ細かくできますしね♪
あとはAndroidキーボードでチャットの時みたいに絵文字に対応してくれる事を祈ります。
結局今はSimejiは使ってません。
Simeji のベル打ちは非常に便利なのですが、あまりにも遅い。。。
慣れればなれるほど早く入力できるようになるのですが、逆に早くなれば早くなるほどSimejiの処理が間に合わず文字が表示されない。。。
致命的です。。。
まだまだバグも多いです。。。
また文字の変換方法が大きく問題で、Simejiは変換のための辞書をサーバー上で共有管理?しているっぽいのですが、このせいで文字変換の度に通信が発生するので遅い。。。
しかも個人情報漏れまくり。。。
文字入力ではカード番号や名前なんかを入力するので、そんなものが他人の入力候補に表示されれば危険すぎます。。。
これらは企業が作ったアプリであれば、慎重に対応してくれるのでしょうが、タダほど高いものはありません。。。
事件が起きる前に自分は利用しない事にしました。。。
で、問題はじゃー何にするんだ?ってことなんですが。
結局はiWnnを利用しています。
ちょっとした裏技を友達に教えてもらって左下の文字モード変換ボタンを長押ししているとQwenty(?)モードに変更できる事を知りました。。。。
ずっとこれはSimejiかAndroidキーボードじゃないとダメなんだと思ってましたので、ショックできた。。。
今はこれを使っています。
変換候補もGOODでデフォルトで入っているアプリだけに安心して良いのでしょうからw
設定もいろいろ細かくできますしね♪
あとはAndroidキーボードでチャットの時みたいに絵文字に対応してくれる事を祈ります。
Android 新着i が軽くなりました♪
新着i は以前は携帯がまともに動かなくなる位重かったのですが、やっとそれらしいものになって利用できるようになりました。
ただ、今回気付いたのが、このアプリどうやら起動ボタンを押しても起動しているのかどうかが解らないんですね。。。
なのでこのアプリを入れる時はTask Managerというアプリも入れた方が良いです。
このアプリで現在起動しているかどうかが解りますので。。。
これでまた常駐アプリが増えた。。。
新着i の利用方法
設定
⇒docomo ID を設定する。
iモード.net で利用しているIDです。
⇒パスワード を設定する。
iモード.net で利用しているパスワードです。
⇒更新間隔 を設定する。
10分に設定する。
自分のはあまり必要ないのとバッテリーの節約に。
⇒プロキシサービス
一応ONにしておきました。
以上で設定は終わりですので、起動ボタンを1回だけ押して待ちますw
メールが来るといつもの如く上の通知欄で通知されます。
通知されたらそこをクリックして新着i画面に移動してから、「iモード.net」ボタンをクリックします。
これで便利になりましたね~♪
ってやっぱり重いですね。。。
メールチェックすればするほど重くなってるような。。。
これって。。。
やっぱり消しとこう。。。
ただ、今回気付いたのが、このアプリどうやら起動ボタンを押しても起動しているのかどうかが解らないんですね。。。
なのでこのアプリを入れる時はTask Managerというアプリも入れた方が良いです。
このアプリで現在起動しているかどうかが解りますので。。。
これでまた常駐アプリが増えた。。。
新着i の利用方法
設定
⇒docomo ID を設定する。
iモード.net で利用しているIDです。
⇒パスワード を設定する。
iモード.net で利用しているパスワードです。
⇒更新間隔 を設定する。
10分に設定する。
自分のはあまり必要ないのとバッテリーの節約に。
⇒プロキシサービス
一応ONにしておきました。
以上で設定は終わりですので、起動ボタンを1回だけ押して待ちますw
メールが来るといつもの如く上の通知欄で通知されます。
通知されたらそこをクリックして新着i画面に移動してから、「iモード.net」ボタンをクリックします。
これで便利になりましたね~♪
ってやっぱり重いですね。。。
メールチェックすればするほど重くなってるような。。。
これって。。。
やっぱり消しとこう。。。
HT-03A Gmailアプリ 送信者名の確認方法
メール詳細画面にてメールアドレス左にある○をクリックするとアドレス帳から検索して情報を表示してくれる機能があります。
そんな事できるなら一覧でも出してくれよ。。。
そんな事できるなら一覧でも出してくれよ。。。
Android iモードメールを確認するアプリ「新着i」
機種変でHT-03Aを購入した人なんかは以前使っていたiモードメールを残す人が多いはず。
見るためには iモード.net を契約して見る事になるんだけどこの iモード.net が実にいけてない。。。
そこで思うのが専用アプリ出ないかな。。。って
で、探してたら見つけました♪
新着i
http://jp.androlib.com/android.developer.tam-AqD.aspx
コツとしては 新着i でマーケットで検索しても出てこないかったので、
jp.cane
で検索しました。
パッケージ名が jp.cane.checki なようです。
見るためには iモード.net を契約して見る事になるんだけどこの iモード.net が実にいけてない。。。
そこで思うのが専用アプリ出ないかな。。。って
で、探してたら見つけました♪
新着i
http://jp.androlib.com/android.developer.tam-AqD.aspx
コツとしては 新着i でマーケットで検索しても出てこないかったので、
jp.cane
で検索しました。
パッケージ名が jp.cane.checki なようです。
HT-03A 買いました♪
2日遅れの日曜日に購入しました。
最初は日本語もまともに打てないしどうしたものかと思いましたがやっとポイントが掴めてきたような気がします。
良い点
simejiは必須ですね。。。
最初は日本語もまともに打てないしどうしたものかと思いましたがやっとポイントが掴めてきたような気がします。
良い点
- 思ったより電池は持つ。
- 電池パックが2個付いてくるが、その電池パック用のソフトケースも付いてきました。
※思ったよりは電池が持つので持ち歩きませんが。。。 - 追加できるアプリケーションはiアプリとは違って制御できる範囲が広いので良さそうなアプリが結構ある。
- 音楽ファイルがドラッグアンドドロップで入れれるのはめちゃくちゃ嬉しい。
- 動きがもっさりとか言われていたけど気にならない。
- やっぱり大きさもiPhoneに揃えてほしかった。
- イヤフォン端子がほしい。
- アプリが綺麗に削除できない。
- デフォルトではまともに日本語入力できない。
- トラックボールの使いどころが解らない。
- Gmailアプリがシンプルすぎる。
- 絵文字が見れない。
- 絵文字が送れない。
- HTMLメールが送れない。
- simeji 文字入力アプリ
- AudioManager 各アプリの音量管理
- Backgrounds 色々な壁紙が選べる
- ConnectBog SSHクライアント
- Flashlight 画面を真っ白にしてライト代わりに&ドット欠けのチェックにw
- QRコードスキャナー とりあえずQRコード読みたい日がきた時のために。
- UltraSound 若い人にしか聞こえない高音域を出せる あなたは何KHzまで聞こえるか!!w
simejiは必須ですね。。。
Android 動画編集アプリを探してみる
以前iPhone3GSを買った知人に見せてもらった時に動画編集ができるんです。
と言われた事がありました。
もちろんYouTubeにアップできるんだしHT-03Aでもできると思っていたのですが、できません。。。
具体的に何がiPhoneでできていたかというと、20秒動画を撮影して実際使いたいシーンは
5秒~15秒だった時にトリミング(?)切り抜きできるという機能でした。
別にそう変わった機能ではなくごくシンプルな機能だとは思うのですが、デフォルトのHT-03Aのアプリにはありません。。。
そこで探しました。
まずそれらしいのを見つけたのが
nswPlayer
http://www.nsw.co.jp/solution/android/index.html#service
全然ダメでしたw
編集ってのにヒットして釣られたんですが、既存で十分事足りる必要性を感じないアプリでした。。。
同じページにあったスケジューラーも既存の方がWebと連携できて良いのですが。。。
その他にもいくつかそれらしいのを見つけたのですが、どれもダメでした。。。
と言われた事がありました。
もちろんYouTubeにアップできるんだしHT-03Aでもできると思っていたのですが、できません。。。
具体的に何がiPhoneでできていたかというと、20秒動画を撮影して実際使いたいシーンは
5秒~15秒だった時にトリミング(?)切り抜きできるという機能でした。
別にそう変わった機能ではなくごくシンプルな機能だとは思うのですが、デフォルトのHT-03Aのアプリにはありません。。。
そこで探しました。
まずそれらしいのを見つけたのが
nswPlayer
http://www.nsw.co.jp/solution/android/index.html#service
全然ダメでしたw
編集ってのにヒットして釣られたんですが、既存で十分事足りる必要性を感じないアプリでした。。。
同じページにあったスケジューラーも既存の方がWebと連携できて良いのですが。。。
その他にもいくつかそれらしいのを見つけたのですが、どれもダメでした。。。
Android Simejiでベル打ち
以前Simejiを紹介したんですが、Simejiには入力方法に3種類あります。
この中のフリックというのが人気No1(?)と思いますが、ベルというのに自分ははまっていますw
ベルというのはベル打ちでポケットベルの時の入力方式になるのですが、自分は悲しい事にその世代になるので、ベル打ちは体が覚えていますw
しかもベル打ちは英語などの切り替えも必要ないのでフリックよりも高速です。
残念なのはsimejiがあまり早く入力すると文字化けして□という文字になってしまう事です。。。
変換速度など変換機能はデフォルトのiWnn IMEの方が良いので、iWnn IMEにベルモードが付いてくれればいいんですけどね。。。
あと早く入力すると、キーボード画面の表示は追いついているんですが、実際文字は表示されません。。。
- フリック
- ベル
- ケータイ
この中のフリックというのが人気No1(?)と思いますが、ベルというのに自分ははまっていますw
ベルというのはベル打ちでポケットベルの時の入力方式になるのですが、自分は悲しい事にその世代になるので、ベル打ちは体が覚えていますw
しかもベル打ちは英語などの切り替えも必要ないのでフリックよりも高速です。
残念なのはsimejiがあまり早く入力すると文字化けして□という文字になってしまう事です。。。
変換速度など変換機能はデフォルトのiWnn IMEの方が良いので、iWnn IMEにベルモードが付いてくれればいいんですけどね。。。
あと早く入力すると、キーボード画面の表示は追いついているんですが、実際文字は表示されません。。。
2009年7月10日にdocomo PRO series HT-03A ついに発売~♪
やっとGoogle携帯の発売が発表された。。。
発売日は 2009年7月10日
iPhoneより前に出してくれよ。。。
ドコモでiPhone出てくれるまでこれで我慢するか。。。
http://www.nttdocomo.co.jp/product/foma/pro/ht03a/index.html
発売日は 2009年7月10日
iPhoneより前に出してくれよ。。。
ドコモでiPhone出てくれるまでこれで我慢するか。。。
http://www.nttdocomo.co.jp/product/foma/pro/ht03a/index.html
Google携帯 HT-03A は安い?
HT-03A はどうやら「スマートフォン端末購入割引制度」とうものが適用されるようです。
なんと35000円割引になるようで、なんとHT-03Aが2万円代で買えるとの記事をちょくちょく見ます(@@
安い。。。
これは行くしかないな。。。
なんと35000円割引になるようで、なんとHT-03Aが2万円代で買えるとの記事をちょくちょく見ます(@@
安い。。。
これは行くしかないな。。。
登録:
投稿 (Atom)