江端智一のホームページ
ソースコードが長くなってくれば、ソースコードを分割するのは当然ですが、Golangでは、この「当たり前」の情報が全然見つからなくて、本当に困っています。
これまで出てきたエラー一覧
「もう、これだから、新しい言葉を覚えるのは嫌なんだよ」と、何十回目かの泣き言を言っています。C/C++で1000万くらいのスレッドが、サクっと作れれば、別にGolangでなくたって・・・と思うのですが、ないものをねだっても仕方がありません。
こちらの記事(https://leben.mobi/go/configuration_and_package/start-go/)を丸パクリさせて頂きました(ちょっとだけ変えています)。
$ tree
.
├── hello
│ ├── greet.go
│ └── hello.go
└── main.go
てな構造でディレクトリを掘って、ファイルを作ってください。
で、
$ go mod init m ← "m"でもなんでも、好きな文字列を(ここでは"m"とします)
go: creating new go.mod: module m
go: to add module requirements and sums:
go mod tidy
下↓が必要はどうかは不明
$ go mod edit -replace=m/hello=../hello
として、
.
├── go.mod
を作ります。
$ more main.go
package main
import (
"fmt"
"m/hello" // ← ここ重要
)
func main() {
fmt.Println(hello.SayHello()) // パッケージ名 + 最初が大文字の関数
fmt.Println(hello.Greet())
}
$ more hello/hello.go
package hello // ← ここ重要
func SayHello() string { // 最初は大文字
return "Hello World!"
}
$ more hello/greet.go package hello // ← ここ重要 func Greet() string { // 最初は大文字 return "How are you?" }
とすると、
$ go run main.go
Hello World!
How are you?
と、ちゃんと、動くようになりました。
が、全然消せない。
「Microsoft Edgeをアンインストールせよ」の旨の指示がやってきたのですが、通常のアンインストールの方法では、できないように設定されているようです。
調べたら、ここにやりかたが書いてあったので、その通りに実行してみました。
①検索フォームに「cmd」と入力
②「コマンドプロンプト」を右クリックし
③「管理者として実行」しましょう
C:\>cd "Program Files (x86)\Microsoft\Edge\Application"
C:\Program Files (x86)\Microsoft\Edge\Application>dir
そこに出てくる、数字(ここでは、98.0.1108.50)を捜して下さい
C:\Program Files (x86)\Microsoft\Edge\Application>cd 98.0.1108.50
C:\Program Files (x86)\Microsoft\Edge\Application\98.0.1108.50>cd Installe
として、ここから、このコマンドを入力します。
setup --uninstall --force-uninstall --system-level
アンインストールの画面が、以下のようになっていれば成功です。
以上
とか
とか作ったので、これをPrumeClusterで使いたいときの、JavaScriptの書き方
if (obj.id == 0){ // idが未登録の場合
console.log("obj.id == 0")
// データをマーカーとして登録
// var marker = new PruneCluster.Marker(obj.lat, obj.lng);
// 参考資料 http://embed.plnkr.co/WmtpkEqSDJFuFeuiYP54/
//var marker = new PruneCluster.Marker(obj.lat, obj.lng);
var marker = new PruneCluster.Marker(obj.lat, obj.lng, {
popup: "Bell 206 ",
icon: L.icon({
//iconUrl: 'http://sintef-9012.github.io/PruneCluster/examples/helicopter.png',
iconUrl: 'http://localhost:8080/static/person-icon.png',
//iconUrl: 'helicopter.png',
//iconSize: [48, 48]
})
});
以下の"main.go"が、c:\user\ebata\go_template\testsにあるとする。
package main
import (
"log"
"net/http"
)
func main() {
// アクセスされたURLから /web 部分を取り除いてハンドリングする
http.Handle("/web/", http.StripPrefix("/web", http.FileServer(http.Dir("static"))))
if err := http.ListenAndServe(":8686", nil); err != nil {
log.Fatal("ListenAndServe: ", err)
}
}
で、c:\user\ebata\go_template\tests の下に、staticというディレクトリを掘って、そこに、画像ファイル(例:helicopter.png)を放り込んでおく。
で、go run main.goを起動して、ブラウザから、
http://localhost:8686/web/helicopter.png
と入力すると、画像が出てきます。
注意
http.Handle("/web",
では動きません。
http.Handle("/web/",
で動きます。
AmazonJSをインストールしたら、新規投稿画面に、こんなものが出てくるようになった。
さて、これに手を入れるべきか否か? 自動更新に任せて暫く放置するか。
色々手を入れて、wordpressが立ち上がらなくなった時は青冷めたしなぁ。
とりあえずターゲットのコードだけ書き出しておきます。
% pwd
/home/kobore/www/wp/wp/wp-content/plugins/amazonjs/js
% more tinymce-plugin.js
(function() {
tinymce.PluginManager.add( 'amazonjs', function( editor, url ) {
editor.addButton('amazonjs', {
title: amazonjsAdmin.mce.buttonTitle,
image: url + '/../images/amazon-icon.png',
onclick: function () {
editor.windowManager.open({
title: amazonjsAdmin.mce.dialogTitle,
url: amazonjsAdmin.mce.dialogUrl,
width: $(window).width() * 0.9,
height: $(window).height() * 0.9,
id: 'amazonjs-insert-dialog'
});
}
});
});
})();
%
どうも原因が見あたらないのですが、
https://postgresweb.com/err-wordpress-failed-to-load-plugin-url
を見て、思い当たることがありあした。私も、chromoに"uBlock origin"という広告表示ブロックプラグインを入れていました。
これを一時外してみたら、メッセージが消えて、
が出てきました。まだ、リンクには失敗していますが、とりあえず第一の問題点は越えたか、と。
おそらくAmazonで購入できる、日本で(世界でも?)もっとも安価な3Dプリンタの一つを購入しました。
お世話になっている同僚から「迷っているようなら、一番安いものを、とっと買って試した方がいい」と言われたことに因ります。1日の勉強代としてペイするくらいの値段です。
で、まあ、このメモを読んで、購入する人もいると思いますので、最初に申し上げると、「添付マニュアルの記載はゴミです(日本語ページも5Pしかない)ので、これを日本語字幕ONにして、このビデオクリップのまま実施することをお勧めします。
こっち↓が公式ですが、上の方が分かりやすいと思う(日本語字幕をONにすれば)
台座の位置調整が大切で、「A4の紙が入る程度」と説明されていますが、「A4の紙を入れるとちょっと抵抗がある程度の調整する」ほうが良いです。
これをいい加減にやると、
になります。
で、この調整の際に、電源外して、台座を動かすのですが、これが「固く」て結構怖いですが、力づくで動かして下さい(電源外していることが重要です)。
現時点では、パソコンから直接印刷することができなくて(できるのかしれないけど、まだ分からん)、SDカードから読みとらなければなりません。
今日一日で分かったこと
■3Dプリンタの印刷時間が半端なく長い。キーホルダー程度のブツに、約1時間
■この格安プリンタのできあがりは、シャレにならないくらいキレイ
■アームやら台座やらは、ある程度力づくで動かしてもOK(キャリブレーションがずれるということもなさそう)
で、今日一日の結果として、経験的に分かったことを、記載しておきます(多分、私だけしか分からん内容)。
これが、印刷中の外観。
で、大切なのが「操作の順番(手順)」
SDカードしか使えないのであれば、『このUSBケーブルは一体何の為にあるんだろう? 』と思っていますが、今日は、この辺で切り上げたいと思います。
で、今日の成果(失敗も多かったですが)です。右の舟を作っている途中で、添付した溶剤(フェラメント)が無くなりました。
私は普段、PostgreSQLを使っています。主な理由は、PostGISを使いたいからですが、サーバとして立ち上げる必要があるので、そこそこ面倒くさいです。
1つのアプリケーションだけで使えれば良い、と割り切るのであれば、SQLite3が便利だと聞きましたので、golangでちょっと使ってみました。
アプリで使えて、SQL文が使えるようにするために、SQLite3をインストールしてみました。忘れないうちに、手順を記録しておきます。
で、
をダウンロードして解凍して、c:\sqlite3を作って、ここの中に放り込む。
で、あとは、c:\sqlite3にパスを通しておく。
これで環境構築は完了です。
あとは、csvファイルからDBを作ってみます。
まず適当なディレクリを掘ります。
https://people.sc.fsu.edu/~jburkardt/data/csv/csv.htmlあたりから、サンプルのcsvファイル("biostats.csv","cities.csv"あたり)をダウンロードして、ちょっと加工しました(空白とか、ダブルコーテーションを削除)。
をクリックしてダウンロードする。
これで、このデイレクトリの中に、test_dbというデータベースファイルができます。
この中には、2つのデータベース、 biostats, cities が入っています。
これらのDBは、原則としてSQL文が使える(みたい)です。
"sqlite> .exit" で、コマンドプロンプトに戻れます。
で、もって、 "sqlite3 test_db" でDBをSQL文で使えるようになります。
あと、日本語を使えるようにする問題が、未解決ですが、まあなんとかなるでしょう。
取り敢えず、今日のところは、ここまで。
以上
keyword WTC 5331 WK panasonic あけたらタイマ 実家
先程、玄関(外と中)の電灯も、自動的に点灯/消灯する装置を設置しました。
18:30 ± 30分 に点灯し、 23:30 ± 30分 に消灯するようにセットしておきました。
今、実験しています。
基本的には、私が帰省する時に設定しなおせば良いと思っていますが、
この設定、多分ラジカセより簡単だと思いますので、設定を試みて頂けると助かります。
(ちなみにラジオの方が動いているのは、内蔵の電池が停電中も電力を供給し続けているからです)
マニュアルをここに置いておきました(ちなみに館の2Fのテーブルの上にも、分かるように置いてあります)
http://kobore.net/genkan.pdf
が、マニュアルなんぞ読むのは面倒でしょうから、
まず、
でボタンを確認して、
の赤枠でかこった部分をまねて操作して下さい。
万一設定に失敗しても、問題は発生しませんので、御安心下さい。
智一
停電後に、このスイッチが動かなくなった時の普及の方法は簡単です。
玄関のタイマー直しておきました。
写真の赤色のボタンを押して時刻(2400表記)を直すだけで、あとは何もしなくても大丈夫のようです(設定ボタンなどの操作不要)。
背景は、
に記載した通りなのですが、家族から「警告音がうるさい!」と文句を言われて、システムを停止させております。
そこで、添付ファイルのようなものを実現したいと考えています。ただ、これを実現する回路図や、または、製品を見つけられずにおります。
追記:読者の方から、「遅れ消灯スイッチ」
https://www2.panasonic.biz/ls/
を勧めて頂きました。しかし、私の環境では、階段に設置する3つのスイッチ(3路、4路スイッチ)を使うもの(私が、説明していませんでした)で、このデバイスは使えないと思います。
追記:さらに読者の方から「あけたらタイマ」の利用を教えて貰いました。
https://www2.panasonic.biz/ls/densetsu/haisen/switch_concent/cosmo_wide21/lineup/switch/timer/
『このスイッチ(親機、WTC5332W)はタイマー機能のほか、遅れ消灯機能もあります。これと、子機WT5652を3路の位置、Wt5654を4路の位置に使用すれば、いずれのスイッチからも遅れ消灯が可能かと思われます。』
仕様書を読んでみたら、ドンピシャと思われる記載がありました。
なるほど、これならできる(かもしれない)。
合計金額が、7900円 + 2600円 + 2900円 = 13000円 になりますね。
これでちゃんと動くのであれば、この出資には意味がありそうです。しかも、居留守対策もできそうです。
というか、この装置を買って、分解して、リバースエンジニアリングしてみてもいいな、と思っています。
ちなみに、居留守対策装置は、実家でも稼動中です。