SkypeのEasyBits GOなるマルウェアのようなもの(鈍器のようなもの的に)

あろーは。鳥ですお。

さてさて、Skype立ち上げたら、「新しいアップデートがあります!適用しますか?」みたいなメッセージが出て、セキュリティアップデートかなと思って「はい」。そしたらFlashをインストール開始。あれ?と思ったら、どうやらInternet ExplorerFlash入れてなかったから入れてくれってことらしい。まぁ別に入れるのは問題ないので、入れた。そしたら何の確認ダイアログもなく強制再起動

で、EasyBits GOなるよく分からないソフトが入って来ました。「EasyBitsGO.exeがSkypeへのアクセスを求めています」?当然「アクセス拒否」。

こいつは何者なのか?を調べていくと、どうやらSkypeの内部のゲームエンジン作ってる会社と一緒らしい(EasyBits Media ASという)。ちなみにSkypeのプレスにも英語/日本語のニュースにも上がってきていない。

つまり、これはEasyBits Mediaて会社が勝手にアップデートをかけた(結果、Skypeのせいにされそうになっている)ということっぽい。

で、プログラムの一覧からアンインストールしてもProgramDataに入っちゃって消せないのーって記事が上がってきてるけど、こちらでは綺麗に消える。なぜかを考えてみた。

消えないと言っている人は、おそらくWindows 7ないしWindows Vista。たぶんこのソフトはWindows XP向きに作られてて、Win7では互換ソフトとしてインストールされたからProgramDataに入ってしまう。で、アンインストールしてもXPのProgram Filesのデータは消えるけど、アンインストールプログラム内ではフルパスで書いちゃってるもんだから、Win7のProgramDataのデータは消えない。

要はEasyBits GOはマルウェアとかじゃなくて、作り手がバカ&検証足りてないんじゃないかと。

でわでわ。

蛇足:内部エンジンはInternetExplorer利用で、表示はFlashらしい。FlashだけなんだからAIRアプリにしろと(−_−#

HTTPリクエスト関係があまりに面倒くさいのでメソッドにしてみた

あろー。
最近ご多忙中な鳥さんですよ。

iPhoneでふぉーんな感じのプログラムとかチマチマやってんですけど。
なんか調べてみた感じ、みなさんシコシコObjective-CでHTTPなプログラムを書いてらっしゃるようで。

あるような気もするけど、HTTPをメソッドとか関数的なものにしちまってみた。非同期でごんす。
動作無保証。

- (NSString *)sendPostRequest:(NSString *)url sendData:(NSData *)sendData {
    NSURL *nsurl = [NSURL URLWithString:url];
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: nsurl];
    [request setHTTPMethod: @"POST"];
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
    [request setValue:[NSString stringWithFormat:@"%d", [sendData length]] forHTTPHeaderField:@"Content-Length"];
    [request setHTTPBody: sendData];
    
    NSError *error;
    NSURLResponse *response;
    NSData *buffer = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
    
    if (buffer != nil) {
        // response
        int encodeArray[] = {
            NSUTF8StringEncoding,			// UTF-8
            NSShiftJISStringEncoding,		// Shift_JIS
            NSJapaneseEUCStringEncoding,	// EUC-JP
            NSISO2022JPStringEncoding,		// JIS
            NSUnicodeStringEncoding,		// Unicode
            NSASCIIStringEncoding			// ASCII
        };
        NSString *dataString = nil;
        int max = sizeof(encodeArray) / sizeof(encodeArray[0]);
        for (int i=0; i<max; i++) {
            dataString = [
                          [NSString alloc]
                          initWithData : buffer
                          encoding : encodeArray[i]
                          ];
            if (dataString != nil) {
                break;
            }
        }
        return dataString;
    } else {
        // error handling
        return nil;
    }
}

- (NSString *)sendPostRequest:(NSString *)url sendString:(NSString *)sendString encode:(int)encode {
    NSData *requestData = [sendString dataUsingEncoding:encode allowLossyConversion:YES];
    return [self sendPostRequest:url sendData:requestData];
}

