投稿者アーカイブ

スズメバチ

夜中ベランダに出て、洗濯物を干そうとしていた時の事です。
上を見ると大きな丸いものがあった。
暗くてよく分からないが少し眺めていたら、何か動いてた。
ライトをつけて良く見るとススメバチが巣を作っていた。



何で半壊してるかというと嫁がダンボールで突いた為。
危ないので絶対真似しちゃだめですよ。
マンションのサポートセンターみたいな所に連絡して後日無料で撤去されました。
すごく遠くまで届くスプレーを使って駆除したようでした。

DMM.TV for Blu-ray Disc



DMM.TV for Blu-ray Discに申し込み、約3日で自宅にDiscが届いた。
DMM.TV for Blu-ray Discを簡単に説明すると
1.ネットにつなぎ
2.ディスクを入れて
3.テレビで選択
という3ステップで映画などを視聴できてしまう魔法のディスクです。
(正確にはそれ以外に会員登録が必要です)

早速PS3にディスクを入れて起動。
ますはサンプル映像が再生されるか確認。
無事再生されたので、クレジット情報など入力し会員登録した。
とりあえずLOSTを購入、ストリーミング再生。
LOSTの場合料金は210円/1話で2日間視聴が可能なようでした。
泊数やお店によって料金が違う為単純に比較できないが、TSUTAYAでレンタルした場合よりも割高かもしれません。
不満点は
1.GUI
2.コンテンツ数
GUIに関してはPS3というよりリモコンによる操作をベースとしている為なのか、目的のコンテンツにたどりつくのが少し面倒に感じた。
利点は
1.見たい時にすぐに見れる
2.返却不要
以上の事を考えるととても便利と思いました。
私みたいに不規則な時間の仕事している人にもお勧めしたいです。

DMM.TV for Blu-ray Discは無料で配布しているので是非試して頂きたいと思います。
DMM.TV for Blu-ray Discについて詳しくは http://www.dmm.com/tv/bluray/をご覧下さい。

MW2 / Intervention FFA

クランHYN様が主催するプライベートマッチの大会に参加しました。
ルールは簡単に説明するとインターベンションとナイフのみのFFA。
皆上手で私は最下位に近い成績でしたが楽しい大会でした。
http://62.xmbs.jp/AMUYH-241864-ch.php?guid=on

焼肉チャンピオン

先週土曜日に中目黒の焼肉チャンピオンに行きました。
お腹があまり空いてなかったのですが、どれもおいしく食べ過ぎてしまった。
また行きたいと思います。





焼肉チャンピオンのホームページはこちら http://www.ebisu-champion.com/

【actionscript 3.0】テキストフィールドの入力で半角、全角区別して文字数制限

actionscript 3.0のテキストフィールドの入力で文字数でなく半角、全角で文字数制限したいという事で作りました。重要なのはByteArray.writeMultiByte(value:String, charSet:String)だけで、charSetを”shift-jis”にすると(確証はないが)半角と全角を判別できるみたい。私はFlashのIDE上に配置されたオブジェクトでなるべく解決したいのでProxyクラスを継承するやり方で実装しました。なのでTextFieldクラスを継承してnewでインスタンスを作ってステージ上に配置してやった方がスマートだとは思います。内部でイベントも持ってしまっているのであまり良いやり方ではないのも分かっていますがやりたい事は実現できているので一応クラス載せます。
※.maxCharsと同様スクリプトでの文字数などの制限はしていません。テキスト入力があった時のみの制御しかしていません。
TextFieldProxyクラス

