2011年12月31日土曜日

僕歪年末号~おもくその3.11 資本原理主義者たち

熱々カップルと頑固親父CO2

僕が「異常気象」という言葉を実感するようになったのは、米不足と水不足が連続した年があった90年代。それ以前か以後かは正確には分からないけど、その頃には「省エネ」とか「クーラーの設定温度は28℃を目安に!」って言葉は普通に耳にしており、おもくそ家では実践していた。だけど、「設定温度28℃」って少数派なんですよねー。友達が遊びに来ると「おもくそん家は暑い!」という意見がしばしば(そして冬は「寒い!」)。逆に、僕が遊びに行った時は「お前んち寒い!」っていうのだけど(そして冬は「暑い!」)。飲食店やデパートなんかに行っても、大抵のお店で「寒い!」と感じるのだけど、周りは大抵平気みたいだし。そうか、28℃のおもくそ家の方が異常気象なのか…なんてしみじみ思いながら生きてきた。そんな僕にとって、否が応にも皆節電せざるをえないこの夏は、非常に過ごしやすいものであったし、暑さで周りが体調崩しまくっているのを見ては優越感に浸っていた(はい小さい人間です)。

今までずっと節電してきたので、別に特に生活変える必要無かったのだけど、何もしないのも癪だし、それならさらに引き離してやる、さらなる高みを…ということで、エアコンゼロ稼働に挑戦。結果は…ゼロは流石に無理だったけど、盆に3日程使用しただけで済んだ。しかもこの夏体調崩す事は一度も無く。いやー人間の適応力って凄いね。しかし盆を過ぎたら一気に涼しくなったから、あれさえ乗り切ればゼロ達成できたかもと思うと悔しい。

ところで、「節電はピーク時間帯だけ行えばよく、深夜の節電は必要無い」という意見がありました。意見というか、まあ学術的に事実なんですけど(使用量が供給量を超えなければよく、夜は使用量の多い工場やオフィスが稼働停止するので)。たださあ、ピーク時間帯だろうが深夜だろうが、電気を消費すればその分熱が確実に発生するわけですよ。で、発生した熱は「熱力学第一法則」とか何だかで自然消滅することはないので、どっかに放散してくれない限りはキャリーオーバーされるわけですよ。で、都市化する以前は、緑やら土やらが吸収してくれたり大気圏外に逃げたりできたのに、現在はご存じの通りアスファルトで蓋しちゃったし、熱夫と熱美の大気圏外への逃避行はCO2という名の頑固親父によって阻まれ…というわけで、現在においては

電気使う=温度上昇

って式が成り立つと思うのですよ(電気使う→熱発生→でも熱の逃げ場が無い→温度上昇)。ヒートアイランドの原因の一つでもありますね。そして、温度が上がれば当然クーラーの稼働も上がり…と、いわゆる悪循環です。

よって、ピーク時間帯かどうかなんて関係無く、常々節電すべきだ!とおもくそは思ったとさ。
※専門家じゃないので完全なる憶測です。実際正しいかどうかは分かりません。でも全然間違ってるってことはないと思うのだけど…

そんな中、深夜どころか、昼間でも全く節電しないという人がいました。その人の言い分は、
「節電して暑いの我慢して体調崩すと、仕事を休む→マクロな視点で経済効果が下がる。そっちの方が問題。
だから我慢(節電)はすべきでない。」
というもの。
うーん、我慢の程度にもよるけど…大抵の人の場合、そもそも今は使いすぎな状態だと思うんですよ。28℃で十分適応できるところを(これには個人差ないと思います)、必要以上に温度下げて使いまくってる甘ったれ状態だと思うんですよ。だから、節電つっても「過剰」を「普通」にするだけなんですよ。その程度の努力すらしない・できないってのは、怠惰・我が儘としか言いようがない。下がっても給料・待遇十分なのに、人件費削減に文句言いまくってる公務員ユニオンとか某電力会社と同じ!
「あーレイプしたい。もちろんレイプはいけないことだ。でも我慢してたらストレスで体調崩す。そうなったら会社の売上が減り、ひいては日本の経済が…だから我慢はよくない。よし、レイプしに行くぞ!」ってのと同じ理屈!そんなのダメ!

ていうか、いつの頃からか「環境とかなんかよりもとにかく経済(金)優先だ!」って人が増えてきてますね。資本原理主義って奴?
余談
この節電を機に、全般的なエコ意識が高まって、エコバッグ持参率上がるかなーと、スーパーとか行くたびに漠然と眺めてみたけれど、そないやなー…そこまでの考えは及ばないのか…

燃えてるのは鳥じゃない。ファンの怒りの炎だ。

前述の節電のやり取りがあってから数週間後、以前に述べた『火の鳥 オリジナル版復刻大全集』の代金のカード引き落としが行われた。繰り返すが、その額98700円(1冊約8000円)。よくよく考えたら、地デジ化で買わざるをえなかったブルーレイレコーダーよりも高い。

火の鳥と言えば、単行本化の際にエピソードや台詞がまるっと改変・削除された事で有名なので、ファンはオリジナル版の復刻を長い間待ち焦がれていた。そしてついに復刻が決定し、喜び勇んで情報見てみると、この価格…ある人は手が出せないと諦め、殆どの人は二の足を踏み、そして恐らく全員が憤ったと思う。商魂丸出し。ビジネスの基本は「顧客のニーズを満たす」って、ドラッカーあたりも言ってなかったか?どう考えてもファンのニーズを無視してるだろ。復刊にあたって多大な労力・コストをかけただろうから、その辺の単行本と同じ価格帯でとまでは言うつもりは毛頭ないですけどね、誰もハードカバーとかオールカラーとかは望んでいない。ただ物語を読みたいだけだ。貴重な品だから、コレクター向けバージョンとしてハードカバー版はあってもいいだろうけど、廉価版も出した上でファンが好きな方を選べるようにするべきでしょう。

