Python エンジニアの作り方 2011.08 #pyconjp

8,985 views

Published on

0 Comments
28 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
8,985
On SlideShare
0
From Embeds
0
Number of Embeds
580
Actions
Shares
0
Downloads
36
Comments
0
Likes
28
Embeds 0
No embeds

No notes for slide

Python エンジニアの作り方 2011.08 #pyconjp

  1. 1. Python エンジニアの作り方<br />小宮健 (@tk0miya)<br />
  2. 2. お前誰よ<br />名前<br />小宮健<br />Twitter: @tk0miya<br />所属<br />(株)タイムインターメディア<br />テクニカルオフィサ<br />Python 歴<br />ちょうど 2年ぐらい<br />
  3. 3. お前だれよ<br />blockdiagシリーズの中の人<br />テキストファイルから図を生成するツール<br />See http://blockdiag.com/<br />Sphinx 拡張の開発 (googlechartsなど)<br />
  4. 4. Pythonエンジニアの作り方<br />Python に出会ってからの体験談<br />ソフトウェアのリリースを通しての経験<br />自分がどう変わったのか<br />注意事項<br />技術的な話はしません<br />効果には個人差があります<br />
  5. 5. Before Python<br />
  6. 6. My Computing History<br />コンピュータ歴 17年<br />C, Ruby, Perl などを使ってきた<br />Linux (Debian)歴 12年ぐらい<br />
  7. 7. My Computing History<br />
  8. 8. Python に出会う前の自分<br />ギークになりたいギーク見習い<br />オールドタイプ<br />新しいツール/手法を取り入れない<br />ツールを作ってもリリースしない<br />いいアイディアがあれば、といつも思ってる<br />
  9. 9. Python との出会い<br />まったくの偶然<br />同僚が Pythonエンジニアだった<br />中略<br />付き合いで使い始めた<br />最初の印象<br />取り立ててすごい言語だとは感じなかった<br />シンプルかつストイックな言語<br />
  10. 10. Develop with Python<br />
  11. 11. Meet up a good idea: blockdiag<br />仕事で画面遷移図を作る機会があった<br />毎週 Visio で微調整を繰り返す<br />ほんの少しの変更に 1-2時間かかる<br />ほとんどレイアウト調整<br />遷移図画像を生成するツールをつくろう<br />blockdiagを作り始めた<br />最初のリリース(0.1.0)まで約2週間<br />
  12. 12. 決心<br />遷移図生成ツールはちゃんとリリースする<br />投げ出さない<br />完璧を目指さない (80% の出来をめざす)<br />新しい技術を取り入れる<br />ユニットテスト<br />分散バージョン管理 (Mercurial)<br />新しい言語:Python<br />
  13. 13. blockdiagの構成技術<br />パーサ<br />テキストファイルを解析しながら読み込む<br />funcparserlibのサンプルをそのまま流用<br />レイアウトエンジン<br />読み込んだデータを適切に並べる<br />地道に改良を繰り返す<br />画像出力<br />線、円などで画像を描く<br />PIL でベタ書き。 BASICの延長線上<br />
  14. 14. 開発途中で必要になった知識<br />環境構築ツール (buildout)<br />パッケージングの知識 (PyPI, setuptools)<br />クラウド環境 (AppEngine)<br />Web フレームワーク (Flask)<br />プラグイン構造の作り方 (setuptools)<br />Python 2.4〜2.7 の差異<br />依存ライブラリへのパッチ投げ<br />
  15. 15. 開発の助けになった人/ものたち<br />Google<br />Twitter<br />エキスパート Python プログラミング<br />友人の意見<br />勉強会/Hack-a-thon で出会った人たち<br />
  16. 16. ソフトウェアのリリース<br />以前はリリース = 公開だと思っていた<br />blockdiagはみんなに使って貰いたい<br />単にPyPIにアップロードするだけでは足りない<br />いろんな勉強会で発表することに<br />
  17. 17. 勉強会での発表<br />積極的に発表を繰り返した<br />9ヶ月間で 14回発表<br />開発系(Python, Perl, Ruby)<br />ネットワーク系(JANOG, #qpstudy, #odstudy)<br />英語圏 (EuroPython)<br />Demonstrable な発表を心がけてきた<br />百聞は一見にしかず。デモ重要<br />
  18. 18. After development w/Python<br />
  19. 19. blockdiagを開発して得たもの<br />Python を使った開発のやり方<br />“勉強”と”開発”の違い<br />開発者とユーザーの幸せなサイクル<br /><ul><li>アウトプットはインプットを呼ぶ</li></ul>コミュニティの力<br />
  20. 20. まとめ: Python エンジニアの作り方<br />ソフトウェアを開発しよう<br />既存の OSS プロジェクトへの参加等<br />作るだけではなくリリースも<br />発信(アウトプット)しよう<br />得た情報はブログ/勉強会などでアウトプットする<br />楽しむこと<br />勉強会や Sprint, Hack-a-thon などで仲間を作る<br />
  21. 21. Q&A<br />
  22. 22. ご清聴ありがとうございました<br />宣伝<br />blockdiag使ってください (http://blockdiag.com)<br />Office Hour やります<br />13:20〜13:50 at 3F 廊下<br />ざっくばらんに声をかけてください<br />明日の Sprint でも開発しています<br />

×