2012年を振り返って
さて、今年も残す所あと数時間ですね。みなさん、実家に帰って家族と過ごしたり等々、思い思いに過ごされていることと思います。
去年に引き続き、1年の振り返りエントリです。今年の振り返りと、来年の目標なんかをボンヤリと決めていきたいなと思います。
2月の出来事
2月には第2回岡山Javaユーザ会の勉強会を開催しました。場所は岡山県立図書館。
このときの目玉は2点ほど。
RedBullのエナジーチャージタイムと、Java Championの櫻庭さんにご登壇いただいたこと。勉強会にRedBullが来るというのは、自分にとってはひとつの野望(!)でしたので、非常に良かったです。場所が場所だけに、少々ビクビクしながらでしたがw
4月の出来事
4月はJavaOne TokyoとTwitter Open Houseへの参加。それから春の合同勉強会への登壇。
なかでもJavaOneは久々のJavaOneの日本開催で、普段はTL上でしか交流のない人たちと、直にお会いすることができたのが良かったです。JavaOne自体も前年に行ったSFでのJavaOneの雰囲気や空気感があって、本当に楽しいイベントでした。願わくば、またJavaOne Tokyoやってほしいですね。
5月の出来事
5月には第2回ガンプラ勉強会を開催しました。またオープンセミナー岡山2012を開催しました。特にオープンセミナーにはスタッフとしても関わらせていただき、大変良い経験になりました。来年のオープンセミナー岡山2013も @razon 氏を中心に素晴らしい講師をお呼びして、有意義な勉強会をやりたいと思います。
6月の出来事
パソコン交流会岡山git勉強会に参加しました。年明けには第2回を計画しているらしいですよ。
7月の出来事
第3回岡山Javaユーザ会勉強会を開催しました。
また岡山RubyKaigi01にも参加し、自分も「JavaからみたRubyの世界」と題してLTをさせていただきました。
8月の出来事
8月にはTDDBC岡山1.0を開催しました。自分はJavaのTA兼カメラマン(?)として参加。TDDBCらしい、普段の勉強会とは違う勉強会でしたし、参加者の皆さんにとっても大きな収穫のあった勉強会であったと思います。特にこのTDDBC岡山の開催に、並々ならぬ執念を燃やしていた @mao_instantlife さん、お疲れでした!
あと、完全に個人的な話ですがテスラロードスターに乗って来たのも、この時でしたね。
10月の出来事
第10回姫路IT勉強会に登壇させていただきました。この時の話題はgit初心者向けに、お話をさせていただきました。
11月の出来事
11月には第4回岡山Javaユーザ会勉強会を開催しました。いつも勉強会を開催するときにはセッションを担当していただいたり、ジャンケン大会用に景品を用意していただいたりと、Oracle寺田氏には今年も大変お世話になりました。いつも本当にありがとうございます!
12月の出来事
そしてシメを飾るのは合同勉強会in大都会~2012Winter~と忘年会議2012です。
岡山のみならず、大阪や東京からも多くの方にお越しいただき、大都会の勢いを感じていただけたのではないかと思います。
また大都会にしかない座・スタジアムの素晴らしさも同時に味わっていただきました。忘年会議はあの雰囲気と座・スタジアムがあってこそ!座・スタジアムが大都会のIT業界に及ぼした影響は計り知れないのではないでしょうか。
転職します
先日書きましたエントリで転職先をさがしていましたが、明日12/28をもって今の会社を退職いたします。
今の会社の設立
今の会社は設立がちょっと特殊です。
今の会社の設立前、前社の社長(以降S社長)が高齢なことから「ワシもそろそろ引退・・・」といった流れの中、前社をたたむという事に。そこで当時付き合いのあった、SIerを主力業務としていた今の社長(以降A社長)に今残っている社員をお願いできないか?という話のなかで今の会社が岡山で設立されました。自分はその設立以降、今までずっと在籍していました。
A社長は、主に大阪のクライアントを対象に仕事をしていましたし、既に大阪に会社を持っていましたので、岡山の会社はそれとは別に設立しました。ちなみにA社長とは、前社に在籍していた当時から一緒にお仕事をさせていただいていたので、おそらく10年以上の付き合いになるかと。*1
その設立から足掛け9年、特にA社長には随分とお世話になりました。本当にありがとうございます。
異端であること
正直、自分は使いやすいエンジニアではなかったと思います。スキルに関してはそれなりに使える部分もあったと思うのですが、自分が違和感を感じることについては容赦なく社長に意見を言っていましたので。
しかし、それでもなだめすかして(?)自分をなんとか会社に居させてくださったその包容力には驚きを隠せません。自分は、経営者は個人をまとめあげ組織として戦えるように一つにする事が、大事な仕事だと思っています。なので、やはり大事なのは一人ひとりの個性、状況、適正を把握し、それを受け入れることだと思います。*2A社長はそれができる、稀有な人であったと思います。
しかし意図していたわけではないかもしれないですが、振り返ってみると、自分は「組織の異端」であろうとしたような気もします。
自分は、なによりこの仕事が大好きですし、一生の仕事にしようと決めています。しかしエンジニアとして楽しく一生仕事をしていくためには、信念が欠かせないのです。その信念の発露として、いろいろ面倒に感じる意見を言ってきたつもりです。
無責任艦長タイラーというアニメが昔あったのですが、そのなかで「異端こそ組織の要なり」「異端を受け入れられない組織は、やがて死滅する」というセリフがあります。
組織あるいは個人でもそうですが、ルールは人間が作るものです。そのルールも時間や周りの環境が変われば、当然そのルールも現実と乖離していきます。その時そのルールに対して反対の声を上げるのは誰でしょう?それこそが異端です。
ルールは時や場所など環境によって変わるものです。その変化に逆行しルールを変える事ができなければ、そこに無理が生まれます。それが個人や組織を疲弊させ、本来は楽しいはずの仕事やエンジニアリングを、楽しくなくしてしまうのです。
この異端を受け入れ、ルールを柔軟に変えていける。自らを柔軟に現実にフィットさせる。その組織が生き残ると、自分は考えています。
自分は今後もそういった信念を持って、仕事をしていきたいと思います。
今後について
転職しますのエントリを公開してから、はてブ、メール、facebook、あるいは直接・・・自分でも驚く程の様々な方からお声をかけていただきました。ご心配してくださった方々には改めて、御礼申し上げます。
最終的には2社ほどの面接を経て、岡山の某社に年明けからの入社が決まっています。
そこではRuby on Railsでの開発が主になりそうなので、今後Javaなどを書く機会は減りそうですが、その辺りは自分でオープンソースの開発をやるなりで、そのモチベーションをキープできたらいいな、とか思っています。
岡山Javaユーザ会も引き続き、勉強会をやっていきますので何卒宜しくお願いいたします。
転職祝いクレクレ
というわけで本題。
理由はガンプラが欲しいからこのサイトを使ってみたかったから。いや、実はこういうサービスの話を、周りの人たちと話してたので、正直先越された感があってですね・・・
15円からカンパできますので、今回の転職を呪ってやる祝ってやるという優しい方、ぜひ上記のサイト経由で祝ってやってください。
大都会周辺のおすすめ夜景スポット&イルミネーション
これは大都会アドベントカレンダー24日目のエントリです。
イブですね。
諸君は、イブならデートに行くはずですね。
諸君がデートに行くなら、夜景を見に行くはずですね。
ということで、今日は大都会周辺のおすすめ夜景スポットを紹介したいと思います。
後楽園
言わずと知れた、日本三名園のひとつ後楽園。ここは昼間もいいのですが、たまにイベントをやっていて、夜間にはイルミネーションを点灯していることもあります。自分が行ったのは10月始めに開催されていた「秋の誘い庭園」というイベント。昼間には見ることができない、美しい風景をイルミネーションとともに鑑賞できるので、おすすめです。後楽園の公式HPにはイベントカレンダーもあるので、これをたまにチェックしてみるのもいいかも。
その他の写真はこちらからご覧になれます。
イオン倉敷
イオン倉敷の中庭でやってるイルミネーション。11/10には点灯セレモニーをやっていました。そのセレモニーには最近流行りのご当地AKB的な何かのグループと、ぶっかけうどんで有名はふるいちの社長さんとかがいました。というか、ふるいちの社長さんてチボリにいた海外の歌手の方とデュエットを組んでCDデビューしてるらしいですw
その他の写真はこちら
倉敷美観地区
言わずと知れた、岡山の最大の観光名所、倉敷美観地区です。
実は美観地区では通年、夜間のライトアップをやっています。10月~3月は21時、4月~9月は22時、までやっていますので、気軽に行けるのもいいですね。
全体的に、派手なライトアップではなく雰囲気を壊さない程度の明かりですので、写真撮影する場合は長時間露光で撮影するのがおすすめです。
その他の写真はこちら
遥照山
鴨方にある遥照山。ここも夜景スポットとして知られています。
かつては岡山の走り屋が集まる場所としても知られていましたが、道がほとんど整備されていないことや、走り屋の数が少なくなったせいもあって、今ではほとんど見かけなくなりました。しかし、山頂にある駐車場から見える夜景は絶景です!
ちょうど水島のコンビナートの工場地帯が見え、その工場の明かりが点々と輝く様子は素晴らしいものがあります。
展望台へ至る道が少々分かりにくいのが難点・・・
備北丘陵公園
ちょっと岡山から足を伸ばして、広島県庄原市にある備北丘陵公園。ここもクリスマス周辺で、例年イルミネーションをやっています。
ここの見所はなんといっても数!広大な公園内の至る所でイルミネーションをやっていて、電球の数は約60万個もあるらしいです。その数西日本でNo.1らしい・・・!
自分は点灯前の夕方辺りに現地入りしたのですが、カウントダウンと同時に60万個のイルミネーションが点灯する瞬間は感動しますw
その他の写真はこちらです。
それから庄原周辺は雪が降りますので、防寒&クルマの雪対策はしっかり行なってください。自分はFRで雪道を走るという、ちょっとしたアトラクションを楽しんできました!
以上、岡山周辺の夜景&イルミネーションの情報でした。
GlassFishの管理画面にlocalhost以外からアクセスする
これはJavaEEアドベントカレンダー23日目のエントリです。
先日 :id:tech-kazuhisa 氏から、こんなツイートが。
通常、GlassFishの管理画面にはlocalhostからしかアクセスできません。アクセスすると、以下の用になります。
なので、今回はGlassFishの管理画面にlocalhost以外からアクセスする方法をご紹介します。
まずは管理画面へのログインの設定。通常であればユーザ名やパスワードを要求されないのですが、localhostからもアクセス可能にするには、ちゃんとログイン情報を設定してやる必要があります。
なのでasadminコマンドからchange-admin-paddwordを使用してログイン情報の設定を行います。
asadmin change-admin-password
ユーザ名とパスワードを要求されますので、GlassFishの管理画面へのログインに使用するユーザ名とパスワードを設定しましょう。途中古いパスワードを要求されますが、これはデフォルトではブランクなので、そのままEnterキーを押しましょう。
「コマンドchange-admin-passwordは正常に実行されました。」と表示されれば、OKです。
次に、enable-secure-adminを実行しておきます。
asadmin enable-secure-admin
「コマンドenable-secure-adminは正常に実行されました。」と表示されます。あとは稼働中のdomainを再起動する必要があるので
asadmin stop-domain asadmin start-domain
などとして、GlassFishの再起動を行います。これで準備ができたので、ブラウザからGlassFishの管理画面にアクセスしてみましょう。ブラウザによっては、オレオレ証明書の警告がでますが、これはスルーしても大丈夫。
以下の用にログインの画面が出たら、change-admin-passwordで設定したユーザ名とパスワードでログイン可能です。
とっても簡単ですね!ぜひお試し下さい。
cucumber-jvmで受け入れテストを日本語で書こう
これはJava Advent Calendar 2012の13日目のエントリです。
Cucumberとは
CucumberはRailsではおなじみの受け入れテストを実行するツールです。
最大の特徴は、テストシナリオを自然言語(日本語、英語、etc...)で書けること。
似たようなツールにSeleniumが有るわけですが、これのテストは普通にJavaのコードですので、パッと見で分かりやすいってのがあります。
また、SEとは似て非なるサラリーマンプログラマでない人でも、書式さえ覚えれば簡単に受け入れテストを書けるというメリットもあります。
このCucumberをJavaから利用するためのツールがcucumber-jvmです。今回はこれを使用してWebアプリに受け入れテストを行ってみたいと思います。
実際に動かしてみよう
というわけで実際に動かせるサンプルを以下に用意してあります。
https://github.com/zephiransas/cucumber-example
適当なディレクトリにcloneした後、Mavenからcucumberを以下のようにして実行します。
mvn clean verify -Pintegration-tests
ブラウザが開いてテストが実行されているのがわかるかと思います。
では、実際にどのようにテストが実行されているか、その詳細を見ていきます。
featureファイル
src/it/resourcesにsample.featureというファイルがあります。Cucumberではこのfeatureファイルに受け入れテストの実行手順を書いていきます。
#language: ja フィーチャ: Cucumberのテスト シナリオ: テストのシナリオ 前提 ページを表示する ならば "Hello World"と表示されていること もし "ほむほむ"と表示されていること かつ "ほげほげ"と表示されていないこと もし "test"リンクをクリックする もし "ほむほむ"と表示されていないこと かつ "ほげほげ"と表示されていること
WebSteps.java
WebSteps.java内ではfeatureに記述した手順を、具体的にどのように実行するかを定義しておきます。
@前提("^ページを表示する$") public void ページを表示する() { connector.openAndWait("http://localhost:8080/cucumber-example/"); } @ならば("\"([^\"]*)\"と表示されていること$") public void と表示されていること(String pattern) { assertTrue(connector.isTextPresent(pattern)); } @ならば("\"([^\"]*)\"と表示されていないこと$") public void と表示されていないこと(String pattern) { assertFalse(connector.isTextPresent(pattern)); } @もし("\"([^\"]*)\"リンクをクリックする$") public void リンクをクリック(String selector) { connector.clickAndWait(selector); }
自然言語で書かれたfeatureファイルの手順との関連付けは cucumber.api.java.ja.* に定義されている
@もし、@ならば、@前提
といった日本語のアノテーションで記述します。このアノテーションの属性には正規表現を記述できますので、対応するfeatureの手順を記述します。
WebSteps内ではfeatureファイルから指定したパラメータを取得したり、またSeleniumを使用してブラウザ上の要素に対して値のセットや取得などができますので、これをassertThatなどで検証していきます。
まとめ
以上、駆け足ではありますがcucumber-jvmを紹介しました。
また、このcucumber-jvmについて12/16に岡山県立大学で開催される、合同勉強会in大都会岡山 -2012 Winter-でセッションをする予定です。
まだまだ席に余裕がありますので、興味のあるかたは是非ご参加ください!
転職先を探しています
突然ではありますが、転職を考えています。
35歳プログラマ定年説からいけば、とうに定年を過ぎた自分が転職を決意するまでには、正直かなり悩みました。しかし、このままでも行き詰ってしまうことも明白だと思い、自分を追い込む意味でも、このエントリを公開したいと思います。
転職を考えたキッカケ
色々ありますが、2点程でまとめます。
まずはSIerという業務内容。
現在の企業では、主に某機械製造業の会社のシステム全般に関わってきました。しかしリーマンショック以降、システムに対する投資を抑えようという動きになり、結果、新規にシステムを作るということはほぼ無くなりました。新規にシステムを作るといっても規模の小さなものばかりで、ここ3~4数年は大きな新規案件に関わることができませんでした。
既存のシステムのメンテナンスしかできない状況というのは、古い技術しか触れないということです。これではモチベーションを維持することは難しいし、なによりこれはエンジニアにとっては死活問題だと考えています。
2点目は、自分よりレベルの高い人が社内にいないため、吸収できるスキルがすくなくなってきたこと。
現在の職場はスタートアップから約10年、ずっと在籍していたこともあり、自分よりスキルが高いと思える人が残念なことに社内にいない状態になってしまいました。空き時間に社内で勉強することはできても、一人ではやはり限界があります。また先に挙げたように、それを活かす場もありません。
自分は、エンジニアは常に勉強し続ける義務があると考えています。
また、出向など他社で仕事をした際に、レベルの高い人たちと仕事をすることで多くの事を吸収できた事も、転職を考えるキッカケとなりました。
今までの職場でやってきたこと
主に、内部設計、実装、テスト等を中心に担当してきました。フレームワークの選定などのアーキテクト的な部分の経験もあります。ただ要件定義等のいわゆる上流部分については、あまり経験がありません。
他には、社内の新人教育としてプログラム研修や、社外のコミュニティでの講演活動の経験などもあります。今までの講演で使用した資料は以下にあります。
http://www.slideshare.net/zephiransas/presentations
これからやりたいこと
いままでずっとSIerと呼ばれる業界で仕事をしてきましたが、巷でよく言われるように、SIerという業界が縮小傾向にあるというのは事実であると思っています。なので、可能であればSIer以外の業種で仕事をしてみたいという希望を持っています。
ソーシャルゲームなどに代表される自社サービスを主体に、事業をおこなっているところであれば尚可です。
但しSIerは絶対に嫌だというものでもありません。SIerとして社会にどう価値を提供するのかを、真剣に考えている企業であれば、自分は非SIerに拘るわけではありません。
また、開発スタイルも従来のウォーターフォール的な分担作業ではなく、チームのすべての人間が開発プロセスのすべてに関わるスタイルを目指していきたいと考えています。そうすることでより、各人が自主性をもって仕事に臨むことができると考えているからです。
新しい職場で望むこと
- 技術が好きであること
新しいことを勉強することを是とする文化。できれば社内勉強会とかを定期的になっているような会社。やっていないのであれば、これからやりたいとおもっている会社。社内の人間のほとんどがExcelで綺麗な資料作りに没頭しているようなところは、難しいと思います。
- 自由であること
エンジニアの生産性を上げるには、自由にやらせるのが一番であるということを、ちゃんと理解していること。闇雲にルールで縛ったとしても、結果としてそれは生産性を下げる、会社の価値を貶める行為であることを理解していること。
- 静かな環境
エンジニアは外部の音をシャットアウトして集中しなければいけない時があります。同じフロアにサポートや営業の方がいて、どうしても静かな環境を提供できない場合もありますが、例えばヘッドフォンの使用を認めるとかで、集中できる環境があればいいと思います。
- 岡山近辺
完全に個人的な事情です。今のところ、生活の拠点を移すことが難しい状況ですので、岡山近辺、または岡山市内から通勤可能な場所でお願いできればと考えています。