代替品が存在するような商品であれば、「ここの会社の高いから別の会社のにしよ」とか「ここの店、感じ悪いから、別の店で食べよ」というように、余所に移ればよく、それにより見限られた方は淘汰されていくのだけど、この火の鳥に関しては独占販売。他に移りようが無い。どっかの電力会社と同じだ。ここでも、顧客のニーズとか文化の供給とかよりも金儲け優先の「資本原理主義」を感じざるをえなかった。手塚先生はどう思われているのだろう…




2011年12月30日金曜日

僕歪年末号~おもくその3.11 俺は風

久方ぶりの雑文。年末なので今年を振り返る…というのを口実に、忙しくて下書きのまま放置されてたエントリを加筆訂正して清書してしまう。

まずは…2011年の日本を語る上で避けては通れない、3.11にまつわるエトセトラ。

次の日健康診断なんですけど

JRerのため早々と帰宅難民化が決定されたあの日。まあ金曜日だし、飲みなりカラオケなりネットカフェなりで夜を明かし…たかったが、次の日は健康診断。まあ十中八九中止だろうとは思ってたけど、万が一予定通りだったら後々手間かかるかな、そもそも基本的に徹夜は嫌いだし家で寝たいし、ていうか割と仲いい人間みんな歩いて帰ろうとしてるぞ…ってことで、民族大移動の列に加わることを決意。Googleマップで徒歩ルート検索すると…距離約20km、所要時間4時間…。30ページに及ぶルート地図を印刷し、20時に会社を出た。自分は結構歩くのが速い方なので、Googleが弾き出した時間ほどかからないだろう、と。

Google先生はあの日も正しかった

印刷した地図を片手にひたすら歩いた。ぐんぐん順位を上げながらひたすら歩いた。俺やっぱり速いぜ風だぜ!とが思いながら歩いた。こんな事でも考えながらじゃないと疲労で心が折れそうだったから…

地図が20ページに差し掛かった、つまり3分の2を消化したところで、これまでの経過時間を確認すると、約2時間。おお、単純計算だと3時間で着きそうだ俺やっぱり速いぜニュートリノだぜ!とか思いながら、地図の次の案内確認すると…
「直進する 8km 1時間30分」
…結局、家に着いた時には約4時間経過。時間ぴったり。Googleすげえ。
そう言えばこの日、もう10年以上ぶりに立ちションしたなー。コンビニの便所、どこも人気ラーメン屋ばりに並んでたもんなー。

鉄筋コンクリート様

本棚の悲劇の話が周りからちらほら来てたので、恐る恐る玄関を開けて中に入ると…以下、倒れていたもののリスト。
  • 空ペットボトル
  • まな板
  • 縦置きしてたボックスティッシュ
  • 便座
などなど、こんなレベル。いい意味で拍子抜け。本に関しては、本立て使わず自らのバランスで立ってた段のが横倒しになってただけで、飛び散ってもいなかった。
これが…鉄筋コンクリートの…力か…

「サヨナラノツバサ」がプチトラウマ

あの日の数日前に発売された、今年というか歴代最高レベルの菅野よう子作品『マクロスF サヨナラノツバサ』のサントラ。



徒歩開始時、iPodの電源入れて上記アルバムから「サヨナラノツバサ」を1曲リピートで再生してふとバッテリーアイコン見てみると…あ、赤い!殆ど残ってない!全く、携帯に続いてiPodもなんて、ホント最悪だ…

この長い長い道のりを無音状態でというのは不毛すぎる。余計な操作したらダメだ…ということで、4時間中、全くiPodに触れなかった。つまり、4時間中ずっと「サヨナラノツバサ」。僕の中では歴代TOP10に入るくらいの名曲だけど、聴くとどうしてもこの日の苦しみを思い出してしまう…

「この世で一番強いのは放射能」

これは去年の話になっちゃうけど、最後のM-1グランプリのスリムクラブは衝撃でした。



特に見出しの台詞はお気に入り。だけど、こんなことになっちゃったら「不謹慎だ!」とか言う輩が出てくるだろうから、あのネタは封印されてしまうのだろうか…

話は変わるけど、決勝で「(優勝)取らせてやりたかった」と笑い飯に一票入れた松本人志にはがっかりだった。純粋な面白さでいったら、決勝は絶対スリムクラブだと思うけど(松ちゃんの好きそうな笑いでもあったし)。昔のM-1でますだおかだの優勝した際、審査の仕方に対してラジオで吠えてたあなたはいずこに…今年発売された本『仕事の流儀』では「下ネタやブラックな笑いはもういい」とか言っちゃってるし…90年代の毒々しさが好きなプチ信者としては、人生の楽しみが…ああでも、今月の『MHK』の戦隊ものは、久し振りのシュールコントで良かったけどね。まあ笑い声はいらんと思うけど(多分足してるやつですよね?)。


おもくそクエストファイナルファンタジーファイナル-2

将来有望な若者の将来価値を毀損する、大きなワナ - Chikirinの日記
人気ランキングのトップに君臨する名だたる大企業から内定をもらった彼らは、なんの疑いももたずにそういう企業に就職していきます。自分達がそこで学ぶことになる「ビジネスの常識」が、世界のビジネス常識とは全く異質なものであることなど想像もしないままにね。

実は「完全に周回遅れです」みたいな場所で人生最初の「働く訓練」を受けることがどれだけ自分の将来価値を毀損する可能性があるか、よーく考えてみたほうがいいんじゃないか

