Posts Tagged ‘お仕事’

香港に赴任することになりました

8月 3rd, 2010

20100718_0299-301resized
Creative Commons License photo credit: E.HOBA

twitterには流してましたが、8月1日付の人事異動で香港に赴任することになりました。8月6日のフライトで香港に発ちます。すでに携帯電話は解約済みで、ネットもしばらく音信不通になる気もします(あっさりiPhone4でも手に入れば別ですが)。以下よく聞かれるFAQです。

Q. 何でまた香港に
A. 以前の上司が2008年末から香港にいる関係で声をかけていただき、呼ばれる形で行くことになりました。
向こうでは電卓と電子辞書の企画・開発・生産を行っており、自分はソフトウェア面を担当するエンジニア・マネージャとして働くことになります。入社して5年目になりますが、これまでとは異なる業務領域を担当することになります。

Q. どれぐらい行ってくるの?
A. 社内の書類では3年となっていますが、あまり効力は無いと聞きます。
うちの会社で赴任する人の平均が5年と聞いており、それぐらいになるのではないかと思っています。
もっともせっかくの機会なのでできるだけ長くいたいとも思っています。香港は7年いると永住権がもらえるそうです。

Q. 「赴任おめでとう」か「実は行きたくないの?」
A. 元々海外留学 or 海外勤務を希望しており、長期の赴任がいいと言っているぐらいなので「赴任おめでとう」でOKです。

Q. 家族は一緒?
A. 一緒です。娘はもちろん、私も家内も初めての海外です。(旅行すら無し)
今回の件で初めてパスポートを取りました。
私は8月6日に出発しますが、家族は3ヶ月遅れぐらいで来る予定です。

Q. 今後どうやって連絡とったらいいの?
A. とりあえず以下の手段を使ってください。向こうでの住まい・電話などが整ったら改めて連絡します。ネット上の活動はこれまで通りだと思います。

メール:tunepolo@gmail.com, yuichi@tsunematsu.cc
twitter : @tunepolo
skype : tunepolo
facebook : http://www.facebook.com/tunepolo

Q. SIMフリーのiPhone4/携帯電話買ってもらえるね
A. 顔見知りの方はお気軽に相談どうぞ。

Q. 香港案内してもらえるね/美味しいところ紹介してね
A. 調べておきます :-)

4年前、新社会人だった自分へ

4月 2nd, 2010

Cherry blossoms / Sakura / 桜
Creative Commons License photo credit: TANAKA Juuyoh (田中十洋)

早いもので大学院修士卒で働き始め5年目に突入しました。4年間も働いていれば色々なことがあるもので、同期入社の友人が退社したり、同期同士の結婚式に呼ばれたり、海外赴任もいれば、自分のように同じ業務をこなし続ける人もいます。仕事は一貫して同じ内容ですが、異動はあって上司は4人変わったし、私生活では結婚して子供もできました。4年間は短いようで振り返るといろいろありますね。

今日から新年度ということもあり、色々な方が新社会人にエールを送った文章を書いているかと思いますが、自分も4年前の自分に教えたいことをまとめるつもりで書いてみます。リクルーターに選ばれる機会もなくて自分で振り返りをしないといつか忘れちゃうのも理由の一つです。ちなみに私の仕事はカメラやコピー機を作っているメーカーの研究開発職(ソフトウェアエンジニア)です、会社名まで知りたい人は2006年の5月あたりの過去ログを探すとわかるんじゃないかと思います。大学で情報処理を学んでいて、将来はメーカーで働きたいなんて人のお役に立ちますように。

◯これから就職活動を始める方へ
自分が就職活動をしていたときに気にしていたけど、今となってはどうでも良くなってしまったことです。

  • その会社の社風
  • 長く勤められる企業かどうか
  • 初任給

