Pages

24 December 2012

Python + PaaS(Salesforce.com/Force.com)

Salesforce.com社は言わずと知れたクラウドなサービス提供会社。そのPaaSサービスForce.comの開発用アカウントは無料で使える。開発用アカウントで提供される環境はあくまでも開発用、一部本番環境とは仕様が違う。しかし、お試しとしては悪くない。

Force.com 上での開発は、Apexでやるのだが、外部システムの連携とか日本ではありがちな細かな処理とかは厳しかったりする。そんな時のために(?)、外部からSOAP/RESTなどを使ってごにょごにょ出来る様になっている。ユーザが多いだけあって、便利なライブラリなどがそこら中にあるので、お手軽にできる。

今回は、環境原則依存しないexeを作りたかったので、PythonとBeatBoxにpy2exeを使うという方法で遊んだ。まぁLibreOfficeでもPython使えるからマクロとして使えるかも〜って気持ちがなかった訳ではないw

BeatBoxは、Salesforce.comの開発者wikiでも紹介されていたPythonのライブラリ。ライセンスはGPL。
2010年ぐらいまでは、Google Code をっ使っていたっぽいけど、今は、GitHub で開発しているっぽい。pypiやGoogle Codeにあるのは、パートナー WSD のSOAP API 20対応版。Salesforce.comのサイクルだと、最短3年でAPIのサポートはお隠れになるので、GitHubにある最新版を使った方が良いかと思う。

なおBeatBoxは、proxyをサポートしていないのでproxyへの対応が必要な場合は、salesforce-python-toolkitを検討した方が良いかも。

さて、使い方だがそれ自体は簡単。デモ(demo.py)があるのでそれを見れば分かると思う。サンプルの一部をもってくると以下の様になる。
sf = beatbox._tPartnerNS
svc = beatbox.Client()
svc.login("ユーザID","パスワード")
dg = svc.describeGlobal() #オブジェクト名を取ってくるAPI
for t in dg[sf.types:]:
print str(t)

基本的にAPIをマッピングしているだけなので、APIは、SOAP APIの説明書 を参照すればいい。データ取得時に使うSOQL構文については、ここを参照すればよい。

SOQL自体は原則的にSQLなので特に困らなかったのだが、日時指定方法で少し悩んだ。ここに書いてあるのだが。UTCで、YYYY-MM-ddThh:mm:ssZと書くか、日本時間でYYYY-MM-DDThh:mm:ss+09:00って書く必要があるみたい。

注意した方が良さげな所としては、
* 今回は必要なかったからちゃんと試していないけどレコード内の改行あたりは気をつけた方が良さげな雰囲気。
* 本番用アカウントで使う前にsandboxで試したい場合は、beatbox.py内のinitにあるURLの変更を忘れずに。

ちなみに、以下のようなビデオを今頃見つけたのでリンクしておく。
Intro to Beatbox part 1-3:






9 December 2012

LibreOffice + Java + Mac OS X

LibreOfficeの大半ではJREは必要ないのだが、一部機能ではJavaが使われている。
そのため、JREが必要である。LibreOfficeからJavaが認識されておらず、とある機能が使えなくて困ったのだが...今日解決が出来た!

ユーリティのJAVA設定では入ってるよと表示されるし、ターミナルからVMは動く、Eclipseも問題なく動作する。しかし、LibreOfficeからは認識されない。

LibreOfficeのオプションダイアログからJavaを選択しても一覧に何も表示されないし、いろんなパスを指定してもCould not found...

Google 先生に聞いてみても 他の人も同じ問題に遭遇しているよ!とは、答えてくれるのだが、解決策にたどり着かない。

しょうがないので、ソースをチラ見しながら探索していると

/System/Library/Frameworks/JavaVM.framework/ にあるリンクが壊れているのを発見。

AppleでJavaのロケーションを変えた時にでも誰かがミスったのかしら?

とりあえずこのリンクを手で再作成。最新アップデートをダウンロードしてきて、再インストール。よしよし、リンクは壊れない

これで、Apple版JREは、検出される様になりました。

Oracle JREは検出されないけど ま、いっか♪

2 December 2012

iPhoto と Picasa

マックを再度使い始めて数ヶ月。写真管理には、iphotoを使ってる。

Picasaにアップロードしようと思ったらどうも方法が見当たらない。共有ボタンに、flickrやfacebookはあるが......

オフィシャルサイトには、なんか出来るツールがこっちにあるよって書いてあるけど
リンクはあるもののページがないと言われる。はて?

  • Starting today, the Picasa Web Albums Uploader for Mac and Picasa Web Albums Plugin for iPhoto will no longer be available for download. People can continue to use the uploader and plugin if they are installed. However, we’ll no longer maintain these tools. We strongly encourage people to download Picasa 3.9 for Mac, which includes upload and iPhoto import features.
    http://googleblog.blogspot.jp/2012/04/spring-cleaning-in-spring.html
 で、オフィシャルブログを見たらこんな事が書いてある。今使っている人はそのまま使えますが...だとさ。良い方法が見つけられないのでPicasaをインストールしてPicasaからアップロードした。