サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
掃除・片付け
mswar.hatenablog.com
プログラミング全般 Effective C++ 原著第3版 ISBN:4894714515 新訂版-More-Effective-C ISBN:4894714760 Effective STL―STLを効果的に使いこなす50の鉄則 ISBN:4894714108 C++ Coding Standards―101のルール… ISBN:4894716860 達人プログラマー―システム開発の職人から名匠への道 ISBN:4894712741 リファクタリング―プログラムの体質改善テクニック ISBN:4894712288 パターン指向リファクタリング入門〜設計を改善する27の作法 ISBN:4822282384 C言語による最新アルゴリズム事典 ISBN:4874084141 珠玉のプログラミング―本質を見抜いたアルゴリズムとデータ構造 ISBN:4894712369 C言語逆引き大全 500の
カジュアル異業種交流会FutabaにてLayarに関するオープンセミナーやるってんで行ってきた〜 (第9回 Hot on Tech - FUTABA★HIROMI - カジュアル異業種交流会-) とりあえず、メモった内容。。。 場所:かでる2・7 講演者:システム・ケイ ハルコム スコット さん マイクロネット 酒井 さん 北大 山本強 教授 現状対応機種:HTC(docomo)の機種はワールドワイド ・SumsungGalaxy ・T-mobileG1 ・iPhone 3GS ・HTC Magic&Hero 日本のコンテンツデベロッパは現状システムケイのみ 欧米では他にも多数のコンテンツデベロッパが存在する システムケイが作成したコンテンツは現状40個ほど 現状エンコーディングの問題あり(オランダ側はすぐ対応するよ〜って言ってる) サロン検索などはリクルートのAPIからデータ拾ったりして
http://www.feedly.com/ feedlyとは? ・Googleリーダーと連動したRSSフィードクライアント(FireFoxアドオン、Chrome向けも開発中) ・Googleリーダーの未読/既読と連動してるので、こちらで読んだRSSフィードは当然既読化される。 feedryのここがすげぇ! ・普通は多量のフィード(4桁以上だと特に)が溜まると重たい、がfeedlyだと驚くほどさくさく読み込める。 ・フィードに対する評価システムがあり、評価が高いフィード順に見やすいレイアウトにしてくれたりする。 ・新聞を読むように、特集記事、人気記事、見出し記事など色々なレイアウトでRSSフィードを見せてくれるので、単調なリストだけのRSSリーダーよりも読みやすいし、人気の注目記事も目に入りやすい。 ・twitterと連動していて、RSSフィードに対するコメント数やRT内容などを連動して読
なんてもののデモを作ってみた。 元々は海外のDevCampとやらで創られたiPhone上で動くARのサンプルデモってのがあって、ここ3日位、仕事終えてからの2〜3時間でちまちま触ってみてた。 google code iPhoneARKit サンプルを触った感じ、かんたんにまとめ(なお、現時点での評価。この先updateするみたいよ) ・カメラビュー上にUIKit(UILavel)の表示が可能(GLは非対応) ・コンパスと加速度センサを使って、向いてる方向を求める ・Geoタグ表示(緯度、経度を持ったGeoタグの表示位置を予め計算しといて、向いてる方向に合わせて表示する) ・Geoタグ(地名ラベル)位置や、自分の現在地は決めうち (直接applicationDidFinishLaunchingで緯度/経度を埋め込んでる) ・3.0、2.X SDKにて開発可能(ただ2.Xの場合コンパス(hea
加速度センサをジョイスティックみたいな方向キー替わりに使ってたりする場合、X方向は加速度Xをみていれば何とかなると思うが、 Y方向は加速度Yとか加速度Zだけみている方式だと、多分いい感じに動いてくれないことと思う。 (45度固定みたいな話なら何とかなるんだけど、ユーザーによってはプレイする角度を変更したいと言われると思う) そんな時、役に立つのが atan2(x, y) という関数! これは、座標値(x、y)から角度(ラジアン角[−π〜π] -> -180〜180度)を求める事が出来る。 これを使って、Y方向角度 = atan2(加速度Z、加速度Y) を求め、 さらに、Y方向キー値 = sin(Y方向角度 + お好きな設定角度) という風にすると、 好きな設定角度を基準(0)として(-1.0〜0〜1.0)みたいになるような値を求められる。 これを使うと、iPhoneをひっくり返していようが
objファイルからOpenGLで利用できるデータ配列形式のヘッダーファイル https://people.scs.fsu.edu/~burkardt/pl_src/obj2opengl/obj2opengl.html これと、公式のサンプル「GL Gravity」があれば、さっくりとモデル表示くらいできそう。 既にスキンアニメまで対応してる、はちゅねもあります。 http://d.hatena.ne.jp/nakamura001/20081215/1229318841 (01-28追記)と思ったけど、obj2openglに関しては1フェイス3点ずつなデータにしか対応してないみたいで、triangle化とかstrip化など、速度考慮した実用的なデータにする為にはもうちょっと考えんとだめぽ。 (02-04追記)さらに、obj(WaveFrontフォーマット)ファイル読み込んで、テクスチャやマテ
元サイズ512x512のpngイメージは138KB(これはpng圧縮かかってるサイズ) これをGL(UIImageとかでも多分一緒)でテクスチャロードした場合必要なメモリサイズ(グラフィックメモリ)は以下のようになる 512 x 512 x 4(RGBA8888) = 1024KB = 1MB 512 x 512 x 2(RGBA1555) = 512KB 512 x 512 x PVRTC(4bp) = 132KB 512 x 512 x PVRTC(2bp) = 68KB (*PVRTCはイメージによって圧縮率変わります) ただ、写真みたいなイメージならいいが、線画的なイメージだと圧縮時に元絵と結構かけ離れてしまう事があるので注意。 ばりばり3Dなリアル系ゲームなら使えるかもしれないけど。2D絵的なイメージ(ラインのエッジがはっきりしたもの)用途で圧縮テクスチャ使うのは厳しいと言わざる
要は、手順を記録したマクロ再生とかバッチ処理みたいなものなんだが、 グラフィカルに、いろんなワークフロー(バッチ処理)を作れてしまうとこがすごい 写真をMacBook内蔵カメラで撮る ↓ イメージを変換かける ↓ イメージを適当なコピー先に移動 ↓ xcodeでビルド ↓ ビルド結果を見て、CVSにUP みたいなワークフロー処理をほぼ、グラフィカルなコマンドチップをドラッグ&ドロップするだけで作れてしまう。すげーーー。(まぁxcodeに追加するとかが無いんで、この例はインチキだけど) コマンドチップ(部品)自体はAppleスクリプトで自作して追加もできるみたい 基本的な使い方 http://www.openspc2.org/reibun/Automator/ perlとか、UNIXシェルスクリプトなんかからも呼び出せるみたいでほんと素敵すぎる。 http://d.hatena.ne.jp/
OpenGL入門サイト系(GLESと若干API関数名など違うので注意。GL概念の把握に) http://wiki.livedoor.jp/mikk_ni3_92/ http://www.wakayama-u.ac.jp/~tokoi/opengl/libglut.html OpenGL/ESのリファレンス系 http://g-p-k.no-ip.org/brew/index.php?im_id=GL http://www.khronos.org/opengles/documentation/opengles1_0/html/index.html iPhoneでのOpenGLでの参考サイト http://d.hatena.ne.jp/nakamura001/archive http://idlysphere.blog66.fc2.com/category2-3.html あとは、2Dとかなら
http://d.hatena.ne.jp/miurror/20081213/1229101376#c ↑を参考に自前でVIEWを作成し、XIBを使わなくてすむようにしてみた。 ただ上の方法だけだと、XIBファイル自体のロードが切れるわけではないんでエリカ本を参考に XIBファイル自体を削除&plistの項目(Main nib file base Name)もカットするとXIBを読み込まない作りにできる。 さらにロードしない場合、XIBで設定してたはずのUIApplicationのdelegate先が設定されなくなるので↓のようにmain.mで設定する必要あり。(でないとapplicationDidFinishLaunching呼ばれなくなっちゃう) UIApplicationMain(argc, argv, nil, nil); ↓ delegateする@interface名を設定 UI
てっきりできないものと思い込んでたけど、OES拡張使うとできるみたい。 //減算合成 glBlendEquationOES( GL_FUNC_REVERSE_SUBTRACT_OES ); glBlendFunc(GL_SRC_ALPHA, GL_ONE); //減算以外のアルファブレンド合成 //↓GL_FUNC_REVERSE_SUBTRACT_OES 使った場合これで戻す glBlendEquationOES( GL_FUNC_ADD_OES ); //通常のアルファ合成 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); //加算合成 glBlendFunc(GL_SRC_ALPHA, GL_ONE); //乗算合成 glBlendFunc(GL_ZERO, GL_SRC_COLOR); //反転合成 glBlendFunc(GL_
加速度センサを使うには、UIAccelerometerDelegateをdelegateしたいオブジェクト(controlerとかviewとか)にプロトコルを追加。具体的には // UIViewにUIAccelerometerDelegateプロトコルを追加 @interface EAGLView : UIView <UIAccelerometerDelegate> { とか // アプリクラスにUIAccelerometerDelegateプロトコルを追加 @interface MyAppDelegate : NSObject <UIApplicationDelegate,UIAccelerometerDelegate> { とか こんな感じで追加したいトコに記述(ViewControllerとかのがいいかも) これで初期化時に以下の記述を追加してやれば、加速度センサイベント起きるように
iPhone実機でアプリ動かない人向け情報 - mswar的電網日誌 ↑とかで既に一通り登録してあって、一台目の実機で開発できてること前提。 2台目以降登録する場合、一台目ほど面倒ではない。 1、Program PortalのDeviceにて、右上AddDeviceのボタンから、 実機を登録する 登録には一台目と同様、オーガナイザにて表示される iPhone実機のNameと、Identifierが必要 2、Provisioning Profilesは共有可能なので、 既に使用しているProvisioning ProfilesをEditする。 Deviceの項目にさっき登録した実機名のチェックボックスが 増えてるはず、それにチェックを入れる 3、Provisioning Profilesファイルをダウンロードして、 実機をつなげてオーガナイザに登録 (これで実機側にProvisioning
まずは公式のObjectiveCのメモリ管理を読むべきである。(読まないと始まらない) http://developer.apple.com/jp/documentation/cocoa/Conceptual/ObjectiveC/4objc_runtime_overview/chapter_8_section_2.html そして、この辺が具体的なサンプルコードもあってよくまとまってる http://wwwa.dcns.ne.jp/~nito/CocoaClub/article01.html http://wwwa.dcns.ne.jp/~nito/CocoaClub/article02.html http://wwwa.dcns.ne.jp/~nito/CocoaClub/article03.html http://wwwa.dcns.ne.jp/~nito/CocoaClub/art
UIImageでイメージロードしてたら、releaseしてるにも関わらず、メモリが一向に減らない・・・。 UIImageのクラスリファレンス読むとわかるんだが、どうやら一度読んだイメージをキャッシュしてくれちゃってるらしい。(限られたリソースしか使わないなら確かに便利だが) 内部的にはimageNamedに渡したファイル名と、生成されたイメージオブジェクトのポインタを対で覚えてるっぽい。 そのせいで、一度releaseしたのと同名のイメージを再度ロードした場合、そのreleaseしたはずのオブジェクトを返してくるせいか、それにさわるとBAD_ACCESS例外で止まる。 最初は、なんでこんな例外がスルーされるのか分からず、小一時間悩んでしまった・・・。 んで↓のように解決。 × UIImage* imageTmp = [UIImage imageNamed:@"imageName1.png"
公式のサンプルとか、ネットに転がってるサンプルなど、 他で作られたプロジェクトファイルでビルドできない場合がある。 大概はこういった場合 1、xcode閉じた状態でbuildファイル、 buildフォルダを消去 (単なるクリーンじゃ駄目) 2、プロジェクト設定のコード署名に、自分のプロファイルを設定 3、resourcesのplistで、BundleIdentifierに 自分のプロファイルで設定したものを設定 この3点を気をつけてれば、ビルド&転送実行でつまづく事は無い。 この辺りに関しては、以前書いたエントリをどうぞ iPhone実機でアプリ動かない人向け情報 - mswar的電網日誌 で、それでもビルドに失敗する場合(「CodeSign Error〜〜〜」とか言われる) プロジェクトファイル自体に、以前作成した人間の情報が残っている事がある。 (ファイルを右クリックで、パッケージ内容
clangでObjective-Cプログラムを静的解析(メモリリークしそうなコード検出とか) http://kirika.la.coocan.jp/acts/cocoastudy/200807/clang-static-analyzer.html iPhone開発向けユニットテスト フレームワーク「iUnitTest」 http://www.moongift.jp/2009/02/iunittest/ http://github.com/katsuyoshi/iunittest/tree/master この辺でチェック&テストして、バグスッキリ。
デバッグしてると時たま↓みたいなメッセージがでて、強制的にデバッグ終了させられる事がある Program exited with status value:101. これは、どうもメモリを確保できなくなった場合に起こるようだ。 iPhone / iPod touch には、仮想メモリ的なシステムも一応ある。(メモリを一時的にFLASH領域へ退避する感じの) 重たいアプリを使っていて急に動きが遅くなりだしたら、仮想メモリを使いだしてるので注意すべきである。(とりあえずセーブして終了して、メモリクリーンするとか) (03-01:訂正 iPhoneではストレージへ退避する形の仮想メモリはないようだ。結局実メモリを仮想メモリとして仮に使用しているだけであって、あんまり意味が無い。) そこをさらに超えると、アプリが強制終了してHOMEに戻される。運が悪いとそのままフリーズしたりする。(まぁ、この辺は
経済学は「科学」であるか、「非科学」であるか、という問い。近年よく耳にする機会も多い気がします。 Wikipedia:経済学 - 科学性と非科学性(脱科学性) http://goo.gl/UCKWWz 【駄文注意報】池田信夫blog:経済学は科学なのか http://ikedanobuo.livedoor.biz/archives/51875486.html 【駄文注意報2】S3 別館:経済学が科学ではない、たった1つの根本的な理由 http://liaoyuan.hatenablog.jp/entry/2013/10/12/013918 経済の話題をする前提として、経済学は科学ではないので、現実に信じる・用いるのに値しないというような方々がいます。 そういった方々の論拠としまして、よくあるのが下記の二点、 経済学は、「人の振るまい」という複雑性が高すぎるものを扱っており、古典力学のような
google code の海をさまよってたら色々発見。 3Dゲームエンジン「SIO2」(ビバ!MITライセンス) http://d.hatena.ne.jp/nakamura001/20081029/1225287233 http://code.google.com/p/sio2/ SIO2公式のチュートリアル動画 ↑をページ翻訳 3Dゲームエンジン「oolongengine」(これもまたMITライセンス)VFP叩くためのmathライブラリもあったり(どうもBullet物理エンジンの中の人が作ってるみたい) http://code.google.com/p/oolongengine/ 3D物理エンジン「Bullet SDK」(これはiPhoneじゃないけど、これのiPhone向け実装が↑二つのエンジンで使われている) BlenderやMAYAからコリジョンデータ作成可能 http://co
・アプリ層 ・高レベルライブラリ層(ハード非依存) ・低レベルライブラリ層(ハード依存、API系のラッパーなど) みたいな3層に分けて、低レベル(ハード依存)部分のみ、各ハード向けに書き換えればいいとかいうのが、とりあえずシンプルか。 objective-Cだと、Cの構文はほぼそのまま使用できる上に(.mファイル上でも)、.cファイル自体をそのままプロジェクトに組み込んで、コンパイルも可能。当然、objectiveC側(.mファイル)から呼び出しも可能だし、逆にobjectiveCで書かれた関数を、c側で呼び出す事も可能。 (要はCで書かれているライブラリやパーツなら、さっくりcocoa-toutchプロジェクトに組み込める) またobjectiveC++ (.mm)を使うなら、C++構文とobjeciveC構文の混在が可能。 objective-C使うのは低レベルのみにしといて、上位層は
Rolandとかクレヨンフィジックスで使用されてるらしいBox2D物理エンジン。これで色々といじり倒せますな。 紹介URL http://gihyo.jp/dev/feature/01/box2d/0001 http://tinyurl.com/d3rt2q ソース http://box2d.svn.sourceforge.net/viewvc/box2d/ ライセンスはzlibライセンスらしいので、気兼ねなく使えますな。 とりあえず、落としてきて、ビルドすればさっくりサンプル集動かせるけど。そのままだとビルド通らないので、そこだけ注意。(既に最新リポジトリでは修正されてました。。。早速↓はいらん子。) iPhoneTest.mmの上の方(インクルードファイル群の下あたり)に↓追加すると、とりあえずビルド通ります。(精度的に問題とかありそうだが、そこは適当に修正よろしく) #define
このページを最初にブックマークしてみませんか?
『mswar's はてなブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く