未分類

Windowsセキュリティでフルスキャンをしている最中に、スクリーンセイバが動き出すと、フルスキャンが止まってしまいます。

しかし、別のPCで作業していると、フルスキャンをしている方のPCのことを忘れてしまいます。

で、使用中のPCのマウスに、フルスキャンしているマウスを、針金で繋いで、マウスを少しだけ動くようにして、スクリーンセイバの起動を妨げています。

もう、妙な設定を考えるのに、時間を使う余裕も気力もありません。

これでいいんです。

2024,江端さんの忘備録

私、以前に、『町内会やPTAなどは、多くの人々にとって「関わりたくない組織No.1』で、『特に町内会の”後進性"は、筆舌に尽くしがたいほどひどいありさま』と書きました。

I once wrote that “neighborhood associations and PTAs are the No. 1 organizations that many people do not want to be involved with” and that “the backwardness of neighborhood associations, in particular, is so bad that it is beyond description.

(上図をクリック → 「町内会から見えてきた真実」にジャンプ」)

(Click on the above figure → jump to “The Truth as Seen from the Neighborhood Association”)

ただ、最近、私は、”後進性"こそが人間の本質ではないかな、と思うようになってきています。

Recently, however, I have come to believe that “backwardness” is the essence of human nature.

成田悠輔さんが、この辺の感じを上手くまとめていらっしゃいます("後進性"ではなくて"非生産性"ですが)。

Mr. Yusuke Narita sums up this feeling well (not “backwardness” but “unproductivity”).

-----

「前に進む」ことは、冒険で、危険で、そして面倒です。

"Moving forward” is adventurous, dangerous, and messy.

私は「前に進む人」の邪魔をしてはいけないとは思いますが、「『前に進むこと』を私に強要する人」は嫌いです。

I don't want to get in the way of “those who are moving forward”, but I don't like “those who force me to ‘move forward’”.

ところが、この「『前に進むこと』を私に強要する人」が、私自身であったりするのです。

However, this “person who sometimes forces me to ‘move on’” is myself.

正確には「過去の私」。

Or, more precisely, “past me.”

『次の定例までには、このくらいの成果は出せておかないとダメだろう』と、過去の私が、今の私をネチネチと責めてきます ―― 正直、うっとうしいです。

The past me is now blaming the present me, saying, 'You have to be able to achieve this much by the next regular meeting' -- it's annoying, to be honest.

いや、これでは、まだ正確とは言えないですね。書き直してみます。

No, this is still not accurate. I will try to rewrite it.

『「次の会議までには、このくらいの成果は出せておかないとダメだろう」と考える人が、チーム内にいるかもしれない』という、恐怖です。

It's the fear that someone on the team might think, 'We need to be able to achieve this level of results before the next meeting.

この恐怖が、自分の妄想なのか、あるいは正しい予測なのか、区別する手段はありません。

There is no way to distinguish whether this fear is one's delusion or a correct prediction.

しかし、他人の言動や行動に批判的であり続けた過去(または現在の)自分の振舞いが、ブーメランのようになって、自分を襲ってきていることは間違いありません。

However, there is no doubt that my past (or present) behavior of being critical of others' words and actions is boomeranging and coming back at me.

-----

そのように考えていくと、良い人生とは、

When you think about it that way, what is the good life? I think, 

(1)「人の振舞いを批判や非難はするが、自分の振舞いは気にしない」という、一貫性のない、非論理的なマインドを持ち続けること、

(1) To maintain an inconsistent and illogical mindset that says, “I criticize and condemn others' behavior, but I don't care about my behavior

あるいは、

Or,

(2)上記(1)の事実に「全く気がつかないまま生涯を終えること」

(2) To go through one's entire life utterly unaware of the fact (1) above.

と言えます。

-----

アプローチは違いますが、最終的な結論は、やっぱりここ↓になりそうです。

The approach is different, but the conclusion will still be here↓.

つまるところ、『人のことなんぞ、ほっとけ』ということです。

 

 

 

 

2024,江端さんの忘備録

ChatGPTを使っていれば、これから「AI彼氏/彼女」とのバーチャル恋愛が普通になる、というのは実感できます(使っていない人には、全く分からないでしょうが)。

