fc2ブログ

ネタつつき211 - 大人とプロ

 私は何度か、社員教育を任されたときに「意外と厳しくないですね。」などといわれたことがあります。その人になぜそういうのか聞くと、私は仕事に厳しく、新人教育も鬼教官のようにすると思っていたらしいです。しかし、私が考えるプロの定義は異なるので、入社したばかりの人に対して怒ることはありません。それどころか、仕事中他人に対して「○○してくれない」などと怒ったり叱ったりした事はありません。犯罪行為だとか道徳的に悪質な行為をしない限り怒りません。というのも、私はプロというものを「あらゆる状況下で学び、どんな状況でも与えられた仕事をやり遂げる人。」だと定義しているからです。
 日本は他人の揚げ足取りだけをして、自分は何も作れないという人が結構多くいます。減点主義が主流の日本ですから、そういう人が多くいるのでしょう。しかしながら、私はそういう人をプロだとは思えません。何故ならば、重要な事はただ一つ。お客様が望むものを作れるか否かだけだからです。
 集団開発をすると、年齢を問わずスキルが低い人がいます。しかし、私はそれらの人に怒ったり、叱ったり、陰口をたたいたり、そういった行為を一切しません。ただ与えられた条件下で自分の仕事をするだけです。人には色々な事情があり、人間の価値は技術力で決まりません。そもそも、場面が違えば、技術力も違って見えます。従って、短絡的に誰かを批判しようとは思いません。
 そもそも、現実の開発は理想とは程遠い状態であり、常に何かが足りていません。それが現実世界なのであって、自分が考える完璧な状態などというものは望んでも無駄です。また、人には思想信条の自由があり、何が完璧なのかという一意の定義も存在しないため、そんな非理論的なものを求めても無駄です。それこそ、技術者らしからぬ考えだといえるでしょう。全ての条件を受け入れて、お客様が望むものを作るだけでいいのです。
 そういったこともあり、社員教育を依頼されたときは、受講者に対して一切の注意もしません。さすがに騒いで授業を妨害する人がいれば注意しますが、その程度の事です。明らかに間違えだと思うプログラムを回答してきても、「そういう考えもあるのか」と受け入れます。
 課題に対して、間違ったプログラムを書いた人がいたとき、私は間違っているなどと頭から否定せず、何故そう書いたのかを聞きます。そして、自分にはない発想に対して感心し、「発想はいいけど、今回の問題の回答とは違う。」とやんわりといいます。「それは、間違っている。正しいプログラムを書け。」などと怒る人がいるそうですが、私は全てを学習だと思っていますから、暗記教育的な事はしたいと思いません。出題者が想定した答えをそのまま提出させるような暗記教育的発想は実務で役立ちません。
 仮にその場の目標に対して、明らかにバグだとしても、考え方そのものは注目するべきものを持っている人はいます。というよりも、自分と違う人は全て、自分とは違う思考を持つ教師であり、違う思考体系を得られます。自分と違う思考を否定し、ミスだけを見ると、何も得られません。人生の全ての局面において、学ぶのが技術者であり、他人に対して不平不満を言わず、全ての条件を受け入れて、仕事を達成するのが本当の意味のプロの技術者だと私は考えています。
 昨今は、ミスを指摘すれば偉いと錯覚している人達が、STAP細胞の発明者を叩くような異常な世の中になっています。しかし、他人や何かを否定しても得られるものはありませんし、その手の人が何かを創造することもありません。他人に言う前に自分を律し、全ての物事から学ぼうとする姿勢を持たないとならないと私は思います。細かなミスを指摘して、人を虐めて喜ぶのは子供です。些細なミスを見逃し、自分と違う考えを受け入れ、本当に大切なものを見極める人こそ、大人でありプロと呼べる人だと私は考えています。

テーマ : 文明・文化&思想
ジャンル : 学問・文化・芸術

