json_decodeの強力すぎる第二引数

phpで連想配列とオブジェクトを使い分けたデータを、json_encodeで保存してjson_decodeで読み込むと、両方json_decodeの第二引数の型に変換されます。
あえて揃えたい場合は再帰的な変換方法でいいんだけど、あえて使い分けてる時はどうしたもんか。
連想配列の利点
$arr[]="new";で値を追加出来る。
つまりキー無しで連続した値を収納可能。(実際は0、1,2と数字のキーが付いてるけど意識はされないし)。
関数に渡す時に値渡しになる。
$arr1=$arr2+$arr3;で合成的な事が出来る。オブジェクトは出来ない

オブジェクトの利点
$obj->hogeで値にアクセス出来る。
$arr[]="new";みたいな事が出来ない。
と言うかキー無しで順番にある値という事が出来ない。
関数に渡す時に参照渡しになる。

一長一短ですなあ。いやそもそも比べるようなもんじゃないことはわかってるんだけど。
んーでも値を突っ込んでおくだけなら連想配列かなあ。参照渡しもデフォルトじゃないってだけで普通に出来るし。
じゃあなんでオブジェクトを使うかって言うと、$a->bのアクセス方法が書きやすいから!
$a["b"]はタイプ数が倍になるのは言うまでもないし、カーソルをキー名の頭と尻の両方に移動させないといけないのがまためんどい。変数の中で{$a["b"]}がしたい時はシングルクォーテーションに書き変えないといけないし いやそれは普段からシングルクォーテーションで書いておけばいいんだけどさ。
つーかjavascriptはa["b"]とa.bはどっちでもいいんだよなあ。でもphpでピリオドは使っちゃってるから出来ないよなあ。なかなかうまくいかないもんだ。


投稿日時:2012/11/10(土)23:38 0件コメント

FileMenu Toolsのコマンド一覧

windowsの右クリックメニューに任意のコマンドを追加出来る便利なフリーソフト「FileMenu Tools 」。
指定できるコマンド変数を調べました。 バージョンは6.3。

「すべての」が入っていないコマンドで複数のファイルを選んだ時は、最初のファイルのそれが入る。
サンプルに使ったファイルは「C:\hoge\file1.ext」「C:\hoge\file2.ext」。フォルダは「C:\hoge」
通常文字を指定する時は"ダブルクオーテーション" を使うが、この記事ではダブルクオーテーションが意味を持つので「括弧」で指定します。

コマンド名 コマンド文字 説明
ドライブ %DRIVE% 「C」。英語大文字一文字。
フォルダパス %PARENTPATH% 「C:\hoge」。ダブルクオーテーション無し。最後に\記号無し。
フォルダを指定した時は、「C:\」
フォルダパス(ドライブなし) %RELPATH%  「%RELPATH%」そのままの文字が入る。バグ?
フォルダ名 %FOLDERNAME%  「%FOLDERNAME%」そのままの文字。バグ?
すべてのファイルパス %FILEPATHS% 「"C:\hoge\file1.ext" "C:\hoge\file1.ext"」
パスを半角で繋げて返す。ダブルクオーテーション常にアリ。
すべてのファイル名 %FILENAMES% 「"file1.ext" "file2.ext"」ファイル名を半角スペースで繋げて返す
ダブルクオーテーション常にアリ。
すべてのファイルパスの一時ファイル %TEMPFILEPATHS%

「C:\Users\xxxx\AppData\Local\Temp\fmt5996.tmp」
選ばれたファイルへのフルパスが書かれたテキストファイルへのパスを返す。
このテキストファイルへのパスはダブルクオーテーション無し。
テキストファイルの中身はshift-jis。一行1ファイル。ダブルクオーテーション無し。
「C:\hoge\file1.ext[改行]
C:\hoge\file2.ext[改行]
[改行]
」 の様に、最後の改行一つ多い気がする。改行コードはcr+lf
shift-jisなのでunicode文字は半角の?に文字化けする。

すべてのファイル名の一時ファイル %TEMPFILENAMES% すべてのファイルパスの一時ファイルとほぼ同じ。中身がファイル名になっただけ。
ファイルパス(1~9) %FILEPATH1% 「C:\hoge\file1.ext」。n番目のファイルパス。全てのファイルパスと違い
ダブルクオーテーション無し。フルパスに半角スペースが入っているファイルでも無し。
ファイル名(1~9) %FILENAME1% 「file1.ext」ファイルパス(1~9)とほぼ同じ。中身がファイル名になっただけ。
ダブルクオーテーションが無いのも同じ。
ファイルタイトル(1~9) %FILETITLE1%

