2010年4月30日金曜日

JavaScriptの高速化と消えたblog

PICTORIXさんのblogに「今更の処理スピード js」が上がっていたので、(そういえばkamisetoさんの「イラストレーターのスクリプトを高速化させるためのコツ」もブックマしてたなぁ)と思い出したのでメモ。
まだまだ勉強の入口でJavaScriptの高速化など恐れ多いのですが、古旗さんのSampleScriptの書き換えに使えると思います。

で、アチキの場合、ブックマはほとんど直感的にしてまして、内容はほとんど読んでいないのです(^^;A
そんなわけで2つのスクリプトの速さの違いはどこにある。から読み直してますが、リンク先のキアロさんのblogをクリックすると。。。

指定されたブログは現在休止中です。

キアロさ~ん、どうしたんですか~?


ショックが尾を引いてますが、気を取り直してコピペメモ。

JavaScriptの速度を計測するには
スクリプトの最初に
var X = (new Date).getTime();

最後に
var Y = (new Date).getTime();
alert(Y-X);
これってかなり重要なScriptですよね^^
実は計測の仕方が分からなくて、ググってもヒットせず、古旗PDF本にも掲載されておらず、諦めて読み直していたら、、、灯台下暗しでした。。。orz

自分なりにググった結果
スクリプトの処理によっては、ドキュメントウィンドウを非表示にすることで実行速度がより速くなることがあります。
スクリプトの実行速度を速くするには、スクリプトの実行中に画面の再描画を行わないようにするという方法もあります。 これを行うには、スクリプトパネルのメニューで「再描画を有効にする」をオフにします。
スクリプトは通常、一連のアクションとして実行されます。つまり、編集メニューから「取り消し」を選択して、スクリプトで行った各変更を取り消すことができます。 スクリプトのトラブルシューティングを行う場合は、これによって問題のアクションが見つけやすくなります。 スクリプトでは取り消しモードを変更し、すべてのスクリプトアクションを単一の取り消し手順に含めることができます。 これにより、スクリプトの実行速度が大幅に速くなります。 この操作の実行について詳しくは、該当するスクリプト言語の『AdobeInDesign CS4 スクリプティングガイド』を参照してください。
あと変数に長い名前を付けても、スクリプトの実行速度に悪影響を与えることはありません。とあった。

追記:【DTPの勉強会の第1回】に参加申し込みました。
DTP Booster 13は泣く泣く断念です。警備の仕事辞めて参加しようかなぁとマジで思ってます。次の仕事のあてもないけど。。。

2010年4月24日土曜日

たけうちとおるさんからコメントをいただきました

「たけうちとおるさんの19)検索置換を読む」シリーズにまとめてコメントをいただきました(ウレシのココロ)。その1その2その3最後です。
で、チラッと以前の日記を読み直したのですが、もうほとんど忘れてます。。。orz
落ち着いたらきっちり読み直したいと思います。アチキと同レベルの入門者は目を通して損はないと思います。

6月2日に都内某所で
DTP Booster013 「DTP制作へのスクリプトという選択肢」

