gitにExcelファイルあげちゃった。そして差分も見たいです。

gitにExcelファイルあげちゃった。そして差分も見たいです。

エンジニア以外にもgithubを使い出しているところが増えつつありますが、

このような要望が少なくありません。

エンジニアとしては、それはExcelがちょっと・・・という感じかもしれませんが

非エンジニアとしてはExcelが自分の仕事の表現手段、というか

やはり操作感は他のツールとは別格かと思います。

そこにエンジニア目線で別のツールを押しつけるのもどうかと思ったりもします。

※別のツールを提供した方が効率が上がるケースももちろんあるので、その場合は提供した方が良いです。

ということで、Excelファイルをgitにあげて管理したい、しかも差分も見たいと言った場合

gitの設定を少しいじると雑ですが差分が出るようにはなります。

macの場合

前提条件

GOでコンパイル出来る環境

使用するもの

https://github.com/tokuhirom/git-xlsx-textconv

インストール

~/.gitconfig

を開きます。

git cloneしたリポジトリの直下に

.gitattributeファイルを作成します。

を追記します。

これでxlsxの結果が比較できるようになりました。

row追加

row削除

シート名変更

GOがコンパイル出来ない環境、Windows環境の場合のは、後日

Yahooボックスの無制限プランから移行されたプランがよい

以前、Yahooボックスで無制限プランが存在した頃、加入したのは良いけど色々不具合がたえなく、いくつかファイルも失い、今に至る訳ですが、無制限プランが終了するというタイミングで、プランに加入しているユーザー限定ではありますが、

yahooboxplan

という感じに

基本プランの容量が1.5TBに拡張されておりました。

今の所、基本プランの容量拡張プランが

Screenshot_20151217-191230

という価格設定なので、旧無制限プランの1.5TB追加は歪んだ状態と言えそうです。

おそらく、将来のどこかでOneDriveのようにプランの整理をするタイミングが来る気がします。

ですが、一時的にでも使えるのであれば使って行きたいと思っています。

Atomで特定のディレクトリの中でファイルを検索する時に使えるTips

Atom Editorで、プロジェクト内のファイルが多すぎてキーワード検索をかけると結果が多すぎて、そこからさらに検索かけたくなったりします。
そんな時に、例えばこのディレクトリは除外したい or このディレクトリ内だけ検索したい、なんて感じで条件が指定出来れば随分絞り込めると思います。

やり方は、
FindメニューのFind Project
普段、検索する時は

find

こんな感じで検索画面が開くと思います。
この3段目、検索する場所を絞る設定になっています。
例えば、
lib配下だけを検索したい場合には
ここに

と入れれば良い訳です。
もし、複数の場所から検索したい場合は

とすれば、libとappとpublicのディレクトリから検索出来ます。
さらに、例えばpublicの下に無駄に大きいassetsのautocompile結果が同時に格納されていたとして
その下は検索したくない、なんていう時は

とすれば、public/assets配下は無視されるようになります。
応用で、gitでsubmoduleを多用している場合、.git配下も検索対象になってしまいますが

としておくだけで、.git配下は無視するようになります。

では!

おまけ
grepで同様に絞り込んだりするのは

という感じでしょうか。

それでは!

Dockerを使っていく上で避けて通れないChef,ansibleとの付き合い方

こんにちは。

最近はローカルの開発環境も、ほとんどDockerに移行した感じです。

そこで、本番も見据えたDockerという事で気になることの一つ

構成管理ツール
chef、ansibleなどなどとの兼ね合い、どうするかな?

と言ったところ考えてみようと思います。

Dockerはコンテナ作成・管理ツールという性質上、コンテナ内部のパッケージやアプリの配備などをDockerfileで行う仕組みになっています。

ということは、端的に言ってしまうとchef、ansibleなどがなくてもコンテナを作れてしまいます。

わざわざDockerで作ったコンテナに対してchefを流して環境を作る、とか意味がありません。

では、Dockerfileの中でChefを呼ぶのはありか?という所ですが

個人的にはこれもあまり嬉しくないなと思います。

Dockerfileを見るだけで、そのコンテナがどんな環境になるのか、というのが一発でわかるようにしたいです。

また、構成管理ではないですが、Dockerでシェル叩いていたり、起動する単一プロセスに構成設定のシェルを指定しているDockerfileが割と多かったりしますが、これも実際何しているのか?というのをシェル見ないと分からなくなってしまうので避けるようにしています。

では、全く使わないのか?

と言われると、NOで

Dockerをそもそも動かすホストマシン側の構成管理については

Chef、ansibleが使える物と思っています。

最低限、Dockerが動かせる環境をChefで構築する

docker engine
docker machine
docker compose
docker swarm

あたりのインストールを自動化しとくのが良いと思います。

そうすることで、ホストマシンが自前だろうがAWSだろうがIDCFだろうがさくらだろうが

さらにOSがUbuntuでもCentOSでも、ホストマシンを自動で構築することも可能になってきます。

所定のdocker engineさえ入っていればコンテナが動くわけです。

なお、docker-machineを使う場合、docker-machineが対応しているクラウドサービスの場合は構成管理しなくても良い位手軽に起動する事が出来たりします。
これは、docker-machineのcreateで作成されるホストには、docker-machineが自動で上記のモジュール類を入れて環境設定してしまうためです。

Dockerを本気で使っている方々には当然の内容ではありますが、以上、一つの考え方として参考にしていただけたらと思います。