Windowsのネットワーク設定を切り替えを便利に

あちこち旅をしてまわっても、自分から逃げることはできない。
ヘミングウェイ

ノートPCを持ち歩いて使うと、IPアドレス設定等を場所や目的にしたがって切り替えたい時が結構あります。大抵は、DHCPで事足りるかもしれませんが、固定IPが必要なことも結構あったりします。ノートPCだと、イントラやインターネットに接続するという以外に、ちょっとした調査や解析のためにローカルなネットワークに接続したい時なんかもあるでしょう。

Linuxであれば、ifconfigの設定scriptを準備しておくというのが常套手段かもしれません。一方、Windowsの方は、あんまりなじみがないかもしれませんが、netshコマンドでコマンドラインからネットワークアダプタの設定ができます。GUIでももちろんできますが、Windowsのアダプタ設定は階層が深いし、なんとも使いにくい。。。そこそこ切替頻度が高いのなら、バッチファイル用意しておくことをおすすめします。
例えば、「ローカルネットワーク接続」の設定を、固定IPやDHCP設定に切り替えるの次のようなバッチファイルを用意すればOK。

dhcp.bat
netsh interface ip set address "ローカル エリア接続" dhcp
netsh interface ip set dns "ローカル エリア接続" dhcp

fixedip.bat
netsh interface ip set address "ローカル エリア接続" static 192.168.1.10 255.255.255.0 192.168.1.1 1
netsh interface ip set dns "ローカル エリア接続" static 192.168.1.1 primary
netsh interface ip add dns "ローカル エリア接続" 192.168.1.2

もう少し細かいところは、以下あたりのページが参考になるかと思います。

なお、netsh interface dumpしたものをnetshに食わせればOKという説明もありますが、文字コードがsjis+CRLFになっている必要があるので、powershellやcygwinのターミナルからnetsh dump実行すると文字コードがUTF8になったりしてうまくいかない可能性があります。また、dump結果に「はい」とかの日本語が入ってエラーになるということもあるので、最初から、上記の例のように必要最低限の内容を書きだして、バッチファイルにした方が早いかと思います。その場合も、SJIS+CRLFでの保存は必要です。

なお、用意したバッチファイルは、管理者として実行する必要があります。ショートカットを作って、毎回管理者権限で実行する設定をしておくほうが良いです。

ちなみに、私の場合、設定ごとにショートカットを作って、作ったショートカットをLaunchyからキーボードショートカットで呼び出して使っています。

ちなみに、Let's noteにはネットワークセレクターという切り替えアプリが入ってますね。

4774149543

【関連記事】
WindowsでCUI環境


【関連書籍】
Clean Coder プロフェッショナルプログラマへの道
整理HACKS!―1分でスッキリする整理のコツと習慣
IDEA HACKS! 今日スグ役立つ仕事のコツと習慣

Excelでのcsvで扱う際のあるある対策 - 書式の自動設定

善意、純情の犯す悪ほど困ったものはない。第一に退屈である。
中野好夫 -「悪人礼賛

データベースやログのエクスポート時のフォーマットとしてよく使われるcsv。テキスト形式なのでエディタでも開けますが、Windows環境であればExcelで開いていると思います。Excelでcsv扱うのは、便利ではありますが、いろいろ不都合や不満点があります。
よくあるのは、次のようなもの。
  • 書式が日付や数値に勝手に変換されてしまう。
  • セルの横幅を内容にあわせて調整したい。
  • 大きな表の場合に、毎度オートフィルタとウィンドウ固定するのが面倒

例えば、以下のようなcsvを開こうとしたとします。
DATE,TIME,ID,ID2
2013/12/1,10:00:01,0-1,A
2013/12/20,12:20:00,1-1,01
2014/1/1,15:10:30,A-1,A1
これをExcelで開くと以下のような見え方になります。

csv-in-excel

特に、最初の書式変換がかなりやっかいです。単に表示の書式があっていないというだけならまだいいのですが、ファイルを読み込む段階でセルの値が変換されてしまっているので、あとから対象の列の書式を変更(例えば、文字列として指定)しても意図しない値になってしまいます。
日付の列の幅が足りずに「####」になっていたり、C3の"1-1"は1月1日になり、C4の"01"は"1"になっています。特に値が変わっているものは、読み込み時に変換されてしまっているので、ファイルを開いてから、書式設定を文字列にしても元の値にはなりません。。

特に、勝手に書式が変わる件は、csvをExcelで扱う時の定番問題なので、ググるといろいろヒットします。基本的な対策としてあげられているのは、外部データの取り込みのテキストファイルウィザードを使うというもの。

参考) ITPro :CSVファイルを読み込んだら「1-15」のような製品番号が「1月15日」に変わってしまった!

確かにこの方法で開けますが、非常に手間が多くなってします。そこで同じようなことをするラッパーを用意することにします。ついでに、オートフィルタやウィンドウ固定等、毎回ファイルを開く度に行う操作も自動化させます。

以下ような内容のVBScript(WSH)を用意し、csvを開く時は、このスクリプトにドラッグ&ドロップします。「送る(Sendto)」メニューに入れてもおけば便利かと思います。

Dim xlApp, WS, FS, Args, TempFile, I, Format(255)

Set Args = WScript.Arguments
If Args.Count <> 1 Then WScript.Quit
If LCase(Right(Args(0),4)) <> ".csv" Then WScript.Quit

Set WS = CreateObject("WScript.Shell")
TempFile = WS.ExpandEnvironmentStrings(WS.Environment.Item("Temp"))
Set WS = Nothing
Set FS = CreateObject("Scripting.FileSystemObject")
TempFile = FS.BuildPath(TempFile, FS.GetBaseName(Args(0)) & ".txt")
FS.CopyFile Args(0), TempFile

