月別アーカイブ: 2011年5月

マイクロソフトで学んだこと、マイクロソフトだからできること

マイクロソフトで学んだこと、マイクロソフトだからできること。

本屋でたまたま目に留まるも、一度は見送り。でも、別の日に行ったときに目に留まり、購入。HPの社長がダイエーの社長になると聞いて、びっくりした記憶があり名前は以前から知っていた。ただし、キャラクターは全く知らず。

本が気になったのも、マイクロソフトの仕事の仕方や考え方が書かれているのが一目取れて分かったから。そういう意味で期待通りの本。

経営陣が細かな数字から各国の状況を詳細に把握しているというのはビックリさせられるも、ソフトバンクでは、役員・上司が現場の詳細を話すことができなければ仕事を役員・上司の意味が無いと切り捨てられる話とも相通づる。

アメリカの経営陣から樋口さんに突きつけられた30以上ある行動指針には優先順位が付けられるものが無く、全ての優先度が高いという話は圧巻。サーベイの徹底・公開も圧巻。これはうちの会社でも仕組み的にはできない話では無い。(ただ、嫌がる人が多いだけ)。全社員を一同に介して年一回行われるイベント。これはうちの会社でもできるだろうが、愛社心があってこそか・・・。XXミーティングの類は多分どこの会社でもやられているだろう。

ただ、全般を通して、果たしてこれほど熱く語れる経営者はどのくらいいるのだろうか。

数日前に部長と話した際も思ったが、熱さが大事だと思う今日この頃。

マイクロソフトも知れますが、熱さを感じたい時に読みたい一冊。

サムスンの決定はなぜ世界一速いのか

サムスンの決定はなぜ世界一速いのか (角川oneテーマ21)

振り返るとここのところ、企業のノウハウ本?が多いですが、これまたタイトルに釣られて買ってみた本。

サムスンの売り上げが日本の大手家電メーカの合算よりも遥かに高いのは新聞で語られている事もありちょっと気になっていたが、一方で、品質が悪かったイメージも残っていた。

が、過剰品質、という言葉に表されるユーザには判別不可能な品質がそのすべてを表している。また、中島聡さんが言う、カタログ作りの日本の家電メーカー、ものを作るユーザを見た製品をおもてなしの心で作らなければいけないという、同じ意見が、サムスンでの仕事を通じて出てきている点は面白い。

また、辻野さんが言う、ソニーの遺伝子ならぬ、松下幸之助さんの遺伝子がサムスンにあるのでは、という考察も興味深い。

優秀な会長の英断によるIMF危機の前に舵を切っていたこと、サムスンに落ちたので国家公務員になると言われるほど集まる優秀な頭脳、海外では徹底的に現地に溶け込ませその土地のディープスマートを獲得させる戦略、大リストラで排除した官僚的な文化、いずれもなるほどと思わされます。

一線で働いてきた方々が語る言葉には、多くの共通点を感じる今日この頃。

P&G式伝える技術 徹底する力―コミュニケーションが170年の成長を支える

P&G式伝える技術 徹底する力―コミュニケーションが170年の成長を支えるP&G式伝える技術 徹底する力―コミュニケーションが170年の成長を支える (朝日新書)

P&Gという会社の特徴は全く知らなかったけれども、何かとコミュニケーションがうまく言ってない時だったので購入。

色々なテクニックが紹介されていると共に、人を育てる環境、どのような事がP&Gで求められ徹底されているかという点が強調されており、この点がまさにタイトルにある徹底する力の表れと感じる。

技術面について書かれている本は良くありますが、徹底する点を書かれている本は少ないので良かったです。

また、P&Gそのものがグローバル展開で成功している点の紹介も興味深い。日本人がグローバルに活躍するためには、、、自分だけで考えず世界の知恵を活用すること、自ら情報提供・自己の価値を語り人脈を得ること、知識は作り残していくこと、一つの案件を終えたときに成長を語ること、などなど。また、消費者も世界によって求めるものが異なるので、画一的な展開は絶対にしないこと、など、狭い世界で仕事をしている自分に刺激となる内容が多くあり良かった。

新書というと、面白い内容もありつつ、一冊を通じたメッセージやまとまりが欠けるものも多いですが、珍しく、最初から最後まで一つのテーマに則り書かれた良くまとまった本でした。

