soogle’s diary

soogle life log

A/B テストのやり方とかのメモ

 

# AirbnbのA/Bテストの進め方



# P値とか有意確率とか

「何回の失敗なら許容するか」ということでしょう。この「帰無仮説が正しいのに、帰無仮説を棄却する」という過ちのことを第1種の過誤といいますが、第1種の過誤を犯す確率をどの程度までなら許容するか、という境界のことを有意水準といいます。この有意水準は検定を行う前に設定しておくべきもので、心理学では慣例的にα = 0.05(5%水準)という値を採用することが多いです。5%水準ということは、換言すると「100回に5回の誤りなら許容しよう」とするものです。 

 

#ブラウザのごとの分析 

サーチ結果を大改善にするにあたり、A/Bテストを行ってみた結果の表。

この画像がwp-contentの配下にあったのが、いいかんじですがw

f:id:Soogle:20141230181921p:plain

これが面白かった。

△がCTRみたいな指標らしいんですが、それがIEだけ格段におちているんだって。

で、調べてみると、ボタンが、IEの古いバージョンだとうごいていなかったという落ち。

どっちかというと、CTRから見る、各ブラウザがjsを正しく動かしているか?というところまで、踏み込んでみているよう。いろんなバージョン、言語があるからここは、内部テストやヘッドレステストだけだと大変な部分としても使えるようだ。

A/B テストのやり方とかのメモ

 

# AirbnbのA/Bテストの進め方



# P値とか有意確率とか

「何回の失敗なら許容するか」ということでしょう。この「帰無仮説が正しいのに、帰無仮説を棄却する」という過ちのことを第1種の過誤といいますが、第1種の過誤を犯す確率をどの程度までなら許容するか、という境界のことを有意水準といいます。この有意水準は検定を行う前に設定しておくべきもので、心理学では慣例的にα = 0.05(5%水準)という値を採用することが多いです。5%水準ということは、換言すると「100回に5回の誤りなら許容しよう」とするものです。 

 

#ブラウザのごとの分析 

サーチ結果を大改善にするにあたり、A/Bテストを行ってみた結果の表。

この画像がwp-contentの配下にあったのが、いいかんじですがw

f:id:Soogle:20141230181921p:plain

これが面白かった。

△がCTRみたいな指標らしいんですが、それがIEだけ格段におちているんだって。

で、調べてみると、ボタンが、IEの古いバージョンだとうごいていなかったという落ち。

どっちかというと、CTRから見る、各ブラウザがjsを正しく動かしているか?というところまで、踏み込んでみているよう。いろんなバージョン、言語があるからここは、内部テストやヘッドレステストだけだと大変な部分としても使えるようだ。

他言語化対応 調査ログとか

ここ最近の国際化の準備にむけて、いろいろメモ。

国際化と地域化

国際化 i18nは、ソフトウェアの開発なしで、各国対応ができているような設計のこと
地域化 l10nは、翻訳テキストなどをいれて、ソフトウェアをその国ごとに適合させていくこと

だからこそ、なるべく新しいものが入ってきたときに、無駄な開発が必要ないように、
DRYになるような開発設計が必要。

i18nを意識して書いてみる

ja.yml

ja:
 name: %name 様

en.yml

en:
 name: Dear %{name}

Android アプリにむけてその1

すごい、備忘録。
apiに接続後、それをパースするまではいった。
後は、

setContentView後にレイアウト側でループして、
表示とかそこらへんの処理を学ぶ必要あり。

http://yakinikunotare.boo.jp/orebase/index.php?Android%A1%CA%B3%AB%C8%AF%A1%CB%2FListView%A4%CE%BB%C8%A4%A4%CA%FD


後は、どこのAPIを使うかか。メモ

http://ma8.mashupaward.jp/

proxy設定。社内からだと、proxyまわりの逃げ道が必要なので

参考:http://wghost.org/it/android/android-adb-shell-usb/

パス ここついか

;C:\Android\platform-tools

intent filterの概念

http://q.hatena.ne.jp/1213080112

Discover my Portland by Scottに参加

http://www.discoverpdx.com/

週末などに、10時、13時で、ポートランドの歴史を散歩を
しながらガイドしてくれるスコットさんのツアーに参加
バウチャー購入に18ドル、チップに10ドル
2時間くらいで、ポートランドダウンタウンを歩きながら紹介してくれる。
英語力は必要。なんとなしに理解できる程度。

これは惹きつけられます。
Have you ever wondered how the nation’s 29th largest city came to be
run by a local bartender? Or do you know about the man whose courage and
"uncommon" common sense saved the City of Roses from almost certain destruction? Have you any idea the role that "architectural envy" played in the design of a Portland icon? Or how about how our own SW Broadway
Street irrefutably proves that Juliet was wrong? Yes, that’s Shakespeare’s Juliet
I am talking about. I will tell you these stories and more as I introduce you to
many of the colorful people and events that make up Portland’s past.

教会の話

古い教会。昔ビルが出来る前はここが一番高い建物だったとのこと。
アンと男の人と、タイタニックの話
とにかく、そこで結婚した富豪のカップルは、どこにいくでも
ファーストクラスを使って、ヨーロッパに旅行をしにいったところで、
タイタニック号のあの悲劇に。旦那は、女性、子どもを優先してのせたために、
なくなってしまったとのこと。この悲報を聞いて、ここではたくさんの人が集まって
葬儀?に参列したとのこ

歴史は18世紀頃からの話が多かった。さすがアメリカ