「file1」ファイルパス(1~9)とほぼ同じ。中身がファイルタイトルになっただけ。
ファイルタイトルが無いファイルだと「%FILETITLE1%」がそのまま表示される

ファイル拡張子(1~9) %FILEEXT1% 「ext」 ファイルパス(1~9)とほぼ同じ。中身が拡張子になっただけ。
拡張子がないファイルだと「%FILEEXT1%」 がそのまま表示される。
変数値を確認 @hoge@ 実行時に「hoge」と書かれたテキスト入力ウインドウが表示され、それに置き換えされる。
これ系統のコマンドは全て日本語も大丈夫。
複数個このコマンドがあった場合、複数回入力ウインドウが表示される。
ダブルクオーテーションで囲ったりとかの処理はされない。
一度でもキャンセルボタンが押されたらコマンドが実行されなくなる。
ファイルを参照(閲覧モード) @OPENFILE:hoge@ 実行時にタイトルが「hoge」のファイル選択ウインドウが表示される。
そのファイルのフルパスが「"C:\hoge\file1.ext"」の様な型式で入る。
ダブルクオーテーションで囲われる。ファイルは一つしか選択出来ない。
ファイルを参照(保存モード) @SAVEFILE:hoge@ @OPENFILE:hoge@とほぼ同じ。ファイル選択ウインドウが「保存」になっただけ。
ダブルクオーテーションで囲われるのも同じ。
フォルダを参照 @FOLDER:hoge@ @OPENFILE:hoge@とほぼ同じ。開くウインドウがフォルダ選択ウインドウになっただけ。
「"C:\hoge"」の様にダブルクオーテーションで囲われる。最後に「\」は無い。
対象ファイルのショートカット 上記のコマンドとの違い不明。同じ値が返ってくる。
親フォルダのパス=フォルダ名。

一つのファイルを可能な限り分解すると
「%PARENTPATH%\%FILETITLE1%.%FILEEXT1%」こんな感じ。それにダブルクオーテーションを付けるなり、ファイル名に-2とかを付けるなり。


投稿日時:2012/10/18(木)23:51 1件のコメント

ニコニコのコメントxmlにおける半角文字の実体参照について

直接ニコニコを触っている人にはお馴染みのコメントxmlファイル。その属性値と要素の値の半角文字の実体参照が少しおかしかったので纏めました。この記事の記号は全て全角にしていますが、もちろん実際は半角です。見た目が大きく変わるのでわかりにくいですが、上アンダーバー( ̄)はチルダ(~)の全角表記としています。
調べる半角文字は以下の30文字。この文字をニコニコ動画のコメント欄とメール欄に書き込んで送信。コメントxmlを受信してどの様に実体参照されているか調査。
!”#$%&’()*+,-./:;<=>?[¥]^_{|} ̄

結果。赤背景がエスケープされた文字です。

属性値 #$%’()*+,-./:;=>?[¥]^_{|} ̄
要素の値 !”#$%’()*+,-./:;?[¥]^_{|} ̄

要素の値(コメント本文)と属性値(メール欄)でエスケープ処理が異なります。手動でニコニコのxmlをガリガリ処理している人はハマるので注意してください。自分はメール欄で>が実体参照されていると思い込んでコードを書いて、1年以上気付きませんでした。それだけメール欄に>を入れる奴が居ないという事ではあるけど。
ニコニコでの実体参照変換表

元の記号 実体参照された表記
"
&
<
>

phpでマッチさせる方法


投稿日時:2012/10/15(月)5:30 0件コメント

phpのCURLOPT_POSTFIELDSで@から始まるテキストを送信する方法

phpのcurlでファイルとメッセージをpostしたい場合

こんな感じで簡単にファイルupload.pngとメッセージほげほげをpost出来ますが、メッセージが@user ほげほげ の様に@から始まると、それをファイル名として認識し、開けないよ とエラーが出てしまいます。
解決策としてはCURLOPT_POSTFIELDSに配列ではなく文字列を直接指定する必要があるのですが、Content-Typeリクエストヘッダとバイナリデータとテキストデータを混ぜて送信する書式が決まっているので、それを作る関数を作りました。

@の変わりとなるprefixを指定する必要があるので、md5(microtime().rand());で作ってやります。

これで$post2にヘッダーとボディが入るので

