Being Geek

https://lh3.googleusercontent.com/-KAN-jKvNwsk/TirE9jcaigI/AAAAAAAAAGc/epzmUo8-Z-0/s640/IMAG0100.jpg

I got a little different impression that I had expected from the book title. This book is mainly management and communication in a tech company, it doesn't almost include you are being geek for the future. I recommend to read you are a manager before you had been a engineer and if you will become manager in a tech company.

So, recently, I'm simultaneously reading a English version book and a translated version book for learning English. Even though I have had Being Geek English version, I bought the Japanese version when it was come out. I try to simultaneously read it. I'm impressd this translation is easy to read for Japanese. It seems tough that translation easy-to-read for Japanese as writing a book.

Amon2の自分用Flavorを作る

tokuhiromさん作の軽量WAF Amon2なんですがFlavorという仕組みがあって、特に指定せずamon2-setup.plするとBasicが選択され、BlueprintとjQueryを使ったテンプレートが作成されます。他にデフォルトでついてくるのはMinimumがありますがこれは文字通りなにも使ってないテンプレートが作成されます。

ただ、最近自分が使っているのがinuit.cssやBackbone.jsだったりSpine.jsだったり、underscore.jsだなんだかんだとあってプロジェクトを作成してから追加するのがめんどうくさくなってAmon2書き換えるかとなったときに、Flavorというのがあることに気づいたので作ってみました。すごい簡単です。

Amon2のソースをみればすぐわかるんですがamon2-setup.plをする際にオプションとしてfalvorが渡せるので、そこで自分の好みのテンプレートが作成されるようにできればいいわけです。

amon2-setup.pl --flavor=Ka2u MyProject

で用意しなきゃいけないのは自分のFlavorモジュールと使うCSSやJSのフレームワーク用のAssetモジュールだけです。今回はinuit.cssとSpine.jsを使うテンプレートを作成しました。

Amon2::Setup::Flavor::Ka2u

これが作成されるプロジェクトの元になっていて、ここに作成されるファイル群がすべて記述されています。Amon2::Setup::Flavor::Basicを元にして自分が変更したい部分だけ変更していくといいと思います。

Amon2::Setup::Asset::Spine

Amon2::Setup::Asset::Inuit

Amon2::Setup::Asset::jQueryやA::S::A::BlueprintをみるとAssetの中身はほとんど、使うJSやCSSの中身が文字列としてそのまま帰るような形で作られています。当初同様の形で作成していたんですが、inuit.cssの更新が結構頻繁にあり、モジュールにしたてるのがめんどくさくなってしまい、cssとかJSのファイルをそのまま含んでしまいslurpして吐き出すようにしてしまいました。なんかファイルコピーしてもいいかも。

あとはAmon2::Setup::Flavor::Ka2uのなかでAssetを使ってファイルを作成するように書き換えて、最初に作成されるテンプレートでincludeされるようにすれば作成した段階で自分の好みのプロジェクトがセットアップできます。さらに、毎回書いているような定型的な部分も含んでしまえばもっと楽になりそうです。実際のコードはgithubに置いてあるので詳細はそっちを見てください。

ググッてみるとAmon2::Setup::Flavor::Tengとか作っている人もいるので、みなさんも自分用のFlavor作ってみてはいかがでしょうか。


作ったFlavor
https://github.com/ka2u/Amon2-Setup-Flavor-Ka2u
Amon2::Setup::Flavor::Teng
http://d.hatena.ne.jp/akiym/20110428/p1

dotcloudにinviteされてから

どうも、コンフィうまそうですね。お元気ですか?

おとなしく、いい子でまっていたらdotcloudさんからbetaのinviteが送られてきたので試してみました。ただ、お試しエントリはすでにかなり上がっているので、普段python使っていない人がdotcloud使うのにpythonのモダンな環境をつくるところから始めるということで書きたいと思います。

注:筆者は普段python使っていません。一応動くとこまでできましたが全然モダンじゃねーよという可能性があります。もっといい方法がある場合はぜひ教えてください。

最初に書いておくと、今回pythonbrewは使いませんでした。個人的にまだメジャーではなさそうということが一番の理由です。なので使いたい人は使ってもいいんではないでしょうか。

ちなみに以降の内容はMac Book Airで行いました。Linuxとかでも同じ手順でいけると思います。

まずsetuptoolsをインストールします。私の環境ではすでに最新版がインストールされていたので必要ありませんでしたがもしインストールされていない、または古い場合はダウンロードしてください。

tar zxvf setuptools-x.x.x.tar.gz
mv setuptools-x.x.x
python ez_setup.py

次にpipを入れます。

easy_install pip

そしたらvirtualenvとvirtualenvwrapper。これはシステムと切り離されたpythonが使える環境を手軽に用意できます。

pip install virtualenv
pip install virtualenvwrapper

シェルで使えるように(.zshrcなどに)追記。追記したらsourceコマンドなどで有効にしましょう。

source /path/to/virtualenvwrapper.sh #たぶん/usr/local/bin/virtualenvwrapper.sh
export WORKON_HOME=${HOME}/path/to/venvs
export PIP_DOWNLOAD_CACHE=${HOME}/.pip_cache #download cache for pip
export PIP_RESPECT_VIRTUALENV=true #packages install for virtualenv
export PIP_REQUIRE_VIRTUALENV=true #require virtualenv

