未分類

// 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)
	}
}

未分類

// 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)))
	}
}

未分類

15分でホワイトボードを作った件

を使った、ホワイトボードをカメラで撮影しながらのリモート会議が「結構イケる」と判断しました。

そこで、ホワイトボードの購入の検討を開始したのですが、最大の問題は「収納」でした。部屋の中にも外に置く場所がありません。

最大の問題は、ホワイトボードの脚部の幅でした。

私の部屋の中で収納できそうな場所は、机の横にある20cmくらいの隙間しかありませんが、一般的なホワイトボードの脚部は、最小でも50cmはあります。

で、上記のメモに記載したように「室内物干し」で、かつ、脚の角度を変えれるようなものを探していたのですが、ようやく一つ見つけました。

(↑をクリックすると、商品のページに飛びます)

この商品、脚の部分の角度を変えることができます。

早速購入し、先程到着しました。

3分で組み上がりました。

ここに、ベニアで作ったホワイトボードを紐で括り付けます。

置き台を使って、ベニアを固定してしまいます(購入後に気がつきました)

で、懸案の収納ですが、問題なく収まることを確認しました。

これから、江端の参加するリモート会議では、このホワイトボードを濫用します。

以上

 

未分類

この夏または秋に、山口市の旅行を考えています。

で、今、シェアサイクルの利用を検討しています。"ecobike"というサービスのアプリをiPadにダウンロードして、見ています。

以前、宇都宮市(駅前)で、バイク(自転車)の争奪戦が激しかったので、心配になったので、色々調べてみました。

■各ステーションのバイクの最大数、現在の台数はアプリから見える。
■台数調整は、週2回月曜日と木曜日
■返却時にポートが満車だった場合は、運営に電話する(多分、ポートの外に放置しても大丈夫なのだろう)
以上

未分類

本日、大雨の予定だったので、F2Fをリモート会議に変更したのですが、白板(ホワイトボード)を使ってミーティングが必要になると考えて、15分ほどで、即席のホワイトボードを作ってみました。

すでに、ホワイトボード用のシートを貼ったベニア板があったので、これを写真用三脚とアタッチさせてみました。

とりあえず『今日はこれを使って図面を描いて、ライブカメラに写すことで、凌げるかな』と期待しています。

リモート会議終了。

役にたったと思います。

室内物干しを使って、強度アップ

未分類

初めて貰いました。サイズは13cm x 9 cmです。

もっと絵柄入りの華やかな投票済書を、各種用意すればいい、と思いました(アニメのキャラクターから、アイドル、果ては、韓流スター、<北>や<露>の国家元首の写真入りまで。自治体の裁量で「なんでもあり」の方向で)

# 政治色がからむと、さすがにマズいか。

これ、投票者の氏名も入れるようにして、学校や職場に提出するようなシステムを採用してもいいかな(強制は望ましくないけど)。

私、内申点稼ぎで、生徒会長をやっていたくらいですから、そういう邪なインセンティブになればいいと思う。

職場では、「我が社の社員の投票率は96%です」というキャッチーが、会社の信頼度を上げる・・・かな?

以上

未分類

Amazon は、時々

という表示を出しつつ、「配送不可」といい、「キャンセル」し「返金を完了する」ということをします―― 理由の説明もなく、です。

普通に考えれば、「自宅の前まで来て、配送するのを思い留まった」と見えますよね?

これまで、この手の一方的な「キャンセル&返金」を2回ほど食っています。

で、今日も、自宅前まで来ている(のか?)荷物の配送日が、『7月1日までに届かなければ、キャンセルしていいよ』というメッセージに変わっていました。

なんだろう、Amazonから、江端家への高度な「嫌がらせ」なんだろうか?

しかし、もしそうだとすれば、費用対効果がダメダメの嫌がらせです。


2022/06/29追記

やっぱり、こうなった。

未分類

私の好みのこの画面に戻すために、色々やってみた。

未分類

私、今日から

Today, I am a

『デジタル人財認定<データサイエンティスト>(ハイレベル)』

"Digital Human Resource Certification (Data Scientist) (High Level)"

になりました。

本日付けで、会社が認めてくれました。

As of today, the company has approved it.

-----

じゃあ、今までの私は何だったのだ? ――

"Then, what was I doing before?"

と、野暮なことをツッコまないのが、社会人です。

The adult member of society does not "ask such a nonsense".

未分類

https://tutorialmore.com/questions-2093576.htm

lengthとlength_mの違いは何ですか?また、それぞれの単位距離は何ですか?

length  度単位であり、それほど意味はありません。

緯度・経度の 1度はどれくらいの長さがあるのか

143.48731327191777 ÷ 0.0016025174726055347 = 89538.688797334365001365036280371 となり、概ねあっている様子。

length_m  メートル単位です。