fc2ブログ

ネタつつき101 - 自らの体質の古さを変えられない日本のIT業界

 私は以前から日本のIT業界の構造に疑問を抱いていました。その疑問とは、「何故こんなに古い体制なのか」という事です。IT業界はドックイヤーだと言われています。その言葉は一部真実です。情報技術は日進月歩で、技術者は変化し続けなくては生き残れません。またIT業界は、新しいビジネスを売り文句にしています。確かに情報技術(IT技術)を使えば、ビジネスプロセス・リエンジニアリングにより導入した会社は進化します。
 しかしながら、常に変化し新しいビジネスを提供するとされる、日本のIT業界自身はどうなのでしょうか?私は時代錯誤の産業構造を持つ、変われない業界だとしか思えません。今回の記事はその件について書きます。
 第一に、日本のIT業界の基本的構造は多重請負による官僚的構造です。IT業界の実体を知らない人は、未来的だというイメージを持っているようですが、やっている事は数百年前の産業そのものです。人月単価で人の労働力を売り買いし、親会社から子会社へと仕事を回す形で成り立っています。今時こんな時代錯誤も甚だしい産業構造を維持する日本のIT業界が、先進的だとは口が裂けても言えません。技術者達はよく奴隷産業だと揶揄しています。
 第二に組織体制が古く、非効率的な仕事方法をしています。IT業界の実態を知らない人は、先進的技術を駆使した未来的な職業だと思っているようですが、基本的なやり方は数百年前と同じです。アダムスミスが提唱した分業を行い、仕様定義・分析・設計・実装・テスト・保守といった仕事が分断化されています。そのプロセスの分断化により、悪い意味で官僚的になり、仕事の生産性とサービス品質は下がる一方です。新しい技術が次から次へと出ていますが、それを有効に生かす職場環境がありません。現場の技術者が非効率的な根性論でこき使われているだけです。
 私はこの現状が残念でなりません。1900年代はITでリードするアメリカすら日本のIT業界の技術力を認めていました。しかし今は見る影がありません。目に見えてアメリカやインドに負けていますし、つい最近ITに乗り出した中国や韓国にも負けているかもしれません。技術大国日本は過去の栄光です。
 日本のIT業界は、他の業界に業務改善を売るよりも自社をビジネスプロセス・リエンジニアリングするべきだと思えてなりません。かく言う私はIT会社に対してコンサルティングする際に、ビジネスプロセス・リエンジニアリングを提言しています。ビジネスプロセス・リエンジニアリングに成功した会社はもちろん業績が伸びています。
 本心を言えば、ビジネスプロセス・リエンジニアリングの考えは既に古いと考えています。しかしながら、ビジネスプロセス・リエンジニアリングも出来ない状態では次の段階へ進めない事は明白です。他業種の業務改善化を提唱するIT業界は、もっと進化するべきだと考えています。
 業務の効率化や改善を売りにしているIT業界が、古い非効率的構造をしていては説得力がありません。IT不況になるのも当然だと言えるでしょう。日本のIT業界が他の業界のお手本になる事を強く願っています。
 質の低下が激しいと言われていますが、日本のIT業界にも優秀な人がまだまだいます。意思さえあれば技術大国日本は復活します。今こそ、IT業界が先頭に立って日本を復興させるべきです。
スポンサーサイト



テーマ : 企業経営
ジャンル : ビジネス

初心者のためのC#プログラミング本格入門28 - 文字列の削除と2つの変数を返す方法

 この記事は初心者のためのC#プログラミング本格入門27の続きです。前回は、文字列の一部を切り取る方法を解説しました。今回は、任意の計算式を解析するために、文字列の一部を削除する方法と、2つの値を返すメソッドを定義する方法について解説します。
 前回解説した方法を使えば、計算式の中から数値を取り出せます。しかしながら、C#の文字列は不変(変わらない)ので、前回のプログラムでは毎回同じ数値を返します。これでは2個目の数値を取り出せません。この問題を解決するには、取り出した数値を式から削除する処理が要ります。そして、この「式から数値を取り出す処理」をメソッド化するには、加工した式と数値の2つを返す必要があります。
 今回もその方法をサンプルプログラムで示します。