にたけうちとおるさんが講師として出演されます。
その日までに身辺整理の目処をつけて参加したいのですが、どうなることやら(汗

前回の日記で親父の遺した「負の遺産」のことについて触れましたが、見方を変えれば「どえらいプラス遺産」を遺したなぁと実感している今日この頃です。
どういうことかといいますと、相続放棄を取るかどうかの微妙なとこなので兄弟3人がまめに連絡を取り合い、交流が深まったということです。兄弟全員が親父を嫌い、高校を卒業すると同時に家を出ましたので自然と疎遠になり、連絡は年一回の年賀状のやりとりが15年ほど続いていました。
今回の件で家族の絆を再認識した次第です。
親父が生前、きっちりと身辺整理をしていたらこうはならなかったでしょう。
まぁ結果オーライですね。ではまた。

2010年4月19日月曜日

転換期ですかね

このblogはDTP関係のネタ以外に書くつもりはなかったのですが、ちと親父が亡くなったという事態が発生しましたので、今後の自分の身の振り方にもかかってくるので少しばかり。

半年前に親父ががん宣告を受けまして、まぁ80を越えていたのでいつ亡くなってもいいわけですが、がん治療を選びました。肺がんだったわけですが、放射線治療は効果あったみたいです。で、このがん治療というのは亡くなった教会員の方が言うには「がんで亡くなる人よりもがん治療で亡くなる人の方が多い」とのことです。どういうことかと言うと、がん治療によってがんはある程度治るものの、他の器官が機能低下して亡くなるみたいです。

その教会員の方はがん宣告を受けてから痛み止めの治療のみで5年ほど生きながらえていました。
別な教会員の方はがん治療を行ない、ある治療を境にガタッと体力が低下し寝たきりになり、宣告後、1年半で亡くなりました。
どちらも親父と同じ年代の高齢な方です。

親父の場合、半年前では「持って今年3月まで」と言われていたので、まぁ、治療してもしなくても大して変わらなかったわけです。

ただ、、、治療というのは本人に生きる希望というのを持たせてしまい、身辺整理というのを一切しなかったのですね。この親父の残した身辺整理という負の遺産に頭を悩ませているのです。

どういった負の遺産かといいますと。。。
昔の人間なので今流行の「もったいない」(Recycle, Reduce, Reuse)。。。RRRさんですね。

はい、TVで紹介されるようなゴミ屋敷状態なのです。
自分の土地ならまだしも借地にゴミを山ほど積んでいるのです。
で、住む人がいなくなりましたので借地を地主さんに返さなければならんのですが、ゴミの処理にかかる時間と費用を考えると。。。鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱

捨てる技術というのがなかったんですね、親父。

母親のこともあります。長男ということもあり、母を引き取らなければならんのですが、長年住んだ地元を離れる気はなさそうです。となると、、、自分が故郷に戻って母の面倒を見なければならんのですが、こどもたちはまだ学校に通っています。

で、出てきた話が「警備の給料ぐらいの仕事は田舎にもある」ということです。まぁ確かにあるでしょう。でも、田舎ですからDTP業界復帰はますます遠のくのでは? どうすんべ。

2010年4月13日火曜日

指定文字を含んだセルの色つけと直接起動

Scriptの勉強をはじめた動機のひとつに昔、断念したScriptがあったのです。
当時、AppleScriptで作ろうとしたのですが、素養がないためダメ。
そこでフォーサイトさんにお願いして作ってもらいました。
で、どんな風に書いてあるのか知りたかったのですが、コンパイルされたものを頂いたのでそれもできず。。。
断念したスクリプトを(JavaScriptで書けるようになりたい!)と思い、古旗本を購入したものの入門者にはちと厳しい(^^;
一足飛びに読み解きから始めたのですが、すぐに行き詰まり、最初から順にPDF本を読んでいます。で、イメージ力のない人間が読むとただ読むだけという状態。。。Scriptってつくづく想像(創造)力の産物だと思います。家にいてもスクリプトの勉強よりもweb巡回ばかり。以前読んだものを忘れる亀足でしか進みません。

そんな中に飛び込んできたサプライズスクリプト

これっ、昔作ろうとして断念したスクリプトに近いものです。
こういう出会いがあるからweb巡回は止められない^^
blogが消滅しないうちにソースをコピペ。
var sel = app.activeDocument.selection[0];

if ((sel.constructor.name == "Cell" ) || (sel.constructor.name == "Table")) {
var clist = "";
for(i=0; i<app.activeDocument.swatches.length; i++) {
clist = clist + app.activeDocument.swatches[i].name + ",";
}
clist = clist.replace ("Registration,", "")
clist = clist.substring (0, clist.length-1)
clist = clist.split (",")
dlg = app.dialogs.add({name:"セル色付け"});
dlc = dlg.dialogColumns.add();
with(dlc.dialogRows.add()){
staticTexts.add({staticLabel:"文字 "});
tmpStr = textEditboxes.add({editContents:""});
}
with(dlc.dialogRows.add()){
staticTexts.add({staticLabel:"色"});
selcolor = dropdowns.add({stringList: clist, selectedIndex:0});}
flag = dlg.show();

if (flag == true) {
Str = tmpStr.editContents;
cstyle = selcolor.stringList[selcolor.selectedIndex];
for (i = 0; i < sel.cells.length; i++) {
if (sel.cells[i].contents == Str) {
sel.cells[i].fillColor = app.activeDocument.swatches.item(cstyle);
}
}
}
}
たぶんCS3で動作すると思うのですが、まだ試してません(というか試せない)。


で、別な話題。
ESTK2でチマチマSampleScriptでアラート表示させてますが、jsxファイルをダブルクリックしても動作しないんですね。AppleScriptのようにダブルクリックで動作したら便利なんですけどね。で、ググったら1行目に

#target "アプリ名"

を書けばいいんですね。で、XPの場合"Finder"と入力しても動作しなかったので、"Bridge"と入力してBridgeを起動させてから動かしてますが、何と書けば直接起動するんですかね。。。


で、もひとつ別な話題。
CS5が発表されたそうな。PDF入稿を普及させるためにショートサイクルで新シリーズをリリースしているとしか思えません。入稿データはPDFでしか受け付けないところも増えてくるのでは? で、どうPDFデータを修正するかですよね。大変だなぁ~。。。
モリサワ主催 「Adobe Creative Suite 5  Design Premium ご紹介セミナー」
東京会場のweb申し込みはあっという間に埋まってしまった。
みんな待ちに待っていたとは思えないのだが。。。何で???

DTPを離れて早や1年が過ぎてしまいました。

2010年4月9日金曜日

unicodeの10進数表記

サンプルコードの丸写しは著作権違反だと分かってはいるものの、どうにも理解できないことがあったので、一部文字を変えて抜粋し転載。
charCodeAt()で文字をUnicodeに変換し、String.fromCharCode()でUnicodeを文字に変換するのですが
var str = "Q!ADあイウエオ";
var c = str.charCodeAt(1); // 2 番目の文字を変換
alert(c);
var result = String.fromCharCode(c);
alert(result);


↑このようなアラートがOKを押すと連続して表示されるのだが、このScriptは「!」をunicode番号で表示し、そのunicode番号を文字にするというスクリプトだよな。「!」のunicodeは0x0021。0x0033は「3」になる。これが理解できなくてググりました(^^;A


■ 文字と文字コードの変換
◆ string.charCodeAt(n) (e4/N4)
string の n 番目(最初の文字を0番目とする)の文字のコードを返します。ブラウザの種類やバージョンによって文字数の数え方や、文字コードの扱いが異なるので注意が必要です。例えば以下の例(コードはシフトJISと仮定)で、Netscape Communicator 4.01 では "あ" のシフトJISコードの1バイト目 "\x82" を示す -126 を返しますが、Internet Explorer 4.0 や Netscape Communicator 4.06 以降では Unicode の "\u3042" を示す 12354 を返します。
スクリプトをc = str.charCodeAt(4);に書き換えるとこの例にマッチします。
はい、「12354」は10進数表記でunicodeは16進数表記で「3042」なのですね(大恥
なので、21は10進数で33なのね。
こういった注意書きがPDF本にないだけに入門者は苦しむのです。

最初、分からない状態でこの日記を書きはじめました。書きながら調べてようやく理解できた次第です。
16進数変換・文字コードサイトを利用させていただきました。
2進数、8進数、10進数、16進数相互変換サイトもお薦めです。
このサイトの非常にいいところは8進数表記もありますので、あぷらいとさんの名著「aiデータ解析」を理解するのに役立ちます。
まだ読んでない方はどぞ~^^

2010年4月4日日曜日

リストラとその後――自分の場合

アチコチのblogでリストラの話題が出てますので、先にリストラに遭いました自分からのアドバイスと経緯。

今から6年ほど前、取引先(製版会社)から30%のコストダウンを告げられまして、アチキの勤めていた20人ほどの制作会社でもリストラが始まりました。40過ぎの5人が対象です。

個別に呼び出され「今月から請負としてやっていただく」との説明と一緒に青色申告の手引きが渡されました。小さな会社でしたので割増退職金などありません。社員が独立したとの前提に立ち、告知を受けた時には年金、保険は外されておりました。まぁ、その前の1年間は仕事がヒマでさすがに(やばいなぁ~)と感じてましたので、ついに来るべきものが来たかの感じでしたね。提示された条件は年俸制で当時の年収の約30%ダウンでしたから会社としても精一杯の誠意が感じられるものでした。ですから当時、在籍していた会社に対しての恨みつらみはありません。むしろヒマな一年間をよく社員を養ってくれたなぁ~と感謝してます。

で、その会社にしばらくいてから辞めたわけなのですが、辞めた理由を列挙させていただきます。

最大の理由が親友の死でした。
不幸は手をつないでやってくると言いますが、まさにその通り。リストラを告げられた1ヶ月前に高校時代からの親友がすい臓がんで余命半年との知らされ、リストラ告知の1ヶ月後に天に召されました。
売れないイラストレーターでした。40過ぎてもイラストだけでは生計が立てられず、親からの仕送りを受けたりもしてました。こちらもうだつの上がらないDTPオペレータでしたが、いつか一緒に仕事をしような、本を出そうな、などと夢を語り合っていました。
あいつが亡くなったことで(オレ、何のために仕事をしてるのかなぁ~?)などとの疑問が湧き、まぁ家族のことを考えれば踏みとどまるべきだったのかも知れませんが、我儘放題の妻を見るとそんな気にもなれず。。。

次なる理由が、取引先のやる気のなさ。
なんでこんなやつらのためにコッチが大変な思いをせねばならんのかという怒りですね。←これが爆発の引き金だったww

あとは5年も同じ仕事をしているというマンネリと、いつまでも続くOS9環境に嫌気が差したというところです。そんなこんなで告知後、3ヶ月で辞めました。

失業保険を受けてしばらくボーっとしていたのですが、妻のギスギスした態度に耐え切れず再就職活動。はい、全滅でした。仕方なく派遣登録。
登録した派遣会社が短期案件しか紹介してくれないため半年過ぎた頃に別の派遣会社に登録。
長期案件で2年ほどいたのですが、5年も派遣でいる人がいました。
派遣は社員になれない(所詮、派遣はよそ者なのさ)。
1年目の年収より2年目の年収の方が下がっている――頑張って効率を上げれば収入が下がるというジレンマ。

鬱の復活です。鬱から逃れるために環境を変え、別な派遣会社に登録。
しばらくは良くなったもののすぐに復活。

理由は分かってます。大手印刷会社の下請け仕事のため全体を見ることができず、単調な赤字修正と出力の日々。環境もOS9がメインでした。
鬱状態で仕事をするものではありませんね。でかい失敗をやらかしました。逃げるようにして去り、警備の仕事についてます。

で、リストラの先輩としてのアドバイスとしてはたったひとつです。
仕事が面白ければ給料ダウンしても続けてください。ダウンしたとしても警備の給料よりはいいはずです。
仕事がつまらなければ辞めてください。いずれ大きな失敗をして周りに迷惑をかけます。
DTP制作という仕事はホント面白かったのですが、流れ作業の一端を担うだけの仕事は苦痛以外の何者でもありませんでした。
業界復帰を目指しつつ諦めてますが、流れ作業の一端を担うだけの仕事と派遣だけはやらないと決めています。

印刷物を作るという仕事はホント面白いです。しかし、分業制と派遣というシステムがダメにしているのではないかと思っています。