ゆず日記

戦う Vimmer 兼 Dvorakユーザ 兼 Kinesisユーザ 兼 おぺらー が戦わないブログ

キンコーズで電子書籍用に1冊108円で断裁してもらったお話と個人的な自炊のお話。

ふと

一昨日 「メタプログラミングRuby」が届いたので、そういえばと会社の帰りにキンコーズに寄って断裁してきた。

入店

初めてのキンコーズ利用なのと、本当に断裁だけできるかよく分かってなかったので何て言おうかなーと思いながら入店したんだけど、店員さんが愛想良く「いらっしゃいませ〜」と声掛けてくれたので『断裁100円位で出来るって聞いてきたんですけど〜…』「でしたら2階のフロアで受け付けておりますので2階へどうぞー」とスムーズに入店。

2階に上がって別のスタッフに要件話したらすぐ断裁 + お会計してもらった。

カット

f:id:Yuzuemon:20140515021549p:plain

1冊108円 (税込み) でプロの仕上がり。

#追記 (2014/05/15 11:32):
厚い場合には料金加算されるケースもあるので、実際の料金については 穴あけ加工・ホチキス留め加工 | サービス・料金(価格) | オンデマンド印刷のキンコーズ・ジャパン の通り受付で確認する必要がある。

カバーも

f:id:Yuzuemon:20140515021611p:plain

カバーも任意で一緒に断裁してもらえる。

断面

f:id:Yuzuemon:20140515021615p:plain

カットされた部分。 以前 ScanSnap + 断裁機レンタルで約5000円/週で自分で断裁した時には、片側からカットされていく断裁機だった所為か、カットするにつれて斜めになっていくのが気になったけど、かなりゴツい業務用断裁機のお陰でこんなに綺麗にカットしてもらった。

断裁した書籍はそのまま封筒に入れてもらったので、家に帰って ScanSnap で取り込んだ。 キンコーズ、オススメです。

穴あけ加工・ホチキス留め加工 | サービス・料金(価格) | オンデマンド印刷のキンコーズ・ジャパン

余談: 個人的な自炊のお話。

自分で書籍を断裁してPDFにする場合、1冊辺り大体20分は掛かる。 一度機材レンタルをして断裁とスキャンを行ったが大体1冊10〜15分。カバーを個別に取り込み + カバーの画像を編集してPDFのトップにマージしつつページの抜けチェックをして計20分。ページ数にもよるが、 3〜4冊/1時間位の速度しか出ない。

機材レンタルした時

機材レンタルの際は、レンタル期間(自分の場合は1週間)中に取り込まねばと朝から晩までやっても40冊位しか進まなかった。最終日にはだいぶ効率化したけどその時でも60冊/15時間位だった。かなりの重労働にも関わらず、出来たものが安い断裁機で斜めにカットされた低クオリティ電子書籍ってのが気になった(後半はマシになったが)。確か160冊程電子化したけどもうそこまでやりたくない。

ただ、スキャンは自分の納得の行く設定で取り込めるので時間度外視でクオリティ重視の人にはいいと思う。時間がある方、自炊を試してみたい方にはオススメ。

自炊の森的なサービスを利用した時

過去に自炊の森的なサービスを利用しに行った時には、時間制限がきつかったし料金体系もきつかった。何より数十冊の本を持って自宅〜駅〜電車〜駅〜店頭まで行くのが辛かった。今振り返るとキャリーバッグ必須。

スキャン作業中は時間に縛られるので微修正は自宅で... と後回しになり粗が出るし、時間制限がある中で紙詰まり頻発した時には「え、この時間もお金取られるの?」って思った。 利用した店舗は支払いプランの選択が可能で、(本の重量の)従量課金制と時間課金制の2種類が選択可能だった。時間従量課金制も選択できたが単価が高く冊数もあまり覚えてないが8000円位だったと思う。時間課金制を選んだ結果、料金は2000円位で1/4で済んだが成果物が微妙だった。

結論としてはあんまりオススメしない。

スキャン代行業者に頼んだ時

スキャン代行業者に50冊依頼した際は、お金さえ払えば重労働が一切ないのが大きなメリット。口コミなどで調べつつ計3社利用したが、業務用スキャナ利用を謳っているだけあって品質はそこそこ高いのもウリ。

ただ稀に画質の粗さがあったり、2色刷りで殆どのページがカラーであるべきなのに時折グレースケールのページが混じっていた際に修正を依頼するのが手間。 業者に依頼する時は「手作業がだるいから一気にやって欲しい!」と纏めて依頼するケースが多いわけだが、ページ抜けや修正依頼についてはダンボール送付した元の書籍が廃棄されるまでの間(大抵1週間〜1ヶ月以内)にしないといけないのでチェック作業が大変だった。結局読む時までチェックしないケースが殆ど。