package {

	import flash.utils.Proxy;
	import flash.utils.flash_proxy;
	import flash.text.TextField;
	import flash.utils.ByteArray;
	import flash.events.Event;
	import flash.events.TextEvent;

	public dynamic class TextFieldProxy extends Proxy {

		private const _charset:String = "shift-jis";
		private var _textField:TextField;
		private var _maxBytes:uint;
		private var _oldCaretIndex:uint;
		private var _oldText:String;

		public function set maxBytes(value:uint):void {
			_maxBytes = value;
			_textField.addEventListener(TextEvent.TEXT_INPUT, onInput);
			_textField.addEventListener(Event.CHANGE, onChange);
		}

		public function get maxBytes():uint {
			return _maxBytes;
		}

		public function get bytes():uint {
			var byteArray:ByteArray = new ByteArray();
			byteArray.writeMultiByte(_textField.text, _charset);
			var length:uint = byteArray.length;
			byteArray.clear();
			return length;
		}

	    public function TextFieldProxy(textField:TextField) {
	       _textField = textField;
	    }

	    override flash_proxy function callProperty(methodName:*, ... args):* {
	        return _textField[methodName].apply(_textField, args);
	    }

	    override flash_proxy function getProperty(name:*):* {
	        return _textField[name];
	    }

	    override flash_proxy function setProperty(name:*, value:*):void {
	        _textField[name] = value;
	    }

		public function onInput(event:TextEvent):void {
			(event.target as TextField).replaceSelectedText("");
			_oldText = (event.target as TextField).text;
			_oldCaretIndex = (event.target as TextField).caretIndex;
		}

		public function onChange(event:Event):void {
			var newText:String = (event.target as TextField).text;
			var newByteArray:ByteArray = new ByteArray();
			newByteArray.writeMultiByte(newText, _charset);
			if(newByteArray.length > _maxBytes) {
				var addStr:String = newText.substr(_oldCaretIndex, newText.length - _oldText.length);
				var addByteArray:ByteArray = new ByteArray();
				addByteArray.writeMultiByte(addStr, _charset);
				addByteArray.position = 0;
				addStr = addByteArray.readMultiByte(_maxBytes - (newByteArray.length - addByteArray.length), _charset);
				(event.target as TextField).text = _oldText.slice(0, _oldCaretIndex) + addStr + _oldText.slice(_oldCaretIndex, _oldText.length);
				_oldCaretIndex += addStr.length;
				if(!(event.target as TextField).multiline) {
					(event.target as TextField).setSelection(0, 0);
				}
				(event.target as TextField).setSelection(_oldCaretIndex, _oldCaretIndex);
				addByteArray.clear();
			}
			newByteArray.clear();
		}
	}
}
実装
//TextField txt1;
//TextField label1;
//TextField txt2;
//TextField label2;

txt1.text = "";
txt1.background = true;
txt1.backgroundColor = 0xF2F2F2;
txt2.text = "";
txt2.background = true;
txt2.backgroundColor = 0xF2F2F2;

var txtProxy1:TextFieldProxy = new TextFieldProxy(txt1);
txtProxy1.maxBytes = 10;
txtProxy1.addEventListener(Event.CHANGE, onChange);
label1.text = txtProxy1.bytes + "/" + txtProxy1.maxBytes;

var txtProxy2:TextFieldProxy = new TextFieldProxy(txt2);
txtProxy2.maxBytes = 30;
txtProxy2.addEventListener(Event.CHANGE, onChange);
label2.text = txtProxy2.bytes + "/" + txtProxy2.maxBytes;

function onChange(event:Event):void {
	switch(event.target) {
		case txt1:
			label1.text = txtProxy1.bytes + "/" + txtProxy1.maxBytes;
			break;
		case txt2:
			label2.text = txtProxy2.bytes + "/" + txtProxy2.maxBytes;
			break;
	}	
}
サンプル
This movie requires Flash Player 10

データ一式(Flash CS4以上)
ダウンロード

Objective-C 覚え書き

Objective-Cをはじめたので、忘れないうちにここに覚え書き。
ActionScriptは仕事で一番良く触れる言語なので、それと比較しながら書いていこうかと思います。
少しずつ、気長にやっていこうかと思う。

ますは開発環境。
WindowsでもObjective-Cコンパイルできる環境にしたい。
と言う事でインターネット検索したところ良い記事がありました。
長いものに巻かれて行こうぜ! 1巻き目を参考に環境を構築した。
環境が整った所でエディタを開き、開発を開始した。

以下ActionScriptとObjective-Cの比較です。
そして記事の後半で理解した範囲内での簡単なプログラムの作成と総括を書きました。

コメントアウト

ActionScript 3.0
trace("Hello");
Objective-C
printf("Hello");

コンソール出力

ActionScript 3.0
trace("Hello");
Objective-C
printf("Hello");

