2018年01月の日記です

目次

01日 あけましておめでとうございます
03日 親戚廻り
10日 原初のプログラム


あけましておめでとうございます  2018-01-01 17:47:15  料理 家族

▲目次へ ⇒この記事のURL

あけましておめでとうございます

昨年末は忙しく、新年への備えもいい加減になった。

写真にあるおせち料理も、今年はいつもほど凝っていない。


一の重:

かまぼこ(市販品) だて巻き(市販品+僕の) 練り切り(市販品)


二の重:

栗きんとん(僕の) 田作り(妻の) 松前漬け(市販キット:僕) コーヒー花豆(市販品)


三の重:

鶏ハム(僕の) 昆布巻き(市販品) イクラしょうゆ漬け(秋に僕が作った) ゴマ豆腐(市販品)


別皿:

豚の角煮(妻の)



ゴマ豆腐は唐突な気がするけど、今朝重箱に料理を詰めていたら場所が余ったため。

妻に「何入れよう?」と聞いたら、ゴマ豆腐食べたいと言われた。


おまけ:




忙しかったため、大掃除もいつもより簡単にしか行っていない。

窓ふきは行った。風呂掃除も行った。台所の換気扇とシンクも洗った。


でも、いつもは僕がやるトイレ掃除は妻にやってもらった。

台所の壁などの拭き掃除は出来ていない。


しかし、「手を抜いた」ことで、大みそかに余裕ができた。


去年から、子供たちが「年越しを見たい」と起きているようになった。

(以前は、許可しても起きていられなかった)



年越しそばは夕食だったので、12時近くになると「おなかすいた」と言われた。

そこで、お菓子を出し、酒のつまみ的なものも出し、妻と酒を飲みながら、子供たちと笑いながらの年越しとなった。


これはこれでよい。

「ゆく年くる年」が終わったら、子供は「眠いー」とすぐに寝た。




戌年だ。

一回りした、12年前の戌年クイズをリンクしておく。


12年前なら微妙にわかってもらえた問題なのだけど、すでに古すぎてわからない人が多い気がする。



▲目次へ ⇒この記事のURL

同じテーマの日記(最近の一覧)

料理

家族

別年同日の日記

03年 謹賀新年

03年 -70度

05年 A Happy New...

06年 あけましておめでとうございます

13年 あけましておめでとうございます

15年 あけましておめでとうございます

16年 あけましておめでとうございます

17年 あけましておめでとうございます


名前 内容

親戚廻り  2018-01-03 18:22:31  家族

▲目次へ ⇒この記事のURL

親戚廻りというか、単に実家に帰っただけなのだけど。

そして、実家と言っても生まれ育った家はすでに引っ越していて、長男夫婦と母が一緒に暮らしているため、そこが「実家」扱いなだけだけど。




毎年恒例で正月には兄弟一同が集まるのだけど、昨年は長兄の娘が流行性の風邪をひいてしまい、急遽キャンセルとなった。

なので、集まるのは2年ぶり。


今年は、長姉・末妹の家族を除き、兄弟家族全員が集まった。

(長姉は北海道在住なので来れない。子供は東京に暮らしていたので2年前に来たが、結婚したため今年は欠席。末妹は愛知在住なので、こちらも来れない)


2年前は、うちの子供たちが「クリスマスプレゼント」にもらったボードゲーム(ミッドナイトパーティ)を持って行ったのだが、あまり遊ぶ雰囲気ではなかった。


今年もプレゼントのゲームを持って行きたい、というので、単純なものに厳選する。

しかし、今年はこのゲームが大いに盛り上がり、「もうちょっと複雑なのがあっても良かった」と言われた。


長兄の娘と、次姉の娘(ともに、うちの子から見ると従姉)が、多人数で楽しめるボードゲームを遊びたかったのだそうだ。

しかし、それぞれの家では人数が少なく、なかなか遊ぶ機会がない。

正月で集まったところに、ちょうど単純ですぐ遊べるゲームがあったため、大いに盛り上がった、というわけ。


ちなみに、遊んだのはキャプテン・リノ、赤ずきんは眠らない、街コロの3本。


うちの長男はドラスレも持って行きたかったのだけど、「複雑なのはルール教えて遊ぶ暇が無いと思うよ」と止めておいた。

結果的には、持っていくのが正解だった。


