2023-08-29

サイコロを振って出る目はランダムなのか

コンピュータ登場以前に存在した双六のようなボードゲームでは、サイコロを振って、出た目だけ進んでゴールを目指します。サイコロを振って出る目は理論的は各々1/6の確率になる筈ですが、それは無限回数を試行した場合であって、少ない試行回数では出る目に偏りがあるかもしれません。しかし確率が各々1/6であることは期待しています。そうでなければ、そのサイコロはイカサマかと疑ってしまうでしょう。

 

テレビの時代劇などでは、仕掛けをしたサイコロが賭場でバレて大騒ぎになるシーンを目にします。ネット上にも「丁半博打のサイコロについて 質問があります。」のような質問があがっています。僕が気になっているのは、賭場でイカサマをするかどうかではなく、サイコロの出る目の確率は均等に1/6であるべきだという点です。

 

話は変わりますが、ポイントカードを利用する上で、Web上のサポートサイトには双六のようなミニゲームが提供されている場合があります。サイコロを振って出た目だけ進むと、止まったところで、「何歩すすむ」とか「何歩もどる」のようなイベントが発生します。Web上で提供されているゲームなので、現実にサイコロを振っている訳ではないと思いますが、そのサイコロは「本当にランダムなのか」という点で疑念があります。

 

例えば、2マス先に「もどる」のマスがあった時にサイコロを振ると、なぜか「2」の目がでることが多いような気がしています。「1」~「6」の目がランダムに出ているのではなく、「2」の目が出やすくなるようなロジックになっているんじゃないかという疑念があります。まるで「吸い寄せられる」ように、「もどる」のマスにコマが引き寄せられているように感じるのです。Web上で提供しているミニゲームが何のプログラミング言語で組まれているのかは知りませんが、コマの現在位置や、その先にあるマスのイベントが何であるのか、ロジック的に取得することはできるでしょう。それを踏まえてサイコロを振って目を出すことも出来るのかもしれませんが、それは禁じ手かと思います。ミニゲームのロジックを知りたい訳ではありませんが、ランダムに目が出るサイコロになっていることを期待しています。

8月が終わろうとしていても、猛暑が続く

今夏は気象観測上で記録的な猛暑だと報道されています。梅雨の頃から既に気温が高く、7月から8月の盛夏も猛暑でした。ニュースなどでは8月8日の立秋の頃には「暦の上では秋」と毎年同じような事を言っています。「暦の上で秋」かもしれませんが、現実の天候では「夏真っ盛り」なので、「残暑」とか「(暦の上では)すでに秋」とか言われても、だからどうしたとしか思えません。


2023年は9月になっても平年よりも気温が高い状況が続くようです。早く涼しくなって欲しいと思います。何時になったら秋らしい気候になるのか分かりませんが、それでも秋は一歩ずつ近づいている気がします。8月初め頃は蝉の鳴き声が喧しく響いていましたが、 8月が終わりに近づいてきて、蝉の鳴き声は聞こえなくなってきました。その一方で、夜になると耳をすませば虫の声が聞こえてくるようになってきました。


気休めかもしれませんが、「暑さ寒さも彼岸まで」という言葉があります。猛暑の日々が続いているとは言え、終わりが近づいていると思います。

2023-08-28

BeautifulSoupでHTMLファイルから情報を取り出す

HTMLファイルの中でTABLEを使っている箇所から情報を取り出そうと思って調べていると「BeautifulSoup」というものを見つけました。これが全体として何が出来るのかは分かっていませんが、HTMLのTABLEで組まれている箇所から情報を抜き出すことは出来ました。最終的にはCSVにして情報を蓄積していこうと考えていますが、そのあたりをどのようにするかは考えているところです。

 

Webを検索すればBeautifulSoupを使った事例が見つかります。汎用的にしていくにはロジックが複雑になると思いますが、情報を抜き出すところだけなら、簡単でした。

#!/usr/bin/python3

import sys

f = open(sys.argv[1], "r", encoding="shift_jis")
data = f.read()
f.close()

