Falconの思うままに

PASCAL好きが、気ままにマニアックなネタを

CodeTyphon Pas2jsを使ってみる。

さて,CodeTyphonを遊べる環境がなんとかできました。

というかWindowsにインストールする分には何も困らないのですが、

クラウド上のデスクトップ環境に入れて使う!」

という目標を達成したということです。

「かつ実用的!」も入ります。

 

これまでX2Goを使っていたのですが、ちょっともっさりでして、

気になっていました。 X2GO最高!だったのですが、

リモートデスクトップにしてみました。

すると意外と使えるとなりました。

実はウインドウマネージャーを替えてみました。LXDEを入れました。

MateやUbuntu純正(名前忘れた)を試したのですが、LXDEがしっくりきました。

軽いのですかね。

リモートデスクトップはマルチディスプレイにも対応していて画面が広く使えますね。

なので、CodeTyphonを動かしてみてデモを開いてみました。

ここでPas2Js関係のデモに注目です。

これはつまりTMS WebCoreのAlternateなんですね。Freeな環境です。

PascalJavaScript+HTMLにしてくれます。

動かしてみるとTMS WebCoreの基本機能相当はできています。

ラベル、ボタン、タブ、画面切り替え程度ですね。

そもそもTMS WebCoreもPas2Js使ってますからね。同じものかはわかりませんが。

 

結果は悪くないですね。 実行するとブラウザが立ち上がり確認できました。

 

ただしデモの初期インストール位置はパーミッションにひっかるので

適宜調整くださいHomeに持ってきて実行がいいかも。

 

デモファイルは豊富にあり、本腰をいれたいならデモファイルをあされば

光が見える気がします。

深く知りたければコードを読めですね。

 

そもそもLazarusとCodeTyphonは同じことを別のプロジェクトでやってる

感じで関係性はわからないですが、Lazarusのほうがエディタが使いにくい

ので、CodeTyphonを使っているだけですけどね。

Lazarusのほうがメジャーなんですかね。

CodeTyphonはDelphi->Lazarusときて、さらに知る人ぞ知るですかね。

IDEは日本語もあるので、どなたかが貢献してくれていると思います。

ただある時点から更新されていなくて新機能は英文なので、

私も翻訳で貢献したいところです。

 

ではでは。

Qooxdooって何?

さて、「クークスドゥー」と読むらしいのですが、

Lazarus WebUI界隈で話がでていたので、調べてみました。

 

qooxdoo.org

 

ですね。何これ?(笑)なんですが、Web画面をコード記述で書けるみたいですね。

歴史は長く2010年には記事になっていますが、日本語情報は少ないですね。

サイトにいってデモを見るとなかなかいいですね。

LazarusのWebUIの使い方として、Qooxdooで画面を作って、WebUIで

バック側をPascalで書くようにした人がいたんだと思います。

確かにプログラマ向きです(笑)

そう私はデザインセンスないんで。

そうWebUIを使おうとするとバックはLazarus,Delphi,C#,Pythonなど何でもよさそう

ですが、フロントを書くのに困ったなと思いました。

するとTMS WebcoreみたいなFreeの物ないかと思っていたら

CTにもPas2JsのUIがあるんですが、C#の人は使わないだろうから、

Qooxdooどうかなと思っていました。

あきらめてHTMLで画面書けよなんですが.... 悪あがきしまくりです。

みんなそうなんでしょうな(笑)

 

ではでは。

CodeTyphonを探索中

さて、例のLXD上のMateで遊んでいます。

現在CodeTyphonがやっと入りました。

これを入れるのにコツがあります。 /etc/sudoersにおまじないを

書いてinstall.shを走らせないとコンパイルできません。

くわしくはCTのForumに書いてありますが、みんなそこではまっています。

DelphiのAlternateであるLazarusとは別系統であるCodeTyphonですが、

最新を入れてみました。CodeTyphonはMultiPlatformなのでソースからコンパイル

してIDEをいれるのです。(Lazarusもですが)

BigIDEを選ぶと大量のコンポが入りますが、何に使ったらいいのかわからないもの

もあります。まさにDiskの肥やしになってしまうのですが、

ちょっとは調べようと思っています。

PilotLogicのサイトにちゃんと説明があるので、見ない私が悪いのですが、

探索したらSynapseのページがありました。

みなさんSynapse知ってますか?

私は懐かしいです。昔の知り合いに会ったみたいな(笑)

 

github.com

 

現在githubへ引っ越してソースを公開してくれています。

このライブラリはとてもいいですね。

Delphiが非unicode対応だった頃、長いこと愛用していました。

 

それからちょっとわくわくするプロジェクトを見つけました。

WebUI系のプロジェクトです。

 

github.com

 

 

github.com

 

上記はラッパーらしいので、元はこちら

github.com

 

ということで、これは何? なんですが、

画面のUIはWebブラウザで作り、イベントハンドラなどは

バックにいる各種言語のアプリに伝わり、制御できるということでしょうか。

つまりバックエンドがコンソールアプリみたい感じかな。

通信はWebsocketのよう。画面はHTML5で書かないと駄目みたい。

バックエンドは通常RESTですが、そうじゃないみたいですね。

NodeRedとか用意しなくてもいいのかな。いつも通りのデスクトップ

アプリの画面だけHTML5になった感じかな?

じゃあ画面どうするのかなあですが、TMSWebCore使えばいいのかなあ。

 

ラッパーがPythonなどもあり、多言語に対応しているようで

広がりを見せています。

もうちょっと調べてみようと思っていますが、これはもしかして

もしかするとすごいものではないかと....(マイナーだけど)

 

私マイナー大好きですね

 

ではでは。

LXD+Dockerで遊ぶ

LXDでDockerの備忘録です。

 

