2008-12-22

富士ゼロックスKDI / サラサラの組織

富士ゼロックスKDI の「サラサラの組織」を読みました。珍しく組織の本を読んだのは、勧められたからです。多謝。



正当な意志をもつ、現場を観察、暗黙知をつなぐ、自発の活力を待つ、相互共感を演出、矛盾の超越、変化の継続という7つのプラクティスを通して組織を変革するのだ、という内容です。小説仕立てのストーリー、解説、事例という構成です。



使命感が湧きつつも、いざ実践的しようとか思うと不安になる本です。というわけで、一緒に読んでくれる人募集。



[...] 物語は誰もがいきいきと話す。ノウハウやセオリーを挙げてくれと言ったら、全員が口をつぐんだだろう。 (p.50)



たぶんライトニングトークでも、ユーザ会でも、組織での情報共有でも、こういうのが敷居が低くかつ効果のありそうなコミュニケーションだと思います。経験を語るときはとくにそうですが、正しいとか間違っているとかではなくて「こんなことがありました」というだけでよいので。



コミュニティの価値はアウトプットではなく、インプットです。最先端の知識、新たな知識を必要とする社員が、その知識にアクセスするための媒介となるのがコミュニティです。 (p.44)



この発想はなかったです。ROI 重視になるとアウトプットばっかり考えてしまいます。



働き方を変えていこうという活動は、なかなか成果が見えにくい。経営トップからも、部門長からも、さらには隣に座っている社員からも、「いつになったら結果が出るの? 何のためにやっているの?」と問われる。[...] こういった局面で最も効果的なことは、誰もが大事と思うような「コト(イベント)」を起こすことである。(p.64)



ふむふむ。人脈も人望もない自分が人に影響を与えるには、自分ではなくてイベントを持ち出せばよいんだ。と曲解してみる。



さてさて、私はこの本での変革プラクティスと、かなりな勢いで対立する職業観を持っています。それは「属人性を可能なかぎり排除する」という考え方です。仕事をしているときには「私」の意見を述べないようにしています。会話の主語は「○○課△△部××担当」となるように心がけています。組織の歯車に徹するよう努めます。



そんなわけで私にとっては、かなりイノベーティブな内容です。いろんな人の意見を聞きたいなぁと思う次第です。






2008-12-06

UNC Finder for Mac OS X Leopard

昨日のスクリプトに手を加えて、UNC パスで表記されたファイルやフォルダを開くスクリプトを書きました。ユーザ名やパスワードは記憶しません。



uncfinder.py.zipをダウンロード


uncfinder.zipをダウンロード



2008-12-05

UNC の ¥¥foo¥bar を smb://foo/bar に変換する

MacBook Air を衝動的に買ったわけですが、Windows な職場なので UNC なパス名をよく使います。「¥¥foo¥bar¥baz にファイルを置いておきました」みたいな展開がよくあります。そんなわけで、これを smb://foo/bar/baz に変換するスクリプトをかきました。



ソースコード


バイナリ



マウントするのは、また今度。Python スクリプトを py2app でビルドしています。間違いなく、もっといいものが世の中にあると思います。



2008-11-25

エリヤフ・ゴールドラット / ザ・チョイス 複雑さに惑わされるな!

ゴールドラットの新作「ザ・チョイス」では、TOC を社外も含めたバリューチェーンに応用する場合の考え方について述べられています。ジャスト・イン・タイム方式はサプライヤーにリスクとコストを押しつけるのではなくて、サプライヤーに利益をもたらすやり方で実践できるという話。あるいは下流の販売店の利益にもなる、的な。売り切れによる機会損失を減らし、かつ、売れ残りのコストを減らすことで、全体のスループットが向上するというロジック。



確かにそんな気はするんですが、これまでの著作よりも恐ろしく回りくどい展開で、途中で読むのを挫折してしまいました。ゴールドラットと、その娘が対話するという形式で進んでいきます。

つまり、この場合の複雑という言葉の定義は、『システムに与えられている自由度が高ければ高いほど、システムはより複雑』という具合になるんだよ (p.70)

たとえば、ショッピングモールに入っている小さな本屋チェーン店なら、何を発注して何を返品するかくらいしか自由度がありません。定価売りですし、取次も固定的ですし、営業時間も決まっています。反対にちっちゃな雑貨屋とかだと価格、取引先、在庫、売る物などなど、一気に自由度が増えます。



この自由度こそが複雑さの指標である、という考え方です。この見方はビジネスによっては非常に実践的であるように思えます。






2008-11-17

自分のパソコン、親のパソコン

MacBook Air を眺めに(今週も)銀座へ。120MB HDD モデルの価格表示があったので、色めき立ったのですが、まだ入荷していないと言われました。入荷したら連絡してもらえるらしいので、電話番号を伝えて帰りました。



夕方、両親からパソコンを買うので相談したいと電話がありました。プリンタを買いに行ったら、持っているパソコンでは古いとか、容量が足りないとかで、使えないと言われたとか。そんなわけあらへんやろう、とよくよく聞いてみると、手持ちのパソコンには Windows 98 が載っていて、調べてみるとデバイスドライバがありません。なるほど。



かなりな勢いで、ショックです。Z80 のマシン語を書き、ファミコンは買ってくれなかったのにMZ-2000は買ってくれて、プログラミングを教えてくれた、あのオトンがプリンタ+パソコン選びごときに苦労するとは。



父の名誉のために追記しておくと、計測制御や化学プラントの設計が仕事だったので、パソコンでのプログラミングはたかだか手段のひとつだったはずです。



それはさておき、MacBook 買えば、と言いそうになったのを思いとどまりました。インターネット、メール、年賀状くらいまではいいとして、動画のコデック、スカイプ、ネットバンキングとかで、ハマりそうです。



選択の基準は、性能よりも電話サポートかも。



2008-11-03

LabVIEW の XControl で FisheyeListbox

仕事がたまっているのですが,LabVIEW で現実逃避です.XControl を使って,FisheyeListbox を作ってみました.マウスカーソルの下の項目だけ,大きく表示されるという,なんちゃって魚眼レンズ効果です.マウスの位置を算出するのに,予想外の時間がかかったので,とりあえず概念実証ってことで.



fisheyeListbox.zip



2008-10-27

ロバート・チャルディーニ 「影響力の武器」

交渉術の類が嫌いだ。交渉が下手な人間だからだろう。公私ともに交渉で満足な結果を得られたことなど一度たりともない。ずる賢いやり方に違和感がある、というのが一つの理由だと考えている。すべての問題のうち、いくつかを議論の場に持ち出さず、最後にワイルドカードで覆す、みたいなのはフェアではないし、私がやられたら鬱陶しい思いをする。

交渉とは違うのだけれど、チャルディーニの「影響力の武器」に書かれているのは、その種のどんでん返しをうまくやるために有用な心理的慣性(って言葉があるのかどうか知りませんが)のパターン・ランゲージだ。これを悪用するのではなくて、防衛に使うのは合理的な意思決定を促すというのは社会(大きく出たな、おい)にとって良いことだろう。セキュリティと同じく、この種の知識はどうにでも使えるわけだけど。

この本では、意思決定に必要な知識や情報が不足している場合、ある特定の属性が全体の価値を代表しているように知覚されてしまうことがあり、このせいで欲しくもないものを買ってしまったりする、と説明されている。そしてパターンとして「希少性」「返報性」「社会的証明」「権威」などを紹介している。

交渉の話に戻ると「ボーイスカウトのサーカスのチケット買って」「いらねーよ」「じゃあキャンディバーなら?」「しょうがねぇな」という話がある。こっちが譲歩するから、そっちも譲歩して、っていう理屈なんだけど、私はこういうのに弱い。だけど売る側と買う側の負担の絶対値が非対称なのだ。売る側が譲歩のようなものを作りだして、要求の大きさのデルタを見せているだけなのである。そして、譲歩後の提案を検討するときに、譲歩前の提案がなかったことにして考えればよい、というのがこの本による解決策だ。

そんなこんなで盛りだくさんの一冊。実家を訪問したときに読んでいたら、腕を骨折した母に「面白そうな本やねぇ。腕が治るまで、出歩いたりしたら危ないから、その本があったら家でおとなしくできるんやけど」と言われ置いてきた。まあ、さらに怪我されるくらいなら、本の一冊くらい安いもんだけど、つぎはマザコン克服の本を買うべきか。






2008-10-02

勝間和代 / 勝間和代の日本を変えよう

勝間和代の「勝間和代の日本を変えよう」を読んでいます。まだ途中ですが、西原理恵子の1ページマンガの中に、「勝間ほんまは男選びのグーグル化が必要なんとちゃうんかっ」というのがあって、思わず笑ってしまいました。西原理恵子のマンガって紹介されているのを、ちらっと見たことしかないのですが、かなり面白そうな予感。



勝間和代の日本を変えよう Lifehacking Japan



Firefox で ActionPadが動作しないバグを修正

Firefox で ActionPad を開くと、いつまでたってもロードまちだったバグを修正しました。



$(...).each(function(...) { ... continue; ...});



と書いていたのですが、ループ構造以外で continue してはだめよ、というエラーでした。ださい。Chrome ではこれエラーにならずに、スルーしてくれます。いや、エラーをはいてよ。



