2020年2月28日金曜日

MIT App InventorとJavaScriptによるAndroidアプリ(続)

 以下の記事に書きましたように、これまでにいくつかのAndroidアプリを、MIT App InventorとJavaScriptとの連携で作ってみました。

● Make MIT APP Inventor more powerful with JavaScript
https://sparse-dense.blogspot.com/2019/10/extending-mit-app-inventor-with.html
● Writing formulas in both AppInventor and JavaScript
https://sparse-dense.blogspot.com/2019/10/writing-formulas-in-both-appinventor.html

 今回の記事も、その続編なのですが、まず、もとになるJavaScriptの初歩の解説書[1]について述べます。この書は、全くの初心者から中級の人までに有用な書籍のひとつだと思います。その特徴は、解説が丁寧であり、「実際に手を動かしてコーディングしながら」学び易いように、例題ファイルの構造をうまく工夫していることです。自分でコーディングしてうまく動かない場合は、模範解答ソースリストと比べて検討することもできます。

 初級向けではありますが、全12章のうち、とくに最後の方の第10章「便利なjQuery」、第11章「Web APIで郵便番号から住所」、第12章「YouTubeの動画ギャラリー」などは、多くのユーザにとって有用と思われます。

 本書の著者は、スマホでの利用は想定されていないのかも知れませんが、例題として載っているJavaScript関係のファイル(.html, .js, .cssを含む)は、ほとんどそのままAndroidスマホでも動かすことができます。その実現法のひとつは、上記で述べたように、MIT App Inventorと連携させることなのです。App Inventorに組み込まれているWebViewerは、強力なJavaScriptエンジンでありますから。具体例を以下の図に示します。最後の第12章の例題「YouTubeの動画ギャラリーを作ろう」を対象としました。


 必要となるApp Inventorのブロックは、上図のとおり極くわずかです。これだけで、「キーワードを与えてボタンを押すと該当するYouTubeビデオが得られる」Androidアプリが作れます。主要な処理は、JavaScript側でやっているので、これは当然ではありますが。下図は、Androidスマホでこのアプリを実行した場合の画面例です。(本書に解説されているように、各自のAPI key for YouTube Data API (V3)が必要です。)



 YouTubeの動画は、もちろん、だれでもWebブラウザから検索できますが、このスマホアプリは、ひと味ちがいます。とても手軽に、思い浮かんだキーワードを元に動画を得てすぐに見ることができます。著者の岩田さん、素敵な例題をありがとうございます。

参考文献
[1]岩田宇史:いちばんやさしいJavaScriptの教本 第2版、(株)インプレス、2019年3月21日

2020年2月21日金曜日

Watson Assistantに関するIBM Webセミナー

【追記】教えて!ラガマルくん IBM Watson版(本記事末尾をご覧下さい)

 今日は、2020-2-21です。新型コロナウィルスの拡散により、イベントや会議などに中止の動きが広まりつつあるようです。いろいろな関係者のおもいや立場もあり、開催か中止かの判断は非常に難しいところだと思います。そんななか、本日、「IBM Webセミナー」というのがあり、参加してみました。事前登録して、自席のPCから聴講でき、質問もできます。

 タイトルは、「Watson Assistant最新アップデート- より高度な会話型AIインタフェースの実現」でした。小生は、以前から、高度な「プログラミング相談」の自動化を漠然と思い浮かべていました。そのきっかけは、2年以上前に、以下のブログ記事に書いたようなことでした。

個人用SiriのようなiPhoneアプリ
https://sparse-dense.blogspot.com/2017/12/iphoneapp-inventor.html
PC:何の日付でしょうか -> 人:(音声で)卒論提出日 -> PC:1月25日です。

(Google Assistantに関する過去記事から再掲)

 この過去記事は、Google Assistantがスマホアプリ開発環境ThunkableXで使えるようになったので、その試行を行ったものです。簡単な例でしたが、何かもっと発展的な利用が可能な気がしています。

 今回のIBMのAssistantは、さらに進化していることがおぼろげながら分かりました。短いWebセミナーですから、詳しいことはその場では分かりませんが、今後調べて活用していくための手掛かりが得られたように思います。私も、その場で簡単な質問(テキストで投入)してみたところ、セミナー内で講師からほぼリアルタイムに回答(全視聴者に向けて)があり、ちょっと嬉しくなりました。

 最後に、本セミナのなかで紹介された「教えて!ラガマルくん IBM Watson版」についてです。これは、本題であるWatson Assistantを用いたgoodなアプリケーションです。ラクビーに関する質問に答えてくれます。また、写真を選ぶと、画像認識により、ラグビーのどんなシーンかの説明文も出ます。他の分野の質問回答システムにも、何かヒントが得られるような気がします。


●教えて!ラガマルくん IBM Watson版
https://www.ibm.com/watson/jp-ja/meets-rugby/
https://ragamarukun.com/

2020年2月11日火曜日

Timer Overhead(in MIT App Inventor)

In general, talking about "timer interrupts" is difficult for laymen. This article, apart from the details, describes the overhead of the timer (to do something at regular intervals) at the user program level.

Suppose the timer shown below adds 1 every second (initial value is 0) and stops at 600 times. The elapsed time should be just 10 minutes. Because the addition and judgment in the loop should take less than 0.1ms. However, it actually took 4 to 5 seconds more than 10 minutes. Normally this may not be a problem, but in some cases a correction is required.


As a result of measuring the overhead for operating the timer once, it was found to be about 7.3 ms as shown in the figure below. This is surprisingly large! Then the actual interval of the timer should be shortened accordingly. That will almost finish in exactly 10 minutes (600 seconds). Such usage would also be useful.

2020年2月1日土曜日

AIに関するサラリーマン川柳

 先日、第33回「サラリーマン川柳」優秀100句が発表された。参考資料[1]にあるとおり、そのうち、AI(人工知能)に関するものが7句ほど含まれていた。その一つが「AIに 営業スマイル 審査され」である。共感できる傑作ではなかろうか。近未来のAI社会を象徴するように感じられた。

 大学でも、「授業評価」は、受講学生100人の表情や仕草をAIが認識した結果で決まるようになるのではないか。それが、「客観的」で「公平」な評価と言われそうで怖い気がする。無下に拒絶することもできないだろう。AIの認識結果の妥当性を人間がさらに検証する必要があるだろう。「その理由を説明できるAI」の研究も進んでいると言う。


そんなおもいで、上図を作ってしまいました。人物イラストには、参考資料[2]のコミPo!を利用しました。

参考資料
[1] 第一生命、第33回サラリーマン川柳
https://event.dai-ichi-life.co.jp/company/senryu/
[2] マンガデザインツール コミPo!(商用に適用可能な製品版)
https://www.comipo.com