ニュースを分析20回 - STAP細胞は画期的。細胞プログラミングを実現する第一歩になる。

 世間の人(主にマスメディア)はくだらない事ばかりして、STAP細胞そのものに目を向けていないようなので、STAP細胞そのものについて考えてみました。日本のマスメディアは、全てを茶化し、ワイドショー化し、本質を見失う悪い癖があるので、読者は常に本題を考えねばなりません。そうしないと、「ところでSTAP細胞って何?」なんていう、恥ずかしい事態に陥ってしまいます。小保方さんだけを虐めて楽しみ、何の知識も増えていない。そんな恥ずかしい事態になってはなりません。
 私の専門は情報技術なので、医療系の技術は門外漢です。それ故に、理研のホームページの説明などを拝見したところ、すごく画期的だと思いました。STAP細胞とは、一度役割が決まった細胞を初期化できるというものです。初期化ができるのであれば、細胞プログラミングできる可能性が発生しました。STAP細胞が実在するのであれば、100年ぐらいしたら(人類の進歩は指数関数的なので数十年かな)、細胞を自由自在にプログラミングできる時代が到来するかもしれません。医療と情報技術がシームレスに融合します。
 自由にプログラミングするには、記憶媒体を用意し、それを初期化して、新しいプログラミングを書く、すなわち、情報の更新が必要になります。今回発表されたSTAP細胞は、細胞に書き込まれたプログラムを初期化するというものらしいですから、一目して、細胞プログラミングにつながると思いました。
 そんな画期的な発明を、くだらないゴシップのために潰そうとする世間は、本当に救いようがないと思います。画期的な発明なので、日本がSTAP細胞を研究しなくても、違う国で再発明され、違う名前で登場するだけです。従って、日本は自虐行為をしているだけだという事です。技術大国日本というのは嘘で、技術虐殺大国日本といった方がいいでしょう。
 私は情報技術者なので、細胞プログラミングの可能性が非常に気になります。もちろん、細胞プログラミングを実現するためにするべきことは多く、初期化以外にも、正しく動作するのかだとか色々ありますが、STAP細胞という発想自体はその第一歩を進めることになります。
 私は発明家なので、非発明家の人とは発想が違い、「人間が考えることは全ていつか実現できるもの」だと考えています。というのも、私にとっての情報技術力とは、創造力であり、言葉にできる事全てを実現する力だからです。特許庁から「日本に知的財産を守る機関は存在しない。ただ公開する機関だけがあるだけだ。盗まれるのは当然だから出願する人間が馬鹿なのだ。」といわれたので、全て墓の下に持っていきますが、私はいくらでも発明できます。それはくだらない先入観を持たず、何事も不可能だと考えないからです。言葉にできることは何でも作る、それが発明の精神です。
 しかし日本は、何かを否定する事ばかりに必死になり、その結果、色々な社会問題を発生させ、創造の方はできないから、何一つよくなることはありません。それは、考えてみれば至極当然の事であり、何かを壊し、作ることを知らなければ、日本が壊れていくだけというだけの話なのです。この子供でも分かることを、何故日本の大人たちがわからないのか、私は不思議でなりません。
 何はともあれ、私たち読者は、幼稚な行為に加担することなく、大人として知識を獲得しましょう。何かを否定することに長けても、何の価値も生み出せません。壊すのではなく、作る力を身に付けるべきだとは思いませんか?

テーマ : ニュース
ジャンル : ニュース

ネタつつき210 - 研究者の心

 STAP細胞の報道を見るに、世間は研究者(発明者)というものがどのような人なのか知らないと思いましたので、研究者であった私の心を書きます。研究者/発明者は、一言でいうと技術ばかです。
 性欲よりも、食欲よりも、金銭欲よりも、何よりもその専門分野が好きです。他の事はどうでもいいのです。ただし、だからといって人の心がないというものではありません。友達もいるし、恋人もいるし、家族もいる。普通の人と同じく、他者に対して、親しみを感じ、ともに喜びたいです。平和主義で、争いが嫌いで、とにかく、毎日平和で研究がしたい、ただそれだけです。その研究結果で、誰かを笑顔にしたい、そんな思いもあり、若い時から生涯を学問に捧げようと考えています。
 しかし現実は、利権と金銭欲にまみれています。誰かから強奪して儲けたい。それだけしか考えていない、野蛮で非理性的な人間及び組織がたくさんあります。さらに、日本政府のお偉い人型は、個人に向けられる犯罪に対して、無関心で組織の事しか考えていません。選挙さえ受かれば、報酬はもらえるし、組織と仲良くしたらもっと儲かる。それだけしか考えていないのだと私は思います。おそらく、お金や権力しか考えていないのでしょう。そうでなければ、こんな野蛮な国家になっていないはずです。知的な事しか興味がない私にしてみれば、訳が分からない人たちです。
 そんな研究馬鹿が思う事は一つです。「金銭欲で人類の発展が遅れている現状は馬鹿げている」です。例えば、情報技術は進化が早いといわれているけども、私から見て10年以上遅れています。欲にかられた人々が、人類の財産を食い物にするために、社会システムが複雑化する一方です。この複雑さは、システム屋の私からしてみれば、無駄で馬鹿馬鹿しいものです。みんなの役に立つ技術を、みんなで使う。そして、みんなが幸せになる。それ以外の何が必要なのでしょうか?毎日ご飯を食べて、仕事をしたり、デートをしたり、遊んだり、趣味をしたり、・・・そうした平和で満ち足りた生活をする以上の何を求めているのでしょうか?人類の財産を一人占めして、誰よりもお金が欲しい、権力が欲しい、そんな人たちは、誰かの血と涙でお金や権力を手に入れて、何をしたいのでしょうか?まったくもってわけが分かりません。非合理的かつ非理性的です。平凡にみんなで平和に暮らすだけでいいのに・・・。野蛮で悪意に満ちた、法治国家の建前をかぶった野蛮村日本に暮らしていると、そんな気持ちがわいてきます。きっと、日本以外の国でも、一部の人たちの強欲さで人類の足を引っ張っているのでしょう。
 残念ながら、人類には野蛮な人と理性的な人がいます。その野蛮な犯罪者たちに対して、適切に対処し、善意ある人人が平和に暮らす社会システムを考えればいいのにと思えてなりません。今の日本は、何事に対しても無関心で、何も考えなくてもお上に任せていれば、きっと自分だけは幸せで暮らせると考えていると思えてなりません。平和は無思考で得られない。歴史はそれを教えてくれます。そんな当たり前のことを考え、平和に向けて毎日システムを改善していけばいいのにと思えてなりません。今の日本は、ただひたすらに「きっと自分だけは幸せに暮らせる」そんな非現実的な妄想に逃げています。妄想の世界に逃げず、現実を直視し、社会を清潔に保つことを考え行動するという至極当たり前の事をするべきだと私は考える次第です。

