なんとなく日記

Everyday studying...

ウェブオペレーション - ウェブサイト・サービス運用してるなら読むべき

ウェブオペレーション ―サイト運用管理の実践テクニック (THEORY/IN/PRACTICE) 著者: 出版日: 2011-05-14 出版社/メーカー: オライリージャパン カテゴリ: Book 実はレビューに参加していたので献本していただきました。ありがとうございます。初めて自分の名前が載った日本語の書籍であるので、ちょっと嬉しかったり。あと、こういう所にエッセイなりを書ける人物になれるように頑張りたいと、改めて決意したりしました。 内容的には、ウェブを運用している人たちの経験談とエッセンスがぎっしり詰まった、非常に濃く奥深い書籍です。まあウェブサービスのみならず、ウェブサイト運用しているひとなら、とりあえず1回は読んでおくのがいいと思います。特に失敗談を。ベストプラクティスを書いてある書籍は多いのですが、「こんな問題が起こったときにどう対処したか」ということが書かれたものはほとんどありません。そうなるとエッセイぽくなるので、普通の技術系の解説書では書きにくいのでしょうね。その点この書籍は、著名サービスの方々の、いままでの経験とこれからの指針などがエッセイとして書かれているのですが、なんだかんだと技術的に詳細に書かれている部分もあるので、非常に勉強になりました。 日本語版には追加でクックパッドの方のも掲載されており、お得感満載?です。いまウェブサービスを作っていなくとも、これから作りたいなーと思ってる人などにもおすすめです。是非一度、読んでみてはいかがでしょうか。

そもそもマネジメントとは何か - マネジメント - 基本と原則 [エッセンシャル版]

マネジメント[エッセンシャル版] - 基本と原則 著者: ピーター・F・ドラッカー 出版日: 2001-12-14 出版社/メーカー: ダイヤモンド社 カテゴリ: Book 流行りらしいので読んでみました。 マネジメントの誤解 以前は「そもそもマネジメントって管理でしょ?」ぐらいに軽くしか考えてなかったのが、ここしばらくは「生産性を上げる管理方法で組織では重要」と言う認識に。で、一度しっかり読んでみたいと思って買ってみたのですが、「なるほど」と唸ることが多い充実した内容でした。 特に「マネジメントが内向きになるのは危険だ」ということ。組織のマネジメントなのだから、当然のように中の人の管理だろと思ってたのですが、一般的な「マネジメント=部下を管理」という趣旨で語られることはほとんどなく、「組織とは」「何をマネジメントするのか」「マネジメントとはそもそもなにか」が、適宜例を出しながら紹介されていきます。 あくまでも成果 「目的は組織に成果を上げさせることであり、マネジメントはその道具に過ぎない」ことは、あたりまえではあるものの、捉えにくい概念であるために、しばしばおざなりにされてしまいます。そして「部下の仕事を管理する」ことに注力してしまい、仕事をこなすことが主目的になってしまう。こうすると組織内の動機や士気は下がってしまうために、成果を上げ続けることができない。大企業なんかがよく陥る悪い循環、停滞ってこういう所から始まるのではないでしょうか。本来の目的である「成果を上げる」ことを意識していかないとまずいなと感じました。 トップマネジメントとイノベーションと成長 「イノベーションとはリスクを冒すこと」というのもよく言われますが、それを系統だてて説明されているのが印象的でした。また「トップマネジメントとは名ばかりの役員会」というのも、衰退している日本企業に当てはまるのではと感じました。伸びてる企業って、本当のトップマネジメントができているのでしょうね。 重要なのは真摯さ 最後に重要なのは真摯さ。能力があっても真摯さがなければマネジャーにはなれないと言うのは、「あぁ、そういうことか」といろいろ納得させられた言葉でした。真摯さというのは真面目さとは違う感じがあり、またがむしゃらとも違う、まさしくマネジャーに必要な資質だと感じました。 違うジャンルの書籍を読むたびに思うのですが、世にいる数多くいるエンジニアこそ、この手の書籍を読み、世界や社会に影響力を発揮できる人物になるべきなんじゃないかなと、思った一冊でした。