2008-09-24

タスクを階層化できるタスク管理サービス O.SHI.GO.TO

拙作の ActionPad で目指していたことのひとつは、タスクあるいはアクションの階層化でした。GTD でも具体的な行動まで落とし込むことが重要なステップです。一方で、ある程度、作業工程を俯瞰する必要もあります。プレゼンテーションの資料を作るところで、いきなり「PowerPoint を開く」ではいかんわけです。そんなわけで、「目的は?」「ブレインストーム」「アウトライン作る」などに分解します。さらに「アイデアを取捨選択する」「残ったアイデアで並べ替えて、あそぶ」「アウトラインを決定する」みたいに分解します。



自分が考えることなんぞ、とうぜん他の人も考えているもので、O.SHI.GO.TO というウェブサービスが、まさにこの実装です。うおお、ライバル出現。うそ。Action Pad が後発すぎ。そうそう。ヘルプやブログにも、このあたりの考え方が書かれています。いちいち納得。



O.SHI.GO.TO には作業のテンプレートを挿入する機能があって、これはかなり便利そうです。そのうち、Action Pad に取り入れたいです。



2008-09-23

ActionPad を AJAX にしてみた

テキストファイルとして編集できるタスク管理ツール、として作り始めた ActionPad ですが、やっぱり使いにくいなぁという結論に至りました。というわけで、ちょっと AJAX な感じに変更です。





テキストエディタで TODO 管理するときは、良くも悪くも両手がキーボード上にあるような心理モードです。ところがブラウザとなると、どうしても右手がマウスにいきます。ってことは、ブラウザ上にエディタを置いてしまうと、なんかこう右手が忙しくなります。ショートカットつければいいのかも知れません。



2008-09-06

Google App Engine で、タスク管理ツールを作ってみた

Google App Engine を使って、簡単なタスク管理ツールを作ってみました。いまさら感のあるアプリケーションですが、巷のツールになかなか馴染めなかったのと、ウェブアプリを公開してみたかったというのが動機です。



ActionPad



まずはツールのこと。タスクの順序を任意に指定できること、ネットワークにつながっていなくても管理ができること、階層化できること、の3つを強く望んでいました。これをずべて解決してくれるアプリというのが、なかなか見つかりませんでした。じゃあ、Excel 使えよみたいな話なのですが、まあ、そこはやっぱり携帯電話とかでも見たいし、とか。Remember the MilkCheck*padSimpleGTD も素晴らしいツールなのですが、なかなかすべてを満たしてくれません。



Tasko というウェブアプリを見つけて、おおこれだよこれ、ってことで。ただ、終わったタスクに「@done」 って書くのって、携帯電話ではちょっと面倒なのですね。というわけで、独自記法を採用しよう、と。



続いてウェブアプリのこと。外側に公開しようとすると、レンタルサーバか自宅サーバです(専用ホスティングはさすがに、オーバースペック)。レンタルサーバだと CGI で書くことになるので、web.py や Django かなぁってことで、ちょこちょこ調べてはいました。自宅サーバだと、さくっとサーバを動かせるので便利なのでいいなぁ、デスクトップパソコン買おうかなぁ、と思案していました。



最近、遅ればせながら Googl App Engine を調べはじめて、あーなんて簡単、ってことで、これに乗っかることにしました。ノートPC上で web.py を使って作りかけていたコードがあって、それなりに MVC に分けてあったので割と簡単に移植できました。モジュール化重要。



Google App Engine 上でも、web.py を使うことができるらしいのですが、今回は動くコードをさっさと作るのを優先しました。まだまだ dog food リリースですが、ちょっとずつ改良してみようと思います。



2008-08-25

SQLObject の __init__ を触ってはいけない

web.py と SQLObject を使ってちまちまやっているわけですが、データベースに行を追加した後、サーバを再起動してから、Foo.select() の戻り値をイテレートしようとすると、応答しなくなりました。リターンしないと言うのでしょうか。エラーが出るわけではないけれど、ずーっと待ってる。



スレッドが分かれているのがいけないのかとか、いろいろ勘ぐったのですが、そんなことではなくて、SQLObject (のサブクラス)の __init__ を触っていたことが原因っぽい。



ちなみにやりたかったことは、各行に順序を表すコラムをつけたかったのです。

class Foo(SQLObject):
    value = StringCOl()
    order_ = IntCol()



    def __init__(self, *args, **kw):
        kw["order_"] = max([0]+[f.order_ for f in Foo.select()]) + 1
        SQLObject.__init__(self, *args, **kw)

ドキュメントには、__init__ に触るな、_init を使え、と書いてありました。ただ、私の今回の目的では、オブジェクトの生成前に order_ コラムを指定したいのですが、_init の引数は _init(self, id, connection=None, selectResults=None) です。connection に Foo インスタンスが入っているっぽい(WingIDE のデバッガが活躍)のですが、ほんとにこれに頼っていいのか分からないのと、どっちにしても Foo をインスタンス化するときに order_ を渡さないといけません。というわけで、こんな風にしました。

class Foo(SQLObject):
    #...



    @classmethod
    def tail(class_):
        return max([0]+[f.order_ for f in Foo.select()])+1

呼び出すときには、

Foo(value="spam", order_=Foo.tail())

です。



2008-08-20

北京オリンピックトライアスロン 田山選手メダル獲得ならず

レースを見られなかったので、非公式結果を眺めながら、田山選手のレースを妄想してみます。



スイムは 18分04秒、5位で上がっています。先頭のニュージーランド代表 Reed 選手とは 4 秒差、最後尾とは50秒ほどの差です。かなりな好位置につけていたようです。トランジットの時間なんかも記録されていて、バイクに出たときには 4 位です。先頭集団ではないですか。



NHK ニュースによると、山本選手も先頭集団に入っていたみたいで、バイク終了時点で、36位、1時間17分46秒。田山選手は、35位、1時間17分46秒。ほとんど一緒にバイクを終了していたってことでしょう。他の選手のラップタイムを見ても、だいたい同じくらいなので、大きな集団だったようです。



あれ?バイクラップをよく見ると、



  • 1位 1時間16分45秒 ベルギー代表 Zeebroek 選手


  • 2位 1時間16分45秒 ルクセンブルク代表 Dirk 選手


  • 3位 1時間17分30秒 メキシコ代表 Serrano 選手


先頭2人が 45 秒も、ちぎってるじゃないですか。おお、これは盛り上がったのではないかと。バイクで 500m くらい、ランで 200m くらいの差でしょうか。



そんなわけで、田山選手は大きな第2集団か、その後の第3集団くらいでバイクフィニッシュだったのでしょう。トップとは1分差。トランジットで1人抜いています。



ラン・スプリットは37分58秒で48位、最終タイムでも48位です。ランに出てから、15人に抜かれたことになります。結果をざっと見たところ、ラン・スプリットの順位と、総合順位がだいたい同じです。ランスプリット順位と総合順位が大きく違うのは、バイク先頭の2人くらいです。おそらく、ランに入ったところでは、ほとんど差がない状態で、徐々に集団が縦に長く伸びていったのでしょう。



そんなわけで、田山選手はメダル獲得ならず。田山選手は大変悔しがっている様子なので、私は残念がっておきます。それにしても、あいかわらず、ヨーロッパとオセアニアは強いですねぇ。



2008-08-18

北京オリンピック トライアスロン日本代表 田山寛豪選手

オリンピック盛り上がっているようですね。個人的に応援する選手がいたりすると、さらに盛り上がる気がします。私は田山寛豪選手を応援します。ワールドカップシリーズで優勝したことがありますし、暑いレースでは日本人の順位が上がる傾向があるので、期待大です。私がどんなに応援しても、競技のパフォーマンスには何ら影響はありませんが。



JOC のアテネ大会の選手プロフィールを見てみましょう。好きな歌・曲名に「トライユアーベスト(古代真琴)」とあります。分かりにくすぎる...。古代眞琴はシンガーソングライターで、自身もトライアスロンをするらしく、この曲はなんだかレースとかのテーマソングになったりしているようです。聴いたことはありません。



日本トライアスロン連合の有力選手情報も見てみると、得意種目に「トランジション」とあります。だから、分かりにくいってば。トライアスロンはスイム、バイク(自転車)、ランの三種目を連続して行う競技なのですが、各種目間を移行している間も時計は動き続けます。で、この種目間の移行のことをトランジションといいます。ワールドカップやオリンピックなんかだと、このトランジションの時間差も大きな影響があって、実際に田山選手はトランジションで泣いたことも笑ったこともあるようです。優勝したワールドカップ・エイラート大会でのバイク/ランのトランジションはものすごく速かったそうです。



田山選手が所属しているチームブレイブの前身「チームテイケイ」の練習に、学生のころ参加させてもらったことがあります。選手も監督も忙しいのに、無名学生を受け入れていただいたにも関わらず、私は選手としては鳴かず飛ばずで、競技もやめてしまって、挙句の果てに30歳にして中年太りが始まるという、どうしようもない展開です。何の恩返しもできていません。というわけで、兵庫県トライアスロン協会経由で支援基金に微力ながらお手伝いしました。