ちなみに、カバーはデフォで未対応な業者が多いのだが、素直に + 50〜100円/冊さっくり払って一緒にやってもらった方がいい。カバーがないと見栄えが違うし、自分で個別に取り込むのと結局編集作業にそこそこの時間を要するので手間。

お金さえ払えばある程度高い品質の仕上がりが期待できるので、自分の時間を使うこと無く手持ちの書籍を電子化したい時には非常にいいと思う。オススメ。

ScanSnap を買った時

結局 ScanSnap を購入した。買い足した書籍をキンコーズで断裁してスキャンできるのもそうだし、原本を残す必要がないけど持っているペライチの紙もスキャンして Evernote で管理したくなったから。

断裁機は、重い、場所を取る、刃物ってことで子供が居る環境では危ないだろうし、均一に断裁できるものは更に値が張ることを考えて購入を見送った。

ちなみに Evernote にPDFをアップすると自動でOCR掛かるので便利。 - Evernoteの魅力を再発見しよう。ザクとは違うのだよ。 - それマグで!

ScanSnap を買うかどうか若干悩んだが、現行製品で充分な速度と解像度を持っており、最高解像度で利用するケースも少ない(デジカメもそうでしょ?)ので壊れない限り使い続けられそうだなと思ったことと、これまでの自炊難民状態から脱出するには買うしかないと購入に踏み切った。

富士通 ScanSnap iX500 (A4/両面)

富士通 ScanSnap iX500 (A4/両面)

コードの写経する時に分厚い本開きながらキーボード打つのが解消できるので、現在絶賛活躍中。

まとまらないまとめ

いろんな手段で電子書籍化進めたお陰で、手元の紙書籍は殆どなくなった。

今後は

  1. Amazonで買った本が会社に届く
  2. 仕事帰りにキンコーズによって断裁して貰う
  3. 家に帰って ScanSnap で取り込む

の作業で済みそうだ。

やはり Mac で読んだり出先で iPhone / iPad で読んだりできるのがいい。

PDFデータの管理方法についてはまだ確立できていないのでもうちょっと試行錯誤が必要そう。

もしこれから「家の書籍を電子化したい!」と考えている人は、最初は値は張るけど業者にカバー付きで依頼し、その後追加で紙書籍を買った際に キンコーズ + ScanSnap がいいと思う。

過去の git author name/emali, committer name/email を書き換えるお話。

github にいつもと違う gitconfig で push しちゃった時の対応方法。 時々やらかす。

git filter-branch  --commit-filter '
if [ "$GIT_AUTHOR_NAME" = "before-name" ];
then
  GIT_AUTHOR_NAME="after-name";
  GIT_AUTHOR_EMAIL="after-email@gmail.com";
  GIT_COMMITTER_NAME="after-name";
  GIT_COMMITTER_EMAIL="after-email@gmail.com";
  git commit-tree "$@";
else
  git commit-tree "$@";
fi' HEAD

git filter-branch コマンドを利用して一気に書き換える。 ここでは AUTHOR_NAME を見て変更している。

以下のようなエラーが出た時には -f オプションを付けて実行する。

Cannot create a new backup.
A previous backup already exists in refs/original/
Force overwriting the backup with -f

tig コマンド等で問題なく書き換えられていることが確認できたら、push する

git push —force

—force オプション付きなので、複数人で利用しているリポジトリの場合には注意。

参考: Git - 歴史の書き換え

ssh コマンドで Vagrant に ssh 接続したお話。

vagrant sshvagrant up するディレクトリにいないとできないので、ssh hoge でも接続できるようにする。

手順

.ssh/config に以下を追加

Host hoge
  HostName 192.168.xxx.xxx
  Port 2222
  IdentityFile ~/.vagrant.d/insecure_private_key
  User vagrant

config に必要な内容は、vagrant ssh-configから確認できる。 後は ssh hoge でどのディレクトリに居てもログイン可能。

補足

$ vagrant ssh-config で .ssh/config に設定すべき内容と同等のものが取れる。

$ vagrant ssh-config
Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /Users/ああああ/.vagrant.d/insecure_private_key
  IdentitiesOnly yes
  LogLevel FATAL

Host名の “default” は raspberry-devbox/Vagrantfile at master · nickhutchinson/raspberry-devbox の場合だと “nox" になっていたので、