For I = 0 To 255
    Format(I) = Array(I + 1, 2)
Next

Set xlApp = CreateObject("Excel.Application")
With xlApp
    .WorkBooks.OpenText TempFile, , , , , , , , True, , , , Format
    .DisplayAlerts = False
    .ActiveWorkBook.SaveAs Args(0), 6
    .DisplayAlerts = True
    .ActiveWorkBook.Saved = True
End With
' テンポラリtxt削除
FS.DeleteFile TempFile

Set xlSheet = xlApp.Worksheets(1)
'オートフィルタ
xlSheet.Cells.AutoFilter(1)
'ウィンドウ固定
xlSheet.Activate
xlSheet.Range("C2").Select
xlApp.ActiveWindow.FreezePanes = True
'サイズ自動調整 
xlSheet.Cells.Select
xlSheet.Cells.EntireColumn.AutoFit

xlSheet.Range("A1").Select
xlApp.Visible = True

Set xlApp = Nothing
Set FS = Nothing

VBAの中身はこちらのやりとり(CSVファイルを読み込んだときに文字 列として読みたい - Google Groups)をベースにさせて頂きました。textとして読み込むと同時に、Window固定とオートフィルタ設定を追加しています。
これで先ほどのcsvを開くと以下の様になります。

csv-with-excel-2

データ化けもなくなり、オートフィルタやウィンドウ固定もプリセットされるようになりました。なお、ウィンドウ固定の位置や、文字列以外にしておきたい列がある場合は、スクリプトの該当箇所を修正する必要があります。必要ならファイル名等で場合分けもできますので、そのへんは各環境や目的のファイルにあわせてということで。

しかし、csvの書式問題ってずいぶんと昔からある不満点のはずなので、せめてExcelの設定で読み込み書式を選択できるようにする(例えば、自動検出と文字列固定とか)はあってしかるべきと思います。自動認識もうまくはまる時は便利ですが、それ以外の時は単なる迷惑以外の何者でもないです。ぜひ、改善してほしいものです。

【追記】テキストとして開くと、項目内改行がされないみたいです。上のvbsだと元ファイルまでおかしくなってしまいましたので、そういったファイルには残念ながら使えません。csvで開くと書式化け問題になるし。。もっといい方法ないものか。。

4873113474

【関連記事】
WindowsでCUI環境

【関連書籍】
Excel Hacks 第2版― プロが教える究極のテクニック140選 David Hawley Raina Hawley 羽山 博
Windows自動処理のためのWSHプログラミングガイド 五十嵐 貴之
最速攻略 VBScriptサンプル大全集 Windows7/Vista/XP/2000対応 結城 圭介
続ExcelVBAのプログラミングのツボとコツがゼッタイにわかる本―最初からそう教えてくれればいいのに! 立山 秀利

Ubuntu12.04でatftpdを使う時の設定

僕はつい見えもしないものに頼って逃げる
君はすぐ形で示して欲しいとごねる
Mr. Children - NOT FOUND

開発環境用のUbuntu12.04上でatftpd(Advanced TFTP server)を動そうとした時に、少しハマったのでそのメモです。

まず、atftpdはaptitudeでinstallしておきます。

$ sudo aptitude install atftpd

デフォルトでは、inetd(Ubuntu12.04だとrlinetd)経由での起動になっていますが、不要なので単独daemonとして起動するように/etc/default/atftpdを変更します。
USE_INETDをfalseに変更して、これでOKかと思ったのですが、実際にこれで起動するとatftpdの起動に失敗します。解決策としては、同じく/etc/default/atfpdで、OPTIONSにポート番号指定(--port=69)を追加してやればOKのようです。

(参考)
TFTP Server atftpd fails to start - Ask Ubuntu

(/etc/default/atftpd 設定例)

USE_INETD=false
OPTIONS="--tftpd-timeout 300 --retry-timeout 5 --port=69 --maxthread 100 --verbose=5 /srv/tftp"

変更後、atftpdを起動し直します。

$ sudo /etc/init.d/atftpd start

ps等で起動しているか見てみて、atftpdが起動していればとりあえず起動は成功です。

念のため、動作確認するために、別のマシンor自分自身からtftpしてみます。
自分自身からアクセスするならtftp localhostして、適当なファイルをputして成功すればOKです。 うまくいかない場合は、エラーログ等参考に、root directory(/tftpbootとか)のpermissionやiptable等のフィルタ設定を見直しましょう。


4873114225 【関連書籍】
Linuxカーネル Hacks ―パフォーマンス改善、開発効率向上、省電力化のためのテクニック 池田宗広 大岩尚宏 島本裕志 竹部晶雄 平松雅巳 高橋浩和
リンカ・ローダ実践開発テクニック―実行ファイルを作成するために必須の技術 (COMPUTER TECHNOLOGY) 坂井弘亮
起動プログラム ブート・ローダ入門─クロックの初期化や外部メモリの設定からOSの起動まで TECH I シリーズ (TECH Iシリーズ) Interface編集部
組込みソフトウェア開発入門 ~組込みシステムの基本を‐ハードウェアとソフトウェアの両面から学ぶ! 星野香保子 並木秀明 菊池宜志 日比野吉弘

gnupackでCygwin導入した時に最初にすること

人生の半分はトラブルで、あとの半分はそれを乗り越えるためにある。
八月の鯨』より

Windowsにgnupackを使ってCygwin環境をセットアップした時のメモです。

gnupackについては、emacsとあわせてアーカイブ展開するだけで、ある程度設定済の環境がすぐに使えるということで、手軽にCygwinを構築するには非常に便利です。とはいえ、いくつか設定等変更しておくと便利な部分もあるので、そのあたりのメモです。ベースとしては、gnupack_devel-11.00.exeを使っています。


