2022/01,江端さんの忘備録

東京は雪に脆弱な街ですが、その中でも特に、南多摩地区は、

Tokyo is a city that is vulnerable to snow, especially in the South Tama area,

『南多摩地区積雪量 = 東京23区積雪量 X 10 』

"Snowfall in South Tama area = Snowfall in Tokyo 23 wards X 10"

という経験的な法則があります。

This is a solid rule of thumb.

簡単に言うと、「都心で3cmの積雪があると、我が家の周辺は30cmの積雪になる」ということです。

To put it simply, "if there is 3cm of snow in the city center, the area around our house will get 30cm of snow.

ですので、自宅を出る時は、長靴、防寒具の完全装備で、雪を掻き分けて外出しなければならず、結果として、新宿駅で悪目立ちする、というのが、多摩地区住民の運命でした。

So when I left my house, I had to go out through the snow, fully equipped with boots and cold weather gear, and as a result, I would be conspicuous at Shinjuku Station, which was the fate of residents in the Tama area.

-----

しかし、昨日の午後の積雪に関しては、この逆転現象が起きたようです。

However, this reversal seems to have occurred with regard to yesterday afternoon's snowfall.

昨日の積雪と本日の路面凍結によって、東京23区に多くの交通災害が発生しました。

Yesterday's snowfall and today's icy roads have caused many traffic disasters in the 23 wards of Tokyo.

首都高が数時間以上も渋滞し、交通事故が多発し、多くの歩行者が転倒し、多くの人が怪我をしているようです。

The Tokyo Metropolitan Expressway has been congested for more than several hours, traffic accidents have been frequent, many pedestrians have fallen, and many people seem to have been injured.

今日一日中、ニュースは都心の混乱情報を報道し続けています。

All day today, the news programs have been reporting on the chaos in the city center.

比して、南多摩地区は、それほどの積雪はなく、雪害、凍結等はあるものの、都心部ほど悲惨な状況にはなっていません。

In contrast, there is not much snow in the South Tama area, and although there is some snow damage and freezing, the situation is not as dire as in the city center.

これは、本当に珍しいケースです。

This is a really rare case.

-----

東京都民ならず、日本全国においても「多摩地区」というのは知名度が低いです。

The Tama area is not well known not only among Tokyo residents but also throughout Japan.

下手に「東京都」という名前を冠している分、説明が面倒くさくて、不快な思いをします。

The name "Tokyo Metropolitan Government" in poor taste makes the explanation cumbersome and uncomfortable.

最寄りの駅名は勿論、路線名すら『聞いたことがない』という人が多いです。

Many people have never heard of the name of the nearest station, or even the name of the train line.

-----

積雪で酷い目に遭遇し続けてきた南多摩地区住民の私としては、

As a resident of the South Tama area, I, who have had a lot of bad experiences with snowfall,

リビングの椅子に座り、コーヒーカップを片手に、現在の『都心部が大混乱している』の映像を見て、「誠にお気の毒に思っております」。

watched the current video of 'the city center is in chaos' and said, "I am truly sorry for their loss" with sitting on a chair in the living room, a cup of coffee in hand,

特に、新宿、渋谷あたりの映像には、「心からの遺憾の意」を表すものであります。

In particular, I would like to express my sincere regret for the video clips of Shinjuku and Shibuya.

-----

『今の都心は、薄らと雪景色の風景です』『キレイですね~』などとニュースのレポータが中継している時に ――

While the news reporter was reporting on the snow scene in the city center, saying "It's beautiful",

私たちが、息を切らしながら、雪に埋もった足でラッセルしながら歩いていることを、都心の皆さんは知らない。

People in the city center don't know that we are out of breath with wading through deep snow to open up a trail.

2022/01,江端さんの忘備録

最近、大学生になったばかりの次女はともかく、社会人になったばかりの長女の生活リズムが悪くなっているのを危惧しています。

Lately, I've been concerned that my junior daughter, who just started college, but my senior daughter, who just started working, is losing her rhythm of life.

具体的には、(1)食事を食べている場面を見ない、(2)いつ起きて寝ているのか分からない、(3)体調を崩していることが多いように見える、などなどです。