テーマ : 情報処理技術
ジャンル : コンピュータ

C#ライブラリリファレンス - ファイルを纏める為にディレクトリの作成を行う

概要
 複数のファイルを纏める為にディレクトリを作成します。ディレクトリは、削除することもできます。

日常でたとえると
 必要書類を纏めてカバンに入れて。

使用に適した状況
 ファイルを整理整頓したい場合。

サンプル

/*----------------------------------------------------
 * 
 *  ディレクトリの作成
 *  
 ----------------------------------------------------*/
using System;
using System.IO;
class Sample
{
    static void Main( )
    {
        string name = "Foo";
        DirectoryInfo directory = new DirectoryInfo(  name );
        directory.Create();
        Console.WriteLine( "ディレクトリ{0}を作成します。", 
            directory.FullName );
        Console.WriteLine( "ディレクトリ{0}を削除します。", 
            directory.FullName );
        directory.Delete();
    }
}


名前空間
 System.IO名前空間を参照します。

解説
 ファイルをたくさん作ると、整理整頓したくなるのが人情です。その為にファイルを纏めるものをディレクトリもしくはフォルダーと呼びます。そのほかに、ファイルを一意に決定するための情報という側面もあります。
 複数の人がファイルを作ると、どうしても同名のファイルができてしまいます。この時、人ごとに専用のディレクトリを作成して、C:\山田\メモ.txtという風にしておけば、山田さんが作ったメモファイルと、田中さんが作ったメモファイルを区別することができます。その昔、初期のパソコンでは、全て同じ場所に保存している場合もありました。今では、ユーザーごとにディレクトリを用意したり、システム用のディレクトリを用意したりするのが当たり前となっています。
 C#プログラミングでディレクトリを作成および削除したい時は、DirectoryInfoオブジェクトを使用します。そうすることにより、容易に作成&削除できます。ただし、親ディレクトリを含めたフルパスで指定しないときは、現在選択されているカレントディレクトリの子(サブディレクトリ)になってしまうので注意してください。

テーマ : プログラミング
ジャンル : コンピュータ

