「不思議だ」の日記

Assy(在導万創)のブログ。デザイナー見習いの作家です。小説と詩集と日記を書いています。

22-コンピュータ3

コンピュータ3

IBM 16:04

会社には、パーソナルなものと、ビジネス向けの顧客戦略がある。
家庭だけではなく、企業向けの商売もある。
IBMなどが、スーパーコンピュータやワークステーションを作っていると、
それは普通、企業や公職向けに作る。
それはそれで儲かる。
そういうところに賢い技術が多い。

Microsoft 16:09

IBMMicrosoftは、本当に賢いから、誰も勝てない。
それこそ、ソフトバンクGoogleが頑張れば勝てる。
誰もしない。すぐに負ける。

IBM 16:40

IBMは、山ほど金がある。Eclipseを作るしかない。
JavaOracleは賢い。
考え方として、オープン技術や自社の囲い込みがある。
企業向けの技術としては、普通、Microsoftを使う。
バカではないが、出来ない人間が多いから、C#と.NETにする。
そういうこともないか。

日本のIBM 16:48

日本のIBMとしては、富士通や日立、NTTがある。
スマートフォンはバカだが、ああいうものはバカで良い。
しかし、結構賢いのがスマートフォンだ。
アプリケーションが多すぎていい。

パソコン 15:50

パソコンは、ハードウェアを考えないと分からない。
僕は、そこが分かっていない。
Intelと2進数を考え、メモリを知らなければ、何も分からない。

Linux/UNIX 16:36

Linux/UNIXのコマンド。
http://itpro.nikkeibp.co.jp/article/COLUMN/20060224/230573/
http://x68000.q-e-d.net/~68user/unix/
http://linuxjm.sourceforge.jp/
Coreutilsのマニュアル。左下の方にあります。
http://www.bookshelf.jp/
LFS
http://www.linuxfromscratch.org/lfs/
Coreutilsは、GNU/Linuxの基本的なコマンド。
BASHは、GNU/Linuxコマンドラインの中心となるシェル。
GCCなど、GNUツールチェインは、開発に必要なツール。
Xは、ウィンドウを管理し、表示する。
GTK+/QtはXのツールキット(ウィジェット)で、ボタンやメニューを表示する。
GNOMEGTK+KDEはQtを利用した統合デスクトップ環境だ。

Windows 16:39

Windowsの基本は、NTカーネルと、ウィンドウを管理するOS、MS-Windows
COMやGDI、レジストリなどの技術がある。
最近は、.NETなどのさらなる技術を搭載している。

ハードウェア 16:53

出典:入門ビジュアルテクノロジー 半導体のすべて
導体は電気を良く通すもので、絶縁体は通さないものだが、
その中間の性質をもつものを、半導体と呼ぶ。
半導体の材料として一番使われているものは、シリコン。
地球上では、酸素についで多く存在している。
集積回路(IC)は、回路素子を多数集めて、何らかの電気的働きをさせたもの。
ICの中で、最もポピュラーなのがトランジスタである。
ICを分類すると、メモリ、ロジック、ASIC、システムLSIがある。

続き 17:00

半導体をつくる材料には、シリコン単体と化合物の2種類がある。
そして、シリコン半導体はその基本動作と使用するキャリアの違いで、
(1)バイポーラ型、(2)MOS型の2種類に分けられる。
バイポーラ型とは「2極性」という名前の通り、
ホールの正電荷と、電子の負電荷の「両方の極性」という意味で、
その動作において2つのキャリアを用い、
CMOSより高速という利点がある。
バイポーラ型トランジスタは3端子を持つデバイスで、
エミッタ(E)、ベース(B)、コレクタ(C)の3導電領域を持っており、
その電動型の組み合わせの違いによって、
さらに「NPN型」「PNP型」の2つがある。

メモリ 17:04

半導体メモリとは、さまざまな情報を記憶し保持し、
必要に応じて取り出せる機能を持った半導体バイスのことである。
メモリでは、ワード線と呼ばれるXアドレスと、
デジット線またはビット線と呼ばれるYアドレスが
マトリックス状に配列されている。

足し算 17:09

2進法で足し算をするためには、
「下位の桁からの桁上がり」を考慮した上で、
「各桁の和」を取れば良い。
これから2つの2進数A、Bの和について、
各桁の、1または0の組み合わせと、
和、桁上がりの関係を示す
真理値表と、論理式が得られる。
この論理を実現するために、
さまざまな論理回路が考えられるが、
例として、AND-OR構成などで実現できる。