apt-cygの修正

今現在最新の11.00だと、ちょっと前にCygwinダウンロードサーバ側の変更に追従できていないためにエラーになります。とりあえず修正必要なのは二点。

  • mirrorサイトのディレクトリパス変更へ追従 (でないと、apt-cyg updateでsetup.iniがnot foundになり失敗する)
  • tar.xzへの対応 (元のapt-cygだとbzip2決め打ちになっているので新しいパッケージ解凍に失敗する)

apt-cygの公式版の更新は止まっていますが、forkしたものがいくつかgithubで公開されているので、それをとってきて、/app/script/apt-cygを置き換えるのが手っ取り早いです。
forkの状況等は以下のページが詳しいです。

apt-cyg - PIB

また、プロキシ環境でapt-cygで使いたい場合は、/etc/wgetrcを~/.wgetrcにコピーして、proxy設定部分を書き換えておきます。


Cygwinパスとの互換性

gnupackではwindowsフォルダのパスが標準cygwinと少し違います。とはいえ、cygwin環境用のスクリプトで、内部でWindowコマンドを呼び出しているものなどがあると、標準Cygwinスタイルのパス(/cygdrive/c/...)を期待している場合があります。いちいちスクリプトを変更するのもの何なので、互換性確保のためにsymbolic linkをはっておきます。

# mkdir /cygdrive/
# ln -s /c /cygdrive/c

minttyの文字コードをUTF-8に変更

gnupackの場合、windowsコマンド等との互換性優先のためか、minttyのデフォルト文字コードがsjis(cp932)になっています。他の環境やツールとの互換性を考えると、utf-8の方がいろいろ都合が良いので、設定を変更しておきます。gnupack展開先のトップディレクトリにあるconfig.iniを書き換えます。

(config.ini.diff)

18c18
<     LANG           = ja_JP.cp932
---
>     LANG           = ja_JP.UTF-8

また、.vimrcの設定も標準でsjisになっているのでこれも書き換えておきます。
(sjis設定で上書き設定している部分をコメントアウト)

~/.vimrc.diff

2c2
< set encoding=cp932
---
> "set encoding=cp932

Windowsコマンドの文字化け対策

minttyの設定をUTF-8に変更して困るのは、Windowsコマンド(ipconfig等)の出力の文字化けです。標準Cygwin環境もデフォルト文字コードがUTF-8なので同じことになります。対策として標準出力をUTF-8に変換するラッパーを通すようにします。
文字コード変換にはiconvを使えばいいのですが、gnupackのデフォルトでは入っていないので、予めapt-cygでlibiconvをinstallしておきます。その上で、.bashrcに以下のようなaliasを設定すればOKです。

(~/.bashrc)

function wincmd() {
    CMD=$1
    shift
    $CMD $* | iconv -f cp932 -t utf-8
}

alias ipconfig='wincmd ipconfig'
alias netstat='wincmd netstat'
alias netsh='wincmd netsh'

他に、必要な物があれば同じような感じで追加すればOKです。
なお、netsh interface dumpのように、標準出力をファイル出力したものを、そのまま別コマンドの入力として使うような場合には、ダンプしたファイルの文字コードがUTF-8のためにエラーになってしまうことがあるので注意が必要です。(PowershellもUTF出力なので同じみたいですが)


pingの切り替え

Windows7で、minttyからping打とうとすると、実行権限がないというエラーがでて実行できません。

# ping 127.0.0.1
ping: socket: Operation not permitted

minttyを管理者として実行すればいいのですが、それも面倒なので、Windows版のping (C:\Windows\system32\PING.EXE)を使うようにします。(Windows版だとpermissionにひっかからない)
.bashrcにaliasをはればいいのですが、minttyの文字コードをUTF-8に変えていると、他のwindowsコマンドと同じく文字化けしてしまうので、その場合は、上述の例と同じく、.bashrcで文字コード変換のラッパーををかますようにalias登録しておきます。

(~/.bashrc)

alias ping='wincmd /c/Windows/system32/PING.EXE'

設定関係はこれくらいで、あとは、必要なパッケージを追加で入れていきます。ssh, mingw64-i686-gcc-core, git, pythonなどなど。その辺は、それぞれの目的に応じてということで。

なお、gnupackは便利なのですが、最近更新が止まっているせいか、新しいバイナリをあとから入れるといろいろ問題があるようです。詳しく見てませんが、gnuplotやgroffは動きませんでした。ソースからコンパイルすればいいのかもしれませんが、本格的に使おうという人は標準Cygwinの方が結局手間がないかもしれません。

4774149543

【関連記事】
WindowsでCUI環境


【関連書籍】
詳解 シェルスクリプト Arnold Robbins Nelson H. F. Beebe 日向あおい
Windows コマンドプロンプト ポケットリファレンス 山近 慶一
Windowsコマンドプロンプト スパテク242 Vista/XP/2000対応 (スパテクシリーズ) 飯島 弘文

WindowsでCUI環境

人は習慣を好む、なぜならばそれを作ったのは自分だから。
バーナード.ショー

最近、仕事環境がかわったことで、職場のPC(Windoes 7)と、ついでに自宅で眠っているPC(Vista)をクリーンインストールからやり直しました。どちらの環境でも本格的なコード書くことはないですが、ちょっとしたスクリプト書いたり、ソースコードを読んだりすることはあるので、そのための環境も整えています。Windows環境でも定番で入れるアプリはいくつかありますが、その中で、CUI環境、キーボード操作改善関連のものをいくつか紹介しておきます。


gnupack (cygwin + emacs)

Cygwin