指定して、送信。これで先頭が@で始まる文字も無事post出来ました。
しかしこれphpの仕様ミスだと思うんだけど、本来@から始まる文字とバイナリファイルを multipart/form-dataで送信する時はどうすべきなんだろう。自分で作れって事なのかな。自分で作ったけど。

参考にしました
Cocoaを使ってmultipartでテキスト、ファイル、他なんかいろいろ送信する - +8
これに使いました
PHP + Twitpic API v2 で、ファイルをアップロード


投稿日時:2012/09/30(日)17:57 0件コメント

Twitter API 1.1で影響を受けるAPI

今までバージョン1.0だったTwitterAPIがバージョン1.1に更新されるらしい。
Changes coming in Version 1.1 of the Twitter API | Twitter Developers
Twitterブログ: Twitter API v1.1でのAPI利用ルールの変更について
Twitterが新APIv1.1での利用ルール変更の詳細をアナウンス、認証なしでの利用不可など:ITpro
Twitter、Twitter API v1.1でのAPI利用ルール変更を発表:CodeZine
今までは認証しなくても一部APIはコール出来たが、2013年3月に出来なくなるらしい。
ユーザーはクライアントが対応しない限りどうしようもないけど、対応してないクライアントでは2013年3月以降個別ツイートの表示やツイート検索が出来なくなるはず。

じゃあ認証しなくてもコール出来なかったAPIってなんぞや と調べてみた。
リミット数も変更されるらしいから、リミットの有無も調べた。

REST API Resources | Twitter Developersに乗っているAPIの一覧から調べた。Requires AuthenticationがNoの場合はGETで非推奨になっていない場合サンプルのリンクを付けた。

API名 Rate Limited Requires Authentication
GET statuses/home_timeline Yes Yes
GET statuses/mentions Yes Yes
GET statuses/retweeted_by_me Yes Yes
GET statuses/retweeted_to_me Yes Yes
GET statuses/retweets_of_me Yes Yes
GET statuses/user_timeline Yes Supported
GET statuses/retweeted_to_user Yes Supported
GET statuses/retweeted_by_user No Supported
GET statuses/:id/retweeted_by Yes Supported
GET statuses/:id/retweeted_by/ids Yes Yes
GET statuses/retweets/:id Yes Yes
GET statuses/show/:id Yes No
POST statuses/destroy/:id No Yes
POST statuses/retweet/:id Yes Yes
POST statuses/update No Yes
POST statuses/update_with_media Yes Yes
GET statuses/oembed Yes Supported
GET search Yes No
POST statuses/filter Yes Yes
GET statuses/sample Yes Yes
GET statuses/firehose Yes Yes
GET user Yes Yes
GET site Yes Yes
GET direct_messages Yes Yes
GET direct_messages/sent Yes Yes
POST direct_messages/destroy/:id No Yes
POST direct_messages/new No Yes
GET direct_messages/show/:id Yes Yes
GET followers/ids Yes Supported
GET friends/ids Yes Supported
GET friendships/exists Yes Supported
GET friendships/incoming Yes Yes
GET friendships/outgoing Yes Yes
GET friendships/show Yes Supported
POST friendships/create No Yes
POST friendships/destroy No Yes
GET friendships/lookup Yes Yes
POST friendships/update No Yes
GET friendships/no_retweet_ids Yes Yes
GET users/lookup Yes Supported
GET users/profile_image/:screen_name Yes No
GET users/search Yes Yes
GET users/show Yes Supported
GET users/contributees Yes Supported
GET users/contributors Yes Supported
GET users/suggestions Yes No
GET users/suggestions/:slug Yes No
GET users/suggestions/:slug/members.format Yes No
GET favorites Yes Yes
POST favorites/create/:id No Yes
POST favorites/destroy/:id No Yes
GET lists/all Yes Supported
GET lists/statuses Yes Supported
POST lists/members/destroy No Yes
GET lists/memberships Yes Supported
GET lists/subscribers Yes Supported
POST lists/subscribers/create Yes Yes
GET lists/subscribers/show Yes Yes
POST lists/subscribers/destroy No Yes
POST lists/members/create_all No Yes
GET lists/members/show Yes Yes
GET lists/members Yes Supported
POST lists/members/create No Yes
POST lists/destroy No Yes
POST lists/update No Yes
POST lists/create No Yes
GET lists Yes Supported
GET lists/show Yes Supported
GET lists/subscriptions Yes Supported
POST lists/members/destroy_all No Yes
GET account/rate_limit_status No Supported
GET account/verify_credentials Yes Yes
POST account/update_profile No Yes
POST account/update_profile_background_image No Yes
POST account/update_profile_colors No Yes
POST account/update_profile_image No Yes
GET account/totals Yes Yes
GET account/settings Yes Yes
POST account/settings No Yes
POST notifications/follow No Yes
POST notifications/leave No Yes
GET saved_searches Yes Yes
GET saved_searches/show/:id Yes Yes
POST saved_searches/create No Yes
POST saved_searches/destroy/:id No Yes
GET geo/id/:place_id Yes No
GET geo/reverse_geocode Yes No
GET geo/search Yes No
GET geo/similar_places Yes No
POST geo/place Yes Yes
GET trends/:woeid Yes No
GET trends/available Yes No
GET trends/daily Yes No
GET trends/weekly Yes No
GET blocks/blocking Yes Yes
GET blocks/blocking/ids Yes Yes
GET blocks/exists Yes Yes
POST blocks/create Yes Yes
POST blocks/destroy No Yes
POST report_spam No Yes
GET oauth/authenticate No Yes
GET oauth/authorize No Yes
POST oauth/access_token No Yes
POST oauth/request_token No No
GET help/test No No
GET help/configuration Yes No
GET help/languages Yes No
GET legal/privacy Yes No
GET legal/tos Yes No
以下のAPIは非推奨(Deprecated)
DELETE :user/:list_id/members No Yes
DELETE :user/:list_id/subscribers No Yes
DELETE :user/lists/:id No Yes
GET :user/:list_id/members Yes Yes
GET :user/:list_id/members/:id Yes Yes
GET :user/:list_id/subscribers Yes Yes
GET :user/:list_id/subscribers/:id Yes Yes
GET :user/lists Yes Yes
GET :user/lists/:id Yes Yes
GET :user/lists/:id/statuses Yes No
GET :user/lists/memberships Yes Yes
GET :user/lists/subscriptions Yes Yes
GET geo/nearby_places Yes No
GET statuses/followers Yes Supported
GET statuses/friends Yes No
GET statuses/friends_timeline Yes Yes
GET statuses/public_timeline Yes No
GET trends Yes No
GET trends/current Yes No
POST :user/lists/:list_id/create_all No Yes
POST :user/:list_id/members No Yes
POST :user/:list_id/subscribers No Yes
POST :user/lists No Yes
POST :user/lists/:id No Yes
POST account/end_session No Yes
POST account/update_delivery_device No Yes
POST account/update_location No Yes