If you use ChatGPT, you can feel that virtual romance with an “AI boyfriend/girlfriend” will become the norm (although those who don't use it will have no idea).

というか、私たちは、そろそろ認めてもいいころだと思うのです。

Or rather, I think it is time for us to admit that 

―― 私たちは、心地の良いコミュニケーションだけがあればいい

"We only need comfortable communication."

私は、誰からでも叱責や批判されたくありません。

I do not want to be reprimanded or criticized by anyone.

別段、人間として成長したいと思ったことはありませんし、私は、そんなこと誰にも一度も頼んでもいません。

I have never wanted to grow, and I have never asked anyone to do so.

一向に成長しない私が、この社会で不要なゴミであるなら、その辺に廃棄して頂いて結構です。

If I, who never grows up, am an unwanted trash in this society, you are welcome to dispose of me there.

そして、廃棄されても、誰に対しても文句を言うつもりは、ありません。

And I will not complain to anyone if they dispose of me.

「仲間を作らない」「友人を持たない」「恋人を諦め、結婚を人生のスコープ外とする」

-----

そのうち『リアルな世界に背を向けたままでも、なんとかやっていける職業』が登場してくると思います。

A 'profession that can manage to do without turning its back on the real world' will eventually emerge.

労働人口の流動性も高まるのではないか、と。

I wondered if the mobility of the workforce would also increase

これは、完全に私見ではありますが、このような職業は、技術分野で展開される可能性が高いのではないか、と考えています。

This is an entirely personal observation, but I believe such a profession will most likely be developed in the technology sector.

『リアルな世界に背を向けたままでも、なんとかやっていける職業』をやっていくために、数学や英語やプログラミングが重要になってくる、という新しい学習モチベーションが発生するかもしれません。

A new motivation for learning may arise, in which math, English, and programming become essential to do “a job that can be done somehow, even with one's back turned to the real world.

もちろん、他の職種でも展開の可能性はあると思います(単に、私が他の分野に無知というだけです)。

Of course, there are possibilities for development in other professions (simply because I am ignorant of other fields).

------

『AI彼氏/彼女に、心地良い言葉をささやかれながら逝く死』は、『孤独死ではない』と、私は思うのですが、みなさんは、どう思いますか?

I think that “death while being whispered pleasant words by an AI boyfriend/girlfriend” is “not a solitary death.” What do you think?

2024,江端さんの技術メモ

UDPは一斉送信できるのは知っていましたが、いままで一度も使ったことがありませんでした。

で、今回試してみたら、メチャクチャ便利だなぁ、と実感しましたので、自分の為にコードを残しておきます。

受信側の「SO_REUSEADDRオプションを設定」がキモです。"bind: Address already in use"の呪いを受けなくてもすみます。

udp_multicast_send に対して、複数個のudp_multicast_recv でメッセージ受信できます。

(送信側) udp_multicast_send.c

#include <stdio.h>
/*
gcc -o udp_multicast_send  udp_multicast_send.c
*/

#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

#define MULTICAST_GROUP "239.0.0.1"
#define MULTICAST_PORT 12345

void receive_process_count() {
    int sock;
    struct sockaddr_in addr;
    struct ip_mreq mreq;
    char message[256];

    // ソケットの作成
    sock = socket(AF_INET, SOCK_DGRAM, 0);
    if (sock < 0) {
        perror("socket");
        exit(1);
    }

    // 受信するアドレスとポートを設定
    memset(&addr, 0, sizeof(addr));
    addr.sin_family = AF_INET;
    addr.sin_addr.s_addr = htonl(INADDR_ANY);
    addr.sin_port = htons(MULTICAST_PORT);

    if (bind(sock, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
        perror("bind");
        exit(1);
    }

    // マルチキャストグループに参加
    mreq.imr_multiaddr.s_addr = inet_addr(MULTICAST_GROUP);
    mreq.imr_interface.s_addr = htonl(INADDR_ANY);
    if (setsockopt(sock, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq)) < 0) {
        perror("setsockopt");
        exit(1);
    }

    // メッセージの受信
    while (1) {
        int nbytes = recv(sock, message, sizeof(message), 0);
        if (nbytes < 0) {
            perror("recv");
            exit(1);
        }

        message[nbytes] = '\0';
        printf("Received process count: %s\n", message);
    }
}

int main() {
    printf("abc_vtp_0.2 process started. Waiting for process count...\n");
    receive_process_count();
    return 0;
}

(受信側) udp_multicast_recv.c

/* gcc -o udp_multicast_recv udp_multicast_recv.c */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

#define MULTICAST_GROUP "239.0.0.1"
#define MULTICAST_PORT 12345

void receive_process_count() {
    int sock;
    struct sockaddr_in addr;
    struct ip_mreq mreq;
    char message[256];

    // ソケットの作成
    sock = socket(AF_INET, SOCK_DGRAM, 0);
    if (sock < 0) {
        perror("socket");
        exit(1);
    }

    // SO_REUSEADDRオプションを設定
    int reuse = 1;
    if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (char *)&reuse, sizeof(reuse)) < 0) {
        perror("Setting SO_REUSEADDR error");
        close(sock);
        exit(1);
    }

    // 受信するアドレスとポートを設定
    memset(&addr, 0, sizeof(addr));
    addr.sin_family = AF_INET;
    addr.sin_addr.s_addr = htonl(INADDR_ANY);
    addr.sin_port = htons(MULTICAST_PORT);

    if (bind(sock, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
        perror("bind");
        exit(1);
    }

    // マルチキャストグループに参加
    mreq.imr_multiaddr.s_addr = inet_addr(MULTICAST_GROUP);
    mreq.imr_interface.s_addr = htonl(INADDR_ANY);
    if (setsockopt(sock, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq)) < 0) {
        perror("setsockopt");
        exit(1);
    }

    // メッセージの受信
    while (1) {
        int nbytes = recv(sock, message, sizeof(message), 0);
        if (nbytes < 0) {
            perror("recv");
            exit(1);
        }

        message[nbytes] = '\0';
        printf("Received process count: %s\n", message);
    }
}