WindowsでCUIといえば、やはりcygwin。最近はWindowsもPowershellになって以前より使いやすくなってるらしいですが、いろいろ覚えるのもの面倒だし、やはりUnixライクな環境というのは便利なので入れています。gnupackは、Cygwinとemacsをアーカイブ展開するだけで使えるようにパッケージ化されたもので、導入が手軽なので乗り換えてみました。
emacsの方は、以前はMeadow使ってましたが、最近進化も止まっているのと、こちらの方がWindowsカスタマイズ済なので導入もお手軽ということで同じく最近乗り換えました。日本語入力も問題ありません。

gnupack (cygwn + emacs package) - SourceForge.JP


Launchy

Launchy

コマンド入力型のランチャ。コマンド入力でアプリやURL、フォルダを開けます。Launchy自身もAlt+Spaceで簡単に起う動する上に、コマンド入力も補完が聞くので少ないキーストロークで目的のアプリを立ち上げられます。私の場合、ショートカットを集めた専用のフォルダを作って、それをカタログに追加して使っています。

http://www.launchy.net/


Nostalgy (Thunderbird Add-on)

thunderbird

メーラはThunderbirdを愛用していますが、いくつか入れているAdd-onの一つが、NostalgyというキーボードショートカットのAdd-onです。メールの移動や、タグ付けがマウスなしで手早くできて非常に便利です。

Nostalgy :: Add-ons for Thunderbird - Mozilla Add-ons


Ctrl2Cap

capslock

emacsユーザーでなくとも、キーボードショートカット多用する人ならCapsのCtrl化は必須ですよね。Microsoft Technetで公開されているドライバです。

Microsoft Technet : Windows Sysinternals : Ctrl2cap


F1ブレイカー

F1

個人的には、Caps Lockと並んで存在が悪としか思えないF1ヘルプ起動。ESCキーを押そうとしてうっかりF1を押してしまう人は、これを入れて無効にしてしまいましょう。しかし、F1でヘルプ開く人なんてほんとにいるんでしょうか。。

F1ブレイカー : Vector


他にも、おすすめはありますが、とりあえずここまで。


4873114020
【関連記事】
gnupackでCygwin導入した時に最初にすること
gdbを電卓として使う
Caps lockとCtrl


【関連書籍】
Clean Coder プロフェッショナルプログラマへの道
整理HACKS!―1分でスッキリする整理のコツと習慣
IDEA HACKS! 今日スグ役立つ仕事のコツと習慣

再開

ここしばらく放置状態にしていたこのblogですが、最近ちょっと時間もできてきたので再開しようかと思います。
しばらく放置していたので、長期間更新なしで出る広告がもりもり出てるし、Google AdSenseも何かの表紙に停止されていました。。しばらくアフィリエイトブログ状態だったからかな。。

退会しようとするユーザーをつなぎとめる仕掛け

クオリティを与えよう。それが最高の広告だ。
ミルトン・ハーシー (ハーシーチョコレートの創業者)

月定額で動画が見放題ということで、昨年日本上陸したHulu。iPadや携帯、お風呂テレビなんかでも見れるので結構便利なのですが、最近はあんまり見る時間もなく、ほとんど使えていません。

ここ二ヶ月くらいは全く見ていないので、解約しようとページを開くと、そこに、「アカウントホールド」なる設定があることに気づきまhした。どうやら、しばらく休止状態にして、その間は料金もかからないようにできる模様。期限がくると自動で再開されてしまいますが、それまでのあいだに再開や、解約は自由とのこと。解約すると二度と再加入しないだろうけど、こういうオプションを用意しておくと、「また気が変わっても面倒だし、とりあえずは休止にしとくか」というユーザーも多いのではないでしょうか。かくいう私がそうでした :-P

退会しないで下さいといっても無駄ですが、こういうさりげない形で、ユーザーの意思でそちらを選ぶよう誘導するのって非常にうまいですね。

ちなみに、HuLuの設定は、Huluの「アカウント」=>「支払い情報」のところになる「アカウントホールドを利用する」から可能です。


Macbook airでBlu-rayドライブを使う

白鳥は哀しからずや 空の青 海のあをにも染まずただよふ
若山牧水