Specifically, (1) I don't see them eating, (2) I don't know when they wake up and go to bed, and (3) they seem to be sick a lot.

もちろん『女の子なんだから』―― などと言うビジョンは、私には1mmもありません。

Of course, I don't have the vision to say, "They are girls".

ひたすら『おい!コロナウイルスを自宅に持ち込むなよ!』の一択です。

I just want to say, "Hey! Don't bring the coronavirus into our house!"

まあ、どんなに注意していても、感染する時は感染すると、腹を括ってはいますが ―― 感染しない方がいいに決っています。

Well, no matter how careful we are, when you get infected, we get infected. However, it's always better not to get infected, of course.

-----

てなことを考えていたのですが、

I've been thinking about the above, however,

―― 私も社会人になりたての頃は、同じようなもんだったかなぁ

I wonder if I was the same way when I first started working.

と思い返しています。

いや、この話に比べれば、長女の方が、まだマシかもしれません。

Well, compared to this story, my senior daughter might be better off.

未分類

■interview と interview withの違い
interview Mr.A → これは動詞としての使用 ("Aさんにインタビューする")
a/the interview with Mr.A これは名詞としての使用("Aさんへのインタビュー")

■形容詞の順番(https://english-club.jp/blog/english-adjective-order/)

■"mediate"と"mediate between/among A,B, and C"の違い
mediate a treaty (条約を纏める) のような場合は、前置詞不要
mediate between A and B のように、調停相手が複数で明確な場合は、between, amongが必要

■provision time, provisioning time の意味
サービス等を開始する為に必要な"準備"期間の意味であり、"サービス提供時間"とは異なる

 

"conventional transportation services" 約 12,000 件
"existing transportation services"  約 120,000 件
"previous transportation services" 約 3,930 件

"conventional services" 232,000 件
"existing transportation services"? 4,820,000 件
"previous services" 614,000 件

"participatory simulation" 16,900 件
"experiential simulation"20,300
"hands-on simulation"

「ハザード」(有害性)とは理論的に害をもたらす可能性があるものです。一方、「リスク」(危険性)とは実際的に害をもたらすものの危険の可能性(高い、低い)を指します。
ある例を見てみましょう。巨大な火山が噴火したとします。多量の溶岩が噴出し、火山灰が大気に放出されました。これはハザードの例です。なぜならば噴火は火山の近隣に住む人々の命を危険にさらす可能性があるからです。しかしこの噴火が大洋の無人島にある火山で起きたとしたら、人々の命を危険にさらす可能性、つまりリスクは非常に低いと言えるでしょう。

"control room officer"  49,100 件
"control center officer" 72,200 件  → ×(映像が合わない)
"control center operator" 60,200 件  → ○(映像があう)

number と countの違い
「number」とは、数や数字、順番を表す言葉です。
「count」は、何かの数を数える時に使います。 → ○ counts of steering operation

vehicle On-demand 187,000 件  → ○
automobile On-demand 約 29,400 件

"user dissatisfaction" 69,000 件 →○
"user's dissatisfaction"   6,650 件 → ×
"users' dissatisfaction"  0件

"user smartphone"  537,000 件 (user's smartphoneも含む)
"user’s smartphone" 461,000 件 → ○

"user's decision"   473,000 件
"user decision" 423,000 件

"user’s information terminal" 597 件
"user information terminal" 147,000 件 → ○

 

2022/01,江端さんの忘備録

以前、「意識高い系用語」について書きました。

I have written about "self-aware words".

うん、私も、こういうこと言う奴、嫌いだ。

これらの用語が、『聞き手に不快感を与えている』というのは事実だと思いますが、仕事で使わなければならない言葉というのは、結構、日常でも出てきてしまうものなのです。

I think it's true that these terms 'make the listener feel uncomfortable,' but the words we come to use in our office, come up in our daily lives.

-----

昨年度の年末、母の病院の転院の支援の為に、実家に帰省していました。

At the end of last year, I had gone back to my parents' home to support my mother's hospital transfer.

『頼むから、来ないでくれよ』と、1ヶ月前から祈っていた"モノ"が、その日に来てしまいました。

The thing that I had been praying for a month, "Please don't come," came that day.

―― 数年に一度と言われている寒波と降雪

"Cold wave and snowfall said to be once in several years"

前日、夜遅くまで庭の風景をチェックし続けていたのですが、当日、完全に積雪していました。

The day before, I kept checking the landscape of the garden late into the night, but on the day of the event, it was completely covered with snow.

母の移動は介護タクシーで行うのですが、転院元と転院先で膨大な書類の処理と入院の物資の移動の為に、私は前日からレンタカーを借りていました。

My mother's transportation would be done by a care cab, but I had rented a car the day before to handle the huge amount of paperwork and moving the hospital supplies both at the source hospital and destination hospital.

一応、汎用のチェーン持参していましたが、私は、雪の日の運転の恐しさを知っている人間です(一度、長女を殺しかけたことがありました)。

I had brought general-purpose tire chains, but I am someone who knows how scary it is to drive in the snow (I almost killed my oldest daughter once).

その雪を見た瞬間に、プランAから、プランB(鉄道による移動)の変更を決断しました。

The moment I saw the snow, I decided to change my plan from Plan A to Plan B (travel by train).

降雪によって、鉄道ダイヤもメチャクチャになっていたのですが、何とか間に合うことができました。

The snowfall had messed up the train schedule, but we managed to make it in time.

-----

転院先の病院で、母の転院用の物品の搬入の必要があって、それを看護師さんと相談していた時です。

At the hospital where I was transferred, I was discussing with a nurse about the delivery of items for my mother's transfer.

江端:「搬入に関しては、本日、私が車で持ち込めるか、あるいは後日、姉に持ってきて貰うか、これから『戦略』を考えてみます」

Ebata: "As for the delivery, I'm going to think of a 'strategy' to see if I can bring it in by car today or have my sister bring it in later."

看護師さん:「『戦略』ですか・・・」

Nurse: "'Strategy'..."

と、クスリと笑われてしまい、とても恥しくなりました。

She giggled, and I felt very embarrassed.

-----

私は軍人ではありませんが、民間の研究所でも(多分普通の会社でも)『戦略』というのは普通に口頭で使われる用語ですが ――

I'm not a military man, but even in civilian laboratories (and probably in ordinary companies) "strategy" is a term that is commonly used verbally.

これからは、十分に、気をつけたいと思います。

However, I will be very, very careful from now on, .

もし『ストラテジー(strategy)』などと口にしていたら、恥しくて死ぬところでした。

If I had said something like "strategy," I would have died of embarrassment.

2022/01,江端さんの忘備録

正月三が日を終えて、本日から仕事始めです。

After the three New Year's days, today is the first day of work.

今日の江端家は、私だけが在宅勤務で家にいる状態です。

Today in the Ebata household, I'm the only one who works from home.

年末に、母の転院支援の為に帰省したことを除いて、私が、この年末年始休暇で移動した範囲は、

Except for a trip back home to support my mother's transfer to the hospital at the end of the year, the extent of my travel during this vacation season was

(1)歩いて15分のところにあるスーパー銭湯の往復(1回のみ)

(1) Walking to and from a super public bath located 15 minutes away (only once)

(2)嫁さんと2人での近所の神社への初詣

(2) New Year's visit to a nearby shrine with my wife.

(3)運動不足解消用の町内歩行(4.5km) with watching ダウンロードしたNetFlixの映画 on iPad (毎日)

(3) Walking around town (4.5km) with watching downloaded NetFlix movies on my iPad (daily) to get rid of lack of exercise.

という、完璧なローカル行動を徹底していました。

This was a perfect example of local behavior.

でも、なんか「暇していた」という感じではなかったです ―― ずっと、パソコンの前で、論文とプログラム(Golang)と格闘していましたので。

But I didn't feel like I was "bored" -- I was in front of the computer all the time, struggling with papers and programs (Golang).

-----

今月から新シリーズを開始する予定です。

I am planning to start a new series this month.

テーマは、ずばり「『お金に愛されないエンジニア』のための新行動論」です。

The theme is "A New Theory of Action for 'Engineers Who are not be Loved by Money'".

本年度もよろしくお願い致します。

I look forward to working with you again this year.

2022/01,江端さんの技術メモ

私が普段使っているDBは、PostgreSQLを使っているのですが、構築手順が面倒くさいし、なによりDBサーバ立てるのを省略したかったです。

ですので、SQLiteを使ってDB構築の手を抜くことにしました。

今日のところは、mattn/go-sqlite3 に _example/simple/simple.go というサンプルファイルがあったので、これを動くことを確認するところまでやりました。

/*
	C:\Users\ebata\kese\gonet-html\1-1
	go get github.com/mattn/go-sqlite3

	どういう訳か、VSCodeのデバッグでトレースができなかったので、fmt.Println("----->10") と入れて確認をしている。
	このプログラムは、

*/

package main

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

	_ "github.com/mattn/go-sqlite3"
)

func main() {
	os.Remove("./foo.db")

	fmt.Println("----->10")

	db, err := sql.Open("sqlite3", "./foo.db")
	if err != nil {
		log.Fatal(err)
	}
	defer db.Close()

	sqlStmt := `
	create table foo (id integer not null primary key, name text);
	delete from foo;
	`
	_, err = db.Exec(sqlStmt)
	if err != nil {
		log.Printf("%q: %s\n", err, sqlStmt)
		return
	}

	fmt.Println("----->9")

	tx, err := db.Begin()
	if err != nil {
		log.Fatal(err)
	}

	fmt.Println("----->8")

	stmt, err := tx.Prepare("insert into foo(id, name) values(?, ?)")
	if err != nil {
		log.Fatal(err)
	}
	defer stmt.Close()
	for i := 0; i < 100; i++ {
		_, err = stmt.Exec(i, fmt.Sprintf("こんにちわ世界%03d", i))
		if err != nil {
			log.Fatal(err)
		}
	}
	tx.Commit()

	fmt.Println("----->7")

	rows, err := db.Query("select id, name from foo")
	if err != nil {
		log.Fatal(err)
	}
	defer rows.Close()
	for rows.Next() {
		var id int
		var name string
		err = rows.Scan(&id, &name)
		if err != nil {
			log.Fatal(err)
		}
		fmt.Println(id, name)
	}

	fmt.Println("----->6")

	err = rows.Err()
	if err != nil {
		log.Fatal(err)
	}

	fmt.Println("----->5")

	stmt, err = db.Prepare("select name from foo where id = ?")
	if err != nil {
		log.Fatal(err)
	}
	defer stmt.Close()
	var name string
	err = stmt.QueryRow("3").Scan(&name)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println(name)

	fmt.Println("----->4")

	_, err = db.Exec("delete from foo")
	if err != nil {
		log.Fatal(err)
	}

	fmt.Println("----->3")

	_, err = db.Exec("insert into foo(id, name) values(1, 'foo'), (2, 'bar'), (3, 'baz')")
	if err != nil {
		log.Fatal(err)
	}

	fmt.Println("----->2")

	rows, err = db.Query("select id, name from foo")
	if err != nil {
		log.Fatal(err)
	}
	defer rows.Close()
	for rows.Next() {
		var id int
		var name string
		err = rows.Scan(&id, &name)
		if err != nil {
			log.Fatal(err)
		}
		fmt.Println(id, name)
	}

	fmt.Println("----->1")

	err = rows.Err()
	if err != nil {
		log.Fatal(err)
	}

	fmt.Println("----->0")

}

もう一つのサンプルコード

https://qiita.com/geniusmaaakun/items/b3cb44de3b10a526be98 を参照させて頂き、微小修正

package main

/*
C:\Users\ebata\kese\gonet-html\1-1-1
sqliteをインストールする際の手順の確認

# ドライバのインストール
go get github.com/mattn/go-sqlite3

*/

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

	//インポート _にしないとコンパイルエラーになる。使用しない為
	_ "github.com/mattn/go-sqlite3"
)

