Archive for the ‘Python’ Category
Sednaを使う
XMLデータベースのSednaをインストールしました。 以下、Pythonで使えるようにするまでのインストール手順の覚書。
- Sednaのインストール。
- 利用するプラットホームのバイナリをダウンロードしてインストール。
- PythonからSednaを利用するためのAPIをインストール
- 僕は、Zope3からも簡単に使いたいと思ったので、zif.sednaを使うことにした。
- http://pypi.python.org/pypi/zif.sedna/
- easy_install zif.sedna でインストールできます。しかし・・・
- プラットホームがWindowsだったので、苦労しました。
- 2.1.2項のコマンドをする前に、以下のものをDLしてインストールして置く必要があります。
- libxml2-pythonのインストール
- 以下のサイトから自分のPythonバージョンのものをDLしてインストールします。
- http://users.skynet.be/sbi/libxml-python/
- lxmlのインストール
- 以下のサイトからwindowsパッケージをDLしてインストール
- http://pypi.python.org/pypi/lxml/1.3.4
- 2.1.2項のコマンドを実行。
- インストール終了。
- 僕は、Zope3からも簡単に使いたいと思ったので、zif.sednaを使うことにした。
- Sednaの操作
- Sedna起動
- se_gov
- Sedna終了
- se_stop
- DB作成
- se_cdb 作成データベース名
- DB削除
- se_ddb 削除したいデータベース名
- DBの起動
- se_sm 起動したいデータベース名
- DBの終了
- se_smsd 終了したいデータベース名
- Sednaターミナル起動
- se_term データベース名
- Sednaターミナル 基本コマンド
- ヘルプ
- \?
- コミット
- \commit
- ロールバック
- \rollback
- 直近のクエリの実行時間
- \showtime
- ターミナルでの変数のセット
- \set
- ターミナルでの変数の解放
- \unset
- ターミナル終了
- \quit
- ヘルプ
- Sedna起動
- Sedna便利ツール
- ターミナルで作業をするのは大変とういう方に、GUIのツールがあります。
- SednaAdmin
- Javaでできているので、適当なところに解凍してSednaAdmin.jarを実行すればよい。
Windows Mobile 開発再開です。
WM → UIQ → S60 → (Android) とモバイルOSを使ってみた。
この中で、使いやすいのは、WMとS60だった。
その中でも、個人的に開発しやすい(イメージを形にしやすい)のがWMなので、
やっぱりWMでソフト開発を再開します。
たまに、Python S60でモックの作成とかはするけどね。
ちなみに、PythonS60は、APIが優れていて、数行のコードでかなりのことができます。
手始めに、モバイルショットのバージョンアップからです。
モバイルショットでご要望等がありましたらお待ちしております。
GPS NMEAフォーマット関連
フォーマットの説明が載っているサイト
NMEA-0183フォーマット
http://bg66.soc.i.kyoto-u.ac.jp/forestgps/nmea.html
pythonのオブジェクトの型判定。
会社で型判定のやり方について新たに教えてもらった。
以前のエントリにあるように、私はType()を使って型の判定をしていた。
しかし、これは古いやり方らしい。
今は、isinstance()を使うようだ。
この場合、モジュールをインポートしなくていいみたい。
また、文字の判別のとき、str,unicodeと何種類かの型がある。
従来は、orで判定が必要だったが、isinstanceでは、
isinstance(b,basestring)で判定が出来る。
>>> a=’abc’
>>> b=[1,2]
>>> type(a)
<type ‘str’>
>>> type(b)
<type ‘list’>
>>> isinstance(a,str)
True
>>> isinstance(b,str)
False
>>> isinstance(b,list)
True
>>> c=u’def’
>>> isinstance(c,str)
False
>>> isinstance(c,unicode)
True
>>> isinstance(c,basestring)
True
plone.app.blobを使ってみた。
以前にplone.app.blobのことを書いてそのままでした。やっと、利用してみました。
Plone3.1.2でplone.app.blobを使ってみました。サイトの説明されているものを試してみました。
その場合、ATFileをマイグレーションして、ATFileで保存したファイルはファイルシステムに保存されます。
これは、使えそうです。
まずは、buildout(上記リンクのInstlation参考)でセットアップして、そのセットアップされたものを参考にすれば、自分オリジナルのコンテンツにも活用できるようになりそうです。
ZEOのセットアップ例も掲載されています。
blobによって、Data.fsが大きくなるのを軽減することができるでしょう。
zpublisherのエンコード
全角―等の文字がデータ内にある時、出力文字コードをshift_jisに指定した場合、エラーとなりました。
これを回避するには、以下のサイトが参考になるかも。
http://inside.ascade.co.jp/node/44
まずは、文字集合にある文字列に置き換えてから、zpublisherに渡るようにする必要があるようです。
型の判定
Pythonはとあるオブジェクト型と同じ型の新しいオブジェクトをtype()関数で取得できる。
このオブジェクトの型はなんだろう?と言ったとき、この関数を使うといいのかな?
たとえば、aにリスト型の値を入力する。
>>> a=['a','b']
type()関数でaを見てみる
>>> type(a)
リスト型だとわかる。
<type ‘list’>
では、このaの型が何か知りたいとき、
以下にするといいらしい。
まず、モジュールをインポートする。
>>> from types import *
aがint型か調べてみる。
>>> type(a) is IntType
違うようだ。
False
では、リスト型か調べる。
>>> type(a) is ListType
リスト型とわかった。
True
以上のようにすることで型の判定ができた。
開発合宿に行きました。
土曜日に日帰りですが、深谷へ開発合宿に行ってきました。
今回は、Pythonを使って、Bluetooth機器と通信をするための学習をしました。
ライブラリとして、PyBluezを使いました。
付属のサンプルコードをお手本に学習を進めていきました。
機器の探索→接続→接続断までできました。
次は、ファイル転送をやってみたいと思います。
Plone3でBlobが使える
PythonのサイトにてZODBにまつわるものを探していたらこんなのを見つけました。
ZODB 3.8 blob support for Plone 3.x
おぼえがきでした。
週末にテストしてみよう。
Plone 3.0.1がリリースされました。
Plone3.0.1がリリースされました!
3.0リーリース後、ユーザーの方々が発見したいくつかの問題をクリアしたもののようです。
また、先日、お伝えしたLinguaPlone2.0Alphaは、この3.0.1以上のバージョンから対応と記述がありましたので、これで試すことが出来ます。
Python インストール
先日、iBookにMandriva 2005 Limited editionをインストールしたのでPythonをインストールしました。
標準では、2.4がインストールされていますが、より新しい2.4.2をインストールします。
Python.jpから2.4.2のソースをダウンロードします。
ついで、Python2.4.2をインストールするディレクトリを作成します。
cd /usr/local
mkdir python2.4.2
chmod 755 python2.4.2
インストールを開始します。
./configure –prefix=/usr/local/python2.4.2
make
make test
make install
インストールの終了です。バージョンの確認をします。
/usr/local/python2.4.2/bin/python -V
Python 、Zopeのバージョンアップ
PythonとZopeのバージョンをアップしました。
Pythonを2.4.2にして、Zopeを2.8.3にしました。
これで、Plone2.1がインストールできます。
poファイルをmoファイルに変換する
Windowsでpoファイルを編集するときに注意することは、
poファイルをmoファイルに変換するには、msgfmt.pyを利用する。
python msgfmt.py 変換ファイル名.po
とすれば、スクリプトがmoファイルを生成してくれる。
なお、このmsgfmt.pyファイルは、以下のパスに入っている。
{Python_path}\Tools\i18n
ArchGenXMLで独自のViewを作る
UML-tool & ArchGenXMLを使って、独自のコンテントタイプを作れることはわかった。しかし、標準のViewは、basicviewです。これは、ただ、プロパティ名:値を並べているだけなので見た目があまりよくないです。
View画面を独自デザインで見やすく・リッチに見せたい時は、UML-toolでメソッドを利用します。独自Viewを作成したいクラスでメソッドを追
加し、そのメソッドのステレオタイプに<<view>>を追加すればOKです。ArchGenXML
が空のページテンプレートを作成します(メソッド名.ptファイルがskin folder
内にできます)。後は、このページテンプレートファイルをTALをもちいて記述すれば独自のViewができます。
本日は、このファイルが生成できるところまで確認しました。
ArchGenXML
ArchGenXMLは、XMIでエクスポートしたUMLのクラスをArcheTypesベースのプロダクト(本当にベース部分です)へ変換を行うPythonプログラムです。
先日、plone.jpの研究会に参加した際、知ることができました。実際、使ってみたところ、初心者にとって、ArcheTypesのことを知るにはとっても便利なツールと思いました。plone研究会でも話しに出ていましたが、Filemakerでカードを作るイメージです。