at backyard

Color my life with the chaos of trouble.

B/Wにて新曲「Mellow Yellow」をリリースしました!

昨日ツイッターでつぶやいたとおり、Mellow Yellowという新曲をリリースしました!
B/Wとしては10年以上ぶり(!)の新曲となります。
緩めでポップな感じの曲になっておりますので、よく晴れた日のお散歩やドライブのお供に聴いてもらえたらと思います。

www.instagram.com

写真はリリース打ち上げ中のもの。
近所にクラフトビール醸造所&お店があり、そちらでビールをたっぷり飲みながら楽しみました。

metabase で 質問をコピーする方法

metabase で 質問をコピーする方法

未来の自分に向けた metabase に関する備忘録となります。

www.metabase.com

metabase で 質問をコピーするには、既存の質問を一度開き、なにかしらの編集を行い、それから新しい質問として保存することで、結果的に質問をコピーすることが可能となります。
(ただし、普通に上書き保存のみで保存処理が終了してしまうこともある。何をすれば、新しい質問として保存することができるようになるのか、そのフラグの部分が未だにわかっていない。)

上👆についての追記: metabaseの上書き保存について

画面右上の方にある鉛筆マークの 質問を編集する ボタンを押してから編集すると、上書き保存をして終了してしまう。
編集ボタンは押さず、そのままフィルターなどの変更をすることで、新しい質問として保存できるフラグが立つ。


もちろん、それだけだと分かりにくいので、既存の質問をコピーする機能をつける提案がissueとして上がっています。

github.com

ただ、issueを読んでいると、deep copyを実行するには割と実装的な部分で難しいところがあったりするようで、簡単に追加はされなそうな雰囲気。

また、実装的な部分以外にも、単純にコピー機能を追加するっていうわけにもいかなそう?
結構コピー機能ないと不便だったりはするんですよね。。。

github.com

metabaseはフロントサイドがReact、サーバサイドは Clojure で実装されているので、特にClojureについては自分は触る機会も全くと言っていいほどにないので、これを機に勉強がてらmetabaseソースコードに触れてみるのも良いかもしれない。

Gormでunsupported Scan的なエラーが出た

Gormを触り始めているのだが、DB(MySQL)にアクセスしてレコードをSELECTする際にこんなエラーが出てきた。

(sql: Scan error on column index 2, name "created_at": unsupported Scan, storing driver.Value type []uint8 into type *time.Time)

取得結果を見ると、created_atを始め、TIMESTAMP型のカラムだけ値が正常に返っていない。

解決方法はstack overflowで見つけた。

stackoverflow.com

アクセスするときに?parseTime=trueを付ける必要があるらしい。

実際のコードだと下記のような形となる。

db, err := gorm.Open("mysql", "{username}:{password}@{protocol}/{dbname}?parseTime=true")

Go Modulesを試してみた。(書きかけ)

Go Modulesを試してみた。

パッと見だと自分の頭ではうまく理解できなかったので、手を動かして理解しようとした。これは自分用に後で見返すための備忘録的な役割を担っている。
また自分は普段はあまりGoを使っていないので、見当違いのことを書いている可能性もある。そこはご了承いただきたい。

基本的に下記のドキュメントを参照している

github.com

まだ、自分用のメモとして残したい故に書いているので、この文章は追記前提で書いている。

試したときの環境

macでgo 1.12を使っている

go version
go version go1.12 darwin/amd64

go mod initで初期化

GOPATHの外側で作業用のディレクトリを作成する

ドキュメントと違っていても動くには動くよう。
特に問題なし?

mkdir hello
cd hello
go mod init hello

これで初期化完了。

ちなみにドキュメントでは下記のように書いていた。
おそらくmoduleというものは下記のように書いたほうが良いのかもしれない。
あまりココらへんをちゃんと理解していないので、勉強する必要ありそう。 とりあえず、上のコードでも動くようだ。

mkdir -p /tmp/scratchpad/hello
cd /tmp/scratchpad/hello

go m

コードを書く。 ginを試してみたかったこともあり、quick startしてみた。

github.com

package main

import "github.com/gin-gonic/gin"

func main() {
    r := gin.Default()
    r.GET("/ping", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "message": "pong",
        })
    })
    r.Run() // listen and serve on 0.0.0.0:8080
}

buildした段階でインストールが必要なパッケージはダウンロードされる。 go.modが同じディレクトリ上にあるかでmodulesは判断しているようだ。

go build

buildされたバイナリはそのまま実行できるよう。

go modulesを使った場合、インストールしたパッケージはどこにダウンロードされる?

$GOPATH配下の下記のディレクトリに入っていた。

$GOPATH/pkg/mod/{ここに入る}

参考にした記事

github.com

qiita.com

www.wantedly.com

qiita.com

mac環境でpython mojimoji のインストールに失敗した際の備忘録

mojimojiをインストールしようとした際の備忘録。
mac環境だとコンパイラ関連の要因でインストールに失敗するよう。

下記の記事を参考にさせていただき、問題は解決。

qiita.com

ちなみに私の環境はpyenv上でセットアップしたPython3
(使用していたバージョンは3.7)

上の記事にもあるように下記の一連のコマンドでセットアップは完了した。

git clone https://github.com/studio-ousia/mojimoji
python3 setup.py install

例えば、直接Python上にインストールしたくない場合など(仮想環境上だけで使用したい場合)は、仮想環境をactivateした状態で👆のコマンドを実行すれば、仮想環境上でmojimojiが使える。

pyenv使ってpythonをインストールをしようとしたらzipimport.ZipImportErrorが出たので対応した備忘録

pyenv使ってPythonをインストールをしようとしたらzipimport.ZipImportErrorが出たので対応した備忘録になります。

macOS Mojave 10.14にアップデート後にpyenv install 3.7.2しようとしたら、下記のようなエラーが出ました。

zipimport.ZipImportError: can't decompress data; zlib not available
make: *** [install] Error 1

こちらの方が書かれている内容を参考に対応して解決したので、そのコマンドの履歴だけ載せておきます。

qiita.com

# 前に実行していると思うが、再度行う必要あった
# 少し前にクリーンインストールとかしたっけな??
xcode-select --install

# 上の記事で書かれていたコマンド
# ただ結果的には"xcode-select --install"したので、これは不要だった
sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

# zlibも入っていなかったのでこちらも実行
brew install zlib

これでpyenv install 3.7.2できました。

僕の考える最強のコンビニ飯

僕の考える最強のコンビニ飯、というタイトルで簡単に書いていきます。
まず結論から書きます。ちなみにファミマで買います。
(商品名ちゃんと覚えていないので、若干雰囲気で書いています😂)

  • 冷凍の四川風汁なし担々麺
  • タンドリーチキン風、サラダチキン
  • ポテトサラダ

値段的にはこれでだいたい600円ぐらいだったと思う。
今のところ、これが最強。
これ食べて、サプリ飲んで、OK。

妻が仕事で、一人で家で過ごしているときなどは最近これで済ませてしまう。 準備するための時間も短い。