万年素人からHackerへの道

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

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

    Python Developers Festa 2012.03 #pyfes

    http://www.zusaar.com/event/158001
    参考:http://d.hatena.ne.jp/Voluntas/20111015/1318682867
    ◯Pyfes行ってきた
    場所:Oracle(銀座線 外苑前 4a,4d出口)
    建物のオラクル青山センター 13F S3,4,5,6
    ※入館書を無くすとOracle社員になれるのは都市伝説らしい
    ※Festaはイタリア語
    ※昼は12:00-13:00

    Pythonのテスト
    tox, unittest2, nose, mock, pytest, coverage

    ・Python3.3のありか
    http://python.org/download/releases/3.3.0/

    →~/pyfes_studyに仮想環境いれてみた

    /opt/python-3.2.2/bin/virtualenv --python=/usr/local/bin/python3.3 ~/pyfes_study

    ・Python2系
    /opt/local/bin/python
    ・Python3系
    /usr/local/bin/python

    Python Developers Festa 2012.03 Mercurial Hands-on
    URL:https://bitbucket.org/troter/pyfes-2012.03-mercurial-handson/wiki/Home


    ・環境つくった

    /opt/python-3.2.2/bin/virtualenv --python=/usr/bin/python2.7 ~/mercurial_study

    ・ダウンロード
    →pipではダメだった2.1.1でのバグ??

    $ pip install mercurial
    Downloading/unpacking mercurial
      Downloading mercurial-2.1.1.tar.gz (3.3Mb): 3.3Mb downloaded
      Running setup.py egg_info for package mercurial
        Traceback (most recent call last):
          File "<string>", line 14, in <module>
          File "/Users/shinriyo/mercurial_study/build/mercurial/setup.py", line 457, in <module>
            version = version.splitlines()[0]
        AttributeError: 'list' object has no attribute 'splitlines'
        Complete output from command python setup.py egg_info:
        Traceback (most recent call last):
    
      File "<string>", line 14, in <module>
    
      File "/Users/shinriyo/mercurial_study/build/mercurial/setup.py", line 457, in <module>
    
        version = version.splitlines()[0]
    
    AttributeError: 'list' object has no attribute 'splitlines'

    ・バイナリからmpkgのコンパイル済みのを落とす
    XCodeのバージョンとかで失敗らしいMac限定バグ・・
    URL:http://mercurial.selenic.com/
     からバイナリを落とす

    ・バージョン見る
    ※ハイフンは要らない※コマンドになってる

    $ hg version
    Mercurial - 分散構成管理ツール(バージョン 2.1.1+20120301)

    ・メモ
    藤原さんのBlog
    URL: http://www.lares.dti.ne.jp/~foozy/fujiguruma/scm/mercurial.html
    自分の親は第1親
    マージ対象は第2親
    gitはwindowsには入らない
    mercurialTortoise互換
    pull requestは議論できない

    5つだけログ出力

    hg log --limit 5


    ◯LT
    @vlantasさん
    ・Riak カサンドラみたいな Erlang
    GithubErlang
    http://www.slideshare.net/torufurukawa/python-33
    Python 3.2

    >>> 'ほげ'
    'ほげ

    Python 3.3

    'ほげ' == u'ほげ'

    サロゲートペアも1文字

    >>> a = '\U0001F34C'
    >>> len(a)
    1

    ・distutils

    デーモンプロセスのユーティリティ

    ・vertualenvっぽいの

    python3 -m venv

    @tokorotenさん
    ・Fuzzing
    ファジングとは、ソフトウェアのバグや脆弱性を検証するためのテスト手法の一種
    →レベルを上げて物理で殴る
     計算力を上げて、テストで殴る

    並列化によって高速可

    ・ダムファジング
     ランダムなデータ入力
    ・ミューテーションファジング
     正常なデータを元に突然変異させて入力
     →Microsoft などでやってる
    ・スマートファジング
     プロトコルを元にしてデータを生成
     →1.XMLとして正しいか?2.中身として正しいか?

    ・GA Fuzzing

    ・reのパーサ
    正規表現をパースするstr_parseがある。

    ◯まとめ
    ・Fuzzingランダムデータにヨル攻撃
    ・バグがない事の保証
    正規表現から
    http://www.slideshare.net/TokorotenNakayama/fuzzing-pyfes

    @atusuoishimotoさん
    ANS-prog (アンスプログ
    http://answer.pythonpath.jp

    ◯Python3どうするよ?
    ・既存のアプリはいつPython3に移植する?
     リリースサイクル
     python2.6が2013年にサポート打ち切る

    ・いつからPython3に切り替える?
    ・Python3てなに勉強すればいい?

    UbuntuPythonサポート
    ・Ubuntu12.04 LTS → Python2.7(2.6は削除されたので注意)

    ・Ubuntu14.04 LTS → Python3.x


    Windows環境 Windows8サポート?
     Windows8サポート???
     インストラが動かなくなる可能性
     Python2.7の公式コンパイラVisual C++2008が入手不可能になる可能性
     Python本体をビルドできなくなる
     拡張モジュールのビルドも困難

    主要パッケージの移行状況
    ・未対応
     Django
     PIL
     Twisted

    PyPIダウンロードトップ50のうち、30くらいはPython3対応済み
    Django等の大きめのプロジェクトも以降が始まりそう
    そろそろPython2.4,2.5がサポート外になってきた

    アプリの寿命を考える
    Python3スライドシェア
    http://www.slideshare.net/aodag/bpstudy54-python3

    @natsu_bmさん
    塹壕戦から揚陸艇強襲上陸まで:生き残るためのテスト戦略とは(仮)

    訊くのもいいが、最初から知っておけばいい
    初期段階からテスト参加者が参加
    →伝言ゲームが避けられる

    テスト≠品質

    @laniusさん
    Koshinukeによる最高のGit体験

    ・Koshinukeとは?
    Git Wenフロントエンド(Githubなど)
    社内向け
    オープンソース
    タスク管理機能を搭載予定
    アプリケーションライフサイクル〜〜

    その他かっこいい
    Gitblit
    http://gitblit.com/

    ・koshinuke
    ・koshinuke.java
    ・koshinuke.py

    ・blame
    どの行が更新したかどうか?

    Chrome Extention
    Octoboard

    @shimizukawaさん
    運用コストが半分になった!Pythonパッケージの極意
    PYTHON PACKAGING

    pipはDistributeがないと動かない

    distutils2→distutils2→packaging ←pipが利用

    ・PEP306
    バージョン管理

    ◯pysetupの使い方
    3.3
    ・従来

    python setup.py install

    ・pysetupの使い方

    pysetup run istall_dis

    Graphのコマンド
    vertualenvは対応していない?

    pysetup graph blockdiag

    Distutils2のドキュメントは放置されてるのでpython3.3のpackagingのドキュメントを読む

    ・Distutils2/packaging

    出版社が出版社を運営するようなもの

    @kuenishiさん
    http://dl.dropbox.com/u/673631/pyfes2012/_build/html/index.html
    できる!Zookeeper
    ZOO keeper 分散調停システム
    GFS
    BigTable
    Chubby
    Hadoop
    HBase
    ZooKeeper

    ・HBase使ってる人はZookeeper使ってる
    ・ざっくりいうと
    ものすごく冗長化されたKVS
    大抵のことには動じないKVS
    死活監視も出来ちゃうKVS
    故障もちろんOK
    ネットワーク分断

    マスタ調達他、なんかの切り替え
    分散キュー
    小さなデータ格納庫
    分散ロック、分散トランザクション

    NFSみたいな感じ

    ・Semantics
    ふつうのファイルシステム

    ・インストールコマンド

    sudo pip install zc-zookeeper-static

    ※ソースインストールはおすすめしない antでPythonをビルドするらしいので

    NICの故障の検知

    ・Jubatus
    リアルタイム機械学習
    C++を使った
    stormを機械学習を足した感じ

    @takabow
    佐藤

    Oracle Coherence
    ・分散データグリッド(×分散キャッシュ)
    Pure Java
    1つのjarファイルで完結
    サーバーアプリとCoherence API群からなる
    key-value pairのObjectをMapに格納
    KVS
    クラスタを組んでるのか?

    Coherenceの内部構造概略
    キャッシュの格納方法は具体的にどこか?
    backing map
    Javaなのでheapかな?

    ・Cash Service
    Distributed Cache Service(分散キャッシュ)

    同じデータにレプリケーションする
    heapに格納するデータをRDB

    分散キャッシュがメモリにあふれる
    backスキーマを定義される

    分散KVS
    Coherence Serviceが

    3つのノードのうち1つが切れても他のノードへ自動再配布

    cache.put("key", "value");
    cache(i)l
    

    ヒープが格納されているのが1台いれば大丈夫。

    ・TCMP
    TCPはおせっかいなので、UDPを使った上独自で

    ・POF(Portable Format Object)
    Coherence独自のシリアライザ

    ・Quety
    転送量&転送回数の削減
    データクセスにput/getばかりじゃ毎回クライアントにデータが飛んでくるのでI/Oムダ
    処理手順を投げて〜

    ・ネットワーク関連の障害
    CAPで言うところの「一貫性」+「可読性」

    ・プロセスダウンの検知をするには
    TCP Ring

    ・サーバー(OS)のダウンを検知するには
    IM Monitor
    JavaのisReachable

    ・一番避けたいクラスターの分断
    正常値

    障害発生時

    @yssk22
    ・果てしないあのCloudFoundryの彼方へ私をつれていって

    Cloud Foundry
    Cloud Foundry ファイルングの名前
    実体はない
    Rubyのgemしかないのもある

    好きな言語やフレームワークが使える
    Java/Ruby/Perl/PHP/Python/Node.js/C#VB(ASP/NET)/Erlang/Smalltalk

    スケールアウト

    vmc apps

    ・ベンダー
    Active State(Windows用のActive Perl配布してたとこ)
    VMware
    TIear 3(Eaarsの会社)
    FeedHenty
    HP
    Dell

    ・一言で
    カーネルのPaaSサービス

    オープンソースだがオープンでない
    メーリングリストでやってるわけではない

    ・mongoDBつかえる?
    大量のデータをいれてもだめ

    デプロイメントのツールでいい。

    ・20インスタンスまでつかえる

    AWS、GAE、Herokuみたいな

    @takufukushima
    ネットワーク仮想化プラットフォームMidoNetについて

    ネットワーク仮想化とは?
    マルチデバイス
    ネットワークサービスの普及
    動画、音楽サービス

    データセンタ集約
    ラックにまとめて管理
    スケールアウト
     仮想化する場合も
    ネットワークはツリー型リポジトリ

    @hiroki_niinuma
    web魚拓
    「忘れられる権利」

    落ちないサービス Note
    社民党の悪いことを載せる
    中越地震2500


    Tornadoの洋書がAmazon