AppleScript で音を鳴らす
Mac OS 9 までは、「起動項目」や「終了項目」にサウンドファイルを入れておけば、それだけで音を鳴らしてくれた。OS X では、ログイン項目にサウンドファイルを指定しても、例えば iTunes が起動してしまう。起動して鳴らしてくれるならそれでもいいが、時間をかけて起動した挙句にウィンドウを開くだけで、鳴らすには三角ボタンをクリックする必要があったりとか、いろいろ面倒な仕様になった。

と、思っていた。しかしそれは、無知ゆえのストレスだったのかもしれない。

◆◆

Mac OS X で、Finder で「command +G」を押すと「フォルダへ移動」というダイアログが出てくる(OS X 10.7.5)。
そこに「/System/Library/Sounds/」と入れてリターンキーを押すと、「/System/Library/Sounds/」フォルダが表示される(いきなり「/」で書き出すと、それは「ルートディレクトリ」を意味する)。

「/System/Library/Sounds/」にはデフォルトで、いろんな AIFF ファイルが入っている。これがいわゆる「システムサウンド」だ。どれかひとつを選択してスペ−スキーを押せば、クイックルックで音が聞ける。ここに入ってるサウンドは、システム環境設定の「サウンド」→「サウンドエフェクト」で、警告音として表示される。つまりここにエッチなお姉さんの声を入れておくと、エッチなMacにすることも可能、ということだ。

AppleScript で、この中の好きな音を鳴らすことができる。例えば以下の1行を AppleScript エディタにコピペして実行ボタンを押せば、「Purr.aiff」が鳴る。「afplay」というのが「ユニックスコマンド」であるらしい。まあ、そう言われても何のことかはわからないが、我々バカスクリプターにとっては、使えさえすれば、わからなくてもいいのである。
do shell script "afplay /System/Library/Sounds/Purr.aiff"

別にシステムサウンドである必要はない。例えば自分のホームフォルダ(家のアイコンが付いたフォルダ)に「sound」というフォルダを作り、そこにファイル「OE-new-mail.aiff」を置いてみる。これを鳴らすAppleScriptは
do shell script "afplay ~/sound/OE-new-mail.aiff"
だ。「~/」がホームを意味する。ただし実験の結果、いくつかの制限がある模様。

・「~/sound/OE-new-mail.aiff」みたいなヤツを、ファイルの「パス」と呼ぶ。
 経路という意味。まあ「住所」です。パスの中に半角スペースがあるとダメ。
 例えばファイル名が「OE new mail.aiff」だとエラーになる。
 フォルダ名が「 Sound」とかもダメ。
・いくつかと書いたけど、今のところ確認できたのはそれだけか。
 半角ハイフンと半角アンダーバーはオッケー。
 意外なことに日本語は、全角スペースも含めてオッケー。
・AIFF 以外の、例えば MP3 とかでもいけるのかどうか、未検証。

●サンプルスクリプトの使い方

Objective-Cでコマンドの中身を作るまで - ザリガニが見ていた...。
徹底的にソフトウェアで豊かな音を奏でてみよう - ザリガニが見ていた...。
[PR]
# by nobiox | 2014-02-05 21:23 | ├バカスクリプト | Comments(0) |
InDesign で PDFとパッケージフォルダを書き出しZIP圧縮し、元ファイルをリネームする
当然もっとエレガントな書き方があるんだろうけど。
--1-PDF見開きのみ
try
tell application "Adobe InDesign CS4"
save document 1
set org_name to (name of document 1) as Unicode text
set doc_name to do shell script "echo '" & org_name & "' | sed -e 's/\\.indd$//;'"
--↑拡張子の削除
set PDF_doc to doc_name & ".pdf"
set Fpath to "snoopy:users:pinkman:Desktop:" & PDF_doc

tell application "Finder"
if exists file PDF_doc of desktop then
delete file PDF_doc of desktop
end if
end tell

export document 1 format PDF type to Fpath using PDF export preset "nobidouble"
save document 1
close document 1
end tell --tell application "Adobe InDesign CS4"
tell application "Preview"
activate
tell application "System Events"
key code 13 using {command down} --W
end tell
end tell
on error
tell application "Finder"
activate
display dialog "エラーです"
end tell
beep 2
end try
--2-パッケージまですべて
try
tell application "Adobe InDesign CS4"
save document 1
set org_name to (name of document 1) as Unicode text
set doc_name to do shell script "echo '" & org_name & "' | sed -e 's/\\.indd$//;'"
--↑拡張子の削除
set doc_name_zip to doc_name & ".zip"
set PDF_doc to doc_name & ".pdf"
set PDF_doc_1p to "1p_" & doc_name & ".pdf"

set Fpath to "snoopy:users:pinkman:Desktop:" & PDF_doc
set Fpath_1p to "snoopy:users:pinkman:Desktop:" & PDF_doc_1p

tell application "Finder"
if exists file PDF_doc of desktop then
delete file PDF_doc of desktop
end if
if exists file PDF_doc_1p of desktop then
delete file PDF_doc_1p of desktop
end if
if exists folder doc_name of desktop then
delete folder doc_name of desktop
end if
if exists folder "zxc_vbnm%x" of desktop then
delete folder "zxc_vbnm%x" of desktop
end if
end tell
tell application "Finder"
try
delete file doc_name_zip of desktop
end try
end tell
--zipファイルはあえて捨てなくとも内容が置き換えられてしまう模様。
--でもそれだと追加日でソートできないのでやっぱり捨てる。何故か下記では機能しない。
--else if exists file doc_name_zip of desktop then
--delete file doc_name_zip of desktop

