基礎からわかるElm読み終わったので読書感想文です。
売り上げランキング: 3,474
基礎からわかるElm読み終わったので読書感想文です。
皆さん、Docker使ってますか?僕は新天地でバリバリDocker使うことになりそうなので慌てて復習していたりします。
さて、そんな中Docker Composeで見事にハマってしまった罠があったので、Project Nameにハイフンは使わないようにしましょうという話をします.
Docker Composeは作成されるcontainer imageの名称が以下のように決められています。
{プロジェクト名}_{サービス名}_{連番}
(https://qiita.com/ymm1x/items/56961f8e2ffb48b8dbe3 より引用)
で、プロジェクト名ってよく hoge-system
みたいにハイフンを間に噛ませるじゃないですか?
その状態でnetworksとか設定してしまうと、ホストからコンテナのIPアドレスを取得する時によく使う docker inspect --format "{{.NetworkSettings.Networks.hoge-system_networks.IPAddress}}" hoge-system_service_1
とかがパースエラーになって実行出来ないのでよくないという。
単純に .env
とかで COMPOSE_PROJECT_NAME=hoge_system
にしとくとか、docker-compose実行時に -p
オプション指定してプロジェクト名をアンダーバーのものにしとくと良いです。
Go 1.12来ましたね。
色々変更点はあるんですが、個人的にベンチマークの実行回数が指定出来るようになったのがオッとなり触ってみました。
簡単なコードで試してみます。
package main func Calc(x, y int) int { return x + y }
package main import ( "testing" ) func BenchmarkCalc(b *testing.B) { for i := 0; i < b.N; i++ { Calc(b.N, b.N) } }
足し算するやつです。
まずは今までやっていた実行秒数指定から。
$ go test -bench . -benchtime=5s goos: darwin goarch: amd64 pkg: hoge BenchmarkCalc-8 10000000000 0.35 ns/op PASS ok hoge 3.516s
5秒間回せました。
次に5回実行するようにやってみましょう。
$ go test -bench . -benchtime=5x goos: darwin goarch: amd64 pkg: hoge BenchmarkCalc-8 5 53.0 ns/op PASS ok hoge 0.006s
おー!5回実行できてますね!!
ただ、あまりにも少ない実行回数だと1回あたりの実行時間が大きくなってしまうみたいですね・・・
ちなみに10000000000回だと
$ go test -bench . -benchtime=10000000000x goos: darwin goarch: amd64 pkg: hoge BenchmarkCalc-8 10000000000 0.35 ns/op PASS ok hoge 3.541s
先程の実行時間指定でベンチマークしてみた値と同じになりました。
これが実装された経緯が
これだと思うのですが、Russ Cox氏の反論とか見てると面白いですね。
正直、僕も実行回数指定出来てもあんま意味ないんじゃないかと思っとります。
取り急ぎ、現場からは以上です。
先日、こんなnoteを販売しました。
その後、あれよあれよと私の予想を大きく上回って売れてしまい、売り上げがこんな額になってしまいました。
買っていただいた皆様ありがとうございます!そこまで大したことを書いていない内容で数百人の方に買ってもらって恐縮の極みです・・・
正直、こんな額を自分のために使うのはなんだか気が引けるな・・・と思ってしまい、ちょっと使い道を考えております。
なんか「こんな使い道あるぞ!」って方は @syossan27 までお知恵を貸して頂けると幸いです・・・🙇
Go界隈で有名なDave Cheney氏の書いたPractical Goを読んだ時のメモをザッと貼り付ける。