万年素人からHackerへの道

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

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

    Python Developers Festa 2012.11

    URL: http://connpass.com/event/952/

    LINEはHTTPを利用してログイン処理や、スタンプ情報、友達の状態・通知情報の取得などをしている。
    TCPではなく、UDPが音声や動画配信に使用される。
    SEGA コイン落としが凄いらしい

    ●mopemopeさんのmeinheld
    https://github.com/mopemope/meinheld

    Pythonデザインパターン
    http://code.activestate.com/recipes/langs/python/

    ●最速最強Webサーバーアーキテクチャ
    http://qiita.com/items/d9db1ed5493c2d8e1c69

    ◯ 定期プレゼン
    Python 3.3 アップデート
    @torufurukawa

    yield from 構文
    外側から先導?で引数に入れてコルーチンのように出来る。

    u復活
    2.xから移行しやすい

    • X faulthandler

    もっと下のレイヤーのエラーが出る

    import lzma
    

    unittest.mockで依存性も

    venvモジュール

    $python3.3 -m venv tongpoo
    $cd tongpoo
    $ls
    bin incliude lib pyvenv.cfg
    $source bin/active
    $switch python


    What’s New In Python 3.3
    http://docs.python.org/3/whatsnew/3.3.html

    Pythonを取り巻く開発環境(PyCon JP 2012資料 #pyconjp)
    http://ymotongpoo.hatenablog.com/entry/2012/09/16/090842

    What's New In Python 3.3をざっと眺める
    http://www.slideshare.net/likr/whats-new-in-python-33

    ◯Impala の話
    @shiumachi Cloudera
    http://www.cloudera.co.jp/blog/cloudera-impala-real-time-queries-in-apache-hadoop-for-real.html

    SlideShareのURL:http://www.slideshare.net/shiumachi/impala-15324018

    Impalaとは?
    低レイテンシ・分析特化型クエリ実行基盤

    分析特化型クエリ実行基盤。
    Google Dremel、Google F1などにインスパイアされて開発された。
    中の人がF1エンジニア。データサイエンティストが使うことを想定している。若干R&D向け。

    なぜ開発された?
    Hadoopだと高レイテンシですぐに結果がほしいのに時間かかる。あとHiveみたいにクエリ言語的なものでやりたい。

    MapReduce処理
    Apache MapReduceとは?Hadoopのコアコンポーネントの一つ。バッチ処理を分散して行う。耐障害性をもったものをわりかし簡単に作れる。

    プログラミング言語のMapとReduceのように、これらを組み合わせてデータ処理に応用したもの

    Shuffle処理

    Hadoop Hive

    http://37signals.com/

    低レイテンシでできるが、機能は少ない
    問題点:簡単になったとはいえ、やはり大変。

    データを並列にMapperに流しこむ。
    MapperからReducerに対して、データ集約を行う(key一致したもので)。
    そのReducerに対して処理を行うと分散できる。

    なので、上位がいくつか出てきた。HivemOozie、Pig、Mahoutなど。

    アーキテクチャはHiveQLと同じ(一部制限はあるけど)。
    Hiveは中央の実行サーバで実行計画作ってたが、Impalaはスレーブが実行計画を作成、さらにスレーブが実行させる。
    あとローカルを読んだりもできるので速い。

    HiveはUDFが使えるMRを使うので障害耐性がある
    現在はデータ菜園テストが使っている

    ・"NOT FREE"
    @everes

    TOLOT
    http://tolot.com/
    A6サイズ 64ページの冊子を500円で作れるサービス
    「写真を印刷するならIndigoが標準」
    コンピュータで変換処理かけてプリンタに持っていくのが時間かかる。
    ただIndigoはここらへんを分散できたりする。
    1台3A?の印刷機

    アーキテクトだが、工場認可の書類を作った。

    FREE + PREMIUM = FREEMIUM

    TOLOTが搭載するのは基本機能だけ

    PHPのテストライブラリtestman
    https://github.com/tokushima/testman

    Success
    Fail

    PHPUnitが使いづらいから自分で作った。
    __setup__
    __teardown__



    Python in WebKit Land

    http://steps.dodgson.org/

    WebKitではBuildBotとTracChromiumではRietveld、GYP、App Engineを使っている。

    ※ Buildbot CIツール

    Chromium
    Ritveld
    GYP(first party)
    App Engine

    Bots
    Bugzilla

    http://www.ohloh.net/p/WebKit

    commiters.py

    suggest-reviewers:レビュワーを提案してくれる。

    webkit-patchコマンド

    「生JavaScript使わず聖杯を見つけろ」
    CoffeeScript, RequireJS, Backbone.js
     
    ・ae35 + @ian
    djangodash
    48時間でサービス作ろう

    MR.DUNG


    ・最速最強Webサーバーアーキテクチャ
    http://qiita.com/items/d9db1ed5493c2d8e1c69
    meinheld
    まいんはると

    Luaモジュール
    nginxとmemcachedだけが速かった。

    meinheldはC言語

    gunicornはnginxには勝てない
    コールバックのややこしさを解消するためにgreenlet使う

    OSの実際のTCPスタックの動作を考慮に入れて最適化する。
    OSは accept() を呼ばなくても backlog (listen の引数に指定した数) までは自動でTCPの接続を開始しています。

    OSの実際のTCPスタックの動作を考慮に入れて最適化する。

    writableにならないと〜
    など
    nginxよりはやくなった。

    thundering hard 問題
    ネットワークプログラミングでは常識
    同時にアクセプトするが、実際に1プロセスだけしかできない。

    イベントドリブンプログラミングでpreforkモデルだとだとこの問題が発生する。

    ・takabow