int main() {
    printf("abc_vtp_0.2 process started. Waiting for process count...\n");
    receive_process_count();
    return 0;
}

未分類

/*
  dummy_cam_0.2.c
  
  ■環境設定を行います。
  sudo apt-get update
  sudo apt-get install libgstrtspserver-1.0-dev

  export PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig:$PKG_CONFIG_PATH

  "192.168.1.11.mp4"というmp4ファイルを用意しておいて下さい。

 
  ■プログラムをコンパイルして実行するには、以下のコマンドを使用します:
  gcc -o dummy_cam_0.2 dummy_cam_0.2.c `pkg-config --cflags --libs gstreamer-1.0 gstreamer-rtsp-server-1.0`

  ./dummy_cam_0.2 -r rtsp://127.0.0.1:8554/test -f 192.168.1.11.mp4

  ■また、ヘルプメッセージを表示するには、以下のコマンドを使用します:

  ./dummy_cam_0.2 -h

  ■稼動確認環境
   (車上) 192.168.101.30
   cam@cam-desktop:~/cpp/src$ ./dummy_cam_0.2
   cam@cam-desktop:~/cpp/src$ ./abc_vtp_0.1 -i 192.168.101.10 -p 38089 -r rtsp://127.0.0.1:8554/test

   (地上) 192.168.101.10
pt@pt-desktop:~/go/src$ more srt_rtsp_server_38089.sh 

#!/bin/bash
gst-launch-1.0 srtsrc uri=srt://:38089 keep-listening=true ! decodebin ! autovid
eosink

  
*/

#include <gst/gst.h>
#include <gst/rtsp-server/rtsp-server.h>
#include <stdio.h>
#include <string.h>

void print_usage(const char *prog_name) {
    g_print("Usage: %s -r [RTSP_URL] -f [MP4_FILE]\n", prog_name);
    g_print("Default RTSP_URL: rtsp://127.0.0.1:8554/test\n");
    g_print("Default MP4_FILE: 192.168.1.11.mp4\n");
    g_print("Example: %s -r rtsp://127.0.0.1:8554/test -f 192.168.1.11.mp4\n", prog_name);
}