ニュースを分析19回 - STAP細胞報道から考える知的財産権の在り方

 一連のSTAP細胞報道は、知的財産が利権にまみれ、日本はいまだに無理解と無思考であると改めて感じました。日本社会は知的財産について拙すぎます。これではこれからの国際社会を生き抜くことができません。そこで私の考えを書くことにしました。
 私は一応研究者であり、知的財産のビジネスにかかわっていたので知っていますが、日本はあまりにも杜撰です。知的財産法は、体裁を保つためだけにあり、実際は組織的暴力が横行する野蛮な無法地帯です。日本政府は特許戦略を何も考えていません。ただ、利権がそこにあるというだけの状態です。
 ここで考えなければならないのは、人類への貢献と企業及び研究者との結びつき方です。まずは人類貢献について考えます。
 人類貢献という観点から見ると、知的財産はできるだけ公開されている状態が望ましいです。しかも無料に近ければ近いほどいいです。多くの人が知り、多くの人が使えれば、それだけ技術が発展し、人類の進歩へとつながります。しかしながら、現実世界はお金がからんでくるので難しくなります。
 企業の立場から言うと、利益が出なければなりません。無料で公開するなんてことはまっぴらごめん。自社だけが儲かりたい。それが本音でしょう。そりゃそうです。研究開発に巨額のお金が動いている場合が多々あり、費用を回収し、新しい発明のための資金が必要となりますし、人件費などの諸費用も支払わなければなりません。そうなれば、現状の野蛮な利権主義も仕方がないと思う人がいても仕方がありません。しかしながら、研究者の視点から考えると、また違う発想が出てきます。
 私自身が研究者であったので、その気持ちはよくわかりますが、研究者が一番望むことは、一日中研究をしたいだけです。お金なんて興味がありません。誰かの役に立つ、それだけに興味があります。ただ、自分の肉体という名のハードウェアを持続するためにお金がいるというだけの話です。死んでも研究できるならば、喜んで死ぬでしょう。水道光熱費、家賃、書籍代、PC代・・・といったお金+α、成果の具合を測るパロメーターが欲しいというだけです。企業が求める金額よりも1桁か2桁すくない金額でOKです。そのお金さえあれば、だれが使おうともかまいません。また、人類貢献にも大いに興味があり、基本的にお金は仕方がなく、もうしわけ程度に考えているだけです。
 ただし、特許がらみになると、経営戦略と強欲な人が絡んできますので、本人がどうでもよくとも、企業がうるさく注文を付けてきます。それ故に、発明者本人の知的財産権の管理はおろそかになり、利権と悪意だけが残り、結果的に人類貢献とはかけ離れた現実になってしまいます。
 研究者としてはお金には興味はないものの、悪質な企業が知的財産を強奪するのは、いかがなものかと思いますし、研究が続けられないのは困ります。そして、人類貢献との兼ね合を気にしています。研究者はみんなが喜んでくれることを願って発明をしています。企業が独占すると、人類で共有できなくなります。かといって、善良な企業が健全な利益を求めるのは当たり前です。それらの事柄を考えると、物事を分離するのが賢明だと思います。
 日本社会は知的財産について何も考えていないので、渾然一体となっていますが、いくつかの論点に分けることができます。一、人類貢献、二、健全な企業の利益、三、研究者本人の生存権、四、犯罪企業への対処の4点です。
 一、人類貢献の観点から考えると、共用性が一番重要になってきます。そこから導き出される答えは、知的財産の基本的な部分は無料で公開です。それが最善策であり、それ以上の策はないと思います。
 二、企業の健全な利益という観点からは、適切な費用は回収できて、利益が出なければなりません。この条件から導き出される答えは、知的財産を利用した商用サービスおよび、商品については、自由に価格を設定してもよいという事にするのが最善だと思います。改めて考えると、商品及びサービスと知的財産とは別のものです。従って、知的財産から派生した商品及びサービスについて、所有権を認めればいいのです。健全な企業はこれで満足すると思います。
 三、研究者の生存権という観点からは、企業と比べると数桁低いお金しか必要ありません。それと、少しだけ名誉が欲しい(褒めてほしい)というだけです。感覚としては「これ凄いでしょう!面白いよね!」というだけです。研究者は研究ばかなので基本単純です。欲が強い人はよくに心を囚われて、思考の大部分がそちらに行くので発明をできません。それ故に発明者は無欲な人が多いです。加えて、正しく理解して、健全に利用してほしいので、商用サービス及び商品を作成する企業からの一定の料金を支払い、発明者の名前を明記する形にすればよいと思います。これは、現在と近いと勘違いする人も多いと思いますが、実際の日本社会は、組織が何をしてもよく、発明者はどのようにされてよいと見殺しにされているのが現状です。ですから自然と、墓の下に持っていくのが最善となっていますので、発明者の生存権の確保という、道徳的にいって当然のことをすればよいのです。一部の強欲な研究者を除いて、おおむね研究者の物的な欲は少ないので、社会がちょっとだけ注意を払ってあげればいいのです。
 四、悪質な企業への対策。日本社会は組織犯罪が横行しているのが現状です。おそらく「想定外」なのでしょう。この件に関して、私は政府に抗議したところ、「それを犯罪だとは思えない」との見解を頂きました。つまり、組織が何をしても犯罪だと考えていないのが日本の現実なのです。おそらく建前で知的財産法を作ってはいるものの、本音ではどうでもいいのでしょう。「人のものを強奪してはいけない」というのは、子供でも知っていることです。しかし、政治家はそれを知らないようですが、悪い人は必ずいます。従って、巨額の利権が発生する知的財産ついては、犯罪企業が出現するのを前提で、法律およびシステムを整備するのが至極当然だといえるでしょう。日本はいかなる問題が起こっても「想定外」で済ます、無思考な性善説が特徴ですが、犯罪を全ての物事を台無しにします。悪いことは裁く、そんな当たり前な事をするだけで、もっと人類は進歩します。それをしない手はないでしょう。
 以上の四点の論点からの結論をまとめると、日本の知的財産システムは、社会が発明者に対する生存権の保証をし、知的財産の内容については無料で公開する。そして、それを使用する企業は一定の料金を発明者に支払い、知的財産を活用した商用サービスおよび商品の財産権は企業が持つ。そして、必ず出現する犯罪企業を取り締まる体制を整え、どんどん重い刑罰を科していく。この四点セットでシステムを構築すれば、日本の発展及び人類の発展は間違いないでしょう。秒進日歩の世界ですから、いずれもっとよいアイデアが浮かぶと思いますが、今のところこれが最善だと私は考えています。なにはともあれ、今の時代は、知的財産権について戦略を持たなければならないというのは確かです。ゴシップで騒いで、個人を虐めて楽しむ。そんな野蛮で稚拙な行為をせず、大人になって、真面目に知的財産について考える世の中になってほしいと私は願っています。

