タグ

ブックマーク / xtech.nikkei.com (57)

  • 第14回 関数脳のつくり方 Second Season ~モナドで悟りをひらく~

    大手SIベンダにてSEやPMやアーキテクトとして勤務したのち,株式会社豆蔵を経て,現在は合同会社シンプルアーキテクト代表社員であり,株式会社匠Business Placeのチーフコンサルタント。主に超上流のプロセスである要求開発やオブジェクト指向,アジャイル開発のコンサルタントとして活躍中。開発の現場にこだわり,開発の現場を少しでもよくしたいと日夜奮闘している。要求開発アライアンス執行委員。著書に『オブジェクト脳のつくり方』や『eXtreme Programming実践レポート』(ともに翔泳社発行。後者は共著)などがある。 Javaなど,オブジェクト指向や手続き型のプログラミングの経験はあるけれど,関数型のプログラミングは初めてという皆様のための,そして筆者自身のための「関数脳のつくり方」シリーズのSecond Season(First Seasonはこちら)。今回は「モナド」を取り上げま

    第14回 関数脳のつくり方 Second Season ~モナドで悟りをひらく~
    sshi
    sshi 2009/10/28
  • 第6回 Scala言語を探検する(4)Scalaの型システム

    筑波大学第三学群情報学類を卒業したのち,現在は,筑波大学大学院システム情報工学研究科コンピュータサイエンス専攻博士後期課程1年。プログラミング言語や処理系に強い興味を持っている。現在の研究テーマは,プログラミング言語の構文解析アルゴリズム。Scala勉強会を不定期で行うなど,研究の合間にScalaの普及活動を行っている。 前回まで羽生田さんによるScalaの文法的な特徴の紹介がありましたが,今回はゲストということで,Scalaの型システムの概要やそれに関連した機能を紹介します。特にScalaのクラス階層とJavaのクラス階層の違い,Genericsの共変と反変,Existential Type,Structural Type,Compound Typeについて紹介します。 Javaとの類似点 Scalaの型システムの基的な部分はJavaと非常に類似しています。ScalaJavaと同様に

    第6回 Scala言語を探検する(4)Scalaの型システム
    sshi
    sshi 2009/01/14
  • 【PDC】関数型言語「F#」を標準装備,並列処理の記述を容易に

    Microsoft Corp.は2008年10月27~30日に開催した開発者会議「Professional Developers Conference 2008(PDC 2008)」で,関数型プログラミング言語「F#」を標準の開発言語の一つとして提供することを明らかにした。2009年に発売予定の「Visual Studio 2010」で対応する。 F#の特徴は,宣言的な表現でプログラムを記述できること。また関数型プログラミング言語の特性から,並列処理の記述が手続き型に比べ容易である。宣言的な表現とは,その手順ではなく「何をしてほしいか」を記述するもの。例えば今までの手続き的な言語では,コーヒーを頼むのに「お湯を沸かして,ドリッパーを用意して,コーヒーの粉を入れて…」と記述していた。これに対し宣言型の言語では,「コーヒーをお願い」といえばよい。処理手順に煩わされることなく,何をしたいかを記

    【PDC】関数型言語「F#」を標準装備,並列処理の記述を容易に
    sshi
    sshi 2008/11/04
  • 続・「マスゴミ」と呼ばれ続けて(友人座談会編)

    2008年9月1日に掲載したコラム「『マスゴミ』と呼ばれ続けて」では数多くの反響をいただきましたが,中には多数の批判が含まれていました。また,コラムに登場する友人たちからも「自分たちの意図がきちんと伝わっていない」との指摘がありました。そこで,同コラムに登場したIT関連技術者の友人A,おなじく営業の友人B,さらにはインターネットの活用は必要最小限にとどまる公務員友人C,ネットを十二分に活用するものの筆者を「マスゴミ」とは呼ばない不動産経営者の友人Dを招き,座談会を開催しました。 マスコミは潔く謝罪していますか? マスコミが「マスゴミ」と批判されることが多いです。どうしてだと考えますか。 友人B:近頃のマスコミからはジャーナリズムの精神を感じ取れないことが多いからだと思います。例えば,大企業と中小企業の不祥事があった場合,中小企業ばかりが叩かれ,大企業の批判には遠慮がちな印象を受けます。

    続・「マスゴミ」と呼ばれ続けて(友人座談会編)
    sshi
    sshi 2008/09/25
    これは、、なにしたいんだろう?掲載されている意味がさっぱりわからない。「身内の例を一般化」したいの??
  • 「マスゴミ」と呼ばれ続けて:ITpro

    ここ数年,筆者は友人たちの間で「マスゴミ」と呼ばれ続けている。 具体的にはこうだ。 筆者「最近,△×が流行ってるよね」 友人A「どうせお前らマスゴミの情報操作だろ」 筆者「…」 友人B「何か凶悪事件が起きるとすぐにネットやゲームのせいにする。これだからお前らマスゴミは」 筆者「…」 筆者と友人は敵対関係にはない。筆者が特別横柄な態度を取っているわけでもない。彼らはITの最前線で活躍しているということもあり,仕事絡みの情報収集も含めて,よく話すし,よく飲む。普段は普通の友人たちだ。ただ,彼らが抱くマスコミに対する不満につながりそうな話に差しかかると,いつもこうなる。 昨今,毎日新聞の英語版サイト「毎日デイリーニューズ」が低俗記事を掲載し続けていた問題が批判されている。こうしたマスコミの不祥事の際は仕方がない。同じマスコミの人間として,襟元を正すべきいい機会だ。心して耳を傾ける。 しかし,責任

    「マスゴミ」と呼ばれ続けて:ITpro
    sshi
    sshi 2008/09/01
    印象だけじゃなくてこの話をうらづける「事実」はあるのかなー?記者っていう看板をせおって書いた記事にしては全体的にお手軽すぎるような
  • 【日本Ruby会議2008】「Rubyを国際標準規格へ」---まつもと氏が明らかに

    Rubyアソシエーションで国際標準化に向けた活動を計画している」---まつもとゆきひろ氏は2008年6月21日に開催された日Ruby会議2008で,Rubyを標準化する意向を明らかにした。 国際標準化の目的は,複数のRuby実装の間での互換性の向上と,政府調達への対応である。JRubyやIronRubyなど,まつもと氏以外の手になるRubyの処理系がここにきて増えてきている。また2007年の「情報システムに係る政府調達の基指針」では,要求要件の記載を特有の製品名ではなく,国際規格などのオープンな標準を優先すると記述している。Rubyを国際標準規格とすることで,電子政府システムなどに採用しやすくする。独立行政法人 情報処理推進機構(IPA)と協力し,ISO(国際標準化機構)への提出を目指している。 ただし,具体的な時期などは未定であり,標準化までには「少なくとも数年かかる」(まつもと氏

    【日本Ruby会議2008】「Rubyを国際標準規格へ」---まつもと氏が明らかに
    sshi
    sshi 2008/06/21
    やっと仕様まとめる気になったということなんかなあ。それとも外圧?
  • 梅田望夫×まつもとゆきひろ対談 第2弾「ネットのエネルギーと個の幸福」(前編):ITpro

    梅田望夫 ミューズ・アソシエイツ社長 パシフィカファンド共同代表,はてな取締役 著書に『ウェブ進化論』(ちくま新書)など Blog「My Life Between Silicon Valley and Japan」 まつもとゆきひろ ネットワーク応用通信研究所 フェロー 楽天 楽天技術研究所フェロー Rubyアソシエーション理事長。Rubyの作者 Blog「Matzにっき」 「ウェブ時代5つの定理 この言葉が未来を切り開く!」,「私塾のすすめ ─ここから創造が生まれる」(齋藤孝氏との共著)などの著者である梅田望夫氏と,Rubyの作者まつもとゆきひろ氏。2007年末に行われた対談のあとにあがった「話し足りない」との声から,2回目の対談が実現した。ネットのエネルギーをポジティブに向ける方法,オープンソースの強靱さ,個人が幸福になるためには――ウェブの未来をひらく2人が語り明かす。 ---前回の

    梅田望夫×まつもとゆきひろ対談 第2弾「ネットのエネルギーと個の幸福」(前編):ITpro
    sshi
    sshi 2008/05/20
  • 梅田望夫×まつもとゆきひろ対談「ウェブ時代をひらく新しい仕事,新しい生き方」(後編):ITpro

    「オープンソースが成し遂げたものづくりやコミュニティのような,小さくても確実な幸福感が得られるような場所が,よりよく生きたいと思っている人たちの数だけ,ネットの上にできたらいいな」(梅田氏)。「僕が追求するのはオープンソースであるかどうかよりも,個々の技術者が幸せかどうかなんです」(まつもと氏)――梅田望夫氏とまつもとゆきひろ氏の対談,後編は新しい時代の新しい幸福とそれを実現する生き方へと話が及ぶ。 <<前編へ<< ネットの上の「小さくとも確実な幸福感が得られる場所」 梅田 まつもとさんにとっての「幸せ」って何ですか。 まつもと ご飯がべられる範囲で,好きなことを日がな一日やっていられれば幸せですね(笑)。 梅田 「ご飯がべられる」の定義もいろいろありますよね。今日飯をえればいいとか,蓄えがないといけないとか。 まつもと 蓄えはあったほうがいいですね。生活に不安がない程度に。 梅田 

    梅田望夫×まつもとゆきひろ対談「ウェブ時代をひらく新しい仕事,新しい生き方」(後編):ITpro
    sshi
    sshi 2008/05/20
  • 第58回:失敗を待つマスメディアの監視下、システム一本化を始める三菱東京UFJ銀行:ITpro

    “馬鹿の一つ覚え”という言葉は、三菱東京UFJ銀行の情報システム統合に関する新聞やテレビの報道にふさわしい。同行が3年前の2005年2月に、旧東京三菱銀行のシステムに一化することを決めて以降、マスメディアは開発を進める同行の足を引っ張る報道を繰り返している。この5月からいよいよシステム一化作業を始める同行にとって、最大のリスクはマスメディアの報道姿勢と言っても過言ではない。 システム一化を巡るマスメディアの論調は、「統合作業に不安が残り失敗して大混乱が起きるかもしれない、その場合経営トップは責任を取るべき」「仮に成功したとしても、総額3300億円というシステム投資は多すぎる」というものだ。そして、統合作業を難しくし投資増を招いた原因として「旧UFJ銀行のシステムを残さなかった」ことを挙げる。UFJ銀のシステムではなく東京三菱銀のそれを選んだ前後に指摘するならまだしも、3年も経ち一

    第58回:失敗を待つマスメディアの監視下、システム一本化を始める三菱東京UFJ銀行:ITpro
    sshi
    sshi 2008/04/25
    「自行を含め大手銀行数行のシステムの優劣を見極められるとは、大変な見識をお持ちの“ある大手銀行幹部”」
  • 6000人が作ったシステムは必ず動く:ITpro

    最盛期の開発要員6000人,開発工数11万人月,投資額2500億円,取引件数1日1億件。三菱東京UFJ銀行が「Day2」と呼ぶ,勘定系システム一プロジェクトの成果物である。6000人のシステムズエンジニア(SE)が作り上げた巨大システムは,2008年5月の連休明けに必ず動くはずだ。 23年間にわたって情報システム開発プロジェクトの取材を続けているが,6000人のSEを集めた事例は過去に一度も見聞きしたことがない。世界を見渡してもおそらく例がないはずだ。これから何年間,記者を続けるのか分からないが,今回の三菱東京UFJ銀行を除けば,6000人を動員するプロジェクトを取材する機会は二度とないだろう。 6000人のSEが同時期に集まったのであって,「6000人月」ではない。開発工数は先に書いた通り,11万人月である。この数字も凄い。一体何を作ったのかと思ってしまう。正確にはこのSEパワーは開

    6000人が作ったシステムは必ず動く:ITpro
    sshi
    sshi 2008/04/25
    気持ちはわからなくはないが、宗教的すぎるんじゃないのか/精一杯好意的にみてこう書くしかないのが現状っていうことなのかな/そうだとすると哀しすぎる/こう書かざるを得ない状況だっていうことを伝えたいだけ?
  • 第18回 QuickCheckを使ってできることとできないこと

    Haskellでは多くの場合,データ駆動型のテスト・ツールであるQuickCheckの方が,xUnitの一つであるHUnitより役立ちます。 ただ,QuickCheckは万能ではありません。場合によってはHUnitの方が有効なこともあります。今回は「QuickCheckでこうしたことはできるのか?」という疑問に一つひとつ答えていきたいと思います。 高階関数をテストできるか? まず「関数を値に取る関数」,いわゆる高階関数をテストする場合を考えましょう。高階関数((a -> c) -> b)をテストするには,引数になる関数(a -> c)がArbitraryクラスとShowクラスのインスタンスである必要があります。 Prelude Test.QuickCheck> :t quickCheck quickCheck :: (Testable a) => a -> IO () Prelude Te

    第18回 QuickCheckを使ってできることとできないこと
    sshi
    sshi 2008/04/10
  • 第17回 QuickCheckでデータ駆動型テストを行う

    テストには常にある種の不安が残ります。このテストは果たしてすべての場合に妥当だと言えるのか? 何か見落としてはいないか? その見落としは致命的なものではないか? Haskellの静的な型検査をすり抜けてくるバグに対処するには,実際にプログラムを動作させ,HUnitなどで動的なテストを行います。では,動的なテストをすり抜けるバグにはどう対処すればいいでしょうか? 一番単純な対策は,テスト項目数を増やすことです。たいていの場合,テスト項目は「その型の取りうる値を想像し,その例に対してきちんと動作するかどうかを確かめる」という形で記述します。単純に考えるなら,テスト項目が増えれば増えるほどテストの正確さは増していくはずです。 しかし,個々の値に対してテストを記述していくのは手間のかかる作業です。テストを行うべき値の集合に対してテストを行うツールが欲しくなりますね。それが「データ駆動型のテスト・ツ

    第17回 QuickCheckでデータ駆動型テストを行う
    sshi
    sshi 2008/03/05
  • HOWS「ISSEI(イッセイ)」

    ●既存のDB技術と一線を画すデータ検索技術を生み出す ●ゼロベースで発想しOSの基機能に着目 ●ストップウオッチ片手に高速化を追求 ソフト開発ベンチャーのHOWSが、これまでにないデータ管理・検索技術「ISSEI」を開発した。HOWSは現在、ISSEIを次世代Web基盤技術として特許を出願している。 「ユーザー企業がデータを有効活用するためには、既存のリレーショナルデータベース(RDB)と一線を画す技術を編み出すほかないと考えた」。HOWSのCTO(最高技術責任者)である庄司渉副社長は、ISSEIを開発した思いを語る。 ユーザー企業の多くは現在、社内システムを整備し、テキストや画像、音声などさまざまな種類のデータを大量に蓄積している。その一方で「データを業務に有効活用できていない」と嘆くCIO(最高情報責任者)が多いのも事実だ。 その理由について庄司副社長は、「現在主流のRDBが限界に近

    HOWS「ISSEI(イッセイ)」
    sshi
    sshi 2008/01/21
    エイプリルフールネタにしか読めないんだけど、だれか真面目に解説してないかな。/もう一回読んでみた。結局Windowsのファイル検索の仕組みをつかって全文検索してるだけなのかなあ
  • Ruby4年ぶりの新版1.9.0正式リリース,VM刷新で大幅高速化

    しまねOSS協議会はRuby 1.9のリリースを目前にまともと氏や笹田氏を迎えて島根オープンソースサロンを松江オープンソースラボで開催した まつもとゆきひろ氏は12月25日深夜,Rubyの4年ぶりの新版となる1.9.0を正式リリースした。1.9では笹田耕一氏が開発したRuby仮想マシンYARVを標準の実行環境として採用し,ベンチマーク性能で2倍から10倍と大幅に高速化した。 1.8までのRubyでは,プログラムを構文木と呼ぶ形式に変換して実行していた。東京大学大学院情報理工学研究科特任助手の笹田氏が開発したYARV(Yet Another Ruby VM)では,バイトコードと呼ぶ中間言語に変換して,VM(仮想マシン)であるYARV上で実行する,Javaと同じアーキテクチャとなる。YARVはIPA(独立行政法人情報処理推進機構)の未踏ソフトウェア創造事業に採択され,開発が行われている(関連記

    Ruby4年ぶりの新版1.9.0正式リリース,VM刷新で大幅高速化
    sshi
    sshi 2007/12/26
  • 第15回 Haskellでのデバッグのコツをつかむ

    プログラムが思った通りに動かないとき,あるいは他の人が書いたプログラムを理解したいときには,プログラムの挙動を調べてみるでしょう。例えば,「入力」に対する「出力」を調べたり,プログラムが保持する「状態」を確認することで,挙動を理解しようとするはずです。そうしたときに使う手法が,プログラム動作中の変数の値といった情報を適宜出力する,いわゆるトレース(trace)です。C言語では情報の表示によくprintfを利用することから,printfデバッグとも呼ばれます。 Haskellでトレースを使うには,二つの問題があります。一つは,Haskellの型は必ずしも値を表示できるものばかりではない点です。これは回避が容易なので,さほど問題ではないでしょう。より深刻なのは「Haskellでは,副作用によるバグの発生を防ぐために,I/Oの扱いに対して制約がある」という点です。この結果,Haskellではトレ

    第15回 Haskellでのデバッグのコツをつかむ
    sshi
    sshi 2007/12/05
  • 第1回 ソフトウエア改造力が足りない:変更ミスがトラブルの温床に

    ソフトウエアの改造力が足りない――。そのために,システムの変更作業でミスが生じ,次々とトラブルが引き起こされている。 2006年5月9日,シティバンク(エヌ・エイ在日支店)で顧客口座の取引処理にかかわるシステム障害が発生。約6万9800件の取引が二重処理された。原因は,追加したプログラムの不具合。シティバンクは,「障害が発生した原因は、新規プログラム導入に際し、口座取引情報処理において間違ったシステム処理が発生したものです。十分事前テストをいたしましたが実際の運用に際し、結果的に、予想しなかった不具合が発生しました。」と発表した。 2006年6月19日には,プログラム変更のミスによって,労働金庫連合会のシステムにトラブルが発生。総額5億円を超える送金に失敗した。この実例から,なぜ改造が引き金となってトラブルが発生するのかを見よう(図1)。 図1●改造のミスはトラブルに直結する 6月19日の

    第1回 ソフトウエア改造力が足りない:変更ミスがトラブルの温床に
    sshi
    sshi 2007/11/12
    おおむねわかるけど、あちこちに微妙な違和感が…
  • 第15回 型からプログラムを当てる

    前回,'a * 'b -> 'b * 'aといったMLの型は,「AかつBならばBかつA」といった命題に対応する,という話をした。命題が成り立つことは,そのような型を持つ式が存在することに対応するのだった(ただし例外などの副作用や無限ループ,組み込み関数やライブラリ関数などは使用しないとする。以下同様)。 前回の繰り返しになるが,'a * 'b -> 'b * 'aは,「任意の型'aと'bについて,'a型の値と'b型の値の組を受け取り,'b型の値と'a型の値の組を返す」という関数の型だ。そのような型を持つ式としては,例えば以下のような関数が存在した。

    第15回 型からプログラムを当てる
    sshi
    sshi 2007/10/10
    この話題は知らなかった(そこまで頭がまわっていなかった)が、ものすごくおもしろいなあ。
  • 英語のプレゼンテーションで使える「決めセリフ」:ミッキーのproITなアメリカンライフ:ITpro

    今回は,英語のプレゼンテーションで使える表現を集めてみました。 日はこのような(発表の)機会を得て光栄です。 ・Thank you for such an opportunity to talk about xxx ・It is my privilege to present you about xxx ・It is my honor to present to such a distinguished audience. 今日は貴重なお時間をありがとうございます。 ・Thank you for your precious time today. ・I appreciate your time to be with us today. ・Thank you for your precious time to discuss on xxx. 始めてよろしいですか? ・May I begin

    英語のプレゼンテーションで使える「決めセリフ」:ミッキーのproITなアメリカンライフ:ITpro
    sshi
    sshi 2007/10/06
  • まつもと直伝 プログラミングのオキテ 第13回 プログラムを高速化する:ITpro

    プログラムの高速化はプログラマにとって永遠の課題です。しかし,そこには知られざる暗黒面が隠れています。そもそも高速化に意味があるのかを調べなければなりません。次に,どの部分をどの程度高速化するのかが重要です。アルゴリズムの効率にも目配りが必要です。 コンピュータの処理速度は驚くべき勢いで向上しています。現在私たちが使っているパソコンは一昔前のスーパーコンピュータをしのぐ性能を備えていますし,半世紀前に登場したばかりの計算機と比較すると数十万倍の性能に相当します。 このように高速なコンピュータを持っているにもかかわらず,人間の欲望は限りがないものです。プログラムの実行速度はプログラマにとっての永遠の課題のようです。プログラムを高速化していると,「そんなに急いでどこに行く」という気になることもあります。 今回は,プログラムの高速化にまつわるさまざまな「秘密」と「限界」,そして「戦略」について解

    まつもと直伝 プログラミングのオキテ 第13回 プログラムを高速化する:ITpro
    sshi
    sshi 2007/09/28
  • 【REMIX07】まつもとゆきひろ氏が感じた「MicrosoftのRubyへの本気度」

    同日,REMIX07で米MicrosoftのMahesh Prakriya氏が行ったデモ。Silverlightの次期版1.1のアルファ版で,ひとつのコンソールからIronPyhtonとIronRubyを同時に使い,同一オブジェクトを操作してみせた(<a href="http://itpro.nikkeibp.co.jp/article/NEWS/20070920/282478/" target="_blank">関連記事</a>) 「私はWindowsを使わない日では珍しいエンジニア」---9月19日にマイクロソフトのWeb開発者向けイベント「REMIX07」の講演でまつもとゆきひろ氏はこう口火を切り,会場の笑いを誘った。そして「私に話させようというところにマイクロソフトのRubyに対する気度がうかがえる」(まつもと氏)。 “Windowsを使わない”というのは,まつもと氏が普段Li

    【REMIX07】まつもとゆきひろ氏が感じた「MicrosoftのRubyへの本気度」
    sshi
    sshi 2007/09/22