タグ

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

  • プラズマクラスターやナノイー自体にはほとんど殺菌効果がないことが明らかに

    のエレクトロニクス関連メーカーが販売している空気清浄機には、殺菌や脱臭といった効果をうたう粒子を放出するものが多い。メーカー各社が名付けた粒子の例としては、シャープの「プラズマクラスターイオン」やパナソニックの「ナノイー」がある。ところが、そうした粒子自体には殺菌効果がほとんどなく、実際の殺菌は、同時に発生するオゾンが担っているとする論文が公開されている。2012年4月に開催された第86回日感染症学会総会で発表され、同年11月20日に発行された「感染症学雑誌 Vol.86 No.6」に座長推薦論文として掲載された「殺菌性能を有する空中浮遊物質の放出を謳う各種電気製品の、寒天平板培地上の細菌に対する殺菌能の体についての解析」(リンク)である。 発表したのは、国立病院機構 仙台医療センター 臨床研究部 ウイルスセンターの西村秀一氏。論文では、シャープの「プラズマクラスターイオン発生機」

    プラズマクラスターやナノイー自体にはほとんど殺菌効果がないことが明らかに
    kzfm
    kzfm 2012/12/25
    オゾン入りのシャンプーとかシュッシュするやつとか歯磨きとか売ればいいんじゃないの。絶対買わんけど
  • 第1回 オブジェクト指向プログラミング

    最近、新聞やテレビで注目を集めているプログラミング言語に、米MITメディアラボが開発した子供用ビジュアルプログラミング環境「Scratch」がある。 Scratchの登録ユーザー数は90万人(ダウンロードだけなら登録不要なので実際はもっと多い)、アップロードされた作品数は208万に達している(2011年10月現在)。TIOBEの人気プログラミング言語ランキングでは35位と、トップ50にランクインしている(2011年10月)。ちなみに1位、2位、3位は、Java、C、C++の順である。Scratchと同じく最近注目を集めているScala(関連記事)は50位だ。Scratchが子供用のプログラミング言語であることを考えると、並み居る大人用言語の中で健闘していると言えるだろう。 子供用プログラミング言語だけど侮れない 現代の子供たちは学校や塾などの習い事で結構忙しいうえ、身の回りにはゲームやア

    第1回 オブジェクト指向プログラミング
    kzfm
    kzfm 2012/09/05
    メッセージングがわかりやすいのとオブジェクトがそのまんまでモノなので当たり判定が楽だったりとか
  • 第20回 更新を高速化するためのSTモナド

    前回,MArrayクラスの配列を扱えるモナドの一つとして,STモナドを挙げました。他にも第6回や第7回で何度かSTモナドについて言及しています。ただ,これまでSTモナドについてまとまった説明はしてきませんでした。そこで今回から2回にわたってSTモナドの詳細を解説していくことにしました。 今回は,STモナドの基的な特徴,およびSTモナドと関係のある拡張機能について説明します。 前回の補足 前回「すべての次元において下界が上界を上回るよう値を与えた場合,そのような範囲は存在しないため配列は空になります」と書きましたが,誤りでした。正しくは「下界が上界を上回るような次元が一つでも存在する場合」に配列が空になります(参考リンク1,参考リンク2)。 Prelude Data.Array> array ((9,22),(10,11)) [((10,11), 33)] array *** Except

    第20回 更新を高速化するためのSTモナド
    kzfm
    kzfm 2012/07/01
    STモナド
  • 第37回 書き換え規則を使って不要な計算や中間データを除去

    プログラムの処理は,いつも効率的であるとは限りません。非効率的な処理があれば,別の効率的な処理に置き換える必要があります。プログラムのアルゴリズムやデータ構造に問題がない場合には,こうした最適化は通常は処理系が行います。 しかし,処理系に実装されている最適化機能は完璧ではありません。プログラマが最適化を行ったほうがいい場合もあります。GHCには,プログラマが最適化の方法を処理系に指示するための「書き換え規則(Rewrite Rules)」という機能があります(参考リンク1,参考リンク2)。 今回は,書き換え規則の基的な使い方と,GHCに付属するライブラリで使われている最適化テクニックの一部を紹介します。 RULES指示文に書き換え規則を記述 書き換え規則は,「RULES指示文」をソースコードに埋め込むことで利用します。例を見てみましょう。 前回,IntとWordとの間の型変換に,from

    第37回 書き換え規則を使って不要な計算や中間データを除去
    kzfm
    kzfm 2010/10/18
    必要な計算同士の間にある非効率性は,「計算と計算をつなぐために一時的に使用される中間データ」という形で現れます。
  • 電子書籍を作って分かったこと

    出版業界は電子書籍を巡って大騒ぎとなっている。さまざまなプラットフォームが乱立し、これまで静観していた出版社が電子書籍に乗り出してきた。電子書籍を取り上げた雑誌や書籍も目立つ。こうした動きのきっかけとなったのは、米アップルの新型端末iPadであることは明らかだろう。出版業界としては、恐れと同時に期待も大きく、何かせずにはいられないという気持ちも正直なところだ。 今回、我々もiPad上で読める電子書籍を出すことにした。タイトルは「ネットワーク開発物語」(画面)。「IP」「イーサネット」「Web」の3大ネットワーク技術がいかにして開発されたのかをつぶさに追ったネットワーク開発史だ。ビント・サーフ、ボブ・メトカフ、ティム・バーナーズ=リーなど、直接開発にかかわった技術者を取材し、人にしか語れない内容を盛り込んだ。これ自体は有料で販売するが、コンテンツの一部は無料版の「インターネット開発物語」と

    電子書籍を作って分かったこと
    kzfm
    kzfm 2010/10/15
    電子書籍は、紙とWebの間にある媒体
  • 第7回 入出力と遅延評価の間を取り持つIOモナド

    前回までいくつかモナドの例を見ていきました。それらの例を通して培ってきた知識を基にして,いよいよ今回はIOモナドについて説明したいと思います。 HaskellでI/O(Input/Output,入出力)を使うにあたって,問題になるのは何でしょうか? 一つは前回触れた参照透過性です。この問題を解決するのは,難しいことではありません。直接中身に触ることのできない抽象データ型としてIOというコンテナを用意し,I/Oアクションは必ずIOという型を返すことにすればよいのです。 さて,もう一つの問題は遅延評価です。例えば,前回触れた参照型は必ず初期化してから使わなければなりません。このように,I/Oを使用する場合にはその実行順序が大切になります。I/Oの実行は非対称(asymmetric)なものであることが多く,実行順序を入れ替えてしまうと,望む通りに動作するとは限りません。しかし,遅延評価は必要とさ

    第7回 入出力と遅延評価の間を取り持つIOモナド
    kzfm
    kzfm 2010/10/13
    モナドの強力さは,計算の合成性(compositionality)を尊重しているところにあります
  • 第3回 mapからモナドを理解する

    今回は「モナド(monad)」について説明します。モナドはHaskellの重要な特徴の一つなので,名前くらいは聞いたことがある人が多いでしょう。ただ,「モナドは難しい」という声もよく聞きます。 モナドとは一体なんでしょうか。前回,「HaskellはIOを取り扱うためにモナドと呼ばれる特別な仕組みを使用することで有名です」と書きました。Haskellは遅延評価を行うため,プログラマが処理の順番を確実に指定することができず,そのままでは入出力の処理には不向きです。モナドを使えば制御構造を導入できるため,この問題を解決できます。前回でいえば,(IO a -> IO a)にマッチする関数――finallyやprintThenAdd――を定義している部分がモナドに相当します。また,GHCiのプロンプトにもモナドが使われています。このように入出力操作を行うモナドの代表格が「IOモナド」です。ライブラリ

    第3回 mapからモナドを理解する
    kzfm
    kzfm 2010/10/13
    モナドは「コンテナ(計算)」と「コンテナに対する操作」をセットにしたもの
  • 第39回 一般向けの「Haskell Platform」とインストール・ツールの「cabalコマンド」

    2010年3月22日に,Haskell Platform 2010.1.0.0がリリースされました(参考リンク1,参考リンク2)。 Haskell Platformは,その名の通りHaskellでプログラミングをするユーザー向けの開発プラットフォームです。Haskell Platformには,GHCに加え,GHCには含まれていないライブラリや,cabalコマンド(cabal-install)などのツールが収録されています。 Haskell Platformが生まれた理由 Haskell Platformは,Haskell処理系であるGHCに加え,実際のプログラミングで必要になるライブラリやツールなど,Haskellによるプログラミングを行うのに必要な環境一式を提供するものです。ただし,Haskell Platform 2010.1.0.0のリリース時点では,どのOSを使用しているかによって

    第39回 一般向けの「Haskell Platform」とインストール・ツールの「cabalコマンド」
    kzfm
    kzfm 2010/10/06
    cabalコマンドなどのツールを利用するには「/Library/Frameworks/HaskellPlatform.framework/bin」をパスに設定する必要があります。
  • まつもと直伝 プログラミングのオキテ 第5回(2)

    ブロックを使う2つの方法 Rubyのブロックについてもう少し詳細を見てみましょう。Rubyのブロックはメソッド呼び出しに付加できるコードの塊であって,それ自身はオブジェクトではありません(ブロックをオブジェクト化したものがクロージャです)。渡し方も通常の引数とは違います。次のメソッド呼び出しを見てください。 ary.each {|x| puts x} このコードを観察すると,以下のようなことが分かります。 ●aryオブジェクトのeachメソッドが呼び出されている ●通常の引数はない ●ブロックが付加されている メソッドから渡されたブロックを利用する方法は2つあります。一つは「ブロック引数」でブロックを受け取ることを明示的に宣言する方法,もう一つは予約語yieldを用いる方法です。図6[拡大表示]ではブロック引数を用いています。配列に対する繰り返し処理を進めるeachメソッドが定義されていま

    まつもと直伝 プログラミングのオキテ 第5回(2)
    kzfm
    kzfm 2010/09/16
    ブロックとは,関数1つを採る高階関数を文法的に特別扱いしただけ,とみなすこともできます
  • 三島市ら3市がOpenOffice.orgを検証、地方自治情報センターの共同調査で

    アシストは2010年7月21日、「三島市、伊豆市及び伊豆の国市電算センター協議会」に、オープンソースのオフィスソフトOpenOffice.orgの研修サービスを提供したと発表した。同協議会は、財団法人 地方自治情報センター(LASDEC)の共同調査研究としてOpenOffice.orgの検証を行っている。 「三島市、伊豆市及び伊豆の国市電算センター協議会」は、三島市、伊豆市、伊豆の国市の3市による行政システムの共同開発や共同利用を目的として設立された組織。同協議会は、2010年5月より、財団法人 地方自治情報センターの2010年度共同調査研究として、「最適なオフィス・ソフトの導入に関する調査研究」と題し、OpenOffice.orgの有用性、利便性などを検証している。同研究の一環として、アシストのOpenOffice.org研修を利用した。 同研究では、オフィスソフト自体の検証のほか、国際

    三島市ら3市がOpenOffice.orgを検証、地方自治情報センターの共同調査で
    kzfm
    kzfm 2010/07/22
    三島市ってOOoの検証してるのか。富士はどうなんだろ?
  • Androidで広がる、携帯アプリ開発の世界---目次

    BlackLine・Concur・MS Copilot、ハイパーオートメーションツールが充実 2024.09.19

    Androidで広がる、携帯アプリ開発の世界---目次
    kzfm
    kzfm 2010/02/26
  • 第28回 例外やエラーに対する処理能力を加えるエラー・モナド

    Haskellの例外処理は,IOやSTMといった特定のモナドの内部でのみ扱えるようにデザインされています。しかし,こうした制限が行き届くのは,あくまで例外を捕捉し処理する場面に限られます。例外やエラーの発生する個所自体はこうした制限にはとらわれません。ありとあらゆる場所で発生する可能性のある例外やエラーに対する処理を,より統一的に扱うにはどうすればよいでしょうか? この問題に対する解決策として,第15回で説明したモナド変換子を利用できます。利用できる範囲はあくまでモナドの内部に限られますが,特定のモナドでしか例外を扱えないことと比べれば一歩前進でしょう。今回はモナド変換子を利用する2種類の方法を紹介します。 成功時と失敗時の情報を保持するEither型 第5回では,失敗する可能性のある計算結果を表すのにMaybe型を利用できることを説明しました。Maybeに対してモナドを定義することで,失

    第28回 例外やエラーに対する処理能力を加えるエラー・モナド
    kzfm
    kzfm 2010/01/21
  • 第28回 例外やエラーに対する処理能力を加えるエラー・モナド

    mtlの様々なバージョン 2009年1月現在,MonadCatchIO-mtl以外にもmtlから派生した様々なバージョンがHackageDBで公開されています。こうした派生系の狙いは大きく二つあります。一つは,様々な歴史的事情を引きずったmtlを新たにデザインすることです。もう一つは,GHC 6.10から正式に加わった「型族(Type Families)」を関数従属性の代わりに利用することです(参考リンク)。 第6回で説明したように,多引数型クラスをまともに扱うには,多くの場合,型変数の間の制約を決める必要があります。mtlではこの制約を示すのに関数従属性を使っていました。一方,mtl-tfやmonads-tfでは,型族を使うように定義を書き換えています。 今回は型族について詳しく説明するスペースはないので,実例だけを示しましょう。mtlのMonadStateクラスは,「型変数mが何か」に

    第28回 例外やエラーに対する処理能力を加えるエラー・モナド
    kzfm
    kzfm 2010/01/21
  • 「Perl技術者の雇用を増やしたい」,普及推進団体Japan Perl Associationが活動開始

    「Pelは大規模Webサービスを支え,今も進化している。しかしそのことが広く知られていない」(Japan Perl Association代表理事 牧大輔氏)――Japan Perl Association(JPA)が2009年4月8日,正式に活動を開始した。JPAはPerlの普及推進を目的とした一般社団法人。東京で開催される国際イベントYAPC::Asia(Yet Another Perl Conference Asia)の運営を始めとする普及活動を行う。 「Perl歴史が長いため,古い言語と見られることもある。しかしPerlはライブドア,ミクシィ,ディーエヌエーだけで月間360億ページビューを処理するなど,今もWebを支える存在。現在では進化したモダンな開発方法論が用いられており,Perl自体の開発も活発に行われている。にもかかわらず,そのことを啓蒙する団体がなかった」(牧氏)。 こ

    「Perl技術者の雇用を増やしたい」,普及推進団体Japan Perl Associationが活動開始
    kzfm
    kzfm 2009/04/09
  • Gmailのメールボックス25ギガバイトは有用か?---メール再考

    1月の終わり,大手ユーザー企業3社と勉強会をするため大阪へ行った。3社のIT部門を統括する方が,大学の同期同窓であることが開催のきっかけだ。3社とも2009年度から次期中期5カ年計画が始まるという。勉強会では各社が次期中期でどんなテーマに取り組むかが発表され,意見交換した。 ネットワークばかりやっている筆者にとって,新鮮な話が多くとても勉強になった。会社ごとにプレゼン資料のまとめ方にも特徴があり,それも面白かった。中でも,深いブルーと淡いクリーム色を効果的に使ったスライドがきれいで,これは参考にしようと思った。内容が充実していることは当然重要だが,人に気持ちよく見てもらえる資料を作ることも大切だ。 筆者は90分でネットワークに関連する色んな話をさせていただいた。一つの目玉は前回のこのコラムでも少し触れた有償版Gmailと,筆者が注力しているオープンソースをベースとしたメールの対比だ。大手企

    Gmailのメールボックス25ギガバイトは有用か?---メール再考
    kzfm
    kzfm 2009/02/26
    会社のメーラーを使うのは”送った”という事実を残すためなんじゃないのかねぇ。
  • Part4 Javaで作るオリジナル言語

    Part4では,Lisp(リスプ:List Processor)インタプリタをJava言語を使って作っていきます。Lispは非常に歴史が古く,様々な分野で利用されている言語です。しかし,皆さんの中にはLisp自体をよく知らないという方もいらっしゃるかもしれません。どんなものを作るかわからないままでは面白みも半減してしまいますから,まずはLispのごく基的な動作を紹介しましょう。 まずは簡単Lisp講座 Lispの質は,すべてがリスト(正確にはS式,詳細は後述)で表現されることにあります。リストは要素を順序付きで並べたもので,“(1 2 3 4)”のように要素の並びをカッコでくくって表記します。このリストの要素は1,2,3,4の四つです。 「すべてがリストで表現される」という言葉の通り,Lispではプログラムもこのようなリストとして表現します。Lisp処理系は,与えられたリストの一つ目の

    Part4 Javaで作るオリジナル言語
    kzfm
    kzfm 2009/02/05
  • 【5分で覚えるIT基礎の基礎】デジタル回路の基礎の基礎 第4回

    ●情報を記憶するとは? まず,デジタル回路において情報を記憶するとは,どういうことかを説明しておきましょう。図1[拡大表示]の回路を見てください。四角で囲んだブラック・ボックスの部分に何らかのゲートを組み合せた回路が入っています。内部がどうなっているかは,後ほど説明します。この回路には,SとRという名前の付けられた2つの入力と,1つの出力があります。 デジタル回路が取り扱う情報は,当然のことですが0または1のデジタルな情報です。図1の回路では,入力Sを0から1に変化させると出力が1になり,その後で入力Sが0に戻っても出力は1のままとなります。入力Rを0から1に変化させると出力が0になり,その後で入力Sが0に戻っても出力は0のままとなります。すなわち,SとRの2つの入力によって回路の出力を1または0に固定できるのです。出力が固定できるのは,回路の内部で情報が記憶されているからです。これが,デ

    【5分で覚えるIT基礎の基礎】デジタル回路の基礎の基礎 第4回
    kzfm
    kzfm 2009/01/04
    ラッチ回路
  • 第4回 Tracではじめるバグ管理入門

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

    第4回 Tracではじめるバグ管理入門
    kzfm
    kzfm 2008/10/07
  • 第16回 すべてのものは関数である

    すべてのものは…である SmalltalkやRubyなど,いわゆる生粋のオブジェクト指向言語では,「すべてのものはオブジェクトである」(everything is an object)と言われることがある。JavaC++などと異なり,整数の「123」や浮動小数の「4.56」といった,基データ型の値もオブジェクトとして扱うことができるからだ(ちなみに,現在のJavaには自動ボックス化という機能があり,基データ型からオブジェクト型への変換が自動で行われる場合も多い。しかし,両者の差異が全くなくなったわけではない。例えば123.toString()のようなメソッド呼び出しはできない)。 では,オブジェクト指向言語のまねをして,関数型言語において「すべてのものは関数である」と言うことはできるだろうか? もちろん,オブジェクト指向と違って,関数型プログラミングはあくまで「数学的な(=副作用のな

    第16回 すべてのものは関数である
    kzfm
    kzfm 2007/11/17
    すべてのものは関数
  • はじめてのカーネル・ソース 第1回 どうしたら読めるようになるのか:ITpro

    なかなかハードルが高く,多くの人が踏み出せないでいるカーネルのソース・コードの読解。連載では,今までカーネル・ソースなんて見たことがないという人に,読みこなすコツをお教えします。今回は,どうしたらカーネル・ソースを読みこなせるようになるのか,筆者の経験をお話します。 Linuxユーザーなら誰しもカーネルのソース・コード(カーネル・ソース)を読んで,どのような処理を行っているのかを確認したり,自分なりの変更を加えたりしたくなるのではないでしょうか。しかし,カーネル・ソースの量は膨大な上,C言語で書かれているので,コンピュータ内部やOS(オペレーティング・システム)の仕組みを理解したプログラマでないとなかなか読みこなせません。そのため,カーネルを読むための第一歩を踏み出せない人が数多くいることは事実です。 講座では,プログラマではないごく普通のLinuxユーザーが,カーネルをある程度自力で

    はじめてのカーネル・ソース 第1回 どうしたら読めるようになるのか:ITpro
    kzfm
    kzfm 2007/11/02
  • 1