(過去の日記に書いていなかったが、街コロとドラスレは昨年のクリスマスプレゼント。

 今年、長女は「うちに来るサンタさんは、いつも面白いゲームをプレゼントしてくれる。サンタさんゲームに詳しいんだね」って喜んでいた。)




事前に「スプラ2持ってく」と連絡して置いたら、次姉の娘が持ってきてくれた。

他には誰もやっていないようだ。


2台でスプラ対戦。

我が家では長女(小4)が一番上手なので、長女と対戦する。


数度やったが、社会人2年目の従姉に圧勝。


そのまま対戦していてもつまらないので、二人で「対戦ではない」遊びを始める。

というか、最近長女が良くあそんでいる「お絵かき」を披露。


最近は、ガチマッチでもお絵かきを披露している。

ハートや星を描いていると、面白がって敵でも攻撃せずに近くで見守ってくれることがあるそうだ。

…で、その間にチームの誰かが攻め込んで、勝つ。


ハートを多用する謎の攻撃により、相手を魅了して、何が何だかわからないうちに勝ってしまうこの戦法は、我が家では「プリキュア戦法」と呼ばれている。



で、同じ場所で二人でお絵かきをすると、枠を描いた中を別の色で塗ったり、顔を描くときに口と頬だけを赤くしたり、いろいろな遊びができる。


さらに、最近見た「バグ」を再現したりして遊び始める。


敵味方が完全に意思を疎通しないと遊べない…

例えば、インクアーマーで「爆弾一回分」の防御力を増したうえで、敵の爆弾によりふっとばされて、普通では行けない場所に入る。


長女はそういう遊び方もいろいろ知ってはいるのだけど、自分で試したことはない。

これを二人で行い、成功させたりする。


なかなか楽しかった。



ちなみにこの従姉(僕から見ると次姉の娘)は、3歳の時にゲームボーイと「ポケットモンスター・ピカチュウ」を買い与えられたことから始まり、ゲームオタク人生まっしぐら。


いや、ゲームオタクだけでなく、オタク文化全般かな。

高校の頃からはイラストを描いて発表し、コミケなんかにも同人誌を出していたみたい。

大学の頃はネットで人気のある、いわゆる「神絵師」扱いだったようだ。


社会人…といっても、いきなりフリーのイラストレーターになり、イラストだけでなく動画作成なんかもできるので、結構仕事が忙しいらしい。

うちの長女と、ゲーム中の「フレンド」にはなったのだけど、仕事が忙しいので遊ぶ時は深夜だそうで、ゲーム内で会えるかどうかは微妙な所。


#彼女の絵は数枚見たことがあり、非常にかわいいイラストを描いていたのだけど、あまり深くは知らない。

 親戚のおじさんに作品を見られるのも恥ずかしいだろうと思って詮索していないため。




実家の母は、以前よりボケが進んだようだ。

数か月前…母の誕生日にあった時は、時々急に昔の記憶がよみがえり、僕のことも認識できていた。


しかし、今回はどうも、自分の子供たちもよくわからないようだった。

話をしていても、3分前のことを覚えていられない。


しかし、どうも集まっているのが「親戚だ」ということはわかるようだし、親戚だから失礼が無いようにしないと、と思うようだ。

日が暮れてからは、たびたび「みんなが泊って行けるように、布団用意しないと」と心配していた。


そのたびに、今日はみんな帰るから布団の心配はいらないよ、と教える。

すると「帰る」と聞いて寂しいのか、また来れるかと聞いてくる。


実際、うちから車で20分程度の距離なのだ。

だから、すぐ帰れるから今日は帰るし、また来るよ、と伝えておく。

長兄の家の都合もあるので頻繁に来るのは迷惑だろうし、来る予定があるわけでもないのだけど。



正月だ、ということはどうやらわかっているらしい。

ただ、今日が正月の1日なのか、それとも休みももう終わる7日なのか…ということはわかってない様子。



うちの子供たちも理解してくれていて、同じ質問を何度もされても、面倒くさがらずに答えてくれていた。

孫だという認識はないようだが、どうやら「親戚の子」であり、長男から中学生になりました、と聞くたびに、大きくなったねぇ、と何度も喜んでいた。



▲目次へ ⇒この記事のURL

同じテーマの日記(最近の一覧)

家族

別年同日の日記

03年 年賀回り

08年 あけましておめでとうございます

14年 あけましておめでとうございます

16年 三が日


名前 内容