Google で「オリンピック トライアスロン」で検索すると、教示時刻が表示されます。女子が 18日 11:00から、男子が19日 11:00 からです。日本トライアスロン連合のページによると、
8月18日(月)女子 録画放送 NHKBS 16:00-18:50
8月19日(火)男子 中継放送 NHKBS 10:55-13:00、録画放送 NHK総合 15:12-18:45
だそうで。問題はテレビもビデオも持っていないってことですよ。有給休暇とってヨドバシカメラのテレビ売り場か?



2008-08-17

Wing IDE の使用感

Wingwre 社の Wing IDE という Python の IDE の 一番高い Professional 版を試用(そうです「試」用です)し始めました。web.py と SQLObject を使ったウェブアプリ開発を前提にしています。ちなみに本職は開発ではありません。日曜プログラマです。



これまでの開発環境は



  • Windows XP SP2


  • CTRL+TAB や TopDesk(似非Expose)でフォルダ、Command Prompt、Firefox、xyzzy (Emacs っぽいエディタ)、Python ヘルプを切り替える


  • TortoisSVN でバージョン管理


  • TODO はテキストファイルで管理


でした。で、



  • 編集ソースの切り替えとウィンドウ切り替えのキーストロークが異なるのがやだ


  • 自動補完が欲しい


という不満がありました。



Wing IDE の使い方は



  • エディタのパーソナリティをEmacsに設定


  • Edit-Preference-Layout で個別ウィンドウに設定


  • Python Shell も Wing IDE から開く


  • Wing IDE の SVN 機能はまだ使っていない


です。感想は、



  • エディタもシェルも自動補完は思いのほか便利


  • すべての作業・閲覧対象を Ctrl+tab で切り替えられて便利


  • 編集時にシンタックスチェックしてくれて便利


  • あんまり使わないけど、Shift+F6でユニットテスト実行も便利


  • あんまり使わないけど、ブレークポイントとか変数ウォッチも便利


  • Code Folding 機能は使っているけど、編集しているうちに expand してしまうので微妙


  • TopDesk ではWingの画面が真っ黒になってがっかり


というわけで、なかなか良いです。



編集ソースが増えてくると、TopDesk で表示したウィンドウが真っ黒になるのが痛いです。が、実際のところ、あんまりたくさんの画面を縮小表示されても、どれを選べばいいのかわからないのかも知れません。Vista の Flip 3D にするといいのかも。



30日使えるらしいので、もう少し試用を続けてみようと思います。無料の 101 版でもいい程度の機能しか使っていませんね。Personal 版の $35、Professional 版の $179 でも支払っていいと思っていたわけですが。



2008-08-04

フロントパネル更新を高速にする

LabVIEW のメリットのひとつは GUI や GUI がらみのプログラミングが手軽だということでしょう。ですが、手軽さの代償としてパフォーマンスが犠牲になっています。



添付の bad.vi は、フロントパネル上のオブジェクトを表示したり、非表示したりします。これを遅いとするか速いとするかは、PC のスペックと、アプリケーション

の要件によるでしょう。



LabVIEW はフロントパネルのオブジェクトの値やプロパティが変更されたとき、自動的に更新します。メインのスレッドと、GUI のスレッドが定期的に通信して、値の変更を反映するからです。もしも多数のオブジェクトがある場合には、この変更通信が頻繁に起こり、その結果、再描画も頻繁に起こります。これが LabVIEW の GUI が遅くなりがちな理由です。



.NET フレームワークの Form オブジェクトは、明示的に Update メソッドを呼び出さないと更新されません。なのでパフォーマンスはよいでしょうが、頻繁に更新してほしいときにはコードが煩雑になりがちです。たぶん。



LabVIEW ではフロントパネルの「パネルアップデートを延期」プロパティを使って同じことができます。このプロパティを True にすると、それ以降フロントパネルの操作が描画に反映されません。False にすると、それまでに発生しているプロパティや値の変更が描画に反映されます。つまり .NET Form オブジェクトの Update メソッドに該当します。



添付の good.vi はそれを実装したもの、better.vi はフロントパネル操作をサブ VI 化したものです。手元の環境では、bad.vi の2倍くらい高速に動作します。



PanelUpdating85.zipをダウンロード



2008-07-26

Python Code Reading 03

Python Code Reading 03 に行ってきました。01 と 02 は逃しましたが、ついに参加。



気になったのが最後のほうに話題になった softspace アトリビュート。file オブジェクトでも実装されていて、マニュアルには「print 文でカンマ区切りで複数の値を与えたときに、スペースを入れるか否かを指定する」と書かれていました。でも StringIO ではまたく使われていません。



会場では file オブジェクトとインターフェースを同じにしてるんじゃないのかなぁと適当なことを言いました。が、帰り道に「print 文がこのアトリビュートを見てるんでは?」と思いつきました。

>>> from StringIO import StringIO
>>> s = StringIO()
>>> s.softspace
0
>>> print >>s, 1, 2
>>> s.softspace = False
>>> print >>s, 3, 4
>>> s.getvalue()
'1 2\n3 4\n'

どうも関係ないっぽい。マニュアルを見てみると、

Note: This attribute is not used to control the print statement, but to allow the implementation of print to keep track of its internal state.



注意:このアトリビュートは print 文の制御に使われないが、print 文の実装において内部状態を追跡するのに使うことができる。

とあります。print 文がこれを見る余地はあるけれど、実際には見ていないっぽい。Python のコードを読む根性がないので、とりあえず今日はあきらめる。



2008-07-21

第6回 須磨海水浴場アクアスロン

兵庫県の須磨海水浴場アクアスロンに参加しました。スイム 1km 、ラン 10km。最高気温は摂氏34度。



スイムは遊泳エリアの少し向こうを、海岸と平行に泳ぎます。片道 250m を2往復。堤防の内側なので波はありません。瀬戸内海のしかも神戸なので、水は決してきれいではありません。が、海水浴場なので病気にはならないはず。



ランは公園内の遊歩道などを変則周回+往復の平坦なコースです。このコースの最大の難所は給水地点が少ないということです。物理的には1カ所で、周回・往復なので4回そこを訪れます。だいたい、3km, 4km, 7km, 8km あたり。0km 地点には給水がありません。なのでトランジション・エリアに、自前で水を用意しておくのが得策かと。



かなりな勢いで手作りな大会です。周回カウントは輪ゴムですし、たまにコースを間違いそうになりますし、トランジション・エリアは青いビニールシート敷いてあるだけです。海水浴場の海の家の前を走るのですが、一般客はレースが行われていることなど知らないので、歩きタバコのにーちゃんや、ねーちゃんの間を縫うように走ります。



駅からも徒歩で行けますし、神戸三宮から20-30分くらいですし、アクアスロンですし、手軽に参加できるのが利点です。ちなみに、数日前に還暦を迎えた母に敗れました。



2008-07-07

元トライアスロン仲間と再会

トライアスロンレースの帰りの電車で、学生時代(10年も前の話です)にときどき合宿や練習や遠征を一緒にしていた、むしろ、してくれていた人にばったり会いました。彼はレースではなくて、別の用事でたまたま乗っていたららしく、自転車を担いでいた私を発見したそうです。10年ぶりにトライアスロンに参加した日に、10年ぶりにトライアスロンつながりな人と再会した日でした。「また走ろうねー」と言って別れる。



第19回国営昭和記念公園トライアスロン大会

国営昭和記念公園トライアスロン大会 に参加しました。Swim 0.75km、Bike 20km、Run 5km のスプリント。



場所は国営昭和記念公園です。ゴールドカードなペーパードライバーなので、輪行しました。JR 新宿駅から中央線の快特だかなんだかに乗って立川駅へ、そして普通というか快速に乗り換えてひと駅先の西立川駅へ。改札を出て左に出て100mくらい歩いたら受付でした。



スイム、トランジット、メイン会場はすべて屋外プール施設を貸切で使います。700人ほどの参加者がいたらしいのですが、割とゆったりと荷物を置いたりできます。更衣室も使えます。自販機もあるので水も買えます。2リットルのペットボトルとか持っていって失敗でした。



バイクコースは、公園内のサイクリングコースではなくて、そのさらに外側の自動車が使えるような道路を周回します。5km x 4周。初心者が多く、公園を使う大会としては、十分な広さだと思います。





2008-06-21

ファイル読み込み + 演算のベンチマーク

ベンチマークシリーズ第二弾は、sum file です。テキストファイルから1行読み取り、整数に変換したものの和を求める、というもの。10000 行のファイルを使いました。



LabVIEW 8.5.1 ...... 968 [msec]
Python 2.5.2 ...... 371 [msec]
C (GCC 3.4.4) ...... 110 [msec]



02




LabVIEW 遅いな...。



01


# python
import sys, itertools
print sum(itertools.imap(int, sys.stdin))


/* C */
#include <stdio.h>
#include <stdlib.h>
#define MAXLINELEN 128
int main (void) {
  int sum = 0;
  char line[MAXLINELEN];
  while (fgets (line, MAXLINELEN, stdin)) {
    sum += strtol (line, NULL, 0);
  }
  printf ("%d\n", sum);
  return 0;
}







2008-06-20

LabVIEW のベンチマーク - スペクトル・ノルム

http://shootout.alioth.debian.org/gp4/index.php
に、いろんな言語でいろんな計算を実装したベンチマークがあります。