良かったトピックス。(3つにまとまってない・・・)

3つにまとめる力

正しいことをする力

お金や資産が、ブランドのすべてが無くなってしまったとしても、社員さえいれば10年で元に戻せる

DemandとCare

(海外と仕事をする際に限らず)「あっち」「こっち」という言葉は厳禁)

自分の価値を語ること

プレミアムビジネスモデル、意識的に世界に目を向ける

etc・・・

エンジニアとしての生き方

エンジニアとしての生き方  IT技術者たちよ、世界へ出よう! (インプレス選書)

著名なブロガー・プログラマー中島聡氏の著作。中島氏の存在を知ったのは、たまたま会社の先輩のブログからリンクを見つけてのもの。その時のエントリーはあまり興味を引かなかったのだが、他のエントリーを見るに連れて、徐々に引きこまれていき、今では、心の師なる存在。

SIerという業界で働いていると、そもそもエンジニアという存在が異質なものなのでストレスを感じる部分も多いが、自分がそもそも信じているエンジニア像、技術に非常に長けて、企画・センスもあるというキャリアイメージを具現化してくれる存在。

学生時代に大学の学術情報センターでアルバイトした経験から言うと、大学規模のシステムでも管理者は20人弱。20人で学内の数百台のPCをの管理から、学内外のネットワーク、ファイルサーバ含めて管理していた。外注も一切なしで、(と言っても、ハードの初期セットアップは委託していたが)、事務所にはオライリーが山ほど並んでいる。ICカードからプリントするシステムが2001年時点で内製で運用していたり、ブートローダーも作ってしまう。

そんな環境を見るに、プログラマとしては到底活躍できないだろうと思い、SIerという少し業務寄りなところへ就職したつもりだったが、方やプログラミング言語を大して知らない1~2年目が動くものを書いてしまうエンタープライズな開発に愕然としたことも思い出す。それでも、それじゃいかんと思い、技術書を漁ったりもしたが、やはり、仕事上そこまで求められるケースはほぼ無く、ギャップに悩む事も多い。ただ、SIer、SEに関する以下の記述になるほどなと思わされるし、進むべき方向を暗に照らしているようにも感じる。

私の理解では、SEという職業はレストランに例えればウェイターである。それも、メニューから料理を選んでもらう通常のレストランとは異なり、「客の注文するものなら何でも作る」という個別注文レストランである。

そんなレストランであるから、客の注文もさまざまである。「豚のしょうが焼き定食」と料理を指定する客もいれば、「今が旬の魚を使った寿司」とか、「ご飯のおかずになるものなら何でもいいけど、コレステロールが気になるから野菜を多くしてね」という漠然とした注文も来る。ウェイターの役目はそれぞれのお客さんに満足してもらうには、何を作るのが一番良いのかを見極めて、キッチンに伝えることである。

難しいのは、客が必ずしも料理に詳しくはないので、真夏に「生牡蠣が食べたい」などと無理を言って来る客がいることである。そこを相手の自尊心を傷つけずに、「お客様、今は8月なのであいにく生食に適した牡蠣がございません。牡蠣フライではいかがでしょう」などと客を説得しなければならない。そういった仕事をちゃんとせずに、「生牡蠣一人前!」とキッチンに伝えてしまうと、料理人たちからは、「あのウェイターは料理のことが分かっていない」と非難されてしまう。

優秀なウェイターになると、客の好みや健康状態、季節の食材、キッチンにいる料理人の得意料理、各料理にかかる時間、食材のコスト、などが全て頭に入っているために、客にも喜んでもらえるし、キッチンからは信頼される。そんなレストランの客席はいつも満足げな客で一杯だ。

これが私の理解する「SEの役目」である。客に満足したソフトウェアを提供するという意味で、SEという職業はものすごく重要ある。ソフトウェアエンジニアとどちらが上か、などということは決してなく、それぞれに「客が何を本当に必要としているのか見つけ出す」、「受けた注文に基づいて作る」というそれぞれに重要な役割を果たすだけのことである。

会社ではやれ鉄人など、技術マニアなど、といった呼ばれ方をするが、世間を教えてくれる名著。願わくばもっと前に出会いたかった本。これも殿堂入り。

うちの部員にも読んでもらいたい。。。

Java5、GoogleカレンダーAPI独り言

