2021/08,江端さんの技術メモ

Windows10のgolangのバージョンを上げる為に、古いバージョンをアンインストールして最新版(go version go1.17 windows/amd64)をインストールしました。

ところが、

// client.go

// Copyright 2015 The Gorilla WebSocket Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// +build ignore

package main

import (
        "flag"
        "log"
        "net/url"
        "os"
        "os/signal"
        "time"

        "github.com/gorilla/websocket"   ← ココ
)

var addr = flag.String("addr", "localhost:8080", "http service address")

で、こんなエラーが出てきます。

$ go run client.go
client.go:19:2: no required module provides package github.com/gorilla/websocket
: go.mod file not found in current directory or any parent directory; see 'go he
lp modules'

で、まあ、これは、いつものアレだな、と思い、

$go get github.com/gorilla/websocket

を対応したのですが、どういう訳か、このエラーが取れません。

ebata@DESKTOP-P6KREM0 MINGW64 ~/dummy/go_echo
$ go mod init go_echo  ← "go_echo"という名前にしたのは、ディレクトリ名に合わせただけ
go: creating new go.mod: module go_echo
go: to add module requirements and sums:
go mod tidy

で、

ebata@DESKTOP-P6KREM0 MINGW64 ~/dummy/go_echo
$ go get github.com/gorilla/websocket
go get: added github.com/gorilla/websocket v1.4.2

として、中を調べてみたら、こんな感じになっていました。

ebata@DESKTOP-P6KREM0 MINGW64 ~/dummy/go_echo
$ more go.mod
module go_echo

go 1.17

require github.com/gorilla/websocket v1.4.2 // indirect

で、まあ、以下のように動作を確認できました。

ebata@DESKTOP-P6KREM0 MINGW64 ~/dummy/go_echo
$ go run client.go
connecting to ws://localhost:8080/echo

よく分かりませんが、どうやら動かし方が変ったようです ―― 面倒くさいですけどね

さて、加えて、Visual Studio Code で、Golangのプログラムのデバッグですが、こっちも上手く動かなくなっていて、困っています。

で、今あきらかなことは、(1)上記のgo.modを作ることと、(2)1つのディレクトリに中には1goファイルを1つだけ入れること、そして、(3)setting.jsonを作ることです。

ebata@DESKTOP-P6KREM0 MINGW64 ~/dummy/go_test
$ more setting.json

{
    "go.gopath" : "C/go"
}

私の場合、C:\goにインストールしているので、上記のように記載しています。

2021/08,江端さんの技術メモ

// position_log_sample.go

// position_logから座標情報を読み出すサンプル (要pq)

// go get github.com/lib/pq

package main

import (
	"fmt"
	"os"

	"database/sql"

	_ "github.com/lib/pq"
)

const port int = 8910 // DBコンテナが公開しているポート番号

func trackUser(db *sql.DB, userID int, dateIndex int) {
	// SQLステートメント
	sql := "SELECT id, to_char(time, 'HH24:MI:SS'), x, y, satisfaction FROM position_log "
	sql += " WHERE date_index = $1 AND user_or_bus = 'USER' AND id = $2;"
	prepared, err := db.Prepare(sql)
	rows, err := prepared.Query(dateIndex, userID)

	if err != nil {
		fmt.Printf("error : %v", err)
		os.Exit(1)
	}

	fmt.Printf("time, x, y, satisfaction (userID: %v)\n", userID)
	for rows.Next() {
		var id int
		var timestr string
		var x float64
		var y float64
		var satisfaction float64 // 満足度・現実装では、リクエスト発行直後に変化する
		rows.Scan(&id, &timestr, &x, &y, &satisfaction)
		fmt.Println("-", timestr, x, y, satisfaction)
	}
}

func trackBus(db *sql.DB, busID int, dateIndex int) {
	// SQLステートメント
	sql := "SELECT id, to_char(time, 'HH24:MI:SS'), x, y FROM position_log "
	sql += " WHERE date_index = $1 AND user_or_bus = 'BUS' AND id = $2;"
	prepared, err := db.Prepare(sql)
	rows, err := prepared.Query(dateIndex, busID)

	if err != nil {
		fmt.Printf("error : %v", err)
		os.Exit(1)
	}

	fmt.Printf("time, x, y (busID: %v)\n", busID)
	for rows.Next() {
		var id int
		var timestr string
		var x float64
		var y float64
		// var satisfaction float64  バスの満足度はNULL
		rows.Scan(&id, &timestr, &x, &y)
		fmt.Println("-", timestr, x, y)
	}
}

func main() {
	// db: データベースに接続するためのハンドラ
	var db *sql.DB
	// Dbの初期化
	dbParam := fmt.Sprintf("host=localhost port=%d user=postgres password=ca_sim dbname=ca_sim sslmode=disable", port)
	db, err := sql.Open("postgres", dbParam)
	if err != nil {
		fmt.Println("cannot open db")
		os.Exit(1)
	}
	dateIndex := 1 // 1日目
	busID := 8     // バス番号
	userID := 11   // ユーザ番号
	trackBus(db, busID, dateIndex)
	trackUser(db, userID, dateIndex)
}

2021/08,江端さんの技術メモ

PostgreSQLのデータベースは、全部Dockerの中に閉じ込めることにしたので、バージョン管理とかを忘れることができてストレスフリーです。

でも、Windows10から、ちょいちょいっと、DBの中を見たい時にpsqlがないのは不便です。

ですので、ここを参照させていただきpsqlだけインストールしました。

