Goをやっていく
最近数ヶ月、腰を据えてGoを学んでいる。今までも何度も挑戦してきたけど、途中でやめてしまっていた。
Tour of Goとメルカリ社が提供しているGopher道場の資料を一通りこなし、簡単なツールを見よう見まねで書いている。進捗としては過去最高な気がする。もちろん実務レベルではないけど。学生でもGoを書いてる人多いしISUCONでもGoを使う人が多かったり、みんなどうやって身につけたんだろうと不思議で仕方ない。
今は『Go言語でつくるインタプリタ』を進めている。字句解析の章を終わらせ、今は構文解析器を作っている。単なる写経にならないように、本をじっくり読解し、意味を理解(しようと)しながら続けている。続けることが大事。
いずれは仕事でGoを書いてみたい。
GOPATHを設定する
Goに関するブログを書く第一歩として、今回はGOPATHの設定についてかく。
OSはmacOS catalina 10.15です。
.zshrc、.bash_profileなどに追記する。
export GOPATH=$HOME/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN
これらが反映されているか go env
で確認できる。
GO111MODULE=""
GOARCH="amd64"
GOBIN="/Users/your_name/go/bin"
GOCACHE="/Users/your_name/Library/Caches/go-build"
GOENV="/Users/your_name/Library/Application Support/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/your_name/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/your_name/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/Cellar/go/1.15.1/libexec"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/Cellar/go/1.15.1/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/2s/bg49sl_x61x4ng46j34lpbsh0000gn/T/go-build685570820=/tmp/go-build -gno-record-gcc-switches -fno-common"
使っているGoのバージョンは1.15です。
#ありがとうradigo そしてmacOSとの格闘
普段、Goのツールに大変お世話になっていて、go getして自分の環境でバイナリをビルドして使っている。特にお世話になっているのがradigoである。
現在23歳だが、ラジオを聴くようになって10年以上になる。radikoが誕生したのが2010年。その頃は中学生で、パソコンやiPod touchで利用していた。エリアフリーとタイムフリーの機能はまだ無かった。東京のラジオが聴きたくて仕方なかった。そのために東京の大学に行きたいと思っていたくらい。
今やいつどこにいても全国のラジオが聞けて便利である。でも、リスナーとして、現行のradikoアプリは不便を感じる点が未だにある。10秒送り/戻り機能がないとか…。何より録音機能がないのはつらい。大人の事情で実現できないのは察せる。
radigoを知ってから、もう手放せない。オードリーのオールナイトニッポンと山下達郎のサンデーソングブックをエンドレスリピートしている。
radigoはdocker imageが用意されているのでそれを使うのも良い。けどエリアフリー機能を使うための環境変数をdockerで設定する仕方が分からないので、今はソースコードからバイナリをビルドして使っている。
go get -u github.com/yyoshiki41/radigo
cd go/src/github.com/yyoshiki41/radigo
make installdeps
make build
macからXcodeをアンインストールしている場合、make installdepsでつまずく。エラー文に
xcode-select --install
を実行しろと出るので実行すると
xcode このソフトウェアは、現在ソフトウェア・アップデート・サーバから入手できないため、インストールできません。
というポップアップがでた。
https://developer.apple.com/download/more/
から、自分のOSとXcodeのバージョンに符号するXcode Command Line Toolsを取得してあげれば良い、というのが常套手段なのだけど、Xcode使ってないんだからXcodeのバージョンなんか分からないよ…
Catalina10.15だからXcode12かな?と思ってインストールしたけどダメだったし、11でもダメだった。結局Xcodeインストールした。
Xcodeインストールしたらmakeが成功しました。
(最終的にはGoのブログじゃなくなっている…)
参考
今日からGoをはじめる人に伝えたい$GOPATHではまった話
po3rin/github_link_creator (レポジトリのリンク生成ツール)
carbon-app/carbon (Twitterでよく見るソースコード画像生成ツール)