[Mac] brew update で Error: /usr/local must be writable! 対応

brew update で Error: /usr/local must be writable! がでたときの対応方法です。

$ brew update
Error: /usr/local must be writable!

調べるとまず brew doctor してみてと書いてあったので、やってみます。

$ brew doctor
 
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry and just ignore them. Thanks!
 
Warning: /usr/local is not writable.
 
You should probably change the ownership and permissions of /usr/local
back to your user account.
  sudo chown -R $(whoami) /usr/local
 
Warning: /usr/local is not writable.
Even if this directory was writable when you installed Homebrew, other
software may change permissions on this directory. For example, upgrading
to OS X El Capitan has been known to do this. Some versions of the
"InstantOn" component of Airfoil or running Cocktail cleanup/optimizations
are known to do this as well.
 
You should probably change the ownership and permissions of /usr/local
back to your user account.
  sudo chown -R $(whoami) /usr/local
 
Warning: Some installed formula are missing dependencies.
You should `brew install` the missing dependencies:
  brew install oniguruma
 
Run `brew missing` for more details.
 
Warning: Your Homebrew is outdated.
You haven't updated for at least 24 hours. This is a long time in brewland!
To update Homebrew, run `brew update`.

sudo chown -R $(whoami) /usr/local しろと書かれているので、実行して brew update を再実行してみます。

sudo chown -R $(whoami) /usr/local

次は update.sh: line 13: /usr/local/Library/ENV/scm/git: No such file or directory ってエラーが発生しました。

brew update
 
/usr/local/Library/Homebrew/cmd/update.sh: line 13: /usr/local/Library/ENV/scm/git: No such file or directory
()
/usr/local/Library/Homebrew/cmd/update.sh: line 13: /usr/local/Library/ENV/scm/git: No such file or directory
Error: update-report should not be called directly!
brew prune

たまに brew update すると苦労しますね・・・。

参考情報

[Git] merged な remote branch を一括削除するコマンド

Git で merged な remote branch を一括削除するコマンドをご紹介します。

マージ済みリモートブランチ一括削除コマンド

git branch --remote --merged master | \
grep -v -e master -e release -e staging | \
sed -e 's% *origin/%%' | \
xargs -I% git push --delete origin %

前提として master, release, staging branch は対象外としています。

削除後、リモートブランチの同期

他の人がリモートブランチが削除しても、自分のローカルブランチにはリモートブランチの情報が残ったままです。

以下のコマンドでリモートブランチの情報を同期できます。

git remote prune origin

他にも、

git fetch --prune

git pull --prune

というように –prune オプションを付ければ同期できます。

参考情報

[WordPress] AMP プラグインを利用して Accelerated Mobile Pages 対応する方法

WordPress で「AMP」プラグインを利用して Accelerated Mobile Pages 対応した道のりをご紹介します。

「AMP」プラグインをインストールする

まず、AMP を管理画面からインストールして、プラグインを有効化します。

AMP Test ツールで確認する

AMP Test

Not a valid AMP page
Invalid AMP pages will not have AMP-specific features in Google search results

というエラーメッセージが出ていますね。

Prohibited or invalid use of HTML Tag

  • The tag ‘plusone’ is disallowed.
  • The tag ‘share-button’ is disallowed.

不正な HTML タグを確認してみたところ、どちらも WP Social Bookmarking Light プラグインを使って設置しているボタンが原因みたいでした。

WP Social Bookmarking Light の設定を AMP Valid に変更する

Google +1 ボタンは AMP Valid な HTML タグに変更する設定が見当たらなかったので、この機会に削除しました。

Facebook Share ボタンはタグの設定を xfbml から html5 へ変更することで対応しました。

対応後に再び AMP Test をかけてみると Valid AMP page のメッセージが無事、表示されました。

Search Console から Accelerated Mobile Pages のエラーをチェックできる

Accelerated Mobile Pages のエラーは Search Console から確認することができます。

HTML タグの禁止された用法、無効な用法(問題の重大性: 致命的) などの重要な通知

まとめ

AMP 対応しておくと Google に気に入られて SEO 効果もあるかもしれません。

