2011年12月31日土曜日

2011年の振り返り

つらつらと書き連ねてみます。

1.月別の振り返り
1月 卒論ラッシュ。とにかく書き上げることに集中。
2月 卒論発表。東京引越し。
3月 震災でバタバタ。卒業式結局行けず。
4月 社会人デビュー。研修超楽しい。
5月 プログラミング研修終了。C/C++, Javaとあっぷあっぷしてた。
6月 擬似プロジェクト終了。後半はPCのセットアップを100台した。
7月 配属。Vimmerになる。限られた中で成果を残す必要があると思う。
8月 MacBook Air購入。職場のPCがネットブックになって四苦八苦。
9月 勉強会デビュー。やたらブログを書くようになる。
10月 Python界隈に顔を出すようになる。MBA、Vimなど理解を深める。
11月 Pythonとの親交を深める。体調管理の重要性を実感。
12月 忘年会ラッシュ。自分のダメっぷりを痛感。

2.雑感
今年ほどばたばたしていた年はないでしょう。
震災に敵うものはありませんが、
学生から社会人になり、
ブログも技術系ブログに移行しました。
更にiPhoneは持っていましたが、
MBAも購入しマカーになりました。
ちょっとでも興味を持ったことには首をつっこんでいった一年でしたね。

3.勉強会
後1ヶ月早くデビューしてPyConからのスタートにすれば最高でした。
新卒でもう勉強会とか行っているのと言われますが、
高校生や自分より年下の人がいることを考えると
特別早いというわけでもないのかなと思います。
それだけに自分の力量不足を感じられてよかったです。

4.仕事
何だか迷走していた気がします。
-仮説を立てて仕事を進めていく。
-限られた資源の中でどのように成果をあげるかを考えていく。
-自分で判断に困る問題は抱え込まないで周りにアラートを上げる。

上記3点は仕事をする上で意識してやっていたことです。
しかし自分はどうなりたいという視点が抜けていたので、
2012年はその1点を考えていきたいですね。

5.来年の抱負
-自分がどうなりたいのかを考え続ける。
-Pythonとの親交を深めるために、とにかく「書く」。
-体鍛える。

詳しくは年明けに書こうと思います。
それではみなさん、良いお年を!

2011年12月30日金曜日

Vimテクニックバイブルを読んでVimにプラグイン追加してみた part3

part1, 2に続いてpart3です。しばらく間が空きましたね。
まあ気にせず行きましょう。

今までquickrun.vimneocomplcacheだけで過ごしてきたものの、
気になるプラグインがでてきたので
まずは簡単そうなものから入れてみました。
今回入れたのは以下の2つ
- Vundle
- simplenote.vim

気になるプラグインを入れる際に、
管理は簡単な方がいいだろうとまずはVundleを導入。

Vundle
Vundleはvimがどのディレクトリから設定ファイル、プラグインファイル
を読み込むのかを決定している「runtimepath」オプションを操作する
だけなく、インストールや更新なども行うことができます。

導入の際はgitが必須です。以下のようにインストールします。
git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
次に_vimrcに以下のような記述をしました。
"Vundle設定
filetype off

set rtp+=~/.vim/bundle/vundle/
call vundle#rc()

"Bundle 'gmarik/vundle'     "必須
"githubにあるプラグイン
Bundle 'thinca/vim-quickrun'
Bundle 'Shougo/neocomplcache'
Bundle 'mrtazz/simplenote.vim'

filetype plugin indent on
後はVimを立ち上げて、
:BundleInstall

と叩けばインストール開始です。
インストールが完了すると以下のようになります。


simplenote.vim
SimplenoteはEvernoteのスキマを埋める簡単メモツールです。
(Vimテクニックバイブルには書いてありません)
simplenote.vimはvimからそのSimplenoteを扱おうという代物。
普段から書き慣れているエディタでメモを取りたいと思っていた自分には最適でしたね。
若干重いようですが許容範囲内かと思っています。

インストールは先程のVundleの設定に記しているので割愛します。
_vimrcに以下の設定を書きこむことでログインの手間を減らせます。
let g:SimplenoteUsername = "Enter your username"
let g:SimplenotePassword = "Enter your password"

最低限以下の3つのコマンドを覚えておけばOK
:Simplenote -l "Simplenoteにあるデータの一覧
:Simplenote -u "Simplenoteのデータを更新する
:Simplenote -n "新しいデータを作成する