export document 1 format PDF type to Fpath using PDF export preset "nobidouble"
beep
export document 1 format PDF type to Fpath_1p using PDF export preset "nobisingle"

--▼★★★パッケージしてフォルダ名を doc_name に変更して圧縮
tell application "Finder"
try
(*「デスクトップ」フォルダがすでに開いている場合に備えて*)
select Finder window "デスクトップ"
set toolbar visible of Finder window 1 to true
set current view of Finder window 1 to list view
set visible of column id modification date column of list view options of Finder window 1 to true --変更日
set sort column of list view options of Finder window 1 to modification date column
on error
(*「デスクトップ」ウィンドウが存在しない場合*)
set xdr5 to ((path to home folder) as text) as alias
make new Finder window to folder "Desktop" of folder xdr5
set toolbar visible of Finder window 1 to true
set current view of Finder window 1 to list view
set visible of column id modification date column of list view options of Finder window 1 to true --変更日
set sort column of list view options of Finder window 1 to modification date column
--デスクトップウィンドウは必ずリスト表示(というかコラム表示以外)にしておく。
--圧縮セクションに「set fol_Path to (target of window 1) as alias」という行があり、
--コラム表示だとzipが「zxc_vbnm%x」の中に作られてしまう。
end try
make new folder at desktop with properties {name:"zxc_vbnm%x"}
end tell
tell application "Preview"
activate
tell application "System Events"
key code 13 using {command down} --W
delay 0.2
key code 13 using {command down} --W
end tell
end tell
--↓パッケージ
tell application "Adobe InDesign CS4"
tell document 1
set myFolder to "snoopy:Users:pinkman:Desktop:zxc_vbnm%x:"
set myResult to package to myFolder with copying profiles, copying fonts, copying linked graphics, including hidden layers, creating report, updating graphics and ignore preflight errors
end tell
end tell
--↑パッケージ終わり

tell application "Finder"
activate
select Finder window "デスクトップ"
select folder "zxc_vbnm%x" of window 1
set tmp to selection
set name of item 1 of tmp to doc_name
--↑フォルダ名を doc_name に

--↓圧縮
set i to 0
set fol_Path to (target of window 1) as alias
repeat with select_item in (selection as list)
set file_path to select_item as alias
set fil_name to name of file_path as text
set source to quoted form of POSIX path of (file_path as text)
set dest to quoted form of POSIX path of (fol_Path & fil_name & ".zip" as text)
do shell script "ditto -ck " & source & " " & dest
delay 1
set i to i + 1
end repeat
--↑圧縮終わり
--[AppleScript] Finderで複数選択している項目を1つずつzipで圧縮 | How2すいとー
--http://www.hw2-suito.com/archives/410
end tell
--▲★★★パッケージしてフォルダ名を doc_name にして圧縮
save document 1
close document 1
end tell --tell application "Adobe InDesign CS4"
tell application "Finder"
--↓元のInDesignファイル名アタマに「XXX」を付加
set addStr to "XXX"
if exists file org_name of window 1 then
select window 1
select file org_name of window 1
try
set FinderSelection to selection as alias list
on error
set FinderSelection to selection
end try
repeat with aFile in FinderSelection
set oldName to name of aFile
set newName to addStr & oldName
set name of aFile to newName
end repeat
else if exists file org_name of window 2 then
select window 2
select file org_name of window 1
try
set FinderSelection to selection as alias list
on error
set FinderSelection to selection
end try
repeat with aFile in FinderSelection
set oldName to name of aFile
set newName to addStr & oldName
set name of aFile to newName
end repeat
else if exists file org_name of window 3 then
select window 3
select file org_name of window 1
try
set FinderSelection to selection as alias list
on error
set FinderSelection to selection
end try
repeat with aFile in FinderSelection
set oldName to name of aFile
set newName to addStr & oldName
set name of aFile to newName
end repeat
else if exists file org_name of window 4 then
select window 4
select file org_name of window 1
try
set FinderSelection to selection as alias list
on error
set FinderSelection to selection
end try
repeat with aFile in FinderSelection
set oldName to name of aFile
set newName to addStr & oldName
set name of aFile to newName
end repeat
else if exists file org_name of window 5 then
select window 5
select file org_name of window 1
try
set FinderSelection to selection as alias list
on error
set FinderSelection to selection
end try
repeat with aFile in FinderSelection
set oldName to name of aFile
set newName to addStr & oldName
set name of aFile to newName
end repeat
else if exists file org_name of window 6 then
select window 6
select file org_name of window 1
try
set FinderSelection to selection as alias list
on error
set FinderSelection to selection
end try
repeat with aFile in FinderSelection
set oldName to name of aFile
set newName to addStr & oldName
set name of aFile to newName
end repeat
else if exists file org_name of window 7 then
select window 7
select file org_name of window 1
try
set FinderSelection to selection as alias list
on error
set FinderSelection to selection
end try
repeat with aFile in FinderSelection
set oldName to name of aFile
set newName to addStr & oldName
set name of aFile to newName
end repeat
else if exists file org_name of window 8 then
select window 8
select file org_name of window 1
try
set FinderSelection to selection as alias list
on error
set FinderSelection to selection
end try
repeat with aFile in FinderSelection
set oldName to name of aFile
set newName to addStr & oldName
set name of aFile to newName
end repeat
else if exists file org_name of window 9 then
select window 9
select file org_name of window 1
try
set FinderSelection to selection as alias list
on error
set FinderSelection to selection
end try
repeat with aFile in FinderSelection
set oldName to name of aFile
set newName to addStr & oldName
set name of aFile to newName
end repeat
else if exists file org_name of window 10 then
select window 10
select file org_name of window 1
try
set FinderSelection to selection as alias list
on error
set FinderSelection to selection
end try
repeat with aFile in FinderSelection
set oldName to name of aFile
set newName to addStr & oldName
set name of aFile to newName
end repeat
else if not (exists file org_name of window 10) then
display dialog "ファイルが見つかりません" with icon caution
end if
end tell
on error
tell application "Finder"
activate
display dialog "エラーです"
end tell
beep 2
end try
以下、
3-PDFのみ両方.scpt
4-パッケージのみ.scpt
5-パッケージと見開きPDF.scpt
6-パッケージと片頁PDF.scpt
7-PDF片頁のみ.scpt
とあるけど省略。その7本を
--http://kb2.adobe.com/jp/cps/511/511636.html
--http://blog.goo.ne.jp/vallie/e/91b2448c09eeba217f82099e6715d2c9
--http://e-deep.org/iblog/C535725699/E20080108155938/index.html

