Wednesday 29 September 2021

お金とやる気

まぁ、ね。この報酬とやる気の問題は、TED でも見た気がする。

  集中した大量生産

と、今の世の中の需要である

  勝率の低い多様性からの爆発的成功

みたいなところかな。特に、やりたいことに制約をつけているわけでもないが、

  学生の発想の狭さ

みたいなのがあって。

  学生が一番保守的

というのが謎なんだよな。自分たちのマイコン時代んのはちゃめちゃさとは違うけど

  今の時代でも多様性が肝

なんだが、お金では買えないものかもな。

今の仕組みは長田先生が考えたものだけど、いろいろ、どうしようもなく変わっていくんじゃないかな。

また、シス管を三年生の実験に戻したい気もする。院生を割り当てるのは少し違う感じ。

Tuesday 28 September 2021

Foundation on Apple TV+

まあ、そんなに期待せずに。とかいいながらApple TV+の契約は延長したんですけどね。

原作の第一話にほぼ沿ってるわけなんですが、いろいろ変更とか付け足しが。

そのあたりを無視すれば。でも、演説はそのままやって欲しかったかも。

ガールと博士はそれっぽかったです。

Prime radiant も、あんなもんかな。数式みたかった。

口直しに原作の演説も読み直したけど、そもそも若い頃の作品でいろいろ無理があるんだよな。

原子力のあつかいとか、ワープのあつかいとか。

Foundation

Sunday 26 September 2021

いろいろ壊れるシリーズ

iPhone ケーブルが... とか言ってたら、

  どうも、iPhone 7+ 側の受け口が怪しい

いや、まぁ、買い換え時ですけどね。

Air Mac Express に down grade したが

  一部ネットワークがつながらなくなる

たぶん、NAT table のあふれではないかと。で、

  QNAPをルータに使うのは?

なんだが、QNAP側からケーブルネットの gateway につながらない。NICがいかれてる感じ?

NICつなぎ換えると、Modemを再起動というパターンなので、試すのがめんどい。

8 port hub で足りなくなってるし、機材も増えたので Yamahaのrouterでも欲しい気もするが、割と高いのね。

あと、11b な Fax を処分したいんですが。

Saturday 25 September 2021

最近の ingress

毎日来る緑のエージェント... まぁ、向こうもそう思ってるとは思うんですけどね。通勤路だから。

割と休みの週だったのか、なんとなく緑が元気で... じゃぁ、夜中の9時に石嶺と琉大と結んで終わりと思ったら、

  沖国の中からリンクが...

あらら、まだ、いらしたですか。

それが昨日の夜だったんですが、結局、今日、少し小さく結びなおしてとやってたら、

夜、10時から落とすですか。御苦労様です。

なんか、微妙に手加減するんだよな。まぁ、お好きなように...

帰り道の寄り道がはかどる ingress です。

Friday 24 September 2021

Rails Programming 終わり

いや、まぁ、Rails 側はそんなに難しくないだろと思ってはいたんですが、

  難しくないだろとできるの間には、3光年

ぐらいあるわけで... Rails 6 に上げたので少し変更があったのと、

  puts すれば、そのまま podman logs に出る

とわかったので、それから1時間くらいでできました。(そこまでのテスト環境整備とDB接続とRailsの理解に時間がかかった)

  ip_addreses table に User と FQDNとIP addressと MAC address が入ってる

ので、そこから PowerDNS 用の table を生成してやるだけ。削除も before_destroy hook で良いらしい。

同じ DB 内なら has_many: とかで削除は自動的にやってくれるが、別なDBなので hook で手動削除。

まぁ、Akatsuki と PowerDNS は緩い結合の方が良いだろう。どっちかすてられちゃうかもな。

Akatsuki は、

  昔のあっちーの作った CGI な奴から、Atton が Rails になおして、それに手を入れて

みたいなのものなので大切にするかくらいです。

昔の面子の誰かがいたら「Rails、複数のDB扱えるみたいだよ」くらいで、三日でできてた気がする。