さて、LXDの「おひとり様Ubuntuデスクトップ」で遊んでいます。

いじれるLXDが復活したのでとても楽しい。

 

既存で2つのLXDインスタンスが起動して、そちらは安定稼働しています。

NextCloudとNodeRedですね。合計3つのインスタンスを動かしています。

環境を汚さないLXDの運用はとても素晴らしいです。

LXD自体の運用があまり人気がないみたいですね。記事が少ない。

仮想好きな私にはたまらない環境なんですが....(コンテナですが)

それでLXDにMateをいれたので、そこにDockerを入れてみました。

昔書いた記事をみるとみごとに失敗していた気がしますが、

LXD内OSをUbuntu22.04にしたのがよかったのか、すんなり入りました。

母艦側で

    lxc config set docker security.nesting=true
    lxc config set docker security.syscalls.intercept.mknod=true 
    lxc config set docker security.syscalls.intercept.setxattr=true

を設定します。

この設定なぜかって? Canonicalに書いてあったからです(笑)

Docker本家からpgpキーを取得してapt installします。

Docker Hello-Worldを動かすと問題なしで、大きなプロダクトのn8nをDockerで

入れてみました。問題なしです。

デスクトップ画面はX2GOを使います。RDPのポートを開けずにSSH

だけで動くのが魅力です。速度も許容範囲でFireFoxLibreOfficeを入れて

GUI環境を動かしています。 vscodeも入りました。

クライアント環境もお一人様サーバーでできてしまいます。

 

話はかわりますが、OCI Always FreeのArmマシンはラズパイ4の三倍

速いベンチマークがでているそう。

体感的にもそんな感じです。明らかに速いです。

これが無料というOCIは大変ありがたいです。

でも日本のリージョンは満杯でずーと取れないそうですな。

私は開始直後だったので運がよかったです。

だから活用記事も少ないのかな。

プロはAWSでしょうから。やはりちょっとマイナーを行く私らしい選択です。

Pascal好きでOCIやっているなんて人います? 連絡ください(笑)

 

LXDのトラブル

さて、安定稼働のおひとり様サーバーですが、

デスクトップ環境もLXDで持っていました。

ubuntu mateです。

使わない時は停止しておいたのですが、

久しぶりに使おうとしたら起動しない(涙)

zfsのストレージpoolが見つからないと言ってきました。

確認すると物理ファイルファイルはあるんですよね。

zfsのストレージpoolを作るのは私にとっては骨が折れます。

何度も再作成しても、再起動するとマウントされず、

見つからないんです。

zfsをBootデバイスとは別のvolumeに作ってあって、

それを使おうとしているのですが、これが悪そう。

OCIはBootボリューム以外にも200G(?)もらえるのですが、

びびりで100Gもらっておいています(汗)

そこへzfsのpoolを置いて置いたのですが、

どうも調子が悪い。

しようがないので、最悪の選択と言われている

ストレージタイプ「dir」を選択(笑)

まあお一人様だから許してください。

これだとしっかり動きました。

なんなのだろうか。既存のzfsは問題ないのに。

 

というわけで、zfsとdirという混在でLXDを使うことになりました。

コンテナのosがUbuntu 20.04だっだのですが、

Ubuntu 22.04にしてみました。親のOSが20.04ですが、コンテナは

22.04です。こういうことできるんですよね。

VMWareでもWindows10上にVMでWindows11を入れる

みたいな感じですかね。

まあ独立しているんで問題ないのでしょうが。

デスクトップ環境はいろいろ実験的ソフトを入れて

遊ぼうかと思います。

VPN内でどこからでも遊べます。

これがお一人様サーバーのいいところですね。

ではでは。

 

HomeAutomationを頑張る

さて、一息ついたのでHomeAutomationマニアでもある(笑)ので

HomeAutomationを進めていきたい。

現在はメーカーが作った画面を押しているだけです。

 

SwitchBotを数多く持っています。このメーカーいいですよね。

リモコンで家電操作と、ドアロックは毎日活躍しています。

 

値を取ってきて何かやりたいというと

HomeBridgeというのがあるみたいですね。

SwitchBotプラグインがあるそうで、その方面では有名みたい。

 

なので、そちら方面にも明るくなるように頑張ってみます。

 

ではでは。

Ubuntu22.04でsshログインできず。

さて,UpgradeしたUbuntu 22.04ですが、またもや不具合が発覚しました。

一難去って、また一難です。

OCI Cloudのサーバーで起こりました。

なんとSSHでLoginできない。(涙)

 

「おいおいすぐに気づくだろ」と思うでしょう?

OCIはコンソール接続していたのでわからなかったのです。

そうUpgradeはコンソール接続というのは鉄則だと経験しました。

OCIのログインはSSHの公開鍵と秘密鍵でやっていたのですが、

暗号化をrsaでやっていたのですが、Ubuntu 22.04はrsaが入らなく

なったよう。

そうだったよなと思いまして公開鍵の作り直しとなります。

ed25519で生成します。

OCIのコンソールにて

ssh-keygen -t ed25519

で公開鍵が生成されるので。

authorized_keysに入れます。

同時に秘密鍵のファイルが生成されるので、

これをローカルへ持ってきます。

ここはどうやって? となるのですが、正式には盗聴されない

方法でというお約束みたいですが、

そんなこと言ってもなので、秘密キーを表示させてコピーして

ローカル側のテキストファイルにペーストすればOKです。

この時ファイルをshift-jisのLF改行で保存しておきます。

気を回してUTF8とかにすると読めません(Rloginの場合)

 

自宅のラズパイはなんで動いたんだというと、

パスワード認証だからでした(お~い)

VPNのClientが動かなくなり再コンパイルしました。

いろいろありますね。

良い子は更からインストールしましょう!!(笑)

 

ではでは。