スペクトル・ノルムの計算を試してみました。Panasonic CF-R5, U1300 @1.06GHz, 1GB RAM のノートパソコンでの結果です。



C++ のコードを、Visual Studio 2005 でコンパイルしたものと、それを愚直に LabVIEW に移植した場合で比較しました。N = 1000 のとき、

C++ ... 1.9 秒
LabVIEW 8.5.1 ... 79 秒
Python 2.5 ... 80 秒



壊滅的に LabVIEW と Python が遅いです。まあ、こんなもんでしょう。LabVIEW も Python も、四則演算なんかは直接コンパイルせずに、ランタイム/バーチャルマシン上で動かしているので、ネイティブコードに吐き出す C++ よりも遅くなるんではないかと。



LabVIEW には標準で行列演算の関数や VI が含まれるのでそれを使って実装しなおすと、もっと早くなります。ただ、この場合には、元の実装とは異なり、行列をあらかじめ用意します。なので、C++ でも eval_A(i,j) を、vector<vector<double> > A(N,N) に置き換えました。



C++ 改 ... 1.6 秒
LabVIEW 8.5.1 改 ... 0.4 秒



LabVIEW 速いです。とは言え、行列がらみの演算は LAPACK や BLAS を使っているので、C++ でそれを使っていないのはフェアではないです。ポイントは、解析系の演算はビルトイン関数を使うと、C 並のスピードで動くということです。DLL 呼んでるだけなので、当たり前ですが。



SpectralNorm.zipをダウンロード



2008-06-17

LabVIEW で migemo を実装してみた

pure LabVIEW で Migemo を実装してみました。ローマ字から日本語を検索するような正規表現を生成します。C/Migemo 使えよって話なのですが、まあ、そこらへんは LabVIEW で書くことが目的ってことで。最近、バイナリサーチだとかクイックソートだとかにうつつを抜かしていたのは、これを作るのが目的でした。概念実証の段階なので、コードは遅いですし不安定です。これからちょっとずつ修正していきます。



01




lvmigemo-poc.zipをダウンロード

(2MBくらいあります)



2008-06-16

村上春樹 / スプートニクの恋人

村上春樹の「スプートニクの恋人」を読みました。スプートニクは出てきません。ノルウェイの森にもノルウェイは出てきませんし。タイトルでは想像がつかないところが、村上龍との違いです。



22歳の女性すみれが、年上の女性に恋をして、服装が少しずつ変わっていく様を、「ぼく」の視点から語る。ようにみせかけて、ぼくの物語です。すみれの世界に対するディタッチメントとコミットメント、ぼくのすみれや世界に対するディタッチメントとコミットメントが描かれています。



話の途中でギリシアに場面が移るのですが、このときの描写が「遠い太鼓」に書かれている村上春樹のギリシア生活っぽいです。船着場での喧噪や、夜の静かさとかが。




遠い太鼓 (講談社文庫)

個人的な好みでは、村上春樹ランキングは、



  1. 国境の南、太陽の西


  2. 世界の終りとハードボイルド・ワンダーランド


  3. スプートニクの恋人


です。「大切であったことに失ってから気づく」ストーリー大好きなので。ねじまき鳥など未読の作品もあります。




国境の南、太陽の西 (講談社文庫)

世界の終りとハードボイルド・ワンダーランド〈上〉 (新潮文庫)

世界の終りとハードボイルド・ワンダーランド〈下〉 (新潮文庫)

スプートニクの恋人 (講談社文庫)



Python Code Reading に行きたい

Python Code Reading 01 も 02 も参加していません。01 のときにはお客様とお食事会、02 のときには展示会+セミナー講師をやっていたので、行きませんでした。次回は行きたいなぁ。



ちなみに展示会場はパシフィコ横浜で、Code Reading の日は、展示会最終日で後片付けとかやっていました。以前なら「行けなかった」と表現していたところです。自分がマーケティング担当している製品を出店する展示会で、他部署部署から応援をお願いしているので、私用で早退というのは、ちょっとどうかという状況でした。が、物理的に制限されていたわけではないので「行けなかった」のではなく「行かなかった」のです。というどうでもいいことに、こだわり始めた、ここ数日です。すぐに飽きるかもしれません。



2008-06-15

Quick sort VI for LabVIEW

I have made a binary search library for LabVIEW few days ago and I found it is hard to sort an arry of any type.  So I made another VI to sort an array.



First, you need to create an VI to compare two values in advance of using the library.  The VI accepts two variants A and B, and returns the result of (A-B).  The VI should simply perform subtract B from A if you want to search a numeric array.  The VI, however, will be more complicated if you want to search an array of cluster.  Note that the VI must return 0 if matched.



Cmpint32




Then, pass an array of data type and the VI you have just created to SortAny1DArray.vi , and then you will get the array sorted.  The sorting algorithm is quick sort.



Qsort



Download lvqsort-0.1.zip






LabVIEW でクイックソート

先日、LabVIEW で二分探索するライブラリを作ったのはいいのですが、任意の型の配列をソートするのが意外にも面倒であることに気付きました。というわけで、ソートする VI も作りました。



まず、比較用の VI を作ります。2つのバリアント A と B を受け取って、その大小比較の結果 (A-B) で返すような VI を作ります。数値の場合は単純に引き算すればよいですし、クラスタのような複雑な型の場合には、それなりの演算をして大小比較します。一致した場合には 0 を返さないといけません。



Cmpint32




任意の型の配列と、上記の VI へのリファレンスを、SortAny1DArray.vi に渡すと、あーら不思議ソートされます。別に不思議でもなんでもありません。アルゴリズムにはクイックソートを使っています。



Qsort



lvqsort-0.1.zipをダウンロード






2008-06-08

Binary Search libary for LabVIEW

LabVIEW provides a built-in 1D search function which is a linear search implementation.  That is the algorithm check a value from the very first element of an given array, then 2nd,... until it finds a matched value.  It is O(n) algoritm. Thus it is likely useless for large arrays.



If you have a sorted array, binary search is useful.  This algorithm checks the value in the middle of given array to determine the expected value is located in the first half or last half of the array.  Then it check the value in the middle of the first/last half portion, .... until it finds the value.  It is O(log n) algorithm.





Satoru Takabayashi has implemented the algorithm in Ruby; Ruby/BSearch and I ported it for LabVIEW.




First, you need to create an VI to compare two values in advance of using the library.  The VI accepts two variants A and B, and returns the result of (A-B).  The VI should simply perform subtract B from A if you want to search a numeric array.  The VI, however, will be more complicated if you want to search an array of cluster.  Note that the VI must return 0 if matched.



Cmpint






Okey, now you are ready to search with, say, BianarySearch.lvlib:Range.vi.  The example below shows the VI returns the index of first occurence of "2" and and 1+ the index of the last; i.e. 1 and 3 respectively.



Bsearchexample




download BinarySearch-0.1.zip



LabVIEW で2分探索するライブラリを作りました

LabVIEW の 1D 配列検索は線形探索です。つまり配列の先頭から要素を順番に確認していって、見つかったらおわり、というアルゴリズムです。配列サイズに比例して、つまり O(n) なので、確認する要素数が増えるので、データが大きくなると破綻しがちです。



配列が昇順または降順にソートされている場合、二分探索あるいはバイナリサーチと呼ばれる方法を使えます。これは、まず真ん中を見て、探している値が配列の前半にあるか後半にあるかを特定します。で、その前半なり後半なりの真ん中を見て... というの繰り返すアルゴリズムです。O(log n) です。



で、Ruby には高林さんが作った Ruby/BSearch というライブラリがあるので、それを LabVIEW に移殖しました。



使うときには、大小比較用の VI を最初に用意します。2つのバリアント A と B を受け取って、その大小比較の結果 (A-B) で返すような VI を作ります。数値の場合は単純に引き算すればよいですし、クラスタのような複雑な型の場合には、それなりの演算をして大小比較します。一致した場合には 0 を返さないといけません。



Cmpint




これで準備ができました。ってなわけで、BinarySearch.lvlib:Range.vi を使ってみましょう。下の例では、数値配列から 2 がある要素の最初の指標と、最後の指標+1 を返します。つまり 1 と 3 を返します。



Bsearchexample




BinarySearch-0.1.zipをダウンロード



2008-06-07

LabVIEW の任意の配列は、バリアントの配列に変換できる

バリアントをごにょごにょしている、この頃でしたが、無駄足であることが分りました。もともと、任意の型の配列の要素に対して操作をするというのが目的です。OpenG のコードを読んでいて気付いたのですが、配列はバリアントの配列に変換できるようです。元の配列要素の型がクラスタでも大丈夫です。これがあれば任意の型の配列に対して、配列要素を取り出したり、入れ替えたりすることもできます。



また、元のデータが配列ではなかったり、次元が一致しない場合には静的型チェックでひっかかるので便利です。



03_2




2008-06-06

バリアントに変換された配列のサイズを知る

バリアントの続きです。配列データをバリアントに変換した後で、元の配列のサイズを知ることもできます。当たり前ですが。



「バリアントから平坦化文字列に変換」したとき、タイプディスクリプタの 3 ワード目に次元数が格納されています。各次元のサイズは文字列の先頭に、符号なし32ビット整数で格納されています。たとえば 2 次元配列の場合、文字列の先頭 32 ビットに 1 次元目のサイズ、次の 32 ビット目に 2 次元目のサイズが格納されています。ブロックダイアグラムは以下のようになります。



