Golang 金曜の夜はテストコード
とりま仕事から帰って趣味の事した。
本を読んで、ギターを弾いて
コード書かなきゃね。
草生やさないと。
GOPATH内にgoglandのプロジェクト持ってきた
~/path/to/go/src/gogland/project
とようになるようにした
テスト
@foo.go
package foo func IsOne(n int) bool { if n == 1 { return true } else { return false } }
@foo_test.go
package foo import ( "testing" ) func TestIsOne(t *testing.T) { n := 1 b := IsOne(1) if b != true { t.Errorf("%d is not one", n) } }
テスト実行
go test gogland/project/foo
Golang エラー発生させ
package main import( f "fmt" ) type MyError struct { Message string ErrCode int } func (e *MyError) Error() string { return e.Message } func RaiseError() error { return &MyError{"深刻なエラーが発生しました", 1234} } func main() { err := RaiseError() // 型アサーション e, ok := err.(*MyError) if ok { f.Println(e.ErrCode) } }
Golang チャンネルの構え(最初の一歩)
チャンネル
package main import f "fmt" func receiver(ch chan int) { for { i := <-ch f.Println(i) } } func main() { ch := make(chan int) go receiver(ch) i := 0 for i < 10 { ch <- i i++ } }
このコードはエディタの助けがない状態で書いた。
配列の構え、mapの構え
スターティングGo言語の読み直しをしている。あたらしいパラダイムを学ぶのはやっぱり楽しいね!
配列の構え
とりま初期化できてappendできて回せたらなんとかなるでしょ(経験)
//配列の 構えは n := 10 s := make([]int, n) // 拡張 x := 11 s = append(s, x) fmt.Println(len(s)) //回すのは for i, v := range s { fmt.Printf("%d - %d\n", i, v) }
mapの構え
m := map[string]string{ "a": "hoge", "b": "fuga", } s, ok := m["a"] if ok { f.Println(s) } for k, v := range m { f.Printf("%s - %s\n", k, v) }
MastodonにDBのGUIを追加する
qiita.com
読んで我が家のmastodonにも導入しました。
設定
docker-compose.ymlに下記追記
postgres-gui: restart: always image: donnex/pgweb command: -s --bind=0.0.0.0 --listen=9999 --url postgresql://<mastodonのdbユーザー名>:<mastodonのdbパスワード(あれば)>@db/<mastodonのdb名>?sslmode=disable depends_on: - db ports: - "9999:9999"
"mastdonのdbユーザー名"や"mastodonのdb名"は.env.productionの冒頭に書いてあるのでそれを使います
作業
$ docker-compose stop $ docker-compose up -d
起動時にimageをダンロードする動きが一回入ります(通常の起動より時間かかる)
だめなときはとりあえずdocker logsで内容確認。必要な対処を。多分問題なく動くはずです。
アクセス
$ ssh -L 9999:localhost:9999 <user>@<server>
感想
db見てなんの意味があるのでしょうか?という根本的な問題にぶち当たります。
dockerをいつの間にか見よう見まねで触ってますが、だんだん知識が深まっていきますね。
せっかく身につけた知識がムダにならないようにdockerには死なないでほしい今日このごろ。
スターティングGo言語読了 良書もう一度読み直して、次は何か作るべし。
今日やったこと(やろうとしたこと)
サーバーの/boot領域がいい加減心もとないのでなんとか大きくしようとしました。
LiveDVDから起動して適当にググったサイトで/bootの/dev/sda1を消して/にgrub入れろとか書いてあったのでやってみました。
騙された!!(勝手な言い分)
起動しなくなりました。死に体。
いろいろやりましたけれど
/dev/sda1や/bootをもう一度作り直してgrub-installしました。
起動がGUIになってしまいました。死に体。
で、諦めた。
サーバー再起動時には
init 5して直付けディスプレイとキーボード・マウスはGUI運用します。openboxで。
サーバーなので基本sshさえあいていればなんとかなる。。
ムダな時間を使ってしまった。
4時間ぐらいゴニョゴニョしてサーバーのカオス度が一段と高くなりました。
スッキリしたいけど再セットアップはあまりにも労力が。。
もやもやする。忘れたい。
もうこれ以上変な事しようとしない(何度目の誓いよほんとアホかと)。