【PostgreSQL】Windows に psql コマンドだけをインストールする手順

ちなみに、どのシェルでも使えるように、私は、PATHはこっちに書き込みました。

 

 

以上

 

2021/08,江端さんの技術メモ

パワーポイントに比べると、ホワイトノイズは気にならない程度まで小さくなっていました。

あとは、パワポの音声としてリンクすれば、完成です。

Windows10 音声 録音 ホワイトノイズ ノイズ

 

2021/08,江端さんの技術メモ

SAIのブラシ濃度を変更した場合、こんな感じになります。

2021/07,江端さんの技術メモ

これは困った・・・

Amazon Associates アマゾン アソシエート アソシエートID アクセスキー シークレットキー

あたりを弄った後で、できなくなったのは間違いなのだけど・・・

で、Amazonに質問を出したところ、以下の回答を頂きました。

江端様

Amazon.co.jpアソシエイト・プログラムにお問い合わせいただき、ありがとうございます。

当プログラムにて確認いたしましたが、問題なくプレビューにHTMLが表示され、取得出来ることを確認いたしました。

また、現在不具合報告はなく、同様のお問い合わせもございません。

ご連絡の件につきましては、下記の点をお試しください。

・ご利用ブラウザのcookieならびに一時ファイル(キャッシュ)を削除のうえ、更新をお試しください。
※cookieならびに一時ファイル(キャッシュ)を削除いただく場合、お手数ではございますが、事前に重要なデータをバックアップしてから削除をお試しください

・異なるブラウザでも同様となるのかをお試しください。
※Internet Explorer、Firefox、Chromeの3つは必ずお試しください。

アソシエイト・プログラムをご利用いただき、ありがとうございます。

 

Amazon.co.jp カスタマーサービス アソシエイト・プログラムスタッフ
ご利用ありがとうございました。
Amazon.co.jp
以下のボタンから、お客様のご意見をお送りください。

 

現在、Chromoを使っているので、まずキャッシュを削除してみました → 効果なし

ブラウザをIEにして試してみました → 表示されました

まあ、取り敢えず、当面の間は必要な時に、IE立ち上げて対応する、で対応することといたします。

 

 

2020/12,江端さんの技術メモ

キッチンの蛍光管を交換しても点灯しなくなったことから、どうやら安定器(スターター)が不調になってきているとアタリを付けました。

そもそも、この家を作った時には、LED電球という考え方すらなく、今のように蛍光管の代替となるLED直管ライトなどは、影も形もありませんでした。

で、この機会に、スターターをバイパス(無視)して、LED直管ライトを接続できるように、回路を変更してやろうと思ったのですが、そもそも、蛍光管も、LED直管ライトも、その仕組みがよく分っていません(ネットの情報も、これといったものが見つかりませんでした)。

で、今回、「オーム電機 LED蛍光灯 直管形LEDランプ G13 40形 昼光色 グロー専用 LDF40SS・D/17/23」を使って調べてみました。

https://www.youtube.com/watch?v=ne2NLdvOvSI
 

これで、ざっくりと結線のやり方が分かりました。

 

赤丸のところにマイナスドライバーを差し込むと、配線が外れました。

配線の番号はこのようになっています(ネットで仕様書を調べて、アタリを付けています)

これを、以下のように変更します。電子安定器に接続された結線は、すべて外して(あるいは切断して)下さい。

結線を外す前に配線の番号をタグ付けしておきます。

今回は、半田付けが難しかったので、こういう接合具を使って結線しました。外被を向いた動線を差し込んで、ペンチで金属部を押し潰します。

結線して、点灯を確認しました。

これで、安定器(スターター)は不要となりました。待機電力の消費もなくなるので、少しは節電になるでしょう。

注意事項:LED直管ライトの方向を逆にするとショートします。映像の中で見たように、逆方向は短絡しているからです。結線の中にヒューズを入れておくべきです(私も今、気がつきましたので、後日対応しておきます)。

2021/05,江端さんの技術メモ

最近、江端家では、戸締りや門扉の開けっぱばしが多くなってきたので、LINEで写真で送って注意喚起をするようにしました。
で、その反動で、「電灯のつけっぱなし」を注意されるようになりました。

特に、階段の電灯のつけっぱなしが多いので、3分間の電灯がつけっぱなしになると、警告音(ブザー)が鳴るシステム、を作ってみました。

ポイントは、「半田付けや、555などのICを使った回路を作るのはゴメン」という一点です。なので機材を配線するだけで実現することにしました。

前提となる装置は、GRT-A1という遅延リレーです。

遅延リレー GRT8-A1 を買ってみた

問題は、電球の点灯時に100Vが通電される方法でしたが、それは、このソケットを購入することで解決しました。

 

コーナーキャップのプラグを買って、100Vを引き出すことにしました。

https://www.monotaro.com/p/3518/3233/?t.q=%83X%83i%83b%83v%83L%83%83%83b%83v

で、電灯から、こんな感じで100Vを取り出すことにしました。

次に、GRT-A1を設定するには、DINレールというものが必要なのですが、近くのDIYショップに行ってみたのですが、入手できませんでした。
発想を転換して、DINレールの変りに、プラスチックカードを35mmに切断したもので代用してみました。
後は、プラスチックカードごと、ネジで固定することにしました。

で、以下のような、装置を設営しました。わざわざコンセントを入れたのは、いずれ家族から「うるさい! ブザーを切れ!」と言われる時に備えた為です。

システムの稼動状況です。

以上