久々にコーディングしての気づき。

StringTokenizerは非推奨

StringTokenizer は、互換性を維持する目的で保持されているレガシークラスであり、新規コードでは使用が推奨されていません。この機能の使用を考えているなら、String の split メソッドまたは java.util.regex パッケージを代わりに使用することをお勧めします。

次の例は、String.split メソッドを使用して文字列を基本的なトークンに分割する方法を示します。

 String[] result = "this is a test".split("\\s");

for (int x=0; x<result.length; x++)

System.out.println(result[x]);

知らなかった。

拡張for文(for/inステートメント)を使ってみた。コードは気持ち短くなった。

public class ScheduleBoardScheduleList {

private List<ScheduleBoardSchedule> scheduleBoardScheduleList;

public ScheduleBoardScheduleList(){

scheduleBoardScheduleList = new ArrayList<ScheduleBoardSchedule>();

}

public void addScheduleBoardScheduleList(ScheduleBoardSchedule sbs){

scheduleBoardScheduleList.add(sbs);

}

public List<ScheduleBoardSchedule> getscheduleBoardScheduleList(){

return scheduleBoardScheduleList;

}

@Override

public String toString() {

StringBuffer sb = new StringBuffer();

for(ScheduleBoardSchedule sbs : scheduleBoardScheduleList){

sb.append(sbs.toString());

}

return sb.toString();

}

}

アノテーションの使い勝手はまだ試せていないので分からない。

com.google.gdata.data.calendar.CalendarEventEntry#setQuickAdd

良く分からないが、trueとしてしまうと、時刻指定ができない模様。サンプロコードを見るかぎりは、

eventContent = new String("Tennis with John April 11 3pm-3:30pm")

としておいて、

myEntry.setContent(new PlainTextConstruct(eventContent));

myEntry.setQuickAdd(true);

で直近の該当時刻にスケジュールを登録されていた。日付を5/11のように指定すると日付は正しく反映されるが

時刻は反映されない。ただし、JavaDocを見ても良く解らんが、どうも日本では未公開の機能のようなので

突っ込まないこととした。。

set whether gd:content is quickadd info This will only effects Insert semantics.

Googleカレンダーで遊ぶ

会社で使っているスケジュールボードをリモートからも見たくてGoogleカレンダーと同期できないか思案してのPG。

久々なので、Eclipse3.6の環境をきれいにクリーンインストールしてからスタート。

まずは、GDateのサンプルをダウンロード。Eclipseで新規Javaプロジェクトを構築して解凍した一式を配置。

ただ、J2EEライブラリへのパスが無かったので、 GlassFishのライブラリを追加。最初は該当JARを探すも、

1.windows>設定>サーバ>ランタイム環境より、追加でJ2EEコンテナを追加

2.プロジェクトのビルドパスに ライブラリの追加>サーバ・ランタイムを行う

で適当なライブラリを追加してくれるので、コンパイルは通るようになる。

今回動かしたいカレンダーのサンプルのREADME.txtを見ると

The application can be built and run using the provided Ant build file found at

gdata/java/build.xml. The sample can be run in the following manner:

1. Edit gdata/java/build.properties to enter your Google Account username and

password, as well as the feed URI on which you want to test the sample.

2. Invoke the sample using the following commandline:

ant -f gdata/java/build.xml sample.calendar.run

とあるので、gdate直下(今回はプロジェクト直下)にbuild-samplesスクリプトは以下の、build.propertiesをコピーして、build.samples.xmlのsample.calendar.runを実効

すると

Buildfile: C:\Users\jun\workspace\GoogleCalenderSample\build-samples.xml

sample.calendar.dependencies:

template.require.service.jar:

sample.core.dependencies:

core.sample.core.util.build:

sample.calendar.build:

sample.calendar.run:

sample.calendar.dependencies:

template.require.service.jar:

sample.core.dependencies:

core.sample.core.util.build:

sample.calendar.build:

sample.calendar.eventfeed.run:

[java] java.lang.NoClassDefFoundError: sample/calendar/EventFeedDemo

[java] Caused by: java.lang.ClassNotFoundException: sample.calendar.EventFeedDemo

[java] at java.net.URLClassLoader$1.run(Unknown Source)

[java] at java.security.AccessController.doPrivileged(Native Method)

