2012/02/27

【PHP】ループ中のswitchでcontinueしたときにはまった

今日ハマったのでメモ

まず、今日まで知らなかったのですが、PHPにおいて
switchはループ構造らしいです。

ですので、switch中のcontinueはすべてbreakと同じ扱いになります。
つまり、下記の例では

<?php

$list = array(
    '1', '2', '3', '4',
);

foreach ($list as $num)
{
    switch ($num)
    {
        case 1:
            continue;
        default:
            break;
    }

    echo $num . "\r\n";
}
このように出力されます。
1
2
3
4
switch内にて1が来た場合ループに戻るように と書いていますが、これだとただ単にbreakするのと 一緒になります。 ですので、ループに戻りたい際は下記のように記述します。
<?php

$list = array(
    '1', '2', '3', '4',
);

foreach ($list as $num)
{
    switch ($num)
    {
        case 1:
            continue 2;
        default:
            break;
    }

    echo $num . "¥r¥n";
}
これでなぜ、ループに戻ることができるのかというと、continueには 戻る階層を指定することができます。 ですので、下記記述ですと、2階層戻ることになりループに戻ることができます。
continue 2;
終わり 参考: PHP: switch - Manual

2012/02/25

【Mac】MacOSX Lion 1.7.3のリカバリメディア作成

今日思いついたのでリカバリメディアを作成した時のメモです。

今回はUSBとDVDで作成しました。

まず、USBで作成する手順です。
用意するもの
・USB (容量1GB以上) ・Lion 復元ディスクアシスタント USBはどこかで買ってきます。 Lion 復元ディスクアシスタントはこちらからダウンロードしてきます。 USBを接続したら、「Lion 復元ディスクアシスタント」を起動します。 まず、利用規約に同意します。
復元ディスクを作成するディスクを選択します。 先程接続したUSBを選択して下さい。 選択したら、「続ける」を押下します。
ディスクの作成が始まります。
完了です。 完了したら、「OPTION」キーを押したままPCを起動します。 起動したら先程作成したUSBを選択し、起動できたら完了です。
これでUSBへのリカバリメディア作成は完了です。 次にDVDへのリカバリメディア作成です
用意するもの
・空のDVD-R まず、PCを再起動し「OPTION」キーを押しっぱなしにします。 すると複数のディスクが表示されますので、「Recovery HD」から起動します。 起動したら「ディスクユーティリティ」を実行します。 ディスクユーティリティを起動すると「disk1」がサイドバーに表示されますので、 「disk1」を選択し「ディスクを作成」を押下します。 ディスクが作成されたら完了です。 終わり

2012/02/24

【開発環境構築】さくらのレンタルサーバにGitをインストールする

ということで、さくらのレンタルサーバにGitをインストールした際のメモです。

検索エンジンにて適当に「Git さくらサーバ」で検索してみたのですが、
wgetの所でつまりました。

どうやらどこの記事でも対象のファイルがすでに存在しないようです・・・
ですので、また検索エンジンにて「Git ダウンロード」などで検索し、

Git - Fast Version Control Systemというサイトを見つけましたので、
ここでダウンロードしました。
今はGoogleで管理しているのでしょうか?

以下実行手順です。

$ cd
$ mkdir $HOME/usr
$ mkdir $HOME/usr/local

$ cd 
$ mkdir $HOME/src
$ mkdir $HOME/src/git

$ cd $HOME/src/git
$ wget http://git-core.googlecode.com/files/git-1.7.9.2.tar.gz
$ tar xzf git-1.7.9.2.tar.gz
$ cd git-1.7.9.2
$ ./configure --prefix=$HOME/usr/local
$ gmake prefix=$HOME/usr/local
$ gmake prefix=$HOME/usr/local install
$ export PATH=$HOME/usr/local/bin:$PATH