class Test
{
    static void Main()
    {
        //1回目
        string inputValue = " 12345 + 6789 ";
        System.Console.Write( "指定した式:" );
        System.Console.WriteLine( inputValue );
        System.Tuple<int, string> result = GetValue( inputValue );
        System.Console.Write( "取り出した数値:" );
        System.Console.WriteLine( result.Item1 );
        System.Console.Write( "残りの文字列:" );
        System.Console.WriteLine( result.Item2 );
        System.Console.WriteLine();

        //2回目
        inputValue = result.Item2;
        System.Console.Write( "指定した式:" );
        System.Console.WriteLine( inputValue );
        result = GetValue( inputValue );
        System.Console.Write( "取り出した数値:" );
        System.Console.WriteLine( result.Item1 );
        System.Console.Write( "残りの文字列:" );
        System.Console.WriteLine( result.Item2 );
        System.Console.WriteLine();

        //3回目は数字がないのでエラー
        inputValue = result.Item2;
        result = GetValue( inputValue );
    }

    static System.Tuple<int, string> GetValue( string inputValue )
    {
        //各種変数を準備
        int startIndex = 0;
        int endIndex = inputValue.Length;
        bool startFlag = false;

        //数字の初めと終わりを記録
        for ( int i = 0; i < inputValue.Length; i++ )
        {
            if ( System.Char.IsDigit( inputValue[ i ] ) )
            {
                //初めて数字が出たら位置を記録
                if ( startFlag == false )
                {
                    startIndex = i;
                    startFlag = true;
                }
            }
            else if ( startFlag == true )
            {
                //数字が途切れたら位置を記録してループ終了
                endIndex = i;
                break;
            }
        }

        //数値を取り出す
        int count = endIndex - startIndex;
        string outputValueString = 
            inputValue.Substring( startIndex, count );
        int outputValue = 0;
        bool success = 
            int.TryParse( outputValueString, out outputValue );
        if ( success == false )
        {
            string errorMessage = "数値を含んだ式を指定して下さい";
            System.Console.WriteLine( errorMessage );
            System.Environment.Exit( 1 );
        }

        //取り出した数値以外の文字列を取得
        string remain = inputValue.Remove( startIndex, count );

        //結果を返す
        System.Tuple<int, string> result = 
            new System.Tuple<int, string>( outputValue, remain );
        return result;
    }
}

サンプルプログラムの目玉は、RemoveメソッドとSystem.Tuple型です。
 Removeメソッドは、開始位置と削除する文字の数を指定して呼び出します。Removeメソッドを呼び出すと、指定された範囲の文字を削除した後の文字列を返します。ただし、C#の文字列は不変なので、Removeメソッドを呼び出した文字列型の変数の値そのものは変化しません。
 長くなったのでSystem.Tuple型については次回解説します。

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

ネタつつき100 - アンテナの張り方/技術の学び方

 ネタつつき99 - 移行で失敗しないためにするべき事にて、「技術に対するアンテナを持ち、常に努力していれば移行に失敗する事はありません。」と書きましたが、そのアンテナの張り方を間違えると、新技術の虜になってしまいます。それでは、健全な技術者になれません。そこで今回は、正しいアンテナの張り方/技術の学び方について語ります。
 最初に目を向けるべき点は技術の利点です。技術は適材適所で使うものなので、利点が分からないと使い道がありません。その中でも特に、他の技術よりも優れている点をよく把握しなければなりません。比較する技術よりも優れている点を把握しておくと、正しく技術を使いこなせるようになります。ただ新しいだけで終わってはなりません。
 技術の利点をよく把握した後は、技術の弱点を見つけ出さねばなりません。どの様な素晴らしい技術にも必ず弱点は存在します。弱点が分かるほど深く学習せねば、その技術を使いこなせません。弱点が分からない新技術は貴方をロックし、技術移行の判断を鈍らせます。
 最後にチェックするべき点は、技術がカバーする範囲です。いくら画期的な技術であっても対象とする範囲があります。その範囲をよく把握し、旧技術の範囲をどうカバーするのかを把握せねば、真にその技術を使いこなせません。
 この3点に注意し新しい技術を学べば、貴方の道具箱の中身が増えます。ただし、新しい技術を習得したからと言って、直ぐに古い技術を捨ててはなりません。新技術の弱点と範囲外の事柄を旧技術で補強する姿勢が肝要です。
 具体例をあげると、オブジェクト指向を使いこなすには、構造化分析(プロセス指向)とデータ中心アプローチ(データ指向)の考え方も取り入れる必要があります。機能が複雑なシステムを構築する際には、構造化分析が有効です。また、データ中心アプローチの考え方を把握せねば、対象となる部門でしか役に立たないシステムを構築するという愚を犯す可能性が高いです。
 纏めると、技術者は広い視野と高い柔軟性を持たねばならないという事です。排他的な技術者は成長しません。広く深く技術を学び、永遠に成長する技術者を目指しましょう。

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

