お仕事メモ帳
こんにちは。開発系( InDesign、Illustrator、AppleScript、JavaScript、Ruby)、セミナーのレポートなどについて書いています。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書く事で広告が消せます。


[Illustrator][AppleScript][Ruby]Illustratorを開かずに配置ファイルを収集する 続編
[Illustrator][AppleScript][Ruby]Illustratorを開かずに配置ファイルを収集するの続編です。

上記エントリで公開したAppleScriptは結構たくさんの方から評価をしてもらっているようです。
Twitterなり勉強会なりで「使ってます!」「助かってます!」というお言葉も頂戴しており、嬉しい限りです。
ただ、いろいろな不具合も起きてしまっているようで、「早く修正してー」と言われてしまうこともしばしばありました。
直そう直そうと思ってはいたものの、仕事やレノくんもふもふするのが忙しくて延び延びになってしまっていました。
フィードバックしていただいた方々、申し訳ないです。

ということで、今日頑張って修正しました!
Rubyのコードを大幅に書き換えて、AppleScriptのほうもいろいろリファクタリングしました。
この数ヶ月、暇を見つけては会社でいろんなスクリプト(Ruby含む)を書きまくっていたので、その辺の経験と知識を反映したつもりです。

修正した箇所は
●バージョン判別をRuby内で行うように修正(Adobe Illustrator CS2という文字があるかどうか)
●XMPだけを取得するように修正
●XMPのフルパスが存在しないときは次にIllustratorの同階層の画像を複製できるか試すように修正
●Windows環境で作成されたファイルの配置画像収集も可能なように修正
●同じような処理を行うサブルーチンを一つに統合した
●AppleScriptにRubyをバンドルさせるのをやめた

まず重いIllustratorファイル対応のためXMPだけを変数に代入して、その中で文字列操作することにしました。
ただしXMPの終了タグを検知して例外を発生させているためCS2以降のファイルでしか効果はでません。
次に不安定だったAppleScriptでのIllustratorのバージョン判定をやめて、Rubyで処理することにしました。
判定方法はXMPの中に「Adobe Illustrator CS2」という文字があったら例外を発生させて処理を中止するというものです。
バージョンダウンしたファイルだとうまく動かないかもしれませんが、バージョンダウンしないよね?
次にXMPから取得したフルパスが存在しないときはIllustratorファイルと同階層にあるファイルを複製するようにして、それでも見つからないものだけエラーログに書き出すようにしました。
次にざっくりとではありますがWindows環境で作成されたIllustratorファイルからも配置画像を複製できるようにしました。
Windowsのフルパスの中にバックスラッシュが入っていることを利用しているのでWindowsのバージョンや環境によってはうまく動かないと思います。
おまけ程度の機能追加だと思ってもらえれば。
次にサブルーチンを整理しました。
最後にRubyのバンドルをやめました。
ついでにAppleScriptの名前も変えました。

今回の修正でだいぶ完成に近づいたと思います。
不具合などあればコメントなどでお知らせください。
ご自分で直せるのであれば、どこを直したか教えていただけるとうれしいです。

以下、コード。

Ruby
#! ruby -Ku

require 'CGI'
require 'kconv'

temp =
linkFilePath = "" ; #リンクファイルのパスの入れ物

#XMP情報を抽出して変数に代入
def xmpRead(fileObj, temp)
begin
while line = fileObj.gets
line = CGI.unescapeHTML(line)#HTMLエスケープされてるのでアンエスケープ
line = line.toutf8

#XMP終了時に例外を発生させる
if /^<\/x:xmpmeta>/ =~ line then
raise "loop stop" #raiseで例外を発生できる
end

if temp == ""
temp = line
else
temp = temp + line
end
end
rescue
return temp #tempを返す
end
end

def illustratorPackage(temp, linkFilePath)
if /Adobe Illustrator CS2/ =~ temp
raise "before CS2"
end

#scan(/〜/)でマッチした箇所をまとめて取得できる
linkFilePath = temp.scan(/^\s+?<stRef:filePath>(.+?)<\/stRef:filePath>/)

