2023年9月22日金曜日

土壌phが!







雨後ですが、
いちじく鉢の土壌phを測ったら5.6 !
これはこのあたりの酸性雨のphと同じです
水が乾燥すると当然酸性度はもっと上がります

慌てて牡蠣殻石灰撒きました
鉢のphを測定しながら水くれてたら、測定器本体にかかり、内部まで染み込んでパネルがチャプチャプに!

こんな見かけなのに防水じゃないの?

仕方なく分解して組み直しました
ほっとくと絶対に基盤と液晶を繋ぐ導電ゴムのところが錆びます

買った瞬間に壊すところでした
次からはzipロックでも被せて使います

2023年9月18日月曜日

日本語プログラミング言語

最初に書いておこう
日本語がプログラミングに向いていないと言う論文は沢山見た
それに反論する論文もかなり読んだ

よく探せば似たような議論は過去に何度もあった

個人的には日本語はプログラミングに向いてないと考えている
ぴゅーたの頃からやりづらかった
なでしこはピンと来ない
HSPも変数は日本語が使える
UWSCも使えた

新入社員にC#でクラス宣言作らせたら
日本語のクラス作られた事があって
流石に勘弁してくれと思った

英語が話せない人は居る
彼らにとっては日本語であってほしいのかも?

だけど、英語圏の検索もしなければならないし
出てきた内容をいちいち日本語に翻訳しないと読めないと言うのは、時間がかかりすぎてはないのか?

本人が英語を堪能になれば良いだけのことなのだが、、、

そういえば、外資系で5年も勤めていて一つも英語が上手くならない人がいた

ウエンツ氏も家族に英語話者がいるにも関わらず話せないと言う

一体どうなっているのだろうか

もしそう言う人がプログラムに興味を持ち
日本語で組みたいと思うのなら
自分で作るしかない

コード中に日本語での変数宣言やクラス宣言などが出来る言語は、前述の通り多数あるが、それらでは無いのだろう

Cのマクロでお嬢様言葉によるプログラミングを可能にしたと言う記事も見たが、それでもないのだろう

第五世代コンピュータの頃にもてはやされたPrologはどうだろうか

述語論理でコーディング出来るのはかなり面白い発想だと思うのだが

今のプログラミングスタイルの言語では
日本語の有利性を活かしきれない

自然言語でプログラミング出来る時代が来れば
日本語だの英語だのは関係なくなる気もする

その時代になれば
動きに文句つけるだけで
お望みの入出力が得られるようになるだろう

そう言う時代が来ることは大歓迎だ

日本語で組みたいと言う前に
完成系をイメージして欲しい

「日本人だから日本語は読めます」
  と言うだけでは

プログラミング言語を日本語にする理由として
あまりに安易だ

それと言語を作るのは結構センスが要る

わたしはPerl6を認めない
Perlの生みの親が作ったのだとしても認めない

Rubyも認めない
あんな半年後に自分でも読めなくなる言語
作ってほしくはなかった

プログラミング言語というのは
単純な予約語の組み合わせだけで
誰が組んでも同じ仕上がりになってくれないと
メンテナンス出来ない

そういう意味で
Pythonが使われるのは理解できる

Luaのように簡単な言語でも動くものは作れるという実験も理解できる

単純さを突き詰めるとニーモニックになるし
複雑さを突き詰めると日本語プログラミング言語になるのかもしれない

国の言語によらない書き方の方が便利なので
結局落とし所は既存プログラミング言語なのだ

ここの欄は電話番号です、こちらは郵便番号ですと日本語で書いたら、そういう機能が実装されるというのなら、まぁ、アリかも?

HTMLとか書かないで、以下の項目について入力欄を用意して、格好よくバランスよくレイアウトして、ボタンを押したらサーバにJSONで送信するみたいな仕様書にもならない戯言からよろしくやってくれるなら大歓迎する

正直わたしはHTMLのようなタグで書かないとブラウザが表示してくれない点について疑問に思っている
YMLで書けばもっと短くなるし
JSONで書けばそのままJavaScriptでも扱いやすくなる

