2012年12月10日月曜日

お勧め--はじめての正規表現講座

ようやく出席できました(^^;A
当初は「DTPの勉強会 特別編」を受講したのだから必要ね~と思ってました。
しか~し、やもさんの
はじめての正規表現講座参加してきました。お勧め。を読み、
こっ、これは参加してみる価値があるのでは? twitterでも評判は上々、他の方もblogで紹介されてます。受講した感想は「評判に偽りなし!」でした^^
まじお勧めです。積み重ね、積み重ねで丁寧に説明されてます。
と、ここまで書いて、このblogを読んでる人はほとんど受講したよなぁ~


以下は個人的メモ

[0-9]は0~9の数値にマッチするが、[〇-九]は漢数字〇~九にマッチしない。
理由は文字コード。文字コード上で連続していないから。
文字を扱う以上、文字コード表は必須。

メタ文字でキャプチャーとグルーピングの2つ使い方があるパーレン(括弧)

特にキャプチャー、これを理解できただけでも大きな収穫^^ 
初心者(自分)はいきなりゴールに達しようとし、それゆえ躓いてしまう。が、いきなりそこに行かず、段階を踏んで達する。その手順、考え方が理解できる。

例:01-2345-6789 を 01(23456789 に置換したい。

初心者は数値に挟まれたハイフンをいきなり全角括弧にと考える。それゆえ躓く。
順を踏んでパーツにバラし、数値、ハイフン、数値、ハイフン、数値を検索する。
数値は[0-9]+、ハイフンは-。
結果、[0-9]+-[0-9]+-[0-9]+でハイフン区切りの電話番号にマッチ。

|01|-|2345|-|6789|

コンピューターは灰色部分で区切って考えます。
で、区切られた数値部分をキャプチャー

([0-9]+)-([0-9]+)-([0-9]+で検索

区切り部分にパーレンを入れることで、括られた部分がキャプチャーされます。
左から順に\1、\2、\3

\1\2\3 で置換


鬼車

オジさん世代では「柔道一直線」で見た記憶が。。。高松英郎が演じてた車周作の異名だったんですね。極めて強力な正規表現エンジンだそうです。Jedit X2.32以降に搭載されてます。

\p{Han} ですべての漢字がマッチできる。
これはunicode上でアチコチに散らばっている漢字をマッチさせるに便利。


最後に
セミナーで使っていた正規表現アプリはイイ!

というのもコンピューターが考えるマッチした区切りが分かるから。
自分の使っているエディタだとこうはならない。ググって探してみたが見当たらなかった。
近いものがwebアプリのRegex Tester – RegexPal


講座『正規表現 次の一歩』は来年3月2日




2012年11月28日水曜日

ストレスが溜まる

風邪を引いて調子がいまいち状態が長く続いていたのですが、病院に行き薬をもらってから大分楽になりました。ようやくblogを書く元気も出てきました。

まぁ、とにかくここ2-3ヶ月はストレスが溜まりまくり。原因は分かっているのです。
収入の著しい低下もありますが、とにかく礼拝に出席できない。隔週でしか出席できない。
出れても仕事明け、そして礼拝後は直ちにGSのバイトに出かけるので教会員の方々との談笑もできない。礼拝中は睡眠補給に自然と入り、牧師が何を話したのか残っていない。
隔週で日曜の早朝から24時間勤務が続いてます。人がいないためです。
以下は愚痴の列挙、スルー推奨。


DTP復帰の求職活動

まったくダメ。面接にすらたどりつけない。自分がDTP復帰にこだわる最大の理由が日曜の礼拝出席。基本、日曜は休みですから。とはいえライン工のような流れ作業DTPはやりたくない。仕事全体が俯瞰できない作業はそれはそれでストレスが溜まるのです。派遣でそれをやっていたのでもう勘弁という思いがあります。贅沢なんでしょうね、自分。。。それでも復帰できた師匠が羨ましいです。

GSのバイト

いくら募集しても人が集まらなかったが、9月に入ってから突如、応募者殺到。入ってもすぐに辞める人が続出していた関係で全員採用。はい、ひとり当たりの労働時間は少なくなります。で、全員が少なくなればいいのですが、声のデカイ、わがままな人のみ時間は減らされませんでした。これもストレスのひとつの原因。

警備の仕事

欠員補充にも書いたのですが、お盆明けに一旦、通常勤務に戻ったのもつかの間、すぐに欠員が発生し、ひとり巡回が今日まで続いています。施錠点検巡回を息継ぎなしで4時間半、小走りで回ってます。要領を体得し、若干、短縮できたものの手抜きはできません。不思議と手抜きしたところが発覚するものです、何ででしょうね? で、このひとり巡回、やっているのは自分だけなのです。シフトの関係で自分の勤務の日のみひとり巡回なのです。周りが高齢者ばかりとはいえ、もう4ヶ月以上もこの状態が続いています。手当ても付かなくなりました。増員の話もありません。12月のシフトが配布されました。12月も自分のみひとり巡回です。流石に責任者に注文を付けました。結果、わずかだが手当てをつける、1月から解消されるとの話なのですが、どうなのでしょうか? 給与の少ないのは仕方ないにしてもGSのバイトのように不公平感が溜まってきます(はぁ~

DTPセミナー

今年は仕事のスケジュールと重なり、今日までただの一度も参加できませんでした。どんどん離れていく、浦島太郎になる~。。。アリ地獄の中でズルズルと砂に埋もれていく気分です。DTPの勉強会のDVDを数枚、購入したもののまだ見てません。というのもPCから音が出ないのです(涙
12/8に今年初めて文字の学校公開講座「はじめての正規表現」に参加します。なんとかこの状態から脱出できるきっかけにでもなれば。。。主に願うのみです。

教会関係

50周年記念誌の原稿がまだ。。。校正を出しても戻ってきません。来年は52周年になります。
家族の中で教会に通っているのは自分のみ。最後の砦だった娘も受験を理由に礼拝はサボリ気味。


まぁ今年は勤務先の警備会社が契約打ち切りで失業、給料未払いを皮切りに散々な年でしたw
ツイてないとは考えずにツキを溜め込んでると考えてます。来年はこの溜め込んだツキが堰を切って流れる。オレの時代がキタ~、時代がオレに追いついた。となるでしょうv(^^


2012年11月7日水曜日

matrixと逆三角関数

「他人様の褌で相撲を取る」を座右の銘として、DTP業界コバンザメとして棲息してきたものの、さすがに限界。ここ3年はスポイルされ警備が本業です。

やり残しのはじめの一歩」をDTPに必要な三角関数から入り、基礎から理解しようと挑戦をしたのですが、高校時代ろくに勉強をしなかった身としては投げ出さざるをえません。放置したままにするのもなんなので、ここまでのログ。

この件はあかねさんの「IllustratorでApplescript」にも書かれている

得られたmatrixは、わけわかめ。
{class:matrix, mvalue_a:0.707106649876, mvalue_b:-0.70710670948, mvalue_c:0.707106649876, mvalue_d:0.707106649876, mvalue_tx:316.75048828125, mvalue_ty:587.07666015625}
AppleScriptを使って、Illustratorに貼られた画像の拡大縮小率を得るにはで解決されたのだが、そこにはアフィン変換やらmatrixなどという難しい用語が登場する。

アフィン変換はアフィン変換 画像処理ソリューションが分かりやすい。

で、adobeのMatrixクラス - 変換行列でなんとなく理解できます。(あくまでも何となく)



a: 水平方向の伸縮率 = 変換後の幅/もとの幅
b: 垂直方向の傾斜率 = 垂直方向の傾斜/もとの幅
c: 水平方向の傾斜率 = 水平方向の傾斜/もとの高さ
d: 垂直方向の伸縮率 = 変換後の高さ/もとの高さ
tx: 水平方向の移動ピクセル数
ty: 垂直方向の移動ピクセル数



回転がかかった場合、アフィン変換 画像処理ソリューションの図を参考





 

mvalue_a:0.707106649876, mvalue_b:-0.70710670948, mvalue_c:0.707106649876, mvalue_d:0.707106649876, mvalue_tx:316.75048828125, mvalue_ty:587.07666015625

aとdは同じ数値ですから単純に回転がかかったものと判断できます。

TransformMatrix.swf 
{class:matrix, mvalue_a:0.707106649876, mvalue_b:-0.70710670948, mvalue_c:0.707106649876, mvalue_d:0.707106649876, mvalue_tx:316.75048828125, mvalue_ty:587.07666015625}の数値を入力すると


はい、遊べます。
なんとなく分かった錯覚に陥ります。

でも角度は出てきません。
数値から角度を逆算する必要が出てきます。


逆三角関数(度)サイトで数値から角度が出てきます。こんな↓感じ。


何とかここまでは達しましたけど逆三角関数が分かりませんので、それを使ったスクリプトなんぞ、とてもとても。。。です。
理解できずに「他人様の褌で相撲を取る」のはコバンザメのプライドが傷つきますが、この件に関しては仕方ありません。もっとも今後、使う機会があるかどうかも(ry

でもTransformMatrix.swfだけでなく角度とラジアンでも図がいじって遊べるのが嬉しい^^



んで全然、話は違うけど、最近やたら気になること。
せうぞーさんのブログが更新されてない。もう4ヶ月にもなります。


2012年10月30日火曜日

バラバラ

他部署応援要請が入り、打ち合わせに行ってきました。
そこの部署は過去数回、休日応援に行ったことがあります。
11月から平日応援の要請があり、打ち合わせに行ったのですが、、、

やりかたが人によってバラバラ!

ひとりポストのためそうなるのはある意味仕方ない点はあるにしても、ちょっとこれは。。。のレベルなのです。

以前、休日応援の時に平日業務の流れも教えていただき、その確認の意味もあったのですが、教わった流れと違う所が多々あります。当人はよかれと思って変更したのでしょうが、それが横に伝わっていないため、結果、その日の警備につく人によってサービス内容が違うという結果になってます。

杓子定規のマニュアル通りというのも何ですが、ここまで違うと愕然としてしまいます。

打ち合わせ終了後、上に報告をあげましたが、これはこれで同僚の恨みを買うことになりますので、正直やりたくなかったのです。

致命的と感じたのがセキュリティの基本というべき、施錠ルールが確立されてないということです。
照明の点灯にしても(もったいないから)等の個人感覚が入り、人によって違います。
照明は施設イメージにからんできますので、もったいないという個人感覚の入り込む余地などないのですが。。。

顔の見える仕事をするのも大事ですが、クライアントは会社と契約していますので、ある程度は同じサービスを提供しないと、かえって信用低下を招くと思うのであります。


2012年10月22日月曜日

血の呪縛

twitterに流したけど言葉足らずだったし、自分の頭を整理する意味で
佐野氏は、「血(ルーツ)」こそがひとの生き様を支配する、という人間観を持っている。←それはそれで正しい。ただ、血の呪縛から逃れようと必至で足掻いている人を絶望に落とす人間観でもある。 / “週刊朝日は謝罪すべきではなかったし、連載を続…”  
雑誌を読んだわけでもなく、佐野氏の本を過去一度も読んだことがないのに感想を述べるのも何かと思ったのだが。。。
「血(ルーツ)」こそがひとの生き様を支配する、という人間観は自分は同意できる。
その人の人となりを理解するにはどのような環境で育ったかは、当人がいくら否定しても少なからず影響を与えている。本人が吐き気をもよおすほど嫌いな人間を父親にもち(オレはあんな人間にだけはならん!)と心に誓い、生きたとしてもだ。それは経験したものにしか分からない。
だから手法として出自を明らかにし、父母の人格、成長する過程で影響を受けた人々(友人、恩師)などを通して当人を語るのは正しい。だから同和問題にすりかえられて導入部分で連載中止は理解できない。育った場所の影響もなきにしもあらずなのだが、一番影響を与えるのはやはり「血」だと思う。
「親は親、子は子」という考え方もあるが「蛙の子は蛙」という言葉もある。
(オレはあんな人間にだけはならん! そしてそう生きてきた。「親は親、子は子」)という考え方は、ある意味「傲慢な」考え方だ。そして自身に反吐が出そうなほど嫌っていた人間と同じ部分を見たとき、絶望する。本当に絶望する。いくら足掻いても血の呪縛から逃れられないのかと。

「血の呪縛」から逃れるたったひとつの方法――それは、新しい「血の呪縛」を受けること。
イエス・キリストの十字架の血を浴びること。自分にとってはそれだった。
それでも古い「血の呪縛」がむくりと起き上がる。そこから逃れるために再度、キリストの血を浴びる。キリストの血を浴びなければ、とうの昔に死んでいた。

2012年10月15日月曜日

DTPに必要な三角関数

以下の図を作成するとき、どうしてますか?
人によってやり方は様々ですが、自分は今まで角度40を作成してから、半径25の円を眼見当で線分に接してました(恥
別なやり方として「三角関数」を使ってキッチリ作成する方法があります。
角度20で高さ25の直角三角形の幅を求めればいいわけです。

角度と高さから底辺と斜辺を計算サイトで求められます。

a=b/tan20 で、答えは68.68693548636。

印刷物にしてしまえば小数点第2位以下の誤差は分かりません。けれどデータを作成する上で眼見当で作成したのか、三角関数を使って作成したのかで、後で大きく違ってきます。


Illustratorに貼り込まれた画像のサイズをリスト化する処理が必要となり、先週末からいろいろとトライしている。オブジェクトのプロパティからは幅と高さが参照できるのだが、どうやら回転がかかった場合は回転がかかった時の幅と高さになる模様。つまりオブジェクトの本来の幅と高さではなく、相対的な幅と高さということになる。対応策としては「回転を外した状態にしてから幅と高さを求める」というのが素直な考えだが、残念ながら回転の値が存在しない。IllustratorのオブジェクトはInDesignやQuarkXPressのようにボックスの左上を基準とした座標値や回転値などから場所を割り出すのではなく、6つのマトリックスを用いた方法で表現しているようで、ここらへんになってくるとお手上げだった。

上図で20°の角度が分からないから幅a'と高さb'が算出できないということ。
しかし角度が分かったとしても三角関数が理解できていないとa'とb'は出てこない。
35年前に高校を卒業してから一度も使ったことのない三角関数の復習をさせていただきました。
blogに書きながらの三角関数の復習です。


赤線の三角形は相似形なので角度は同じ。三角形の各辺の長さを求める公式は下図の場合

a=b/tanΘ もしくは a=c*cosΘ
b=a/tanΘ もしくは b=c*sinΘ
c=a/cosΘ もしくは c=b/sinΘ

これらの公式から
1. 79=a'*cos20+b'*sin20
2. 64=b'*cos20+a'*sin20

ここまででaとa'、bとb'とやったために分かりにくくなったな。。。と反省。
でもこのままいく。

要は上記の2つの式からb'を消せば、a'が導き出せる。
ここで中学で習った連立方程式がでてくる。

1. の両辺にcos20をかける  2. の両辺にsin20をかける

1. 79*cos20=a'*cos20*cos20+b'*sin20*cos20
2. 64*sin20=b'*cos20*sin20+a'*sin20*cos20

1. の式から2. の式を引き算すればb'が消える。

79*cos20-64*sin20=a'*cos20*cos20-a'*sin20*sin20

整理すると
a'=(79*cos20-64*sin20)/(cos20*cos20-sin20*sin20)

同様のやり方で
b'=(79*sin20-64*cos20)/(sin20*sin20-cos20*cos20)

この辺は計算がやっかいなので
wolframalpha.com がお薦め

よってa'=68.333、b'=43.236となる。基礎学力の大切さを改めて痛感した次第。。。


2012年10月12日金曜日

やり残しのはじめの一歩

DTPに戻れるはずなどなく、かといって警備で骨を埋める覚悟もできず、相変わらず宙ぶらりんな日々を過ごしてます。

CLさんがDTPから離れたのを機に諦めがつきましたが、それでもここへきてやり残したことがいくつかあったので。

最初に見たときから能力的に無理と放置してた事例が、ほぼ5年前のネタ

掲示板に神の啓示  
Illustratorに貼り込まれた画像のサイズをリスト化する処理が必要となり、先週末からいろいろとトライしている。オブジェクトのプロパティからは幅と高さが参照できるのだが、どうやら回転がかかった場合は回転がかかった時の幅と高さになる模様。つまりオブジェクトの本来の幅と高さではなく、相対的な幅と高さということになる。
対応策としては「回転を外した状態にしてから幅と高さを求める」というのが素直な考えだが、残念ながら回転の値が存在しない。IllustratorのオブジェクトはInDesignやQuarkXPressのようにボックスの左上を基準とした座標値や回転値などから場所を割り出すのではなく、6つのマトリックスを用いた方法で表現しているようで、ここらへんになってくるとお手上げだった。
答えは
(DTPtechNote:1750) Re: Illustratorのオブジェクト情報

かと思いきや、イケッチさんのBBSで修正されているのでメモ

13 イラストレータ変形率を返すルーチン

投稿者:イケッチ 投稿日:2008/03/03(Mon) 23:31
せいぞーさんのBBSに書き込んだ者に誤りがあったので修正

on get_henkei_of_link_info(thePlacedItem)
tell application “Adobe Illustrator”
set theClass to class of thePlacedItem
if theClass is not placed item and theClass is not raster item then return 0
set theMatrix to matrix of thePlacedItem
set _a to mvalue_a of theMatrix
set _b to mvalue_b of theMatrix
set _c to mvalue_c of theMatrix
set _d to mvalue_d of theMatrix
set theRad to do javascript “Math.atan2(” & _b & “,” & _a & “);”
set tateRad to do javascript “Math.atan2(” & _d & “,” & _c & “);”
set tateRatio to do javascript “Math.cos(” & theRad - tateRad - 0.5 * pi & “);”
if tateRatio < 0 then
set tateRatio to -tateRatio
end if
set tateRatio to ((tateRatio * ((_c ^ 2 + _d ^ 2) ^ 0.5) + 5.0E-6) div 1.0E-5) * 1.0E-3
set yokoRatio to (((_a ^ 2 + _b ^ 2) ^ 0.5 + 5.0E-6) div 1.0E-5) * 1.0E-3
set theAngle to theRad * 180 / pi
if theAngle < 0 then
set theAngle to -((theAngle - 5.0E-4) div 1.0E-3) * 1.0E-3
else
set theAngle to -((theAngle + 5.0E-4) div 1.0E-3) * 1.0E-3
end if
return {yoko:yokoRatio, tate:tateRatio, kaiten:-theAngle}
end tell
end get_henkei_of_link_info

tell application “Adobe Illustrator”
my get_henkei_of_link_info(item 1 of selection of document 1)
end tell


三角関数の復習と理解から始めなくてはなりませんので苦労してます(^^;

しばらく三角関数の入門メモ書きが続きますので分かる人は無視してください。

といっても、このblogを読んでる人は7人くらいのもので断る必要もないのですが。。。