【メモ】【iPhone】【Safari】【css】慣性スクロール

スマートフォン(iPhone)サイト作成時、
普通のPCサイトと同じように、「overflow: auto;」で指定すればブロック要素をスクロールさせることができますが、
慣性スクロール(ゆっくり止まるような動き)を実装するには、
「-webkit-overflow-scrolling: touch;」の指定が必要です。

つまり、

  div.scroll {
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }

↑↑のような感じです。
(widthやheightなどを別途正しく指定する必要があります。)

※OSやブラウザーの対応情報は調べていませんが、バージョンの低くないiPhoneやAndroidでは動くでしょう。

【iPhone】【Safari】【css】ボタンの角丸などの消し方

ボタン類(<input type=”button”>や<input type=”submit”>など)の角丸をクリアしたい場合、

  input[type="button"],input[type="submit"] {
    border-radius: 0;
  }

↑↑を指定するだけでは、iPhoneのSafariではクリアされません!!

その為、下記cssの設定が必要です:

  input[type="button"],input[type="submit"] {
    -webkit-appearance: none;
  }

そうすれば、ボタンのデフォルトcssが初期化されます(角丸以外もクリアされます。例えば、背景など)。

※参考記事
[CSS]iPhoneでsubmitボタンのテキストがずれた時の対応方法 | コリス

【Linux】【phpMyAdmin】メモ — config.inc.phpの場所について

※実装環境:CentOS 6.2

yumを使ってphpMyAdminをインストールした場合、
設定ファイル「config.inc.php」の場所は、phpMyAdmin本体が格納された場所(普通は/usr/share/phpMyAdmin)ではありません。
つまり、/usr/share/phpMyAdmin/config.inc.phpを作成して編集しても効きません。

↓↓正解は下記のパスになりますので、要注意です。↓↓

  /etc/phpMyAdmin/config.inc.php

【Linux】【cron】メモ — cronの時間をずらして実行する方法

例えば、

*/5 * * * * cmd

のようにcronを設定すると、5分おきにcmdが実装されますが、
毎時0分、5分、10分、15分・・・のような感じで実行されます。

→ 毎時1分、6分、11分、16分・・・を実行させたい場合には、
↓↓下記通りに設定すれば良いです。

1-56/5 * * * * cmd

※参考資料:
メモOFF: cronを一定時間ごとにずらして実行する

【CentOS】【munin】メモ — muninのプラグイン有効化 — CentOS 5

muninにプラグインを有効化する方法は簡単です。シンボリックリンクを張れば良いです。

例えば、apacheを追加するには、下記通りにすれば良いです。(実行環境:CentOS 5.7)

# ln -s /usr/share/munin/plugins/apache_accesses /etc/munin/plugins/apache_accesses
# ln -s /usr/share/munin/plugins/apache_processes /etc/munin/plugins/apache_processes
# ln -s /usr/share/munin/plugins/apache_volume /etc/munin/plugins/apache_volume

※muninの再起動を忘れずに:

# service munin-node restart

【CakePHP】The requested address ‘XXXX’ was not found on this server. — 新規コントローラ(controller)追加時のエラー

稼動中のCakePHP(1.2)アプリケーションに一個新規画面を追加します。
テスト環境では問題なく完了しましたが、
本番に移行したら、

The requested address 'XXXX' was not found on this server.

というエラーが出てきました。

※解決策:
app/config/core.phpの中の「Debug.level」を0から一時的に1に設定すれば解決しました。
CakePHPのキャッシュが効いていたせいらしいです。

※参考資料:
The requested address ” was not found on this server. – foldrrの日記

【PHP】cURLのSSL(https)対応

「curl_setopt()」関数で「CURLOPT_SSL_VERIFYPEER」というオプションの設定ができます。
このオプションは、SSL通信時サーバー証明書の検証を行うかどうかを設定するオプションですが、cURL7.10以降はデフォルト値がtrueだそうです。
その為、そのままだと動かない可能性が高いです。

→ 本来は、「CURLOPT_CAINFO」オプションで接続先を検証するための証明書を保持するファイル名を指定するか、「CURLOPT_CAPATH」 オプションで証明ディレクトリを指定するべきですが、

「CURLOPT_SSL_VERIFYPEER」をfalseに設定すれば、証明書の検証を行わず、正常にSSL通信で結果を取得できます:

  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// $chはcURLハンドル

CentOSのjavaのインストール(yum使用)

環境:CentOS 6.2