さてこれで環境が作れるようになったので作ってみます。

mkvirtualenv newproject

これ以降は参考にしたtokuhiromさんの記事の手順と同じです。今回はAmon2を使いますが、フレームワークはいろんなのが使えるんで好きなの使ったらいいと思います。dotcloud pushはvirtualenvの環境にworkonしてね。

amon2-setup.pl Demo
cd Demo
perl Makefile.PL
ln -s htdocs/static static
git init
git add .
git add -f 'inc/'
git commit
dotcloud push ka2u.demo .

以上です。


http://demo.ka2u.dotcloud.com/
ここで腕を空に掲げて叫びましょう Victorrrrrrrrry!!!!
※dotcloudのドキュメント参照


参考にしたサイト
http://docs.dotcloud.com/tutorials/firststeps/
http://blog.mitsukuni.org/2010/10/25/python-development-environment
http://mt.endeworks.jp/d-6/2011/04/dotcloud-psgi-hello-world.html
http://d.hatena.ne.jp/tokuhirom/20110501/1304234959

あと気になっているのがサービス(ka2u.demo)の削除なんですがどうやればいいんですかね?
追記:サービスの削除コメント欄で教えていただきました。ありがとうございます!

また本読んだ

ebookで半額で買った。訳がちょっと読みにくい。
技術系の会社の管理者層とかも読んだほうがいいんでは。

アプレンティスシップ・パターン ―徒弟制度に学ぶ熟練技術者の技と心得 (THEORY/IN/PRACTICE)

アプレンティスシップ・パターン ―徒弟制度に学ぶ熟練技術者の技と心得 (THEORY/IN/PRACTICE)

読んだ

ブログ読んでるから、そうですよねという感じ。

エンジニアとしての生き方  IT技術者たちよ、世界へ出よう! (インプレス選書)

エンジニアとしての生き方  IT技術者たちよ、世界へ出よう! (インプレス選書)

なかなかよかった。入門でおすすめはと聞かれたらとりあえず薦めると思う。

JavaScript本格入門 ?モダンスタイルによる基礎からAjax・jQueryまで

JavaScript本格入門 ?モダンスタイルによる基礎からAjax・jQueryまで

本読んだ

更新しない間に地震やらありまして、なんか日常なのか非日常なのかよくわかんない感じになっていますが久しぶりに技術書以外の本を読んだのでブログでも更新しとくかという感じです。


読んだのはこれ。

リトル・ブラザー

リトル・ブラザー

Cory Doctorowという人が書いた、リトル・ブラザーという本でヤングアダルト向けらしいです。(日本だとラノベなのか?)
もともとtwitterで誰かが紹介していたのを見て読んでみたんですが日頃公開鍵だの使っている自分としては、なかなか面白かったです。


あらすじは

PCだのゲームだのが好きな高校生が友達と遊んでいるときに
爆弾テロに巻き込まれて、自国政府にテロの容疑をかけられて
友達と一緒に拘束され監禁やら拷問されるも釈放されるが、
友人はどこにいったかわからず、テロ防止のために常に監視されるように
なるなか、帰ってこない友人を探し、テロ防止という名のもとに行われる
権利の侵害を止めようとする

というような感じです。


まあ奇しくも、現実では地震があって原発が危機的状況におかれ政府からの情報が重要度を増す中、ネット上でもさまざまな情報が飛び交い、先日流言飛語への適切な対応というかたちで要請があったり、物語の内容とリンクする部分が結構いま読むには面白かったです。


そんな中、今日は東京都知事選があり投票にいってきました。まあ、誰がいいのかなんてわからないんですが、自分で選ぶのが重要なんだと思います。物語の中にもこう書いてあったんで。

いまは国民のほとんどが候補者を選んでいない。それじゃだめだ。
選ばなきゃならないんだ。----自由を選ばなきゃ。

YAPC::Asia2010行ってきた

今年もYAPC::Asiaに行ってきました。
今年も盛りだくさんで、タイムテーブル見ながらどこいくか
悩みまくったんですが、泣く泣く諦めたものは後で動画で楽しもうと思います。


さて、今年は仕事ではそれなりにPerlのコードを書いているんですが
個人的にはSchemeやらCやらを、やっていてUnixシステムコールとかpreforkとかも
やっているので@kazuhoさんのセッションは両方参考になりました。
もっとその辺り知りたいです。


あと、ベストスピーカー賞(次点)に選ばれた@nekokakさんのお話はちょっと視点が
違っていて、それなりの規模の会社で働いている、アプリケーション開発専門の
人にはちと耳が痛い話で、でもとても大切な内容だったと思います。
DevOpsにもつながる話だと思います。


懇親会では@kyannyさんに質問したり、@sugyanさんと話したりできてよかったです。
あと、フライング乾杯と、誰かと誰かがフュージョンと、nipodanさんの
会場アナウンスはお約束になりつつあるので来年も見れたらいいな。


それと、今年は同僚がスタッフとして参加してくれて、がんばってくれた
ようでうれしかったし、感謝してます。ありがとう。来年もよろしくね。


最後にYAPCを開催してくれた、@lestrratさん、@941さん、JPAの方々、
ボランティアスタッフさん(+同僚)、東工大さん、スピーカーのみなさん、
ゲストのみなさんお疲れ様でした。すんごい楽しかったです。