原初のプログラム  2018-01-10 12:02:44  コンピュータ 家族

▲目次へ ⇒この記事のURL

長男が熱心だった Scratch プログラムだけど、この冬休み期間に、長女・次女も再チャレンジし始めた。


以前は難しくてやめてしまったのだけど、今の年齢なら楽しめるようだ。



で、長女(小4)から質問が出た。


Scratch は Flash という言語で作られていて、その Flash はC言語という別のプログラム言語で作られている。

…ここまでは、プログラム言語の多様性を知ってほしくて以前に教えている。


#厳密に言えば、Scratch ver.2 が Flash の ActionScript 言語で作られていて、ActionScript は C言語の拡張である、C++ 言語で作られている。


ここからが長女の質問。


「では、このパソコンで動く一番最初のプログラムはどうやって作られたの?」



あぁ、なるほど。そこに疑問を持ったか。

同じようなことに興味を持っている人もいるかもしれないので、長女に答えたことを記して置こうと思う。




まず、目の前の疑問の答えは、クロスコンパイルだ。

すでに動いているコンピューターの上で、別のコンピューターのプログラムを開発する。


僕はテレビゲームの開発をやっていたけど、テレビゲーム機の上では、普通は「プログラム」を作れない。


長女も Nintendo Switch で遊んでいるけど、そこでプログラムは作れない。

プログラムを楽しみたいときは、パソコンで Scratch をやっている。


Switch でゲームを作っている人も、Switch を使って作っているわけではない。

パソコンの上でプログラムを作って、それを特殊機材で Switch に送って動かしているんだ。



新しいパソコンが作られる時も、同じように別のパソコンでプログラムを作ることになる。


今広く使われているパソコン…IBM PC 互換機、と呼ばれるものが出てきたときも、基本プログラムはすでにあったコンピューターで作られた。


#それ以前の 8bit マシン…CP/M マシン上で開発されていたようだ。




長女はこの答えには納得できないようだった。


「このパソコンの」と言ったのは言葉のアヤで、真意は「最初のプログラム」にあったのだ。


そのプログラムはそれ以前のプログラムで作られたという。

じゃぁ、「それ以前」はどうやって作ったのか。もっともな疑問だ。


そのため、ここで話を切り替える。




コンピューターの中では、すべてを数値として扱っている。

計算をするときには、例えば「1番は足し算、2番は引き算」というように、命令も数値になる。


1 2 3


という3つの数値があったとしよう。

ここで、1 は足し算の命令で、2 3 が足すべきデータになる。結果は 5 だ。



一番最初のコンピューターでは、人間が直接この「数値」の列を作り出した。


もっとも、プログラムを作るときに 1 2 3 と直接書いていると、頭がこんがらがってしまう。

1 は足し算(英語で ADD)なのだから


ADD 2 3


のように紙に書いておき、プログラムが全部出来上がったら、命令を手作業で数値に直していけばよい。




そして、この数値を入力するには、ON / OFF できるスイッチを使う。

コンピューターの中では、数値は全部、電気信号の ON / OFF に置き換えて覚えられている。


ON なら 1 、OFF なら 0 として、寄せ集めるともっと大きな数値も表せるようになる。


#いわゆる2進数だけど、この話では詳しく知る必要はない。

 ちなみに、長女は以前教えて2進数を知っているので、この部分に疑問は持たなかった。


スイッチをぱちぱちやって数値を作り、「書き込み」スイッチを押すと、メモリに書き込まれる。

どんどん連続してメモリに書き込まれていく回路を作ると、これでプログラムを準備できる。


そして、CPU に対して「実行」を指示すれば、「最初のプログラム」が無事動き出す。

最初はこんな風にしてプログラムが作られた。




じゃぁ、最初にどんなプログラムを作ったか。


スイッチをぱちぱちやるのは、プログラム方法としてはかなり面倒くさい。

だから、最初に作るのは「タイプライターのキーを押すと、それが文字だと識別されるプログラム」だ。


これがあれば、もう「ぱちぱち」とはおさらば。タイプライターで効率よくプログラムが作れる。


次に作るのは、ADD なら 1 、SUB なら 2 …という、命令から数値への変換を、自動的にやってくれるプログラムだ。

先ほど「人間が手作業で命令を数値に直す」としていたけど、自動的にやってくれるプログラムがあれば効率が上がる。


