面倒なことは自分でやらない

2010年9月 7日(火) 18:11 JST
開発環境はとにかくUSBメモリに入れてしまうようにしているので、pythonの場合はPortable Pythonを使うのが一番自然だと思います
pylonsも同じようにUSBメモリに入れてます。PythonのエディタはIDLEとかxyzzyとかemacsとかを使うことが多いですが、全然日本語資料のないpylonsなのでできたら適当に補完候補を出してくれると嬉しい。
ということで、PortablePythonについてくるPyScripterでgo-pylonsで作ったpython.exeを使うようにする必要があるのですが、PyScripterのメニューを見ても全然見当がつかなかったのですが
どれも同じことがかかれてますが、この辺りを参考に、vbsを書いてみました
</p>
<p>Dim objWShell</p>
<p>Set objWShell = CreateObject("WScript.Shell")</p>
<p>Set WshEnvironment=objWShell.Environment("VOLATILE")</p>
<p>Drive = left(WScript.ScriptFullName,2)</p>
<p>WshEnvironment.Item("PYTHONHOME")=Drive+"\pylons\mydevenv"</p>
<p>objWShell.Run Drive+"\PortablePython_1.1_py2.5.4\App\PyScripter.exe --PYTHON25 --PYTHONDLLPATH "+"'"+Drive+"\pylons\mydevenv\Scripts' %1 %2 %3 %4 %5" , 1, False</p>
<div>
Pylonsはpythonのフレームワークの一つです。日本語マニュアルみたいなのはhttp://wiki.pylonshq.com/display/pylonsja/Homeになるのかな
有名どころは他にあるのに、なんとなくコレを使ってみようと思ったのですが、pythonのフレームワークは、cakePHPとかcodeIgniterなどphpのフレームワークのようにコピーしたらOKな、「レンタルサーバー向き」では無い感じ。チュートリアルでもpaster serveとpylonsで用意してあるサーバーで動くよね。ということは書かれてるけどapacheでどうやったらいいのか?というところは不明。オススメサーバーあるみたいなのでしょうがないかな。と思いつつ。
ということで、windowsXPのxamppのapacheでhelloworldを動かしてみる
http://pylonshq.com/docs/en/1.0/gettingstarted/#installing
mydevenvとhelloworldは非公開スペースでOK
以下のpythonスクリプト(pylons.cgiファイル名適当)を公開スペースへ置く。
#!/home/protected/bin/python(ここはgo-pylonsで作ったpython.exeへのパス)
from paste.deploy import loadapp
wsgi_app = loadapp('config:mydevenv以下のhelloworld\config\deployment.ini_tmplへのパス(パス区切りは¥¥)')
import wsgiref.handlers
wsgiref.handlers.CGIHandler().run(wsgi_app)
http://wiki.pylonshq.com/display/pylonscookbook/Installing+and+running+Pylons+as+plain+CGI+on+a+webhostより
改行コードLFだけにして、一行目の区切りは¥じゃなく/、config:のところは¥¥にする。
以上
で
http://localhost/cgi-bin/pylons.cgi/で用意されてるpublicのページ
http://localhost/cgi-bin/pylons.cgi/hello/indexでhelloコントローラーindexメソッド
とりあえずこれで動いた。ということで
研修認定薬剤師の資格を取得&継続するためには研修に出席して受講シールを集める必要があって、そのなかで、各都道府県で開催される集合研修 の内容を自動取得して私が使っているGoogleCalendarに自動で表示させるためにiCalendar形式へ(結構強引に)変換したものを作ってみました。
一応、全国分を作ったので、良かったら使ってみてください。都道府県名をクリックするとiCal形式ファイルをダウンロードでき、
をクリックすると直接Googleカレンダーに登録できます。
geeklogの静的ページを外から編集(javascriptAIR) のコードを、別のRIA選択肢AppceleratorのTitanium に移植してみました。HTML、javascriptに加えてRuby,Python,phpのコードを使えるので、通信部分をそれに置き換えることも考えましたが、元々用意されてるもので対応できそうだったので、通信部分をTitaniumで用意されているものに変えるだけにしました。
まずはTitaniumはAIRでいうところのサンドボックスがないみたいなので、AIRで仕方なくeditareaを別のフレームにしていた部分を修正。
あとはAIRの通信部分をhttp://developer.appcelerator.com/question/14081/using-ajax-in-titanium のコード
に置き換えて修正。他にもこまごまとした修正ありつつ、ほぼ同じものになりました。
http://api.appcelerator.net/p/pages/app_page?token=M4mvwt34
にOSごとにインストールパッケージになってます(自動で作ってくれるので便利。でもwindows以外は未確認)
APIドキュメントなどは http://developer.appcelerator.com/documentation
geeklog標準の静的ページ編集画面がちょっとトライ&エラーで使うには画面遷移が使いにくいので、改良しようと思って、編集画面にjavascriptでゴニョゴニョ手を加えようと思いましたが面倒そうなので方針転換。
ブラウザは見る用、で、edit_area+jquery+AdobeAIR製(ActionScriptじゃなくjavascript)、geeklogのwebservicesを使って静的ページを編集するクライアントを作ってみました
内容取得(GET)、新規投稿(POST)、編集(PUT)、削除(DELETE)の中で、GETとPUT(存在しないsp_idで投稿すると新規登録になる)を実装。その他画面は必要最低限以外は未完成。
HTMLとjavascriptの範囲内で出来るはずなので、手を出して完成度を上げていってくださるとありがたいです。
editareaを表示してる部分についてはeditareaについてるサンプルを切り貼りしただけです edit_areaをckeditorに変えて、投稿URLやオプションを記事用にしたら、ブログ投稿用としても使えるハズ
前から気になっていたS21HTで常駐するActiveSync。気になりつつ、何度×しても復活してくるので、情報さがしてましたが、探し方が甘いのか、
wxGladeを使ってwxpythonのフォームをつくり、Frameにアイコンを設定。
それをcx_Freezeで固めた時にFrameに設定したicoファイルが読み込めないことを発見。exeと同じディレクトリにicoファイルを置けばいいんですが、cx_Freezeする時に使うファイルと同じようなものを使っているので紛らわしい。間違ってicoファイルをクリックしてオカシイということになっても残念
cx_Freezeのオプションでなんとかできるのかもしれないけど判らず、、、
で、何かの拍子に見つけたのが、pythonインストールディレクトリ¥Scriptsのimg2py.batという名前のファイルを発見。
imgをpyにする?ということで調べてみたら
http://www.wxpython.org/docs/api/wx.tools.img2py-module.html(公式)
日本語は
http://d.hatena.ne.jp/Megumi221/20080819/1219128129
http://python.matrix.jp/projects/wxPython/bounds.html#img2py
以下のようにすると、
img2py shape_image.png shape_image.pyイメージからpythonコードを生成します。
こうして作成されたコードはモジュールとして利用でき、 以下のように利用できます。
1 2 import shape_image bmp = shape_image.getBitmap()bmpはビットマップオブジェクト(wxBitmap)インスタンスです。
ということらしい。早速img2pyが吐き出したファイルを使って、wxGladeの吐き出したソースを変更
ついったーで、 http://twitter.com/keithr2/status/12632646326
PC内を探してみたところ、flashpalette.swfについては、たぶんこれかな?というものを発見したのでアップロード
http://www.portal-sight.com/gl/images/library/Flash/flashpalette.swf
元々、自作のemojiプラグイン?php_autotag?の入力補助に作ったものですが、いつの間にかemojiというタグは、、。幸か不幸か番号付けが同じだったみたいで、冒頭のツイートを頂戴しました。私がemojiプラグイン全体をいまさら公開したらややこしい事になるし、勝手な思い込みかもしれないけれど確実に作者の信頼感的にパチモンになりそうなので、とりあえずemojiタグ入力補助用のコレだけ公開。
ご自由に持って行って下さい
http://dspt.blog59.fc2.com/blog-entry-57.htmlで公開されていた絵文字画像を使っています。
二次配布される時は当サイトやhttp://dspt.blog59.fc2.com/blog-entry-57.htmlのサイトへのリンクをしていただけるとうれしいです
以下のお約束守れない方は使わないほうがいいと思います
全て自己責任。これを使う事によるトラブルその他一切の事に関してhttp://dspt.blog59.fc2.com/blog-entry-57.htmlへ問い合わせしないように。私への問い合わせはしていただいても構いませんが、一般常識のある人からで私が答えられる内容で本職が立て込んでない時(で私が興味を持つ内容なら優先的に)は、お答えできると思います。
著作権は放棄してません。(放棄するのはいつでもできますので、まぁそのうち)
ついでにGPLじゃありません。(ソースコードを一緒に公開してないので一目瞭然ですね。ソースコードをリファクタリング的な事したら公開するかも)
http://geeklog.crimsonj.net/article.php/20100426114150457で紹介していただきました
いまさらですが、windowsmobile機を購入したので、携帯ではできないことをやれないかと思って、python周りを調べてみたところ、
uxpythonの情報があまりにも見つからないので、ちょっと苦労しましたが、