SwiftUIのシュミレータについて
SwiftUIでシュミレータに入っているのに表示されず、選択ができないことに悩んでいた。やっとわかった。シュミレータで指定してあるiOSが開発環境と違うために表示されず、選択できないということがわかった。このことは、どこかに書いてありそうだけど、ない。シュミレータを開発環境に合わせて作ってなくてはならない。新しい機種のシュミレータが表示されたのはこれで理解できた。
とりあえずわかったので書いてみた。
画面がないので後でつけておきましょう。
GoogleのLookerStudioを使ってみた
GoogleのFormを使ってアンケートをとり、その結果がスプレッドシートにまとまるので、それをソースにしてLookerStudioでダッシュボードにまとめてみた。
まず、よかったのが、Formを使っているので、入力されるとスプレッドシートにどんどんデータがたまってくる。ソースを指定してLookerStudioで表示しているので、グラフやカウント表示が何もしなくてもリアルタイム(更新タイミングがあるが)で更新される。
さらに、グラフなどで特定のデータ項目を選択すると、その項目でフィルタがかかり、データが絞り込まれる。これも、考えながら選択して表示させられるので、新たな発見もあってとてもいい。
アンケートの中に、自由記述の項目があり、ここも結果を考察するのにキーワードで絞りたかったので、コントロールの中の入力ボックスを使って、キーワードを入力すると絞り込めるようにもしてみた。入力ボックスの設定がいろいろできて、検索タイプを「次を含む」にすると、キーワード一つをいれてフィルターをかけることができた。これもなかなか良かった。ただ、キーワードを複数入れてみたかったので、検索タイプを「次に含まれる」でできると思ったが、なかなかうまくいかずにけっこう大変だった。マニュアルを見ると「メロン、スイカ」のように書くとできるとあるができない。
結局は「正規表現」で複数ワードのOR検索ができた。ただちょっとこの正規表現が面倒で入力ボックスには「.*メロン.*|.*スイカ.*」と入力。.*でキーワードを囲ってORの|である。本当はもっと簡単に、入力するのは「メロン、スイカ」にして、別のところで正規表現で表して、フィルタをかけるようにできるといいかもしれない。まだやってない。
自由記述は、絞り込んだものをスプレッドシートなどに出力できるのもとてもいい。実は出力したものをNotebookLMをに取り込んでまとめることもしてみた。きちんと傾向をつかんでまとめてくれた。
アンケートは、集まったデータから何がわかるかで、LookerStudioのように簡単にグラフに表せたり、直感的にグラフを使ってフィルタがかけられたりできることはとてもいい。なかなかいいツールである。NotebookLMも含めてGoogleはすごい。
GASでAPIを使うためのサービスを追加(AdminDirectory)ではまったこと
Google Workspace for Educationを使っていて転出した生徒のIDがどうなっているのか確認するためにGASを使って情報を取得しようとしたところ、はまってしまった。
結局、サービスの追加でAdmin SDK APIでAdminDirectoryを追加すればいいのだが、これにバージョンが2つあった。この2つは「reports_v1」と「directory_v1」で、前者を指定してしまっていたので、エラーが出る。
const user = AdminDirectory.Users.get(owner);
でownerにIDを指定すれば、ユーザー情報がuserにはいるはずなのだが、ここで止まる。最初は、何も起こらないで、終了してしまうのでエラーが出ていることさえわからなかった。
まずは、GASの画面から左側の実行数を見て、完了と表示している行をクリックするとエラーが表示される。エラーは
デバッグ エラーが発生しました: Cannot read properties of undefined (reading 'get')
undefinedなので、コードを書き直して、AdminDirectoryのあとに.を打ってもusersが候補に上がってこない。どうもAdminDirectoryがおかしそうだとなって、一番上のプロジェクトの詳細を開いて、一番下にプロジェクトのOAuthスコープを見ると
View usage reports for your G Suite domain で https://www.googleapis.com/auth/admin.reports.usage.readonly なんか変 で、コードに戻って、サービスでAdminDirectoryを消して、登録し直そうとするとバージョンが2つ出てきて選択できることがわかった。
まあたいへんだった。でも、バージョンを「directory_v1」にするとAdminDirectoryのあとに.を打つとちゃんとUsersがでてくる。やはりエディタの予測補完をうまく使うことが大切なことがよくわかった。予測補完できないときは問題があり、設定に問題がある。
モンティ・ホールの問題
フェイクニュース時代の科学リテラシー超入門という竹内薫さんの本を読んだ。一気に読める本で、フィルターバブルの話とか相関関係と因果関係の話などもあり、納得しながら読めた。なぜ科学を勉強するとか、なぜ数学を勉強するのかの答えにもなる。ちょうどそんな話を先週もした。本の中にモンティ・ホールの問題が出ていた。ちょっとやってみたので書いてみる。
モンティ・ホールの問題は、知ってはいたのだが、ちゃんと考えたことがなかったので場合分けをきちんと書いて自分でやってみた。本当はドアを開けるのだが、簡単にあたりハズレにして、エクセルで表に書いたので下に貼り付けてみる。
| モンティ・ホールの問題 | |||||
| あたり | ハズレ | ハズレ | 変えた時 | ||
| 1 | a | b | c | ハズレ | 2/6 |
| 2 | a | c | b | ||
| 3 | b | a | c | あたり | 4/6 |
| 4 | b | c | a | ||
| 5 | c | a | b | ||
| 6 | c | b | a | ||
aが自分で上の1,2では、はじめにあたりを引いている。でも、このあと、変えるのでこれはハズレになる。
3,4,5,6がはじめはハズレを引いているのだが、司会者がハズレを教えてくれる(黄色のcとb)ので、自分の選んだものでないもう一つの方は必ず当たり、だから変更すればそれは必ず当たり(bとc)になる。でこれが4通り。
結局司会者がハズレを一つ教えてくれるので、自分の選択を変更すると当たりがハズレになり、ハズレが当たりになるという逆転が起こって、当たり:ハズレが2:4だったのが、逆転して、4:2になる。
なので、変更したほうが当たる確率が高くなるということになる。確率が2/6から4/6になるという話でした。ちょっと書くだけで、納得ですね。また、逆転していることもわかった。
SwiftUI @Observable データ監視・連携 マクロとは?
久しぶりにXCodeを立ち上げた。バージョンアップされていて、インストールもあり結構時間がかかった。この前作成していた、ドリップコーヒーを淹れるアプリを開いてみた。結構色々なことがしてあって、ファイルも分けてあって結構頑張っていたことがわかった。中でも、よくわからなかった@Observable、マクロを使うってのがイマイチピンと来なかったのだが、それが何となく見えたのでここに書いてみる。
豆の重さとか、淹れるコーヒーの濃さなどをデータとしてclassとして書いている。そのデータをどこからでも監視できるように@Observableとしている。何がマクロなのかわからなかった。@Observableにマウスを合わせて、Ctrl+クリックするとメニューが表示され(いつものリファレンスとか見えるのと同じ)その中の「Expand Macro」を選択すると、何とコードに色々追加される。自分では書かずにどうもこのマクロで書いてくれているよう。まだ勝手にやってくれてイマイチだが@Observableをつけると都合よく勝手にコードを書いてくれるというのが可視化されてわかった。これはトグルになっているので、もう一度メニューから選択すると表示されなくなる。
この前、使ってた時は、コードを予想してどんどん書いてくれた。これもまたびっくりしたのだが、またまた、SwiftUIはどんどん進化しているのを感じる。
React勉強中。これからはViteでしょうか?
FigJamのWidget(縦書き付箋)を作りたくて、Reactを勉強し始めてみた。参考書は「モダンJavaScriptの基本から始めるReact実践の教科書」を購入した。評判はとっても良かったのだが、ちょっと古かったかもしれない。
Macに、Node.jsとVSCodeはインストールしてあったので、Reactの環境は、参考書通りに「npx create-react-app」 で作成した。始めた頃はエラーもでなくで普通にできたのだが、最近いつの間にかエラーが出る様になっていた。何もわからずに、書いてあるのもをそのままコピーしてやっていたが、うまくできなくなっていろいろ調べることになった。エラーのメッセージが出てくる。どうも英語でちゃんと読めばそんなに難しいことはないのでわかるのがだ、ちょっと面倒でそのままにしていると、そこでストップする。
エラーメッセージから考えると、どうもReact19になってエラーが出ていることがわかった。強引にビルドして、エラーが出ているのに構わずブラウザに表示させてみると、「Module not found: Can't resolve 'web-vitals'」のエラーが表示される。調べてみると、まあいろいろ出てくる。
とりあえずModuleをインストールしてみるかで「npm install -D web-vitals@latest」とやってみたところ。なんとエラーは消えてReactの最初の画面が表示された。簡単に解決。
いろいろ調べる中で、「create-react-app」がしばらく更新されていないことがわかった。「Vite」を使いなさいとのことです。やってみるとViteの方が速いですね。Viteは
「npm create vite」でローカルインストール後に「npm install」をやらないと「node_modules」がインストールされないんだけど、なんだかんだと結構速い。こっちなのかもしれない。ポートも変わっているけどVSCodeを使えば構わず使えるし、いいかもしれない。
まずは、React実践の教科書を読んでやってみます。
Mac MiniにTypeScriptをインストールしてみた
Figmaのプラグインを作ろうとして、TypeScriptを入れてみた。JavaScriptもよくわからないのに、やはり引っかかった。
環境として必要なのは、まずVSCodeでこれは使っていたので簡単にMSからダウンロードしてMacにもインストールできた。日本語化もしてすんなり終わった。次に、Node.jsこれは、JavaScriptを動かしてみるときに、ローカルのサーバーとして必要なのだそうだ。これもサイトから通常ダウンロードしてインストールも簡単に終わった。これでnpmというコマンドが使えるようになったのでTypeScriptをインストールすることになった。コマンドは、
「npm install -g typescript」
ところがこれがエラーが出てインストールできない。
エラーは「permission denied」でディレクトリを作るときに出ている。そのときのターミナル画面をコピーすると
+++++mac@+++++Mac-mini ~ % npm install -g typescript
npm ERR! code EACCES
npm ERR! syscall mkdir
npm ERR! path /usr/local/lib/node_modules/typescript
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/typescript'
npm ERR! [Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/typescript'] {
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'mkdir',
npm ERR! path: '/usr/local/lib/node_modules/typescript'
npm ERR! }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.
npm ERR! A complete log of this run can be found in: /Users/+++++mac/.npm/_logs/2023-12-24T08_27_12_043Z-debug-0.log
いろいろ調べてみると、関連ディレクトリのパーミッションを変更するとの事だったが、面倒だったので、sudoでやってみるとあっという間にインストールが終わった。なんて事なかった。MACでもsudoが使えることが分かった。この後関連ディレクトリで問題が起こるかもしれないが、まあできた。
tsc -v でバージョンを見てみるとちゃんと5.3.3がインストールできたことが分かった。
インストールはできたけど、VSCodeでどうやって使うのかはまだまだだ。