tell application "Quicksilver" to activate
--Quicksilver でこのスクリプトを使うには1行目にこれが必要みたい。理由は不明。
set instruction to item 1 of (choose from list {"PDF 見開きのみ", "パッケージまですべて", "PDFのみ両方", "パッケージのみ", "パッケージと片頁PDF", "パッケージと見開きPDF", "PDF 片頁のみ", " "} default items "パッケージまですべて")

--◉1
if instruction is "PDF 見開きのみ" then
end if

--◉2
if instruction is "パッケージまですべて" then
end if

--◉3
if instruction is "PDFのみ両方" then
end if

--◉4
if instruction is "パッケージのみ" then
end if

--◉5
if instruction is "パッケージと片頁PDF" then
end if

--◉6
if instruction is "パッケージと見開きPDF" then
end if

--◉7
if instruction is "PDF 片頁のみ" then
end if
の各「if」行と「end if」行の間にコピペして完成。
[PR]
# by nobiox | 2014-02-04 11:26 | ├DTP | Comments(0) |
「a.indd」を閉じて「xxxa.indd」にリネームせよ
仕事してると、どうしても同じ名前の InDesign ファイルが複数できる。直しが出た場合などに、間違ったファイルで作業して矛盾が出たりする。割と頻繁にある。この問題に対する定石対処があるのかも知れないが、いろんな作業手順を検討した結果、「一度パッケージしたら二度と元ファイルは開かない」「そのために一度パッケージした元ファイルは強制的にファイル名を変える」ことにした。すでに「デスクトップにPDFとパッケージフォルダを書き出してパッケージフォルダをZIP圧縮する」作業は AppleScript で自動化してるので、「(InDesignで「a.indd」というファイルを開いているときに)『a.indd』を閉じて『xxxa.indd』にリネームせよ」というスクリプトができれば、それに合体させられるはずだ。

とりあえず準備体操として、「『a.indd』を閉じて Finder でラベルの色を着けよ」という AppleScript に挑戦してみよう。
--test 1
tell application "Adobe InDesign CS4"
save document 1
set doc_name to (name of document 1) as Unicode text
close document 1
end tell
tell application "Finder"
set label index of file doc_name of window 1 to 3
end tell
おお、機能するぞ。「a.indd」が「Finder window 1」にあるとは限らないという、けっこう重大な問題はあるけれど。

この書き方だとここまではあっさりできたみたいだが、実際はこの解に辿り着くのに1時間以上はかかった。また、こんな風に書くとまるで僕がAppleScriptの基本を理解してるように思われるかも知れないが、それも誤解だ。例えば「name of document 1」を何故カッコで挟む必要があるのか、その後ろに付いてる「as Unicode text」とはどういうことなのか、さっぱりわからないまま、継ぎはぎのコピペを繰り返しては試行錯誤の果てに、結果として機能したらオッケー、という、そんな感じ。まあ、逆に言うと、「save document 1」ぐらいはわかって書いてる。「document 1」は「最前面の書類」という意味。ちなみに Finder の最前面のウィンドウは「window 1」。

ちなみに数字とラベルの関係は、うどん県で働く Web ディレクターさんによると以下の通り。

0 ラベルなし
1 オレンジ
2 レッド
3 イエロー
4 ブルー
5 パープル
6 グリーン
7 グレイ

次はリネームだ。
--test 2
tell application "Adobe InDesign CS4"
save document 1
set doc_name to (name of document 1) as Unicode text
close document 1
end tell
tell application "Finder"
set xxxdoc_name to "xxx" and doc_name
set name of file doc_name of window 1 to xxxdoc_name
end tell
ダメだ。「error "xxx" のタイプを boolean に変換できません」とか言われる。

以下のスクリプトをアプリケーション形式で保存すると「ドロップレット」ができ、リネームは成功する。何故だ。Finder に命じるなら「as string」、InDesignに命じるなら「as Unicode text」ということだろうか。
--test 3
on open ObjList
tell application "Finder"
repeat with obj in ObjList
set aName to name of obj
set name of obj to ("xxx" & (name of obj) as string)
set _Name to name of obj
end repeat
end tell
end open

以下のスクリプトはエラーになる。
--test 4
tell application "Finder"
set aName to name of selection
set name of selection to ("xxx" & (name of obj) as string)
end tell

