カテゴリー
学術

Multiplatform2

2 評価

 どのプラットフォームを採用すれば良いかはその時々で様々な見解に分かれますが常に念頭に置いておかなければならない観点をまとめます。

2.1 ネイティブ機能へのアクセス方法

 それぞれのプラットフォームはアプリを開発出来ると謳っていますが、どこまでネイティブ固有の機能を利用できるか承知した上で利用します。開発していく中で要件を実現できないことになっては大変です。無理してできたとしても予定外のコストが掛かってしまってはそのプロジェクトを成功には導けません。

C\C++

 OS自体がC/C++でできているのでネイティブ機能は全て利用できるはずですがそのアクセス方法が利用し易い形でまとまって公開されているわけでもないので難易度が高くまた、直接OSにアクセスするのでメンテナンスが大変です。高速処理が必要なOSに依存しないビジネスロジックをSDKなどの共通ライブラリとして利用するならば良いでしょう。

Flutter

Binding to native code using dart:ffi にあるようにネイティブ機能を呼び出せます。

KMM

 Connect to platform-specific APIs にあるようにネイティブ機能を呼び出せます。

Haxe

 アプリ開発の具体的な手順があまり載っていませんのでよくわかりません。OpenFL等の高機能なライブラリを利用して実装しC++に変換してからXcodeやAndroidStudioに取り込むのでしょうか?どの程度実用性があるかは試してみないと何とも言えないです。

カテゴリー
学術

Haxe

 昔のことですが随分とActionScriptにお世話になりました。だいぶ廃れてきましたがHaxeとOpenFLという形になって生き続けていると思います。実務に活かせるかどうかわかりませんが追い続けていきます。

2023.05.15
まだHaxeは生きているようです。
なので
ChatGPTに聞いてみた。

User
Haxeというアプリ開発環境は知っていますか。

ChatGPT
はい、Haxeはオープンソースのプログラミング言語およびアプリケーション開発フレームワークです。Haxeは、JavaScript、Flash、C++、Java、Python、PHP、C#、Objective-Cなど、さまざまなプラットフォームや言語で実行可能なコードを生成することができます。

Haxeは、静的型付けの言語であり、構造体やジェネリックなどの高度な機能を提供します。Haxeは、クロスプラットフォームの開発をサポートし、複数のターゲットに対してコンパイルできることが特徴です。例えば、Haxeで書かれたコードは、ウェブブラウザやモバイルデバイス上のネイティブアプリ、デスクトップアプリケーション、ゲームエンジン、およびその他のプラットフォーム上で実行できます。

Haxeには、豊富なライブラリやフレームワークが用意されており、それらを利用することで、開発者は簡単に高品質なアプリケーションを作成することができます。また、Haxeは、エディタやIDEのプラグインなど、豊富なツールセットを提供しており、効率的な開発が可能です。

Haxeは、広く利用されているプログラミング言語やフレームワークよりも新しいため、まだ一般的な知名度は高くありませんが、将来的には重要な開発環境の1つになる可能性があります。

カテゴリー
学術

Multiplatform1

 今注目しているMultiplatform開発環境は、
  C/C++
  Flutter
  KMM
です。それぞれ長所、短所があるので比較してみます。それとマイナーですが個人的な思い入れで
  Haxe
も一緒に比較します。

1 概要

C/C++
 PCでもスマホでも組み込み用のマイクロコントローラーでも開発できます。Emscriptenを使えばWebアプリでも大丈夫です。古い言語なので広範囲に応用されており修得している人材の幅が広いです。

Flutter
 ビューもコントローラーもモデルもDartで開発できます。FlutterもPCでもスマホでもアプリを開発できます。デザインを統一できるアプリ開発なら共通化のメリットを存分に受けられます。

KMM
 デザインパターンでいうモデルを両モバイルOSで共通化しビューはそれぞれのIDEで作成するというコンセプトです。KMMはKotlinで作ったモデルをiOSでも使えます。OSごとの特徴を活かし且つ少しでも共通化したいアプリ開発に向いています。

Haxe
 ActionScriptから発展したマルチプラットフォーム開発環境です。Flashの資産を使えるためアニメーションを多用するならばまだ選択肢になるのではないかと思います。

カテゴリー
学術

Kotlin Multiplatform Mobile

 AndroidStudio + KotlinでiOSのアプリも開発できるのがKMMです。まだ正式リリースされていませんがベータ版でその実力を見ていきましょう。

https://developer.android.com/studio/preview

 Android Studio Preview releaseをインストールします。

 ConfigureでPluginをインストールします。

 Kotlin Multiplatformをインストールします。

 Projectを新規作成しKMM Applicationを選択します。

 Androidアプリをデバック実行します。

 Androidシュミレーターで無事に動きました。

 続いてiOSアプリをデバック実行します。

 iOSシュミレーターで無事に動きました。

カテゴリー
学術

光学

光学
光学 ニュートン

 誰もが知っているニュートンは数百年も前の人ですが、その人の書いたこの本は現代でも通用するほど科学的な記述です。

 この時代の常識や因習に立ち向かい自身の信じる理論を実験により実証していくその姿は、人類を未来に導く戦士だったのでしょう。

 ニュートンの業績はそれとなく知ってはいましたが本人が書いたものを読むのは初めてでした。ライプニッツよりもニュートンの名前が残ってるのは彼が栄光の戦士だったからです。

