func numGoroutine() {
for {
fmt.Println("======>numGoroutine", runtime.NumGoroutine())
time.Sleep(1 * time.Second) // 1秒待つ
}
}
稼動中のgoroutineの数え方
OpenStreetMapのタイルサーバのコンテンツは、ダウンロードして使ってもいい?
https://operations.osmfoundation.org/policies/tiles/
を読んでいると、「頻繁なタイルサーバへのアクセスは勘弁してくれ」と読めます。
とすれば、ローカルなタイルのコンテンツのダウンロードして、ローカルで使うのはOK?(あるいは歓迎?)かな。
基本的には、「最近のブラウザは、ちゃんとキャッシュしているから、大丈夫だと思うけど」とも記載されています。
「一括ダウンロードは強く推奨されません。不必要にタイルをダウンロードしないでください。特に、ズームレベル13以上の250以上のタイルをオフラインまたは後で使用するためにダウンロードすることは禁じられています。」
「これらのタイルは一般に、事前にサーバーで利用可能(キャッシュ)ではないため、これらの要求に対して特別にレンダリングする必要があり、利用可能なリソースに不当な負担をかけることになります」
なるほど、「レベル13以上であれば、レンダリングの処理でサーバを直撃してしまう」ということですね。
で、私の場合は、
(1)サーバに負荷を与えないことにもなる、ローカルへの、1回こっきりのタイルコンテンツのダウンロード
(2)レベル14以上の使用
(3)タイル数は30個くらい?
だから、大丈夫かな、と思っています。
以上
江端:「今日、電車で、じいちゃん(私の父、2年前に死去)にあったぞ」
帰宅して、開口一番、
When I got home, the first thing I did was open my mouth, I said to my wife
江端:「今日、電車で、じいちゃん(私の父、2年前に死去)にあったぞ」
Ebata: "I met my grandpa (my father, who died two years ago) on the train today"
というと、嫁さんは、
Wife:"What was happen ?"
嫁さん:「なになに?」
と、家事の手を止めて、期待するような目で私を見ました。
She stopped her chores and looked at me with expectant eyes.
-----
久々の出社で小田急の電車に乗っていた時、私が座っていた席の、隣のおじいさんに声をかけられました。
When I was riding the Odakyu train to work after a long time, I was approached by the old man next to me.
「つかぬことをお伺い致します」
"May I interrupt you?"
「はい、どうぞ」
"Never mind"
「この電車は『鶴川』という駅に行きますか?」
"Does this train go to a station called 'Tsurukawa'?"
「はい、行きますよ」
"Yes, it does"
「『鶴川』は次の駅ですか」
"Is Tsurukawa the next station?"
「次の次の駅になります」
"No, It will be the next stop after that."
「次の駅ではないんですね」
"Not at the next station, I see."
「次の駅ではありません。私がお知らせしますので、安心して下さい」
"Not at the next station. I will let you know, so you don't have to worry."
「今の駅ではなかったのですか」
"Wasn't it the station we just left?"
「はい、この後の駅になります」
"No, it is the next station"
「次の駅が『鶴川』ですか」
"The next station is "Tsurukawa"?"
「そうです」
"Yes, it is"
私は、ゆっくりと、比較的大きな声で、やさしく語りかけるように心がけました。
I tried to speak slowly, relatively loudly, and gently.
-----
「この駅ですか」
"This station?"
「はい、この駅です」
"Yes, this is the station."
「大変お世話になりました」
"Thank you very much."
というと、おじいさんは、扉から出ようとして、それを止めて、別の扉から下りました。
The old man, then, tried to go out the door, stopped it, and went down through another door.
私は、おじいさんが下りるのを見て、ほっとしたのですが、暫くドアが開いた状態になっており、おじいさんが、再び電車に乗り込もうとしている風に見えたので、
I was relieved to see the old man get off, but the doors had been open for a while, and he looked like he was about to board the train again.
『車掌! とっととドアを閉じんかい!!』と心の中で叫んでいました。
Conductor! Close the door quickly! I shouted in my mind.
無事にドアは閉まったのですが、その後、駅のホームで、所在なく立ち続けるおじいさんを見ながら、私は心配していました。
After the door was closed, I was worried while watching the old man standing on the platform without dazed-looking.
-----
江端:「まあ、そんな感じで、晩年のじいちゃんを思い出してね」
Ebata:"So the old man reminds me of my fater in his laster years"
嫁さん:「ああ、なるほど」
Wife: "Oh, I see."
江端:「短期記憶障害だな。1分前の会話の内容を記憶できなくて、短時間の間に同じ質問を繰り返してしまうんだよね」
Ebata: "It's short-term memory impairment; He can't remember what he were talking about a minute ago, and he repeat the same questions over and over in a short period of time."
嫁さん:「よくある話だよね」
Wife: "It's a common story."
江端:「降りる駅を、何度でも確認したくなるのは当然なんだ。不安で仕方がないから」
Ebata:"It is natural that he wanted to check the station he should get off as soon as possible. He is just so anxious"
嫁さん:「まあ、その、おじいちゃん。ちゃんと降りられてよかったじゃんか」
Wife:"Anyway, it was good to make old man get off the station"
江端:「まあ、回りの人も、『あの、おっさん、なんで、あんなに大きな声で、何度も同じことを繰り返すことができるんだろう』と思っていたかもしれんけど、これは、その状況を熟知している"私"にとっては、自然の対応なんだよね」
Ebata:"Well, people in the train thought that "Why the man can repeat same things loudly again and again?", however it was a natural reaction for me to had been known the situtaions"
-----
子どもに「お年寄りを大切にしましょう」というスローガンを教え込むのは、正しいことです。
It is right to teach children with the slogan, "Take care of the elderly.
理屈抜きでいいですし、これは、洗脳レベルでも"No Problem"です。
It is good without any logic, and this is "No Problem" even at the brainwashing level.
しかし、子どもが、その背景にある高齢化に伴って発生する各種の障害について理解するのは難しいですし、それを臨床レベルで理解することは、さらに難しいと思います。
However, it is difficult for children to understand the various disorders that occur as they age in the background, and it is even more difficult to understand them on a clinical level.
江端:「だから、『お年寄りを大切にしましょう』を、具体的に理解できているのは、多分、私のような立ち位置のシニアだと思うんだよね」
Ebata: "So, I think it's probably seniors in my position who understand 'let's take care of the elderly' in a tangible way."
嫁さん:「その通りだよ」
Wife: "Exactly."
『統一教会に票集めを頼んだ』と『指定暴力団XXXXに票集めを頼んだ』の間に、違いはありますか?
私、前回の参議院選挙で、自民党に投票したのですが、はっきりいって後悔しています。
Honestly speaking, I voted the ruling-party in the last Upper House election, and I regret it.
政教分離って、民主主義の基本原則の一つですよね。
Separation of government and religion is a principle of democracy.
もちろん、政治家というのが、常に何かの組織の意思を反映する「装置」である、ということは理解しています。
Of couse, I deeply understand that a politician is always a "device" the reflects the will of some organization.
しかし、宗教団体については、「政治と宗教は切り離す」が、その代わりに「税制での圧倒的優遇(宗教法人の税の免除)」を担保しているのだ、と思っています。
As for religious organizations, I believe that we "decide to separate policics from religion", however we ensure "overwhelming preferetial treatment in the tax exemption system", instead of that.
間違っていたら、誰か教えて下さい。
If I misunderstand it, let you teach me correct answers.
自民党の国会議員が『統一教会に、票集めを頼んだ』などという事実を公している、という事実に、唖然としています。
I am surprised to know that a current member of the LDP Diet has publicly state that he asked the Unification Church to help himt gather votes.
しかも、こんな簡単に、マスコミにボロボロと映像ベース出てくる、ということは、その映像が、秘密管理すらされていなかった、ということです。
In addition, the fact that the media can so easily expose the video clips, means that the clips has not been kept secret.
『統一教会に票集めを頼んだ』と『指定暴力団XXXXに票集めを頼んだ』の間に、違いはありますか?
Is there any difference between "I asked the Unification Church to get votes" and "I asked XXXX, a designated gangster, to get votes"?
私には分からないので、誰か私に教えて下さい。
I don't know that, so please give me the explaination about that.
こともあろうに、一国の首相だった人間すらも、あの統一教会に関連があったなど、とても信じられない気持ちです。
It is hard to believe that even the prime minister of a country was involved with the Unification Church.
-----
恥を知れ。
Shame on you.
ムスカ大佐を描いてみた
この人、私のコラムの中で、何度も登場しています。
リモコン コード RM-A633 江端家の場合
2017年に買ったリモコンが、ついに壊れたので、待機用のマルチリモコンに交換
登録コードはこちら
マニュアルはここ → B5A-0123-00
なお、昨夜、次の待機用リモコンとして、同機種を購入済みです。
以上
江端の江端による江端の為だけの英語のメモ
1. 不明単語
TH1 | TH2 | TH3 |
---|---|---|
asscss | 評価する | access his performance, 環境アセスメント |
precedent | 先例 | |
per-su-asive | 説得力のある | |
diabetes | 糖尿病 | |
immediate | 早急に | |
tuition | 授業料 | |
starvation | 飢餓 | |
fraud | 詐欺 | |
valve | バルブ | |
address | 頼る | |
permanent employees | 正規雇用者 | |
inventory | 在庫 | |
audit | 監査 | |
(コ) 収益効率、情報ストレージ、保証書 | profit effiency, infomation storage, warranty certificate | certificate((動)は「証明書を与える」) |
prospect | 見込み | |
utmost | 最高のもの(名) |
2. 自動詞
TH1 | TH2 |
---|---|
content to | ~に同意する |
offer to | ~を提供する |
3. 連語
TH1 | TH2 |
---|---|
without so much as doing | ~さえしないで |
remind 人 to do | 人に~を思い出させる |
find+目的語+補語 | e.g. find her decision honorable(×honor) |
appreciate ~ing | (他) ということに感謝する × appreciate to |
be accustomed to ~ing | ということに慣れている |
beside you | = with you |
resent ~ing | ~に腹を立てる ○ resent being treated、 ×resent to be treated |
beside oneself | 我を忘れて |
4. まぎらわし系
TH1 | TH2 |
---|---|
それは、理解可能で 包括的な 契約だった | It was an comprehensible and comprehensive agreement (形)理解できる、(形)包括的な |
応用性(名) の観点から、応用性のある(形) 申し込み(名) に 応募している(現分) | From the viewpoint of applicability, I am applying for an applicable application |
その1つの分析、または複数の分析を行っている者は、1人のまたは複数の分析者である | The analysis or analyses, is/are an analyst or analysts |
私は彼の満足のいく 満足に、満足いく程度には満足した | I satisfied his satisfactory satisfaction satisfactorily. |
私が開始して 初期化することは、最初の グループ加入である | What I initiate and initialize is an initial initiation. |
それと同程度の方法は、強制的で、有能で、競争力のあるものになるだろう | The comparable way will be compulsory, competent and competitive |
私はその強調を強調する | I emphasize that emphasis. |
以前は 比較的安全だったが、今は、個々に 慎重に 行え | Formerly, it was safe relatively, but do it individually, meticulously. |
一つの多様性、あるいは多様な 多様性という観点から、事業を多角化している | We diversify our business in terms of one diversity or diverse diversities. |
契約は隔離され、観察され、強化され 忠実に守られ ました | The contract has been secluded, observed , consolidated , and ad headed. |
同盟の回答者は、関与の喜びを示した | The respondent of alliance showed a delightful of the involvement. |
5. others
TH1 | TH2 |
---|---|
省略できる関係代名詞は? | 目的格のみ(×主格、×所有格) |
whoseの先行詞は「人」だけか? | 「モノ」もO.K. We scarp any can whose current market is too low. |
as ~ asの間に入るもの3つ、入らないもの2つは | (形)(副)の両方と、(形)の原型+ 名詞 |
as ~ asの間に入らないもの2つは | possibleとsame |
the same ~ as, the same ~ thatに入るものは | 名詞 × creative, ○ creativity |
最上級the most ~の代わりにできるものは | my, his Magic computer's でも可 |
",which"と",that" | ",which"はOKだが",that"はNG |
as ~ as XXXXX に来るものは | 単数ならthat, 複数ならthose |
分詞構文のイデオム6つ | JCIAのCG judging from, considering, including, according to, concerning, give |
physicalの2つの意味 | (形)身体的な、物理的な、(名)健康診断 |
without/expect, by/until, beside, besides | ~なしで/除いて、までに/まで、~の横に/~に加えて |
名詞の前にXXXXを選ばない | almost → × almost book, ○ almost all books, most books ←→ most of the books |
"meanwhile", please contact | Now+------+future |
"of the"を使えるもの/使えないもの | (1)使えるもの most of the~、 most~、 (2)使えないもの a lot of, a mount of, a mount of, hundred of, thousand of, of+数値を使わない言葉 |
否定後 + 名詞 で選べるもの | "no"のみ × nothing, × none |
none | 人や物に使える |
no one | 人に使えるが、物には使えない |
"not"と"any"の前後関係について | 必ず"not"の先 |
複合名詞の最初の名詞はXXXXX | 単数形 ○ ten thousand pieces, ○ heating system, ○ three-year-old boy (例外)sales department, customers declaration(関税申請), telecommincations industry |
"独力で"の2つの言い方 | by oneself / on one's won |
closely と nearby の違い | "密着して(副)"と"近くの(形)" |
Even though it is a bit XXXX | "costly"が正解。"a bit"は副詞("a little"と同じ) で costlyは形容詞。 なお、“a ( little) bit of 〜”で名詞を使える |
"drawback"と"defeat"の違い | 欠点(直らない故障)と欠陥(直る故障) |
"beside"と"besides"の違い | "with" と "in addition/moreover"の違いの理解でいい。 beside the eraser(消しゴムの隣に)、 Besides Wednesday(水曜日に加えて) |
6. 不/可算名詞 組合せ一覧
7. あとで纏めるもの
TH1 | TH2 |
---|---|
until / across / down / on to | ~まで/横切って/下へ/~の上へ |
call out / draw up / care for / roll in | 呼び出す、作成する、大切に思う、転がり込む |
Golang テストコード (1)適当な座標情報を入力して、近くのOpenStreetMapのnodeに強制的に寄せて、ダイクストラ計算を強行する方法 (ここでは300メートル以内で、もっとも近いノードを見つける、という処理をやっている)
// go get github.com/lib/pq を忘れずに
// go run main5.go
/*
(1)適当な座標情報を入力して、近くのOpenStreetMapのnodeに強制的に寄せて、ダイクストラ計算を強行する方法
(ここでは300メートル以内で、もっとも近いノードを見つける、という処理をやっている)
*/
package main
import (
"database/sql"
"fmt"
"log"
_ "github.com/lib/pq"
)
func main() {
db, err := sql.Open("postgres",
"user=postgres password=password host=localhost port=15432 dbname=utsu_db sslmode=disable")
if err != nil {
log.Fatal("OpenError: ", err)
}
defer db.Close()
rows, err := db.Query("SELECT source,
x1 as longitude, y1 as latitude, ST_Distance('SRID=4326;POINT(139.9182893339256 36.573831584767085)'::GEOGRAPHY, the_geom) as dist FROM ways WHERE ST_DWithin(the_geom, ST_GeographyFromText('SRID=4326;POINT(139.9182893339256 36.573831584767085)'), 300.0) ORDER BY dist")
if err != nil {
log.Fatal(err)
}
defer rows.Close()
for rows.Next() {
var source int
var longitude float64
var latitude float64
var dist float64
if err := rows.Scan(&source, &longitude, &latitude, &dist); err != nil {
fmt.Println(err)
}
fmt.Println(source, longitude, latitude, dist)
}
if err := db.Ping(); err != nil { //データベースが繋っているかの確認(らしい)
log.Fatal("PingError: ", err)
}
}
Golang テストコード (1)golangの中でSQL文を作る時に、てっとり早く数値の部分を文字列にする方法 (2)golangの可変長配列の作り方と、面倒くさい場所の値をひっぱり出す方法
// go get github.com/lib/pq を忘れずに
// go run main10.go
/*
(1)golangの中でSQL文を作る時に、てっとり早く数値の部分を文字列にする方法
(2)golangの可変長配列の作り方と、面倒くさい場所の値をひっぱり出す方法
*/
package main
import (
"database/sql"
"fmt"
"log"
"math/rand"
_ "github.com/lib/pq"
)
func transfer_point(origin, destination int) (int, int) {
// utsu_tram_db3をオープン
db, err := sql.Open("postgres", "user=postgres password=password host=localhost port=15432 dbname=utsu_tram_db3 sslmode=disable")
if err != nil {
log.Fatal("OpenError: ", err)
}
defer db.Close()
// node番号 1200 から 12000 までのダイクストラ計算を行う
str := "SELECT seq, node, edge FROM pgr_dijkstra('SELECT gid as id, source, target, cost FROM ways'," + fmt.Sprint(origin) + "," + fmt.Sprint(destination) + ", directed:=false)"
rows, err := db.Query(str)
if err != nil {
log.Fatal(err)
}
defer rows.Close()
var seq, node, edge int
var add_node_num = []int{} // 可変長配列
for rows.Next() {
if err := rows.Scan(&seq, &node, &edge); err != nil {
fmt.Println(err)
}
// ルート分離は、0<x<70の値が出てきたら、駅のノードである、とする。
// 何しろ、私が地図を改ざんしたのだから間違いない
// で、その値を全部格納する
if node > 0 && node < 70 {
add_node_num = append(add_node_num, node)
}
}
if len(add_node_num) >= 4 { // 見つけることができたら最初から2番目と、最後から2番目の番号(0 < X < 70)を取り出す
first_node := add_node_num[1]
last_node := add_node_num[len(add_node_num)-2]
if (first_node > 0 && first_node < 70) || (last_node > 0 && last_node < 70) {
return first_node, last_node
} else {
log.Fatal("wrong node:", err)
}
//fmt.Println("first_node:", first_node, "last_node:", last_node)
} else { // 見つけることができなかったら
return -1, -1
//fmt.Println("No node")
}
return 0, 0 // ダミー用のリターン(ここには来ないはず)
}
func main() {
fmt.Println(transfer_point(21509, 11215))
for i := 0; i < 100; i++ {
a := rand.Intn(30000)
b := rand.Intn(30000)
//fmt.Println(sub_main(2200, 2400))
fmt.Println(a, b)
fmt.Println(transfer_point(rand.Intn(a), rand.Intn(b)))
}
}