間が空いていますが・・・。
さて公式予選一回目です。
予選日、第1コーナは無料で開放されているため、今回はここで観戦することにしました。
写真をいくつか撮りましたがボケてるのばっかり・・・。
Apple関連を中心に様々な話題を取り上げるブログです。
間が空いていますが・・・。 さて公式予選一回目です。 予選日、第1コーナは無料で開放されているため、今回はここで観戦することにしました。 写真をいくつか撮りましたがボケてるのばっかり・・・。
SUPER GT第3戦富士の話を書こうと思って書けてません・・・。 ところで、ウチは昔から2weekの使い捨てコンタクトレンズを使用しています。 片眼で6枚入っているんですが、残りをいつも冷蔵庫にしまって保管しています。 … “コンタクトを冷蔵庫で” の続きを読む
SUPER GT第3戦富士の話を書こうと思って書けてません・・・。
ところで、ウチは昔から2weekの使い捨てコンタクトレンズを使用しています。
片眼で6枚入っているんですが、残りをいつも冷蔵庫にしまって保管しています。
・・・なんかヘンですかね?
眼に悪いとか・・・(;´Д`A “`
第1コーナー指定駐車券を手中に収めているため、駐車スペースに困る心配も無く、ちょっと余裕をかましてAM8:00に家を出発しました。 本当は公開車検も見たかったのですが、前日眠りにつくのが遅く、公開車検に間に合う時間に起き … “2009 SUPER GT 第3戦 富士 なんちゃってレポート 予選日ピットウォーク編” の続きを読む
第1コーナー指定駐車券を手中に収めているため、駐車スペースに困る心配も無く、ちょっと余裕をかましてAM8:00に家を出発しました。
本当は公開車検も見たかったのですが、前日眠りにつくのが遅く、公開車検に間に合う時間に起きれる自信が全くなかったため今回は見送りました。
家を出る際に高速道路の状況を確認しましたが、当然ながら終わっている状況だったので下道で行くことにしました。
想定では約3時間。
下道とはいえ山中湖に近づくにつれて渋滞が発生していて、結構な時間を食い、富士スピードウェイに到着したのがAM11:30。
ちょうどピットウォークが始まる直前です。
渋滞のせいで30分程度オーバーしましたね。
しかしさすがに指定駐車券。駐車はスムースに行え、さっそくパドックへ。
あいかわらずの人でしたが、中々楽しめました。
GPUpdate.netより一部引用: 「このスポーツはフェラーリがいなくても存続できる」と、彼はフィナンシャルタイムズに語った。「フェラーリはイタリアの国民的なチームであり、それを失うことは非常に悲しいことだ。もしもチ … “フェラーリのいないF1って?” の続きを読む
GPUpdate.netより一部引用:
「このスポーツはフェラーリがいなくても存続できる」と、彼はフィナンシャルタイムズに語った。「フェラーリはイタリアの国民的なチームであり、それを失うことは非常に悲しいことだ。もしもチームが『我々は、FIAが望んでいる費用を上回る1億ポンドの費用を使いたいので、FIAと争いたい』と理事会に言ったとしても、彼らは『他のチームができるのに、どうして4000万ポンドの費用が使えないのか』と言うだろうね」
存続は出来るかもしれないし、慣れの問題もあると思いますが、フェラーリなしのF1って観てて面白いのだろうか。
個人的には全く面白くない。
フェラーリが好きな人はもとより、嫌いな人も敵役としていて欲しいチームなのではないだろうか??
フェラーリに関しては「特別契約」の話があったりなど、金にまつわる話も多々あるでしょうが、観ている方はそういったことはどうでも良いのです。
まずは準備から。 レポートと言うか備忘録です。 実はこの一連の備忘録が、自分自身に毎年かなり役立っています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コーナー指定駐車券です。
メインスタンドに近いのがなんともステキなのです。
おかげで予選日、決勝日共に快適に過ごせました。
今年も行ってきましたSUPER GT第3戦富士! まずは#1 MOTUL AUTECH GT-Rおめでとう! ここまでノーポイントでしたが、それだけにやってくれると思っていました。 ここ2戦ついてなくてね・・・。 それだ … “2009 SUPER GT 第3戦 富士 なんちゃってレポート おめでとう編” の続きを読む
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
とりあえず一個題材を決めて勉強しています。 今やっているのは、テキストファイルを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 ];
}
だんだんとObjective-Cの[やら:に慣れてきました。 さて、クラスの仕様を調べたりするのに、Appleで公開されているリファレンスを見ます。 Appleのウェブページを見たり、Xcodeの製品ドキュメントから見て … “Cocoaリファレンス” の続きを読む
だんだんとObjective-Cの[やら:に慣れてきました。
さて、クラスの仕様を調べたりするのに、Appleで公開されているリファレンスを見ます。
Appleのウェブページを見たり、Xcodeの製品ドキュメントから見ても良いのですが、Cocoa Browser Airというアプリケーションを使うと大変見やすいです。
できれば前回開いていたページを記憶しておいてくれるとうれしいのですが・・・。あと現バージョンでは検索ができないようです。
もう一つリファレンス関連でありがたいのが、Cocoa Break!さんで公開されている日本語訳です。
Mac OS X v10.5系はまだ完全ではないようですが、Foundationは揃っていますし、重宝することと思います。
これ大変な作業ですよ。素晴らしい。
さて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の木下さんです。
自作アプリをApp Storeで世界に向けて販売できる!! iPhone SDKプログラミング大全 (MacPeople Books)
最終的にはiPhoneアプリを作りたいと思っているのですが、iPhone SDKプログラミング大全の方を見るのはまだ先ですかね。
Mac OS Xのアプリ制作にまずは慣れたいです。