[java] at java.net.URLClassLoader.findClass(Unknown Source)

[java] at java.lang.ClassLoader.loadClass(Unknown Source)

[java] at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

[java] at java.lang.ClassLoader.loadClass(Unknown Source)

[java] Could not find the main class: sample.calendar.EventFeedDemo. Program will exit.

[java] Exception in thread "main"

[java] Java Result: 1

sample.calendar.dependencies:

template.require.service.jar:

sample.core.dependencies:

core.sample.core.util.build:

sample.calendar.build:

sample.calendar.calendarfeed.run:

[java] java.lang.NoClassDefFoundError: sample/calendar/CalendarFeedDemo

[java] Caused by: java.lang.ClassNotFoundException: sample.calendar.CalendarFeedDemo

[java] at java.net.URLClassLoader$1.run(Unknown Source)

[java] at java.security.AccessController.doPrivileged(Native Method)

[java] at java.net.URLClassLoader.findClass(Unknown Source)

[java] at java.lang.ClassLoader.loadClass(Unknown Source)

[java] at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

[java] at java.lang.ClassLoader.loadClass(Unknown Source)

[java] Could not find the main class: sample.calendar.CalendarFeedDemo. Program will exit.

[java] Exception in thread "main"

[java] Java Result: 1

sample.calendar.dependencies:

template.require.service.jar:

sample.core.dependencies:

core.sample.core.util.build:

sample.calendar.build:

sample.calendar.aclfeed.run:

[java] java.lang.NoClassDefFoundError: sample/calendar/AclFeedDemo

[java] Caused by: java.lang.ClassNotFoundException: sample.calendar.AclFeedDemo

[java] at java.net.URLClassLoader$1.run(Unknown Source)

[java] at java.security.AccessController.doPrivileged(Native Method)

[java] at java.net.URLClassLoader.findClass(Unknown Source)

[java] at java.lang.ClassLoader.loadClass(Unknown Source)

[java] at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

[java] at java.lang.ClassLoader.loadClass(Unknown Source)

[java] Could not find the main class: sample.calendar.AclFeedDemo. Program will exit.

[java] Exception in thread "main"

[java] Java Result: 1

BUILD SUCCESSFUL

Total time: 1 second

と出る。解凍したパッケージを適切にプロジェクトに配置できていなかったので修正して実施。

(SRCフォルダと、build.xmlの関係が不適切だった)

Buildfile: C:\Users\jun\workspace\GoogleCalendarTest\gdate\build-samples.xml

sample.appsforyourdomain.dependencies:

template.require.service.jar:

BUILD FAILED

C:\Users\jun\workspace\GoogleCalendarTest\gdate\build-samples\appsforyourdomain.xml:40: The following error occurred while executing this line:

C:\Users\jun\workspace\GoogleCalendarTest\gdate\build-samples\core.xml:61: Missing dependency jar: C:\Users\jun\workspace\GoogleCalendarTest\gdate\build-samples/..//lib/gdata-appsforyourdomain-${appsforyourdomain.spec.version}.jar

Please run "ant appsforyourdomain.build.appsforyourdomain".

Total time: 322 milliseconds

今度は、version.propertiesを適当なフォルダに置けていなかった。

配置を修正してひとまず、サンプルは動いた。でも、内部エラーも出ている。今日はひとまずここまで。

Buildfile: C:\Users\jun\workspace\GoogleCalendarTest\gdate\build-samples.xml

sample.calendar.dependencies:

template.require.service.jar:

sample.core.dependencies:

core.sample.core.util.build:

[javac] Compiling 2 source files to C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\util\classes

[javac] 注:C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\util\CommonUtils.java は推奨されない API を使用またはオーバーライドしています。

[javac] 注:詳細については、-Xlint:deprecation オプションを指定して再コンパイルしてください。

[jar] Building jar: C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\util\lib\sample-util.jar

sample.calendar.build:

[javac] Compiling 4 source files to C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\calendar\classes

[jar] Building jar: C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\calendar\lib\EventFeedDemo.jar

[jar] Building jar: C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\calendar\lib\EventFeedPartialDemo.jar

[jar] Building jar: C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\calendar\lib\CalendarFeedDemo.jar

[jar] Building jar: C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\calendar\lib\AclFeedDemo.jar