var DbConnection *sql.DB

type Person struct {
	Name string
	Age  int
}

func main() {

	os.Remove("./example.sql") // これを入れないと、DBが太り続ける

	//1
	//DBを開く  なければ作成される
	DbConnection, _ := sql.Open("sqlite3", "./example.sql")
	//終わったら閉じる
	defer DbConnection.Close()
	//DB作成 SQLコマンド
	cmd := `CREATE TABLE IF NOT EXISTS person(
        name STRING,
        age  INT)`

	//実行 結果は返ってこない為、_にする
	_, err := DbConnection.Exec(cmd)

	//エラーハンドリング
	if err != nil {
		fmt.Println("エラー")
		log.Fatalln(err)
	}

	//ターミナル
	//sqlite3
	//.table
	//SELECT * FROM tablename;
	//で確認

	//2 CRUD処理
	//Create
	//データを追加
	//VALUES (?, ?)  値は後で渡す。セキュリテイの関係でこのようにする方がいい
	//SQLインジェクション 悪意あるコマンドでDBが操作されてしまうのを防ぐ ?でエスケープしてくれる
	cmd = "INSERT INTO person (name, age) VALUES (?, ?)"
	//実行
	//レコードを取得する必要のない、クエリはExecメソッドを使う
	//第二引数からは、コマンド?部の値
	_, err = DbConnection.Exec(cmd, "Nancy", 20)
	if err != nil {
		log.Fatalln(err)
	}

	_, err = DbConnection.Exec(cmd, "Mike", 20)
	if err != nil {
		log.Fatalln(err)
	}

	_, err = DbConnection.Exec(cmd, "Tom", 55)
	if err != nil {
		log.Fatalln(err)
	}

	//Update
	//データの更新 Mike が存在する場合
	cmd = "UPDATE person SET age = ? WHERE name = ?"
	_, err = DbConnection.Exec(cmd, 25, "Mike")
	if err != nil {
		log.Fatalln(err)
	}

	//Read
	//Get  All
	//マルチセレクト
	//データ全てをループで表示
	//Queryは全て取得する
	cmd = "SELECT * FROM person"
	rows, _ := DbConnection.Query(cmd)
	defer rows.Close()
	//structを作成
	var pp []Person

	//取得したデータをループでスライスに追加 for rows.Next()
	for rows.Next() {
		var p Person
		//scan データ追加
		err := rows.Scan(&p.Name, &p.Age)
		if err != nil {
			log.Println(err)
		}
		pp = append(pp, p)
	}
	err = rows.Err()
	if err != nil {
		log.Fatalln(err)
	}
	//表示
	for _, p := range pp {
		fmt.Println(p.Name, p.Age)
	}

	//特定のデータを取得
	cmd = "SELECT * FROM person where age = ?"
	//age = 20にして実行
	//QueryRowは最初の一件だけ取得する。

	//row := DbConnection.QueryRow(cmd, 20)
	//row := DbConnection.QueryRow(cmd, 25)
	row := DbConnection.QueryRow(cmd, 55)

	var p Person
	err = row.Scan(&p.Name, &p.Age)
	if err != nil {
		//データがなかったら
		if err == sql.ErrNoRows {
			log.Println("No row")
			//それ以外のエラー
		} else {
			log.Println(err)
		}
	}
	fmt.Println(p.Name, p.Age)

	//Delete
	//データの削除  全て
	cmd = "DELETE FROM person WHERE name = ?"
	_, err = DbConnection.Exec(cmd, "Nancy")
	if err != nil {
		log.Fatalln(err)
	}

	//マルチセレクト  テーブルもSQLインジェクション対策
	//こちらを推奨
	//データを構造体に入れて表示
	//テーブルはSQLインジェクション対策が使えない
	tableName := "person"
	//テーブル名指定は?が使えない為、%sを使う。
	//後に対応されるかも?
	cmd = fmt.Sprintf("SELECT * FROM %s", tableName)
	rows1, _ := DbConnection.Query(cmd)
	defer rows1.Close()
	var pp1 []Person
	//パターンとして覚える
	for rows1.Next() {
		var p Person
		//データを構造体に追加
		err := rows1.Scan(&p.Name, &p.Age)
		if err != nil {
			log.Println(err)
		}
		//ppに追加
		pp1 = append(pp1, p)
	}
	//まとめてエラーチェック
	err = rows1.Err()
	if err != nil {
		//エラーなら終了
		log.Fatalln(err)
	}
	for _, p := range pp1 {
		fmt.Println(p.Name, p.Age)
	}
}

 