その他・・・
他にもvimshell, unite.vim, surround.vimに興味があります。
会社でWindowsでもシェル使いこなしたいな
→自分Vim使っている
→vimshell使ったほうがいいのかな
という安直な気持ちですが(笑)

unite.vimは何が何だか分からないから知りたい。
surround.vimはテキストオブジェクトの操作を身につけたいからです。
まあPythonだけ弄っていくならそれほど意識する必要がないのかもしれませんが……

2011年12月26日月曜日

年末年始に向けて読みたい本5選

エキスパートPythonプログラミング読書会だけでなく
新宿Book-a-thonなど他の読書会にも顔を出すようになったきたので、
ここいらで読みたい本をまとめてみます。

エキスパートPythonプログラミング
Tarek Ziade
アスキー・メディアワークス
売り上げランキング: 5309
こちらは言わずもがな。

アジャイルサムライ−達人開発者への道−
Jonathan Rasmusson
オーム社
売り上げランキング: 966
まだ通して読んでないので一度読み通す。
その上で本の中にでてくる問も考えていきたい。

Being Geek ―ギークであり続けるためのキャリア戦略
Michael Lopp
オライリージャパン
売り上げランキング: 76875
評価面談も近いことだし、こちらも一度何が書いてあるのか通し見する。

グロービスMBAマネジメント・ブック【改訂3版】
グロービス経営大学院
ダイヤモンド社
売り上げランキング: 3489
情処対策みたいなところがあるけど、読むのが途中になっているので。

スティーブ・ジョブズ 驚異のプレゼン―人々を惹きつける18の法則
カーマイン・ガロ
日経BP社
売り上げランキング: 129
先日の新宿Book-a-thonで読んだ、
「エバンジェリスト養成講座 究極のプレゼンハック100」
でもジョブス型みたいな話がでてたので気になって。

この中から3冊も読み切れれば上出来でしょうか。

2011年12月23日金曜日

新宿 Book-a-thon #6に参加してきました。

新宿 Book-a-thon #6 : ATNDに参加してきました。
凍えるような寒さの中会場に辿りついたのですが、
「ルノワールどこよ!」
ちょっと迷いました。案内板もあれじゃ別のところ指してるって。

自分がついた時は@tk0miyaさんと@usaturnさんのお二人だけでした。
今日やることの紹介をして時間もそろそろってことだったので、
粛々と作業開始。
自分は
「エバンジェリスト養成講座 究極のプレゼンハック100」
を読みました。

エバンジェリスト養成講座 究極のプレゼンハック100
西脇 資哲
翔泳社
売り上げランキング: 13256

@dproject21さんにおすすめされてから積ん読になっていたので、
この機会にと思って一気に読みました。
ちょこっと書いてあることを抜粋させてもらうと、
-------------------------------------------------------------------------------
*私がプレゼンテーションで一番大切にしていることは、「経験」です。
プレゼンテーションでまず大切なのは「自分が説明するものを経験しているかどうか」、
そして「説明するものを友達や、周りの人にも好きになってほしいかどうか」です。
*P014-伝われば、成功。伝わらなければ、失敗。
*P015-一番最初にやらなければいけないのは何を伝えたいのかを決めること。
-------------------------------------------------------------------------------
*P71-プレゼンテーションの視点
*自分視点-〇〇のクラウド版を出荷します
*神様視点-〇〇のクラウド版が出荷されました
*顧客視点-クラウドで〇〇を手に入れることができます

*プレゼンテーションは顧客視点にすると、より上質に、より伝わりやすくなります。
自分視点、神様視点ですと、製品説明にすぎなくなってしまいます。なるべく顧客しし視
視点を心がけて下さい。
-------------------------------------------------------------------------------
*P077-プレゼンは、必ずドラマにする
*P080-ドラマになったプレゼンテーションは
◯登場人物(会社や製品、自分自身)をいつ紹介するか
◯クライマックスr(インパクト)をどこにするか
◯何話構成(何スライド、何分)にするか?
◯最終回(まとめ)は必ず作る
-------------------------------------------------------------------------------
*P107-比喩を使うことでよけいわかりづらくしない
*P109-実在しないもの、実在しない現象にたとえてしまう人はけっこう多いんですが、
実在しないものはイメージが共有できないので、使わないようにして下さい。簡単な
もの、実在するものにたえることを心がけて下さい。
*P124-数字を入れる
1分間に数字を3つ織り交ぜる。説得力を高めるときのテクニックです。
これも試してみてください。
1分間に3つ以上の数字を織り交ぜると、説得力が増します。
-------------------------------------------------------------------------------

