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