プログラミングをやるということ

学校でプログラムを教えているようだ。

なぜだろう?

学校が自発的にプログラミングを教えたりは、しないでしょう。

教える科目は国(文部科学省)が決めているので、その方針に従っているんだろう。

げんざいプログラマーは不足している。しょうらいは、もっと不足する。

なので、その対策(国の力を維持するために)国はプログラミングを授業に取り入れるという。これが僕の推測のひとつ。

僕はライターだ。なのに、ここ数年、プログラミングを座学で勉強している。

いくつか感想がある。

プログラミングをやっていくうちに、ほかのこと、たとえば英語も数学も、自然にやっていくことになるのでは、ないか。

プログラミングについて知ろうとする。書籍に、それを求める。座学なら、なおさらである。一方、プログラミングの変化は激しい。それは、どんどん速くなってきている。

となると、書籍はどうだろう。新しい技術がリリースされる。プログラミングの世界は英語が中心である。そのチュートリアルをやって誰かが理解する。そして、それが日本語で書いてみる。編集会議で検討される。印刷・製本される。そして書籍が販売される。

それを待っていると、1年、2年はかかってしまう。そのあいだに、すでに、また新しい技術がリリースされてしまう。要は、書籍が出たころには、その知識は、すでに古くなってしまっている。となると、ネット上で、じぶんで英語を読みながらマスターせざるを得ないと、まぁ、そうなるわけだ。

それと、もうひとつ。

数学とプログラミングは、どこかで、つながっているようだ。

たぶんだけれど…プログラミングをやった方が、数学は理解しやすくなる。

はなしがズレる。

f(x)=x^3
g(x)=2(x^2)
h(x)=3x
という関数がある。

とすると、
f(x)+g(x)+h(x)=x^3+2(x^2)+3x
となる。

なんと、関数が、どんどん足していける。さらに、引けるし、掛けれるし、割れたりもする。

当たり前の、そのことに、ふと気づいたとき「おー」と、おもったりした。

さらに
z(x)=f(x)+g(x)+h(x)=x^3+2(x^2)+3xとすると、
z'(x) = 3x^2+4x+3
というふうに微分できてしまう。

任意の点cでの傾きは、
z'(c) = 3c^2+4c+3だ。

傾きをmとし、
m = z'(c) = 3c^2+4c+3とすると、
任意の(a,b)を通る接線は、
y = m(x-a)+bで表現できてしまう。おおおー。

プログラミングでも関数は作れる。

けれど、それと比較してみると、ずいぶん数学は使い勝手が良いんだなと、おもう。

ま、すくなくとも、これは僕の意見であって、プログラミングでも、そんなこと、カンタンにできるよ、という感じかもしれないけれど、どうなんだろ?
なにか、ご意見があったら、なんなりと。

関数のいろいろな表現

◎方程式での表現

1  → 3
3  → 7
−2→ −3

1が3になる。3が7になる。−2が−3となる。そうなるには、左の数を2倍して、さらに1を足すことになる。このようにコトバで書くと、めんどくさい。なので、

x      y
1  → 3
3  → 7
−2→ −3

とすると、

y = 2x+1

で表現できる。ことばで言い表すより、よほどスマートだとおもう。

さらに yの代わりに、f(x)をつかう。このばあいのfはfunctionであり、日本語では関数と呼ばれている。

x        f(x)
1  → 3
3  → 7
−2→ −3

f(x) = 2x+1

yとちがい、xの変数に、値を入れて表現することができる。
f(1)=3
f(3)=7
f(-2)=-3
といったふうに。

◎プログラミング言語での表現

まずはjavascript。

function kakete_tasu1(x){
           2*x+1
}

kakete_tasu1(1)
3

ketete_tasu1(3)
7

ketete_tasu1(-2)
-3

python

def kakete_tasu2(x):
           2*x+1

kakete_tasu2(1)
3

ketete_tasu2(3)
7

ketete_tasu2(-2)
-3

