ニュースに戻る

2021-04-第五週(2021-05-第一週)

2021-04-第五週(2021-05-第一週)のニュースです。

IT技術

SQLクエリとリレーショナルデータベースの親和性

データを表で管理するリレーショナルデータベースと、SQLによるクエリは、親和性が高い。

注目すべき項目や属性の範囲を選択して、その時その時のテーブルを自動で生成することができるため、「検索による自動作成」に向いている。

逆に、さまざまな人間が別々にデータを生成したり関連付けたりするのには、ネットワーク型が向いている。リンクによって外部と内部の区別をなくすことができるからである。

また、ファイルシステムのようなディレクトリ型は、ファイルを統一した規則で整理整頓するのに向いている。ファイルだけではなく、「規則そのものを規則的に作り上げる」ために、ディレクトリ型が使えるのである。

2021.04.29

TypeScriptのタプル

TypeScriptのタプル型が便利だということが分かった。

JavaScriptの配列には、どんな型の値でも自由に入れることができる。

これに対して、TypeScriptのタプルは、決まった型の値しか入れることができない。

enum型などと組み合わせることで、「決められた型の値だけを格納する」ということが可能である。

これは、データベースレコードなどのような場合に便利だ。

たとえば、nameはstring、ageはnumber、genderはmaleあるいはfemaleのenum型などとし、これらの型の値しか受け付けないタプルを定義できる。

詳しくはJavaScript フレームワーク入門が参考になります。

2021.04.29

chrootコマンド

Linuxには、chrootというコマンドがある。

これは「ルートディレクトリを別のディレクトリに変える」というコマンドで、新しい環境を構築する時に役に立つ。

たとえば、/mnt/redhatにchrootすると、新しいbashが開いて、そのbashのルートディレクトリが/mnt/redhatになる。

つまり、新しいシェルにおいては/mnt/redhat/binが/binになり、/mnt/redhat/usrが/usrとなる。

たとえば、Gentoo Linuxのインストールの時、まずネットワークなどの設定をしたら、最低限のファイルを/mnt/gentooに展開し、/mnt/gentooにchrootしてそこで作業をする。

こうすることで、新しい/mnt/gentoo環境で、すべての作業を行うことができる。

注意点としては、カーネルはもとのままであるということ。カーネルのコンパイルはできるが、新しいカーネルを立ち上げさせるためには再起動をしなければならない。普通は、この再起動を最後に行う。

2021.04.30

電気の供給は立派なシステム開発

僕の文章を読んで、「結局システム開発とはなにを作るのか」が分からないなら、MINIX本を読めば分かるはずだ。

たとえば、Multicsはそもそも、アメリカの一部の州(ボストン)でコンピュータ用の電力を安定的に供給することを目指したシステムだ。

すべての国民に必要な電気を供給すること、これは立派なシステム開発である。

Multicsから年月は経って、システムの構築方法は変わっても、やることは変わっていない。

工場だろうと、Webだろうと、すべては「きちんと動くシステムの開発を行う」ことである。自動販売機だろうが、ATMだろうが、それが、プログラミングの目的だ。

コマンドラインのUNIXやLinuxがそういう分野で生き残っているように見えて、実際はさらに古い。COBOLやFORTRANが、政府や役所などに普通に残っている。そういうシステムでは、漢字すら使えなかったりする。今でも銀行や役所の手続きなどで半角カタカナが使われるのはそういう理由である。

また、そういうシステムが残っているのは、単に面倒なからではない。そういうシステムは、「人間では絶対にできないような高度なことをやっている」ようなシステムが多く、「他にリプレースするなら、ハードウェアや開発企業、あるいは膨大なデータベースをどうにかして移行しなければならない」。そういう理由で、今でもIBMのメインフレームはSystem/360から互換性を保っている。変わるはずがない。

最近のWindowsの繁栄により、WebやGUIなどのきらびやかなインターフェースが脚光を浴びているが、実際のシステム開発は今でもコマンドとテキストだ。プログラミング言語すら使えない(機械語で書き、OSも使わない)環境もある。

2021.04.30

インターネットとフリーソフト文化

しかしながら、Linuxなどに言えることは、そうした商用システムではなく、インターネットを通じて緩やかにつながった「フリーソフト文化」というものがある。

自分で作ったソフトウェアを、無料でオープンに公開し、使うのも改造するのも自由だが、なにが起きても責任は取らないが、その代わりにインターネットで世界中に公開し、コミュニティで意見や改善案、バグ報告・修正や共同開発者を求める、という文化である。