import csv
from bs4 import BeautifulSoup

soup = BeautifulSoup(data, "html.parser")
for tab in soup.find_all("table"):
    with open("monex.csv", "w") as file:
        writer = csv.writer(file)
        for row in tab.find_all("tr"):
            csvRow = []
            for cell in row.findAll(["td", "th"]):
                s = cell.get_text().strip()
                if len(s) != 0:
                    csvRow.append(s)
            writer.writerow(csvRow)
# [EOF]


HTMLから特定の情報を抜き出すにはXSLTも使えそうです。XSLTは勉強中なので、どのようにしたら良いのか分かりませんが、きっと簡潔にできるのでしょう。またはsed、awkなどで文字列を解釈するロジックを書くことも出来るのかもしれません。それほど長々としてスクリプトにはならないと思いますが、BeautilfulSoupやXSLTほど簡潔にはならない気がします。

2023-08-26

fetchmailでメールを取得できなくなった

個人宛のメールは、自宅で使っているFreeBSD上のfetchmailを使って、プロバイダから手元に一括してダウンロードしています。プロバイダが提供するWebメールを利用することもありますが、ちょっと参照するだけです。

 

いつものようにfetchmailでメールを取得しようとしたら、EXIT CODE=2というエラーになってしまいました。FETCHMAIL(1)にあるEXIT CODEの説明を読んでみましたが、それでは問題の原因がわかりません。そこで詳しい情報を得るために-vオプションをつけてfetchmailを実行してみました。そのログには、次のような出力がありました。

SMTP< 451 4.1.8 Domain of sender address ******* does not resolve

 

DNSの問題のように見えます。こういう時には、以前であればnslookupを使っていたところですが、最近はdrillを使うようです。「解決できない」と出ているドメインを指定してみると、応答が得られずタイムアウトしてしまいます。しかし正常終了するドメインもあるので、僕のところのネットワークが切れている訳ではなさそうです。しかも問題発生しているドメインは、同じところから数日前にもメールが来ていて、その時には問題ありませんでした。

 

一時的なトラブルなのか、DNSの世界で何か問題が発生しているのか、よくわかりません。僕が参照しているDNSサーバの問題なのか、世界中の全DNSサーバで問題となっているドメインの情報が消えているのか、根本的な原因がどこにあるのか不明です。問題の原因が何であれ、長引かずに解決して欲しいところです。

 


2023-08-24

MarineTrafficでPACIFIC WORLD号の位置がわかる

2023年8月23日にピースボートの第115回船旅が神戸から出航しました(「2023年8月23日(水)、Voyage115が出航しました」)。このあと北米や欧州を廻って、12月に日本に戻ってきます。

 

今頃どこを航海しているんだろうかと思いをはせるのも愉しいものですが、ネットを調べてみたら「MarineTraffic」を見つけました。どういう仕組みなのかは詳しくありませんが、指定した船舶の現在位置を地図上に示してくれます。アカウントを作れば出来ることが増えるようですが、作らなくても、その船の位置や、周辺の他の船の情報は得られます。

 

パシフィック・ワールド号の現在位置を追いかけながら、旅先の様子を想像するのも愉しいですが、いつかは実際に乗船して、自分の目で体験したいと思います。

2023-08-23

船室のテレビ

先週「ピースボート40周年記念イベント」に参加した際、「ピースボート地球一周の船旅 総合カタログ 2024-2025年」を貰いました。これを眺めているだけでも、再び乗船したい気持ちになってきます。

 

以前に乗船したOLVIAもそうでしたが、いろいろな種類の船室が提供されています。もっとも安いのは「フレンドリーエコノミー/バジェット」というグレードだと思います。一人で参加すると相部屋になりますが、そういう人は多いので、これも何かのご縁ということです。


船室備え付けの設備を確認すると、シャワーとかトイレというのはOLVIAと同じですが、どうやら各船室にはテレビが置いてあるようです。テレビがあって、どうするんだろう?船内放送があるのでしょうか。それともDVDなどを視聴するためにつかうんでしょうか。日本近海ならまだしも、日本から遠く離れてしまったら日本のテレビは映らないでしょう。寄港先で現地のテレビ放送が映るのであれば、それはそれで面白いとは思います。