$ git --version
git version 1.7.9.2
これでバージョンが出れば完了です。 もし、exportコマンドが見つからない場合は下記を実行することでできます。
$ cd
$ vi ./.cshrc
// set pathに下記を追加する。※PATHはスペース区切り
// $HOME/usr/local/bin

$ source ./.cshrc
$ git --version
git version 1.7.9.2
終わり

2012/02/22

【iPhone】Safariのバグに遭遇しました。

先程iPhoneのSafariでネットサーフィンしてたらバグったので記念に


本来ならこのような感じで
検索バーが上に出たままになるはずなのですが、
このように検索バーが消えてしまい操作不能になりました。 ※何を選択しても読みこむが画面遷移しない
タスク終了で元に戻りました。 再現しなかったのですが、現象が発生した際の操作手順です。 新規タブを開く -> 適当に入力 -> 検索結果を押下 通常の操作ですね・・・何がいけなかったんでしょうか・・・ 推測ですが、このページ”(0件一致)”というのに何か原因があるんでしょう 終わり

2012/02/21

【Objective-C】iOS5のTwitteAPIを使うサンプル【Xcode4.2】

iOS5にて統合されたTwitterAPIを使用するサンプルです。

こういうやつです。
まず、Xcodeでプロジェクトを作成し、「Twitter.framework」を追加します。 追加は下記手順になります。 「Build Phases」を押下し、「Link Binary With Libraries」を 開きます。 開いたら「」を押下します。
すると上の方からベロンと出てくるので、検索フィールドにtwitterと入力します。 画像のように、「Twitter.framework」が出てきますので、 選択し「Add」ボタンを押下します。
下記画像のように追加されていればOKです。 追加した「Twitter.framework」を「Frameworks」ディレクトリに 移動します。
次にコードを書いていきます。 プロジェクト名:twitterFW 下記画像のようにコンポーネントを追加しました。
・Text Field   ID:tweetField ・Round Rect Button   ID:sendBtn 上記をヘッダーファイルに追記後、下記のようにライブラリをインポートします。
#import <Twitter/TWTweetComposeViewController.h>
ライブラリをインポートしたら次はボタンアクションを記述していきます。
- (void)sendBtn:(id)sender
{
    // インスタンスの作成と初期化
    TWTweetComposeViewController *tw = [[TWTweetComposeViewController alloc] init];
    
    // 送信文字列をセット
    [tw setInitialText:tweetField.text];
    
    // Twitterダイアログのイベントを定義
    tw.completionHandler = ^(TWTweetComposeViewControllerResult response)
    {
        if (response == TWTweetComposeViewControllerResultCancelled)
        {
            // キャンセル処理
        }
        else if (response == TWTweetComposeViewControllerResultDone)
        {
            // 正常終了
        }

        [self dismissModalViewControllerAnimated:YES];
    };
    
    // 送信ビューを表示
    [self presentModalViewController:tw animated:YES];
}
これで終わりです。 こんな感じになります。
終わり 参考: Apple Developer / Twitter Framework Reference

2012/02/20

【Linux】Apacheに設定変更を通知する際に使用するコマンド

今日のメモです。

Apacheの起動中にphp.iniなどを変更した場合、通常Apacheを再起動し
設定を再読み込みさせます。

ですが、サーバ上でWebサービスなどが稼働中の場合できるだけサービスを
停止しないようにしないといけません。
その際に使用するコマンド

/etc/rc.d/init.d/httpd graceful
親プロセスが設定ファイルを読み込み直し、 子プロセスはリクエスト終了まで動作します。 つまり親プロセスが設定ファイルを読み込んでいる間に子プロセスは 処理を行い、設定ファイルの読み込みが完了している場合には 新しい設定を反映した子プロセスがリクエストを処理します。 終わり

2012/02/19

【Xcode4.2】iPhoneにApple Developer登録なしで自作アプリを転送する【脱獄必須】

iPhoneに自作アプリをインストールするメモ
まず、自作アプリを実機テストする際にはAppleより有料のライセンスを
取得する必要があります。

