読者です 読者をやめる 読者になる 読者になる

@neiraza

2匹の怪獣が寝た後にプログラマーしてる、最近はサイバーエージェントでゼミ長もしてる僕のネタ帳

攻略!お風呂をピカピカに掃除する

風呂掃除

祝日である今日、子供たちを近所に住んでいる妻の実家に預け、夫婦で思い思いの場所を掃除することにした(自然発生)。

僕は前々からやってみたかった(悲願)、お風呂ピカピカ構想に着手することにした。
かれこれ、今のお風呂ユニットを入れてから8年。これが失敗したら、お風呂のユニット毎かえてやろう。

用意するもの

f:id:redogu:20160922102825j:plain

cf. 愛用のバスクロスとは?

毎年、1−2枚は購入しているやつで、こいつと水だけで毎日洗っているので大抵の汚れは問題ない。 aisen バスクロス トレピカ グリーン BF823

aisen バスクロス トレピカ グリーン BF823

aisen バスクロス トレピカ グリーン BF823

ただし、今回は午前中の1時間ほどしか使いたくないので、次の週末も含めて工程を数回に分けることにした。

攻略 初日

排水溝

重曹をふりまき、お酢をたらしシュワシュワさせる。 いまいちコツがつかめず、お酢がドボドボと排水溝に流れていった。 重曹もシュワシュワしてるけど、この酸性の存在は役に立ってんのかな。

浴槽

酸性からのアルカリ性で撃退がかっこいいと思い、重曹で全体を洗った後よく洗い流してからアルカリ性でトドメを刺すことにした。 酸性とかアルカリ性とか勉強しないと分からんな。

重曹が残りわずかだったのでダーッと水にいれて溶かしてゴシゴシ、その後、クエン酸も同様にゴシゴシ。

いつもより、ピカピカしている気がする。 物足りないので、今夜はお風呂の湯を捨てずに、重曹をぶっこんで色んなものを漬け置きしてみよう。

と思ったら重曹を使い切ってしまったので、冷蔵庫にあった重曹を奪取した。今夜が楽しみ。

水垢があんましないので、浸けるパターンではなく、クエン酸を水で溶かしで磨いてみた。 もともと、キレイなので違いが分からん。

蛇口

最近、顔が映らなくなってきたので、クエン酸を水で溶かしゴシゴシした。 顔が映るようになったので満足した。

天井

あまった、クエン酸の水で天井もまんべんなくゴシゴシ。

感想

次回は、ゴムパッキンとかをハイター&片栗粉でペタペタしてやっつけたい。

Cycript入門 〜アプリをハックしてデバッグしてみよう〜

iOS

はじめに

この記事は、 僕が主宰する スマートデバイス向けアプリのマネタイズ研究と実践開発』ゼミの 活動記録です。

ゼミについて

株式会社サイバーエージェント アドテク本部 アドテクスタジオ内の活動です。
詳しくは、ゼミ『スマートデバイス向けアプリのマネタイズ研究と実践開発』まとめをご参照ください。

用意するもの

  • ジェイルブレイク済みのiOS端末
  • Cydiaがインストールされている

下記のドキュメントはCydiaを前提としています。

目的

Cycriptは、既存のアプリにコードを突っ込むことができるので、リリース後のアプリに対してもデバックに使えるかなと思っています。
このツールは、Objective-CJavaScriptのハイブリッドのツールらしく、ターミナルにObjective-Cのコードを入力するだけでそのアプリ内で実行することができるらしい。

目標

参加者全員が 適当なアプリのボタンやラベルの内容を外から変更する を達成する

Cycript入門

以下の操作について、ジェイルブレイク前提であり、自己責任でお願いします。

参考になったサイト

主なオペレーション

  • Cydiaを使う
  • Cycriptをインストールする
  • OpenSSHをインストールする
  • iPhoneMacからSSHでログインする
  • Cycriptでアプリを操作する
  • Process Injection
  • アプリの画面構成をハックする
  • ボタンの色やテキストをハックする
  • ボタンイベントをハックする

Cydiaを使う