言ってしまえば、「システム開発とは別の第二の文化として、インターネットにおけるコミュニティ開発」というものがLinuxにはある。

しかしながら、僕が思うに、これはLinuxというよりもむしろWindowsの文化でもある。みんな、クライアントOSとして使っているのはWindowsであり、必然的にWindowsで動くフリーソフトが好まれる。

しかしながら、WindowsはMicrosoftという企業の作ったOSであり、中身の仕組みは公開されていない。

ソフトウェアというのは、プログラムだけではなくカーネルやコンパイラもあってひとつのシステムであり、プログラムが自由かつオープンなら、同様にカーネルやコンパイラも自由かつオープンであって然りである。

結局、僕がLinuxが好きなのは、Windowsとインターネットの文化が好きで、「ユーザーが触るフロントエンド部分だけではなく、バックエンドのカーネルもフリーかつオープンソースのものが欲しかった・使いたかった」という理由に過ぎない。

よって、理想的には、Windowsがオープンソース化すればいいが、Windowsが使いやすいのはMicrosoftの資金力と技術力のたまものであり、それを「外部から奪おうとする」のは定石ではない。別のOSとして、Linuxのようなフリーなカーネルを求めるのは、Windows的に言っても間違っていない。

しかしながら、こうした発想は、15年前ぐらいの、昔の「インターネットとフリーソフトが極めて新しく、面白かった時代」に限定されるものである。

今のIT業界は、スマホとWebブラウザを使って、オンラインの情報を仕入れたり、タップとインターネットで「繋がる」ことが面白い時代になっている。コミュニケーションにおいても、ひとつの集約サイトでみんなが集まるのではなく、それぞれが繋がりたい友人知人とだけ繋がるのが普通になっている。

そう、もはやLinuxの時代ではない。それはなぜなら、WindowsというOSは、実際のところLinuxとはまったく違うものになりつつある。どちらも、クライアント向け、サーバー向けと住み分けができ、Windowsでしかできないこともあれば、Linuxでしかできないこともある。簡単にWindowsよりもオープンだからLinux、という選択肢は無くなっている。

また、フリーソフトについて言えば、「出来合いのソフトがたくさん提供されていて、自分で作る必要が無く、Linuxは完成されつつある」ということが言える。出来合いの優れたソフトウェアや、きちんと動くバックエンドがあるため、自分で作る必要が無い。また、Windowsと同じものを作るのであれば、Linuxデスクトップは誰にも使われない中でも完成されつつある。GNOME 3やKDE Plasma 5はWindowsに引けを取らないぐらい使えるものになっている。簡単に、今までの資産をチャラにはできないのと同じように、優れた完成されたソフトウェア群一式がインターネット上で提供されているため、「自分でMozillaを作りたい」と言っても、簡単にはできないし、あるいはする必要すらなくなってきているのである。

また、プログラミングは最近、高度になりすぎてつまらないものになった。昔は、掲示板の書き込みをHTMLファイルに吐き出して、自動的に読み込むだけのCGIスクリプトでも、工夫のし甲斐があったし、それぞれ違ったスクリプトを書くのが楽しかった。今は全部WordPressとRuby on Railsであり、誰が作っても似たようなサイトにしかならない。まったくプログラミングは面白いものではなくなりつつある。Dockerなどの新技術についていくのは、昔からの古参のオタクには難しい。このような理由で、まさにGAFAのような一部の企業がもっとも力を持ち、ほかのエンジニアは新たに開発し新技術を勉強するモチベーションを失いつつあるのである。

2021.04.30

UNIX/X11のDOS/Windowsに対する優位性

UNIX/X11とDOS/Windowsを比べた時に、UNIXの優位性として挙げられるのが、「WindowsはMS-DOSの上に無理やりWindows 3.1を動かしていたが、UNIXとX11は以前からマルチタスクだった」ということ。

MS-DOSとWindows 3.1は、もともとシングルタスクだったDOSの上で、オペレーション環境としてのWindows 3.1がタスク管理やメモリ管理をIntel 386 CPUのもとで行っていた。

これに対して、ワークステーションで使われたUNIXは、最初からカーネルそのものがマルチタスクで、その上でX Window Systemが動いていた。

同時に、UNIXはネットワークでの利用やコマンドラインでの利用も想定されており、最初から安定動作するように設計されている。

よって、昔のLinuxは、以前のWindowsよりも安定し、バグが少なかった。