持続的に利益を得るにはIT技術者との交流が必要

 私は仕事で経営者とお話しする機会が多いのですが、その時よく聞く意見が「情報システムの導入に失敗した」と、「導入直後は効果があったが、時間がたつにつれて役に立たなくなった」です。この問題については、色々な要因が考えられますが、解決方法そのものは簡単です。日頃からIT技術者(情報技術者)と親交を持つ様にすれば大半の問題は解決します。
 情報システムは万能薬ではありません。過剰な広告が目立ちますが、会社の実情に合った情報システムを適切に運用すれば利益をもたらすのであって、導入したからと言って理由もなしに売上が2倍になったり、コストが50%カットされたりしません。
 ここで重要なのは、「会社の実情に合った」という部分です。会社の実情は日々変化します。従って、その変化に対応しないと、折角購入した情報システムは無駄になります。それどころか、業務内容が変化し、情報システムが足かせとなってしまうケースすらあります。
 しかしだからと言って、情報システムを役立たずと非難して導入をしないというわけにはいきません。この情報化社会を生き抜くには、情報システムは必須のものです。情報が存在しない業務はありませんし、その情報を人手だけで処理するのは限界があります。
 人間は間違える生き物ですし、全社員が熟練のプロではありません。新入社員でも間違えないようにせねばなりません。熟練のプロならば可能かもしれませんが、残念ながら望めません。昨今では人件費をカットするために、パート/アルバイトで運用する会社が大半です。そのパート/アルバイトの人を、一夜にして熟練のプロと同じレベルまで引き上げられません。そうした事から情報システムは必ず必要となります。万が一、熟練のプロが多い会社ならば、雑務で熟練のプロを煩わせないために情報システムが必要となります。
 情報システムを導入する際においても、会社の利益を考えて情報システムを評価できる人物が必要となります。この件については、以前の記事と重複を避けるために省略します。
 日本では、IT技術者と情報システムに対する風評被害の影響により、多くの会社は特別な人/物だとの誤解が蔓延しています。しかし真実はそれとは異なります。会計社経営に於いて、情報システムは当たり前のものであり、IT技術者は営業マンと同様に必要かつ一般的な人です。
 幸い日本には優秀なフリーエンジニアは沢山います。何故ならば、日本のIT業界は優れた技術者に対して不遇な扱いをし、それが原因で優れた人ほど流出するからです。それを利用しない手はありません。優秀な技術者との交流を持ち、会社を継続的に改善しましょう。そうすれば、時代の変化に負けず利益を出し続ける会社になる事が出来ます。

テーマ : 企業経営
ジャンル : ビジネス