#一般には、数値化する作業を「アセンブル」(組み立て、の意味)と呼び、これを自動的に行うプログラムは「アセンブラ」と呼ばれる。




もし、この時点で新しいコンピューターが設計されたとしよう。


新しコンピューターでは、命令の数値なども変わるのが普通だ。

今まで使っていたコンピューターでは、ADD は 1 だったけど、新しいコンピューターでは 10 かもしれない。


そうしたら、アセンブラのプログラムを修正する。

ADD は 1、だったところを ADD は 10 、にするだけでいい。


これで、新しいコンピューター用のプログラムを作り出すことができる。

最初に書いた「クロスコンパイル」というのは、ただこれだけの話だ。




ここで話はひと段落。

スマホで情報を検索して、Altair 8800 の画像を長女に見せてみた。


Altair 8800 は、最初のコンピューターではないが、最初のパソコンとされる。


前面パネルには、ON / OFF のスイッチがたくさんついていて、結果出力のためのランプもある。

入力も、出力も、ON / OFF しかないんだ。



でも、タイプライター(厳密にはテレタイプ)を接続して使うのが普通だった。


電源を入れたら、RAM の中には何もない。

だから、まずはタイプライターからの入力を読み取るためのプログラムを、 ON / OFF スイッチで入れる必要があった。

このパソコンを使っている人は、それが毎日の作業なので、短いプログラムを暗記していた。


タイプライターの入力が読めるようになったら、タイプライターについている紙テープ読み取り機から、紙テープを読み込ませる。


テレタイプでは、入力内容を紙テープ化できた。そうすることで、同じ原稿を何度でも打ち出すことができる。

でも、ここでは紙テープに記録されているのは「文字」ではなく、プログラムそのものだ。


たとえば、テレタイプを入出力として、BASIC 言語を解釈するプログラム。

このプログラムが動き始めれば、タイプライターを使ってプログラムを作れるようになる。


時には、さらに「BASIC で作られたプログラム」を紙テープから読み込み、何らかの実作業に使ったかもしれない。



ここでは、タイプライターだから出力が紙なのだけど、キーボードで文字を入力して、人間にわかる文字で結果を返す、という、誰にでもわかりやすいプログラム環境が出来上がったことになる。




このときは、手っ取り早く Altair 8800 の画像を見せた。


でも、それ以前からコンピューターは存在する。

それらも、構造的にはほぼ同じだった。


うちのページでいえば、TX-0あたりを見ていただきたい。

Altair 8800 よりずっと古い機械だけど、トグルスイッチを使って2進数を入力するあたりも、ほぼ同じ構造だ。


もっとも、TX-0 は紙テープを読み込んでメモリにデータを配置する機能を、ハードウェアで持っていた。

そのため、毎回紙テープを読み込むプログラムを入れる必要はない。



さらに古く、電子計算機の元祖に近い EDSAC では、完成後の改造で「イニシャルオーダー」が備えつけられた。


抵抗とワイヤーで ON / OFF を表現することで、紙テープを読み込むプログラムを固定化したものだ。

必要に応じて取り外せるようになっていて、取り外すとその部分は普通のメモリとして扱われる。


ROM に準備され、コンピューターが起動するときに最初に読み込むプログラム…今でいえば、BIOS や UEFI に相当するものだった。




ともかく「手作業で」最初の小さなプログラムを作り上げ、そこからプログラム環境が整えられていく。

あとは、Scratch の話と一緒だ。



Scratch は Flash で作られ、Flash は C で作られていた。


Altair 8800 では、Scratch に相当するものが BASIC だった。

BASIC はアセンブラで作られ、そのアセンブラは、ON / OFF スイッチを駆使して入力されるものだった。



BASIC から C までの間は長女には説明しなかったけど、想像は付いたようだ。

より便利な環境を作るために、誰かが「その時使える」環境で、新しいプログラムを書いてきた。


その積み重ねの果てに、子供でも使える良く練り込まれた環境、Scratch が存在している。


Scratch も、そろそろ Javascript で書かれた Ver.3 に移行する予定だ。



▲目次へ ⇒この記事のURL

同じテーマの日記(最近の一覧)

コンピュータ

家族

別年同日の日記

05年 Switch!

13年 続々・Windows8

16年 国立科学博物館

16年 国立科学博物館(続き)

16年 上野公園


名前 内容


戻る
トップページへ

-- share --

0000

-- follow --




- Reverse Link -