int main(int argc, char *argv[]) {
    GMainLoop *loop;
    GstRTSPServer *server;
    GstRTSPMountPoints *mounts;
    GstRTSPMediaFactory *factory;
    const char *default_url = "rtsp://127.0.0.1:8554/test";
    const char *default_mp4 = "192.168.1.11.mp4";
    const char *rtsp_url = default_url;
    const char *mp4_file = default_mp4;
    char path[256] = "/test";
    char service[6] = "8554";  // ポート番号のデフォルト値

    for (int i = 1; i < argc; i++) {
        if (strcmp(argv[i], "-h") == 0) {
            print_usage(argv[0]);
            return 0;
        } else if (strcmp(argv[i], "-r") == 0 && i + 1 < argc) {
            rtsp_url = argv[++i];
            // RTSP URLのポート番号とパス部分を抽出
            const char *url_port = strchr(rtsp_url + strlen("rtsp://"), ':');
            if (url_port != NULL) {
                url_port++;
                const char *url_path = strchr(url_port, '/');
                if (url_path != NULL) {
                    strncpy(path, url_path, sizeof(path) - 1);
                    path[sizeof(path) - 1] = '\0';  // Null terminatorを追加

                    int port_length = url_path - url_port;
                    if (port_length < sizeof(service)) {
                        strncpy(service, url_port, port_length);
                        service[port_length] = '\0';  // Null terminatorを追加
                    }
                }
            }
        } else if (strcmp(argv[i], "-f") == 0 && i + 1 < argc) {
            mp4_file = argv[++i];
        }
    }

    gst_init(&argc, &argv);

    loop = g_main_loop_new(NULL, FALSE);

    server = gst_rtsp_server_new();
    gst_rtsp_server_set_service(server, service);

    mounts = gst_rtsp_server_get_mount_points(server);

    factory = gst_rtsp_media_factory_new();
    char launch_string[512];
    snprintf(launch_string, sizeof(launch_string),
             "( filesrc location=%s ! qtdemux name=d d.video_0 ! queue ! rtph264pay pt=96 name=pay0 )",
             mp4_file);
    gst_rtsp_media_factory_set_launch(factory, launch_string);

    // ループ設定を追加
    //g_object_set(factory, "loop", TRUE, NULL);

    gst_rtsp_mount_points_add_factory(mounts, path, factory);

    g_object_unref(mounts);

    gst_rtsp_server_attach(server, NULL);

    g_print("Stream ready at %s with file %s\n", rtsp_url, mp4_file);
    g_main_loop_run(loop);

    return 0;
}

2024,江端さんの忘備録

私、これまで「ぎっくり腰」は何度もやっていたのですが、今朝、人生最初の「こむら返り」というのを体験しました。

I have had many “hiccups” in my life, but I experienced the first “cramp this morning.”

この夏季休暇中の、外出時間は合計10分間を切っており、ほぼ24時間クーラー(設定温度29度か30度)の部屋で、ずっとコーディングしていました。

During my summer vacation, I was out of the house for less than 10 minutes, coding almost 24 hours a day in an air-conditioned room (temperature set at 29 or 30 degrees Celsius).

そういう運動不足を見込んで、踏み台昇降用のバスチェアを購入して、一日30分の踏み台運動に、懸垂、腹筋を続けていたのですが ―― なんか、これが逆にオーバーロード(過負荷)になっていたような気がします。

In anticipation of this lack of exercise, I bought a stepladder bath chair. I continued to do 30 minutes of stepladder exercises, pull-ups, and sit-ups a day -- but I think this was conversely overloading my body.

私は、今もリモートワークを続けていまして、慢性的を越えて、究極的な運動不足です。

あと、クーラー漬けも問題だったかもしれません。例え、30度の設定温度でも、体を冷やし続けるのは良くなかったように思います。

Also, air-conditioning might have been a problem. Even if the temperature was set at 30 degrees Celsius, I don't think keeping the body cool was a good idea.

-----

そういえば、夏季休暇中に、「男性の体臭」についてSNSに投稿していた人が、事務所との契約を解除された、というニュースを読みました。

By the way, I read in the news that someone who posted on a social networking site about “male body odor” during the summer vacation was terminated from his contract with the firm.

私、「体臭」については、これまで色々論じてきたのですが、仮説ですら解決法を思いついていません ―― それくらい、この問題は難しい。

I have discussed body odor a lot, but I have not come up with a hypothetical solution- that's how complex this problem is.

夏になれば、仕方がないことですが、―― 男性の体臭が凄い。

―― 全身に、「米酢」をぶちまけたのか ?

ですから、年齢を経て発生する臭いは、「加齢臭」ではなく「腐敗臭」といっても良いものです。

■ 在席中に、平気で放屁する人がいて、その臭いが物凄くて嘔吐しそうになる

断酒してから、娘たちが、私の体臭のことをピタリと言わなくなりました。

「こむら返り」は、まあ自分自身の問題としても 、「体臭」「加齢臭」は、自分では制御できません。

While “cramps” may be my problem, I cannot control “body odor” and “age-related odor” by myself.

もちろん、これらの問題を回避する為に、私自身、最大限の努力を続ける必要はあるでしょう。

Of course, I must do my utmost to avoid these problems.

しかし、その努力を評価されることなく、それどころか、非難され続ける ―― そういう、