寄付が多い

とにかく寄付が多い。
未開な地であっただけに、開拓者そして、そこで富豪になった人々は
そのお金を公園などに寄付をすることが多いそうだ。そのおかげで、
公園、道などに名前がつくようになったとのこと。
この精神や考え方はとてもいいですね。

expose you self to art

後でじっくり読みたいが、前市長 mayor のBud clarkさんが、
beat時代?に実施したパフォーマンスが、マスコミにとりあげられた結果
無名だったのにもかかわらず、市長になってしまったという話。
この話はとっておきで、そういったユニークな市民の考え方が、
ポートランドらしさだね、と話していたのが、Scott

女性のための公園

もともとは、女性のために作られた公園。
掃除や家事などの話ができるようにと作られたが、
いつしか、ウーマン・リブ的な話が盛り上がるようになったとのこと。
その公園は、FBIや裁判所の目の前にある。近くに鹿の像もある。

所得税の1%をArtに

http://oregoncatalyst.com/17553-portland-create-income-tax-fund-art.html

上記に詳しいが、operaからモダン・アートまで、
所得税の1%をアートに、という決めがあるとのこと。

  • サーモン


映画館が多いなど。

  • Fox 写真は小さかった。

自転車が多かった。

  • naked bicker

世界で一番大きな公園、一番小さな公園

Free rock コンサートの話

運動が起きて、occupationがおきてしまったときに、
free rockコンサートをやったら、若者がそっちにいったので、
なんとか無事にいたったという話。
ノーアルコール、ノードラッグとのこと。

  • 個々は何気に勉強になる

http://www.sumutoko.com/chicago/prairie-backnumber/special/2012/05/index.html

MySQLが突然落ちたときの復旧方法メモ

色々あると思いますが、今回は結構ログをみたりとえぐかったので、
その調査ログもかいておこうと思います。

問題

ps aux でMYSQLのプロセスがたってない
/etc/rc.d/init.d/mysqld start
mysql daemonがたちあがらない

ログ解析

[root@XX]# id
uid=0(root) gid=0(root) 所属グループ=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
[root@XX]# tail /var/log/mysqld.log
InnoDB: the log sequence number in the ib_logfiles!
110904 20:49:52 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
110904 20:49:52 InnoDB: Started; log sequence number 0 43665
110904 20:49:52 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
110904 20:49:52 mysqld ended

ib_logfile0 1 をけしてみる

でも消してもだめっだった。。。

[root@XX]# ls -l
合計 20536
drwx------ 2 mysql mysql 4096 3月 26 01:43 XXX

  • rw-rw---- 1 mysql mysql 5242880 9月 11 16:43 ib_logfile0
  • rw-rw---- 1 mysql mysql 5242880 11月 8 2010 ib_logfile1
  • rw-rw---- 1 mysql mysql 10485760 2月 21 2011 XXX

drwx------ 2 mysql mysql 4096 3月 26 01:58 XXXr
drwx------ 2 mysql mysql 4096 3月 26 01:20 mysql
drwx------ 2 mysql mysql 4096 7月 9 19:11 XXX
[root@XX]# cd ib

一応、tmpにMYSQL以下のデータは全部バックアップをとっておく

tmpフォルダに保存しておく

myconfの設定を見直してみる

[root@XX]# cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
default-character-set = utf8
skip-character-set-client-handshake

# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysql]
default-character-set = utf8

mysqldログをみてみる

未コミットなトランザクションなどのリカバリに失敗しているらしい
二重書き込みでなんかやっちゃてるらしい

110215 4:29:19 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.0.77' socket: '/var/lib/mysql/mysql.sock' port: 3306 Source distribution

110817 11:03:33 [Note] /usr/libexec/mysqld: Normal shutdown

110817 11:12:57 mysqld started
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
110817 11:13:24 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
110817 11:13:30 InnoDB: Started; log sequence number 0 43665
110817 11:13:32 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
110817 11:13:32 mysqld ended

MYSQLをもう一度立て直す

MySQL データを初期化

うまいぐあいにシステムテーブルだけ、初期化されて、InnoDBのデータは消えなかったので、
そのままパスワードをチョコチョコ設定していったら、普通につかえちゃったという何というラッキー具合!
http://dev.mysql.com/doc/refman/5.1/ja/error-creating-innodb.html
http://www.ark-web.jp/sandbox/wiki/228.html
[root@XX]# mysql_install_db
Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h XX password 'new-password'

Alternatively you can run:
/usr/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/bin/mysqlbug script!

The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at http://shop.mysql.com
[root@XXX]# cd /usr ; /usr/bin/mysqld_safe
Starting mysqld daemon with databases from /var/lib/mysql

MYSQLを再起動

mysql -u root -p
SET PASSWORD FOR root@localhost=PASSWORD('XXXXX');

権限追加

mysql> SET PASSWORD FOR root@XXX=PASSWORD('XXXXX');
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host,password from mysql.user;

                                                                                                      • +
user host password
                                                                                                      • +
root localhost XXXXXXXXXXXXXXXX
root XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
root 127.0.0.1 XXXXXXXXXXXXXXXX
XXXX localhost XXXXXXXXXXXXXXXX
XXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
                                                                                                      • +

5 rows in set (0.00 sec)

そのほか気づいたこと

もしかしたらやらないといけないこと
MYSQLユーザ作るか、作らないか
再構築後は、最初はクエリーキャッシュがのるまで結構時間がかかる。しょうがない。ちょっとおもい。