2月 18, 2012
kamata

辞書を引く.appを作ってみた

ルビについて調べていたら、ルビとは無関係だが、辞書ということで、次のようなページにいきあたった。
http://sakito.jp/mac/dictionary.html#url-scheme
http://macscripter.net/viewtopic.php?id=26661

「辞書.app」って使ったことがなかった。
コピーした文字列を辞書で調べるってアプリ、上の情報からできるなっと思って作ってみた。

調べたい言葉をコピーして、アプリを実行すると、ダイアログにこんな感じで表示します。

Dictionaryをコピー後実行。

富士山をコピー後実行。

メインのapplesript部分は、

--* 自身のバンドル・パスを得る
set self to path to me
set scriptBundlePath to (path to resource "Scripts" in bundle self) as Unicode text
set iconPath to (path to resource "applet.icns" in bundle self) as Unicode text
--* スクリプトファイルのフルパスを作成する
set pyScriptFile to scriptBundlePath & "dict2.py"
--* Unix用のパスに変換する
set pyscriptpath to quoted form of (POSIX path of pyScriptFile)
--* paste値を変数にセット
set searchword to do shell script "pbpaste"
--* shell コマンド
set command to "/usr/bin/python2.5 " & pyscriptpath & " " & quoted form of searchword
--* コマンド実行
set theResult to do shell script command
--* 表示
display dialog theResult with title searchword buttons {"Close"} default button {"Close"} with icon file iconPath

Pythonスクリプトは、

#!/usr/bin/python2.5
import sys
from DictionaryServices import *

def main():
    try:
        searchword = sys.argv[1].decode('utf-8')
    except IndexError:
        errmsg = 'You did not enter any terms to look up in the Dictionary.'
        print errmsg
        sys.exit()
    wordrange = (0, len(searchword))
    dictresult = DCSCopyTextDefinition(None, searchword, wordrange)
    if not dictresult:
        errmsg = "'%s' not found in Dictionary." % (searchword)
        print errmsg.encode('utf-8')
    else:
        print dictresult.encode('utf-8')

if __name__ == '__main__':
    main()

弊社ダウンロードサイトから取得できます。
https://www.web-cte.co.jp/tools/

2月 14, 2012
admin

日本地図センター

先日(とは言っても昨年の9月の事ですが…)
“(財)日本地図センター”という所に行ってきました。

以前勤めていた会社の仕事でGIS(地理情報システム:
Geographic Information System)に携わっていた時に初めて知って以来、
その存在が気になっていたので、夏季休暇を利用して訪れることにしました。
(ここは土日祭日が休業日なので、基本的に平日でないと行く機会が無いので)

センターの中は日本全国の各種地形図をはじめ、道路地図、
地図に関する様々な書籍・グッズなどが陳列されており、
恐らく地図に関する物であれば、何でも置いてあるのではないかと思いました。

私が訪れた当初は東日本大震災から間もない頃だったので、
災害対策のハザードマップなどが平積みで置かれていたのが印象的でした。
その他ですと、近頃の乗り鉄・撮り鉄ブームを反映してか「廃線跡をめぐる」等の
趣旨の書籍がふんだんに置かれていたのが目立ちました。

場所は東急田園都市線の池尻大橋から歩いて5分程の所です。
駅から地図センターまで歩いていると、玉川通り(国道246)の脇に
首都高の大橋ジャンクションが出没します。
(コンクリートで出来た円柱型のループがある所です)

(財)日本地図センター http://www.jmc.or.jp/

2月 8, 2012
amemiya

Perl Script 習作

Perlのブラッシュアップのためにサブルーチン化した習作を投下します。元はInDesignから書き出したxmlテキストをタブ区切りテキストに成形するスクリプトの一部。内容は順不同に出現するフィールド名のタグで挟まれた部分を抽出して並び替えて揃えるというものです。↓こんな感じのタブ区切りテキストを表組に使えるテキストに加工するのに作りました。

ちょっと記述が長いかもしれないので、折りたたんでおきます。
(シンタックスハイライトを使って整形しました。2012/2/19)

Continue reading »

1月 23, 2012
kamata

備忘録:ミリ秒を取得する

on getMilSecond()

	set theCmnd to "perl -e 'use Time::HiRes;my ($wtime,$msec) = split(/\\./ , Time::HiRes::time);my @t = localtime($wtime);printf(\"%04d%02d%02d%02d%02d%02d.%03d\",$t[5]+1900,$t[4]+1,$t[3],$t[2],$t[1],$t[0],($msec/100));'"
	return do shell script theCmnd

end getMilSecond
1月 20, 2012

近づくリリース。リジェクトされないことを祈りつつ