動的にJSONからHTMLを作り上げるJavaScriptなんかどなたも書けるだろう

HTMLじゃなくてTeXにしてくれと思ったこともある

HTMLもオワコンになる日は来ると思っている

脱線したが、どこまで楽ができるフレームワークがあるのかと言う議論の方が、言語の種類に関する議論よりも有意義だ

2023年9月7日木曜日

ラズパイ

ラズパイを6台持ってる事を自慢げにラズパイOSを語ろうとする人が居るのだが

一般のご家庭ではラズパイ6台くらい普通に持ってるだろ?

うちでも録画マシン、再生マシン、開発用、3Dプリンタで常時ラズパイ4が4台動いてる

3Dプリンタ以外の3台は電源つけっぱなしです

ラズパイ4の前は同じ目的でラズパイ1から3までずっと使い続けてきてるのだから、
探したら沢山出てきます

それにOSなんて、サーバOSに決まってるだろ
デスクトップとして使うなよ
選択肢なんて他にありません
アホかと思った
デスクトップ使うなら普通にPC使いましょう

ラズパイに入れられる軽量OSとかの記事
マヂうざいので書くな
書くならK8Sの記事にしとけ
K8S で何やるか知らんけど、、、



2023年9月2日土曜日

Ubuntu Serverのアップグレード

サーバーバージョンのUbuntuの場合、以下でOS更新ができるらしい
sudo do-release-upgrade
へー知らんかった

だが、これ打ち込むとすごく脅される

Reading cache

Checking package manager

Continue running under SSH?

This session appears to be running under ssh. It is not recommended
to perform a upgrade over ssh currently because in case of failure it
is harder to recover.

If you continue, an additional ssh daemon will be started at port
'1022'.
Do you want to continue?

Continue [yN] Y

Starting additional sshd

To make recovery in case of failure easier, an additional sshd will
be started on port '1022'. If anything goes wrong with the running
ssh you can still connect to the additional one.
If you run a firewall, you may need to temporarily open this port. As
this is potentially dangerous it's not done automatically. You can
open the port with e.g.:
'iptables -I INPUT -p tcp --dport 1022 -j ACCEPT'

To continue please press [ENTER]

たしかにSSHでこれやるのは超危険
でも、とりあえずEnterしてみる

この後、あれこれダウンロードしたりチェックしたりして、その後さらに聞かれる

Do you want to start the upgrade?


7 packages are going to be removed. 264 new packages are going to be
installed. 1112 packages are going to be upgraded.

You have to download a total of 820 M. This download will take about
5 minutes with your connection.

Installing the upgrade can take several hours. Once the download has
finished, the process cannot be canceled.

Continue [yN]  Details [d]

yで継続

まだ聞かれる・・・
そりゃサービスの更新くらいありますよね


YESで継続

さらに聞いてくる


んなの、別にいいよ、新しいの入れる

さらに聞かれる


わからんけど、新しくします

minidlnaも聞かれた


デフォルトでKeepでいいです

なんか消すらしい


yで継続


はいはい、Abortで、、、え?これ、YESなの?
(YESが選ばれてるのだからYESなのだろう)

最後に再起動を促される


さて・・・起動するだろうか?

あれ???
sshでつながらない、refuseされた

しかたないので、モニターとキーボード付けて起動してみたところ・・・
Emergency Mode ?
Give root password for maintenanceとか出てくるんですけど・・・
パスワード入れて、メンテナンスモードになり、とりあえずfstabでも見てみる

vi /etc/fstab
あ、UUID指定してマウントしてる・・・
今外付けのドライブ外してるんだった

とりあえず、先頭に#付けてコメントアウトしexit(exitすると再起動になる)
起動してくれました・・・

一瞬焦る・・・
それにしても、fstabは毎回ハマるんで、自分もそろそろ脳みそのアップデートがしたい






2023年8月20日日曜日

万年筆について

最近意識して書くようにしています
漢字を思い出す事、頭を整理する事、見返す事が出来る点から、日記を付けています

そしてその際には、スラスラ書けることが大事であり、一種の儀式として万年筆を使うことにしています

