2023,江端さんの技術メモ

「Mobile Agent」と「Mobility Agent」は異なる概念を指しますが、どちらも「正しい」といえます。これらは用途や文脈に応じて使われます。

  1. Mobile Agent:
    • 一般的に、ネットワーク上で自律的に移動し、タスクを実行するソフトウェアのことを指します。
    • この用語は、特に分散コンピューティングや情報処理の分野で使用されます。
  2. Mobility Agent:
    • この用語は、モビリティや交通の文脈で使用されることが多く、移動や交通に関するシステムやサービスを指す場合があります。
    • 例えば、交通管理システムやスマートシティのプロジェクトにおける移動の管理や分析を行うエージェントを指すことがあります。

どちらの用語も、その分野や文脈に応じて適切に使用されます。


なるほど

『つまりMobile Agent:は、コンピュータで使われるソフトウェアであって、マルチエージェントシミュレーションのエージェントのことではない。マルチエージェントシミュレーション上で、移動するエージェントのことをMobility Agent:という』

と解釈した(江端)。

Mobile Agent:の例としては、ネットワーク管理エージェントデータマイニングエージェント、Eコマース取引エージェント、負荷分散エージェントのようなもので、マルチエージェントシミュレーション上で移動させるエージェントとは全く違う概念

以上

2023,江端さんの忘備録

現在、抑うつ症状が徐々に改善しているように思いますが、素人判断が一番怖いといいますので、今も、油断なく自分を見張っています。

Currently, my depressive symptoms seem to be slowly improving, but they say that amateur judgment is the scariest thing of all. I am still closely watching myself to be on my guard.

抑うつ症状の時に、物凄く怖いものが、2つあります。

Two things scare the heck out of me when I am depressed.

―― メールとチャット

"Email and Chat"

もう、これは、人生の『2大刃物』と言っても過言ではないくらいに、怖い。

I'm already scared to death. These are the 'two major knives' of life.

どれくらい怖いかというと、『現実の刃物で刺された方がマシ』と思うくらい。

How scary is scary enough to make me think, 'I'd instead be stabbed with a real knife.

なぜなら『刺さたら、入院して逃げれる』と本気で思うようになります。

Because they will think, 'If I get stabbed, I can escape by being hospitalized.

これは、リモートワークの話ですが、もし、出社しなけれならないなら、『死刑台の階段を登るくらい怖い』に変換できると思います。

This is about remote work, but if I have to come to work, I think it can become 'as scary as climbing the stairs on the death row.'

(ちなみに、日本の刑場では、階段はないようです)

(Incidentally, there seem to be no stairs in Japanese prisons.)

-----

「抑うつで、仕事が思うように進まない」 →

'I'm depressed and not getting as much done at work as I would like.'

「当然に、進捗の問い合わせがくる」 →

'Naturally, they will inquire about our progress.'

「進捗遅れを報告しなければならいが、ロジカルに理由を説明できない」 →

I have to report a delay in my progress, but I can't logically explain why."

「死にたくなるくらい怖い」

I'm scared to death."

というフローです。

This is the above flow.

-----

とは言え、今や、メールとチャットを抜きで、仕事が成り立たないのも事実です。

Nevertheless, it is also true that work nowadays is impossible without email and chat.

ですので、メールとチャットでいろいろ伺う場合には、できれば、叱責とかなしに、短文のメッセージで、機械的のように尋ねてくれると嬉しいです。

So when you ask me things by email and chat, I would appreciate it if you could ask me mechanically, without reprimanding me or anything, in a short message if possible.

いや、そうでもないかな。

No, not really.

そのような無機質なメールやチャットは、逆に『責められているような気持ち』になって、それはそれで「痛い("苦痛"の方です)」のも事実です。

It is also true that such inorganic emails and chats, on the contrary, make me feel as if I am blamed, which is "painful" ("agony") in its way.

うーん、一体、どうすればいいでしょうか。

Hmmm, what on earth should I do?

本当に分かりません。

I don't know.

-----

自分が抑うつ症状になって、初めてこんなことが分かり始めている ―― というあたりに、私の人生の底の浅さが露呈しています。

I am only beginning to understand these things when I have depressive symptoms myself -- this means my life's depths are exposed.

『抑うつは、運動や、食事改善や、レジャーや、サウナで、改善する』と、本気で思っていて、それを公言していた過去の私を ――

I used to think and profess to believe that depression could be improved by exercise, a better diet, leisure activities, and saunas.

タイムマシンに乗って、半殺しにしてやりたいくらいです。