しかしながら、いつからか、LinuxのX11はWindowsと同様に「重たくて不安定なシステム」となった。これはKDEやGNOMEのような統合デスクトップ環境のせいである。

今では、むしろ、Windowsは.NET Frameworkなどのおかげもあり、重たいかもしれないが、強制終了やフリーズは以前よりも少なくなった。逆に、LinuxはUbuntuなどの「ガラクタの寄せ集めでなんとか動いているシステム」になりつつある。今のままでいけば、UbuntuはWindowsよりも重たくて不安定で使いづらいシステムをさらに悪化させていくだろう。

2021.04.30

心理学

霊的な知性

僕は、この世界において、失った大切なものとは、「霊的な知性」ではないかと思う。

知り、考え、経験する中において、霊的な知性があるのとないのとでは、まったく違った結果になる。

考えるべきことは、「何を考えるか」ではなく、「どのように考えるか」である。子供には、霊的な知性が最初から備わっているのである。

2021.04.29

心を落ち着かせよ

また、精神が狂った人間を治すには、「心を落ち着かせること」である。

言ってしまえば、心や精神を落ち着かせられれば、どんな病気でも治る。

なぜなら、そもそも狂った人間は、「その場に固定される」ことがない。いつまでも動き続けていて、心配と不安は次から次へとやってくる。

自分がいくら自分を納得させようと七転八倒しても、最初から条件的に成り立たないものを、どんなに成り立たせようとしても成り立つことはない。

必要なのは、今をそのまま受け入れることであり、そのために必要なのは「心を落ち着かせること」である。

2021.04.29

同じことを、どのように考えているかが違うだけ

人間は同じだ。

なぜなら、同じことを、どのように考えているかが違うだけであり、現実に存在するこの世界は同じだからだ。

それぞれが違った考え方をしても、別のことを考えているわけではない。

同じことを考えているのだが、その同じことをどのように考えているかが違うだけにすぎない。

2021.04.29

見ようとするな、心を落ち着かせて、景色を眺めよ

見ようとするな。

今の自分が何も見ていないからといって、静止した状態の世界を見続ける必要はない。

止まった世界を見続ける、そんな子供や正常な人間は居ない。

見たくないならば、見ようとするな。

そうではなく、心を落ち着かせて、景色を眺めてみよ。

足が辛いなら、足に宿る精神を落ち着かせよ。

多重人格の言葉が辛いなら、人格の部分を落ち着かせれば、すぐさま心は平穏を取り戻すのだ。

この世界における「理想の状態」、それは心の落ち着いた状態だ。

2021.04.29

昔の文章

規則そのものを考えただけにすぎない

昔の僕の文章は、「規則そのもの」を考えただけに過ぎない。

しかしながら、そこには霊的な知性があった。

この世界における神羅万象のすべてを「創造する旅」、それこそがいつもの僕の文章だった。

たわいのない妄想を言っているように見えて、真実は「霊的な知性を持っていた」というだけの話にすぎない。

2021.04.29

文学

星の王子さまに感動した

僕は、専門知識や学問の勉強に興味を失い、小説を読むことにした。

そこで僕が手に取ったのは、フランス語と日本語の対訳で書かれた星の王子さま。

この本で僕は感動した。

都市から外れた砂漠でひとり、飛行機が故障して修理しなければならないサンテクジュペリ(本の著者)は、王子さまに出会う。

王子さまは、羊の絵を欲しがっている。その理由は、王子さまの小さな星を台無しにしてしまう危険なバオバブの種を小さな芽のうちに食べさせるため(だと思う。僕はまだ途中までしか読んでいない)。

ボルトを外そうとして四苦八苦しているサンテグジュペリに、王子さまは「羊は薔薇を食べるの」と聞く。サンテクジュペリは「食べる」と答えると、「薔薇の棘は何の役に立つの」と聞く。

サンテクジュペリが「僕は真面目なことをしているんだよ。薔薇の棘はなんの役にも立たないよ」と言う。

それに王子さまは苛立つ。「まるで、そんなことが大事でないというのか」と王子さまは言う。「自分の小さな星に、どの星にも存在しない、自分だけの星に咲いている一輪の花が、小さな羊がなにも知らずに食べてしまって、愛した自分の惑星の唯一の楽しみであり、自分の愛した薔薇の花がなくなってしまうかもしれないということが、大事なことでないというのか」と言う。(実際は別の言い回しで書かれている。それもフランス語である。)

僕はこれを読んで、星の王子さまという作品が好きになった。

