Caireが面白そうだったので使ってみる


画像をリサイズする際に、ただ端から切り取るのではなく、画像の不要な部分を判別して切り取ることができるらしい。
公式:https://github.com/esimov/caire

Golangをインストール

Go言語で作られているため、まずはHomebrewを使ってGoをインストール。
[shell]
$ brew install go
$ go version
go version go1.9.3 darwin/amd64
[/shell]

PATHを通す
[shell]
# ~/.bash_profile
export GOPATH=”$HOME/go”
export PATH=”$PATH:$GOPATH/bin”
[/shell]

Caireをインストール

[shell]
$ go get github.com/esimov/caire/cmd/caire
$ go install
[/shell]

公式に書いてある、上記のコマンドそのままでインストールしようとすると
“can’t load package: package .: no Go files in /Users/username”
と怒られたので、
[shell]
$ go get github.com/esimov/caire/cmd/caire
$ cd ~/go/src/github.com/esimov/caire/
$ go install
[/shell]
って感じでGo fileのあるところまで移動したらインストールできた。
本来なら”$ go install caire”とかするのかな?

[shell]
# インストール確認。Usageが出てきたらOK
$ caire –help
[/shell]

使ってみる

[shell]
# test.jpgの横幅を50%にしてtest2.jpgとして出力
$ caire -in test.jpg -out test2.jpg -perc=1 -width 50
Processing… \
[/shell]
結構時間がかかりますね。

いくつか変換してみた結果がこちら↓

元画像 変換後

何枚かすごいことになっているな。。
画像によって向き不向きがかなりありそうですね。
ここにアップしている以外にも試してみましたが、サンプルほどうまくはいかなかった。
変換に時間もかかるから、いまのところは使いどころが難しいなー。

ssh-agent でよく使うコマンド

ssh-agentで使用するコマンドを忘れるのでメモ。

秘密鍵の登録一覧をみる

[shell]
$ ssh-add -l
[/shell]

秘密鍵の登録

[shell]
$ ssh-add hoge
[/shell]

秘密鍵を引き継いでssh接続

[shell]
$ ssh -A hoge@huga
[/shell]

macでkeychainに登録

[shell]
$ ssh-add -K hoge
[/shell]
macOSでは ~/.ssh/configに以下を追記。
[shell]
AddKeysToAgent yes
UseKeychain yes
[/shell]

その他

[shell]
$ ssh-add -l
Could not open a connection to your authentication agent.
[/shell] って怒られる。
ssh-agenが起動していない可能性。

[shell]
$ eval `ssh-agent`
[/shell]
で起動。

参考

  • https://h2ham.net/macos-sierra-use-keychain
  • https://qiita.com/isaoshimizu/items/84ac5a0b1d42b9d355cf

Gitで特定ディレクトリをデプロイ

Gitでサーバにアップする場合に、開発用データは無視して、公開用ディレクトリのみをあげたかったので調べてみた。

今回の構成

今回の環境はローカルで作業をし、リモートリポジトリ(Gituhb, Bitbucket)にpush。リモートリポジトリから公開用サーバにデータをpullする。
ローカル -push-> リモートリポジトリ -pull->  公開用サーバ

前提条件
公開用サーバのドキュメントルート: /var/www/html
git管理下の公開ディレクトリが:/html

[shell]
# 公開用サーバ
$ cd /var/www
$ git clone –mirror git@bitbucket.org:xxx/xxx.git .git
[/shell]
git cloneにmirrorオプションをつけてbareをクローン。bareは更新情報だけで、実際のファイルが存在しないリポジトリのこと。最後の.gitを変えるとgitの保存ディレクトリ名が変わる。この場合は /var/www/.git。

[shell]
$ git config core.sparsecheckout true
$ echo html/ > .git/info/sparse-checkout
[/shell]
sparse checkout を有効にすることで、指定したディレクトリのみを監視します。監視対象は .git/info/sparse-checkou に記述。

[shell]
$ git –git-dir=/var/www/.git fetch
$ git –git-dir=/var/www/.git –work-tree=/var/www checkout -f
[/shell]
上記コマンドでリモートリポジトリから更新を取得して反映。

これで余計なデータを扱わず、スマートに管理。

参考:
https://www.granfairs.com/blog/cto/deploy-subdirectory