Arraysize_4





2008-06-05

バリアントの元の型が、配列かどうか判定する

OpenG のコードを読んでいると、バリアントの元の型が配列かどうかを判定する方法が分かりました。



「バリアントから平坦化文字列に変更」関数 ("Variant To Flattened String" function) の、タイプ文字列端子から出てくるデータを見ます。バリアントの元の型が配列の場合、Windows ではこのデータの 4バイト目タイプディスクリプタが  0x40 になるということです。正確には、この端子から出てくるデータは符号つき16ビット整数の配列で、ふたつめの要素の下位バイトが 0x40 です。



Isarray_2




2008-06-04

OpenG のバリアント系 VI がすごい

LabVIEW で任意の型のデータを受け渡しするときに、バリアントに型変換することがあります。このとき型情報を「バリアントから平坦化文字列に変換」関数を使って取り出せる


のですが、なんだか複雑でマニュアルを読むのが面倒です。



こんなときには LabVIEW のオープンソースライブラリ OpenG です。この中にバリアントを扱う VI もあって、これらを使うと実行時にバリアントの型情報を扱うのが容易になります。これを使うと、たとえば任意の型データを要素とする配列のソート、なんかも実現できます。下の例は、数値と文字列でできたクラスタ、の配列を、数値でバブルソート(ださっ!)する VI です。



03



bubblesort.zipをダウンロード



2008-05-30

港区スポーツセンターで泳ぐ 木曜日 18:15

雨が降っていたので、もしや空いているのでは、という期待は見事くだかれました。1コースあたり4~5人くらい。



トータル・イマージョンがマイブーム。昨日、家に帰ってからトライアスロンJAPAN 2006年11月号(古っ)を読んでみると、どうやらジッパー・スケーティングするときには、頭が沈むものらしい。体幹や下半身を沈めないためには、腕が水面に出ているときにどこか別のところを沈めないといけないわけで。それが頭や体幹の胸側の面なのでしょう。という理解のもと泳いでみたのですが、結構むずかしいです。うまくいくときと、いきないときがあります。お、浮いてる浮いてるってときと、ぶくぶく沈むときと。かなり前傾姿勢的なイメージを持つと、成功している気がします。



2008-05-29

ローマ字をかなに変換する LabVIEW コード

LabVIEW でやらなくてもいいものを、作ってみるシリーズその1。ローマ字表記の ASCII 文字列を、かな表記に変換します。アルゴリズムは JavaScript/Migemo と同じです。すなわち、どっかのバージョンの Migemo と同じ。




Roman2kana



pure LabVIEW で書いています。C/Migemo 使えよって話なのですが、作ることが目的なので。



ConvertRomanToKana0.1.zip
LabVIEW 8.5 で動作確認しました。



港区スポーツセンターで泳ぐ 水曜日 17:45

とっとと仕事を切り上げて、泳ぎに行きました。500m。トータル・イマージョンのジッパースケートに挑戦しましたが、まったくできません。バランスが崩れて進まない上に、頭が沈みすぎて息継ぎができないのです。それに頭の横にもってきた腕のひじが水面に出ないのです。沈みすぎ。



1コースあたり4~6人とちょっと多めでした。



2008-05-28

LabVIEW で複雑な型のポインタを引数に取る DLL 関数を呼び出す

Windows 版の LabVIEW には DLL(Mac なら Dylib、Linux なら共有オブジェクト) を呼び出す機能がありますが、ちょっと貧弱です。複雑な構造体のポインタを引数にとるような関数呼び出しを書けないことがあります。たとえば、こんなの。

void func(Foo* foo) {
  /* ... */
}

ヘッダファイルをたどっていければ、インポートウィザードが自力でなんとかしてくれることもありますが、してくれないこともあります。



Foo の中身が DLL 内で完結していて、LabVIEW から型の詳細を知らなくていいとき(まともなライブラリなら、そうなっているはず)なら、強引に呼び出す方法があります。この引数を、符号なし32ビット整数の値渡しにします。
Calllibraryfunc




ポインタはどうせ32ビット整数なので、細かい内部型なんか気にせずに整数扱いしても大丈夫なことがあります。もちろんメモリ確保を、呼び出し側でする必要があったりとかするので、いつでも使えるわけではありませんが、そういうやりかたもあるってことで。



港区スポーツセンターで泳ぐ 火曜日 18:00

トライアスリートへの道、2日目。港区スポーツセンターへ。18:00 すぎに着きましたが、やっぱりこの時間は込んでいます。子供プールでぷかぷかできないくらい。1コースあたり5人くらいです。200m ほどはトータル・イマージョンで言うところのスケーティングをやって、その後クロール300m。楽に泳げている気がするのは、やっぱり気のせいでしょうか。



2008-05-27

トライアスリートへの道

かれこれ4年くらい「トライアスロンやりたい」と言いつつやっていません。で、強引に7月のちっちゃなレースに申し込んであるのですが、ぜんぜん練習していません。やばい。



というわけで、いちいちここで報告します。これから3週間は、とにかく運動する習慣をつけることに集中します。着替えてちょっとでも走ったら、運動したことにします。



今日は、仕事が終わってからプールへ。子供プールでちゃぷちゃぷ背浮きをしたあと、大人プールで200mほど。4往復かよ。



2008-03-28

小林光恵 / 限りなくキョウダイに近いフウフ

「限りなく透明に近いブルー」とタイトルが似ていたので手にとった、小林光恵の「限りなくキョウダイに近い夫婦」です。内容はちっとも似ていません。

わたしたち[子供を]作らない主義なんです、と答えてしまえば、質問の主はそれ以上しつこく聞いてこない。[...] 主義という言葉には案外力があるものだ。(p.13)

主義、ね。今度使ってみよう。「昼食はカロリーメイトで済ませる主義なんです」とか。

家事分担はこまかなことでも担当を決めてしまったほうが気分よく暮らせる。(p.24)

これを知っていれば、もしかしたら、これまでに失敗してきた共同生活がうまくいったかも知れません。性別とか期間を問わず、たとえば合宿みたいなこととか。



ウェブで見つけた書評を見ていると、夫婦のあり方みたいなところに言及していることが多いです。でも、この作品はそういうことが主題ではないのでは、疑惑。



以下、全力でネタばれ。


そもそも、主人公たちはは夫婦を続けられないくらい、お互いを傷つけていると思います。夫が未熟さゆえに妻を傷つけ、妻の反撃はいきなり精神的にトドメを刺してしまっています。仲がいいけどセックスレスだからという理由で、兄妹という在り方を選択してるわけではない。そして、そればっかりを気にしていて、自分が相手を愛しているかどうかに目を向けていません。そこに気づくのか? 実際どうなのか? を読者は追っていくのだと思います。



あ、もしかして、みなさん同じことを思っているけれど、ネタばれみたいな無粋なことをしないだけなんですかね。




限りなくキョウダイに近いフウフ (幻冬舎文庫 こ 5-12)



2008-03-18

マザーハウスのウェブサイトがダウンしてる

会議中に途上国におけるビジネスの話になって「マザーハウスっていうカバンの会社がありますよ」とウェブサイトを開こうとしたら、ダウン中。なんでかなぁと思ったら、昨日テレビに出てたんですね。テレビ持ってればよかった、と年に数回思う瞬間でした。



2008-03-04

クリーニングした服を取りに行かない病

ワイシャツやスーツのクリーニングは、自宅から徒歩3分くらいのコンビニエンスストアでお願いしています。正確にはコンビニエンスストアが窓口で、実際にはどっかの業者がやってくれて、3日くらいで仕上がります。スピードよりも24時間営業が魅力です。



ところが、仕上がった服を取りに行くのが億劫なのです。さすが天下の先延ばし屋です。で、ついつい取りに行きそびれてしまうのですね。スケジュール帳に書き込んだり、アラーム鳴らしたり、いろいろやっているのですが、怠惰っぷりがすさまじい。



先日は Y シャツがないことに夜のうちに気づきつつ、洗濯することさえ億劫になり、結局、朝引き取るために家を出て、帰宅して着替えるという、どうしようもない愚行に及んでしまいました。



で、考えたのが、そのコンビニエンスストアの前を通るように、通勤コースを変更する、というもの。さてさて、どうなるやら。



2008-03-02

カクテル「オリエンタル」

マンハッタン、フレンチ・コネクションと飲んだ後、バーテンダーの人に相談したら、じゃあってことでオリエンタルというカクテルを作ってもらいました。バーボン、オレンジキュラソー、ライムジュース、あと他にも入ってた気がします。一杯目に飲んだほうがよかったかも。あるいはライムジュース控えめとか。



ところでバーの近所で、ドラマの撮影をやってました。テレビを持っていないので女優さんの名前は分からないのですが、反則的に美しい方でびっくりしました。伊東美咲っぽいのですが、定かではありません。



2008-02-27

三木谷浩史 / 成功のコンセプト

三木谷浩史がテレビに出ているのを見たときに、紹介されていて衝動買いした「成功のコンセプト」を読みました。