CycriptやOpenSSHをインストールするのに使用します。僕の脱獄方法の場合です。 IMG_0001.PNG

Cycriptをインストールする

今回のお題でもあるこいつをインスールします。 IMG_0016.PNG

OpenSSHをインストールする

ついでにOpenSSHもインスールします。 IMG_0004.PNG

iPhoneSSHでログインする

自分のMacのターミナルから、iPhoneIPアドレスを指定してsshログインします。初期パスワードは、alpine です。

$ ssh root@[IPアドレス]
root@IPアドレス password:[alpine]
root#

Cycriptでアプリを操作する

操作したいアプリのプロセスをチェックし、cycriptで指定して起動する。
下記では、UBER を題材にすすめます。

重要 下記作業前にUBERをインストール&起動しておきます。

起動直後の画面はこんな感じ。 IMG_0011.PNG

Process Injection

cycript -pを使って、プロセスにアタッチします。

root# ps aux | grep UberClient
mobile 1660 0.0 4.4 815456 90912 ?? Us 6:49PM 0:02.64 /var/containers/Bundle/Application/E3330-CBE5-40AC-8365-66E075C6C04C/UberClient.app/UberClient
root# cycript -p 1660
cy#

アプリの画面構成をハックする

cy# UIApp.keyWindow.recursiveDescription()
@"....現在表示中の画面構成を再帰的に表示されます、結果はキャプチャのみで"

ダーッとでます スクリーンショット 2016-09-20 23.17.40.png

中央の UBER 画像をハックする

こんな感じで、オブジェクトを取得するには、画面構成からIDを探してインスタンスを生成したります。

cy# var imageView = new Instance(0x151101f30);
cy# var droidUrl = [NSURL URLWithString:@"https://andropp.jp/webapp/wp-content/uploads/2014/11/android-wallpaper5_2560x1600_1.jpg"];
cy# var droidData = [NSData dataWithContentsOfURL:droidUrl];
cy# var droidImage = [UIImage imageWithData:droidData];
cy# imageView.image = droidImage;


UBERイコン画像が消えて、droidくんになってもーたw

IMG_0012.PNG

登録ボタンをハックする

var signupButton = new Instance(0x14fe47730);
[signupButton setTitle:@"hogeeee" forState:UIControlStateNormal];


と入力すると 登録 という文字が.... IMG_0013.PNG ....hogeeee になってるw

ちなみに、登録ボタンを端末に触らずに押しちゃうには....

cy# [signupButton sendActionsForControlEvents:UIControlEventTouchUpInside];

これで、起動! IMG_0016.PNG

まとめ

iOS端末をジェイルブレイクしないといけないので、少し敷居が高い。
Cycriptを使ったハックは、既存アプリの研究を目的とした活用に向いてそう。
また、アプリ側にバックドアを意識した仕掛けを用意しておけば、強力なデバッグができそう(そんな仕掛け、怖くてアレだけど)。

iOS10でIDFAを取得できるか!?

iOS iOS10 広告

オプトアウトした端末のIDFAは取得できない?

iOS10 アップデート以降、オプトアウトした端末のIDFAは取得できないといった情報が、巷でまことしかやに囁かれている。 僕自身の iOS10 に端末をアップデートし、検証を試みた。

検証しみてる

iOS9 まではユーザが自身の端末上でオプトアウトしても、IDFAの取得自体は可能だった。 しかし、 iOS10 アップデート(2016年9月14日 日本時間2時)以降、有効なIDFAが取得できない。 もう少し詳細に書くと、 文字列は取得できるが、一意のユーザーを表すものではない。 実際に、オプトアウトした後に取得した値は、00000000-0000-0000-0000-000000000000 というゼロパディングされた文字列が返ってきてた。

cf. ASIdentifierManager Overview 3.
Get the advertising identifier using the advertisingIdentifier property (note that when ad tracking is limited, the value of the advertising identifier is 00000000-0000-0000-0000-000000000000).

https://developer.apple.com/reference/adsupport/asidentifiermanager

iOS端末でオプトアウトするための方法

[設定] - [プライバシー] - [広告] - 「追跡型広告を制限」 をオンにする

