@kyanny's blog

My thoughts, my life. Views/opinions are my own.

2015-11-01から1ヶ月間の記事一覧

単一ファイルを返すだけの簡易ウェブサーバを手っ取り早く立ち上げる

単にそういう Rack アプリケーションを書いて rackup すればよい。 https://github.com/kyanny/playground/blob/gh-pages/rack-serve-only-one-file/app.rb URL のパスとかも無視するので、「ある URL を GET する処理を実装してテストも書きたいが、まだそ…

簡素な RequestBin みたいなのを rackup するワンライナー

$ rackup -b "run ->(env) { lf=%Q,\n,; [ 200, {'Content-Type' => 'text/plain'}, [env.sort_by{|k,v|k}.map{|k,v| %Q,#{k}=#{v},}.join(lf)+lf*2+env['rack.input'].read+lf] ] }" ワンライナーでやる必要は無いけど、なんとなく RequestBin (というか外…

最近思ったこと

Medium のはくフィード (RSS2.0) は 2015 年にもなって全文配信していなくてマジかよって気持ちにさせられた。また Medium を使いたくない理由が一つ増えた。「ブログと似て非なるもの」はその姿形の変え方が巧妙になってきているので注意深く避けなければな…

新世紀エヴァンゲリオン

Kindleストアの安売りでまとめ買いした。ポイント消費で実費151円だった。単行本14冊で151円。一冊10円くらい。 アニメも漫画もちゃんと最後まで話の筋を追ったことがなく、改めてというか初めて見終えてみると、なんか気味の悪い話だなぁという感想しか出て…

grape-entity と Array

振る舞いが把握しきれずどうにも気持ち悪いが、期待しない振る舞いを避ける方法は見つかったので一旦まとめ。 https://github.com/kyanny/playground/tree/gh-pages/grape-entity-collection-but-not-array Item に対する ItemEntity がある場合、 ItemEntit…

最近思ったこと

ソフトウェアはなぜ壊れやすいのだろう、と常々不思議に思っていたのだが、「そういうものである」と自然に受け止められる境地に至った。変更しやすいと同時に壊れやすい、そういう性質を持ったものを「ソフトウェア」と呼ぶのだ、と。 仕事が佳境に入ると、…

プログラム内から起動した外部プロセスが利用可能になるまで TCPSocket.open で待つ

https://github.com/kyanny/playground/blob/gh-pages/tcpsocket-open/wait_port_open_close.rb プログラム内から子プロセスとして Rack アプリケーションを起動し HTTP リクエストを送りたい、という場合に、 Rack アプリケーションが起動し終わって localh…

Rack::Proxy でプロキシ認証が必要な forward proxy の習作

習作なので RFC を読んでいません。実用しないほうがよいです(僕も実用してないです) Squid などを使いましょう。 https://github.com/kyanny/playground/tree/gh-pages/rack-proxy-auth 仕事で IP アドレス制限のかかった API と HTTP でやり取りするため…

最近思ったこと

ユニットテストの話題読んだ。 テストを書くか書かないかの判断の話 · GitHub フロントエンドに秩序を取り戻す方法 // Speaker Deck 仕事でよくコード書くアプリケーションが五個か六個くらいあって、三個は CoffeeScript と Marionette.js でフロントエンド…

RIP

友人が亡くなった。 訃報はいつだって急なものだけど、その人はいかにも健康そうで病と無縁に思えたので、意外すぎてとても驚いた。病気で入院するとの知らせをうけてからわずか一月余りの出来事だった。いまだに信じられない。 おれは薄情な人間だから、見…

Rack::Proxy で forward proxy

https://github.com/kyanny/playground/tree/gh-pages/rack-proxy rack-proxy はサブクラスで rewrite_env と rewrite_response をオーバーライドするのが作法(そこでなにかおもしろいことをする) rewrite_env は outgoing request を加工するフックで rew…

rackup なしで Rack アプリケーションを起動するには Rack::Server.start を使う

https://github.com/kyanny/playground/blob/gh-pages/rack-server-start/app.rb require 'rack' Rack::Server.start( app: ->(env) { [200, {}, ["OK\n"]] }, Port: 9292, environment: 'development' ) rackup の中身も単に Rack::Server.start を呼び出し…

最近の英語

細々とやっている。 HiNative 「Lang-8 + Quora でしょ?斬新なアイデアとはいえないね」なんて思ってたけど暇つぶしにやってみたら思いのほか面白かった。日本語ネイティブの日本人だからといって日本語の正しい使い方に詳しいわけではないが、幸い調べるの…

Wantedly Open API を試してみた

こんにちは、Quipper です。話聞きにきてくれ!!! (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "https://platform.wantedly.com/visit_buttons/sc…

今日見た夢

知人の Common Lisp ハッカーから数年ぶりにチャットで近況報告を受ける。結婚し一児のパパになっていて驚く(浮世離れした印象を抱いていたので)。さらにお相手がなんと女優の天海祐希で二度驚く。

FORM 要素の accept-charset 属性について

以下の HTML があるとき、 <html> <head> <meta charset="utf-8"> </head> <body> <form action="http://localhost:9292" method="post" accept-charset="shift_jis"> <input type="text" name="key1" value="ほげ"> <button>submit</button> </form> </body> </html> このフォームを提出すると、ユーザエージェントはサーバに対し "ほげ" を Shift_JIS…

掛け算の定義

Why 5 x 3 = 5 + 5 + 5 Was Marked Wrong — Math Memoirs — Medium 日本でもよくインターネットで「こどもの算数のテストの結果が納得いかない」みたいな話題が盛り上がる。同じような話が海外でもあるというのが新鮮だったので読んでみた。 5 × 3 を 5 + 5 …