go installを知ったのでgopheronを対応させた
こんばんは。このところ、残業で遅く帰ることが多く、ワンオペ嫌いの妻は子供達に洗濯物干しの手伝いをさせています。@kjunichiです。
背景
go getはよく使うが、go installをすると、実行したディレクトリの.goファイルをビルドして、 $GOPATH/binにインストールしてくれると言うのを最近知ったorz。
問題
gopheronでgo installを試すと、$GOPATH/binにgopheronコマンドをインストールできた。
しかし、起動すると「Unable to find Electron app」
というエラーになる。これはElectronが文句を言っている模様。
現状のgopheronでもgoの実行ファイルからインストールされたelectronを実行しているが go installでインストール後に任意のディレクトリからコマンドを実行するにはまだ対応が不足している模様。
gopheronをgo installして動くように対応するには
GOPATHを基準にパスを指定する
とりあえず、自分の環境でGOPATHを未定義、もしくはパスが1つのみの環境に対応するように割り切り、作業を進めた。
GOPATHが定義されている場合、macOS、Linuxでは
$GOPATH/go/src/github.com/kjunichi/gopheron
にgopheronのコードがgo getすると入れられる。
Windowsの場合は
%GOPATH%/src/github.com/kjunichi/gopheron
となる。
これらを基準となるフォルダへのパスを設定することにした。
Goでの具体的な実装は
$HOME/go/src/github.com/kjunichi/gopheron
にcdすることで対応した。
windowsの場合は、GOPATHが未定義の場合、環境変数%USERPROFILE%をつかって、
%USERPROFILE%/go/src/github.com/kjunichi/gopheron
環境変数が未定義かを判定するには
以下のようにlen関数を使うことで対応した。
goPath := os.Getenv("GOPATH") if len(goPath) == 0 { if runtime.GOOS == "windows" { goPath = os.Getenv("USERPROFILE") + "/go" } else { goPath = os.Getenv("HOME") + "/go" } }
goでカレントディレクトリを移動するには
rutimeパッケージをインポートして、
import ( "runtime" )
os.Chdir(ディレクトリパス)で移動できる。
gopheronPath = getGopath() + "/src/github.com/kjunichi/gopheron"
os.Chdir(gopheronPath)
成果物
まとめ
goでの環境変数の取得、空文字列の判定ができるようになった。 あと、カレントディレクトリの移動方法も学んだ
関連記事
14年前の記事
13年前の記事
11年前の記事
2019年のAmazonプライムデーで買ったものメモ
こんばんは、先日お泊まり保育の時から次男が微熱が続き実家で過ごしていた@kjunichiです。
背景
12コアのRyzen 9 3900Xの購入を奥さんに睨まれており、出来ずにいる。
購入したもの
直前にビックカメラでECナビのポイント稼ぎも兼ねて購入したWindowsでのBoot campで使えるUSB2.0規格のメモリー
2019年の8コアMacbook Proのキーボードには必需品かも
長男のPCにつなげていた激安キーボードが故障したので、今後小学校でPCに触れる場合、日本語キーボードの方が 良いかもと思い、日本語配列の安めのキーボードを買ったら、直後にもっと安いモデルを紹介されるなど。
勉強会にも持参している電源タップが接触不良気味なので、新しいものを購入。
まとめ
去年は、直後にマレーシアへの海外旅行が控えていたので、それに向けてお得に買い物できたが、 今年は、微妙だった。。
関連記事
9年前の記事
6年前の記事
2019年第2四半期振り返り
こんばんは。平日は子供達のゲームに付き合わない代わりに、休日は一緒にゲームすることになっている@kjunichiです。
全体
よかった点
- 過去のブログ記事のYoutube化を継続できている。
- macOSではNVEncの代わりにvideotoolboxなるAPIでHWエンコできることをしってこれを実践。
- 2012年モデルのMacBook Proから最新の2019年モデルにアップグレードできた。
- ルンバで自走ロボットができたw。
課題
- Goでのチャネル関連が分かっていないので、勉強したい。
- UE4でシーナリーアニメーターっぽいやつを作りたい
- UE4でネット対戦のFPSを作りたい。
- gopheronのプラグインシステムが構想でぐるぐる回って進んでない。
- 知育アプリの開発ができてない。
4月
Ryzen 5 2400Gでコスパ重視のPCを次男向けに自作。 これには後日談があって、夢中で久しぶりの自作PCに取り組んでいたら、事前に申し込んでいた 子供たちの習い事の展覧会が終わっていたという。
散らかり放題の我が家で不安だったが、3万円を切った価格なら失敗しても実家に持っていけば良いか。と 購入したところ、大変役になっている。PCやスマホのコード以外、特に事前に片付けもしなくても、何とか ルンバが頑張って掃除してくれる。これは、俺のQOL向上に大変よい買い物だった。
また、電子工作もできるのもポイント!ArduinoやRaspberry Piから制御できて子供たちと盛り上がった。
- 2019年春、Ryzen 5 2400Gでコスパ重視の自作PC
- ルンバ(ルンバ606)が3万円切ったので、我が家にもやって来た
- Fire HD 10 タブレットが届いた
- Julia言語からmruby-webcamを使ってWebカメラの画像を取得した
5月
前半はHerokuで運用していたボットを治すなど。 後半はついに2012年モデルから2019年版の8コアのMacBook Proにアップグレードした! 普段の買い物は奥さん管理下の航空会社のカードでポイントをためているが、MacBook Proは自腹なので、 ソニー銀行のカードでデビッド決済して、キャッシュバック。上限20万までなのと、貧乏すぎて残高詰めないから、 最低ランクの還元率で泣いた。
- herokuにデプロイしてたSlackボット(Botkitベース)を治した
- Surface goをusbから充電できるアイテムをゲットして試した
- Julia言語で久しぶりにHTTPをHTTP.jlや生ソケット通信で喋って、動画配信を試した
- 2019年版8コア版のMacBook Proが届いた
6月
MacBook Pro買ってしまったので、周辺環境を整備すべく散財w バックアップ用のHDDやiPhone用にワイヤレス充電器など
MacBook Proを生かすべく何か作らねばという強迫観念にかられるも、それにみあった進捗はでなかったw PASMOの残高表示はそこそこ便利だと自負してるが。
- 久しぶりにHDD(EX-HD3CZ)を買った
- lightning ケーブルのカモから卒業すべくQiのワイヤレス充電器を導入した
- Xperia SO-01Bを復活させ、キッズ携帯に機種変しようとしたが
- MacBook ProでPaSoRi(RC-S320)を繋いでJuliaでPASMOの残高を表示した
- 8コアのMacBook Proの為に激安マウスを買った件