ですが、実機テストぐらい無料でやりたいということで、その方法を
メモしておきます。
※この方法はiPhoneの脱獄が必須です。

段階的には下記のような段階を踏みます。

1.証明書を作成する
2.転送したいプロジェクトの設定を変更する
3.Xcodeの設定ファイルを編集する
4.アプリを認証する
5.アプリを実機に転送する
6.実機で動作するように設定を変更する

の6つの行程になります。

証明書を作成する
まず、キーチェーンアクセスを開きます。 [キーチェーンアクセス] -> [認証アシスタント] -> [証明書を作成]を開きます。 下記画像のように 名前を「iPhone Developer」(任意)に設定 固有名のタイプを「自己署名ルート」に設定 証明書のタイプを「コード署名」に設定 デフォルト無効化にチェックを入れます。
シリアル番号と有効期限を適当に設定します。
設定をいじらずに「続ける」を押下し続けます。 次の画面が表示されたら証明書をログインで作成します。
これで証明書の作成は終わりです。 以降は証明書の作成は必要ありません。 別のアプリもこれで認証します。
転送したいプロジェクトの設定を変更する
転送したいプロジェクトをXcodeで開きます。 開いたら「Build Settings」を開きます。
開いたら、画像の赤で囲まれているところのように すべてを「Don't Code Sign」に変更します。
これで、プロジェクトの設定は完了です。
Xcodeの設定ファイルを変更する
Finderより「/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/」を開き、 「SDKSettings.plist」をデスクトップにコピーします。 コピーしたら、そのファイルを開き下記画像の赤で囲まれているところのように 「CODE_SIGNING_REQUIRED」 を 「NO」 に変更します。
変更が完了したら、変更済みのファイルで元ファイルを上書きします。 警告がでますが、認証を押下し上書きします。 これでXcodeの設定ファイル編集は完了です。
アプリを認証する
まず、Xcodeを開き先程のアプリをビルドします。 ビルドする際はアプリを転送するiPhoneを接続し、下記画像のようにビルド先を変更します。 「iOS Device」という表示は接続中のiDeveiceを指します。 ※Xcodeで認証していたりするとiPhoneのデバイス名が表示されます。
ビルドが完了したら、ProductsよりアプリをFinderで開きます。
ビルド済みのアプリをFinderで開いたら、Terminalを起動します。 下記のコマンドでアプリを先ほど作成した証明書で認証します。
codesign -fs "証明書名" /アプリのパス/アプリ名.app/アプリ名
証明書名は先程の作成した際「iPhone Developer」で設定したので そちらを入力します。 アプリのパスとアプリ名は打つと長いので、Finderより開いたアプリケーションをTerminalに ドラッグ&ドロップします。
コマンドを実行すると 下記のダイアログが表示されますので、常に許可を押下します。
これで認証は完了です。 いよいよ実機にアプリを転送します。
アプリを実機に転送する
アプリを実機に転送するには、iExplorerを使用します。 こちらで「/Applications」ディレクトリに 作成したアプリケーションをiExplorerで追加します。 追加が完了したら、iPhoneを「Respring」します。 これで転送は完了です。 次が最後です。
実機で動作するように設定を変更する
動作させるにはアプリに実行権限を与えてやる必要があります。 ですので、「mobileterminal」で 「/Applications」ディレクトリに移動し、次のコマンドを実行します。 コマンドは「root」にて実行します。
chmod 0755 -R アプリケーション名.app
これで自作アプリが起動できます。 エキサイト翻訳で頑張ってましたが、終わってから日本語で 実機転送を行っているページを見つけました。 もっと早く見つけていればこんなに苦労はしなかったのに・・・orz 日本の方が参考先を使って実機転送をしているページ:http://i.fukajun.net/?p=377 終わり 参考: http://codeopfer.de/?p=23

【iPhone】自作アプリを実機に転送して動作確認した