汎用変数の宣言

ActionScript 3.0
var obj:*;
Objective-C
id obj;

インターフェースとクラス

ActionScript 3.0 TestInterface.as
package {
	public interface TestInterface {
		function test():void;
	}
}
ActionScript 3.0 TestClass.as
package {
	public class TestClass implements TestInterface {
		public function test():void {
			trace("Hello");
		}
	}
}
Objective-C
//@interface クラス名:スーパークラス
@interface TestClass:Object
	//- (戻り値の型) メソッド名
	- (void) test;
@end

//@implementation クラス名
@implementation TestClass
	// (戻り値の型) メソッド名
	- (void) test {
		printf("Hello");
	}
@end

クラスのインスタンス生成

ActionScript 3.0
var obj:TestClass = new TestClass();
Objective-C
id obj = [TestClass alloc];

クラスメソッドの呼出し

ActionScript 3.0
obj.test();
Objective-C
[obj test];

実行

ActionScript 3.0 (ドキュメントクラスを指定した場合)
package {
	import flash.display.MovieClip;
	public class Main extends MovieClip {
		public function Main():void {
		}
	}
}
Objective-C (引数なし、戻り値なし)
main() {
}
Objective-C (引数あり、戻り値あり)
int main(int argc, char *argv[]) {
	return 0;
}

理解した範囲内での簡単なプログラム

#import <objc/Object.h>

@interface TestClass:Object
	- (void) test;
@end

@implementation TestClass
	- (void) test {
		printf("Hello");
	}
@end

main() {
	id obj = [TestClass alloc];
	[obj test];
}

総括

[]はObjective-Cの世界ではメッセージ式といい関数の呼び出しに使われるようだった。
コンパイル時にプログラム末尾に改行がない場合、警告が表示された。

>>追記:2010/05/16
上記の”理解した範囲内での簡単なプログラム”はMac(Snow Leopard)のXcodeでコンパイルしたところ大量の警告が発生した。先に修正したプログラムを載せておきます。

修正したプログラム

#import <Foundation/Foundation.h>

/*
int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    // insert code here...
    NSLog(@"Hello, World!");
    [pool drain];
    return 0;
}
*/

@interface TestClass:NSObject {
}
-test;
@end

@implementation TestClass
-test {
	NSLog(@"Hello World!");
	return 0;
}
@end

int main(int argc, char *argv[]) {
	id obj;
	obj = [[TestClass alloc] init];
	[obj test];
	return 0;
}
修正内容は以下の通り。
  • import文
  • インターフェースのスーパークラスをNSObjectに変更
  • インターフェースとクラスの関数の戻り値の型指定をなくした(警告が出たので)
  • インターフェースとクラスの関数名の”-”と”test”の間のスペースを消去し、この行のタブインデントをなくした
  • printfをNSLogに変更
  • main関数の戻り値の型をint型に変更(警告が出たので)
  • 変数宣言してから次の行で代入することにした
一番気になるのがクラスとインターフェースの戻り値の型宣言の部分。何かの設定の違いか、バージョンの違いなのか良く分からない。とりあえずそういうものと理解し先に進む事にします。以下はXcodeでObjective-Cのテスト用に新規プロジェクトを作った時のスクリーンショットです。

1.Xcodeメニュー「ファイル」→「新規プロジェクトを作成」をクリックすると以下のようなウィンドウが出てくる。左のタブで「Application」を選択、右のリスト内の「Command Line Tool」を選択、「Type」というコンボボックスに「Fundation」を選択肢、右下の選択をクリックした。


新規プロジェクト名を適宜入力し、「保存」をクリック。
このような画面が出てくるので、「.m」の拡張子になっているファイルを選択。

画面が狭いので広げた。上記の修正したプログラムに変更した。デフォルトのコードは意味が分からないのでとりあえずコメントアウト。Xcodeのメニュー「実行」→「コンソール」よりコンソールウィンドウを表示させた。ツールバーの「ビルドと実行」でコンソール出力されました。

再総括
printfとNSLogの違いに関してはhttp://vivacocoa.jp/objective-c3e/chapter2.htmlで詳しく書かれていた。今度はwindowsに戻って修正したプログラムを再コンパイルしてみようと思うが、修正したプログラムに警告やエラーになったら何かしら解決方法探さないといけない。先は長いです。