「osx finder リネーム AppleScript」でググった結果、MacWiki - AppleScriptTipsというありがたやなページを発見。
--test 5
tell application "Finder"
set addStr to "xxx"
try
set FinderSelection to selection as alias list
on error
set FinderSelection to selection
end try
repeat with aFile in FinderSelection
set oldName to name of aFile
set newName to addStr & oldName
set name of aFile to newName
end repeat
end tell
おお、意味はわからんけど機能した。いけるかも。

--test 6
tell application "Adobe InDesign CS4"
save document 1
set doc_name to (name of document 1) as Unicode text
close document 1
end tell
tell application "Finder"
set addStr to "xxx"
select file doc_name of window 1
try
set FinderSelection to selection as alias list
on error
set FinderSelection to selection
end try
repeat with aFile in FinderSelection
set oldName to name of aFile
set newName to addStr & oldName
set name of aFile to newName
end repeat
end tell
できた。すごいじゃんオレ。今週も街の巨匠に感謝。動作は遅いけど、かまわない。

「set FinderSelection to selection as alias list」というのはなんのことだろう。
「alias list」ってナニ?

という疑問はともかくだ、「そのファイルのあるウィンドウが Finder において最前面でない場合」に対応しなくてはならない。「InDesign に document 1 のパスを取得させてフォルダ名を取り出し・・・」てなことができればいいんだろうけど、残念ながら僕の脳味噌にそこまでの能力はないので、片っ端から総当たりでやるしかない。

--test 2-B
tell application "Adobe InDesign CS4"
save document 1
set doc_name to (name of document 1) as Unicode text
close document 1
end tell
tell application "Finder"
try
select file doc_name of window 1
on error
select window 2
select file doc_name of window 1
end try
set label index of file doc_name of window 1 to 5
end tell
機能する。

--test 2-C
tell application "Adobe InDesign CS4"
save document 1
set doc_name to (name of document 1) as Unicode text
close document 1
end tell
tell application "Finder"
try
select file doc_name of window 1
on error
select window 2
select file doc_name of window 1
on error
select window 3
select file doc_name of window 1
end try
set label index of file doc_name of window 1 to 2
end tell
機能しない。というか構文エラーで保存できない。

tell application "Finder"
 try
  window 1 のファイル「A.indd」を選択せよ
 on error
  window 2 を選択せよ(これで window 2 が window 1 になる)
  window 1 のファイル「A.indd」を選択せよ
 on error
  window 3 を選択せよ(これで window 3 が window 1 になる)
  window 1 のファイル「A.indd」を選択せよ
 end try
end tell
というのは、間違った構文らしい。そうなのか。どうすりゃいいのさ。

try
 Aを実行せよ
on error
  try
    Bを実行せよ
  on error
    try
      Cを実行せよ
    end try
  end try
end try
というマトリョーシカ構造にしなきゃダメってことか。そっか。
いやそれよりも「if exists file ホニャララ of window 1 then」みたいなので行けるのか。行けそうな気もするな。

tell application "Finder"
if exists file "001.jpg" of window 1 then
open file "001.jpg" of window 1
end if
end tell
機能する。window 1 に「001.jpg」が存在しないときは、エラーを吐かず、ただ何もしない。

tell application "Finder"
if exists file "79bb4618.jpg" of window 1 then
open file "79bb4618.jpg" of window 1
select window 1
else if exists file "79bb4618.jpg" of window 2 then
open file "79bb4618.jpg" of window 2
select window 2
else if exists file "79bb4618.jpg" of window 3 then
open file "79bb4618.jpg" of window 3
select window 3
else if exists file "79bb4618.jpg" of window 4 then
open file "79bb4618.jpg" of window 4
select window 4
else if exists file "79bb4618.jpg" of window 5 then
open file "79bb4618.jpg" of window 5
select window 5
else if exists file "79bb4618.jpg" of window 6 then
open file "79bb4618.jpg" of window 6
select window 6
else if exists file "79bb4618.jpg" of window 7 then
open file "79bb4618.jpg" of window 7
select window 7
else if exists file "79bb4618.jpg" of window 8 then
open file "79bb4618.jpg" of window 8
select window 8
else if exists file "79bb4618.jpg" of window 9 then
open file "79bb4618.jpg" of window 9
select window 9
else if exists file "79bb4618.jpg" of window 10 then
open file "79bb4618.jpg" of window 10
select window 9
else if not (exists file "79bb4618.jpg" of window 10) then
display dialog "ファイルが見つかりません" with icon caution
end if
end tell
やった。機能する。これを「test6」と合体させればいいんだな。

tell application "Finder"
set addStr to "xxx"
if exists file doc_name of window 1 then
select window 1
select file doc_name of window 1

else if exists file doc_name of window 2 then
select window 2
select file doc_name of window 1

else if exists file doc_name of window 3 then
select window 3
select file doc_name of window 1

else if exists file doc_name of window 4 then
select window 4
select file doc_name of window 1

else if exists file doc_name of window 5 then
select window 5
select file doc_name of window 1

else if exists file doc_name of window 6 then
select window 6
select file doc_name of window 1

else if exists file doc_name of window 7 then
select window 7
select file doc_name of window 1

else if exists file doc_name of window 8 then
select window 8
select file doc_name of window 1

else if exists file doc_name of window 9 then
select window 9
select file doc_name of window 1

else if exists file doc_name of window 10 then
select window 10
select file doc_name of window 1

else if not (exists file doc_name of window 10) then
display dialog "ファイルが見つかりません" with icon caution
end if
end tell
こう書き変えて、この「◉」部分に
try
set FinderSelection to selection as alias list
on error
set FinderSelection to selection
end try
repeat with aFile in FinderSelection
set oldName to name of aFile
set newName to addStr & oldName
set name of aFile to newName
end repeat
を入れればいいわけだ。

