miのニュース機能に英語ニュースを追加

元々miのネックスピーカーには仕事開始などの定時時報機能を入れているし、定時に合わせてメール件数やニュースサマリーを読み上げる機能はつけていて、それなりに便利に使っている。ただ最近やっぱり英語は慣れていくべきだなと思い立って、英語ニュースのヘッドラインの読み上げも機能に追加した。まぁ単純に英語ニュースヘッドラインの無料APIを呼び出して、今の読み上げ機能に送り込む形なので難しくはないのだが、どのタイミングで流すのがよいのかはちょっと検討中。

日本語ニュースヘッドライン読み上げとランダムで切り替えるとかもありだけど、ちょっと悩み中。どちらにしても音に慣れるべきだろうとは思うので。

将来的には現在のマウス/キーボード状態の検出で、手が空いたときや集中をかいているときに流れるようにするのが理想ではあるのだが。

ToDoその後

野暮用をしつつToDoのツールは細かく改良は続けてる。属性フィルタを付けたりすると結構朝のToDo選択/整理もついたりしてよい状態。

最新の改良はToDo分割とTrelloとの連動。ToDoは粒度が粗くなったり細かくなったりするものなので、細分機能は必要に思えるのだが、そこまで管理するとToDoがまとまらなくなって面倒くさくなる。なので細分時にTrelloと連動させて問題解析にフォーカスを与えるとともに、細分タスクを完了したら自動で元タスクが復活する仕組みを組み込み中。面倒さを減らす動的部分を入れたのでおそらく面倒にはならないと予想しているが、まぁチューニングしてみる。

tsed v6にアップグレード

mi-serverに認証用の処理を加えていたのだがどうも安定しなかったので、使っていたtsed v5をv6にアップグレード。コミットしてプロジェクトのまるごとコピーを作って、ブランチ切ってソース類を一旦削除してtsed-cliで最新ベースで起こしなおして、Server.tsを調整しながらコピペして、その後、主なソースを一式プロジェクトにコピーしなおして、細かいエラーを調整(一旦lintはオフ)

半日くらいで動く程度には修正完了。動きが安定しなかった認証周りも安定しだしたので結構よかった。

mi-serverは実験的に使わないコードも山ほど貼ってるのでそのあたりも少し整理できた。まぁアップグレードでそれなりに引っかかった問題もあったので、解決に役立ったURLをとりあえず一覧(tsedの話というより、npmパッケージの話が多かったが)

socket.ioのバージョンが上がってた
https://stackoverflow.com/questions/66047026/socket-io-v3-unsupported-protocol-version-error

https://stackoverflow.com/questions/43772830/access-control-allow-credentials-header-in-the-response-is-which-must-be-t

firebase apiの初期化方法が違ってた。
https://github.com/firebase/firebase-admin-node/issues/522#issuecomment-490292521

スクリプト起動時の環境変数指定
https://qiita.com/riversun/items/d45b26f4a7aad6e51b69

その他 passport.js関係をいろいろ確認中

Miその後

少し地味な拡張なのだが、ToDo管理の部分が実用に耐えるようになってきたので、ローカルからサーバー側に分離して配置。これで屋外からスマホでToDoの追加や確認もできるようになってきた。ちょっとセキュリティは甘めなのだが、個人用途のToDoとかクラックされても泣くようなものじゃないし。

node-redは思った通り使い勝手がよく、すでに使っていたスマートホーム用の電源コンセントの統合制御に使い始めている。Mi-Server経由で統合しているので単純な時限操作だけでなくネットスピーカーと合わせて結構細かい制御もできている。電源状態をひとめでグラフィカルに確認できるようにしたので結構かっこよい。PCの消し忘れも警告できるようになったし。スマートホームコンセントは少し買い増そう。

ToDoは含意を含んでもっと解析的に利用することを検討中。別途ネックスピーカー側のI/Oについても拡張は検討中。

node-red

先週末にいろいろ試してみたものはipfsだけでなく、node-redも少し試していた。

個人用PIM環境の制御用にガチのtsコードだけでなく、手軽にビジュアルプログラミングを組み入れたいと思っていて、前々から検討しようと思っていたのだが、ようやく触ったところ。

落とし所が現実的なので結構気に入った。

ビジュアルプログラミングはPrographとか触ってみて(別途仕事がらみでScratchも少し触った)、はためにはすごそうに見えるのだが、じゃこれだけでプログラムを書こうと思うと、とんでもなく面倒なことになる。

こういうチャート的にプログラム出来るところの切り分けは「その指示が1文で完結する」「用語に揺らぎがない(各語が何を指しているのか自明に明確)」だとうまく回る。

つまり短い手順で完全にマニュアル化が出来ているものについてはビジュアルプログラミングは有効だ。

RPAとか(古くはAIもどきのプロダクションシステム)も導入しようとすると、その前に業務がタスク化できていない的な問題で頓挫するものだし。

自分の目的用には、適用する部分をきちんと切り分けて、Mi-Serverへの指示制御に限定して、複雑な部分はMi-ServerのAPIでまとめれば、node-redのチャート制御で細かいところがまとまるだろう。

[git]結局、認証の設定がおかしかった訳

最近またgitの認証が変なところでエラーが出るなーと思っていたら、結局はWindows全体の認証設定が何か変な状態になっているのを思い出した。

ここの汎用資格情報というリストに別アカウントのgithubの認証情報がやまほど並んでいた。。。道理でいくら外から設定しても変なエラーが出る訳だ。。。

でも以前いろいろ調べて、この画面まではたどり着いたことがあるので、知ってたはずだがすっかり忘れていたというか。。。

とりあえずToDoをスマホへ

やっぱりToDoみたいなものはスマホでやれないといろいろ不便。MS todoからGoogle todoに持ち込んだものの、Googleのtodoは今日のタスクの処理ができないので作ってたPC用のToDoをスマホに持って行くのは当初から予定でした。だからVuetifyベースで作ってたという話もあるわけで。

先日のサービス処理部をラズパイへ持って行ったのも、どこからでもToDoを処理できるように24時間動かしても問題ないようにという話だったし。

でも意外にラズパイの調整も手間取って、いろいろネットを調べつつ最低限のセキュリティとかLEDを消しとくとかcorsや混合コンテンツの問題を回避するためにlet’s encryptを貼るとか。で、なんとかスマホに移行。

残念ながらUnityのwebGLは動かなかったがまぁこれは仕方ない(スマホで動かれても電池が厳しいし)

でも以前作ってたkonva.jsのグラフィックのほうはそのままで動いた。

これでToDo部は一段落できるかな。PIM本体部分の強化に入りたいところ。

MiServer部分をRaspberry Piに移行

構想通りに個人管理アプリサービス部分をラズパイに移動。

ラズパイそのものは1,2年前に秋葉原に行ったときに買ったもの。どうも自分が衝動買いしたものは、数年放って置いた後に思い立って使い出すものがなんとなく多い。

アプリの移植はnodeベースなので思ったより簡単に移行できた。意外に面倒だったのはサービスアプリにつなぎに行く周辺アプリ群のエンドポイントURLを決め打ちにしていたものが多かったので、そこをきちんと設定ファイルやアプリ引数に出すところ。この付近はUWPとかは勘所がつかめてないので微妙に面倒。。。

まだ一部アプリが対応できていないけど、とりあえず今年はコロナで帰省もないので徐々にやるかね。