1月 6, 2014
kamata

2014年もよろしくお願いします

明けましておめでとうございます。
昨年は巳年でPythonを学習しました。
今年は午年で何をしようかと思っています。
本年もよろしくお願いします。
12月 25, 2013
kamata

【python】pythonでApplescript、引数(args)はどう渡すのか?

昨日、2時間悩んだのでメモっておく。

http://stackoverflow.com/questions/2940916/how-do-i-embed-an-applescript-in-in-a-python-script

のサイトの下に、

from subprocess import Popen, PIPE

def run_this_scpt(scpt, args=[]):
     p = Popen(['osascript', '-'] + args, stdin=PIPE, stdout=PIPE, stderr=PIPE)
     stdout, stderr = p.communicate(scpt)
     return stdout

#Example of how to run it.
run_this_scpt("""tell application "System Events" to keystroke "m" using {command down}""")

#Example of how to run with args.
run_this_scpt('''
    on run {x, y}
        return x + y
    end run''', ['2', '2'])


とあったので、やってみたが、エラーとなった。調査、試行錯誤すると、上記はpython2系の場合は動作する。
私の環境は3.3。どうするかというと、

stdout, stderr = p.communicate(scpt) の部分を

stdout, stderr = p.communicate(bytes(scpt, 'UTF-8')) とすると上手くいきました〜

12月 1, 2013
kamata

【AppleScript】MavericksでSecurity API failed with error -60008

弊社製品、PDF検版ツールBeforeAfterは、AppleScriptで作られていて、10.5〜10.8まで、問題なく動作しています。ところが、10.9 Mavericksで動作させたところ、問題が発生しました。

4, 5ページの処理では問題ありませんが、8ページ位で処理で止まってしまいました。
調査をすると、do shell scriptの連続処理の箇所で、8ページ程度処理するとSecurity API failed with error -60008 が発生します。

この発生タイミングがよく分かりません。少し修正し、30ページの処理が上手く行き、これで大丈夫だろうと思って、160ページの処理を行うと、また発生するといった具合です。いろいろと試行錯誤を繰り返しました。

処理途中の状況を見るため、あるdo shell scriptの前に、display dialog を入れると、なぜかこのdo shell scriptのコマンドでエラーは発生しなくなりました。
いちいちダイアログを表示させるわけにもいかないので、どうしたものかと考えました。delay 1 ではだめでした。

で、シスログを書き出すよう、下記のようなコマンドを、do shell scriptの前に挿入しました。

do shell script “logger -p user.notice -t BeforeAfter @message”

これで、エラーが発生しなくなったのです。1000ページの処理を行っても問題が出なくなりました。

何故、Mavericks で Security API failed with error -60008 が発生するようになったのか? 何故 display dialog やシスログで回避できるのか? 原因は不明なのだが、とにかくこれで乗り切ったので報告しておきます(この調査〜対策まで3日もかかりました〜)。

11月 13, 2013
kamata

【python】弊社ツールサイトにopenCVポータブルを登録しました

弊社のツールサイト、www.web-cte.co.jp/tools/ にLIB_openCVという名称で登録しました。

取得可能となっております。OS10.7〜10.9で動作を確認しています。

OpenCV-2.4.2.tar と 動作させるAppleScriptを同梱しています。

11月 8, 2013
kamata

【EPUB】KADOKAWA-EPUB制作仕様フォーマットで1ソースマルチユースができない!

現在弊社の作成するEpubは、電書協フォーマットには準じていない。
ただし、Kindle、kobo、iBooksに対して1ソースマルチユースのepubを制作しているのだ。

電書協フォーマットが業界共通フォーマットになりつつあるので、切り替えるタイミングを常に計っているのだが、今回、KADOKAWA-EPUB制作仕様が公開されたので、これだ!と思いトライしてみた。

結果は、kobo端末で、表紙など画像が小さく表示されてしまった。
KADOKAWA-EPUB制作仕様の作成者に問い合わせてみたが、その通りのようだ。残念だ。

通常の電書協フォーマットでは、iPhone5の16:9の縦長画面だと、画像がセンタリングされないという問題がある。

MCBookではセンタリングできるような電書協フォーマットを書き出すのだが、Kindle Fireで表紙はセンタリングされるが、表紙以外の画像ページは白紙出力になる。うーん….。

現在の問題点がクリアされないと、電書協フォーマットに切り替えられないなー。

11月 5, 2013
kamata

【python】openCVをportable化する

OS10.7〜10.9のpythonは2.7でnumpyもインストール済であった。
なので、openCVをportable化して、どのOSXからでもopenCVを使えるようにしたいと思った。

AppleScriptで、コーディング0行で、appを作ります。LIB_OpenCV.appとします。
アプリケーションフォルダの直下に配置します。
Contentsフォルダの下に、Libraryフォルダを作り、そこにopenCVをインストールします。

cmakeのパラメータは、こんな感じ
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/Applications/LIB_OpenCV.app/Contents/Library \
-D BUILD_NEW_PYTHON_SUPPORT=ON \
-D PYTHON_LIBRARY:FILEPATH=/System/Library/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib \.

PREFIXを/Applications/LIB_OpenCV.app/Contents/Libraryにしてるだけです。

さて、実行してみます。デスクトップにOpenCV-2.4.2を解凍したフォルダを置き、
その中のsamples > python2 > edge.pyを実行します。

AppleScriptは、こんな感じ

