わたしのようなWindowsのネイティブアプリについては何も知る気がない人にとって、
Titanium Desktopはすばらしいのですが、Windows環境でテスト実行するとき、ちょっと問題がありました。
当方WinXP SP3で↓とまったく同じ状況で、同じ方法で解決できました。
http://developer.appcelerator.com/question/125237/signal-caught-3-after-replacevistaiconexe
方法は、一旦クラウドビルドしてインストールしてみるだけ。
なんかその後は、普通にコマンドでビルドしたり、テスト実行できるようになりました。
ちなみにTitanium DesktopのWindows版は常に32ビットで動くらしいです。
あと、Macの場合は普通にビルドするとPowerPCでも動いて、おお!と思いました。
そんでまあ、とりあえず動いたから深追いはしないです。
2012年3月26日月曜日
Titanium Desktopのローカルビルドで.appとか.exeを作る方法
Titanium Desktopなんかを使う機会がありました。
HTMLとJavascriptで動く簡単な動画ビューアなんですが、
ネイティブアプリにしたいって話なんです。
とにかく手軽にやりたいと思ったら、
AdobeのAirかTitanium Desktopくらいしか候補がなかったのです。
AirはどうしてもAirを入れる必要があったので今回はTitanium Desktopで。
問題は情報があんまりないってことですかね…。
それで、なんでローカルビルドとかわざわざ言うかって話ですが、
開発環境のTitanium Studioでビルドしようとすると、
いきなりクラウド環境でビルドし始めます。
わたくしあんまりのんびり待ってられないタイプなのでローカルでさくっとしたいです。
ただクラウドビルドだと、MacでWindowsビルドが作れるとかいうメリットがあるかもです。
で、無駄話はここまでで、以下ビルドコマンドです。
開発環境はインストールしてる前提ですよ。
for Mac
↓こちらはWindowsマシンで実行してくださいね。
for Win
まあ、一応できたので。
HTMLとJavascriptで動く簡単な動画ビューアなんですが、
ネイティブアプリにしたいって話なんです。
とにかく手軽にやりたいと思ったら、
AdobeのAirかTitanium Desktopくらいしか候補がなかったのです。
AirはどうしてもAirを入れる必要があったので今回はTitanium Desktopで。
問題は情報があんまりないってことですかね…。
それで、なんでローカルビルドとかわざわざ言うかって話ですが、
開発環境のTitanium Studioでビルドしようとすると、
いきなりクラウド環境でビルドし始めます。
わたくしあんまりのんびり待ってられないタイプなのでローカルでさくっとしたいです。
ただクラウドビルドだと、MacでWindowsビルドが作れるとかいうメリットがあるかもです。
で、無駄話はここまでで、以下ビルドコマンドです。
開発環境はインストールしてる前提ですよ。
for Mac
$ cd path/to/tiapp.xmlがある場所 $ ~/Library/Application\ Support/Titanium/sdk/osx/1.1.0/tibuild.py -t bundle -n -a ~/Library/Application\ Support/Titanium/sdk/osx/1.1.0/ .
↓こちらはWindowsマシンで実行してくださいね。
for Win
C:\> cd path/to/tiapp.xmlがある場所 C:\> "C:\Documents and Settings\(ユーザ名)\Application Data\Titanium\sdk\win32\1.1.0\tibuild.py" -t bundle -a "C:\Documents and Settings\(ユーザ名)\Application Data\Titanium\sdk\win32\1.1.0" -d "C:\Documents and Settings\(ユーザ名)\My Documents" .
まあ、一応できたので。
djangoのrawでSQL実行したときにpaginationで困るのを解決
こういう時代ですけど、SQL書かないとって時ありますよね。
Djangoの場合だと、ModelName.objects.raw(SQL文) 的なメソッドが使えます。
まあ、この辺に書いてありますよね。使えるのは、Django1.2以降です。
https://docs.djangoproject.com/en/dev/topics/db/sql/#performing-raw-queries
通常Djangoで ModelName.objects.all() と .filter() とか使うと
QuerySetって人が返ってきますが、この場合は、RawQuerySet という人が返ってきます。
ちょっと困ったことになるのが、
PaginationしたいときにRawQuerySetにcountメソッドがないとか言い出すあたりです。
そんなときはとりあえず、listメソッドでlistにしちゃいましょう。
テンプレでforでまわして値表示するくらいなら困らないです。
まあ、これでいいんじゃないかな。
Djangoの場合だと、ModelName.objects.raw(SQL文) 的なメソッドが使えます。
まあ、この辺に書いてありますよね。使えるのは、Django1.2以降です。
https://docs.djangoproject.com/en/dev/topics/db/sql/#performing-raw-queries
通常Djangoで ModelName.objects.all() と .filter() とか使うと
QuerySetって人が返ってきますが、この場合は、RawQuerySet という人が返ってきます。
ちょっと困ったことになるのが、
PaginationしたいときにRawQuerySetにcountメソッドがないとか言い出すあたりです。
そんなときはとりあえず、listメソッドでlistにしちゃいましょう。
テンプレでforでまわして値表示するくらいなら困らないです。
products = Product.objects.raw("SELECT * FROM product_product")
products = list(products)
まあ、これでいいんじゃないかな。
2012年3月2日金曜日
djangoのquerysetをランダムに並べ替える
商品をランダムに並べ替えて10個だけ表示したいんです。
MySQL的にやる方法
randomモジュールを使う方法
短い納期には短いコードで勝負だ。
効率を求めるなら時間と金をくれ。
とりあえず効率の話はここに書いてあったです。
http://elpenia.wordpress.com/2010/05/11/getting-random-objects-from-a-queryset-in-django/
まあ、そんなとこです。
MySQL的にやる方法
products = Product.objects.order_by('?')[:10]
randomモジュールを使う方法
import random products = random.sample(Product.objects.all(), 10)
短い納期には短いコードで勝負だ。
効率を求めるなら時間と金をくれ。
とりあえず効率の話はここに書いてあったです。
http://elpenia.wordpress.com/2010/05/11/getting-random-objects-from-a-queryset-in-django/
まあ、そんなとこです。
2012年2月22日水曜日
pyflakes.vimでリアルタイムダメ出しをもらう
VimでPython書いてる人しかうれしくないですけど、
pyflakes.vimというvimの拡張があります。
http://www.vim.org/scripts/script.php?script_id=2441
インストール方法、解凍したファイルの中身のftpluginの中身を
~/.vim/ftplugin 的なところに突っこむだけです。
(Windowsの人とかはしりません)
そしたら.pyなファイルを開くと、importしてるのに使ってないとか
変数に代入したのに使ってないとか、文法間違ってるwwwとか
完全に情弱とか教えてくれます。
ちなみに、Python2.5以上が使える環境で、
VimがPythonサポート付きでコンパイルされてないと多分だめです。
あとftpluginをしばらくftppluginだと思っていて、
ftp関係ねーじゃんと勘違いしてましたね。
まあ、どうでもいいけど。
pyflakes.vimというvimの拡張があります。
http://www.vim.org/scripts/script.php?script_id=2441
インストール方法、解凍したファイルの中身のftpluginの中身を
~/.vim/ftplugin 的なところに突っこむだけです。
(Windowsの人とかはしりません)
そしたら.pyなファイルを開くと、importしてるのに使ってないとか
変数に代入したのに使ってないとか、文法間違ってるwwwとか
完全に情弱とか教えてくれます。
ちなみに、Python2.5以上が使える環境で、
VimがPythonサポート付きでコンパイルされてないと多分だめです。
あとftpluginをしばらくftppluginだと思っていて、
ftp関係ねーじゃんと勘違いしてましたね。
まあ、どうでもいいけど。
2012年2月19日日曜日
DjangoのモデルをJSONエンコードしたいときにリレーション先を…
DjangoのモデルをJSONエンコードしたいときはこうすればいいんですが、
リレーションとかしちゃってると、そのモデルのpkなんかが出ちゃって困ることが多いです。
ちなみにお前の情報信じられないって人は、
ここ読めば書いてあるので、この先全部飛ばしても大丈夫です。
方法としては、リレーション先のモデルに、
とか書くとpkのかわりにnameなんかを返してくれたりしますよ。
飛ばさずに読んで頂いてありがとうございます。
まあ、その程度です。
リレーションとかしちゃってると、そのモデルのpkなんかが出ちゃって困ることが多いです。
ちなみにお前の情報信じられないって人は、
ここ読めば書いてあるので、この先全部飛ばしても大丈夫です。
方法としては、リレーション先のモデルに、
def natural_key(self): return self.name
とか書くとpkのかわりにnameなんかを返してくれたりしますよ。
飛ばさずに読んで頂いてありがとうございます。
まあ、その程度です。
DjangoのモデルをJSONエンコードしたいとき
すっかり忘れてて3分程悩んだので。
とかすると、is not JSON serializable 的な感じで怒られるので、
こんな感じにするといいかも。
まあ、いまさらかも。
import json json.dumps(ModelClass.objects.all())
とかすると、is not JSON serializable 的な感じで怒られるので、
from django.core import serializers
json_serializer = serializers.get_serializer('json')()
json_serializer.serialize(ModelClass.objects.all(), ensure_ascii=False)
こんな感じにするといいかも。
まあ、いまさらかも。
登録:
投稿 (Atom)