テーマ : ニュース
ジャンル : ニュース

C#ライブラリリファレンス - バイナリファイルの読み書きを行う

概要
 C#ではFileStreamクラスを使用し、バイナリファイルの読み書きを行うことができます。エンコーディングを扱う場合、BinaryReader クラスを使用します。

日常でたとえると
 モールス信号。

使用に適した状況
 データをバイナリ値として保存したい時。

サンプル

/*----------------------------------------------------
 * 
 *  バイナリファイルの読み書きを行う。
 *  
 ----------------------------------------------------*/
using System;
using System.IO;

class Sample
{
    static void Main( )
    {
        //ファイルに現在の日時を書き込む
        string name = "Sample.dat";
        FileInfo file = new FileInfo( name );
        using (
            FileStream writer = file.OpenWrite() ) {
            for ( int i = 0 ; i < 100 ; ++i ) {
                writer.WriteByte( ( byte ) i );
            }
        }

        //ファイルからデータを一気に読み取る
        //※終了地点に達したらー1が返される
        Console.WriteLine( "バイナリデータを読み出します・・・" );
        using ( FileStream reader = file.OpenRead() ) {
            int data = 0;
            while( ( data = reader.ReadByte() ) != -1 )
            Console.Write( data + " " );
        }
        Console.WriteLine( System.Environment.NewLine );

        //終了
        Console.WriteLine( "データの読み出し終了。" );
        Console.ReadLine();
    }
}

名前空間
 System.IO名前空間を参照します。

解説
 ファイルは大別すると、バイナリファイルとテキストファイルに分けることができます。バイナリファイルは、0と1だけで構成されたデータの事です。バイナリファイルは、情報技術と情報デバイスにおいて最も基本的なデータ形式です。
 違う記事で文字も文字コードというルールがあると書きました。それと同様の考え方で、自分独自のデータ形式を考えたい場合、バイナリ値を扱うことになります。バイナリ値をどのように解釈するのかは、開発者が決めます。
 ただし、バイナリファイルといえども、文字列データやint型データなどのプリミティブ データ型(基本型)が含まれる場合があります。それをFileStreamクラスで扱うのは煩雑なので、BinaryReaderクラスを使用します。BinaryReaderクラスを使用すると、プリミティブ データ型(基本型)を容易に扱うことができるようになります。

テーマ : プログラミング
ジャンル : コンピュータ

ニュースを分析18回 - 日本のマスメディアは知的財産の窃盗を幇助するのか?

 STAP細胞の論文に不備がったのをいいことに、「リケジョ」などといい加減な記事で稼いでいた人たちが、何時ものように一人の人間を執拗に攻撃しています。そのさまは、公開リンチだとか虐めだとか言える狂気に満ちたものです。しかも、日本のマスメディアのしたことは、重大な結果を招きます。
 論文のコピペ、画像のミス、参考文献のミスなどは、ただのミスであり、それも彼女一人のミスではありません。マナーの意味合いで著作者を明記しておけばよかった話しですし、武田教授によると科学者の中では著作権フリーのものらしいです。加えて、特許がらみの事は、経営にかかわることなので、彼女一人で作業することはあり得ません。明らかに組織全体のミスです。それにも関わらず、マスメディアは小保方氏を犯罪者扱いしています。おそらく、その狂気に満ちたさまに対して、理性的な話し合いが無理だと判断した、事なかれ主義の理化学研究所は、彼女一人の責任にしてしまいました。それに対してマスメディアは、彼女一人を攻撃できれば満足なようで、喜々として報道という名の暴力を続けました。その結果は酷いもので、私は問題視せざるを得ません。
 そもそも、論文のコピペや画像の転用などで著作権と騒いでいたマスメディアは、彼女が処分され、発見者である彼女の知的財産を奪われる形になるのをみすごしていいのでしょうか?今のままでは、発見者である小保方さんを除いて、STAP細胞の研究を続けることになり、知的財産を横取りされる形になります。もちろん、理研が故意に窃盗するつもりだとは思いませんが、結果としてはそうなってしまいます。著作権を御旗にして、犯罪者だと騒いだマスメディアは、発明者の知的財産を奪われる形式を許すのは明らかに矛盾しています。そこから、やはり彼女一人を攻撃できれば満足していると思えてなりません。人を虐めてお金を稼ぐ、それはいかがなものなのでしょうか?
 建前上はそうなっていませんが、実際のところ日本の知的財産は、組織が勝手に利権にしてもいいことになっています。実際に、私も何度も組織から略奪されました。それを放置し、個人攻撃で満足している日本社会は野蛮だというしかありません。法治国家とは名ばかりで、組織の暴力が容認されている原始的な国家だというのが実態です。そもそも法人とは、人の法を適用するために、組織に人格を与えるものであり、個人でやってもいけないことは、組織でもやってはいけないのです。それが普通の考え方です。
 日本では組織は何をやっても許される。そして、全ての利益は組織のものとなり、全ての責任は個人にしてしまう。そんな野蛮な馬鹿殿体制でやっているから、日本は近代経済についていけず不景気になっているのでしょう。そのことから、いまだに精神的には封建主義で建前上は近代的な法治国家という事になっているといえます。
 日本の多くの問題は、このことが影響しています。組織には甘く追求しないから問題が解決せず、社会問題をワイドショー化するから解決もしない。しかし、時が経つれて、問題は増えていく。問題処理能力が問題発生件数を超えて初めてまともなシステムになりますが、日本はその問題解決能力が皆無です。これで国家が衰退しないわけはありません。日本の惨状はなるべくしてなっているのです。
 日本のマスメディアは、物事を全てワイドショー化し、本質追求せずに、問題の発生を見過ごしています。さらには、個人を虐めて楽しむ悪い性質があります。我々消費者は、その稚拙な行為を鵜呑みにせず、冷静に物事を考えましょう。物事を考えず、幼稚な言動を鵜呑みにしていると、知性のかけらもない悪質で幼稚な人間になってしまいます。十分に注意しましょう。