2023-08-20

猛暑と水分補給と塩分補給

2023年の夏は、気象観測史上稀に見る猛暑のようです。今年ほど酷くないとしても、夏には水分補給が大切です。よく言われるのは、喉が渇いたと自分で思った時には手遅れなので、喉が渇いたと思わなくても定期的に水分補給をするのが良いということです。個人差もあるとは思いますが、僕の場合には炎天下を歩くだけで汗がどんどん流れてきます。ちょっと休憩がてら食堂に入ったら、コップの水を2~3杯くらいは、あっという間に飲んでしまいます(本当はもっと飲みたい)。

 

とにかく水はいくらでも飲める気がするのですが、ここで気になるのが、こんなに水ばかり飲んでいても問題ないのだろうかということです。これまでに水を飲みすぎて体調を崩した経験はありませんし、考えすぎかもしれませんが、「水中毒」になってしまうのは避けたいところです。 


水ばかり飲むのではなく、塩分補給もした方が良いという情報を見かけます。しかし反対に、塩分は普段の食事から得ている分だけで十分だし、むしろ高血圧にならないためには減塩を意識すべきで、あえて塩分補給をする必要は無いという情報もあるようです。

 

水分補給はともかく、塩分補給は賛否が分かれるので、どうしたらよいのか迷います。僕自身は高血圧ではありませんが、だからと言って塩分摂取量に無頓着でよいわけではありません。当面は食事から摂取するだけに留めておこうかと思います。

2023-08-19

1人の100歩より100人の1歩

ピースボートの40周年を記念するイベントが開催されたので、参加してきました。第40回クルーズに乗船した時の船はOLIVIAでしたが、今回のパシフィック・ワールド号は、雲泥の差でした。こんな立派な船でクルーズできるのは羨ましい限りです。トーク・セッションの中で「1人の100歩より100人の1歩」という言葉が紹介されました。誰か一人だけが頑張るのではなくて、みんなで力を合わせる事の意義を訴えるという意味で、深く共感しました。


立食形式の軽食が提供されましたが、レストランが開放されていたので座って食べることも可能でした。そのあとでラテン音楽とダンスのパーティーが開かれて、ピースボートに乗船していた頃の記憶が蘇りました。


何時になるか分かりませんが、またピースボートのクルーズに参加したいと思います。

2023-08-13

冴返る田んぼの中の集会所

本を読んでいたら「ゆる言語学ラジオ」というものがあるのを知りました。YouTubepodcastなど様々なメディアで視聴できるようです。面白いのでpodcastで聴いているのですが、先日「 俳句は一切詠まないのに、季語が収録された辞典を通読しました【歳時記1】#253」の中でタイトルの句が詠まれました。


私は俳句も短歌も全く素養がないので、俳句を目にしても表面的な情景以上のものは何も浮かびません。しかしその裏にある事情を知ると、季語「冴返る」と相まって、これが俳句というものかと感動をおぼえました。


ゆる言語学ラジオ以外にも「ゆる~ラジオ」というのが他にも数多く存在していることも知りました。それぞれに面白いとは思いますが、全部聴いていると、それだけで他の事が何もできなくなってしまいそうなので、ほどほどにしておこうと思います。

2023-08-08

Ubuntu 22.04でGanglia Webが動かない

サーバの情報をモニタする「Ganglia」というパッケージがあります。これをUbuntu 22.04環境にインストールしようとしたら、gmondやgmetadなどのデーモンは動いたのですが、Webフロントエンドが動きませんでした。原因は、Ubuntu 22.04でインストールされるPHP8.1にGanglila-webfrontendが対応していないためです。

 

Webを検索すると、PHP7やPHP8でGanglia-webfrontendが動作しないという訴えが見つかりますし、部分的なパッチも見つかります。しかしPHP8の下でGangalia-webfrontendが動作しているという報告は見つかりませんでした。PHP8は過去バージョンとの互換性がないところがあるようです。そこを手作業で修正して動くのであれば良いのですが、どうも手強そうです。

 