I want to get in a time machine and kill my past self, half to death.

自分の刃が、自分に突き刺さってきますよ。

 

2023,江端さんの忘備録

今、英語の論文の執筆をやっています。

I am currently working on a paper in English.

翻訳エンジンも併用しているのですが、なんかしっくりきません。

I also use a translation engine, but it is off-putting.

「私の使う言葉(英語)じゃない」感が強くて、ストレスが溜っています。

I have a strong sense of "this is not the expression ( of English) I use," and it's causing me a lot of stress.

文章の構成も、なんか「この単語の順番ではない」という感じです。

The sentence structure is also "not in this word order."

簡単に言えば、翻訳エンジンの英語から、私の言いたいことが浮び上がってこない、という感じです。

It is as if what I want to say does not emerge from the translation engine's English.

翻訳エンジンが、妙なレトリックを使っているような気がします。

I think the translation engine is using some strange rhetoric.

倒置だの強調構文など使われたら、私が読めません。

I can't read if it uses inverted or emphatic constructions.

―― 私が読めない英文を、量産してどうする ?

"What should I do by mass-producing English sentences I can't read?"

って感じです。

I thought like that.

だって、私の書いた英文を、世界で一番読み直すのは、この私ですよ。

Because I am the one who has to read the English sentences again and again in the world.

下手すると、私とレビューア以外、誰も読まないかもしれません ―― というか、多分、そうだ。

If it's terrible, no one but me and the reviewer may read it. It does.

その私が、後になって『こいつ、何書いているんだ?』と、頭を抱えて、地獄を見るのはゴメンです。

I don't want to be the one who later goes, 'What the hell is this guy writing?' And I don't want to go through hell with my head in my hands.

-----

ここ2~3年くらいは、私の英語のスタイルのままで、提出しています。

I have been submitting in English for the past couple of years.

レトリックはなく、恐らく、中学生のキーセンテンス+αレベルくらいの英語だと思います。

There is no rhetoric, and the English are probably about the key sentences + α of a junior high school student.

ですが、不思議なことに、この英語が「通る」のですよ。

But strangely enough, this English has "passed".

脚色一切なく、ごまかしの余地がなく、忖度のない無骨で直接的な表現がウケているのではないか、と思うんです。

The reviewers like the direct expression without any adaptation, room for deception, and discovery.

まあ、単に、運がいいか、誰も私の論文なんぞに興味がないだけかもしれませんが。

I am lucky, or they are not interested in my content.

『見苦しい英語であろうが、そんなこと構っていられるか』と振り切れるくらい、正直、今の私は追い込まれているのです。

 

2023,江端さんの技術メモ

Webサーバに繋っているブラウザが、全部いなくなったことを確認する為に、ブラウザのJavaScriptからハートビートを飛ばして、ハートビートがこなくなったことを確認する簡易プログラムを作成しました。

■ブラウザの生存監視サーバ

$ pip install Flask

をしてから、以下のプログラムをhearbeat.pyという名前でサーバを立ち上げるフォルダ(例 c:\users\ebata)に放り込んでおく。

from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/heartbeat', methods=['POST'])
def receive_heartbeat():
    data = request.get_json()
    print(f"Received heartbeat: {data}")
    return jsonify({"status": "OK"})

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=3000)

■index.htmlの内容
これも、サーバを立ち上げるフォルダ(例 c:\users\ebata)に放り込んでおく。

<!DOCTYPE html>
<html>
<head>
    <title>Heartbeat Example</title>
</head>
<body>
    <h1>Heartbeat Sender</h1>
    <script>
        function sendHeartbeat() {
            fetch('http://localhost:3000/heartbeat', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json'
                },
                body: JSON.stringify({ timestamp: new Date() })
            })
            .then(response => response.json())
            .then(data => console.log('Heartbeat sent:', data))
            .catch(error => console.error('Error sending heartbeat:', error));
        }

        // 10秒ごとにハートビートを送信
        setInterval(sendHeartbeat, 10000);
    </script>
</body>
</html>

■起動方法
(Step 1)サーバを立ち上げるフォルダ(例 c:\users\ebata)で、

C:\Users\ebata>python heartbeat.py

で、「ブラウザの生存監視するサーバ」を起動
(Step 2)次に、以下のコマンドで、1行Webサーバを起動

C:\Users\ebata>python -m http.server 8000

(Step 3) ブラウザに、

http://localhost:8000/

を投入。複数のブラウザを立ち上げて、ブラウザの生存監視サーバから、

