UIには出ていないがAPI経由だと取得できる。認証なしで誰でもとれる (権限いらない)。

curl https://api.github.com/repos/atom/electron/releases | ruby -rjson -e 'JSON.parse(ARGF.read).each{|release| release["assets"].each{|a| puts "% 10s %s %s" % [release["name"], a["download_count"], a["name"]] } }'
  1. トップ
  2. tech
  3. github releases に登録した assets のダウンロード数を一発でリスト表示するワンライナー

Kazuho's Weblog: H2O version 1.7.0-beta1 released with enhanced mruby scripting, CGI, and much more

H2O version 1.7.0-beta1 からは htpasswd も使える Basic 認証のサポートが入ったので、以下のようなコードは最早必要ありません。

現時点だと h2o に Basic Auth の機能が入ってなさそうなので mruby.handler で雑に書く

        mruby.handler: |
          USER = "tsun", PASS = "dere"
          lambda do |env|
            auth = env['HTTP_AUTHORIZATION']
            if auth
              method, cred = *auth.split(' ')
              if method == "Basic"
                user, pass = cred.unpack("m")[0].split(':')
                if user == USER && pass == PASS
                  return [ 399, {}, [] ]
                end
              end
            end
            [ 401, { 'Content-Type' => 'text/plain', 'WWW-Authenticate' => 'Basic realm="Restricted"' }, [ 'Authorization Required' ] ] 
          end 

これをかけたいとこに書けば basic auth がかかる。

最初 htpasswd 読むようにしようとしたが mruby に String#crypt はなかったのでやめた。

  1. トップ
  2. tech
  3. h2o で Basic Auth

Quick Charge 2.0 とは

現行でも採用事例がある USB コネクタでの急速充電の仕様。USB は規格上 5V なので、急速充電のために電力高めようとすると電流が多くなってしまいコネクタやケーブルの発熱を招く (USB のコネクタは定格では 1.5A までしか流せない) 。なので、供給電圧自体を上げて (9V, 12V, 20V) 供給可能電力を増やそうというもの。

USB 公式には USB PD (Power Delivery) があるが、USB PD のためにはまず USB Type-C コネクタの普及が必要だし、ハンドシェイクが割と複雑なので専用のコントローラICが必要。

一方 Quick Charge 2.0 は既存 USB コネクタを流用した規格かつ簡単なプロトコルなので採用しやすい。

 -

3.0 / 5.0

既に対応したモバイルバッテリーがあるし、端末側でも対応しているものがちらほらある。(ZenFone 2 も対応している)。割と単純なプロトコルなので Quick Charge とは言わずに対応してる端末もある (権利的なアレかな)

Quick Charge 2.0 の仕様

公式の仕様書がみつからない。NDA? よくわからんけど、サポートチップのドキュメントやリファレンスデザインのドキュメントにはある程度詳しいことが書いてある。

D+, D- ラインに対し 0V, 0.6V, 3.3V の3値を使う。

  • D+ に 0.6V を 1.25s 間かける
  • D- を 1ms 間プルダウン
  • 設定したい電圧に応じて D+ D- に電圧をかける

http://www.gamma.pl/PDF/powerint/chiphy.pdf

D+ をプルダウンすると直ちにリセットして Quick Charge 2.0 のステートを抜けるようなので、各状態遷移の間は D+ を0Vにしないようにする必要がある。

D+ 0.6V, D- が GND の場合は 5V のなので、初期化 (D- 1ms プルダウン) 直後は必ず 5V になる。

ref.
http://www.gamma.pl/PDF/powerint/chiphy.pdf
http://www.tij.co.jp/jp/lit/ug/tidu917/tidu917.pdf

  1. トップ
  2. tech
  3. Quick Charge 2.0 の仕様