途中@hekyouさん@th0x0472さんがいらっしゃいましたが、
良かった!本被らなかった!
「別に被ったっていいんですよ?」
とのお言葉も頂きましたが、まあこれはこれで。

当日読まれた本は他に、

エキスパートPythonプログラミング
Tarek Ziade
アスキー・メディアワークス
売り上げランキング: 11581

アジャイルサムライ−達人開発者への道−
Jonathan Rasmusson
オーム社
売り上げランキング: 2487

Being Geek ―ギークであり続けるためのキャリア戦略
Michael Lopp
オライリージャパン
売り上げランキング: 29707

Blogを書いている方が2名いましたね!
一人Advent Calendarをしている方々はお忙しいですよね。わかります。

普段はもっと雑談が多いBook-a-thonらしいですが、
今回は集中的に自分の持ってきたタスクをしていたようです。
お陰様で自分も
「エバンジェリスト養成講座 究極のプレゼンハック100」を
読破しました!
次回は1/10(火)だそうです。さ〜て次回は何を読みましょうか……
新宿 Book-a-thon #7 -新春スペシャル- : ATND

2011年12月15日木曜日

(続き)「エキスパートPythonプログラミング読書会 第二期 02」参加してきました。

感想は前回述べたので、今回は本編についてのまとめ

●リスト内包表記
    -mapより速い
        前はmapを使っていたが、mapはあくまで関数
        リスト内包表記は内部処理としてあるので、リストの方が早い
    -enumerate関数
        ループ処理でインデックスやカウンタを使いたい時に便利
    -リスト内包表記は慣れると書きやすて便利
        だけど可読性が低くなるときはfor文などの読みやすい方にする
        そのほうがPythonic

●Pythonic
    -Pythonのインタラクティブシェルで、
    import this
    と打つとそのThe Zen of Python、その世界観に触れることができる
以前ブログも書きました

●イテレータ
    -nextメソッド、__iter__メソッド
        プロトコルに問い合わせる関数
    -「プロトコル = アダプター」
        lenもアダプター
        シンタックスの分かりやすさを、
        ”アダプターをかましている”という考えだとしっくりくるかなと
    -イテレータプロトコルはどこで誰が定義したの?
        →リファレンスマニュアルに規約が乗っている
        →いまだとabc(抽象基底クラス)や仮想クラスのような形で、
        http://www.python.jp/doc/nightly/library/collections.html
        に乗っている
        ここを満たしていると、よりモダンな感じになる

    -たとえると、
        単にラップされていて、
        必要なものに必要な処理をするための橋渡しをしている
        コンセントのアダプタを意識すると分かりやい
        (海外にいくと必要)

        プロトコルに対応されていると、
        それはイテレータであることを保証している
        (ダックタイピングの話)
        ただそれだとゆるすぎるから、
        isインスタンスで証明できるようにしている

        改行コードを受けった時に改行単位で、行読み出しなど
        好きな単位でnextで読み込みできる組み込みでもある

        関数など使わなくても、for文回せばいいのねという認識になる


●ジェネレータ
    -yield
        yieldがあるとジェネレータになる関数ではない
        returnだと関数になるが、
        yieldだとジェネレータの中にreturn書くなと怒られる
    -StopIterationはお約束で、ループを抜けるために必要
 
   -ジェネレータはイテレータプロトコルを実装しているので、
     多段にyieldとかやるとメモリをほとんど食わずに、
     ほぼ無限長のものを扱える
     20GBのログなども落ちずにできると思う
    -フィルタ条件とか色々かましたくなってくると便利になってくる

    -sendメソッド
        ジェネレータを外からコントロールすることは不可能だったけど
        Python2.5でsendメソッドを搭載したので、
        コントロールできるようになった

        初期化の時はsendは使えない
        最初にnext使ってやらないといけない
        ジェネレータのそれ以降の動きを方向転換することができるのが、
        sendのいいところ

    -closeメソッド
        close()を渡すとexceptionを発生させる→finallyで拾う

●PEP
    -Python Enhancement Proposal(Python拡張提案)
    -PEPはPythonのモダンな仕組みを取り入れるためのもの
    -PEP8はPythonのコーディング規約を書いたもの