2022/01,江端さんの技術メモ

Pythonのスクレイピングを、Golangで記述してみる。

まずpythonの記述です。

# -*- coding: utf-8 -*-
from pyquery import PyQuery

q = PyQuery('https://kabutan.jp/stock/?code=7203')
sector = q.find('#stockinfo_i2 > div > a')[0].text
print(sector)

これでターゲットとなるhtml部分は、多分ここ

<div id="stockinfo_i2">
<dl>
<dt>業績</dt>
<dd><img src="/images/cmn/gyouseki_2.gif" title="今期予想" /></dd>
</dl>

<div>
<a href="/themes/?industry=17&market=1">輸送用機器</a>
</div>

これをgolangで実現するには、このようにコーディングするようです。

package main

import (
	"fmt"

	"github.com/PuerkitoBio/goquery"
)

func main() {
	//get_url_info, err := goquery.NewDocument("https://profile.yahoo.co.jp/search/?w=トヨタ自動車")
	get_url_info, err := goquery.NewDocument("https://kabutan.jp/stock/?code=7203")
	if err != nil {
		fmt.Println("get html NG")
	}

	//result := get_url_info.Find("div > div > table > tbody > tr > td")
	//result := get_url_info.Find("div > div > a")
	result := get_url_info.Find("#stockinfo_i2 > div > a")
	result.Each(func(index int, s *goquery.Selection) {
		fmt.Println(s.Text())
	})
}