ベンチャーならともかく、社風は気にしすぎない方がいいと思います。
大きい会社になればなるほど事業部や部門によって雰囲気がぜんぜん違います。気になるなら何とかしてそこで働いている人にコンタクトを取ってご飯を食べながら話を聞くのがいいかと思います。今ならtwitterで呼びかければ誰かしら見つかるのではないでしょうか? もちろん真摯な態度でお願いする必要はありますが。

「リストラはしない方針」、「外資系だけど日本文化も取り入れた日本企業」、「長く勤められる会社に行きたい」もアテにならないですね。リストラしないというのはこれまでしてこなかった過去の結果を言ってるだけで、この先不景気にやればやらざるを得ません。この不景気なご時世だから信じてかかる人のほうが少ないかと思いますが。自分が就職活動で第2希望に挙げていた外資系の企業は昨年研究所を閉鎖してしまいました。20何年間の歴史があっても終わるときはきます。長く勤められる会社を探して寄生するよりも、どこの会社でも生きていけるスキルを持っている方がいいですよね。自分のキャリアは自分で作りましょう! 情熱プログラマーの受け売りです。

初任給がそのままの給料の会社もあれば、しばらくは「研修期間」で少しすると(ウチの場合は修士卒だと1年)ぐっと上がる会社もあります。実際に働いている人に聞けば手取りでいくら貰えているのかすぐに教えてくれるので新卒の募集要項なんて見てないで聞いてみるのがいいでしょう。

やっておいた方がいいのは自分が行きたい「部門」で働いている人へのインタビューと、できるならインターンですね。私の大学院の指導教授は「どこそこの会社に行きたい」と言ったらその会社の組織図を使ってどこに行きたいのかと指させましたが、とても理にかなっていると思います。「就社」でも当面の間働くのは配属先の部門ですからね。大学で情報系を学んでいてもプログラムが好きな人ばっかりでは無いと思います。私の毎日は朝から晩までC言語とにらめっこをしていますが、駄目な人は駄目みたいです。根性や気合でどうにかなるものではないので早めにわかっておいた方がいいでしょう。

◯アウトプットは将来の履歴書
ブログなり、Mixiなり、Twitterなり学生の頃は暇に任せて使う時間がありますが、就職するととたんに更新頻度が落ちて、使う人が減っていきます。会社での成果は当然会社に帰属するので、ただ毎日を過ごしていると自分の社会人になってからの成果を示すものが何もなくなってしまいます。自分の会社は学会活動も活発ではないので、転職することになって何か出せと言われたら特許公報でも持っていくしかありません。最初から転職ありきでブログを書けというつもりはありませんが、何かしら社会人になってからの自分の成長を書き留めておくアウトプット先があるといいでしょう。会社の業務も秘密のものばかりではなくて、よくよく見てみるとブログに書けるような一般性が高いものもあります。でもどこかに書き留めておかないとそれに気づくことも出来ないでしょう。

◯新卒が即戦力足り得ないのはその会社のルールを知らないから
持論ですが、どんな能力を持った人も入社してから半年は立たないと本来の力を発揮出来ないのではないかと思っています。会社には独特のルールや文化があり、それを踏まえて動かないと思ったように成果がでないことが多々あります。最悪なパターンに「事前の根回し」がありますが、それ以外にも小さなところで考慮すべき点はあります。例えば「その技術は会社の事業にどう貢献するのか」、「顧客にどう付加価値を伝えるのか」、「特許的な問題はないのか」、「製品アーキテクチャを考えて十分なパフォーマンスが出るのか」、「事業部の方針と提案する技術はあっているのか、興味を持ってもらうにはどう話したらいいのか」などなど、ベテランになるほど暗黙のうちに受け答えのパターンを作ってしまって気づかない点です。最初はしかられたりして落ち込むこともあるかもしれませんが、学ばなければならないルールを一つ気づくことができたと割りきってどんどん失敗するのがいいと思います。先輩も上司も失敗しない新入社員なんて期待していません。