テーマ : ニュース
ジャンル : ニュース

中の人の徒然草491 幼稚な日本は虐めが大好き?

 それにしても、STAP細胞報道で、小保方さん一人を虐めて喜んでいるマスメディアが気になります。マスメディアはいつもターゲットを見つけたら、喜々として報道の名のもとに集団でリンチを行います。世間もまた、公開リンチもしくは虐めを容認しているように見受けられます。理研は報道のヒステリーに耐えかねて、小保方さん一人の責任として処理しようとしているし、誰も冷静に事実を知ろうともしない。ただ、理屈をつけて、小保方さんを虐めているだけです。
 これが大人のすることでしょうか?小中学生がいじめをするのも、大人がこうやっていじめをするからだと思えてなりません。私は日本に生まれてよかったと思っているだけに、こういう野蛮な側面は気持ちが悪いです。マスメディアは何時までいじめっ子をするつもりなのでしょうか?人を傷つけるだけの幼稚な行為をして恥ずかしくないのでしょうか?日本は法治国家という建前になっていますが、本音は村社会なのでしょう。
 いつになったら日本は大人になるのか。非常に残念ですね。このままいくと、小保方さんだけが犠牲になって、事実も何も有耶無耶になってしまうでしょう。日本は組織重視で個人と法を軽視するので、個人が生きにくい国(というか村)なのでしょう。こんなことをしていれば、日本は今以上に優秀な人から見捨てられるでしょう。非常に情けない有様です。
 私がSTAP細胞のニュースを見て思う事は、小保方さんのミスではなく、日本社会の稚拙さの方です。いつまで虐めをして楽しんでいるのか、いい加減大人になって真面目にしてほしいものです。こんなことだから、社会問題を何一つ解決できないのです。やるべきことは何もできず、ただ個人を虐めて終わる。これを幼稚と呼ばずに、何を要地と呼ぶのでしょうか?日本が不景気になっているのは、大人になれないのも一因だと思います。

テーマ : 日記
ジャンル : 日記

C#ライブラリリファレンス - テキストファイルの読み書きを行う

概要
 C#ではFileInfoクラス、StreamReaderクラス、StreamWriterクラスの3つのクラスを使用し、テキストファイルの読み書きを行うことができます。

日常でたとえると
 これからノートを開いて勉強するぞ。

使用に適した状況
 データを文字列として保存したい時。

サンプル

/*----------------------------------------------------
 * 
 *  テキストファイルの読み書きを行う。
 *  
 ----------------------------------------------------*/
using System;
using System.IO;

class Sample
{
    static void Main( )
    {
        Using();
    }

    static void Normal( )
    {
        //ファイルに現在の日時を書き込む
        string name = "Sample.txt";
        FileInfo file = new FileInfo( name );
        StreamWriter writer = file.CreateText();
        for ( int i = 0 ; i < 5 ; ++i ) {
            System.Threading.Thread.Sleep( 1000 );
            writer.WriteLine( DateTime.Now );
        }
        writer.Close(); //忘れずに閉じる

        //ファイルからデータを1行ずつ読み取る
        StreamReader reader = file.OpenText();
        string data = null;
        while ( ( data = reader.ReadLine() ) != null ) {
            Console.WriteLine( data );
        }
        reader.Close();

        //終了
        Console.ReadLine();
    }