javaがインストールされていないため、yumを使って入れてみました。

手順:
・Step 1

  yum list \*java-1\* | grep open

を使って、インストール可能なパッケージ一覧を表示。
例えば、下記の内容が表示されました。

  java-1.6.0-openjdk.x86_64              1:1.6.0.0-1.49.1.11.4.el6_3      updates
  java-1.6.0-openjdk-devel.x86_64        1:1.6.0.0-1.49.1.11.4.el6_3      updates
  java-1.6.0-openjdk-demo.x86_64         1:1.6.0.0-1.49.1.11.4.el6_3      updates
  java-1.6.0-openjdk-javadoc.x86_64      1:1.6.0.0-1.49.1.11.4.el6_3      updates
  java-1.6.0-openjdk-src.x86_64          1:1.6.0.0-1.49.1.11.4.el6_3      updates

・Step 2
上記リストにあわせて、下記パッケージをインストール。

  yum install java-1.6.0-openjdk.x86_64
  yum install java-1.6.0-openjdk-devel.x86_64

以上でインストールを完了しました。
※参考資料:
CentOSにJavaをインストール(with yum)

【Xcode】【iPhone】【iOS】Icon specified in the Info.plist not found under the top level app wrapper: — Xcode4.3でアプリをアップロードする際に起きたエラー

Xcode4.3でビルドしたアプリをアップロード(オーガナイザー → Archive → Validate…)したら、下記のエラーで怒られました。

Icon specified in the Info.plist not found under the top level app wrapper:

↓↓下記の対策で解決しました↓↓
PROJECT(もしくはTARGET)の「Info」タブの中「Icon files」に、Item 0、Item 1、Item 2・・・のようにいくつかのアイコンがセットされていますが、空白であったものがありました。これを削除すれば問題解決です。
再度アップロードして無事に成功しました。

【PHP】【iPhone】【ApnsPHP】Unable to connect to ‘ssl://gateway.sandbox.push.apple.com:2195’ — ApnsPHPでプッシュ通知を実装するときのエラー

ApnsPHPを使ってプッシュ通知を実装するとき、下記のエラーが発生しました。

Mon, 09 Jul 2012 13:10:04 +0900 ApnsPHP[85724]: INFO: Trying ssl://gateway.sandbox.push.apple.com:2195...
Mon, 09 Jul 2012 13:10:05 +0900 ApnsPHP[85724]: ERROR: Unable to connect to 'ssl://gateway.sandbox.push.apple.com:2195':  (0)
Mon, 09 Jul 2012 13:10:05 +0900 ApnsPHP[85724]: INFO: Retry to connect (1/3)...
Mon, 09 Jul 2012 13:10:06 +0900 ApnsPHP[85724]: INFO: Trying ssl://gateway.sandbox.push.apple.com:2195...
Mon, 09 Jul 2012 13:10:06 +0900 ApnsPHP[85724]: ERROR: Unable to connect to 'ssl://gateway.sandbox.push.apple.com:2195':  (0)
Mon, 09 Jul 2012 13:10:06 +0900 ApnsPHP[85724]: INFO: Retry to connect (2/3)...
Mon, 09 Jul 2012 13:10:07 +0900 ApnsPHP[85724]: INFO: Trying ssl://gateway.sandbox.push.apple.com:2195...
Mon, 09 Jul 2012 13:10:07 +0900 ApnsPHP[85724]: ERROR: Unable to connect to 'ssl://gateway.sandbox.push.apple.com:2195':  (0)
Mon, 09 Jul 2012 13:10:07 +0900 ApnsPHP[85724]: INFO: Retry to connect (3/3)...
Mon, 09 Jul 2012 13:10:08 +0900 ApnsPHP[85724]: INFO: Trying ssl://gateway.sandbox.push.apple.com:2195...

いろいろ悩んだ結果、下記ページに載った方法で解決しました:
http://stackoverflow.com/questions/6279185/apnsphp-cant-connect-to-apple-gateway

→ 簡単にまとめますと、結局、ライブラリを1箇所修正した方向で行きました:
Abstract.phpの343行目の近くの「’verify_peer’ => isset($this->_sRootCertificationAuthorityFile),」をコメントアウトしました。

  'verify_peer' => isset($this->_sRootCertificationAuthorityFile),
→
//  'verify_peer' => isset($this->_sRootCertificationAuthorityFile),

でも、やはり危なく感じていますので、何か良い解決策があったら教えていただければと思います。