Hatena::Groupugochara

Harimauの編集記録等

2013-05-10

メモリ消費の話をしよう

| 21:48

どうやらうごメモではメモリ消費に苦しんでいる人が多いみたいですね。

うごメモのファイルを解析した結果から、メモリを削減する方法を今更ながら伝授します。実に今更。

困っている人がいたら教えてあげてください。


(1)べた塗りandホワイトを丁寧に

うごメモの形式は、(複雑なので簡単には言えないけど)上紙、下紙別々に保存されていて、横方向にデータが並んでいる。連続して塗りつぶされているor塗られていないところがあれば特殊な処理が行われて、データ量を削減できます。

塗りむらや、消しそこねはちゃんと消しましょう。

(2)前のページと極力内容を同じにせよ。

うごメモのメモデータは、前のページとの差のみを保存しています。(差分といいます。)

ですから、前のページとできるだけ差を減らすことでかなりメモリ消費を削減できます。人を書き直さず、吹き出しや目だけを書き直せば全然違ってきます。

また、前のページを平行移動したものを少し書き換えただけのものも消費を抑えられます。

(3)トーン(塗る)は控えるべし。

やはり効率が悪い!極力使わないように。

使う場合、横しまが一番おすすめ。

次は薄いドットや、逆に一番濃いやつ。

(1)の通り、横方向でみると完全に塗りつぶされている奴がいい。

(4)かすれ消しで消える演出は絶対にやめる!

アニメーションでだんだん消えていくのを演出するのに、1ページずつ濃さの違うかすれ消しを行うというのがよくあります。

しかし、これは一番容量を食うテクニック。

1ページにいっぱい書いてあるページをかすりけしで消すと、考えられる中で一番メモリを使ってしまいます。普通に絵をかくの以上に。

全部ではなく一部のみかすれけしを使う。どうしても使うなら(3)でかいたおすすめトーンを使う。

他にもありそうですが、面倒なのでこれぐらいで。

実際にどのページがどのくらいの容量を使っているかを正しく見るにはSDカードに書き出して

サービス終了のお知らせ - Yahoo!ジオシティーズ

を使ってみてください。

公開中の最新版では、ページごとのサイズと、実際に保存されている差分データを見ることができます。

どうでもいいシーンに大量にメモリを使ってしまっているかもしれません。

dorafujicodorafujico2013/05/10 22:46いまさら~。
でも、勉強になりました!

SukaiSukai2013/05/21 23:51なんとなく感覚的に容量がかかりそうな塗り方は分かってはいましたが、このように根拠のある説明をしてくれると納得しますね!勉強になりました!

harimau_tigrisharimau_tigris2013/05/23 20:23>Sukaiさん
フォーマットはもっと前からわかっていたので、早めに書くべきでしたね(^_^;)
困っている人多かったみたいです。

2013-05-07

再びAPi公開へ

| 23:39

うごメモはてな情報取得APIを改めて公開しました - うごメモはてな日記

またAPIが公開されてましたね。

テスト前なのでさすがにプログラム書けません。

後1週間ちょいでテスト終わるのでそしたらコメントだけでもとれるようにしたいです。

dorafujicodorafujico2013/05/08 16:22再公開遅すぎ!
もう三週間ぐらいしかないぞ!

2013-04-11

そして、うごメモはてなAPI公開へ! そして終わりへ!

| 22:29

ja/ugomemo/apis - Hatena Developer Center

うごメモはてなの情報取得APIを公開しました - Hatena Developer Blog

ついにうごメモのAPIが公開されました。

思っていなかった展開ですが、ありがたい。

コメントなどをすべて手作業でパースしようかと考えていた矢先なので、作業していなくてよかった・・・

さて、前のソフトですが、そのそも、選んでダウンロードするという仕様がいらないように感じました。

現在、開発速度優先で、できる限り早く作者/チャンネルをすべてダウンロードするソフトを開発中です。


ただ、APIの返答が遅いんですよね。

C#のソフトとして作るので問題ないのですが、webサービスとして作ろうとしている方はかなり注意です。

サーバー側で処理させようとすると特にレンタルサーバーの場合、タイムアウトする可能性が高く危険です。注意してください・・・

---------------

終わりました。はえーよ!

テストあるので、4月中がリミットでしょう。

それでもだめなら、RSSから切り出して、PPM&FLVのダウンロードだけ実装します。

うごメモはてな情報取得APIの公開を終了しました - うごメモはてな日記

dorafujicodorafujico2013/04/12 15:10ついにAPIも公開されましたか!中の人、この日記をみてそうだな・・・。
ソフトが出来上がるのが楽しみです!

takuyarei0takuyarei02013/04/12 20:05早くも改良につき公開停止です。
http://ugomemohatena.hatenastaff.com/entry/2013/04/12/192657

2013-04-09

適当に公開

| 21:08

適当に公開。最低限ダウンロードするだけです。バグまみれです。

http://www.geocities.jp/ugomemo_harimau/ugodl/

要望受付中。

なぞ改良キターーーー!何が起こる!??

17:47

初っ端のテストで爆死してきました。

そんなことより、素晴らしいお知らせです。

前回の記事で散々文句を言ったメモ取得APIがいつのまにか改良されてかえってきました!!!中の人、ここみてたりするのではっ!

http://ugomemo.hatena.ne.jp/09E74FE04CD7E6A9@DSi/movies.json

前回と比べて、

pager

1ページに30個ずつメモが載っています。

総ページ数、次と前のページ、現在のページが取得できます。これで余計なリクエストがいらなくなり、スマートな実装ができます。

メモ情報

爆発的に情報が増加しました。