sample.calendar.dependencies:

template.require.service.jar:

sample.core.dependencies:

core.sample.core.util.build:

[javac] Compiling 2 source files to C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\util\classes

[javac] 注:C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\util\CommonUtils.java は推奨されない API を使用またはオーバーライドしています。

[javac] 注:詳細については、-Xlint:deprecation オプションを指定して再コンパイルしてください。

sample.calendar.build:

[javac] Compiling 4 source files to C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\calendar\classes

[jar] Building jar: C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\calendar\lib\EventFeedDemo.jar

[jar] Building jar: C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\calendar\lib\EventFeedPartialDemo.jar

[jar] Building jar: C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\calendar\lib\CalendarFeedDemo.jar

[jar] Building jar: C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\calendar\lib\AclFeedDemo.jar

sample.calendar.run:

sample.calendar.dependencies:

template.require.service.jar:

sample.core.dependencies:

core.sample.core.util.build:

[javac] Compiling 2 source files to C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\util\classes

[javac] 注:C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\util\CommonUtils.java は推奨されない API を使用またはオーバーライドしています。

[javac] 注:詳細については、-Xlint:deprecation オプションを指定して再コンパイルしてください。

[jar] Building jar: C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\util\lib\sample-util.jar

sample.calendar.build:

[javac] Compiling 4 source files to C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\calendar\classes

sample.calendar.eventfeed.run:

[java] Your calendars:

[java]