考察力を身につけるための書籍〜これからの「正義」の話をしよう—いまを生き延びるための哲学〜

これからの「正義」の話をしよう――いまを生き延びるための哲学 著者: マイケル・サンデル 出版日: 2010-05-22 出版社/メーカー: 早川書房 カテゴリ: Book 正直、この書籍を読んだところで、正義とはなんなのか、自由とはなんなのかはわかりません。と言うか、そんなものに答えを出せるような書籍はないでしょう。ではなんのためなのか。やはり議論するための素地としての教養を身につけるための書籍でしょう。社会における道徳や正義をテーマとして、過去の哲学者の見解を列挙し、その考察を解説することで、いまどうあるべきかを考えようと言う内容だと、私は感じました。 自由とはなにか 読んでいる最中、自由であるとはなにかと言う観点から、この前に読んだのフリーソフトウェアのことを思い出しました。そこでは「自然権としての自由」と言う話だったのですが、そもそも「自由なんだったら自分が思うとおりにする自由もあるんじゃないか」と疑問に思っていました。ただ「他者の自由を制限してまで自由を行使することはできない」と書かれていました。 『これからの「正義」の話をしよう』を読んだあとに考えてみるに、功利主義的には「たとえ他者の自由を制限しても、全体として幸福度が増すのであれば、そちらのほうが優先される」となり、「ソフトウェアをフリーにする必要は場合によりけり」と結論づけられます。では道徳的観点からはどうなのか、自律的に自由な観点からはどうかと、いろいろ考えるとまた違う結論が出てきそうです。 言説の貧困化 また最後の方に書かれていた、「言説の貧困化」と言うのが、現代社会で問題になっているのではないかと感じました。最近は、どんなニュースでもゴシップのように報道され、それを民衆が面白がる世の中になってしまったと言う感じが否めません。原因がどこにあるのかはわかりませんが、政治がゴシップ記事のようなやりとりをしているようでは、世の中もこんな感じになって仕方ないのかなと思ってしまいました。 考察する必要性を再認識するために どこからともなく流れてきた情報を鵜呑みにするのではなく、自分ので調査してしっかり考える力、考察力を高めると言う観点から、この書籍を読むことをおすすめします。道徳観や政治の話も重要なのですが、それ以上に「考えるということ」の必要性、重要性を再認識するためにも、読んでみてはいかがでしょうか。

RubyKaigi 2011でjpmobileの話をします

無事にRubyKaigi 2011 CFPに当選したので、今年もjpmobileの話をします。 で、内容はというと、今年はどちらかというとチュートリアル的なお話になります。時間が限られているのでエッセンス的な話になると思うのですが、「jpmobile 1.0.0以降では、ここさえ押さえておけばいいよ」と言う内容にしようと思ってます。

SSLの自己証明書の発行覚書

いつも忘れるのでコマンドだけ貼っとく。 参考:Apache/SSL自己証明書の作成とmod sslの設定 - maruko2 Note. 秘密鍵の作成 % openssl genrsa -aes128 1024 > domain.key 秘密鍵のパスフレーズの解除 % mv domain.key domain.key.org % openssl rsa -in domain.key.org > domain.key 公開鍵の作成 % openssl req -new -key domain.key > domain.csr サーバ証明書の作成 % openssl x509 -in domain.csr -days 365 -req -signkey domain.key > domain.crt

はじめの一歩を踏み出そう〜起業家でなくとも読むべき書籍〜

