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

4月 2nd, 2010 by tune 1 comment »

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とか見せびらかしましたか? 上司に伝える情報を偏らせて自分の望む方向に誘導するのはやりすぎですが、「分かってない」と落胆する前に出来る限りのことをしましょう。

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

Amazonの紹介料が伸びないなと思ったらアソシエイトIDが間違っていた

3月 29th, 2010 by tune No comments »

いつからかAmazonの紹介料ががくんと伸びなくなったのでみんな慣れて効果が薄れたのかなと思っていましたが、単にアソシエイトIDを間違えて設定しているだけでした。いつから間違えていたのか調べる気も起きませんが、PCをMacに差し替えたあたりが怪しいので1年近く間違えていたことになります。なんともったいない。

WordPressに貼っつけたものがほとんどなのでSearch Regexを使って一括置換で対応出来ました。もっと速くに気づくべきでしたね。まぁ便利なWordPress Pluginを見つけられたのでよしとします。

24 -TWENTY FOUR- シーズンVII

3月 29th, 2010 by tune No comments »
24 -TWENTY FOUR- シーズンVII DVDコレクターズ・ボックス〔初回生産限定版〕
20世紀フォックス・ホーム・エンターテイメント・ジャパン (2009-12-18)
売り上げランキング: 1067

フジテレビの深夜放送を追いかけ続け、ようやく見終わりました。録画に失敗した回は全部で2回、うち1回は巨人の優勝による放送時間の変更だったのでかなりの確率で録画できたんじゃないかと。もっとも録画の成功は妻によるところが大きいのですが・・・シーズン8はぜひ1週間の集中放映に戻して欲しいのですが、どうなるのでしょうか。

内容的には結局いつも通りなのかなという感想です。舞台がワシントンDCに代わって、所属する組織がFBIに変わってもストーリーの作り方がどことなく既視感を覚えます。シーズン8で終わってしまうのは寂しい気もしますが丁度いいところなんじゃないですかね。

モンスターズ・インク ★★★★★

3月 28th, 2010 by tune No comments »
モンスターズ・インク [DVD]
ブエナ ビスタ ホーム エンターテイメント (2007-06-20)
売り上げランキング: 550

「今まで見てなかったの?」というぐらい遅れていますがようやく見ました。Pixarの映画の中でもピカイチで面白かったと思います。設定も面白く、ラストも綺麗な終わり方でした。

娘がもうちょっと大きくなったらぜひ一緒に見たいと思います。娘が気に入ったらDVDも買ってあげないとな。文句なしに5ツ星です。

並行コンピューティング技法 第3章

3月 28th, 2010 by tune 1 comment »

少しずつ難しい話も増えてきたかな? 第3章です。

「第3章 正当性の検証と性能測定」

◯第3章で学ぶ内容

  1. 誤りの無い並行アルゴリズムをきちんと設計できたかをどう確認するか
  2. 並行ソースコードが”十分に”並列動作しているかをどう確認するか

◯Ben-Ariの4つの並行実行一般化

  • プログラムとは連続したアトミックな実行文である。
  • 並行プログラムは複数のスレッド内のアトミックな実行文のインタリーブである。
  • アトミックな実行文の全ての組み合わせは、検証する並行アルゴリズムの全ての性質を満たさなければならない。
  • どのインタリーブでもスレッドの実行文が不公平に除外されることはない。

どんなプログラムも最小の実行単位に分けられる。並行処理は”最小の実行単位”が様々な組み合わせで実行される。実装されるアルゴリズム/プログラムはいかなる組み合わせでも正しく実行されなければならない。正しく実行するとは特定の処理が意味もなく除外されないことも含む…ということだと理解しました。

◯クリティカルセクション問題を例にBen-Ariの性質を学ぶ
共有変数を参照/更新するソースコード部分”クリティカルセクション”の実現の方法を通して、Ben-Ariの性質を学ぶ。本では5つの段階を追って解説していますが、ここでは割愛。問題にしたポイントは以下のとおりです。

  • 第1段階:1スレッドがクリティカルリージョンを実行していなくても、もう一方のスレッドがクリティカルリージョンに入ることを禁止されていまう
  • 第2段階:排他制御が保証されないインタリーブの組み合わせがある。
  • 第3段階:デッドロックが発生してしまう
  • 第4段階:一方のスレッドがクリティカルリージョンから除外されてしまう(スターベーション)

ということで、スレッドプログラミングでよく陥りそうな問題が満載です。最終的に第5段階として紹介されているのがデッカーのアルゴリズム – Wikipediaです。でもこのアルゴリズムだと2つのスレッドしか排他制御出来ないので、ランポートのパン屋のアルゴリズム – Wikipediaピーターソンのアルゴリズム – Wikipediaが実用にはいいそうです。でもこの節で学ぶべきは使うアルゴリズムの選択じゃなくて、どういう所に着目して問題を見つけるのかというやり方なので、きちんと学んだことがなければ本を当たった方がいいと思います。

