2011年6月30日木曜日

javascriptでtrim

javascriptにはtrim関数がないので自前で実装する。
str.replace(/(^\s+)|(\s+$)/g, "");

他にもいかにも関数っぽくするなら
String.prototype.trim = function() {
    return this.replace(/(^\s+)|(\s+$)/g, "");
}

function func(str) {
    return str.trim();
}

jQueryを使える環境なら
$.trim(val);

2011年6月27日月曜日

PhoneGapを試してみた

PhoneGapはHTML、Javascript、CSSを使ってスマートフォン向けネイティブアプリケーションを開発するためのツールです。

PhoneGapアプリケーションでは、UIの作成にHTMLを用いるので異なるOS間の高い互換性をもつことができます。しかしながらネイティブアプリケーションに比べると速度的な問題が多々ありそうです。

とりあえず開発環境の構築 -Android-

まずPhoneGapの公式サイトから最新バージョンのパッケージをダウンロードします。(http://www.phonegap.com/)現時点での最新は0.9.5.1です。

ダウンロードしたファイルを解凍して[phonegap-0.9.5.1 > Android]の順に開き、[phonegap.0.9.5.1.jar]をAndroidプロジェクトのビルドパスに加えることで参照することができます。

ビルドパスに追加するには、まずプロジェクトに[libs]フォルダを作成し、そのなかに[phonegap.0.9.5.1.jar]をコピー(phonegap.0.9.5.1.jarをドラッグ&ドロップ)します。
続いて[phonegap.0.9.5.1.jar]を右クリックし[ビルドパス > ビルドパスの追加]を選ぶとビルドパスに設定されます。
最後に先ほど解凍した[phonegap-0.9.5.1 > Android]の[phonegap.0.9.5.1.js]をプロジェクトの[assets]フォルダにコピーして完了。

ダウンロードしたファイルの中にサンプルやドキュメントもあるので簡単に動きを確認できると思います。

iphone・ipod touchのアドレスバーを隠す 其の二

前回metaタグでアドレスバーを隠すという記事を書きましたがちょっとだけ調べてみました。

<meta name="apple-mobile-web-app-capable" content="yes" />

上記のmetaタグを追加するとページ全体のフルスクリーンモードを指定することができる。
ただし、条件があり指定したwebサイトをホーム画面に追加してそこからwebサイトを開くことで機能する。

また、以下のmetaタグを追加することでステータスバーの表示も指定することができる。

<meta name="apple-mobile-web-app-status-bar-style" content="black" />

apple-mobile-web-app-status-bar-styleには以下を設定することができる。

  • default:(デフォルト)不透明
  • black:不透明で黒
  • black-translucent:半透明

ただし、これも条件がありapple-mobile-web-app-capableと併用することで機能が有効化される。

2011年6月24日金曜日

iphone・ipod touchのアドレスバーを隠す

webアプリを作る際に普通にiphoneのsafariで開くとアドレスバーが表示されている。
これを見えなくする場合はscrollToで1ピクセルでもスクロールさせると勝手にスクロールが見えなくなってくれる。
ただし、実際に画面が416px以上の縦幅が必要みたい。

<script type="text/javascript">
    window.onload = function() {
        setTimeout(doScroll, 100);
    }
    function doScroll() {
        if (window.pageYOffset == 0) {
            window.scroll(0, 1);
        }
    }
</script>

タイマーで動作させているのは、onload時では早過ぎるため。
プラスwindow.pageYOffsetで0の判定をしているのは戻るボタンで戻った場合とかにまた先頭に戻ってしまうから。

他にもmetaタグで隠すこともできるらしいけど、まだ試してないからとりあえず記述だけ。
<meta name="apple-mobile-web-app-capable" content="yes" />

jqueryのdatepickerがflashに下に表示される

flashをwebページに表示させる場合、wmodeを使用することで透明化・不透明化を設定することができます。
この機能を利用してjqueryのdatepickerとかがflashの下に入り込むことを防ぐことができます。

【objectタグの場合】
<object>
  <param name="wmode" value="transparent" />
</object>

【embedタグの場合】
<embed wmode="transparent"></embed>

【swfobjectを使用している場合】
var flashvars = {};
var params = { wmode : "transparent" };
var attributes = {};

swfobject.embedSWF("./hoge.swf", "hoge", "100%", "100%", "9.0.0", "expressInstall.swf", flashvars, params, attributes);

ただ注意点もあるみたいです。
wmodeをtransparentに設定した際の注意点

2011年6月22日水曜日

IE7で文字サイズが印刷時に反映されない

表示しているホームページの文字サイズを変更して印刷しても文字サイズが変わらない場合はYahoo!Japanで文字サイズを変更してみる。
理由は不明。。。

Yahooに限った話ではないが、UTF-8で作られたページでは、文字サイズを変更すると印刷の文字サイズの設定も同時に変わってくれるみたいです。
それ以外のShift_JISやEUCでは、文字サイズを変更しても印刷の文字サイズには反映されません。

IIS7でIP制限

IIS7で指定のサイトにIP制限をかける場合は、「Windowsの機能の有効化または無効化」から「IPセキュリティ」を有効にする必要があります。

【Windows 7、Vista】

  1. コントロールパネルのプログラムと機能を開く
  2. 画面右側のWindowsの機能の有効化または無効化を開く
  3. 「インターネットインフォメーションサービス」「World Wide Webサービス」「セキュリティ」の順に展開
  4. 「IPセキュリティ」のチェックボックスをON
  5. 「OK」ボタンをクリック
【Windows Server 2008】
  1. 管理ツールのサーバーマネージャを開く
  2. 「役割」を展開して「Webサーバー(IIS)」をクリック
  3. 役割サービスの追加ウイザードの「役割サービスの選択」ページで「IP及びドメイン制限」のチェックボックスをON
  4. 「次へ」ボタンをクリック

上記の設定後、管理ツールの「インターネットインフォメーションサービス」を開くと「IPアドレスおよびドメインの制限」が機能ビューの中に追加されます


SQL Server Management Studioで”タイムアウトの時間切れ”

SQL Server Management Studioで”タイムアウトの時間切れ”

SQL Server Management Studioで大きめのテーブルを変更しようとすると、下記エラーが表示される場合があります。

テーブルを修正できません。
タイムアウトの時間切れです。操作が完了する前にタイムアウト期間を過ぎたか、またはサーバが応答していません。

【解決方法】

  1. SQL Server Management Studioを開いて、「ツール」→「オプション」を開く
  2. 画面左側のツリーから「Designers」を選択する
  3. 「テーブルデザイナの更新のために接続文字列のタイムアウト値をオーバーライドする」のチェックボックスをOFFにするか、「トランザクションがタイムアウトするまでの時間」を長くする
  4. 「OK」ボタンをクリック

SQL Server 2008 テーブルの変更

SQL Server 2008のManagement Studioでテーブルの変更をしようとすると、下記のエラーが表示される場合があります。

変更が許可されていません。行った変更には、次のテーブルを削除して再作成することが必要になります。再作成できないテーブルに変更を行ったか、テーブルの再作成を必要とする変更を保存できないようにするオプションが有効になっています。

【解決方法】

  1. SQL Server Management Studioを開き、「ツール」→「オプション」を開く
  2. 画面左側のツリーから「Designers」を選択する
  3. 「テーブルの再作成を必要とする変更を保存できないようにする」のチェックボックスをOFFにする
  4. 「OK」ボタンをクリック

2011年6月20日月曜日

wordpressのパーマリンク設定 其の二(mod_rewrite)

其の一ではmod_rewirteのインストールというか導入を書いたので次はその設定方法。

apacheの再起動後、wordpressのインストールディレクトリを見てみると".htaccess"というファイルがあると思います。

このファイルに対して修正を行うとwordpressのパーマリンク設定が反映されるようになりますが、書き込みの権限さえあればwordpressが自動的に設定を変更してくれので特に気にする必要はないかも。

wordpressの設定は管理ツールを開いて設定→パーマリンクで画面を開きます。
最初はもちろんデフォルトになっているので指定したいURLのパターンを選択して保存するとOK。

実際にページを見てみてるとURLが

http://www.hoge.com/?p=2



http://www.hoge.com/2011/06/20/page/

になっていると思います。

wordpressのパーマリンク設定 其の一(mod_rewrite)

"mod_rewrite"はご存知の通りURL書き換えエンジンです。
wordpressではこのmod_rewriteを使って動的なURLを静的なURLに見せることができます。

このmod_rewriteを使うにはapacheのhttp.confを修正する必要があります。

まずはhttp.confをメモ帳とかで開いて

#LoadModule rewrite_module modules/mod_rewrite.so

の部分の先頭のコメントを削除します。↓

LoadModule rewrite_module modules/mod_rewrite.so

次に.htaccessファイルが使用できるようにwordpressをインストールしたディレクトリに合わせて以下を追記します。

<Directory "C:\works\apache2.2\htdocs\wordpress">
    AllowOverride All
</Directory>

設定は以上。あとはapacheを再起動すると有効になります。

2011年6月18日土曜日

iPhoneでデバッグコンソール

webアプリを作ったときにiPhoneとかでデバッグ出力ができないのはなかなか不便だなと思ってたら実はありました。

設定→safari→デベロッパ→デバッグコンソールをオンにすればsafari開いたときアドレスバーの下にデバッグコンソールが表示されます。

javascriptのエラーもでるのでなかなか便利。

2011年6月17日金曜日

PCからiPhoneとかのサイトを見る方法

Safariのメニュー「開発」→「ユーザエージェント」からiPhoneとかiPod touchを選択すればOK。
Yahooとかを見るとiPhoneで見たときの表示と同じになります。

他にもiBBDemo2とかも良さそう。

apache2.2.19+php5.3のインストール

とりあえず動く環境を。。。

1.Apache2.2.17
  apacheはhttp://httpd.apache.org/download.cgiからhttpd-2.2.19-win32-x86-no_ssl.msiをダウンロード
  ダウンロードしたら実行ファイルをダブルクリックでインストール開始。
  基本的にはデフォルトのままでOK。

  インストールが完了したらhttp://localhost/で「It works!」が表示されれば完了。

2.PHP5.3.5
  phpはhttp://windows.php.net/download/からphp-5.3.5-Win32-VC9-x86.zipをダウンロード
  (本当は5.3.6を入れたかったけどphp5apache2_2.dllがなかったから断念)
  ダウンロードしたら適当な場所に解凍
  (今回はd:\programs\phpとしました)

  php.ini-developmentをコピーしてphp.iniにファイル名を変更

  Apacheの設定ファイルhttpd.confに以下を追加


    PHPIniDir "D:\programs\php"
    LoadModule php5_module "D:\programs\php\php5apache2_2.dll"

    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

  Apacheを再起動

3.PHPの動作確認
  Apacheのルートにphpinfo.phpを作成して中身は以下
  <?php phpinfo() ?>


  PHPの青い画面が表示されていれば完了


IIS6.0でmod_rewriteみたいなのをしたいとき

IISにはApacheみたいにmod_rewriteがないので
ISAPI_Rewriteを使えばmod_rewriteみたいなことができる

一応有償版と無償版とあるみたいだけどとりあえず無償版(Lite版)を入れて試してみればいい。

インストールは特に問題なく完了。
使い方は。。。勉強しよう。

2011年6月16日木曜日

最近よく使うツール

Fiddler
FlexとPHPでデータをやりとりするときとかけっこう重宝するツール。
Flexから送られたパラメータとそれに対する戻り値を見ることができる。
JSONとかXMLにも対応してるからかなりいいかんじ


ただし英語ですが。。。

IIS6.0にPHP5.3をインストール

IISにPHPをセットアップするときにせっかくだから最新のPHPを入れてみようと思って今まで通りダウンロードサイトからZip版PHPをダウンロードして展開。

次に管理ツールのIISを開いてホームディレクトリで構成、追加で実行ファイルが「php5isapi.dll」と。。。

あれ!?ない!?

どうも最新のモジュールにはphp5isapi.dllが存在しないみたい。
FastCGIを利用するといいみたいなので早速やり方を調べてインストール完了!!

やり方は以下のサイトが役に立ちました。