set cmnd1 to “export PYTHONPATH=/Applications/LIB_OpenCV.app/Contents/Library/lib/python2.7/site-packages; ”
set cmnd2 to “export PKG_CONFIG_PATH=/Applications/LIB_OpenCV.app/Contents/Library/lib/pkgconfig:$PKG_CONFIG_PATH; ”
set cmnd3 to “export DYLD_FALLBACK_LIBRARY_PATH=/Applications/LIB_OpenCV.app/Contents/Library/lib:$DYLD_FALLBACK_LIBRARY_PATH; ”
set cmndPy to “python ” & “/Users/yukio/Desktop/OpenCV-2.4.2/samples/python2/edge.py”
set theCmnd to cmnd1 & cmnd2 & cmnd3 & cmndPy
do shell script theCmnd

実行するとこんな感じ

作った、LIB_OpenCV.appは、弊社ツールサイトからダウンロードできるようにします(ちょっと待ってくださいね)

実はこうしてポータブル化したものに、ImageMagick、mecab、OpenJTalk、xpdfがあります。
これらも近々、弊社ツールサイトからダウンロードできるようにします(ちょっと待ってくださいね)

10月 30, 2013
kamata

【python】openCVをOSX10.6にinstallする

openCVのインストール、いろいろと手こずりましたが、なんとかできましたのでメモッておきます。

まず、基本はこのページの通りです

http://www.guidefreitas.com/installing-opencv-2-4-2-on-mac-osx-mountain-lion-with-python-support

私の環境としは既に
Xcode、Command Line Toolsはインストール済です。
openCVは、依存するライブラリが有りますが既にほぼ揃えています。

ハマったことは、
最新のopenCV、2.4.6ではmake時にエラーが出る
CMakeのgui版だと、UIで設定したパラメータの通りに、configureのパラメータが生成されませんでした。

そこで、openCV2.4.2を取得
CMakeもgui版を止め、コマンドラインから出来るようにしました。

手順としては
Python2.7.3を設定した
numpyのモジュールをインストールした
openCV2.4.2を取得した
openCV2.4.2を下記のようにしてインストールした

cmakeのビルドパラメータは以下の様にする

cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D BUILD_NEW_PYTHON_SUPPORT=ON \
-D BUILD_EXAMPLES=ON \
-D PYTHON_LIBRARY:FILEPATH=/Library/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib

cmake後に出力されるレポートで、PYTHONのライブラリが上記のようになっていることを確認する。

makeして
sudo make install

echo “export PYTHONPATH=/usr/local/lib/python2.7/site-packages/:$PYTHONPATH” >> ~/.bash_profile

と環境変数を設定して
ターミナルから、~$ python import cv2でエラーが出なければOKです。

10月 30, 2013
kamata

【EPUB】固定レイアウトEpubを作ってみた―その後

書かなきゃなーと思いつつ、日にちが経ってしまいました。

以前、固定レイアウトEpubの記事で、”com.apple.ibooks.display-options.xml”ファイルを作って、iBooks用のEpubが出来た旨を書きました。(https://www.web-cte.co.jp/kozakuralab/?p=1439

しかし、その後、Epubを作っていくうち、このファイルは不要になったということが散見されていて、気になっていました。

調べると、現在では、com.apple.ibooks.display-options.xmlファイルは不要で、代わりに、

<meta property=”ibooks:fixed-layout”>true</meta>

をメタ情報に記述すれば大丈夫になっています。

前回の説明で、

prefix=”ibooks: http://vocabulary.itunes.apple.com/rdf/ibooks/vocabulary-extensions-1.0/#”

と#がありましたが、それも取ってください。

後、iBooksは画像サイズが200万ピクセルを越えてはいけなかったのですが、これもレティーナディスプレイのためか、最大値の制限が変わったようです。

現在は、320万ピクセルとなっています。

8月 29, 2013
kamata

【EPUB】iBooksの固定レイアウトでportrait、landscapeの混在はできない

固定レイアウトのEpubで、グローバルの設定では、landscapeで、
一部のページをportraitにできるかという問い合わせが入った。

Epub3の仕様では、できるのは知っていたが、実際はどうなの? と
いうことで試してみた。

結果は混在はできなかった。

その後さらに調べると、海外のサイトにも、こんな情報があった。

http://apex.infogridpacific.com/df/epub3packaging-flo.html

これによると、Readiumはできるとなってますが、
properties=”page-spread-left”;
properties=”rendition:page-spread-center”;
properties=”page-spread-right”;
もiBooksでは動かないとなっている。2012/11の情報だが。

8月 28, 2013
kamata

【EPUB】Javascriptを難読化する

インタラクティブな固定レイアウトEpubを試作したのだが、
お客様のiPadで見てもらうことになったとき、epubを解凍してしまえば、
Javascript、CSSが丸見えになります。

マーケットに出せば、DRMかかるのだろうけど、どうしようかと思ってました。
いろいろとググったところ、Javascriptを暗号化はできなそうでしたが、難読化はできそうでした。
試したところ、ぱっと見てソースを推測できないので、これでいこうと思っています。

下記を参考にしました。
packer

http://dean.edwards.name/packer/

YUI Compressor

http://www.refresh-sf.com/yui/#output

UglifyJS

http://marijnhaverbeke.nl/uglifyjs

(厳密に言えば、難読化したファイルも旧に戻せるそうです)

ページ:«12345678...21»