認証せずに使えるAPIはGET statuses/show/:id、GET searchがメジャーかな。
ツイートの表示 恐らくstatuses/showの事だと思うけど は日本語ブログと英語ブログの両方で720回までコール出来るよって書いてあるからいいけど
searchは60回に制限されるAPIなのかな。検索しまくる人やbotは改善の余地あり?


投稿日時:2012/08/17(金)14:01 0件コメント

chrome21のJoystickAPIを試す

JoystickAPI(Gamepad APIとの表記もあり)はその名の通り、ブラウザから特別なソフトのインストール無しにジョイスティックが扱えるAPI。
何か試してみたいと思ったものの、ゲームを作るほどの手間はかけたくないし、ゲームじゃないのにゲームコントローラを使っても面白くないし。
ゲーム、ゲーム、ミスタービデオゲーム…そうだ、きっと誰かがHTML5でマリオを作っているはず。それをゲームコントローラで遊べる改造をしてみよう。

探せばあるもので、html5 マリオでケンサクしたら一件目にInfinite Mario Bros. in HTML5 | Rawrbitraryがヒット。
どうやらjavaからの移植で、移植元のjava版はMinecraftの作者Notchが作ったらしい。
GoogleChromeのデベロッパーツールの前では難読化したコードも楽々読める。キーボードの入力判定だけをJoystickAPIのそれに差し替えれば最低限動くはず。
機能がどこにあるかさっぱり分からなかったニコニコ動画Zeroを解析した時を思い出したけど、今回は簡単に差し替え出来た。mario部分が1つのjsファイルに纏まっていたし。

さてこれが本題のコード