◯デッドロックを発生させる4つの条件
4つの条件はANDで発生する。どれか1つでも成立しなければデッドロックには成り得ない。

  • 相互排除条件:リソースを特定のスレッドがロックしようとするからデッドロックが発生する
  • 獲得後のウェイト:複数のリソースをロックしようとするとデッドロックが起きやすくなる。
  • プリエンプト無し:スレッドが自発的にロックを開放する仕組みが無いからデッドロックが起きると復帰出来ない。
  • 循環待ち:ロックの取得関係が循環になってしまう。

デッドロックを避けるにはどれか1つでも起きないようにすればいいらしいけど、複数リソースのロックとか危ういものは出来るだけ避けた方がいいと思う。

◯並行化によってどれぐらい性能が上がったか?
高速化率はどう伝えるべきか? 筆者いわく倍数がいいとのこと。 105%の高速化率と言っても元より5%速くなっただけかもしれないし、205%の高速かもしれない。2倍といったら受けてが迷うこと無いよね とのこと。確かにその通りかも。

逐次処理を並行処理に置き換えた際にどれぐらい高速化出来るかの見積はアムダールの法則 – Wikipediaグスタフソンの法則 – Wikipediaで出来る。グラフを書いてみると一目瞭然だけど、並行化出来ない処理がたとえ25%でも含まれていると、どんなにコア数を増やしても3倍までしか速くならない。

並行コンピューティング技法 ―実践マルチコア/マルチスレッドプログラミング
Clay Breshears
オライリージャパン
売り上げランキング: 3109

会社で使っているRedmineをgithubで公開されているものに差し替え

3月 23rd, 2010 by tune 2 comments »

何でこれまでやってなかったのかと言うと、うちの社内から社外のSubversionリポジトリにアクセス出来なかったからです。アクセス制限がかけれられているわけではなくて、間に挟まったプロキシがSubversionが独自に拡張したHTTP命令を解釈できないようなのです。

ということで、githubでホストされているedavis10's redmine at master – GitHubを見つけて、これをcloneして使うようにしました。masterからインストールサーバ用にカスタマイズして使いましたが、タグやリリースブランチもきちんと切ってくれているのでgitさえわかれば好きに改変して使えますね。tar.gzでダウンロードしたものを使うよりもずっと便利です。

本体をgit管理にすると、プラグインもgit管理で最新版に追従したいところなんですが、ソースの置き場所がgithubにあったり、Google Codeにあったり、RedmineのSubversionにあったり統一感が無い感じです。個人的にはgithubで統一して欲しいのですが、それぞれ事情があるのでしょうね。このあたり、ブラウザから選択してインストール出来るHudsonはよく出来ているなと感心します。

あと今日公開された日本語環境で読みやすいRedmine用テーマ「farend basic」公開 | Redmine.JP Blogも使ってみて気に入ったのでデフォルトのテーマにしました。これまで本家にあったAlternativeを使っていたのですが、メイリオの効果かfarend basicの方が文字周りが綺麗に感じます。Redmineユーザの方は一度試してみることをおすすめします。

実用Git

3月 23rd, 2010 by tune No comments »
実用Git
実用Git
posted with amazlet at 10.03.23
Jon Loeliger
オライリージャパン
売り上げランキング: 16867
おすすめ度の平均: 3.0

3 翻訳の質が低くて残念

言いたいことは全てAmazonに投稿されている書評で言ってもらった気がします。

翻訳の質が低くて残念です。
すでにgitについてある程度の知識を持っている人でないと、そういったミスリーディングな翻訳文から真の意味をつかむのは難しいと思います。
「入門git」と「入門Git」を制覇して次のステップを目指す人が、翻訳のまずさを自力で補う覚悟のうえで買うのなら、よい本です。

駄目な本かというとそうではなくて、Gitについてこの本より詳しく記述された文章はネットでもないので貴重だと思います。個人的にもgit-svnの使い方が大変勉強になりました。そこだけで3000円ぐらい払っても惜しくないぐらいです。たまに出てくる意味が取りにくい訳がなければ星4つ、O’reilly独特の言い回しが邦訳で取り払われていれば星5つだったと思います。

Gitのオブジェクト管理についてはWEB DB Press Vol.50でも、入門Gitでも紹介されていますが、この本が一番詳しく、説明が丁寧で、わかりやすかったです。Gitをじっくり学びたい人におすすめです。使いたいだけなら入門Gitでいいでしょう。

実用Git 入門git 入門Git WEB+DB PRESS Vol.50

Subversion, Git, Redmine, Hudson – 結局こうなった

3月 21st, 2010 by tune No comments »


前に考えていた開発プロセスの変更を色々試行錯誤してみてある程度固まってきました。過去の記事は以下からどうぞ。