サンテグジュペリは、単に王子さまを子供にするだけではない。大人のような深いことも言う。王子さまは、「花の言うことなんか、聞いちゃいけない。言葉より、行為を見るべきだった。あわれな企みの裏にある、本当の優しさに気付くべきだった」と言う。

そして、王子さまは、薔薇の花との関係がこじれ、愛することができなくなったため、薔薇と別れるために自分の居た小さな惑星を旅立ったのだ。

2021.04.30

星の王子さまをさらに読んでいる

星の王子さまを、さらに読んでいる。

なぜか、どんな活字の本よりも読みやすい。暇な時に、手に取って「次の展開を知りたい」という気にさせられる。

しかしながら、多くの人が知っているように、星の王子さまは児童向けの簡単なものがたりであり、大人向けではない。

王子さまの星を旅立った王子さまは、近くのさまざまな小惑星で、王さまや飲み助などの「理解しがたい大人たち」と出会う旅をし、最後に地理学者の勧めから地球に降り立つ。

王子さまは、薔薇の花園を見て、「薔薇は自分の星にしかないと思っていたが、実際はたくさんあった」などということに驚く。しかしながら、狐と友人になり、「飼いならされた自らとかけがえのない時間を費やしたものについては、自分がそのものを必要とし、そのものも自分を必要とし、他のどんなものよりも大切なものとなる」ということを知り、この考え方を改め、「薔薇そのものはたくさんあるかもしれないが、自分の愛した薔薇はひとつだけだ」ということを教わる。

その後はまだ読んでいないが、おそらくサンテクジュペリに出会うところまでが書かれるものであると思われる。

本当のことを言うと、僕は星の王子さまを前に一度読んだことがあるが、その時はここまで面白い書物だということは分からなかった。薔薇のシナリオについても、なんとなくそんな展開もあるものだと、気長に受け流していた。

星の王子さまをきちんと理解するには、読んで何年も経ったあと、もう一度読むことをみんなにもおすすめしたい。

2021.05.01

星の王子さまを最後まで読んだ

今、星の王子さまを最後まで読んだ。

王子さまは、結局自分の星に戻るために、体を捨てて倒れて死んだが、僕は、それを悲しいとは思わなかった。

なぜなら、僕は今までの星の王子さまに書かれているシナリオの方が悲しかったからだ。

死んだということが、悲しさを示すだけであって、星の王子さまはそれが悲しいだけの小説ではない。そこまでに至る、星の王子さまが教えてくれた多くのことが悲しいのである。

2021.05.01

哲学

このままで賢くなることを諦めるな

このままで賢くなることを諦めるな。

土台をしっかりと作れば、きちんとその上になんでも築くことができる。

既に分かっていることがなんであるか、まだ分かっていないことはなんであるか、見極めよ。

惰性で続けるだけではなく、反省し、考えよ。

もう既に分かっていることから考えるな。

この世界において、自分が目指すべき道を「世界を救うこと」であるとするなら、そのためになにを考える必要があるのか、もう分かるはずだ。

2021.04.30

ヘーゲルの言いたかったこと

僕は、そろそろヘーゲルが「絶対精神の目覚め」と言っている意味が分かった。

ヘーゲルは、フィヒテやシェリングの言う「宇宙の超自我」「同一の現象である世界精神」のような「世界精神」、すなわち「霊魂」のことを世界精神だと言っている。

ヘーゲルは、この世界精神、すなわち人類すべての環境的な意識の向かう先を、「歴史」として、「絶対精神の目覚め」であると表現したのだ。

そして、ヘーゲルは、その歴史が弁証法、すなわちテーゼとアンチテーゼからジンテーゼへと向かう過程であると考えた。

同時に、自己意識の発展は、疎遠になった精神と環境的に自分が世界と繋がっているとする「確信」から生まれ、それは人倫の国と啓蒙を目指して進歩していくが、世直しを目指して世間と戦う徳は世間に敗北し、その後に事そのものへと境地が変わっていき、最終的に良心としての絶対知へと行き着く。

こうした「啓発的人生」のことを、ヘーゲルは「絶対精神の目覚め」であると表現したのである。

そして、こうした過程が、すべて完璧に記述されている点において、ヘーゲルは「近代哲学の完成者」であるとされるのである。

2021.05.01

デザイン

パンク・膨張やワープは使える

最近、デザインの仕事をしている関係で、Adobe Illustratorのことが良く分かってきた。

つまり、さまざまな機能が良く分かった。また、どのような時にどのような操作をすべきかも分かってきた。