これを有効にする手順は以下のとおり。
・xbox360コントローラーをPCに接続しセットアップする。自分はwindows7
・ブラウザを起動
・箱コンをPCに接続する。homeボタンを長押しして、ランプの点滅が止まったらOK
・箱コンのAボタンを押す。これでブラウザがゲームコントローラーを認識する
Infinite Mario Bros. in HTML5 | Rawrbitraryにアクセス。読み込みが終わるまで待つ
・デベロッパーツールを開く。Ctrl+Shift+iや、メニュー→ツール→デベロッパーツール を選んでもよい。
・Consoleタブを選ぶ。既に何か書いてあるかもしれないが気にしなくて良い。
・テキストエリアに上記のコードをコピペし、エンターを押す。上記のコードはコード部分をダブルクリックすると選択状態になる。
・デベロッパーツールを閉じる
・ゲーム画面をマウスでクリック(念のためフォーカスを与える)
これで無事箱コンで操作が出来るはず。
細かく言うと、上下左右は十字キーとアナログ入力のどちらでも反応して、選択&ジャンプの本来キーボードのSキーは箱コンのAボタン。ダッシュ&攻撃の本来キーボードのAキーは箱コンのXボタン。
スーファミ配列に合わせたつもりだけど、これでいいんだよね。

GoogleChromeのバージョン21はWebカメラやマイクを使うgetUserMedia APIがプッシュされてるけど、ゲーム的にはJoystickAPIもなかなかよろしいと思う。
そうだ、3DSブラウザはこれに対応してくれよ

使ったコントローラーはこれ。

参考にしたサイト
Gamepad API Demo
コードにバグがあって箱コンが認識されない。大雑把に言うと、gamepad.jsの202行目のelse if()をelse if(true)にすればとりあえず動く。

Infinite Mario Bros. in HTML5 | Rawrbitrary
マリオ3な雰囲気


投稿日時:2012/08/01(水)12:38 0件コメント

chromeウェブストアの統計情報

結構前にアナウンスがあったchromeウェブストアの統計情報が有効になっていました。

日本語版だとjsがリンク切れを起こしていて読込中のまま止まってしまいますが 表示言語を英語にしたら正常なjsを読み込んで動いてくれました。




データは
https://chrome.google.com/webstore/developer/data?tq=base_stats%3Amhdadmjagdhldigbekoodhekclpmoffi&tqx=reqId%3A0
というURLから取得している様ですが、太文字の拡張のIDを書き換えても他人の拡張は見れません。

青の項目がインプレッション、赤の項目がインストレーション。それぞれ、アクセス数とインストールだと思います。
にしてもインストール数がアクセス数を超える日もあるけどどういう事なのやら。
これは自分の一番の売れ筋の拡張だけど、最初一日に3000か。なかなかだな と満足してたら実は70くらいでがっかり。

今まで一日一回ユーザー数を記録していたけど、csvでダウンロード出来るから不要に。よかったよかった。


ユーザー数が何なのか疑問に思っていたけど、素直に今インストール(有効化?)しているユーザ数か。
ユーザーが入れている拡張機能のリストを作って集計とかするか?と疑問に思っていたけど、Googleなら普通にやるらしい。
iOS版chrome入れた時、PC版に何の操作もせずに開いているタブ名が表示されたかし、そういう会社。


投稿日時:2012/07/06(金)7:31 0件コメント

janetterカスタマイズメモ

ツイタマで機能的にはほぼ不満無かったんだけど、AIRの不安定さ プチフリーズがどうしても我慢出来なくなったのでJanetterに乗り換えました。
このツイッタークライアント、中身はWebKitで見た目をhtmlで自由に書き換えることが可能。 色々弄った結果を記録します。

スキンは http://dl.dropbox.com/u/37073935/Janetter2/pages/index.html のBlackVisに入れ替え。
その上でスクリプトをちょいちょいと変更。

URLを展開

ツイッターのタイムラインには四種類のURLがある。
 https://www.google.co.jp/search?q=%E5%AE%89%E8%97%A4%E3%82%B1%E3%83%B3%E3%82%B5%E3%82%AF とツイート欄に入力して投稿したら、大体この四種類のどれかが表示される。

普通は上の三種類で、ちょっと気の利いたクライアントは最後の一つも表示してくれる。
3つ目のt.toは不親切だけどまだ分かる。ツイッターから受診したデータをそのまま使ってるんだね。 
1つ目のURLは、ユーザーが入力したURLをそのまま表示してくれる。気の分かるヤツだ。
4つ目のURLは、URLエンコードされてる部分をきちんと日本語に直してくれる。素晴らしい。
だ!が! 2つ目のURL、これはダメ。そのままコピペする事も出来ないし、ホスト名しかロクにわからない。
モバイル用ならまだ分かるよ。限られたモバイル端末の画面でURLを全部表示する訳にはいかないもんな。でも完全に非表示だとセキュリティ上の問題があるからホスト名だけを表示するのは有効だ。
しかしデスクトップアプリでこれはしないでください。マジで。

