2016年8月14日日曜日

CODSYLデータベースを覚えて何するの?

CODSYLデータベースを検索してたら、

2015情報処理試験の問題にでくわした。



私は声を大にして言いたい、

CODSYLデータベースは過去の遺物だ。

クラウドの時代に、CODSYLデータベースを覚える意味ないだろう

馬鹿じゃない

2016年8月3日水曜日

本は一方通行の会話

基本的には、本は、話言葉で書かれている。

で、あれば、本は作家が一方的に話している会話だと思う。

(ただ、一方通行だから、会話の意味には当てはまらないけど。)

近頃本を読んでいて、「今自分は、聴覚を使っている」と思った。

つまり、作家が書いた読みものを、視覚から聴覚を経て理解している。


・・・


サスペンス小説を読んでいて、凶悪な犯人の文章が、低く野太い声として聞こえてくるのは俺だけだろうか?

2016年7月27日水曜日

法線は直線なの、それともベクトルなの?

頂点の法線を求めたくて、WEBを調べていたら、数学の法線の説明サイトを発見し、なんの気なしに読んでみた。

でも、高校でならったはずの法線だけど、理解できなかった。

法線も分らず、グラフィックのプログラムなんて書けないはずだけど、なぜか、私が作った法線を利用するプログラムは意図したとおりに動いている。

私が数学のサイトで分らなかったことは、法線が直線で説明されていたり、ベクトルで説明されていることだ。

早い話、直線=ベクトルであるように説明されている。

でも、直線=ベクトルではグラフィックのプログラムは作れない。

私だけが思っていることかもしれないが、直線とベクトルは別物と思う。

2D直線はn・p=d(ax+by+d=0)で定義される∞の点の集まり。
2Dベクトルは(x,y)で表される、方向と大きさを持った情報。

この理解で私のプログラムは動いている。

ちなみに、私は法線はベクトルだと思っている。

2016年7月26日火曜日

C# WPFよりHTML5の方が優れている

UntyをダウンロードしたらVisual Studio 2015も付属としてついてきたので、C# WPFの勉強がてら、プログラミングしている。

そこで、気づいたことを一言。

Java8のJavaFX及び、C# WPFはHTML5の仕様に近づいている。

ただ、前から気になっていたのだが、マイクロソフトが提供するプログラムは、作り手の都合を利用者に押し付け、結果的に使い勝手が悪くなっている、ことだ。

たとえば、WPFの<canvas>に数学の座標を設定する場合、以下のようになる。

<Canvas x:Name="canvas" HorizontalAlignment="Left" Height="800" Margin="39,54,0,0" VerticalAlignment="Top" Width="800">
<Canvas.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleY="-1" ScaleX="1" />
<TranslateTransform X="400" Y="400" />
</TransformGroup>
</Canvas.RenderTransform>
</Canvas>

疑問に思うのは
・<Canvas.RenderTransform>の必要性
・<TransformGroup>の必要性
Transformは複数指定するのはあたり前だから、<TransformGroup>は不要だ。

上記内容をSVGでは以下のようになる。

<g transform="scale(1,-1)  translate(400,400)"  Width="800" Height="800">
</g>

早い話、transformは要素ではなく属性にすれば簡単だ。


マイクロソフトは製品を世に出す速さは天下一品だ。でも、その分、使い勝手が悪い、いや、仕様検討が不十分な製品が世に出ている。

これは私の主観だが、高価なマイクロソフトの製品より、無償のHTML5の方が優れている。

最後に、なんでWORD,EXCELはSVGをサポートしないの。WORD,EXCELのグラフィック機能はダサすぎる。

2016年7月5日火曜日

「AI弁護士」

19歳が作ったチャットボット、「AI弁護士」が16万件の駐車違反を無効にという記事を読んだ。


19歳の学生が、駐車違反に対する異議を申し立てをサポートするサイトを立ち上げたという内容だった。

