ミラクルニキ-お着替えコーデRPG - Google Play の Android アプリ これ。公式サイトはここ

元々中国のアプリ「奇迹暖暖」で、それをローカライズして販売してるっぽい。暖暖シリーズはいくつかあるっぽく、過去にも日本語版ローカライズ版はでてたりするっぽいがやったことはない。ありがちな日本語に不自然なところはあまりない(が、UIではときどきある)。日本の提供会社の情報があんまりなくて怪しい以外は気になるところはない。

とりあえず最高に楽しい。いろいろゲームやってみた結果、着せ替えができさえすれば楽しいってことには薄々気付きつつあったけど (ポケモン・サン/ムーンやったら着せ替えの衣装が足りなくてものたりなかった)、このゲームは完全に着せ替えオンリーを極めててよい。着せ替え対象のキャラクターは一人だけ(ニキ)だけど、衣装数が極めて多く、髪型も変えれるので気にならない。

キャラクターのデザイン自体も「可愛いが男媚びも女媚びもしてない」ぐらいのバランスだし、衣装も細かく描かれててめっちゃいい。ニキのキャラ設定自体も鼻につかない感じで余計な部分はない。あえていうなら付属してくる変なゆるキャラみたいのがウザいぐらい。

基本的にあんまりハマりどころはないけど、ちょいちょいキツいステージがある。4-12 は衣装がほぼ固定で高得点が出しにくく S がなかなかとれなかった。S限定の衣装をガール級の 5-12 で使うので手に入れたかった (なお 5-12 は 3-1(プリンセス) や 4-5(プリンセス) のチャイナでも代用可能)

結局のところ、衣装でどうにかならないのはスキルでどうにかするしかないことがわかった。このステージだと脱がされないので、厳しい視線を回避してバフかければSとれそう。

自分のときはこれでいけた

h2o の status ディレクティブのJSON出力を眺めていたら、duration-25 とか connect-time-50 とか 不思議なプロパティがいくつか含まれることに気がついた。しかしどうも全て0のようであるので、なんらかのコンパイルオプションなのだろうか?と思ってちょっと調べた。

結局これは global で duration-stats: ON すると有効になるみたいだった。そうすると以下のように数字が埋まりはじめる。

"duration-0": 0,
"duration-25": 0,
"duration-50": 0,
"duration-75": 4731,
"duration-99": 26829

おそらくμs単位のパーセンタイル値で、この場合たとえば duration-75 は 75% のリクエストが 4731μs 以内に納まるみたいなやつだと思う。

今のところドキュメントには書いてないっぽい、というかリリースされてないっぽいので HEAD が必要?なのかな。

メモ

  • h2o_now は ms 単位
  • durations は h2o.h の COMPUTE_DURATION で *delta_usec = h2o_timeval_subtract*1; となっていてμsになってるっぽい
  • server-status はどこのホストに書いても同じのがかえってくる (あくまでサーバ共通のステータスがとれる)
  1. トップ
  2. tech
  3. h2o の duration stats

MH-Z19 という格安 CO2 センサを読んでみた | tech - 氾濫原 の続きです。

Raspberry Pi で喋らせる

Open jtalk で喋るようにしてあるので

  • 1000ppm を超えたら換気をうながす (アラート)
  • 600ppm 未満になったら告知する (アラート解除)

みたいにした。

alert = false

loop do
        begin
                ppm = get_latest.last
                case
                when ppm > 2000
                        system("jsay.sh", "CO2濃度が2000ppmを超えました。ただちに換気を行ってください")
                        alert = true
                when ppm > 1000
                        system("jsay.sh", "CO2濃度が1000ppmを超えました。換気を行ってください")
                        alert = true
                when alert && ppm < 600
                        alert = false
                        system("jsay.sh", "CO2濃度が600ppmまで下がりました")
                end
        rescue Exception => e
                p e
        end
        sleep 5 * 60
end

get_latest は GrowthForecast からデータをとってくるやつ。センサーからデータを読むプロセスは別にしてあるので、間接的にgfからとってきてる。

常に表示する

家で余っているスマフォに常時表示するようにした。これも GrowthForecast からデータをとる。具体的には

グラフは vis.js を使ってみた。結構つかいやすい。example のうちの Graph2d | Streaming data を参考にしたらうまくできた。

今後

GrowthForecast にデータを投げてるので、gf の API をメインで使ってみたが、gf はそういう用途のためのものじゃないので、かなり無駄感がある。WebSockeet 経由でデータを転送するゲートウェイみたいなのをまず作ったほうがいいかもしれない。

  1. トップ
  2. tech
  3. CO2 センサの可視化