3gp,flv,ppm、各種画像のダウンロードURLの追加、再生数、、スター数、閲覧数、コメント数も正常に取得できるようになり、ダウンロード数も見られるように。

さらに、スターを付けたユーザー数も。

作品の説明文とタイトルも取得できるようになったため、


また、チャンネルの方も改良されました。

情報

管理人と副管理人のIDが取得できるように。

チャンネル名や作品数、説明文や、作成日も。

そして、999個返すくそみたいなシステムが直って、ちゃんと30個ずつ返すようにしてくれました。

感謝!感激!

ただ、なぜこのタイミングでAPIの改良がおこなわれたかは不明です。

このAPIが使われていたサイトの部分は変更が行われていないようです。

このブログを中の人が見たでなければ、

・このAPIを「何か」に利用しているか、利用する予定がある。

ということでしょう。

この「何か」もしかすると、「まとめてダウンロード」というシステムのためのものとも考えられるのです。公式でそういうサービスが来る日も近い・・・!?

dorafujicodorafujico2013/04/09 18:35とうとう公式でくるのか!?
コメント欄での要望も多かったですしねー。

tikyuujin2011tikyuujin20112013/04/09 20:39[リンクをクリックしたときの反応]

うわあああああああああ!!謎の文字列があああああ!!
目が嗚呼嗚呼嗚呼嗚呼!!!

mtnmso1mtnmso12013/04/09 23:37全部まとめてダウンロードするにはどうやれば?

dorafujicodorafujico2013/04/10 21:05思ったことを書き出してみました。

・チェックをまとめて入れれるようにしてほしい。
・FLV形式でもDLできるようにしてほしい。
・Japaneseにしてほしい。

以上です。
開発頑張ってください!

takuyarei0takuyarei02013/04/10 21:06Englishはわざとみたい。
※過去記事↓
>ちなみに、なんとなく英語圏の人でも使えるようにしたいなーと思って、英語多め。

harimau_tigrisharimau_tigris2013/04/10 22:49適当に選択してCtrl+Aでまとめて選択、スペースで一気にチェックできます。
次のバージョンでFLVとすべてにチェック実装します。
Englishはわざとですが、難しい単語は使わないようにしてます。
わかんないところあったらいってください。

dorafujicodorafujico2013/04/11 16:43Englishはわざとなんですかー。
後、すべてダウンロードが終わったら、音楽かなんかで知らせてくれるとありがたいです。

2013-03-21

途中経過

| 23:43

ダウンロードソフトの途中経過。

f:id:harimau_tigris:20130321231953p:image

いろいろと無駄なことをしていたのでやっとここら辺。

ダウンロード処理をまだ書かなきゃいけない。

はてなサーバーに負荷をかけないように、接続数制限を設けてキューに貯めたのを順に処理していく形をとるからめんどい。

ちなみに、なんとなく英語圏の人でも使えるようにしたいなーと思って、英語多め。

同じことしようとしてる人のためにメモ。

・メモ一覧が何ページにわたっているかを取得するには

http://ugomemo.hatena.ne.jp/09E74FE04CD7E6A9@DSi/movies?only=body

が軽い。ほかでもいいけど、ここから正規表現で抜くのが早いかと。

・実際のメモ取得

http://ugomemo.hatena.ne.jp/09E74FE04CD7E6A9@DSi/movies.json

を使う。?page=で取得するページを指定可能。上の方法で総ページ数を取得しておき、このAPIで順に抜いていく。

*注意。star_countあたりはなぜか文字列で指定されている。数値なのに、ひどい。

それならまだしも、なんと、10%ぐらいの確率で「文字列ではなく数値になっている」あまりにもひどい。確率は高めなのでデバッグですぐわかると思うが、注意。ほんとにひどい。

あと、日時もUNIX時間で取り出せる。なかなか優れたAPIなのに。ほんとなぜランダムで数値と文字と変わるし。

なお、作品IDからPPMファイルやサムネイルファイルのURIを求める方法は前にどっかに書いたのでググってください。

そして、ダウンロードする際にはぜひ同時接続数を制限してください。

よくわからない場合は、とにかく2つ以上同時ダウンロードをさせない。マナーとして。

・チャンネルの場合は

ugomemo.hatena.ne.jp/ch/11538503087302303586.json

みたいな感じ。

情報は作者のと同じだが、最大で999件も送り付けてくる、悪質なAPI。むちゃくちゃダウンロードが遅い。30秒とか余裕でかかる。

page=でページ数も指定できるけど、例えばうごキャラクラブの場合は5ページもほしい。同時接続が1本だと3分ぐらいかかる。

なお、localなんかも指定可能だと思われる。海外の作品も含む場合は忘れぬよう注意。

dorafujicodorafujico2013/03/22 13:12おおおおお~!
リリースが楽しみです!

dotmaito3dotmaito32013/03/22 16:39開発中のこのソフトは
削除されたメモもダウンロードできますか?
僕の師匠で、うごメモをやめた「アキ}」さんのメモを
ダウンロードしてみたいとかなり前から考えていたので。

harimau_tigrisharimau_tigris2013/03/22 17:48id:dotmaito3さん
動画ページのURLがわかればダウンロードできるのですが、それがわからないと困難です。

SukaiSukai2013/03/23 19:17期待のソフトの開発状況!使いやすそうですね!

bakanahitobakanahito2013/04/07 18:34同じことしようとしたら遥かに上の人がやってた…
star_countの数字・文字列が面倒ですね。
作者のメモ一覧のJSONでは数字と文字列が混ざってますが、
チャンネルのメモ一覧では全部数字なようです。

harimau_tigrisharimau_tigris2013/04/09 21:09id:bakanahitoさん
どうやら、最近の変更でいい感じになったみたいです!!