return linkFilePath #linkFilePathを返す
rescue

end

temp = xmpRead(ARGF, temp)
result = illustratorPackage(temp, linkFilePath)
puts result


AppleScript
on open thisList
tell application "Finder"
--Rubyのバージョンチェック
if exists ((home as text) & ".bash_profile") then
set ruby_version to do shell script "source ~/.bash_profile; ruby -e 'print \"ERROR\" if RUBY_VERSION <= \"1.8.1\"'"
else
set ruby_version to do shell script "ruby -e 'print \"ERROR\" if RUBY_VERSION <= \"1.8.1\"'"
end if
if ruby_version is "ERROR" then
display dialog "このスクリプトはRubyバージョンが1.8.2以上で動作します"
error number -128
end if

--変数初期化
set dPath to desktop as text --デスクトップのパス取得
set noExtractFileList to "" --エラーが出たリンクファイルのパスを入れる箱
set textFile to dPath & "収集できなかったリンクファイル.txt" --ログ書き出し 用のテキストファイルの名前
set errorFileLog to "" --エラーが出たファイルのパスを入れる箱
set skipFile to 0 --CS2以下のファイルのカウント用

--Rubyのファイルを取得
set my_script_name to "IllustratorPackage.rb"
set my_script_folder to parent of (path to me) as Unicode text
set my_script to my_script_folder & my_script_name
set my_script to (quoted form of POSIX path of my_script)

--ここからメイン処理
repeat with k in thisList

set input_file to (quoted form of POSIX path of contents of k) as Unicode text --Unicode textに変換しないとダメ

if exists ((home as text) & ".bash_profile") then
do shell script "source ~/.bash_profile; ruby " & my_script & " " & input_file --Rubyで処理して戻り値を取得
else
do shell script "ruby " & my_script & " " & input_file --Rubyで処理して戻り値を取得
end if
set outputList to result --変数に代入

--Rubyの戻り値がnilじゃなかったら(CS3以上でリンクファイルがあれば)
if outputList is not "nil" then

set linkFileList to my serchSplit(outputList, ASCII character (13)) --リストにする

--デスクトップにフォルダを作成しリンクファイルをコピーする処理へ
set resultList to my LinkFilePackage(linkFileList, noExtractFileList, k)

duplicate k to item 1 of resultList --デスクトップのbackFolに複製する

if (item 2 of resultList) is not "" then
set errorFilePath to k as string
set errorFile to last item of (my serchSplit(errorFilePath, ":"))
set errorFileLog to errorFileLog & "★" & errorFile & "で収集できなかったリンクファイル" & return & (item 2 of resultList) & return
end if

delay (0.5) --同名フォルダ作成のエラーを回避するため1秒待つ
else
set skipFile to skipFile + 1
end if
end repeat

--エラーログの書き出し
if errorFileLog is not "" then
try
set OutPutText to open for access textFile with write permission
set eof OutPutText to 0
write "ここに書き出されたファイルは収集できませんでした。Illsutratorデータのリンク情報が正しくない可能性があります。Illustratorデータを再保存した後、再度スクリプトを使用してください。" & return & return to OutPutText
write errorFileLog to OutPutText
close access OutPutText
on error errMsg
display dialog errMsg
close access OutPutText
end try
end if
end tell

if ((count thisList) - skipFile) > 0 then
display dialog ((count thisList) as string) & "ファイル中の" & (((count thisList) - skipFile) as string) & "ファイルを収集しました"
else
display dialog "収集されませんでした"
end if
end open

--デスクトップにフォルダを作成しリンクファイルをコピーする処理
to LinkFilePackage(linkFileList, noExtractFileList, k)
tell application "Finder"
--バックアップファイルのコピー用にデスクトップに現在時刻名のフォルダを作成する
set dPath to desktop as text --デスクトップのパス取得
set folName to (do shell script "date '+%Y-%m-%d %H-%M-%S'") --現在時刻取得
set backFol to make new folder at dPath with properties {name:folName} --デスクトップにフォルダ作成
set label index of backFol to 2 --ラベルを付ける

