忍者ブログ
  • 2024.10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 2024.12
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【2024/11/25 13:48 】 |
偉人たちのブレイクスルー勉強術
「偉人たちのブレイクスルー勉強術」
齋藤孝







勉強ができない人というのはいない。自分にあった勉強法を見つけられていないだけだ。


PR
【2011/08/09 23:18 】 | 書評 | 有り難いご意見(0) | トラックバック()
XCodeのプロジェクトテンプレートを自前で作る
XCodeでゲームを作るときは、 OpenGL ES Application のプロジェクトテンプレートを使って作るのだが、最初に作り始めるまで改造するところが結構多い。

プロジェクトテンプレートとはこれのこと。
XCodeで新規プロジェクトの作成を選ぶと出て来る画面。


ここに、自分で作ったファイルやシェーダを持つプロジェクトテンプレートを追加したい。


※googleで調べて出て来る情報は、XCode3 と XCode4 とが混在していて、バージョン違いでいろいろ変わるようなので要注意。
ここではXCode4 でのやり方を示す。



プロジェクトテンプレートが定義されている場所は、
/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/Application
である。
(とても紛らわしいが、/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates/Application というディレクトリもあり、これは今回使わないので要注意)


ここを見ると、プロジェクトテンプレートが全部入っているのが分かる。




ここにある、OpenGL ES Applicationj.xctemplate をコピーして書き換えて作ってみようという話。
中身はこうなっている。

中身は、プロジェクトを作成したときに生成されるファイル群と同じ。プロジェクト名のところが変数っぽくなっているだけが違い。


これをコピーする。
コピー先はこことは全然別の場所で、
ホームディレクトリ/ライブラリ/Developer/XCode/Templates/
である。
とりあえずここに
OpenGL ES Application.xctemplate
をコピーして置く。名前は
fd Application.xctemplat
とする。
この状態でXCodeを開き、プロジェクトの新規追加を行うと、

というふうに反映される。(XCodeの再起動とかも必要ない)


しかしこのままだと、OpenGL ES Application が使えなくなっている。
fd Applicationが上書きしてしまったようだ。
両方を使えるようにする必要がある。どこかにID的なものが記述されているはずで、それを別名に変える必要がある。

fd Application.xctemplate/TemplateInfo.plist
を開く。
OpenGLESで検索。78行目に
com.apple.dt.unit.OpenGLESApplication
という箇所がある。これを適当に
com.apple.dt.unit.fdApplication
とでも書き換える。
すると、OpenGLES Application と fdApplication がそれぞれXCodeで使えるようになる。



ではいよいよテンプレートを記述していく。
すでにあるファイルの中身を書き換えたり、ファイル名を変えたり。
またファイルを新たに追加する。

ファイル名の変更をしたら、TemplateInfo.plist の中で、ファイル名の変更前から変更後に置換する。
 例えば、ViewController を .m から .mm に変えた場合、 viewcontroller.m で検索引っかかったところの拡張子を全部 .mm に変える。これをしないでXCodeで作った場合、 .mm 名のファイルが作られるが、中身が空っぽということになる。

また、ファイルを追加した場合は、(12行目以降の)ファイル名とパスの組の部分に記述を追加。
EAGLView.m

Path
EAGLView.m

さらに、(120行目あたり)ノード配列の部分にも記述を追加
EAGLView.m

これで、新たなファイルがテンプレートに追加されるようになる。
(ソースやヘッダだけでなく、jpgも追加できることを確認。)
(ただし、EAGLView.m らと同じディレクトリに置いていないとコピーできなかった。ディレクトリを掘った場所に置いていたら、コピーができなかった。なぜかはよくわからない)



あと、***AppDelegate.m/h だが、これらはなぜかテンプレートディレクトリ内にファイルが置いていない。
TemplateInfo.plist を良く読むと、この中にAppDelegate 内の関数定義などが一部書いてある。
どうやら、大本となる***AppDelegate.m/h の定義はどこか他から取ってきていて、そのうち一部のメソッドやらをTemplateInfo.plist の記述で上書きしているようだ。

この大本がどこにあるのかはまだ不明。
だが、TemplateInfo.plist 内の***AppDelegateのメソッド定義を全部削除し、他のファイルと同様、ファイル名とパスの定義だけのものに差し替えたら、(もちろんテンプレートディレクトリに***AppDelegate.m/hファイルを置く)ちゃんとそちらの定義が上書きされた。
(ただし、***AppDelegate.mm ファイルを使おうとしたら、***AppDelegate.m を上書きしないので、プロジェクトを作成したときに ***AppDelegate.m と ***AppDelegate.mm の両方が作られてしまった。)



【2011/08/09 18:34 】 | iPhone | 有り難いご意見(0) | トラックバック()
Objective-C とC++の切り離し
開発日記カテゴリーで書くのは久しぶり?

今日は 作成中の試作ゲームを
Objective-C 依存を無くすように書き換えていた。



#import を #include に直す

