2013-02-15
App Store のダウンロード数を継続的に CLI から取得する
- App Store のダウンロード集計は iTunes connect の GUI だと使いづらいので、Apple 公式な CLI ツールが便利
- 以前はクロールするなど大変だった
- 集計などもいまいち感がすごい。柔軟な集計が大変・・。
- なお 14 日経過すると、データは取得できなくなるので適宜 cron で回すなどする必要がある
- 2 日程度前のデータしか取得できない
簡単なやり方
0. JDK などがない場合は入れておく
http://apple.com/itunesnews/docs/Autoingestion.class.zip
2. VENDOR ID を iTunes connect :: Sales and Trends セクションから調べておく
3.下記実行
iTunes connect の id/pass を指定します
java Autoingestion YOUR@EMAIL_ADDRESS PASSWORD VENDOR_ID Sales Daily Summary 20130213
どんな結果が得られる?
こんな感じの要素がとれます。GUI よりも情報量が全然違います。
Provider Provider Country SKU Developer Title Version Product Type Identifier Units Developer Proceeds Begin Date End Date Customer Currency Country Code Currency of Proceeds Apple Identifier Customer Price Promo Code Parent Identifier Subscription Period
詳しくは
http://www.apple.com/itunesnews/docs/AppStoreReportingInstructions.pdf
2012-11-11
なぜ facebook をパソコンで開くのはなぜ辛いのか
PC で facebook を開くのはひどく億劫だ。私が facebook を起動するのはメッセージのやりとりをするくらいだが、それもほとんどスマホでやってしまう。PC で開く理由としては、おそらくニューズフィードの縦覧性が高いからだと思うが、私はすなくとも縦覧することに対してそこまで高いモチベーションがない。いや、むしろ疲れる。疲れるのであればその原因は何なのか考察してみる。
まずそもそも発言するのが疲れる
- あなたは facebook に何か書き込むことを要求される。書き込まなければあなたの承認要求は満たされないからだ
- しかし、書き込むという行為はそもそも疲れるのである
- そもそもテーマを与えられてもいないのに書き込むということは通常難しい
- 言い換えれば、よほど内発的にテーマを生み出せる気力がなければ難しいということだ
- 私の承認要求を満たすにはあまりにも疲れる行為である
ニューズフィードに流れている情報は著しくリア充的なコンテンツで私を疲弊させる
- そう、ニューズフィードに他人が流しているのは、前述の書き込みの障壁を乗り越えた「会心の一撃」的な情報なのである
- 様々な人の「会心の一撃」的リア充コンテンツが積み重なることによる、自分だけイケていないという疎外感はなんとも形容しがたい
- 学童保育でじっと親の帰宅を待っている子供が、クラスの他の生徒が放課後の様々なアクティビティについて自慢するのを聞かされている気持ちになる
- 極めてリア充コンテンツを大量に持つものだけが生き残る。そんなデスマッチがニューズフィードで行われるのだ
- ちなみにこの現象及び関係性の構築を私は「ドヤグラフ」と呼んでいる
社会性が生まれてこれがまた面倒である
- どうやら上司のフィードに対して自動的に「いいね」を押下するシステムが存在するらしい
- 興味のある方は http://shachikunomikata.com/
- つまり社会性が生まれてしまっている
- 昔は「イエスマン」という単語があったが、いまの時代は「いいねマン」といった趣きすらある
- そしていいねを押下しているのは結構特定のクラスタに偏っていたりする
- もちろん仕事の話をやりとりするのも危険だったりする
- 危険の温度感は人によって異なっていることも物事を複雑にしてしまう
- 常識というのは、きっと有効なレンジやクラスタが存在しているから
- では何を書けばいいと言うんだ
- 危険の温度感は人によって異なっていることも物事を複雑にしてしまう
まとめ
2012-02-14
i18n g11n l10n m17n とは何なのかまとめてみた
- グローバリゼーションな実装において登場する i18n や m17n といった記号の意味について、ざっくりまとめてみた。
そもそも
- 18 とか 11 とかの数字部分の意味は?
- 文字数を意図している
- "Abbreviated form of GLOBALIZATION. G + 11 characters + N."
- "Abbreviated form of LOCALIZATION. L + 10 characters + N."
- http://msdn.microsoft.com/ja-jp/goglobal/bb964658.aspx
- 文字数を意図している
とりあえず表にしてみる
| 省略記号 | 正規名称 | 単純な訳 | 空気を読むと |
|---|---|---|---|
| i18n | internationalization | 国際化 | 地域化のために実装着手すること。Unicode, resource file management, Regional Date time, currency formats などである。GETTEXT 等はここに分類される |
| l10n | localization | 地域化 | 特定の国に対して、デザイン、インタフェース等も地域に応じて最適化すること。例えば住所の選択等を想像してみるとよい。MULE や各種の言語パッチはここに分類される |
| m17n | multilingalization | 多言語化 | 複数言語の処理が同時に実現できている。つまり、中国語と日本語と韓国語とスウェーデン語で書かれたドキュメントを化けずに同時に処理・表示できる。 |
| g11n | globalization | グローバル化 | Microsoft と Sun Microsystems によって i18n + l10n 両方が達成できた状態の別名定義。これは私の推測だが m17n のエイリアスと考えてよい |
おのおのの関係性は?
図っぽくしてみる
- 繰り返しにはなるが、下記に観点ごとにまとめた
1. 技術的な偉大さの観点
リファレンス
- 下記の偉大な参考 URLs から、本まとめを作成した。
- http://stackoverflow.com/questions/506743/localization-and-internationalization-whats-the-difference
- http://stackoverflow.com/questions/754520/what-is-the-actual-differences-between-i18n-l10n-g11n-and-specifically-what-does
- http://www.slideshare.net/nouvellelune/5i18n
- http://en.wikipedia.org/wiki/Internationalization_and_localization
- http://lists.debian.or.jp/debian-devel/199909/msg00124.html
2012-02-03
FacebookのHacker Wayを日本語で要約してみる
- マーク・ザッカーバーグの投資家向けの手紙の中でのHacker Wayという節が良かったので雰囲気を残しつつ、要約してみた
Hacker Way 要約
- 背景と前提
- Hackerという語彙について
- いわゆるコンピューターに侵入するようなネガティブな意味合いではない
- hackingとは、凄い速さでものをつくる、あるいは、何が良いのかテストしていくことを意味している
- hackerの多くは、世の中に良いインパクトを与えることに理想をもった人たちであることを実際にあって感じている
- Hacker Wayという手段
- それは継続的な改善をイテレーションで繰り返していくこと
- Hackerは常になにかより優れた方法があると考えているし、完成するということは考えていない
- そして「現状でいい」とか「そんなの無理だ」という人に対してシンプルに対抗していく
- Facebookはどうやってベストなサービスを長期にわたって提供するか
- Hackingは手を動かしてコードを書くのが原則
- どうやってHacker Wayを推進するか
- どうやって継続するのか?
原文
http://www.wired.com/epicenter/2012/02/zuck-letter/
The Hacker Way
As part of building a strong company, we work hard at making Facebook the best place for great people to have a big impact on the world and learn from other great people. We have cultivated a unique culture and management approach that we call the Hacker Way.
The word “hacker” has an unfairly negative connotation from being portrayed in the media as people who break into computers. In reality, hacking just means building something quickly or testing the boundaries of what can be done. Like most things, it can be used for good or bad, but the vast majority of hackers I’ve met tend to be idealistic people who want to have a positive impact on the world.
The Hacker Way is an approach to building that involves continuous improvement and iteration. Hackers believe that something can always be better, and that nothing is ever complete. They just have to go fix it ? often in the face of people who say it’s impossible or are content with the status quo.
Hackers try to build the best services over the long term by quickly releasing and learning from smaller iterations rather than trying to get everything right all at once. To support this, we have built a testing framework that at any given time can try out thousands of versions of Facebook. We have the words “Done is better than perfect” painted on our walls to remind ourselves to always keep shipping.
Hacking is also an inherently hands-on and active discipline. Instead of debating for days whether a new idea is possible or what the best way to build something is, hackers would rather just prototype something and see what works. There’s a hacker mantra that you’ll hear a lot around Facebook offices: “Code wins arguments.”
Hacker culture is also extremely open and meritocratic. Hackers believe that the best idea and implementation should always win ? not the person who is best at lobbying for an idea or the person who manages the most people.
To encourage this approach, every few months we have a hackathon, where everyone builds prototypes for new ideas they have. At the end, the whole team gets together and looks at everything that has been built. Many of our most successful products came out of hackathons, including Timeline, chat, video, our mobile development framework and some of our most important infrastructure like the HipHop compiler.
To make sure all our engineers share this approach, we require all new engineers / even managers whose primary job will not be to write code / to go through a program called Bootcamp where they learn our codebase, our tools and our approach. There are a lot of folks in the industry who manage engineers and don’t want to code themselves, but the type of hands-on people we’re looking for are willing and able to go through Bootcamp.
The examples above all relate to engineering, but we have distilled these principles into five core values for how we run Facebook:
2011-12-02
mac portsからmysqlをいれると起動時にエラーとなる
OS X | |
![]()
事象
- macports で mysql5-serverをintallしても起動時にエラーとなる
- port info: mysql5-server @5.1.56 (databases)
- sw_vers: ProductVersion: 10.6.8
インストールと起動
$ sudo port install mysql5 mysql5-server $ sudo mysql_install_db5 $ sudo /opt/local/share/mysql5/mysql/mysql.server start
がエラー
Starting MySQL
...... ERROR! Manager of pid-file quit without updating file.
調べてみる
エラーログみる
$ less /opt/local/var/db/mysql5/*.err
すると
Can’t find file: ‘./mysql/host.frm
原因と対応
/opt/local/var/db/mysql5/以下の所有者がrootになっていた
sudo chown -R _mysql /opt/local/var/db/mysql5/ sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql5.plist sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
2011-11-18
AppStoreのスクリーンショット更新時のハマリポイント
- iTunesConnectからスクリーンショット変えたい/追加したい時にハマりがちなポイントをまとめてみた。
- 具体的には下記のケースになったときのトラブルシューティングに役立てば幸いです。
異なった解像度で入稿してる?
事象
- retina / 非retinaの解像度でiTunes Connectで入稿できるようになってます。
- が、これら解像度を混在した場合、いくつかのスクリーンショットが表示されない時があります。
- たとえば非retinaの画像をiPhone 4等retina解像度で端末で見ると見えなくなる
対策
- retina 或いは 非retinaの解像度に統一して入稿する
そもそも反映には時間がかかる
事象
対策
- 多分下記のケースに分かれるので各々対応する
- 1時間停止で復旧
- 6時間くらいかかる
- まったく復旧しない→お問い合わせコース
多言語対応の時はlocale毎にスクリーンショットを投稿する必要がある?
事象
- スクリーンショットが更新されないように見える
- 異なった言語でAppStoreを見ると更新されている
対策
PNGよりもJPGのほうが確実
事象
- 新しいスクリーンショットの反映が遅い
- 機種によって見え方が違う
対策
参考
2011-07-27
APKファイル設置パスいろいろ (Market/SD Card/Preinstalled)
Android | |
![]()
- 背景)Android MarketからダウンロードしたAPKやSDカードに移動する行為をした場合のAPKファイルの設置先などについてまとめてみた
Android MarketからダウンロードしたAPKファイルの置き場
- 設置先は/data/app/以下
adb pull /data/app/XXXX.apk
どのパッケージが入っているか確認する
- package managerからfile pathを取得できる
adb shell pm list packages -f | grep パッケージ名
上記package managerから取得したpathを直接指定する
adb pull /data/app/パッケージ名-1.apk等
SDカードに移動した場合
- Android 2.2からSDカードにアプリを移動できるようになった
- Apkの実態形式ではなく機種ごとに固有のキーで暗号化されたapkファイルが設置される。
- 設置先は/mnt/asec/以下にパッケージ名のpathが作られ、そこ以下にdex等がばらされた上で暗号化されたapkとして保管される




冒頭でなぜが重複してたり
「まずそもそも」とか文章がやけにオカシイ