出力結果は以下の通りです。

ebata@DESKTOP-P6KREM0 MINGW64 ~/kese/gonet-html
$ go run main3.go
輸送用機器

こうやると、もっと簡単にできそう。

package main

import (
	"fmt"

	"github.com/PuerkitoBio/goquery"
)

func main() {

	q, err := goquery.NewDocument("https://kabutan.jp/stock/?code=7203")
	if err != nil {
		fmt.Println("get html NG")
	}

	name := q.Find("div.company_block > h3").Text()
	fmt.Println(name)

	code_short_name := q.Find("#stockinfo_i1 > div.si_i1_1 > h2").Text()
	fmt.Println(code_short_name)

	market := q.Find("span.market").Text()
	fmt.Println(market)

	unit_str := q.Find("#kobetsu_left > table:nth-child(4) > tbody > tr:nth-child(6) > td").Text()
	fmt.Println(unit_str)

	sector := q.Find("#stockinfo_i2 > div > a").Text()
	fmt.Println(sector)

}

 

 

2022/01,江端さんの忘備録

シルベスタ・スターローンさん主演の代表作に「ランボー」というものがあります。

One of the best movies starring Sylvester Stallone is called "Rambo".

ベトナム戦争の帰還兵が、本国で理不尽な差別を受けて、保安官達との戦闘や、州兵による追撃を受けて、最終的に逆襲に転じるという、バトルアクション映画です。

