ウォッチメイカー

ウォッチメイカー

ジェフリー・ディーバーの新刊。ちゃんと一気読みはできる。

が、ちょっとこれはどうかなあ。衰えてきてる。どんでん返しはいいんだけど、着地がスッキリしない。驚かない。

以下ネタバレ有り

今回は猟奇的な(連続)殺人は起きなかった。メインストーリー内での死人はゼロ。気分的には歓迎なんだけど、これも9.11の影響か。

原題は「The Cold Moon: A Lincoln Rhyme Novel」。「冷たい月」と「ウォッチメイカー」、んー。まあどっちでもいいか。

これは、スーパーへ買出しにいった時に、グリーンコートの文教堂で見つけて買った。

この2週間ばかりに読んだ本の中から

恋と伯爵と大正デモクラシー 有馬頼寧日記1919

枢密院議長の日記 (講談社現代新書)

恋と伯爵と大正デモクラシー 有馬頼寧日記1919枢密院議長の日記 (講談社現代新書)

この2冊は併読するとより楽しめる。有馬頼寧の評価が正反対。「枢密院議長の日記 (講談社現代新書)」の方は、華族のバカ息子扱いなのに対して、「恋と伯爵と大正デモクラシー 有馬頼寧日記1919」ではなかなかやり手の青年華族。まあ思い入れが強いせいだけど。

二人の著者が倉富日記の同じ部分を引用して逆の感想になるところが面白い。大正から昭和にかけての東京に興味を持てるならばお勧め。

どちらもAmazonで買った。

阿佐田哲也コレクション〈1〉天和をつくれ (小学館文庫)

阿佐田哲也コレクション〈1〉天和をつくれ (小学館文庫)

んー、いまひとつ。短編集未収録の意味がわかる。著者が存命中は出せなかった本なのかも。

Amazonで買った。

走ることについて語るときに僕の語ること

走ることについて語るときに僕の語ること

これはいいんじゃないの。最近の村上本を読まなくなった人にもお勧め。2時間で読めるし。

オアゾの丸善で買ったんだけど、ものすごい平積み。すぐ古本屋に並ぶから安く買えばいい。

T型フォード殺人事件 (1982年) (集英社文庫)

T型フォード殺人事件 (1982年) (集英社文庫)

いい作家だなあ。SF黎明期感が濃密で、筒井康隆の初期のものと雰囲気がダブる。早死にしなければなあ、惜しい。

表題作もいいけれど「立体交差」(だったか)が面白かった。新刊では手に入らないけど、まだ読んでなくてどこかで見つけたら買っとけ本。

こないだの一箱古本市で買った。

毒薬としての文学―倉橋由美子エッセイ選 (講談社文芸文庫)

毒薬としての文学―倉橋由美子エッセイ選 (講談社文芸文庫)

小説はとても好きなんだけど、エッセイはあんまり。学生のころに書かれたエッセイも載ってるのだけど、同級生にこういう人がいたらちょっとイヤだ。

ほうろうで買った(たしか)。

Windows ファイルの関連付け変更バッチ

OpenOffice.orgを2.3にバージョンアップした。

インストール自体はファイルサーバ上に一度だけで完了。ただ、ファイルの関連付けを変更するにはインストーラを動かさないといけない。

何台もあるサーバで関連付けを変えるためだけにインストーラを動かすのは面倒だなあ、ということで、ファイルの関連付けだけを登録、変更するバッチを作って移行完了。力技。


change user /install
pause
assoc .odb=opendocument.DatabaseDocument.1
assoc .odf=opendocument.MathDocument.1
assoc .odg=opendocument.DrawDocument.1
assoc .odm=opendocument.WriterGlobalDocument.1
assoc .odp=opendocument.ImpressDocument.1
assoc .ods=opendocument.CalcDocument.1
assoc .odt=opendocument.WriterDocument.1
assoc .otg=opendocument.DrawTemplate.1
assoc .oth=opendocument.WriterWebTemplate.1
assoc .otp=opendocument.ImpressTemplate.1
assoc .ots=opendocument.CalcTemplate.1
assoc .ott=opendocument.WriterTemplate.1
pause
ftype opendocument.CalcDocument.1="Z:\OpenOffice.org 2.3\program\scalc.exe" -o "%%1"
ftype opendocument.CalcTemplate.1="Z:\OpenOffice.org 2.3\program\soffice.exe" -o "%%1"
ftype opendocument.DatabaseDocument.1="Z:\OpenOffice.org 2.3\program\sbase.exe" -o "%%1"
ftype opendocument.DrawDocument.1="Z:\OpenOffice.org 2.3\program\sdraw.exe" -o "%%1"
ftype opendocument.DrawTemplate.1="Z:\OpenOffice.org 2.3\program\soffice.exe" -o "%%1"
ftype opendocument.ImpressDocument.1="Z:\OpenOffice.org 2.3\program\simpress.exe" -o "%%1"
ftype opendocument.ImpressTemplate.1="Z:\OpenOffice.org 2.3\program\soffice.exe" -o "%%1"
ftype opendocument.MathDocument.1="Z:\OpenOffice.org 2.3\program\smath.exe" -o "%%1"
ftype opendocument.WriterDocument.1="Z:\OpenOffice.org 2.3\program\swriter.exe" -o "%%1"
ftype opendocument.WriterGlobalDocument.1="Z:\OpenOffice.org 2.3\program\soffice.exe" -o "%%1"
ftype opendocument.WriterTemplate.1="Z:\OpenOffice.org 2.3\program\soffice.exe" -o "%%1"
ftype opendocument.WriterWebTemplate.1="Z:\OpenOffice.org 2.3\program\soffice.exe" -o "%%1"
pause