自宅PCをMacbook air (Mid2011 13")に乗り換えてから、しばらくはドライブ無しで使ってたのですが、さすがにないとやっぱり不便。ほとんど必要なケースはないんですが、CDリッピングくらいはやっぱりしたい。
一応、Windows PCもまだありますが、いちいちそのために別PCでWindows立ち上げるのも面倒。ということで、やっぱりドライブは購入することにしました。


さて、Macbook air用のドライブとしてまず候補にあがるのが、Apple純正のMacBook Air SuperDrive。専用ドライブなので見た目のデザインはMacbook airとの組み合わせでの機能は一番。itunesのバックアップなんかはこれでないとできないみたいだし。

Apple MacBook Air SuperDrive MC684ZM/A
B00485CHL8

とはいえ、このドライブ、Macbook air専用のため、他の機器では使えない。Windowsはもとより、Macbook Proでだって使えない。これはさすがにいまいち。
あともう一点悩ましいのがBlu-ray対応。どうせ新たに外付けドライブ買うのであれば、できればBlu-ray対応のものにしたいところです。自宅にはBDレコーダもありますし、別にMacでBDをみたいというわけではないんですが、BDレコーダでBDやDVDにバックアップとった個人ムービーを、PC環境でもう一度バックアップor編集したいと思うことが前々からありましたので。


というわけで、今回はsuperdriveはやめて、汎用のBlu-rayドライブを購入することに決めました。
私が購入したのは次のBUFFALOのポータブルBlu-rayドライブ(BR-PX68U2-BK)。

BUFFALO ポータブルブルーレイドライブ BR-PX68U2-BK
B002UD6CMK

旧モデルなので安かったのが決め手です。発売が古いため、バンドルされている再生ソフトも古く、Updateが必須という話もあるようですが、私の場再生用じゃないので問題なし。というか、そもそもMac用じゃないですしね。
ちなみに、このモデル含め、現在発売されているBlu-rayドライブはどれも公式にはMac対応していません(過去にあったようですが今は品切れ)。とはいえ、実際使っている限りは、何の設定せずとも問題なく使えています。メニューにもBD関連の設定が出ますので、Mac OS Lion自体にもBlu-ray対応はきちんと入っているようですね。


以下、簡単な動作確認結果です。

メディア書き込み (ファイル書き込み)読み込み
音楽CD - OK (itunesでリッピング)
CD-R OKOK
DVD-Video - OK (DVDプレイヤで再生)
DVD-R OK (Finderからファイル書き込み) OK
DVD-RAM OK (Finderからファイル書き込み) OK
BD-R (1層 25GB) (未検証) OK
BD-RE (1層 25GB) OK (Finderからファイル書き込み) OK
BD-RE (2層 50GB) OK (Finderからファイル書き込み)OK

書き込み速度も十分でています。
Blu-rayへの書き込みはできないかなと思っていたのですが、あっさりできたのは意外でした。あんまり書き込みすることはなさそうですが、うれしい誤算です。あと、DVD-RAMが使えるのものうれしい。


といことで、
・公式サポートでないということは気にならない
・自己責任で使う
・BDやDVD-RAMの資産がある
というMacbook airユーザーの方には、Blu-rayドライブはいいかもしれません。
私が買ったのは古い型ですが、BDXL対応の多分新しいモデルでも大丈夫かと思われます。

BUFFALO BDXL対応 ポータブルブルーレイドライブ BRXL-PC6U2-BK
B004T7V62G

捨てる、売る、電子化

人生は短い。この書物を読めば、あの書物は読めないのである。
ラスキン

長らく放置状態にしていた物置を大掃除。すると出てくる出てくる、引越し以来開けていないダンボールや、二度と着ないであろう服、未だ読んでないものも含めた大量の本、長らく聞いていないCD。。。「いつかまた」と思って残してきたこれらの荷物達ですが、この状態では「いつか」も一生こないのはいい加減明白。思い切って「捨てる」「売る」「電子化」することを決めました。


大切な本は電子書籍化

電子化すべきか、残すべきか

掘り出されたダンボールの中身は、また読むかと思って残している書籍から、買ったものの一度も読んでいないもの、あるいは読み終わって処分していないものまで様々。不要なものは、捨てるか売るかするとして、問題は残しておきたい書籍達。紙の形はかさばるし、持ち歩くのも一苦労なので、ここはやっぱり電子化したい。とはいえ、自分で自炊環境揃えるのも大変ですので、前から気になっていた自炊代行サービスを利用することにしました。装丁が気にいっている本も多かったのですが、今の我が家では立派な本棚に並べてあげることもできませんので、見たい時に読めるPDFに生まれ変わってもらってもらうことにしました。

さて、自炊代行サービスといえば、出版社からスキャン代行業者への質問状以降、各所でいろいろな議論を呼んでいます。自炊代行というサービス、あるいは、それに対する作家・出版社の反応に対しては、それぞれ賛否両論あると思いますが、これらの事をきっかけに、怪しげな代行業者が減ったようなので、その点だけは少なくとも良かったのではないかと思います。

そんな中、業者選びは少々迷いましたが、結局、最大手のbookscanを選びました。

bookscanってどうなの?

bookscan bookscanといえば国内最大手で、サービス面も充実していて評判も非常に良い業者です。但し、人気のある分納期は遅く、一時期は半年待ちという頃もありました。さすがに今は大分緩和してきて、今日時点では2ヶ月半待ち程度。それでも長いです。
そこで、選んだ選択肢は、納期が優遇されるプレミアム会員。これが非常に便利!。以下、簡単ですが、使用後の感想です。

プレミアム会員

bookscanのプレミアム会員は月額9980円。ちょっと高額に思えるかもしれませんが、50冊分のスキャンと、非常に充実したサービスがついてきます。50冊以上本があるなら断然こちらがおすすめです。以下、一部サービス内容を抜粋します(2012/1/2時点)。

  • 毎月50冊分まで無料でスキャン
  • 納期は、書籍到着後、当日~1週間以内にPDF化
  • Amazonや楽天ブックス等のサービスから、直送指定可能
  • OCR、名前変更作業付き

50冊分のスキャン換算であれば1冊200円ですね。通常コースならスキャンだけなら100円でも可能ではあるのですが、ファイル名変更(個別だと50円/1冊)はないとかなり不便だし、あとあとの検索を考えるとOCR処理もしておきたい。となると、結局1冊あたり150~250円はかかる計算になるので、決して割高ではありません。何より、待たずにすぐスキャンしてくれるのはうれしいです。スキャンデータを一括ダウンロードできるアプリも大量のスキャンデータがあるとかなり重宝しますよ。
プレミアム会員は、一時は会員枠の空き待ち状態で、登録したくてもできない状態がでしたが、今はすんなり登録できました。キャパが増えたのかも。

チューニングラボ

そしてbookscanの一番のおすすめはチューニングラボ。空白除去や文字の鮮明化処理、容量圧縮をほどこして電子書籍リーダーやスマホ・タブレットへ最適化してくれます。これが想像以上に便利。実際、単行本なんかをスキャンすると、上下にかなりの空白があるので、スキャンデータそのままでは無駄なエリアが多く、文字もその分小さくなってしまいますが、チューニング後のデータはかなりいい感じに処理されて、無駄な空白がきれいに除去されて非常に読みやすくなります。これだけでもbookscanを選ぶ価値があるといっても過言ではないです。
ちなみに、チューニング後のpdfはOCRデータは削除されていました。

ネットショップからの直送指定

また、これまたすごく便利なのがネットショップからの直送指定。プレミアム会員限定です。今まで本は基本新品で買うことが多く、マーケットプレイス等で中古の本を買う場合も状態のいいものをできるだけ選ぶようにしていました。しかし、電子化するのが前提なら少々日焼けしてようがヨレてようが関係なし。中身さえ読めればOKなので、お手頃なものを選んで、直接bookscanに直送。プレミアム会員なので、購入後一週間以内にはスキャンも完了、いつでもどこでも読めるようになる上、お財布にもやさしいということで、かなり便利です。
私の場合、40冊ちょっとは家の蔵書を送って、残りの数冊はAmazon等で気になる本を直送、という形で運用しています。

著作権

唯一の不満点は著作権関連。これはbookscanだけの問題ではないし、むしろ自炊代行業者の中では努力されている方だとは思うのですが、それでも何がスキャンできて、何がNGなのか判別するのは非常に難しい。建前上は、スキャン依頼する方がそれぞれ確認すべきということなのかもしれないけど、現実に即しているとは思えません。実際、運用されたとしたら、確認する方だけでなく、される方もいい迷惑でしょうし(自炊代行を認めていようといまいと)。この辺なんとかならないかなぁと思います。
ちなみに、最初にbookscan送った書籍の中に、自炊代行を許可しない著者の方の本を含めてしまっていたのですが、それらはスキャンされずに丁寧に送り返されてきました。これから送付しようとされている方はご注意下さい。
どの作家が反対しているかは、以下の記事中で、自炊代行業者への質問状に名を連ねた122人のリストが確認できますので、参考になるかと思います (※ もちろん、これが全てではありません)。

何で読もう?

482228428X 私の場合、PDFリーダー環境としては、iPad, kindle3, スマートフォン、それにMacbook airがありました。それぞれ一長一短ですが、やっぱり一番便利なのはkindle。軽いし、何よりe-inkがとにかく読みやすい!。一年程前に、興味本位で買ったものの、現状、日本語書籍が基本的にないのがやはりネックになって、US storeで雑誌をちょろちょろっと買って読んだくらいでお蔵入りしていたのですが、日本語PDFがまとめて手に入ったことで再登場。一気に、かかせないツールになりました。
日本上陸も近いと言われるkindleさん。kindle fireも魅力的ではありますが、本を読むのはメインならやっぱりe-inkモデルがおすすめです。


残りはリサイクルへ

さて、読みたい本は電子化するとして、残りは、もう読むことはないだろう本とCD達。CDについては、学生時代から書い集めたものがダンボールに二箱分ほど。お気に入りは既にPCの中ですし、CDを引っ張り出してきて聴くことなんてまずありません。多分この先もないでしょう。
これらは思い切ってリサイクルショップへ売却することにしました。私の場合、CDのジャンルとしてハードロック・ヘヴィーメタル系のものが結構あるのですが、こういうのはローカルのお店よりネットショップ向けなんだろうなと思ったので、今回は近所のお店ではなく、ネット系のリサイクルショップで売ることに決めました。

と、その前に、ものは試しということで、20枚程CDと古い本を見繕って近所の中古屋さん(ブックマーケット)に持って行ってみました。結果は、、、、、敢え無く惨敗。一緒にもっていた中古本達もあわせて、一部を覗いて値付け不可との判断。ちょっと悲しい。。処分してもらわずに引き取って来ました。

気をとり直して、今度はネット系ショップで売却手続き。こちらもいろいろありますが、評判を見ると、livedoor recycleが良さげです。品物単位で買取価格を見せてくれるのが好感が持てます。ということで早速申し込み。


申し込み日の2~3日以降くらいの指定した日に、宅配業者の方が引き取りにきてくれます。10点以上なら送料は無料。準備としては、ダンボール詰めと、印刷した申し込み書と身分証目書の同梱。回収した次の日には到着、その次の日には査定完了。結果はWebで簡単に確認できます。近所の中古屋さんでは値付け不可だったものが、以外と高値(といっても100円強)だったりしてちょっとうれしい。トータルでほんとに高価買取になったのか定かではありませんが、一枚一冊ずつ値段がついているのが見えるのは安心ですね。


ということで、電子化とリサイクルで、場所をとっていた本やCDがだいぶへって、非常にすっきりしました。一気に整理するのも気持ちはいいのですが、今後はためずに継続的にしないとダメですね :-)


