ネットで文章書くときに一番重要なのは、ゴミみたいなことを言ってくる人をできるだけ避けること。

ネットでは常に書き手が最初から不利な状態にある。だから中立よりも負よりに考えて書かなければ、不要な謗りをうける。

「読み飛ばすことができる人」

読み飛ばしても良いと本人が思った場合その通り読み飛ばす、ないしは読み飛ばさずに内容を理解しようと努めてくれる。なので、そもそもこういう人向けには配慮の必要がない。

「読み飛ばすことができない人」

読み飛ばすということができず、ただ書いてあること全てを飲みこもうとする。こういう人に対して「ここは読む価値はありませんよ」とか「本題とは直接関係ありませんよ」ということを書く必要がある。そうしないと、こういう人は飲み込めなかった文をそのまま書き手に投げつけてくる。

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