タグ

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

  • 第58回 Cの配列をHaskellで利用する

    Haskellでは、リストや配列といったデータ構造に対する処理を高速化するために様々な試みが行われています。しかし、残念ながら現在のHaskell処理系やライブラリの実装には性能面でまだまだ課題があります(参考リンク1、参考リンク2)。Cの配列をHaskellで直接利用するようにすれば、性能の向上を期待できます。 Cで書かれたOSやライブラリのAPIには、Cの配列(およびそうした配列を扱うCの関数)を引数に取るものもあります。HaskellのFFIを利用すれば、HaskellからCの配列を利用できます。今回は、その方法を紹介しましょう。 Cの配列を利用する方法 第22回で説明したように、HaskellのFFIではCのポインタをPtr型で表現します。Cではポインタを使って配列を参照するので、Ptr型を使えばHaskellでCの配列を利用できます。 ただし、ポインタを操作するStorableク

    第58回 Cの配列をHaskellで利用する
  • 第22回 FFIを使って他の言語の関数を呼び出す

    Haskellを使ってアプリケーションを作成しようとすると,ライブラリの機能不足に遭遇することがあります。不足しているこうした機能の中には,C言語で書かれたライブラリやOSのAPIなどの力を借りなければ記述できないものがあります。 このためHaskellでは,第7回で触れたように,実行環境の外にある他言語のライブラリを扱うためにFFIという機能を用意しています。FFIを使えば,Haskellにはない機能を実装できます。 今回はFFIの基的な使い方を説明します。 FFI使用の最初の一歩 最初に,FFIを使ったごく簡単な関数呼び出しを見てみましょう。以下のようなコードで,HaskellからCの関数を呼び出すことができます。 {-# LANGUAGE ForeignFunctionInterface #-} module SimpleFFIExample where foreign impor

    第22回 FFIを使って他の言語の関数を呼び出す
  • 第15回 型からプログラムを当てる

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

    第15回 型からプログラムを当てる
  • 第5回:国内でも成功事例が出現,形式的手法の壁は高くない

    形式的手法の発祥の地,欧州では 「同手法についてよくある誤解」とのテーマが学会などで語られる。 一方,日ではその存在すらほとんど認知されておらず よくある誤解などが発生する以前の状態だ。 こうした中,国内でも先駆的に形式的手法を活用し成果を上げた企業がある。 研究者の興味の対象でしかなかった形式的手法が,いよいよ日でも現場に広がり始めた。 仕様記述と形式検証(モデル検査)。 形式的手法を構成するぞれぞれの分野での最新事例を紹介する。 形式的手法は,主に2つに大別される。1つは,ソフトウエアの仕様を「形式的な仕様記述言語」を使って論理的に記述したり,検査したりすることで,少しでも早い段階でバグを洗い出す「仕様記述」。もう1つは,形式的な仕様記述言語とは別の専用言語で記述したシステムの状態遷移をコンピュータに入力することで,振る舞いにバグがないかどうかを高速かつ自動的に探索する「形式検証(

    第5回:国内でも成功事例が出現,形式的手法の壁は高くない
    mzp
    mzp 2011/01/28
  • 第19回 アクターで楽々並行プログラミング(1)

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

    第19回 アクターで楽々並行プログラミング(1)
  • もう起業に会社はいらない,とサイボウズ創業者は言う - 記者のつぶやき:ITpro

    アメリカでは『起業のあり方』の変革が起きている」。サイボウズの創業者である高須賀宣氏は言う。米国で設立した会社LUNARRを2009年5月に清算したのは,それが理由だと高須賀氏は話す。 米国では学生が一人でサービスを立ち上げている 高須賀氏は現在,米国に拠点を置き,世界に向けたサービスの開発に挑んでいる。2006年,オレゴン州ポートランドで会社LUNARRを設立。ドキュメントの“裏面”がメールになるコラボレーション・ツールThemeと,画像を共有してユーザーがつながるElementsという2つのサービスを展開していたが,2009年5月10日に2つのサービスと会社をシャットダウンした(関連記事)。同氏が日に一時帰国した際に,これまでのチャレンジで得た事を聞いた。 高須賀氏は会社を閉鎖したが,引き続き次のサービスの開発を進めている。もともとサービス開発を2つで終えるつもりはなかった。それに

    もう起業に会社はいらない,とサイボウズ創業者は言う - 記者のつぶやき:ITpro
    mzp
    mzp 2009/06/15
  • 本物のプログラマはHaskellを使う:ITpro

    筆者 shelarcy Haskellは,関数型プログラミングというジャンルに属する言語です。Haskellや関数型プログラミングを題材に物事を見ていくことで,今まで思いもよらなかったような未知の世界を知ることができるでしょう。 プログラミング言語を学ぶという行為には, 言語の基的な文法や考え方を理解する 言語の文化圏で広く使われている考え方に親しんでその言語らしい書き方を習得する 単に言語を使ってできること以上の知恵を学ぶ の3段階があります。この連載では,三つ目の段階を目標に,Haskellプログラミングの世界を一つひとつ丁寧に紹介していきます。 更新は毎月第1水曜日(1月のみ第2水曜日)

    本物のプログラマはHaskellを使う:ITpro
    mzp
    mzp 2009/05/04
    ghc拡張についても書いてあるらしい
  • SI契約に変革迫る「進行基準」 IT業界に激震走る!:ITpro

    ユーザー企業のみなさんは、システム開発プロジェクトを進める際、ITベンダーに次のような依頼をしたことはないだろうか。 経営判断でシステムの稼働日は決まっている。だが、肝心の要件は固まっていない。「何としても納期を守ってくれ。要件定義と並行して、仕様が固まっている部分から、開発作業に着手してくれないか」。 すでに開発が済んだ部分について、利用部門から大きな仕様変更の依頼が来た。「予算はもう増やせない。申し訳ないが、最初に契約した金額のままで修正してくれないか。次の案件も御社に発注するから」。 新システムの予算を何とか確保した。あとはこの予算でシステムを開発してもらうだけ。「ハードウエア込み、要件定義から運用設計まで、すべて一括で契約してほしい」――。 頻繁とは言わないまでも、システム開発を進めるうえでは“よくある話”だ。問題があると分かっていても、経営層や他部門からの要請で、こうした依頼を

    SI契約に変革迫る「進行基準」 IT業界に激震走る!:ITpro
    mzp
    mzp 2008/06/30
    やっぱりソフトウェア開発の現場を変えれるのは、法律だけだと思う
  • 「書店での万引き防止にぜひICタグ張り付けを」、大手書店など15社が表明

    「万引きによる書店のロス率は、1.41%に上ることが分かった。書店の平均利益率である0.6%の2倍以上に当たる。万引き撲滅のため、すぐにでも出版社に無線ICタグを付けてもらいたい」。大手の書店や新古書店15社で構成する「日出版インフラセンターICタグ研究委員会書店部会」の村越武部会長(有隣堂顧問)は2008年3月26日に開いた記者会見で、こう強く要望した。 今回の調査は経済産業省の委託で、紀伊國屋書店や丸善、有隣堂など大手14書店1161店舗にアンケートしたもの。有効回答数は643店舗で、その総売上高約2909億円と比べて、総ロス額は約56億円と1.91%に達した。このうち万引きによるロスを推定すると1.41%だった。「万引きを撲滅できれば、利益率を3倍以上にできる」と村越部会長は強調する。 日出版インフラセンターはICタグを活用して、「換金目的の万引き」を効率的に防げると考えている。

    「書店での万引き防止にぜひICタグ張り付けを」、大手書店など15社が表明
    mzp
    mzp 2008/03/28
    利益率があがるなら、本の値段が下がったりしないかな。しないだろうな
  • Microsoft,大学生と高校生に開発/設計ツールを無償提供へ

    Microsoftは米国時間2008年2月18日,全世界の大学生と高校生に同社の開発/設計ツールを無償で提供する「DreamSpark」プログラムを発表した。次世代を担う若者にプロ向けツールを提供することで,彼らの潜在能力を引き出したいとしている。 同社は,ソフトウエア開発向けに「Visual Studio 2005 Professional Edition」「同 2008 Professional Edition」「XNA Game Studio 2.0」を提供する。「XNA Game Studio」に関する情報交換を行える「XNA Creators Club」のアカデミック会員資格(12カ月)も提供する。また,Webサイトやデジタル・コンテンツを効率的に作成できる「Expression Studio」スイートや,安全かつ安定した環境で開発作業を行える「SQL Server 2005

    Microsoft,大学生と高校生に開発/設計ツールを無償提供へ
    mzp
    mzp 2008/02/20
    すごいよ。OSから開発ツールまで全部タダかよ。
  • 5分で人を育てる技術 (22)“はじめて部下を持つ人"への5つのアドバイス :ITpro

    前回は,部下を持つことで混乱している坂上司としてどう行動していくべきかを伝えました。そして,私は彼に“はじめて部下を持つ人"への5つのアドバイスをすることにしたのです。 坂は,中堅社員ですが,長く部下を持たなかったので,自分のことだけを考えていれば済みました。しかし,今後はそれでは済みません。彼にはしっかり部下の面倒を見てもらい,組織マネージメントを身に付けてほしいからです。 坂に限らず,多くの人は部下を持つとそれまでとは違った苦労をします。自分だけで精一杯なところに,知識も経験も劣る部下の面倒も見なくてはならないのですから,その大変さは誰でも理解できるところでしょう。 しかし,組織で力を出していく以上,部下の戦力化は避けて通れない道です。どうせやらなくてはならない部下マネージメントなら,しっかりとした「やり方」を身に付けたいものです。まず,私はこれを坂に教えなくてはならないと思

    5分で人を育てる技術 (22)“はじめて部下を持つ人"への5つのアドバイス :ITpro
  • 第12回 「型推論」の実装法

    型推論:「コンピュータ以前」からML,Java 7まで OCamlをはじめ,MLやHaskellなど,多くの型付き関数型言語には型推論という機能がある。この連載でも,暗に陽に,OCamlの型推論機能を利用してきた。 例えば,以下のような関数say_hello_toを定義してみよう。文字列引数nameを受け取り,nameの前に定数文字列"hello "を付け加えて返す,という関数だ。 # let say_hello_to name = "hello " ^ name ;; val say_hello_to : string -> string = <fun> このように,引数や返り値の型を指定しなくても,say_hello_toはstring ->string型(文字列を受け取り,文字列を返す関数)であると自動推論される。 ただし,(例えばプログラムを読みやすくするために)もし型を書きたけれ

    第12回 「型推論」の実装法
  • Java初心者のチームが挑む基幹系刷新プロジェクト(番外編)

    私は,2007年2月2日付の記者の眼「『使えない人間』などいない」で「Java初心者で構成されるチームがいかにプロジェクトを完遂したか,という事例」があり,その事例を取材したうえで,日経ソフトウエア2007年5月号のJava特集でレポートすると書いた。その号がいよいよ明日(3月24日),発売される。特集のルポ「Java初心者のチームが挑む基幹系刷新プロジェクト」という記事である。 具体的には,群馬県内の各JAやJA関連組織のIT共同利用施設であるJA群馬電算センターが提供しているシステムの事例だ。Javaをほとんど知らなかった4人のメンバー,JA群馬電算センター 経済情報部の片野富久氏,前原貴美子氏,大久保浩治氏,渋谷知央氏が,基幹系システムの刷新プロジェクトに先立つパイロット・プロジェクトを成功させた,というものである。 もっとも,取材を終えた今では,この事例を「『使えない人間』などいな

    Java初心者のチームが挑む基幹系刷新プロジェクト(番外編)
  • Webデザイン エンジニアリング第22回 適切な「色」の選び方:ITpro

    Webサイトを設計する際,「色」は様々な問題を起こします。開発者それぞれの想いが込められやすいのかもしれません。開発末期になってから,色の変更指示で不眠開発になるという話は,いまだ昔話にはなっていません。 色の問題を解決するためには,色についての知識があったほうが助かります。ただし,色自体の講釈をここではしません。色を決めていく過程の参考になりそうなことを記します。 刷り込まれている色/固定イメージのある色 私たちは様々な色に囲まれて生活しています。その中で,色と行動が一番密接にかかわりを持つのは「信号」です。我々の取るべき行動を色が指示します。それはあまりに一般的になりすぎて,我々は無意識のうちにそれらの色に対して同様の行動パターンを取りやすくなっています。 例えば,赤色を見ると何か危険なことがそばにあるのかもしれないと警戒したり,黄色の標識を目にすると周囲に対して少し注意力をはらったり

    Webデザイン エンジニアリング第22回 適切な「色」の選び方:ITpro
  • 「HTML画面をそのまま仕様書に」,5カ月で1000画面を構築した就職サイトPuffの高速開発手法:ITpro

    上段左からティーアンドエフカンパニー 事業推進統括責任者 情報化戦略コンサルタント 西岡祐弥氏,ティーアンドエフカンパニー 代表取締役社長 佐藤裕司氏,パフ 代表取締役社長 釘崎清秀氏,下段左よりティーアンドエフカンパニー 最高技術責任者 出羽健一氏,パフ 取締役兼株式会社プロシンクワーク代表取締役社長大場京子氏,パフ 事業サポートグループ グループマネージャー 保坂光江氏 Webシステムを開発する際にはほとんどの場合,ユーザーとの打ち合わせのためにHTMLによるモックアップを作る。「このHTMLがそのまま仕様書になれば」と思ったことはないだろうか。就職情報サイトPuffの再構築プロジェクトでは,まさにモックアップをそのまま仕様書した。「十数人の開発者で,5カ月で1000画面のシステムを開発する」必要に迫られたからだ。 HTMLに仕様とメモを埋め込み,CSSで切り替え 「この未体験のスピー

    「HTML画面をそのまま仕様書に」,5カ月で1000画面を構築した就職サイトPuffの高速開発手法:ITpro
  • 論理合成ツール

    論理合成ツール(logic synthesizer)は,ゲート・レベルの論理設計を自動的に行なうツール。すなわち,ハードウエア記述言語(HDL)で表現したRTL(register transfer level)記述,真理値表,状態遷移記述,(特定の半導体製造技術に依存しない)論理式などを入力すると,所望の半導体製造技術の下で最適なゲート・レベル論理回路(ネットリスト)を自動生成する。ここでRTL記述とは,所望の論理をレジスタ(フリップフロップ)およびレジスタ間の論理機能として表現した設計データを指す。 通常,設計者は,満足させたい制約条件であるチップ面積や遅延時間,消費電力などを設定してから,論理合成ツールを稼動させる。論理合成ツールは,これらの制約条件を考慮しながら処理を進める。 HDLを使ってRTL記述で入力データを用意する場合,そのHDLの仕様に含まれるコードの一部が使えないことがあ

    論理合成ツール
  • PS3上のLinuxでCellプログラミング,CE Linux Forumのイベントでデモ

    PS3のCPUであるCellは,PowerPC互換のメインプロセッサ・コアPPE(PowerPC Processor Element)と8個のSPE(Synergistic Processor Elements)を一つのチップ上に搭載する。そのため,PowerPC向けのLinuxが動作する。すでにFedora CoreやYellow Dog Linux,Momonga LinuxなどがPS3上で動作している。しかし,Cellの特徴であるSPE(Synergistic Processor Elements)をLinux上で動かすデモが公開の場で行われたことはこれまでほとんどなかった。 デモで披露されたのは,USBカメラから取り込んだ映像に対し,リアルタイムにレイ・トレーシングを行うというもの。フラクタル図形の一種であるジュリア集合を,パラメータを変化させて形を変えながら,それを透過する光線を

    PS3上のLinuxでCellプログラミング,CE Linux Forumのイベントでデモ
  • 「XSS脆弱性は危険,Cookieを盗まれるだけでは済まない」専門家が注意喚起

    「クロスサイト・スクリプティング(XSS)脆弱性を悪用された場合の被害例としては『Cookieを盗まれる』ことがよく挙げられる。しかし,実際にはもっと深刻な被害を受ける恐れがある。管理者や開発者はその危険性を十分に認識して,対策を施す必要がある」――。京セラコミュニケーションシステムのセキュリティ事業部 副事業部長である徳丸浩氏は11月10日,ITproの取材に対して,XSS脆弱性の脅威を強調した。 さまざまなWebサイト(Webアプリケーション)において,XSS脆弱性が相次いで見つかっている。その背景には,開発者などの認識不足があると徳丸氏は指摘する。「適切に対策を施すには,XSS脆弱性のリスクを把握する必要がある」(徳丸氏)。しかしながら,実際には,XSS脆弱性のリスクを過小評価しているケースが少なくないという。 例えば,「(自分たちが運営している)携帯電話向けサイトでは(携帯電話上で

    「XSS脆弱性は危険,Cookieを盗まれるだけでは済まない」専門家が注意喚起
  • #1 プログラマーの三大美徳その1「怠慢」

    小飼弾です。ご機嫌はいかがでしょうか。 前回の記事では、私がタイトルを決めない理由についてお話しましたが、そうは言っても「プログラマー」というのは立派な肩書(title)の一つでもあります。というわけで今回はプログラマーとしての話題を扱います。 プログラマーには、次の美徳が絶対に必要です。この美徳の一つでも欠く人は、プログラマーとなってはいけません。また、これらの美徳を欠いているにも関わらずプログラマーという職業に就いてしまった人は、今すぐ転職を考えましょう。それくらい重要な美徳です。 怠慢(Laziness) 短気(Impatience) 傲慢(Hubris) 「そんな人はプログラマーに限らず仕事ができないはず」と思ったあなたは「怠慢」で「短気」で「傲慢」な素質があるかも知れません。まずは怠慢から解説します。 「ラクダ」の愛称で親しまれている"Programming Perl"において

    #1 プログラマーの三大美徳その1「怠慢」
  • Webデザイン エンジニアリング第24回 色コンプレックスを克服する方法:ITpro

    実は多くの人が,「色」の扱い方――色の選び方,色の作り方,色の使い方など――を不得意に感じているようです。かくいう私も決して得意ではありません。そこで今回は,そういった色コンプレックスを克服する方法を取り上げてみましょう。 ▼原因を知る(自分に能力がないわけではないと知る) 全くの個人的意見ですが,多くの人が色にコンプレックスを持つ理由は,小学校教育にあるのではないかと疑っています。もう少し具体的に書くと,「12色の絵の具」です。 中でも「緑=ビリジアン」が一番罪深い存在だと私は思っています。誰でも,野外の風景を描かされた記憶はあるでしょう。しかし,木々の緑や小さな野の花を描こうとしたときに,ある「壁」にぶつかったことはないでしょうか。 それは,自分の見ている「緑」と,パレットで作っている「緑」とのギャップです。ビリジアンに様々な色を混ぜ合わせて試してみるのですが,自然界の「緑」には程遠い

    Webデザイン エンジニアリング第24回 色コンプレックスを克服する方法:ITpro