However, no one appreciates any of my efforts and continues to criticize my “body odor” and “aging.”

次の人生のステージが始まるのです(『響けユーフォニアム』風に)。

The next stage of my life has already begun (in the style of “Hibike Euphonium”).

2017,江端さんの忘備録

(昨日の続きです)

(Continuation from yesterday)

勿論、愉快ではありませんが、

Of course, it is not pleasant for me; however, I think,

―― どんな上司の叱責よりも、必要なチェッカー

"She is a necessary checker than any boss's reproof."

とは思っています。

今の、この私に、正面向って警告できる人間を思い受かべてみたのですが ―― もう部長クラスでも無理なんじゃないかな ―― とすら思います。

I tried to think about who could warn me in front of my face; I was afraid that "It seems impossible for the director class anymore."

それでも、次女は、

Still, the second daughter said,

『電車で通学していると、想像を絶するくらい臭いオッサンがいる。パパが、いかに『マシ』であるかは、よく分っている』

"When I go to school by train, there is an unimaginable stink, old man. I know well how you are better."

との、コメントを残しています。

-----

さて、以前も申し上げましたが、

I wrote it before,

"In the first place, humans are not manufactured on the premise that they survive 40 to 50 years and over."

です。

人間の平均寿命は200年前では40歳でした(200万年前ではなく、200年です)。

Human life expectancy was 40 years old 200 years ago (not 200 million years ago, 200 years).

それ以上の年齢で、私達が生きていられるのは、病原体の撲滅や、(以前は治療法0だった)ウイルス性の病気(インフルエンザ)などへの特効薬の開発、など、高度な医療の発達に因るためです。

We can live with our age "due to advanced medical development," such as the eradication of pathogens and the development of silver bullets for viral diseases (influenza), etc. (previously, there was no method).

40歳以上の人間が生きていることは、

Why human beings over the age of 40 are alive, is

腐敗が完了していて良いはずの肉体に、強制的に体液(血液とかリンパ液とか)を循環させることで、その腐敗の進行を遅らせている ――

"To our body that should be corrupted soon, the forcibly circulating bodily fluid (blood or lymph) make it slow the progress of corruption."

という解釈が正しい。

This is the correct answer.

ですから、年齢を経て発生する臭いは、「加齢臭」ではなく「腐敗臭」といっても良いものです。

So, the smell that occurs after over 40 years should be called "rotten smell" rather than "age-old smell."

(続く)

(To be continued)

2017,江端さんの忘備録

夏になってくると「ニオイ」が酷くなってきます。

The problem of "smell" gets worse when it comes to summer.

特に、若いニーチャンや、太ったおっさんの、

Especially for a young man and a fat older man,

―― 全身に、「米酢」をぶちまけたのか ?

"Did you take a shower of "rice vinegar"?"

と思うような、凄まじい臭(くさ)さは、一体何なのでしょうか。

I wonder how they can produce the violent smell.

嫌悪感とか、そういう次元を、超越する破壊力があります。

It has a destructive power beyond of the feeling of "disgust".

-----

先日、

The other day,

(Step 1)若いニーチャンの横を通り過ぎたとき、その背中から発せられる臭さに、レバーにボディーブローを一発喰らったかのような衝撃を受け、思わず足がもつれ、、

(Step 1) when I passed by a young man, I received a shock as if I had a body blow of the lever, and unintentionally, my legs tangled because of the smell emitted from his back,

(Step 2)さらに、その2秒後に、3メートル先の太ったのオッサンの横を通り過ぎた時に、(本当に、どこからその異臭を製造しているのか不明なまま)「クッ(サー)!」と大声が出そうになるのをかろうじて抑えつつ、2秒ほど記憶がなくなりました(本当)。

