http://nekogata.hatenablog.com/entry/2013/02/09/233540のコードをport