はじめの一歩を踏み出そう―成功する人たちの起業術 著者: マイケル・E. ガーバー 出版日: 2003-05-01 出版社/メーカー: 世界文化社 カテゴリ: Book 一昨年の仙台Ruby会議02で、確か@xibbarさんだったかな、起業するならこれは読むべきと言う話をしていて、さらに@t_wadaさんも持ってきていて、そんなならとりあえず買っておくかと買っておいた本でした。最近思うところあって読んでみたのですが、なんとなくあの場で親方達が話していたことがわかったような気がします。 内容的には、スモールビジネスとして起業する上で理解しなければいけないこと、特にエンジニアなどの職人が起業する上で以て置かなければ失敗してしまう考え方を記した、バイブル的な本ですね。「こんな会社嫌だ!あんなんでいいなら俺が会社作ったほうが絶対うまく行くって!」と思って起業しても失敗するか苦しむだけだよと、非常に分かりやすく説明されていました。 いくつか気になったキーワードと感想など。 「起業家」「マネージャー」「職人」の3つの人格 これは仙台Ruby会議02でも話が出たのですが、経営者にはこの3つの人格が必要だそうです。しかもバランスよく持たないといけない。エンジニアはだいたい「職人」なので、普段の仕事に没頭して他のことをやりたくなくなる、逃避してしまって会社としては成り立たなくなる。「仕事」と「経営」は違うんだよと、実例を出しながら説明されてます。 読んでて思ったのが、一昨年までの自分は「職人」だったんだなと言うこと。瑣末なことから逃げて、コード書いてればいいやと思って部分があります。もちろん突き詰めたいと言う思いはあるのですが、そうではない部分で、マネージメントや経営から逃げてたなーと思いました。 ただここ最近は、どちらかというと「マネージャー」思考が多くなり、また経営についてもいろいろと勉強したいなと思ってるので、バランス取れてきたのかな?とか考えてます。いいのか悪いのかはよくわかりませんが。バランス取れたら何かいいことあるわけでもないので、微妙な気がしないでもないですが。なんかあったときに、誰か雇ってくれるでしょうか。 マニュアル この本ではマニュアルを作れと言われるのですが、作ったあとが重要ですね。運用と更新を繰り返して良くしていくというイテレーションは、どのジャンルでも重要ということでしょう。作って、はい、終わり、では、何も良くならないことを肝に銘じたいですね。 何でもデータを取って分析する またマニュアルにしたことの効果測定も重要で、それを分析する必要があります。特に自分がやったことに対する評価を数値的に見るっていうのもいいですね。例えばエディタを変えてみて、コードを書くスピードに変化があったか、MacBook Airにしてコード書く量に変化はあったかなど、プログラマでもこれはあてはまります。好き嫌いもあるでしょうが、生産性が上がったかどうか、これから上がるのかどうかなど、評価すべき点はたくさんありそうです。 顧客は直感で決める そういう意味では髭面はやばい。 例えばサイトの色合いとか見た感じの安心感などで、そのサービスを使うか決めてしまうことってありますよね。日本人にあまり受け入れられていないFacebookなんかは、直感的にわかりづらいんですよね、なんか。パッとわかるデザインの重要性や、ターゲットの嗜好を知ることなど、簡単にできる割に効果の高いマーケティング手法が紹介されていました。 起業しないエンジニアでも読むべき で、最後は「起業しようぜ!」で終わるのですが、この本を読んで理解すれば、起業しなくとも仕事に対する考え方が変わると思います。特に今ベンチャーと言われる企業にいる方は、ここに書かれていることを実践してみてはいかがでしょうか。きっと視点が変わることで視野が広がり、よい気持ちで仕事に取り組めることになると思います。 もしくは起業したくてたまらなくなるかもしれませんが :)

フリーソフトウェアと自由な社会 ーエンジニア必読の書ー

