× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 |
iOSの場合
provisioningの共有 方法1. 自分(certificateを登録している人)から、相手(certificateを登録していない人)に共有する 1.1 キーチェーンアクセスから秘密鍵を取り出す 1.1.1 キー一覧から、 iPhone Developer: your nameを選択 1.1.2 右クリックし、「(iPhone Developer: your name)を書き出す」を選択 1.1.3 p12ファイルができる 1.2 相手のUIDをプロビジョニングに登録するhttps://developer.apple.com/account/ios/certificate/ 1.3 秘密鍵(.p12)と、プロビジョニングを相手に渡す 1.4 相手をiosDevチームに登録する 1.4.1 https://developer.apple.com/account/#/overview/ から、Peopleタブを選択し、相手を招待 1.4.2 ここで、開発者アカウントが個人だと招待が不可。相手に自分と同じアカウントで入ってもらうしかなくなる 1.5 相手がXcodeでチームアカウントに入る 1.6 相手がプロビジョニングをセットし、ビルド。これで通る 1.7 課金用の作業準備 1.7.1 相手に新しいメールアカウントを用意しておいてもらう 1.7.2 sanboxテスターに登録する。iTunesの内部ユーザではない! 方法2. 相手の情報をプロビジョニングに含める(多分) 2.1 相手から、csrをもらう 2.2 プロビジョニングに、もらったcsrから作った証明書を含め、書き出す 2.3 プロビジョニングを相手に渡す。 2.4 相手をiosDevチームに登録する 2.5 相手がXcodeでチームアカウントに入る 2.6 相手がプロビジョニングをセットし、ビルド。これで通る Androidの場合 https://play.google.com/apps/publish/ 1. 相手にアクセス権限を付与 1.1 Google play developer Console →設定→ユーザアカウントと権限→新しいユーザを招待 1.2 権限は「プロダクトリーダー」。(apk登録も可能にする場合) 2. 相手にテストアカウントを付与 2.1 Google play developer Console →設定→テスターの管理→リストを選択(なければ追加)→編集→追加→保存 Firebaseの場合 1.1 Overview横の設定→権限をクリック 1.2 権限: プロジェクト→編集者 その他→Firebaseルールシステム PR |
http://www.ipa.go.jp/security/awareness/vendor/programming/index.html
|
quaternion &quaternion::SeTEuler(float yaw, float pitch, float roll){
float cosY = cosf(yaw / 2.f); float sinY = sinf(yaw / 2.f); float cosP = cosf(pitch / 2.f); float sinP = sinf(pitch / 2.f); float cosR = cosf(roll / 2.f); float sinR = sinf(roll / 2.f); SetValues( cosR * sinP * cosY + sinR * cosP * sinY, cosR * cosP * sinY - sinR * sinP * cosY, sinR * cosP * cosY - cosR * sinP * sinY, cosR * cosP * cosY + sinR * sinP * sinY ); return *this; } |
GameProgrammingGems
空間内の三角形同士の衝突判定 1.一方の三角形が載っている平面の式を求める ax + by + cz + d = 0 (a,b,c)は平面の法線。(a,b,c)を求めたら、平面上の一点(x0,y0,z0)を式に代入して d を求める 2.もう一方の三角形がその平面と衝突しているか調べる 2点A(x0,y0,z0),B(x1,y1,z1)があるとき、媒介変数tを用いて a(x0*t + x1(1-t)) + b(y0*t + y1(1-t)) + c(z0*t + z1(1-t)) + d = 0 となり、これを解いて 0<= t <= 1なら衝突している 3.三角形を平面に投影する 4.三角形の頂点が、もう一方の三角形の内部にあるかどうか調べる 三角形の1辺に対して、頂点が重心と同じ側にあれば内側。これが3辺全部にあてはまれば内部にあることになる 両方の三角形について行う 一つでも当てはまる頂点があれば、衝突している |
GoogleAnalyticsの使い方
カテゴリー アクション ラベル 値 ◯グラフを作る時 値別のグラフは作れない 「グループ分け」の項目として、「イベントの値」は使えない。(「イベントカテゴリ」「イベントアクション」「イベントラベル」は使える) だから カテゴリ :パワーアップ アクション:アイテム1 ラベル :獲得時のプレイヤーレベル 値 :レベル値 というような形のイベントでは、求めるグラフは作れない カテゴリ :パワーアップ アクション:アイテム1-プレイヤーレベル ラベル :レベル値 値 :(適当な値) で、ラベルでグルーピングしてイベント数のグラフを作ることになる ◯セグメントを作る方法 参考ページ この画面から作る こうなる |
毎日いろんな広告の情報を取ってくるのが面倒くさい。
というわけで自動化した。 まず、wgetとかで情報を取得するところからやろうとした。 が、当然認証とかしないと取って来れない。ちょいと面倒くさい。 APIとして用意されてる訳でもない。 htmlを解析する…というのはありえないとして。 csvを取ってくるのが常套だろう。 が、そこはめんどいので、とりあえずcsvをダウンロードするのは手動でいったん妥協。 Rubyスクリプトで、csvを解析して必要な情報だけを取り出す部分を作成する。 RubyにはCSVクラスがあり、若干の癖はあるものの、CSVの読み込み、書き込み、アクセスなどいろいろ便利にやってくれる。 参考 CSVファイルの中身を一気に全部読み込むには
とする。tableはCSV::Tableクラスのインスタンスになり、超便利にデータにアクセスできる。 ただし日本語が取り込めないので、日本人としては使いどころは限定される。 CSVファイルの中身を一行ずつ読み込むには
を使う。rowは配列になる。 エンコードを指定することもできる。 第2に引数に指定。
とすると、Shift_JISのCSVファイルを読み込み、UTF-8に変換して扱うことができる。便利。 ファイル自体の文字コードをUTF-8に変換する場合は
とする。(-w がUTF-8に変換するオプション。 -s だとShift_JIS、-e だとEUC-JPになる) 出力は
となる。 ◯コツ 入力ファイル名はスクリプトの第1引数で指定 出力はファイル名指定でもいいが、そのまま標準出力させたほうが扱いやすいともいえる。 ただ、2重配列をそのまま p data という感じで出力してもcsvファイル形式にはならないので、おとなしく引数で指定しよう ([["2015/07/01", "1000"], ["2015/07/02", "2000"], ... のように、角カッコやダブルクォートがついてしまう) ◯ディレクトリ 広告ごとに各ディレクトリを作成。 中に、同名のスクリプトを置いておく。
各ディレクトリに入って、各社管理画面からダウンロードしてきたcsvを使えば、1社ずつデータを抽出できる。 ◯全部まとめて さて、全社まとめて処理したい。 先ほど作った各社のparse.rbを呼び出す、統括スクリプトとでも呼ぶべきスクリプトを作る。 スクリプトファイル名は同じにしてあるので、topディレクトリで #{ad}/parse.rb を実行すればいい。 ダウンロードしてきたcsvファイルの指定だが、 各社思い思いの名前になっている。 (nendだと、nend_m_20150801_20150804.csv 、imobileだと 日別レポート_20150801-20150804.csv、 admobだとadmob-report.csv など) ダウンロードして、毎回毎回ファイル名を変更するのはごめんだ。 このファイル名のまま実行できるようにしたい。 特定のディレクトリにそのファイル1つだけを入れる、とかすれば
とかでできるが、毎回全csvファイルを別ディレクトリに保存するのもめんどい。 dataディレクトリは1つで、ファイル名を検索するのがよい。 というわけで、
というふうにした。 ls -1 オプションは、ファイルを1行ずつ表示。 ls -r オプションは、ファイル名を降順に表示。最新の日付の入ったファイル名から取得するイメージ。(YYYYMMDDじゃなかったらダメになるものもあるきがするが) gsubは、2行目以降を削除している。 結果出力は #{ad}/output.csv のようにやはり名前を統一しておく。 csvに全部まとめた最終出力を行い、 Numbersで自動で開く。
で、ダブルクリックで実行できるようにするため、 シェルスクリプトからこのRubyスクリプトを呼び出す。
このシェルスクリプトを右クリックし、「このアプリケーションで開く」 で「ターミナル」を指定 これで、Finderでダブルクリックで実行できるようになった。 キモは cd `dirname $0` で、カレントをファイルの場所に移動させたい。 これが必要なので、Rubyスクリプトをダブルクリック実行させてもうまくいかないのだ。 |
| ホーム |
|