まとめ

大抵の広告事業者は端末側でIDFAとオプトアウトフラグの両方を取得して、広告配信サーバへ投げているはず。 CV計測目的の場合、広告配信という目的の延長線上としてオプトアウトフラグの状態に関わらずIDFAを使用していると思われる。 たぶん、問題の焦点はこの世の中でオプトアウトしているユーザが何人いるのかによって、影響度合いが大きく変わるところだと思う。

サンフランシスコビギナーでも安心!? ~旅行準備~

WWDC2016 AltConf2016 travel

CA ProFit-X(CyberAgent,Inc.)というSSP事業でエンジニアをやっている @neiraza です。

初めてのサンフランシスコ!
AltConf(2016/06/13 Mon - 2016/06/16 Thu)に参加してきました!! f:id:redogu:20160617083214j:plain

WWDC2016の抽選に外れ途方にくれていましたが、なんとかお祭りの片隅に参加してきました。 僕をサンフランシスコに送り出してくれた会社とチームに感謝です。

AltConfの会場は、WWDCのメイン会場であるモスコーニの隣にあるAMCという映画館のスクリーンを借りて行われました。 f:id:redogu:20160617090732p:plain

英語も怪しく、日常生活の常識に疎い僕が初めてのサンフランシスコ初めての海外カンファレンス参加について、下記数回に分けて記事を書いてみようと思います。

  • サンフランシスコビギナーでも安心!? ~旅行準備~
  • サンフランシスコビギナーでも安心!? ~観光~
  • AltConfって何? WWDCとどう違うの?

僕の旅行レベルは初めてのおつかいレベル

国内旅行であれば年に5,6回は行きますが、海外旅行は7年ぶりくらいです。 旅行の用意とか、めんどくて前日までしない派です。

しかし、今回は観光メインではないのでそれなりに準備したので、自分なりに良かった事を紹介しようと思います。
慣れている人には当たり前なんでしょうけど。

圧縮袋が最強すぎる

初めて旅行で使ったのですが、最強です。
今回は4泊したので1日1セット毎に圧縮袋につめて小さくしただけで、4日分がすげー小さく!
しかも、1セット空けたら前日着た分を圧縮袋につめてしまえば、帰りの準備も完璧です!
僕はもともと荷物が少ないのですが、機内持ち込み荷物だけで足りました。

Uberが便利すぎる

現地ではバス&徒歩を駆使していましたが、どうしても車が必要な場面で、簡単に呼び出せるUberは便利です。
初回登録時にカード登録をしてしまうので、使い方も簡単で配車時は現在地と目的地を入力するだけ。乗車後はボーッとするだけ。

Uber登録時に2000円分無料になるプロモーションコード

vdrvm92mue

ANKERの充電地が最高でした

会社で貰ったANKER を今まで使う機会がなかったのですが、こいつすごいです。
僕の海外旅行ではiPhoneが生命線だったので、電池が少なくなってきたら、こいつに指しっぱでOK。
他にポータブルWiFiも借りていたので、そいつも充電できる状況を確保したのは旅の安心につながりました。

ユニクロのウルトラライトダウンがすごすぎる

僕は荷物を最低限しか持たないので、旅行行くのにパジャマとか持って行きません。酔いつぶれたら着ないしね。
ですが、サンフランシスコ市内は寒いと聞いていたので、先駆者のアドバイス通りに持っていきました。当然、圧縮袋でぺっちゃんこにして。
日中は、やや厚手パーカ&長袖シャツ&デニムのパンツ&キャップで大丈夫でした。
問題は宿泊したホテルの夜が寒くて、長袖シャツ&下着パンツだけでは生きていけず、酒を飲んでも寒く・・・。
そこで登場したのが、ウルトラライトダウン。こいつを着て寝れば、途中で変な汗をかくので、脱いだり着たりしながら夜を過ごしました。
すごく快適でした!

ちなみにユニクロはパウエル駅やユニオン・スクエアから近く、ケーブルカーが走っているパウエルストリートにあります! f:id:redogu:20160617095047p:plain

しめ