カメラを起動して画像を保存するサンプルアプリを作って
実機に転送してテストしてみました。
ちゃんと動きました。

ホーム画面
白いアイコンが転送アプリです。
起動画面
カメラ起動
終わり

2012/02/16

【PHP】シングルクォートとダブルクォートでの改行コードについて

さっきハマったのでメモ

PHPでは文字列をシングルクォートまたはダブルクォートで囲みますが、
それぞれ意味が違います。

まず、ダブルクォートは変数の展開や改行コードの認識を行いますが
シングルクォートでは行いません。
どういうことかというと

下記のコードで確認できます。
<?php
$a = 'test';

// 改行コード
echo "ダブルクォート改行:\r\n";
echo 'シングルクォート改行:\r\n';

echo "---------------------------------\r\n";

// 変数の展開
echo "ダブルクォート変数展開:$a\r\n";
echo 'シングルクォート変数展開:$a\r\n';
上記をブラウザで実行すると下記の結果が得られました。
ダブルクォート改行:
シングルクォート改行:\r\n
---------------------------------
ダブルクォート変数展開:test
シングルクォート変数展開:$a
結果より、改行コードを改行として認識させたい場合はダブルクォートで囲む 必要があります。 終わり

【Mac】Apple Developerに無料登録する

ということで、Apple Developerに無料登録した際のメモです。
※脱獄済みiPhoneで動作確認をするために取得しました。

まずは、Apple Developer登録ページに飛びます。
下記の画面が表示されますので、 「開発を始める」 を押下します。
次にApple IDをすでに持っているか聞かれます。 Apple IDを持っていたとしても、日本語が混ざっているなら新規にApple IDを 取得しましょう。 文字化けしたりして大変なので・・・
次のページでいきなり英語になります。
上から解説していきます。
Email Address
自分のメールアドレスです。
Password
パスワードです。
Re-enter Password
確認用パスワードです。
Birthday
誕生日です。
Security Question
セキュリティ用の質問です。 好きなもの(覚えておけるもの)を入力しましょう。
Answer
上の質問の答えです。 忘れそうだったらスクリーンショットなど画面キャプチャを取るといいと思います。
First Name
名前です。
Last Name
苗字です。
Company / Organization
会社・組織です。
Country
住んでいる国です。
Street Address
町以下の住所です。 ○○町 1-20とかなら 1-20 marumaru-choと入力しましょう。
City / Town
市区です。 例)Shinjuku
State
都道府県です。 例)Tokyo
Post Code
郵便番号です。 000-1235形式で大丈夫です。
Phone
電話番号です。 日本は頭に 81 をつけ、頭の 0 を取ります。 電話番号が 03-1234-1234 なら 81 3 1234 1234という形式で 電話番号が 080-1234-1234 なら 81 80 1234 1234という形式で登録します。 次は、下記の画面になります。 開発するプラットフォームや主要なマーケットを選択します。 プラットフォームを選択すると選択したプラットフォームに対応した 入力項目が下に増えていきます。
次に利用規約にチェックを入れます。
スクリーンショットを取り忘れてしまったのですが、ここでセキュリティコードの 認証画面が出てきます。 セキュリティコードは登録したメールアドレスに送信されてきます。
※赤で囲まれているのがセキュリティコードになります。 セキュリティコードを入力すると下記の画面に遷移します。 これで登録は完了です。
終わり

2012/02/15

【PHP】QdmailでReturn-Pathをセットする【Qdmail】

PHPでメールを送信する上で大変便利なQdmailでReturn-Pathをセットする
方法です。

Qdmailの公式によると

mtaOption関数を使用します。addHeaderで設定しても無視されますので注意してください。 qd_send_mail($option .....)の場合 $option = array( 'type' => 'text', 'option'=>array( 'mtaOption'=>'-f return_address@example.com' ), );
と書いてあります。 つまり、インスタンスを生成してQdmailを使用する場合はセットできない ということみたいです。 該当記事 ですが、実はインスタンスを生成した場合でもReturn-Pathを指定することができます。 下記のソースがReturn-PathをaddHeaderメソッドで設定した場合 ※この方法では設定されません。
<?php
$mail = new Qdmail;