引き算と掛け算 17:12

減算機は、加算機とインバータで作ることが出来る。
加減算機も作れる。
掛け算は、論理積(AND)である。
NANDゲートは、「A NAND B」で「AかつB」の否定である。
NORゲートは、「A NOR B」で「AまたはB」の否定である。
ANDゲートは、「AかつB」、ORゲートは、「AあるいはB」である。
それらの論理回路を作る。

これ以上 17:16

これ以上を読みたい人は、本を買ってください。

論理回路 17:22

論理回路半導体の通り動いているだけなのかもしれない。

Java 17:39

出典:Javaの道
出典:とほほのJava入門
繰り返しの例。

public class ExControl {
  public static void main(String[] args) {
    //初期値i=0、iが5以下の間forループ内を実行
    for(int i = 0; i <= 5; i++) {
      System.out.println("iは" + i + "です。");
    }
  }
}
条件式の例。
public class ExControl2 {
  public static void main(String[] args) {
    int score = 70;
    char grade;

    if (score >= 90) {
      grade='A';
    } else if (score >= 70) {
      grade='B';
    } else if (score >= 50) {
      grade='C';
    } else {
      grade='D';
    }

    System.out.println("あなたは" + grade + "判定です。");
  }
}

クラスの例。

class Person {
    String myName;
    int myAge;
    public void SetName(String name) {
        myName = name;
    }
    public String GetName() {
        return myName;
    }
    public void SetAge(int age) {
        myAge = age;
    }
    public int GetAge() {
        return myAge;
    }
}

クラスの利用例。

class PersonTest {
    public static void main(String[] args) {
        Person tanaka = new Person(); // 田中さんオブジェクトを作る
        tanaka.SetName("Tanaka");     // 田中さんの名前を設定する
        tanaka.SetAge(26);            // 田中さんの年齢を設定する

        Person suzuki = new Person(); // 鈴木さんオブジェクトを作る
        suzuki.SetName("Suzuki");     // 鈴木さんの名前を設定する
        suzuki.SetAge(32);            // 鈴木さんの年齢を設定する

        System.out.println(tanaka.GetName());
        System.out.println(tanaka.GetAge());
        System.out.println(suzuki.GetName());
        System.out.println(suzuki.GetAge());
    }
}

メソッドの例。

class MethodTest {
    public static void main(String[] args) {
        System.out.println(add(3, 5));
    }
    static int add(int x, int y) {
        return (x + y);
    }
}

JavaC++ 17:48

JavaC++の違いは、メモリ管理である。
C++では、メモリを自分で管理する。
パソコンは、メモリの機械だ。
クラスなどの機能は、基本的に同じだ。
C++でないCでも、オブジェクトのポインタとして、
基本的に似たように作る。
それが、Linuxカーネルである。

public 20:12

publicの重要な点は、それだけが他から参照できるところ。
つまり、IDEの入力補完で表示される。

Java 14:54

文字列を検索する。

import java.io.*;

class Sample
{
  public static void main(String args[]) throws IOException
  {
    System.out.println("文字列を入力してください。");
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String str1 = br.readLine();
    System.out.println("検索文字を入力してください。");
    String str2 = br.readLine();
    char ch = str2.charAt(0);
    int num = str1.indexOf(ch);
    if(num != -1)
      System.out.println(str1 + "の" + (num+1) + "番目に「" + ch + "」がみつかりました。");
    else
      System.out.println(str1 + "に「" + ch + "」はありません。");
  }
}

エンジニア 19:38

エンジニアは、技術を学ぶ。
設計する。それは、きちんと「正しく」動くべきである。
パソコンの悪い点は、何も分からず、コードで作っている。
普通の機械の良い点は、作る人間が、作るものを、きちんと分かっている。
パソコンは、分かっていない。

パソコン 19:40

パソコンの良い点は、なんでも自動で動く。
サーバー・アプリケーションをPerlで作れば、
何もしなくても、自動で掲示板が表示される。
内容を手動で管理しなくても、きちんと動く。

一般ユーザー 19:41

一般ユーザーから見れば、ファイルという概念が賢い。
新規作成したものを、コピー・削除出来る。
それだけではない。
形式を変換して、スマホや音楽プレイヤーで再生できる。

ネット 16:31