フリーソフトウェアと自由な社会 ―Richard M. Stallmanエッセイ集 著者: リチャード・M・ストールマン, Richard M. Stallman 出版日: 2003-05-06 出版社/メーカー: アスキー カテゴリ: Book RubyKaigi 2010でサイン入りのを買ったにもかかわらず、もったいなくて読めてませんでした。すみません。で、さすがに読まないのもあれなので、勇気を出して包装を解いてみました。ただ発刊は2003年なので、古い本ですね、もう。さんざん読まれたと思うので、「もういいよ」的な方はスルーしたってください。 フリーソフトウェア運動とGNU 実はフリーソフトウェア運動については詳しくは知らなかったので、リチャード・ストールマンがなぜGNUやFSFを立ち上げたのか。パブリックドメインやオープンソース運動とは何が違うのか。ソフトウェアにおける著作権や特許について、彼が何を考えているのかなどが、この本にはぎっしり詰まっています。いまどきのエンジニアなら、GNUやGPLに携わらないことはないはずなので、一度は読んで自分の考えをまとめておくべきだと感じました。 ただ元来ひねくれている私にとっては、彼の強烈な思想や主義主張はかなり「?」となる部分が多かったのも事実。 ソフトウェアの著作権や特許に、レシピや道路のアナロジーを使っている 例えばレシピ。「そのレシピ教えて!」と言うでしょ?と言うことなんですが、そういう意味では「仕様書」とかアルゴリズムとかがレシピに対応するんじゃないのかな?と疑問に思いました。「ソフトウェアは設計図でもある」のは確かにそうなんですが、レシピって実現方法であって、実装方法ではないと思うんですよね。 まあレシピは些細な例なんですが、古い概念のもののアナロジーで説明しようとしているので、そこに違和感を感じました。説明しやすくはなるんですが、デジタル情報というのは新しい概念なんだから、あまりアナログな物のアナロジーでは説得しきれないんじゃないかなと思った次第です。 「パンがなければケーキを」的な発送 昨今では情報技術系の職に多くの人々が就いているわけですが、私有(プロプライエタリ)ソフトウェアがなくなったときに、「仕事なんてなんとでもなるさ」と言い切れる人はむしろ優秀な人であって、大抵の人は失業して路頭に迷うことになるでしょう。自由である価値に重きを置くのはいいのですが、かと言って「ウェイターでもいいんじゃね」とは言いすぎではないでしょうかね。「サポートで食ってける」のは結局私有ソフトウェアを持ってるところだったりするんじゃないでしょうか。MySQL/Sun/Oracleを見てて、そんな気がしました。 自由はそんなに重要か 「自由であることが一番大事」ということなんですが、なんかそれって「こんな会社はダメだ。俺が作る」という話に近いものを感じたんですね。実際に起業する人ってそんなに多くないのと同じように、本当に自由を求めている人ってそんなに多いのかなとも思いました。多くの人々は、ちょっとぐらいに不自由と引換に、自分であれこれしなくても良い利点を享受しているわけです。例えば私の両親のコンピュータに使うOSややっぱりWindowsになります。全てがフリーソフトウェアになればそれも変わるかもしれませんが、今の時点での選択肢としては、自由が重要ではない時があります。場合によりけりじゃないかなと思うわけです。 だいたい歴史の多くで、民衆は自由よりも支配されることを望む傾向にあるんじゃないでしょうか。一部に自由を求めて戦う人々がいて、時として民衆はそれに呼応しますが、自ら先頭に立とうとはしません。戦う人々の下についているわけです。それは自由のための戦いではなく、自分の利益のためなのではないかと思うわけです。日本を見てても、主義主張を声高に叫ぶ人がいて、それなりに多いように見えますが、絶対数としては非常に少数でしょう。会社の中でもそうです。本当に自由が欲しいなら、起業するなりフリーランスになるなり、その制約から逃れようとするでしょう。でもほとんどの人は、そこには今までにない責務が発生するので、それよりは制約の中での利点を選ぶのではないでしょうか。企業戦士の多さから見ても、そんな感じですよね。 性善説と性悪説 もう一点気になったのが、「隣人と共有する」という点。みんながみんな良い方向に使うとは限らないので、法律で制限していると思っているので、「みんながそれぞれより良くなるように判断すればいいよね」というのには賛同しかねます。なんか性善説のようで。さらに私有ソフトウェアの企業はみんな悪であるように書かれているのも、なんだかなと思いました。まあフリーソフトウェアの精神からするとそうなのでしょうが、世の中みんながいい人ではないので法律があり刑罰があるのだと思うのですよね。そこのところがちょっと引っかかりました。 作る側の自由が乏しい気がする そんな物ないよと言われればそれまでですが、自由なソフトウェアという割には「配布に関して制限をかける自由」は「みんなの利益を損なうから」ということで制限されてしまいます。本当に利益を損なうのか?と疑問に思いました、ここは。「フリーソフトウェアにすることによって損なわれる利益」に関しての洞察が結構適当な感じだったのが、公平な議論ではなかった感じです。ただ彼が「思想家」だとすれば、そういう主張になるのは当然ではあります。すんなりと納得はできませんが。 優秀な人であるがゆえに物事が簡単だと思えてしまう症候群 「フリーソフトウェアで生活できるよ!」とリチャード・ストールマンに言われても、「そんなの優秀だからだよ、フリーソフトウェアとか関係ないし」と思ってしまうわけです。実情がどうなのかはわかりませんが、凄いと思う人が言う「簡単だよ」ほど信憑性がないことはありません。まあ日本人的な発想かもしれませんが、そういう考えもあるということです。 まとめ 読んでいるだけでもこれだけ考えることが出てくるのは、主張している思想が今ではなく未来を見ているからかなと思います。ソフトウェアがどうあるべきかだけで軽く一晩議論できるぐらいは考察したかもしれません。エンジニアとして生きていく上で、とりあえず読んでおけと言うことで。 ちなみに私の立場的には、デジタル世代の著作権は旧来とは考え方そのものを改めないといけないと思っています。著作者人格権はそのままでもいいかもしれませんが、著作物の販売権をどう考えるか、複製についてどうすべきかを、何かのアナロジー以外で考えないといけないなというスタンスです。フリーソフトウェアは素晴らしい仕組みだと思うのですが、全てがフリーソフトウェアでなければならないとは思っていません。というか、そろそろ「ソフトウェアの販売」自体がなくなるかもしれないし。ウェブサービスへの課金とかね。もし議論とか話がしたいという方が入れば、勉強会とかでふっかけてください ;)

