自宅の塗装工事後に、以下のような現象が現われてきました。チョークで書かれたような白いものが壁に浮き出てきます。
白華現象(エフロ)と言われるものらしく、壁の内部から出てくる水分によって引き起こされる現象とのことです。
そこで、本日、この対応を実地で教えて貰いましたので、記録しておきます。
(Step.1)対象箇所を、水(水道水)で塗らす。
(Step.2) 市販の溶液を準備する
(Step.3)溶液を塗布する
(Step.4)3分ほど待ってから、水で洗い流す
以上
江端智一のホームページ
自宅の塗装工事後に、以下のような現象が現われてきました。チョークで書かれたような白いものが壁に浮き出てきます。
白華現象(エフロ)と言われるものらしく、壁の内部から出てくる水分によって引き起こされる現象とのことです。
そこで、本日、この対応を実地で教えて貰いましたので、記録しておきます。
(Step.1)対象箇所を、水(水道水)で塗らす。
(Step.2) 市販の溶液を準備する
(Step.3)溶液を塗布する
(Step.4)3分ほど待ってから、水で洗い流す
以上
我が家の長女が、今頃になって「エヴァンゲリオン」にロックオンされました。
Our senior daughter is now locked onto "Evangelion".
彼女は、現在、上映中の映画から始まったようです。
She seems to have started with a movie that is currently being shown.
『最終回からアニメにはまる父親の血脈』という訳でもないのでしょうが ―― こういう入り方も良いものです。
It may not be "Her father's bloodline that got me into anime after the last episode", but it's good to get into it this way.
-----
これまでも述べてきたように、私は、「エヴァンゲリオン」にハマることのできなかった一人です。
As I have mentioned, I am one of those people who could never get into "Evangelion".
ハマれない人と、ハマれない人のどちらが不幸か、と言われれば、言うまでもなく後者です。
If you ask me who is more unhappy, those who can't get into it or those who can't get into it, it goes without saying that it is the latter.
ですから、これからは、家族の中に「解説者」ができることで、私も興味を持てるようになるかもしれないなー、などと、と思っていたところ ――
So I was thinking that from now on, I might be able to have a "commentator" in the family, so that I can be interested in it, and so on.
驚愕の記事を見つけました。
I found the article astonishing.
======
今回は、絶賛公開中の「シンエヴァンゲリオン劇場版」で、ユーミンの唄うこの映画の挿入歌「VOYAGER~日付のない墓標」が使用されたことで突如、注目を浴びた1984(昭和59)年公開のSF映画「さよならジュピター」をご紹介します。
This time, I'd like to introduce you to the science fiction movie "Sayonara Jupiter," released in 1984 (Showa 59), which suddenly drew attention when the movie's insert song "VOYAGER - Tombstone without a Date" sung by Eumin was used in "Shin Evangelion the Movie," which is currently being released to rave reviews.
=====
なん・・だと・・
What the...?
「VOYAGER~日付のない墓標」だと。
You said "VOYAGER - Tombstone Without a Date" didn't you?
22世紀のエンジニアを描いたSF最高峰の「小説 さよならジュピター」
"Novel Goodbye Jupiter", the best science fiction about an engineer in the 22nd century
その原作を台無しにしてしまった「映画 さよならジュピター」
The movie "Goodbye Jupiter" ruined the original story.
そして、その映画の中で誕生した、「名曲 VOYAGER~日付のない墓標」が「シンエヴァンゲリオン劇場版」で使われいる・・だと。
The song "VOYAGER - Tombstone without a Date" was created in the movie and is used in Shin Evangelion the Movie.
-----
「さよならジュピター」に関わるものであれば、それがなんであれ、全て私のフィールドです。
Anything related to "Goodbye Jupiter" is my field.
1995年の地上波の「ヤシマ作戦」と「MAGIシステム乗っ取り」で止まっていた私の中で、今、何かが動き始めました。
Something has now started to move in me, which had stopped with the 1995 terrestrial "Operation Yakima" and the "MAGI system takeover".
http://mstc.or.jp/faop/committee/11b4d681d4059ef7fed08409b8b34e1f2c1c4029.PDF
--[[ Wireshark用 NX/Dlinkプロトコル解析プログラム
ver0.03 2012年2月16日
ver0.02 2012年2月10日
ver0.01 2012年2月1日
江端智一
使用条件
絶対的な意味において無保証
History
Ver 0.03 重複登録を一応回避
Ver 0.02 TCP/UDPデータに"NUXM"があったら、送信ポート番号を調べて
動的にDissectorをWiresharkに登録するようにした
Ver 0.01 とりあえず動作確認のみ
udpポート番号が特定の値に固定されている
フィールドの位置がズレている可能性あり
使い方
(Step.1) c:/Program Files/Wireshark/init.lua の一部を書き換え
(a) disable_lua = true; do return end;
↓
-- disable_lua = true; do return end;
(b) run_user_scripts_when_superuser = false
↓
run_user_scripts_when_superuser = true
(c) 最終行に 以下の一行を追加
"init.lua"と同じディレクトリに置く
dofile("nxdlink.lua")
(Step.2) このファイルを c:/Program Files/Wireshark/ に
"nxdlink.lua"という名前で保存
]]
do
nxdlink_proto = Proto("NXDlink", "nxdlink protocol dissector")
nxdlink_proto.dissector = function(buffer, pinfo, tree)
-- nexus header type : "NUXM"
local hd_h_type_range = buffer(0,4)
local hd_h_type = hd_h_type_range:string()
-- message length ( 16K + 64 )
local hd_ml_range = buffer(4,4)
local hd_ml = hd_ml_range:uint()
-- source protocol address
local hd_sa_range = buffer(8,4)
local hd_sa = hd_sa_range:uint()
-- destination address
local hd_da_range = buffer(12,4)
local hd_da = hd_da_range:uint()
-- boot time stamp
local hd_v_seq_range = buffer(16,4)
local hd_v_seq = hd_v_seq_range:uint()
-- message number
local hd_seq_range = buffer(20,4)
local hd_seq = hd_seq_range:uint()
--[[ /* message control type */
/* UDP_MSG : multicast send */
/* UDP_INQ : multicast inquire */
/* UDP_NIQ : multicast Ninquire */
/* TCP_MSG : peer send */
/* TCP_INQ : peer inquire */
/* TCP_RPL : peer reply */]]
local hd_m_ctl_range = buffer(24,4)
local hd_m_ctl = hd_m_ctl_range:uint()
local control_type = {
[0x80000000] = "UDP_MSG(0x80000000) : multicast send",
[0xa0000000] = "UDP_INQ(0xa0000000) : multicast inquire",
[0x88000000] = "UDP_NIQ(0x88000000) : multicast Ninquire",
[0x40000000] = "TCP_MSG(0x40000000) : peer send",
[0x60000000] = "TCP_INQ(0x60000000) : peer inquire",
[0x50000000] = "TCP_RPL(0x50000000) : peer reply",
}
-- /* inquire ID parameter */
-- /* inquire source address */
local inq_id_range = buffer(28,12)
-- /* transaction code */
local hd_tcd_range = buffer(40,2)
local hd_tcd = hd_tcd_range:uint()
-- /* program version number */
local hd_ver_range = buffer(42,2)
local hd_ver = hd_ver_range:uint()
-- /* future use */
local hd_fu0_range = buffer(44,3)
local hd_fu0 = hd_fu0_range:uint()
-- /* acknowledge request mode */
-- /* PT_REQ : request message */
-- /* PT_ACK : response message */
local hd_pkind_range = buffer(47,1)
local hd_pkind = hd_pkind_range:uint()
-- /* packet seqence number */
local hd_pseq_range = buffer(48,4)
local hd_pseq = hd_pseq_range:uint()
-- /* message mode */
-- /* HEAD_ONLINE : online mode */
-- /* HEAD_TEST : test mode */
local hd_mode_range = buffer(52,2)
local hd_mode = hd_mode_range:uint()
-- /* protocol version number */
-- /* NEXUS_DLINK : NeXUS/Dlink */
-- /* NEXUS_T : NeXUS/T */
local hd_pver_range = buffer(54,1)
local hd_pver = hd_pver_range:uint()
-- /* message service level */
local hd_pri_range = buffer(55,1)
local hd_pri = hd_pri_range:uint()
-- /* current block number */
local hd_cbn_range = buffer(56,1)
local hd_cbn = hd_cbn_range:uint()
-- /* total block number */
local hd_tbn_range = buffer(57,1)
local hd_tbn = hd_tbn_range:uint()
-- /* segmenting block size */
local hd_bsize_range = buffer(58,2)
local hd_bsize = hd_bsize_range:uint()
-- /* future use */
local hd_fu1_range = buffer(60,4)
local hd_fu1 = hd_fu1_range:uint()
-- data
local data_range = buffer(64)
local data = data_range:string()
local subtree = tree:add("NX Dlink Protocol")
-- nexus header type : "NUXM"
subtree:add(hd_h_type_range, "Type:",hd_h_type)
-- message length ( 16K + 64 )
subtree:add(hd_ml_range, "Length:",hd_ml)
-- source protocol address
dispatch_addr("source protocol address:",hd_sa_range, pinfo, subtree)
-- /* destination address */
dispatch_addr("destination address:",hd_da_range, pinfo, subtree)
-- /* boot time stamp */
subtree:add(hd_v_seq_range, "boot time stamp:",hd_v_seq)
-- /* message number */
subtree:add(hd_seq_range,"message number:",hd_seq)
-- /* message control type */
dispatch_cnttype(string.format("message control type: %s",control_type[hd_m_ctl]), hd_m_ctl_range, pinfo, subtree)
-- /* inquire ID parameter */
dispatch_inq("inquire ID parameter:",inq_id_range, pinfo, subtree)
-- /* transaction code */
subtree:add(hd_tcd_range, "transaction code:",hd_tcd)
-- /* program version number */
subtree:add(hd_ver_range, "program version number:",hd_ver)
-- /* future use */
subtree:add(hd_fu0_range, "future use:",hd_fu0)
-- /* acknowledge request mode */
subtree:add(hd_pkind_range, "acknowledge request mode:",hd_pkind)
-- /* packet seqence number */
subtree:add(hd_pseq_range, "packet seqence number:",hd_pseq)
-- /* message mode */
subtree:add(hd_mode_range, "message mode(1:online 0:test) :",hd_mode)
-- /* protocol version number */
subtree:add(hd_pver_range, "NX protocol version number:",hd_pver)
-- /* message service level */
subtree:add(hd_pri_range, "message service level:",hd_pri)
-- /* current block number */
subtree:add(hd_cbn_range, "current block number:",hd_cbn)
-- /* total block number */
subtree:add(hd_tbn_range, "total block number:",hd_tbn)
-- /* segmenting block size */
subtree:add(hd_bsize_range, "segmenting block size:",hd_bsize)
-- /* future use */
subtree:add(hd_fu1_range, "future use:",hd_fu1)
-- data
subtree:add(data_range, "data:",data)
-- dispatch_inq("Data:",data_range, pinfo, subtree)
pinfo.cols.protocol = "NX/Dlink"
pinfo.cols.info = control_type[hd_m_ctl]
end
-- リスナーを定義
function init_listener()
u = {}
t = {}
u_cnt = 1;
t_cnt = 1;
u_bool = true
t_bool = true
-- UDP/TCPデータの中に"NUXM"があったらフックする
tap = Listener.new("frame", "udp contains NUXM or tcp contains NUXM")
function tap.reset()
print("passed tap.reset")
u_cnt = 0;
t_cnt = 0;
end
-- Dissector を Wireshark に追加登録
-- 重複登録問題を(不細工だけけど)以下で対応
function tap.packet(pinfo,tvb,ip)
-- UDPの場合
if ( pinfo.ipproto == 17 ) then
u_flag = 1
for i=0, u_cnt do
if u[i] == pinfo.dst_port then
u_flag = 0
end
end
if u_flag == 1 then
u_cnt = u_cnt + 1
u[u_cnt] = pinfo.dst_port
udp_table = DissectorTable.get("udp.port")
udp_table:add(pinfo.dst_port, nxdlink_proto)
end
-- TCPの場合 (まだ実験前)
elseif ( pinfo.ipproto == 6 ) then
t_flag = 1
for i=0, t_cnt do
if u[i] == pinfo.dst_port then
c_flag = 0
end
end
if t_flag == 1 then
t_cnt = t_cnt + 1
t[t_cnt] = pinfo.dst_port
tcp_table = DissectorTable.get("tcp.port")
tcp_table:add(pinfo.dst_port, nxdlink_proto)
end
end
end
end
init_listener()
end
function dispatch_cnttype(string, buffer, pinfo, subtree)
local subsubtree = subtree:add(buffer(0), string, buffer(0):tvb())
subsubtree:add(buffer(0,1),string.format("%d... .... .... .... .... .... .... .... = multicast flag",buffer(0,1):bitfield(0)))
subsubtree:add(buffer(0,1),string.format(".%d.. .... .... .... .... .... .... .... = unicast flag",buffer(0,1):bitfield(1)))
subsubtree:add(buffer(0,1),string.format("..%d. .... .... .... .... .... .... .... = inquire flag",buffer(0,1):bitfield(2)))
subsubtree:add(buffer(0,1),string.format("...%d .... .... .... .... .... .... .... = reply flag",buffer(0,1):bitfield(3)))
subsubtree:add(buffer(3,1),string.format(".... .... .... .... .... .... .... .%d.. = ack flag(future use)",buffer(3,1):bitfield(5)))
subsubtree:add(buffer(3,1),string.format(".... .... .... .... .... .... .... ...%d = ack flag(future use)",buffer(3,1):bitfield(7)))
end
function dispatch_udp_port(string, buffer, pinfo, subtree)
local subsubtree = subtree:add(buffer(0), string, buffer(0):tvb())
subsubtree:add(buffer(0,2),"source port:", buffer(0,2):uint())
subsubtree:add(buffer(2,2),"destination port:", buffer(2,2):uint())
end
function dispatch_addr(string, buffer, pinfo, subtree)
local subsubtree = subtree:add(buffer(0), string, buffer(0):tvb())
subsubtree:add(buffer(0,1),"Domain Number:", buffer(0,1):uint())
subsubtree:add(buffer(1,1),"Data Field Number:", buffer(1,1):uint())
subsubtree:add(buffer(2,2),"Node Number/Multicast Group Number:", buffer(2,2):uint())
end
function dispatch_inq(string, buffer, pinfo, subtree)
local subsubtree = subtree:add(buffer(0), string, buffer(0):tvb())
subsubtree:add(buffer(0,2), "inquire source address:",buffer(0,2):uint())
subsubtree:add(buffer(2,2), "inquire control block address:",buffer(2,2):uint())
subsubtree:add(buffer(4,2), "inquire ID sequence number:",buffer(4,2):uint())
end
本日は、コラムがリリースされた日なので、日記はお休みです。
Today, new my column is released, so I take a day off.
「コロナワクチン」接種の前に、あの医師が伝えておきたい7つの本音
Let's turn the world by "Number"(66) : Extra edition
The 7 True Stories the Doctor Wants to Tell You Before You Get the Corona Vaccine
と、
and
Let's turn the world by "Number"(67) : Extra edition
Appendix: The 9 supplementary points that the doctor wants to tell you more about
-----
今回は、2本立てになっています。
This time, it is in two pieces.
シバタ先生との原稿の交換をしている最中に ―― それは、もう、雪山の山頂から転がり落ちる雪ダルマのように ―― 膨大に膨れ上がる原稿を、呆然と眺めていました。
While I was exchanging manuscripts with Dr. Shibata, I was looking at the vastly expanding manuscript in a daze, like a snowball rolling down from the top of a snow mountain.
『これは収拾がつかないな』と思ったので、付録分は、私のWebサイトに回して、本文からリンクを張ろう」 ―― という予定だったのですが、
I thought, "This is getting out of hand," so I was going to put the appendix on my website and link to it from the text.
―― いえ、全て、EE Times Japanにて、掲載させて頂きます
"Don't worry. everything will be published in EE Times Japan!"
と、担当のMさん(*)が、ここ一番の侠気(おとこぎ)を見せて下さいました。
Ms. M, who is in charge of the project, showed us her chivalry at the very last moment.
Mさんからのメールを読んで、私は両手の拳を口のところに持って行って、『ステキ!』と叫んでしまうところでした。
When I read Ms. M's e-mail, I brought both fists to my mouth and almost shouted, "Generous!"
(*)ちなみにMさんは、女性です。
-----
今回の「シバタレポート(後半)」、医学専門書や論文を除けば、現時点において「我が国でもっとも詳しい新型コロナウイルスに関するコラム」と言い切っても良いと思います。
I think it is fair to say that this "Shibata Report (latter half)" is "the most detailed column on the new coronavirus in Japan" at present, excluding medical technical books and papers.
『でも、Mさん。これほどの膨大で高度な内容となると、PV(ページビュー)は期待できないかもしれませんよ』
"But, Ms. M. you may not be able to expect PV (page views) with such a huge and advanced content"
と、心配する私に対して、Mさんは言われました。
In response to my concern, Ms. M said
『PVに関しては、お気になさらないでください。特にシバタ先生のコンテンツを掲載することは、PVよりも、社会的意義の方が大きいと考えております』
"Please don't worry about the PV. We believe that the social significance of publishing Dr. Shibata's content is greater than the PV"
-----
貧弱なコンテンツを、キャッチーな題目を使ってPVを稼ごうとする、ヘタレサイトの編集者たち!
Editors of lousy sites trying to use catchy titles to generate PV with poor content!
刮目せよ!
Watch out!
この高い志(こころざし)を有する、MさんとEE Times Japan編集部の心意気に、平伏するがいい!!
The spirit of Ms. M and the EE Times Japan editorial staff, who have such high aspirations, should make you bow down!
-----
実際のところ、私は「恵まれている」のだろうと思います。
In fact, I guess I am "blessed".
最前線のリアルタイム情報を分かりやすい内容で提供して頂けるコントリビュータと、社会的責任を自負する編集社との間で、ゲートウェイをさせて貰える立ち位置にいることを ――
Being in a position where I can act as a gateway between contributors who can provide front-line, real-time information with easy-to-understand content, and editors who take pride in their social responsibility.
かなり本気で、心から、感謝しています。
For that, I am truly grateful from the bottom of my heart.
-----
あ、それと、意外な観点からレビューをしてくれる、「素晴しい"無礼な後輩"」にも感謝しています。
Oh, I also thank to my wonderful "rude junior colleague" who reviews my columns from unexpected perspectives.
以前、謝辞を忘れて、叱られたことを、今、思い出しました。
I just remembered that I was scolded for forgetting to give an acknowledgement before.
(Continuation from yesterday)
そうだ、この機会に、「私の心を"折り"に来た方々」も纏めておきたい ―― 私が、忘れないように。
Well, I would like to take this opportunity to summarize the people who came to "break" my heart -- before I forget.
■東京高検の 黒川弘務 検事長 → 外出自粛や「3密」回避の要請に反して賭博(マージャン)行為
Tokyo High Public Prosecutor's Office Chief Prosecutor Hiromu Kurokawa → Gambled against requests to refrain from going out and avoid "three secrets".
■菅義偉首相 → 4人以上の会食制限要請をしつつ、8人での会食を実施
Prime Minister Yoshihide Suga → While requesting to limit the number of diners to four or more, he held a dinner with eight people.
■自民党の二階俊博幹事長 → 同上
Toshihiro Nikai, Secretary General of the LDP → Same as above
■橋本聖子五輪担当相 → 6人での会食を実施
Minister of State for the Olympic Games Seiko Hashimoto → Dinner with six people
■自民党の石破茂元幹事長 → 大人数で「ふぐ会食」を実施
Shigeru Ishiba, former secretary general of the Liberal Democratic Party (LDP), holds a fugu dinner for a large group of people.
■山崎拓元自民党副総裁 → 同上
Takumoto Yamazaki, Vice President of the LDP → Same as above
■公明党の 遠山清彦 衆院議員 → 緊急事態宣言下2021年1月22日、深夜まで東京・銀座のクラブに滞在
Kiyohiko Toyama, a member of the House of Representatives from the New Komeito Party, stayed at a club in Ginza, Tokyo until midnight on January 22, 2021, under a declared state of emergency.
■自民党の 松本純 元国家公安委員長 → 深夜に銀座のクラブを訪ねていた
Jun Matsumoto, former National Public Safety Commissioner of the Liberal Democratic Party, visited a club in Ginza late at night.
■自民党の 大塚高司 衆院議院運営委員会理事 → 深夜に銀座のクラブを訪ねていた
Director of the House of Representatives Steering Committee, Takashi Otsuka of the Liberal Democratic Party → He was visiting a club in Ginza late at night.
■自民党の 田野瀬太道 文部科学副大臣 → 深夜に銀座のクラブを訪ねていた
Vice Minister of Education, Culture, Sports, Science and Technology Taido Tanose of the Liberal Democratic Party (LDP) → visited a club in Ginza late at night.
ちょっと調べてみたら、まだまだ出てきました。
I did a little research and found a lot more.
■飯泉嘉門 徳島県知事 → 県議ら46人で会食
Kamon Iizumi, Governor of Tokushima Prefecture → Dinner with 46 members of the prefectural assembly
■埼玉県議会の自民党議員団 → 埼玉県議会の自民党県議団約30人が、12月18日の夜、さいたま市内のホテルで打ち上げ
The LDP members of the Saitama Prefectural Assembly → About 30 members of the LDP members of the Saitama Prefectural Assembly were launched at a hotel in Saitama City on the night of December 18.
■愛知県西尾市の自民党会派「市民クラブ」に所属する市議14人 → 12月18日に市議の経営する旅館で12月議会の打ち上げと称し、女性コンパニオン3人を呼んで大々的に宴会をしていました。
Fourteen city councilors belonging to the "Citizen's Club," a faction of the LDP in Nishio City, Aichi Prefecture → On December 18, they invited three female companions to a large banquet at an inn run by the city councilor, calling it the launch of the December assembly.
・・・もう面倒になったのでやめますが、つまるところ、この人たちも『"一人だけ欠席"するのが怖くてたまらない』という『ヘタレ』なんですよ。
I'm going to stop now because it's getting tedious, but the bottom line is that these people are also "badasses" who are afraid of being the only one absent.
もう少し丁寧に説明すると、
Let me explain it a little more carefully.
『頭の悪いな陽キャが、"コロナなんか大丈夫だよ、俺たち若いのは関係ないべ"、と騒いで、在学中のクラスの有志の集まりを企画して、そこに、"一人だけコロナを理由に欠席"することでヘタレ扱いされるのが怖くて、出席してしまう真のヘタレ』
"If you're the only one who's absent because of Corona, you're afraid of being treated like a slacker, so you attend.
という感じですかね ――
like this one.
-----
私、冒頭の「東京高検の 黒川弘務 検事長」が、世間からの批判がどうあれ、自責と自罰の念から、自殺をしてしまうのではないかと、かなり心配していました。
I was quite worried that the chief prosecutor of the Tokyo High Public Prosecutors Office, Hiromu Kurokawa, would commit suicide out of remorse and self-punishment, regardless of the criticism from the public.
東京高検といえば、国家権力の闇を暴く正義の組織であり、検事長は、東京地検を含む、地方検察庁及び区検察庁の職員を指揮監督する、正義の組織のトップです。
The Tokyo High Public Prosecutors Office is an organization of justice that exposes the darkness of state power, and the chief prosecutor is the head of the organization of justice, directing and supervising the staff of the District Public Prosecutors Office and the District Public Prosecutors Office.
やはり、私の世代で思い出すのは「ロッキード事件」です。
After all, what my generation remembers is the Lockheed case.
東京高検(が管轄する東京地検特捜部)は、私達のヒーローでした。
The Tokyo District Public Prosecutors Office Special Investigation Department, under the jurisdiction of the Tokyo High Public Prosecutors Office, was our hero.
この職位の人が、「コロナ渦での賭けマージャン」をすることは―― 顔の見えない国民や、法律の規定うんぬんはどうあれ、組織や自分の部下に対して、顔向けができない恥辱の行為のはずです(よね?)。
For a person in this position to play "betting mah-jongg in the Corona vortex" should be a disgrace to the faceless public, to the organization and to one's own subordinates, regardless of what the law says (right?). It's a shame that you can't face the organization or your subordinates.
そして、これまで多くの日本人が、このような「恥」に対して、自決(自殺)という方法で、自分の組織や家族への謝罪を試みるということをやってきました。
And many Japanese have tried to apologize to their organizations and families for such "shame" by committing suicide.
ですから、私は、本当に心配していました。
So I was really worried about it.
故に、この件については一切触れませんでしたが ―― どうやら、杞憂だったようです。
That's why I didn't mention any of this -- apparently, my fears were unfounded.
安心しました。
I was relieved.
-----
『腹掻き切って、国民に詫びて見せろ』―― てな、時代錯誤的なバカげたことを書いてみてもよかったかな、とか、今なら思っています。
Now I wonder if it would have been better to write something anachronistic like, "Cut your belly open and show your apologies to the people.
くだんの「轢断のシバタ先生」から、くだんの「衝撃のメール」を頂いた時から、一年が経過しました。
It's been a year since I received that shocking email from my "Dr. Shibata of the Run-Over".
あのメールを読んだのが、日帰り一人スキーのスキー場のロッジで、ランチを食べている時でした。
I was eating lunch at the lodge of a ski resort for a one-day solo skiing trip when I read that e-mail.
夢中で読み続けて、スプーンからおかずを落としたことに気がつかないくらいでした。
I was so engrossed in reading that I didn't even notice that I dropped a side dish from my spoon.
私にとっては、あのメールが、「新型コロナ」と関わるターニングポイントとなりました。
For me, that e-mail was the turning point in my involvement with the "new Corona".
-----
なんか、日々のニュースに追い立てられる感じで、全体像がぼやけてきている気がしますので、新型コロナに関する大きな動きを、月単位で纏めてみました。
I feel like I'm being overwhelmed by the daily news, and the whole picture is getting blurry. So, here is a monthly summary of the major developments related to the new Corona.
2019/12 中国武漢で原因不明の肺炎患者の発生
2019/12 Outbreak of pneumonia patients with unknown cause in Wuhan, China
2020/01
2020/01
2020/02 ダイヤモンド・プリンセス号事件、小中高休校要請
2020/02 Diamond Princess incident, request to close elementary, junior high and high schools
2020/03 WHOパンデミック宣言、マスク騒動
2020/03 WHO Pandemic Declaration, Mask Riots
2020/04 緊急事態宣言発令
2020/04 Emergency Declaration Order
2020/05 緊急事態宣言延長→解除
2020/05 Emergency declaration extended→released
2020/06 移動自粛要請解除、新規感染者100人越え(国内(×東京都))
2020/06 Request for voluntary restraint on movement lifted, over 100 newly infected (Japan (not only Tokyo))
2020/07 「Go Toトラベル」キャンペーン開始、新規感染者1000人越え(国内(×東京都))
2020/07 "Go To Travel" campaign started, more than 1,000 newly infected people (domestic (not only Tokyo))
2020/08
2020/08
2020/09
2020/09
2020/10 「Go Toトラベル」東京を追加
2020/10 "Go To Travel" Tokyo added.
2020/11 "Go To"札幌・大阪停止、東京都、飲食店時短要請再開
2020/11 "Go To" Sapporo and Osaka suspended; Tokyo Metropolitan Government resumes request for shorter hours at restaurants.
2020/12 医療体制が逼迫、ファイザーワクチン申請、変異株国内発見
2020/12 Healthcare system strained, Pfizer vaccine application filed, mutant strain found in Japan
2021/01 緊急事態宣言再発令、「Go Toトラベル」全面停止
2021/01 Recurrence of emergency declaration, complete suspension of "Go To Travel".
2021/02 緊急事態宣言延長、ワクチン接種開始
2021/02 Emergency declaration extended, vaccination started
2021/03 緊急事態宣言解除
2021/03 Emergency declaration lifted
-----
こうやって俯瞰してみると、2020年の1月と、8~9月に、大きな動きがなかったことが分かります。
Looking at it this way, we can see that there was no significant movement in January and August-September of 2020.
そして、1月の"油断"のツケを4~5月に、8~9月の"甘い見積り"のツケを11~12月に支払っていることが明白です。
And it is clear that the "carelessness" of January is being paid for in April and May, and the "loose estimates" of August and September are being paid for in November and December.
しかし、政府の対応は、システム屋の私から見れば、概ね妥当です。
However, the government's response is generally reasonable from my point of view as a system engineer.
スイッチのON/OFFを行いながら、系(システム)の全滅を防ぐのは、自宅のクーラー、産業用ロボット、交通管制システムに至るまで、制御システムの基本です。
Preventing the annihilation of a system while switching it on and off is the basis of control systems, from home air conditioners to industrial robots to traffic control systems.
そして、国家というのは国民というシステム要素からなる巨大システムです。
And a nation is a huge system made up of system elements called "citizens".
-----
2月17日から本日までのワクチン接種者(1回目)の最大は人数は、7万人/日です。
The maximum number of people vaccinated (1st dose) from Feb. 17 to today is 70,000/day.
これを、"3倍"程度まで増やせる(1日20万人)として、1億2600万人の一回目接種が完了するのに必要な日数は、630日、21ヶ月、1年9ヶ月必要です。
Assuming that this number can be increased to "triple" (200,000 people per day), the number of days required to complete the first round of vaccination for 126 million people would be 630 days, 21 months, or 1 year and 9 months.
ちなみに、政府は"6倍"と見積っているようです。『高齢者約3600万人の接種を、2カ月と3週間の完了』ということから、3600÷83日= = 43.3万人となるからです。
Incidentally, the government seems to be estimating a six-fold increase. This is because "the vaccination of 36 million elderly people will be completed in 2 months and 3 weeks", which means 3600/83 days = 433,000 people.
米国では200万人/日になっているようですので、もっとペースは上がるかもしれません。
In the U.S., it seems to be 2 million people/day, so the pace may be even higher.
----
年内の、国民の全員(希望者のみ)第1回のワクチン接種は可能かもしれませんが ――
It may be possible to vaccinate the entire population (only those who wish to be vaccinated) with the first vaccine before the end of the year, but--
オリンピックに間に合わないことだけは確実です。
The only thing we can be sure of is that we won't make it to the Tokyo Olympics.
-----
今回の緊急事態宣言の解除"OFF"のリバウンドが、いつ、どこに、やってくるのか。
When and where will the rebound from the "off" of the emergency declaration come?
こればかりは、誰にも分かりません。
No one can know this much.
https://www.meti.go.jp/meti_lib/report/H30FY/000677.pdf
マイクロトランジッド
Chariot (サンフランシスコ周辺など)
• フォードが買収した通勤者向けの乗合バスサービス
• 利用者数に基づく柔軟なルート設定に特徴
• 14人乗りのシャトルバスを利用し、1日当たり100を超える路線
でサービス提供
出所: Tech Crunch, Chariot
Via (ニューヨーク、ワシントン、シカゴ 等)
• 乗客と車両の座席とをリアルタイムに関連づけ、同一ルートで
移動できる乗客をグループ化して配車する乗合バスサービス
• 車両の最適なルートに合わせて、利用者の乗降車スポットを
自動的に指定する仕組み
• テキサス州アーリントン市と提携。市の補助で運賃3ドルで運行
コールバックを作ることは、そんなに難しくないんですよ。同じ言語でしたらね。
It's not that difficult to create a callback. As long as it's in the same language.
でもね、GOとC++の間で共通するトリガーイベントを作る方法が ―― 今日、一日、世界中を探し回ったんですけど ―― 見つけられないんですよ。
But you know, I can't find a way to make trigger events common between GO and C++ -- I've been looking all over the world today -- and I can't find it.
ならば、UDPとかTCPとかで待ち受けすれば良い、と。うん、まあ、それは分かるのですけどね。実際にライブラリも作っちゃったし。
So, why don't I just use UDP or TCP to listen in? Yeah, well, I understand that. I've actually made a library for it.
でもね、稼動オブジェクト1万個を同時に接続するUDPなんぞをやったら、一瞬でソケットリソースが使い尽されてしまうでしょう。実際、先月、これでプログラムを落したし。
But I know, if I do a UDP connection with 10,000 active objects at the same time, I'll run out of socket resources in an instant. In fact, I had a program go down last month because of this.
で、一番いいのが、GOのチャネルを使う方法なんですけど、これを、C++に連携させる方法が ―― ない。
So, the best way to do this is to use the GO channel, but there is no way to link this to C++.
GOのライブラリをリンクしたC++のライブラリをリンクした、GOプログラムを動かせればいいんだけど、昨日の試作では、ことごとく失敗した訳です。
It would be nice to be able to run a GO program with a C++ library linked to the GO library, but yesterday's prototype failed at every step.
もちろん、ポーリングすればいいだけのことですよ。サンプリング1秒でも、大した負荷にはならないでしょう。
Of course, I will use "polling" methods. One second of sampling won't be much of a load.
でも、それって『かっこ悪い』よね?
But that's not 'cool', is it?
プログラムのコールをどう実装しようが、私以外の人は知り得ないことですよ ―― でも、『この私』が納得していないんです。
No one but me can know how to implement the calls in the program -- but 'I' am not convinced.
ここ重要です。
This is important.
-----
という訳で、昨日は、朝から深夜に至るまで、この機能を実現する為に、頭を抱え続けて、そして失敗しました。
So yesterday, from morning till late at night, I kept trying to figure out how to make this work, and I failed.
今日は、仕上げなければならない論文ドラフトがあるので、この問題を考えることは一旦中止します。
I have a draft paper I need to finish today, so I will stop thinking about this issue for now.
悔しいので、メモだけ残しておいて、後日の復讐戦に備えます。
It's frustrating, so I'll just leave a note and prepare for the revenge battle later.
http://www.swig.org/Doc2.0/Go.html
https://github.com/HazeyamaLab/setup/issues/14