go get で permission denied が発生する

goのバージョンアップが上手くできてなかったので発生した。

事象

go get でパッケージをインストールしようとすると、以下のようなエラーが起きる。

$ go get -u github.com/kawaken/chatwork-cli
go install runtime/internal/atomic: open /usr/local/go/pkg/linux_amd64/runtime/internal/atomic.a: permission denied

どうやら古いバージョンを移動や削除せずに、tarで展開してしまったのが良くなかったらしい。

ちゃんとバージョンアップする

現行のバージョンを確認。

$ go version
go version go1.7.1 linux/amd64

既存のgoをバージョン付きのパスに変更する。残す必要がなければ削除して良い。

$ sudo mv /usr/local/go /usr/local/$(go version | awk '{print $3}')
$ ls -d1 /usr/local/go*
/usr/local/go1.7.1/

新しいバージョンのgoをインストールする。

# cd /usr/local/src/
# wget https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz
# tar -C /usr/local -xf go1.8.3.linux-amd64.tar.gz
# go version
go version go1.8.3 linux/amd64

slackのstatusを更新するやつを利用してみた

こちらの記事を読んで早速試してみた。

GoogleカレンダーとSlackステータスをワンクリックで連携できるアプリをGoogle Apps Scriptで書いた - 詩と創作・思索のひろば

基本的にはそのまま使えるけど、少し修正した。 GASを使ってSlackと連携するためのやり方が勉強になった。

プライベート予定をスルーする

そもそも会社のカレンダーで同僚に公開できないような予定を管理するのはどうなん?というのはあるものの、まぁだからといって表示していいものでもないのも確かにそうなので。

EventのVisibilityがPRIVATEの時にはスルーするようにした。

他人の出退勤の予定をスルーする

社内の運用で、特に出退勤に関する予定をチームメンバーにも登録するというのが定着している。例えば、

  • 16時早退(山田)
  • 午前休: 佐藤
  • 田中(2h休)

といったタイトルで登録されている。

終日予定で登録されていれば良いのだけど、休んでいる時間帯で登録する人もいる。その時間になると、slackのstatusがみんな同じ他人の休みを表示してしまって使い物にならない。

他人から登録された予定を弾いたら良いかと思ったが、ミーティングの予定は主催者が参加者をゲストとして登録することがある。仕方ないので、タイトルのキーワードマッチで弾くようにした。

let IGNORED_COLLEAGUE_EVENT_REGEX = /^[出帰退]社|早退|休み|時間休|[hH]休|半休|午[前後]休|健康診断|外出|移動$/;

その他

登録の都合上予定がかぶることがあって、そういうときにどちらかしか表示されないようになっているので、そこをどうにかしたい。あとは、勤怠情報をつぶやく専用チャンネルがあるので、そこに「今日は Aさん がおやすみです」とか投稿できるようにしたい。

修正したやつはこちら。

https://github.com/motemen/gas-google-calendar-to-slack-status-farm/compare/master…kawaken:add-conditions-to-ignore

読んだ: Java本格入門 ~モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで

最近Java をやることになったが、久しぶりなので改めて学習しようと思い、読んでみた。

Java本格入門 ~モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで

Java本格入門 ~モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで

Javaの本は沢山あるんだけど、最新のバージョンを踏まえた入門系の書籍は書店では見つけられなくて、Twitterで見かけたこの本はJava8にも対応しているようだったので、購入した。

入門なので、言語の基本的な型などの話から、ビルドやテストの話まで幅広く記述されている。全く知らないわけでもないので、前半はサラッと読んで後半をじっくりと読んだ。

所々で「今までこうだったけど、今はこうだよ」という説明が丁寧にされていて、自分の知識をアップデートできたし、とても良かった。

読んだ: みんなのGo

かいつまんで読んでたやつを改めてちゃんと読んだ。

みんなのGo言語【現場で使える実践テクニック】

みんなのGo言語【現場で使える実践テクニック】

Goでプログラム書くときに、こう言う時はどういう実装が良いのかな?と悩むことがあるけど、そういう時に参考にできる実践的な書籍だと思う。