の表示が出てくれば成功 → ウソです。
ブラウザを全部落せば、動かなくなるはずです。→ これは本当ですが、def receive_heartbeat()の処理は全くされていません


Choromeの開発者の表示は、こんなのが出ていました。

Access to fetch at 'http://localhost:3000/heartbeat' from origin 'http://localhost:8000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled. (index):19 Error sending heartbeat: TypeError: Failed to fetch at sendHeartbeat ((index):10:13)

で、
このエラーメッセージは、CORS(Cross-Origin Resource Sharing)ポリシーに違反していることを示していて、これは、異なるオリジン(localhost:8000とlocalhost:3000)間でのリクエストがブラウザによってブロックされていることを意味します。

この問題を解決するために、FlaskアプリケーションでCORSポリシーを設定する必要があり、Flask-CORSという拡張機能を使用してこれを行うことができます。

pip install flask-cors

で、

from flask import Flask, request, jsonify
from flask_cors import CORS

app = Flask(__name__)
CORS(app) # すべてのリクエストに対してCORSを有効にする

を処理すれば、receive_heartbeat():が実施されます。

で、修正後のコードは以下の通りです。

from flask import Flask, request, jsonify
from flask_cors import CORS

app = Flask(__name__)
CORS(app)  # すべてのリクエストに対してCORSを有効にする

@app.route('/heartbeat', methods=['POST'])
def receive_heartbeat():
    data = request.get_json()
    print(f"Received heartbeat: {data}")
    return jsonify({"status": "OK"})

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=3000)

出力結果

ちょっとまだ疑問はあるけど、とりあえず、メソッドの中には入ったようです。

 

 

2023,江端さんの忘備録

■「できそうなこと」を、「できそう」とは言わない。

Even if it is "doable," you must not say "doable.

■「できたこと」も、「できた」と言わない。

Even if it is "done," you must not say "done."

■「手伝えそうなこと」も、自分からは申し出ない(頼まれれば応じても良い)。

Even if there is "something you can help someone with," do not offer to do it yourself (but you may do so if asked).

これらは、長い人生を生きていくことで、結構大切なことです。

These are pretty important things to live a long life.

これらの対応を見誤ると ―― 特に、予想通りに進まなくなった時に ―― 過大な業務に押し潰されて「抑うつ」になります。

If these responses are misplaced -- especially when things don't go as expected -- the overload of work can crush you and cause "depression.

-----

ところが、このような消極的な対応を続けていると、仕事が無くなり、干される恐れがあります。

However, if you continue to respond in this passive manner, you may lose your job and be hung out to dry.

『約束を踏み倒しても、平気でいられるマインド』を持っている人は、「抑うつ」にはならない代わりに、「信用」を失います。

Those who have a 'mindset of being okay with breaking their commitments' will not become 'depressed' but will instead lose their 'credibility.'

-----

適正な難しさと、適正な量の仕事が、適正なタイミングでやってくることが望ましいのです。

It is desirable that the right amount of work, with the right difficulty, come at the right time.

私が知っている限り、そんな感じでやってきた仕事は、一つもありません。

As far as I know, no job has been done like that.

なぜなら、他人は、あなたの仕事の状態を知り得る手段がないからです。

This is because others have no way of knowing the status of your work.

----

あ、そうでもないな。

Oh, not really.

一つだけあった。

There was one thing.

あなたの『入院』、『長期療養』、または、あなたの『自死』を知った時に、はじめて、他人は、あなたが『本当は大変だったんだなぁ』ということを、知ることになります。

Only when they learn of your hospitalization, long-term treatment, or suicide will they know that you have already been destroyed.

―― 過去形で。

-- in the past tense.

「ブラック企業」は、誰かが自死を選ぶまで、見つけられない

 

2023,江端さんの忘備録

元首相が暗殺されることで、何十年も動いてこなかった悪質なカルト教団に、ようやく解散命令の請求が行われるに至りました。

The assassination of a former prime minister finally led to a request for a dissolution order for a vicious cult that had not moved for decades.

ハマスのイスラエルへの攻撃をきっかけとして、死体が量産される日々が毎日放映され、多くの特集番組によって、この問題を知り、理解する人が増えています(そうでもないかな?)。

The mass production of dead bodies in the wake of Hamas attacks on Israel is televised daily, and many feature programs have helped more and more people learn about and understand this issue (or not?). The number of people aware of and understand this issue is increasing.

私は今、物凄い無力感に浸っています。

I am now immersed in a tremendous sense of helplessness.