お客様より依頼のあったiPhoneアプリケーション開発が、目下佳境に入っています。精力的に開発に勤しんでいる毎日です。

アプリケーションが出来たら、即リリースということになるわけですが、App Storeの審査を通らない場合には、修正のうえ再提出ということになります(以下、審査を通らないと繰り返し)。

目下開発中のアプリケーションには、iPhone搭載のカメラを利用する機能が搭載されているのですが、これがカメラの一部の情報しか取得しないものの、プレビュー画像を保存する仕様になっています。

プレビュー画像を保存するものは、(いくら切手大の小さな画像でも)「カメラ」として使えてしまいます。

そして、このアプリはカメラの一部の情報しか取得しないので「シャッター音」が鳴らないのです。

開発側に「これはカメラではありませんよ~」という意図があったとしても、客観的に見て「カメラアプリ」と判断することが可能です。しかも、撮影が無音でできてしまうカメラアプリです。

AppStoreの審査担当から見れば、「盗撮にも使える不届きなアプリ」ということに。

電車の中で、つい女性の魅力にさからえず、この撮影時に音が出ないアプリを悪用して、あらぬアングルからの撮影を行ったことがテレビや新聞で報道された日には、Appleのブランド価値は失墜してしまいます。

なので、そういう危険性のあるアプリを審査で却下する可能性があることは、十分に認識しています。

AppStoreの審査で却下される危険性が高いため、お客様と相談のうえ、カメラからの取り込み時にわざと音を鳴らすことにしました。そして、撮影時にシャッター音ではなくアプリケーションの名前をつぶやかせてみよう、という話になりました。

とはいえ、レコーディングスタジオを借りてプロのナレーターさんにお願いするわけにもいかないので、デスクの自分の席で「ぼそぼそ」しゃべってMacBook Proの内蔵マイク(画面の上に付いているもの)で録音。

そのまま職場で録音したので、部署内の他のPCの放熱ファンの音が盛大に入ってしまいます。慌てずさわがず愛用の「Sound SOAP」でノイズリダクションを実施。

最後に、フリーの音声編集ツール「Audacity」で音声をモノラル化したあと、再生速度を速くするなどの編集を加えてみました。なんとなく、それっぽく聴こえます。

リリース後、電車の中でその音が聴こえたら感動モノですが……くれぐれも、悪用されないでほしいです。

1月 11, 2012
kamata

BeforeAfter評価版をダウンロードサイトに登録しました。