と、熱くなってしまったが、つまり4つ目のURLの表示形式にしたい訳だ。
素晴らしいことにJanetterはデバッグモードをonにすると、chromeのデベロッパーツールを出すことが出来る。
そこで確認した結果、htmlタグ上には4つ目のURLが入ってるんだよね。 
そこで以下のコードを jsファイルとして保存。
ハイライトされている所が自分で書いた箇所です。
4~8行目の部分がURLの表示を書き換えて、17行目でデフォルトの処理を潰してます。
17行目でJanetterの機能を潰してるので、7行目をご自由に入れ替えて下さい。

日時を絶対時間として表示する

やはり日時は秒まで、曜日付きで表示したい派です。
そこでtweet.tplの該当箇所を変更します。フォーマットは以下のとおり

これで 2012/06/12 (水) 00:00:00 と表示されます。

これを一行にする。

日時にマウスオーバーした時のアクション停止

日時にマウスオーバーするとtime-detailに切り替わってしまう。そのアクションを停止します。

参考にしたurl

しかし、プチフリ以外は 例えば任意のキーワードだけで新規ウインドウにするとかが出来ないんだよな。
時刻の秒表示もデフォでやってくれるし。URLはダメだけど。
ツイタマの更新が再開してくれればいいのに


投稿日時:2012/06/12(火)3:28 0件コメント

twitterAPI 新方式の対応状況

みなさんご存知ですか
今のTwitterAPIが新方式に変わります
webでクライアントを選ぶ時は、対応しているか調べて下さいね
ずっと更新されてないクライアントは、アップデートが必要になるんです
\新APIの準備、お願いします/

具体的に言うと、使えなくなるのはフォロワー、フレンド一覧取得API等。
使えなくなるリミットはThis resource will cease functioning in Spring-Summer 2012.
今年の春~夏 もういつ使えなくなってもおかしくありません。

代表的なAPIとしてこの記事ではフォロワー、フレンド一覧取得APIを取り上げますが、他にもこれだけのAPIが現在非推奨とされています。
https://dev.twitter.com/docs/api#deprecated

そこで、Microsoft Network Monitorを使いクライアントが新APIに対応しているのかを調べてみました。
と、言いたい所だけどwindowsアプリケーションのクライアントって意外と少ないんですね。
Twitterアプリのシェアを調べたページが参考になりました
結果は
・○Janetter
・×ツイタマ
tween系とKrileはフレンド一覧表示機能が無いみたい。

開発者向け
APIのリンク先は公式のリファレンスです。
今まではフォロワー、フレンドの情報を
http://api.twitter.com/1/statuses/followers.format
http://api.twitter.com/1/statuses/friends.format
で順番に100件ずつ取得していたと思いますが

新方式では、まず最初にフォロワー、フレンドのIDを
http://api.twitter.com/1/followers/ids.format
http://api.twitter.com/1/friends/ids.format
で5000件ずつ取得した後、
http://api.twitter.com/1/users/lookup.format
で100件ずつユーザーの情報を取得する形になります。

ですので、フォロワーとフレンドがほぼ重複していればAPIのコール数を半分近くまで減らすことが出来ます。
仮の対応でも、最初にIDを取得するだけですので、APIのコール数は+1で済むかと思います。

つまり、ツイタマ作者さん対応お願いします。


投稿日時:2012/06/10(日)14:46 タグ: 0件コメント

chrome Web Store のDL数は何時更新されるのか?

google chromeの拡張機能を提供するweb store。そこには「ユーザー数」、デベロッパーダッシュボードでは「一週間のユーザー数」が表示されます。

最初は「これ減らないから累計じゃねーの」と思ったのですが、ログを取ってみた所減ることもあるので 一週間のユーザー数で正しいようです。

このユーザー数、リアルタイム更新ではないのですが、じゃあ何時更新されるのかが気になります。
そこで数日ログを取ってみました。集計は1時間ごとです。

二週間のサンプルだと、00時~3時の間に更新されるようです。日本時間ね
また、同一アカウントで複数の拡張を公開していますが、全て同じタイミングでした。国際化し英語をデフォルト言語としている拡張もありましたが、同じでした。
しかし、見れる情報がDL数だけなのはちょっとな。せめて今までのログを表示して欲しい。analyticsと連携させれば出来るのかな。


投稿日時:2012/05/19(土)2:30 3d件のコメント