This is a battle-action film about a Vietnam War veteran who is unreasonably discriminated against in his home country, battles with sheriffs and pursued by the National Guard, and finally strikes back.

非常に重い米国の社会問題を扱った映画として、当時、日本国内でも、かなりヒットしました。

As a film dealing with a very serious social issue in the United States, it was quite a hit in Japan at the time.

このシリーズに「ランボー3/怒りのアフガン」があります。

In this series, there is "Rambo 3: The Angry in Afghan".

これは、当時、アフガニスタンに侵攻していたソ連(今のロシア)に対するレジスタンスであるムジャーヒディーン(「ジハードを遂行する者」の意味)を支援して、ランボーが、ソ連軍に対して闘いを挑む、という内容でした。

It was about Rambo supporting the Mujahideen (meaning "those who carry out jihad"), a resistance group against the Soviet Union (now Russia) that was invading Afghanistan at the time, and challenging them to fight against the Soviet army.

映画の中では「愛国心をもったゲリラがいる国は征服できない。我々はそれをベトナムで体験した」という台詞が登場します。

In the film, the line "A country with patriotic guerrillas cannot be conquered. We experienced it in Vietnam" appears in the film.

また、ラストに「この映画をすべてのアフガン戦士たちに捧げる」というテロップも登場します。

At the end of the film, there is a message that says, "This film is dedicated to all Afghan warriors

かなり乱暴に纏めると、映画「ランボー3/怒りのアフガン」は、「米国民のランボーが、アフガニスタンのタリバンを支援する映画」と言えます。