個人的にはCLIのツールを作ったりすることが多いので、その辺が参考になった。

あと、テストのところとか。

必要なところをかいつまんで読めるので、Tour of Goやった後とかで、実際にやりたいことがあれば参考にしたら良さそう。

読んだ: スタンフォード式最高の睡眠

最近、眠りが浅いらしく夜中に起きてそのまま眠れないということが度々ある。そんな時に店頭で見かけたので買ってみた。

スタンフォード式 最高の睡眠

スタンフォード式 最高の睡眠

色々と最新の研究事例などをもとに説明がされているのだけど、結局対策としては俗説で聞いたことがあることだったりして、結局そうなのかよ…という残念な感じが拭えない。

例えば、よく聞く睡眠時間を90分の倍数にしようという俗説に意味はないと言いつつも、最初の90分を大事にしようというところとか。

なぜそうなのか、ということがわかったのは良いが、俗説にあるようなことでもできて入れば、こんな苦労はしてないわけで…。

期待外れ。

Goでプログラミング未経験の新入社員の研修をやった

今年の6月に配属されてそれから10ヶ月、3月末まで新入社員の研修を行った。

新入社員(以下Aさん)はプログラミング未経験ということで、どんな言語で研修を進めるか悩んが、これからチームとしてはGoでやって行こうという状況だったので、Goで研修を行うことにした。

以下散文。

プログラミング未経験向けのGoの情報は多くない

まずは参考になる書籍を探してみた。もともとGoの書籍は少ない上に、既存の言語を経験したことがある人を対象とした書籍ばかりなので、その辺りがなかなか悩ましかった。

とりあえず店頭で中身を眺めながら、スターティングGoにした。とりあえずこの書籍を中心に基本的なことを学んでもらうことにして、写経をしつつわからないところをフォローするというスタイルで始めた。

あとは、過去に自分が作っていたGoの基本的なハマりどころを確認するための問題集をやってもらうことにした。

最初はそんな感じで進めた。

カレンダーを扱うライブラリを作る

あるプロジェクトで必要だったので、カレンダーを扱うライブラリを作ってもらうことにした。

もともとRubyの実装があったので、それを元に作ってもらうようにお願いしていたが、自分も忙しかったりしてほとんどフォローできてなかったので、正直モチベーションは高くなかったと思う。

ちょっとしたウェブプリケーションを作る

一通り書籍の学習ができたタイミングで、グループ内で使用するための社内ツール的な位置づけで、ウェブプリケーションを作ってもらうことにした。

ここではDB周りの学習もするため、ER図書いたり、SQLを頑張って書くということもやってもらった。

LINEのボットを作る

年明けあたりからLINEのボットを作ることにして、天気予報ボットみたいなものを作ってもらった。

ボットは実装したら実際に動かして確認のレスポンスが得やすい、というところが研修には向いているのかもしれない。

多分この辺りから本人も楽しんでプログラミングができるようになってきたんじゃないかなと思う。

もともとLINEのボットはやるつもりだったけど、もっと早く着手してたら楽しめたかなぁと思う。ここは研修の見通しが良くなかった反省点。

大阪で行われていたLINEのハッカソンにも参加したりとなかなかアクティブに動いてもらっていた感じ。

社内の情報共有

社内の情報共有用のサイトに、Goのスライスについてきちんと調べてもらって記事を書いてもらった。

他にもポインタの話とか、よく調べてくれてまとめてくれた感じ。

自分が教えたこと

まぁそんな感じで10カ月を過ごしてもらった。自分ができることはあまり多くなくて「プログラマかくあるべき」みたいな話が多かったと思う。

Goって初心者向きなのか?

自分としては向いていたと思う。

Goは愚直に書くことが許されるというか、洗礼された書き方を追求しなくて良いというか、やってることは一緒だけどコードの書き方がイケテナイのでダメみたいなこともあまりない。

そういう観点で素人も玄人も近しいコードになると思っている。

なので、最終的にAさんが書いていたコードは設計上の問題を除くと、特にどうこういうつもりもないし、それで良いんだというのがGoの良いところだと思っている。