だいたい、こんなもんでしょうか。 次回は、サンフランシスコビギナーでも安心!? ~観光~を書く予定です。 その前に、便利だったサービス・アプリ編も書こうかな。

その間に、AltConfとWWDCの情報を整理したり、コード書いたりして準備しなきゃ。。。

『アドテクノロジーの教科書』を読んだよ

AdTech

この数週間、お風呂で読んでいた『アドテクノロジーの教科書』を簡単に紹介します。

アドテクノロジーの教科書 デジタルマーケティング実践指南

アドテクノロジーの教科書 デジタルマーケティング実践指南

僕はSSP事業をやっているチームで広告配信SDKをつくったり、チームのアプリ戦略を一緒に考えたり推進したりしてます。
一応、アドテク絡みのエンジニアに分類されています。
広告配信SDK自体はアドテクの主役ではなく、モバイルアプリエンジニアの派生くらいかなと思っています。

SSP事業をつくる」、「プロダクトをつくる」という積み重ねの中で、アドテクの事をもっと知りたくなり、この本を読みました。

本の概要

アドテクの歴史、紹介から始まり、「オーディエンスターゲティング」、「リワード広告」、「DSPSSP」、「インフィード広告、イン◯◯広告」、「PMP」などの解説、「効果測定」の解説と事例紹介、プレイヤーやマーケットの話しとインタビューのおまけつき。
全体的に導入レベルですが、初学者には分かりやすい表現で解説されていると思います。

気にいった部分を紹介

Chapter3 Measurement 03 リサーチと購買データを活用した効果測定の事例

とある会社のキャンペーン効果を分析するという話しなのですが、おそらく「DSP」や「DMP」に関わるデータ分析を専門にしている人にとっては、当然な話しなのでしょうが、可視化をこんな風にしているんだなと思い、勉強になりました。

メディア(広告枠を提供する側)のお客様と「ブランディング広告」を「ネイティブ広告」として、どの様に表現したらメディアの価値を下げずに収益化を図れるか、アイデア出しをしたりする機会があるので、とても参考になりました。
(どの様に表現したらというアイデアに対し、データから推測した結果とかを提示できると、もっといいかも)

というわけで、息抜きには調度良い安価な値段で薄くて軽いので、連休中の移動時に読むには最適な本かなと思います。

次はこれらの本を読もうかな。

リアル行動ターゲティング

リアル行動ターゲティング

運用型広告 プロの思考回路 AdWords/Yahoo!/Facebook広告の効果を最大化するベストプラクティス (WEB PROFESSIONAL)

運用型広告 プロの思考回路 AdWords/Yahoo!/Facebook広告の効果を最大化するベストプラクティス (WEB PROFESSIONAL)

全部薄くて風呂とか移動時に読みやすいし。

ABC2016Springにブースを出展してきました

Android ABC

こんにちは!

 

去年のAB2015Summerに引き続き今年もVRネタを引っさげ、

abc.android-group.jp

ABC 2016 Springにブースを出展してきました!!

 

今年のポスターは社内のデザファクで作成して頂いたきました!

カラーはドロイド君を意識して、緑に。すげー、良いでき!!

ゼミ紹介もこれさえあれば、簡単です(笑) 

f:id:redogu:20160313203949p:plain

 

今回、ゼミ活動と共に一緒に紹介したいのはこれ!

CA Profit-X のアプリチームで企画しているセミナーイベント。

今回は「メディアの効果的な画像の選び方」です。僕達が新たにつくった広告商品も紹介する予定です。

f:id:redogu:20160313204345p:plain

 

上記イベントは下記リンクから申し込めます!

キュレーションメディア運営あるあるが聞けるかも!?

 

connpass.com 

 

さて、今回のABCの会場は青山学院大学(青山キャンパス)でした。

会社から荷物をもって直接行ったのですが、どこの校舎か迷う迷う・・・。

f:id:redogu:20160313203854j:plain

 

会場についたら、みんなで設営。

ポスターを貼り、チラシを準備し、ダンボールで作成した自作パネルを置き、ノベルティのGoogle CardBoard(簡易的なVR用のHMD)を組み立て。