たとえば、かわらで拾った石ころを、机の上に置いてペーパーウエイトとして使っているとしよう。2年、3年も使っていれば、きっと愛着が湧いている。それが一日中、川原を歩き回って探した石ころなら愛着はさらに大きいはずだ。
石ころだってそうなのだ。自分の仕事の方法論への愛着は、おそらく自分で思っているよりもずっと大きいと考えるのが自然だ。 (p.45)

この思考実験は、愛着の大きさを見積もるのに有用だと思います。正確な大きさは分かりませんが、かなりな大きさだということが分かるのでは。私はモノに対する愛着が小さいのですが、考え方なんかには執着するほうだと思います。「あ、それいいね」とあっさり自分の立場を捨てられる人はステキです。捨てればいいってものではありませんが。



変化に対する抵抗は、変化によるリスクを回避できますが、変化しないことによるリスクを背負うことになります。ちゃんと両方のリスクを見られるようになりたいものです。




成功のコンセプト



2008-02-25

John Resig / Pro JavaScript Techniques

「Pro JavaScript TEchniques」は、jQuery の作者 John Resig による JavaScript テクニックの本です。



  • 実行時に型を知るには typeof 演算子を使う。


  • User.prototype = new Person(); と書くことで、User クラスは、Person クラスを継承する。


  • <a ... rel="foo" ..> と書くことで、特定の動作を適用する要素を探索できるようになる。


  • アニメーション系のコードでは、コマごとの動作を、setTimeout に入れておく
      for (var i=0; i<=100; i +=5 ) {
        (function() {
           var pos = i;
           setTimeout(function() { // pos を使って何かする }, (pos+1)*10);
         })();

スコープに関しても理解が深まりました。

In JavaScript, scope is kept within functions, but not within blocks (such as while, if and for statements). (p.25)



Using a self-executing, anonymous function you can essentially hide all normally global variables from being seen by other code [...] (p.29)



However, it [a closure] does not provide the value of the variable at the time it i screated; it provides the last value of the variable within the parent function. (p.29)



「スコープの範囲は関数ごと」「関数がファーストクラスオブジェクト」であることから、クロージャの使い方と注意点が分かります。グローバルになってしまいがちなオブジェクトを関数に隠蔽してしまうのが、クロージャの役割である、と。それから、変数のスコープは関数ごとなので、親関数の実行が終了するときに、クロージャ内の変数に値がバインドされるらしい。



In the specification it is stated that no GET request should have damaging side effects (such as deleting a message), which is why the Google Accelerator did what it did. (p.131)



だから、オンラインアプリに保存したはずのデータがどんどん消されちゃうわけですね。




Pro Javascript Techniques (Pro)



2008-02-23

デイヴィッド・ストラウス / チームが絶対うまくいく法

デイヴィッド・ストラウスによる「チームが絶対うまくいく法」、原題は「How to make collaboration work」です。複数人、複数グループによって何かするときに、うまく進める方法論を説いたもので、基本的にコンセンサスを得る方法を紹介しています。

そもそも問題がきちんと定義されないまま多数決で賛否を語ろうとするからうまくいかないのだ。(p.22)



コンセンサスづくりの作業の大半は、問題領域で行われる。[...] もしも解決領域に早く移りすぎると、各人が自分たちの立場を強く主張しようとするため、チームが分裂してしまう。(p.81)

問題の発見や定義をして、関係者の同意を得てから、解決にあたりましょう、と。問題発見の重要性を過小評価することがありますね、私は。問題が自明であるという前提で議論や思考を進めると、解決する必要のない問題を解決することになります。と、ワインバーグがあれほど言っているのに。

模索的なアプローチは、臨機応変で手軽だが、成功を保証してはくれない。ひるがえって、体系的なアプローチは機械的で融通がきかず時間はかかるが、必ず成功する。 (p.34)

ここで言う体系的なアプローチというのは、解探索を総当りに近い方法で行うアプローチを指します。木の探索なら、depth-first か branch-first かみたいなこともありますが、とにかく愚直な方法。なので「有限時間内に最適解が見つかる」ことは保証されません。模索的なアプローチというのは、ヒューリスティックのことです。どっちかではなくて、両方をうまく使うほうがよいですね。どのアプローチを使うか、というメタ問題の解決に時間がかかったりしますが。

議事次第を計画することは、会議を成功に導くためのもっともパワフルなツールと言ってよい。(p.111)



だいたいの目安だが、一時間のかいぎには一時間くらい時間をかけて準備をすればよいだろう。(p.117)

段取り重要。会議時間と同じくらいの準備をするのが、どのくらい現実的なのかよく分かりません。直感的に、そのくらいの時間をかけると、円滑に議論が進む気はします。




チームが絶対うまくいく法



2008-02-22

母から携帯電話にメールが届く

母から携帯電話にメールが届きました。曰く「電話番号を変えました」。すかさず返信しました。「電話番号を教えてください」



2008-02-20

日経ビジネスアソシエ 2008.03.04

日経ビジネスアソシエ 2008.03.04 号の特集は「ハートを強くする めざせ!メンタルタフネス」です。落ち込み気味の今日この頃なのでちょうどよいです。

[プレッシャーに克つための]準備をする際には、絞り込んだ小さな目標をいくつか設定し、一つひとつ達成していくことが効果的だ。(p.26)

成功体験の蓄積は大切ですね。まあ、失敗してしまったわけですが(と更に落ち込む)。

「失敗を否定せずに、あえて頭の中で何度も映像化する。何度も追体験してなれることにより、客観的な経験にしてしまう」(岡本さん)。つまり、失敗したことがきにならなくなるまで追体験すれば、その経験は他人事のようになってくるのだ。(p.26)

客観的に見れるようになるのは大事ですね。自分が当事者なときには、余りに当事者すぎて客観的に課題を解決するのに時間がかかるものです。ところで村上龍の「2 Days 4 Girls」にも、追体験によって過去を受け入れるみたいなことが書かれていました。効果があるのか気になります。

プレッシャーに負けてしまう人は、「自分の力で変えられること」と「変えられないこと」を明確に分けることができない人ではないかと思います。 (p.28)

あー、これも重要。特に起こったことは起こったこと、という積極的な割り切りは必要だと思います。サンクコストですからね。



あと、サプリメントの紹介なんかもありました。お手軽♪



2008-02-11

ROBO-ONE onPC/Sat 2nd

ROBO-ONE onPC/Sat 2nd を見に行ってきました。宇宙空間用格闘ロボットの設計、シミュレーション、制御の大会です。今回は、放り投げられて着地するロボットの、設計、シミュレーション、実装を競うというもの。光子力研九所のマジンガアBパーツが見事優勝。3投したうち、最後の投げで着地しました。すごいなぁ。ロボット作りたくなります。



Inventor、Simulink、LabVIEW を使うという課題があって、これは結構しきいが高かったようです。慣れてないと使えないでしょうねぇ。私も Inventor や Simulink 使えませんし。



2008-02-08

VI Package Manager 1.1

Jim Kring 氏が作っている、LabVIEW 用オープンソースライブラリのパッケージマネージャ VI Package Manager の 1.1 がリリースされました。パッケージマネージャは、もちろんよくできています。ネットワーク経由でライブラリの最新版を拾ってきてインストールします。以前にどこかで「本物のアプリを作りたかったから作った」と書いていた気がしますが、見当たりません。いずれにしても、ふつーのアプリっぽい動作をする、数少ないアプリです。



このパッケージで入手できる、Dictionary というライブラリが秀逸です。これは Python でいうところの辞書で、key と value に variant を使って連想配列を実現しています。あまりまともな応用例を思いつかないのですが、すごいなぁと思いましたとさ。



2008-02-05

内藤誼人 / 一瞬でデキる奴になる!48の心理テクニック

日経ビジネスアソシエの連載を単行本化したもので、姑息なテクニックが解説されています。「姑息な」は「すぐに役立つ」とほぼ同義の誉め言葉です。



「ええと、あれ、あの資料は、確かここに……」などとカバンをまさぐっている人は、たとえどれほど優秀な大学を卒業していようが、優れたキャリアを有していようが、なんとなく「ダメな奴」というイメージを与えるものである。(p.48)



ダメかどうかはともかく、どんくさそうには見えると思います。ほんとちょっとしたことなんですけどね。なんかこう、大丈夫かなぁ、みたいな印象を与えてしまします。という自戒。



では、どうすれば自己奉仕バイアスを減らせるのかというと、それは意識的に「最悪の状況」を頭に思い浮かべるようにして、それを口にすればいいのである。 (p.67)



自分の能力を過大評価して、2週間かかる仕事を「1週間もあればできますよ」と見積もってしまうことを、自己奉仕バイアスというそうです。私の生活も、そんなのだらけです。頑張るのはいいんでしょうけど、もう少し物事を正確に予測する能力を磨く必要があると思います。




一瞬でデキる奴になる!48の心理テクニック



 



2008-02-01

吉越浩一郎 / 「残業ゼロ」の仕事力

気になる本リストに入れていたのですが、たまたま本屋で見かけたので衝動買いです。経営者側から見た、残業しないことの有効性に興味がありましたので。

そこで、仕事には必ずデッドラインをつけ、さらにそれを会議の席上で発表して、守らざるをえない状況を社内に作り、そのうえで残業を禁止とするのです。(p.26)

うわあ、このプレッシャーに勝てるのでしょうか。モチベーションとプレッシャーは異なるので、デッドラインだけがあるのは危うい気がします。そこらへんの判断が難しいです。

私の答えは「優先順位を考えたり、スケジュール表を作ったりするひまがあるなら、その間に仕事の一つも片付けたほうがいい」というものです。(p.55)

なんと GTD 的な。片付けるか、しないか、という選択ですね。「明日やる」的な先延ばししない。

要するに、にぎやかで活気あふれるオフィスというのは、誰も仕事に集中していない状態なのです。 (p.147)

ピーター・ドラッカーが「ちゃんとした工場は退屈」と書いていた話と通じると思います。会議以外で人と話さないような習慣を身に着けることは可能だろうか、と考えてみました。ある程度まとまった量の仕事が明確に分担されて、必要な情報が共有できていれば、難しくないのかも知れません。突発的な出来事が頻繁に起こるようであれば、頻発する出来事を根本から治さないといけない、と。だんだん話が大きくなってきました。吉越も10年以上かけて実現したわけですし。



あと「フランス人の妻」という制約条件も効いている気がします。




「残業ゼロ」の仕事力



2008-01-31

MacBook Air の電源をどうするか

MabBook Pro を使用している上司から電話がかかってきて「AC アダプタをオフィスに忘れた。プレゼン会場まで持ってきて!」と言われ、持っていきました。なんというか、私がオフィスにいるバリューというのがいかに低いのかを言い渡されたも同然です。



MacBook Pro のバッテリーは公称3時間、実際には2時間くらいしか持たないそうです。MacBook Air は公称5時間ですから、3.5時間くらいってことでしょうか。名古屋へ日帰り出張だったら AC アダプタが要らないという Panasonic R5 ユーザとしては、乗換えを躊躇してしまいます。



ところが AC アダプタを持ち歩けば、ある程度は解消される疑惑。電源にありつけないような出張って今までになかったような気がします。ACアダプタも割りと小さいようですし、そんなに重くもなさそうです。



カバンの中に常備しているものから、何かを減らせばいけるかも知れません。と、カバンを覗いてみると R5 のACアダプタが出てきました。



2008-01-30

港区スポーツセンターで泳ぐ - 火曜 18:00

だいたい1コースに4人くらい。



500m ほど泳ぎました。トライアスロンジャパン誌にときどき載っている、トータル・イマージョンの記事に書かれている「腕をだらんと伸ばして、バタ足」というのをやりました。コースが混んでくるとやりにくいのですが、後ろに人がいないときにやってみました。左腕を前にするときにはなんとなく進むのですが、右腕が前のとき(つまり左側で息継ぎするとき)には何やら一気にバランスが悪くなります。



どんなスポーツでもそうですが、自分がどんな姿勢になっているのかが分からないと、なかなか上達しませんね。機会を見てレッスンを受けてみようかと思っています。思っているだけ。



2008-01-29

噛まないのは危険 仮説

よく、しゃっくりが出ます。会食中によく出る。「ここで何か言わないと」という感じで、よく噛まずに飲み込んでしゃべったりするからでしょう。そう言えば、祖父はそうめんだか、そばだかを喉につまらせて、救急車に運ばれたことがありました。噛まないのは危険仮説です。というわけで、これからはよく噛んで食べよう、と、このエントリーを締めくくる予定だったのですが、お茶をひとくち飲んだ瞬間、しゃっくりが出始めました。噛まないのは危険仮説、既にいきづまりです。



2008-01-25

Presentation Zen in TOKYO

Garr Reynolds 氏の Presentation Zen in TOKYO に行ってきました。正直なところ普段ブログで書かれている内容とかなり重複します。今回、技術的詳細を伝える必要があるプレゼンテーションでどんなことが必要か、という課題を持って話を聞きました。発見、むしろ再発見が 3 つありました。



Rapport: なめていました。最初に自己紹介があって、ブログや自己紹介ページに書かれていることと同じです。ですが、最初の自己紹介で聴衆との関係を築いていたと思います。



Enthusiasm: なめていました。これまで私は、特に技術的な内容を話すときには、敢えて感情を出さないようにしていました。話を聞いてもらうためには注意を引く必要があって、熱意というのはウソをつかずに、あるいは姑息にならずに注意を引く方法だと思います。スティーブ・バルマーの「でぃべろっぱー」とか、 Hans Rosling の統計に関するプレゼンとか。



Story: スーツ相手にはストーリーを語っていましたが、ギーク相手には知識のツリー構造を話すにとどめていました。しかしながら、話に具体性があるほうが理解を助けるようです。Hans Roling のプレゼンしかり。Bjane Stroustup の「マルチパラダイム・プログラミング」のときも具体的な話をしながら、一般論に展開していた記憶があります。



最後に、これから検討したいことに「Sticky Message」というのがあります。マルコム・グラッドウェルの Tipping Point になんとなく書かれていた気がしますが、ここでは別の本が紹介されています。シンプル、意外、具体的、信頼、感情、ストーリーの6つが揃ったメッセージはくっつきやすい、と。ぽちっ、とな。




Made to Stick: Why Some Ideas Survive and Others Die



2008-01-23

MacBook Air が気になってしかたない

たつを氏のブログで MacBook Air を触ったムービーが紹介されています。想像していたよりも頑丈そうです。

スティーブ・ジョブスの基調講演では、強調したい点だけに上手に注意をそらされてしまい、「うおー、ほしい、それ!!」みたいなテンションに持っていかれてしまいました。しかし、実際のところ考慮すべき点もあるわけです。私が気になるのは、ストレージの容量、バッテリーの容量、頑丈さで妥協が必要な気がすることです。

Mac を買ったら、まちがいなく VM Ware Fusion などの仮想化ソフトウェアを使って、Windows と併用する必要があります。Windows 版のソフトウェアのマーケティングが仕事ですし、T-Engine や Nokia の携帯電話などの開発環境も Windows 版が多いです。Windows 版の開発環境・ツールを複数使用するので、どうしてもストレージの容量が気になります。今つかっているPCでは160GBのハードディスクが入っています。ここまで書いて気づいたのですが、Mac って USB やネットワーク接続のストレージにアプリケーションをインストールできるんでしたっけ? だったら外付けでもいいかも。

もうひとつはバッテリー。公称5時間ってことは、名古屋出張くらいだと途中でバッテリーが足りなくなるってことです。のぞみ 700N の窓側に座らないと。新幹線にのるとみーんなLet's Note ですもんねぇ。解決策は「出張を断る」ってことでしょう。

そして頑丈さ。クッション材に入れてしまうと、けっきょく厚くなってしまうんですよね。マニラ封筒みたいなクッション材に入れておきましょうか。デザインを犠牲にしてでも、頑丈さを選んだ Let's Note はやっぱりすごいなぁと思います。セグメンテーションとターゲティングが絶妙。

とまあ、さんざん使わない理由を挙げたわけですが、結局のところ欲しいんですよね。ツンデレです。






Apple MacBook Air 13.3/1.6GHz Core 2 Duo/2G/80G/micro-DVI/BT MB003J/A



ハンドメイドフェルトケース MacBook Air用 オレンジ









2008-01-21

自転車に乗ったら爪先がかじかみまくり

先日購入したアンタレス 208N を駆って、皇居のまわりを走る。という予定だったのですが、そもそも体力がない上に、まともな装備を持っていないので、ポタリングでさえない状態でした。皇居の周りの堀は、なんか氷がはってるような雰囲気でしたし。以下、気づいたこと。



  • トライアスロン用のバイクシューズは恐ろしく通気性がよい。ゆえに、かじかむ。


  • バイク用の手袋は効果的。


  • 予備のチューブや携帯ポンプがないというのは、おそろしく不安。


  • バイクパンツを履いていないと、臀部に痛みを感じる。


  • フロントのアウターギアなんか使わない。


  • 冬は寒い。


2008-01-20

ボイス・チェンジャを通じて計測制御システム設計を体験する

CQ出版の Design Wave Magazin 2008 年 2 月号で「ボイス・チェンジャを通じて計測制御システム設計を体験する」という記事を書きました。よろしければ、読んでくださいな。




Design Wave MAGAZINE (デザイン ウェーブ マガジン) 2008年 02月号 [雑誌]



刀剣博物館に行きました

新宿界隈にある刀剣博物館に行きました。国宝らしきものもあり。基本的に、刀剣を鑑賞したり収集したりする人向けの博物館のようです。美術館ですね。日本美術刀剣協会の付属ですし。



作り方だとか、侍が刀を所持することの社会的ステータスなんかについての説明があるのかなぁと期待していたので、ちと残念。博物館がだめというのではなくて、私の期待とは違ったという意味で残念でした。それにしても刀というのがあんなに美しいと知ったことは大きな収穫です。



2008-01-18

何を考えて、こんなに寒いねん

昨日の朝、ジョギングするつもりでした、眠かったので布団に滞在。代わりに今朝走ろうと思っていたけれど、寒さにまけて冬眠。明日こそ走る、あるいは歩くだけでも、せめて着替えて外にでるだけでもいいから実行したいものです。



2008-01-16

かたじけない

子供のころ忍者になりたいと思っていました。ひまわりの種を植えて、毎日その上をジャンプしていけば、そのうちめっちゃジャンプできるようになるとか信じていたら、雨が降った次の日にジャンプできなくなったり。



年齢を重ねていくうちに、そんな職業は存在しないことを知り、あきらめて工学部方面に進むことになったわけです。



と思っていたら、忍者がいました。NINJA AKASAKA というレストラン。なんかウエイトレスが忍者装束なのです。あー、こういうコスプレいいかも、と思ってしまいました。ビールお代わりしたときに空いたグラスを手渡すと「かたじけない」とか言いますし。しばらく流行りそうです。



そうそう、忍者募集しています。転職しようかな。



20080115233



手裏剣グッシリーニ



2008-01-15

ロードレーサー 「アンタレス208N 105仕様」を買いました

4年くらい前から、買う買うと言って買っていなかった自転車を買いました。Y's Road お茶の水店にて。ショップブランドの「アンタレス208N」というカーボンフレームのロードレーサーです。ショートのトライアスロン参加を狙っていますが、当面は運動の習慣をつけることが目標です。寒いし。



現金で支払うと 5% のクーポンというかポイントがつくと聞いたので、じゃ現金で、と支払い。預金残高が1万円切ってしまいました。なんと、刹那的な。



かれこれ5年ほど「自転車」なるものに乗っていなかったので、どきどきしながら乗りました。カーボン軽い! 速い! 踏んだ分だけ前に進む感じです。



20080114




2008-01-14

コーヒーメーカーを使わなくなってきました

最近、コーヒーよりも紅茶を飲むことが多くなりました。やかんやポットを持っていなかったので、ずーっとコーヒーメーカーを使って湯を沸かしていたのです。なんとなく器具が間違っている気がしてきたので、やかんを購入しました。うっかり適当なのを買ってしまって気づいたのですが、このやかんは湯が沸いてもぴーぴー鳴ってくれません。うーむ、しくじりました。



まあいいや。これで、カップラーメンを食べるときに、コーヒーメーカーを起動しなくてよくなります。



2008-01-13

エキナカカフェの時計

エキナカのカフェで時間をつぶしていたことがあります。乗りたい電車の発車時刻の少し前に、携帯電話のアラームをセットしたのですが、消音モードにしていたのでなんとまあ聞こえません。夢中で本を読んでいて、ふと時計を見ると、乗りたい電車の発車時刻でした。なんと、とあわてて、飲みかけのコーヒーを捨てて店を出て、ホームに急ぎ、ふと時計を見ると、あと1分ありました。おそらく、カフェの時計が2分ほど進んでいたのでしょう。もし、わざとそうしているとしたら、すごいことです。



2008-01-11

memo.cgi



メモがどこからでも閲覧できたら便利だなぁと思って、CGI を書きました。
でも、よく考えたら、私は1台しかパソコンを持っていませんし、このCGIはJavaScript を含むHTMLを吐き出すので携帯電話では使えません。じゃあ、パソコンにインストールしとけばいいという、どうしようもない結論に至りました。



みんPy Web アプリ編を読んで、認証をつけるとちょっとマシかもしれません。「今夜どお?」みたいな伝言に使えるかも知れません。




みんなのPython Webアプリ編 [みんなのシリーズ]



優秀さに対する嫉妬

勤務先の新人が、実はすごいことが発覚。壁にボールが跳ね返る動画(ブロック崩しの、自機と穴がないやつ)を AVR の評価ボードで実装。NTSC で出力する。ちょっとすごくないかそれ。いや、組み込み屋さんとしては当たり前なんでしょうけれど、そういうものを作っている人と初めて会いました。



あと、別の人に JavaScript のことを教えて、といわれたので偉そうに気分良く教えていました。で、その人がちょっとしたブラウザアプリを作って見せてくれました。すごいなぁ。



危うく足を引っ張るくとで、相対的に自分のほうがすごいアピールしてしまいそうになります。狭量すぎ。一方、成功する人は、ジェラシーを感じずに素直に教えてもらうんですよね。



2008-01-09

港区スポーツセンターで泳ぐ - 火曜 18:00

年始に2回走ったきり、走っていません。朝、走るつもりなのですが、寒さに負けてしまいます。そんなわけで、走ることはあきらめました。しばらくは。



代わりに、港区スポーツセンターに行きました。18時くらいで1コース辺り4人くらい。500m 泳いで、さっさと切り上げました。自重、自重。



2008-01-08

BUG - モジュール式ガジェットプラットフォーム

BUG という、モジュール式ガジェットプラットフォームというのを見つけました。Linux のベースコントローラに、LCD や GPS などの I/O モジュールを組み合わせて使うというもの。μT-Engine を使ってて一番苦労しているのが、I/O まわりです。BUG のようなものがあれば、やっかいな I/O に時間を取らずに、上位層のアプリケーション開発に集中できそうです。じゃあ、PDA や携帯電話で開発すればいいわけですが。



2008-01-07

勝間和代 / お金は銀行に預けるな

勝間さんってお金のことも分かるんだ、と思ったら、この方19歳のときに公認会計士の資格をとっているんでした。

[女性が働きながら子供を産むのが難しい、男性の育児・家事の参加が少ない] この二つの要因を引き起こしているものが、長時間労働です。そして、金融資産収入が多ければ、今ほど長時間労働をする必要はありません。(p.23)

こんな風に考えたことなかったです。「長時間労働はんたーい!」とこぶしを振り上げるよりも、こういう金の力で解決するほうが、合理的な感じがします。

[...] 例えば、個人が株式投資をしようと考えて『会社四季報』を1冊買ったとしても、1800円程度かかります。[...] 投資信託を10万円で開、そのときの信託報酬が年2%だったとしても2000円ですから、小額投資の場合には投資信託を買った方が割安だと考えることもできます。 (p.116)

心の会計ですね。四季報の1500円や投資の解説書の500円を、投資信託の手数料と分けて考えてしまう心理です。この本は 700円するわけですが。結局のところ、私はまず預金額を greater than zero にしないと話にならないようです。




お金は銀行に預けるな   金融リテラシーの基本と実践 (光文社新書)



2008-01-06

3年後の、村上さんのカレシ↑

カットとカラー、つまり散髪と染毛のために、美容院に行ってきました。で、美容師の村上さん(仮名※)といろいろ話すのですが、あまりに私の話がつまらなくて、村上さんも私も困ってしまいました。黙って雑誌でも読んでたらいいんですけど。



それで村上さんが、以前に占いをしてもらったことを非常に後悔しているという話を始めました。占いというか、スピリチュアルな感じらしいのですが、まあ、どっちにしても私にとっては、マイナスイオンと同じくらいの扱いです。



とにかく。その占い師が「29才で出合った人と、30才で結婚する」と言ったそうです。村上さんは、現在 27 才です。恋人ができるたびに「あー、今盛り上がってるけど、この人とは結ばれないのであるな」としらけてしまうのだとか。どこから突っ込みましょうかね、この話。



「29才のときに、出会い直せばいいんじゃないですか」「えー!一回別れるってことですか?」「いやいや、そうじゃなくって。3年前の村上さんと、今の村上さんは、かなり違う人ですよね?」「そうですねぇ」「じゃあ、今のカレシ↑と、3年後のカレシ↑も違う人ですよね」「そうですねぇ。あ、そっか。すばらしい」



つまらない話しかできない客に成り下がらずに済んだようです。



※ 手元に村上春樹の小説があったので。



2008-01-05

ジョギングが続いている

ジョギングが続いています。まだ2日目ですけど。心拍計をつけてマフェトン理論に則り、180-(年齢)拍/分で走るように心がけています。普段、運動していないので、毎分 147 拍を維持しようとすると、早歩きくらいになってしまいます。つまんないんですよね。



どっかの lifehack 系のブログで読んだのですが、走るのと歩くのを交互にすればよい、というのがありました。心拍は安定しませんが、まあ、それならいいか、というわけで、歩いたり走ったり歩いたり歩いたりしています。



2008-01-04

走り初め 2008

ここ5年くらい同じことを言っていますが、今年こそトライアスロンを再開します。学生時代に何度か参加したショートの大会である、トライアスロン中島大会を完走するのが目標です。この時期、仕事が忙しくなることが分かっていますが、生活の中に運動を取り入れることが目的なので、多忙だからといって参加できないようでは困ります。



というわけで、まずは走り初め。ママ上と共に、武庫川の河川敷を走って+歩いてきました。続けることが大事。明日も行く予定です。



で、ここに Google Maps を埋め込もうとしたのですが、携帯電話で使えそうなツールが見つかったので、そちらをふらふら閲覧+インストール。Softbank 804NK で使えます。これで道に迷っても大丈夫。GPS ないけど。



2008-01-03

T-Engine のおもちゃ

頑張った自分へのごほうび(笑)に、T-Engine の開発プラットフォーム「Teaboard2/ARM920-MX1」を買いました。とりあえず、世界にこんにちはしようと思ったのですが、ボード上のメモリにはユーザプログラムを書き込みできないことが発覚。SD カードに書き込み出そうです。えー、持ってないよ、そんなもん。明日あたり買いに行こうっと。



MONOIST の連載記事「T-Engineプログラミング入門



追記:SDカードってコンビニに売ってるんですね。わーい、Hello, World が動いたよ。