「スターシップ・トゥルーパーズ インベイジョン」を観た

見始めて10分で美形ぞろいのキャラクターに違和感を感じて検索してみたら、どうも日本人監督の作品らしい。だとすると、いかにもFF的な美形キャラがぞろぞろでてくるのも納得かも。ストーリーも「先に行ってくれ」的な泣かせ場面が盛り込まれていてちょっと。友情、恋愛、自己犠牲みたいな要素は「スターシップ・トゥルーパーズ」(初代)にもっとも相反する要素だと思うので、もっとバカバカしく作って欲しかった。

IntelliJでHTTPビルトインサーバーが使えない件その2

Run Debug Configurations

IntelliJでHTTPビルトインサーバーが使えない件をもう一回調べてみたのだがやっぱりだめ。WebStormだと下記の手順でうまくいったので、IntelliJ+プラグインとWebStormで何か違いがあるのかも。

  • Run→Edit Configurationで、JavaScript Debug→Remoteを追加。
  • URL to openを、http://localhost:63342/webdemo とする。webdemoのところはプロジェクト名。
  • デバッグで、先ほど構成したConfigurationを選択。ブラウザが開く(Configurationで選択したブラウザ。Firefox or Chrome)。
  • 初回だとなぜかデバッガで止まらないかもしれない。そのときは、http://localhost:63342/webdemo/index.html というふうにサイド開いてみる。

ちなみにWebStormでJavaScriptをデバッグする方法は三種類ある。大きく分けてローカルとリモート。リモートの場合上記ビルトインサーバーを使う方法の他、ApacheなんかにDeployして使うこともできる。詳しくは「Running and Debugging JavaScript」を参照のこと(これくらいしか情報がない)。

IntelliJのHTTPビルトインサーバーが使えない件

WebStorm 6でHTMLファイルをビルトイン実行できるらしい。IntelliJでも当然できるものだと思いやってみたのだが、
404 Not Found

こうなってしまい全然だめ。PHPStormだと実行できてないみたいなので、IntelliJでもだめなのか?時間ドブにすてた気分。

「eclipse 4.2 Juno」イマイチだった

しばらく「eclipse 4.2 Juno」を使っていたのだがどうも良くない。全般的にもっさりしているし、画面の描画がところどころおかしい。外観を「Classic」にすると変なところに謎の空白ができる。

ということで、eclipse 3.7.2に戻しました。俺ぐぬぬ。

来年より「ほぼ日」卒業します

来年より「ほぼ日」(というか手帳)を卒業します。

スケジュールに関してはiPhoneでなんの問題もないし、仕事上のメモはほぼ日じゃ間に合わなないから使わないので(A4ノート、Wiki、Redmineなどに書いてます)。勢いで買ったはいいものの年に書き込んだ日数があわせて10日分ぐらいしかないのはさすがに無駄すぎる。薄々気がついていたのに手帳コーナーの前を通り過ぎるとついつい買っちゃってたんですよね。自分を戒める意味でここに堂々と宣言しておきたいと思います。

Mountain Lion + Xcode 4.4.1でiOS Simulatorは5.0以上しか存在しない?

意気揚々とMountain LionにアップデートしてXcode 4.4.1を使っていて気がついたこと。iOS 4.3シミュレーターがダウンロードできなくなっています。Preferences→Downloadsで以下の通りiOS 5.0 Simulatorしかダウンロードできません。

Lionだとダウンロードできるみたいだけど、Mountain Lionだとだめっぽい。まあ個人的にはこれを機会にiOS 5以上対応に切り替えられると思えば気が楽かな。これきっかけで開発者の間でiOS 5以降対応が一気に増えそう。

やむを得ない事情でiOS 4.3対応必須の場合は、Lionをキープしとかないとまずそうですね。

■参考リンク

iOSアプリでGoogle Chromeを使ってURLを開く方法

Opening links in Chrome for iOSというページ書かれている通りにやればいいらしい。