一例を言うと、パンク・膨張は使える。たとえば、多角形を作ってパンク・膨張をかければ、光のような表現も、あるいはもくもくのような表現もできる。

それから、ワープは使える。さまざまな変形や動きを四角形などにつけられる。

しかしながら、僕は一向に絵が描けていない。「描けないわけではない」と僕は思っている。たまに変なパスを描くこともあるが、切り抜きのような正確なパスを描くことはできる。

それでも絵が描けないのは、実際のところ考えるよりも慣れることであって、考えて絵を描こうとしてもしょうがない。そのうち、絵を描くことにも慣れるだろう。今は、ネットで拾った素材を使って、適当な配置をしていればそれでいい。

デザイナーなのに、そうした「イラスト描き」を僕はしない。することは、DTP的なレイアウトだけ。これはパズルのような知性が必要だが、僕は「仕事に必要な最低限のことを正確かつ高速にできる」。これもひとつの才能だ。

2021.04.30

僕のデザインの仕事

僕はデザインの仕事をしているが、僕のやっていることを簡単に言うと、月ごとの老人ホームや児童養護施設から送られてきた写真を、一枚の紙面にレイアウトして整え、飾りをつけるという仕事をやっている。

僕は、グラフィックデザイナーでありながら、大したイラストを描くことはできない。それでも、紙面を隙間なく、綺麗に写真を配置するために、まるでパズルのようなレイアウトのスキルを頑張っている。

また、デザインセンスがまったく必要が無いわけではなく、タイトルやヘッダーを作るために、契約している素材サイトの素材を使いながら、できるだけ綺麗なデザインになるように努めている。

2021.05.01

知識

もっと狭く、もっと深く

実際のところ、僕が大学の勉強で問題なのは、広すぎて、そして浅すぎることである。

これといって分野を絞らずに、気になったものだけをピックアップしているため、それをランダムに繰り返すことで、あまりに広く色んなことを知っているが、「きちんと正しく知ったこと」がひとつもないのが僕の欠点だ。

本も、最初の部分を読んでどんな本か分かったら、僕は最後まできちんと読まない。最後まで読まずに、必要な点だけをピックアップして、選別して読んでいる。

このような方法では、知ったことが何を意味しているのか、背景まで突き詰めて体系的に学ぶことができない。

本はどんな本でもいい。必要なのは、「もっと狭く、もっと深く」である。もっと、きわめて狭い領域だけを深く知ればいい。「物理がいい、歴史がいい」では、らちが明かない。もっと狭くひとつの分野を知ろうとすれば、結果的にそれが「賢い理性」となるのである。

2021.04.30

裏側にあることより、表面にあることを

実際のところ、僕はこの世界にある「裏側」のことばかり知ろうとしている。

IT技術、特にUNIXやLinuxは、目に見えるところにはどこにもないが、さまざまなところで使われている技術であり、「会社とインフラの背後にあるのは経済とUNIX」であると言えるかもしれない。

僕は、そうした裏側のところまで、この世界を全部知ろうとしている。しかしながら、それでは、逆に表面にあるものが見えなくなってしまう。

生物や自然科学をしたいなら、学問としての体系的知識は、面白くもなんともないのは当たり前である。面白いのは表面に見える「生き物」や「自然の営み」であって、学問的基礎を学ぼうとするのは、まったく王道でもないし、面白くもなんともない。

もっと、表面にあることを好きになった方が良い。UNIXの勉強をしたいなら、MINIX本には理論と実装は書かれているが、実際に役に立つようなことはあまり書かれていない。「コンピュータそのものの勉強」にはなるだろうが、実用性を求めるならPythonの勉強をした方が良い。

2021.05.01

英語

英語を上手く喋るコツ

英語を上手く喋るコツは二つある。

まず、日本語のように「くっつけてかかるようにしない」こと。単語をスペースでひとつひとつ分けて、ひとつひとつの単語を別々の単語であるかのようにひとつひとつ喋ると、日本人特有の「ぼそぼそとした喋り方」ではなく、「素直にネイティブの子供が話すように喋る」ことができる。

同時に、頭で考えている英語と、口で喋っている英語を区別すること。頭で喋りながら口で同じことを言うように話さないこと。頭で中心となって話しながら、口で話す英語とは別の方向へと意識を持っていくと、自然に頭で英語の「センテンスの構築」ができるようになって、ネイティブ並みに速いスピードで話すことができるようになる。

2021.05.01