コルーチン
    -組み込みだとタスク
    -スレッドだとデッドロックを考慮する必要がある

●ジェネレータ式
    -リスト内包表記だと最初にメモリを食ってしまうため、
     順次処理ならジェネレーターで
    -順次処理系だとDBで1行(カーソル)を取り出していって、
     ジェネレーターでやると10万行一気に読みこまないで済むので便利

●range()とxrange()の違い
    -xrange()はオブジェクトを返している
    -xrange()はPython3でrange()になるためいらないと思われ
    -清水川せんせはほとんど使っていない
    -10万のrange() を作る時は有効ではある

取っていたメモを元に書いてみました。
過不足ありそうですが、ひとまずこれにて振り返り終了。

@tfmagicianさんのツイートにもあったけど、
清水川せんせのライブコーディングのログがあったらなあと。
ブログ書いてて思い出せない所があったりして、
もどかしい思いもしたので次回からは是非残して欲しいと思う。

2011年12月14日水曜日

(感想)「エキスパートPythonプログラミング読書会 第二期 02」参加してきました。

エキスパートPythonプログラミング読書会 第二期 02
参加してきました。
参加された皆さんお疲れ様でした。
今回参加されなかった皆さん次回にお会いしましょー。

さて今回学んだ内容は後ほどまとめるとして、
ところどころ思ったところについて書き連ねてみます。

今回は仕事が忙しくていけるかどうかわかりませんでした。
20:00までかかりそうだったので
今回はちょっと厳しいかなと思ったのですが、
半ば無理矢理終わらせてしっかり報告をしてきて5分遅れで到着。
ほんとは10分くらい遅れると思ったけど、
道がわかってたからまっすぐこれた。
(途中@usaturnさんと一緒になりました。)

今回からは前期にのっとって、自己紹介からスタート。
とはいっても30人全員だとそれだけで時間が終わってしまうので、
5分ほどの間各島(しま)、テーブルごとに自己紹介でアイスブレイク。
自分は@shomah4aさん、@kanonjiさん、@takanoryさん、
@tfmagicianさん、@Akira_Kitoさんと自己紹介させて頂きました。


その後読書会。
今回は清水川せんせも、
「第2章と3章はこの本では言語として一番難しいところ」
とおっしゃっていたこともあり質問の数も少なかったように思う。

今回やった範囲は
「第2章 構文ベストプラクティス-クラス以外」の前半、
●リスト内包表記
●イテレータとジェネレータ
自分も後追いで理解するのに必死すぎて他になかなか頭が回らない……

もっと具体的な使い所はPythonでプログラム書き続けていくと、
「あ、ここ使える」
というポイントがでてくるのかなと思いました。
今は頭ではわかっていても実際どうするというところまでいけてない。
ここについてまた改めてまとめます。


そして全体の所感ですが、
●LTやっぱおもしろい。
今回は@usaturnさんもLTした。
ただLTはLTで面白かったけど周りと話す時間がなくなり、
若干物足りないところもあった。
最初30分懇談時間で、
最後30分に4, 5人でLTとすると丁度いいのかなと思った。
参加の際に「LT希望されますか」の欄があったらいいかも。
お館様のご尊顔把握(ただし実は影武者らしい)
●世界の小宮、LT枠(ピザ枠 or すし枠)で登場。流石。
●帰りの電車で@yosida95と一緒に。イケメン。
「イケメンですね」と聞いたら、
「はい。よく言われます。」と言われた。
切り返しもイケメン。
●もしLTやりたくなった時にGoogle DocsのPresentationだと
物足りないから、とりあえずKeynote買っとこう。

最後に、
清水川せんせと世界の小宮さんの写メり合い面白かったです(笑)
あれを写真に取れなかったのだけは悔やまれる!


既に次回の予定も決まってます。参加予定です。
エキスパートPythonプログラミング読書会 第二期 03 #expertpython 
今回のまとめはこちら エキスパートPython読書会 第2期 第2回

