万年素人からHackerへの道

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

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

    帰ってきた Python Workshop 2010/12

    このエントリーをはてなブックマークに追加

    http://www.python.jp/Zope/workshop/201012/

    ●Session 01
    mixiアプリGoogle App Engine(7時より30分)
    山下
    @weboo
    mixi Plugin イイネ!ボタン
    mixi Graph API
    mixi アプリ
    mixi OpenID

    ■通常のWebサイトとの違い
    一般的なWebサイトで人を集めるのは難しい→人気が出た場合は一気にユーザが増える

    ■なぜソーシャルアプリは流行るか?
    ◯理由
    ・ユーザ登録を擦る必要がない
    ・ユーザが勝手に宣伝してくれる
    バイラルマーケティング【viral marketing】のための手段が整っている(企業の商品やサービスを消費者に口コミで宣伝してもらい、利用者を広げるマーケティング戦略。「バイラル」は「感染的な」という意味で、マーケティングの仕組みをウィルスの感染・増殖に例えている。)
     Activity Voice invite Request Message

    サードパーティがリクエストを返す

    ◯人気のあるアプリは1000万人〜数億PV/日

    ■あなたのサーバは耐えられますか?
    ・各社がインフラ構築支援サービスを続々提供
    ニフティクラウド
    GMO
    DSAS
    ・DC Frontier

    →ほぼ無料からできる

    python & GAE
    松尾 Google
    App Engine for mixi application

    ◯朝と昼と晩にアクセスが多い

    ◯メリット:Googleのインフラ上でmixiアプリケーションを動かせる
    →人気が出なければ0円で済んでしまう。
    ・オートスケーリング(サーバの負荷に応じて必要なリソースが自動的に割り当てられます。)
    ・データベースの部分も自動でスケールする仕組み
    1.4.0 数字を公表した→週間15万 10億ページビュー
    1600QPS

    Billable Quota(お金を払うと増えるクォータ)

    ・Minimize work(1000ms rule)
    ユーザに1秒以内に返す→システム全体を守るため

    Avoid datastore contention
    Love Task Queue and Memocache
    Put a deadline on DB opperarion
    →データベースにデッドラインを設定 タイムアウト

    ■1.4.0リリース

    ・ロードマップ
     GAE 1.4.0 で常時起動インスタンスが可能
     
    ・データストアオペレーションに関して、アバイラビリティーを設定


    バスキュール 田中
    サーバのエンジニアはいない
    女性ターゲット→mixi

    mixiアプリ 華麗なる女優たちは
    ・ハリウッド女優体験
    Python&GAE

    DAU:10万以上
    ピークタイム:200〜300rec/sec

    GAE/Javaの経験は社内にあったがリソースの確保ができない
    →新たにパートナーを探した
    大阪 テラポート

    ビープラウドCTO@shin_no_suke

    JOIN停止(ペナルティ)

    404 not foudの大量発生
    InportErrorno発生に起因し、不完全な状態でインスタンスが立ち上がり
    404 not foundで返していた。

    HTTP QUEのタイムアウト制限10→7秒
    makeququestキューで

    →1.4.0で改善した
    ただし、mixiアプリでは減らした方がいい

    ■GAEのメリット(2つ)
    ・スケーラビリティ
    →スケーラビリティを気にせずに参加できる
    →諦めていたことが可能

    ユーザーにはドキドキ
    我々はウキウキ
    →運用保守のことを考えずにチャレンジ

    ■Session 02
    ・Harvester - CG映像制作用ジョブディスパッチシステム(7時30分より30分)

    レンダリングは画像が1枚1枚に描きおろし
    cronで定期的な再起動をかけたりDBの内容にチェック
    Push型からPull型の設計へ

    JSONを使って通信を行う
    Python2.6ベース
    Windowsを基本、Linuxでもテストしている
    ・タグを割り振ることにより、特定のノード群のみで実行されるように可能
    ・ジョブテンプレートによりフレームごとに行う処理を簡易的に記述できる

    GUIExtJSで構築
    HTMLを入れることでアーティストに
    サーバ間はJSONベースのAPI

    JSON
    ・ベースがHTTPなので安定している
    Firebugででバック可能

    Apacheのdeflateを使ってみたところjson通信が700kb/sから20kb/sまで圧縮
    WindowsでWMIを使っているが安定性に欠けている


    ■Session 03
    Pythonのイケてるところ/イケてないところ(8時5分より40分

    Java : 庄司嘉織さん 浅草Rubyより
     イケてる:インデント守っている(守らない人と仲良くできない)
          Javaと比べるとすべてイケてる
          インタプリタがある
          数字の0、空の配列がFalse
     イケてない:後方互換していたのにlen、strオブジェクト指向ではない。
          予約語が少ない、True、False、None(ナン)あまり使わない?
      
     Java→コンカレントキー、スレッド(Webはあまり関係ない?)
     Pythonのselfはインスタンスメソッドを呼んだ時の引数の数が分かりにくい
     
    Perl : 松野徳大さ 2.4使っていた
     イケてる:インデント 
          SVG
          ライブラリが多い(ACPクライアントライブラリがない)
     イケてない:正規表現リテラルがない
     Python→静的スコープ
     
    PHP : 小泉守義さん
     イケてる:インデント
          標準関数があるが長くて覚えられない
          ドキュメントが充実
     イケてない:インデント
          テンプレート言語として向いてない、HTMLと混ぜてかけない
        
     Perl→スコープの範囲がいろいろ切り替えられる言語
     
    Ruby : 高橋征義さん Perl PHPを仕事 Rubyは学生時代
        電子書籍Squirrelの言語の本を出す
     イケてる:海外ではRailsはWebが強いが、他はPython
          Rubyにあるような変に英語っぽいDSLPythonはない
     イケてない:Pythonは蛇だらけ、Railsは見栄えのあるロゴを作った
     
     PHP→===の完全一致がキモイ
     
    Python : 西尾泰和 さん
     イケてる:Javaコンパイラのエラーが
        IDE充実、Javaほどではない
        →JavaVMが素晴らしいのではない
        予約語するより、分かりやすいもののほうが良い
     PHP→数学的な規則がよくわかる言語(==)
     
     Pythonのselfは?、明示的に渡しているだけ


    ■ライトニングトーク
    ●ケーベルラボ 小林
    python sf
    Python sf は計算に特化したソフト、ワンライナー

    ・元本返済
    等比級数等比数列の項の総和

    ●遷移図生成ツール
    小宮
    タイムインターメディア
    遷移図つくってますか?
    自社ではExcelVisioでつくることが多い


    追加、削除が大変
    ずれる
    Excelのバージョンが合わない
    blockdiag(ぶろっくだいあぐらむ)
    遷移図生成ツール
    Subversionで管理しやすい
    インストールeasy_install blockdiag
    diagram {
    A->B->C
    }

    SVGが表示できるブラウザ上でできる。

    →ノードの形状切り替え
    →レイアウトエンジンの見直し

    ■SciPy-Japan2011 Project
    Python書いてたら英語くらいできる。」
     David
    NOUVEL
    SciPyのカンファレンスを2011に日本で開きたい

    Europe
    #pw1012
    開催のための協力やボランティア募集中


    http://www.python.jp/Zope/workshop/201012/

    ●Session 01
    mixiアプリGoogle App Engine(7時より30分)
    山下
    @weboo
    mixi Plugin イイネ!ボタン
    mixi Graph API
    mixi アプリ
    mixi OpenID

    ■通常のWebサイトとの違い
    一般的なWebサイトで人を集めるのは難しい→人気が出た場合は一気にユーザが増える

    ■なぜソーシャルアプリは流行るか?
    ◯理由
    ・ユーザ登録を擦る必要がない
    ・ユーザが勝手に宣伝してくれる
    バイラルマーケティング【viral marketing】のための手段が整っている(企業の商品やサービスを消費者に口コミで宣伝してもらい、利用者を広げるマーケティング戦略。「バイラル」は「感染的な」という意味で、マーケティングの仕組みをウィルスの感染・増殖に例えている。)
     Activity Voice invite Request Message

    サードパーティがリクエストを返す

    ◯人気のあるアプリは1000万人〜数億PV/日

    ■あなたのサーバは耐えられますか?
    ・各社がインフラ構築支援サービスを続々提供
    ニフティクラウド
    GMO
    DSAS
    ・DC Frontier

    →ほぼ無料からできる

    python & GAE
    松尾 Google
    App Engine for mixi application

    ◯朝と昼と晩にアクセスが多い

    ◯メリット:Googleのインフラ上でmixiアプリケーションを動かせる
    →人気が出なければ0円で済んでしまう。
    ・オートスケーリング(サーバの負荷に応じて必要なリソースが自動的に割り当てられます。)
    ・データベースの部分も自動でスケールする仕組み
    1.4.0 数字を公表した→週間15万 10億ページビュー
    1600QPS

    Billable Quota(お金を払うと増えるクォータ)

    ・Minimize work(1000ms rule)
    ユーザに1秒以内に返す→システム全体を守るため

    Avoid datastore contention
    Love Task Queue and Memocache
    Put a deadline on DB opperarion
    →データベースにデッドラインを設定 タイムアウト

    ■1.4.0リリース

    ・ロードマップ
     GAE 1.4.0 で常時起動インスタンスが可能
     
    ・データストアオペレーションに関して、アバイラビリティーを設定


    バスキュール 田中
    サーバのエンジニアはいない
    女性ターゲット→mixi

    mixiアプリ 華麗なる女優たちは
    ・ハリウッド女優体験
    Python&GAE

    DAU:10万以上
    ピークタイム:200〜300rec/sec

    GAE/Javaの経験は社内にあったがリソースの確保ができない
    →新たにパートナーを探した
    大阪 テラポート

    ビープラウドCTO@shin_no_suke

    JOIN停止(ペナルティ)

    404 not foudの大量発生
    InportErrorno発生に起因し、不完全な状態でインスタンスが立ち上がり
    404 not foundで返していた。

    HTTP QUEのタイムアウト制限10→7秒
    makeququestキューで

    →1.4.0で改善した
    ただし、mixiアプリでは減らした方がいい

    ■GAEのメリット(2つ)
    ・スケーラビリティ
    →スケーラビリティを気にせずに参加できる
    →諦めていたことが可能

    ユーザーにはドキドキ
    我々はウキウキ
    →運用保守のことを考えずにチャレンジ

    ■Session 02
    ・Harvester - CG映像制作用ジョブディスパッチシステム(7時30分より30分)

    レンダリングは画像が1枚1枚に描きおろし
    cronで定期的な再起動をかけたりDBの内容にチェック
    Push型からPull型の設計へ

    JSONを使って通信を行う
    Python2.6ベース
    Windowsを基本、Linuxでもテストしている
    ・タグを割り振ることにより、特定のノード群のみで実行されるように可能
    ・ジョブテンプレートによりフレームごとに行う処理を簡易的に記述できる

    GUIExtJSで構築
    HTMLを入れることでアーティストに
    サーバ間はJSONベースのAPI

    JSON
    ・ベースがHTTPなので安定している
    Firebugででバック可能

    Apacheのdeflateを使ってみたところjson通信が700kb/sから20kb/sまで圧縮
    WindowsでWMIを使っているが安定性に欠けている


    ■Session 03
    Pythonのイケてるところ/イケてないところ(8時5分より40分

    Java : 庄司嘉織さん 浅草Rubyより
     イケてる:インデント守っている(守らない人と仲良くできない)
          Javaと比べるとすべてイケてる
          インタプリタがある
          数字の0、空の配列がFalse
     イケてない:後方互換していたのにlen、strオブジェクト指向ではない。
          予約語が少ない、True、False、None(ナン)あまり使わない?
      
     Java→コンカレントキー、スレッド(Webはあまり関係ない?)
     Pythonのselfはインスタンスメソッドを呼んだ時の引数の数が分かりにくい
     
    Perl : 松野徳大さ 2.4使っていた
     イケてる:インデント 
          SVG
          ライブラリが多い(ACPクライアントライブラリがない)
     イケてない:正規表現リテラルがない
     Python→静的スコープ
     
    PHP : 小泉守義さん
     イケてる:インデント
          標準関数があるが長くて覚えられない
          ドキュメントが充実
     イケてない:インデント
          テンプレート言語として向いてない、HTMLと混ぜてかけない
        
     Perl→スコープの範囲がいろいろ切り替えられる言語
     
    Ruby : 高橋征義さん Perl PHPを仕事 Rubyは学生時代
        電子書籍Squirrelの言語の本を出す
     イケてる:海外ではRailsはWebが強いが、他はPython
          Rubyにあるような変に英語っぽいDSLPythonはない
     イケてない:Pythonは蛇だらけ、Railsは見栄えのあるロゴを作った
     
     PHP→===の完全一致がキモイ
     
    Python : 西尾泰和 さん
     イケてる:Javaコンパイラのエラーが
        IDE充実、Javaほどではない
        →JavaVMが素晴らしいのではない
        予約語するより、分かりやすいもののほうが良い
     PHP→数学的な規則がよくわかる言語(==)
     
     Pythonのselfは?、明示的に渡しているだけ


    ■ライトニングトーク
    ●ケーベルラボ 小林
    python sf
    Python sf は計算に特化したソフト、ワンライナー

    ・元本返済
    等比級数等比数列の項の総和

    ●遷移図生成ツール
    小宮
    タイムインターメディア
    遷移図つくってますか?
    自社ではExcelVisioでつくることが多い


    追加、削除が大変
    ずれる
    Excelのバージョンが合わない
    blockdiag(ぶろっくだいあぐらむ)
    遷移図生成ツール
    Subversionで管理しやすい
    インストールeasy_install blockdiag
    diagram {
    A->B->C
    }

    SVGが表示できるブラウザ上でできる。

    →ノードの形状切り替え
    →レイアウトエンジンの見直し

    ■SciPy-Japan2011 Project
    Python書いてたら英語くらいできる。」
     David
    NOUVEL
    SciPyのカンファレンスを2011に日本で開きたい

    Europe
    #pw1012
    開催のための協力やボランティア募集中


    帰ってきた Python Workshop 2010/12
    2010年12月8日(水) 午後7時より午後9時ごろまで

    ●Session 01
    mixiアプリGoogle App Engine(7時より30分)
    山下
    @weboo
    mixi Plugin イイネ!ボタン
    mixi Graph API
    mixi アプリ
    mixi OpenID

    ■通常のWebサイトとの違い
    一般的なWebサイトで人を集めるのは難しい→人気が出た場合は一気にユーザが増える

    ■なぜソーシャルアプリは流行るか?
    ◯理由
    ・ユーザ登録を擦る必要がない
    ・ユーザが勝手に宣伝してくれる
    バイラルマーケティング【viral marketing】のための手段が整っている(企業の商品やサービスを消費者に口コミで宣伝してもらい、利用者を広げるマーケティング戦略。「バイラル」は「感染的な」という意味で、マーケティングの仕組みをウィルスの感染・増殖に例えている。)
     Activity Voice invite Request Message

    サードパーティがリクエストを返す

    ◯人気のあるアプリは1000万人〜数億PV/日

    ■あなたのサーバは耐えられますか?
    ・各社がインフラ構築支援サービスを続々提供
    ニフティクラウド
    GMO
    DSAS
    ・DC Frontier

    →ほぼ無料からできる

    python & GAE
    松尾 Google
    App Engine for mixi application

    ◯朝と昼と晩にアクセスが多い

    ◯メリット:Googleのインフラ上でmixiアプリケーションを動かせる
    →人気が出なければ0円で済んでしまう。
    ・オートスケーリング(サーバの負荷に応じて必要なリソースが自動的に割り当てられます。)
    ・データベースの部分も自動でスケールする仕組み
    1.4.0 数字を公表した→週間15万 10億ページビュー
    1600QPS

    Billable Quota(お金を払うと増えるクォータ)

    ・Minimize work(1000ms rule)
    ユーザに1秒以内に返す→システム全体を守るため

    Avoid datastore contention
    Love Task Queue and Memocache
    Put a deadline on DB opperarion
    →データベースにデッドラインを設定 タイムアウト

    ■1.4.0リリース

    ・ロードマップ
     GAE 1.4.0 で常時起動インスタンスが可能
     
    ・データストアオペレーションに関して、アバイラビリティーを設定


    バスキュール 田中
    サーバのエンジニアはいない
    女性ターゲット→mixi

    mixiアプリ 華麗なる女優たちは
    ・ハリウッド女優体験
    Python&GAE

    DAU:10万以上
    ピークタイム:200〜300rec/sec

    GAE/Javaの経験は社内にあったがリソースの確保ができない
    →新たにパートナーを探した
    大阪 テラポート

    ビープラウドCTO@shin_no_suke

    JOIN停止(ペナルティ)

    404 not foudの大量発生
    InportErrorno発生に起因し、不完全な状態でインスタンスが立ち上がり
    404 not foundで返していた。

    HTTP QUEのタイムアウト制限10→7秒
    makeququestキューで

    →1.4.0で改善した
    ただし、mixiアプリでは減らした方がいい

    ■GAEのメリット(2つ)
    ・スケーラビリティ
    →スケーラビリティを気にせずに参加できる
    →諦めていたことが可能

    ユーザーにはドキドキ
    我々はウキウキ
    →運用保守のことを考えずにチャレンジ

    ■Session 02
    ・Harvester - CG映像制作用ジョブディスパッチシステム(7時30分より30分)

    レンダリングは画像が1枚1枚に描きおろし
    cronで定期的な再起動をかけたりDBの内容にチェック
    Push型からPull型の設計へ

    JSONを使って通信を行う
    Python2.6ベース
    Windowsを基本、Linuxでもテストしている
    ・タグを割り振ることにより、特定のノード群のみで実行されるように可能
    ・ジョブテンプレートによりフレームごとに行う処理を簡易的に記述できる

    GUIExtJSで構築
    HTMLを入れることでアーティストに
    サーバ間はJSONベースのAPI

    JSON
    ・ベースがHTTPなので安定している
    Firebugででバック可能

    Apacheのdeflateを使ってみたところjson通信が700kb/sから20kb/sまで圧縮
    WindowsでWMIを使っているが安定性に欠けている


    ■Session 03
    Pythonのイケてるところ/イケてないところ(8時5分より40分

    Java : 庄司嘉織さん 浅草Rubyより
     イケてる:インデント守っている(守らない人と仲良くできない)
          Javaと比べるとすべてイケてる
          インタプリタがある
          数字の0、空の配列がFalse
     イケてない:後方互換していたのにlen、strオブジェクト指向ではない。
          予約語が少ない、True、False、None(ナン)あまり使わない?
      
     Java→コンカレントキー、スレッド(Webはあまり関係ない?)
     Pythonのselfはインスタンスメソッドを呼んだ時の引数の数が分かりにくい
     
    Perl : 松野徳大さ 2.4使っていた
     イケてる:インデント 
          SVG
          ライブラリが多い(ACPクライアントライブラリがない)
     イケてない:正規表現リテラルがない
     Python→静的スコープ
     
    PHP : 小泉守義さん
     イケてる:インデント
          標準関数があるが長くて覚えられない
          ドキュメントが充実
     イケてない:インデント
          テンプレート言語として向いてない、HTMLと混ぜてかけない
        
     Perl→スコープの範囲がいろいろ切り替えられる言語
     
    Ruby : 高橋征義さん Perl PHPを仕事 Rubyは学生時代
        電子書籍Squirrelの言語の本を出す
     イケてる:海外ではRailsはWebが強いが、他はPython
          Rubyにあるような変に英語っぽいDSLPythonはない
     イケてない:Pythonは蛇だらけ、Railsは見栄えのあるロゴを作った
     
     PHP→===の完全一致がキモイ
     
    Python : 西尾泰和 さん
     イケてる:Javaコンパイラのエラーが
        IDE充実、Javaほどではない
        →JavaVMが素晴らしいのではない
        予約語するより、分かりやすいもののほうが良い
     PHP→数学的な規則がよくわかる言語(==)
     
     Pythonのselfは?、明示的に渡しているだけ


    ■ライトニングトーク
    ●ケーベルラボ 小林
    python sf
    Python sf は計算に特化したソフト、ワンライナー

    ・元本返済
    等比級数等比数列の項の総和

    ●遷移図生成ツール
    小宮
    タイムインターメディア
    遷移図つくってますか?
    自社ではExcelVisioでつくることが多い


    追加、削除が大変
    ずれる
    Excelのバージョンが合わない
    blockdiag(ぶろっくだいあぐらむ)
    遷移図生成ツール
    Subversionで管理しやすい
    インストールeasy_install blockdiag
    diagram {
    A->B->C
    }

    SVGが表示できるブラウザ上でできる。

    →ノードの形状切り替え
    →レイアウトエンジンの見直し

    ■SciPy-Japan2011 Project
    Python書いてたら英語くらいできる。」
     David
    NOUVEL
    SciPyのカンファレンスを2011に日本で開きたい

    Europe
    #pw1012
    開催のための協力やボランティア募集中