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には入らない
mercurialはTortoise互換
pull requestは議論できない
5つだけログ出力
hg log --limit 5
◯LT
@vlantasさん
・Riak カサンドラみたいな Erlang
・GithubはErlang
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に移植する?
リリースサイクル
python2.6が2013年にサポート打ち切る
・いつからPython3に切り替える?
・Python3てなに勉強すればいい?
◯UbuntuのPythonサポート
・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