[java] ��{�̏j��

[java] Printing all events

[java] All events on your calendar:

[java] test

[java] Full text query

[java] Events matching Tennis:

[java] Events from 2007-01-05 to 2007-01-07:

[java] Successfully created event Tennis with Mike

[java] Successfully created quick add event Tennis with John April 1

[java] Successfully created web content event World Cup

[java] Successfully created recurring event Tennis with Dan

[java] Event's new title is "Important meeting".

[java] Set a 15 minute EMAIL reminder for the event.

[java] Successfully deleted all events via batch request.

sample.calendar.dependencies:

template.require.service.jar:

sample.core.dependencies:

core.sample.core.util.build:

[javac] Compiling 2 source files to C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\util\classes

[javac] 注:C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\util\CommonUtils.java は推奨されない API を使用またはオーバーライドしています。

[javac] 注:詳細については、-Xlint:deprecation オプションを指定して再コンパイルしてください。

[jar] Building jar: C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\util\lib\sample-util.jar

sample.calendar.build:

[javac] Compiling 4 source files to C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\calendar\classes

[jar] Building jar: C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\calendar\lib\EventFeedDemo.jar

[jar] Building jar: C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\calendar\lib\EventFeedPartialDemo.jar

[jar] Building jar: C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\calendar\lib\CalendarFeedDemo.jar

[jar] Building jar: C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\calendar\lib\AclFeedDemo.jar

sample.calendar.calendarfeed.run:

[java] Calendars in metafeed

[java]

[java] ��{�̏j��

[java] Calendars in allcalendars feed

[java]

[java] ��{�̏j��

[java] Calendars in owncalendars feed

[java]

[java] Creating a secondary calendar

[java] Updating the secondary calendar

[java] Deleting the secondary calendar

[java] The server had a problem handling your request.

[java] com.google.gdata.util.ServiceException: Internal Server Error

[java] Internal Error

[java] at com.google.gdata.client.http.HttpGDataRequest.handleErrorResponse(HttpGDataRequest.java:624)

[java] at com.google.gdata.client.http.GoogleGDataRequest.handleErrorResponse(GoogleGDataRequest.java:563)

[java] at com.google.gdata.client.http.HttpGDataRequest.checkResponse(HttpGDataRequest.java:552)

[java] at com.google.gdata.client.http.HttpGDataRequest.execute(HttpGDataRequest.java:530)

[java] at com.google.gdata.client.http.GoogleGDataRequest.execute(GoogleGDataRequest.java:535)

[java] at com.google.gdata.client.Service.delete(Service.java:1738)

[java] at com.google.gdata.client.GoogleService.delete(GoogleService.java:699)

[java] at com.google.gdata.data.BaseEntry.delete(BaseEntry.java:669)

[java] at sample.calendar.CalendarFeedDemo.deleteCalendar(CalendarFeedDemo.java:173)

[java] at sample.calendar.CalendarFeedDemo.main(CalendarFeedDemo.java:277)

sample.calendar.dependencies:

template.require.service.jar:

sample.core.dependencies:

core.sample.core.util.build:

[javac] Compiling 2 source files to C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\util\classes

[javac] 注:C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\util\CommonUtils.java は推奨されない API を使用またはオーバーライドしています。

[javac] 注:詳細については、-Xlint:deprecation オプションを指定して再コンパイルしてください。

[jar] Building jar: C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\util\lib\sample-util.jar

sample.calendar.build:

[javac] Compiling 4 source files to C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\calendar\classes

[jar] Building jar: C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\calendar\lib\EventFeedDemo.jar

[jar] Building jar: C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\calendar\lib\EventFeedPartialDemo.jar

[jar] Building jar: C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\calendar\lib\CalendarFeedDemo.jar

[jar] Building jar: C:\Users\jun\workspace\GoogleCalendarTest\gdate\sample\calendar\lib\AclFeedDemo.jar

sample.calendar.aclfeed.run:

[java] Access control lists for your calendars:

[java] Calendar "":

[java] Scope: Type=USER ()

[java] Role: http://schemas.google.com/gCal/2005#owner

BUILD SUCCESSFUL

Total time: 21 seconds

 

PS:Eclipse3.6でAnt使ったが、Taskへのリンク機能が超便利。また、外部ファイルをproperty file属性で読み込んでいるのも知らないテクなので関心。Googleのサンプルでは、JARファイルのバージョンをversion.xmlとして外出しにして、指定したバージョンのファイルを取得する作りとなっていた。Eclipseプロジェクトのビルドパスが動的に指定出来れば良い手として使えそう。

大局観

大局観 自分と闘って負けない心 (角川oneテーマ21)

決断力以来の2年半ぶりの羽生さん本。決断力は将棋を通して語られる、洞察の深さ、また将棋に留まらない業種の交流に心酔したものでした。

で、この一冊。

SE35歳定年説を吹き飛ばしてくれる下記の記述に心を奪われた。

がむしゃらに読み込む力は、年齢が若い棋士が上だが、熟年になると、この「大局観」で逆に「読まない心境」となり、勝負の上で若い棋士とも互角に闘える。

若い棋士は、良い手も悪い手も、たくさんの可能性を探しがちだが、ベテランになればなるほど、僅かな候補に絞って熟考を重ねるようにもなるらしく、捨てる技術が増すとか。そして、その捨てる技術を負けた後に如何に見直し修正できるかが、棋士の違いになるとも。

将棋のプロの世界はA級は10名しか存在せず、他のスポーツと比べても極端に年齢層が広い。そんな中、長期に渡り第一線で活躍した人の言葉は非常に重たいし、共感を生む。

本を読んでいると、そのうち書けるのではと思わせられるような本もあるけれども(と、言っても書けるような内容ではないのだが)、いくら経っても辿りつけないような境地に感じさせられてしまう、この本は、殿堂入り。

ゴールドマン・サックス研究

前回の更新が開いてしまいましたが、読むのが止まったのではなく、書く時間が確保できなかったためm(–)m。また、こつこつと更新していきたいと思います。と、いうことで、1.5ヶ月ぶりの一冊はこちらから。

ゴールドマン・サックス研究 (文春新書)

買ってから2ヶ月くらい寝かせてしまっていたのだが、タイトルが気になり購入。仕事的には投資銀行なんぞ無縁なんだが。。。

1980年代までの投資銀行と、現在の投資銀行は違う!という事が書かれており、そうなんだ、と思わされる。リーマンショックを契機として出版される本を見る限り、銀行の強欲っぷりは眼に余るところはあるけれども、その契機はゴールドマン・サックスゴールドマン・サックスたら占めていた、創業家からの流れが途切れた事にある、との記述を読むと、ソニーを思い起こさせる。

また投資銀行家だった著者が、強欲主義な金融に嫌気もさし、本来の実業を重視するよう投資家になっていった事が読み取るに、学生時代にどうしても金融が好きになれなかった自分の姿も思い起こされた。

デトロイトの衰退からの復興も非常に考えされられるテーマだった。

誠実であることの重要性、実業の重要性を、ゴールドマン・サックスと名のつく本が語っている点に、励まされる1冊でした。