$mail->to('to@example.com');
$mail->from('from@example.com');
$mail->subject('sub');
$mail->body('message');
$mail->addHeader('-f return@example.com');

$mail->send();
下記のソースがReturn-Pathを別の方法で設定した場合 ※この方法では正しく設定されます。
<?php
$mail = new Qdmail;

$mail->to('to@example.com');
$mail->from('from@example.com');
$mail->subject('sub');
$mail->body('message');
$mail->mtaOption('-f return@example.com');

$mail->send();
終わり

2012/02/13

【iOSアプリ開発】Xcode4.2でiOSアプリのプロジェクト作成

Xcode4.2でプロジェクト作成するメモ

Developer登録はもう少し落ち着いて開発できるようになってからしたいと思います。
ということで今回はプロジェクトの作成だけということで・・・


まず、Xcodeを起動するとか下記の画面が表示されますので、
「Create a new Xcode project」を押下します。
すると作成するプロジェクトを選択する画面がベロンと出てきますので 今回は 「Single View Application」 を選択し、 「Next」 ボタンを押下します。
プロジェクト名などを入力します。
入力項目は下記になります。
Product Name
作成するアプリケーション名
Company Identifier
会社など自分のホームページのURLを逆から入力します。 例えば、 aaa.bbb.co.jp というドメインだった場合は下記のように入力します。 jp.co.bbb.aaa
Class Prefix
クラスの接頭辞です。 Xcodeで作成されるクラスの接頭辞に使用されます。
Device Family
アプリケーションの使う端末を選択します。 iPhone, iPad, Universal(両方)から選択します。
Use Storyboard
アプリケーションのワークフローを作成できる機能を使用するか選択します。
Use Automatic Reference Counting
メモリ管理を自動で行うか選択します。
Include Unit Tests
テスト用のコードを含むかどうか選択します。 保存場所の選択です。 この際「Create local git repository for this project」にチェックを入れると プロジェクトのバージョン管理を行うことができます。
作成が完了したのでビルドしてiOSエミュレータで確認します。 黒で囲まれている所でiOSのバージョンを指定し、赤で囲まれている「Run」の ボタンで実行します。
エミュレータが起動すると勝手にビルドしたアプリケーションが立ち上がります。 ホームボタンを押下することでホーム画面へ戻ることができます。
ホーム画面へはこんな感じになっています。 白いアイコンが今回作成したアプリケーションになります。
終わり

2012/02/11

【Mac】Xcode4.2インストール

iPhoneアプリ開発のためためにまずXcodeをインストールしました。
その際のメモ

メモするまでもなかったんですが・・・

まず、AppStoreを起動しXcodeで検索します。
Xcodeという項目があるのでそれを選択しダウンロードします。

ダウンロードが完了したらダウンロードしたファイルを実行します。

下記画像のようなインストール画面が開きますので、
「Install」ボタンを押下します。
次に利用規約の確認がありますので、「Agree」ボタンを押下し、 利用規約に同意します。
インストールが始まります。
ユーザ認証がありますので、ログイン中のユーザで認証します。
また、インストールが再開されます。
完了したら、Dockに表示されます。
これでインストールは完了です。 終わり

2012/02/10

【雑記】iMacが届きました

前からiPhoneアプリとか作ってみたかったのでiMacを勢いでポチっちゃいました。

それがついさっき届いたので写真とか載せてみます。


今回購入したのはこちら

型番:APPLE iMac MC309J/A [2500]

在庫のOSが Snow Leopard と Lion が混在してると聞いていたので
若干 Snow Leopard を期待していましたが、 Lion でした

箱
キーボード
マウス
本体
以上です。