f:id:redogu:20160313203900j:plain

 

今回のVRゲームは『GEARCLOPS』の展示は、Unity VR Expo Shibuyaにブースを出していたバッカム株式会社 の黒川社長のご協力のもと実現しました!

f:id:redogu:20160313204804j:plain

 

その黒川社長がイベント前日夜に、急ぎ描いた力作。

時間なくて、ぜんぶ手描きです。

f:id:redogu:20160313204821j:plain

 

今回のノベルティは後々、自分たちの手元に何かが残るように、名刺と交換とさせて頂きました。

それでも、30個が余裕でなくなる・・・。

f:id:redogu:20160313203903j:plain

 

日本Androidの会 理事 長谷川さんに、

「CAの小栗さんの力を借りたい」とノセられてしまい、急遽、学生部のアカデミックな発表の寸評役をやることに。

1人だと不安なのでメンバにも寸評をやってもらうなど。

f:id:redogu:20160313203905j:plain

 

うちの息子が大ハマリしていたウ◯コ。

f:id:redogu:20160313203909j:plain

 

ABC開催前に、実行委員長の石塚宏紀さんがオフィスに来てくださり、

今回のABCはいつもと違う、色んな人達とIoTの橋渡し・結びつきを作っていけるのは僕たちだけだ!と仰っていた通り、今回のABCは登壇される方と内容が、いつも以上に締まっていた気がします。

 

でも、やっぱりABC好きとしては、いつもどおりの混沌とした世界(ペッパーくんがウロウロして喋っていたり、床を何かのマシンが走っていたり、Android以外の人達がいたり、ウ◯コがいたり)。

 

今回も楽しかったです。

ABC 2016 Spring のスタッフ皆々様、ステキなイベントをありがとうございました!

『あなたのチームは、機能してますか?』を読んだ

booklog

※本の内容を紹介しており、ネタバレします

あなたのチームは、機能してますか?

あなたのチームは、機能してますか?

11月の始めくらいに読んだ書籍なんだけど、ずっとまとめてなかったので記載した。

書籍の内容構成

物語形式(ビジネス・フィクション)で進む200ページの中で「チームづくり」をテーマに話しが進む。 舞台はシリコンバレーの新興ハイテク企業、そこにブルーカラー企業出身の「キャサリン」がCEOに就任し、経営陣チームの健全化までの道のりを描いている。 また、他30ページ超で、書籍内で出てきた「モデル」について、解説があり、非常に親切な作りになっている。

モデル

下記の機能不全は、 「5つのまったく異なる問題で、個別に対処できるかのように誤解されるかもしれない。しかし実際には、これらは相互に関係しており、5つのうちの一つでももろい部分があれば、チームの成功は絶望的になる可能性さえある。」 と書籍内で説明のある通り、1つでも無視のできるものではない。

  1. 信頼の欠如(互いを信頼する)
  2. 衝突の恐怖(アイデアをめぐって遠慮なく衝突する)
  3. 責任感の不足(決定や行動計画に責任感をもって取り組む)
  4. 説明責任の回避(計画を守らなかった場合、互いの責任を追求する)
  5. 結果への無関心(チーム全体の結果を達成することを重視する)

結束の固いチームでは 1.から順にカッコ内に記載したとおりの内容を解消しているはず。

モデルに対しての所感

僕の個人的な感覚では、多くのチームは中身を伴わない、上辺だけのつながりが多く「1. 信頼の欠如(互いを信頼する)」がそもそも満たせていない気がする。 よって「2. 衝突の恐怖(アイデアをめぐって遠慮なく衝突する)」もそうだが、そもそも衝突すら無意味だと感じている方もいるのかもしれない。

結果として3. 4.を経由しているので、「5. 結果への無関心(チーム全体の結果を達成することを重視する)」が多発しているのかもしれない。 また、 強いリーダー(声の大きなうるさいリーダーも同意)は「4. 説明責任の回避(計画を守らなかった場合、互いの責任を追求する)」をメンバー間で追求させ、自分はフォローにまわるという動きができないので、自分で解決に翻弄されている。

まさに愚の骨頂。