2016年8月27日土曜日

SVG アニメション

SVGの存在を知ったのはほんの数年前だった。

さすがに、長い時間仕様を構築した結果だろうが、凄い。

EXCELのグラフ機能が陳腐に見えるのは俺だけだろうか!


なんとなくここまで

グラフィックプログラムなんて何も知らなかった。

でも、50を過ぎて、独学でグラフィックプログラムを勉強した。

今60過ぎだが、なんとかここまでグラフィックプログラムを作れるようになった。

まっ、ノンプロのプログラマーとしては上出来だろう。


2016年8月20日土曜日

学習機能を機械化できるのか

ルールのような手続き方の知識ベースを学習機能として、機械化するのは不可能だろう。

これは、だいぶ前から気がついていた。

でも、画像データなら可能かもしれない。

普通マップ系の画像変形はフィルータを使用する。

フィルータをマトリックス化できれば、このマトリックスを保存することにより、学習機能は実現可能だと思う。


まっ、俺が思いついたことだから、誰かやってるとは思うけど!

2016年8月18日木曜日

人工知能は名医でなければならない

'80年代初頭最も有名なエキスパートシステムは「Mycin」だった。

このエキスパートシステムは単純なルールに対して「はい」「いいえ」を応答することで診断するものだった。

当時、この「Mycin」よりシステムを動作させる「E Mycin」の方が有名だったと思う。

ルールとは早い話、if分である。

つまり、ルールとはオブジェクト指向で蓄積されたデータから、if文で結果を導きだす方法だった。

今の人工知能は、これとは別だとは思うが、基本的には同じだと思う。



昨年末待望のPS4を購入した。

ゲームがしたたかったこともあるが、テレビでHuluを見たかったのが最大の理由だ。

先日、Huluの動画で「Dr.HOSE」を見た。

内容は、難病の原因を突き止め患者を助けるものだ。

普通、名医と聞いて連想するのは、温和で人受けの良い人だ。

だが、このDr.HOSEは毒舌で自己中心的な、嫌な奴だ。



この嫌な奴は、人が嫌がることを平気で言う。

では、こんな嫌な奴が名医と呼ばれる原因は、シャーロックホームズ並みの観察力にある。

普通の人は、毎日付き合っている家族でも、父親に微熱があるなんてことは気づかない。

この嫌な奴は、普通の人が見逃す変化を見逃さない。

そして、この嫌な奴は、変化の原因を見つけるまで執念深い。



この「Dr.HOSE」を見て、思ったことは、ルールベースの人工知能には限界がる、と感じたことだ。

ルールベースはシングルスレッドだから、一つの事象を突き詰めることしかできない。

だからと言って、ルールベースをマルチスレッドにしたからと言って解決するわけではない。

ルールベースの人工知能は、普通の医者レベルまで高められるだろう。

でもこれではだめだ。

人工知能は名医でなければならない。

2016年8月17日水曜日

スーパーコンピュータ に期待すること

スーパーコンピュータなんて大学も出ていない無学の俺に無縁の代物だ。


この前、スーパーコンピュータ京の実績を特集していた。

たしか、スーパーコンピュータ京の実績は

・気象予想
・風洞試験
・心臓シュミーション
・地震避難シュミレーション
・医療薬化学シュミレーション
etc

などのシュミーションだった。

で、疑問に思ったことは、上記シュミーションをスーパーコンピュータを利用して行う理由だ。

俺が考えるに、上記シュミーションはほとんどがパーティクル・システムである。

パーティクル・システムは炎のような粒子一つ一つの動きを計算することだから、

単純に、

分散システムで、各々の粒子を計算し、

分散システムに記憶(ビックデータ)し、

高性能GPUで画像化すればいいことではないだろうか?

そこで、無学の俺が、高学歴の学者さん、官僚さんにお聞きしたい。

スーパーコンピュータを作ったはいいが、本当にスーパーコンピュータの応用を創造できるのですか?



今、コンピュータの世界は、オープンソースが常識である。

でも、日本のスーパーコンピュータは世界とは逆行してクローズソースの世界だ。



俺がスーパーコンピュータに期待することは、

映画「マトリックス」の世界だ。

つまり、誰もが、現実と勘違いするぐらい物理計算化された世界だ。

この仮想現実の世界は、今の技術では不可能だ。

でも、目標にはなる。

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ぐらい小学校から教えても何も問題ないと思う。いや、教えるべきだ。