config.vm.define :nox do |box| のように書いておけば、

$ vagrant ssh-config >> ~/.ssh/config

のような感じに楽に追加できそうだ。

syntasticを使う際には必ずcheckerを指定しようというお話。

syntastic_version: 3.4.0-31 の頃にこの記事を書いてます。

結論

scrooloose/syntastic で JSHint を使っている人は、 syntastic_javascript_checkers で明示的に指定しよう。

let g:syntastic_javascript_checkers = [‘jshint’]

なんでこんな話になるのか

大体 .vimrc にこんな設定を書いているハズ。

let g:syntastic_mode_map = {
  \ 'mode': 'active',
  \ 'active_filetypes': ['javascript'],
  \ 'passive_filetypes': ['html']
  \}
let g:syntastic_auto_loc_list = 1

で、人によっては以下の一行を書いてたり、書いてなかったり。

let g:syntastic_javascript_checker = 'jshint'

さらに、JSHint だけでなく JSLint もインストールしてるよって人もいると思う。

syntastic_javascript_checker = ‘jshint' 書いてる人

以下のような warning が出る。.vimrcの複数箇所に記述してるわけでもないのでちょっと納得いかない。

syntastic: warning: variable g:syntastic_javascript_checker is deprecated

syntastic_javascript_checker = ‘jshint' 書いてなくて、JSHint と JSLint 両方インストールしてる人

要はほぼ未設定だけど JSHint と JSLint 両方入ってる環境。一見 JSHint が優先して動作してるから問題なさそうに見える。が、

  1. 普段は JSHint っぽい Warning が出る。
  2. 全部エラーを消すと突然大量の Error が出る。.jshintrc を設定しても改善なし。

これは実は以下の仕様で動作してる

  1. JSHint で check する
  2. JSHint の Error がなければ、JSLint で check を開始する

何でや!JSHint でチェック完了してるんだから JSLint 実行しなくてもいいやろ!

対策

scrooloose/syntastic にはこう書いてます。

Some filetypes, like PHP, have style checkers as well as syntax checkers. These can be chained together like this:

vim let g:syntastic_php_checkers = ['php', 'phpcs', 'phpmd'] This is telling syntastic to run the php checker first, and if no errors are found, run phpcs, and then phpmd.

You can also run checkers explicitly by calling :SyntasticCheck .

配列順に、最初に php checker を実行しますが、エラーが無ければ次に phpcs, そして phpmd と実行するようですね。

で、syntastic は /plugin/syntastic/registry.vim の中にデフォルト設定としてこんな感じに書いてあります。

let s:defaultCheckers = {
...
        \ 'javascript':  ['jshint', 'jslint’],
...

ということで、以下のような長さが1個の配列を設定すれば諸々の問題なく syntastic で JSHint のみを使用できます。

let g:syntastic_javascript_checkers = [‘jshint’]

蛇足

個人的に以下も追加してます。

let g:syntastic_enable_signs = 1
let g:syntastic_error_symbol = '✗'
let g:syntastic_warning_symbol = '⚠'

Redisインストールメモ

Redis をインストールした時のメモ

$ wget http://download.redis.io/releases/redis-2.8.8.tar.gz
$ tar xvzf ./redis-2.8.8.tar.gz
$ cd redis-2.8.8

$ make test
cd src && make test
make[1]: ディレクトリ `~/local/src/redis-2.8.8/src' に入ります
You need tcl 8.5 or newer in order to run the Redis test
make[1]: *** [test] エラー 1
make[1]: ディレクトリ `~/local/src/redis-2.8.8/src' から出ます
make: *** [test] エラー 2

tcl 8.5 以上が必要だと言われるのでこちらも用意する。

tcl のインストール

$ wget http://prdownloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
$ tar xvzf ./tcl8.6.1-src.tar.gz
$ cd tcl8.6.1/unix/
$ ./configure
$ make
$ sudo make install

これで tcl インストール完了。もう一度 Redis の make test を走らせる

改めて Redis インストール

$ make test
()

\o/ All tests passed without errors!

Cleanup: may take some time... OK
make[1]: ディレクトリ `~/local/src/redis-2.8.8/src' から出ます

$ sudo make install

起動スクリプトを作成する

$ sudo ./utils/install_server.sh
# redisの実行パスを訊かれたら入れる。自分の環境では usr/local/bin/redis-server を入力した。


$ /etc/init.d/redis_6379 status
Redis is running (4642)

# 起動して無かったら
$ /etc/init.d/redis_6379 start

終わり。Redis 自体は全然良くわかってないので触りながら覚える。