    //こっちでもいい。
    static void Using( )
    {
        //ファイルに現在の日時を書き込む
        string name = "Sample.txt";
        FileInfo file = new FileInfo( name );
        using (
            StreamWriter writer = file.CreateText() ) {
            for ( int i = 0 ; i < 5 ; ++i ) {
                System.Threading.Thread.Sleep( 1000 );
                writer.WriteLine( DateTime.Now );
            }
        }

        //ファイルからデータを一気に読み取る
        using ( StreamReader reader = file.OpenText() ) {
            Console.WriteLine(
                reader.ReadToEnd() );
        }

        //終了
        Console.ReadLine();
    }
}


名前空間
 System.IO名前空間を参照します。

解説
 ファイルは大別すると、バイナリファイルとテキストファイルに分けることができます。バイナリファイルは、0と1だけで構成されたデータの事です。一方、テキストファイルは、本質的にはバイナリと変わらないのですが、使用している文字コードという決まるに従って保存されます。
 テキストファイルとは、本来の姿はバイナリですので、バイナリの並びのルールを定めた、文字コードを正しく選択する必要があります。PCを使用していると、たまに文字化けに遭遇をすることがありますが、これは文字コードが一致していないために起こることです。
 幸いC#では、デフォルトの文字コードはUTF-8と決まっていて、意識することなくプログラミングできますが、テキストファイルは文字コードが重要なのは変わらない事実です。プログラミングでテキストファイルを扱うときは、文字コードを意識して行いましょう。UTF-8以外の文字コードも扱うことができます。
 テキストファイルついては、FileInfoクラスが担当していません。読み取り時にはOpenTextメソッド、書き込み時にはCreateTextメソッドを使用し、StreamReaderクラスもしくは、StreamWriterクラスを取得して行います。C#プログラミングでは、ファイル情報、読み取り、書き込みの3つの役割を3つのオブジェクトで実現しているのです。3つオブジェクトが関係すると、初心者はわかりにくいかもしれませんが、慣れると3つに分かれている方が良いと感じるようになります。何故ならば、オブジェクトはシンプルであればあるほどプログラミングしやすいからです。
 なお、テキストファイルは、使用したら必ず閉じましょう。これは定められたファイルの作法ですが、usingステートメントを使用すると、忘れなくて済みます。なぜ閉じないといけないのかというと、OSはファイルを管理しているからです。ちゃんと合図してくれないと、OSはファイルをどうやって扱っていいのかわからなくなってしまいます。職場や図書館で共有しているものは、使い終わったら必ず返すのと同じです。

テーマ : プログラミング
ジャンル : コンピュータ

C#ライブラリリファレンス - ファイルが持つ各種情報を取得する。

概要
 C#でFileInfoクラスを使用すれば、ファイルが持つ様々な情報を、簡単に取得できます。

日常でたとえると
 書類を管理している人に、この書類は誰が何時書いたのか聞く。

使用に適した状況
 ファイルの設定に応じた処理をしたい場合使用します。

サンプル

/*----------------------------------------------------
 * 
 *  ファイルが持つ各種情報を取得する。
 *  
 ----------------------------------------------------*/
using System;
using System.IO;

class Sample
{
    //対象となるファイルが指定した属性を持つか判定する。
    static bool IsAttribute( FileInfo target, FileAttributes hit )
    {
        //ビットANDを利用する
        return ( target.Attributes & hit ) == hit;
    }

    static void Main( )
    {
        //読み取り専用ファイルを作成し
        //ファイルの情報を読み取る
        FileInfo file = new FileInfo( "Sample.txt" );
        file.Open(
               FileMode.Create,
               FileAccess.ReadWrite,
               FileShare.Delete );
        file.IsReadOnly = true;
        Console.WriteLine(
            "ファイル{0}の各種情報は次の通りです・・・",
            file.Name );
        Console.WriteLine(
           "デレクトリ{0}にあります。",
           file.DirectoryName );
        Console.WriteLine(
            "拡張子は{0}です。",
            file.Extension );
        Console.WriteLine(
            "サイズは{0}です。",
            file.Length );
        Console.WriteLine(
            "属性は{0}です。",
            file.Attributes.ToString() );
        Console.WriteLine(
            "バックアップや削除の候補?{0}",
            IsAttribute( 
                file, 
                FileAttributes.Archive ) );
        Console.WriteLine(
            "圧縮されている?{0}",
            IsAttribute( 
                file, 
                FileAttributes.Compressed ) );
        Console.WriteLine(
            "作成時間は{0}です。",
            file.CreationTime );
        Console.WriteLine(
            "作成時間(UTC)は{0}です。",
            file.CreationTimeUtc );
        Console.WriteLine(
            "最終アクセス時間は{0}です。",
            file.LastAccessTime );
        Console.WriteLine(
            "最終アクセス(UTC)は{0}です。",
            file.LastAccessTimeUtc );
        Console.WriteLine(
           "最終変更時間は{0}です。",
           file.LastWriteTime );
        Console.WriteLine(
            "最終変更(UTC)は{0}です。",
            file.LastWriteTimeUtc );

        //読み取り専用を解除し後片付けをする。
        file.IsReadOnly = false;
        file.Delete();

        //終了。
        Console.ReadLine();
    }
}