tell application "Adobe InDesign CS4"
save document 1
set doc_name to (name of document 1) as Unicode text
close document 1
end tell

tell application "Finder"
set addStr to "xxx"
if exists file doc_name of window 1 then
select window 1
select file doc_name of window 1
try
set FinderSelection to selection as alias list
on error
set FinderSelection to selection
end try
repeat with aFile in FinderSelection
set oldName to name of aFile
set newName to addStr & oldName
set name of aFile to newName
end repeat
else if exists file doc_name of window 2 then
select window 2
select file doc_name of window 1
try
set FinderSelection to selection as alias list
on error
set FinderSelection to selection
end try
repeat with aFile in FinderSelection
set oldName to name of aFile
set newName to addStr & oldName
set name of aFile to newName
end repeat
else if exists file doc_name of window 3 then
select window 3
select file doc_name of window 1
try
set FinderSelection to selection as alias list
on error
set FinderSelection to selection
end try
repeat with aFile in FinderSelection
set oldName to name of aFile
set newName to addStr & oldName
set name of aFile to newName
end repeat
else if exists file doc_name of window 4 then
select window 4
select file doc_name of window 1
try
set FinderSelection to selection as alias list
on error
set FinderSelection to selection
end try
repeat with aFile in FinderSelection
set oldName to name of aFile
set newName to addStr & oldName
set name of aFile to newName
end repeat
else if exists file doc_name of window 5 then
select window 5
select file doc_name of window 1
try
set FinderSelection to selection as alias list
on error
set FinderSelection to selection
end try
repeat with aFile in FinderSelection
set oldName to name of aFile
set newName to addStr & oldName
set name of aFile to newName
end repeat
else if exists file doc_name of window 6 then
select window 6
select file doc_name of window 1
try
set FinderSelection to selection as alias list
on error
set FinderSelection to selection
end try
repeat with aFile in FinderSelection
set oldName to name of aFile
set newName to addStr & oldName
set name of aFile to newName
end repeat
else if exists file doc_name of window 7 then
select window 7
select file doc_name of window 1
try
set FinderSelection to selection as alias list
on error
set FinderSelection to selection
end try
repeat with aFile in FinderSelection
set oldName to name of aFile
set newName to addStr & oldName
set name of aFile to newName
end repeat
else if exists file doc_name of window 8 then
select window 8
select file doc_name of window 1
try
set FinderSelection to selection as alias list
on error
set FinderSelection to selection
end try
repeat with aFile in FinderSelection
set oldName to name of aFile
set newName to addStr & oldName
set name of aFile to newName
end repeat
else if exists file doc_name of window 9 then
select window 9
select file doc_name of window 1
try
set FinderSelection to selection as alias list
on error
set FinderSelection to selection
end try
repeat with aFile in FinderSelection
set oldName to name of aFile
set newName to addStr & oldName
set name of aFile to newName
end repeat
else if exists file doc_name of window 10 then
select window 10
select file doc_name of window 1
try
set FinderSelection to selection as alias list
on error
set FinderSelection to selection
end try
repeat with aFile in FinderSelection
set oldName to name of aFile
set newName to addStr & oldName
set name of aFile to newName
end repeat
else if not (exists file doc_name of window 10) then
display dialog "ファイルが見つかりません" with icon caution
end if
end tell
できた。
[PR]
# by nobiox | 2014-01-28 19:49 | ├バカスクリプト | Comments(0) |
明治維新と産業革命と印象派
スゴイものを見た。明治の日本。をアメリカ人が描いた絵。それでちょっと、明治維新と産業革命と印象派の必然について。

c0070938_21342110.jpg


◆◆

ペリーの来航や明治維新が産業革命と関係あるのは当たり前だが、一方で印象派の登場も、産業革命と、それなりの関係がある。それまでの西欧絵画の主たる役割は、ひとつは偉人、金持ち、権力者の肖像を残すことであり、もうひとつは、聖書のいい場面を感動的に視覚化することだった。何層にも塗り重ねたニスの、重厚な茶色と黒の諧調で。産業革命がもたらした近代の気分は、それとは別のものを欲求した。もっと明るいものを。近代都市にレンブラントは似合わないのだ。

一方、写真術の発明も、たぶん産業革命とそれなりの関係があるだろう。現在、写真と絵画は共存してるしそれが当たり前のように思えるが、写真が登場した当時、ヨーロッパの多くの画家は真剣に深刻に怯えたのではないか。何か新しいことをしない限り、画家の存在意義(事物と肖像の記録)は消える、と。

小さなことだがチューブ入り絵の具の発明も、産業革命とそれなりの関係があるだろう。そして印象派の登場とは、密接な関係がある。チューブ入り絵の具は、屋外にイーゼルを持ち出しての絵画制作を可能にした。

◆◆

ここまでは「黒船来航」←【産業革命】→「印象派」という話だが、「黒船来航」はグルッと一周回って「印象派」に直接の影響も与えた。浮世絵のもたらした衝撃だ。浮世絵のグラフィカルな表現と、印象派のボワワーンとした筆致は一見なんの関係もないように見えるが、いちいち哲学的なフランス人たちは、浮世絵に「絵画の自律」を見たのである。

絵画の自律とは何か。絵画が偉人の肖像と聖書のいい場面ばかり描いてきたということは、言い換えると、すべての絵画は「意義」か「教訓」を表現するために存在した、絵画は意義の下僕だったということである。そこへ初めて目にする奇妙な浮世絵。写実とはまるっきり別次元の自由な描写、自由な線、自由なデフォルメ、自由なエロ、自由な笑い、思いもよらぬ色面構成。意義にも教訓にも支配されぬ、絵画の、絵画による、絵画的面白さの追求。