4478732868 【関連書籍】
はじめてのGTD ストレスフリーの整理術 デビッド・アレン 田口 元
「捨てる!」快適生活―部屋スッキリの法則 飯田 久恵
電子ブック自炊完全マニュアル 戸田 覚
「自炊」のすすめ 電子書籍「自炊」完全マニュアル

すべてがπになる - 円周率の魅力

詩人味を持ち合せていない数学者は完璧な数学者とは言えない。
カール・ワイエルシュトラス

pi_day

3月14日は何の日かご存知でしょうかでしょうか? ホワイトデー? それもそうなんですが、もっとグローバルな記念日があるのです。上の画像は3月14日版のGoogleロゴです。そう、3.14で円周率(π)の日なんですね。Googleのロゴを見て知った人も多いんじゃないでしょうか。ということで、πの話をとりあげてみます。

Pi Day

日本人はゴロで記念日作るのが好きですが、これは日本限定じゃなくて、欧米でも"Pi Day"として結構有名みたいです。オフィシャル(?)サイト(http://www.piday.org/)ではπをあしらったTシャツやらも販売しています。ちょうど、アインシュタインの誕生日が3月14日ということもあって、大学などでイベントをもったりするところもあるようです。ちなみに、7月22日は円周率近似値の日とされているそうです。22/7が円周率の近似値として用いられるからとのこと。無理やり感がありますが、ヨーロッパ等では、日付の順序が、mm/ddではなくdd/mmになるので、案外受け入れられやすいのかもしれません。

円周率の覚え方

円周率(π)は、数ある数学定数の中でも、最も魅力溢れる数の一つですが、3.14159265...と延々と続く無理数である点が一般的には最も有名な特徴ではないでしょうか。私も子どもの時意味もなく100桁くらい覚えた記憶があります。その時は、ゴロとかではなく直接覚えてたような気がしますが、世の中には結構有名な覚え方というのもあるんですね。
産医師異国に向かう 産後厄なく 産婦みやしろに 虫散々闇に鳴く
3.14159265 358979 3238462 643383279 (30桁)
というのが一番有名みたいです。

円周率ついに割り切れる?

上述の通り、πが無理数なのは有名な話ですが、Googleで「円周率」を検索すると4位くらいに、次のnewsが入っています。
ネタ自体も秀逸ですが、Googleもなかなか秀逸です(笑)。

数学定数の顔

円周率(π)は、その名の通り円周と直径の比をあらわす数ではありますが、幾何学以外のあらゆる数学の分野で顔を出します。その最たる例はオイラーの公式でしょう。
eiπ = - 1
それぞれ異なる由来を持つ虚数単位のiと自然対数の底e、そして円周率πの関係性が、ここまでシンプルな数式で表されるというのは誰もが驚きます。リチャード・ファインマンはオイラーの公式について、「我々の至宝」かつ「すべての数学のなかでもっとも素晴らしい,そして驚くべき公式の一つ」だと述べています。個人的には、グレゴリーの公式に初めて出会った時も衝撃的でした。
π
4
1
1
1
3
1
5
1
7
+ ...
実用性云々はさておき、高校でオイラーの公式の証明くらいまでを教えるというのは、数学の魅力を伝えるという意味で非常に意味があるのではないでしょうか。

πが奏でる音楽

πの十進表示は、一見ランダムに見える数字の羅列です。非科学的だと分かっていても、この数列には何らかのメッセージがあるんじゃないか?、なんてこともついつい考えたくなります。YouTubeに円周率を譜面に見立てて演奏している動画ありましたので紹介しておきます。

YouTube - 円周率 pi

多分ランダムな音階でもエコーかけたりするとそれなりに聞こえるということなんでしょうけど、やっぱり譜面がπだと思うと聴く方の気持ちがかわりますね。


様々な顔をもつ円周率π。今後も様々なかたちで人々を魅了し続けるでしょう。


448601863X 【関連記事】
始まりはいつもゼロ? - 0オリジンと1オリジン
博士の愛した数式 - 数学の美しさ
googleを電卓として使う

【関連書籍】
不思議な数πの伝記 A.S.Posamentier, I.Lehmann
オイラーの贈物―人類の至宝eiπ=-1を学ぶ 吉田 武
πの歴史 (ちくま学芸文庫) Petr Beckmann
数の悪魔―算数・数学が楽しくなる12夜

Impossible is Nothing - 「音」で世界を「視る」

「不可能」とは自らの力で世界を切り拓く事を放棄した、臆病者の言葉だ。
「不可能」とは,現状に甘んじるための言い訳にすぎない。
「不可能」とは,事実ですらなく、単なる先入観だ。
「不可能」とは、誰かに決めつけられることではない。
「不可能」とは、通過点だ。
「不可能」とは、可能性だ。
「不可能」なんてありえない。(IMPOSSIBLE IS NOTHING)
モハメドアリ

冒頭の引用は、「不可能」という言葉を忌み嫌っていたモハメド・アリの語録を集めたものです。adidasの広告で使われていたので、ご存知の方も多いでしょう。私は最近まで知らなかったのですが、今では非常に大好きなフレーズです。特に最後の「Impossible is nothig」。ここに全てが集約されています。
「Nothing is impossible」じゃなくて「Impossible is Nothing」。前者だと「不可能なんてない」って意味になりますが、こっちは「不可能なんて何てことない」って感じです。世の中、物理的に不可能なこといくつでもありますが、だからといってそれが何かの限界を意味しているわけではなりません。

例えば、人は自分自身で空を飛ぶことはできないけれど、飛行機を発明しました。無限に生き続けることはできないけれど、言葉や文字で後世にメッセージを伝えることができるようになりました。一見不可能なことでも、方法はある。人類の歴史、あるいは、文明の発達は、まさに不可能との戦いです。


echolocation ここに一つの実例があります。皆さんは「反響定位」という言葉をご存知でしょうか。イルカやコウモリが持つ能力の一種で、音の反響を利用して周囲の状況を知覚する能力の事です。ソナーと同じ原理といった方が分かりやすいかもしれません。視力ではなく、一種の聴覚によって周囲の状況を「視る」能力です。

驚くべきことに、この反響定位を人間に応用するという研究がなされており、実際に身につけた人達がいます。有名な例が、アメリカのベン・アンダーウッド(Ben Underwood)君。彼は、3歳のときにガンで両眼を失って、それ以来視力を失ってしまいました。しかし、高校生になった彼は、友達と一緒にスポーツをしたり、ローラースケートに興じたりと、まるで視力がないことを感じさせません。その秘密が反響定位です。
なんと、彼は、自分で舌打ちをしてその反響を確かめることで、周囲の状況を知覚することができるのです。能動的に音を発しているので、バスケットボールのゴールや、路上の障害物等、自ら音を一切発しない静止物であってもその場所を特定できるのです。

 ・音で見る:「イルカ等の反響定位」を人で訓練(動画) - Wired Vision
 ・Human echolocation - Wikipedia (English)

人間の能力というのは想像以上の可能性を秘めています。物理的に失われた感覚を他の感覚で補完するというのは、以前、共感覚の記事(共感覚 - 色の音・香りの形)で紹介したNeil Harbissonの例とも共通するところがあります。まさに、Impossible is nothing。不可能なんてなんてことない、という実例です。


開発の仕事をしていると時には、無理難題とも言われることを頼まれることもあります。それは技術的制約であったり、時間的制約であったり様々です。しかし、そこですぐ不可能と答えを出してしまっては、技術者としては問題でしょう。もちろん、できないことをできると言うのは単なる無責任であり、プロの仕事ではありません。しかし、従来の方法で無理だから不可能というのはあまりに短絡的です。そもそも、できると分かっている事だけやっていては、技術者とはいえません。本来、不可能を可能にするのが、技術者や科学者の役目であり、やりがいでもあるのですがから。

Impossible is Nothing。「不可能」こそが次のステップへの最初の一歩です。


【関連記事】
4901391801共感覚 - 色の音・香りの形
過学習と局所解
できそうでできない - 後だしジャンケンの心理学
フェルミのパラドックス

【関連書籍】
計算不可能性を設計する―ITアーキテクトの未来への挑戦 (That’s Japan)
奇跡のリンゴ―「絶対不可能」を覆した農家・木村秋則の記録
モハメド・アリ―その生と時代 (上) (岩波現代文庫―社会) 小林 勇次
理性の限界――不可能性・不確定性・不完全性 (講談社現代新書)
「人を動かす」英語の名言 (講談社バイリンガル・ブックス)

せっかく作ったのだから・・ - サンクコストの罠

過ぎ去りしことは、過ぎ去りしことなれば、過ぎ去りしこととして、そのままにせん。
ホメロス - 『イリアス

サンクコスト (sunk cost) という単語を耳にされたことはあるでしょうか。日本語では「埋没費用」と訳されます。Wikipediaを見ると、「事業に投下した資金のうち、事業の撤退・縮小を行ったとしても回収できない費用」と説明されています。マーケティング用語ですが、今回は、ソフトウェア開発におけるサンク・コストとその対応について少し考えます。

サンク・コストのわかりやすい例としてよく用いられるのが映画館の話です。これまた、Wikipediaからひっぱってきましょう。

ある映画のチケットが1800円であるとする。しかし映画が余りにもつまらない時、1800円払った映画を見るべきか、それとも映画館を出て残りの時間を有効に使うかが問題となる。
  • 映画を見るのを止めた場合:チケット代1800円は失うが、上映時間を有効に使うことができる。
  • 映画を見続けた場合:チケット代1800円に加え、約2時間(上映時間)を失う。
この場合、チケット代1800円が埋没費用となる。この埋没費用は、どの選択肢を選んだとしても回収できない費用である。そこで時間を浪費してまで、つまらないと感じる映画を見続けることは合理的な選択とはいえない。残りの上映時間を有効に使うことが合理的な選択となる。

4569701299 あるソリューションの開発に巨額の投資をしてきたが、他社がそれを大きく上回るソリューションを提供してきた。今の開発を続けても勝ち目はない。それでもとりあえず開発を完成させるべきか、それとももう一歩のところとはいえ、ここできっぱりやめるべきか。こういう事業判断もそうですね。
ついつい「せっかくここまでやったのだから。。」という考えをしてしまいがちですが、どちらにせよ過去の投資は返ってこないのだから、それらはサンク・コストとして考えてはいけないはずです。冷静に考えて見ればあたり前の話ですが、人間心理としてついついサンク・コストとこれからの投資を混同してしまいがちです。今までやってきたことを「無駄」だったと認めることは、精神的にはつらいところですからね。しかし、それは仕方のないことなので、きっぱりあきらめることが肝心です。

先の例は、事業判断の話になりますが、開発の現場でも同じような話があります。で、よくある話としては、初期の設計がまずい、あるいは、担当者のスキル不足から「こりゃ作り直した方が早いな」というケースです。こういう場合、「せっかくここまで作ったんだから」あるいは「この人もせっかく慣れてきたところだし」ということで、結局そのまま作り直さないでいることがありますが、この時サンクコストに囚われていないか判断が必要です。本当にその判断が正しいであれば、「せっかくここまで」というサンク・コストは無視して、今を基準にした判断が必要です。

こう書くとと、「問題がでたらすぐにあきらめましょう」と誤解されるかもしれませんが、そうではありません。それまでに払ったコストは返ってきませんが、そこで得られた経験はあるはずですので、それは考慮すべきです。これらは今後の投資額に利いてきます。 それに、プログラマという人種は「作り直し」が好きなので、本当に作り直した方が早いのかは、よく考えた上で判断する必要がありますね。
また、方針転換でリソース再分配する際には、部分最適だけに走って、プロジェクト全体のクリティカルパスに影響を及ぼしたり、長期的に無理が生じるようなことのないようにもしないといけません。

何にしても「引き時」というのはほんと難しい。それを痛感する今日この頃でした ^^;

【関連記事】
手堅い見積もりが遅れを生む - セーフティの弊害
このバグ直しますか? - 原因療法と対症療法

【関連書籍】
サンクコスト時間術 (PHPビジネス新書 66) (PHPビジネス新書 66) 斎藤 広達
ソフトウェア開発者採用ガイドJoel Spolsky 青木 靖
図解 実戦マーケティング戦略 佐藤 義典
ソフトウェアプロダクトライン―ユビキタスネットワーク時代のソフトウェアビジネス戦略と実践 前田 卓雄

プロフィール
  • Author:proger
  • 組み込み関係で仕事してます
4873115930
人気エントリ
最近の記事
4839912653
PR
最近のコメント
478850362X
Links
ブログ内検索