NSMutableArray を std::vector に直す

UITouch オブジェクトは、必要なメンバだけを抜き出して独自構造体に変える




などなど。
どうしても依存してしまう部分としては、




画像の読み込み部分
CGImageRef image = [UIImage imageNamed:[NSString stringWithFormat:@"%s", fname]].CGImage;


入力受け取り
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
大元はViewControllerクラスから呼び出している

など。

描画部分は、OpenGLなので依存は無いようになっている



拡張子を.mmから.cppに変えられればいいんだろう、というだけでもない。
中で
#include <Foundation/Foundation.h>
とか呼んでたら、結局iOS下でしか動かないわけで。
NS*** とかもちゃんと排除しておくこと。
【2011/08/04 17:44 】 | 開発日記 | 有り難いご意見(0) | トラックバック()
「脳が変わる生き方」
「脳が変わる生き方」
茂木健一郎




著者がいろいろなところで語った内容をまとめて再構成した本。
55のエピソードから成っている。


分野が違うと、思いがけないいろいろな経験がある。だから、
偶有性の海に飛び込め。


「無記」
もっとも大切なことはあえて言わない。
釈迦も、死後の世界がどうなっているかは一切教えなかった。
「東京物語」でも、父親は息子の前では笑っている。しかし友人と酒を飲むと一度だけ刃を見せる。「場末のこんまい医者だったよ」


一番集中している姿では、人に会わせられない。とても人に見せられない。

自分に負荷をかける。
ちょっと無理かなと思うハードルを自分に設定する(120分の問題を30分で解く、とか)。それを繰り返す。負荷をかける、それを達成することが脳の喜び、成長。


地味に深いと思った話がこれ↓。

おじさんおばさんというのは、年齢ではない。無意識を垂れ流すようになったかどうか、である。
何を言うか、を真剣に吟味している人は、いくつになっても青年である。



学生の頃、著者が学校に講演に来て、聴きにいったことがある。
そのときも、一番強く言っていたキーワードは「偶有性」だった。
NHKの「プロフェッショナル」で見るときとは全然ちがって、(民放に出ているときよりも)かなりフランクなしゃべり方だった。
何回も会場が沸いていた。

しかし小林秀雄からツービートの漫才の話まで、何でも出て来るんだなこの人は、と感心した。
仏教の教えの話を下と思ったら、自分の子供に「ペンギン」って名付けようとした友人がいて…だとか、どんだけ話が出て来るのかと思った。
【2011/08/04 14:25 】 | 書評 | 有り難いご意見(0) | トラックバック()
日本を創った12人
「日本を創った12人」
著者は堺屋太一。




今の日本の形をつくった12人の人たち。架空の人物もいれば外国人もいる。神道と仏教両方を信仰する理由を編み出した聖徳太子、二重権力構造を作った頼朝、、、今当たり前だと思ってることも、最初は当たり前じゃなかった、画期的な発想の転換があったんだと気付かされる。


・聖徳太子
・光源氏
・源頼朝
・織田信長
・石田三成
・徳川家康
・石田梅岩
・大久保利通
・渋沢栄一
・マッカーサー
・池田勇人
・松下幸之助

信長と家康は、日本という国をどう治めるかを特に考えていた武将。

信長は、空間的発想でなく時間的発想ができた。稲刈りの時期に戦えなくなるそれまでの半農民の武士でなく、金で雇った100%兵士の戦闘集団ならいつでも戦うことができる。
それでしつこく戦い続けて美濃も盗った。金で雇ったから忠誠心がなく弱い。それでも戦い続けて最終的にはあそこまで勢力を広げた。自由経済を広めたことも含めて、そのへんが信長のすごさ。

家康は、戦国時代の競争世界から、安定社会への転換を押し進めた。鎖国もした。関ヶ原であれだけ功績のあった福島正則を御家取り潰しにした。野心がありすぎたからである。
そうしてできた江戸時代の日本は、200年以上平和で安定していた。人口も世界一(江戸)、識字率も世界一と言われた。国民が勤勉になって、明治以降の発展の素地になったとも言われた。家康は偉かった。

他にも、石田三成は、中間管理職で巨大プロジェクト(=関ヶ原の合戦)を遂行した第一人者だというエピソードが面白い。
【2011/08/04 14:08 】 | 書評 | 有り難いご意見(0) | トラックバック()
ことえりのまめ知識
Mac の日本語入力システム「ことえり」。

由来は源氏物語の「文を書けど、おほどかに言選りをし」というところらしい。(< a href = "http://ja.wikipedia.org/wiki/ことえり">Wikipedia)


ショートカットキーいろいろ
http://inforati.jp/apple/mac-tips-techniques/system-hints/how-to-use-mac-kotoeri-with-keyboard-shortcut.html


カタカナ変換するには、
Ctrl + K

そうだったのか。
Shift + かな
は知ってたけど。



その他、

