万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    PyConJP2012 1日目

    まとめ:
    http://kashewnuts-tech.blogspot.jp/2012/09/pyconjp2012.html

    2012/09/15(土)
    mitsuhikoの基調講演

    Cango Cult Programming

    使えるDjango1.4
    SO101

    djangoproject.jp

    つかわれてる
    Disqus
    Instagram
    写真
    Mozilla

    • >Pyramidになる?

    bitbacke

    requestをURL dispatcher
    適したViewに渡す

    ルースカップリング
    →互いに実装を知らなくていい

    迅速に開発
    DRY
    暗示的より明示的に(Pythonの思想)
    一貫性(使用感やデザイン)

    オブジェクト管理インタフェース
    フォーム処理ライブラリ
    管理用ビュー

    オブジェクト管理インターフェイス Admin

    installed アプリをやらないと管理サイトで認識されない。

    CRUDができる。

    Zinniaブログエンジン
     
    クイックパブリッシング 簡易投稿

    チュートリアル

    1.0以降
    1.4.1が安定版最新
    特定環境へのデプロイが楽

    開発の運用 DEBUG
    True, Falseを切り分けるのはハードコードしない
    southなどをどうせ使うのに書くのがめんどくさい

    テンプレ化する機能
    →templateオプション

    テンプレ化されたのはディレクトリになっている

    django/conf/project_templateの代わりに自前のテンプレートが使える

    django-skel + S3環境

    herokuS3を想定している

    fab bootstrap

    運用までが面倒だがテンプレート

    特定環境への

    apps
    アプリケーションを入れておく

    django-skel
    アプリケーションはappsとは別に入れる

    Django1.4は
    {% elif %} だけじゃない
    wsgiの設定もskelでできる?→出来ると思う。
    gunicornの設定はあった。

    context
    .pyファイル


    Blender2.63
    Pytonは本当にBlenderの役に立っているか?

    BLUG.jp
    Sphinxが好き

    神戸ITフェスティバル10/5,6
    神戸ITウィーク 9/29-10/7

    自分自身のゲームの3DCGソフトだが、
    倒産し、債権者にソースコードが渡った。
    GPLラインセンス
    3DCG統合環境
    FreeBSDで動作する。

    モデリングレンダリング、アニメーション、ビデオ編集
    キャラクター、映画を作りたい
    Pythonを使いたい→少ない
    Pythonが入ってるのを知らない。

    Pythonを使っている場面
    SCons(エスコンス)
    →ビルドツール
    →2.33から導入された。今まではautoconfがめんどくさかった。
    Add-on
    →Boltは形状をナットなど選べる
    →画面上で操作して画面で反映されなかった
    →2.50から反映されるようになった。
    BPy
    Blender Python
    標準Add-on。最初から入っている。

    リンクしたりアップロードしてたりする。
    Release Scripts Themes
    Text Editor(テキストエディタ)が入っている。

    ケルト
    お手本となるサンプルのスクリプト

    Blender wikiを読む
    Add-onで楽ちん。
    実際に役に立っている。


    ●現在の状況
    BPy事件簿
    →バージョンが一つ上がりましたよ。0.01がメジャーバージョンアップに匹敵。
    C++で書かれている
    2.53→2.54でメソッド名Do〜がまるまる変わった。

    2.5からPython3に対応した。


    現在と将来

    日本では個人で映像制作
    アセット管理、バージョン管理

    2.63aは2.64でも変更点がある。


    15:30-
    unittestをtesting

    会津剛 @Ido
    Flashエンジニア

    古川出来るエンジニア
    CD, CI
    継続的デリバリー、継続的インテグレーション

    バージョン管理を含めるとCD
    unittestで楽を

    Python testing tools taxonomy
    Wiki
    http://pycheesecale.org/wiki/PythonTestingToolsTaxonomy

    unittests
    unittest2

    2.7
    unittest2がunittestsに取り込まれた。

    doctest
    コメントのところに

    py.test nose
    同じような機能
    指定したディレクトリの下にあるTestクラスを実行してくれる。

    testoob
    →unittestの機能拡張、正規表現XMLが吐ける。
    python-subunit
    testools
    testosterone
    →テストステロン?

    AssertEqual
    第一引数は関数、第二引数は結果

    python-subunit
    unittestの機能拡張
    他の言語を使っても呼び出せる
    シェルスクリプトの結果が帰ってくる。

    CUIを提供する。

    結論
    unittestを使いましょう!
    拡張じゃなくて素直に使う。

    1つのパッケージについて1つのテスト。
    更に必要なら細分化する。

    makeファイルにテストするコードを書いておく。

    細かい処理の結果を取得していく。
    細かくテストコードを分けていく。

    Python製ビルドツールのススメ
    メタビルド
    cmake
    DSL

    ツールに合わせた特定の記法を選ぶ
    ant, maven
    Javaではなく、XMLでかく。(external DSL)

    Javaでかく
    →internal DSL

    バリバリPython使いたいならinternal DSL

    Shinx
    → RestructuredText

    デフォルトはmake
    DIR HTML

    makeの構文やWindowsのバッチの構文を知らないといけない
    →Scons(すこんす)を使う

    env.commandが実行される
    RestからHTMLが生成される

    MacOSXであろうが、同じコマンドで実行できるのでハンディ

    waf
    オブジェクトにどんどんつめていく
    関数を定義されてそれを実行する
    wscript

    DSLという固有の言語を使うか?Python

    wafとかScons
    もともとC言語コンパイルためのシステムだった。

    waf
    →公式はあるが他の資料はない・・。
    node.jsは以前はwafでビルドされていた。

    ネストされたディレクトリは使えるかどうか?

    makeを意識したので、makeでできることはSconsでできる。

    bin/scripts

    wafは一個だけ置けばいいよ
    バージョン管理に登録しておけばみんなで共有できる

    wscript
    waf configure
    findプログラム
    pep8, pyflakes, nose, fabrik をインストールの確認
    make configure

    一つ一つを関数として定義すればいい。
    waf doc
    waf test

    doc/ディレクトリはSphinxで管理されている。

    pep8, pyflakesで構文の確認。
    ファイルの最後の空行確認, 複数のimport
    緑じゃなくて赤文字で出てくれる。

    リターンコードが0以外でかえるので、Jenkinsで。

      • with-xunit

    でやればXMLを履いてくれる。
    CIでプロジェクトを回せばテスト結果の推移が見られる。

    関数でルールを定義してやれば。

    Solr
    全文検索サーバー

    パーツ、レシピ、egg(規約?)モジュール単位でサポートされている。

    buildout
    毎回いじらないで。

    binの下にダウンロードされる。virtualenvでパスが通る。

    レシピのURLを指定すればそこからインストールできる。
    機械的にまとめることができる。