repeat with i from 1 to count linkFileList
try
set linkFilePath to (item i of linkFileList) as POSIX file --as POSIX fileで:区切りのパスに戻せる
set linkFilePath to file linkFilePath --file 〜ってしないとダメ(ファイル参照させないとダメ)
duplicate linkFilePath to backFol with replacing --デスクトップのbackFolに複製する(同名ファイルは上書き)
on error --複製できなかったファイルの処理(Illustratorファイルと同階層のファイルを複製)
--Windowsで作成されたデータもざっくり判別(パスの中に\があるかどうかで判別)
if "\\" is in (item i of linkFileList) then
set errorLinkName to last item of (my serchSplit((item i of linkFileList), "\\")) --ファイル名をサブルーチンで取得
else
set errorLinkName to last item of (my serchSplit(linkFilePath as Unicode text, ":")) --ファイル名をサブルーチンで取得
end if

--同一階層からリンクファイルをコピーする
try
set illFileFol to (container of k) as Unicode text --illustratorファイルの内包されているフォルダを取得
set linkFilePath2 to file (illFileFol & errorLinkName) as Unicode text --file 〜ってしないとダメ(ファイル参照させないとダメ)
duplicate linkFilePath2 to backFol with replacing --デスクトップのbackFolに複製する(同名ファイルは上書き)
on error
--同階層からもコピーできなければエラーログに代入する
set noExtractFileList to noExtractFileList & (errorLinkName as string) & return
end try
end try
end repeat
return {backFol, noExtractFileList} --メインルーチンにListで戻す
end tell
end LinkFilePackage


--分割サブルーチン
to serchSplit(targetStr, splitStr)
set str to targetStr as Unicode text
set OriginalDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to splitStr
set itemsList to text items of str
set AppleScript's text item delimiters to OriginalDelimiters
--itemsListにリストで代入されているからあとはご自由に
return itemsList
end serchSplit



ダウンロードはこちら。
IllustratorPackage



[Ruby][Leopard]RVM導入めも その2
[Ruby][snowleopard]RVM導入めも その1の続き。

今回はサブマシンのMacBookくん(Leopard)にRVMをインストールするべく、自分のブログを見ながら挑戦してみた。

基本的な手順はSnowLeopardのときと同じなんだけど、若干相違点がある。

1.Macportsをインストールする

The MacPorts Project Official Homepageから自分の環境にあったdmgをダウンロード。
落としたdmgからMacportsをインストール。
SnowLeopardのときと同様。

2.Macportsを最新にする

$ sudo port selfupdate
$ sudo port sync

SnowLeopardのときと同様。

3.Macportsを使っていろいろインストール

$ sudo port install readline
$ sudo port install git-core
$ sudo port install curl

SnowLeopardのときと同様。

4.RVMをインストール

ここが違います。
curlでインストールできました。

RVM: Ruby Version Manager - Installing RVMを見て、そこに書いてあるシェルスクリプトをコピペしたらできました。

$ bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)

すんなりインストール完了。
しかし、のちにこれが悩みの種となることをこうちゃんはまだ知る由もなかったのだ。

.bash_profileに.bashrcを読ませる処理を行う。

$ echo source \~/.bashrc > ~/.bash_profile
$ touch ~/.bashrc

そして.bashrcを読み直す。

$ source ~/.bashrc

そしてターミナルを再起動してRVMが使えるか試す。

$ rvm -v

バージョン表記が流れればインストール成功。

ここまででSnowLeopardでインストールしたときとの相違点をまとめてみる。
一部手順間違いも含む。
1.MacPortsのパス通しを忘れた。
2.RVMのインストールはcurl経由で行った。
3.RVMのログにパス通しの記述がなかったのでスルーした。

1は素直に忘れた。
readlineのインストール時にパスを通してないことを思い出した。
でもMacPortsが自身へのパスを.bashrcに書き込んでいたので事なきを得た。
後々のトラブルのときにさらに調べてわかったんだけど、.profileや.bash_loginにもパスを書き込んでくれていた。
自己主張しすぎ?
こういうもんなのかなー。
鬱陶しいからトラブル対策中に一通りパスを削除して、SnowLeopardと同じように.bash_profileに書き込んでおいた。