すでに様々なメーカーの万年筆を試していますが、最良の万年筆には出会えていません

わたしが求める条件は少ないと思います
  1. 乾かない事
  2. 太すぎないこと
  3. 読めるインクの色である事
  4. カリカリではなくスラスラでありヌルヌルでは無いこと
まず、コンバータを使うとして、コンバータの容量は少なくとも構わないと考えます
日記では複数のインク色を使います
黒以外の赤や青、その他はあまり使うことがなく、線を引いたり、一文を文字色を変える程度にしか使いません
コンバータに大量にインクが入ったとしても、たまにしか使わないので、半年や一年はそのまま使う事になります
使い切る前に乾く位なら、コンバータのインク量など少なくて構いません

わたしが万年筆に求める第一条件は、何をしても乾かない事です
十年でも乾いて欲しくありません
乾くくらいなら万年を名乗るなとさえ思います

少し言いすぎました
RotringのISOGRAPHでさえ10年は無理です
実は10年以上放りっぱなしだったISOGRAPHを取り出してみましたが
ISOGRAPHでもプラスチック部分が劣化し、
インクは分離したり乾いたりしてしまいます

やはり道具は人が使わないとダメになります

次に字幅ですが、システム手帳に書いているので、あまり太いと潰れます
細いとインク消費が少なくなり、使い切る前に乾く事になります
したがって、潰れない程度に細い事が第二条件です

さらに、インク色ですが、仮にも筆記具メーカーなら、文字を書いて読めるインクの色を作っていただきたい
黄色!
わたしが好きでたまらない黄色で書いた文字が全然読めない!こんなインク作ったメーカーはどこだ!と怒りまくった事があります
わたしの愛する黄色に失礼なので、
やめていただきたい!

最後に書き味ですが、カリカリするくらいならGペン使います
スラスラ書けるのが万年筆なんで、そこの調整はきちんとして頂きたい
だけど、インク出過ぎてぬらぬらとか、ドバドバ出るのは使い物にならないのでやめていただきたい!

たかだかこの程度の条件なんですが、、、
なぜ見つからないのでしょうか、、、

唯一、マシかなと思って常用しているのは、アウロラのイプシロンです
わたしの愛する黄色いボディなので、大抵のことは許せると言う点もあるのですが、結構乾きづらい万年筆であり、スラスラ書くこともできます

さて、余談として最後に日本メーカーに言いたい事があります
コンバータはヨーロッパ共通規格に変えてください
各社違うとか大迷惑です
どうせこだわりなんかないですよね?




2023年8月19日土曜日

タバコを土に埋めると

何やらタバコを土に埋めたらフィルター以外は土に返ったと言う動画を見ました、、、

結論から言うと、タバコのフィルターも時間をかければ分解していきます
すでにわたしが実験済みです

タバコのフィルターは酢酸セルロース、またはアセテートで、カセットテープやフイルムの素材で生分解性があります
3Dプリンタでよく使われる生分解性プラスチックとされるPLA(ポリ乳酸)よりも生分解性は高く、酢酸セルロース素材のフィラメントも3Dプリンタ用に研究されています
マイクロプラスチックで問題になるのはABS、PET、PA(ナイロン)、PC(ポリカーボネイト)、PS(ポリスチレン:発泡スチロール)など数多くのプラスチックで、生分解性はほぼありませんが、屋外でも多く使われている上に、農業資材にも使われています
田畑の土壌はマイクロプラスチックだらけです
タバコのその他の素材は自然由来であり、葉や紙はすぐに分解します
自然界ではニコチンなどよりも断然毒性の強い植物は多く、よくお庭で見かけるキョウチクトウは燃えても人が死ぬような煙が出ます

2023年8月12日土曜日

Swift on RaspberryPi

 以前会社のサーバをぶち壊してから、

RaspberryPi4にしようと思って手に入れていたのだけれど、

GoogleWorkspaceに移行して使いどころがなくなっていた

(他にも3Dプリンタや録画サーバ、LibreElecで常時3台のRaspberryPi4が動いている)

会社サーバはRaspberryPi3だったのだが、4を手に入れセットアップだけは済ませて放置していた

