#include <stdio.h> #include <stdlib.h> struct _obj { int p; int hara; }; int getlp(struct _obj *obj){ obj->p = rand()%4; return 1; } void action(struct _obj *obj){ if(obj->p==0){ printf("はらは"); if(obj->hara==0){ printf("減った。\n"); } else{ printf("減っていない。\n"); } } if(obj->p==1){ printf("楽しい。\n"); } if(obj->p==2){ printf("はらが減る\n"); obj->hara=0; } if(obj->p==3){ printf("おいしいごはんを食べた\n"); obj->hara=1; } } int main(void){ struct _obj obj; obj.hara=1; while(getlp(&obj)){ action(&obj); } }
----
ロボットの今後。
記憶を作って、覚えて考えるようにする。
認識を覚えて、知らないものを考える。
学習と考え方を作る。証明の仕方を覚えて、証明するようにする。
改良するためには、パラメータとメソッドを増やす。
ランダムが悪い。優先順位をつければ良い。
#include <stdio.h> #include <stdlib.h> struct _obj { int p; int w; int t; }; int getlp(struct _obj *obj){ obj->p = rand()%5; return 1; } void action(struct _obj *obj){ if(obj->p==0){ printf("ここは"); if(obj->w==1){ printf("日本です。\n"); } if(obj->w==2){ printf("ドイツです。\n"); } } if(obj->p==1){ printf("日本にやってきました。\n"); obj->w=1; } if(obj->p==2){ printf("ドイツにやってきました。\n"); obj->w=2; } if(obj->p==3){ printf("想像力を使います。"); printf("りんごは赤い。\n"); obj->t=1; } if(obj->p==4){ printf("想像力を使います。"); printf("りんごは白い。\n"); obj->t=0; } if(obj->p==3||obj->p==4){ if(obj->t==1){ printf("正しい。\n"); } else{ printf("間違っている。\n"); } } } int main(void){ struct _obj obj; obj.w=1; obj.t=1; while(getlp(&obj)){ action(&obj); } }
----
僕のロボットは、Cでオブジェクト指向だ。パラメータとメソッドを保持し、getとsetをしている。Javaにすると分かりやすいかもしれない。
ロボットが最初から、りんごが赤いのを正しいと知っているのがおかしい。そこだけ設定ファイルにすればいいかもしれない。
何が何なら正しいか、覚えて分かるのも良いが、複雑なプログラムになってしまう。
思考がすべてランダムなのはおかしい。優先順位をつけるのもいいが、それより、思考の後の次の思考を決めて、続けて言うようにすれば良いかもしれない。
◇◇
Linuxなんか、ただのスカイネットだ。
(スカイネットは、ターミネーター2に出てくる、悪いロボットの会社だ。)
◇◇
Cでは、close()したときにfree()するのを、JavaやC#では、ガベージコレクタでメモリ管理を自動にできる。
おそらくC++では、コンストラクタとデストラクタ時に破棄すれば良い。
そして、使うものを作る。作ったものを使う。
あとは、Perlのパクリや、それと同様に、JavaのC#が賢い。
◇◇
JavaScriptのようなLisp、HTMLのようなLispを作れば、
簡単にコンパイラが出来るような気がする。
JavaScriptのHTMLを処理するだけは、Lispと同じだ。
◇◇
パソコンは賢い。
悪いものが多いから、それで賢くなる。
Lispなど、賢いものも多いから、それで賢くなる。
◇◇
自動車は、死ぬのが悪いが、楽だ。
コンピュータは、壊れるのと、滅びた世界があるのが悪いが、
便利で、色んな事に使え、情報がある。
テレビは、馬鹿なのが悪いが、情報があり、面白い。
競争は、戦う、金もうけしかしないのが悪いが、日本が発展する。
◇◇
パソコンのハードウェアにメニューボタンをつけて、押すと「ホーム」を表示し、画面いっぱいの中から、クリックして項目を選ぶ。
ドコモのケータイのように、4つのボタンを配置し、サブメニューを表示したりする。これも、画面いっぱいを使う。
アプリケーションは、通常はボタンを表示せず、メニューはメニューボタンを押すと表示するか、マウスを一番上に持って行ったときにスライドで表示する。
あとは、画面いっぱいにビューを表示する。
画面いっぱいを使えば分かりやすくなるようで、そういうことはない。今のままの方が分かりやすい。
◇◇
自分が治さない方が、病気は治る。
自分が悪いせいで、みんなが悪く見える。自分は普通だし、みんなも普通だ。
出来るようになれば、簡単にできる。覚えれば、出来る。
初期投資をすれば、後で簡単にできる。Wiki記法やプログラミングがそうである。
完璧なコマンドや関数を作って、簡単に命令して使うのが、パソコンである。
Wikiのマクロの分かりやすい点は、ページ名を引数として、簡単に自動化できる点である。
おすすめの言語は、RubyとC#。
◇◇
パソコンのおかしな点は、IBM-PCに全て統一した点。
その前の多様な文化は消え去った。しかし、Windowsが発展した。
あとは、キーボード配列がおかしい。打ちやすいわけでもないのに、アルファベット順になっていない。
理由は、タイプライターがそうだったから。
あとは、マウスでメニュー、ボタン、タスクバー、スクロールをクリックして選択するのがおかしい。
ダブルクリックとドラッグ・ドロップがさらに難しい。
アップルが考えたのだろう。なれると使いやすいが。
◇◇
Linuxが成り立つのは、インターネットの共有は結構面白くて、
GNUはストールマンが勝手にコマンドとコンパイラとエディタを作っていて、
トーバルズがインターネットに投下したカーネルが、みんなの反響を呼び、
適当にハッカーが集まって作っていると、色んなプロジェクトが出来て、
それを全部GPLの所有にして、金が無く、インターネットで平等分配していた。
◇◇
Linuxはクズだ。論外なのに、グーグルなどで多い。
FLOWと良く似ている。
◇◇
Linuxは、どのインターネットでも悲惨だから、やめた方が良い。
マイクロソフトやアップルの世界が分からなくなる。
悲惨に、カーネルのコードは、見ると誰でも分かるのが、Linuxだ。
なぜか、Androidのカーネルとして採用されている。
◇◇
最近、右翼になったが、昔から自由、平等の左翼だ。
オープンソースは普通だ。Mac OS XもBSDだ。サーバーは、Linuxが普通だ。
コードは、Cではポインタがオブジェクトを持ち、それぞれの関数の中で、同じデータを保持する。
メモリともいうが、ポインタだけをコピーした方が楽だ。
あとは、変数名で分かる。
普通、返り値と引数を統一してオブジェクト指向を行う。
Getを行い、ポインタを取得する。=で代入しても良い。
それから、繰り返しと代入がある。辿って分かれば良い。
Javaは、特に同じだが、賢い。C#も、特に同じだが、さらに機能が多い。
◇◇
普通の機械の方が良い。時計や車の方が面白い。
人間は、キモイ方が賢い。
どのように行うか、その原因はなぜか、を考えれば良い。
かもしれない、おそらく、はずだ、と考えれば良い。
Windowsは、中身が見れないのが悪い。GNU/Linuxのハッカーが多いのは、中身が見れるから、誰でも分かるからだ。
それはどこから来たか。それは、誰がどうしたか。
◇◇
Linuxは、UNIX互換OSで、コマンドラインでは安定して動く。
フリーで、オープンソース、みんなで作るのが賢い。
作り方を馬鹿とはいうが、Wikiも似たようなものだし、Windowsだって同じように作っている。
プログラミングでは、データを関数で運んで、処理する部分で処理している。
UNIXは、入出力とパーミッション、マルチタスクとファイルシステムのシンプルなOSだが、
LinuxはUNIXよりは賢い。
他のオープンソースなソフトウェアは、スクリプト言語のPerlやPHP、コンパイラのGCC、
画像編集ソフトのGIMP、オフィススイートのLibreOffice、OSのFreeBSDやOpenSolarisなどがある。
あとは、GoogleのOS、Androidもオープンソースである。
良い点は、無料で、コードを見れるところだ。
Windowsでは、グラフィックの表示は、デバイスコンテキストを操作して行う。
Windowsがウィンドウを管理しているため、ハンドルを用いる。
詳しくは、検索して。
MSDNライブラリ:http://msdn.microsoft.com/ja-jp/library/default.aspx
ユーザーインターフェース:http://msdn.microsoft.com/ja-jp/library/65dtx4a4.aspx
ウィンドウオブジェクト:http://msdn.microsoft.com/ja-jp/library/kc6x1ya0.aspx
OpenOffice.orgやMozillaのWindows版は意味がない。Windowsが全部やっているのに、MS/Windowsと戦っている。
オープンソースは全部GNU/Linuxの方が良い。みんな同じオープンソースコードだ。
Linuxは醜い。コンパイラ、ライブラリ、カーネルとシステムコールに、インタープリタ、X、GTK+がある。インタープリタがXとGTK+を表示していると、最悪に見える。
給与を払わない。Linuxのものになる。誰も更新していない。
QtとGTK+アプリケーションが共存していると、キモく見える。KDEとGNOMEが戦っていると、最悪に見える。
Androidに統一すべきなのだ。
ディストリビューションは、Red Hat、SuSE、Debian、Ubuntuと無数にあるのが悪い。パッケージ管理システムも、バージョン管理も馬鹿に多い。
Windowsみたいに出来ないなら、しなくていい。何かになるように見える。
◇◇
データを運んで、処理して表示する。データは、メモリのどこかにあり、たまに操作する。
◇◇
世界と違うになる。
可能性を考える。
することを考える。ただ従うだけでなく、何かの決まりごとや原因と結果を、たらればで分かる。
Linuxは、みんなで作っているのが賢い。システム的には、シェルスクリプトの技術と、aptitudeが賢い。
あとは、ウィンドウを管理しているXと、その上の技術が賢い。X以上がカスタマイズできる。
GNOMEとKDEは、コンポーネント技術と見た目、統一性が賢い。
サーバーサイドは、無数に技術がある。スクリプトと言語、SQL、サーバーが多様で、安定している。
あとは、カーネルのコードが見れるのが優れている。
劣っている点は、無料では給与が払われない。フリーソフトだから、それでいい。
Googleは、子供だ。
Microsoftは、大人だ。
パソコンには、まず、Windowsのスタートメニューと終了の方法、タスクバーがある。
これを使って、アプリケーションを実行する。
アプリケーションには、ウィンドウごとに、最大化、最小化、閉じる、のボタンがあり、
メニューとボタンから機能を選び、ビューに表示して編集する。
マウスとキーボードを使った機械だ。
アプリケーションは、インターネットエクスプローラは、インターネットを表示し、移動する。
エクスプローラは、ファイルを選択し、作り、削除し、コピーする。
テキストエディタは、テキストの編集と保存を行う。
ワードは、高度な文章を編集する。
エクセルは、表計算をする。
パワーポイントは、プレゼンテーションを作る。
Visual Studioは、アプリケーションとソースコードを開発し、コンパイルする。
他に、お絵かきソフトや、音楽プレイヤーなどがある。
ハードウェアから見ると、起動時にOSを起動する。
機械語をインテルのCPUが計算している。
おそらく、論理和と論理積で2進数を計算している。
ハードウェアに保存されたデータとプログラムをメモリに読み込んで
CPUがその機械語セット通りに、プログラムを実行する。
キーボードとマウスで、イベント駆動を行う。
周辺機器は、USBなど。
表示は、ディスプレイやモニターで行う。
パソコンは、そのままで良い。
さらに簡単にしなくていい。十分簡単だ。
クラシック音楽のように残せばいいように見える。
作るためには、仕組みを知って考えるしかない。
しかし、プログラミングは、そういう風には出来ない。
知性が必要なのだ。
僕は、何も戦わないに治った。
その方がつらい。戦っていた方が楽だ。
いつも通り、ビルゲイツやヒトラーを倒せばいい。
ビルゲイツを倒すためには、どうしたらいいか。
アンドロイドを自社製品に採用すれば、すぐ倒せる。
Googleは賢い。
そうすると、ゲイツにあまり意味がない。
ゲイツは倒さない。どうでもいいことにする。
誰が見ても、ゲイツが儲けると、世界が発展するから、良い。
Linuxはどうするか。
あれはバカだが、分かる。
コンパイルしてネットで会話するとよく分かる。
だが、低い。
Linuxはやめた方が良い。
倒さないが、使わない方が良い。
狂って、後でつらくなる。
つらいから、悪い。