- (NSString *)sendGetRequest:(NSString *)url {
	NSURL *nsurl = [NSURL URLWithString:url];
	NSURLRequest *request = [NSURLRequest requestWithURL:nsurl];
	NSURLResponse *response = nil;
	NSError *error = nil;
	NSData *data = [
                    NSURLConnection
                    sendSynchronousRequest : request
                    returningResponse : &response
                    error : &error
                    ];
    
	// error
	NSString *errorStr = [error localizedDescription];
	if (0 < [errorStr length]) {
		return nil;
	}
    
	// response
	int encodeArray[] = {
		NSUTF8StringEncoding,			// UTF-8
		NSShiftJISStringEncoding,		// Shift_JIS
		NSJapaneseEUCStringEncoding,	// EUC-JP
		NSISO2022JPStringEncoding,		// JIS
		NSUnicodeStringEncoding,		// Unicode
		NSASCIIStringEncoding			// ASCII
	};
    
	NSString *dataString = nil;
	int max = sizeof(encodeArray) / sizeof(encodeArray[0]);
	for (int i=0; i<max; i++) {
		dataString = [
                    [NSString alloc]
                    initWithData : data
                    encoding : encodeArray[i]
                    ];
		if (dataString != nil) {
			break;
		}
	}
	return dataString;
}

- (NSString *)sendGetRequest:(NSString *)url sendString:(NSString *)sendString {
    return [self sendGetRequest:[NSString stringWithFormat:@"%@%@%@", url, @"?", sendString]];
}

- (NSString *)sendGetRequest:(NSString *)url sendString:(NSString *)sendString encode:(int)encode {
    return [self sendGetRequest:[NSString stringWithFormat:@"%@%@%@", url, @"?", [sendString dataUsingEncoding:encode allowLossyConversion:YES]]];
}
  • (NSString *)sendGetRequest:(NSString *)url sendArray:(NSDictionary *)sendArray encode:(int)encode;