◎グラフでの表現(pythonのライブラリー、matplotlibとnumpyを活用)

import matplotlib.pyplot as plt

import numpy as np

x= np.arange(0,10,1)

y = 2*x+1

plt.plot(x,y)    // グラフにプロット

通信の5次元の世界観


むかしむかし、ライターは書いた原稿をファックスで送っていたんだ。ワープロをつかうようになってからフロッピーに保存し、なんと、そのフロッピーをバイク便で送っていたという。

で、ぼくは、わりと、あたらしいことをやりたいタチで、しばらくして、ワープロにモデムを装着し、電話回線をハックして、文章を送ったりしていた。

そのときのスペックは、1000bpsくらいだったとおもう。つまり1秒間に最大1000ビットのデータを送ることができた。

1000ビットは125バイト、日本語は1文字2バイトらしいので、1秒で60文字くらいしか送れなかったことになる、とおもう。

ま、もともと通話用に設計されていたものを無理筋でやっていたわけで。そのうちデータ用に設計されたISDN、ADSLになり、僕たちは文字だけでなく画像も送れるようになったし、ウェッブ上で画像も見れるようになった。光ファイバーでは映像だって楽しめるようになった。

いまでは4Gにより、外にいても映像が見れたりする。

前置きが長くなってしまいました。

つまり、通信の環境が進歩するにつれ、通信できるデータも文字→画像→映像と広がっていったんだネ。

これは、じぶんの勝手な言い方になるけれど、1次元(文字)→1次元(画像)→3次元(映像)というふうに広がりをみせているわけ。

となると、とうぜん、次は4次元、ということになる。

そう、これから5Gになると、その空間は4次元となっていくでしょう。

ここでいう4次元とは、VR/ARといった、いわゆるXRの世界観。

これからリリースされるマインクラフトのAR版などは、5Gを見越したものだと、おもう。

それにしても、マイクロソフトは飛ばしているなぁ。マインクラフトは、いまやマイクロソフト傘下になっていたみたいな。

「夏目漱石を読む」

漱石と村上春樹を比較するアイデアがある。じぶんで思いつくわけがない。なので、どこかで、そのような内容に触れたんだろう。

じぶんなりに、解釈してみたこともある。上手に書けるようになりたいとおもって、このブログで、なんども同じ内容を書いてきた。きょうは、それについては、書かない。面倒くさくなってしまった。また。それは、先日、吉本隆明の「漱石を読む」を読んだせいかもしれない。

「こころ」は、なんどとなく読んできた。後年に至るまで抱き続けてきた、Kに対する先生の、こころの有り様は謎である。ふつうの感覚なら、そのようなことはことも、時間とともに、しらずしらず薄らいで行くものでしょう。ましてや、それに、さいなまれて先生まで、みずから最期を迎えてしまうのも謎なのである。

吉本隆明の、その著作には、それについて解説がなされている。漱石は性を同質に見ていたという説だ。

「こころ」の先生は、はモダン(古風な)こころを持っていて(それは倫理観と言っても良いかもしれないけれど)そこから外れたため、元に戻ろうとして、それが鬱屈している、という仮説を、僕は持っていた。がしかし、吉本説はまったく、ちがう、150度くらい、ちがう。そして、同氏の説に圧倒されかけている。本書には、そのほか、「三四郎」の宿命説、「道草」の文体についての解説がなされている。テキストだけで、これだけ読めてしまう吉本隆明は、すごいなぁ。

その小説は何かを象徴している、のか?

夏目漱石は、よく読んだ。それでも、全集にすれば4分の1ていど、だろうか。

漱石の、とりわけ後半の小説は、男女の三角関係が描かれている。

そして、その関係は、近代日本の立ち位置を象徴している、という説がある(おー、大きく出たぞ)。

けれど、じぶんなりに漱石を読んで来て、ご自身で書かれた、そのような文章に触れた記憶は、ない。

たぶん、それは後世の評論家たちによる解説だと、おもう。