BeforeAfterの評価版を弊社ダウンロードサイト(https://www.web-cte.co.jp/tools/)に登録しました。こちらより取得してお試しいただけます。機能は製品版と同じです。評価期間は本日より2/25までとなっています。
この機会に是非お試しください。よろしくお願いします。
動作ムービーは下記画像をクリックください。

1月 4, 2012
kamata

2012年、本年もよろしくお願いします

2012年、本年もDTP作業を便利にする情報を掲載していきたいと考えています。

よろしくお願いします。

12月 20, 2011
U

ルビクラウドサービス 年末年始のお知らせ

いつもご愛顧ありがとうございます。
弊社の看板開発サービス「ルビクラウド」のお知らせです。

誠に勝手ながら、2011年12月27日(火)〜2012年 1月3日(火)まで
お申し込み、サポート、体験版の配布につきましてお休みさせて頂きます。
新規ご契約、継続のご検討をされている方がいらっしゃいましたら、
12/26(月)までにご連絡頂ければ幸いです。

年末年始のお休み中にご連絡を頂きましたものに関しまして、
2012年1月4日(水)より順次ご返答およびご対応させて頂きます。
どうぞよろしくお願いいたします。(U)

12月 1, 2011
kamata

イラストレータで株価チャート作成

鎌田です。ご無沙汰しております。
ここしばらく、Excelを入稿データとした案件が3つ程続いています。それをご紹介しようと思います。
今日ご紹介するのは、イラストレータでの株価チャート作成です。


株価チャート(ロウソク足)、移動平均線、売買高、信用取引残高です。

入稿データのExcelの値を拾って、イラストレータの座標値に変換してプロットしていきます。
座標値を計算して「グラフを書く」という点では難易度は高いものでははありません。
しかし、制作にあたって労したところは次の3点になります。

1. 「レイアウトが確定していない時点で設計を開始する」
 受注させていただいた時点では、グラフを書く領域のサイズが確定していません。
 サイズ変更に柔軟に対応できる必要があります。

2. 「株価の目盛単位は原則100円。10円未満の端数をださない。
   かつ、グラフ作成領域に合わせて、できるだけ大きくグラフを作成する」
 株価から最大値最小値は求められますが、それを3〜5分割して株価の目盛を作成します。
 そのときに、10円以下の端数を出してはならず、区切りのよい目盛にする必要があります。
 分割数、目盛の作成ルールはなく、これらについては全て制作側で決めないといけません。

3. 「信用取引残高は、白地と墨アミの二つの折れ線グラフを重ねるが…」
 墨アミのグラフを背後に、白地のグラフを前面に配置します。
 墨アミの数値が大きく、白地の数値が小さい場合、墨アミのグラフは表示されます。
 しかし、逆の場合は、白地の背後に墨アミありますので、墨アミのグラフが見えなくなります。
 この場合には、墨アミの折線グラフの「線部」のみを前面に表示し、アミを表示させません。

1について
 グラフ領域のサイズと原点の持ち方を工夫することで、対応できました。

2について
 これは大変苦労しました。分割数、目盛のルールはないので、グラフを作成してみての判断となります。
 日経会社情報が参考になりました。
 結局のところ、株価範囲が何円〜何円の場合、分割数幾つで、目盛幾つというテーブルを作成しました。
 グラフを作成させ、できるだけ大きいグラフとなるよう、値を調整していくことを繰り返しました。

3について
 このようなグラフを作成する場合どうしたら良いか?
 イラストレータの使い手に相談したところ「パスファインダー」を使用すれば良いことが分かりました。
 しかし、「パスファインダー」はスクリプトで制御できません。
 ネットでググっていくと、次の情報を見つけました。

“Can javascript execute pathfinder commands?”
http://forums.adobe.com/thread/433284

これに基づいてスクリプトを作成し、無事動作させることができました。

実際のスクリプトの動作はここをクリックして参照ください。

時間がかかっているのは、信用残高の読込み部分です。年52週の値を10年分、売買いでその2倍、約1000行を読込んでいるためです。株価、売買高は、12ヶ月の10年分、120行ですので、瞬間で終わります。

他のエクセル入稿の案件については、その制作が終わったタイミングで後日、紹介できればと思っています。
よろしくお願いします。

11月 16, 2011
inomoto

【InDesignCS4】【Excel2008】スクリプト2件ご紹介

InDesignCS4:全てのリンクをLinksフォルダの同名のファイルに置換

 InDesignのリンク画像は、絶対パスで管理されているらしく、親フォルダの名称を変更したり、別フォルダに移動したりすると、次にドキュメントを開いたときにリンクが切れてしまっている場合が多いです。
 リンクパレットから再リンクボタンをoptionクリックしてフォルダを選択し……とすると再リンクはできるのですが、ドキュメントの数が多いとそれも面倒なのでこのスクリプトを作成しました。

 ドキュメントがパッケージされており、最新の画像データがドキュメントと同一階層の「Links」フォルダにあることを前提にしています。
 ドキュメントを開き、このスクリプトを実行すると、全てのリンクをLinksフォルダの同名のファイルに再リンクします。

スクリプト名:全てのリンクをLinksフォルダの同名のファイルに置換.scpt

tell
application “Adobe InDesign CS4″
  tell document 1
    set myPath to file path as Unicode text
    set
linkPath to myPath & “Links:” as Unicode text
    
    set
allLinks to object reference of every link
    repeat with
aLink in allLinks
      tell aLink
        set filePath to file path as Unicode text
        set
itemName to item -1 of textToList(filePath, “:”) of me
        set
newLink to linkPath & itemName as Unicode text
        set
newLink to newLink as alias
        
relink aLink to newLink
      end tell
    end repeat
  end tell
end tell

—————————————————–
テキストをデリミタでバラしてリストにして返すルーチン
—————————————————–
on
textToList(aText, aDelim)
  set retList to {}
  set
oldDelim to AppleScript‘s text item delimiters
  set
AppleScript‘s text item delimiters to aDelim
  set
retList to every text item of aText
  set
AppleScript‘s text item delimiters to oldDelim
  return
retList
end textToList

▼新規書類にペースト  ▼カーソル位置にペースト  ▼ドキュメント末尾にペースト

Excel2008:タブ区切りテキストを全列文字列フォーマットで開いてxlsで保存

 UTF16BEのテキストを前提にしています。スクリプトを実行するとダイアログでファイルの選択を求められます。複数選択可能です。
 選択したファイルを全て、全列文字列フォーマットで開いて、テキストファイルと同じ場所にxls形式で保存します。saveAsXLSX内の、「–xlsx形式」のコメントがついている行をアンコメントするとxlsx形式で保存します。その際は「–xls形式」のコメントがついている行はコメントアウトしてください。

スクリプト名:タブ区切りテキストを全列文字列フォーマットで開いてxlsで保存.scpt
set tgtFiles to choose file with prompt “Excel形式で保存するテキストファイルを複数選択” with multiple selections allowed

repeat with tgtFile in tgtFiles
  set tgtFile to tgtFile as Unicode text
  
openTabTxt(tgtFile) of openTabTxtKitタブ区切りテキストを全列文字列フォーマットで開く
  
saveAsXLSX(tgtFile) of saveAsXLSXKitactive workbookを指定のフォルダに保存
end repeat

—————————————————–
タブ区切りテキストを全列文字列フォーマットで開く
—————————————————–
script
openTabTxtKit
  
  –
タブ区切りテキストを全列文字列フォーマットで開く
  on
openTabTxt(tgtFile)
    tell application “Microsoft Excel”
      set aDelim to tab
      set
aFormat to text format
      
      set
cntLabel to getCountLabel(tgtFile, aDelim) of me –テキストの一行目から,列見出しの数を取得
      set
fieldInfo to getFieldInfo(cntLabel, aFormat) of me –field infoを取得(全列text format)
      
      (*

      open text fileのパラメータ:
       data type delimited:区切り記号付き
       text qualifier text qualifier double quote:文字列の引用府=ダブルクオーテーション
       tab true:区切り文字=タブ
      
*)
      
open text file filename tgtFile data type delimited text qualifier text qualifier double quote field info fieldInfo with tab
    end tell
  end openTabTxt
  
  –
field infoを取得(全列統一限定)
  on
getFieldInfo(cntLabel, aFormat)
    tell application “Microsoft Excel”
      set fieldInfo to {}
      repeat with
i from 1 to cntLabel
        set the end of fieldInfo to {i, aFormat}
      end repeat
      return
fieldInfo
    end tell
  end getFieldInfo
  
  –
テキストの一行目から,列見出しの数を取得
  on
getCountLabel(tgtFile, aDelim)
    set tgtFile to tgtFile as alias
    set
inTxt to readFile(tgtFile) of me
    set
aLabel to paragraph 1 of inTxt
    set
aLabelList to textToList(aLabel, aDelim) of me
    set
cntLabel to count of aLabelList
    return
cntLabel
  end getCountLabel
  
  –
テキストファイル読み込み(UTF16限定)
  on
readFile(tgtFile)
    set aTxt to read tgtFile as Unicode text
    set
aTxt to aTxt as Unicode text
    
log aTxt
    return
aTxt
  end readFile
  
  –
—————————————————–
  –
テキストをデリミタでバラしてリストにして返すルーチン
  –
—————————————————–
  on
textToList(aText, aDelim)
    set retList to {}
    set
oldDelim to AppleScript‘s text item delimiters
    set
AppleScript‘s text item delimiters to aDelim
    set
retList to every text item of aText
    set
AppleScript‘s text item delimiters to oldDelim
    return
retList
  end textToList
  
end script

—————————————————–
active workbookを指定のフォルダに保存
—————————————————–
script
saveAsXLSXKit
  
  on
saveAsXLSX(tgtFile)
    set tgtFol to getParentFol(tgtFile) of me –親フォルダを取得
    
    tell
application “Microsoft Excel”
      tell active workbook
        
        –
ファイル名から保存名を取得
        tell
active sheet
          set aName to name
          –
set aName to replaceText(aName, “.txt”, “.xlsx”) of me –xlsx形式
          set
aName to replaceText(aName, “.txt”, “.xls”) of me –xls形式
          set
saveTo to tgtFol & aName as Unicode text
        end tell
        
        –
xlsx形式で別名保存
        –
save as active sheet filename saveTo file format workbook normal file format –xlsx形式
        
save as active sheet filename saveTo file format Excel98to2004 file formatxls形式
      end tell
      
close active workbook
    end tell
  end saveAsXLSX
  
  on
getParentFol(tgtFile)
    set tgtFile to tgtFile as alias
    tell
application “Finder”
      set tgtFol to parent of tgtFile
      set
tgtFol to tgtFol as Unicode text
    end tell
    return
tgtFol
  end getParentFol
  
  –
—————————————————–
  –
文字置換ルーチン
  –
—————————————————–
  on
replaceText(origText, targetText, changeValue)
    set delim to AppleScript‘s text item delimiters
    set
AppleScript‘s text item delimiters to targetText
    set
str1 to text items of origText
    set
AppleScript‘s text item delimiters to changeValue
    set
str2 to str1 as string
    set
AppleScript‘s text item delimiters to delim
    return
str2
  end replaceText
  
end script

▼新規書類にペースト  ▼カーソル位置にペースト  ▼ドキュメント末尾にペースト
ページ:«1...9101112131415...21»