2009 SUPER GT 第3戦 富士 なんちゃってレポート 準備編

まずは準備から。 レポートと言うか備忘録です。 実はこの一連の備忘録が、自分自身に毎年かなり役立っていますw 家を何時に出てたらどうしたこうした・・・と。 忘れやすいんでね(;´Д`A “` さて、今年から駐 … “2009 SUPER GT 第3戦 富士 なんちゃってレポート 準備編” の続きを読む

まずは準備から。

レポートと言うか備忘録です。

実はこの一連の備忘録が、自分自身に毎年かなり役立っていますw

家を何時に出てたらどうしたこうした・・・と。

忘れやすいんでね(;´Д`A “`

さて、今年から駐車券がバラでローチケ.comなどで前売り販売されていました。

はよ言ってくれ。

駐車券は、第1コーナー指定駐車券、ドリフトコース指定駐車券、ジムカーナコース指定駐車券、P11指定駐車券と分かれていますが、いずれも5,000円。(場内駐車場図(PDF))


あんまり大きい声で言いたくないですけど・・・。

はっきり言って買いでしょ。

だって、場内に駐車するには一回の入場で1,500円かかります。(はて?500円値上がりしてない??気のせい???)

例えば予選日に入場して1,500円。一回外に出て決勝日にまた来たら1,500円。

合計3,000円。

ヾ(・ω・o) ォィォィ取り過ぎでそFSW。

予選日から決勝日にかけて、場内でキャンプする人は1,500円で済みますけど、ウチみたいに一旦帰る人は決勝日入場する時にさらに1,500円かかり合計3,000円!

それならば、確実に場所を約束されている前売りの5,000円駐車券をゲットしておく方が賢いってもんです。

ちなみに指定駐車券は2日間有効なので、何度外に出てもOKです。

色々な苦労を考えるとたかだか2,000円のプラス。

はっきり言って、個人的には買うっきゃナイツ!

・・・だったのですが、それに気がつくのが遅かったため完売・・・。

ちっ。

だからはよ言えっての。

そのためYahoo!オークションで手に入れました。まぁまぁの金額で落とせたので何よりです。

ちなみに落としたのは第1コーナー指定駐車券です。

メインスタンドに近いのがなんともステキなのです。

おかげで予選日、決勝日共に快適に過ごせました。

2009 SUPER GT 第3戦 富士 なんちゃってレポート おめでとう編

今年も行ってきましたSUPER GT第3戦富士! まずは#1 MOTUL AUTECH GT-Rおめでとう! ここまでノーポイントでしたが、それだけにやってくれると思っていました。 ここ2戦ついてなくてね・・・。 それだ … “2009 SUPER GT 第3戦 富士 なんちゃってレポート おめでとう編” の続きを読む

今年も行ってきましたSUPER GT第3戦富士!

まずは#1 MOTUL AUTECH GT-Rおめでとう!

ここまでノーポイントでしたが、それだけにやってくれると思っていました。

ここ2戦ついてなくてね・・・。

それだけに、観に行った富士で、まずは今期初ポイント、初勝利を見せてくれて大満足でした!

テキストの読み書き

Apple-Style Plusさんに登録されている方のブログを拝見していると、この休みを利用してCocoaプログラミングに挑戦している方が結構いらっしゃるようですね。 こういうの始める時って、やっぱりまとまった休みでな … “テキストの読み書き” の続きを読む

Apple-Style Plusさんに登録されている方のブログを拝見していると、この休みを利用してCocoaプログラミングに挑戦している方が結構いらっしゃるようですね。

こういうの始める時って、やっぱりまとまった休みでないとなかなか・・・ね。

いったん始めてしまえば暇な時を見つけてチョイチョイできますけど。

明日あさっては、GW毎年恒例のSUPER GT第3戦富士を観戦する予定なので、今日はCocoaの日としよう。

・・・天気良いけど。

さて、この間テキストファイルの読み込部分のみ載せたコードですが、書き込みとかその周辺もできたので全部載せてみます。

何かの足しになれば良いですけど。

あ、そうそう。

メモリ管理の話がまだ理解が追いついていなくて、その辺りの処理は入っていません。


//
//  CocoaSample4.m
//  CocoaSample4
//
//  Created by D.S on 09/04/30.
//  Copyright 2009 __MyCompanyName__. All rights reserved.
//

#import "CocoaSample4.h"


@implementation CocoaSample4

/*
Openボタン押下時の処理
*/
- (IBAction)open:(id)sender;
{
// NSOpenPanelのインスタンス生成
NSOpenPanel *openPanel = [ NSOpenPanel openPanel ];

// NSOpenPanel表示
[ openPanel beginSheetForDirectory:@"~/" file:@"" types: nil
modalForWindow:[ sender window ] modalDelegate:self
didEndSelector:@selector( openPanelDidEnd: returnCode: contextInfo: ) contextInfo:nil ];
}

/*
saveボタン押下時の処理
*/
- (IBAction)save:(id)sender;
{
// NSSavePanelのインスタンスを生成
NSSavePanel *savePanel = [ NSSavePanel savePanel ];

// NSSavePanel表示
[ savePanel beginSheetForDirectory:@"~/" file:@"" modalForWindow:[ sender window ]
modalDelegate:self didEndSelector:@selector( savePanelDidEnd: returnCode: contextInfo: )
contextInfo:nil ];

}

/*
NSOpenPanel終了時の処理
*/
- (void)openPanelDidEnd:( NSOpenPanel * )panel returnCode:( NSInteger )code contextInfo:( void * )contextInfo {

NSString *string = nil;
NSError  *error;

// 押下されたボタンの判定
if( code == NSCancelButton ) {

/* Cancelボタン時 */

// 何もせず終了
return;
}

//
// とりあえず、SIJIで読み込んでだめならUTF8で読み込む。それだダメならreturn
//

// 選択されたファイル名称を取得
NSString *path = [ panel filename ];

// エンコーディングにNSShiftJISStringEncodingを指定してファイルを読み込む
string = [ NSString stringWithContentsOfFile:path encoding:NSShiftJISStringEncoding error:&error ];

// 読み込めたか判定
if( string == nil ) {

/* 読み込めなかった場合 */

// エンコーディングにNSUTF8StringEncodingを指定してファイルを読み込む
string = [ NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error ];

// 読み込めたか判定
if ( string == nil ) {

/* 読み込めなかった場合 */

// エラー出力
NSLog( [ error localizedDescription ] );

return;
}
}

// テキストエリアに読み込んだ内容を出力
[ textView setString: string ];
}

/*
NSSavePanel終了時の処理
*/
- (void)savePanelDidEnd:( NSSavePanel * )panel returnCode:( NSInteger )code contextInfo:( void * )contextInfo {

NSString *string = nil;
NSError  *error;

// 押下されたボタンの判定
if( code == NSCancelButton ) {

/* Cancelボタン時 */

// 何もせず終了
return;
}

// ファイル名称を取得
NSString *filename = [ panel filename ];

// テキストエリアから表示されているテキストを取得
string = [ textView string ];

// 取得したテキストをファイルに書き出す
BOOL result = [ string writeToFile:filename atomically:YES encoding:NSUTF8StringEncoding error:&error ];

// 書き出しが正常であったか判定
if( result != YES ) {

// エラー出力
NSLog( [ error localizedDescription ] );
}
}

@end

Cocoaのエンコーディング

とりあえず一個題材を決めて勉強しています。 今やっているのは、テキストファイルをNSOpenPanelで選択してNSTextViewに表示し、さらにファイルへ書き出すというものです。 Cocoa-Javaでも似たようなこ … “Cocoaのエンコーディング” の続きを読む

とりあえず一個題材を決めて勉強しています。

今やっているのは、テキストファイルをNSOpenPanelで選択してNSTextViewに表示し、さらにファイルへ書き出すというものです。

Cocoa-Javaでも似たようなことを以前やっていたので、なんとなく分かるのですが、読み込むテキストのエンコーディングについて良くわからなくてウェブで色々調べてました。

Cocoa-Javaの時は意識していたかどうか定かではないのですが、読み込むファイルのエンコーディングがUTF-8だったりSJISだったEUCだったり・・・と様々な場合、ちゃんと化けずに読めるのかな?と。

たぶん英数字しか入ってないファイルであれば読めてしまうんでしょうけど、2バイト文字の日本語とかが入っているとどうなるのやら・・・。

で、結論から言うと、化けるというか読み込んでくれません。

使ったメソッドはNSStringの+ (id)stringWithContentsOfFile:(NSString *) path usedEncoding:(NSStringEncoding *) enc error:(NSError **) errorです。

※頭に+が付いてるとクラスメソッド、-だとインスタンスメソッドだそうです。

リファレンスを見ると、読み込んだファイルのエンコーディングを教えてくれるようなので、なんでも嫌わずに読み込んでくれるのかと思いましたがだめでした。

これが使えると、ブラウザで言うところの自動判別みたいなものが出来て楽だと思うのですけど、なんだかちゃんと動きません。

それでウェブで調べてみると、Cocoaのエンコーディングはどうなっておるのだ? – Nothing Upstairsという記事を見つけました。

なるほどやっぱりダメなんですね。

ということで、読み込むファイルのエンコーディングが分からない時は、トライアンドエラーするしかないのですかね。

ブラウザとかテキストエディタとかの実装ってみんなそうしているだろうか。

良くわかりませんが、とりあえず+ (id)stringWithContentsOfFile:(NSString *) path encoding:(NSStringEncoding) enc error:(NSError **) errorを使うことにして、NSStringEncodingに片っ端からエンコーディングを指定していくしかないのかな。

合ってるのかね??


/*
NSOpenPanel終了時の処理
*/
- (void)openPanelDidEnd:( NSOpenPanel * )panel returnCode:( NSInteger )code {

NSString *string = nil;
//NSStringEncoding encoding = 0;
NSError *error;

// 押下されたボタンの判定
if( code == NSCancelButton ) {

/* Cancelボタン時 */

// 何もせず終了
return;
}

//
// とりあえず、SJISで読み込んでだめならUTF8で読み込む。それだダメならreturn
//

// 選択されたファイル名称を取得
NSString *path = [ panel filename ];

// エンコーディングにNSShiftJISStringEncodingを指定してファイルを読み込む
string = [ NSString stringWithContentsOfFile:path encoding:NSShiftJISStringEncoding error:&error ];

// 読み込めたか判定
if( string == nil ) {

/* 読み込めなかった場合 */

// エンコーディングにNSUTF8StringEncodingを指定してファイルを読み込む
string = [ NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error ];

// 読み込めたか判定
if ( string == nil ) {

/* 読み込めなかった場合 */

// エラー出力
NSLog( [ error localizedDescription ] );

return;
}
}

// テキストエリアに読み込んだ内容を出力
[ textView setString: string ];
}

Cocoaリファレンス

だんだんとObjective-Cの[やら:に慣れてきました。 さて、クラスの仕様を調べたりするのに、Appleで公開されているリファレンスを見ます。 Appleのウェブページを見たり、Xcodeの製品ドキュメントから見て … “Cocoaリファレンス” の続きを読む

だんだんとObjective-Cの[やら:に慣れてきました。

さて、クラスの仕様を調べたりするのに、Appleで公開されているリファレンスを見ます。

Appleのウェブページを見たり、Xcodeの製品ドキュメントから見ても良いのですが、Cocoa Browser Airというアプリケーションを使うと大変見やすいです。

できれば前回開いていたページを記憶しておいてくれるとうれしいのですが・・・。あと現バージョンでは検索ができないようです。

もう一つリファレンス関連でありがたいのが、Cocoa Break!さんで公開されている日本語訳です。

Mac OS X v10.5系はまだ完全ではないようですが、Foundationは揃っていますし、重宝することと思います。

これ大変な作業ですよ。素晴らしい。

Cocoa-Objective-C始めました。

さてGWに入りました。 画策していた12連休は残念ながら失敗に終わりましたが、8連休ということでまずまずです。 しかし長期連休を取得できても、現在人生最大級でお金がないため、どっちにしろたいした遊びはできずに残念。 そん … “Cocoa-Objective-C始めました。” の続きを読む

さてGWに入りました。

画策していた12連休は残念ながら失敗に終わりましたが、8連休ということでまずまずです。

しかし長期連休を取得できても、現在人生最大級でお金がないため、どっちにしろたいした遊びはできずに残念。

そんなわけで、ずっと以前からチャレンジしようと考えていたことに取り込むことにしました。

Cocoa-Objective-Cです。

遥か昔に、Cocoa Beiginnersというセクションで、Cocoa-Javaで作るMac OS Xアプリケーションについて書いていました。

書いていたと言うより、自分で勉強した内容を備忘録として載せていたようなものですが。

当時なぜCocoa-Javaを選んだかというと、Cocoa-Javaの情報があまり無かったので役立つかなと思ったのと、はっきり言ってObjective-CってMac OS Xアプリ専用のプログラミング言語と言っても過言ではない程ニッチ過ぎて、それならばメジャーな言語であるJavaを勉強しながら、Mac OS Xのアプリを作れれば幸せだなと思ったのが理由でした。

しかし時は過ぎ、Cocoa-JavaはAppleから見限られてしまいCocoa-Javaを追求する意味もなくなり、さらにiPhoneという素晴らしいデバイスが誕生し、そのアプリの開発のためにはObjective-Cが必須である昨今。

ならば本気でObjective-Cをがんばってみようじゃないか。

この不況な世の中。暇はあってもカネはない。

そんな時こそまさにうってつけの課題。

Macさえあれば、開発環境は全て無料で手に入ります。

やってやろうじゃないか!

そう意気込んでいる現在であります。

チョイチョイとコードを書いたりしてみてますけど、やっぱりこの文法慣れない。

C言語を知っていると割と簡単に習得できるとの評判ですが、文法がとにかく慣れない印象です。

[とか:とかたくさんあって、もー!みたいな。

あと、ラベルとかって概念もあったりして、どれがラベルでどれが引数なんだかパッと分からん!

ごちゃごちゃと文章のような文法です。

までも慣れなんでしょうけどね。

あ、そうそう。

ウェブだけを見てなんとかしようと思っていましたが、やっぱり紙媒体の参考書が手元にあると便利なので、下記、2つの本を買いました。

どちらも有名ですよね。著者さんはHMDTの木下さんです。



たのしいCocoaプログラミング[Leopard対応版]


自作アプリをApp Storeで世界に向けて販売できる!! iPhone SDKプログラミング大全 (MacPeople Books)

最終的にはiPhoneアプリを作りたいと思っているのですが、iPhone SDKプログラミング大全の方を見るのはまだ先ですかね。

Mac OS Xのアプリ制作にまずは慣れたいです。

さくら’09 忍野八海編

先週に引き続き、4/18に山梨県の忍野八海へさくらを見に行ってきました。 忍野八海は初めてでしたが、観光地化されていてなかなか過ごしやすいところでした。 駐車は忍野八海入り口にあるお土産屋さん「ひのでや」に停めました。 … “さくら’09 忍野八海編” の続きを読む

先週に引き続き、4/18に山梨県の忍野八海へさくらを見に行ってきました。

忍野八海は初めてでしたが、観光地化されていてなかなか過ごしやすいところでした。

駐車は忍野八海入り口にあるお土産屋さん「ひのでや」に停めました。


30秒間手を入れていられないくらい冷たい・・・はずでしたが、全然普通でしたw


至る所にとうもろこしが干されていました。昔の人は、このとうもろこしを挽いて料理に使っていたそうです。


たくさんの淡水魚が泳いでいました。


中には黄色(金色?)のも。


藁葺き屋根の家が良い感じ。


日本名水百選に選ばれている水。軟水で非常に口当たりが良かった。


御釜池。面積は24平方mと小さいのですが、深さは7.5mもあります。


忍野八海に咲くさくら。


曇りなのが残念・・・。

忍野八海を後にし、鳴沢氷穴、富岳風穴に移動しました。

どちらも初めてで楽しかったのですが、特に印象に残ったのは鳴沢氷穴でした。


鳴沢氷穴入り口。


ここは溶岩トンネルと言われるところですが、なんと高さが91mしかありません!下は滑るし高さは無いしでかなり楽しいところですね〜。


「水曜どうでしょう」かと思うくらい楽しいところです。


中は0°。冷蔵庫です。


これだけ富岳風穴です。風穴でも氷柱はあります。

昼食は足柄古道万葉うどんでうどんを食べて、東名道の海老名SAでジャージーソフトクリームを食べて解散。

※忍野八海はiPhoneの電波入りましたが、鳴沢氷穴、富岳風穴、足柄古道万葉うどんでは全く入らず・・・。

さくら’09 冨士霊園編

4/12に、毎年恒例、冨士霊園へさくらを見に行ってきました。 集合場所を中央道の談合坂SAにAM7:30〜8:00。冨士霊園にはAM9:00に設定しました。 思えば毎年冨士霊園には、昼頃からノコノコ向かって行ったため渋滞 … “さくら’09 冨士霊園編” の続きを読む

4/12に、毎年恒例、冨士霊園へさくらを見に行ってきました。

集合場所を中央道の談合坂SAにAM7:30〜8:00。冨士霊園にはAM9:00に設定しました。

思えば毎年冨士霊園には、昼頃からノコノコ向かって行ったため渋滞などは皆無でしたが・・・。

あり得ない。

AM7:00頃に家を出たら、八王子料金所付近の渋滞に加えて小仏トンネルの渋滞・・・。

下りのクセにナマイキだぞ!w

談合坂SAにはAM8:20頃に到着し、さらに冨士霊園にはAM10:00に到着してしまい(なぞ)ご迷惑をおかけ致しました。すみません・・・。

到着した冨士霊園のさくらはちょうど満開を迎えたところといった状態でとてもきれいでした。

ただ残念なことに、例年より早めに行き過ぎたか混雑がひどく、さくらを背景にクルマを撮ることができず残念・・・。

次の目的に移動途中、陸上自衛隊滝ヶ原駐屯地前に見事なさくらロードがあったので停車。

なにやら創立35周年記念行事が催されていたようで、戦車が走っていました。

実戦配備されている型ではないでしょうけどね。

最後は道の駅「どうし」に寄って、恒例のソフトクリームを頂いて解散。

※園内はちゃんとiPhoneの電波入りました。

iPhoneフォトコンテスト

Apple主催で、iPhoneで撮影した写真のコンテストを開催するそうです。 部分引用: iPhone フォトコンテスト 5月10日(日)1:00 p.m. ・WEBから登録ください。登録受付は前日までとさせていただきま … “iPhoneフォトコンテスト” の続きを読む

Apple主催で、iPhoneで撮影した写真のコンテストを開催するそうです。

部分引用:

iPhone フォトコンテスト 5月10日(日)1:00 p.m.

・WEBから登録ください。登録受付は前日までとさせていただきますが、
定員になり次第閉め切らせていだきます。
・写真はすべてiPhoneで撮影したものに限ります。
・iPhone用の写真アプリを使用していただいても構いません。
・Macによる撮影後の補正は不可です。
・写真の枚数は最大10枚とさせていただき、当日、iPhoneに入れてお持ちください。
(CDやDVDでの持ち込みも受け付けています。)
※ iPhoneの写真アルバムに入っている写真はご登録いただけません。
iPhone本体で写真ををお持ちいただく場合は必ずカメラロールの中に写真が入っている状態にしてください。

当日コンテスト会場へ来れる方、つまりApple Store銀座に来れる方というのが参加条件でもっとも敷居が高いと思われますが、それ以外はかなり気軽に参加できるような雰囲気です。

ぜひ参加してみてはいかがでしょうか。

PAGE TOP