でも、それを自分で復習してみるのも、まあ、楽しい。

今回のは

  PowerDNSとPowerDNS adminとPostgresql

をコンテナで上げる。

 それを外向き内向きの二つ用意
 recursorを用意する

Akatsuki の開発環境を準備して

 Postgresqlに共存させる
 PdnsのDBからAkatsukiにgrantを出す
 Akatsuki にPdnsのDBを接続
 Akatsuki に処理を追加

ってな感じ。お疲れ様でした。いや、まだ、置き換えてはいないんだけど。

Thursday 23 September 2021

東南植物楽園

もしかすると、20年ぶりとかかも。なんか朝ご飯あるとかで。

バスでいこうと思うと、高速バスから歩いて30分。

確か母と来たなとか思うけど、

  変わってね〜

ま、それも悪くはないな。Botanical っていうのね。

-

Wednesday 22 September 2021

Rust String, &str, OsStr

Rust は、もうやめようと思ってて。あまりにも理不尽。

  pub(crate) fn build_file_tester(name : String , size : u64) -> Result<FileTester, Error> {
    match File::create(Path::new(name) {

が全然通らなくって。OsStr がどうとかいうんだがまったく通らない。Java も new String(s) 連発ってあったけどな。

全部、&str にしろ

  pub(crate) fn build_file_tester(name : &str , size : u64) -> Result<FileTester, Error> {
    match File::create(Path::new(&name.into())) {

って書いてあって、それが正しいらしい。でも、

  pub(crate) fn build_file_tester<S>(name : S , size : u64) -> Result<FileTester, Error> where S: Into<String> {
    match File::create(Path::new(&name.into())) {

という具合に Generic で受けるという手もあるらしい。そうすると、String を値にしても通る。

さらに

  camel name を snake name にしろと、文句言ってくる

file name / module name をそうしろってわけか。いろいろ、うるさい。

いまいち、便利じゃない Result に「値を見ろ」と強要されるのもな。

Tuesday 21 September 2021

Rails 続き

そもそもテスト環境を作るのにてこずって。ローカルに DB/Rails と立てても良いんですが...

  Main の nginx に転送されてしまう

ってのが良く分からなくって。なんだが、どうも、それは DB に接続できなかった時の fall back のだめなエラーらしい。

結局わかったのは、

  podman -v hoge:fuga で diectory を mapping する時は、両方、絶対パス(/ から始まる)

ってっことで、これを間違えてたので config が古いままで、DBに接続できなかっただけ。そもそも、

  config に IP address をハードコードしてあって、環境変数で変えられない

ってのがだめだったらしい。それを乗り込えたら動いたんですが、次は

  PowerDNSのDBを、Rails の Active Record にする

どうも、Multi Database がちゃんと動くのは Rails 6 かららしく、またまた、Rails の version を上げることに。

ところがさっぱりわからん。どこで、どうやって DB と ruby がつながるわけ?

  classs LocalRecord と table local_records と class local_record の関係は?

なんだが、config/databbase.yml に複数のDBを書いて、

  development:
   main:
    database: akatsuki
   pdns:
    database: powerdnsk

その名前で、

  rails generate scaffold Domain name:string --database pdns

とすると、table domains が class Domain と class PdnsRecord に生成されるらしい。犯人はお前か。

table の grant が出てないとかもあったんですが、これで動いたんですが... どうも、

  app/models/pdns_record.rb
  class PdnsRecord < ApplicationRecord
   self.abstract_class = true
   self.inheritance_column = nil
   connects_to database: { writing: :pdns, reading: :pdns }
  end

を作ってやれば、それで良いだけらしい。これで、pdns database から、

  勝手にいろいろ調べて勝手に名前を変えて生成するのが Rails

ってことがわかりました。これでDBは接続終了。あと、もう少しだ。

 

Monday 20 September 2021

Rails Gemfile

Rails 側ですが、DB変更したのに .yml にハードコードされてる部分があって、build しなおし。

rails console

して

[1] pry(main)> LocalRecord.first
  PG::ConnectionBad: FATAL: password authentication failed for user "akatsuki"

だめじゃん。

ところが、 なんか、またライセンスがなんとかとかで version が。5.2.4 がbuildできない。

こいつを 5.2.5 にすれば良さそうなんですが、

 Dockerfile は Gemfile.lock がいるが
 それには、bundle update が必要

ってわけなので、今の image から bootstrap する必要がある。

podman exec -it で中に入って、中で budle update

しかし、今度は

 nodejs がないおっしゃる

で、それは apt install してやって...

あぁ、でも config file がなおってないぞ。なんで。

Sunday 19 September 2021

窓の地図

こんな風に街の構造はできていくんだなって感じ

西原のバスの終点で、ほとんど廃墟みたいな店の窓ですけどね

ここを起点にガンガンCF作ったが

  いつもの緑のエージェントが落としに

御苦労様です (_ _)

Saturday 18 September 2021

マッドマックス 怒りのデスロード

原題は Fury Road らしいんですけどね。なんか、twitter で良く見るんだが、ネタがわからなくって。

 Mad Max FR はフェミニズムな映画だというが、それは違う

ってのを見かけて、やっぱり観ておくかということに。Netflix 4K です。英語字幕なし。セリフ関係ない映画だったが。

これが思った以上のバカ映画でな〜 いろいろ宣伝見ると北斗の拳っぽいよな、なんだが、

 完全にそれじゃん

あたたたた、が出てこないのが残念なくらいですよ。

フェミニズム云々は、要塞都市から脱出するのが女性組なので、そういうことなんですが、話はまったく違う方向に。

 そこから引き返すのか! 本気ですか!

いや、そこから、そのエンディング? ありえんでしょ。なに、オバーは安からな顔してるんだよ。

なんか、ぼーぜん、という感じで見終わったんですが、あとで感想を妻に言ってたら思い出して大爆笑してしまいました。

好きなタイプの映画ではないが、あのマスクは最後までとれないって方が自分の好みかもな。

https://www.netflixreleases.com/mad-max-fury-road-2015/

Friday 17 September 2021

シス管マグネットシール

なんで、こんなものがあるのかが謎

就活関係か?

Thursday 16 September 2021

PowerDNS/Admin on PostgreSQL 書き換え終わり

まぁ、2日で書き換えられたので良しとするかな。

podman の image 作りにだいぶなれた。ただ、

  しばらくすると忘れてしまう

のがね〜 とはいえ、この手の install 作業が Dockerfile と起動スクリプトに残るのは良いのかも。

なんか、一番分からなかったのは、python3 の postgreSQLのconnectorだったかも。psycopg2って名前がそもそもひどい。

あと、MySQL でも動いてなかったっぽい

  database なかったら作る

ってのが

echo "SELECT 'CREATE DATABASE ${PDNS_gpgsql_dbname}' WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = '${PDNS_gpgsql_dbname}')\\gexec" | $POSTGRES_COMMAND

ってのらしく。sh から食わせないとだめらしい。\gexec を使わないとだめなのね。

今朝はまってたのは、-v で mapping する時は full path ってやつでした。なかなか、なれないな。

 # ( cd pdns-psgl ; podman build -t pdns-pgsql . )
 # podman run --rm --pod extpdns --env-file env-conf/external/env-powerdns2.conf --name pdns-ext localhost/pdns-pgsql

こんな感じで、build しては run ってのを繰り返してました。pod 5つ。

Wednesday 15 September 2021

PosgreSQL と MySQL

PowerDNSがMySQLで、RailsなAkatsukiが PosgreSQLで困っているわけですが...

なんか、最近は pgsql の方が mysql よりも評価が高いらしく。それも、

  絵文字のサポートが pgsql の方が良い

という理由らしい。WordPress な人たちが mysql から pgsql へ移行したって話です。

PostgreSQL は、前身が Postgress で、その前が Ingress。QueryはSQLではなく equal だった。
大学発のソフト。開発言語はC。

mysql は96年からなのでC++なんだが、割と残念なコードでなぁ... 5千行の関数とか...

その辺で絵文字サポートの差が出たかもしれないです。

まぁ、どっちも古くさいが、SQL base だと生き残ってしまう感じか。

sqlite3 はアプリ内蔵としては標準になったので、それでいいじゃん説も。

Tuesday 14 September 2021

podman-compose and podman pod

PowerDNS はinternal/externalと二つ上げる必要があるんですが、

 docker image が mysql db 一つを想定してる

学生の良くある「1,2 ... 動きません」だな。なので、db を copy しておいて

  mysql -u root -p
  create database extdns;
  use extdns;
  GRANT ALL ON *.* TO powerdns;

で、許可を出してやると良いらしい。そこで気がついたんですが、

  二つ目が port 53 already used

とかいう。つまり、podman-compose では ip-address / port の空間は共通らしい。

そこで、pythonなんかで書いてある podman-compose は見捨てることに。

やっとわかったんですが、pod を別にすれば ip-address / port の空間は別になるわけね。

つまり、pod と ip-address / port の空間は一対一と。

内向け
  podman pod create --name powerdns --network pdns-br350
  podman run --pod powerdns --env-file env-conf/internal/env-mysql.conf -v Mariadb:/var/lib/mysql -d mariadb --net-read-timeout=2000 --innodb_use_native_aio=0 --innodb_flush_method=fsync
  podman run --pod powerdns --name powerdns-pod --env-file env-conf/external/env-powerdns.conf -d pschiffe/pdns-mysql
  podman run --pod powerdns --name powerdns-admin --env-file env-conf/external/env-admin.conf -d aescanero/powerdns-admin

外向け
  podman pod create --name extdns --network extpdns-br350,extpdns-br48
  podman run --pod extdns --name extdns-pod --env-file env-conf/external/env-powerdns2.conf -d pschiffe/pdns-mysql
  podman run --pod extdns --name extdns-admin --env-file env-conf/external/env-admin2.conf -d aescanero/powerdns-admin

という感じ。いや、BIND9なら一つですむんですけどね。

pod で作れば k8s の yaml も吐いてくれるらしい。

これで、 internal/external が mysql 一つで動きました。mysql も別で良いなら podman-compose でよい。

まだまだ、続くわけですが...

Monday 13 September 2021

ワクチンバス

てだこ浦添ゆいれーる駅から、コンベンションセンターまでらしく。

「これって誰でも乗れるんですか?」「はい!」

と、バスガイドっぽいネーネーに言われました。が、行きたいのは大学なので役に立ちませんでした。

昼間に一時間に一本。途中下車できれば便利そうだな。

乗ってる人は未ワクチンな人ばかりだがいいのか?

Sunday 12 September 2021

PowerDNS 動いた

結局、podman-compose が環境変数を docker-compose.yml から取れないという問題だけで、

pod毎に env_file を用意するという方法でできました。

  export PDNS_api_key=hoge

のように環境変数を設定するのだが、

  export PDNS_API_KEY=hoge

とかが入っていると、

  atal error: Trying to set unknown parameter 'API-KEY'

と言ってくる仕様だった。めんどくさくて、一つのファイルで環境変数を設定したのでそういうエラーになったらしい。

GUIポチポチになるので、うれしいかも知れない。

でも、うちは Akatsuki と連携させることになるのか。

なんですが、mysqlからpostgresqlへの移行は、docker image 作り直しってことになるらしい...

どうしようかな。逆に postgresql から mysql にするか?

1年次と一緒にやってるんだが、超優秀で素晴らしいです。

Saturday 11 September 2021

PowerDNS

そんなわけで、次は PowerDNS なんですが、podman-compose でなかなかあがらない

url = https://github.com/aescanero/docker-powerdns-admin-alpine

ここを参考にするわけだけど。

  ERRO[0000] "cannot listen on the TCP port: listen tcp4 :53: bind: address already in use"

とか言ってくる。学生に言われて気がついたんだが、いきなり、port: 53:53 とかあって、ubuntu のDNS cache にぶちあたってる。

podman に network を割り振るから、そういうことされては困る。podman-compose に network を割り振るから、それは消す。

で次は、mysql に接続できない。どうも、podman-compose だと .env と環境変数両方が必要ならしく、しかも、.env側は double quote なし。

いろいろすったもんだしたんだが、

podman-compose --podman-run-args "--network pdns-br350" -t cntnet up

で、cntnet と network 指定の両方を使えば良いらしい。これで、Web console まで見れたんですが...

  
  Sep 11 12:43:08 Loading '/usr/lib/pdns/pdns/libgmysqlbackend.so'
  Sep 11 12:43:08 This is a guarded instance of pdns
  Sep 11 12:43:08 Fatal error: Trying to set unknown parameter 'API-KEY'

これが意味不明。でも、これを片付ければ、まぁ、動きそう。ただし、

  mysql/mariadb を postgresql

にするのはあまり簡単ではないっぽいです。一応、サポートされてるんだけどね。

Friday 10 September 2021

無料サービス券

全然、お店が開いてない中でがんばってる和風亭。

 ドリンク無料偉いじゃん

と思ったら、ノンアルコールビールには使えません。え〜

ま、少し余計に頼むかくらいなので、文句はありませんがね。

Thursday 9 September 2021

まだ、動かない freeradius / Wifi認証

やっぱり、PEAP/EAP-MSCHAPv2 でないと Windows のWifi認証は動かないらしく。PEAP/EAP-GTC は Cisco の奴で

  マイナー

らしい。まぁ、GTCで通るってことは、LDAPまでは通ってるわけで。DHCPは動いたし。

あと、もう少しだな。Windows10側を EAP-GTC にしてもらうという手もあるが...
	update {
		control:Password-With-Header	+= 'userPassword'
#		control:NT-Password		:= 'ntPassword'
                control:NT-Password             := 'sambaNTPassword'
                control:LM-Password             := 'sambaLMPassword'
くらいで動きました。動いてるときとそうでない時のlogを見比べたら一発だった。

Wednesday 8 September 2021

freeradius and ladp / eap

動いていると思ったら全然駄目で...

radiusd: FreeRADIUS Version 3.0.4, for host x86_64-redhat-linux-gnu, built on Mar 5 2015 at 23:41:36



radiusd: FreeRADIUS Version 3.0.23 (git #339e8ac), for host x86_64-pc-linux-gnu

で、まったく config が違う。config を sql でマクロ的に書き換える魔術系らしく...

+++ b/mods-available/eap
@@ -898,7 +898,8 @@ eap {
# as that is the default type supported by
# Windows clients.
#
- default_eap_type = mschapv2
+ # default_eap_type = mschapv2
+ default_eap_type = gtc

でも、これで LDAP の認証の方は通った。

DHCP側が闇です。なんで、sql 呼んでくれないの?

Tuesday 7 September 2021

PowerDNS

これを片付ければ Centos7 から、おさらばできるわけですが

  PowerDNSの docker image は mysql

しかし、Akatsuki の rails は postgreSQL 。世の中は、mysql から postgreSQLな流れらしい。(絵文字の関係っぽい)

ま、絵文字なホスト名とかでなければ。

PowerDNSは全部のデータをDBで持つらしく、既存のから AXFER で移行しろとかある。うむ。

PowerDNSのDBを rails に接続するってのを思いつくが既にあるらしい。ただし、最新、commit は 2015。

ってことは、

(1) AkatuskiのDBをmysqlに
(2) PowerDNSをその上で動かす
(3) PowerDNSのtableを Active record として登録
(4) Akatsukiのプログラムをそれに合わせて改修

やりたくない気もするが、難しくもないか。

https://github.com/kennethkalmer/powerdns-on-rails/

Monday 6 September 2021

与那原のingress

ingress な話。ワクチン打った後、特に何も起きないので普通に ingress なわけですが...

バスが割と不便なんだよな。それでもてだこ駅からのが増えたので乗り換えに700m歩くとかはなくなったんですが...

346を終点まで行ったら、期待した与那原ビーチとか関係ない山奥に連れていかれました。なぜか安室という地名。

それでもポータルがあったのが不思議。そのままバスで折り返しても良かったが、20分歩いて与那原へ。

戻りもさらに20分歩いて第二西原とか。むしろ南風原方向経由とか泡瀬経由の高速バスが Google map だと出たりする。

翁長と棚原(たなばる)の乗り換え300mってのもなんとかならんのか。長田の98と90の乗り換えほどではないが。

このあたりを頑張ると yentyo と punichanko とつながるので... 先週末は青が頑張っていたらしい。

Sunday 5 September 2021

すっころんだ瞬間

なんか、iPhoneの動画が撮れていたらしく。

まぁ、この程度のことは Ingress Agent には良くある。

傘の中に iPhone がおっこっただけですけどね。

Saturday 4 September 2021

お葬式とワクチンと流星

ばっちり重なってて、午前中ワクチン(2回目)打ってから、新港というパターン。バスが1時間に一本か。

なんとなく、持ってきたんですが「誰も知らないのかよ」まぁ、そんなものかも。

お葬式中は別なものをつけてました。

帰りに、新港のポータル取ってたら堤防を降りる時にすっころびました。

カバンも一緒にすっころぶわけだが、割と無事。中身も。さすがだな。

特に熱とか調子悪いとかないです。明日からとか脅されましたが。

Friday 3 September 2021

コロナのワクチンと地域

日本の流行とか米国の流行とか議論している人も多いんだけど、もう少し細かく見ないとね。

NY Timesだと米国の地域別なのが載っていて、これが見事に

  ワクチン接種率と新感染者数が相反

世界地図の方は、粗すぎてな...

まぁ、反ワクチンな人はこういうのは見ないだろうし。

日本は、こんな風に地域差は出ないんでしょうけど。

Thursday 2 September 2021

Ruby on Rails / Akatsuki / IPv6

atton がRoRで書いた IP address / VM 管理サービスだったりするんですが、そういえば、

  IPv6 は EUI64 つまり、MAC address 生成で良い

とした記憶はあったんだが、それをVMで使って良いってことになったのはよろしくなかった。

MAC address 変わらないなら文句はないんですが、変わってるじゃん。reboot で動かなくなるのは卑怯だろ。

まぁ、IPv4 と VLAN は対応しているので、IPv6は、そっちから生成してやれば良いのだが。

EUI64とかルータ生成の方が推測しにくいという利点(?)はあるな。

そんなわけで、RoRの active record を手でいじる羽目に。Postgress いきなりいじっているのを見かけたので

  Rails の active record 経由で触る方が良い

ということに。
まずAkatsukiのコンテナの中に入って
    # podman exec -it akatsuki /bin/bash
runner で走らせてやれば良い。
    # RAILS_ENV=production bundle exec rails runner show.rb | more
script も簡単。
     LocalRecord.all.each do |member|
       member.attributes.each do |name,value|
         printf("%s=%s\n", name,value)
       end
     end

record の insert も

AkatsukiのPodmanのコンテナのなかで,
   # RAILS_ENV=production bundle exec rails runner add.rb

     LocalRecord.find_or_create_by(
       name: 'xxxxx.ie.u-ryukyu.ac.jp',
       rdtype: 'A',
       rdata: '10.100.10.xx'
     )



とすれば良いらしい。podman の one liner にしたい感じもあるが、中に送り込むのがめんどいか。

IPv6部分は気が向いたらなおそうかな。VM以外は EUI64 でも良いから。

Wednesday 1 September 2021

297のバス〜

なんか、9/1 から変更になってて割とはまりました。時間がかなり変わってて、しかも、終着が琉大付属小学校。

でもさ、そうじゃないんだよ。

 浦西、キリ短、琉大、沖国、真栄原、大謝名、宜野湾営業所

と通るべきだと思うな。そうすると、329/330/58 からゆいレールがつながるので。

まぁ、でも、ないよりマシ感