印象派の登場が西洋絵画をどう変えたかというと、ひとつは明るくなったこと、ひとつは意義も教訓も何もない「単なる絵」が堂々と表舞台で評価されるようになったこと、もうひとつはセザンヌやゴッホに象徴的なように、画家が絵の具を、絵の具に残る筆致を、絵の具の裏のカンヴァスの存在を、隠さなくなったことだ。それが巡り巡ってはポップアートまでつながって行く。その裏には「自律した絵画としての浮世絵の発見」があったという、まあ、そういうことです。以上の説明には、常識とされる定説と、僕の適当な勘が混ざってて、どこが前者でどこが後者か自分でもわからないので、決して鵜呑みにしないでください。ツッコミは歓迎します。
[PR]
# by nobiox | 2014-01-15 21:39 | ├自分用メモ | Comments(0) |
「いちばんリベラルなのは天皇なんだってば」
今さっきうちの奥さんと、安倍晋三の悪口(と恐怖)で盛り上がった。

しかし、ちょっと不思議に思う。うちの奥さんは天皇家が大好きだ。結婚してからそれを知り、知ったときにはけっこうショックを受けた。結婚詐欺だろそれ、と詰め寄ったこともある。だから聞いてみた。どうしてあんたのような天皇家大好き右翼が、靖国参拝に関してだけはリベラルを装うのか、安倍晋三のFacebookでいいねボタンを押す方が自然じゃないのか、と。

彼女は笑いながらこう答えた。「だーかーらー、いちばんリベラルなのは天皇なんだってば」

おい、天皇家が大好きならそこは「天皇」じゃなくて「陛下」じゃないのか、というツッコミはさておき、この台詞はオレに衝撃を与えた。なるほど。そうかも知れない。たしかに、少なくとも小泉純一郎や安倍晋三や麻生太郎や石破茂よりも、現天皇は百倍リベラルかも知れない。つか、かも知れないどころじゃなく、間違いなくそうだ。え? ってことは、ええと、どういうことなんだ?
[PR]
# by nobiox | 2013-12-27 23:15 | ├自分用メモ | Comments(0) |
携帯を斜めにすると見える画像が凄いとネットで話題に
◉片目を閉じて、携帯を傾けて、充電口の方向からこの図を見てほしい。

c0070938_2149598.jpg


・意味わかんねーと思いつつ傾けたら、世にも恐ろしいものが現れて驚愕した。