To sum it up quite roughly, the movie "Rambo 3" can be described as "a movie in which Rambo, an American citizen, supports the Taliban in Afghanistan.

今調べたところ、Amazon Primeでも、この映画を視聴できます。

I just checked, and you can also watch this movie on Amazon Prime.

どうやら、ランボーとタリバンをリンクさせるような、捻くれた視点を持つのは、私くらいのようです。

Apparently, I am the only one who has a twisted perspective that links Rambo to the Taliban.

-----

一方、現実の世界でも、ソ連軍はアフガニスタンから撤退しました。

Meanwhile, in the real world as well, Soviet troops have withdrawn from Afghanistan.

しかし、その結果、ムジャーヒディーン同士の対立から内戦となり、タリバンの台頭を招くことになりました。

However, the resulting conflict between the Mujahideen led to a civil war and the rise of the Taliban.

米国政府は、『以前に軍事支援した国家から、自国の安全保障を脅かされる』ということを繰返してきた国です。

The U.S. government is a country that has repeatedly had its security threatened by nations that it has previously supported militarily.

ベトナム戦争にしても、湾岸戦争にしても、米国が、その国に膨大に渡した兵器によって、自国の軍隊が攻撃される、というケースには、枚挙にいとまがありません。

Whether it is the Vietnam War or the Gulf War, there is no shortage of cases where the U.S. has been attacked by its own troops because of the huge amount of weapons it has given to that country.

そういう意味では、我が国は、政治的判断(特に自衛隊に関する)が遅いことから、こういう事態から、運よく免れてきた、と言えます。

In that sense, Japan has been fortunate to have avoided this kind of situation because of its slow political decision-making (especially regarding the Self-Defense Forces).

―― 日本は、先進国の中で、唯一、イスラム原理主義者によるテロを国内で実施されていない国じゃないかな?

"Isn't Japan the only developed country that hasn't had a domestic terrorist attack carried out by Islamic fundamentalists?"

なのかなと思い、で、ちょっと調べてみたのですが、

So, I did some research.

アメリカ→(当然)あり、フランス→あり、イギリス→あり、ドイツ→あり、イタリア→摘発あり、カナダ→あり(昨年6月)(*)

U.S.A. -> (naturally) yes, France -> yes, U.K. -> yes, Germany -> yes, Italy -> yes, Italy -> yes, Canada -> yes (last June)(*)

(*)出典:国際テロリズム要覧2021 | 公安調査庁、その他

(*)Source: International Terrorism Handbook 2021 | Public Security Intelligence Agency, etc.

という結果でした。

ただ、上記の30分程度のネットを使った調査が、「事実」として流布されていくのは怖いので、私が、誤解、誤記しているようでしたら、メールにてご指摘下さい。

However, I am afraid that my 30-minute research on the Internet above will be spread as "fact", so if I have misunderstood or misrepresented anything, please point it out to me by e-mail.

-----

以前、私、赤穂浪士事件(忠臣蔵)のことを、『地方武士の暴動』みたいなことを言って、嫁さんに叱られました。

My wife once scolded me for saying that the Ako Roshi incident (Chushingura) was like a "riot of local samurai.

それ以後、私は、こういう表現を思いついても、口にするのは自粛するようにしています。

Since then, I have tried to refrain from saying such expressions even if they come to my mind.

昨夜、NHKで、2004年に放映されていた、大河ドラマ「新選組!スペシャル」(総集編)を、ちょっとだけ見ていたのですが、

Last night, I was watching NHK's 2004 Taiga Drama "Shinsengumi! Special" (compilation), which was aired on NHK in 2004. and I thought,

―― 「新撰組」というのは、江戸幕府原理主義者によるタリバンのようなものだよな

""Shinsengumi" is like the Taliban of Edo Shogunate fundamentalists."

と思いました。

そもそも、権力機関(江戸幕府)の承認も得ずに、ただの私的な部局の判断だけで、殺害を実行する組織、という点では、タリバンよりも悪質である、と言えます。

In the first place, it is more vicious than the Taliban in that it is an organization that carries out killings based only on the judgment of a private department without the approval of the authority (Edo Shogunate).