名前空間
 System.IO名前空間を参照します。

解説
 ファイルは情報の単位(塊の方をイメージ)ですが、情報に関するメタ情報があります。例えば、そのファイルは何時作られたのか?いつ変更されたのか?読み取り専用なのか?圧縮されているのか?暗号化されているのか?・・・などです。C#ではファイルに関するメタ情報は容易に取得できます。FileInfoクラスが持つ各プロパティを参照するだけです。
 ただ、初心者にとっては、Attributesプロパティが持つFileAttributesの値が難しいかもしれません。このプロパティ値を個別に判断したい場合にはビットANDを使用して判定します。読み取り専用ならば始めのビット値がが立っている(true, 1 )という風な光景を思い浮かべるとよいと思います。日常の感覚で例えると、チェックシートのチェックマークを見るのと同じ感覚です。それさえ掴めれば、あとは問題ないと思います。

テーマ : プログラミング
ジャンル : コンピュータ

プロフィール

インドリ

Author:インドリ
みなさん、はじめまして、
コンニチハ。

ボクは、無限の夢(infinity dream)を持つネタ好きな虹色の鳥インドリ(in dre)です。
色々な情報処理技術を啄ばむから楽しみにしてね。

http://twitter.com/indori
は別人による嫌がらせ行為です。
私とは関係ないので注意して下さい。
次はなりすましブログなどをするかもしれませんが、ここ以外でブログをするつもりがないので、ここ以外にインドリのブログがあったとしても無視してください。


何度言っても分からない人がいるので、ここにコメント欄へ書き込むときの注意事項を書きます。


一、社会人としてのマナーをわきまえましょう。
一、妄想に基づく書き込みを止めてください。
一、暴言の類は書かないで下さい。
一、某誹謗中傷サイトの書き込みは彼らの妄想に基づく書き込みですから無視して、ここへ書き込まないで下さい。
一、コメント書く前に他のコメントよく読んでから行って下さい。
一、言いがかかり等の行為を禁止します。
一、その他常識的に考えて迷惑なコメントはしないで下さい。


以上のルールを守れない人のコメントは削除します。



利用上の注意
ここに紹介してある文章およびプログラムコードは正確であるように心がけておりますが、内容を保証するものではありません。当サイトの内容によって生じた損害については、一切の責任を負いませんので御了承ください。


執筆したCodeZineの記事


【VB.NETで仮想CPUを作ろう】

  1. VB.NETで仮想CPUを作ろう
  2. レジスタの実装
  3. 仮想CPUのGUI化
  4. テストドライバの改良
  5. CPUの基礎動作の実装
  6. MOV命令の実装
  7. ADD命令実装
  8. SUB命令実装
  9. INC命令&DEC命令の実装と命令長
  10. MLU命令の実装とModR/Mについて
  11. DIV命令の実装とイベント設計について
  12. 機械語駆動式 関数電卓を作ろう!
  13. 機械語駆動式 関数電卓を作ろう! 解答編(前半)
  14. 機械語駆動式 関数電卓を作ろう! 解答編(後半)


【仮想ネットワーク実装でTCP/IPを学ぼう】
  1. TCP/IPの基礎と勘所
  2. ネットワークアクセス層の勘所
  3. インターネット層の勘所
  4. トランスポート層の勘所
  5. アプリケーション層の勘所
  6. セキュリティの基礎と仮想ネットワークの仕様
  7. GDI+と独自プロトコルの定義



【並列化】
インテル Parallel Studioを使って並列化プログラミングを試してみた
並列プログラミングの効率的なデバッグを実現する「Parallel Inspector」


【TBBシリーズ】
  1. インテル スレッディング・ビルディング・ブロックの概要
  2. インテルTBBから学ぶループの並列化
  3. スレッドセーフとインテルTBBのコンテナ
  4. インテルTBBのスレッドクラス


【OpenMPシリーズ】
  1. OpenMPの基礎構文
  2. OpenMPの実行時ライブラリと並列ループ
  3. OpenMPのメモリモデルとfork- joinモデル

最近の記事
最近のコメント
月別アーカイブ
カテゴリ
Ada (9)
COBOL (5)
C (9)
C++ (11)
C# (370)
D (25)
Java (8)
Perl (1)
Ruby (14)
PHP (2)
Boo (2)
Cobra (2)
LISP (6)
F# (33)
HTML (0)
XHTML (0)
CSS (0)
XML (0)
XSLT (0)
Scala (4)
WPF (0)
WF (2)
WCF (0)
LINQ (4)
MONO (5)
Linux (0)
MySQL (0)
ブログ内検索
リンク
最近のトラックバック
RSSフィード
ブロとも申請フォーム

この人とブロともになる

QRコード
FC2カウンター