2はなんとなく調べ直したらあっさり見つかった。

3は勝手にRVMインストール時に各所にパスを書き込んでくれたのでこの時点では自分で書き込んだりはしなかった。
この時点では、ね(^^;


5.Rubyをインストールする

readlineをオプション設定に入れないといけないみたいなので下記処理を行う。

$ vi ~/.rvm/user/db
# ↓追加する内容
ruby_configure_flags=--with-readline-dir=/Users/ユーザ名/.rvm/usr

会社では1.8.7環境なので、1.8.7と1.9.2をインストール。

$ rvm install 1.8.7
$ rvm install 1.9.2


結構インストールに時間がかかるので紅の豚を鑑賞。
かっこいいな。

そんなこんなでインストール終了。
早速RVMで切り替えてみよう。

$ rvm use 1.8.7

あれ?
エラーだぞ?
1.9.2を試してもエラー。

ふむぅ。

ここで先ほどまとめた相違点を思い出して、RVMのパスを通してみることにした。

viで.bashrcを開いてRVMインストール時に書き込まれたパスを消しつつ、下記パスを書き込む。

[[ -s "/Users/ユーザ名/.rvm/scripts/rvm" ]] && source "/Users/ユーザ名/.rvm/scripts/rvm"

続いて.bashrcを読み直し。

$ source ~/.bashrc


おお、通った!
理由はいまいち分からないけど、MacPorts用にパスを通しているので、上書きされてパスが通ってなかったみたい。

ついでにExifToolもインストールして、RubyGemsのmiin_exiftoolもインストール。
その辺りは[ruby]mini_exiftool導入してみたを参照のこと。


6.AppleScriptからRVMをコールしてRubyを操作する

さて、ここまでくればあともう少し。
AppleScriptからRVMをコールしてみましょう。

do shell script "source ~/.bash_profile; RVM -v

はい、エラーきたこれ。
もう驚かないよ、その代わり落ち込むけど。


do shell script "source ~/.bash_profile; echo $PATH

上記の結果をターミナルの結果と照合。
うん、RVMにパスが通ってないね。

ここから苦難の旅が幕を開けた。
ググりつつviでいろんなファイルを開いては閉じ、開いては閉じ。
mac miniのほうでもviでいろんなファイルを開いては閉じ、開いては閉じ。

二時間ぐらい格闘してようやく解決方法を見つけた。

パス通せばいいんだよ!

これに気づくのに二時間もかかるのは私ぐらいなものだろう。
パスが通ってないって分かっているんだからパスを追加すればいいだけじゃん…。

まぁいろいろ悩んだおかげで随所に書き込まれたパスの削除や、不要なファイルの削除とかできたから、結果良かったんだけどさ!

で、たどり着いた解決法が下記。

$ export PATH=/opt/local/bin:/opt/local/sbin:$HOME/.rvm/bin:$PATH

これで無事パスも通り、AppleScriptからRVM環境下のRubyを操作できる環境が出来ました!

長かった−。
せっかく早く帰ってきてゆっくりゲームしたり本を読もうと思ったのに、結局ずっとMacいじってたな。
むー。

おまけ。
viのコマンド?のメモ。

:wqは保存して閉じる。
:q!は保存しないで閉じる。
yyは1行コピーしてバッファへ送る。
nyyはn行コピーしてバッファへ送る。
ddは1行削除してバッファへ送る。
nddはn行削除してバッファへ送る。
pはバッファしたものをペースト。
aは編集モード。
Aは行末に移動して編集モード。
escは編集モードを抜ける。

Ruby トラックバック0 コメント0 page top


[Ruby][AppleScript]Adobeアプリ(DTP)のファイルの判定をするAppleScript
制作会社で働いているといろんな環境からのデータを受け取ることになります。
うちの会社はMacを主に使っているんだけど、お客様はWindowsを使われていることが多いです。
出版社の編集の方とか、ね。

そんなわけで日常的に「拡張子はついてるけどアイコンなくてなんだかわからないEPSくん、あなたはIllustratorなの?Photoshopなの?InDesignから書き出したの?…まさかQuarkから生まれた子?」とか。
「うわー、拡張子なくてアイコンなくて、こいつなんだよ…」な白紙アイコン、もしくはUnixファイルと判定されてる謎ファイルと遭遇するわけです。
ご丁寧に「印刷会社から送られてきたZIPをWindowsで解凍してCDに焼いてくれる」お客様も後を絶たず。
まぁ、中身を確認したい気持ちも分かるんですけど、一緒にZIPも入れてくださいよー。

などと、愚痴っていてもしかたないので、適当にファイルを判定するAppleScriptを書いてみた。
といっても、Rubyで処理したものをAppleScriptで受け取り、ラベルをつけるだけという本当に適当すぎる代物。
もちろん専用のユーティリティもあるんだけど、おおざっぱに判定したいときがあるんですよ、ええ。

<使い方>
●ダウンロードしたZIPファイルを解凍してお好きなところへおどうぞ。
 ただしRubyは必ずAppleScriptと同階層に置いておくこと。
●判定したいファイルをAppleScriptにドラッグ&ドロップすると、ラベルをつけてくれます。
 ただしInDesign、Illustrator(一応OS9環境で作られたものも判定可)、Photoshop(一応OS9環境で作られたものも判定可)、Quark・QuarkEPS(一応OS9環境で作られたものも判定可)以外はスルーします。

<仕様>
●CS3(CS2も?)はXMPをmini_exiftoolで解析してる(CreatorToolやCreator、Softwareを抽出)
●OS9のファイルはASCIIで読み込んで無理矢理正規表現で抽出。

<注意点>
●RubyGemsでmini_exiftoolをインストールしてないとエラーになります。
 入れ方とかは[ruby]mini_exiftool導入してみたを参照のこと。
●処理は遅いよ。原稿整理の片手間に使うことをおすすめします。


で、ですね。
AppleScriptからdo shell scriptさせるわけですが、10.4環境だと標準としてインストールされているのがRubyが1.8.2でして、いろいろ不都合があったのですよ。
この件ではなく、別件で。
なので、自分のマシンにMacPortsをインストールして、Rubyを1.8.7にしたんですわ。

うん、AppleScriptでエラーになるね。
ターミナルで処理させるとOK。

どっかでこんな事例を見たなー、とこうちゃんググりました。
ヒットしました。
私のブログがw

これね。
[ruby]mini_exiftool導入してみた

うんうん。
AppleScriptからdo shell scriptすると/usr/bin/rubyをコールするのかぁ。
ってことはそっちのRubyGemsにインストールしないとダメかー。
だよね、さっきインストールしたのはMacPortsの管理下のRubyGemsですよね。
ですよねー。

はぁ。
困ったね。

しかたないから休憩時間をすべて費やしてひたすらググる、ググる。
海外のフォーラム的なところがヒットしても一生懸命読む、読む。

そしたら良さげな回答が載っていたよ!
すげーよ、海外。
さすが英語だよ(ぇ

do shell script "source ~/.bash_profile


ふむ、.bash_profileを読み込ませることによって、環境変数とかが反映されるのか。

試しに

do shell script "source ~/.bash_profile; ruby -v


ターミナルと同じ結果になったよ!

これで心置きなくいろいろ環境をいじれるね(ぇ


そんなわけでAppleScriptのコードは下記。

on open theFiles
set my_script_name to "check_adobe.rb" as Unicode text --スクリプトファイル名
tell application "Finder"
activate
--ruby versionのチェック
set ruby_version to do shell script "source ~/.bash_profile;ruby -e 'print \"ERROR\" if RUBY_VERSION <= \"1.8.1\"'"
if ruby_version is "ERROR" then
display dialog "このスクリプトはRubyバージョンが1.8.2以上で動作します"
error number -128
end if

set my_script_folder to parent of (path to me) as Unicode text
set my_script to my_script_folder & my_script_name
set my_script to (quoted form of POSIX path of my_script)

repeat with i in theFiles
set input_file to (quoted form of POSIX path of contents of i) as Unicode text
try
set checkResult to do shell script "source ~/.bash_profile;ruby " & my_script & " " & input_file
my labelFill(i, checkResult)
end try
end repeat
end tell
activate
display dialog "終了"
end open

to labelFill(i, checkResult)
tell application "Finder"
if checkResult is "Illustrator" then
set label index of i to 1 --ラベルを付ける
else if checkResult is "Photoshop" then
set label index of i to 2 --ラベルを付ける
else if checkResult is "XPRa" then
set label index of i to 3 --ラベルを付ける
else if checkResult is "QuarkEPS" then
set label index of i to 4 --ラベルを付ける
else if checkResult is "InDesign" then
set label index of i to 5 --ラベルを付ける
end if
end tell
end labelFill


Ruby。

#! ruby -Ku

require 'kconv'
require 'rubygems'
require 'mini_exiftool'

def os10ver(fileObj)
obj = MiniExiftool.new fileObj
key1 = obj['CreatorTool']#普通はここでわかる
key2 = obj['Software']#PSDはアプリケーション名で判断
key3 = obj['Creator']#古いIllustratorはこれで判断
if /Illustrator/ =~ key1 || /Illustrator/ =~ key3 then
str = "Illustrator"
puts str
#break
elsif /Photoshop/ =~ key1 || /Photoshop/ =~ key2
str = "Photoshop"
puts str
elsif /InDesign/ =~ key1
str = "InDesign"
puts str
else
os9ver(ARGF)
end
end

def os9ver(fileObj)
lineALL = fileObj.gets
line_UTF8 = lineALL.kconv(Kconv::UTF8, Kconv::ASCII)
lineArray = line_UTF8.split("\r")

lineArray.each do | line |
if /%%Creator/ =~ line
if /Illustrator/ =~ line
str = "Illustrator"
puts str
break
elsif /Photoshop/ =~ line
str = "Photoshop"
puts str
break
elsif /QuarkXPress/ =~ line
str = "QuarkEPS"
puts str
break
end
elsif /XPRa/ =~ line
str = "XPRa"
puts str
break
end
end
end

os10ver(ARGV[0])


いやー、スクリプトって楽しいね!

ダウンロードはこちら。
Adobeファイルの判定

Ruby トラックバック0 コメント0 page top


[勉強会]DTPの勉強会 第6回に行ってきたよ
久しぶりの勉強会参加です。
最近は飲んでばっかだったからねー。

さて、そんなわけで暴風吹き荒れる中、行ってきました「DTPの勉強会」。
詳細は下記。

【DTPの勉強会第6回】開催のお知らせ

実は私はあまりタグ付きテキストというものに触れたことがないのです。
HTMLぐらいかな。
DTPではほとんど使ったことないですね。
そんなわけでとても楽しみ。

内容よりも感想がメインになってしまいますが、ご容赦を。
仕事疲れでうまく頭が回らずメモがとれてなかった(^^;
あとタグはメモりづらいのよね。

まずはうさこさんのWebのお話。
最近仕事でもWebをかじり始めている私。
HTMLはかろうじてわかるものの、CSSが壊滅的に分からない。
とか思ってたら最近のブラウザはルビがつけられたりすると知って、HTMLもわかってなかったことが露見。
むぅ、ちゃんと勉強せねば。

セッションの内容はとてもわかりやすく、またスライドやデモも見やすかった。
パンダ推しなのが微笑ましかった。
うさこさんはずっとTwitterでフォローしていたんだけど、初めてお会いした。
ふんわりとしてて、かつきちんとしている印象の美人さんでした。
「レノくんのパパさんだー!」には照れてしまいましたがw

このセッションを皮切りにWebの勉強も始めたいですね。
まずは先日購入した書籍を写経かなー。


ホームページ辞典 第5版 HTML・CSS・JavaScriptホームページ辞典 第5版 HTML・CSS・JavaScript
(2012/03/14)
株式会社アンク

商品詳細を見る



続いてふなきさんのTeXについてのセッションへ。
こちらはTLでしばしば見かけるもののどんなものか知らなかった。
TeXの簡単な歴史の話から実際のデモまでの構成だった。
TeXはEmacs使うのがいいらしい。
やっぱ補完機能があるエディタがいいよね。
といいつつ、いままでそんなエディタ使ったことないや。
Xcodeぐらい?

Texの得意としている
・ 数式がたくさんあるもの
・ 相互参照がたくさんあるもの(論文、辞書など)
という案件は手元にはこないだろうなー。
前職で書籍をバリバリやってるときに知りたかったなー。

自分のブログをTeXで組版してみるのも面白いかなーと思った。
これを機会にEmacs使ってみようかしら。


続いて海輝さんの写研のファンクションモードについてのセッションへ。
電算写植のGRAFは私が高卒で入った会社でやってました。
一年半ぐらいですけどね。
そのときはファンクションモードではなくレイアウトモードでCADが起こしたレイアウトに文字を配置する業務をしてました。
最初Quarkの組版を見たときは違和感あったなー。
「なにこの汚いの」って思ったもの。
いまではすっかり忘れてしまった(^^;
私ぐらいの年齢でスタートがGRAFというのは結構珍しいのかもしれない。

海輝さんのセッションは常に笑いが絶えなかった。
独特の間というか雰囲気というか。
配られた資料を読んだら「さすが先輩、かっこいい!」と思った。
最近腑抜けてた自分に活を入れようと思いました。

しかし電算写植ってのはまだまだ生き続けるんだろうね。
環境の維持とか考えると頭が痛いところなんだろうけど、長持ちしてほしいな。


最後は主催者の一人でもあるあさうすさんのMC-B2についてのセッション。
こちらはパンフレットを読んで値段を調べて「ほわ」と思って手を出していないもの。
学参ものをやるとか言ったときにちょっと調べたんだけど、ね。
印象としてはきっちりしてるなーと。
いや当たり前なんだろうけど、なんとなくDTP系のタグ付きテキストってふわっとしているイメージがあったんだけど、こちらは緻密な印象。
だからこと難しそう。
実現したいことがどういうものなのかちゃんと理解できていないととっつきにくいかな。
その代わり使いこなせる人には強い武器になるんだろうね。


セッションの終わりの質疑応答にてこんな質問が。
「おすすめのエディタはなんですか?」

これは結構気になるところだよね。
でも結局は好みになってしまうから自分の手にあったものがいいのかなぁ。
私はMacユーザーなので家だとmiとTextWrangler、会社だとJeditXとmiかな。
正規表現が使えてそこそこ軽いエディタが好き。
ちなみにJavaScriptはESTK、AppleScriptはAppleScriptエディタ、RubyはXcodeで書いてます。


今回の勉強会で思ったことはデータ構造というか、事前に設計をすることはDTPでも大事だよね、ということ。
ついつい場当たり的に制作を始めがちだけど、その前に一手間くわえたり、考える時間をおくことで、効率もあがるんだろうな。
いや、だいぶ前から実践してるつもりだし、提唱もしてきてるつもりだけど、改めて。
勉強会をきっかけにしてそういう思想が広がるといいね。
私なんかが言っても「生意気な」とか「若造が」とか「あなただからできるんだ」とか言われちゃうかもしれないしねw

「あなただからできるんだ」という人は。「あなただからできないんだ」って返されたらどうするんだろうね。


[AppleScript]メモ
ただのメモ。

●container of hogeはhogeが存在していないとエラーになる
●InDesignの画像をどうにかしたいときはall graphicsで取得してrepeatで繰り返す
●all graphicsで取得したものにitem link of hogeすればリンクファイルの情報がとれる
例)name of item link of hoge--ファイル名を取得
  file path of item link of hoge--リンクファイルのパスを取得
  parent of parent of item link of i--リンクファイルの貼り込まれたフレームを取得
●file path of active documentでinddファイルの親階層のパスを取得できる




Copyright © お仕事メモ帳. all rights reserved.
FC2ブログ