)共同作業での「保証」の大事さプログラミングの話。社員さんとのやり取りでSingletonというのを教えてもらったので、研究室にあったデザインパターンの本でシングルトンの部分だけ読んでみた。シングルトンというのは、そのクラスのインスタンスが一つしか作られないようにしてある実装の事だそうな。singleton;}}privateなコンストラクタとprivateかつstaticなインスタンス、そしてpublicなゲッタが用意されていますね。これだと、外部からコンストラクタを呼ばれて新たなインスタンスを作られる事を不可能にできるんですね。社員さんから教えてもらった時は「ほぇ~なるほど」と思いました。後で本で確認をした時に、その本の説明文が印象に残りました。インスタンスは一つしか作らないし、作りたくない(システム中に一つしか存在しないものを表現したい時)「プログラマが注意しているからインスタンスが一個しか生成されない」のではなく指定したインスタンスが絶対に一個しか存在しない事を保証したいインスタンスが一個しか存在しない事をプログラム上で表現したい場合に用いるパターンだと。プログラマが注意してnewしないようにすれば、コンストラクタをprivateにする必要は無いのだけど、そうではなくて、どうしたってインスタンスは一つしか生成されないという事を保証する。スキルも経験もバラバラな大人数で協力して開発を進めて行く上で、こういう「保証」って凄く大事なんだろうなと思った。弾さんが「頑張らなきゃいけないシステムなんてクソ。頑張らないでも回るのが本当に良いシステム」と言っていたのを思い出した。ここで言うと、「絶対に二回以上newしないようにプログラマが『頑張って』注意する」というのは明らかにクソな運営だと。いう工夫一つで、そういう無駄な頑張りを不要にできる。そんな知恵を見ました。デザインパターンって面白いカモ!もっと読んでみようかな。丘の上の松がむりならば谷間の低木になれ。ーーだが、小川のほとりにあるもっとも美しい低木に。木になれないのなら、やぶになれ。やぶがむりならば、一握りの草になれ。大通りを楽しくしてやれ。カワマスがむりならばクロマスでよい。ーーだが、湖の中でもっとも生きのよいクロマスに!われわれはみなが船長にはなれない。水夫になるものもいよう。ひとりひとりに何かすることがある。大きな仕事もあれば、小さな仕事もあろう。しなければならない務めは手近にある。大通りがむりならば、ほんの小路でもよい。太陽がむりならば、星になれ。成功と失敗を分けるのは大きさではない。マロック人間皆、それぞれの趣向があって、さらにそれぞれの置かれた状況がある。それらを踏まえた上で、自分が何になりたいのか/なれるのかを考えてそれに向けて歩いて行くわけだけれど、それぞれの趣向の中での最上になれたら最高ですね。最上の演奏家が集まって、最上の空間が出来上がる。そこには変な嫉妬とかつまらない争いなんてなくて、最上が最上同士尊敬し合っている。そんな生き方が出来たらいいのにね。それに足る最上の何かになれたらいいのにね。自分はまだまだ本当に小さ過ぎて。いう事を考えると、一つ一つの事柄に対してめっちゃファイトが湧いてきます!この気持ちを忘れずに毎日いられたらいいのだけど。Symposiumの基調講演(無料)を聞きに行ってきました!会場はANAインターコンチネンタルホテル。某インターン最終日に社長の有り難いお話を拝聴させていただいた思いでのある場所でございます(笑)以前たまたまネットでこのイベントの事を発見し、即研究室のメーリスで参加者を募り応募したのでした(付き合ってくれた三人ありがとう^^)梅田望夫さんの本でLinuxの話しを読んで、「凄いなぁ」と漠然と感じていたのが三年くらい前、今やあの頃とは比較にならない程LinuxやOSSにお世話になっている自分がいます。「リーナスってどんな人なんだろうなぁ?」という漠然とした興味もあり、せっかくの生リーナスが見れるチャンスとあって、こりゃ参加するしかないだろう!となったわけです。講演はもちろん英語だったのですが、同時通訳を聴くためのイヤホンが配られました。Williams氏と講演を聞きここで撤収。Linuxについてや、リーナスの過去のインタビューに関して、またRubyやまつもとさんに関して色々な書籍やウェブでこれまでも沢山読んできたし、まつもとさんはブログを読んでいるし、Wikinomicsは読んであったので、今日の講演で何か得に真新しい発見というのは見つけられなかったのだけど、まぁ生の声が聞けた貴重な機会だったし良しとします^^一つ、リーナスの発言で一番頭に残った事を挙げるなら、「興味を持ってコミット出来る事に、1日10時間、10年間コミットし続けるんだ、あるとするならそれが成功の秘訣かな」といった旨の発言。これ、相当好きな事だとしても10h/d×10年って相当キツいぜ。俺の場合ギターだって、最長で高校生の夏休みに毎日最低五時間って決めて練習してたのがmaxですわ。これまでに無いくらい多くのある一定以上の生活水準にある世界中の人達が、コンピュータとウェブを初めとするテクノロジーで興味のある事をどんどん自分の手で形に出来るようになった現在、「自分」という存在がユニークな存在になるためにはそれくらいのコミットが必要なんだろうな。いつかそういう境地に達せられたらいいな、分野はなんであれ。アンテナは張り続けて、動き続けるバイタリティも持ち続けなきゃな、と思ったのです。コメント:0[97things]トークセッションに行ってきたどうも、最近はバイト先で自社製品のiPhone対応に関する作業をやっていますながたかです!この度、我がバイト先の主力製品でもiPhone用のページを作成する事になったようです。そのためにデザイナーさんが作ってくれたテンプレートを従来のモバイル用レイアウトに代わり適用していく作業をしたりしています。その作業を始めて最初に学んだのですが、クライアント毎にUserAgentというものが決まっていて、それを利用して、サービスの提供者はクライアントが何であるかを判別しているんですね。iPhoneのユーザエージェントを調べ、それによって表示するページを変えるようにコードを変えたりといった事をやっています。その仕事をワタシに頼んだ社員さんとは別の社員さんから仕事をチョイチョイ振られたためiPhone対応は未だあまり進まず(笑)仕事を振られるのは嬉しいのですが、ちょっと今はiPhone対応に集中したいかも...ちなみに、ワタシはiPhoneユーザではないのでどうやってテストをしているかというと、IBBDemoというwin用iPhoneブラウザシュミレーター!http://labs.blackbaud.com/NetCommunity/article?artid=662これを起動していると、ワタシの後ろを通り過ぎる社員さんから「おぉ~なにこれ」とか反応されたりしてちょっと気分がいいです(笑)なんか自分が凄いモノを扱っているようなねwあぁ、これいじってたら自分もiPhone欲しくなってきた。今日は池袋のジュンク堂書店まで、「ソフトウェアアーキテクトが知るべき97のこと」という本の刊行記念トークセッションを聞きに行ってきました!いつもチェックしているはてなの伊藤直也さんや、アプレッソの小野和俊さんのブログで知り申し込みました。(このイベントのページで鈴木さんのブログを知ったので、以降チェックさせていただきます!)この本は購入していないので、特に本に関して何も知らずにいったのですが、全然そんな事は関係無くお三方の経験ベースのとても貴重な話しを楽しめました^^なおやさんのお話で印象に残ったのは、二つの勉強をバランス良くしましょうという趣旨のお話。言うと、サイエンスとエンジニアリングという事ですかね。エンジニアは、「ココをこうするとちょっとパフォーマンスが良くなる」とか、「こういう使い方をすると便利」とか、そういったより日常の開発に密着したエンジニアリングの部分に関するノウハウや情報を日々膨大な量学んで行くわけですね。それだけでもなんとなく業務はまわせてしまうし、それなりに自分で色々と開発が出来るようになると。それだけだと、どこかでとても難しくてチャレンジングな問題にぶつかったときに、その壁を突破する事が出来ない。そこでのブレイクスルーを生むのがコンピュータサイエンスの専門書や論文から得られる理論など陳腐化しづらい本質的な知識ベースだというお話。日々の業務に必要となる技術情報にしか触れずに日々過ごすのではなくて、重厚な理論ともしっかり格闘していかなきゃなと思いました。自分の現状に当てはめてみると、バイトで必要になった技術の習得に100の時間を使うのではなくて、20くらいはしっかり論文を読んだりしっかりとコンピュータサイエンスと向き合いましょう、というトコロでしょうか。しても、やっぱり論文を読んだり、専門書で理論やアルゴリズムなんかを学のって、バイト先で色々と調べながら手を動かして開発をしているのに比べて、「自分が何かを出来るようになった達成感」みたいなものの即効性が少ないんですよね。仕事を振られ、それを実現するために必要な技術をネットで調べ実際に自分で手を動かして実装出来た時ってなんだか自分が一歩前進した感覚があるのですが、論文を読んだりしている時って、やはり目の前に成果物が出来るわけではないので前進感が少ないのです。ともすると前者ばかりやってしまいがちな自分がいます。直也さんの話しは、こういう自分に対する良い教訓になりそうです。小野さんの話しで一つ頭から離れなくなった事は「三つの問題をつぶす事に追われていると、実はそれらの原因が一つの根本的な問題にある事を見落とし、それを解決する事に目が向かなくなる事がある。それを避けるためにも、全体を俯瞰する役目の人が必要」という事。これってなんだか凄く自分の頭の中に残りました。「よし、火消し要員を増員しよう!!」っていう対処をしてしまうともう思考停止のままガンガン走り続けて、完全に体力勝負みたいになってしまいますよね。ここで考えるべきは、「トラブルが起きてる原因ってなに?」なわけで、目の前のトラブルはもちろん解決しなきゃなんだけど、その一つ上のレイヤに目を向けてみることがとても大切。わかっちゃいるけど中々出来ないかなと思います。目の前の問題を解決してホッとして思考停止してしまいそうな自分です。これからそういう意識を持ってバイトを、そして来年四月以降はシゴトが出来たらなと思います。(あと、小野さんがイケメンでビックりしたw)そして、鈴木さんのお話。鈴木さんはSIerに勤めているという事で、おそらく四月以降の自分が体験するであろう様々な事を体験されている先輩かな。その鈴木さんから発せられた言葉は、自分もそういう気持ちでシゴトが出来たらなと思う言葉でした。「システムではなくコミュニケーションをデザインする」システムというのは、そのシステムを使うに至った理由があり、それを使ったらユーザがどのように幸せになり、そこにどういうコンテキストが生まれるのか、そこを押さえていないと、システムの意義というのは100%発揮されないんだなと。システムの「ユーザ」ではなく、コミュニケーターが存在しているのだよ、と。ここで直也さんが発した言葉もとても印象的でした。「エンジニア側からすれば3秒で実装出来る事柄でも、そこで発生し得るコミュニティへの影響という事を考えると慎重になります」といった事を言っていたのがとても印象的でした。自分達が作ったシステムが、どういう影響を及ぼすのか、追加した/削除したたった一つのリンクがそのコミュニティの住民に与える影響って何か?そう考えると、ITって結局人間だなって思いました。なんか、トークを聞いていて自分のモチベーションが凄く上がるのを感じました。三人のように、技術と、一歩引いて全体を俯瞰する目。その両方を持ち合わせたエンジニアになりたいな。※トーク終了後にサイン会があったのですが、自分はあまりお金が無かったので(笑)そそくさと退場...本の内容自体はウェブで読めるので(日本人の方々の文は読めませんが...ま、自分は今日資料として配布された三人の分で一先ず十分ですw)http://97-things.near-time.net/wiki/97-things-every-software-architect-should-know-the-book著者名明記の上での原稿使用可、という事なので、直也さんの一節を紹介してこのエントリーを終わります。プログラミング作業の80%、いや90%は経験やノウハウが要求される作業です。手段的な知識の量が、効率的に開発を進めるための助けになります。この90%をいかに積み重ねるかで、ユーザにとってのソフトウェアの魅力が決まります。残り10%では本質的な知識が要求されます。その10%で何をしたかで、ソフトウェアの革新性が決まってしまいます。コメント:0たかがカップ、されどカップどうも、タンブラーフェチのながたかです(笑)いやぁ、なんか好きなんですよ、何故か必要も無いのにタンブラーに目がいってしまうんですよね。現在三つ所有しています。SantaCruz"と書かれたヤツ。一つは学会でハワイに行った時に買ったハワイの地図がプリントされたヤツ。三つ目は内定式のクイズ大会でもらった会社のロゴ入りタンブラーwwwいや、他にも色々と選択肢はあるんだし、既にタンブラーは持ってるんだから別のモノにすればいいのに、何故かタンブラーを手に取ってしまう...きっと将来的にまだまだ増えると思われます(笑)なんか、コーヒーを飲みながらボケーっとタンブラーを眺めながら色々と思い出したりするのがとても好きです。「あぁ、UCSCの売店で買ったんだっけ。○○と喋りながらお土産選んでたっけ。その日はあんな事があったっけetc」みたいにね。中に自分で好きな紙を入れる事が出来るタイプもありますよね、そのうちそういうのも買ってみるかもしれません。したら何を入れようかしら...なんか、その人の個性が出そうですよね(例えば、研究室の某友人はwillsonのロゴのタンブラーですwテニサーの彼らしいといったところでしょうか)オフィスとかで、各人のオリジナルタンブラーをズラっと並べたりしたらオモシロいなと思うのですが。タンブラーのデザインから色々話しが弾みそうです♪ちなみに、イタい画とかを入れてあるものを「イタンブラー」というらしいですね(笑)萌え系の絵とかを入れるんでしょうかwそういえば、先日BECK'sで気づいたのですが、今BECK'sを初め、スタバやドトールなど、マイボトル持参で割引をしているんですね、知りませんでした。STARBUCKS銀座ではタンブラーコレクションが見れるようです(リンク先の写真の二段目の右から四番目のハーフサイズタンブラー、いいなぁ!)企業側としてはどういうメリットがあるんでしょうか?使い捨ての容器が節約できたトコロで大した節約にはならないと思うので、客単価で数十円のマイナスですから、利幅は確実に減ってますよね。「環境に優しい企業」というイメージを消費者に与えられる事がメリットなのでしょうか?そういったキャンペーンによって店で販売しているタンブラーの販促効果も狙っているのでしょうか?「タンブラー持って行けばちょっと安くなるからスタバでゆっくりしない?」という客引き効果もあるんですかね。客単価が減った分客数が増えればOKと。他に何か思い当たる企業側のメリットがあったら教えてください。スタバやタリーズ、ドトールなんかは(特にスタバかな)「高い」というレッテルを貼られ、最近では100円コーヒーによってこれらの店の客がマックに流れているという話しも聞きますからね、客の流出を食い止める策の一つなのかもしれませんね。メニューの選択肢は無いですが、特にこだわり等無くただ普通のコーヒーを飲みながら本を読んだり時間をつぶせればいい、という人にとってはマックで十分事足りてしまうわけですからね。セサミン(suntory)です。1で全体の底上げを、乳製品を控える事にして以降カルシウムを補うために2を、研究、バイト等々1日8時間程度はPCに向かうので視力の低下を防ぐために3を、たまたま家にあって、なんとなく良さそうだから4を(笑)飲んでいます。人生を最後まで楽しむために、健康への投資は最大の投資かと^^さてさて、先ほどニュースで地元の電車が午前中運休との情報が!急いで明日の予定をリスケ。よって、明日は久々の「1日在宅Day」になりそうです^^ココの所1日家に居た事ってホント無かったしバタバタしていたので...部屋にはモノが散乱してるし、ここ二週間分くらい色々な復習が出来ていないわで...何より、ゆっくりと音楽を聴きながらの半身浴がここ二週間くらいご無沙汰です(そこかいw)ギターも練習しなきゃだし。「ちょっと疲れ溜まってきたかな」って思っていた所なので、明日は部屋を片付けたり復習を片付けたりしたら、ゆっくりマッタリ過ごそうと思います♪こんな風に休めてしまうのは学生だからですよね~(ま、その代わり土日でリカバーするんだけど...)、それももうあと6ヶ月で終わりです。コメント:0今週のやさしい経済学どうも、最近はアコギにハマっているながたかです!最近、先輩に声をかけてもらい、新しいバンドを始めました。そこで、ある曲のアコースティックverをやろうという事になり、先輩からアコギを借りて練習を始めました^^ついこの前、押尾コータローさんとジェイクシマブクロさんのライブに行ってきたばかりで、さらに今度はフラメンコギタリストの沖仁さんのライブに行こうと計画をしている等、アコースティック熱も冷めやらぬ中、ナイスタイミングでのお誘いでした!指弾きはあまり経験が無いので難しいですが、アコースティックの柔らかい響きに自分で弾きながらも癒されています。̄+)さてさて、今朝いつも通り電車の中で日経新聞を読んでいたのですが(完全にサラリーマンですw)今週の「やさしい経済学」の連載は東大の高山さんという方による『歴史から見る現代』だそうです。歴史...正直言うと、ワタシは歴史に興味がありません。中学以降、どちらかと言えば避けてきた感があります。その結果、一般常識といえるような事柄ですら知らなかったりします(汗)なんていうか、役に立たないような気がしてしまい、それに時間を使う気にならなかったりしていたんですね。中学では地理、歴史、公民と科目があったと思うのですが、公民は将来役に立ちそうな気がしてちゃんと勉強していたような...高校では世界史も日本史もノータッチ、政治経済と現代社会を選択。実はちょうど先日、たまたま友達とこういう話しをしたばかりでした。後で振り返って思ったのですが、自分、「歴史=出来事&年号暗記」みたいに据えている節があるな、と。なんていうか、もっと引いた視点で、「大局を読む」というのか、流れを据える事がきっと大切な事なんだなと思ったのです(歴史音痴が言っても説得力無いですがw)今日の連載一回目にこうあります「私達が生きている社会の特徴は、現在だけを見ていても分からない。日本社会の特徴を知るためにアメリカ社会や中国社会と比較するように、現在の社会の特徴を知るには過去の社会と比較する必要がある。「イギリスしか知らない人は(イギリスから出た事が無い人は)、本当はイギリスの事も大しては知っていないのだ」という旨の、誰が言ったんだか忘れた言葉を思い出しました。イギリス内から見たイギリス、そして、外から見たイギリス。自分の立ち位置から見た世界と、その外から見た世界。世界にはざっくりと二つの視点があるんだなと。人間で言えば、「自分が思う自分」と、「他者から見た自分」のように、二つの極からの視点で据えないと、本当にそのモノ自体の事はわかれないのだという事ですかね。いう風に考えると、歴史を通してこれまでの世界の大きな流れを掴むのもおもしろそうだなと思いました。過去と現在という二つの軸が自分の中に出来たら、今までとは違う深さで現在の世界を観察出来るのかもしれないですね。今週の連載はじっくりと考えながら読んでみようかなと思いました。これからは過去の出来事にも興味を持って、(年号等はあまり気にせずw)大きな流れと、その経緯、思想を掴むような、そんな風なスタンスで、歴史に向き合えたらなと思います。とっかかりとして何か面白い本無いかなぁ。笑)まぁ色々と理由はあるのですが、最大の理由は、家計の事情です(おっと、暗い話しの匂いがwまぁまぁ、悲壮感とかこれっぽっちも持ってないから、ここで止めずに読んでくださいな)実は、ワタシの父親が去年の夏頃、病気をしまして。働けない期間があったわけです。追い打ちをかけるようにリーマンショック!父は建築関係の仕事をしてるので、ダブルパンチで収入が激減しました。病気をしたせいで、今も、フルにバリバリ働ける状況ではありません。そんなわけで、就活も終わったし、少しでも家計の足しになれば、と、ワタシもバイトをガツガツ増やし、自分で払えるお金は自分で払って行こうと決めたのです。周囲の人達がどうしているのか知らないのでよくわかりませんが、たぶん、以前の自分は、甘やかされ過ぎていたのだと思います。学費こそ奨学金で払っていたのである意味自腹とは言え、その他の支出、例えば定期代やら携帯料金、時には昼食代等、実家にいるので大して出費が無い身にも関わらず、たいていの支出を親に依存しており、自分自身はマッタリと2-3万円分くらいバイトをし、それでサークルや遊びに浪費していたわけです。カリフォルニアに行った時も、参加にかかる費用は親持ちで、自分は現地での小遣いを用意しただけでした。今思えば、呆れる程に甘い。自分、どんだけ甘えてたんだか。不幸な出来事だったとはいえ、父の件で、自分にもやっとそれなりに色々な意識が芽生えたのでしょうか。今は親から一銭も受け取っていません。実家住まいなので、食費やら光熱費やらがかからない、これだけでもう大感謝です。この件でもう一つ噛み締めている事があります。それは、仕事の有り難さです。ここのところ、月100時間近く働いています。仕事のおかげで、自分は毎日様々な事に事足りています。現在のバイト先には本当に感謝しています。打算100%で探したバイトでしたが、今、本当にこのバイトに救われています。金銭面で少し切羽詰まったとしても、自分にとって得る物が大きく無い仕事をこれだけの長時間やり続けるのは流石に苦痛だったでしょう。今のバイトは非常に得られる物が大きい。Linux設定ファイルなどなど、挙げきれない程沢山、これまでに一度も触った事が無かった多くの技術に触れる事ができ、さらに社員さんから教えてもらう事もでき、仕事中にわからない時は、調べものをする時間もちゃんと取れて、そのメモを残すことで家で復習をしさらに理解を深める事も出来る。やっている事が上手くいかない時は、やはりデスクでモニタに向かってうなだれ溜め息をついたり、バイト仲間に愚痴ったりもしますが、帰りの電車の中で「こんなバイト嫌だ」と考えた事は一度もありません、それどころか、充実感がハンパ無いです。自分の将来に役立ちそうだというこの充実感。最近は研究との両立が少し難しくなってきているのですが、そこは土日を返上して研究室に行くなりしてやっていくしかないですね、本末転倒だと言われないように。こんな環境、ホント感謝感謝だなと。長くなりました、内定式に遅刻でもしたら大変なので(笑)この辺で止めて寝るとします。仕事があるのは有り難い。自分の興味の方向とつながっている仕事があるのは、幸せの極みかもしれない。来年の四月以降も、このテンションで一生過ごしたい。コメント:0プロフィールAuthor:ながたか外資系IT企業に勤めてます。趣味はギターとトライアスロンと旅。(11/11)起業家りーまん。