ならばUbuntu 22.04にPHP5をインストールすれば良いかもしれません。Webには「UbuntuでPHP5と7を共存(同居)させてみた」のような情報がありますから、なんとかなりそうです。Ubuntuの公式リポジトリにはPHP8.1しかありませんが、PHPの過去バージョンを持っているPPAリポジトリを使えるようにすれば、PHP5.6をインストールできました。

 

Apacheから参照されるモジュールが、PHP8.1用とPHP5.6用がインストールされることになるので、PHP5.6用を有効にしておきます。もちろんPHP8.1用は無効にします。そしてApacheを再起動させると、無事にGanglia-webfrontendが動きました。

猛暑と体調

報道によると、2023年7月の平均気温は観測史上最高だったそうです(7月の気温、125年で最も高く 温暖化の影響で45年ぶり記録更新)。8月に入って、台風接近の影響があるのか、若干最高気温が下がっているようです。それでも30℃以上あって、暑い日々が続いています。

 

最高気温が体温を超すような日々に比べれたら、幾分気温がさがっているのに、全然涼しくなった気がしません。体調も夏バテ気味です。気温と体調が比例関係にあるわけではないと思います。また暑さ指数(WBGT)の数値を確認しても実感とは合っていない気がします。 


体調と何らかの気象測定値が相関関係にあるとは思いませんが、天気予報で翌日の予想最高気温を確認して、低いと、暑さが緩和されていると期待します。しかし翌日になってみると、気温が高くても低くても、体調が芳しくないのは変わらずです。

 

今年は、夏らしい夏で、結構なことですが、暑さにうんざりしているのも確かです。

2023-08-07

/etc/cron.dに置くファイルは、どんなファイル名でもよいわけじゃない

Ubuntu 22.04(に限らないとおもいますが)を使っていて、これまで/etc/crontabに入れていた内容を、/etc/cron.dの下に移すことにしました。cronを使う場合に、昔から/etc/crontabを編集していましたが、今ではcrontabを編集するのではなく、/etc/cron.dの下に置くのがお勧めなようです。

 

それでファイルを/etc/cron.dの下に置いたのですが、動いているような気がしません。Webを検索してみると、動かない場合の対処方法などの情報が見つかるのですが、そこに書いてあることを確認しても、どうも違うようです。そして調べているうちに「Debian系のcronで気をつけること」という情報が見つかりました。それによると、ファイル名は何でも良い訳ではなく、英数字とアンダーバーとハイフンしか使えないようです。自分が置いたファイル名を確認すると、ピリオドを使っていました。これが動かなかった原因で、ファイル名を修正したら動くようになりました。 


ファイル名が不適切だった場合、syslogに何かメッセージが残っていれば失敗に気付けたと思いますが、何も出ていなかったので苦労しました。

2023-08-01

EV時代の電動自転車

完全に切り替わるのが何時になるかは見通せませんが、世間の潮流としては、ガソリンエンジンを採用した自動車は消えていき、EVが主流になる方向です。このような傾向にあるのは、地球温暖化のために化石燃料を使わないようにしているからだと思います。そうなると、自動車だけではなくオートバイも同様なんじゃないでしょうか。


原動機付自転車」にも内燃エンジンだけではなく電動機のものがあるようです。そうなると「電動自転車」との違いが、よくわからなくなってきます。現状では、免許証の要否とか、ペダルの有無など、違いがありますが、これらは歴史的な事情に過ぎない気がします。

 

地球温暖化対策として、ヨーロッパなどでは2030年代にEV以外の新車販売を禁止しようという方向性を出しています。これは新車販売の話であって、ガソリン車が禁止される訳ではないと思いますが、もっと先の未来には、いつになるかわかりませんが、ガソリン車自体が禁止される日がくるでしょう。そうなると街中のガソリンスタンドは無くなってしまうと思います。その時、「原動機付自転車」と「電動自転車」は、いったいどうなっているのでしょうか。