ネットを作ったのは、ネットスケープだ。
あれのおかげで、URLが世界に広まった。
ブラウザ戦争で、無残にもマイクロソフトに負けた。
Mozillaという名前でオープンソース・プロジェクトになり、
Firefoxがどこかいつかに流行っていたが
最近はGoogleに負けそうだ。

ケータイ 16:34

ケータイはつまらないから、悪い。
メールがそのままツイッターになって、
アンドロイドになっている。
要らないものだ。
しかし、アンドロイドは、バカに見えて賢い。
バイルでブログを更新でき、
世界中のラジオが聞け、
音楽をシャッフルで再生できる。
それくらいを使えば賢い。

Google 16:39

Googleは、ネットを賢いと思っている。
そこが悪い。
それに、皆をロボットにしたい、悪い会社を買収した。
そこがおかしい。一番悪い。

Sun 16:42

Sunも買収された。
商用UNIXSolarisと、CPUのSPARC、言語のJava、ネットワーク・ファイルシステムの会社だった。
ビルゲイツに負けた。
声高らかに批判していたから仕方ない。
Oracleが買収した。
Java坊やが、Oracle坊やになっている。
永遠なのがJavaだ。

Apple 16:44

Appleは、ジョブズが死んで意味がない。
一番意味がないのは、ビルゲイツが、Windowsのタスクバーをバカにした。
賢くなったとはいうが、そんなところだけを変えるのがバカだ。
ビルゲイツも、バカをしたいだけだ。

パソコン 16:46

パソコンなんか要らない。
大型のアンドロイドがあれば、それでいい。
そういうものに変わる。
意味がないが。

IBM 16:46

IBMは、いつも通り、上の方で、業務用を作っているだけだ。
むしろ、IBM製に戻るのではないか。

Linux 16:50

Oracle, Adobe, IBM, Google, AOL, Yahoo, AppleがつるんでOSを作るのが良い。
それが、Linuxだ。
まだトーバルズがやっているのが悪い。
それこそ、そんなことを言う人間はクズだ。

メール 16:52

メールもしないから、顔文字も分からない。
昔ネットで見ていたが、キモイ。

GNU 17:03

GNUという発想は誰でも分かる。
皆のものを、フリーに作りたい。
無償、自由、共有、ボランティアで作りたい。
金はとらない。同じコードで、クローズドなものを作ってはならない。

Linux 17:04

Linuxは、適当に楽しいだけの主義だ。
プログラミングは、作曲みたいに簡単だ。
Red HatSuSEDebianUbuntuが、適当にそれぞれ作っている。

Java 17:11

Javaのドキュメント
http://docs.oracle.com/javase/7/docs/
日本語(バージョン6)
http://java.sun.com/javase/ja/6/docs/ja/
I/Oなどを見ればいい。

Java 17:21

Javaは無料だ。Eclipseも無料だ。
Javaが一番優れている。AndroidJavaだ。

Linux 22:13

Linuxは、悪くはないが、悲惨だ。

パソコン 22:46

パソコンは、メッセージとクラスの機械だ。
本当は、プログラムを動かす機械だ。
LispEmacsなどで動く、マクロ的な言語だ。
PerlPHPは、サーバーアプリケーションを作ることの多い、スクリプト言語だ。
Cは、手順通り動く、手続き型言語だ。
C++は、機能の増えたCで、オブジェクト指向であり、クラスが動く。
Javaは、VMで動く、オブジェクト指向の賢い言語だ。

プログラム 22:48

まず、Cでプログラムを知ろう。
ポインタと関数と構造体のパラメータから、簡単なプログラムを動かす。
メッセージループや返り値も分かると、なおいい。
条件式と繰り返しを分かること。
そして、C++である。
クラスとオブジェクト指向で、グラフィカルで高度なプログラムを動かせる。

再利用 01:19

プログラムは、再利用性が重要である。
コマンドや関数、クラスやライブラリが完璧で、
パイプやシェル、シェルスクリプトからの再利用性が高く、
共有度が多いのがUNIXだ。
マイクロカーネルならば、なお良い。
たくさんの小さな機能の積み重ねである。

ロボット 20:45

#include <stdio.h>
#include <stdlib.h>

struct _obj {
  int o;
  int n;
};