再利用という名の幻想

 オブジェクト指向の話題で必ず出るのが再利用という概念です。その中で、オブジェクト指向を使えば全てのものが再利用できるかのような誇張した表現をたまに目にします。しかしながら、結論を先に言いますと、再利用できないオブジェクトは存在します。今回はその理由とともに、オブジェクト指向の現実を語ります。
 オブジェクト指向の解説で「全てのものはオブジェクトで表現でき、オブジェクト指向を使えば既存のオブジェクトを再利用できる。」という旨の謳い文句を見かけます。この様な文章を見ると、まるでオブジェクト指向が万能薬の様ですが、現実はそれほど甘くありません。全てをオブジェクトで表現できるのは、半分嘘で半分真実です。そして、既存のオブジェクトを再利用できるというのも半分嘘で半分正解です。
 オブジェクトは抽象的な概念であり、全ての物事は抽象的に表現可能であるというのが真実です。そして、抽象的なものは目的が合致すれば再利用できるというのが実態です。これからそのメカニズムを詳しく解説します。
 少々あざとい例ですが、システム利用者オブジェクトを考えてみます。このシステム利用者オブジェクトは如何なるシステムでも再利用できるでしょうか?答えは否です。何故ならば、システム利用者オブジェクトは、問題領域に左右されるからです。販売システムならば「買う」メソッドを持っているでしょうし、医療システムならば「受診」メソッドがあるでしょう。
 これは抽象化の本質に起因する問題です。抽象化とは、複雑な現実の細部を意図的に無視して扱いやすくする事ですので、視点によりオブジェクトの性質が変わります。従って、再利用できない、もしくは再利用する価値のないオブジェクトは存在します。当然と言えば当然のことなのですが、意外とこの事実を忘れている人が多いようです。
 誤解がないように明記します。だからといって、オブジェクト指向は役に立たない概念ではありません。しかしながら、過度の期待による幻想は抱かないようにせねばなりません。如何なる技術もその本質をよく理解して使用せねばならないのです。

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

ネタつつき99 - 移行で失敗しないためにするべき事

 ネタつつき98 - 移行できないのは真剣でない人を読んで、移行に乗り遅れないためにどうすればいいのかと考えた人もいるかと思います。また、ドックイヤーなIT業界で不安を抱いている人も多いと思います。そこで今回は、私が実践している素早く移行する方法を紹介します。
 具体例がないと分かり難いと思いますので、VB6からVB.NETへの移行を例に挙げます。私は移行に失敗する人がこれほど多いとは思いませんでした。何故ならば、VB6からVB.NETへの移行は自然な流れだったからです。
 VB6からVB.NETへ移行できない人がよく挙げる理由は「オブジェクト指向」です。確かにVB6は完全なオブジェクト指向言語ではありません。しかしながら、マイクロソフト社は突然オブジェクト指向言語を目指したのではありません。.NETへなる前に、VBにオブジェクト指向言語の機能が徐々に導入されていました。それに加え、オブジェクト指向へパラダイムシフトする流れは随分前からありました。オブジェクト指向の概念を新しいという人が意外と多いのですが、オブジェクト指向の概念は相当古いものであり、突然発生したのではありません。
 次にVB.NET並行出来ない理由は、「移行用ツールが不足している」というものです。しかしながら、マイクロソフト社の体制は万全だったと私は考えています。今までの歴史を思い返すと分かりますが、マイクロソフト社は既存のお客様を大切にします。現にWindowsの移行も徐々にしています。それに加え、当時コンポーネント指向プログラミングが普及しいたという事実を考えてもVB6からVB.NETへの移行はそれ程苦痛ではありませんでした。ですから、ツールを言い訳にするのは恥ずかしいと私は考えています。
 この事例から一つの答えが見えてきます。それは常にアンテナを張る事の大切さです。技術者は鍛錬も仕事のうちです。技術に対するアンテナを持ち、常に努力していれば移行に失敗する事はありません。それはどの職種のプロもしている事です。人生を技術にささげるのがプロであり、その基本さえ守っていれば自ずと道は開けます。

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

システム開発における情報セキュリティ3

 この記事はシステム開発における情報セキュリティ2の続きです。前回は概要を書きました。今回は話しを進めて、システム開発で最初にするべき情報セキュリティの取り組みについて解説します。
 最初にするべき事は守るべき対象である情報資産を明らかにする事です。守るべき情報が分からなければ、正しいセキュリティ対策は出来ません。これが、特定の工程でセキュリティ対策をしても上手くいかない理由です。
 情報資産とは、業務をする上で発生、もしくは必要となる全ての情報です。ニュースで顧客情報流出が大きく報道されていますが、大切な情報はお客様の個人情報だけではありません。業務に関する情報も同様に大事なのです。何故ならば、もし商品開発の情報を習得されれば、会社に深刻なダメージを与える可能性があります。また、業務の細かい情報も顧客情報や企業の機密情報を窃盗する為の糸口になります。
 情報資産を知る方法は、業務分析およびシステム情報の収集です。分析工程でユーザ企業の業務に関する情報を把握する事が出来ます。ですが、それだけでは不十分です。開発したシステムで新しい情報も発生します。その情報を情報資産として関する事が大事です。
 開発したシステムで発生する情報とは、新しい業務手順で発生する情報、システムの機能を達成する為に必要な情報、開発体制に関する情報などです。システムが新しくなると、自然と業務手順が変わり、それが原因で新しい情報が生まれます。また、セキュリティに関する事件が発生した際に、開発体制に関する情報を管理していれば脆弱性と犯人を絞れます。
 日本では事件が起こってから考え、「想定外」で済ませる傾向がありますが、情報セキュリティではその姿勢は致命的な誤りです。<間違いや事件が起こらない事を信じて待つのではなく、間違いや事件は発生する前提で考えます。それが情報セキュリティの基本姿勢です。想定外を想定するのが基本とも言えます。

