forget for get

覚えるために忘れる

git diffでワード、エクセル、パワーポイントの差分を見る

Apache TikaでOfficeファイルのテキスト差分を見る

gitでWord, Excel, PowerPointなどのOfficeファイルを管理していると、
変更があっても、どこが変更されたのかわからず、確認が面倒。

Apache Tikaを使うと、Word, Excel, PowerPointなどからテキストを抽出し、
その差分を表示することができます。

インストール手順(Windows

http://archive.apache.org/dist/tika/

からtika-app-1.17.jarをダウンロード。

 

任意の場所に配置(C:\Program Files\Git\bin)

 

インストール手順(Mac

brew install tika

 

gitの設定

プロジェクト直下のgitの設定ファイルを追加・編集
.git/info/attributes

*.pptx diff=tika
*.docx diff=tika
*.xlsx diff=tika

.git/config

[diff "tika"]
  binary = true
  textconv = java -Dfile.encoding=UTF-8 -jar 'C:\\Program Files\\Git\\bin\\tika-app-1.17.jar' -t

これで、Git ExtensionsやSourceTreeでもワード、エクセル、パワーポイントのテキスト差分を確認できるようになります。
Apache Tika便利!

Windows10+Vagrant+VirtualBoxでrsyncが失敗する

ちょっと前まで動いてたWindows10+Vagrant+VirtualBoxの開発環境が、急に動かなくなった。

vagrant upしたら以下のようなエラーが、、

==> default: Rsyncing folder: /cygdrive/d/vagrant/cent6/ => /vagrant
There was an error when attempting to rsync a synced folder.
Please inspect the error message below for more info.

Host path: /cygdrive/d/vagrant/cent6/
Guest path: /vagrant
Command: "rsync" "--verbose" "--archive" "--delete" "-z" "--copy-links" "--chmod=ugo=rwX" "--no-perms" "--no-owner" "--no-group" "--rsync-path" "sudo rsync" "-e" "ssh -p 2222 -o LogLevel=FATAL -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i 'D:/vagrant/cent6/.vagrant/machines/default/virtualbox/private_key'" "--exclude" ".vagrant/" "/cygdrive/d/vagrant/cent6/" "vagrant@127.0.0.1:/vagrant"
Error: This rsync lacks old-style --compress due to its external zlib. Try -zz.
Continuing without compression.

 

cygdriveってパスになってるけど、Cygwinを入れた覚えはないのだが、、

ググってStackOverFlowとか見たけどなかなか解決策にはたどり着けず、

vagrant,virtualboxの最新版をインストールし直したり、

Windowsのアップデートもしたけど、解決せず、、

 

最終的に以下の記述で治りました。

config.vm.synced_folder "./", "/vagrant", type: "virtualbox"
config.vm.synced_folder "./vmshare", "/vmshare", create: true, type:"virtualbox"

2行目の設定はもともとあったのだけど、1行目の設定もデフォルトの設定の上書きとして必要みたい。。

 

 

monthly.jsを使って俺の嫁.comにカレンダー表示機能を追加

monthly.jsを使って俺の嫁.comにカレンダー表示機能を追加してみました。

 

↓こんな感じ。

吉岡里帆カレンダー

 

年末年始、本屋さんとかでカレンダーを見かけることも多くて、

ふと、好きな画像でカレンダー作れたらいいなと思って、

キーワードからgoogle画像検索でひっかかった画像を表示するサイト「俺の嫁.com」があったので、

そこにカレンダー表示機能をつけてみたらそれっぽいのができると思って、作業開始。

 

カレンダー表示するjQueryプラグインとして、fullcalendar.jsを使ったことがあったので、今回も使おうと思ったのですが、レスポンシブ対応してないようなので、

レスポンシブ対応しているmonthly.jsを使いました。

 

githubhttps://github.com/kthornbloom/Monthly

デモ:http://kthornbloom.com/monthly/

 

Quick Startに書いてある通りでほぼ完成。

<link rel="stylesheet" href="css/monthly.css">
<div class="monthly" id="mycalendar"></div>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/monthly.js"></script>
<script type="text/javascript">
    $(window).load( function() {
        $('#mycalendar').monthly();
    });
</script>

 

月の切り替えで画像を入れ替えるために、

.monthly-prev、.monthly-next、.monthly-resetのクリックイベントを拾うくらい。

.monthly-resetのクリックイベントだけ拾えなかったのですが、

monthly.jsでクリックイベントがキャンセルされていたので、コメントアウトして対処しました。

//event.stopPropagation();

 

ロリポップのcron設定でLaravelのartisanコマンドをスケジュール実行するには

ロリポップでcronが使えるらしいので、Laravelのartisanコマンドを作ってスケジュール実行しようとしたら、
設定するのに手間取ったのでやり方をメモしておく。

 

Laravelのドキュメントでは、cronに以下のように設定すればよいとある。

* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1

 

しかし、ロリポップの設定だと、実行ファイルパスを指定しろとある。(上記のような記述はできない)

 

なので、シェルスクリプトでartisanコマンドを実行する必要がある。
また、phpのパスも、バージョン指定する必要がある。

 

よって、以下のようなシェルスクリプトを作って、

ロリポップのcron設定の実行ファイルパスに「start_artisan.sh」を指定すればよい。

 

start_artisan.sh

#!/bin/sh
/usr/local/php5.6/bin/php /home/users/0/main.jp-lightwill/web/ravel/artisan schedule:run

phpのバージョンが5.6、ユーザディレクトリがmain.jp-lightwillの場合。

VM(Vagrant,VirtualBox)の日時を変更しても元に戻ってしまうとき

未来時間での動作確認をしたくて、

ローカルVM環境(Vagrant,VirtualBox)で普通にdateコマンドを叩いたら、

一時的に日時は変更されたが1分もしたら現在日時に戻ってしまった。

 

どうやらVirtualBoxではホストOSとゲストOSで時刻同期をしているらしい。

 

なので、

未来時間や過去時間で動作確認したいときは、ホストOSとゲストOSの時刻同期を切ってやる必要がある。

 

service vboxadd-service stop

date -s "2017/12/24 12:00:00"

 

動作確認が終わったら時刻同期を再開しておく。

 

service vboxadd-service start

 

 

WindowsアップデートしたらVM(VirtualBox、Vagrant)が起動しなくなった

結論から書くと、

WindowsアップデートしたらVMが起動しなくなった。

Windowsアップデートでホストオンリーアダプタが消えてしまったのが原因。

Virtualboxのネットワーク設定からホストオンリーアダプタを追加して解決!

 

 

職場についたらまずPC起動して、vagrant upでVMを起動します。

しかし、VMの起動に失敗しました。

こんなエラーコード、、

「E_FAIL (0x80004005)」

 

ためしにVirtualBox起動して、そっちから起動してみるも、

同じエラーコードを表示して失敗、、

「E_FAIL (0x80004005)」

 

Windowsアップデートした直後だったので、それが原因くさい。

 

ググってみると、VirtualBoxをアップデートしろだの、Vagrantをアップデートしろだのある。

 

結果的にはこれと同じでした。

tyoimemo.blogspot.jp

 

Windowsアップデートでホストオンリーアダプタが消えてしまったらしい。

Virtualboxのネットワーク設定からホストオンリーアダプタを追加して解決!

 

VirtualBoxVagrantの最新バージョンをインストールしなおしてVM作り直して、結局同じエラーで起動に失敗して、最終的に以前遭遇して解決した問題と同じだったっていう、、

 

 

 

mysqlでカナでソートしたら濁音の並びがおかしかったので対策

mysqlでカナでソートしたら濁音の並びがおかしかった

 

普通に

ORDER BY kana

とやったら、

 

ハマカーン
ハライチ
バカリズム
バナナマン
パンクブーブー

 

となった。

 

本当は

 

バカリズム
バナナマン
ハマカーン
ハライチ
パンクブーブー

 

のように並んでほしい。

 

COLLATE 節を使うとよい。

ORDER BY kana COLLATE utf8_unicode_ci

 

laravelだとorderByRawを使って。

->orderByRaw("kana COLLATE utf8_unicode_ci")

 

これで意図した並びになった。

 

バカリズム
バナナマン
ハマカーン
ハライチ
パンクブーブー