void action(int* p, int* q, struct _obj *obj){
  if(*p==0){
    if(*q==0){
      printf("[1] テレビは、つまらない\n");
    }
    if(*q==1){
      printf("[2] テレビは、面白い\n");
    }
  }
  if(*p==1){
    if(*q==0){
      printf("[3] パソコンは、つまらない\n");
    }
    if(*q==1){
      printf("[4] パソコンは、面白い\n");
    }
  }
  if(*p==2){
    if(*q==0){
      printf("[5] テレビやパソコンは、機械だ。\n");
    }
    if(*q==1){
      printf("[6] テレビやパソコンは、生き物ではない。\n");
    }
    if(*q==2){
      printf("[7] テレビって何なのだろう。\n");
    }
  }
  if(*p==3){
    if(*q==0){
      printf("[8] テレビとパソコンは好きだ。\n");
    }
    if(*q==1){
      printf("[9] テレビとパソコンは嫌いだ。\n");
    }
    if(*q==2){
      if(obj->n==0){
        printf("[10] 比較すると、テレビの方が普通だ。\n");
      }
      if(obj->n==1){
        printf("[11] 比較すると、パソコンの方が普通だ。\n");
      }
    }
    if(*q==3){
      if(obj->n==0){
        printf("[12] テレビよりパソコンの方が普通かな。\n");
        obj->n=1;
      }
      else if(obj->n==1){
        printf("[13] パソコンよりテレビの方が普通かな。\n");
        obj->n=0;
      }
    }
  }
  if(*p==4){
    if(*q==0){
      if(obj->o==0){
        printf("[14] リンゴが好きです。\n");
      }
      if(obj->o==1){
        printf("[15] みかんが好きです。\n");
      }
    }
    if(*q==1){
      if(obj->o==0){
        printf("[16] リンゴより、みかんが好きになりました。\n");
        obj->o=1;
      }
      else if(obj->o==1){
        printf("[17] みかんより、リンゴが好きになりました。\n");
        obj->o=0;
      }
    }
  }
}

int main(void){
  int p;
  int r;
  struct _obj obj;
  p=0;
  r=0;
  obj.o=0;
  obj.n=0;
  while(1){
    p=rand()%5;
    r=rand()%5;
    action(&p, &r, &obj);
  }
}

全部 21:00

なぜか、自分は全部分かっている。
パソコンは、つまらない機械だ。
誰も居なかった。最近、友人も多い。そう、最近が良い。
悪い人間に悪い方が良い。
心理を考えなさい。心を落ち着かせれば、治る。
全部嫌いになっただけで、何も分からない。何か好きな方が良い。
ヒトラーが好きになったのが間違っている。
Linuxソ連が好きになったのが間違っている。
このロボットには、物理世界がない。
あとは、すでに書いたことしか思えない。
それから、正しいかどうか判断しない。
あとは、ループして出力しているだけで、何も考えていない。
Linuxを消して、安心が好きになると良い。
Linuxは悪い。全て滅びた世界だ。
分からなくていい。一切わかるのは、つらい。
Linuxが悪かった。消すだけで楽になった。
ifは1つで良く見える。ifの中にifがある意味がない。
2つあると、何かが賢いような気がする。

プログラム 15:54

プログラムとは何なのだろうか?
コンピュータは、プログラムを動かすだけの機械だ。
プログラムは、コンピュータという基礎を使って、
全ての処理を考えられるだけ詰め込んでいる。
それで、全部出来る。
計算は、高度だ。
しかし、やっていることは、文字をコピーしているだけだ。

ストレージ 15:56

ストレージの大量化によって、いよいよ、全て賢くなった。
あとは、全てのコンピュータを1つに繋げる、クラウドやサーバーが賢い。
最近の流行は、モバイルだ。
そうすると、次は何だろう。

パソコン 15:57

パソコンには、もう何もない。
ブルーレイはつまらない。ビデオなんか、醜くていい。

コミュニケーション 15:58

コミュニケーション・サイトを賢くすればいい。
Blogやツイッターフェイスブックをさらに改良する。

Google 16:01

Googleという発想は、意味がないが、賢い。
なぜなら、ストリートビューまで見れるのは、ありえない。
そのうち、音声で対話して、
世界中と通訳を交えて話が出来るようになるかもしれない。

部品 18:25

機械は、部品が賢い。
アンテナや、ブラウン管、スピーカー、マイクなど。

パソコン 18:26

それを、USBで高度に組み合わせることが出来るのが、
ハードウェアとしてのパソコンと、OSである。
つまり、なんでもできる、可能性あふれた機械がパソコンである。