ネットワークが切り離された外部チームとのやりとりは結局git bundleにしました。外部チームからはパッチでもらい、レビューした後に適用する。ある程度開発が進んだらgit bundleでリポジトリをコピーして外部チームに送付。外部チームはbundleファイルをそれぞれcloneして開発を行い、適宜git fetch/git pullしながら更新に追従します。タスクの粒度が1タスク1人だったこと、外部チームで別途central repositoryを設けることによるメリットが読めなかったのでこの形を取りました。開発メンバのGitレベルが上がればまたちがった使い方があるのかもしれません。チームの大半が入門Gitを読んだ程度だとこれぐらいから始めるのが混乱が少ないようです。
「masterだけ送ればいいから % git bundle create reponame.bundle master」でOKと思ってbundleファイルを作ったところclone出来ない問題が起きて半日ほどハマることがありました。「% git bundle create reponame.bundle master HEAD」じゃないと駄目みたいです。リポジトリ全部のコピーを送るなら「% git bundle create reponame.bundle –all」でもいけます。

以前はgitリポジトリの変更をSubversionに自動で書き戻すことを考えていましたが、GitとSubversionを共存させる » tune webで書いたようにSubversionに登録されたソースが削除されてしまうことがあり、結局手動にしました。週に1回ぐらい書き戻すことを想定しています。それに合わせてRedmineやHudsonが参照するリポジトリもgitに変更しました。

Hudsonのgitプラグインでポーリングする設定をしてみたのですが、ポーリングのログを書き込むところでたまにエラーが起きて止まってしまうため、gitのフックスクリプト(post-receive)でHudsonのジョブをcurlでキックするようにしました。ジョブはWindowsとLinuxとあるのですが、Windowsが苦戦しました。まずWindowsのジョブを実行するPCにmsysGitを入れて、コマンドプロンプトからgitコマンドが叩けるようにします。次にHudsonのgitプラグインでは認証を入力することが出来ないので、gitリポジトリをhttpで読めるようWebサーバの設定を行いました。gitのhttp公開は単にリポジトリのフォルダにアクセス出来るようすれば良いだけなので簡単です。あとはhooks/post-updateに”git update-server-info”を追加すればOKです(参考:git update-server-info)。

Hudsonのgitプラグインはテスト対象をワイルドカードを含むブランチ名で指定できるので、少し時間をかければpre-test commitも出来そうです。前は良く分からないなんて書いてしまいましたが、少しgitプラグインを使ってみれば感触がつかめるのではないかと思います。近々に必要な機能ではないので、また時間がある時に試してみようと思っています。

Redmineでgitを参照するにはRedmineと同じサーバにbareリポジトリを置く必要があります。別サーバで動かしているなら中央リポジトリからRedmine用のリポジトリに自動でpushする設定をすればいいでしょう。Redmineの昔のバージョンではリポジトリビューワが遅かったらしいのですが、0.9以降で試した限りでは気になるほどではありません。Subversionの頃よりも見やすくなった気さえします。trunkとbranchを切り替えて表示するのがSubversionより楽だと思います。リポジトリビューワがあまりに見やすいのでgit-webのインストールをやめたほどです。ソースレビューにgerritを検討しましたが、LDAP認証の設定をするところでうまく動かず断念してしまいました。最もr-labs – Code Review – Redmineが最近のバージョンアップでどんどん良くなっているので不要かもしれません。Redmineがより使われるようDoxygenで自動生成している内部仕様書もRedmineのRedmine – PluginEmbedded – Redmineですぐ見れるようにしてみました。

gitのフックスクリプトはhooks/post-receiveでメールを流す設定だけ有効にしています。コミットメッセージに Issue ID を含むことを強制させる Git のフックスクリプトを書きました|SNS構築の手嶋屋を参考にhooks/updateをつくってみたのですが、gitで自動生成されるコメント(マージとか)はRedmineのコミットIDを含まないのが問題になり結局止めています。この辺はまた時間をとってフックスクリプトを見直す必要がありそうです。

時間もかなり費やしましたが、昨年までよりも開発に専念出来る体制がようやくできました。Joel先生も分散バージョン管理で間違いないって、ベイビーと言ってるほどなので分散バージョン管理に移行しましょう!

トランスフォーマー ★☆☆☆☆

3月 14th, 2010 by tune No comments »
トランスフォーマー スペシャル・コレクターズ・エディション [DVD]
パラマウント ホーム エンタテインメント ジャパン (2008-07-04)
売り上げランキング: 8334

映像だけが取り柄のB級大作映画。長いくせに前半がグダグダなのでそこで見限らないように注意が必要。

ロボットがかっこいいんだけど何度も変身してると飽きてくるし、敵か見方か一見してわかりにくいのもマイナスだと思う。

吹き替え版で見たんだけど、主役級ロボットのオプティマスプライムの口調がおかしくて仕方がなかった。子供の頃は大好きだったはずなんだけど…

デトロイト・メタル・シティ ★★★☆☆

3月 11th, 2010 by tune No comments »

GO TO DMC! GO TO DMC!! GO TO DMC!!!

ということで、原作を読んでいた自分ですが、割と忠実に映像化してくれていて楽しむことが出来ました。Amazonのレビューの焼き増しになってしまいますが序盤急ぎ足でエピソードが消化不良なのと、オリジナルのラストがイマイチだった以外は登場キャラが皆ハマリ役だったと思います.

Pages: Prev 1 2 3 ...7 8 9 10 11 12 13 ...246 247 248 Next