>>追記 その2:2010/05/16

早とちりしすぎた。上記 でインターフェースとクラス内の戻り値の型宣言の部分ではずしたら直ったが、解決方法として間違っていた。原因はtestとかvalueとかはキーワードとして予約されていて、変数名や関数名として使用すると警告されるようだった。ってことで再修正し関数名testをmyTestとした。ちなみに警告は「Also found “-(void)test”」と「Multiple methods named “-test” found」。とりあえず解決して良かった。以下再修正したプログラム。先は長過ぎる。。。

再修正したプログラム

#import <Foundation/Foundation.h>

@interface TestClass:NSObject {
}
-(void)myTest;
@end

@implementation TestClass
-(void)myTest {
	NSLog(@"Hello World!");
}
@end

int main (int argc, const char * argv[]) {
	NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

	id obj;
	obj = [[TestClass alloc] init];
	[obj myTest];

	[pool drain];
	return 0;
}

SlingPlayerをインストールした

Mac版SlingPlayerをインストールした。
そしてBoot CampでWindowsにSlingPlayerをインストールした。

SlingPlayer(ローカル版)は以下からダウンロードできます。
windows版 : http://downloads.slingmedia.com/get/sp-win-ca.html
Mac版 : http://downloads.slingmedia.com/get/sp-mac-us.html

SlingPlaer(WEB版)はWindows、Macともに以下からログイン&視聴できます。
http://watch.slingbox.com/