とか

  • (NSString *)sendPostRequest:(NSString *)url sendArray:(NSDictionary *)sendArray encode:(int)encode {

とか、あとクラス化したりできたらいーなーと思いつつ、中途半端な感じのものでんねぇ。えぇ。
まるちぱーと・ふぉーむでーた とか ひどーき とか美味しいものもやってません。ウチ大衆食堂ですので(ぇ
PHP的にお気軽なインタフェースになったら良いなぁ。

ライセンスはWTFPL辺りでてけとに。

私がChromeではなくFirefoxを使い続ける理由


あろー。鳥だよ。

久々にブログを書くよ。

私がChromeに乗り換えない理由をちょっと書いてみようと思うんだ。

と言っても、大したことでは無いのだけど。

表示が不安定
タイミングが悪ければ表示が崩れるブラウザとか、無いと思うの。だいぶマシになったとは言え、バージョンによって崩れが激しいブラウザが安定しているとは言えないので。
メモリ食い過ぎ

「オレがオレが」のChromeとオンリーワンのFirefox
プロセス分割されまくって、トータルのメモリー容量が多いのはご存じの通り。
開発系のアドオンまだまだ

ウェブ開発には最強と思う開発ツール、Firebug

様々な開発支援ツールがパッケージ化されたWeb Developer

簡単なフォームテストに役に立つSelenium
やっぱりアドオンの老舗はFirefoxWeb DeveloperFirebugに続くものはChromeに無い。Firebugに似たツールがChromeに付いてるけど、足下にも及ばない。
タブブラウザ拡張みたいなのが無い

サイドバーとして常駐させてるタブバーはてブバー

タブバーがない時ぃ。。。タイトルは最早何書いてるのか分からないくらい小さい。
時代はワイドスクリーンですよ。私は一時スタック代わりにタブ開きまくるので、上の領域だけだと管理しきれない。で、余ってる左の領域でがばっとタブ並べたいわけですよ。Chromeにはそれが無いよね。
別に速くない
Firefoxは4になって、爆発的に速くなった。HTML5のデモンストレーションをテストランしてみる限り、ますます乗り換える必要が無くなった。ま、ちょっと言うと、Windows版のFirefoxにはプチフリーズみないなのがあって、それをなんとかして欲しかったりはするかなぁ。

てわけで、乗り換えたくないわけじゃなくて、乗り換えるメリットが無いのだわ。まぁ開発屋の話なのでぇ。

でわでわ。



追伸。乗り換える理由、今ならある。Firefox4になって、メモリーリークのバグができて、知らない間にメモリー2GBとか食いつぶすバグがあるのん。「固まったー」ってなった場合は、これが原因の場合多し。。

iPhoneアプリを明日から開発しろと言われた時に、役に立つかも知れない知識

殊の外ご覧いただいてるようなので、日曜日にもうちょっと拡充しま。即戦力的な記事に。

あろー。鳥ですお。

さて、突貫4日とかでiPhoneアプリ開発やりまして。

あると役に立つと思われる知識を列挙しようか。

C言語系の知識
Objective-CはやっぱりCなので、C言語とわりと似てる。
特にC++のクラス系の知識はわりと使える。enumとかconstとかexternとかもあるよ。ただし、メソッドの引数を渡すときに名前が付いてたり、クラスのメソッドの定義が括弧の外にあったり、びみょーに違う。まーわりと変。
C#VBのインタフェース系の知識
iPhoneアプリの開発は、インタフェースビルダーとかのUIを作成して、それに対してアクションをひもづけるというかたちを取ってるんだ。
Flash系の経験
オブジェクトの扱いのクセがかな〜り似てる。横や縦にずいっと移動したり、グワっちと拡大したり、クルンっと回転したりするモーションはわりと標準で実装されてるので、実は簡単に実装できるよ。
DirectXとかOpenGLとかの知識
オブジェクトを生成して、描画して、リリースして、という一連の動作と、レイヤーの重ね順に表示されるとかその辺が感覚的に分かりやすいと思うよ。

あと、開発時にわりと証明書や実アプリのコンパイルとかで躓くと思う。SDKのバージョンによって細々と項目の名前が違うのと、正しい設定をしても何故かうまくいかない、というケースがままあるので。

SDKのバージョンによってわりと利用頻度の高い部分の変更がままあるので、本を買うにしても基礎程度に、ネットのみんなの頑張ってるドキュメントを参考にするのが一番良いよ。ただし、わりとメモリーリークしまくってるソースをよく見かけるので注意。その辺はわりとiOS自信がうまいことやっている・・・のか?

SDKは、わりとオンリーワンにしては使いやすいよ。ショートカット類も充実してる。VisualStudioの足下にも及ばないけどね〜。

見た目の部分はInterface Builderというのを使ってわりと簡単に開発できるお。画像を当て込んでボタンをここに置いて。それをビューと呼ぶんだけど、それに対してコントローラという裏側のプログラムがいて、そのアクションをビューの部品に紐付けるというかたちを取るんだ。

わりとお世話になったサイト一覧。

言語の基礎

基本はやっぱここでんね!

リファレンス

コードのスニペット的な

でわでわ。

GMail、ぷららの迷惑メールフィルタ両方を貫通してきた「※未承諾広告」

あろー。鳥だよー。

GMailぷららの迷惑メールフィルタ両方を貫通してきた「※未承諾広告」、貼ってみるとする。
出先が特定できそうな情報は伏せたよ。

X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AuMFAPYFXk11aJOUdGdsb2JhbACCQoFaA5N5jgIIFQEMFAiIbaMzAYcgiSGBJINBeQSFCYpcggCDUA
X-iron-level: 0
From: =?ISO-2022-JP?B?GyRCM3Q8MDJxPFIlVCVpITwlayVXJWwlORsoQg==?=
To:
Reply-To:
Date: Fri, 18 Feb 2011 22:43:45 +0900
Subject: =?ISO-2022-JP?B?GyRCTCQ+NUJ6OS05cCIoP3s4NkBpQmU7VkN4IVYlIiE8JV8lQyU3JWUkWCROTjkbKEIgGyRCO2QkPyRBJE4kSiQvJDckP0AkMyYhVzQpOVQkTiQ0MEZGYhsoQg==?=
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Message-Id:
X-spam-judge: ok

東京国際キルトフェスティバル(東京ドーム)の講演者としてもおなじみの
菅原千代志著『アーミッシュへの旅――私たちのなくした世界』が刊行されました。

世界中の国々を歩きながら、さまざまな地域に生きる人々の姿をカメラにおさめる
写真家菅原千代志さんは、1994年4月に訪ねたペンシルヴァニア州ランカスターで出会った
アーミッシュの人々と、およそ17年間の長きにわたって、交流を深めてきました。

アーミッシュ”というと、文明に背を向けて生きるかたくなな人々、
という印象をもっている方々も数多くおいでになると思います。
数多くのメディアが伝える彼らの姿は、われわれが期待するイメージに
あわせて紹介されているだけなのかもしれません。

本書は、「アメリカという文明社会のなかで、自らの生き方を厳しく選択した人々」と
日本人カメラマンが出会い、友情をはぐくみ、その家族の死に立ち会い涙し、
また、新しい命の誕生を抱きしめる日々を美しい大自然を背景に描いています。

ぜひ、わたしたちの知らない「もう一つのアメリカ」をご堪能いただきたいと思います。

詳細情報は下記ページに掲載しております。
商品ページ:xxxxxxxxxxxxxxxxxxxxxx


※弊社からのメールがご不要な方は件名に「受信拒否」と
表示頂き、このメールにご返信下さいませ。
また、大変お手数おかけ致しますが、
メールを転送処理されている方、複数のメールアドレスをお持ちの方は、
弊社からのメールを受信されたアドレスからの返信をお願い致します。


========================================

 株式会社xxxxxxx 編集部 
 TEL:xx-xxxx-xxxx FAX:xx-xxxx-xxxx
  HP:xxxxxxxxxxxxxxxxxxxxxx

========================================

確かに2つのメールフィルタでチェックかかってるけど、OK出てるねぇ。

なんかものすごーく真面目そうなメール。
一律タイトルだけではじいてる訳じゃないという良い証拠。

でわでわ。

LYNX 3Dとか買ってみた


あろー。鳥だよ。

ケータイ換えたよ。スマートフォンLYNX 3D SH-03Cての。発売されてわりと経つけどねw

前が2009年の10月頃でその頃にスマートフォン出だしてるから、かれこれ・・・1年と3ヶ月しか経ってねぇ!
いやまぁね、なーんとなくケータイは各機種5年以上経たないと交換しなかったわけですよ。(そもそもあんまし電話しない人なのでw)

なんでこの機種にしたの?

はい条件。

  • Android OS
  • ワンセグ(社内ひきこもりのお供)
  • オサイフケータイ(必須ではないけど)

そしたら、DoCoMoの場合はREGZA Phone T-01Cとこの機種しか無くって、んで調べてみると、REGZAフォンはどの店も予約40台くらい入っててしかも出荷日は実質未定だそうで。で、これにした。

ちなみにREGZA Phone、公式アナウンスは無いけど、どうやら3月下旬か4月上旬あたりに次の分が出荷されるらしい。

で、理由がどーにも馬鹿馬鹿しい。
このタイミングで東芝のケータイの事業部門を富士通に委譲しているらしい。いちおう会社名は「富士通東芝モバイルコミュニケーションズ」と言うけど、実質富士通の子会社で、東芝の携帯の生産部分を担うそうで、んで事業の移管に伴って東芝はもう関知しない、富士通はまぁ機会損失を伴おうが何しようが自分の速度で淡々と作業を進める感じの組織なので、用は半ば宙ぶらりんの状態でどうも生産が滞っているらしい。

エンドユーザーはそんなこと関係ないのにね〜。

さて、そんなわけでお客さん一人逃しましたよ。おめでとうございました。

なんでiPhoneじゃなくて?

私はメジャーなものがだいたい嫌いです。そんだけ。

感想。

ハード的なとこ。

60点。びみょー。

重量感がある。重さはだいたいREGZA Phoneと同じだけど、面積あたりの重さがあるせいでわりと重く感じてしまうねぇ。

メニュー系ボタン。4つ下に並んでるボタンだけど、バックライト無いので、電機消してる時の操作が「うむ?(´・ω・`)」ってなってしまう。

マナーモードを音量の下げるボタンとか中途半端に割り当ててるのはやめた方が良いと思われ。検索ボタン(?)がすぐ下にあって、わりと間違えて押してしまうのではないかなと。
まぁこの辺は、前のF-09Aで慣れたw

電源はMicro-USB*1。「オレはUSBだぁ!」って接続口に書いてあるけど、ミニUSB端子、ささらない。端子サイズあんまし変わらないのにねぇ。。ちなみに携帯電話はMicroUSB端子に統一するよう勧告が出ているそうで。ゴチャゴチャした電源コードたこ足から、ちょっとだけ解放されそうだよ!

音質は意外と良い。いや内蔵のスピーカーじゃなくてアンプのね。それなりのイヤホンつないで聴くと、重低音から高音域までそれなりに出てる。でもさすがPCと言うべきか、ピンクノイズが乗る。で、プレイヤーが一定時間動いてないとアンプを止めるらしく、ブチって音が入る。

バッテリーはふつー。・・・らしい。前使ってたガラケーF-09Aと比べると、かなり消費激しいけど。

液晶は、TrueColorにはほど遠い6.5万色だけど、まぁさして気にならない。ちなみにASV液晶って液晶パネルを採用してて、PSPとかモバイル端末に特化した液晶ぽい。

ところで指紋ベタベタ問題はいつ解決するのかしらね。

OS的なとこ。

50点。及第点。

タッチパネルについては、どうもなんだか変。まずタッチ判定が必ずあって、そこからドラッグしたかどうかの判定が入っているように見える。
つまり、必ず一回クリックしたことになってる感じ。これがどーもおかしい。

これはAndroid固有かどうか分からないけど、ホームに移動した時にタスクが裏で動いてるのか終了してるのかがどーもアプリによって違うの。で、明確に「終了する」ボタンがあるアプリて希で。いちいちホームに移動してから、アプリが動いてるかどうかを確かめるっていうね。
どうもこれは周知の事実のようで、それ専用のアプリでAdvanced Task KillerとかAutomatic Task Killer(日本語版)なんてアプリもある。
ちなみにOSにも、ホームボタンを長押しするとタスクマネージャーらしいのが表示されるんだけど、これがまた劇重。

てゆか、「戻る」ボタンがあることに激しく違和感を覚えた次第であります。左にスライドさせたら戻ってくれ〜。

フォントがモリサワの新ゴR。ちょっと驚いた。

あと3Dは特に要りません。てか視野角めっっちゃ狭い

アプリ的なとこ。

40点。赤点寸前。

デフォで入ってる70個以上のアプリは、ほぼすべてアンインストールできない。まるでドラクエの捨てられないアイテムのよう。おいおい。それメーカー製のPCよりひどくない?

アプリがわりと頻繁に強制終了ないしフリーズする。これがドロイド固有の問題なのかは知らないけど・・・DoCoMoの公式アプリが強制終了しまくるのには笑ったよ。

ニコニコ動画には、今のところ対応してないらしい。対応は3、4月頃予定らしい。見ませんけれども。

一方で、国産よろしく絵文字メールやらデコメやら使えたり、ストラップホールがあったりするよ。

総評

「こんなもんかぁ」という印象かなぁ。何も凄くない。

でわでわ。

*1:USBケーブルだからと言ってPCのケーブルコーナーに行っても置いてないよ!直接ケータイの売り場に行こう!

映画:ソーシャル・ネットワーク観てきた(ネタバレなし!)


はぁい。久々の鳥さんです。

今回はソーシャル・ネットワークですお。

てゆか最近、映画論評ばっかな気がする。。。忙しいし・・w

さて、気を取り直して。一言言うなら。

観とけ。

怒濤のトークに始まり、気がつけば現在、いろいろなところから訴えられている真っ最中。そしてそこから、過去を回想するかたちで話は展開していく。

本筋の内容はWikipediaにネタバレよろしい勢いで書かれているので、それ参照。

プログラマーなら、別の楽しみ方ができたりする。PHPがどうたらこうたらとかPerlがどうたらこうたらとか、プログラムが大量に踊る。ネットワークとかサーバーのセキュリティどうのとか、まぁなんちゃって社内SEなら仕方がないかなと失笑な部分も。意識や技術、経験値の低い担当者がすると正直、こういうところはどうしようもなかったりするんだけどね。でも、そこはどうしようもないヤツに任せても大丈夫なところとそうじゃないところがあるわけで。

それにつけても、ザッカーバーグの天才演出ぷりに惚れたw

「女性の人気投票をしたいんだ。スコアリングをどうしよう?」「じゃぁ式はこれでいこう」で、ホワイトボードに一つの方程式を書く。ザッカーバーグはそれをたったの数分でプログラムに落とし込む。これできそうでなかなか難しい。

続いて、ウィンクルボス兄弟との対話。弁護士「アイデアを盗んだだろう」マーク「質問の意図は?」弁護士「彼らはFacebookのアイデアはもともと彼らが考えたものだと主張している」マーク「それには前提条件が間違っている。彼らにはそんなスキルも想像力も無い。作れるものならFacebookを作ってみろ。以上。」わーお。

翻訳については文句が言いたい。日本語訳、いろいろ端折りすぎ。全然違う翻訳(意訳でもない)を当て込んでいる箇所が多くて、正味イラっと来た。流れとしては体勢問題はないけどさ、ちょっといい加減。

これまた小憎たらしいのが、描いているのは結局ヒューマンドラマってところ。落としどころがとてもうまいなぁと。

難を言うなら、トーク早すぎ。展開早すぎ。んで終わりが適当すぎ。最低でも二作に分けた方が良かった。

この映画にナップスターNapster)の共同創設者のショーン・パーカーが出てくるんだけど、ナップスターは、しかるべき時にしかるべきターニングポイントを作ってくれた凄い存在だと思っている。あれより遅くても早くてもダメ。

ちなみに、この物語はFacebook関係者の協力はまったく得られずに作られているため、かなりの部分が創作と見た方がよいですお。

で、その他の雑記。

キャナルシティ博多について

ボロボロで年季が入ってきた感じになってる。直近でリニューアルオープンするみたいだけど、時期としてはまぁ頃合いかなと。

入ってる店もゴチャゴチャっとしてるので、その辺もひっくるめてリニューアルする予定なのだと思う。

その中の映画館、ユナイテッド・シネマについて

映画が上映される前にいろいろ宣伝があるけど、やたら施設内の店の宣伝が多かった。風月とかマッサージ屋とかの宣伝がわりとたくさん。

大阪で似たようなところで、なんばパークスてのがあるんだけど、そこの映画館の宣伝では、自分とこの宣伝はそんなに入ってなかったと思う。

セキュリティ的にはザル。券を買わなくても自由に映画鑑賞し放題。どうも完全入れ替えというには、監視体制が甘い。半券も切ってないし。その席さえ埋まっていなければ、ずっと一日中タダで映画が観られるよ。

私はきちんと券買って観てます。念のため。

音量大きめ、音響としては申し分ないんだけど、ちょっとうるさい感じ。

でわでわ。