―― 暴力は十分に有効じゃんか?

"Violence is effective enough, isn't it?"

少なくとも、旧統一協会と政治家の癒着を断ち切り(まだ分かりませんが)、あのカルト教団を「宗教団体と名乗る資質がない」と認定することが、果たして『平和的な手段』で可能だっただろうか ―― と。

At the very least, was it possible by 'peaceful means' to break the cozy relationship between the former Unification Association and politicians (I still don't know) and to certify that cult as "not having the qualifications to call itself a religious organization" -- I wonder.

無理だったと思う。少なくとも、私には代替案が思い付かない。

I don't think it was possible. At least, I can't think of an alternative.

『暴力はいけません』は、ともかく、『暴力では何も解決できません』は、今、私の中で死にかけています。

'Don't be violent' notwithstanding, 'Violence can't solve anything' is dying in my mind right now.

-----

ChatGPTに、この問題について聞いてみました。

I asked ChatGPT about this issue.

うん、この回答だけも、有料版に入った価値はあったなぁ、と思います。

Yes, I think this answer alone was worth the price of joining the paid version.

『結論』だけコピペしますね。

I'll copy and paste the 'conclusion.

=====

■『暴力では何も解決できません』という言葉は、非暴力の価値を推奨し、暴力がもたらす長期的な否定的な影響を強調するための一般的な原則です。

- The phrase ' Violence solves nothing' is a general principle used to encourage the value of nonviolence and to emphasize the long-term adverse effects of Violence.

■しかし、実際の状況は複雑であり、暴力が一部の問題に対して短期的な「解決」をもたらすこともあります。

- However, the situation is complex, and Violence can provide short-term "solutions" to some problems.

■重要なのは、暴力の使用が持つ倫理的、社会的、心理的な影響を深く理解し、より平和的で建設的な解決策を探求することです。

- The key is a deep understanding of violence's ethical, social, and psychological consequences and the search for more peaceful and constructive solutions.

=====

まあ、ChatGPTは、玉虫色的、かつ優等生的回答をするように作られていますので、これは、これで良いのですが。

Well, ChatGPT is designed to give iridescent and honorable answers.

それでも、『暴力には、解決手段としての効果もある』、と正直に言っている部分は好感が持てます。

Still, I like the part where he is honest enough to say, 'Violence can also be effective as a means of resolution,

-----

若い頃に、

When I was young, I seemed to read a book, including the lines of,

「エルサレムに原発作って、意図的に事故を発生させて("ダーティボム"だったかな?)、壊滅的な放射能汚染地帯にして、1000年単位で人が入り込めない、本当の『聖地』にしてしまおう」

"Let's build a nuclear power plant in Jerusalem, intentionally cause an accident (a "dirty bomb"?), and turn it into a catastrophically radioactive zone, a real "holy land" that people won't be able to enter for a thousand years or so.

てな話を聞いたことがあるような気がします。

私は、パレスチナ問題を最終解決する方法として、これ以外の代替案を思いつくことはできません。

I can think of no other alternative as a way to finally solve the Palestinian problem.

ただ、この『暴力』を行使すれば、通常兵器(×核兵器)だけで、人類滅亡レベルに至る戦争になることは、私でも分かります。

However, even I can see that if this 'violence' is exercised, it will lead to a war that will lead to the level of human extinction, using only conventional weapons (x nuclear weapons).

後輩が言うには、それは「飯」と「お祈り」だそうです(「言葉」は当然)。

2023,江端さんの忘備録

今日もNHKのニュースを見ながら、亡き父との会話を思い出しています。

Today, as I watch the NHK news, I am reminded of a conversation with my late father.

===== ここから =====

===== from here =====

『智一。そうではない』

"Tomoichi. You're mistaken."

私は、少し驚いて父の横顔を見ました。

I looked at my father's profile, a little surprised.

『航空機が民間機である以上、如何なる理由があっても、民間機を撃墜するということは許されない』

"As long as the aircraft is a civilian aircraft, shooting down a civilian aircraft for any reason is unacceptable."

私は意外な感じを受けながらも、父に反論しました。

I countered my father with a feeling of surprise.

『もし、韓国機がソビエトの領空をスパイ目的で侵犯しており、国益を脅かすことが明らかであったとしても?』

"Even if it was clear that Korean planes were violating Soviet airspace for espionage purposes and threatening their national interests?"

父は、息子にキッパリと言いました。

The father told his son crisply.

『仮に、その航空機の機長を含め、また仮に乗客のほとんどがスパイであって、悪意の目的をもって、領空侵犯をしたとしてもだ。

"Even if the aircraft's captain and most passengers on board were spies, and even if they violated the airspace maliciously."

そこにたった一人の無関係の乗客が乗っているのであれば、どのような者であれ、その命を奪う行為を正当化することはできない』

If there is only one innocent passenger on board, no one can justify the act of taking that life, no matter who it is."

唖然としている息子に、父は静かに続けました。

To the stunned son, the father continued quietly.

『それが「人間」と言うもの、「命」と言うものではないか?』

Isn't that what we call 'human' and 'life'?"

===== ここまで =====

===== To here =====

父の言葉は、次の台詞に変換できます。

The father's words can be translated into the following lines

『仮に、その病院の地下に、ハマスの拠点があり、また仮に病院関係者がハマスの支援者であって、悪意の目的をもって、病院に立て籠っていたとしても、

Even if there is a Hamas stronghold in the basement of the hospital, and even if the hospital personnel are Hamas supporters and are holed up in the hospital with malicious intent,

そこにたった一人の無関係の病人、子ども、幼児がいるのであれば、どのような者であれ、その命を奪う行為を正当化することはできない』

If there is just one unrelated sick person, child, or infant out there, no one can justify the act of taking that life, no matter who it is."

-----

"正義"がどちらの側にあるかは、どーでもいい。興味もない。

I don't care which side "justice" is on. I am not interested.

ただ、私は、『父の言っていることが正しい』と思う。

I think, 'My father is right.

江端さんのひとりごと 「尊敬され得る人々」

2023,江端さんの忘備録

こちらは、我が家で2013年(10年前)に購入した、HDDレコーダです。

I purchased This HDD recorder in 2013 (10 years ago) at our home.

一昨日から、30秒毎に2秒くらい停止(黒い画面)になるという不思議な現象を繰り返しております。

Since the day before yesterday, I have been experiencing a strange phenomenon where it stops (black screen) for about 2 seconds every 30 seconds.

これが、録画画面だけでなく、チューナモードでも発生するので、『HDDエラーではない』と判断しました。

Since this occurs in the recording screen and tuner mode, I decided it is not an HDD error.

HDMIケーブル、電源、NTSC全てチェックしましたが、問題はなく、さらに、その隣りに設営したNASも停止させてみたのですが、症状が改善しません。

I have checked all HDMI cables, power supply, NTSC, everything is fine; and I even tried shutting down the NAS set up next to it, but the symptoms are not improving.

『さすがに寿命かな』と思いました。

I thought, 'This is indeed a lifetime.

しかし、残念です。

However, it is a pity.

なぜなら、すでにこの製品、製造中止となっており、リモコンも手に入らないので、新品の代替リモコンをすでに購入すみだったからです。

This is because I had already purchased a new replacement remote control, as this product was discontinued and no remote control was available.

-----

『30秒毎に2秒くらい停止(黒い画面)になる』

'Every 30 seconds or so, it stops (black screen) for about 2 seconds.'

という障害は、なかなかに微妙でして、

The failure to do so is quite subtle,

―― 不快だけど、番組の内容が分からなくなるほどではない

"Offensive, but not so offensive that I lose track of the program."

というギリギリのラインなのです。

This is the very edge of the phase.

実際に、そのモードでNHKの大河ドラマを見てしまったくらいです。

I even watched an NHK historical drama in that mode.

ハマスとイスラエルの特番は、私の知識で補完できましたし。

And I was able to supplement my knowledge of Hamas and Israel with special programs.

-----

まあ、それでも、これはダメだと思いましたので、代替品を探しはじめたのですが、市場にHDDレコーダの製品がほとんど出まわっていません。

Well, I still thought this was a bad idea, so I started looking for a replacement, but very few HDD recorder products are on the market.

加えて値段も高い。

In addition, the price is high.

正直、これには困りました。

I was troubled by this.

江端家は、外付けHDDに2チューナ分、HDDレコーダに2チューナ分を割り当てていて、前者が主に嫁さんが、後者は私が利用しています。

The Ebata family allocates two tuners to an external HDD and two to an HDD recorder, with the former used primarily by the wife and me.

録画されている番組も、完全に棲み分けされています。

The recorded programs are also completely segregated.

『ドラマ、バラエティ、歌番組』 v.s. 『イスラム、テロ、ナチス、歴史、科学」です。

'Drama, Variety, Song Shows' v.s. 'Islam, Terrorism, Nazis, History, Science'.

『これは値段の問題ではないな』と考えて、新規機種の購入の検討を開始していました。

'This is not a problem of price,' I considered purchasing a new model.

-----

ところが、今日、試しに稼動させてみたら、この障害が完全に直っていました。

However, this failure was entirely fixed when I tried running the system today.

二日間の私とのバトルを忘れたかのような、復活です。

It is a resurgence as if it has forgotten the two-day battle with me.

まあ、私も機械との格闘の日々は長いので、よく知っているのですが、機械というのは、気紛れに「自己治癒」することがあります。

I have been struggling with machines for a long time, so I know them well, but machines can "self-heal" in a whimsical way.

しかし、大抵の場合、これは、錯覚です。

Most of the time, however, this is an illusion.

近い未来に完全に沈黙すると思いますが、まあ、それまでは働いてもらうつもりです。

I think they will be utterly silent shortly, but I will let it work until then.

で、あわてて、ラズパイで、学習リモコンを作ることにしました。

2023,江端さんの技術メモ

SELECT * FROM records WHERE start_at = '2023-03-20 05:03:00'; を"2023-03-20"が含まれているものだけを条件にするには、どのようなSQL文になりますか

SELECT * FROM records WHERE start_at::date = '2023-03-20';

プログラムはこちら

// f:\しゅらばしゅう\有吉先生データ\Moove\2023-07/test5.go

package main

import (
    "database/sql"
    "fmt"
    "log"

	_ "github.com/lib/pq"
)

type Location struct {
	Lat float64 `json:"lat"`
	Lng float64 `json:"lng"`
}

type Record struct {
	ID         int        `json:"id"`
	UserID     int        `json:"user_id"`
	Distance   float64    `json:"distance"`
	Place      []Location `json:"place"`
	Speed      []float64  `json:"speed"`
	Prediction int        `json:"prediction_type"`
	StartAt    string     `json:"start_at"`
	EndAt      string     `json:"end_at"`
}

func main() {
	// PostgreSQL データベースへの接続情報
	const (
		host     = "192.168.0.23"
		port     = 15432
		user     = "postgres"
		password = "password"
		dbname   = "moove"
	)

	// PostgreSQL データベースへの接続
	dbinfo := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=disable", host, port, user, password, dbname)
	db, err := sql.Open("postgres", dbinfo)
	if err != nil {
		panic(err)
	}
	defer db.Close()

    fmt.Println("Successfully connected!")

    // 検索したい日付
    var targetDate string = "2023-03-03"

    // 特定の日付を含むレコードを取得するクエリ
    query := fmt.Sprintf("SELECT id, user_id FROM records WHERE start_at::date = '%s'", targetDate)

	fmt.Println("pass1")

    rows, err := db.Query(query)
    if err != nil {
        log.Fatal(err)
    }
    defer rows.Close()

	fmt.Println("pass2")

    // 各行を繰り返し処理
    for rows.Next() {
        // ここには、取得したいカラムに応じた変数を定義します
        var column1, column2 int // これは、idとuser_idのことです
        // 必要に応じて他のカラムも追加
        err := rows.Scan(&column1,&column2) 
        if err != nil {
            log.Fatal(err)
        }

        fmt.Println(column1, column2) // 取得したデータを出力
        // 他のカラムも出力する場合は、ここに追加
    }

    // 繰り返し処理後のエラーをチェック
    err = rows.Err()
    if err != nil {
        log.Fatal(err)
    }
}

2023,江端さんの忘備録

この週末も、私は、本当によくがんばったと思うが ―― 目標としたタスクの半分しか終っていない。

I think I did well this weekend, too -- However, I only finished half of the tasks I set out to do.

まあ、がんばったところで、

Well, even if I did my best,

『がんばったことのご褒美は、がんばったことだけだ』

'The only reward for doing your best is doing your best.'

と、思います。

I think so.

リタイアを目前としたこの私が言いますけど、これ、いい感じで真実です。

I say this as I am on the verge of retirement, but this is a good and true statement.

正確には、「“よくやった事の報酬はそれをやったって事だけ”さ」(はみだしっ子、アンジー) です。

More accurately, "The only reward for a job well done is that you did it" (Angie, in Hamidashikko).

-----

あ、もう一つあった。

Oh, there was one more thing.

「歴史改竄」ができます。

You can "falsify history."

こっちは、それなりに『美味しいご褒美』かもしれません ―― 幻想だとしても。

This one may be a 'tasty reward' in its own right -- even if it is an illusion.

「青春」とは「歴史改竄」のことです。