ひらがな変換
Ctrl + J
カタカナ変換
Ctrl + K
全角英字変換
Ctrl + L
半角カタカナ変換
Ctrl + ;
半角英字変換
Ctrl + :

確定をキャンセル
かな 二回押し

入力した文字をかなに変換
かな 二回押し
入力した文字を英字に変換
英数 二回押し

確定した文字の再変換
かな 二回押し
Ctrl + 2


Ctrl + 2で変換するショートカットキーなんてあったのか!
XCodeで関数一覧を表示しようとしたとき、文字列を選択してるとなぜか使えなかったのは、このショートカットが発動していたせいだったのか。
なるほど。
【2011/07/29 14:38 】 | PC一般 | 有り難いご意見(0) | トラックバック()
SNSのサービスいろいろ
◎Google Plus
ってまだ使えないのかな
http://www.google.com/intl/ja/+/learnmore/
に情報が載ってる。
今はクローズドベータみたいな感じなのかな?
運用が始まったらすぐ連絡してもらえるように登録しておいた。

◎Jaiku
www.jaiku.com/
要するにツイッター。
つぶやくときにアイコンが付けられたり、自分の居場所を登録できたりする。
グループとかも作れたりするし、
ツイッターよりは機能があるっぽいが、いかんせんやってる人が少ない。
日本人俺だけじゃねえの? って思うくらい。
あと、人の名前で検索できない。
自分が招待した人以外と知り合う方法ないんじゃ?


【2011/07/22 15:28 】 | Web系 | 有り難いご意見(0) | トラックバック()
XCode4を使ってみた
XCode4。3とかなり変わっている。
役に立ちそうなショートカットコマンドをここに書いておく。


ビュー系
Cmd + 1 プロジェクト
Cmd + 2 シンボル
Cmd + 3 検索
Cmd + 4 Issue(ビルド時の警告とエラー)
Cmd + 5 デバッグ
Cmd + 6 ブレークポイント一覧
Cmd + 7 ログ
Cmd + 0 ナビゲータ(左のカラム)表示ON/OFF
Shift + Cmd + 2 オーガナイザ表示
Shift + Cmd + Y デバッグエリア表示


ファイル移動系
Ctrl + 1 関連するアイテム
Ctrl + 2 カーソル位置の履歴(戻る)
Ctrl + Cmd + 2 カーソル位置の履歴(進む)  ←入れ替えた
Ctrl + 3 ファイル履歴(戻る)  ←入れ替えた
Ctrl + Cmd + 3 ファイル履歴(進む)
Ctrl + 4 プロジェクトディレクトリ以下表示
Ctrl + 5 グループのファイル一覧
Ctrl + 6 ファイル内の関数一覧
Ctrl + 7 問題の表示(?)


ソース系
Cmd + クリック 定義にジャンプ
Cmd + Ctrl + D 定義にジャンプ
Cmd + ] 右シフト
Cmd + [ 左シフト
Opt + Cmd + ← 折り畳む
Opt + Cmd + → 開く
Opt + クリック クイックヘルプ
Ctrl + Cmd + ? クイックヘルプ
Opt + Cmd + ? APIリファレンス
Ctrl + Opt + Cmd + / ドキュメント検索


デバッグ系
Cmd + B ビルド
Cmd + ' 次のビルドエラー位置にジャンプ
Cmd + R 実行
Cmd + . 中止
Ctrl + Cmd + Y 一時停止
F6 ステップオーバー
F7 ステップイン
F8 ステップアウト
Cmd + \ ブレークポイント追加
Cmd + Y ブレークポイント有効化




【2011/07/21 22:25 】 | iPhone | 有り難いご意見(0) | トラックバック()
脳にいいことだけをやりなさい!
「脳にいいことだけをやりなさい」
マーシー・シャイモフ
訳は茂木健一郎




自己啓発の部類の本。
【2011/07/21 15:44 】 | 書評 | 有り難いご意見(0) | トラックバック()
php習い初め
Wikipediaの説明

PHP = PHP Hypertext Preprocessor
の再起的な略語だとか。
だったら先頭の文字は何でも良かったのでは?
と思ったら、 Personal Home Page の頭文字とかけてあるんだって。

処理系本体はC言語で書かれてる。

サーバサイド・スクリプト言語。(←→クライアントサイド・スクリプト。JavaScriptとか)
サーバサイド・スクリプトとは、スクリプトの解釈をサーバ側で行う。
クライアントに送信されるのは完全なHTML。


確かに、自分で試したphpで見てもそうなってた。
書いたPHP。PHPコードが埋め込まれてる。


それをブラウザで開いて、ソースを表示してみた。

たしかに、phpタグで囲われた部分がなくなっている。


<? php
この囲われた部分がphpになる
?>
拡張子は.htmlでなく.phpにすること!


=============
以下、C言語を知ってる忙しい人向けのPHP文法駆け足で。

参考にしたページ
【2011/07/21 11:02 】 | Web系 | 有り難いご意見(0) | トラックバック()
<<前ページ | ホーム | 次ページ>>