・すげぇ∑(`□´/)/

・ほぅ、ってなる。

・これボリュームボタンの方から見たらまたちゃうの出てくるな!

・片目を閉じて、携帯を傾けて、充電口の方向からこの図を見てほしい。 横からも見てね。 これすごい!!


これにすっかり感心したので、自分でもやってみた。こういう発見を公開するのは手品のネタを公表するようなもので、書いちゃいけないんじゃないか、という畏れも少しは感じるが、ネタバレですべてが色褪せるようなものだとしたらもともと秘匿するほどの価値もないでしょう、という理屈で、その点は気にしないことにする。

c0070938_21502787.png
似たような長さのテキストをふたつ用意する。いくつか試作した結果、
画数の多い漢字はノイズとして濃くなり過ぎるとわかったので、ひらがな主体にしました。


c0070938_21505225.jpg
それに極端な長体をかける。単純に
長体かけるだけでこれほど読めなくなる、ということが驚きだ。
これに最初に気付いた人はスゴい、と思うと同時に、
こんな簡単なことに長年気付かなかった自分を恥じるしかない。
ここでは、両者がそれぞれ正方形に近いプロポーションになることが望ましい。


c0070938_21511353.png
一方を90度回転して、重ねて、完成。
まったく文字には見えない。


c0070938_21513828.jpg
上の画像に極端な平体かけたところ。
椅子に座ってモニタ見てるあなたは、立ち上がって上の方から舐めるようにモニタを見下ろせば、
私の言ってる意味がわかると思います。


c0070938_21514793.jpg
極端な長体かけたところ。スゲー。

[PR]
# by nobiox | 2013-12-25 21:55 | ├DTP | Comments(0) |
黒子のバスケ脅迫事件容疑者逮捕
絶対に犯人は捕まらない、と思っていた。だって郵便ポストってめちゃめちゃ数多いもん。すべての郵便ポストに監視カメラが付いていればなんとかなるかも知れんけど、それでもかなり難しいだろうと。まさかの特定、まさかの確保。警察凄い。何かあるごとに批判される組織だが、成果を出した時は褒め称えようぜ。よくやった。それと、連載を継続させた集英社も褒め称えたい。立派だ。

報道によると捜査の端緒は(1)「昨年10月に上智大に脅迫文などが置かれた際、学内に設置された防犯カメラに不審な容器を持った男が映っていた」こと、(2)「同じ時期に、千葉県浦安市のインターネットカフェから犯行声明がネット掲示板に書き込まれ、この店の防犯カメラにも上智大の時と似た男の映像が残っていた」こと。次に(3)今年10月、セブンイレブン浦安店に毒入り菓子が置かれた件でも、同一人物っぽい男が防犯カメラに写っていたこと、以上の映像に「黒地に2本の白線が入ったリュック」が写っていたこと。

(4)「警視庁捜査1課は、幕張メッセで21、22日の両日に開催予定の集英社主催漫画イベント『ジャンプフェスタ』を対象に犯人が脅迫文を送りつける可能性が高いとみて警戒。リュックの持ち主が大阪周辺に住んでいるとの情報を得て、14日から大阪駅で張り込んでいた」「捜査員らは15日朝、リュックを目印にJR大阪駅から東京駅行きの高速バスに同乗して尾行。午後3時ごろ、恵比寿ガーデンプレイス付近でポストに脅迫文を投函しようとしたところで身柄を確保した。直前にも約300メートル離れた別のポストに報道機関などに宛てた脅迫文を入れる姿を確認していた」

ということらしい。高速バスってその場で咄嗟に乗れるもんなのか。それにしても凄い。大阪駅で張り込み、と簡単に言うけど、駅の規模を考えるととてつもないことだ。大阪にいるかどうかがそもそも定かでない、いるとしてもどこかへ行くかどうか定かでない、どこかへ行くとしても大阪駅を経由するかどうか定かでない、大阪駅経由でどこかへ行くとしても日時などいっさい定かでないという状況で、「確信がないのに24時間態勢で集中力を保つ」なんて、オレには到底できない。

以上からは「リュックの持ち主が大阪周辺に住んでいるとの情報」はどこから来たのか、というのが謎だったけど、ジャンプフェスタ開催を目前に、続報が来た。

黒子のバスケ:43億件接続記録から「容疑者は大阪周辺」
毎日新聞 2013年12月20日 13時03分

 人気漫画「黒子のバスケ」を巡る連続脅迫事件で、警視庁捜査1課が、脅迫文が送られたイベント会社など約70社のホームページの閲覧記録から容疑者が大阪周辺にいるのを割り出していたことが捜査関係者への取材で分かった。43億件以上にのぼるアクセスログを分析したところ、大阪市のネットカフェから何度もHPにアクセスした人物がいることが判明し、張り込みなどから大阪市東成区の派遣社員、渡辺博史(ひろふみ)容疑者(36)=威力業務妨害容疑で逮捕=を突き止めた。

 捜査関係者によると、同課は容疑者が漫画関連のイベントの日程などをネットで調べている可能性に着目。イベント中止などを求める手紙が届き始めた昨年10月以降全国の約70社から、約43億4900万件にのぼるログの提供を受け、共通して接続しているIPアドレスがないかどうか調べた。

 その結果、大阪市の数店舗のネットカフェが浮かび、周辺の防犯カメラに白線2本が入ったリュックサックを所持した不審な男が映っていることが分かり、捜査員が男を15日に大阪駅で発見。高速バスで上京する際に尾行し、渋谷区内のポストで脅迫文を投函したところを確保した。【松本惇、山崎征克、神保圭作】

 この日早朝、捜査員は約500キロ離れた大阪市北区のJR大阪駅近くで渡辺容疑者を発見し、目星を付けていた。

 これまでの捜査で、脅迫文が送付されたイベント運営会社など約70社のホームページの接続履歴計約43億5000万件を調べ上げ、大阪市内の複数のネットカフェから接続された共通点があることを突き止めていた。

 さらに、各店舗の防犯カメラで、黒地に白線入りのリュックサックを背負った不審な男が出入りしているのを確認。男が東京行きの高速バスのサイトを閲覧していたため、捜査員がJR大阪駅で張り込んでいたところ、同様のリュックを持った渡辺容疑者が現れたというわけだ。

 捜査関係者は「12月下旬には、黒子のバスケ関連のイベントが都内で相次いで予定されており、必ず何らかの動きがあるとみていた」と打ち明ける。

 渡辺容疑者は午前6時ごろにJR東京駅行きの高速バスに乗り込んだ。捜査員もひそかに同乗して尾行を開始。午後3時ごろ、JR新宿駅のバスターミナルで下り、山手線に乗り換えて降り立ったのが恵比寿駅だった。

◉産経ニュース 2013.12.23 08:00

 一連の事件では昨年10月以降、関連イベントの運営会社などに約400通の脅迫文が送られたことが確認された。警視庁捜査1課は犯人側が事前に会社のサイトを下見したとみて、約70社のアクセス履歴から計約43億5千万件に上るIPアドレスの提供を受けて分析した。今月上旬になり、共通項として浮かんだのが、大阪市内の複数のネットカフェのパソコンが利用されていたこと。

 さらに、アクセスがあった時間帯に店舗や周辺の防犯カメラで、特徴的な柄のリュックサックを持った男が出入りするのを確認。男は東京行きの高速バスのサイトも閲覧していた。15日朝にJR大阪駅で張り込んでいる捜査員の前に、男と体格がよく似た、同様のリュックを背負った渡辺容疑者が現れたという。

 警視庁は膨大な履歴を高速で検索するソフトを使い、犯人側のミスの発見に主眼を置いて解析している。事件の関係先に共通するIPがないか。匿名化されたIPの前後にミスで残したIPがないか。ネットカフェでは複数の似通ったIPが使われるため、数字に幅を持たせた検索もする。地域の共通項を調べ、現実空間の防犯カメラ映像と突き合わせることもある。

 今回の事件では、12月下旬に都内で関連イベントが相次いで予定され、これまでの脅迫文に週末の消印が多いことなども判断材料となり、7日の土曜日には捜査員を大阪市周辺に大量に投入していた。捜査関係者は「アクセス履歴の解析と、従来通りの捜査手法の双方がうまくかみ合った結果だ」と強調する。

 警視庁幹部は「今やデータが億単位なのは大前提。PCで解析しなければ探しきれない。どんなキーワードで絞り込むかで捜査員の力量が問われる」と話す。

犯罪抑止のためには、警察はこういう情報をぺらぺら記者に教えない方がいいと思うんだが。それにしても結局「徹底して郵便だけでやればまず捕まらない」という問題は残っているのか。
[PR]
# by nobiox | 2013-12-20 16:38 | ├自分用メモ | Comments(0) |
InDesign CS4 の正規表現の自分用メモ
InDesign CS3 正規表現一覧

新宿(?=駅):新宿のうち、直後に「駅」があるものに一致(肯定先読み)
新宿(?!駅):新宿のうち、直後に「駅」がないものに一致(否定先読み)
(?<=海鮮)丼:丼のうち、直前に「海鮮」があるものに一致(肯定後読み)
(?<!海鮮)丼:丼のうち、直前に「海鮮」がないものに一致(否定後読み)

なるほど。いちおう最低限の理解には達したぞ。

(?<![\.,])\b\d\d\b(?![\.,])
これ↑は、せうぞーさんによる二桁数字の正規表現
(¥に見えるのは実際にはバックスラッシュ)。
\b というのは単語の境界。「日本語環境では「英数字」と「漢字・ひらがな・カタカナ」の間に
単語境界が存在する」とせうぞーさんが書いてるけど、うちの CS4 ではそうでもないっぽい。

(?<![\.,\d])\d\d(?![\.,\d])
ウチでまあまあ実用的に機能する「二桁の数字」。コンマ、ピリオド、数字以外のものに挟まれたふたつの数字。「\d」が数字を、「\d\d」で数字ふたつの並びを表し、「\.,\d」はコンマ、ピリオド、数字を、「(?<![\.,\d])」で「前がコンマかピリオドか数字だったら無視する」。

^([~Kあ-ン]{1,7}[さん]*)(?=[ (]+)
対談者の名前。
^:「行頭の」を意味する
~K:「すべての漢字」を意味する
あ-ン:「すべてのひらがなとカタカナ」を意味する
[~Kあ-ン]{1,7}:「日本語の1から7文字の連続」を意味する
[さん]*:さ、という字と、ん、という字が、あってもいいし、なくてもいい」を意味する
?=[ (]+:後ろに「全角スペース、あるいは始め括弧」が来るものだけにマッチする。
   始め括弧というのはつまり「山田さん(以下敬称略)」というのを想定している。
[PR]
# by nobiox | 2013-12-20 12:16 | ├DTP | Comments(0) |
ルー・リード死す。享年71歳
今日の J-Wave にルー・リードのルの字も出ない。

ホイットニーヒューストン死す、というニュースの日、J-Wave が朝から晩までホイットニーヒューストンの話題で、ホイットニーヒューストンホイットニーヒューストンうるさいわ、と思ったことを覚えている。調べてみると去年の2月か。なのになんだ、この違いは。誰もルー・リードに思い入れないの? サッシャも亀田誠治もレイチェルチャンも? そうですか。(今レイチェルチャンの番組で一曲かかった)
[PR]
# by nobiox | 2013-10-28 14:19 | Comments(0) |
「大日本人」「しんぼる」「さや侍」
さいきん TSUTAYAで「大日本人(2007)」のDVDを借りて見て、聞きしにまさるつまらなさに驚いた。その後高須光聖との公開前の対談で、制作費10億と聞いてまた驚いた。あと、撮った本人がむちゃくちゃ自信持ってることにも。

「大日本人」以降、松っちゃんについての世評は「お笑いとしてはスゴいけど映画監督としては才能ない」という線で定着した感じだけど、松本人志が「大日本人」を「映画」だと思っているのかどうか、そこはよくわからない。上記の対談でも「お笑いIQの高い人ならこのスゴさがわかる」「だよねー」みたいな会話がある。「映画IQの高い人ならこのスゴさがわかる」とは言ってない。松っちゃんには「お笑い芸人が映画という異業種に挑んだ」という意識はさらさらなく、単に「(通常のコントの制約を離れて)2時間もののお笑いコントを撮った」のではないか。そしたらそれが、驚くほどつまらなかった、と。

その後 TSUTAYAで「しんぼる(2009)」のDVDを借りて見た。「大日本人」と「しんぼる」はかなり様子が違うが、「出そうで出ないくしゃみのように、オチを与えられずにえんえんと1時間以上引っ張られる微妙なボケ」という点では同じだ。そして、びっくりするほどつまらない。そして、浅い。

たぶん松本人志は「出そうで出ないくしゃみのように、オチを与えられずにえんえんと引っ張られる微妙なボケ」が大好きなのではないか。だから松本人志にとって「大日本人」は大傑作で、「しんぼる」も大傑作なのだ。だけど一般人にはキツイ。一般人として、「オチを与えられずにえんえんと引っ張られる微妙なボケ」を楽しめる限度は、10分か20分か30分だ。2時間は無理っしょ。あり得ない。

その後 TSUTAYAで「さや侍(2011)」のDVDを借りて見た。これがねえ。ちょーつまらない。だけどある意味で面白い。以下、続きは徐々に書く予定。

「何なのですかそれ。いったい何がしたかったのですか」
「なぜ鼻からうどんなど啜ろうと思ったのですか」

「オレに言わせりゃ、あんなもん作らせて一瞬で終わりって、金の無駄遣いだっつーの」
「でもアタイはああいうの好きだねえ、派手だしさあ、なんてったってスカッとして、バカバカしいじゃないか」
[PR]
# by nobiox | 2013-10-16 23:46 | ├映画 | Comments(0) |
|