とはいえ、Goで飯が食っていけるのか?

これについてはちょっと確信が持てない。東京にいるならまだしも、大阪だとGoやってれば食いっぱぐれないみたいな状況も想像できない。

わかんないけど、転職したいんですけど〜みたいな状況になるとGoだけでは厳しいかもしれない。

本人もそういうあたりは理解していると思うので、うまく自分のスキルを磨いてもらえればと思う。

終わりに

特にまとめはないんだけど、そういう環境でGo勉強してたプログラミング未経験者もいたよって話です。

花粉症の薬かれこれ1年くらい飲んでる

薬に頼らずなんとかがんばろうとしていた時もあったけど、薬飲みだすとなんかそういう抵抗がバカらしくなった。

花粉症で薬を飲まない人は、つらいつらいと嘆いてばかりではなく、さっさと病院行こう。

自分は皮膚のアレルギーの関係もあってもう丸1年くらい薬を飲んでるけど、QOLがかなり向上した。

眠くならないクスリもある

自分が薬に頼りたくなかった理由が、眠くなるからだった。病院に行って相談したところ「アレグラ」を勧められた。

先生曰く「飛行機のパイロットが飲んでも大丈夫なやつ」らしい。その分効き目は弱いらしい。1日1回みたいなやつは眠くなるからやめといたら、とも言われた。

とりあえず飲んでみて、改善しなかったら違う薬試そうってなった。特に問題なかったので、アレグラ飲み始めて、今はジェネリック医薬品のフェキソフェナシンを飲んでる。

薬局で買うと高い

フェキソフェナシンは安い方。近所のドラックストアでは、56錠(4週間分)で1700円くらい。アレグラは錠数が半分で同じくらいの金額する。

病院で出してもらうと、56錠を3割適用で504円。アレグラだともう少し高いかも。でも3割適用されるし、市販よりは確実に安い。

初診料とか取られるけど、2回目からは薬だけ出してもらえる。前回行った時は、他の薬とか色々出してもらって、2000円くらいだった。

皮膚科でも花粉症の薬は出してもらえるから、今の時期、耳鼻科混んでそうだったら皮膚科に行ったら良いと思う。

あと、病院の待ち時間は読書する。それにスマホがあれば暇つぶしには困らない。

飲み薬以外の対策

ドラックストアとかに置いてる、体質改善するようなことを匂わせているサプリメントとかあるけど、あれは高いし効果もハッキリしないし(まぁサプリだから)、オススメしない。

花粉症ってプラセボでどうにかなるレベルではないと思うんで。

塗り薬ならオッケーみたいな感覚があったので、鼻の周辺に塗るような薬も試してみたが、あまり効果が感じられなかった。

目の周りにワセリン塗ると目が痒くなりにくいらしく、試してみたこともある。保湿することは皮膚を痒くしにくくする効果があるので、目の周りが痒くなるのを軽減することはできた。

目の中が気持ち悪いときには効果ない。アイボンとか使ってた。なんかそれも良くないみたいな話も見聞きするけど。

シーズン前に飲み始めるみたいな

病院で処方される花粉症の薬はシーズン前に飲み始めないといけない、みたいな話を見聞きすることがある。

実際先生にも言われたし、今年は去年と比べても明らかに辛くないので、まぁそういうもんなんだろう。

でもシーズン前に飲み始めないと全然効果がないわけではない。自分は飲み始めた日から効果はあって症状が軽減されていた。

なので、早めに病院行って薬飲もう。

丸1年くらい飲んでも大丈夫なのか

心配だったので飲み始める前に聞いてみたが、先生は「常用しても大丈夫」と言っていた。

しかし全く副作用がない、ということはないだろう。長年飲んでいた結果、何か別に影響が出るってことは今後あるかもしれない。

今は皮膚のアレルギーの関係で、飲まないと日常生活に支障があるので、常用しないといけなくて、結果として花粉症もつらくなくなった。

おわりに

特にまとめはない。 とにかく、花粉症しんどいんだったら、心にシワが増える前に、さっさと病院行って薬もらおう。