ほとんどの法律には、法律自体の不備をカバーするため、異議も仕立てが可能になっている。この異議を申し立てをサポートするという発想はユニークで面白い

でも私が気になったのは、19歳の学生が、12歳のとき「ユーチューブ動画を見ながらコーディングを独学で学だ」とあったことだ。

私は、高校を出てすぐ、BASICやCOBOLを学んだ。BASICやCOBOLは逐次型の言語で、結果出力はプリンターしかなかったので、習得にはさほど時間を必要としなかった。

でも、現在のコンピュータの入出力はほどんどがスクリーンであり、フォームなどの入力、画像などの出力と、入出力方法は多岐に渡る。これを実現しているのがオブジェクト指向言語だ。でも、このオブジェクト指向言語は逐次型の言語に比べ複雑である。

にも拘わらず、彼は12歳(小学生)でユーチューブ動画を見ながらコーディングを学んだのだから凄い。逐次型の言語に慣れていた私は、オブジェクト指向言語を学ぶのは大変だった。(今でも自由に使いこなしていない)

主観だが、オブジェクト指向は幼いころから学んだ方が良いと思う。また、オブジェクト指向はコンピュータを動かすだけの技術ではなく、社会、人間関係を機械的に関連づけることができる技術なので、知っていて損はない。いや、高度に発展するであろう、これからの社会では、必須の技術だと思う。

歳をとり、頭が固くなったときオブジェクト指向言語に悲鳴を上げた私が言うのだから間違いない。

2016年6月28日火曜日

オブジェクト指向について その5


オブジェクト指向の概念で良く言われる概念は

カプセル化
継承
ポリモーフィズム

であるが、この概念を構造化すると以下のようになると思う。(冗長は勘弁)


私がオブジェクト指向で気になるのは、

  • オブジェクト指向言語のほとんどが、基本的なデータ構造のアルゴリズムを前もって準備されていること。
  • 振る舞いにおいてオブジェクト指向言語のほとんどが、コンテキストが準備されていること。
です。これを実現しているのが、オブジェクト空間だ。オブジェクト空間は、ハードウェアに左右されない、VM/フレームワーク上にある。だから、複雑なアルゴリズム(バグの巣窟)を前持って準備することができる。
そして、ハードウェアから切り離されているので、オブジェクト空間は、複数のプロセッサーでも管理できる。私はこれをクラウドだと認識している。
だから、私は、オブジェクト指向で重要なことは、オブジェクト空間だと思っている。

ちなみに、オブジェクト指向の概念を記述した構造図もオブジェクト指向で記述している。

2016年6月25日土曜日

WORDで報告書なんて時代遅れ

「報告書、スマホで書いてもいいですか」という記事を見た。
内容は、今どきの若者は、WORDを立ち上げられない、旨の記事だった。

しかし、なぜ報告書をWORDで作成する必要があるのだろうか。主観だが、報告を見る人がWORDしか知らないからではないだろうか。
「パソコンの操作 = WORD,EXCELの操作」、と思っている人が今だに居ることに私はびっくりする。

私に報告書を自由な形式で提出を要求されたら、迷わず、HTML5を使用するだろう。なぜなら、

HTML+CSSはWORD以上の自由度で、ページを作成できる。
CANVAS,SVGでEXCEL以上の表やグラフを作成できる。
ブラウザさえあれば、高価なWORD,EXCELを必要としない。

からだ。

WORD,EXCELはスタンドアロン(オフライン)時代の遺物、データリンクがここまで発達した現在、WORD,EXCELに固執する必要は無いと思う。


ただ、残念なことは、スマホを与えられたアプリでしか使用できない人達が多すぎることだ。
高性能のコンピュータを手にしているのに、自分でプログラムを作らないなんて、もったい話である。


学校でWORD,EXCELを教えるのは大問題だが、HTML5ぐらい小学校から教えても何も問題ないと思う。いや、教えるべきだ。