タグ

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

  • 第57回 機能テストや性能テストをCabalで自動化

    前回は、ライブラリや実行可能ファイルを提供するパッケージをCabalで作る方法を説明しました。Cabalには、パッケージをテストするための機能も用意されています。今回はこの機能の使い方を説明します。 テスト・プログラムを用意する まず、Cabalのテスト機能を使って実行するテスト・プログラムを用意しましょう。単純に標準出力や標準エラー出力にメッセージを表示するプログラムでは不十分です。テストの結果をきちんとCabalのテスト機能に伝えるプログラムにする必要があります。 第16回で説明したHUnitのrunTestTT関数、第17回で説明したQuickCheckのquickeCheck関数、verboseCheckなどは、標準出力や標準エラー出力を使ってテスト結果を報告します。このため、そのままCabalのテスト機能にテスト結果を伝えることができません。 Cabalのテスト機能では、テストの

    第57回 機能テストや性能テストをCabalで自動化
  • 第56回 Cabalを使ってパッケージを作成する

    これまでの回では、Cabalを使って作成したHaskellのパッケージをたびたび利用してきました。しかし、そうしたパッケージの作り方をきちんと説明したことはありませんでした。今回は、Cabalによるパッケージの作成方法を詳しく説明します。 パッケージの雛形を作成する Cabalを使ったパッケージの構成には、多くのパッケージに共通する定型の部分と、パッケージごとに異なる部分が存在します。このうち定型部分の作成は自動化できます。 その目的でCabalが提供しているのがcabal initコマンドです。このコマンドを使うことで、パッケージの構成に必要な一通りのファイルを用意できます。新しくパッケージを作る場合には、cabal initコマンドでパッケージの雛形を作成するとよいでしょう。このコマンドの実行後に表示される個々の質問でのデフォルト値は、最新版の「cabal-install 1.16.0

    第56回 Cabalを使ってパッケージを作成する
  • 図2●COBOLプログラムから生成した設計書とJavaプログラムの例(富士通の発表資料より引用)

    日経クロステック登録会員になると… ・新着が分かるメールマガジンが届く ・キーワード登録、連載フォローが便利 さらに、有料会員に申し込むとすべての記事が読み放題に! 春割キャンペーン実施中! >>詳しくは

    図2●COBOLプログラムから生成した設計書とJavaプログラムの例(富士通の発表資料より引用)
    yuroyoro
    yuroyoro 2012/08/16
    AwesomeReverseEngineeringCode : https://gist.github.com/3369166
  • Java SE 7徹底理解 第5回 New I/O 2の新しいファイルシステムインタフェース その2

    先月に引き続き、今月もNIO2で導入されたファイルシステムインタフェースについて紹介していきます。 簡単に前回のおさらいをしておきましょう。 新しいファイルシステムインタフェースは、既存のFileクラスの欠点を解決すべく導入されたAPIです。 ファイルシステムを表すのがjava.nio.file.FileSystemクラス、java.io.Fileクラスに対応するのがjava.nio.file.Pathインタフェースです。Pathオブジェクトに対するユーティリティメソッドはjava.nio.file.Filesクラスで提供されています。 先月はPathオブジェクトの生成、Fileオブジェクトとの相互変換、入出力などに関して説明を加えました。今月はFilesクラスで提供している機能を中心に説明を加えていきます。 ファイル・ディレクトリの作成 はじめに、ファイルやディレクトリを作成するところか

    Java SE 7徹底理解 第5回 New I/O 2の新しいファイルシステムインタフェース その2
    yuroyoro
    yuroyoro 2011/09/05
    NIO2
  • Java SE 7徹底理解 第2回 細粒度の並行処理 - Fork/Join Framework

    Java SE 7徹底理解の2回目である今月は、並行処理のフレームワークについて紹介していきます。 Javaは1.0がリリースされた当初から、スレッドを使用することができました。筆者もJava 1.0で簡単にスレッドが使えることに感動したことを覚えています。 しかし、スレッドを安易に使ってしまうと、デッドロックやデータの破壊を引き起こしかねません。スレッドクラスは簡単に使えるものの、使いこなすには並列/並行処理についての適切な知識を必要としたのです。 そこで、より簡単に並列/並行処理を使うためのフレームワークであるConcurrency UtilitiesがJ2SE 5.0で導入されました。 Concurrency Utilitiesは非同期処理APIや、スレッドセーフで高性能な並行コレクション、ラッチやセマフォなどのロック機構、アトミック処理など並列/並行処理のためのさまざまな機能が含ま

    Java SE 7徹底理解 第2回 細粒度の並行処理 - Fork/Join Framework
  • 第20回 アクターで楽々並行プログラミング(2)

    有限会社ITプランニング勤務のプログラマーScala、OCaml、F#などの静的型付け関数型言語を利用したシステム開発業務に従事。定理証明支援器Coqやモデル発見器Alloyといった形式手法ツールの業務への応用にも興味を持っている。 前回は、アクターとはメッセージ受信ループを内包した並行に動く計算主体であること、Scalaにはアクタースタイルの並行プログラミングをサポートする基機能やタイムアウト、Futureなどの便利な機能が備わっていることをご紹介しました。 今回は、アクターを実戦に投入するに当たって知っておきたい、パフォーマンスに関する議論について解説します。やや詳細に踏み込んでいきますが、「アクターには飽きたー」などと言わず、最後までお付き合いください。 なお、稿ではScala Version 2.8.0を前提とします。Version 2.7.7のアクター用タスクスケジューラー

    第20回 アクターで楽々並行プログラミング(2)
  • 第19回 アクターで楽々並行プログラミング(1)

    有限会社ITプランニング勤務のプログラマーScala、OCaml、F#などの静的型付け関数型言語を利用したシステム開発業務に従事。定理証明支援器Coqやモデル発見器Alloyといった形式手法ツールの業務への応用にも興味を持っている。 Scalaの標準ライブラリは、Java程大きくありませんが、パーサーコンビネーターを筆頭に小粒でもぴりりと辛い逸品が揃っています。この記事でご紹介する「アクター」もその一つ、マルチスレッドのスパゲッティをおいしいペペロンチーノに変えてくれる、魔法のスパイスです。new Threadとしたくなったら、一歩立ち止まってscala.actorsパッケージの扉を叩いてみてください。 なお、稿では2回にわたって、アクターとは何なのか、アクターを使うとどのような事が可能なのかをご紹介する予定です。並行処理に興味があったり、なんらかの形で並行処理に触れたりしたことがあれ

    第19回 アクターで楽々並行プログラミング(1)
    yuroyoro
    yuroyoro 2010/08/26
    Actor解説として、すごくわかりやすい記事です。
  • 「Java SE 6完全攻略」Garbage First GC

    Javaがヒープの管理にGCを使用しているのは、読者の皆さんもご存じの通りです。GCの手法にはいろいろありますが、HotSpot VMが採用しているのが世代別GCです。今回は、世代別GCの概要と問題点を解説したうえで、これを解決するために導入されたGarbage First GCについて説明します。 世代別GCの概要と問題点 世代別GCは若いインスタンスと時間を経たインスタンスを別々の領域に配置し、管理する手法です。これは寿命の短いインスタンスほど多いという性質をベースにしています。 若いインスタンスが配置される領域をヤング領域、時間を経たインスタンスを配置する領域をオールド領域とよび、それぞれの領域で異なるGCの手法を使用します。つまり、ヤングとオールドという世代の異なる領域を、それぞれ異なるGCで管理するのが世代別GCというわけです。 ヤング領域には高速ですが漏れのあるGCを用います。

    「Java SE 6完全攻略」Garbage First GC
    yuroyoro
    yuroyoro 2010/02/15
    図がわかりやすい!
  • 第15回 Scala 2.8の新機能 (1)

    SIer勤務。関数型プログラミング言語や形式手法に興味があり色々勉強中。"A Scala Tutorial for Java programmers"の和訳やScala勉強会(scala-beなど)での発表などScalaの普及活動を行っている。 現在使用されているScala 2.7系に対して、2009年後半にβ版が公開されテスト中のScala 2.8系では大きな変更や数多くの興味深い機能追加が行われています。今回と次回はScala 2.8についての紹介を行います。 なおScala 2.8は現在も開発中です。この記事は2009/12/24版のScala 2.8.0を元に執筆していますので、Scala 2.8の正式リリースまでに変更が加わる可能性があることを予めお断り致します。 Scala 2.8 について この記事を執筆している時点(2009年12月)におけるScalaの安定版は2.7.7

    第15回 Scala 2.8の新機能 (1)
    yuroyoro
    yuroyoro 2010/01/20
    package objectと名前付き引数は便利。継続はどういうシチュエーションで使うのがいいのかな?
  • 第14回 関数脳のつくり方 Second Season ~モナドで悟りをひらく~

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

    第14回 関数脳のつくり方 Second Season ~モナドで悟りをひらく~
    yuroyoro
    yuroyoro 2009/10/28
    "Some/Noneの中身を取り出す関数"をわざわざ作らなくてもOption#getOrElse [B >: A](default : => B) : Bを使えばいんじゃまいか?
  • 独自の手法で10倍速開発 7割主義で変化対応力を高める

    良品計画は独自の開発手法を採用することで、システム開発の短期化とコスト削減を図った。2006年12月に再構築したMD(マーチャンダイジング)システムを皮切りに、08年12月までに約130のアプリケーションを社内で開発。一方で、IT 投資の売上高比率は04年の1.8%から0.9%に半減させた。「7割主義」と「スピード対応」を方針に掲げ、利用部門の要望に最速1日、遅くとも1~2週間で対応する。開発手法の独創性と、経営に資するシステム部門の姿が評価された。 「無印良品」ブランドの小売店を展開する良品計画は、1週間に1という猛スピードで新しいアプリケーションを開発したり、機能を強化したりしている。「思い立ったら即実行。合格最低ラインの7割主義で素早くシステムを開発し、検証と改善を繰り返す」。IT戦略を統括する小森孝取締役 情報システム担当部長兼流通推進担当管掌は強調する。 同社は独自の開発方法論

    独自の手法で10倍速開発 7割主義で変化対応力を高める
    yuroyoro
    yuroyoro 2009/07/23
    環境構築の手間はあまりかからないな、多分…。
  • Lesson4:独自ドメインで運用したい,DNSへの登録方法を知る

    Lesson1~3では,DNSの役割としくみを見てきた。Lesson4では,独自のドメイン名を取得してWebサーバーを立ち上げる場合,このWebサーバーをDNSで引ける(名前解決できる)ようにするにはどうすればいいのかを説明しよう。いずれ自分でWebサーバーを運用したいと思っている人はもちろん,それ以外の人にとってもDNSのしくみのおさらいとして役立つはずだ。 DNSサーバーを用意する 独自のドメイン名でWebサーバーを立ち上げるには,まずドメイン名を管理するDNSサーバーを用意する。簡単なのは,プロバイダやホスティング事業者のサーバーを借りること。DNSサーバーに割り振るグローバルIPアドレスの取得やサーバーの設定・管理などが委託できて手軽だ。もちろん自分でDNSサーバーを構築する方法もある。 上位のDNSサーバーに登録 DNSサーバーを用意したら,プロバイダやドメイン名登録事業者に申請

    Lesson4:独自ドメインで運用したい,DNSへの登録方法を知る
  • 第7回 関数脳のつくり方 First Season

    大手SIベンダにてSEやPMやアーキテクトとして勤務したのち,現在は株式会社豆蔵のチーフコンサルタント。主に超上流のプロセスである要求開発やオブジェクト指向,アジャイル開発のコンサルタントとして活躍中。開発の現場にこだわり,開発の現場を少しでもよくしたいと日夜奮闘している。要求開発アライアンス 執行委員。著書に『オブジェクト脳のつくり方』や『eXtreme Programming実践レポート』(ともに翔泳社発行。後者は共著)などがある。 この連載も「刺激的」な内容が続いたと思いますので,今回は関数型のコーディングに普段なれていない皆さん向けの内容をお届けします。 そんなことを書くと,まるで私も関数型バリバリ…みたいですが,全くそんなことはありません。今までは仕事Javaばかりで,昨年羽生田さんがやっているScalaに興味を持って取り組んで以来,ずっと「関数型」の考え方がよくわからなくて,

    第7回 関数脳のつくり方 First Season
    yuroyoro
    yuroyoro 2009/03/09
    面白かった。ただ、さりげに出てくるCaseクラスもちょー重要っすよね。
  • 彼氏がオープンソースやっていた。別れたい。

    久しぶりに柔かそうな「ネタ」で始めたいと思います。 最近,ブログ界隈で「彼氏が××だった。別れたい」というコピペ改変が流行ってます。ちょうどこの連載のネタを考えている時に流行りを感じたので,「じゃあ,『彼氏がオープンソースやっていた。別れたい』でも書くかな」とtwitterでつぶやいていたら,「オープンソースには中毒性があるから,結構シリアスな問題かも」というコメントが来ました。確かにそう考えてみると,あながち単なるジョークでは済まないなということと,前回の話題とも関連があるので,あえてこのネタで考えてみたいと思います。 問題のコピペ元ネタ 件のコピペの元ネタは以下のように整理されてます。どうやら元はどこかの質問サイトのようですが,コピペとして整理されたものを転載します。 ■彼氏が軽自動車に乗ってた。別れたい… 軽だと信号待ちで並ばれた時なんか恥ずかしいww 下向いちゃうしww 男にはせめ

    彼氏がオープンソースやっていた。別れたい。
    yuroyoro
    yuroyoro 2008/11/18
    彼氏コピペからOSS活動についての怒濤の展開。
  • 第4回 Tracではじめるバグ管理入門

    「チケットは開発を救う」と考え,2007年のITpro Challenge!にてチケット駆動開発を提唱した。Tracを使う最大の利点はチケットとリポジトリ・ブラウザを連携できることだと考えている。 前回(第2回~第3回)までの連載で,Tracのインストールと基的な設定が終わりました。これからの連載では,Tracを上手に運用するためのコツをご紹介していきます。 Tracの主な機能には,Wikiとリポジトリブラウザ,それにチケットによるタスク管理システムがあります。Wikiとリポジトリブラウザは使っていても,チケットは使っていないという方は意外に多いのではないでしょうか。そこで第4回では,チケットの一番の用途である「バグ管理」について説明します。今回の説明には,Trac 0.11(日語版)が含まれるTrac Lightningのバージョン2.0.4を使用しますが,基的な考え方は以前のバー

    第4回 Tracではじめるバグ管理入門
    yuroyoro
    yuroyoro 2008/10/08
    wikiトップに自分のチケットを表示するのはいいかも。こんどやってみる。
  • 教養としてのC言語

    筆者は「日経ソフトウエア」というプログラミング雑誌で記事の執筆と編集をしている。先日,C言語にターゲットを絞った特集を企画・担当した。記事は無事校了し,今はこの特集を収録した2008年11月号が書店に並んでいる。 C言語の特集を企画した理由はただ一つ,C言語を学ぶことによって,プログラミングに関するより深い知見を得られると強く感じたからだ。筆者自身,C言語に不案内で苦手意識を感じていたので,その思いは余計に大きかった。同時に,だからこそ,筆者同様にC言語の経験が比較的少ない人,そしてこれからC言語を学ぼうという人に役に立つ特集に仕立てられるのではという気持ちもあった。 日経ソフトウエアとしては,C言語にターゲットを絞った特集をここ3年ほど掲載していなかった。その間にアプリケーション・ソフトウエアの大きな流れとしては,デスクトップ・アプリケーションからWebアプリケーションへの比重が高まり,

    教養としてのC言語
    yuroyoro
    yuroyoro 2008/09/30
    ここまでソースなし。
  • [OSC島根]「RubyでCOBOL技術者は復活する」---松江市の基幹システム開発で得られた実感

    COBOLRuby on Railsのアプリケーション構造は似ており,ベテランSEのノウハウが生かせる。RubyCOBOL技術者は復活する」---テクノプロジェクト 専務取締役 吉岡宏氏は2008年9月12日から13日にかけて開催されたオープンソースカンファレンス2008 Shimaneの講演で,松江市の高額医療費合算システムをRubyで開発した経験で得られた感想をこう語った。 テクノプロジェクトは,IPAの自治体へのオープンソースソフトウェア導入実証事業として,松江市の高額医療費合算システムをRuby on Railsで開発した。この実証の目的は,Rubyが自治体の基幹システムに耐えうることを実証することおよび,COBOL技術者がRubyでシステム開発するためのノウハウやライブラリの整備である。開発されたプログラムはオープンソース・ソフトウエアとして公開されており,また得られたノウ

    [OSC島根]「RubyでCOBOL技術者は復活する」---松江市の基幹システム開発で得られた実感
    yuroyoro
    yuroyoro 2008/09/18
    MVCだから似てるってかなり乱暴な比較だなぁ。だったらほかのフレームワークでも同じじゃん。
  • 未成年者だけが危ないのか,ネットの監視や規制を考える

    ネット上の有害情報を憂慮し,青少年ネット規制法が施行されることになった。格的な法施行を前に,「法規制は最後の手段」と人気コミュニティーサイトの間でも監視サービスを追加・強化するなど,民間レベルにおけるネットの監視や規制も進んでいる。ただその一方で,監視や規制による実効性の限界や,ネットを活用する人の教育などが必要とする指摘もある。一連の流れをまとめた。 監視サービス,人気サイト各社が強化 未成年者に人気のサイトで,誹謗・中傷や犯罪に巻き込まれる可能性のある勧誘などの書き込みがないか監視するためのサービスがここ最近,相次いで登場してきている。ネットいじめなどが社会問題化し,保護者や学校関係者などからその対策が望まれているためだ。 具体的な例として楽天は2008年6月4日,自社で運営する自己紹介サイト「前略プロフィール」(通称:前略プロフ)の監視体制を,ガイアックスが運営するサイト監視サービ

    未成年者だけが危ないのか,ネットの監視や規制を考える
    yuroyoro
    yuroyoro 2008/08/22
    嘘を嘘とry
  • “見逃し視聴”が大ヒット,テレビの見方が変わる実感

    英国の放送局BBCが2007年12月に開始した「iPlayer」というサービスが英国で大ヒットしている。iPlayerは,過去1週間に放映したテレビ番組をパソコン上で視聴できる,いわゆる“見逃し視聴”サービスだ。開始以来わずか3カ月で,4200万の視聴者を獲得している。 欧州は,このようなIPTVによるテレビの革命において世界をリードしている。フランスではIPTVの視聴者が400万世帯を超えるなど,新しいコンテンツの視聴方法が広く浸透している。英国も英BT,英ティスカリ,英バージン・メディア,英スカイの4事業者がIPTVサービスを始めている。 BBCのiPlayerの視聴報告を見ると,その急拡大ぶりがよく分かる。サービス開始後から2008年4月まで約7500万の番組コンテンツにアクセスがあり,月平均で20%も伸びているという。iPlayerが英国内のインターネット・トラフィックの約5%を占

    “見逃し視聴”が大ヒット,テレビの見方が変わる実感
    yuroyoro
    yuroyoro 2008/08/04
    うらやますぃ
  • 第10回 麻雀の役を判定する:ITpro

    図1に示す(1)から(3)までの麻雀(マージャン)の手牌があります。「あがり牌」はすべて山からツモったものとし,リーチはかけていません。またドラやハイテイ*1なども関係ないものとします。これらの役を判定して,親の場合の点数を計算するプログラムを作ってください。 「ややこしや~ややこしや~」というのは野村萬斎ですが,思わずそううなってしまうことがプログラミングをしているとよくあります。今回の麻雀の役判定は,考えれば考えていくほどややこしく,そうしたものの代表と言えるでしょう。排他処理や優先順位が複雑にからんでいて一筋縄ではいきません。 今回はややこしい組み合わせを解決する方法を考えてみます。麻雀になじみのない方も,ちょっとしたパズル気分で試してみてください。 麻雀の役を考える 麻雀を知らない方のためにルールをおおざっぱに説明しておきましょう*2。麻雀の牌には,大きく分けて「萬子(マンズ)」「

    第10回 麻雀の役を判定する:ITpro
    yuroyoro
    yuroyoro 2008/08/04
    いろいろな言語で実装してみるとよい練習になりそうだ。