◯仕事は自分で楽しくするもの
これも情熱プログラマーの受け売りです。エキサイティングな業務もあれば、つまらない業務もいっぱいあります。資料集めでネットサーフィンを延々とやるとか、PowerPointファイルを1ヶ月ぐらいこねくり回すとか、上司に指摘された修正をその上の上司に覆されるとか、いっぱいあります。
こういう時に発想の転換をして「いかにネットサーフィンが快適な環境を会社につくるか」、「今度の資料ではプレゼンテーション Zenを取り入れてみよう」と視点を変えてみましょう。

◯「この上司は分かってないな」と感じたら、上司に情報が十分に伝わってない可能性を疑うこと
「上司が分かってないのは仕様だ」というツッコミも来そうですが、私のアドバイスとしては、まは自分の伝え方を疑ってみることをおすすめします。上司はなぜそう判断したのか考えて、分からなければ聞いてみましょう。

「これからはクラウドだ」と言う上司にきちんとクラウドの動向情報をインプットしましたか? プライベートクラウドが駄目な理由を伝えましたか? クラウドで何ができるか事例を調べてメールで送りましたか? 飲みの席でDropboxとかEvernoteとか見せびらかしましたか? 上司に伝える情報を偏らせて自分の望む方向に誘導するのはやりすぎですが、「分かってない」と落胆する前に出来る限りのことをしましょう。

◯身だしなみを大切に
新入社員研修でお互いに毎朝プレゼンするというのがあったのですが、今でも覚えているのは「毎週靴の手入れをしましょう」というものでした。靴の磨き方は靴の手入れなど検索すればすぐに見つかりますが、実践している人は少数かと思います。自分も実践してみた(今でも隔週ぐらいで革靴の手入れをしています)のですが、足元を気にすると全体の身だしなみにも注意が行くようになります。

Subversion, Git, Redmine, Hudson – 今考えている連携

2月 21st, 2010


これからが本番、検索エンジンから来た方は先にSubversion, Git, Redmine, Hudson – 現状の連携 » tune webを読むことをおすすめします。上記が週末考えていた「こういう連携なら今の問題点を解消できるかな」と思えるフローです。「こうしたほうがいいよ」とかコメントありましたらお待ちしています。

1番のポイントはバージョン管理システムとしてGitを中心に据えました。社内はSubversionで統一するという規則があるので残すとして、開発チーム内ではgit svnを使ってGit化し、Subversionを直接触らないようにします。協力会社はSubversion縛りが無いのでGitで統一してもらいます。これまでは差分ファイルを送り合っていましたが、Gitを使えばパッチをうまく作り、修正単位でパッチファイルをやり取りすることが出来るでしょう。これまでは複数の修正がまとめて送られてきてましたが、パッチ単位ならレビューもやりやすく、「こうした方がいい」とか「こうして欲しい」というやりとりもやりやすくなります。

リポジトリがプロジェクト専用になるので、フックスクリプトも仕掛けやすくなります。現状は「空メッセージのコミットは禁止」程度の緩めのものですが、コミットメッセージに Issue ID を含むことを強制させる Git のフックスクリプトを書きました|SNS構築の手嶋屋を参考にすればRedmineのチケットが無いコミットは禁止できます。これで闇コミットがなくなるはず。