Ubuntu23.04 Serverを入れてある


Swiftだけど、ここにやり方が書いてあるので、各自ご勝手にどうぞ

https://www.swift.org/download/

懇切丁寧に書くつもりはない

どこぞで、偉そうに書いているブログでも参考にしてください

(上記リンク見ればやり方わかるのに、ここで解説する愚行はしません)






2023年7月30日日曜日

Google コミュニティガイドラインに準拠していない

 ずっとこれの意味がわからなかった




どの投稿ですか?
と思って、プルダウンを見たら、下書きになっているものがある
なるほど、これか?
と開いてみたら、非表示になっていた
どうやらわたしは、偽のサイトのリンクを張り付けていたらしい
申し訳ない・・・


2023年7月29日土曜日

Windows WSL2 でnginx + CGI

今回の目的だが、初心に戻るため、

KENT-WEBさんのCGIをDocker+nginx+CGIで動かす

という事を目的にしている

したがって、動かすCGIはPerlとなる

ちなみにCGIとSSIについては以下を参照して欲しい

https://serverkurabe.com/cgi-and-ssi/


誰か同じことやってないかと探してみたら、

こちらに発見

https://github.com/dai65527/nginx_cgi_on_docker

ちょっと編集して自分の環境に合わせて使わせていただくことにしました


以下手順


 WSL2を起動

適当なフォルダ(~/workにしておく)でDockerfileをつくる

~/work/Dockerfile

FROM    debian:buster

RUN     apt-get update && apt-get -y upgrade \
        && apt-get -y install \
            nginx \
            fcgiwrap \
            perl \
            vim

RUN     cp /usr/share/doc/fcgiwrap/examples/nginx.conf /etc/nginx/fcgiwrap.conf

RUN sed -i \
        -e s/'\/usr\/lib'/'\/var\/www\/site_a'/ \
        /etc/nginx/fcgiwrap.conf
RUN     mkdir -p /var/www/site_a/cgi-bin

COPY    ./srcs/default /etc/nginx/sites-available/default
RUN     chmod 644 /etc/nginx/sites-available/default

COPY    ./srcs/cgifiles /var/www/site_a/cgi-bin/
RUN     chmod -R 755 /var/www/site_a/cgi-bin/

COPY    ./srcs/entrypoint.sh /
RUN     chmod 755 /entrypoint.sh

CMD [ "/entrypoint.sh" ]

一応解説

nginxとfcgiwrapとperlとvimも入れておく

fcgiwrapとfastcgiに関しては以下を参照

http://www.pasokuma.net/linux/server/nginx/nginxfcgi.html


fcgiwrapのexampleにあるnginx.conf をfcgiwrap.confにコピーすることで

fcgiwrapを動かす準備をする


fcgiwrap.confの/usr/libを/var/www/site_aにしておく


つづいて、nginxの設定を用意する

nginxの動作としては、/var/wwwにサイトをいくつも動作させることが出来る

例えば、/var/www/ownCloudとか/var/www/Corporatoinとか動かすことが出来るのだが、それらの設定を/etc/nginx/sites-availableに置いておいて、

そこのシンボリックリンクを/etc/nginx/sites-enabledに貼ることで、サイトの設定を有効にする


今回は、/var/www/site_aというサイトを動作させる

~/work/srcs/default

