Python Tornado をさわってみた。その1(環境構築)
nodejsを利用する場面が多かったのですが、最近Pythonに関わる場面も増えてきました。
Djangoやpyramidを少しかじったくらいの私ですが、nodejsっぽいPythonのフレームワークはないかと探していましたが、Tornadoが近そうなのでこちらをさわってみたいと思います。
Pythonをインストールするところから始めたいと思います。
環境
Macで動作確認をしています。 homebrewとgitは事前にインストールしておいてください。Windows環境の場合はgitのみで大丈夫です。
- macOS Sierra 10.12.2
- homebrew
- git
pyenvを使ってみる
Pythonの複数バージョンをインストールする場合に利用します。Windowsを利用している方は読み飛ばしてください。
インストール
homebrewでインストールします。
$ brew install pyenv
インストール後、環境変数を設定します。~/.bash_profileに書き込みます。
export PYENV_ROOT=$HOME/.pyenv export PATH=$PYENV_ROOT/bin:$PATH
pythonのインストール
Pythonをインストールします。バージョンは任意です。
$ pyenv install 3.6.0 $ pyenv install 2.7.13
上記のコマンドを実行するとそれぞれのバージョンのpythonがインストールされます。
pyenv global x.x.x、pyenv local x.x.xまたは、pyenv shell x.x.xでバージョンの切り替えができます。
globalとすると全体に、localにするとそのカレントディレクトリに、shellにすると今使用しているシェルのpythonのバージョンを変更できます。
pyvenvで環境構築してみる
pyvenvを用いてpythonの実行環境を構築します。
pyvenvはPython3.3から標準で含まれています。ちなみにpyenvを利用した環境でpyvenvを実行すると
WARNING: the pyenv script is deprecated in favour of `python3.6 -m venv`
と表示される。pyvenvはいずれ廃止予定らしいです。
Python's pyvenv script deprecated · Issue #184 · yyuu/pyenv-virtualenv · GitHub
ので、「python3.6 -m venv」を実行してPythonの仮想環境を作成します。
作成したのち、venvを有効化します。
有効化したvenv内でpipで取得したパッケージが取得されます。
$ cd ~ $ mkdir .virtualenvs $ python3.6 -m venv .virtualenvs/tornado $ source .virtualenvs/tornado/bin/activate
venvを無効化する場合は、「deactivate」を実行します。
$ deactivate
Tornadoのインストールしてみる
Tornadoはpipを用いてインストールします。
pipはPython 2.7.9 以降、Python 3.4以降からデフォルトでインストールされます。
$ pip install tornado
公式サイトのドキュメントは下記のリンクです。
Tornado Web Server — Tornado 4.4.2 documentation
こちらに一通りの説明は記載されています。
ソースコード
公式ホームページに記載されているコードは下記の通りです。
実行すると「Hello, world」がブラウザに表示されます。
import tornado.ioloop import tornado.web 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(8888) tornado.ioloop.IOLoop.current().start()
上記のソースコードをserver.pyに保存します。
$ cd ~/.virtualenvs/tornado $ mkdir workspace $ vi server.py
起動
server.pyをpythonで実行するだけです。
$ python server.py
ターミナルには何も表示されませんが、ブラウザで「http://localhost:8888」にアクセスすれば、"Hello, world"が表示されます。
次回は
今回は環境構築とTornadoのインストールのみでした。
tornado.web.RequestHandlerを説明したいと思います。REST APIの実装をしたいと思います。
SQL Serverのサードパーティー製品(RedGate)について紹介します
1.RedGateとは?
データベースライフサイクルマネジメントを実現する日本初上陸の製品です。
2.データベースライフサイクルって?
データベースの構築/導入/運用/保守/破棄まで、
一連のライフサイクルのプロセスを継続的に管理する考え方です。
3.RedGateが提供する価値は?
事業や業務環境の変革のスピードに応えるためには、アプリケーションのみならず、
データベースのライフサイクルマネジメントが求められます。
Redgate製品は、ユーザー業務とアプリケーション開発にデータベース管理を融合し、
より迅速で高品質なシステムの提供を実現します。
4.どんなことができるの?
①データベースのバージョン管理
- 変更管理が一部の担当者に依存している。
- いつ/だれが/どのような変更がされたか把握できない。
- バージョン管理が手作業であることにより、ソース管理や過去バージョンの復元に時間と手間がかかる。
★「SQL Source Control」でバージョン管理を実現します!
②リリース作業
- 開発環境から本番環境に変更内容を反映する際、変更用スクリプトを手動で作成している。
- 手作業で変更作業を行っていることにより、手間と時間がかかるだけでなく、ヒューマンエラーが発生しやすい。
★「DLM Automation」でリリース作業を自動化します!
③運用開始後のモニタリング
- SQL Server固有のエラーやリソース状態のモニタリングが出来ていない。
- 日々のモニタリングから、性能悪化の原因になるクエリの特定まで出来ていない
★「SQL Monitor」でSQL Serverをリアルタイムでモニタリングします!
RedGateの概要紹介は以上です。
次回RedGateの記事を取り上げる際は、Azureとの連携に関してご紹介したいと思います。
Nutubeを買ってきました。
真空管の将来を担うかもしれない。
今年の夏にKORGから真空管が一般向けに発売開始されました。
新発売です。真空管なのに。
その名も「Nutube」
従来の真空管に比べて
- 省エネ
- 小型化
- 長寿命
らしいです。
何でも消費電力は真空管の2%
容積は30%
寿命は30,000時間(従来の真空管は10,000時間くらいなので300%ですね)
というスコアをたたいているのにもかかわらず"完全な"3極真空管として動作する(公式)
というので驚きです。
消費電力2%な感じを全面に押し出した説得力あるフォルムです。
¥5,400-
いい値段しますが致し方なしでしょう。
このサイズならHammond 1590Aサイズのケースでも余裕で入ります。
真空管エフェクターをポケットに入れて持ち運べるんです!
夢、広がります。
考えているのはエリックジョンソンでおなじみのTUBE DRIVER
あれ作りたいな~
真空管触ったことないんだよな~
どうやって使うのかな~
というわけで続く。。。!
OSSのCordova ARプラグインって少ないなー
先日HTML5 Mobile Dayというイベントに出展するため ちょこっとAR Wifi Analyzerなるものを作成した際に使用したプラグインを公開しました。
カメラプレビューの上にHTMLをオーバーレイで表示してくれるプラグイン github.com
加速度センサー、方位センサーの値を取得するプラグイン github.com 元々X軸、Y軸、Z軸方向の加速度しか取得できなかったため端末の傾き・方位(pitch, roll, azimuth)を取得できるようにしてあります。 現状Androidにしか対応していません。
Wifi情報を取得するプラグイン github.com 接続したWifi情報しか取得できなかったため周囲のWifi情報も取得できるようにしました。 現状Androidにしか対応していません。
今回せっかくなのでHTMLだけでどこまでARっぽいものが動くのか確かめるために canvasをカメラプレビューにオーバーレイで表示する方法を取りましたが やはりネイティブ実装程はサクサク動かず、何だかんだでARっぽいものを作る為にはネイティブでView作る必要あるな、と感じました。