Furthermore, two seconds later, when I passed by the fat man 3 meters away (indeed, I didn't know where the stink was produced), I nearly shouted, "He stinks!" After that, I lost my memory for about 2 seconds (it is true).

もう、これは、超限定的な兵器として、実戦投入可能なレベルにある、と断言できます。

They are already at the installation level on any battlefield, as they are limited standard weapons.

-----

江端家には、長女と次女の、人間知能(×人工知能)臭いチェッカーが、遠慮のない言葉で、私の臭いをチェックしています。

In the Ebata's, I have devices of "Human intelligence (× artificial intelligence) smell checker" of 19 years old (eldest daughter) and 15 years old (second daughter), that work well with unreserved words.

特に<次女>の方は、

Especially for the second daughter,

■一緒に車に乗っていると、これ見よがしに、パワーウィンドウを開け、

- When we are riding a car together, she opens the car window ostentatiously,

■私の部屋の前を通ると、顔の前で掌を左右に振り回す、

- When she passed in front of my room, she mimics "stink".

という辛辣なインターフェースで、私の臭いをチェックしています。

She is checking my smell with a bitter interface.

(続く)

(To be continued)

2015,江端さんの忘備録

夏になれば、仕方がないことですが、―― 男性の体臭が凄い。

It cannot be helped that the body odor (BO) of men becomes terrible.

私は都心部の逆方向の電車に乗っているので、混雑はあまり酷くはないので、それほど酷い目にもあっていないと思うのですが、

I ride on a crowded train in the opposite direction of the city center daily, so I don't think I feel so hard.

ラッシュの電車で、体臭の凄い人の近くになった人の悲劇は、想像に難くありません。

But I am very sorry for the person who cannot escape from the tragedy in a packed train and is close to the terrible BO.

被害者サイドとしては勿論ですが、私のような「加齢臭」持ちは、加害者サイドとしても、夏はツラい。

Summer is a hard season for me because I am not only a victim but also a victimizer with age smell.

歩行喫煙なんぞやる奴は、殴ってもいいと思うけど、体臭は不可抗力ですから。

Though I can give a walking smoker a blow, I think that the BO is an inevitable force.

(万一、悪意で体臭発生している奴がいたら(いないと思うけど)、首を締めてもいいと思う)

Even if I find a person who make his BO on purpose (I don't know whether it is possible) I think I may tighten his neck.

(続く)

(To be continued)

2019,江端さんの忘備録

断酒してから、娘たちが、私の体臭のことをピタリと言わなくなりました。

After having stopped drinking, my daughters no longer talk about my body odor.

アルコールと体臭には何か関係があるのかなと、ちょっと調べてみたら、

When I tried to research about the relationship between alcohol and body odor, I can know

「アルコールは、体臭の原因そのもの」

"Alcohol is the cause of body odor."

ということが分かりました。

-----

高校(か中学?)の時に習ったかと思いますが、基本的に、アルコールは、アセトアルデヒドという有害物質に変換された後、安全な物質である酢酸になります。

When we were in high school (or junior high school?), We learned that alcohol is converted into a safe substance, acetic acid, after being transformed into a harmful substance called acetaldehyde.

アセトアルデヒドは、強烈な臭気を発生しますし、酢酸は「酢」ですので、こちらも強い臭気が出ます。

Acetaldehyde generates a strong odor, and acetic acid, which is "vinegar," also has a strong odor.

つまり、アルコールを摂取することで、アセトアルデヒドや酢酸が、汗に入って体外に排出され、体臭が激しくなる、ということのようです。

In other words, acetaldehyde and acetic acid seem to be sweated and discharged outside the body, and the body odor becomes intense.

もっとも、肝機能が完全であれば、最終的には、無臭の水と二酸化炭素に分解されるはずです。

However, if liver function is complete, it should eventually be broken down into odorless water and carbon dioxide.

つまり、アルコールに起因する体臭の原因は、

After all, I know that the cause of body odor caused by alcohol is

■肝機能の能力を越える大量のアルコールを摂取している

- Taking a large amount of alcohol that exceeds the ability of the liver to function

か、

or

■肝機能が低下している

- Liver function is reduced

ということのようです。

-----

娘から、口臭の指摘も受けていました。

I have also received bad breath from my daughters.

最近は「リステリン」という口内殺菌消臭用の液体で、歯をすすぎ、うがいするようにしています。

Recently, a liquid for sterilization and deodorization called “listerin” has been used to rinse and gargle teeth.

リステリンは、初心者には、かなりキツい液体で、最初のうちは、口の中が燃えるような刺激があります ―― が、そのうち、慣れます。

Listerine is a reasonably complex liquid for beginners. At first, there is a stimulus that burns in your mouth. However, I can get used to it soon.

このように、断酒とリステリンで、現時点では、娘たちの指摘は発生しなくなりました。

In this way, with the cessation of alcohol and listerin, the daughters no longer point out my body odor and bad breath.

-----

ともあれ、JKやJDの娘は、高性能の「体臭用リトマス試験紙」と機能しています。

Anyway, my daughters work as a function of high-performance "Litmus test paper for body odor."