その他にも時間内にでてきた参考リンクです。
Check out this SlideShare presentation : エキ Py 読書会02 2章前半 
The Zen of Python 解題 - 前編 - atsuoishimotoの日記
Python 2.6ja2 documentation
(nightly版ですが、2.7ja1もあります。こちら

やはりこのエキPy読書会は鍛えられている感じがあっていいですね。
皆勤賞達成して、その頃にはPythonistaになりたいです。

エキスパートPythonプログラミング
Tarek Ziade
アスキー・メディアワークス
売り上げランキング: 18862

追記:
内容の方もまとめてみました。
(続き)「エキスパートPythonプログラミング読書会 第二期 02」参加してきました。

2011年12月11日日曜日

Pythonの仮想開発環境作成ツール-virtualenv1.7-での変更点

気がついたらvirtualenvが1.6.4から1.7にバージョンアップしていた。
(virtualenvについてはこちらでも書いてみた。)

以下変更点。
  • Updated embedded Distribute release to 0.6.24. Thanks Alex Grönholm.
  • Made --no-site-packages behavior the default behavior. The --no-site-packages flag is still permitted, but displays a warning when used. Thanks Chris McDonough.
  • New flag: --system-site-packages; this flag should be passed to get the previous default global-site-package-including behavior back.
  • Added ability to set command options as environment variables and options in a virtualenv.ini file.
  • Fixed various encoding related issues with paths. Thanks Gunnlaugur Thor Briem.
  • Made virtualenv.py script executable.
特に大きいなと思ったのが2つ目の変更点
virtualenv1.7は指定しなくても
--no-site-packagesを勝手に指定してくれるようになった。

--no-site-packagesはインストール済みのモジュールを、
全て外した状態で仮想環境を作成できるオプション。
これをつければ、
virtualenv内のパッケージのみのリストを得ることができる。

しかし今までは、
python virtualenv.py --no-site-packages env1
といちいち指定しなければならないので面倒だった。
これが
python virtualenv.py env1
で済むのだから快適と言わざるを得ない。

人によっては、
  • インストールするPythonのバージョン(2.5, 2.6, 2.7, etc)
  • パッケージ管理ツールdistribute
など指定するオプションも多いはず。
(例)
python virtualenv.py --distribute --python=python2.5 --no-site-packages env2

distributeは既にデフォルトで設定する方法もあるようなので、
virtualenv1.7で--no-site-packagesもデフォルトにできるようになったのは大きいと思う。

ちなみに確認のため--no-site-packagesを付けて試してみたところ、
インストールが始まる前に
The --no-site-packages flag is deprecated; it is now the default behavior.
と表示された。
確かにインストールしてくれているようだ。
より使いやすく便利になったね!

2011年12月7日水曜日

GLT vol.40参加してきました。

野良LTで突撃話したことはありますが、
今回ははじめからLTをするという目的で行きました。

前回の反省として、
■3分のLTなのに、1分余してしまった。
→スライド30枚くらいに増やしたい
→5分間で足りないくらい話したい
■ネタを増やしたい
→技術ネタでやりたい

というのがあったので、
今回は無理矢理にでもそこを意識してやりました。
結果、上記2点は達成できました。

それ故に今回はかえってやらかしてしまいましたが…
というのも、
■スライドを充実させようとしすぎて文字が多くなり、
"読ませる"スライドになってしまった。
(これは最悪だったと思います)
■何を言いたいのかわからないスライド
(結論を結局言えないまま終わってしまった)
■笑いがない
(自分は読むのにいっぱいいっぱい。周りを見る余裕がない)

いや~むしろ前回のほうが良かったんじゃないかと思えるような出来。
やらかしてしまったなぁ(笑)
次回からは話す順番も頭に入れていきたいですね。

今回は珍しく少人数でしたが、
お陰で懇談会でじっくり話せたので良かったですね。
お話させていただいた
そーりさんまーじさんイチロヲさんありがとうございました!

追記:SlideShareに載せてみました。

2011年12月5日月曜日

本読む暇が欲しいです。

本買っても読む時間がない。
応用情報技術者試験受ける前は電車の中でも読んでいたのだけど、
最近はTwitterのTLを追っかけるので精一杯。

今日たまたま待ち合わせの時間まで30分ほど余裕があって、
読書することができたけど、
インプットの時間が足りてないなーと。

今月は読書会が2件入っているのだから、
ちょくちょく読み進めて行かないとやばいです。

早くエキPyとアジャイルサムライを読みたいなと……

エキスパートPythonプログラミング
Tarek Ziade
アスキー・メディアワークス
売り上げランキング: 8194


アジャイルサムライ−達人開発者への道−
Jonathan Rasmusson
オーム社
売り上げランキング: 2371