新撰組は、幕府の解散命令に抵抗した者が徒党を組み、会津藩主・松平容保の私財で運営された私的な傭兵部隊(民間軍事会社:PMC(private military company)です。

The Shinsengumi was a private military company (PMC) that was formed by those who resisted the Shogunate's order to disband the group and was funded by the private fortune of the Aizu domain lord, Matsudaira Yoho.

そういう意味でいえば、

In that same sense,

―― 「るろうに剣心」も、薩摩、長州藩がやとったPMCの一員であり、稀有な能力を有するテロリスト

""Rurouni Kenshin" is also a member of the PMC taken over by the Satsuma and Choshu clans, a terrorist with rare abilities."

とも言えます。

-----

しかしながら ――

However,

■「新撰組」についての上記の解釈を口にすれば、嫁さんから口をきいて貰えなくなり、

If I mention the above interpretation of "Shinsengumi", my wife will stop talking to me.

■「るろうに剣心」についての上記の解釈を口にすれば、長女から口をきいて貰えなくなる

If I mention the above interpretation of "Rurouni Kenshin", my senior daughter will not be able to talk to me.

ことは『確実』なので、いらんことは言わないようにしています。

This is a sure thing. Hence, I won't say anything they don't want to hear

2022/01,江端さんの技術メモ

参照 : https://github.com/PuerkitoBio/goquery

goqueryは、jQueryに似た構文と機能群をGo言語に提供するものです。

$ go get github.com/PuerkitoBio/goquery

で使うことができるようになります。

サンプルプログラムで、この内容の解説を試みます。

package main

import (
	"fmt"
	"log"
	"net/http"

	"github.com/PuerkitoBio/goquery"
)

func ExampleScrape() {
	// Request the HTML page.

	res, err := http.Get("http://kobore.net")

	if err != nil {
		log.Fatal(err)
	}
	defer res.Body.Close()
	if res.StatusCode != 200 {
		log.Fatalf("status code error: %d %s", res.StatusCode, res.Status)
	}

	// Load the HTML document
	doc, err := goquery.NewDocumentFromReader(res.Body)
	if err != nil {
		log.Fatal(err)
	}

	doc.Find("input").Each(func(i int, s *goquery.Selection) {
		// For each item found, get the title
		title, _ := s.Attr("type")
		fmt.Printf("Review %d: %s\n", i, title)
	})

	/*
		上記によって以下の4行がピックアップされる。

		<input type="hidden" name="cx" value="010448971387544815344:gehqdwxqnlo" />
		<input type="hidden" name="ie" value="Shift_JIS" />
		<input type="text" name="q" size="10" />
		<input type="submit" name="sa" value="Search" />
	*/

}

func main() {
	ExampleScrape()
}

対象となる、Webのhtmlは以下の通り

(前略)

<TITLE>kobore.net</TITLE>
</head>

<TD ALIGN="right">
<A HREF="./index-en.shtml">English</A> /
Japanese
</TD>

<div align="RIGHT">
<img src="https://www.kobore.net/KOBORE-small.jpg">
<form id="cse-search-box" action="https://google.com/cse" target="_blank">
<input type="hidden" name="cx" value="010448971387544815344:gehqdwxqnlo" />
<input type="hidden" name="ie" value="Shift_JIS" />
<input type="text" name="q" size="10" />
<input type="submit" name="sa" value="Search" />
</form>
</div>

<body BGCOLOR="#F0FFA0">

<H1 ALIGN="center">こぼれネット</H1>
<H2 ALIGN="center">
www.kobore.net
</H2> 

(後略)

出力結果は、以下の通り。

C:\Users\ebata\kese\gonet-html>go run main.go
Review 0: hidden
Review 1: hidden
Review 2: text
Review 3: submit

未分類

■WordとExcelによる年賀状宛名書きは、

(1)「年賀状の宛名印刷 ワープロ編:ワード(Word)とエクセル(Excel)で年賀状の住所録作成、宛名を印刷「年賀状・暑中見舞いドットコム」2022年・令和4年寅(とら)年版」を読んで、毎年作り直すこと(大した手間ではない)。

(2)ただし"1.png"を読むこと(ここだけ違う)