server { listen 80 default_server; listen [::]:80 default_server; root /var/www/site_a; # Add index.php to the list if you are using PHP index index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } include fcgiwrap.conf; }



つづいて、~/work/cgifilesと言うフォルダを作り
そこにテスト用のCGIを準備しておく
~/work/cgifiles/perl.cgi
#!/usr/bin/perl
print "Content-Type: text/html\n\n";
print "<h1>Hello perl.cgi !!</h1>\n";
print "<p>AUTH_TYPE = \"$ENV{'AUTH_TYPE'}\"</p>\n";
print "<p>CONTENT_LENGTH = \"$ENV{'CONTENT_LENGTH'}\"</p>\n";
print "<p>CONTENT_TYPE = \"$ENV{'CONTENT_TYPE'}\"</p>\n";
print "<p>GATEWAY_INTERFACE = \"$ENV{'GATEWAY_INTERFACE'}\"</p>\n";
print "<p>PATH_INFO = \"$ENV{'PATH_INFO'}\"</p>\n";
print "<p>PATH_TRANSLATED = \"$ENV{'PATH_TRANSLATED'}\"</p>\n";
print "<p>QUERY_STRING = \"$ENV{'QUERY_STRING'}\"</p>\n";
print "<p>REMOTE_ADDR = \"$ENV{'REMOTE_ADDR'}\"</p>\n";
print "<p>REMOTE_IDENT = \"$ENV{'REMOTE_IDENT'}\"</p>\n";
print "<p>REMOTE_USER = \"$ENV{'REMOTE_USER'}\"</p>\n";
print "<p>REQUEST_METHOD = \"$ENV{'REQUEST_METHOD'}\"</p>\n";
print "<p>REQUEST_URI = \"$ENV{'REQUEST_URI'}\"</p>\n";
print "<p>SCRIPT_NAME = \"$ENV{'SCRIPT_NAME'}\"</p>\n";
print "<p>SERVER_NAME = \"$ENV{'SERVER_NAME'}\"</p>\n";
print "<p>SERVER_PORT = \"$ENV{'SERVER_PORT'}\"</p>\n";
print "<p>SERVER_PROTOCOL = \"$ENV{'SERVER_PROTOCOL'}\"</p>\n";
print "<p>SERVER_SOFTWARE = \"$ENV{'SERVER_SOFTWARE'}\"</p>\n";


Dockerfileに記述した通り、/var/www/nginx/site_a/cgi-binにコピーされ、
http://localhost:8080/cgi-bin/perl.cgiにアクセスすると上記が動く

つづいて、entrypoint.shの準備

~/work/srcs/entrypoint.sh

#!/bin/bash

echo 'starting nginx and fcgiwrap'
nginx
/etc/init.d/fcgiwrap start
echo 'done'

これの役割は、fcgiwrapのstart

Dockerfileの最後でこのentrypoint.shを実行する

以上でフォルダ構成は次のようになる

/home/xxx/work
├── Dockerfile
└── srcs
    ├── cgifiles
    │   └── perl.cgi
    ├── default
    └── entrypoint.sh


いよいよ?ビルドから始める

$ docker build -t nginx_cgi .


続いて起動

$ docker run --rm --name nginx_cgi -d -p 8080:80 nginx_cgi

起動したら、さきほどのhttp://localhost:8080/cgi-bin/perl.cgiにアクセスし、
CGIが起動することを確認する

DockerDesktopを入れていたら、そちらでも確認できる


動くことを確認したら、site_aのフォルダをWSL2にマップし、
VSCodeで編集できるように起動し直す
DockerDesktopでコンテナを削除し、以下でもう一度起動

$ docker run --rm --name nginx_cgi_test -d -v ~/www:/var/www/ -p 8080:80 nginx_cgi

VSCodeを起動し~/wwwにアクセスすると、Dockerの/var/wwwがマップされている状態になる
cgi-binはマップ先に無くなっているので、~/www/site_a/cgi-binを作り、
そこに先ほどのperl.cgiを配置
以下の様に755をつける

$ chmod 755 ~/www/site_a/cgi-bin/perl.cgi

http://localhost:8080/cgi-bin/perl.cgiで表示されることを確認する

kent-webさんのCGIで、今回は、チャットシステムのWindyを動かしてみる

ダウンロードしたZIPを解凍し、WindyフォルダのCGIを~/www/site_a/cgi-binにコピー
index.htmlはkent-webさんのサイトのチャットサンプルから、ソースを表示して丸コピしてつくり、~/www/site-aにコピー
chmodでkent-webさんのページの指示通りに設定
これで動くはずなのだけど、私は先走って、index.htmlからUTF-8化し、
全部のCGIもUTF-8化しまくって文字化けしまくってしまった
まぁ、あれこれやると動くようになるのだけど、丁度こちらのサイトを発見
http://mycc.s33.xrea.com/data/pc/perl_use_utf8.html
こちらを参考にしてあれこれ変えてみたところUTF-8で動くようになりました


申し訳ないけど、どこをどう変えたかは、分かるようにこちらに張り付けるわけにはいきません
KENT-WEBさんは著作権を放棄されているわけではなく、
わたしが修正したからと言って、そのコードをここに張り付けるわけにはいかないのです
ヒントは上記サイトにありますので、そこを参考にしていただきたい

===最後に===
今回は複数のサイトで得た情報をまとめただけで、
わたしが何か新しいことをしたわけでもなんでもありません
情報をWEBに公開されている方々にお礼申し上げます

最近、Javaの仕事が多く、思ったよりJavaが遅いという認識に至りました

WEB技術でクソ重い物をつかわずとも、
CGIの方が早いし開発もしやすいのではないかと、
かつて大変お世話になったKENT-WEBさんのチャットを取り上げさせていただきました

若い人たちに是非ここの内容をトライしていただきたいです
WSL2でなくとも、ご自宅に眠っているラズパイでも動かせると思います
ドメインを取得してDDNSで自宅のサーバを動かすこともできます
つまり、自分で作ったサーバを外部に公開することも出来るという事です
ただし、その場合、LetsEncryptなどで証明書を作ったり、nginxの設定を変えたり、
あれこれやることはあります

しかし、やってみることは勉強になるでしょう
攻撃を食らって、ログを見て絶叫してみるとか、
監視してみるとか、
自分の知識を広げることもつながることでしょう

2023年7月24日月曜日

PocketChip





もう7年前だ
PocketChipというものがKickStarterで始まり、
わたしはそれを購入しました
そして作ったのが上記のLifeGameです
Pico8と言う、昔の8ビットっぽいゲームを作るフレームワークが入っています
言語はLuaです
これを使ってLifeGameを作りました

PocketChipを手に入れた殆どの方は開封の儀とやらしかやらないのですが、
わたしはプログラマですし、Luaも使い慣れています
開封の儀と言うくだらないことはやらず、
いきなりプログラムして動かすのがわたしの流儀です

このガジェットは面白い開発環境になりました
昔はシャープのLinux Zaurusでプログラムしていましたが、同じような事ができます

そう考えると、当時あのようなデバイスを作っていたシャープは本当に凄いものを作っていたと思うのです

しかしながら、この世の中にはプログラマが居ないのでしょうか?

おそらくPocketChipを手に入れ、わたしのようにプログラムした人は居ません
見たことが有りません

ZaurusもPocketChipもプログラミング環境として使う人が殆ど居ません

みなさん一体これを手に入れて何をするつもりだったのでしょう?

ゲームですか?

わたしはゲームプログラマでしたが、ゲームはしません

pico8のようなゲームフレームワーク、ゲームエンジン、WEBフレームワーク、データベースなどを作るにあたって、いつでもプログラムが出来るのはとても便利です

最近だと、WEB版のVSCもあるので、開発環境が作りやすくなりました
やろうと思えばiPadでも開発できます

わたしはプログラムを組むのが大好きです

2023年7月2日日曜日

銅、アルミニウム、鉄の調理具

定期的に似た内容書いてると思いますが、、、

足尾鉱毒事件を知っている方は、
緑青が毒であると認識しているのではないでしょうか

しかし、足尾の件はカドミウムが原因でした

あのいかにも毒々しい緑青と呼ばれる銅のサビは人体に無害との事です

アルミニウムの鍋を使っているとアルツハイマーになると言うのも現在は否定されています

アルミニウムは土壌に多く存在しており、植物にもよく吸収するものがあります

例えば緑茶、ツバキ、紫陽花などで、ドイツでは緑茶のアルミニウムを問題視する声もありました。

緑茶抹茶を含むもので、例えば抹茶クッキーなども対象に調査されましたが、それも2019年あたりに問題なしと発表されています

アルミの鍋も銅鍋も使っていて問題ありません

鉄のフライパンも当然無問題です
そもそも血液のヘモグロビンはヘム鉄です

鉄の赤錆は、体に悪いどころか、貧血防止になります