吉本隆明は「夏目漱石を読む」という本を著述した。僕も読んだ。その中には、その「日本人の立ち位置」説が書かれているらしい。
あえて「らしい」と書いたのは、記憶にないからである。

漱石と村上春樹は、ときどき比較される。

漱石の「こころ」が発表された100年後、「多崎つくる」は刊行された。

名古屋 の高校に仲良しの5人組がいた。5人は、ひとつになっていた。しかし、卒業後、そのケミストリーは消滅していく。その間、主人公には、傷みやストーリィが生じる。それから主人公は年数を重ね、沙羅という恋人に出遇う。彼女はメンターのような存在(だとおもう)。ちなみに、沙羅という女性は実在しない概念上の、村上春樹がときどき使う、イデアのような存在のような気がしている。と同時に、ヘルマン・ヘッセの「荒野の狼」が思い浮かぶ。

そして、そこにはまた、漱石の「日本の立ち位置」説と同様、日本の置かれている、なにかの象徴を感じてしまう。

いつか、このブロクに、そのようなことを書けたら良い、とおもったりしている。

Google I / O

Google I/Oをチェックした。

ふたつポイントがある。

ひとつはGoogle Asistantの処理にかかるデータ量が100GBから0.5GBに節約されることである。これにより、音声による指示の反応が、とても速くなる。

そのことと関係しているのかもしれないが、さいしょに「オッケー、グーグル」と言えば、連続して指示が行われるようになるようである(いままでは、いちいち「オッケー、グーグル」を言わなければ、ならなかった)

ことしに入り、サムソンやファーウェイから折りたたみのスマホがリリースされた。

どういうシチュエーションに使うのがイメージできなかった。けれど、ことしのGoogle I/O をチェックして「ああ、こういうことか」とおもったりした。処理速度の速くなったGoogle Asistantを広げた画面で、マルチタスクで使うみたいな。

このカンファレンスで、もうひとつ注目したのは、セキュリティとプライバシーだ。

この点は、アップル、フェイスブックなども、優先順位の高い事がらとして、とらえている。

Androidは、iOSよりもプライバシーやセキュリティが甘いとおもっていた。しかし、グーグルのセキュリティに対する取り組みの経緯をみて、それは誤解かもしれないと、おもった。

あたらしい取り組みは、ユーザーにとって、スマートだろう。

こういうイメージだ。

まず画面に表示されている、じぶんのアイコンをタップする。すると、じぶんの最近のアクティビティ(活動)が確認できる。

そして、その一覧から、チェックを外せば、じぶんのプライバシーを守ることができる。場所の履歴、広告の設置も、じぶんで選べる。

要は、じぶんで選んだプライバシーは、グーグルで保障されるということだ。

このカンファレンス全体の印象としては、GoogleはGoogle Assistantを中心に、デバイスに反映されていることが、うかがわれる。Pixelは、iPhoneと別物のスマホにみえてきました。

体系、系統について

ネットで「体系」を英訳してみる。「system」と出る。「系統」も、やはり「system」だ。ネットで検索して、それを前提にするのもどうかとおもうけれど、「体系」も「系統」も「system」である、としよう。

「system」は、ほかの多くの言葉と同様、そもそも日本にはない概念で、明治になって、漢語あるいは仏教語から、それらしい単語をみつけて、それを充てたのではないか。そうおもってしまう。

さらにネットで調べてみると、どうやら「体系」や「系統」は、生物の進化を示すものとして現出した言葉みたいな。

魚があり、両生類があり、爬虫類、哺乳類と続き…まるで木の枝が分かれていく、ほら、あの図ね。

ダーウィンの書いた本を読んだことはないけれど、きっと、その都度その都度、強いものが生き残り、弱いものが淘汰され、こういう図式になっていくんじゃ…ない?

今西錦司、こちらの書籍は読んだことはある。

先生は、ダーウィンのこの説に異を唱えていらっしゃる。淘汰されるのではなく、むしろ生物は棲み分けるというものだ。