テーマ : ソフトウェア開発
ジャンル : コンピュータ

初心者のためのC#プログラミング本格入門27 - 文字列の一部を切り取る方法

 この記事は初心者のためのC#プログラミング本格入門26の続きです。前回は、新しい繰り返し文を解説しました。今回は、文字列の一部を切り取る方法を解説します。
 前回「計算式から数値を取り出す」ために必要なfor文を学びました。これで、計算式を解析するために、数値や演算子の位置を割り出す事が出来るようになりました。あとは、その位置情報に基づいて文字列の一部を切り取るだけです。
 文字列の一部をくり取る方法をサンプルグラムで示します。

class Test
{
    static void Main()
    {
        //各種変数を準備
        string inputValue = " 12345 ";
        int startIndex = 0;
        int endIndex = 0;
        bool startFlag = false;

        //数字の初めと終わりを記録
        for ( int i = 0; i < inputValue.Length; i++ )
        {
            if ( System.Char.IsDigit( inputValue[ i ] ) )
            {
                //初めて数字が出たら位置を記録
                if ( startFlag == false )
                {
                    startIndex = i;
                    startFlag = true;
                }
            }
            else if ( startFlag == true )
            {
                //数字が途切れたら位置を記録してループ終了
                endIndex = i;
                break; 
            }
        }
        System.Console.Write( "開始位置:" );
        System.Console.WriteLine( startIndex.ToString() );
        System.Console.Write( "終了位置:" );
        System.Console.WriteLine( endIndex.ToString() );

        //数字を取り出す
        int count = endIndex - startIndex;
        string outputValue = inputValue.Substring( startIndex, count );
        System.Console.Write( "取り出した数値:" );
        System.Console.WriteLine( outputValue );
    }
}

ちょっと長いですが、新しいメソッドを覚えればこのプログラムを理解できます。
 IsDigitメソッドは、文字が数字かどうかを判定し、数字ならtrue、それ以外ならばfalseを返します。このメソッドを使えば、文字列内の数字を判別する事が出来ます。今回の目的にうってつけのメソッドです。
 Substringメソッドは、文字列の一部を取り出します。このメソッドは、開始位置と文字数を指定します。なお、処理対象となった文字列(今回はinputValue)は変更されません。つまり、文字列は不変なのです。この点はC#プログラミングに於いて非常に重要なので絶対に覚えて下さい。
 今回はこれで終わりです。文字列と文字という関係がこういったプログラミングを可能にします。その便利さが分かっていただけると嬉しいです。

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

