2013年9月20日金曜日

PyCon APAC 2013 2日目に行ってきた(2) #pyconapac

ちょっと間が空いてしまったけど、PyCon APACの2日目の後半。Pythonでハードウェアを操る話、ちょうどRasberryPiを買ったので耳寄り情報が多かった。とりあえずpyserialは入れとけと。

あとDjangoのデバッグの話は、django-debug-toolbarなど興味深かった。これって他のフレームワークにも移植されてて、Flask版やBottle版もあるみたい。そういえばBottleはwerkzeugで動かすこともできたような。

PythonでハードウェアをWebAPIにした話

  • 北神雄太さん @nonNoise
  • 所属:ArtifactNoise
  • 職業:発明家
  • 主な開発:Elpis Framework
  • スライド
気になってる話題
  • Tessel
    • JavaScript, Nodeが動くらしい
  • Arduino YUN (アードゥイーノ ヤン)
    • Linuxが乗ってる
  • GALAXY Gear
  • Nymi
ハードウェア界隈の話
  • Arduinoの進化
  • RaspberryPiなどのカード型PCの登場
  • RaspberryPiのPiはPythonのパイらしい
  • PyGameが標準で入っている!
  • Linuxなら標準で入っているので、カード型PCでPythonを動かし、特殊なハードウェアをコントロールする新しいムーブメント
Pythonでハードウェアを扱う方法
  • Pyserialを使う。簡単
  • USBが刺さった時にどっちのポートが刺さったかわからない
  • USB Serial変換チップ
    • USBがttyとして認識される!
    • USBのドライバを書かなくてすむ
  • マザーボードのIOを直接操作できる
ハードウェアとのやりとり
  • 基本的にはコマンド方式がほとんど
    • 1(前へ進む), 2(後ろへ進む)
ハードウェアをWebAPIにする

(メモあんまり残ってない)

ser.getline()

Django最速デバッグ指南

django-pdb
  • -pm
    • Exception出たらデバッガが起動する
django-devserver
  • SQLのクエリのログ
  • リクエストの情報
  • プロファイリング情報

などをコンソールに出力。

django-debugtoolbarはテンプレートを使っていないと表示されない。APIだとデバッグ情報は見れない。あとJSが走るのでJSゴリゴリ書いているとエラーになる可能性がある。

runserverwerkzeug
  • Flaskの人が作っているWSGI実装
  • ブラウザ上でインタラクティブなデバッガーが使える
logging
  1. logger.error(Invalid code: %s%azunyan)
  2. logger.error(Invalid code: %s,miotan)

2.が正しい。理由は2.で書いておくとログ集約ができるから。

重要な点

  • 正しく使う
  • ログレベルの認識を一致させる
  • ログの頻度の統一

debug,info,warning(warn),error,critical(crit)

  • debug
    • 開発時のみ出力
  • info
    • ファイル出力
  • warning
    • 機能は動作してるけど何か間違っている
    • 処理は継続できるけど何かがおかしい
    • バリデーションエラーぐらいの認識
  • error
    • 500エラー
    • バッチが落ちるレベル
  • critical
    • 使わない
その他開発・運用で使っているツール
  • PyCharm: Python向けIDE(IntelliJ)
  • Sentry: ログ収集プラットフォーム
    • ログを集約してメールで通知とか
まとめ
  • デバッグには何が起こっているのかを理解するのが大事
  • ツールを正しく使えばデバッグ時の負荷を減らせる

1 件のコメント:

xzst4j1j89 さんのコメント...

To defend against exploits like these, many casinos use monitoring software program, use wheels with new designs, rotate wheel heads, and randomly rotate pocket rings. 1st column numbers four to 31 and 3rd column numbers 6 to 33, 카지노사이트 value 30 chips each to finish. Some casinos additionally supply split-final bets, for instance ultimate 5-8 can be a 4-chip wager, one chip each on the splits 5–8, 15–18, 25–28, and one on 35. The paper has not yet been able to to} verify the accuracy of the occasion, together with questions about whether or not it might have occurred if the roulette wheel was not correctly aligned. But if true, the Sun notes this is able to|this may} be "one of the rarest documented roulette runs in the metropolis's history."