読者です 読者をやめる 読者になる 読者になる

EnsekiTT Blog

EnsekiTTが書くブログです。

HerokuボタンでイカしたTornadoアプリをみんなに使ってもらいたい

つまり何したの?

Tornadoアプリを作ってフォークして使ってもらえるようにした。

環境:

前回のDjangoの例から拾い上げた必要そうな要素:

  • Procfile
  • runtime.txt
  • requirements.txt
  • app.json

すぐ使えるように作ったリポジトリがこちら
github.com

試してみる

# 拾ってくる
% git clone https://github.com/EnsekiTT/HerokuTest.git
% cd HerokuTest

# Heroku上で実行する
% heroku create
% git push heroku master
% heroku open

# ローカルで実行する
% pyenv virtualenv 3.5.2 herokutest
% pyenv local herokutest
% pip install -r requirements.txt

必要そうな要素の説明

Procfile: 実行するコマンドを指定する

web: python server.py --port=$PORT

Herokuのポート番号は$PORTで与えられることに注意

runtime.txt: Pythonのバージョンを指定する

python-3.5.2

このファイルを用意しないでPythonを実行すると2.7系が選択される

requirements.txt: 必要なPythonのパッケージを指定する

tornado==4.4.2

ここではTornadoだけ。必要に応じて

pip freeze > requirements.txt

などして追加編集する

server.py: サーバ本体

import tornado.ioloop
import tornado.web

from tornado.options import define, options
define("port", default=5000, help="run on the given port", type=int)
tornado.options.parse_command_line()

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, world")

def make_app():
    return tornado.web.Application([
        (r"/", MainHandler),
    ])

if __name__ == "__main__":
    app = make_app()
    app.listen(tornado.options.options.port)
tornado.ioloop.IOLoop.current().start()

Tornadoのチュートリアルとほとんど同じ。
Tornado Web Server — Tornado 4.4.2 documentation


Procfileの指定の通り、ポート番号を引数で得るように変更してある。

App.json: Herokuボタンのための設定JSON

{
  "name": "HerokuTest",
  "env": {
    "APP_USER_NAME": ""
  }
}

アプリの名前と、このタイミングで入れてもらいたい環境変数などを指定できる。
(どっかのAPIを使っているならAPIキー等)

まとめ

これでHerokuボタンで使ってもらえるかも知れないアプリが作れるようになった。

HerokuのDjangoチュートリアルをやってみた話

つまり何したの?

Herokuのチュートリアルに従ってWebアプリケーションをデプロイした。

環境:

  • macOS Sierra 10.12.3
  • brew
  • git
  • pyenv virtualenv

参考文献

devcenter.heroku.com


Heroku CLIをインストール

devcenter.heroku.com

% brew install heroku
% heroku --version
heroku-cli/5.7.0-713be60 (darwin-amd64) go1.7.5
続きを読む

mongoDBのインストールをやってみた話

つまりなにしたの

mongoDBのインストールをやってみた。あといらなくなったときの対応も調べた。

インストール

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

sudo apt update

sudo apt install -y mongodb-org

使う

MongoDBを起動する

sudo service mongod start

MongoDBを停止する

sudo service mongod stop

MongoDBを再起動する

sudo service mongod restart

PhpMoAdminを使えるようにしてもっとインタラクティブ

wget http://www.phpmoadmin.com/file/phpmoadmin.zip
unzip phpmoadmin.zip
mv moadmin.php /var/www/html/moadmin.php

phpMoAdminは便利なのでぜひ入れておいたほうが良い

いらなくなったら

mongoDBを消す

sudo service mongod stop
sudo apt-get purge mongodb-org*
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb

PhpMoAdminを消す

sudo rm -r /var/www/html/moadmin.php

Ubuntu16.04にPix2Pixをインストールした話

つまりなにしたの

pix2pixを使って論文で見たような素敵なことが起きるのか自分のマシンで試してみた。

環境

OS :Ubuntu16.04
CPU :i7-6700 3.40GHz
MEM :16Gbyte
GPU :GTX1070 GDDR5/8GB
CUDA :V8.0.44
cuDNN :5.1.05
Python : 3.5.2

参考にしたサイト

github.com

続きを読む

Ubuntu16.04にTorch7をインストールした話

今まで自分は音とか電気の信号処理が多かったのでTorchを触って来なかった。
ここに来てpix2pixを触ってみた過ぎてTorchを入れた話。

つまりなにしたの

pix2pixを使って見るためにTorchをインストールした話。

環境

OS :Ubuntu16.04
CPU :i7-6700 3.40GHz
MEM :16Gbyte
GPU :GTX1070 GDDR5/8GB
CUDA :V8.0.44
cuDNN :5.1.05
Python : 3.5.2

参考にしたサイト

torch.ch
ほぼそのまんま。

続きを読む

macOS Sierra + PyEnv環境でimport cv2するまでの長い長い道のり 〜2016年12月の場合〜

OpenCV3.2のニュースを見かけて、そういえば最近画像処理してないな!と思い立った。
本当であればさくっと環境を整えて、Lennaと戯れるつもりだった。
f:id:ensekitt:20161228020326j:plain
Lennaについて: The Rest of the Lenna Story

そこからimport cv2するまでの長い長い道のりの記録。

なにしようとしたの?

macOS Sierra上のpyenv-virtualenv環境でimport cv2しようとした。

何に困ったの?

brewOpenCVを入れるところ
pyenv-virtualenvでimportできるようにするところ

環境

macOS Sierra 10.12.2
pyenv 1.0.3
OpenCV 3.2(のつもりで結果的に3.2.0-dev)

続きを読む

Universeがリリースされたので、まずはReadmeを読んで実行してみた。

つまりなにしたの

UniverseのReadmeを読んで、OSXで動くことを確認した。

openai.com
汎用的な能力を持つ人工知能の能力を計測したり、学習するための環境として作られたプラットフォーム

構成としては、
Docker中で実行しているゲームにVNCでアクセスして、
ゲーム画面の情報をエージェントに渡して、
マウスやキーボードをエージェントが操作して、
報酬をゲーム画面から取得して、
報酬をもらうと嬉しいエージェントがどんどん賢くなっていく。

続きを読む