さらにGitを使えば「歴史を書き換えて」テストが通らないコミットをなかった事にも出来るはずです。コミット前にテストをする機能がTeamCityにはありますが、Hudsonにはありません。[#HUDSON-1682] Pre-tested commit feature – Hudson JIRAとして要望が挙げられていますが実現はまだ先になるでしょう。HudsonのGit Pluginのページにpushされた変更をテストして、成功したらmaster/stableにマージする設定手順がありましたが、リリースブランチを持ったときにも同じように出来るかは不明です。

というのをtwitterにつぶやいていたところ、@bleisさんと@masanobuimaiさんから情報をもらえました。Gitのフックスクリプトですが

  1. pre-receiveでpush前の状態をタグ付けする設定を追加
  2. post-receiveでHudsonの複数ジョブをキックして起動。
    1. テスト結果を取得して全て成功したらタグを消してgit svn dcommitを実行
    2. 1つでも失敗していたらpre-receiveでタグ付けしたバージョンに戻してpushをなかった事にする。

とすることでいけそうです。Hudsonのジョブ実行結果を知る方法は複数あると@masanobuimaiさんに教えてもらったのがPlugins – hudson – Hudson Wikiのページです。プラグイン無しでもリモートAPIを使っても出来るのかもしれません。
自前でフックスクリプトを用意する必要がありますが、出来ないことはなさそうです。
post-receiveでのテストに多少の時間がかかることを踏まえ、Redmineで参照するリポジトリはGitではなくSubversionにするのが良さそうです。

あとはRedmineのメール経由のチケット登録機能を有効にして、HudsonのナイトリーテストでこけたらカスタマイズしたメールをRedmine指定のアドレスに送ればOKですね。上の絵には「静的解析とメトリクス集計」が入ってますが、これは内製ツールです。リポジトリを集中管理してもらえるとこういうこともやってもらいやすくなりますね。

上記構成に3月中に取り組む予定です。うまく行くといいんだけど。

Subversion, Git, Redmine, Hudson – 現状の連携

2月 21st, 2010


会社の仕事を「Gitを中心に据えた開発ワークフロー」に変えたいなとこの週末ぼんやりと考えていたんですが、現状を整理して残しておくのも、あとで振り返った時も参考になるかもしれないと思って残しておきます。

開発しているものは画像処理ライブラリで、言語はC言語。プラットフォームはWindowsとLinux両方に対応していて、32bitと64bitどちらでも動くようにしたいのが前提。ほとんどのソースは共用出来るようにしています。開発者はWindowsを使ってVisualStudioで開発し、自動テストやリリース時はLinuxでMakefileを使ってビルドします。

バージョン管理は課で管理しているSubversionを使い、他のプロジェクトともリポジトリを共用しています。他に使っているツールはテスト自動化にHudsonとタスク管理と障害管理でRedmineがあります。Hudsonは2種類のテストを管理していて、コミットの度に動くビルドのテストとCUnitを使った単体テストと、毎晩複数枚の画像入力を処理するストレステストの実行を制御しています。Redmineはチケット駆動開発(TiDD)を意識し、コミットはチケットに関連付けるようにしています。あとは開発者の1人(自分です)がgit svnを使ってローカル開発をgitにしているぐらいです。

開発メンバは社内に2人、あとは社外の協力会社に手伝ってもらっています。両者の間にはネットワーク的に「超えられない壁」があり、リポジトリを参照させることができません。ということで双方でSubversionリポジトリを持ち、同期は定期的(1〜2週間おき)に差分ソースを送り合って手動で実行しています。

ここまでが現状の紹介、以下は上記フローによる問題点です。
問題1 双方でのソースの同期を取るのが大変
一週間から二週間に一度差分ファイルを送り合ってるけど、マージに時間がかかる上、複数の変更がごっちゃになっておくられてくるためレビューしたくても途中で断念してしまう。

問題2 単体テストが通らないコミットが履歴に残り消せない
ちょっとしたミスがあってビルドに失敗してもsvnの履歴が消せない。Windows上での単体テストはコミット前に確認するけどLinuxで毎回やるのが面倒になったり、32bitと64bitを全組み合わせでやるのは面倒だったりする。動くだろうと思ってコミットすると壊れていたりとか。
あとはgccでは警告をエラー扱いしているので、使われてない変数があるとかその程度のことでエラー扱いされてしまう。

問題3 闇コミット
RedmineでTiDDに近いことをしているが、闇コミットが結構ある。スタイル直しただけとか、変数名リファクタリングしたとか。複数プロジェクトでリポジトリを共用してるからチケットIDが無いコミットを弾くのが難しい

問題4 Redmine上でチケットとコミットの関連付けを直せない
テストで問題が見つかってもRedmineのチケットとコミットの関係を直すことが出来ない。間違ってるfixesが残ってしまい、何とも出来ない

問題5 HudsonでビルドにコケてもRedmineのチケットに自動登録されない
Hudsonでコミットごとの単体テストとは別にストレステストを含むナイトリーテストを設定しているが、テストに失敗した時にRedmineのチケットが自動登録されない

問題6 TortoiseSVNのパッチ機能が腐ってる
外注からパッチで差分を送ってもらうことも考えたが、TortoiseSVNの文字コード認識がおかしく、一度エディタで開いて文字コードを保存し直す必要があった。(ちなみにソースはUTF-8)

問題7 機能ブランチの管理が大変。
一度切るとなかなか戻ってこない。戻すにも準備がかなり必要になる。試しに作ったけどいらなかったブランチも扱いに困る。

問題だけ見ると「何でこんなフローにしたんだ」と自分でも思ってしまうけど、少しずつプラクティスを取り入れた結果うまく連携できてない現状になってしまった。近々Subversionのリポジトリを課管理から本部管理に移行するお仕事があるのでこれを機にこれまでの問題点を解消しようと思っています。

詳細は後半で → Subversion, Git, Redmine, Hudson – 今考えている連携 » tune web

会社でgitを使い始めたのでWEB+DB Press Vol.50を読み直した

9月 22nd, 2009

今年のはじめからちょくちょくチャレンジしては壁に跳ね返されていたGitですが、先週あたりからようやくまともに使えるようになってきました。前提条件はこんな感じ

  • 共有リポジトリはSubversion、今後もずっとSubversion
  • プログラムはWindowsとLinuxで動くように作ってる、ソースは1種類
  • エンコーディングはBOM有のUTF-8、改行コードはLFCR
  • LinuxのgccはBOM有だと受け付けてくれないのでビルド前に文字コード変換を挟んでいる
  • Subversionのリポジトリは複数プロジェクト共同で、古いリビジョンだと存在しないパスがあったり、パスが途中で変わったりしている

何回かチャレンジしたときはmsysgitを使ってgit svnでのチェックアウトを試みたのですが、昔のリポジトリに同じパスのデータが無いのがまずいのかエラー終了してしまうところであきらめていました。
今回は出たばかりのTortoiseGitのバージョン1系を使い、TortoiseGitで(実際にはmsysgitなんだけど)svnリポジトリからのチェックアウトを試みて、昔のリビジョンだとエラー終了するのを指定リビジョン以降のチェックアウトに限定することで回避しました。

修正や機能追加の際にトピックブランチを作って平行開発、終わったらmasterにマージしてsvn dcommitして共有リポジトリにアップ。こんな流れで周囲の和を乱すことなく開発を進められる所まで来ました。途中gitの意味不明なエラーに遭遇したものの、TortoseGitのバージョンがこなれていくに従って徐々に減っていくでしょう。

gitの使い方はWebとWEB+DB Press Vol.50のgit特集と、オーム社の入門gitを使って勉強しました。Webの情報は古いのが引っかかったり、そもそもズバリな悩みの解決法がまだ見つかりにくく、オーム社の入門gitはリファレンスとしては有用そうに見えるのですが、git stashなど基本的なコマンドの解説が無く、WEB+DB PRESSのが一番使えることに間違いなさそうです。

gitのコミッターが書いた秀和システムの入門gitが先週土曜日に発売されましたが、Amazonからまだ発送されてきません。内容はWEB DB Pressをさらに深くしたものらしいので、日本ではこれが決定版になりそうな気がしています。

WEB+DB PRESS Vol.50 (大型本)
477413838X 入門git (単行本(ソフトカバー))
427406767X 入門Git (単行本)
4798023809

最近学んだシステム管理系の話

7月 22nd, 2008

最近現実逃避に会社のシステム周りのメンテナンスをする時間が多いので新たに学んだことをメモしておきます。

○dar
tar+gzよりも優れたバックアップシステムのようです。差分バックアップ機能やディスクに焼くのを考慮した分割機能に惹かれます。

○Unison
ファイルの同期を双方向に行ってくれるソフトウェア。LinuxでもBSDでもWindowsでも動作するらしい。OSを問わず動いてくれるのでLinuxとWindowsのフォルダ同期に最適なソフトです。rsyncとの違いは設定が簡単なことと双方向で同期できることでしょうか。

日本語情報は少なめです。

○svnsync
Subversioリポジトリは”svnadmin dump”でのバックアップよりホットコピーの方が優れているようです。ほっとコピーのやり方はいくつかあるようですが、Subversion 1.4以降であればsvnsyncを使うのが簡単そうです。

○buildbot
Continuous IntegrationツールとしてはCruiseControlが有名ですが、C言語で使うには新たに設定する項目が多そうなので(Makeの設定をAntに書き直さなくちゃ行けない?)、代わりに探したCIツールです。Python製で柔軟な設定ができそうです。まだ調べてる段階で使い物になるかどうかはもうちょっと試さないと分かりません。

カルガモ

6月 18th, 2008

○○の裏事情Part2より(リンク先読めばすぐわかるんだけど一応伏せ字)

778 :かるがも:2008/06/09(月) 17:50:32 ID:1Q8B/6jj0
わたしは今日G.CIPに動画までのせて頂いた丸子のカモでございます。
厚い待遇感謝しております。社員は社宅制度まで廃止されたのに、
私には無償で持家までいただき申しわけなく思っております。
私以下の待遇の社員が毎日がんばっている事に後ろめたささえ
感じる日々でございます。

会社の敷地内の池に住み着き、池に家まで作ってもらったカルガモが今日NHKのテレビ取材を受けてました。

たまたま通りがかって自分もインタビューを受けたのですがカットされたようで放送では見れませんでした、残念。

OCRと誤植

3月 18th, 2008

会社で調べ物をしていたたまたま見つけた面白い読み物。

誤植 – Wikipedia
一つ目はWikipediaの”誤植”にまつわる独自研究。ゴキブリの名称が誤植から定着したなんて知らなかった、話のタネにはならなそうだけど。あと聖書の誤訳のところが読んでて面白かったかも。

大量の画像をOCRしてるんですが、だんだんうんざりしてきました。特に校正作業が大変で、ちょう飽きてきた。 それでそういう経験をした事がある人の体験談を聞きたいと思い.. – 人力検索はてな
2つめがはてなの質問回答。OCRソフトって誤植多いよね~
回答者も面白いなと思ってみてみたら ノッフ!の人だった。

学会聴講のため外出

2月 27th, 2008

この日は学会聴講のため終日外出。2月はデブサミも見に行かせてもらえたし、外出が多くていい感じ。もっとも仕事はたまり気味だからしわ寄せができて困るんだけど・・・

学会で新しい知見を得られるメリットもありますが、いつもと違う平日を過ごせる気持ちの面でのリフレッシュが自分には大きいですね。この日の学会会場は東京タワーのすぐそばでした。展望台に上りはしませんでしたが下からの眺めもよかったですよ。

Vista Business 64bitをインストール

12月 27th, 2007

といっても会社の話。

年末で時間がとれたので開発環境の整備を午後から行い、Windows XP 64bit EditionのワークステーションをVista Businessの64bit Editionに変えてみました。来年以降はこのPCを事務業務・開発業務の両方で使っていくつもりです。

PCのスペックは以下のような感じ

CPU: Core2Duo 2.6GHz
メモリ:4GB
HDD: 500GB

ソフトウェアで動かないものがあって躓くかと思っていましたが今のところ大きな問題はなさそうです。

次に開発環境を差し替えるときはどんなスペックになってるんでしょう、3年後・・・Windows7かな。

2007年12月29日追記
VMware Serverが動かなかった。VMWare Server2(β)なら対応してるみたいなんだけどIFがWebベースになってて使い方がよく分からないのであきらめ。VMWare PlayerかVirtualPC2007が良さそう。

ISOイメージのマウントは Alcohol 52% Free Editionが動いた。