SlingPlayer Macのローカル版インストール最中に以下のメッセージ警告が表示された。
Currently, SlingPlayer for Mac does not support HD streaming. You will be able to watch video from your Slingbox PRO-HD in standard definition.現状Mac版SlingPlayerではHDストリーミングできないようです。(画像

以下は各SlingPlayerのエンコーディングの最大値。

○SlingPlaye for Mac(ローカル版)
ビデオビットレート:8000kbps
ビデオフレーム:フルレート
オーディオビットレート:96kbps
ビデオ解像度:640×480


○SlingPlayer for Windows(ローカル版)
ビデオビットレート:20000kbps
ビデオフレーム:フルレート
オーディオビットレート:96kbps
ビデオ解像度:1920×540

Windows版の方が綺麗でした。

以下インストール行程のスクリーンショットです。
1〜23 :SlingPlayer for Mac(ローカル版)
24〜33 :  SlingPlayer for Mac(Web版)

Slingbox pro-HDを購入

Slingbox pro-HDを今更ながら購入した。
この製品を簡単に説明するとテレビ、録画したコンテンツ等をネットワーク経由で見れるというもの。
この製品で特に良いと思った点は以下の3点。

  • パソコンでテレビが見れる
  • iPhone/iPod Touch/iPadでも見れる(別途モバイルプレイヤーの購入が必要)
  • DVDレコーダー、Blu-rayレコーダー(リモコンが対応していれば)の遠隔操作でき、録画映像が見れる(スカパーも可能)
上記の補足としてモバイルプレイヤーについては現状ではWi-Fi経由のみ。3G回線でも見れるバージョンを開発中のようだが、日本国内で使えるかどうかも不明。ちなみに私はモバイルプレイヤーに関しては未確認。

私の自宅はMacを使っていて、買う前にMac用地デジチューナーを持っていたのだが、Snow Leopardにアップデートしたらすぐに落ちてしまっていた為、何かしらないものかと探していた。
で、この製品は(小売り店ならあるかもしれないが)日本ではみかけない。という事でインターネットで検索したところSlingboxfan.comで製品について詳しく書いてあった。製品について気になる事をメールで質問したところ1時間後、遅くても次の日の朝には返信がきていた。丁寧かつ迅速な対応だったのでここで購入する事にした。発注してから約10日後に自宅に届いた。

箱の画像。



同梱されているのは以下。まずコンポーネント端子は我が家では使えない。 日本国内のDVDレコーダー等ではほとんどがD端子なので私は別途D端子-コンポーネントケーブルを買った。私が別途購入したのはaudio-technica GOLDLINK Fine D端子-コンポーネント。ついでにオーディオもaudio-technica GOLDLINK Fine オーディオケーブルで揃えた。説明書は英語だが図解があるので特に問題なかった。

同梱



LANケーブルは同梱されていたが長さが足りなかった為、家にある他のLANケーブルを使った。結局同梱されているもので使ったケーブル類は電源アダプターとIRブラスターのみ。ちなみにアナログチューナーは使えるけど、デジタルチューナーは日本では使えないみたい。私はDVDレコーダーの映像見れたらいいので使っていない(映像出力元はスゴ録のRDZ-D800)。結構すっきりした配線になった。下画像は左から電源ケーブル、LANケーブル、コンポジット音声ケーブル、D端子-コンポーネントケーブル。

接続



接続した画像は以下。電源が入っていると右下右側のランプが点灯。LANに接続されていると右下左側のランプが点灯。ストリーミング中は真ん中が点灯。

稼働



接続は約10分で完了。
Slingbox pro-HD1台で同時映像出力はできないので注意が必要。
最期に以下の人には”特に”お勧め。
  • 光回線あるいは10Mbps以上の速度が常時ある
  • DVDレコーダーあるいはBlu-rayレコーダーなどの録画映像をみたい
  • パソコン、iPhone、iPod touch、iPadでテレビ見たい
iPadでテレビが見れる日はもうすぐかな。

コール オブ デューティ モダン・ウォーフェア2 SPマップパック

PS3版モダン・ウォーフェア2(以下MW2)のSPマップパックがプレイステーションネットワークW(以下PSN)で配信されていた。PSNでモダンと検索したらヒットすると思う。導入方法はPSNで購入(\1,400)してダウンロード&インストール。そしてMW2起動したら追加マップが使用可能な状態になっていた。追加マップについては以下の通り。

複雑な立体構造のアパート「Bailout」、作業機械が放置されたままの工業団地跡「Storm」、瓦礫や車の残骸が積まれた廃棄場「Salvage」という新たな3つのマップに加え、前作『コール オブ デューティ4 モダン・ウォーフェア』のマルチプレイヤーでおなじみのマップである、戦火の傷跡が生々しい市街エリア「クラッシュ(Crash)」、植物の生いしげる広大な農村地帯「草生す廃墟(Overgrown)」の2つを収録しています。
PlayStation 3版”コール オブ デューティ モダン・ウォーフェア2 SPマップパック”本日発売! – SQUARE ENIX EXTREME EDGESより

クラッシュとオーバーグロウンは懐かしい感じがした。他は無駄にクリアリングしたり、行き止まりでつまづいたり。。。このゲームやりだすと2時間とかあっという間に過ぎてしまう。とりあえず、少しずつマップを覚えていこうと思う。

コール オブ デューティ モダン・ウォーフェア2 コール オブ デューティ モダン・ウォーフェア2
レビューを見る
欲しいものリストに追加
価格:5990円 在庫あり。powered by Amazon.co.jp

WordPress テーマ&プラグインをインストール

テーマをインストールした。WordPress テーマ neutral (beta)がベータ版ではあるが良い感じ。その他にも以下のテーマはお気に入り。

続いてプラグイン。以下をインストールした。
とりあえずインストールしたのは以上のプラグイン。以下のプラグインは便利だが現在使用していない。
画像がそのまま閲覧できるって利点あるけど、画像サイズの大きなものを見せるとブラウザの領域からでてしまい左右のスクロールをしないといけないので停止した。

それにしてもリストを挿入したり画像にキャプションを入れたりすると位置がずれたりするのは何故だろう。HTMLエディタ使えって事かな。。。

先程amazon関連のプラグインMitsurinを試してみた。商品名を入力すると&が文字化けした。なので商品名の部分を空白で回避したが、原因はなんだろう。。。にしてもとても便利。以下はとりあえず買った書籍で重宝している。

WordPress 2.7対応「導入&カスタマイズ」実践ガイド―個人ブログも企業サイトも簡単&無料で構築できる! WordPress 2.7対応「導入&カスタマイズ」実践ガイド―個人ブログも企業サイトも簡単&無料で構築できる!
レビューを見る
欲しいものリストに追加
在庫なしpowered by Amazon.co.jp