NSURL *inputURL = ;
NSString *scheme = inputURL.scheme;

// Replace the URL Scheme with the Chrome equivalent.
NSString *chromeScheme = nil;
if ([scheme isEqualToString:@"http"]) {
  chromeScheme = @"googlechrome";
} else if ([scheme isEqualToString:@"https"]) {
  chromeScheme = @"googlechromes";
}

// Proceed only if a valid Google Chrome URI Scheme is available.
if (chromeScheme) {
  NSString *absoluteString = [inputURL absoluteString];
  NSRange rangeForScheme = [absoluteString rangeOfString:@":"];
  NSString *urlNoScheme =
      [absoluteString substringFromIndex:rangeForScheme.location];
  NSString *chromeURLString =
      [chromeScheme stringByAppendingString:urlNoScheme];
  NSURL *chromeURL = [NSURL URLWithString:chromeURLString];

  // Open the URL with Chrome.
  [[UIApplication sharedApplication] openURL:chromeURL];
}

裏技でもなんでもなく、URL Scheme を使うごく普通の方法。アプリごとに対応しないといけない。

今後iOSが強さをみせつけるほど、標準ブラウザをSafariから解放せよという圧力も強まってくるんじゃないかな。WindowsでMicrosoftが独占禁止法がらみでいろいろやられたので、Appleも当然対応はを考えているだろうけど。

日本人としてはIMEの解放してほしい。ATOK使いたいし。

Objective-Cでインスタンス変数はアンダースコアで開始する

浦島太郎状態だったXcode4をさわってリハビリ中。よくみるとXcodeが生成するコードのテンプレートがだいぶかわっている。特に気になったのが以下の点。

インスタンス変数の宣言がなくなってる

@interface DelegateDemoAppDelegate : UIResponder 

@property (strong, nonatomic) UIWindow *window;

@property (strong, nonatomic) DelegateDemoViewController *viewController;

@synthesizeの書式が変わっている

@implementation DelegateDemoAppDelegate

@synthesize window = _window;
@synthesize viewController = _viewController;

インターネットの大海を探索してみたところ、以下のブログで明快に説明されていた。

プロパティに対応するインスタンス変数の命名規則について – Awaresoft

なるほど、欧州最新形では、インスタンス変数にはアンダースコアのprefixをつけ、ヘッダで宣言もしないらしい。全然しらなかった。インスタンス変数とプロパティの使い分けは以前からなやましかったので、これで統一されたのであればスッキリ。

あと関係ないけど、Xcode4になってから、Interfce Builderとの連携が結構パワーアップしている。

[Xcode][IB] IBOutletやIBActionをマウス操作で接続 – iOS 開発ブログ Natsu’s note

この操作でもアンダースコア原則を守ってくれるのかと思いきやそうはならなかった。

XREAはphpがセーフモードでめんどくさい

ひさびさにこっちのblogに書き込もうと思い、WordPressの本体のバージョンアップと、プラグインのバージョンアップを行ったのだが、すんなりいかなかった。理由はXREAのPHPがセーフモードで動いていたから。

結論から言えば、管理用のphpをcgiモードで動作するよう.htaccessを修正すれば良かっただけなんだけど、バッドノウハウを知るために時間を費やさなければならなかった空しさが半端ない。WordPressに限らずPHPのセーフモードに関するトラブルはあちこち発生しうるので、これがいやで他のサーバーに移動する人も多いだろうなあ…。

TortoiseSVN + Windows 7 64 bitでインポート失敗

TortoiseSVNでインポートが失敗し直後にchkdskがかかるという怪現象が発生したので、てっきりHDDが逝ってしまわれたのかと思っていたのですが、Windows 7 のバグだったようです。

64-bit TortoiseSVN on Windows 7 says "file or directory is corrupted and unreadable" then runs chkdsk – Server Fault

MoveFileEx() がおかしいらしいとか。Hotfixがあるみたいなのですが、とりあえず他のマシンでインポートすることにしました。