基本的にプラグイン1つで対応できるので、早めに AMP 対応をしておくとライバルサイトに差をつけることができるかもしれませんね。

参考情報

[MongoDB] Storage Engine の確認方法

MongoDB で Storage Engine (ストレージエンジン) を確認する方法をご紹介します。

MongoDB version 3.x

db.serverStatus() コマンドで Storage Engine が MMAPv1 か WiredTiger を確認できます。

db.serverStatus().storageEngine
{ "name" : "wiredTiger" }

MongoDB version 2.x 以下

安心してください。

Storage Engine は MMAP 一択で選択できないので、確認する方法もありません。

参考情報

2016年を振り返る

2016年の振り返り。

仕事

2016年は開発以外の色んな仕事に携われた。

1-3月は自社倉庫の業務改善。4-6月はマーチャンダイジングチームの業務改善。いずれもエンジニアリングをベースにした業務改善で、業務ヒアリングして、開発要件を GitHub issue に作成していくという感じだった。業務ヒアリングしていくと今やらなくていい開発案件もあったりして、優先度調整や期待値コントロールの難しさを体験した。

7-8月はマーケティングチームの業務改善を少しだけやった。期間が短かったのは組織体制が変わるのと、業務改善よりも売上・粗利アップさせるための仕事に方向転換があったためだ。
この期間に、データ分析の真似事も取り組んだ。データ分析は未経験だったので、何冊か本を読んで参考にしながら取り組んだ。

データ分析のために読んだ本

SEOにも取り組んだ。開発以外で社内調整しないといけない部分が多くて、現状まだ上手くいってない。1-8月でエンジニアとしての開発業務から離れていたので、また開発をがっつりやりたいなと思い始めた。というわけで、CTOに相談して開発業務の割合を増やしてもらった。

9月以降は主にエンジニアとしてプロダクト開発に取り組んだ。半年以上、開発から離れていたので戻ってから最初の2週間ぐらいはリハビリ期間みたいな感じで、勘を取り戻すのに苦労した。

フロントエンド JavaScript に苦手意識があったので、Vue.js に苦戦した。

11月末から、熊本でリモートワークして年を越した。

メリットとしては、開発に集中できる時間が増える。

デメリットとしては、スタートアップならではの熱量が伝わりにくい。オフィスの空気感が分からないので、緊急性の高いタスクがあったときに Slack に @channel で叫ばないと (メッセージ) しないといけない。Google ハングアウトの設定やネットワークトラブル問題が尽きない。オフラインコミュニーケーションがグッと減るので、業務上関わりのない人とほとんど接点が無くなる。

自分からお願いしてリモートワークさせてもらってる訳だけど、デメリットの部分を理解して導入しないとストレス溜まるなと改めて感じた。

家庭

5月のGW中に家族が他界した。
必要なときに仕事を休めることの有り難みを感じた。

12月末に第一子が生まれた。立会い出産したかったので、それにあわせて11月から2月上旬まで熊本からリモートワークをしてる。
結婚式や出産などのライフイベントにあわせて、リモートワークをさせてもらえるのは有難い。「いつリモートワークしても大丈夫なように、週1〜2回ぐらいやって、体を慣らしておいた方がいいのでは?」というのがDevチームのトピックとして挙がっている。

勉強

英語学習は途中でやめてしまった。モチベーションが続かなかったので、時期をみて再開したい。

読書は月10冊を目標にしていたけど、実際は月2~3冊ぐらいしか読めなかった。以下の本はどれも、もう一年早く読みたかったと思える良書だった。この点は経験が先か、知識が先かの違いなんだろうけど。

リモートワークで、通勤時間が無くなるので浮いた時間を使って勉強に充てたい。

などを読み直してる。
インプットが多めなので読書感想文みたいなものを、このブログにでもアウトプットしていきたい。

プライベートコードを書く量が少なかった。

今年はまず、フロントエンド JavaScript のスキルアップをしていきたい。他の技術も幅を広げるか深めていくかしていきたい。

総括・来年

20代最後の一年だった。

来年は30歳なので、今まで以上に今後のキャリアやライフプランを具体的にイメージして日々を生きていきたい。