馬のひずめは指である。左足右足それぞれに、ひとつしかない。けれど、かつて、それはちゃんと5本の指があったりした。

それが、3本になり、1本、つまり、ひずめになって行ったわけね。

今西先生は、それは、その馬があるエリアに現れ、世界に広がったのではなく、あるとき、世界中に同時にパッと現れたとしている。

こう書いてみると、今西錦司は系統的な考えが好みではなかったのではないかとも、おもってしまう。あ、これ、あくまでも個人的な意見ね。学術的にどうのこうの、は、もし気になったら、ちょんと調べてくださいよ〜

テーブルタグをやめる検討

連休中に、ウェッブサイトを見直している。

ポイントは2つだ。

1)WordPressの別のテーマの検討
2)テーブルをつかったページのあつかい

1)は誰かのアドバイスが必要だろうなぁ。
2)についてはテーブルタグ<table></table>ではなく、用語の定義リスト<dl></dl><dt ></dt><dd></dt>の変更を検討している。

というのは、そもそもテーブルタグは、閲覧するひとの環境に依存するので、表示が不安定になってしまう、とおもうんだよなぁ。

ちなみに、テーブルをつかうさいには、パソコン、タブレット、スマホの表示を勘案して、ピクセルのサイズにより条件分岐させている。

そのさいのプロパティはdisplayを利用。値はblockとした。

たとえばスマホのピクセル数で条件分岐させ、条件がTrueのばあい、tr{display: block}とした。blockにより(パソコンの表示が横にレイアウトされるのに対し)表の要素がスマホ横いっぱいに表示され、縦に並ぶようにした。


table tr{
display: inline
}
のイメージ



table tr{
 display: block
}
のイメージ



最大650px(650px以下のばあい)
display:blockになるようなスタイルシートを書く。

@media (max-width: 650px) {
table td{
display: block;
}

AppleからGoogleへ

Jupyterをつかっている。

ローカルの(パソコン上の)Anacondaではなく、(クラウド上のGoogleの)Colaboratoryを利用している。

ちなみにColaboratoryはGoogleのTPUが使えるんだぜ、といっても、一般のぼくにとって、その使いみちなど、ないでしょう。TPUによりエンドユーザーがつかえるGoogle TranslatorやGoogle Photoをつかえよ、というハナシに落ち着く。ま、やれるとしたら、せいぜいディプラーニングのチュートリアルをやるくらいですかねぇ。(連休を活用して、じっさいに、プレファード・ネットワークスのチュートリアルをやっていたりしている。Colaboratoryにせよ、このチュートリアルにせよ、無料なのだ。じぶんは最後までやれる自信はないけれど、学生など若い君は、とにかく、やってみると良いんじゃないのかねぇ。)

前置きが長くなってしまったけれど、

もうパソコン上のソフトウェアは使わないということを言いたかったんだ。

せいぜいSkechとPixelMatorをつかうくらいだ。

今秋、Googleは、クラウド上でゲームをプレイするStadiaをはじめるでしょう。ブラウザーさえあれば、ゲーム機など不要という。

こういう動きは加速していくので、もうMacでもなくてもいいや。ブラウザーだけで作業するChromeBookでいいや、と、まぁ、そういう気分でもある。

せんじつYoutubeでホリエモンのチャンネルをみた。GoogleのPixel3を紹介していた。

背面のカメラは、2つではなく、1つ。なのにAIを駆使して遠近の撮影ができる。同社は一昨年「AIファースト」というスローガンをかかげている。そして、やっていることも、うまくまとまっている気がする。一方、アップルは迷走している印象なんだなぁ。

アップルはプライバシィを、ひとつの旗印にしている。アップルの好きな感じは、そこにある。ただGoogleならデータを「吸い取られてもいいや」と割り切れるのなら、ま、それはそれで、いいのかしらん。Chrome book、Pixelも一考だね。アップルよ、サラバ、か?