メンチカツ

ロースカツが好きです

株式会社はてなに入社しました

株式会社はてなに入社しました

株式会社はてなに入社しました - hitode909の日記

退職します

3月末で現職である渋谷のインターネット広告代理店を退職します。 正確には、非正規社員なので契約満了です。 1年10ヶ月の間、フロントエンド、バックエンド、インフラも少々と、幅広く技術に携わることが出来、入社前には無縁だった技術を多く身に付けることができました。 子どもがおり時短勤務だったことと、ITベンチャーに多い10時-19時の、遅めの就業時間が生活スタイルにマッチしないことで、思っただけのコミットが十分に出来ていないことを、ずっと心苦しく思っていました。

4月以降は、時短でなく通常勤務、定時時間内でしっかり働くことが出来るようになり、家からも近く、徒歩で通勤することになります。長く働けるといいな。

在宅、リモートワークも非常に魅力的ですが、今はまだ、組織の中の熱気や勢いを肌で感じ、影響を受ける位置で働いていたいと思いました。

育児と仕事の両立、みんなそれぞれの事情があり、配偶者や実家義実家、兄弟姉妹等の育児協力が得られるかどうかで、キャリアパスは大きく変わると思います。子どもの発熱のとき等にお迎えに行けるのが自分しかいない、育児協力の得られない環境下で10年やってきましたが、それでも絶え間なくなく働き続けることができた、迷惑をかけながらも働く場所を用意してくださった、全ての勤務先と仲間に感謝いたします。

Fish shell環境でgvmを導入する

Fish shell環境でgvmをインストールすると、bashで書かれているgvmスクリプトが構文エラーしてしまい、useコマンドなどがうまいこと動作しません。 これは、以下の手順で解決できます。

fishermanをインストールする

github.com

fishermanはfishのプラグインマネージャです。fisherコマンドが利用できるようになり、便利なプラグインを簡単にインストールできるようになります。

$ curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs git.io/fisher
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
100 61490  100 61490    0     0  22493      0  0:00:02  0:00:02 --:--:-- 50073

bassプラグインをインストールする

github.com

bassはFish shell環境でbashを利用するためのプラグインです。以下のfisherコマンドで簡単にインストールできます。

$ fisher edc/bass

gvmをインストールする

いよいよgvmをインストールします。

github.com

bashから、以下のコマンドを実行します。

$ bash
bash-3.2$ bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)

Cloning from https://github.com/moovweb/gvm.git to /Users/onamae/.gvm
Created profile for existing install of Go at /usr/local/opt/go/libexec
Installed GVM v1.0.22

Please restart your terminal session or to get started right away run
 `source /Users/onamae/.gvm/scripts/gvm`

source /Users/onamae/.gvm/scripts/gvm を実行したあと、/Users/onamae/.config/fish/config.fish に以下を追記します。

function gvm
  bass source ~/.gvm/scripts/gvm ';' gvm $argv
end

Fish shell support · Issue #137 · moovweb/gvm · GitHub

書いたら、source /Users/onamae/.config/fish/config.fish を実行します。 これで、Fish shell環境でgvmコマンドが利用できるようになりました。

brew updateでRepository not foundと言われたら

brew updateしたらそんなリポジトリありませんよ言われました。

> brew update
remote: Repository not found.
fatal: repository 'https://github.com/peco/homebrew-peco/' not found
Error: Fetching /usr/local/Homebrew/Library/Taps/peco/homebrew-peco failed!

なくなってしまったリポジトリbrew untapコマンドで消せます。

> brew untap peco/homebrew-peco
Untapping peco/peco... (47 files, 37.9K)
Untapped 2 formulae

このあと、再度brew updateすると、エラーなく更新できました。

brew untapって使ったことなかったわー

Docker for Macで「com.docker.osx.hyperkit.linux failed to start Exit code 1」

Docker for Macをアップデートしたらこんなエラーが出て起動できなくなった。

f:id:easy-breezy:20170213130726p:plain

調べると、リセットしたほうがイイヨー、アンインストールダヨーって意見が

出てくるんだけど、もうちょっと調べると

github.com

rm ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2

だけすれば復帰できるってことで、やってみたら無事回復。よかった。

MySQLで外部キーを追加しようとしたら「Cannot add foreign key constraint」と怒られた

Sequel Proで外部キーを追加してたら怒られた。

MySQLの応答: Cannot add foreign key constraint

f:id:easy-breezy:20170203161622p:plain

わ、わからん。理由がわからん。

そこで、以下のエントリ

blog.cosmocleaner.info

を参考にさせていただきました。

rootで

mysql> SHOW ENGINE INNODB STATUS\G

をすると、

------------------------
LATEST FOREIGN KEY ERROR
------------------------

という箇所があるので、そこを確認するとエラーの詳細を見ることができます。

まあ、繋げようとしているカラムの形が微妙に違っているのがほとんどだと

思うので、

  • 片側だけunsignedにチェックが入ってないか
  • tinyintとsmallintを繋げようとしていないか

とかを確認すれば、大抵は解決できるんじゃないかな?と思います。

ちなみに

データが入った状態で外部キーをつけようとすると、以下のエラーが出ることがあります。

Cannot add or update a child row: a foreign key constraint fail

これは、今あるデータの整合性が取れてないので(参照先に存在しないIDがある等)

適宜修正をしてあげましょう。

【メモ】Golangでスライス型にスライス型をappend

Golangでスライス型にスライス型をappendする。

s1 := []string{"aa", "bb", "cc"}
s2 := []string{"dd", "ee", "ff"}

s1 = append(s1, s2)

としてgo runすると

cannot use r (type []string) as type string in append

とエラーしてしまう。[]stringにappendできるのはstringだよ!と。

これは、appendの2つめの引数に3点リーダ(...)を付与することで解決できます。

s1 = append(s1, s2...)
// s1=>[]string{"aa", "bb", "cc", "dd", "ee", "ff"}

s2が可変引数として展開されて、以下を実行したのと同じ結果が得られます。

s1 = append(s1, "dd", "ee", "ff")