カテゴリー
学術

生命とは何か

生命とは何か
生命とは何か

 生物、および生物が営む生物的な意味合いをもつあらゆる過程はきわめて「多くの原子から成る」構造をもっていなければならない。そして、偶然的な「一原子による」出来事が過大な役割を演じないように保障されていなければならない。

は、誤っている。

 遺伝物質に関するデルブリュックの一般的な描像から出てくる事柄とは、生きているものは、今日までに確立された「物理学の諸法則」を免れることはできないが、今までに知られていない「物理学の別の法則」を含んでいるらしい。

とあるが解らないけど何かが含まれているという構造は人工知能に必要だと思います。

 周辺環境に合わせて安定化していくものを非生物、周辺に関わらず自身の状態を安定化しようとするものを生物であると理解しました。

カテゴリー
学術

方法序説

方法序説
方法序説

 タイトル通り序説でした。ただデカルトのことが少し解ることができて良かったです。もっと知りたくなった時に序説の次を探します。

 デカルトは最初書物で学んだそうです。学び尽くした後書物で学ぶのを止め実体験を通して学ぶ方法に切り替えたとありました。

 これを人工知能に置き換えるとなかなか実現は難しいです。今の機械学習は正に書物での学習に他なりません。更に悪いことに直ぐ過学習に陥ります。

 デカルトの学び方ができる人工の知能ができた時にそれが人工知能といえます。

カテゴリー
学術

エミール

エミール
エミール

 人を教育するように人工知能の教育もできるようになりますでしょうか。今はまだできないようです。

 機械学習に教師有りと無しがありますが他の方法も必要になりそうです。

 結構量があるのでまださわりしか読んでいませんが教育について書かれている本です。

 冒頭の解説にプラトンの国家も教育に関わる本だそうです。今度手に入れてみようと思います。

 教育論に興味はありませんが人工知能の教育に役立つような気がします。

カテゴリー
学術

CPU Collection

CPUやらマイクロコントローラーを集めてみた。いつか動かしたい。

D8080A
D8080A
D8085AC-2
D8085AC-2
M80C39
M80C39
UPD8048C
UPD8048C
uPD8748D
uPD8748D
M80C85A-2
M80C85A-2
TMP8085AP-2
TMP8085AP-2

Google Gemini に聞いてみた。

私の質問

8080A系、8085系のマイコンの使い方を教えて下さい。

8080A系、8085系のマイコンの使い方

8080A系、8085系のマイコンは、1970年代にインテル社によって開発された8ビットマイクロプロセッサです。これらのマイコンは、当時は非常に高度な技術であり、多くのコンピュータや電子機器で使用されました。

今日では、より新しいマイコンが主流となっていますが、8080A系、8085系のマイコンは、レトロコンピューティングや教育目的で使用されることがあります。

使い方

8080A系、8085系のマイコンを使用するには、以下の手順が必要です。

  1. ハードウェアの準備
    • マイコンボード
    • 電源
    • メモリ
    • 入出力デバイス
    • プログラミングツール
  2. プログラミング
    • マシン語またはアセンブリ言語でプログラムを作成する
    • プログラミングツールを使用して、プログラムをマイコンに書き込む
  3. 実行
    • マイコンに電源を供給する
    • プログラムを実行する

詳細情報

8080A系、8085系のマイコンの詳細については、以下のリソースを参照してください。

  • データシート
    • 8080A: [[無効な URL を削除しました]]([無効な URL を削除しました])
    • 8085: [[無効な URL を削除しました]]([無効な URL を削除しました])
  • マニュアル
    • 8080A プログラミングマニュアル: [[無効な URL を削除しました]]([無効な URL を削除しました])
    • 8085 プログラミングマニュアル: [[無効な URL を削除しました]]([無効な URL を削除しました])
  • チュートリアル
    • [[無効な URL を削除しました]]([無効な URL を削除しました])
    • [[無効な URL を削除しました]]([無効な URL を削除しました])

日本語の情報

  • 8080伝説(カラー版)
    • [[無効な URL を削除しました]]([無効な URL を削除しました])
  • 図解マイクロコンピュータ64180の使い方
    • [[無効な URL を削除しました]]([無効な URL を削除しました])%
カテゴリー
学術

uPD8748D

uPD8748D
uPD8748D

ChatGPTに聞いてみた。

User
uPD8748Dは何ですか。

ChatGPT
uPD8748Dは、NEC(日本電気株式会社)が開発した8ビットマイクロコントローラ(MCU)の1つです。uPD8748Dは、インテル(Intel)の8748マイクロコントローラと互換性があります。

uPD8748Dは、40ピンのデュアルインラインパッケージ(DIP)で提供され、8ビットのデータバス、16ビットのアドレスバス、4KBのROM、128バイトのRAM、2つのタイマ/カウンタ、および入出力ポートを備えています。また、uPD8748Dは、最大6MHzのクロック周波数に対応しています。