Windows ショートカット作成VBスクリプト

全員のデスクトップのショートカットを揃えたほうが電話でサポートしやすいね、ということで。
VBスクリプトを使ってショートカット作成スクリプトを作ってみた。

使い方は、こんな感じ。

C:\>create-shortcuts.vbs shortcut.conf

create-shortcuts.vbs

'#####################################################
' ショートカット作成スクリプト
' 設定ファイル複数受付版
'#####################################################
Const FOR_READING = 1
Const COL_FOLDER = 0
Const COL_SUB_FOLDER = 1
Const COL_TITLE = 2
Const COL_PATH = 3
Const COL_WORK = 4

Set objArgs = WScript.Arguments
'Wscript.Echo objArgs(0)
'Wscript.Echo objArgs.length

For arg_index = 0 to objArgs.length-1

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile(objArgs(arg_index), FOR_READING)

Do Until objTextFile.AtEndOfStream
  strNextLine = objTextFile.Readline
  if strNextLine <> "" then
    conf = Split(strNextLine , ",")
    if conf(COL_FOLDER) <> "" then
        Set Shell = CreateObject("WScript.Shell")
        CreatePath = Shell.SpecialFolders(conf(COL_FOLDER))
        if CreatePath = "" then CreatePath = conf(COL_FOLDER)
        if conf(COL_SUB_FOLDER) <> "" then
          CreatePath = CreatePath & "\" & conf(COL_SUB_FOLDER)
          if not objFSO.FolderExists(CreatePath) then
          	objFSO.CreateFolder(CreatePath)
          end if
        end if
        Set link = Shell.CreateShortcut(CreatePath & "\" & conf(COL_TITLE) &".lnk")
        link.Description = conf(COL_TITLE)
        link.HotKey = ""
        link.IconLocation = conf(COL_PATH)
        link.TargetPath = conf(COL_PATH)
        '通常のウインドウ
        link.WindowStyle = 1
        link.WorkingDirectory = conf(COL_WORK)
        args = ""
        For i = COL_WORK+1 to Ubound(conf)
          args = args & " " & conf(i)
        Next
        link.Arguments = args
        ret = link.Save

'デバッグ情報
'        Wscript.Echo "タイトル:" & conf(0)
'        Wscript.Echo "パス:" & conf(1)
'        Wscript.Echo "作業ディレクトリ:" & conf(2)
'        Wscript.Echo "引数:" & args
'        Wscript.Echo ret
    end if
  end if
Loop
Next

shortcut.conf

,********************************************
, カンマで始まる行はコメント行
,********************************************

,カンマで区切って、作成場所、タイトル,パス,作業ディレクトリ,引数1,引数2,引数3,...の順に書いておくと
,作成場所(デスクトップなど)にショートカットを作る

,作成場所に指定できるのは次のものだけ
, AllUsersDesktop
, AllUsersStartMenu
, AllUsersPrograms
, AllUsersStartup
, Desktop
, Favorites
, Fonts
, MyDocuments
, NetHood
, PrintHood
, Programs
, Recent
, SendTo
, StartMenu
, Startup
, Templates

,****************************************************************
, ここからが実際のデータ
,****************************************************************
Programs,,Excel,C:\Program Files\Microsoft Office\Office11\excel.exe,H:\,
Programs,,Word,C:\Program Files\Microsoft Office\Office11\winword.exe,H:\,
Programs,,PowerPoint,C:\Program Files\Microsoft Office\Office11\powerpnt.exe,H:\,
Programs,,Visio,C:\Program Files\Microsoft Office\Visio10\visio.exe,H:\,
Programs,,Access,C:\Program Files\Microsoft Office\Office11\msaccess.exe,H:\,

Desktop,,Excel,C:\Program Files\Microsoft Office\Office11\excel.exe,H:\,
Desktop,,Word,C:\Program Files\Microsoft Office\Office11\winword.exe,H:\,
Desktop,,PowerPoint,C:\Program Files\Microsoft Office\Office11\powerpnt.exe,H:\,
Desktop,,Visio,C:\Program Files\Microsoft Office\Visio10\visio.exe,H:\,
Desktop,,Access,C:\Program Files\Microsoft Office\Office11\msaccess.exe,H:\,

ActiveDirectoryのLDAP認証もどき

python-ldapを使ってみた。

ついでに、以前から試そうと思って手をつけていなかった、ActiveDirectoryのLDAP認証も。試しに、bindしてみるだけ。平文でパスワードが流れるのでこのままではちょっと使えない。

#!/usr/bin/env python
# -*- coding: utf-8-*-
# python-ldapを使ってActiveDirectoryで認証してみる
# http://python-ldap.sourceforge.net/

def ADAuth(username,password,host,port=389):
    """ActiveDirectoryのドメイコントローラにユーザ名とパスワードでbindしてみる。
    bindできれば認証OK。認証NGなら例外が起きる。
    """
    import ldap
    url = "ldap://%s:%d" % (host,port)
    l = ldap.initialize(url)
    l.simple_bind_s(username,password)
    l.unbind_s()

if __name__=='__main__':
    if len(sys.argv)<3:
        print "Usage: %s username password" % (sys.argv[0])
    else:
        try:
            userid = sys.argv[1]
            password = sys.argv[2]
            ADAuth(userid,password,"adserver.example.com")
            print "OK"
        except:
            print "NG"

Gist:227565