その損害の大きさたるや実は、「なんだかんだいっても安定してるし」「福利厚生もしっかりしてるし」みたいなぼんやりしたメリットとではとても相殺できないくらい大きなダメージになるですよ。

おもくその転職活動冒険譚『おもくそクエストファイナルファンタジー』シリーズ。ついにシリーズ名が変わっちゃいました。
「XIII-2」的命名規則を使用すればまだまだ引っ張れますが、今回は本当に大メインクライマックス(by 世界のヘイポー)です。引越したいから荷物は早く片付けておきたいし(電子の世界では関係ねえよ)。

『安定』の定義って?

転職活動開始前、当時の所属会社で上司に辞意を伝えたとき、上司は言った。
「うちみたいな楽な会社はそうそうないよ。ミスしても減給とかまず無いし。他は厳しいよ~」(※1
会社を辞め、現在無職で転職活動中であることをお袋に報告した時、お袋は言った。
「公務員にしときなさい。まだ年齢大丈夫でしょう?」
要するに、両名とも「『安定』して『楽』な会社がイイゼ!」って言いたいのだろう。
そもそも『安定』の定義って何なのか。現代においては
「収入を継続的に得られる事が保証されている」
ってところでしょうか。ではもう一歩突き詰めて、何故公務員は「収入を継続的に得られる事が保証されている」のか。
「解雇や倒産が無いから」
…確かに、今まではそうだったかもしれない。でも、この状態がずっと続くか?流石に続かんでしょ。橋本氏のような「まともな政治家」が今後増えてくる(増えて欲しい!)と、間違いなく粛正されると思うけど(ていうか今月早速切り込んでたしね)。そして、今年になって(特に3.11以降)、非公務員はかなり怒りが溜まってるから、いくら大人しい日本人といえども、いつか暴動起こるぞ。

「解雇や倒産が無い企業」なんて存在しないと思っておいた方がいい。そうなると、「収入を継続的に得る」方法は一つしかありません。
「継続的に職にありつく=突然、会社が潰れても、すぐに次の仕事にありつけるくらいにスキルをつけておく」
そうなると、会社の選考基準は
「どれだけスキルが身につくか」
ってことに尽きると思います。
公務員って、スキル身につきますか?ぬるま湯環境に慣れきっちゃうと、いざ改革だか革命だかで放り出された時点で死亡フラグだと思いますよ。そうなる可能性を少しは考えてますか?それとも、まだ「公務員は安泰」神話はずっと続くとお思いですか?
「ゆっくり走るのが安全運転だと思うなよ」by 松本人志
「ゆっくり=安全」とは限らないのです。
ちなみにこういう人達の世界です
大阪の労連って本当に凄いな: やまもといちろうBLOG(ブログ)
人事評価結果の給与反映はやめろ

中途採用を行ってない会社は危険な香り

これは新卒者向けのお話になりますが。僕は新卒の頃、会社選びの基準の一つに「中途採用していない」というのを持ってました。理由は、「中途採用せず=離職率低い」と思ってたから。

これ、大間違いでした。どんなに良い会社だとしても、退職者ゼロなんてあり得ません。必ず一定数は発生します。そして減った分は穴埋めしないといけない訳ですが、中途採用していない会社の場合、新卒が穴を埋める事になります。もちろん、退職者(経験者)の穴が新卒(未経験)で埋まる訳がありません。よって、新卒採用しかしていない会社は、会社全体のスキルは下がり続けていきます。僕の前の会社なんかまさにそれで、一番脂が乗ってくる30代前半の比率が極端に低く、人口ピラミッドは平子理沙ばりのくびれのナイスボディーです。

という訳で、「中途採用を行っているかどうか」というのは、その会社の力を知る一つの指標になるかなと。企業のWebページに、中途採用ページが用意されてるかどうか確認してみてください。そもそもページ自体が無い会社は、中途採用の文化が無いと思ってよいかと。

※1
ちなみに、このやりとりあった直後くらいにリストラ開始w
仕事が楽(気楽)なのは確かだけど、アラサーで基本給手取り17万…同じ「気楽」なら派遣の方が稼げるんじゃ(年金とか考慮しても)。




2011年12月29日木曜日

おもくそクエストファイナルファンタジーファイナル

ゲリラ的雇用面接のすすめ - The Joel on Software Translation Project
我々の欲しているのは「才能 」に溢れた逸材であり、特定のスキルを持つ技術者ではない。どのようなスキルも技術的に数年すれば時代遅れとなる。重要なのはどのような新技術でも習得する事の出来る人を採用する事であり、たまたまちょうど良いタイミングでSQLを知っていた人を採用する事ではない。

おもくその転職活動冒険譚『おもくそクエスト』シリーズ。
転職活動を終えてから年をまたいで1年以上経過、下手すりゃ2回目の年跨ぎを迎えてしまいそうな状況でしたが、今回で本当にファイルです。もうこれ以上タイトル思いつかないし。

使用した媒体

エージェント2社を使用しました。転職サイトやスカウトサービスは未使用。
またエージェントは、大手1社、ITに強そうな中小1社という構成としました。
理由としては、選定にあたっていろいろネットを調べてると
  • キャリアコンサルもピンキリ。外れの場合もあれば、外れではなくても得手不得手があったりするので、エージェントは複数利用した方がよい。
  • 大手は、キャリアコンサル一人あたりの担当人数が多いので、アクションが遅かったりおざなりにされる場合がある。
というような意見を随所で見かけ、まあそうだろうなと納得したので。
ちなみに僕が調べた限りでは、電車の広告などでよく見かけるR社やI社はあまり評判よろしくなさそうです。もちろん、実際はどうかは分かりません。きっとこれもコンサルによるのでしょう。
おすすめエージェント
僕が利用した「大手1社」というのはパソナキャリアなんですが、ここお薦めです。「顧客満足度No1」ということで選んだのですが、本当良かったです。担当コンサルは合計で3人ついてくれて(メイン1名+サブ2名)、前述した「大手はアクションが遅い」は皆無でした。また会社に関する情報は「ここは激務です」「あまりいい噂は聞きません」などと包み隠さず正直に教えてくれた。面接の傾向と対策などの有益な情報やアドバイスも膨大でした。

唯一注文をつけるとすれば、応募した企業一覧、選考の状況などをシステム化してくれてたら尚良かったかな。面接終わった後に、どんな質問があったかなどを担当コンサルに報告するのですが、手段がメールなんですよ。報告内容はおそらくコンサルがコピペしてどっかに記録しているのでしょうけど、システム化してそこに入力して報告するようにすれば、転記の手間が省けると思いますよ。ちなみにもう一つの中小エージェントはそうなってて、非常に便利でした。

一応、中小エージェントについても触れておきましょう。正直、あまり良い印象は持てませんでした。別にコンサルの人柄とかアクションの速さとかには問題なかったですけど、明らかにブラックだろって求人をポンポン持ってくるんですよね(光系列とか)。その会社の内情について質問しても、回答は「そんな事ないですよ」的に浅いもので、パソナキャリアの時のような「包み隠さず」感が感じられず、不信感が募っていきました。情報・アドバイス量もパソナに比べたらずっと少ない。唯一勝ってると言えるのは、前述した転職活動管理をシステム化してることくらい。

まあ、結局は中小エージェントの持ってきた求人に決めちゃったんですけどね(というかそれしか無かった…)。ちなみにその求人の会社(ていうか今の会社)は以前も述べた通りブラックの噂あり(実際どうだったかはこちら)。

ていうか、世の中はすっかりソーシャル転職の普及期ですなぁ。できる人間はエージェントすら必要としない時代となるのか。

数字の報告

自社サービスを持っている企業を中心に挑戦した、今回の転職活動。各種通過数などは以下の通り。
  • 書類選考
    • 応募:21
    • 通過:11
  • 面接(一次、二次)
    • 社数:9
    • 通過:5
  • 最終面接
    • 社数:3
    • 通過:1
結局、1社っす…。書類選考通過率は大体3割くらいらしいのですけど、ご覧の通り僕は5割超え。書類選考通過したってことは、一番の懸念であった「業務系しか経験無い」って経歴でも一応問題なしと見なされたって事で、経歴突破できたのなら割とすんなりいけるんじゃね?と早々に思ったものだけど、そう簡単にはいきませんな。

総括

最初に言いたいのは
「応募資格は満たせてても、結局は経験者有利」
ってことです。結局、中途採用では即戦力が求められますよ、と。「人柄、コミュニケーション、向上心などは問題無い。けど、他の応募者の方が経験豊富なので…」というパターンの多いこと多いこと。冒頭のジョエルのように「才能(≒ポテンシャル)」で選んでる余裕は無いのか…

前述の通り、自社サービスを持ってる企業を中心に応募したのだけれど、質問はどこも似たようなもんでした。サービスに関する質問は「見てみた感想は?」レベルの浅いものが多く、深い・細かい所まで突っ込まれることは殆ど無かったです。僕、面接前には滅茶苦茶使い込んで長短所列挙したりとかなり時間費やしてたのですけど、これには正直拍子抜け。

そういえば、有名企業よりは、非有名少数ベンチャーの方が不通過が多かった。倍率的には非有名の方が低いだろうから難易度も低いかなと思いきや、意外な結果に。ある非有名ベンチャーの面接で「うちはこの通り人数少ないから、フォローする余裕はないので、自分で学習・解決してもらう必要がある」というような事言ってたので、要するに「フォローできないから経験者の方が安心」ってことなんでしょう。

最後の最後に

最後ではないという事を再度お伝えします。結局、収まりきらんかった…
タイトルとの矛盾に関しては「ファイナルファンタジーなんか『ファイナル』とか言っときながら続編出まくってるじゃねぇか!ていうか『XIII-2』とか何だよ!『XIIII』でいいじゃねぇか!」という小学生レベルの回答を送ときます。
ということで、次回作のタイトルは
「おもくそクエストファイナルファンタジーファイナル-2」
で決定。




2011年12月28日水曜日

VirtualBox環境構築メモ

仕事で使う機会があったのでメモっておく。大した内容じゃないですけど。VMware Playerより高機能っぽいど、お勉強とかに使うくらいなら別にどっちでもいいかな。
ちなみに仕事ではCentOSばっかりなので、当エントリではせっかくなんでUbuntuにしてみました。

各種ソフトウェア

  • VirtualBox 4.1.8
  • Ubuntu 11.10

VirtualBoxインストール

以下ページよりダウンロード。
インストールに関しては特に説明すべきことは無い。

UbuntuのISOイメージダウンロード

from... Ubuntu Desktop 日本語 Remix CDのダウンロード

仮想マシン作成

「VirtualBox マネージャー」を起動し、ツールバーの「新規」を押下。ウィザードが開始される。
開発者なら各項目の意味合いは何となく分かると思うので、僕が踏んだ手順は箇条書きでお送りします。
  1. 仮想マシン名とOSタイプ
    • 名前
      任意の名称を入力
    • オペレーティング システム
      Linux
    • バージョン
      Ubuntu
  2. メモリ
    お好みで
  3. 仮想ハードディスク
    「新規ハードディスクの作成」にチェック
  4. File type ※何故ここから英語混じり?
    「VDI」を選択
  5. Storage details
    ※仮想ディスクのファイルサイズを固定サイズとするか可変サイズとするか。
    「Dynamically allocated(可変)」を選択。
    • 場所(仮想ディスク作成先フォルダ)
      お好みで
    • サイズ(タイプを可変とした場合は最大サイズ)
      お好みで
  6. 概要(仮想ディスクの)
    「Create」を押下
  7. 概要(仮想マシンの)
    「Create」を押下

作成した仮想マシンにOSインストール

作成した仮想マシンを選択してツールバーの「起動」押下。またもやウィザードが開始される。
以下、僕の足跡を箇条書き。
  1. インストールメディアを選択
    ダウンロードしたUbuntuのISOイメージファイルを選択
  2. 概要
    「起動」押下。
    尚、これ以降はUbuntuインストーラの世界です。
  3. ようこそ
    Ubuntuをインストール
  4. Ubuntuのインストール準備
    特に何も選択せず「続ける」押下
  5. インストールの種類
    「ディスクを削除して…」を選択
  6. ディスクを削除して…
    「ドライブの選択」欄でVirtualBoxのHDが選択されてることを確認し(てか選択しは一つだと思うけど)、「インストール」押下
  7. どこに住んでんだよお前
    Tokyo
  8. キーボード
    日本語
  9. あなたの情報教えてよ
    適当にお好みで
そしてじっと待つべし。

ネットワークアダプタ設定

デフォルトの「NAT」だと、同一ネットワークのマシンからはおろか、ホストOSからもゲストOSと通信できない。よって、通信したい場合はネットワークアダプタ設定を変更する必要がある。

仮想マシンを選択してツールバーの「設定」を押下し、表示されたダイアログの「ネットワーク」を選択。
「割り当て」を以下のいずれかに設定する。尚、ダイアログ見れば明らかだが、アダプタは最大4つまで設定可能。
  • ブリッジ アダプタ
    同一ネットワークのマシンと通信可能
  • ホストオンリー アダプタ
    ホストOSとのみ通信可能
  • 内部ネットワーク
    同一の名前(「割り当て」のしたの項目)のアダプタと通信可能
    ※仮想マシン同士で高速に通信したい場合に

Guest Additionsのインストール(任意)

VMwareにとっての「VMware Tools」のような便利ツール。
これいれとくと、ウィンドウサイズに合わせて描画領域がリサイズされたり、ホストOSとの共有フォルダが利用できるとのこと。
実行中の仮想マシンのウィンドウメニュー「デバイス」>「Guest Additionsのインストール」を選択。Ubuntu側でディスクがマウントされるので実行する。
インストール完了したら、メニューに項目が追加される(ウィンドウリサイズは「ビュー」内に)ので、お好みに合わせて設定してください。

2011年12月25日日曜日

Selenium 2 事始め - Maven編

さて、前回エントリではSeleniumのJARファイルを手動配置してましたが、実際試した方はお分かりでしょうがJARファイルたくさんあります。これだとバージョン上げるときに大変です。
今回は、Seleniumのバージョンを指定すれば必要なJARを自動で探して取ってきてくれるMavenを使用した環境構築手順をご紹介します。
まあSeleniumとうよりは、殆どMavenの使い方です。
Mavenか…Javaメインだった前職の業務系SIerでは、4年半勤めて結局1回も使う機会は無かったなー…はー情けない…

各種ソフトウェアのバージョン

  • Maven 3.0.3
  • Selenium 2.15
  • Java SE 7
  • Firefox 9.0.1
  • eclipse 3.7
  • Windows 7

Mavenインストール

ダウンロード&配置
まずはアーカイブをダウンロード。
解凍したものは任意のディレクトリに配置。
環境変数設定
以下設定を追加。ルートディレクトリのパスはお使いの環境のものに置き換えてください。
  • Path : {Mavenルート}\bin
  • JAVA_HOME : {JDKルート}
動作確認
コマンドプロンプトでmvnコマンド実行してみてエラーが無ければOK。
C:\maven>mvn --version
Apache Maven 3.0.3 (r1075438; 2011-03-01 02:31:09+0900)
Maven home: C:\maven\bin\..
Java version: 1.7.0_02, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.7.0_02\jre
Default locale: ja_JP, platform encoding: MS932
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"

Seleniumプロジェクト作成

以下コマンドでプロジェクト作成。「-DgroupId」でパッケージを、「-DartifactId」でプロジェクト名を指定します。
尚、以下のやり方だとコマンド実行したディレクトリに作成されます。多分オプションで作成先は指定できると思うけど、調べてないから知らん。
C:\maven>mvn archetype:create -DgroupId=com.example.selenium -DartifactId=Selenium2SampleByMaven
pom.xmlにSeleniumライブラリの依存設定追加
Mavenの肝。これ設定しておくと、必要なJARを勝手に取ってきてくれます。
バージョン上げるときは<version>変更するだけ。コンパイル(mvn complile)などのタイミングで取りに行きます。
公式サイトにある依存設定を<dependencies>タグ配下に追記します。

eclipseプロジェクトに変換
eclipseで読み込めるように「.project」や「.classpath」を作成してくれます。
ちなみにpom.xml編集していれば、このタイミングでJAR取得しにいきます。
> cd Selenium2SampleByMaven
> mvn eclipse:eclipse

eclipse設定

Maven関連の設定追加
設定ダイアログで[Java] -> [ビルド・パス] -> [クラスパス変数]と進み、「新規...」で追加します。
  • M2_REPO : {ローカルリポジトリのパス}
    ※デフォルトだと{ユーザールート}\.m2\repository
もう一個の方は設定ダイアログで[実行/デバッグ] -> [ストリング置換]と進み、「新規...」で追加します。
  • maven_exec : {Mavenルート}\bin\mvn.bat

あとは

作成したプロジェクトをeclipseにインポートして、前回エントリのサンプルを作って動かしてみてください。
ちなみに、当エントリのやり方だと、プロジェクトのコンパイラー設定がバージョン1.4になってしまっており、コンパイルエラーが発生しちゃってました。これも多分プロジェクト変換時にオプションで指定できると思います。追々調べて追記しときます。

参考

Selenium 2 事始め

ブラウザを自動操作するテストツールであるSelenium 2の導入メモです(言語はJava)。
今年の6月辺りに、バージョン1系を散々調査・検証の上カスタマイズしたりしてよっしゃ終わったと思ったら、彗星の如く現れやがった時の脱力感ときたらなかったです。

各種ソフトウェアのバージョン

  • Selenium 2.15
  • Java SE 7
  • Firefox 9.0.1
  • eclipse 3.7
  • Windows 7

SeleniumのJARをダウンロード

公式サイトからZIPファイルをダウンロード。
解凍したら中身から以下を取り出し、プロジェクトのビルドパスに追加。
  • selenium-java-2.15.0.jar
  • libsフォルダ内のJAR全て

サンプルクラスで試す

公式ドキュメントの以下ページのサンプルをコピペして試してみましょう。

Firefoxが起動し、Google検索が自動実行されればOK。
いやー感動しますね。何かいろいろと作れば楽できそうだ。

おもくそクエストファイナルファンタジー

おもくその転職活動冒険譚『おもくそクエスト』シリーズ。
前回の終わりに「次回、完結編。」とかほざいてから7ヶ月強、転職活動終えてからは実に1年以上経過というフレッシュさの欠片も無い状態ですが、物書きのリハビリがてらまだ引っ張ります。つってもいい加減に今回で終わらせますけど。ほら、タイトルをご覧なさい。今までのドラクエにちなんだタイトルと違うでしょ。「終わり」を表す単語でしょ。決して、前回の「Ⅶ」に続く「Ⅷ」の「空と海と大地と呪われし姫君」にちなんだ言葉を思いつけなかったからではありません。

で、結局転職は成功したのかよ

一応成功しました。今回の冒険のそもそもの目的を簡単に纏めると
「向上心が高く、市場価値のある技術を使った仕事に携われ、自分がより成長できるような会社で働きたい」
というもの。
LAMPの仕事させてもらえてるし、みんなめっちゃアンテナはってて勉強してる会社…ということで、目的は達成できました。それに、目的には無かったけど収入も増えたし(※1)。

ただまあ…勤務形態は派遣みたいなもんで客先常駐(大抵1人で)なので、自社社員が優れているかどうかという要素は、一緒に仕事する機会が基本無いから正直あんまり関係無いですけどね。結局は常駐先次第です。この辺の所があるので「一応」成功としました。

ところで、前作でちらっと触れた、会社のブラック説。実態は…僕にとってはブラックではなかったです。ていうか、僕は先にも述べたとおり客先派遣者なので、自社の労働環境は関係ない。「いやいや、IT業界で派遣(人貸し)なんて大抵ブラックな仕事だろう」という意見があるかもしれませんが、案件は誰もが知ってるWeb系企業の直請けが多く、訳分からん会社が間に挟まっている○次請けみたいなのはあまり無く、割と健全な仕事が多い(※2)。実際、ほぼ定時帰りのはたくさんいる(ちなみに僕もその一人)。まあ、立場上どうしても有給休暇はとりづらいですけど(月140時間下回るな圧力)…

「『僕にとっては』ブラックではない」ってことは…

自社勤務である営業や他事業部の人達は、結構な長時間労働&一部ポジションでは半強制?の休日出勤もあるようで、確かにブラックと言われる側面はあるかもしれません。でも仕事=趣味という人が多いようで、みんな好きで働いている模様。それに、不毛に時間を浪費しているのではなく、働いたら働いた分得るものはあるようなので、本人が好きで働いてるならいいんじゃないの。
僕の中でのブラック企業の定義は、
「費やした労力に対するリターンが限りなく少ない」
というものです。その定義から鑑みると、ブラックとまで言うのはちと違うのかな、と。
まあ、仕事≠趣味の人にとっては、得るものがあるとしても長時間労働は堪らないでしょうけど(ちなみに僕はこっち側)。

最後に

これが最後じゃないということをお伝えします。
数字報告やお薦めのエージェントとかいい会社の見分け方とか、もうちょっと書きたい事があるんですけど、もう既に結構な文字数となってしまったので…
次はいい加減本当にファイナライズします。

※1
まあ前の会社が安すぎたから、どこ行っても大抵UPだろうけど。30近くでも基本給の手取りが17万ですからね…

※2
ちなにみ業務系の案件は大抵燃えてます。流石にこれ系での直請けは「上流」会社のもので無理っぽい。この現実を見て、業務系SIerを脱出して本当に良かったとつくづく思った。

2011年12月24日土曜日

Subversion導入メモ

クリスマスだ。ということで、Subversionの導入メモだ。
これからはGitだぜ的な世の中だけど、大抵の現場ではまだ根強く使われているであろうSubversion…
何だこの始まり方は。

試した環境

CentOS 6.0

インストール

Subversion本体
# yum install subversion
mod_dav_svn
Apache経由で(HTTPで)リポジトリにアクセスするために「mod_dav_svn」モジュールをインストール。
# yum install mod_dav_svn

リポジトリ作成

「svnadmin create」コマンドを使用。
下の例では、まずSVNのホームディレクトリを作成し、それからrepo1リポジトリを作成。
最後にディレクトリの所有者をapacheに変更。
# mkdir /var/www/svn
# svnadmin create /var/www/svn/repo1
# chown -R apache:apache /var/www/svn

リポジトリのアクセスアカウント作成

htpasswdコマンドを使用。
下の例では、アカウントuser1とuser2を追加しています。
# htpasswd -cm /etc/httpd/.svnpasswd user1
New password:
Re-type new password:
Adding password for user user1
# htpasswd -m /etc/httpd/.svnpasswd user2
New password:
Re-type new password:
Adding password for user user2

設定ファイル編集

/etc/httpd/conf.d/subversion.confを開き、URLとSVNホームを紐づける設定を定義。
下記の例では、「http://{ホスト}/svn」というURLと「/var/www/svn」を対応付け、さらに先程作成したパスワードファイルを使用して基本認証を行う設定をしています。

編集完了したら、念のため設定ファイルにエラーが無いか確認。
# service httpd configtest

「Syntax OK」を表示されればOKなので、Apache再起動。
僕ずっと「/etc/init.d/httpd」使ってたけど、serviceコマンドなんてのがあったのね。
# service httpd restart

Subersionにアクセスしてみる

チェックアウト
「svn co」コマンドを使用。
下記の例ではrepo1リポジトリにuser1でアクセスしています。
$ svn co http://{ホスト or IPアドレス}/svn/repo1 --username user1
認証領域: Authorization Realm
'user1' のパスワード:
-----------------------------------------------------------------------
ATTENTION! Your password for authentication realm:

<http://192.168.xx.xx:xx> Authorization Realm

can only be stored to disk unencrypted! You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible. See the documentation for details.

You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/home/omokuso/.subversion/servers'.
-----------------------------------------------------------------------
暗号化されていないパスワードを保存しますか (yes/no)? no
リビジョン 0 をチェックアウトしました。

最後の「暗号化されていないパスワードを保存しますか?」ですが、保存しておくともちろんそれ以降のアクセスの際に一々パスワード入力せずに済みます。が、それは当然セキュリティ的にはあまりよろしくありません。この辺はお好みで選択してください。

ところで、保存を拒否した場合、何と毎回「暗号化されていないパスワードを保存しますか?」と聞いてきやがります。このお節介を止めさせるのは以下の設定。
$ ~/.subversion/config
store-passwords = no
リソースを追加してみる
流れは
  1. チェックアウトしたディレクトリ配下にリソース新規作成
  2. リソースをバージョン管理に追加
  3. コミット
$ cd repo1
$ mkdir trunk branches tags
$ svn add trunk branches tags
$ svn ci -m "お馴染みのディレクトリ新規追加"

参考

LAMP of CakePHP on VMware:構築後のデザート~Samba導入

超豚足でお送りしている当シリーズ。CakePHPに関してはインストールと簡単な動作確認を行った以外は何も書かずに早8ヶ月。
月日の移ろいとは残酷なもので、この間の僕はお陰様でRubyやPythonにも携わる機会があり、正直PHPへの興味は薄れてきました…。前述の言語や、SIer時代にメインで使ってきたJavaと比べると、言語としての力の差(※1)やスタイルの一貫性(※2)とかでどうしても見劣りを感じてしまうんだよな。まぁそんな偉そうなこと言えるほど使い込んではないですけど。

まあそれでも需要が高い言語ではあるし、メモしておきたい事は溜まっているので、追々書いていきます。ちなみに今日もPHPではありません。今回はSambaの導入です。
尚、OSはCentOSです(5.4以降で確認済)。

試した環境

CentOS 5.4以降

本題に入るその前に、VMにLAN内の別マシンからアクセスするには

デフォルトの「NAT」だとVMを動かしているマシン上からしかアクセスできないので、同一ネットワーク内の他のマシンからもアクセスできるようにネットワークアダプタ設定を変更。
仮想マシン設定の「ハードウェア」→「ネットワーク アダプタ」の「ネットワーク接続」欄の「ブリッジ」を選択。

Sambaパッケージインストール

# yum install samba

Sambaアクセス用ユーザー作成

sambaユーザーを使用する例。
「pdbedit」コマンドはsambaパッケージと共にインストールされる。アクセス用パスワードを聞かれるので入力する。
# useradd samba
# passwd samba
# pdbedit -a samba
new password:
retype new password:

Samba設定

smb.confファイルを編集。最低限以下を設定しておけば大丈夫でしょう。
各設定項目の意味は何となく分かると思うので割愛。
# vim /etc/samba/smb.conf
[global]
workgroup = WORKGROUP
hosts allow = 127. 192.168. 
dos charset = CP932
unix charset = UTF-8
display charset = UTF-8

# 任意の名前をどうぞ
[share]
comment = "share"
path = /home/samba/share
pubilc = no
writable = yes

ファイアウォール設定

Sambaで使用するポートはUDP137・138とTCP139。
# vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
# /sbin/service iptables restart

デーモン起動

ついでに自動起動設定もやっちゃいましょう。
# /etc/init.d/smb start
# /sbin/chkconfig smb on

アクセス確認

Windowsのエクスプローラーのアドレスバーに「\\IPアドレス」と入力してアクセス。アカウント情報を入力すると、晴れて共有ディレクトリに入場できます。

ディレクトリ一覧は表示されるが「権限がありません」的なエラーが発生してディレクトリに潜れない場合
SELinuxを無効化してみてください。
setenforceコマンドで無効にし、再起動時に有効にならないよう設定ファイルを編集。
# setenforce 0
# vim /etc/sysconfig/selinux 
SELINUX=disabled

参考

関連エントリ


※1
仕事しててPHPでイマイチだなと思わざるをえなかった点は以下。
  • マルチスレッド機構
    Javaライクなやつ。curl_multiはもちろん知ってるけど、あれってスレッド間通信できます?
  • Selenium WebDriverで、Javaみたいにスタンドアロンで動かせない。
    PHPからはPHPエクステンション形式以外のCプログラム使えない事に起因?

※2
関数の引数の順番(in_array()では検索キーが第一引数だけどstrpos()では第二)とか、クラスや関数の名称がアンスコ区切りだったりキャメルケースだったり…
PEARの「HTTP_Request」とかの命名規則って何て言うの?

2011年12月11日日曜日

[Twitter]つぶやきのRSS取得方法

2012/10/27追記

今月の未明に「twitter.com」ドメインのRSSが取得できなくなりました。一応代替手段はあるようですが、それも来年3月までしか使えません。

※参考
TwitterのRSSが取得できないのでTwitter検索で代用する - そうだ?Blogを書こう?

追記前の本文ここから

TwitterのRSSと言えば、UI変更(URL内に「/#!/」が出現)に伴いページ上からリンクが消えてしまったというのは今更な話。
そしてGoogleリーダーの場合、旧URL(http://twitter.com/xxxx)をフィードとして追加すると、勝手にRSSのアドレス探して変換して登録してくれたのだけど、今日久しぶりに試みたら「検索キーワードと一致するフィードはありませんでした。」と表示されてしまった。これまたGoogleリーダーのUI変更によるものだろうか。

うわーマジかーどうすっぺーと一瞬嘆いた後、ふと画面を見ると「フィードファインダーに戻る」というリンクがある。クリックすると、「フィードをキーワードで検索」なるフォームがある画面に。どうも
「すべてのアイテム」ツリー内の「アイテムを参照」→中央ペイン「検索」タブ
という経路で辿り着けるらしい。

検索の得意なGoogle卿のことだから、もしかしたら…と、以下のようにTwitterのアカウント名@付けて検索してみた。ちなみにサンプルは堀江氏。

結果は以下。


ばっちり見つけてくれました。
情けない話ですが、こんな機能全然知らんかった。
というわけで、リハビリがてらの個人メモ簡単エントリでした。

後記

ていうか、あの堀江氏ですらGoogleリーダーでの購読数30って、やっぱりTwitterはRSSで読むもんじゃないんですかね。ちなみに僕は、ミック氏(@copinemickmack)や、分裂勘違い君劇場の@fromdusktildawn氏のように、くだらないつぶやきが殆どなくて濃いつぶやき連発する人の場合は、RSSで漏れなく拾うようにしてます。

それとアクティビティ機能ってまだ生きてるのね。あれ導入される前は、定期的にフォローされましたメールが飛んできてたけど、導入されてからこっち全然飛んでこない。まあ殆どが、フォロー返し目当ての見境無しフォローだったり企業アカウントだったりだけど、アクティビティ機能はそれらに対する抑止力となっているのだろうか。
ていうか、僕のつぶやきに魅力がない事がはっきり露呈…

2011年12月4日日曜日

[Blogger]Google+1ボタンの設置手順

師走だ。4ヶ月ぶりにこんにちは。まさか1シーズンほったらかすとは思わなんだ(てか雑記にいたっては2シーズン)。書きたい事はかなり溜まっている(主に技術メモだけど)ので、いい加減に再始動するぜ俺。

本日は、今さらですがGoogle+1ボタンを設置してみましたので、その手順を紹介します。昔書いたエントリのフォーマットを丸コピするという、リハビリがてらの簡単エントリっす。
ちなみに昔書いたエントリというのは以下です。

1.HTMLタグの作成

まず以下ページにアクセス。
お好みに合わせて情報を入力してHTMLコードを作成するわけですが、「+1 ボタンの対象とするURL」には以下の値を入力しておくと、後の作業が多少楽になります。
  • data:post.url
当ブログに設置しているボタンの場合、その他に初期設定から変更した項目は以下だけです。
  • Annotation:バルーン
  • 言語:日本語
上記設定を行った場合、以下のようなコードとなってる筈。
<!-- このタグを +1 ボタンを表示する場所に挿入してください -->
<g:plusone href="data:post.url"></g:plusone>

<!-- この render 呼び出しを適切な位置に挿入してください -->
<script type="text/javascript">
  window.___gcfg = {lang: 'ja'};

  (function() {
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/plusone.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
  })();
</script>
続いて、記事毎にボタンを設置した際に、+1対象のURLに記事毎の値がセットされるように、タグを少し修正します。

2.「href」属性の左に「expr:」と記述

以下のように。
  • <g:plusone href="data:post.url"></g:plusone>
    →<g:plusone expr:href="data:post.url"></g:plusone>

3.完成したタグをテンプレートに記述

コメントに従って、それぞれのタグをテンプレートの適当な位置に挿入します。
「デザイン」→「HTMLの編集」のページで「ウィジェットのテンプレートを展開」にチェックを入れ、テンプレートファイルを表示し、お好みの場所に貼り付けてください。

<script>タグは、コメントにもあるようにどこでもいいです。僕は<body>タグ内のケツに挿入しました。

ボタンに変換されるのは<g:plusone>タグですので、これは表示したい位置に貼り付けてください。
記事本文の後ろとか、当ブログと同じく記事フッタ辺りが人気エリアですかね。
※尚、テンプレートに貼り付けて保存すると、属性値を囲っている「"」は「'」に変換されます。動作に支障は無いので気になさらぬよう(というかむしろ「'」じゃないと支障がある)。
(例)記事本文の後ろ
「<data:post.body/>」ってのが記事本文に置き換わる部分です。

(例)記事フッタ
「<div class='post-footer'>」で囲まれた箇所が記事フッタです。


右揃えにしたけりゃ

<div>タグで囲むなどしてください。


関連エントリ