uPD8748Dは、多くのアプリケーションに使用されています。具体的には、家庭用電子機器、自動車用途、産業制御、セキュリティシステム、家庭用ゲーム機器などがあります。uPD8748Dは、低消費電力設計であるため、電池駆動のアプリケーションにも適しています。

uPD8748Dは、インテルの8748と互換性があるため、既存の8748ベースのシステムをアップグレードするためにも使用されます。また、uPD8748Dは、NECのマイクロコントローラファミリーの1つであり、他のNEC MCUとの互換性があるため、システム設計者が複数の製品を開発する場合に便利です。

カテゴリー
学術

教育論の汎化

 人間の教育論はたくさん目にするが他の生物も教育を行っているので全てを含んだ教育論を探さなければなりません。そうしないと人工知能の教育ができません。

カテゴリー
学術

Flutter


アプリをビルドできるまでXcodeをインストールします。CocoaPodsも必要です。

アプリをビルドできるまでAndroidStudioをインストールします。

AndroidStudioにDartのプラグインをインストールします。

AndroidStudioにFlutterのプラグインをインストールします。

あとは、
https://flutter.dev/docs/get-started/install/macos
の通りにインストールを行います。

flutter doctorを実行し以下のように問題が出なくなるまで設定します。

flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel master, 1.22.0-10.0.pre.142, on Mac OS X 10.15.6 19G2021,
    locale ja-JP)
 
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
[✓] Xcode - develop for iOS and macOS (Xcode 11.6)
[✓] Android Studio (version 4.0)
[✓] Connected device (1 available)

• No issues found!

Androidのシミュレーターを立ち上げてからデバック実行しました。

iOSのシミュレーターを立ち上げてからデバック実行しました。

 AndroidとiOSそれぞれシュミレーターでの実行ができました。mac mini 2014 1.4GHzでは起動まで結構時間がかかるので実機をつないで検証した方がいいと思われます。

カテゴリー
学術

Mac miniの延命

I-O DATA SSD 480GB SSPH-UT480K

カテゴリー
学術

新科学対話

 約四百年前の人々が実験により得た事実をもとに疑問を解き明かしていく姿が描かれています。合理的な精神によってのみ科学は進歩していくことが再認識できました。この本を書いた人は人類の歴史に輝く偉人として永遠に記憶されていきますが、当時この本を読む人がいたこと自体も驚嘆すべきことです。

 現代まで残っている古典には生み出した人とそれを読み伝えてきた人々の思いがたくさん詰まっています。

カテゴリー
学術

ツァラトゥストラはこう言った

 今の自分はツァラトゥストラが言ったことを理解してあげることはできそうもありません。また遇うこともあるかもしれないので持っておきます。

カテゴリー
学術

自作ROMライター その9

アナログ部
デジタル部
電源部
アナログ部プラス側電圧
アナログ部マイナス側電圧
デジタル部電圧
カテゴリー
学術

自作ROMライター その8

 電力不足を解消すべく新たに電源部を追加しました。

 ここでいくつか実装上の問題が発生しました。
1 異なる製造元のブレッドボードを繋ごうとしても接合部が合わないことがある。
→ダブルクリップで接合部の両端を挟んで解消した。

2 電源のラインを順繰りと繋いで行ったら電源に近いところと遠いところで電圧差が出てしまう。ブレッドボードの問題か接続に使用しているワイヤーピンの問題かは不明。
→両端及び長いワイヤーで直接電源部と繋いで回避した。

3 デジタル用電源の5Vが下がり気味
→7805のGNDに100Ωも抵抗を入れて若干電圧を上げた。

 少々問題は出ていますが良いこともあります。電力に余裕ができたので各モジュール毎にLEDを点けて電力供給の有無をヴィジュアルで解るようにできました。

電源ランプが点灯している様子
カテゴリー
学術

実験用電源の作製14

 レギュレータと放熱器の間の絶縁体です。触った感じではシリコンゴムでしょうか。

 レギュレータのGNDやOUTなどに入れる保護ダイオードです。600V、1Aまで使えます。

 ROMライター用の電源で使用していた両電源を作るためのオペアンプです。トランジスターで構成する方が簡単でした。

 放熱器の工作で試行錯誤を繰り返して出た残骸です。アルミホイルやら針金、ダブルクリップのつまむ部位など。

  実験用電源が完成した様子です。
アナログ部±6V500mA、デジタル部5V700mA・12V900mA程度の出力ができます。

 早速作りかけのROMライターに接続してみました。

カテゴリー
学術

実験用電源の作製13

 負荷を接続しどの程度電流が流れるか測定します。放熱の状態も見て電圧が安定しているか確認します。

デジタル用電源12V
11.26V/11.54Ω=976mA

デジタル用電源5V
4.311V/6.0Ω=719mA

アナログ用電源12V
11.26V/15.6Ω=722mA

アナログ用電源±6V
5.67V/10.4Ω=545mA

カテゴリー
学術

実験用電源の作製12

 デジタル部のレギュレータ出力の様子です。7812、7805それぞれ近い値が出ています。保護のためにダイオードを入れるとピッタリとした電圧にならないです。