転職活動のススメ

まあいろいろあるわけですが、別にエアじゃなくなるとかそう言うのではありません。するならエアを取りたいなーとか、そういうのはどうでもいいのですが。と言うか、まだ転職する気はありません。なのに、なぜ転職活動をススメるのかというと、得るものが大きいからです。 求人動向から現在のエンジニア市場がわかる まあ普通にFind-jobの新着求人など見ててもそうですが、いま必要とされているエンジニアがどんな人かがよくわかります。例えば2011/02/02現在では、Androidなどのスマートフォン系の開発が多く、JavaやJavaScript/HTML5といった技術に詳しいエンジニアが求められていることがわかります。技術的な流行りはもっと先の方にあるので、そこから学習を始めても遅いかもしれないのですが、「こういうことも知っておいた方がいいな」と感じるだけでも重要です。自分がこの先、何を学習したいのかと、何を学習しておけばいいのかを知ることは、キャリアプランを考える上でもよいことだと思います。 自分に求められているスキルがわかる これはエージェントとかスカウトとかそういう類のあれですが、自分のスキルや評判からポジションを提案されるわけです。で、そのポジションがどんな内容なのか、スキルはどうか、経験はどうかを考えます。例えばスキルが十分であれば、年齢的にマネジメントが求められることもあるでしょう。そうするなれば、例のドラッガー本を読んでみたりとか、やること・やるべきことが明確になったりします。「生涯エンジニアでいる!」であったとしても、マネジメントや経営のことを勉強する意味は大きいので、「そういうポジションでいることが求められているのか」という情報も役に立つのです。 自分の市場価値と実際の状況がわかる そこで実際に応募するなり、近しい社長さんなりに「私なんてどうですか」なんて聞いてみると、いろんな反応があります。「あなたはスキルはある。でも、うちの会社は〜」的なこと(要するに人間性の問題)を言われたり、「〜の経験が足りない」と言われたりするかもしれません。また外側からは見えない労働状況がわかるかもしれません。「うちの会社はこうなんだけど、他所はいいだろうなー」と、隣の芝生的に考えている人は、一度こういう話を聞いてみるのもいいかもしれません。なんにせよ、自分に足りないところがあるかもしれないし、世の中と言うか人事の人に見る目がないということだけかもしれませんが、百聞は一見にしかずです。 いつでも転職できるぐらい優秀であるほうがいい ぶっちゃけどこの会社にいても、何かしら嫌なことや問題は起るわけなので、青い芝生を探しても見付かる可能性は限りなく小さいでしょう。ではなんでススメるのかと言うと、「いつでも転職できるぐらい、スキルや人間性などを兼ね備えた人物」になるためです。引く手数多な人になれば、そのまま残ってもいいし、直ぐに転職してもいいし、選択肢が増えます。また優秀な人になれれば、社内での評価も当然上がるでしょう。もし上らなくても、転職すればいいのです。まさに死角なしな状況になれるわけです。 結論 まあ取り敢えず、Find-jobの新着求人をRSSに入れて、「いまはAndroidなんかー。ちょっとやってみっか。」と動き出すことから始めてはいかがでしょうか。