ネタつつき98 - 移行できないのは真剣でない人

 IT業界では様々な技術が次から次へと発生します。その流れの中で、「移行できない人」が見受けられるのもIT業界の特徴です。例えば、オブジェクト指向、VB.NET、アジャイル開発・・・などが挙げられます。私はこれらの人を「プロとして真剣な態度とはいえない」と考えています。今回はその理由を通じてプロとしての考え方について書きます。
 アンチオブジェクト指向派と呼ばれる人々がいます。それは、構造化指向もしくはデータ指向の考え方から抜けきらず、オブジェクト指向を真面目に学ばずに、オブジェクト指向を頭から否定する人の事を指します。これらの人々は大変問題です。何故ならば、理論的な議論が出来ないうえに製品の品質を下げるからです。
 オブジェクト指向は、従来あった構造化指向(プロセス指向)とデータ指向にあった弱点を克服するべく考案されたものです。主題ではないので弱点を簡潔に言うと「分析→設計→実装の流れが断片化する」と「変更に弱い」です。アンチオブジェクト指向派はその弱点から目をそむけ、自分の感情のままにオブジェクト指向を否定します。そもそも感情で否定しているので議論がかみ合わず、かといって弱点から目をそむけているので当然品質が下がります。最終的にそのツケを支払うのは、雇用主とお客様です。
 VB6を頑なに使用しVB.NETを否定する人々もいます。この種の人々もアンチオブジェクト指向派と同様の問題を抱えています。いえ、もしかしたらより酷いかもしれません。VB.NETと呼ぶとV6と関係のないプログラミング言語のように見えますが、実のところVB.NETとはVB10です。2002年に発売されたVB7はマーケティング的な意味合いからVB.NETと呼ばれました。それが原因でVB.NETと呼ぶ風習がありますが、実のところVB6派は古いバージョンのシステムソフトウェアを頑なに使用しているだけなのです。同じ言語の古いバージョンを支持するのはおかしな行為です。その行為で被害を受けるのはお客様です。
 最後に、アジャイル開発の考え方を頑なに否定する、ウォーターフォール派の人々もいます。ウォーターフォール・モデルは、変化に弱いという致命的な弱点を抱えています。しかし現実を直視すると、お客様の要望は常に変化するものです。ですから、どのような形であれ、アジャイル開発方法論の考え方を取り入れないと駄目なのは明白です。頑なに否定する人々は現実に目を向けていません。このツケもまた、お客様が支払う事になります。
 これら事例はまだまだあります。ですがもう十分でしょう。最終的に困るのは製品を買ったお客様です。品質が悪い商品を売り付ける行為はプロとしてあるまじき行為です。よりよいものをより早く提供するという心掛けは基本です。
 悪しき事例に出てきた人々に共通した特徴があります。それは、お客様と技術を軽視している点です。お客様の事を考えている普通のプロは技術を真剣に学び、技術の弱点を熟知してそれを克服する術を考えます。そのプロとして当然の行為をしていれば、非理論的な行為をして品質を下げる事はありません。
 念のために書きますが、私は新技術に無条件に飛びつけと言っているのではありません。より高品質な製品を開発する努力をするべきだと言っているだけです。オブジェクト指向、VB.NET、アジャイル開発といった新技術も当然弱点が存在します。銀の弾丸は存在しないのです。
 全ての技術は良い面と悪い面があります。また、全ての技術は何かの技術の改良版です。技術を真剣に学び、適切な場面で技術を使いましょう。そうすれば、ドックイヤーと呼ばれるIT業界でも長く生き抜く事が出来ます。

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

初心者のためのC#プログラミング本格入門26 - 位置を把握しながらループする方法

 この記事は初心者のためのC#プログラミング本格入門25の続きです。前回は、文字列から文字を取り出す方法について解説します。今回は、新しい繰り返し文を解説します。
 前回文字列から文字を1つずつ取り出すためにwhile文を使用しました。while文を使っても目的は達せられますが、もう少し読みやすいfor文がありますので、前回のサンプルをfor文に変えたものを使って解説します。

class Test
{
    static void Main()
    {
        string message = "123456789";
        for ( int index = 0; index < message.Length; ++index )
        {
            //変数indexで指定した位置の文字を取り出す
            char c = message[ index ];

            //取り出した文字を表示
            System.Console.WriteLine( c );
        }
    }
}

処理内容は前回と変わりませんが行数が減っています。その事から個の処理内容は、while文よりもfor文の方が向いていると言えます。
 for文の書き方は・・・

for ( 変数の初期化; 処理を続ける条件; 変数の増加 )
{
  繰り返し実行するプログラム
} 

となっています。前回サンプルプログラムと比べると、分散して記述されていたプログラム(変数の初期化、処理を続ける条件、変数の増加)が近い場所に記述されているのが分かります。
 初心者はC#の文法は多くて分かり難いと感じるかもしれません。しかし、for文のように使うべき局面が分かれば、決して無駄に多いのではない事が分かると思います。
 繰り返しになりますが、プログラミング言語はよくあるパターンを簡潔に表現する文法を提供しています。文法の数に惑わされず一つずつ丁寧に学習しましょう。

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

プロフィール

インドリ

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カウンター