未来の自分に対する問いかけ −プログラマが知るべき97のこと−

プログラマが知るべき97のこと 著者: 出版日: 2010-12-18 出版社/メーカー: オライリージャパン カテゴリ: Book 遅ればせながら、ようやく読了。まあプロ・アマ問わず、プログラマなら読んどけという内容ですね。それぞれのエピソードで、プログラマがどんなことに気をつけるべきか、何を優先させるべきか、陥ってはいけない罠とはなにかなど、プロとして仕事をする上で重要なことが沢山書かれています。 私がこの本が特に素晴しいと思ったのは、ビジネスやチームについて書かれているエッセイがあったこと。得てしてプログラマは技術的なことに注力し過ぎる傾向があると思うのですが、名立たるプログラマにはそうではない視点が必要なんだと再認識させられました。 TODO @t_wadaさんにサインしてもらう。 ここに掲載してもらえるようなエンジニアになれるように、いろいろ頑張る。

DTI VPS(CentOS 5.5)でnginx-0.8.53が動かない場合の対処

[emerg] 22151#0: eventfd() failed (38: Function not implemented) [alert] 22150#0: worker process 22151 exited with fatal code 2 and can not be respawn 迂闊にもyum updateかけたら上記エラーで起動しなくなったのでその対処。調べるとlibaio関係をインストールすればいいらしいのだが、DTIのVPSではカーネルがそもそもそれに対応していないために利用できない。カーネルもアップデートできないので、ソースコードからビルドし直すことにしたので、そのログ。 $ wget http://download.fedora.redhat.com/pub/epel/5/SRPMS/nginx-0.8.53-1.el5.src.rpm $ sudo rpm -ivh nginx-0.8.53-1.el5.src.rpm $ sudo rpmbuild --ba /usr/src/redhat/SPECS/nginx-0.8.53-1.el5.src.rpm $ sudo rpm --force -ivh /usr/src/redhat/RPMS/i386/nginx-0.8.53-1.i386.rpm カーネルが上がることを期待して、これでなんとかこなします。 追記 ビルドに必要なパッケージはインストールしてください。私の場合は以下の通り。 $ sudo yum install pcre-devel libxslt-devel GeoIP-devel gd-devel