Python

2009年10月10日 (土)

簡易エディタ PyMyEditor を 001_4 に更新しました。

2009-10-10(土)晴れ

 簡易テキストエディタ「PyMyEditor」を 001_4 に更新しました。メインは、UTF-16のファイルをオープンするときにでるバグの対策です。

  ・Show_LF = 1(改行を表示オプションあり)で、UTF-16のテキストを開くと文字化け
   する事があるのを対策しました。

  ・下記をグローバル変数、または設定ファイルで指定できるようにしました。
    (1)Show_LF = 1(改行を表示オプションあり)のとき、オープンするファイルの
       改行文字が CR キャラクターだけでも改行になるようにする。
       (通常は LF 、CR+LF のみ)

   (2)出力するときの改行文字を指定できるようにしました。ファイル毎にメニューで
     指定ではなく、設定ファイルでの指定です。
      (通常は、UTF-8/UTF-16 では LF、Shift-JIS では CR+LF)

 モジュールは「Python スクリプト 雑記」の「17.簡易テキストエディタ PyMyEditor」に貼り付けました。

 

| | コメント (0) | トラックバック (0)

2009年10月 6日 (火)

st2chを使う(4) 定義ファイルとまとめ・編

2009-10-06(火)雨、曇り、雨

 題名の件も最後です。フォントの指定、表示の大きさ指定を定義ファイルでできるようにします。

(1)定義ファイル名変更、元のst2chと別にするため、定義ファイルを st2ch_m.conf と
  します。

(2)定義ファイルへの追加内容

の2点です。
 

(1)定義ファイル名変更のための変更部分
-----------------------------------------------------------------
定義ファイル名を変更

    def confread(self):
        try:
            f=open('e:\\python\\st2ch_m.conf','r')    #*01
            fData=f.read()
            f.close
        except:
            return
-----------------------------------------------------------------
 

(2)定義ファイル(st2ch_m.conf)への追加内容
-----------------------------------------------------------------
FONT_TPL=heisei Kaku gothic S60, 22, 17
ENTER1=0x000d
ENTER2=0x000d

-----------------------------------------------------------------

FONT_TPLの説明:

FONT_TPL=フォント名、高さ(ピクセル)、フラグ

です、高さ指定を変えると文字の大きさが変わります。フラグの数値「17」は
FONT_BOLD と FONT_ANTIALIAS のOR指定です。それぞれの数値を加算した数値を指定します。(1+16=17) 数値は、ここの最後に貼り付けた定義ファイルの中を見て下さい。多分、フラグの指定は変える必要はないと思います。

高さ指定を変更したら、HABA、GYOU、MOJI等の数値を調整する必要があります。

まとめ:

 今まで分けて書いてきた変更内容がまとまって書いてあるリストと、5800XM用の定義ファイルの例を貼り付けておきます。st2ch_m.py そのものを貼り付けて良いのかどうか不明なので、それは載せていません。変更部分リストで見て下さい。

----------------------------------------------------------------
「chnage_list.txt」 変更部分のリスト
「st2ch_m.conf」  5800XMで使用している設定ファイル
-----------------------------------------------------------------

 読みにくい記事におつき合い下さって、ありがとうございます。

 

| | コメント (0) | トラックバック (0)

2009年10月 5日 (月)

st2chを使う(3) エラー対応ほか・編

2009-10-05(月)曇り、雨

 本来やりたい(変更したい)内容は、前回までの2回で終わりですが、後はエラーがまれに出るケースなどへの対応です。

(1)LandScape 表示の時に、まれにエラーになるのを防ぐ。

(2)Nokia 5800XM でBlueTooth KeyBoard を使っているとき、メニューからBookmark
  を選択したときに表示が変わらない(ブックマークリストにならない)のを対策する。
  X02NKでは問題がない。

の2点です。(1)についてはbuzzafiさんのサイトにも報告済みです。

・変更部分のリスト

(1)
Nokia 5800XM でBlueTooth KeyBoard を使っているとき、メニューからBookmark を
選択したときに表示が変わらない(ブックマークリストにならない)のを対策する。
X02NKでは問題がない。

canvas=appuifw.Canvas(redraw_callback=lambda rect:window.draw_state())
のredraw_callbackが、Nokia 5800XM ではうまく動かないときが有るのかもしれない。
(BT KeyBoard やドライバとの関係もあるかもしれない。)

-------------------------------------------------------------------------

    def state4(self):
--
        appuifw.app.title=unicode("Bookmark")
        self.bookread()
        #need for 5800XM, because "redraw_callback" doesn't work in 5800XM
        self.draw_state()     #*01

-------------------------------------------------------------------------

(2)LandScape 表示の時にエラーになるのを防ぐ。

-------------------------------------------------------------------------
    def draw_state(self):
--
        #Board Title
        elif self.status==1:
            dsA=self.BDstaNo
            dsY=0
            
            if self.BDexp>=0:
                canvas.rectangle((0,0,85,800),fill=0xAAAAAA)
            else:
                canvas.rectangle((85,0,800,800),fill=0xAAAAAA)
            
            dsB=0      #*01
            
            while dsY < self.GYOU:
-------------------------------------------------------------------------

 現状は、この内容までを入れて使用しています。

 

| | コメント (0) | トラックバック (0)

2009年10月 4日 (日)

st2chを使う(2) フォントと表示の大きさを弄る・編

1009-10-04(日)晴れ、曇り、晴れ

 さて、st2ch を使うとフォント(というか表示の大きさ)を弄りたくなります。st2ch はJapnPlain16のM+10フォント(10ポイントのフォント、ビットマップフォントです)を使うことを推奨しています。

 この推奨のフォントを使うと、設定を変えずに使用しても表示がはみ出さない、表示情報が多いなど楽なのですが、字が小さくて目に辛いかもしれません。
 若干の変更としては、同じフォントサイト(st2ch サイトのインストール手順のところに紹介されています)にあるJapanPlain16の12ポイントや14ポイントのフォントを使うと若干、表示が大きくなります。
 この場合は、設定ファイルを若干弄る必要があります(HABAの値とかGYOU、MOJI等です)。

 それでも、Nokia 5800XM では画面の解像度(ピクセル数)が大きくなっているので、相対的に文字が小さくなり苦しくなります。

  

1.使用するフォントと表示の大きさを変える。

 そこで、もっと何とかならないかと試したところ、使用するフォントを変更したり、表示の大きさを変えることができました。

 ・方法は、フォント指定を「フォント名だけ」から「3項目指定」に変更することです

この場合、表示の大きさを変えられるフォントはビットマップフォントでは駄目で、TTF、TTCなどのフォントです。私はシステムフォントに使っているフォントを指定しました。

 
下の画面表示例の条件は下記のとおりです。

画面1:ビットマップフォント JapnPlain16 14ポイント東雲14B
画面2:システムフォントで、高さ18ピクセルに指定
画面3:システムフォントで、高さ22ピクセルに指定

Scym0023a  Scym0021a

Scym0024a

  

 フォント名の確認方法は st2ch のサイトのインストール手順にも書かれていますが、簡単には、Windows PC上でフォントファイルをダブルクリックしたとき表示される画面の一番上にでる名称です。(下図だと "Heisei Kaku gothic S60"です。)

Fontgazou1a

 
・変更部分のリスト

------------------------------------------------------------------
フォント指定を「フォント名だけ」から「3項目指定」に変更する。

    def __init__(self):
--
#        self.FONT=unicode("JapanPlain16") #*01
        self.FONT=(u"heisei Kaku gothic S60", 18, FONT_BOLD|FONT_ANTIALIAS) #*01

    def confread(self):
--

#            elif confData[0]=="FONT":          #*01
#                self.FONT=unicode(confData[1])
            elif confData[0]=="FONT_TPL":       #*01
                font_wk=confData[1].split(",")
                self.FONT=(unicode(font_wk[0]),int(font_wk[1]),int(font_wk[2]))

------------------------------------------------------------------

説明:
self.FONT=(u"heisei Kaku gothic S60", 18, FONT_BOLD|FONT_ANTIALIAS) #*01

u"heisei Kaku gothic S60" 部分を、使用したいフォント名にします。
18 は表示の高さ(ピクセル)指定です。色々変えてみるとよいと思います。
その他は、そのままで良いと思います。

なお、表示の高さ指定を変えたら、設定ファイルのHABA、GYOU、MOJIを変える必要があります。

 

| | コメント (0) | トラックバック (0)

2009年10月 3日 (土)

st2chを使う(1) 「5800XMで使う」編

2009-10-03(土)曇り、雨、曇り

 旅先などで某巨大掲示板を見るのには、以前からPythonスクリプトの st2ch.py を利用させていただいていました。PCを持ち歩かないので携帯電話で読む、あるいは出かけているうちに発言が1000になって読めなくなる前にデータをダウンロードしておいて、帰宅してからPCに読み込ませるため、などに使用しています。

 st2chはbuzzafiさん作のスクリプトです。こちらのサイトにあります。
  「st2ch @ wiki

 さて、どうせ使うなら画面の広い 5800XM で使いたいと思い、先日の「美ヶ原行き」の前に色々弄ってみました。5800XMにはキーボードがなく、かつst2chは画面タップに対応していないためBlueToothキーボードが必要ですが(注1)、BlueToothキーボードをつないでも、そのままでは動かない部分があります。

 ということで、5800XMで動かすためや、その他の機種でも色々変えてみられるようになど、弄ってみたものを記録してみたいと思います。

 注1:Virtual Keyboard をインストールすれば、BT キーボードは必要ないと思いますが、
    まだAllFiles化などしていなくてインストールできないので、BT キーボードを使い
    ます。

 2~3回に分けて書きますが、分けて書いた変更部分を最後にまとめて載せてみたいと思います。


(1)BT キーボードを使う。

  BT キーボードを使うだけなら、何もしなくてもペアリングすればOKのはずですが、残念ながら、セレクトキーがないため、画面上で選択ができません。(画面上での、スレッド一覧とかブックマーク一覧での選択ができません。)
 そこで、エンターキーをセレクトキーと同じになるように、エンターキーの定義を追加し、処理とバインドさせます。これで、画面上での選択がエンターキーでできるので使えるようになります。

変更部分はリスト抜粋で書きますが、書き方(凡例)は以下の通りです。

St2chhanrei

リスト変更部分
 下のリストのとおりです。変更部分には設定ファイル対応の部分( def confread の部分)も有りますが、設定ファイルについてはまとめて最後に書きます。設定ファイルは変更無しで大丈夫です。

-------------------------------------------------------------
エンターキーの定義を追加し、処理とバインドさせる。

    def __init__(self):
--
        self.k_state1=EKeySelect
        self.k_enter1=EKeyEnter     #*01
--
        self.k_state2=EKeySelect
        self.k_enter2=EKeyEnter     #*01

    def rot_land(self):
--
        canvas.bind(self.k_state2, self.statechange)
        canvas.bind(self.k_enter2, self.statechange) #*01

    def rot_port(self):
--
        canvas.bind(self.k_state1, self.statechange)
        canvas.bind(self.k_enter1, self.statechange) #*01

    def confread(self):
--
            elif confData[0]=="SELECT1":
                self.k_state1=int(confData[1],16)
            elif confData[0]=="ENTER1":            #*01
                self.k_enter1=int(confData[1],16)
--
            elif confData[0]=="SELECT2":
                self.k_state2=int(confData[1],16)
            elif confData[0]=="ENTER2":            #*01
                self.k_enter2=int(confData[1],16)

-------------------------------------------------------------

 

| | コメント (0) | トラックバック (0)

2009年9月22日 (火)

PyR2KKJ を 001_2 に更新しました。

2009-09-22(火)曇り

 ローマ字をかな漢字に変換、、の「PyR2KKJ」をV.001_2に更新しました。

・BlueTooth Keyboard をつないで使うときのために、Enterキーを「確定の動作」に割り当てました。使っていると、FEPの癖でEnterキーを押してしまうことが多いので、それなら、、とEnterキーで確定できるようにしました。

 モジュールは「テク’ノート」の「Python スクリプト 雑記」の
  ・18.ローマ字をかな漢字に変換 PyR2KKJ

に載せました。

 連休明けに松本、および美ヶ原に行くときに使うかもしれないので修正してみました。

 

| | コメント (0) | トラックバック (0)

2009年9月 8日 (火)

指定時間後にSMS送信、、PySchSMS

2009-09-08(火)晴れ

 プロトタイプですが、、指定した分数後にSMSを送信するスクリプトを作成してみました。実は、メールアプリを見ていたら、SMSを指定した日時に送信する機能がついているモノが有ることを知りました。また、ちょうど某掲示板で、SMSを予約送信する機能のことが話題になっていたので興味を持っていました。

 このあたりが機能を持っているようです(使ったことないから詳細は分かりませんが)。
Ultimate SMS
  http://www.clickapps.com/moreinfo.htm?pid=19532&section=S60V3

SMS Timer for (S60) 5tn
  http://www.symbian-freak.com/downloads/freeware/cat_s60_5th/descriptions/messaging/SMStimer_send_SMS_at_chosen_time.htm

AdvanceSMS S60 - SMS Utilities Application
  http://www.killermobile.com/newsite/content/view/83/109/

 Pythonのスクリプトもありました。
  http://sourceforge.jp/projects/sfnet_sms-scheduler/

 ただ、このスクリプトは一応の例ということで、SMSを指定した後メニューを指定したりQuit(右ソフトキー)を押すと、SMSがクリアされるが送信待ちはそのままで、終了もできず送信もされない、、という状態になったりします。

 と言うことで、自分でスクリプトを作成してみました。本来は年月日・時刻の指定で、複数のスケジューリングができれば良いのでしょうが、自分では使う場面が思い浮かばないので、指定した分数後にSMSを(1通だけ)送信する機能だけ入っています。

 モジュールは、この記事の最後にあります。

 以下、画面キャプチャで、、、。

Sscx0553  Sscx0559

 メニューから「Scheduke new message」を選ぶと、電話番号、送信テキスト、待ち時間(分数)の入力枠がでますので、それぞれ入力します。
 

Sscx0554  Sscx0556

 待ち時間(分数)まで入力すると、右のように送信先、送信日時の確認が出ます。
 

Sscx0557  Sscx0558

 確認でOKを押すと、左のように送信待ちが表示されます。送信後に終了させる場合は終了(右ソフトキー)を押すと、右画面のように送信後の終了の待ちで有ることを表示します。

 送信をやめて、直ぐに終了させたい場合はメニューで「Cancel  message」を選択するとメッセージをクリアして終了します。
 送信したSMSは、送信済みフォルダに入りますので、送信したことを確認することができます。

 しかし、自分ではあまり使い道が思い浮かびません。あえて考えれば、どうでも良いけど欠席はしにくい会議の時、10分後にSMSを(自分の携帯番号自身に)送るようにしておいて、如何にも重要な電話がかかってきたようなふりをして、部屋を出る、、なんてのは、、、駄目、、だろうなあ。(SMSの受信音を、着信音とかバイブレータにしておかないといけないですよ。)

-------------------------------------------------------

 「PySchSMS_0001.py」
 
 
 「PySchSMS_0002.py」
 「PySchSMS_v0_0_2.sis」

 説明:
(1)0001と0002の違いは、送信待で終了を押したときの表示の違いだけです。
  0001は送信までの残り時間を秒数で(5秒ごとに)表示します。
  0002は残り時間を表示しません。

(2)0002だけ、selfsignを付加したSISを作ってみました。

-----------------------------------------------------------

| | コメント (0) | トラックバック (0)

2009年8月27日 (木)

Python 携帯電話同志のBlueToothシリアル通信

2009-08-27(木)晴れ

 携帯電話同志の、BlueTooth経由シリアル通信が(半分は)できたのですが、半分は挫折しています。

 大分前に、ゴトウさんのブログ「けいたいごっこ」の「S60におけるPythonでのBluetoothシリアル通信」と題した記事でBTシリアル通信のスクリプト例を拝見しました。

 これは携帯電話がクライアント側で、PC(のハイパーターミナルなど)との間でBT経由でシリアル通信を行うものです。これを見て、携帯電話同志で通信したら、何かアプリができるのでは??と思い試してみました。その時は、何も知らない状態なので失敗しました。

 で、socketモジュールの仕様を読んだり、WEBで例を探したりして、またずっとテストをしていました。

WEBでは、ずばりの例がありました。以前、FTPでもお世話になったサイトです。
  → 「Python for Series 60 tutorial

 お二方のスクリプトをみて、自分のテスト用にしたものが下記のスクリプトです。

   「BT_Test_Server.py」
   「BT_Test_Client.py」

 これで、動くようになったのですが、動かないケース(機種)があるので、道半ばです。まずは動いた画像を、、。

Sscs0219_2  Sscs0218  Sscx0540

 一番左はサーバ側、接続完了画面です。完了すると真ん中のようにウインドウが出るのでアルファベットを入力します。右はクライアント側で、その入力したテキストを受信して表示したところです。これで、両方ともスクリプトは終了します。

 で、動かないのは新しめの携帯電話を使ったときです。自分のテスト用をグループ分けすると下記のようになります。

旧グループ: 705NK、 5700XM (注1)
新グループ: X02NK、 5800XM
  注1:旧はS60 3rd、新はS60 3rd FP1以降でしょうか。なお本来、5700XMは新しいと思うのですが、これは日本語バージョンで、年月日を見ると大分前の年月日なので古い方にはいるのかなと思っています。

 使用したPython S60 はVer 1.4.4 と Ver1.4.5 です。

このテスト結果をまとめると下図のようになります。

Bt_test01

 即ち、旧グループがサーバ側になったときは動くのですが、新グループがサーバになるとクライアント側の新旧に関係なく動かないのです(クライアント側がPythonごとダウンしてしまう)。

 現象:クライアントが socket.bt_discover を実行してBlueToothがつながったときにPythonごとダウンしてしまう。サーバ側のスクリプトは起動してあっても、なくても関係なしです。

 と言うことで、ここでダルマ状態(手も足も出ない、、と言う意味です、ハイ)です。

 下の図は各組み合わせのテスト結果です(自分のメモ、、というかファイルの格納のためです、図書館からも見られるように、、、)。

Bt_test02_2

  凡例: 機種名の欄  705NK  ← 機種
                 (144)   ← Python S60 のVer

      テストモジュール欄  rfcomm 「Python for Series 60 tutorial」のモジュール
                   空白   自分のモジュール

      C :クライアント側
      SV:サーバ側

  

| | コメント (0) | トラックバック (0)

2009年8月25日 (火)

かな漢字に変換 PyR2KKJ を 001_1 に更新しました。

2009-08-25(火)晴れ、後曇り

 ローマ字をかな漢字に変換...の PyR2KKJ を 001_1に更新しました。

 今回のメインの変更は、変換途中のテキストを保存するときに、変換済みと未変換の間にデリミタを記憶させるようにしました。これにより、次ぎにオープンしたとき未変換部分から変換できるようにしました(あまり使い道はないんですが、、、(苦笑))。

 モジュールは例によって「Python スクリプト 雑記」の「18.ローマ字をかな漢字に変換 PyR2KKJ」に載せました。

変更来歴より:

 ・Save -> Save mid file で変換途中のテキストを保存する場合、変換済みと未変換
  の区切りにデリミタを入れるようにした。これにより、再度オープンした時に未変
  換の部分から変換開始できるようにした。
 ・ローマ字変換テーブルに「jji」「ddi」「zzi」を追加した。

Sscs0215  Sscs0216

左が変更前です。変換途中で保存したファイルを開いても、先頭から変換対象になります。右が新しい方です。保存したときの続きから変換に入ります。

 

| | コメント (0) | トラックバック (0)

2009年8月16日 (日)

Filebrowser 002_2 と PyMyeditor 001_3 に更新しました。

2009-08-16(日)晴れ

 先日の「Python(失敗事例) execfileでの変数スコープ」で書いた問題対応のため、Filebrowserを更新しました。合わせて、拡張子連動で使うPyMyEditorの起動を速くするように変更しました。

 PyMyeditorを最初の1回だけimportして使うので、テキストファイルを開く2回目以降は、かなり速くなります。

 この起動を速くするために、PyMyEditorの方も若干変更しました。組み合わせて使う場合、Filebrowserが古い場合はPyMyEditorは新旧どちらでもOKですが、Filebrowserが新しい場合はPyMyEditorも新しくする必要があります。(PyMyEditorが古いと、Filebrowserから起動した場合は設定ファイルの読み込みができません。設定ファイルを使わない場合とか、単独で起動する場合は問題ありませんが、、。)

モジュールは「Python スクリプト 雑記」の「12.簡易ファイルブラウザ」、「17.簡易テキストエディタ PyMyEditor」に載せました。

簡易ファイルブラウザ Filebrowser 変更概要(002_2):

 ・拡張子連動で使うエディタが「PyMyEditor」であれば、最初にimportして使用するようにしました。これで。テキストを開くのが速くなりました。PyMyEditor はバージョン 001_3 以降が必要です。

 ・グローバル変数名を、他のスクリプトとだぶらないように変更しました。(Aboutでみたスクリプト名やバージョンが間違うことがあるのを対策しました。)

 ・sys.path 内でc:\python\lib や e:\python\lib がどんどん増えないように検索してダブりを削除するようにしました。

簡易テキストエディタ PyMyEditor 変更概要(001_3):

  ・他のアプリから、importで実行できるよう対策しました。(設定ファイル読み込みをmainモジュールからrunモジュールへ変更した。)

  ・ファイルをオープンした時そのディレクトリを記憶するようにして、その後のファイルオープンのデフォルトディレクトリにするようにしました。

  ・Aboutのcopyright表示を短くしました(queryウインドウに収めるようにした)。

 

| | コメント (0) | トラックバック (0)

2009年8月13日 (木)

PyMyShell を更新しました。

2009-08-13(木)晴れ/暑い、、

 この暑さにもかかわらず、、と言っても、図書館にいる間は関係ないですが、、。

 昨日の「Python(失敗事例) execfileでの変数スコープ」で書いた問題対応のため、PyMyShell を更新しました。ついでに、もう一件も変更しました。

 モジュールは「Python スクリプト 雑記」の「8.スクリプト起動用スクリプト」に載せました。

変更内容は
  ・グローバル変数名を、他のスクリプトとだぶらないように変更した。
  ・sys.path 内でc:\python\lib や e:\python\lib がどんどん増えないように
   クリーンナップする処理を入れた。

  どちらも、他のスクリプトを起動する動作には影響しませんが、最初のものは「About」 で情報を見るときに間違ったスクリプト名やバージョンが表示されることがあります。2番目の方は、対策版はスクリプトの起動動作が若干速くなるかもしれません。

 

| | コメント (2) | トラックバック (0)

2009年8月12日 (水)

Python(失敗事例) execfileでの変数スコープ

2009-08-12(水)曇り、時々晴

 直ぐ忘れるので自分用のメモとして、Pythonでの失敗事項やこんなノウハウが必要だった、、ということを書いていこうと思います。そして、以前に書いたのも含めて、「Pythonスクリプト雑記」にブログ記事へのリンク集を作ろうと思います。
 なんせ、最近は忘れるのが速くて、、、検索や置換のやり方まで直ぐ忘れますし、昨日の朝食どころか昨日の夕食、ひどいときは今日の朝食に何を食べたかさえ思い出せない事があったりして、、、。

 さて、話を戻すと、「スクリプトからexecfileで他のスクリプトを起動したときの、変数のスコープに注意」という点です。
 具体的に言うと、起動する側とされる側のトップレベルにある変数のスコープ(有効範囲)は同一であり、同じ名前があると置き換わってしまいます

 じつは、execfileで他のスクリプトを起動したときは、OSで言えば 「子プロセスで実行されて、変数領域は重ならない」 と思っていましたが、、実は違いました。きちんと調べて使うべきでした。「初めてのPython」(オライリー社刊)を読み始めたら51ページにはっきりとかいてありました。
「毎回、execfileが呼び出された箇所に、モジュールファイルの内容をペーストしたのと同一です。そして、変数が書き換えられる恐れもあります。」でした。

図で書くと下図のようなイメージでしょうか。

Ex_execfile_2 

 今までのスクリプトで言うと「PyMyShell」と「Filebrowser」で使用しています。一度、「Filebrowser」でその問題に遭遇して手直ししているのですが、今回ほどはっきりと認識していませんでした。
 現在では、それほど深刻な変数は定義していない(スクリプト名とかバージョンなどを定義している)ので良いのですが、「情報」で見たときにスクリプト名やバージョンが違っているという、恥ずかしい結果になります。

 ということで、またまた「PyMyShell」と「Filebrowser」の手直しをしています。

 

| | コメント (0) | トラックバック (0)

2009年8月 8日 (土)

PyStnWeather 更新しました(002_4)

2009-08-08(土)曇り、晴れ

 天気予報情報取得・表示アプリ PyStnWeather (HiisiさんのPyStationWeather のMOD版です)を更新しました。動作上は関係ない、見かけ上の変更だけです。

 ・AppSwitch をインストールしてあっても、バックグラウンドに移せないのを対策
  しました。(以前は、実行終了まで画面に表示される。)
 ・'晴曇雨雪雷'以外の場合の表示を'='から'〓'に変更しました。(注1)

 (注1):Hiisiさんの対応版では「〓」でしたが、私の方は目立ちすぎるかな、、と「=」にしてました。が、バランスが悪いので「〓」に変更しました。

モジュールは「Python スクリプト 雑記」の「19.天気予報表示用スクリプト (PyStnWeather)」の項です。
 

Sscs0207  Sscs0205

Sscs0209  Sscs0206

 左が変更前、右が変更後です。違いは「=」と「〓」の表示だけです。

 

| | コメント (0) | トラックバック (0)

2009年8月 7日 (金)

簡易テキストエディタ PyMyEditorを更新しました。

 簡易テキストエディタ PyMyEditor を 001_2 に更新しました。若干の(時によっては致命的な)バグがありました。

変更内容:

  ・下記条件の時、行の最後に追記したり、行の最後を削除するとSAVE時にエラー
   になるのを対策しました。
      条件:テキストはShift-JIS 、かつオプションShow_LF = 1

 「Python スクリプト 雑記」 の「17.簡易テキストエディタ PyMyEditor」に載せました。

 

| | コメント (0) | トラックバック (0)

2009年8月 6日 (木)

Python ノート、ショッピングリストのアプリを更新しました。

2009-08-06(木)曇り

 先日の「既知の問題」で書いた、ノートやショッピングリストのアプリを、(やっと)更新しました。

変更点 : 検索時、アルファベットの大文字小文字を関係なく検索するようにする点でした。

Python スクリプト 雑記」 の

 ・4.ノートデータベース「PyNoteNdb」

 ・5.ノートデータベース「PyNotePad」

 ・10.ショッピングリスト「PyShopper」

です。ようやく、ひとつ終わりました。

 

| | コメント (0) | トラックバック (0)

2009年8月 5日 (水)

続 「py2sis を使う」 705NK / 5800XM 編

2009-08-05(水)曇り

 Python のスクリプトのSIS化は、以前に書いた(下記の)記事のごとく、X02NKに入れた py2sis というアプリでやっていました。

   「動いた! Python sis化 on 携帯電話 -py2sis-

 しかし、現在X02NKは修理中で使えないので、やむを得ず他の機種で試してみました。機種は「705NK」と「5800XM」です。

 結果としては、心配することなく動きました。が、若干の注意が必要だったので、自分用のメモとして書いておくことにしました。

Sscs0190   Dscn0247a

 絵がないと寂しいので(笑)、、左は705NKで動くようになったpy2sisのアイコン、右は5800XM + SU-8W です。この組み合わせでないと使えません(後述参照)。

 

705NKの場合:

(1)メモリ不足なのかエラーになることがある。
   → 対策は、再起動してから再度実行する。
 705NKのRAMは、最近の機種に比べると、メモリが少ないです。このためか、SIS化の途中でエラーになることがあります。この場合は、再起動させてから直ぐに行うと、ほぼ100%うまくいきます。

(2)若干遅い(X02NK、5800XMに比べ)ので、操作に注意する。
  最初に、オプション → py2sis で画面を変えた後、最初のプロンプトの後「path to script >>>」が出るまで若干時間がかかります。出る前にエンターなどを押すと、うまくないようです。きちんと、待った方が良いです。

(3)エンターキーの反応が遅いので要注意
 これも、動作速度の関係でしょうか。文字を入れて「エンターキー」を押したとき、何も反応がないときがあります(次のプロンプトが出ない)。この場合は、もう一度押します。
 ゆっくりときちんと押すと、大体大丈夫のようです。

(4)最後の「エンター」を押してSIS化が始まると、結構時間がかかります。エラーか正常終了か、いずれの結果が出るまでは待つしかありません。

5800XMの場合:

(1)動作は問題なく動きます、速度もメモリも大丈夫です。しかし、BT Keyboard SU-8Wが必須です

 最初起動した後、オプション → py2sis を選択して次ぎに進むのですが、5800XMにはハード的なオプションキー(左キー)がありません。画面をたたいても反応はありません。従って、BT Keyboard が必要になります。しかも、携帯電話のオプションキーに対応した(青色の)キーがある SU-8W が必須になるわけです。
 この点が落とし穴でした、、、疲れた~。

 

| | コメント (0) | トラックバック (0)

2009年8月 4日 (火)

Pythonアプリ(今まで作ったもの)の既知の問題点、、

 (3件目を追加、題名を変更しました。 2009-08-05)

 忘れないように、というのと、暑いと言っていつまでもさぼらないようにというメモです。

 今まで作って、WEBに貼り付けたアプリで、問題点と修正が分かっているのに、あるいは修正しているのにアップしていない、、というのは、単にさぼっているだけですね。でも、こう暑いと、夕方になるとビールの方にフラフラと行ってしまうのは仕方がないことでしょう(笑)。

・PyStnWeather   (更新完了 2009-08-08)
 (もう一件出てしまいました。でも、実質の不具合にはならないと思います。)
 AppSwitchによる、バックグラウンドへの送り込みができません。実行中画面が表示されます。AppSwitchがインストールされていないときと同じ動きなので、問題は少ないと思います。 原因:AppSwitchへ与えるアプリ名の修正漏れ

・PyNoteNdb、PyNotePad、PyShopper  (更新完了 2009-08-06)
 検索の時、アルファベットがcase sensitive(大文字小文字が区別される)になっていました。若干、使いにくいです。(例:Code を検索したとき code は見つからない。)
 原因:Upper かLower にそろえて検索していないため。

・PyMyeditor   (更新完了 2009-08-07)
 Show_LFオプション指定時に、改行マーク(ダミー改行文字)の後ろに文字を追加すると、エラーになったりダミー改行文字が残ってしまうことがある。
 Show_LFオプションを指定しても、ビューワに使っているだけならば問題なし。
原因:エンコード時のやり方がまずかった。

 

| | コメント (0) | トラックバック (0)

2009年8月 3日 (月)

PyStnWeather モジュール差し替えました。

2009-08-03(月)晴れ、曇り

 昨日に自分のWEBにアップした「PyStnWeather」(PyStationWeather MOD版)ですが、モジュールを差し替えました。中をみたHiisiさんから問題点などを教えていただいたので見直したら、他にも修正点が何点かあったので、旧モジュールは不都合なので差し替えとすることにしました。

モジュールは「Python スクリプト 雑記」 の 「19.天気予報表示用スクリプト (PyStnWeather)」にアップしました。

 やはり、手抜きは駄目だなあ、、と再確認しました。反省点、、

 ・処理はきちんと最後まで見直すこと。
 ・テストは、きちんと条件を考えたテストデータを作ってテストすること。

を実感しました。(仕事だったときは、きちんとやっていたのになあ、、、(反省)。)

Sscs0201_2  Sscs0203_2

Sscs0202_2  Sscs0204_2

 左側が絵文字あり、右が絵文字使用しない場合です。雷のマークとか、どれにも当てはまらないときの「=」とかが、きちんと出るようになりました。

 それにしても、理解していないので、雷の絵文字のコードや、雷とか「=」のquoated printable のコードを見つけるのに苦労しました。最後は、それらをMMSで自分に送り、携帯電話のPrivateフォルダからメールを見つけてファイルを取りだし、DOSのダンプコマンドでダンプしてコードを求めました(汗)。

今回の変更点

002_3 2009-08-03
--差し替え前------------------- 2009-08-01
 ・ブラウザで表示するデータ(Data\Hiisi\PystationWeather.htm)に、気象データ
  発表日時を表示するようにした。
 ・今後のために、データ取りだし処理を変更した。←内部処理の問題のみです。
  (1日ごとのデータに切り出してから気象データを取り出すようにした。)

--これ以降は差し替え版で入れた-- 2009-08-03
 ・雷のアイコン/表示関係が抜けていたので追加した。
  (PystationWeather.htmへのアイコン表示、
   Quoted-Printableエンコード処理への追加)
 ・'晴曇雨雪雷'以外の場合を'='で表示するようにした。
 ・PystationWeather.htmへの出力も絵文字使用有無の指定が効くようにした。
---------------------------------------------

| | コメント (0) | トラックバック (0)

2009年8月 2日 (日)

PyStationWeather Mod版 (PyStnWeather) 

2009-08-02(日)雨
   (一部訂正しました。 2009-08-03)

 天気予報表示用のPythonスクリプト PyStationWeather のMod版 (PyStnWeatherという名前にしました) をいつもの

 「Python スクリプト 雑記」 の 「19.天気予報表示用スクリプト (PyStnWeather)」に

アップしました。

 このスクリプトは、HiisiさんのPyStationWeatherを変更したものです。

 それにしても、何というタイミングでしょう。先日X02NKを修理に出し、705NKを使う、その隙間の時にgooの(天気予報の)仕様が変ったとの事でした。だから、先日の「PyStationWeather を弄ってみた。」の記事のごとく、X02NKでは動いていたのに705NKでは動かない、、、と、慌てる事になった訳です。

 本家サイト「Hiisi Proxy 開発後記 跡地」のほうで対応して頂きましたが、Hiisiさんのところでは、今後は今日明日の天気しか対応しないそうです。まあ、確かに使いたい機能はその辺ですが、時々は1週間分も見たいことがあります。

  必要なら改造してもいいですよ、と言うことでした。  元々 GNU GPLで配布されていてGNU GPLに従えば、改変や再配布などが自由なフリーソフトウェアとして公開されていましたので、自分用に改変してみました。(それに、先日のコメントで、必要ならどんどんやって下さい、、ということでしたし 、、、 逆にいうと、必要なら自分でやってねということですね(笑))。
 Hiisiさんもリアルの仕事がお忙しいようなので仕方がないことでしょう。
 ということで、先日の続きでいじりました。週間予報のデータも使えるようになったので、アップすることにしました。

 Sscs0194

 これはブラウザ用に作成されているデータ(Data\Hiisi\PystationWeather.htm)です。何とか、正しくデータが作成できるようになりました。

 今回は2バージョンに分けて作成しました。

002_3 2009-08-01
 ・ブラウザで表示するデータ(Data\Hiisi\PystationWeather.htm)に、気象データ
  発表日時を表示するようにした。
 ・今後のために、データ取りだし処理を変更した。←内部処理の問題のみです。
  (1日ごとのデータに切り出してから気象データを取り出すようにした。)

002_2 2009-07-31
 ・HiisiさんのPyStation_0_2_1に入っているPyStationWeatherを、gooの仕様変更
  (7月29日かな)に対応させた。

 

| | コメント (10) | トラックバック (0)

2009年7月30日 (木)

PyStationWeather を弄ってみた。

2009-07-30(木)晴れ/暑い

 HiisiさんのPyStationWeatherを弄りました。実は、X02NK修理中のメイン携帯を705NKに代えてから、唯一動いていなかったのが「PyStationWeather」でした。X02NKでは動いていたから簡単に動くだろう、、と思ったら、、はまりました。どうやっても動きません。

 スクリプト版(SISになっていないソース)にトレースルーチンを組み込んでトレースしてみたら、、う~ん、予定しているデータがゲットできないんですね。色々代えたりAPを設定してみたり、、WEBアプリやブラウザで見たり、、と色々試してみました。

(1)wap AP経由だとエラーになったり、タイムアウトになったりです。
(2)wap経由以外だと、天気予報の入口のWEB画面のデータになってしまいます。

 どうも、SBM(openではない方)のプロキシかgooの方か、どちらかが変わっているのかもしれません(以前もあったようです)。

 仕方がないので、WEBで「今日の天気」をみるURLにアクセスして、その画面データから必要なデータを取り出すようにPyStationWeatherを弄るしかないかなと、弄ってみました。

Sscs0192    Sscs0193

 左が該当の画面です。このHTMLソースデータがゲットできるので、PyStationWeatherのデータ取りだしルーチンを変更して、HTMLソースデータの中なら必要なデータを取り出すわけです。「晴」とか「曇」とかいう文字はないので、アイコンの画像名で「晴」とか「曇」とか判定しています。結構、やっつけ仕事です。
 右は何とか動くようになって画面表示されたところです。表示が出たときは、嬉しかったです。
  これで、何とかいつも使っていた環境に近づきました。

 もし、このモジュールの方が簡単に使えるのでしたら、もっとテストしてからアップしようかと思っています。それにしても、元のものが何で動かないのかは、気になります。前のとおりX02NKで使ったらどうなるかは、修理から戻ってきたら試して、ついでにトレースも取ってみたいと思います。

 

| | コメント (4) | トラックバック (0)

2009年7月24日 (金)

Python ローマ字-かな漢字変換(PyR2KKJ) 001_0 に更新しました

2009-07-24(金)雨

 ローマ字-かな漢字変換(PyR2KKJ)を 001_0 に更新しました。ようやく、001_0 になりました。ただ、000_7 から色々と変えたので、新たなバグを作り込んでいるかもしれません。

 モジュールは例によって、

  「Python スクリプト 雑記」の「18.ローマ字をかな漢字に変換 (PyR2KKJ)」

に載せました。

Dsc02441a デバッグ風景です。5800XMとBTキーボードSU-8Wでやっています。
 

 まず一番大きな変更は、辞書関連の処理を別のモジュールにしました。

 ・PyR2KKJ(かな漢字変換本体) と PyR2KKJtool (辞書メンテナンスツール)に分
  けた。

 ・その他、入力に関する変更は数知れず、、(笑) これは、ここに書ききれないくらい
 です。ドキュメントに入れました。

 ・関係のないキーを動かないようにした。例えば、クリアキーなどを使うとまずい部分
  ではクリアキーを動かない(ようにみえる)ようにしました。実際動かないようには
  できなかったので、見かけ上動かないように見せています。
  同じような処理を、他のキーにも施しています。

ということで、何とか今回は 001_0 でアップロードしました。

 

| | コメント (0) | トラックバック (0)

2009年7月16日 (木)

Python ローマ字-かな漢字変換(PyR2KKJ) 000_7に更新しました

 先日、旅行の時に使ったら若干問題点に気がついたので、Python ローマ字-かな漢字変換(PyR2KKJ) 000_7に更新しました。 モジュールは例によって、

  「Python スクリプト 雑記」の「18.ローマ字をかな漢字に変換 (PyR2KKJ)」

に載せました。

 今回の変更点概要は

 ・ユーザ辞書を使ったときに、本来の辞書の語が引けなくなるバグを修正した。
  (learning = 1 のときのみ問題あり)
 ・変換途中のテキストをセーブして、直ぐに開くとエラーになるのを修正した。
 ・起動直後の画面を変更した。(ファイル選択画面 → 文字入力画面)

です。1モジュール版はこれが最終版と良いながら、なかなか打ち止めになりません。次回こそ 001_0 版にするぞ~。

| | コメント (0) | トラックバック (0)

2009年7月 8日 (水)

Python ローマ字-かな漢字変換(PyR2KKJ) 000_6に更新しました

2009-07-08(水)曇り、時々雨がぱらつく

 (今夜もギターの練習で遅くなり、次の日の朝になってからのアップです。)

 Python ローマ字-かな漢字変換(PyR2KKJ) 000_6に更新しました。モジュールは例によって

 「Python スクリプト 雑記」の「18.ローマ字をかな漢字に変換 (PyR2KKJ)」

に貼り付けました。

 次こそ、これで終わり版、、と書いておきながら、旧版の変更です。若干の不具合を修正しました。これで、この版(1モジュールで構成の版)は打ち止めです。(1モジュールで構成の版はこれが最終版となります。)

変更内容です。

 ・辞書変換/辞書マージで、いくつかの語句が削除されるのを対策した。
  (strip使用の削除)
 ・ローマ字テーブル修正した。(ふぁ)が間違っていた。
 ・辞書変換時に「'」「"」を削除するようにした。「'」「"」で囲んだ無変換語句の
  確定を楽にするため

 

| | コメント (0)

2009年7月 4日 (土)

Python ローマ字-かな漢字変換(PyR2KKJ) 000_5に更新しました

2009-07-04(土)曇り、時々薄晴れ

ローマ字-かな漢字変換(PyR2KKJ)を 000_5 に更新しました。例によって、実物は

   「Python スクリプト 雑記」の「18.ローマ字をかな漢字に変換(PyR2KKJ)」

に載せました。

 相変わらず、ちょこまか弄っています。今回の大きな変更は

 ・1~数語ずつ入力しては逐次変換してゆく動作を追加しました。
  ちょうど、エディタでFEPを使って入力しているイメージです。

 ・変換のためにオープンするファイルとして、UTF-16やShift-JISも開くことが
  できるようにしました。

 その他も色々と弄っています。(実用性はともかくとして、、、(汗))

来歴から

 ・Editメニュー(ローマ字文を入力してカナ漢字変換)の動作に、入力しながら逐次
  変換する動作を追加した。(今までは、一括全文変換だった。)
 ・カタカナへの変換を変更した。(かなはカタカナへ、カタカナはかなへ、相互に変
  換できるようにように変更した。)
 ・入力ファイルのエンコーディングをUTF-8だけでなくUTF-16、SHIFT-JISもサポート
  した。
 ・「'」または「"」でくくった英字は ローマ字 から かな への変換をしないように
  して、英字のままにしたい部分に使用できるようにした。
 ・英字の大文字、小文字間の変換を入れた。(大文字は小文字に、小文字は大文字に
  変換される。)
 ・オープンするファイルのエンコーディングを指定できるようにした。
  (AUTO / UTF-8 / UTF-16 / Shift-JIS)
 ・色々なローマ字記法の書き方を、ごちゃ混ぜに取り込んだ。

なんか節操もなく弄っている感もあります。既に、次のバージョンにも手を付けていますが、多分次のもので 001_0 として、一旦(バグがない限り)打ち止めかなと思っています。即ち、次の改造のアイデアが無いんです、、。

 

| | コメント (0)

2009年7月 2日 (木)

PyR2KKJ と アノトペン SU-27W の連携(テスト)

2009-07-02(木)朝方は大雨、昼から曇り

 さて、アノトペン(SU-27W)活用のために PyR2KKJ やら PyMyEditor を弄ってきましたが、テスト風景を書いたことがありませんでしたので書いてみました。結果としては、ちょっと問題があるのですが、、、(注1 一番下参照)。

 まず、B7のノートに書いたもの、そのものの画像(写真)です。なお、ノートは「ま~」さんの「ま~ノート」(と言ったのは山根さんだったかな)です。ま~さん、ありがとうございます。(でも、ページ数を見られるとしかられそう、、、m(..)m (汗、汗)。)

Dsc02426   Dsc02427

 
 それを携帯電話に読み込んだ画像ファイルが下の画像です。

Sscs0187   Sscs0188

 
 画像をテキスト変換したものが下の画像です。う~ん、大分読み取り誤差が生じてるなあ。書き方が悪いと言われそう。左のホモテキスト、、とかアマトペンは泣けるなあ。

Sscs0184   Sscs0185

 
 それをPyR2KKJの読み込ませたものが下の画像です。元(変換後のテキストファイル)が間違ってるから、変換後も間違ってますね(当たり前か)。PyR2KKJが、どうやってもPyRZKKJ(2がZ)になっちゃうんですよね。

Sscx0532

 
 注1:さて、上で書いた問題とは、、、そうです。テキスト変換時の誤差なんです。書き方の問題もあるし、字の大きさも関係するかもしれません(要は、沢山書こうとして小さくすすると変換誤りが多くなるかもしれません)。しかも、この位のテキスト量だと、打ち込んだ方が速いとか言われると、どうしようもありません。

 ということで、テスト続行中です。しかも、PyR2KKJもファイル入力での変換より、キー入力での変換の方が仕様拡大されつつあります。段々、目的がずれてきたような気も、、。

 

| | コメント (0)

2009年7月 1日 (水)

Python 簡易テキストエディタ PyMyEditor を 001_1 に更新しました。

2009-07-01(水)朝方まで雨、曇り

 簡易テキストエディタ PyMyEditor を 001_1 に更新しました。モジュールは、例によって

  「Python スクリプト 雑記」の17.簡易テキストエディタ PyMyEditor

に載せました。

 今回変更した理由は、UTF-16のテキストを開くことができるようにしたことです。以前は、UTF-16なんで不要だ、、、と思っていたのですが、急に必要になりました。理由は、アノトペンSU-27W の画像をテキストに変換した出力ファイルがUTF-16なのです。PyR2KKJのテストなどをしているときに、うっかりSU-27W のテキストファイルを PyMyEditor で開くとエラーになるため、改造しました。

 変更内容は

  ・UTF-16をサポートするようにした。(ファイルのオープン、セーブ)
  ・オープンするファイルのエンコーディングを指定して開くことができるように
   した。自動判定のオプションも設けた。
です。

 

| | コメント (0)

2009年6月30日 (火)

Python ローマ字-かな漢字変換(PyR2KKJ) 000_4に更新しました

 ローマ字-かな漢字変換(PyR2KKJ)を 000_4 に更新しました。例によって、実物は

   「Python スクリプト 雑記」の「18.ローマ字をかな漢字に変換(PyR2KKJ)」

に載せました。

 実は、既に次のバージョンで更に色々と変更しているのですが、弄りすぎて大きなものになったり、逆に使いにくくなったりしているかもしれません。本来の目的である 「アノトペンの出力テキストをかな漢字に変換」 と言うところから見ると、本末転倒になりつつあります。

 と言うことで一旦、簡単バージョンをアップしておくことにしました。今回の変更の概要は、、、

 ・Editメニュー(ローマ字文をキーから入力してカナ漢字変換)を設けた。
 ・カタカナへ変換する機能を設けた。
 ・日本語に埋もれたローマ字文(スペースで区切られていないもの)を検出できるよ
  うにした。
 ・変換契機の区切りに「、」「ー」「改行」を追加した。
 ・改行は自動的に確定するようにした。
 ・ローマ字テーブルの不良修正(nya、nyo、sa)
 ・改行の扱いを整理した(カーソル位置、ハイライト表示範囲など)

 1行目の「キーからテキスト入力して一括、かな漢字に変換」は段々、キー入力変換に近づいています。無駄に大きくしている気がしないでもないですが、、まいいか。

 

| | コメント (0)

2009年6月24日 (水)

Python 原則を守っておけば良かったんだけど、、

2009-06-24(水)雨、曇り

 まあ、単なるうっかりミスの類なんですが、、、(Pythonの)教科書に書いてあった原則を守っておけば良かったなあ、、という話です。Pythonを使っている方には当たり前の事かと思うのですが、自分のメモとして、、。

 文字列(文字ストリング)の操作を行うところは、unicodeにして操作する処理にしておくこと、という件です。
 文字列も if chr_buf == check_ptn :  等のように文字列を入れた変数を丸ごと使う場合は良いのですが、 chr_buf[n]  等のように一部を取りだして使う場合、unicode にしておかないと(日本語が混じった場合)エラーになる訳です。

 教科書に書いてあったのに、PyR2KKJ ではローマ字文(ASCIIコード部分)しか通らないからと手を抜いておいたら、機能追加を繰り返していたら動かなくなってしまいました。必死で調べたら、前記の「ローマ字処理」の部分が日本語も対象になるようになってエラーになっていました。原則通りに作っておけば、後で悩むことも無かったのですが、、、バグを作り込む典型的なパターンですね。
 或いは処理前にASCIIコードのみかどうかチェックしておいても良かったかもしれません。

 ついでなので、問題の動きを示すテストを、、、。

Sscx0528a   Sscx0529a

"あいう" の文字列wk1(UTF-8)、wk2(unicode) から[1]番目を取りだしてプリントするとUTF-8ではプリントできない(①)けど、unicodeだと、きちんと[1]番目の"い"がプリントされます(②)。UTF-8では[1]番目の文字ではなく、[1]番目のバイトデータが取り出されているわけです。(③は、[1]番目のバイトデータをプリントして見たところです。文字が割り当てられている数字ではないですね。)

 動くようになったから良いけど、今後の教訓になりました。

 

| | コメント (0)

2009年6月21日 (日)

Python ローマ字をかな漢字文に変換(PyR2KKJ)

2009-06-21(日)雨、曇り

 前回、「Python シュードフェップ(Pseudo FEP) アルファ版」と書いた、ローマ字をかな漢字文に変換するPythonスクリプトです。大分色々な機能を盛り込んだのでアルファ版2かベータ版かというところで、載せることにしました。

 実際のモジュールと記事は、例によって「Python スクリプト 雑記」の
  「18.ローマ字をかな漢字に変換(PyR2KKJ)」に載せました。

アルファ版からの大きな変更点は

 ・設定ファイルを使えるようにした。
 ・辞書の学習機能とユーザ辞書をサポートした。
 ・辞書ツールメニュー(辞書の操作用)を追加した。
 ・SKK 辞書をそのまま(入力に)使用できるようにした。(pobox辞書とSKK辞書使用可)
 ・auto_next オプション(次々と変換を進めてゆく)機能を追加した。
 ・ファイルオープン、ファイルセーブ時のデフォルトフォルダ指定をできるようにした。
 ・辞書の「文字列パタン」の語尾の送りアルファベットを許すようにした。
 ・辞書項目で語句の複数併記を許すようにした。(SKK辞書対応、速度アップ)
    文字列パタンh△語句1/語句2/語句3

ということで、辞書関連を使いやすくした事でしょうか。無駄に色々増やしている、、という面もなきにしもあらずですが、、。

 ここまで来るとテキスト入力もしたくなるけど、そこまでゆくと目的がずれてゆくのかなあ。

 

| | コメント (0)

2009年6月16日 (火)

Python シュードフェップ(Pseudo FEP) アルファ版

2009-06-16(火)曇り、夜から雷雨

 先日ちょっとだけ書いた、ローマ字文をかな漢字交じり文に変換するPythonスクリプトですが、FEPという名前を使うのは恐れ多いなあ、、と名前を変えました。

 PyR2KKJ Roman (alphabet) text to Kana Kanji text for Japanese ですかね(汗)。

 と言うことで、アルファ版が動くようになりました。まだ、色々と入れたい機能があるのと、使い込んでいないので(バグ出し不足なので)、アルファ版です。

 詳細は、一番下にモジュールとテキストを貼り付けたのでテキストを見ていただくとして、テキストから概要と、使用例の画面キャプチャを載せてみました。

概要
 ローマ字文を入力にして、漢字仮名交じり文へ変換するアプリです。直接キーボードから入力してテキストを作成する機能はありません。変換途中のファイルをセーブした場合の事も考えて、漢字仮名交じり文、仮名文、ローマ字文の混ざったテキストを入力にして、変換を継続することもできます。

 目的:アノトペン(SU-27W)では携帯電話に入れるアプリで、書いたものから携帯電話内で英数字に変換できます。これを利用するため、SU-27Wで書いたローマ字文を漢字仮名交じり文へ変換するために作ってみました。

 どの程度活用できるかは不明ですが頑張ってみました。なお、FEPなどについての知識がないので、勝手に考えた内容でインプリメントしています。そのため、 随分と無駄なことをしているかもしれません。お気づきの点を教えていただければ幸いです。

使用例

入力ファイルの文章です。半角スペースが変換の区切りです。
 「haikei minasama ikaga osugosidesuka. kyouha dokohe ikuka kanngaetemasu. asuno asaha hayai desuyo.」

ファイルを読み込むと、下の左のように仮名文に変換して表示されます。右は、変換、確定を終了した画面です。

Sscx0520   Sscx0525

 下の2つは変換、確定の途中経過の画面です。ハイライトしているところが変換・確定の対象です。この範囲は、左右キーで範囲を変えられます。

Sscx0521   Sscx0523

 
 メニューです。あまり機能はなくて、ファイルオープンや保存ぐらいしかありません。

Sscx0524

 まあ、とりあえず自分用としては使えるかなとは思っています。ただ、SU-27Wで、どの位の文章が書けるかが問題ですが、、。

--------ファイル-----------------------------------

「PyR2KKJ_000_1.txt」 

「PyR2KKJ_000_1.py」

--------------------------------------------------

| | コメント (2)

2009年6月14日 (日)

Python シュードフェップ(Pseudo FEP) その2

2009-06-14(日)晴れ、曇り

 今日も午後はギター合奏の練習でした。全曲練習した後、リハーサルみたいに(合奏だけ)通して演奏してみました。とは言っても、2回ほどとめてやり直ししましたが、、。

 さて、先日書いた シュードフェップ(Pseudo FEP)、FEPもどきですが、大分形になってきました。今日も、午前中は図書館でリストを見ていました。
 今回は、一応図面というか仕様書というかフローチャートというか、を書いて始めてみました。

Dscx739a_2

 こんな、いたずら書きみたいなものですが、有ると無いとでは大違いで、大分スムーズに進んでいるような気がします。

 で、リストに打ち込むときに、スクリプト名をどうするか悩んでいました。前回P_FEPと書いたのですが、FEPと言うのも恐れ多いかなあ。と言うことで、P_FEPも含めて

PyP_FEP
PyR2KKJ
PyR_KKJ
PyRKKJ
PyR2K2
PyR2K2J

なんて考えてみています。R2KKJ というのはRoman to Kana KanJi Conversion ですかね。R2K2 はRKKJ と、例の(スターウォーズですね)のR2D2にかけています。

 PyP_FEP か PyR2KKJ かなあ、、、。

 

| | コメント (0)

2009年6月 9日 (火)

Python シュードフェップ(pseudo FEP)

2009-06-09(火)晴れ

 Pythonのスクリプトも実用品や冗談みたいなのも作ってきましたが、概ね自分の用事は足りるようになってきました。後、何があるか考えているのですが、、

 (1)メモ関連のPyNotePad、PyNoteNdbにCSVファイルの入出力を設ける。
 (2)血圧記録、管理アプリ
 (3)シュードフェップ(pseudo FEP)

あたりでしょうか。

(1)はPCでの編集とか、PCとの連携がやりやすいかなと考えてみました。
(2)は、現状ではWellness diary があるんですが、グラフ表示に自分の欲しい
   項目がないんです。また、現状ではデータ取り出しに難があります。

で本題は(3)です。
シュードフェップ(pseudo FEP)とは、、、その名の通り、「FEPもどき」です。

機能:ローマ字書きのファイルを入力して、日本語に変換する。
使用目的:アノトペンSU-27Wの活用のため。

 アノトペンSU-27Wの画像は英数字に限れば、携帯電話内のアプリでテキストの変換できます。ですから、

「アノトペンで書くときローマ字書きにする」 → 「携帯電話でテキストに変換」 → 「シュードFEPで日本語に変換」 → 「テキストを使用/ブログ投稿など」

ということを考えたのです。例によって、使用を考える前に簡単なスクリプトを書き始めてみました。というか、どうやればできるか検証しながら考えた訳です(後付、後付、、)。

Sscx0516   Sscx0517

 ローマ字をカナにして、それから辞書を引いて候補をプリントアウト表示するところまでやってみました。辞書はPiclipで使用した辞書を使ってみました。画像のカナは表示用ですが、辞書引き用は別で濁点、半濁点、小さな「っ」とか「ゃ」とかはありません。

 ここまでやってみて、、、挫折寸前です。ここまでは簡単ですが、この先のUI(ユーザインタフェース)は大変そうです。

 ところで、この機能、、既に皆さんお気づきのように、入力がファイルかキー入力かの違いを除けば、ま~さんのM-FEP、コザックさんのKKJConv、あやまどりさんのPiClipと同じなんですよね。そうなんですよ、、、、、(やけに強調するなあ、)。CとかJAVAを勉強して、上記のソースを読ませていただくか、Pythonで自前でゆくか、、、、う~ん。

 WEBにもローマ字から日本語への変換サイトもあって携帯電話でも利用できるし、第一、SU-27Wでは文字より絵などの利用の方が良いのではないか、などと悩んでいます。ま、考えるのも楽しいのですが、、。

 

 

| | コメント (0)

2009年6月 8日 (月)

「Python スクリプト雑記」、3つほど更新しました。(些細な変更です)

2009-06-08(月)晴れ、曇り、夕方から雨

 大分前に変更はしたのですが、「Python スクリプト雑記」にアップしていなかったので、「Python スクリプト雑記」を更新しました。変更は些細な変更ですが、PC内のファイルが整理できないので、アップしました。

(1) スクリプト起動用スクリプト PyMyShell 002_2
  ・使わなくなっていたオプション変数を削除した。(iniファイルからも削除した。)

(2)ユーティリティ pyS60uiutil_mod_m_001_1
  ・appuifw2に対応させた。(Nokia 5800 対応、対応内容としては問題対応版を
   盛り込んだ。

(3)簡易ファイルブラウザ Filebrowser 002_1
  ・テキストエディタでファイルを開くとき、すぐに「File open...」が表示される
   ようにした。
  ・設定ファイル名の変数名を変更した。(ini_file → Fb_ini_file )これは、PyMyEditor
   と連携させたとき、設定ファイル名が混乱するため対策した。

Python スクリプト 雑記」の下記項目に貼り付けました。
   8.スクリプト起動用スクリプト
   9.pyS60uiutilを弄る
  12.簡易ファイルブラウザ

う~む、やっと肩の荷が下りた、、(大げさ(笑))。

 

| | コメント (0)

2009年6月 6日 (土)

Python 簡易エディタ(PyMyEditor)を更新しました。

2009-06-06(土)雨、晴れ、曇り

 色々弄ってきた簡易エディタPyMyEditor を更新しました。不具合/バグは別として、余り弄るところも無くなったので、V_0_01(0)にして、いつもの

  「Python スクリプト 雑記」の「17.簡易テキストエディタ」 に貼り付けました。

 しかし当初の、凄く簡易で小さくて速いエディタ、、というところからは段々外れているかもしれません、色々と付け加えたので、、。でも、自分用としては便利になったと思います。これで、PyMyShell 、Filebrowser やその他のものと組み合わせて、概ね自分のスクリプトで日常の用事は足りるようになってきました。

 今回の変更の概要は(手抜きで来歴を貼り付けてと、、(汗))以下の通りです。
今回は、挿入メニューのグループ1とグループ2を表示するのに、タイマ時間(0.4秒 ←設定可)内に何回キーを押したかで変えるなど、アイデアを盛り込んでみました(笑)。

  ・Open メニューを追加して、ファイルを開くことができるようにした。
   (PyFbuiutil を使用する。)
  ・Titleバーにファイル名を表示できるようにした。
  ・UTF-8のテキストをShift-JISで保存するときencodeエラーが出るのを対策した。
   (0xFF0D -> 0x30FC に置換 全角ハイフン)
  ・挿入メニュー追加(indent / if else / elif)
   また、挿入メニュー内容を簡単に編集できるようにした(編集はスクリプトのリ
   ストを直接行う。)
  ・挿入メニューグループを2種類にして、種類を増やせるようにした。そのため
   メニューを独立させた。(Edit 内 → Insert menu)
  ・Find / Find all のとき、選択している語句(ハイライトしている語句)を
   検索語句入力枠に表示するようにした。
  ・改行を表示するモードを設けた。
  ・設定ファイルを使用できるようにした。

 我ながら、良くここまで弄ったなあ、と感慨に耽っています。

 

| | コメント (0)

2009年5月30日 (土)

エディタ スペースと改行の表示編 その2

2009-05-30(土)曇り、晴れ、曇り

 昨日の話題の続きです。

(2)スペース(半角スペース)を表示する。

 スペースのコード(0x20)に何らかの文字(スペースを表す文字)を入れたフォントを作成して使用することを考えました。
 この方法ですと長所は
  ・どのエディタでも使える(表示できる)。
短所は、
  ・フォントを作成しないといけない
  ・エディタ以外の画面でも表示されてしまう
ことです。

 当初、ファイル読み込み時にスペース(0x20)を別のコードに変換し、それを表示すればエディタ以外では無関係になる、、かなと考えましたが、編集時に入力したスペースのコードは0x20なので、これが表示されなくなるので駄目ですね。

 私の使っているフォントの場合、0xf800 と0x2423 のスペース表示(□の下だけ切り取ったような形)を0x20にコピーしてみました。コピーした後に拡大縮小で微妙に調整しないと、若干の違和感があります。
 結果的には0x2423 のものを貼り付けてから、縦100%、横55% に縮小すると丁度良くなりました。0xf800 のはボールド(太字)らしく、これで表示させるとうるさくなります。

Sscx0490   Sscx0492

 左が縦80%、横50% 、右が縦100%、横55% のものです。右の方が、他の文字との幅が丁度良いようです。

Sscx0491   Sscx0505

 左は0xf800 のものですが、元が太字なので表示が若干強すぎるようです。
右は、関係ない画面でもスペースが表示されてしまうという見本です。

Sscx0504_2

 昨日の改行表示と合わせて使用している画面です。スクリプトを見ることに関しては便利になったと思います。

 

| | コメント (0)

2009年5月29日 (金)

エディタ スペースと改行の表示編 その1

2009-05-29(金)雨/曇り/晴れ がめまぐるしく変わっている

 またまた、役に立つのか?と言うようなことを、こまごまとやっています。

 最近、簡単なテキストエディタを作ってますが、スクリプトを実際に入力しているのはPCのエディタです。当然頭の中では比較してしまいます、特にスクリプトの入力時の見やすさをです。 そのなかで、作っているテキストエディタで気になったのは、インデントとキーワード間のスペースの問題です。

 即ち、携帯電話でリストを見たときに
  (1)インデントされていても、いくつスペースが入っているのか分からない。
  (2)インデント用のスペースだけが入力されている行(注1)では、スペースが入って
     いるのか改行だけされているのか分からない。

    注1:挿入メニューでキーワードを挿入すると、それに続く行もインデントされた
       状態で入力されるため。

という点です。これは、スペースも改行も表示されないからです。下図を見て、どういう風に入力されているか分かりますか?

Sscx0489 これでは、スペースや改行の位置が、ちょっと分かりませんよね。
 

 PCのエディタは改行が表示されていますし、上部にはルーラー(桁数のゲージとなる目盛りのバー)がありますから、大体分かります。

 ということで、何か手はないかと考えてみました。
    (1)改行を表示する。
    (2)スペースを表示する。

あたりが思い浮かびます。

今回は、(1)の改行表示についてです。

 今使っているフォントは、以前にいくつかパターンをを追加したもの(注2)で、改行コードに相当するところ(0x2029)に鍵矢印フォントを入れてあります。が、表示されていません。    通常の状態では、改行(コントロールコード)は表示されないようです(注3)。また、実際は無駄ですが、試しに0x0a(LF)にも入れてみましたが、やはり関係ないですね。無駄というのは、Pythonで画面に表示している時の文字はunicodeで、改行は0x2029に変換されているからです。

   注2:以前フォントを追加したのは0x2029と0x2028です。0x2028は
      line separator、0x2029はparagraph separatorです。

   注3:リスト表示(appuifw.listboxの表示データ)にしたときは、各データは1行表示
      しますが、その中に改行があれば、0x2029の鍵矢印が表示されます。

 下の画像は、試しに0x0aに鍵矢印を入れてみたところです。

 Font_add0a1

 さて苦肉の策として、読み込んで画面表示するときに、改行の前に特別なコードを挿入してその文字を改行と見なすことです。今回は0x21b2(down arrow with left tip 下左向き鍵矢印)を使用してみました。
 画面からこれを入力する手段はないので、コントロールコードみたいな感じで代用できるかなと思ったわけです。
ファイルに戻すときは、そのコードを削除します。

この方法の長所は
 ・特別なフォントは不要である
短所は
 ・対応したエディタだけしか表示できない
という点です。

 これを考えるにあたっては、Pythonで小さなスクリプトを書いて、読み込み直後、コード変換後、画面表示後などの各状態のコードを16進表示で見て検討しました。

Sscx0500 これはまともに表示させた時です。
   

 Sscx0501  Sscx0499

  左は16進表示させたときです。unicodeに変換した直後は、改行は0x0aですが、画面表示させたときに0x2029に変換されます。右は、改行の直前に0x21b2(下向き左向き鍵矢印)を入れてやったときです。

 とりあえず、PyMyEditorには入れてみることにしました。

 Sscx0494   Sscx0496

 これがPyMyEditorには入れて表示させてみたところです。これだと、改行の位置が見えるから、前よりは良いように思います。ただ、煩わしいときもあるかもしれないので、今のところオプションで指定できるようにしています。

 

| | コメント (0)

2009年5月28日 (木)

また買っちゃった、Python教科書 「初めてのPython 3版」

 これも昨日の事ですが、せっかく東京に出たついでだからと、新宿ヨドバシでPC関連の本をみて廻りました。あそこには、オライリーの本のコーナーがあって、色々とおいてあります。で、結局、、、

Dsc02379a

 第3版(最新版ですね)を購入しました。丁度、今読んでいるテキストが読み終わりそうだから、と言うのもあります(何ヶ月前に買ったか忘れたけど、、(汗))。
 また改めて買いに出ると、(東京でも横浜でも)1300円(電車賃)は高くなるし、、。まあ、ネットで買うという選択肢もありますが、在庫をおいて手にとって見られるようにしてくれているお店の努力にも敬意を表さないといけないですしね。そういうのも、本を置いて販売しているお店を減らさないためにも必要です。ま、これは後付の理屈かもしれませんけど、、。

 

| | コメント (0)

2009年5月24日 (日)

画像リサイズアプリ PyResizeJpg を更新しました。

2009-05-24(日)雨、小雨

 今朝早くに近くで大きな花火の音がしました。これは、市民体育祭の運動会を実施するとの合図でしょう。本当は先週だったのですが雨で順延になってました。
 さて、その後うつらうつらしてから目が覚めたら、土砂降りの音が、、、関係者の方は大変だなあ。
 と言うことで、学校の校庭の方には足が向かず、図書館でぐずぐずしていました。体育祭はどうなったのかな。

 さて、大分前に修正してほったらかしてあったスクリプトを「Python スクリプト雑記」に載せました。

 画像リサイズアプリ PyResizeJpg、PyResizeJpgS V002_0 です。これは携帯電話でブログ更新するとき、写真をアップロードようにリサイズするものです。
 実質的なところは変更していないのですが、フォルダを扱えるようにしたとか、設定ファイルの場所の変更とかです。

手抜きで来歴からの抜粋です。

 ・設定ファイルの読み込み処理を改善した。(データによりエラーになるのを防いだ。)
 ・画像ファイルリスト作成時に、拡張子(.jp)の判定を入れ、余分なファイルを
  リストアップしないようにした。
 ・iniファイルの場所を変更した。  E:\Data  -->  E:\Data\masa
 ・スタート画像ファイルの場所を変更した。(PyResizeJpgのみ)
    E:\Data  -->  E:\Data\masa
 ・画像フォルダを選択できるようにした。(PyFbuiutilを使用)
 ・フォルダ内の画像ファイル有無のチェックを入れた(エラー防止)。

ファイルは「Python スクリプト雑記」の下記項番に貼り付けました。
   6.fubuki で WEB 作成
   (3)PyResizeJpg、PyResizeJpgS

 

| | コメント (0)

2009年5月22日 (金)

Python 何が悪いのか(悩)、、何かのバグかな。

 前回のエントリの簡易テキストエディタでは、当日の日付挿入機能を入れました。で、そのフォーマットは、リスト先頭で変えられるようにしました。

で、テストしたのですが、うまく動かないケースが出て悩みました。本やWEBで見ても、良さそうに見えるのですが、、。

 問題点は年月日出力のフォーマット指定です。

date_fmt = time.strftime("%Y-%m-%d", time.localtime(time.time()))
date_fmt = time.strftime("%y-%m-%d", time.localtime(time.time()))

1行目の期待値は 2009-05-22
2行目の期待値は 09-05-22   

です。即ち、%Yと%yの違いです。ところが、

1行目の値は 2009-05-22
2行目の値は 10-05-22   

となっちゃうんですよね。2桁で出す「年」の部分が正しくないんです。

Sscx0484   Sscx0485

 左は上記の1行目と2行目をコピペしてはテストした結果です。右は、同じ2行目を使い、携帯電話の年の設定を、2009年と2008年に変えてテストした結果です。

 どうも、私の環境では「%y」(小文字の方)はうまく動かないようです。ということで、PyMyEditorのドキュメントにも、「%y」は使わないで下さい、と追記しました。

 

| | コメント (2)

Pytnon 簡易テキストエディタ(PyMyEditor) を更新しました。V.000_2

2009-05-22(金)晴れ、曇り

 先日作成して(ベータ版で)記事にしたたばかりの簡易エディタですが、色々と弄っています。で、自分としてはかなり最終版に近い形にしたと思います。とはいえ、弄っているところはもう一点あって、多分次のもので最終版(機能的にです、バグは残るでしょうが(汗))の予定です。

 モジュールは「Python スクリプト 雑記」の「17.簡易テキストエディタ」に載せました。

今回の変更の特徴は

  ・メニューから新規テキストを開始できるようにした。(File-New メニュー)
  ・Find next / Find all / Find all again のメニュー追加

 でしょうか。検索関係を使いやすくした(つもり)、新規ファイルを開始することで、(自分の)クリップボードを介してペーストできるようにするためです。

手抜きで来歴の掲載です(汗)。

000_2 2009-05-22
  ・japanese codecs のimportをチェックして、importできない場合はSJIS関係の
   メニューを出さないようにした。
  ・Save as で上書き保存できるようにした。
  ・メニューから新規テキストを開始できるようにした。(File-New メニュー)
  ・Find next / Find all / Find all again のメニュー追加
  ・挿入メニューに date を追加
  ・Find の処理方法変更(compile.search方法へ変更)
  ・その他、処理ルーチンの見栄え対策

 自分用としては、かなり出来上がってきたと思います。もっとも、普段はどの程度使う機会があるか、疑問ではありますが。活用のメインは旅行の時でしょうか(携帯電話でブログ更新するときです)。

 

| | コメント (0)

2009年5月19日 (火)

Python 時刻セットアプリ PySetClock更新 と誤差の話

2009-05-19(火)曇り

 それほど必要ではないと言いつつ、いじり回してバージョンを2つほど更新しました。

 モジュールは例によって「Pythonスクリプト雑記」の「16.時刻合わせスクリプト 」に載せました。

 今回の変更は、下記を入れました。

001_1 が
  ・回線のディレイの補正を入れた。
  ・正常時のログに各種時刻値を追加した。

001_2 が上記に加えて更に
  ・設定ファイルに、時刻補正値を書くことができるようにした。

 即ち、なるべく誤差を少なくしようというものです。回線のディレイの補正はHiisiさんのPyNTPを参考にさせていただきました。これは、ディレイを計算して自動的に補正するものです。
 何日かログで見てみましたが、実際は補正に影響するほどの遅延は無いようです。大体60ミリ秒ぐらいですから、秒単位のセットでは影響しません。

 設定ファイルに入れる時刻補正値は、原理的に発生する誤差を少しでも補正しようとするものです。

 ログは、これらの値を見てみようかというために入れてみました。こんな感じになります。

Sscx0483


誤差について:

タイムサーバから時刻データを取得してセットしますが、原理的に0~2秒弱の遅れが発生します。「2秒弱」は正しくは「1秒強」かもしれませんが、表示の上では2秒の遅れに見えるときがあります。
 これは、タイムサーバの時刻取得方法は不明なのでさておいても、タイムサーバからの時刻データは秒単位、携帯電話での時刻セットも秒単位、の2点からどんなに頑張っても0~2秒近く(1秒強?)の遅れが出るわけです。携帯電話の中での扱いによっては若干進むこともあるかもしれません。即ち、時刻セット時に、タイマの小数点以下の部分もリセットされるのか、前の値の延長でカウントしてゆくのかで変わります。

 と言うことで、強制的に0.5秒ぐらい足し込んで、誤差を -0.5秒~0.6秒(ぐらいか)にしたいなということで、足し込む値を設定できるようにしました。

 まあ、今の方法(タイムサーバから取得してセットする)をとる限り、それほど神経質になっても仕方がないのですが、、。

 

| | コメント (0)

2009年5月18日 (月)

Python ブラウザとエディタの連携、 パラメータ引き渡し編

2009-05-18(月)晴れ

「パラメータ引き渡しとスクリプトのままでの実行について」

 先日書いた、簡易テキストエディタ「PyMyEditor」は、自身からファイルを開く機能はありません。原則として、その前に書いたファイルブラウザ「Filebrowser」の「開く」から拡張子連動でテキスト関連ファイルを開いて閲覧、編集します。

 現在、拡張子連動に使えるのは(.pyスクリプトのまま使う必要があるので(注1))、以前から使っている「py60tex」と、今回の「PyMyEditor」の2つです(2つになりました、と言えるのが嬉しい(笑))。「Filebrowser」では、それらを切り替えて使用できます。

  注1:ファイル名をパラメータとして渡すためには、今のところこれしかないためです。

 すなわち、ここで問題になるのが、パラメータ(ファイル名)の引き渡しです。両方でアクセスできるものを介する必要があります。
 案として、下記を考えました。

 (1)変数 sys.argv に入れて渡す。
 (2)C:\@@pmed_tmp.dat などという、勝手なテンポラリファイルに書き込んで渡す。
 (3)OSのクリップボードに書き込んで渡す。

 (1)のsys.argvはpythonインタプリタが管理している変数(と書いてあった)のため、SIS化してインストールした場合は読めませんでした。従って、.pyスクリプトのまま使うことになります。

 (2)では、エディタ側も改変してからSIS化すれば、SISインストールでも大丈夫ですが、py60texも改変しないと対応できません。それに、何となくスマートではないように思います。

 (3)は、(2)よりはスマートですが、クリップボードへの書き込みが難しいです。下記(注2)サイトのスクリプトで、英字は書き込めますが、日本語が入ると駄目です。代案としては(2)との折衷案で、メモリ D:\ のどこかにテンポラリファイルを書き込むという手もあります.
まあ苦肉の策ですね。それほどスマートではないのと、(2)と同じく互換性が問題です。

  注2:http://discussion.forum.nokia.com/forum/showthread.php?t=117567
     この情報はレオナパパさんに教えていただいたものです。とはいえ、日本語を
     使うにはハードルが高そうです。

 ということで、当面はファイルブラウザもエディターも、pyスクリプトのまま使用することを考えています。
 

「ランチャーの利用」

 さて、そうするとブラウザも、Pythonを立ち上げて、ScriptShellから起動、、と言うのも面倒です。そこで、利用するのがランチャーです。一番簡単なのは「Filebrowser」をすぐ立ち上げるためのランチャースクリプトとか、エディターを直ぐ立ち上げるランチャースクリプトとかを作って、SIS化すれば良いわけです。が、それだけでは何なので、、と作ったのが、以前書いた「PyMyShell」です。これのSIS版をインストールして置いて、ここから「Filebrowser」を起動してファイルをブラウズし、必要なものを拡張子連動でエディタで開く、、という使い方です。もちろん、エディターも登録しています。

 と言うことで、「PyMyEditor」も作って、全部自分のスクリプトで完結できるようになりました。

現在の、自分の環境は以下の通りです。

PyMyShell   ---- ふぶき       fubuki_m.py
(sis版)     -- ふぶき変換   fubuki2htm.py
         -- 画像リサイズ PyResizeJpgS.py
         -- ファイル転送 PyMyFTP.py
         -- 電話帳       jContactsM.py
         -- ノートNdb    PyNoteNdb.py
         -- ノートPad    PyNotePad.py
         -- 買い物リスト PyShopper.py
         -- Filebrowser  Filebrowser.py ----エディタ PyMyEditor.py / py60tex.py
         -- エディタ     PyMyEditor.py

 後は、これらをフルに活用するしかない香港へ行く手だてを考えるだけです(笑)。なんか、卵と鶏の関係になってますが、、、(汗)。

 

| | コメント (0)

2009年5月15日 (金)

Pytnon 簡易テキストエディタ(PyMyEditor) を作りました。

2009-05-15(金)晴れ

 myeditor.pyという、Filebrowser.py にエディタを追加しようとしたスクリプトがありました。それを見て、簡単なエディタを作ろうと思い立ちました。

 目的は
(1)自分で作成したFilebrowserから拡張子連携で起動するエディタに使う。
  小さくて軽いものにする。

(2)fubuki.pyやfubuki2htm.pyでブログやWEBの原稿を作成する(注1)のですが
  その編集に活用できるようにしたい。すなわち、定型の記述を挿入できる
  メニューを沢山設けたい。
    注1:「fubuki.pyや...~を作成する」については、同じく「Python スクリプト
       雑記」に載っています。

 このエディタは、先日も書いた「Filebrowser」と一緒に使い、拡張子連動でテキストを開くことを目的にしています。エディタ部分しかありません。従って、エディタを直に起動すると、新規ファイルか決めうちのテンポラリファイルを開きます。エディタからファイルをブラウズして、あるファイルを開くという機能はありません。ファイルブラウズ機能は「Filebrowser」に任せています。

  当初は、UTF-8のみの対応で簡単なものにしたのですが、あれも欲しいこれも欲しいと追加して、あまり軽快なものではなくなったかもしれません。

 一口に言う特徴は
  ・簡易なエディタ
  ・定型の記述の挿入を沢山設けることができる。
  ・ファイルオープン時はUTF-8、Shift-JISが自動検出される。
  ・出力時にUTF-8、Shift-JISを選択できる。
  ・選択、コピー、ペーストなどがメニューから行えます。

 スクリプトは、例によって「Python スクリプト雑記」の「17.簡易テキストエディタ」に載せました。

 せっかくなので、画面のショットを、、、。

Sscx0479    Sscx0480

Sscx0481    Sscx0482

 3番目のメニューから開いた最後の画面が、定型文を挿入するメニューです。画面の部分は、Pythonスクリプトを書くときに便利なようになっています。

 

| | コメント (0)

2009年5月14日 (木)

Python 簡易ファイルブラウザ(Filebrowser) を更新しました。

2009-05-14(木)晴れ、のち曇り

 先日更新したばかり(この記事)の簡易ファイルブラウザですが、また更新しました。ユーザインタフェースも含めて、色々と試行錯誤して来ましたが、概ねこの内容でフィックスすると思います。これでm使用してゆきたいと思っています。エディタとの、拡張子連動でのファイルオープン連携もバッチリですし、、、。

今回の一番大きな変更は
  ・左ソフトキーで選ぶメニュー方式に変更した。

事でしょうか。今まではファイルとかフォルダ(の表示”.”)をクリックすることで操作していましたが、オプションキーのメニューから選ぶ方式にしました。これにより、使いやすく、かつフォルダ操作メニューも増やすことができました。画面上でも”.”が無くなり、すっきりしました。

その他の変更は

 ・open app(テキストを開くアプリ)を複数指定可にした。
 ・ini_fileを使用できるようにした。
   起動時に開きたいパスの指定   :def_path
   前回開いていたパスを記憶する機能:last_path
 ・メニュー追加(Go to def dir)
です。

例によって、モジュールは「Python スクリプト 雑記」の「12.簡易ファイルブラウザ」に掲載しました。

 

| | コメント (0)

2009年5月11日 (月)

Python ちまちまと更新 jContacts と PyWakeUpSP

2009-05-11(月)晴れ、のち曇り

 今日も暑かったですね、さすがに長袖は、、ちょっとという感じでした。

 さて、大した訳もなく変更したものですが、「Python スクリプト雑記」に張り付いているので更新しました。(自分のアーカイブも兼ねていますので、、、。)

jContacts 1.04 (電話帳検索と国際アクセスコード置換のスクリプト)
  ・設定ファイルの格納フォルダ変更
  ・Aboutの追加

 と内容のない更新です。

■PyWakeUpSP (目覚まし)
  ・文字コードの理解不足から、音楽ファイルパスが間違っていたときに使うファイルで
   エラーになるのを修正しました。(音楽ファイルに、存在しないパスを指定したとき
   発生します。)

Python スクリプト雑記」を更新しました。(項番7.2 と 1.3 です。)

 

| | コメント (0)

2009年5月 9日 (土)

Python 簡易ファイルブラウザ(Filebrowser) を更新しました。

2009-05-09(土)晴れ

 今まで遊び半分で弄っていた簡易ファイルブラウザ(Folebroeser)ですが、結構真面目に改訂を繰り返してみました。
 その理由は、、、Nokia 5800XM で使えるファイルブラウザが欲しかったからです。

 下記は同梱テキストからの抜粋ですが、3つめの目的に向かっているわけです。

-------------------------------------------------------------------
 目的は3つ有ります。
  1つめの目的は、テキスト関係のファイルをクリックした場合py60texというエディ
 タでオープンさせたいためです。

  2つめの目的は、Pythonのスクリプトをクリックしたら、そのまま実行できるよう
 にして、自分で作るShellスクリプト用のブラウザにしたいためです。

  3つめの目的は、Nokia 5800XM で使えるファイルブラウザが欲しかったからです。
 ふつうの使い方では内蔵のファイルブラウザでも良いのですが、内蔵のものですと
 たとえばC:\Python が見えません。他の機種でよく使われている Y_Browser は左右
 キーがないと、フォルダ階層を上下できません。
  SYmSMB のファイルブラウザだと".."があるので、フォルダ階層を動けますが、縦
 のスクロールバーが動きませんでした。
------------------------------------------------------------------------

 例によって、モジュールは「Python スクリプト雑記」の「12.簡易ファイルブラウザ」に「掲載しました。

 もっとも、またいじり始めているので、直に古くなりそうですが、、、。

 

| | コメント (0)

2009年5月 8日 (金)

Python 時刻セットアプリ PySetClock

2009-05-08(金)雨、のち曇り

 5月連休の図書館がよいの結果、のひとつです。携帯電話の時刻あわせを行うスクリプトを作成しました。

 今までメモしてきた小ルーチン(時刻セット部分とか、アクセスポイント読み出しとか、それのリストアップルーチンなど)を消すのも勿体ないし、ちまちましたまま保存しておくのも面倒なので、ひとつのスクリプトにして記録しておくことにしました。そういう勉強のためのスクリプトです。

 モジュールは例によって、「Python スクリプト雑記」に貼り付けました。

 実行したときの画面はこんな感じになります。実際は、見ていないときに動作させるので、あまり関係はないのですが、、、。 

Sscx0473_2 
 

■概要  ← 同梱テキスト抜粋(手抜きです。)

  タイムサーバにアクセスして時刻データを取得し、それを携帯電話にセットするスクリプトです。実行した結果はログファイルに出力しておいて、後でチェックすることができます。うまく取得出来なかったときのチェックには有効かもしれません。

  既に色々な時刻設定アプリやスクリプトが出ていますので、今更の感がありますが、自分の勉強のために作成しました。設定ファイルの書き込みルーチンなど、今後使えそうです。
  また、内容が分かっているので、自分では使いやすいです。

■手動で起動するほか、Hiisi さんの PyTaskServer で時刻指定で起動させるなどの使い方をします。もっとも、 PyTaskServer を使うのでしたら Hiisi さんのPyNTP を使うことをお勧めします。私のは、まだ勉強段階ですから、、、。

  PyTaskServer、PyNTP → http://hiisi-proxy.blogspot.com/ です。

 

| | コメント (0)

2009年5月 5日 (火)

Python 懲りもせず書き換えばかり、、

2009-05-05(火)晴れ

 今日も図書館に行ってきました。運動公園いの横や水無川沿を通ったら、こどもの日の催しをやっていました。川沿いにテントが張られ、鯉のぼりが何百メートルかにわたって飾ってあり、大勢の子供連れの方が集まっていました。
 しかし、あいにくの天気ですね。昨日までの天気が、後1日持ってくれればいいのに、皮肉なものです。でも、子供の心には、そんな雨の中の風景も遠い日の記憶として残ってゆくのでしょう。

 この連休は図書館に入り浸りです。昼前から弁当持参で行ってますから、この連休の出費は少なくて助かったなあ、、、(笑)。なんせ、いつも良く行くコーヒーショップとかマクドナルドにも行かないのですから、、。
 さて、そんなに長時間入り浸っていても、上には上がいるもので、私より先にきて私より後までいる方がいらっしゃいます。やはり、PCと色々な資料を持ってきて入力したり勉強したりしています。

 さて、そういうことで、この連休はPythonのスクリプトを改造しては、また書き直しなんてやりました。最初からきちんと仕様を考えて作ればいいのですが、まあ趣味ですし、勉強を兼ねてますから、書いて動かしてテストしてみる、、の繰り返しです。それに、実際動かしてみると、こうではない方が良いかな、、などとアイデアが出てくるものです。

 とはいえ、頭の中だけで考えられる年齢は過ぎましたから、仕様らしきものをA4の紙に書き殴ってはリストを弄っています。

Dsc02355a_2

 これは、メニューと動作をメモしたマトリクスです。いずれはEXCELに入れて、それを見ながらテストする、、という手はずです。(実際、そんなにきちんとやるかどうかはその時の流れです(汗)。)

 

| | コメント (0)

2009年5月 3日 (日)

python しこしことWEBを更新

2009-05-03(日)晴れ

 今日も渋滞がひどいようですね。図書館も、昨日に比べると混んできましたが、それでもPC持ち込み室は各自ごとに区切られていないせいか、若干人が少ないです。皆さん、各自ごとに区切られた方に行くようです。

 さて、そういうわけでスクリプトの整理やらWEBの整理をしています。自分用のメモとして、下記の記事へのリンクを「テク’ノート」の「Python スクリプト雑記」に記入しました。

 14.携帯でスクリプトのSIS化 -py2sis-     元に記事はこちら
 15.再起動日時記録スクリプト -PyBootLog- 元に記事はこちら

| | コメント (0) | トラックバック (0)

2009年5月 2日 (土)

Python appuifw.app.menu のワナ

 さて、先ほどのエントリで書いたとおり、渋滞がひどそうなのでこの連休は図書館がよいです。毎日、お弁当とPCを持って図書館へ行っています。で、PCではPythonのスクリプトの勉強やら改造やら、、です。

 で、落ちました、ワナに、、、。S60_theme さんのpy60tex を5800XMで便利に使えるように修正を検討していたのですが、そのテストで半日、足踏みしてしましました。
 そのワナとは、、、appuifw.app.menu で出すために記述するメニュー項目は、メインメニュー、サブメニューの項目合わせて30までという点です。

 キーのない5800XMで、py60texをつかって簡単にコピー/カット/ペーストができるように、メニューを追加しようとしたのですが、、、動かないんですよね。メニューが出ているのに、クリックしても何も起きないのです、エラーになるのでも無し、、。

 ひとつずつ追加したりはずしたりして、最後にもう一度「API reference」を読み返したら、どうも総数で30か?と気がついたわけです。それぞれ30では無かったですね。ということで、31個目から動かなかったわけです。
 エラーになるとか、メニュー表示が出ないとかしてくれると良いのですが、メニュー表示はあって、ただクリックしても動かないだけ、、だから悩んでしまいました。

 となると、メニューの作り方にも気をつける必要があります。

App_menu01

 左の作り方は項目数は4です。ただ、分かりにくいので右のようにメインメニューにまとめると、項目数は6になります。従って、むやみに分類すると項目数が増えて、制限にかかりやすい、と言うこともあります。

App_menu02

 どういう順番にカウントされるかというと、メインメニューが先にカウントされ、次ぎにサブメニューがカウントされるようです。上図では Main menu 10 は実行できますが、Sub menu 32 は実行できません。Sub menu 32 のほうがMain menu 10 より先の方のメニューにありますが、カウントされるのがメインメニューが先だからです。

 いや~、半日悩んでしまいました。おかげで、お弁当がおいしく食べられました(笑)。

 

| | コメント (0) | トラックバック (0)

2009年5月 1日 (金)

Python スクリプト起動用スクリプト(PyMyShell)を更新しました。

2009-05-01(金)晴れ

 ついでなので、Python スクリプト起動用スクリプト(PyMyShell)を更新しました。あまり変更の必要はなかったのですが、appuifw2への対応が主なものです。

変更来歴から、、、(手抜きです)。
002_1:  2009-04-27
 ・appuifw2を使えるようにした。これは、主に Nokia 5800 XM への対応です。
  appuifw2をインストールしていれば、リストボックスでスクロールバーが表示され
  ます。appuifw2をインストールしていなければ関係ありません。
  なお、appuifw2 は Nokia 5800XM 以外でも使うことはできます。

 モジュールはテク’ノートの「Python スクリプト 雑記」に載せました。

 

| | コメント (0) | トラックバック (0)

2009年4月30日 (木)

Python お買い物リスト(PyShopper)を更新しました。

2009-04-30(木)晴れ

 昨日に引き続き、お買い物リスト(PyShopper)を更新しました。

モジュールはテク’ノートの「Python スクリプト 雑記」に載せました。

 主な変更点は下記のとおりですが、

  ・左矢印キー、右矢印キーで、指定した行数ずつジャンプするようにした。
   (指定は設定ファイルで行うようにした。)
  ・appuifw2を使えるようにした。これは、主に Nokia 5800 XM への対応です。

 この、appuifw2対応 = Nokia 5800 XM への対応、、と言うのは余計かもしれません。お買い物リストは Nokia 5800 XM には向きません。
 なぜなら、お買い物リストは片手に持ってクリックしながら、他方の手で品物をカートに放り込む、、というスタイルが良いのですが、 Nokia 5800 XM ではクリックするのに両手が必要だからです。若干、まごまごするのでは無いかと思います。一番使いやすいのは705NKです。

 と言うことで、シリーズものとして対策内容を合わせるために更新してみました。

 

| | コメント (0) | トラックバック (0)

2009年4月29日 (水)

Python メモスクリプトを更新しました。

 今までの色々なスクリプトを appuifw2 のスクロールバー対応とか、色々弄ってきたのですが何とか一段落させようと、ドキュメントも直したので「テク’ノート」に貼り付けて更新しました。何回かに分けて載せる予定です。

 モジュールはテク’ノートの「Python スクリプト 雑記」に載せました。

 変更概要は下記の通りです。

(1)PyFbuiutil ファイル操作ユーティリティ

 ・デフォルトパス指定の英字が大文字、小文字の違いでエラーになるのを対策した。
  た
 ・リストの表示順ソートを修正した。(最初にフォルダを表示するようにした。)
 ・appuifw2を使えるようにした。これは、主に Nokia 5800 XM への対応です。
 

(2)PyNoteNdb 、PyNotePad 2つともメモノートです。

 ・起動直後に実行した抽出(検索やタイプ抽出)結果が表示されない(画面が更新
  されない→何か操作すると表示される)件を対策した。
 ・タイトルバーへ、ソートキーを表示するようにした。
 ・リスト再作成時はポインタを先頭へ戻すようにした。
 ・appuifw2を使えるようにした。これは、主に Nokia 5800 XM への対応です。

 

| | コメント (0) | トラックバック (0)

2009年4月28日 (火)

5800XM のファイルブラウザ

2009-04-28(火)晴れ

 Pythonスクリプトで、色々と5800XM用に改造している事もあり、ようやくちょびちょびと使ってみています。で、ひとつ気がついた点、内蔵ファイルブラウザの表示順がおかしいのに気がつきました。

Scxm0120a   Scxm0121a

 左で名前順のソートを指定すると、、、右のようになるのですが、一部が名前順になりません。

Scxm0122a

 一度、他のソート順を指定して並び替えて、それから名前順指定にすると名前順になります。
 ファームウエアの新しいバージョンも出ているようですが、それにすると何かがどうとか、某所で出ていたので暫く様子見をしています。

 

| | コメント (0)

2009年4月27日 (月)

5800XM でappuifw2を使う (python) その3(その2で終わらなかった)

2009-04-27(月)曇り、のち雨

  (使用法に追記しました。最後の注1の部分です。 2009-04-28)

 Nokia 5800XM のPythonでappuifw2(のスクロールバー)を使う話の続きです。前回、「5800XM でappuifw2を使う (python) その2(一応まとめ?)」とか書いたのですが、終わりませんでした。

 今までの話は下記です。(使い方とか問題点とか)

   「Nokia 5800 XM、 テキストエディタ py60tex に手を加えて、、
   「5800XM でappuifw2を使う (python)
   「5800XM でappuifw2を使う (python) その2(一応まとめ?)

 さて、上記の一番上では使い方として、HiisiさんのWEBで教えていただいた方法で使っていましたが、ひとつ悩みがありました。それは、まだ導入していないスクリプトでも有効にになってしまうことでした。

今までの使い方;下記の定義を追加する。
-------------------------------------
try:
    import appuifw2
    appuifw.Listbox = appuifw2.Listbox
except ImportError:
    pass
--------------------------------------

 この場合の悩みは
(1)スクリプトからインポートしたモジュールで使っていると、親モジュールでも有効になってしまう。親モジュールでも導入していれば良いのですが、そうでない場合問題です(*1)。

(2)導入したスクリプトを実行した後、Pythonを終了させずに次のスクリプトを実行すると、導入していないスクリプトでも有効になってしまう。(*1)

 *1:普通なら問題ないのですが、前回、前前回の記事のように、エラー対策を入れてないスクリプトで使うと、Pythonがダウンしてしまうことがあります。

 定義の場所変更(クラスの中に限定にしたい)、定義の再定義、DEL文追加、、とか色々やったのですが駄目でした。

 で、(エラー文を見ながら)最後に考えたのは、上記の方法はメソッドの定義を置き換えているが、単に名称の置き換えをしたらどうかと考えました。

新しい使用法:下記定義を追加する。
-----------------------------------------
try:
    import appuifw2
    appuifw = appuifw2
except ImportError:
    pass
-----------------------------------------

二つの方法の違いは、二つの文の違いにあります。
  appuifw.Listbox = appuifw2.Listbox
  appuifw = appuifw2

 とりあえず、いくつかのスクリプトでテストしたところでは希望通りの動きになりました。今までappuifw2を入れ込んできたスクリプトを変更して、やっとWEBに載せられそうです。

注1:使用法の追記 (2009-04-28)
  上記の新しい方法で、どれも問題なく動きました。appuifw2に無い機能は、そのままappuifwにパスされるようです。
 しかし、何となく気持ちが悪い場合は下記のような使い方が良いのかもしれません。この方法では、中の方まで手を加えないといけないのですが、どちらにしろ中の方まで対策しないとPython自体が落ちてしまう問題があるので、合わせて書き換えれば良いと思います。

----------今後の使用を考えている方法-------------------------
#先頭のインポート部分
appuifw2_exist = 0
try:
    import appuifw2
    appuifw2_exist = 1
except ImportError:
    appuifw2_exist = 0

#実際に定義している部分
    if appuifw2_exist == 1:
        self.lb = appuifw2.Listbox(self.entries, self.lbox_observe)
    else:
        self.lb = appuifw.Listbox(self.entries, self.lbox_observe)
--------------------------------------------------------------

 これが一番素直な方法かと思います。

 

| | コメント (0) | トラックバック (0)

2009年4月24日 (金)

5800XM とpyS60uiutil の互換性 (Python)

2009-04-24(金)曇り

 ここのところPythonの話が続きますが、、、先日「5800XM でappuifw2を使う (python)」で、appuifw2 と pyS60uiutil 使用上の悩みを書きました。その中の pyS60uiutil の互換性の件です。
 X02NK(キー有り)と5800XM(キー無し)では、ユーティリティのpyS60uiutilを同じように利用することができず、今まで2回ほど手を入れて使ってきました。pyS60uiutil_m と pyS60uiutil_mod_m です。(いきさつは上記リンクから芋づる式に見て下さい、手抜きです(汗)。そして、作者さんにメールまでしました。

 でも、やはりひとつで同じように使うには、スマートに行かないようです。pyS60uiutil_mod_m では、同じ作者さんのファイルブラウザ「pyFilemanager」で動かない機能があることが分かりました。どういう風にするのがいいのか検討してみましたが、解は難しいようです。

 まず、動作の比較検討表を作って検討してみました

S60uiutil_01

 表はクリックすると拡大します、、、が、見ない方が良いかもしれません。自分でもよく分からないような表です(笑)。まあ、後で思い出すための記録です。

 左右キーがないとフォルダ操作ができないことから、「.」や「..」を追加して対応したのですが、これがまた、オリジナルと違う動作を生み出して互換性が無くなってしまった部分があるわけです。

 対策案を考えてみたのですが結論は、「一本化できないから新しい道を行くしかない」ということですね。

案1:メニュー内に←、→を設け、オリジナルの動作のままとする。
   (表の黄色部を対策する。)

案2:メニュー内に「セレクト」を設けてフォルダの選択はこれで行う。動作はオリジナルと
   同じにする。 (表の水色部分を対策する。)

(1)案1,案2とも、pyS60uiutilやそれをコールしているスクリプト側に変更が必要である。
   (pyFilemanager など、既にあるスクリプト)など
(2)案1、案2とも統一性がない。(一部は「上下左右キー」または「タップ」、一部は
   メニューからになる。)

案3:一本化をあきらめた案
  ・pyFilemanager はオリジナルのpyS60uiutil か pyS60uiutil_m (リストを1行にのみ
   改造したもの)を使用する。 この場合は、5800XMでの使用はできない。
  ・今後のものは pyS60uiutil_mod_m (すなわち改造版)を使用する。ファイルブラウザ
   を作成してフォルダの操作をする人は必要な工夫をしてもらう。またはオリジナル
   のpyS60uiutil か pyS60uiutil_mを使用する事もできるが、5800XMでは使用できな
   い。もっとも、今更ファイルブラウザを作る人もいないと思うけど。

 ということで、一本化は諦めました。さて、これから自分の作るスクリプトでファイル操作をするときはpyS60uiutil_mod_m か、自分で作った「PyFbuiutil.py」を使うことにしてゆくつもりです。

 

| | コメント (0) | トラックバック (0)

2009年4月23日 (木)

5800XM でappuifw2を使う (python) その2(一応まとめ?)

2009-04-23(木)晴れ、のち曇り
 昨日の暑いような日と変わって、爽やかな温度の一日でした。

 さて、前回も色々書いた「5800XMでappuifw2を使う」件ですが、前回より若干分かって、対症療法も若干スマート(と言って良いのか?)になったので、まとめとして書いてみました。
 前回の記事はこちらです。
   5800XM でappuifw2を使う (python)

 なお、Nokia 5800 XMは OSがS60 5th であり、appuifw2 は S60 3rd 用らしいので、本来使って良い環境ではないのかもしれません。しかしスクロールバーは、キー無しの携帯電話でこそ使いたいはずです。そう言う意味で、しつこく使ってみているわけです。その辺(OSの違い)を承知の上でお読み下さい。

 さて、動作させて色々とトレースをした結果、エラーになるのは次の場合のようです。ただ、appuifw2のコードを見たわけではありませんので、あくまでテストしてエラーの出る箇所を特定しただけです。

エラーの発生条件:
 新しいリストを作成して set_list でリスト切り替えを行ったとき、次の条件が成立するときにエラーになります(Pythonがダウンしてしまう)。
 ・以前のリストが表示されている画面上で、16番目以降の項目を選択している。
 ・新しく作成したリストが、上記の選択されている項目の番号より短いとき。

図3に、この関係を記してみました。(図はクリックすると拡大します。)

Appuifw2_3

 対症療法は以下の通りです。

(1)前回書いたように、リストの再作成が発生したら毎回「appuifw2.Listbox」の設定を
  行う。(これにより、ポインタが0に戻るから)

(2)リスト作成時に、ダミー項目を入れて長くする(全部同じ長さが良いか)。

(3)新しいリストを設定する前に、旧リスト(か長いダミーリスト)を使い、set_list(list,0)
  でポインタを0に戻す。

 画面を見ていて一番違和感がないのは(1)です。が、なんとなくしっくりこないのは、本来一回やればよいはずの「appuifw2.Listbox」を毎回やる事でしょうか。

 ということで、(3)で旧リスト(現在表示されているリスト)を使って、ポインタを戻すことにしました。一瞬、旧リストの先頭部分が表示されますが、これが良いかなと思います。
 (2)は、不要な項目がリスト上に表示されますから本来的ではないでしょう。

 対策の図を載せてみました。

Appuifw2_4_2

 注2の部分が対策の部分です。

------------------------------------------------------------------------
注意:
 前リストのコピー作成のときに注意が必要です。例えば、
  list_bak = list
 とやるといいように見えますが、まずいかもしれません。listの全データが、全く新しいlist_bakに代入されるのではなく、ポインタで指示されるだけかもしれません。この場合は、片方を変更すると他方も変わってしまいます。絶対に新しく作られる方法が必要です。

 これなら大丈夫な例:
list_bak = []
for x in list:
    list_bak.append(x)

あるいは
list_bak = [x for x in list]

あたりでしょうか。
-------------------------------------------------------------------------

 色々やってきましたが、当面はこれで使うことになりそうです。後は、S60 5th対応になるか、Python 1.9.x(あるいはPython 2.0.x ?)で、完全にタッチスクリーンタイプ携帯に対応されるのを使うか、、ですね。

 

| | コメント (0)

2009年4月17日 (金)

5800XM でappuifw2を使う (python)

2009-04-17(金)曇り、夕方小雨

  (appuifw2使用については続編があります。そちらも見て下さい。2009-04-23追記)
    5800XM でappuifw2を使う (python) その2(一応まとめ?)

 Pythonでいくつかスクリプトを書いてきたり、他の方のをいじったりしてきましたが、X02NK(キー有り) と 5800XM(キー無し、タッチスクリーン式) で、操作というか使い方の互換性を持たせるのは大変だと言うことが分かってきました。
C++とかでネイティブなアプリを作ればいいのでしょうが、できない辛さです。

大変な理由は、5800XMには「上下左右キー」がない、と言うことです。

(1)左右キーがないことでpyS60uiutilではフォルダ階層が上下に移動できず、結局 pyS60uiutilをいじったこともありました。(pyS60uiutil_mod_m)

   「Python スクリプト 雑記」のpyS60uiutil 参照

 弄っては見たものの、これはこれで問題というか、オリジナルと互換性のない部分があるということが分かって頭を悩ましているところです。

(2)上下キーが無いことで、スクロールが難しいことです。スクリーンを触って上下させることでスクロールはしますが、一寸した力の加減で途中のアイテムが選択されてしまい、舌打ちしながら最初からやり直し、、という事になるわけです。

 使ってみた記事は「Nokia 5800 XM、 テキストエディタ py60tex に手を加えて、、」あたりを参照。

 さて、上記(2)については 「appuifw2.Listbox」を使うという解がありそうだったのですが、5800XMでは途中でダウンしてしまうので、うまく使えていませんでした。appuifw2 のListboxは、pys60に内蔵されているappuifw.Listboxの代わりに使うもので、スクロールバーが表示できるものです。

 放ってあったのですが、最近またテストして何とか使えるようになりました。スクリプトの中にデバッグ用の行を山ほど埋め込んでトレースしました。
 もちろん、appuifw2のコードは読めませんしSymbianの中も分かりませんから、あくまで対症療法です。

対症療法 : 表示するリストを作成するごとに、appuifw2.Listbox のインスタンスを生成すると動く。 ← 如何にも対症療法です(汗)。

 本来、Listboxの使い方は「図1」のような使い方だと考えていました。(図はクリックすると拡大できます。)

Appuifw2a

 事実そのように読める解説もありましたし、appuifwでは問題なく動いていました。しかし、appuifw2ではダウンしてしまうのです。で、使えるようになったのは「図2」の使い方です。

Appuifw2b

 図2では図1と違って、下の方で、毎回appuifw2.Listbox のインスタンスを生成を行っています。(注2の部分)

 注1の部分でリストが再作成されたとき、注2のところのリストボックス処理を入れないと、次ぎにアイテム選択されたときにコールバック関数がコールされず、ダウンしてしまいます。
  (訂正:コールバック関数はコールされるが、その処理の中でset_listが実行されたときにダウンする事がある。詳細は先頭に書いてある続編参照下さい。 2009-04-23)

 さて、動くようになったとは言っても、この使い方が正しいかどうかは、これからの勉強ですが、とりあえずは5800XMで動くようになりました。忘れないためのメモ代わりに記述してみました。また、同じように穴に落ち込んでいる方の参考にでもなれば幸いです。

 なお、今使っているPythonは1.4.4 ですが、1.9.3 以降になればこんな悩みは無くなるのかな(タッチサポートとかいうので)と期待して見ています。

  

| | コメント (0) | トラックバック (0)

2009年4月11日 (土)

Python : 5800 XM 用画像一覧アプリ PyMyViewer 更新

2009-04-11(土)晴れ

 大分前に作成して、不便なまま使っていた「5800 XM 用画像一覧アプリ PyMyViewer 」を更新してみました。とはいえ、いつものように実質の動作は変わらず、UI部分の変更だけですが、、、。

■機能概要
 Nokia 5800 XMでは目的の画像を簡単に一覧するのが難しいのでPythonによる画像一覧スクリプトを作成しました。 このスクリプトは Nokia 5800 XM 専用です。画面サイズの数値が決めうちだからです(それも、縦画面だけです)。

■今回の変更点
 ・ディレクトリ選択から、すぐに表示画像選択に移るようにした。
  これに伴い、メニューを一部変更した。
 ・ini ファイルの場所を変更した。E:\Data → E:\Data\masa
 ・ファイルブラウザ内蔵を廃止し、Fbuiutil を使用した。
 ・その他、細かな修正(赤い枠表示のサイズ、その他)

 あわせて、テク’ノートの「Python スクリプト 雑記」に載せました。
    「13. 5800 XM 用画像一覧アプリ PyMyViewer」

 

| | コメント (0) | トラックバック (0)

2009年4月10日 (金)

python スクリプト起動用スクリプト、ファイルブラウザの更新

2009-04-10(金)晴れ

 スクリプト起動用スクリプト「PyMyShell」、「PyMyShellF」とファイルブラウザ「Filebrowser]の更新を行いました。

 スクリプトの概要とモジュールは、例によって
「テク’ノート」の「Python スクリプト 雑記」を参照下さい。

    8.スクリプト起動用スクリプト
    12.簡易ファイルブラウザ
の項です。

(1)スクリプト起動用スクリプト

 「PyMyShell」、「PyMyShellF」は結果的に、それぞれ内蔵させたファイルブラウザを外出しにして、PyMyShell_002_0 に一本化しました。内蔵させておくと変更があったときに手を加える対象が多くなるからです。
 ブラウザは他のスクリプトと同じく、リストから実行させます。  

 内蔵させていたブラウザのうち「Filebrowser」は同梱しましたが、「PyfilemnagerS60」は同梱できないので、内蔵させたバージョンも更新しました。
PyMyShell_001_1、および PyMyShellF_001_1 です。

但し、今後のバージョンアップ(あるのか?(笑))は一本化したバージョン PyMyShell_002_0 のみになる予定です。
 

(2)ファイルブラウザ

 これは、もともと内蔵させるためのものでしたが、上記で外出しにしたため独立させました。あまり、使い道は無いのですが。
 まあ、敢えて言えば拡張子連動でテキストをpy60texで開いたり、Pythonスクリプトを起動したりできることぐらいでしょうか。
 Filebrowser_001_0 です。

 

| | コメント (0) | トラックバック (0)

2009年4月 9日 (木)

Python メモスクリプトのVer up (PyNoteNdb と PyNotePad)

2009-04-09(木)晴れ

 ずっと放ってあったスクリプトのバージョンアップを、やっとまとめました。といっても、自分でも余り使っているとは言い難いスクリプトですが、、、。

 主な変更は、
 ・取り込むファイルの決めうちをやめて、ファイルブラウザで選択できるようにした。
 ・その為の操作部分に、先日書いたユーティリティ(PyFbuiutil)を使うようにした。
 ・リスト表示の時、3種類のソートを選べるようにした。

などです。

来歴(抜粋)
003_0 :  2009-03-20
 ・旧ファイルのインポートをメニュー化した。(以前は強制的に読み込み)
 ・インポートするファイルをファイルブラウザで選択できるようにした。
  これにより org_file 指定を廃止した。
 ・最初に開くデフォルトパス指定ができるようにした。
 ・リスト表示時のソート(3種類メニュー化)を入れた。
 ・左矢印キー、右矢印キーで、指定した行数ずつジャンプするようにした。
 ・その他、細かな修正
  (ファイル名の u'' 廃止、Conf データのチェックなど)

実体は、例によって「テク’ノート」の「Python スクリプト 雑記」に載せました。

記事  4.ノートデータベース PyNoteNdb
     5.ノートデータベース PyNotePad
です。

 

| | コメント (0) | トラックバック (0)

2009年3月27日 (金)

ファイルユーティリティ PyFbuiutil

 昨日の「PyShopper」に同梱したのですが、個別に書いておくことにしました。

 ディレクトリをブラウズしてファイルパスを取得するユーティリティ「PyFbuiutil」を作成しました。
 以下は、同梱テキストの一部を取りだして見ました。(記事用に修正していますが。)

ファイルユーティリティ 「PyFbuiutil」

1.概要
 PyFbuiutilは、ファイルをブラウズしてファイル名(ファイルの絶対パス)などを得るためのユーティリティです。すでに、高機能なユーティリティとしてpyS60uituilがありますが、高機能ゆえに規模も大きく、自分の小さなスクリプトには針小棒大すぎるので、簡易な物を作成しました。
 また、単にファイルパスを返すだけではなく、読み込み用ファイル、書き込み用ファイルのパスに合わせて、確認メッセージなどの処理(上書きOK?など)を行ってからファイルパスを返す機能も設けました。

2.機能説明
 2つのクラスがあります。

2.1 Fbrowserクラス
 ディレクトリをブラウズして、選択したディレクトリまたはファイルの絶対パスを取得するためのものです。

2.2 Getpathクラス
 読み込みファイルのパス、データを書き出すときのファイルのパスを取得するためのものです。書き込みファイルの場合は新規ファイル名を入力させたり、既にあるファイルの場合は上書き許可の確認なども行ってから、ファイルパスを返します。

-------------------------------------------------------------------------

 今までpyS60uiutil を改造したり、或いはfilebrowser を内蔵させたりしていましたが、これでは保守の時に沢山のスクリプトを修正する必要がありました。そこで、ユーティリティとして切り出したわけです。自分のスクリプトに合わせた小さなユーティリティと言うわけです。

 モジュールは テク’ノート Python スクリプト雑記 に載せました。

    「11.ファイルユーティリティ 「PyFbuiutil」

 

| | コメント (0) | トラックバック (0)

お買い物リスト PyShopper

2009-03-27(金)晴れ

 昨日書いたお買い物リスト「PyShopper」ですが、今日の夕方スーパに寄ったときに使って見ました。うん、なかなか使いやすいです(笑)。まあ、自分の使いたいような内容で作ったから当たり前ですよね。

 でも、多分親の欲目だろうなあ、、。他の方から見たら、そこが一短(一長一短の)だったりしてね。でも、PCで買い物商品データを編集して取り込めるのは、良いアイデアだったと自負しています。
 もちろん今までの物でも、PCで作ってメールで送ったりWEBにアップして携帯電話で見るとか言うのはありました。が、結構面倒なので、CSVで取り込む方が簡単で良かったと思っています(あ、これも欲目だな、、)。

 

| | コメント (0) | トラックバック (0)

2009年3月26日 (木)

Python ショッピングリスト PyShopper

2009-03-26(木)あられ、雨、のち晴れ

 今朝は、音を立ててあられが降っていました。畑が白くなったのですが、直ぐにやんで溶けてしまいました。でも、気温は低かったですね。桜の開花の進行は、また遅れたようです。

 さて、題名の記事です。

 以前、ショッピングリストについてはいくつか試して結果を書いたことがあります。その後、Handy Shopper なども出てきたのですが、なかなか自分に合ったのは無いのが現状でした。もちろん、どれも良かったのですが、自分の欲しい機能からすると一長一短の部分があり、一短の部分が気になっていました。

 ならば、自分ででっち上げてみようと思ったのが、この「PyShopper」です。まだ、いじり回しているのでテストが完了しているとは言いにくいのですが、ベータ版として載せてみました。

 役に立つのかどうかは、もっと使ってみるまで分かりません。

 以下は同梱ドキュメントの一部です。

1.機能概要:

 PyShopperは、その名の通りお買い物リスト用のスクリプトです。 購入商品の名称ではなくTo Doやメモ項目にして使用することもできます。

  項目一覧から購入が必要な品物を選んでクリックし、購入リストを作成します。 購入時は購入品リストを見ながら買い物し、クリックすると購入完になります。

(1)カテゴリ
   商品のカテゴリ(野菜、肉類、等)は、リスト先頭の部分を書き換えて使用するか設定ファイルで設定します。

(2)購入ステータス
   購入完、未購入の二つがあります。項目をクリックすると反転します。
    [ ]:購入済
    [v]:購入要(未購入)

(3)購入商品
   商品の項目は下記のいずれかです。
    ・CSVファイルを作成して、インポート機能で読み込
    ・手で1項目ずつ入力する。
   なお、入力されている項目のカテゴリや商品名は、アプリから変更できます。

(4)インポート機能
 CSVファイルで作成された商品リストを取り込む機能です。
 以前の内容をクリアして取り込みます。

(5)エクスポート機能
 中にある商品リストをCSVファイルに出力する機能です。
 フォーマットは(3)のCSVファイルと同じです。(インポート機能で取り込みができます。)

Sscx0466

 実際の画面です。すべて表示させています。これで、クリックしながら購入が必要なものを選んでゆきます。[v]のついたものが購入要のものです。
 

Sscx0467   Sscx0469

 左は購入時の画面です(購入要のものだけ表示させている)。めかぶを買い終わってクリックすると画面から消えます。購入済みのステータス側に廻ったわけです。

 
Sscx0470  メニュー画面の様子です。

Sscx0464

 これは、CSVファイルからの取り込み作業中画面です。結構、時間がかかるので進行中表示を入れてみました。

-------------------------------------------------------

ファイルは、「テク’ノート」の「Pythonスクリプト雑記」に載せました。
 「10.ショッピングリスト PyShopper

--------------------------------------------------------

| | コメント (0) | トラックバック (0)

2009年3月12日 (木)

ドキュメント化と整理が必要

2009-03-12(木)晴れ

 先日も、お買い物リスト用スクリプトを検討中と書いたのですが、部品として使うために今までのスクリプトを見たら、、、、う~ん、きちんとした整理が必要ですね。

 まず第1に、それぞれにきちんとしたドキュメントを添付する必要があります。段々、自分でも分からなくなってきますし。

 第2に、その後勉強したり作成した部品に対応させて、綺麗な形に修正する必要があります。整理した部品を使用すると分かりやすくなります。

 第3に、WEBにまとめた記事も改訂しないといけないです。特に、新しいモジュールを掲載しないで古いまま、というのはまずいです。

 などと、分かってはいるのですが、一旦書いてしまうと改訂が面倒になるのはさぼり癖が出るのでしょうか。

Dscx635a

 こうやって、小さく切った紙に一件/1枚で書いてメモしているのですが、なかなかできません。しかし、この写真を載せてしまうと、TODO管理用に作ったPyNotePadを使っていないことがバレバレだなあ、、(汗)。

 

| | コメント (0) | トラックバック (0)

2009年3月 8日 (日)

ショッピングリスト お買い物は携帯持って5

2009-03-08(日晴れ

 暫く前にベータ版の事を書いたHandy Shopper (お買い物リストアプリ)は、既に製品版がリリースされています。多分、日本語化も終わっているはずです。日本語がどうなっているか、本来なら早速入れて試すところですが、まだやっていません。何でだろう、、。
 ベータ版を使った感じではなかなか良い雰囲気でしたが、ライセンスが無いから期限切れになるのがいや、と言うのもあります。

 製品サイトはこちら (N95用のページですが)

 さて、お買い物リストはフリー版にも沢山あり、以前比較した記事を書いたこともあります。

 テク’ノート の「ショッピングリスト」の項です。

 フリー版はどれも、自分の要求からすると一長一短だなあ、、、と言うのが正直な感想です。良くできていますが、結局各人の要求が違うということなのでしょう。では自分で、「一長」の部分はのばせなくても、「一短」部分を減らせばいいのではないかという結論に到達しました。

 と言うことで、本日は半日近く図書館にこもりました。本当はエコ生活のため(*1)ですが。(自分の懐のエコ、と言う説もありますが、、(笑)。)

 *1:家でやるとパソコン部屋のエアコンを使うことになりますが図書館に行けば、そのエアコンは不要になります。図書館は、私が行かなくてもエアコンは使っているのですから行った方が、トータル電力は少なくなるわけです。

Pythonで、お買い物リストを作成してみました。まだ、ベータテスト中ですが、、。

Sscx0463

 こんな感じの画面になる予定です。自分の都合の良いように書いたので、自分では使いやすいかなと思います。まあ、他の方から見れば、また別の要望があるのでしょうが。テストと改造継続中です。

 

| | コメント (0) | トラックバック (0)

2009年3月 4日 (水)

出た!再起動、、丹沢の麓編

 とうとう出た?、或いは最近の都内の問題とは別か不明ですが、とうとう出てしまいました。朝方に1回、X02NKが勝手に再起動に入ってしまいました。

 出たときの状態 : MMS受信通知があったので受信しようとしたがなかなか受信できなかった。(パケット通信の矢印が実線にならない。)「受信中」表示が暫く続いた後に再起動に入ってしまった。

Sscx0461

 先日書いた、再起動記録スクリプトの記録です。一番下が、その時の記録です。今回は記録はなくても分かりました。上記の通り、見ている前で出ましたから。頻発するようにならないことを祈ります。

 

 

| | コメント (0) | トラックバック (0)

2009年2月27日 (金)

Python 目覚まし用音楽再生 PyMusicSP

2009-02-27(金)雨/寒い

 目覚まし用に音楽を再生するスクリプト(PyWakeUpSP)を改変しました。今までは「.py」スクリプトのまま使っていたので、操作とかは組み込んでいなかったり、一曲のみの再生でしたが、操作を入れたりプレイリストの全曲を再生できるようにしてみました。
 その代わり、sis版をインストールしないと、PyTaskserverからは起動できなくなりました。

--------------同梱テキストから(手抜きです)---------------------------
■機能:
 これは目覚まし代わりに起動して、音楽ファイルを演奏させるものです。
起動は「Pytaskserver」(Hiisiさん作)で行います。

 重要:操作処理があるため、「.py」スクリプトのままでは「Pytaskserver」
    からは起動できません。sis版をインストールする必要があります。
    Pythonから起動して動作させる場合は「.py」のままで動きます。

 音楽ファイルはlstファイル(プレイリスト)に設定された音楽を、毎回ランダムに
選択して演奏することができます。名称のSPはシャッフルプレイのつもりです(笑)。
 1曲のみ/連続の再生、先頭から/ランダムで再生 を指定することができます。
また、ボリューム操作やストップ、スキップの操作ができます。

 注:似たスクリプトに下記があります。
  ・PyWakeUp(決めた一曲のみ再生)
  ・PyWakeUpSP(リストからランダムに選曲して一曲のみ再生)
  これらは基本的に操作はありません(曲の途中で止めることはできますが
  ボリュームなどは決めうちです。)
  なお、こちらは「.py」スクリプトのまま「Pytaskserver」から起動できます。
  上記については、下記を参照下さい。
   http://www.ne.jp/asahi/myhp/masa/gsm3g/note/pythonframe.htm

---------------------------------------------------------------------

 ということで、詳細は同梱テキスト参照して下さい。

ダウンロードは下記の「テク’ノート」からお願いします。

  「テク’ノート」 目覚まし用音楽再生 PyMusicSP

----------------------------------------------------------------------

 画面のスクリーンショットなどを載せてみました。

Sscx0457   Sscx0460

 左は再生中の画面です。この指定は「ランダム・全曲」なので演奏される曲のリスト(ランダムにした後)が出ています。先頭に*のあるのが再生中の曲です。右はアプリ情報の画面です。こういう所に凝っちゃって、、、(笑)。

Sscx0458   Sscx0459

 追加したメニュー画面です。今までも(PyWakeUpSPで)困っていないのに、つい手を入れたくなる癖が出ました(笑)。

 

| | コメント (0) | トラックバック (0)

2009年2月26日 (木)

再起動ログアプリを修正しました

2009-02-26(木)曇り

 先日書いた「Python- 再起動日時を記録するスクリプト」を、ちょっと変更しました。

・「.py」ファイルの最後の行(sys.exit())をコメントにしました。そのまま、使った場合は不要のためです。(sis化する場合は必要)

・名称を短くしました。PyBootUpLog → PyBootLog

あまり、動作には関係ない話ですが、、、。

 

| | コメント (0) | トラックバック (0)

2009年2月25日 (水)

PyMyShell sis化してインストールした。

2009-02-25(水)雨、のち曇り

 Pythonスクリプトのsis化が、携帯電話の中で簡単にできるようになったので、いくつか簡単なもの(昨日の再起動ログ採取とか)をsis化して入れました。インストールして入れるのも便利ではあります。何より起動が楽ですね。シェルにも登録できるし。

 とは言え、今まで作成したスクリプトを全部sis化して入れるのも何だかなあ、、という思いはあります。それに、sis化して無ければ直ぐにエディタで変更して使うこともできますし。

 と言うことで、以前作成した「スクリプト起動用スクリプト PyMyShell」の出番です。これをsis化して入れて起動しておけば、ここからの起動は速くなります。

Sscx0456   Sscx0455

 左はJBakTaskmanに登録したところです。右はPyMyShellの画面です。ここから起動されるのはすべて「.py」のままのスクリプトですが、結構速く起動します。

 

| | コメント (0) | トラックバック (0)

2009年2月23日 (月)

Python- 再起動日時を記録するスクリプト

2009-02-23(月)雨、のち曇り

   (スクリプトファイルを変更しました。ファイルのところの注:参照 2009-02-25)
   (名称を短く変更しました。PyBootUpLog → PyBootLog
    スクリーンショットは変更前のままです。              2009-02-26)

 先日、都内で発生しているとか言う再起動について、野次馬的検証を兼ねて秋葉原に行こうかという記事を書きました。再起動を確認すると言っても、ずっと画面を見ているわけには行きませんから、自動で記録するスクリプト(超・簡単・やっつけ的スクリプトですが)を作って入れてみました。
 とりあえずは記録できるようです。

Sscx0452   Sscx0454

 左はインストールしたアイコンです。最初は「.py」のスクリプトのまま使っていました(*1)が、SIS化してインストールしてみました。右は、PowerBootに登録したところです。

 *1:「.py」のまま使用する場合は「PyTaskServer」から起動します。
    インストールした場合は「PowerBoot」から起動します。

 
Sscx0453

 記録結果です。23日19時のログはテスト用の再起動のログです。

------------------------------------------------------------

1.動作
  起動される度に、起動されたときの日時を記録します。

2.使い方
  sis版をインストールした場合は「PowerBoot」に登録します。これで、再起同時に起動されてログが採取されます。

  スクリプトのまま使う場合は「PyTaskServer」に登録して起動します。「PyTaskServer」への登録は、先頭が”!”のオプションで登録します。(時間指定は空白、曜日指定は全曜日にします。)

3.設定など
  ログは  「E:\Data\masa\PyBootUpLog.log」  「E:\Data\masa\PyBootLog.log」と言うファイルに採取されます。
「E:\Data\masa\」というフォルダは作成しておいてください。(ファイルはスクリプトが自動で作成します。)

------------------------------------------------------------
ファイル(ご使用は自己責任でお願いします。)
  「PyBootUpLog.py」  (修正しました。下記注を参照 2009-02-25)
  「PyBootUpLog_v0_1_0.sis」  

  「PyBootLog.py」     (名称を短く変更しました。 2009-02-26)
  「PyBootLog_v0_1_0.sis」

モジュールは下記に移動しました。(2009-07-08)
Python スクリプト 雑記」 の「15.再起動日時記録スクリプト -PyBootLog-」

注:・最後の行の「sys.exit()」をコメント化しました。スクリプトのまま実行する場合は
   不要のためです。

  ・sis化する場合は、最後の行「#sys.exit()」をコメントで無いようにしてください。
   → 頭の「#」を削除する。保存はutf-8で行ってください。

  ・「E:\Data\masa\」というフォルダは作成しておいてください。
------------------------------------------------------------

 

| | コメント (4) | トラックバック (0)

2009年2月22日 (日)

動いた! Python sis化 on 携帯電話 -py2sis-

2009-02-22(日)晴れ、のち曇り

 万歳!、動きました。Python (スクリプト) sis化 on 携帯電話 -py2sis-です。

 携帯電話の上でPythonスクリプトをsis化するアプリ「py2sis」ですが、前回、色々なバージョンで試したのですが動いていませんでした。試したバージョンは
 ・py2sis 090
 ・py2sis 103
 ・py2sis 192
でした。しかし、インストールできて、起動はするものの途中から動いていませんでした。
 今回、再度・py2sis 192をテストしました。何が変わったのか分からないのですが動きました。

携帯電話はX02NK、Python 1.4.4 、Python scriptshellはサインして入れる方のものです。

 ダウンロードはここです。py2sis_1_9_2

 作者のサイトはここです。(操作例など載っています)

1.インストール
  上記からダウンロードしてインストールします。確か、そのままインストールできました。
  今回、気をつけたのは下記です(影響あるかどうか不明ですが)。

  注意点:Pythonと同じドライブにインストールした。両方ともC:ドライブ

  (前回後、py2sisでソースを使っていると書いてあるPEDを同じディレクトリにインストールしましたが、関係ないと思います。これは、自分メモ)

2.操作
  操作例は上記の作者のWEBにある画面例と一番下に示す私の画面例(テキスト)を見て下さい。
  注意点1:path to script (操作例参照)では、拡張子まできちんと記入する。
       スクリプトへのパス名(フルパス記述)が違うと、前回と同じで
       動かなくなります(ハングアップしたように見える)。

  注意点2:余分なアプリは終了させて、メモリが多い状態でやった方が良いかも
        しれません

3.スクリーンショットなど

Sscx0442   Sscx0443

左:一番右下がアイコンです。
右:起動した直後の画面です。Version:1.09は何のバージョンでしょうか。内部バージョンなのかな。ダウンロード時の名称はpy2sis_1_9_2です。この画面では表示が出ていませんが、左ソフトキーがオプションキーです。
 

Sscx0444

 オプションメニューで「py2sis」を選んで、操作を開始します。これ以降の画面は最後の操作例を見て下さい。

 
Sscx0445a   Sscx0445

 左は動かなかったときの画面です。スクリプトのパスを入力したところから進みませんでした。右は、今回の動いた画面です。スクリプトのパスを入力すると次の質問が出ます。

 
Sscx0447_2   Sscx0448

 左は一回目に作成して、何故か動かなかったモジュールです。インストールはできたのですが動きませんでした。右は、動いたモジュールです。両方ともデフォルトのアイコンを指定したのに何故か違います。その後も作成した動くモジュールのアイコンは右のアイコンです。

 とにかく動いて、凄く嬉しいです。何しろ、これで携帯電話だけ持ち歩いても、Pythonスクリプトを修正した後SIS化してテストできるわけですから

 
4.操作例:

 ・最初に動いたモジュールの操作例です。
 ・単独で動くモジュールの例です。
 ・よく分からないオプションは、無しの方と思われる指定を行いました。
 多分、問題ないはずですが、間違ってたらごめんなさい。分かる方、指摘お願いします。

(1) 注意点を記入した画像版です。(クリックすると大きくなります)

Py2sisoperation

 
(2) テキスト版です。(注意点は書いていません。)

-------------------------------------------------------------------
>>> ===== py2sis =====
>>>
path to script:
>>> e:\pydingdong.py
add files to project? - y - yes, or n - no :
>>> n
version:
>>> 0.2
appname:
>>> PyDingDong
UID  (0x12345678), or get new write - a :
>>> a
pydingdong: warning: no UID given, using auto-generated test UID 0xe5c7a4fb
path to icon (*.svg or *.mif), or use default write - a :
>>> a
default icon.
shortcaption:
>>>
caption:
>>>
vendor:
>>> masa
path to info.txt , or write - a :
>>> a
for devcert sign write - a , for selfsigned sign write - s :
>>> s
if you want add avtostart write - y else - n
>>> n
if you want application started after installanion  write - y else - n
>>> n
making sis.
your file - e:\pydingdong_v0_2_0.sis

for exit write - exit: exit

-------------------------------------------------------------------

| | コメント (0) | トラックバック (0)

2009年2月13日 (金)

Python エディタ--PED

2009-02-13(金)晴れ、薄曇り

 某掲示板で、使い勝手が凄く良くなったと知ってダウンロードしたエディタです。

 PED ダウンロードはこちらでした

インストールしてみたら、とても使いやすいエディタです。新しいファイルを開くとき、Pythonスクリプト編集用と通常のテキスト編集用のどちらかを選ぶことができます。Pythonスクリプト編集用は当然、Pythonスクリプトを編集するとき便利です。

Sscx0435

 スクリプトを編集中の画面です。フォントサイズを小さくすると、見通しが良くなってスクリプトを編集しやすくなります。

Sscx0434    Sscx0436

 表示フォントサイズ変更は他のエディタでもできますが、やはりその他の部分で便利なところがあります。
 左は、以前に開いたファイルを直ぐに開くことができる「Recent files」、右は編集中のスクリプトを直ぐにランさせることができるメニューです。編集しながらデバッグするときに便利です。

 アイコンもPythonライクで見やすくて好きです。

 

| | コメント (0) | トラックバック (0)

2009年2月 9日 (月)

pyS60uiutilを弄る・その後 Lasseさんから返事が来た!!

 昨日書いた「pyS60uiutilを弄る・まとめ Lasseさんにメールした。」の件は直ぐに、作者のLasseさんから返事が来ました。
 今は色々立て込んでいるから、直ぐにはできないが一ヶ月くらいしたら変更を考えてみるとの事でした。Nokia 5800 XM 使うには、もう少し検討が必要かもしれません。だから、どうなるか分からないけど、楽しみに待つことにします。

 いずれにしても、Lasseさんのスクリプトを使っているものが日本にもいます、、と言えただけでも満足です。

 

| | コメント (0) | トラックバック (0)

2009年2月 8日 (日)

pyS60uiutilを弄る・まとめ Lasseさんにメールした。

2009-02-08(日)晴れ

 先日、自分がNokia 5800 XM で使うために改変したpyS60uiutil の事を書きました(最初に変更のコーディングをされたのはs60_themeさんですが)。

 その記事 「Nokia 5800 XMとpy60tex 、pyS60uiutilを弄る まとめ

 本日、原作者の Lasse Huovinen さんにメールしました。 ろくな英語も書けないのに、図々しく、、、(汗)。

Mail2lasse

 この件に関しては、いずれ作者の方にメールしたらどうですか?と、Hiisiさんに言われておりました。「お手紙が苦手でも、作者はリストで分かってくれるでしょ、、」と、、。

 改編内容はともかく、Nokia 5800 XM では困っていて、何とか工夫しながら使っていますよ、、と言うことが伝われば喜んでくれるのではないかと、中学生の英語(最近は中学生といえども侮れないけど、、)をひねり出しました。遠い日本でも使っていることが分かって喜んでくれれば嬉しいです(この世界では距離は関係ないか、、)。

 「I am wishing you to correct this matter with pyS60uiutil on nokia 5800 XM
in right way.」って締めくくったけど、文章として合ってますかねえ。まあ、分かってくれるでしょう。(指摘、添削、歓迎。、、なら全部載せろ、、ですよね。)

 

| | コメント (0) | トラックバック (0)

2009年2月 5日 (木)

Nokia 5800 XMとpy60tex 、pyS60uiutilを弄る まとめ

2009-02-05(木)曇り

 以前にNokia 5800 XMでpy60texを使うためにpy60texを弄ったり、pyS60uiutilを弄ったりの記事を書いたことがありました。その関係でpy60texの作者s60_themeさんが、Nokia 5800 XM対応にしたpyS60uiutil(pyS60uiutil_mod)を公開して下さいました。

 それを使って自分用に変えたり、実際にNokia 5800 XM で使ったり、いくつかのスクリプトで使用してみる、、などをしていました。(途中さぼっていたので遅くなったことは内緒です(笑)。)一応、キーボード有りの携帯との互換性などもできたので、せっかくなので自分用の変則仕様ではありますが、載せてみたいと思います。

 実際のモジュールは「テク’ノート」に載せました。(9.の記事です。)

まず、以前の記事一覧です。
 「Nokia 5800 XMとpy60tex 、pyS60uiutilを弄る」
 「Nokia 5800 XM、 テキストエディタ py60tex に手を加えて、、」
 「Nokia 5800 XMとpy60tex 、pyS60uiutilを弄る その2」

s60_themeさんのサイトです
 「pyS60uiutil_mod.pyを公開」

 文面が面倒なので同梱したテキストの抜粋です(手抜きです)。
--------------------------------------------------------------
【 はじめに 】
 本ファイブラリは、s60_theme氏のpyS60uiutil_mod.pyに下記改変を加えたものです。
なお、pyS60uiutil_mod.pyは、Lasse Huovinen氏作成のpyS60uiutil.pyにs60_theme氏が
改変を加えたものです

【 改変の目的  】
 改変の目的は、Nokia 5800 XPress Musicなど、キーボードを持たない携帯電話に対応
させるためです。

【 改変内容 】
 pyS60uiutil_mod.pyに対する改変内容です。
  1."."や".."を先頭に表示した。
  2.ルート表示の場合、各行に"Drive"表示を入れた。
  3.タイトル行へのパス名表示を削除した。
     pyS60uiutilをコールする処理がタイトル行に指示を表示しているとき
     その表示を隠してしまうため。
  4."."や".."を選択時には(Noneではなく)(カレントディレクトリ名,'')を
    返すようにした。(コールするスクリプトとの整合性拡充)
    (reveal_current_locationモジュール)
  5."."や".."の上で右キー(キーのある携帯の場合)を押した場合、何も
    しないように変更した(互換性)。

 結果として、pyS60uiutil.pyからの改変内容は次のようになります。
  1."."や".."の表示を追加した
  2.ディレクトリを選択(クリック)時、選択したディレクトリへ移動
  3.".."選択時、親ディレクトリへ移動
  4."."選択時、現在のディレクトリパスを返す
  5.ディレクトリ/ファイル表示を1行表示に変更
  6.ルート表示の場合、各行に"Drive"表示を入れた。
  7."."や".."を選択時にはNoneではなく、(カレントディレクトリ名,'')を
    返すようにした。(コールするスクリプトとの整合性拡充)
    (reveal_current_locationモジュール)
  8."."や".."の上で右キー(キーのある携帯電話の場合)を押した場合、何も
    しないように変更した(キーのある携帯電話との互換性)。

【 改変モジュール一覧 】
    reveal_current_location
    __process_user_evt
       dir == None: の部分
       dir == 'next': の部分
    __read_dir_content
    __open_default_directory
    __get_index

【 使用法 】
 pyS60uiutil_mod_m.py を pyS60uiutil.py にリネームしてライブラリフォルダに入れ
ます。(例:E:\Python\LIB あるいは C:\Python\LIB など)
 オリジナルのpyS60uiutil.pyと使い分けたい場合は、オリジナルとは別のフォルダに
入れて下さい。そして、pyS60uiutil_mod_m.py 側を使いたいスクリプトの中でsyspath
の先頭に該当フォルダのパスを通して下さい。
--------------------------------------------------------------

 これで自分の携帯電話の中では一本化(キーボードなし、キーボード有りの携帯電話双方で使える)できたので、暫くはこれで使ってみようと思います。

 

| | コメント (0) | トラックバック (0)

2009年1月27日 (火)

Nokia 5800 XMとpy60tex 、pyS60uiutilを弄る その2

2009-01-27(火)晴れ

 もう先週の事になるのですが、pyS60uiutil をNokia 5800 XM でも使えるように手を加えたものを、s60_theme さんが公開して下さいました。(LGPLのライセンスに従った公開です。) pyS60uiutil_mod です。

 この話の元になる件はこの記事です。
   「Nokia 5800 XM、 テキストエディタ py60tex に手を加えて、、
   「Nokia 5800 XMとpy60tex 、pyS60uiutilを弄る

 s60_theme さんの公開はこちらです。「pyS60uiutil_mod.pyを公開

 これで、晴れて自分用に手を加えた内容も入れられる事になりました。もっとも、手を加えるのは例によって、機能よりも自分の使い勝手のための内容で、はっきり言うとやらなくても、、と言われそうな内容です。それを一緒に書こうと思っていたのですが、テストに意外と時間がかかりました。

 それは、
(1)実際にNokia 5800 XM でつかってテストを繰り返す。
(2)pyS60uiutilをコールしているアプリ(スクリプト)との関係が影響する部分がある。

からです。あと、できればX02NK等でも共通に使えるようにしたいなと思っています。概ね変更内容が決まってきましたので、もう少しテストしてから書いてみるつもりです。

------------------------

 さて、このテストの途中で出てきた別の問題です。Hiisiさんのここ(Hiisiさんのこちら)で知って、リストボックスにスクロールバーを表示するために入れてみた appuifw2.Listbox ですが、使い方が難しいようです。あるいは、まだNokia 5800 XM とは相性が悪いのでしょうか。set_list (例:self.lbox.set_list)を実行すると、そのままおとなしくPythonnが落ちてしまう事があります。

 必ず再現するので色々テストしたのですが、今のところ分かりません。自分の手を加えたスクリプトでなくてオリジナルのもの(pyS60uiutil など)でテストしても一緒です。
 作成したテキストを格納しようとして落ちてしまい、今まで入力したテキストが消えた~なんてのは泣くに泣けないですよね。しばらくは入れないでおいて、テスト継続です。

 

| | コメント (0) | トラックバック (0)

2009年1月22日 (木)

Pythonの本、やっと3冊目に入った、、。

2009-01-22(木)曇り、雨

 Pythonスクリプトの勉強も放り出したまま適当にスクリプトを弄っていましたが、やはりまずいぞと、本に戻りました。2冊目の最後の10ページを何ヶ月も残していましたが、とばし読みして何とか3冊目に入りました。

 しかし、この3冊目は、考えてみたらずいぶん前に買ったものでした。

  その時の記事 「本買ってばかりで実技がついてかない、、

 記事を探してみたら、2ヶ月前に買ったものでした。まあ、腐るものじゃないからいいか、と言うわけにもいかないですね。少しずつ読むことにします。

 ところで、「いつか読もう」なんて言って、買ったまま読んでない文学全集もいっぱいあります。後で探すのは大変だから買っておいたのは正解だとは思うのですが、読み終わるかどうかが問題だ、、、。

 

| | コメント (0) | トラックバック (0)

2009年1月16日 (金)

Nokia 5800 XMとpy60tex 、pyS60uiutilを弄る

2009-01-16(金)晴れ

 以前、Nokia 5800 XMはキーがないのでpyS60uiutilと相性が悪い、そこでpy60texを弄ったという記事を書きました。

 こちらの記事です。「Nokia 5800 XM、 テキストエディタ py60tex に手を加えて、、

 この内容について s60_theme さんのブログにコメントしましたら、快く了解していただきました。さて、その後、s60_theme さんは、pyS60uiutil 側を変えてみたそうです。

 こちらの記事です。「pyS60uiutilをちょっと触ってみる

 早速、変更箇所を教えていただきましたので入れてみました。この方が使いやすいですね。私がやったような、メニューで右キー、左キー操作をするのは、今一面倒です。やはり、画面に表示されているリストを直接タップする方が操作しやすいです。

Scxm0066    Scxm0067

 左のように、親ディレクトリ[..]、自分のディレクトリ「.」の表示を追加し、これをクリックすることで操作できるようにされました。
 元々ある」自分のフォルダクリック時の動作と、フォルダ階層を下がる動作を、どう解決するのかと思っていましたら「.」の追加で解決されたとのことでした。本当にDOSライクになりました(笑)。
 

 さて、使い始めると欲が出るのが人の世です。「..」「.」がリストの最後にあるのが残念です。上の右のようにリストが長い場合、フォルダ階層を下ったときに「..」「.」が見えません。(DOSでは先頭にあります。) そこで、更に改良してみました。
 「..」「.」を先頭に持ってくるのですが、こうすると更にあちらこちらで手を入れる必要があります(主に、リスト参照時のポインタの値)。でも、フォルダ階層を下ったときに、若干見やすくなります。
 

Scxm0068    Scxm0069

 「..」「.」を先頭にしたところです。これで、HP200LXのDOS画面に近くなりました。これで、py60tex も更に使いやすくなりました。
 

 追伸: 前回のFilebrowserの時のpyS60uiutil 改造内容はメニュー追加程度だったので参考用にリストを載せましたが、今回は中身をあちこち弄っているため、載せるのは問題があると思います。ここにリスト掲載は致しません。変更内容が知りたい方はメールで個別にお願いいたします。

 

| | コメント (6) | トラックバック (0)

2009年1月 5日 (月)

Nokia 5800 XM、 テキストエディタ py60tex に手を加えて、、

2009-01-05(月)晴れ、のち曇り

 先日、Nokia 5800 XM とPython用ユーティリティスクリプト pyS60uiutil 相性が良くない件について書きました。

 Nokia 5800 XM と pyS60uiutil の不仲な関係、、

 即ち、Nokia 5800 XM には左右キーがないので、 pyS60uiutil でフォルダ階層を上下できないという点です。このため、常用しているテキストエディタ py60tex でファイルを開くというメニューが使えません。( py60tex では pyS60uiutil を使用しています。)

 そこで、(作者の方には無断ですが)、一部手を加えて使っています。この場合、 pyS60uiutil に手を加えるのではなく、 py60tex 側に手を加えることになります。今回、せっかくなので、2点手を加えました。

  どうもすみません。これで活用させていただきます。>>s60_themeさん

(1) py60tex の「ファイルを開く」の処理のときのユーザーメニューに「右→」と「左←」(とルートへ戻る」)を追加しました。

Scxm0054a    Scxm0053a

 左が元々のメニューです。右がメニューを追加したあとです。これで、右→、左←を選択すると、フォルダ階層を上下できます。

Scxm0052a

 最初は、このようにメニュー階層を増やして沢山のメニューを 入れたのですが、階層が増えると操作が面倒になるのでやめました。

 
2)Hiisiさんのブログで知った appuifw2 を導入し、ファイル一覧の画面でスクロールバーを表示するようにしました。

 これも、スクロールバーがないと不便だったことから導入してみました。不便だったという記事はこちらです。「Nokia 5800 XM とPython

Scxm0064    Scxm0065

 左が元の状態、右がスクロールバーが表示された状態です。

 これで、Nokia 5800 XM でも py60tex が使いやすくなりました。

------------------------------------------------------------

改造点

(1)の改造は下のテキストの通りです。一応動いていますが、間違いがあったらごめんなさい。
  「change00.txt」  
  「change01.txt」
    /* start
    コピーして追加したモジュールの名称を変更しました。元のモジュールと
    区別するためです。2009-01-07
    /* end

(2)はHiisiさんのこちらを参考にしました。
 ・appuifw2 をダウンロード、open singed online でサインしてインストールします。
 ・py60texの先頭、import 部分の最後に下記5行を追加します。

try:
    import appuifw2
    appuifw.Listbox = appuifw2.Listbox
except ImportError:
    pass
----------------------------------------------------------------------

 

| | コメント (2) | トラックバック (1)

2008年12月30日 (火)

Nokia 5800 XM と pyS60uiutil の不仲な関係、、

2008-12-30(火)晴れ

 不仲な関係と言っても、誰かが喧嘩しているとか、バグがあるとか言う話ではありません。ただ、新しくでたタッチパネル式携帯電話のNokia 5800 XM とユーティリティのpyS60uiutil とは、まだ相性が良くないな、、という話です。

Pythonスクリプトで何か作るときに、フォルダやファイル操作があるとpyS60uiutil をインポートして使うのが多いと思います。自分で作る必要がなくなりますから、この作者には感謝です。

 さて今回の、この問題に気がついたのは、py60texを使ってみてメニューからファイルを開こうとしたときです。

 Nokia 5800 XM にはキーボード(ここで問題なのは左右矢印キーです)がありません。そして、pyS60uiutil はフォルダのアップダウンを、左右の矢印キーで行います
 従って下記のような問題(というか症状)にぶつかります。

(1)右矢印キーがないから、最初に表示された一覧表からフォルダの下の階層に
   移ることができない。
(2)左矢印キーがないから、該当フォルダの上の階層に移ることができない。

と言うことで、フォルダを移ることができません。

Scxm0046    Scxm0047

 左はpy60texでファイルを開く画面ですが、ここから下の階層に移れません。また、 Nokia 5800 XMでは  pyS60uiutil の中で、右のようにエラーが出るみたいです。(注1)

 注1:ルートディレクトリでタップ/エンターを押したときに出るエラーでした。フォルダをタップしたときには出ないようです。また、X02NKでも出ました。(追記)

 pyS60uiutil では、フォルダのタップ操作は別の意味もあるので、タップではフォルダの下の階層に移りません。試しにタップでフォルダ階層を下に移るようにしてみましたが、これはこれで問題があります。フォルダのタップは、ファイルをセーブするときに別の意味を持つので使えません。それに階層を上に移すことができません。

 
 じつは、Pythonをインストールすると入る例題のfilebrowserは、こういう機種のことも考えていたのか、この問題はないのですよね。

(1)フォルダをタップすると、フォルダの下の階層に移る。
(2)フォルダ/ファイルの一覧リストには一番上に、親ディレクトリ表示「..」があり
   これをタップすると上の階層に移る。(DOSみたいな感じです。)

 うまくできているなあ、、と思いました。

Scxm0049

  Filebrowser の画面です。一番上が親ディレクトリの表示です。これは改造版なので、表示が1行になっています。

 ということで、(Nokia 5800 XMにおいて) py60texで既存ファイルを開くときは、以前改造した Filebrowser の拡張子連動で開いて編集するか、BluToothキーボードを使うことにしました。

 Filebrowser  の件はこちらです。「Python ファイルブラザ 「filebrowser

 pyS60uiutil の作者さんに要望メールを出そうかと思っているのですが、英文がうまく作れなかったので、他力本願モードになってお酒を飲み始めてしまいました。う~ん、いかんなあ、、、反省(、、、反省だけなら猿でもできる、、、古いなあ)。

 

| | コメント (0) | トラックバック (0)

2008年12月29日 (月)

Python 5800XM 画像アプリ PyMyViewer

2008-12-29(月)晴れ

 先日書いた、Pythonによる画像一覧スクリプト(Nokia 5800 XM用)を、ようやく作り上げました。テストは不十分ですが、一応今年の締めとして記述しておこうと思います。

前回の記事はこちらです。「Nokia 5800 XM 画像アプリ その2

 何故作りたかったかというのは前回も書いたとおり、Nokia 5800 XMでは目的の画像を簡単に一覧するのが難しかったからです。
 このスクリプトは Nokia 5800 XM 専用です。画面サイズの数値が決めうちだからです(それも、縦画面だけです)。

機能は
 (1)目的のフォルダの中の画像をサムネイル一覧で見ることができる。
 (2)画像の大きさは2種類選択できる。
 (3)フォルダを選択できる。
位でしょうか。いずれ、正規のアプリで出てくれば不要になりますが、とりあえずはブログ更新時の画像選択には使えると思います。

 例によって、プロトタイプを作ってから色々と弄ったので3つのバージョンになりました。

PyMyViewer 000_0
  ・プロトタイプです。とりあえず動くレベルです。とはいえ、簡単なので実際使うには
   これの方が良いかもしれません。
  ・画像サイズは一種類です。

PyMyViewer 000_1
  ・画像サイズを2種類にしました。
  ・メニュー選択はセレクションリスト方式で、画面出でてくる一覧から選んでゆくと
   画像表示まで行きます。分かりやすいかもしれません。
  ・相変わらず、処理はフラグをベタベタ使用する方式です。

PyMyViewer 000_2
  ・処理をクラス化してすっきりさせました。
  ・上記の関係で、メニューは オプション > メニュー選択 と言う形になりまし
   た。

 後ろの二つは、Nokia 5800 XM のテーマの色合い(黒基調)に合わせて黒っぽくするため、テキスト表示も画像表示にしたり、余計なところだけ弄っています。こういう所だけ凝ってしまうんだよなあ、、処理速度が遅くなるばかり、、(笑)。

Scxm0038    Scxm0040

 PyMyViewer 000_1 です。左がメニュー、右は画像が表示されたところです。

 
Scxm0041    Scxm0042

 PyMyViewer 000_2です。左はテキストの画像表示です。右のメニュー選択と印象を合わせるようにしています。右は、本来のメニュー選択画面の色合いです。

Scxm0044    Scxm0045

 左がサイズ小、右がサイズ大、の表示です。

使い方:
 そのままスクリプトを起動して、フォルダを選択しても良いのですが、いつも使うフォルダは Home_path として記述しておくと簡単です。
 スクリプト先頭の下記部分を書き換えます。

------------------------------------------------------
INI_FILE   = u'E:\\Data\\PyMyViewer.ini'
Home_path  = u'E:\\Images\\Camera\\200812\\200812A0\\'
-------------------------------------------------------

Home_path が通常使いたいフォルダです。
INI_FILE が、このHome_pathを外部で記述するときのファイルです。なければスクリプト先頭の記述で動きます。記述方法は

Home_path  E:\Images\\Camera\\00812\200812A0\

です。

------------------------------------------------------
最新版は「Python スクリプト 雑記」の
 「13. 5800 XM 用画像一覧アプリ PyMyViewer 」に載せています。
 2009-04-11追記

 「PyMyViewer_000_0.py」
 「PyMyViewer_000_1.py」
 「PyMyViewer_000_2.py」
------------------------------------------------------

 

| | コメント (0) | トラックバック (0)

2008年12月28日 (日)

Python スクリプト起動用シェルスクリプト その5

2008-12-28(日)晴れ

 さて、年末ですね、今年作成したスクリプトの記録、まとめ記事を記述しています。変更したまま放ってあった、Pythonスクリプト起動用スクリプト(分かりにくい言い方ですね)の「PyMyShell」の新版をテク’ノートに載せました。

 前回、ファイルブラウザとしてFilebrowser とpyFilemanagerS60を入れたのですが、下記の二つに分けました。
  違いは下記の通りです。
 
 (1)PyMyShell
   PyMyShell 000_4 を元にしたもので、ブラウザとして下記2種類にしました。
    ・スクリプトのfilebrowser
    ・内蔵のファイルブラウザを起動する。(機種によっては名称が変わり
     起動できないかもしれません。)

 (2)PyMyShellF
   PyMyShell 000_5 を元にしたもので、ブラウザとして下記2種類にしました。
    ・スクリプトのfilebrowser
    ・スクリプトのPyfilemnagerS60

 その他の機能は一緒です。(2)を使うことは、あまりないと思います。

 例によって掲載は テク’ノートの「Python スクリプト 雑記」にのせました。

 普段はあまり使わないのですが、外へ出かけたときのブログ更新(携帯電話で更新)の時には重宝しています。

 

| | コメント (0) | トラックバック (0)

2008年12月21日 (日)

Nokia 5800 XM とPython

2008-12-21(日)晴れ

 昨日、忘年会で新宿へ向かう電車の中では暇だったので、5800XMでのアプリのインストールとテストを行っていました。やったのはPythonです。Python 1.4.4 のインストールとスクリプトがすんなりと動きました。動かしたのは、以前改造したFile browser です。

Scxm0017

 Python の画面です。横画面だとPC画面に近くていいですね。

 

Scxm0018    Scxm0015

 左はFile browser の画面です。何の問題もないのですが、リストが沢山あるときは、矢印キーとかスクロールバーがないので若干慣れが必要です。画面に触って一番下あたりを抑えていると選択されて赤くなっている行の中でスクロールされていきます。その行の中だけで動いているので、目的のファイルのあたりで止めるのは慣れが必要です。

 右は Z:\resource\Fonts の中です。次のエントリで書く予定の内容のために見ておきました。

 

| | コメント (0) | トラックバック (0)

2008年12月 6日 (土)

Standby.py 待ち受け画面の変更

2008-12-06(土)晴れ

 今まで集めたアプリとか、皆さんが作られたり自分でも作ったPythonスクリプトなどで環境が整ってきたせいか、X02Wikiにはご無沙汰していました。久しぶりに訪れて、面白い(Python)スクリプトを見つけました。

 Standby.py 待ち受け画面の表示項目を変更する(*1)スクリプトです。

  掲載されているWikiはこちらです

 このスクリプトは常時起動しておくのではなく、表示項目を決めているファイルを書き換えるためのスクリプトです。導入時にファイルをresourceフォルダに書き込んだりしますので、Allfiles化してないと導入できないかもしれません。

Sscx0414    Sscx0415

 左がStandby.py の画面です。ここで、表示項目をオン/オフ設定します。右はサーチやWLAN検索の項目を消した画面です。

Sscx0417    Sscx0416

 ショートカットやTODOも消してみましたが、ここまでやると使いにくい感じがします。右はショートカットを表示させたものですが、この位がいいようです。

 この状態で、HiisiさんのPyTaskserverに同梱されているPyTodo2Event を使うとTODOが終日イベントになって表示されるので都合がいいようです。

 ちょっと面白いスクリプトでした。

 

| | コメント (0) | トラックバック (0)

2008年12月 4日 (木)

Python 電話帳検索と国際アクセスコード置換のスクリプト 5

2008-12-04(木)晴れ

 題名のスクリプトも色々やってきましたが、後はバグがない限りここまでで改訂は無くなると思います。

 jContactsM
 これは、以前のjContacts 1.03 を元に、自分用に変更したものです。本来の目的(海外での使用のために+から電話帳登録している人が国内で発信する)のためには、上記のjContacts 1.02c 、jContacts 1.03 が最新版です。しかし、以前作成した電話番号検索(PysearchNr)や電話帳検索(PySearchCdb)の代わりに常用したり、内蔵の電話帳の代わりに使うことを考えました。このため、上記以外の目的にも使えるよう変更しました。
 この変更は、本来の目的から逸脱してきているので、バージョンアップではなく名称変更としました。

 例によって、スクリプトや設定の説明は
  「テク’ノート」の「Python スクリプト 雑記」 「7.2 jContactsM」 に載せました。
 

1. 改訂内容
(1)国際アクセスコード置換をオプション化して、無変換/国内用(0046010などへの変換)/国外用(0を+81に変換)の3種類にしました。

(2)上記を設定ファイルで指定できるようにしました。(SIS化すると編集して変更、、とかできないからです。)

(3)画面上端のタイトル表示を変更しました。(スクリプト名、バージョン表示)

(4)登録してある人に電話番号がないとエラーになるのを修正しました。これは、メールアドレスの登録だけの人への対応です。

 上記(1)は、リスト先頭のオプション指定か、設定ファイルの Prefix_rectify で指定します。

Prefix_rectify このオプションを指定すると、国際アクセスコード置換を変更できます。
  0 : 置換を行いません(電話帳通りダイアルします)。
  1 : 国内で使用します。「+81」を「0」へ、「+81」以外の「+」を Op_identifier の
     値に置換します。
  2 : 国外で使用します。先頭の「0」を「+81」 に置換します。

 注:Prefix_rectifyの1と2は、生活と電話帳登録形態の違いで使い分けます。
   1:海外生活が長く電話帳はすべて+から登録している人が、国内に来たとき
     使用します。
   2:国内で生活していて電話帳登録は0から登録している人が海外に行ったとき
     使用します。

Sscx0410    Sscx0411

 画面上端の表示を変更しました。右はダイアル画面ですが、Prefix_rectify が「2」の指定なので、先頭の「0」が「+81」に置換されています。

 

| | コメント (0) | トラックバック (0)

2008年11月27日 (木)

Python 電話帳検索と国際アクセスコード置換のスクリプト 4

2008-11-27(木)雨、のち曇り

 今日はB助さんのブログとMMClubのメーリングリストでショックな記事を見た日ですが、そう言う話題はパスしておきます。

 さて、以前書いたSalty Catさんの「電話帳検索と国際アクセスコード置換のスクリプト」ですが、若干改造しました。

  その辺の経緯の記事は「Python スクリプト 雑記」の同名記事からたどって下さい(手抜きです(汗))。

モジュールも、上記「Python スクリプト 雑記」に載せました。

 改造点は2点です。

(1)発信前に必ず切断動作を入れるようにしました。
   理由:発信中あるいは相手が話中なので右ソフトキーで切断した場合、アプリとハードのステータスが合わなくなるので次の発信でエラーになる、このエラーを防ぎます。アプリを1回終了すれば関係ないのですが、終了しない場合もあるので入れました。

(2)切断動作後に、ステータスを監視してアプリを終了できるようにしました。
  終了したいかどうかは人にも寄ると思いますので、選択できるようにしました。

 なお、(2)のステータス監視の機能はS60 3rd以降のサポートなので、これを入れるとS60 2nd で動かなくなります。このため(1)だけ入れたバージョンと2種設けました。

jContacts_v102c
  上記(1)だけ入れたものです。

jContacts_v103
  上記(1)(2)を入れたものです。

 
jContacts_v103の終了動作選択についての説明

 リスト先頭にある「ExitAfterDisc = 」のオプションを指定することで、切断後の終了動作を指定できます。(*1)
  0 : 終了しません
  1 : ハードの発信動作が開始後に切断させると終了します。それ以前に
      切断した場合は終了しません。その境目は微妙です(笑)。
  2 : 相手への接続が完了した後に(通話終了後とか)切断すると終了します。
  3 : 切断後は必ず終了します。

  *1:切断とは右ソフトキーとか終話キーでの切断、あるいは接続後では
     相手が切断した結果の切断です。要は、電話を切ったときです。

 
 モジュールは、上記「Python スクリプト 雑記」に載せました。

 

| | コメント (0) | トラックバック (0)

2008年11月24日 (月)

ノートデータベース PyNotePad とPyNoteNdb更新

2008-11-24(月)曇り、のち雨

 以前から弄ってきた、ノートの代用にしているスクリプト「PyNotePad」「PyNoteNdb」を更新しました。当初、簡単な変更だけにしていたのですが、リストを見ているとそのあまりの汚さに愕然として、全く作り直しに近く変更しました。

 実際のリストは例によってテク’ノートの「Python スクリプト 雑記」に載せました。

 今まではフラグを多用していました。メニューで起動されるモジュールではフラグをオンオフするだけで、実際の処理はメインループの中だけで処理していました。この方式にも、それなりの長所はあります。

  ・データを弄るのはメインループの一カ所だけなので、管理がやりやすい。
  ・e32.Ao_lock と signal() によるスタートストップが自由に使えるので制御しやすい。

などです。でも、リストを見ると汚いですね。ということで、クラス化とモジュール分割で、いかにもそれらしいリストにしました(笑)。

 修正は2段階で行いました。最初は、動作を変更して、OKになったところでバージョン2にして、大変更です。とはいえ、必要な処理はすべて今までのリストでできているので、切り取りながら修正していくことで何とかしました。

変更履歴
PyNotePad 001_3 / PyNoteNdb 001_4
 ・リスト画面からノートを表示して、再度リストに戻ったとき以前いた行に
  戻るようにした。
 ・絞り込み検索中はタイトル表示の右に # を表示するようにした。

PyNotePad 002_0  /  PyNoteNdb 002_0
 ・内部構造を全面的に作り替えた(クラス化、フラグ使用廃止等)。
 ・iniファイルの、Prepare、Searchフラグ指定を廃止した(不要になった)。
 ・globaluiの使用をやめた。(Python S60 1.4.3 以前でも動作可能)
 ・最初に全項目(全カラム)のリスト作成するのを廃止し、高速化した。
 ・カード表示メニューをやめ、直ぐに編集できるようにした。
  代わりに、カード詳細表示メニューを設けた。(PyNotePadの場合)
 

Sscx0402     Sscx0405

 最初の改造結果です。検索して絞り込んでいる場合の表示ではタイトルの右に # を表示しました。左が全カード表示、右が検索結果表示です。右ではタイトルの右に # を表示しています。


 その後、バージョン002にしました。メニュー選択によるイベントドリブン?の動作なので遷移を仕様書にしないとコーディングの途中で分からなくなります。

 こういう仕様書を作りました。

Dscx416a

 左縦軸がメニュー(イベント)、上の横軸がステータス、の遷移マトリクス(表)です。私としては遷移表より遷移図の方が好きなのですが、今回はEXCELで書きやすい遷移表にしました。遷移表なんて、「HDLC」(古い?)の通信プログラムの遷移表以来です。「BSC」とか「無手順」あたりは遷移図でやりました。おっと、脱線しましたが、ということでリスト的には、以前よりましになりました。

 このノートデータベースシリーズは、とりあえずここまでかなあ。次のアイデアが浮かばない、、。

 

| | コメント (0) | トラックバック (0)

2008年11月23日 (日)

本買ってばかりで実技がついてかない、、

2008-11-23(日)晴れ

 昨日買ってきたものの荷物を開けたら、こんなものが、、、。

Dscx420a

 待ち合わせまで時間があったので、そこの市内の大きな書店でブラブラしていたときに、つい買ってしまいました。以前買って、いま読んでいるのと殆ど同じ(内容も値段も厚さも)ですが、そこはそれ、本が違うとやはり若干の違いがあります。例の内容とか説明の部分で他方にはない部分とかですね。見ているうちに欲しくなって買ってしまいました。

 本ばかり買って、実技の方が追いついていない気もします。が、まあ本を読むのも、それだけでもひとつの楽しみですから良いことにします。今時、PC上で見ても良い教材が沢山ありますが、やはり紙で見るほうが私には見やすいです。それに何処でも、電源を気にせずに持ち歩けるし、、。

 

| | コメント (2) | トラックバック (0)

2008年11月21日 (金)

スクリプト起動用スクリプトをテク’ノートに入れました

2008-11-21(金)晴れ

 何回か書いてきた、Pythonスクリプト起動用スクリプト(PyMyShell)と、それに組み込んだファイルブラウザのモジュールを、テク’ノートの「Python スクリプト 雑記」の「8.スクリプト起動用スクリプト」に移しました。
 色々書いてきても、テク’ノートに移すと、とりあえずほっと一息つきます。自分の記録用ですね。とはいえ、PyMyShellは自分では重宝しています。

 他にもまだ、改造したがあるのですが(PyNotePad、PyNoteNdb、jContacts)、なかなか手が回っていません。移すまで息がつけません(大げさ、、)。

 

| | コメント (0) | トラックバック (0)

2008年11月18日 (火)

Python スクリプト起動用シェルスクリプト その4

2008-11-18(火)晴れ

 スクリプトの改造のトピックスが続いています。世の中の他の方のようには、新しいハードが入手できないのと、使う環境整備に興味が湧いているせいもあります。

 さて、以前から書いているスクリプト起動用シェルスクリプト「PyMyShell」は、前回ファイルブラウザを組み込みました。Pythonをインストールすると入る例題のスクリプト「filebrowser」です。これだけでも良かったのですが、やはりファイルに対して色々な操作ができた方が良いかなと、pyFilemanagerS60を、合わせて取り込んでみました。
 つまり、ファイルブラウザを2種類、入れ込みました。切り替えて使用することができます。

 本来、こういう事(勝手な改造)をしてはいけないのですが、勉強のためとしてやっていると見て下さいm(..)m。

pyFilemanagerS60に関する改造
 ・インポートしているpyS60uiutilを弄ってファイル一覧を、1ファイル1行にした。
 ・pyFilemanagerS60に、ファイルのプロパティ表示を入れた。
 ・pyFilemanagerS60に、指定した拡張子のファイルを、指定したエディタで開く機能を
  追加した。
 ・プロパティ表示でのファイル更新時刻をUTC表示からJST表示にした。(追記)
 ・ファイル削除時の確認ダイアローグをパス名からファイル名のみにした。(追記)
 

Sscx0398    Sscx0400

 左がfilebrowser 、右がpyFileManagerS60の画面です。

Sscx0399

 ふたつのファイルブラウザの切替メニューを追加しました。起動時はiniファイルの指定に従いますが、使っているときにも切り替えることができます。

Sscx0401

 filebrowserはファイル削除しかありませんでしたが、pyFileManagerS60は色々な操作を行うことができます。

-----------------------------------------------

  「PyMyShell_000_5_set.zip」

ファイル関係はテク’ノート「Python スクリプト 雑記」の8.にまとめました。(2008-11-21)

  

過去の記事

 Python スクリプト起動用シェルスクリプト
 Python スクリプト起動用シェルスクリプト その2
 Python スクリプト起動用シェルスクリプト その3
 Python ファイルブラザ 「filebrowser」
 Python ファイルブラザ 「filebrowser」1の補足

| | コメント (0) | トラックバック (0)

2008年11月17日 (月)

Python 電話帳検索と国際アクセスコード置換のスクリプト 3

2008-11-17(月)晴れ、時々曇り

 一昨日の記事で書いてテク’ノートに掲載したスクリプト jContacts ですが、作者のSalty Catさんからコメントで、「スクリプトのままではOKだが、SIS化して使うとエラーが出る」との連絡をいただきました。

 一昨日の記事とコメント 電話帳検索と国際アクセスコード置換のスクリプト 2

 連絡いただいた内容を元に、修正版「jContacts_v102b.py」を、テク’ノートに掲載しました。具体的には、文字列に使っていた「+=」演算子をやめました。(ついでに他のところも含めて += をやめました。)

  テク’ノート Python スクリプト 雑記

 

| | コメント (0) | トラックバック (0)

2008年11月15日 (土)

Python 電話帳検索と国際アクセスコード置換のスクリプト 2

 以前書いた、Salty CatさんのPython スクリプト「電話帳検索と国際アクセスコード置換」のスクリプトを、テク’ノートに掲載しました。

 テク’ノート の「Python スクリプト 雑記

 これは、その題名の通り電話帳検索と、そこから発信するときに電話番号の先頭の+を国際アクセスコードに置換して発信してくれるスクリプトです。海外出張も多いが国内にも度々戻って来るような方が、スタンダードバージョンの携帯電話を国内でも使うときに便利なスクリプトです。国内キャリアが販売した携帯電話には国際アクセスコード置換機能がありますが、スタンダードバージョンにはないので、そう言うときに便利です。

 じつは、このスクリプトは私のものではなく、Salty Catさんが作られたものです。では、なぜ掲載するのか、、実はSalty Catさんは自分で使われていますがWEBにアップされておりません。そして、私の以前の記事へのコメントで

  >初期の目的を達成したので、私は、たぶんこれで打ち止めです。
  >Masa さん、興味がありましたらさらに改良を加えて、Pythonスクリプト雑記
   の仲間に入れてあげてください。

と書いていただきましたので、使いたいと思っていらっしゃる方がつかえるようにと掲載することにしました。オリジナルの完成度が高いので手を加えないといけないところはないのですが、例によって機能には関係ないが見栄えには凝る、、という悪癖に従って2点ほど手を入れました。オリジナルと改変版を掲載しました。

 ということで、掲載しました。よろしくです。>Salty Catさん

改変した点
 (1)Salty Catさんの課題に書かれていた2点目 「2. 文字入力 Dialog Box で
    Cancel を押してもプログラムを抜け出せない点」ですが、3回ほどキーを
    押さないといけないのを1回で終了するようにしました。
 (2)起動したときの背景がPythonのそのままの画面なので、白い画面に
    変更しました。

以前の記事 Python 電話帳検索と国際アクセスコード置換のスクリプト

Salty Catさんの記事
  http://d.hatena.ne.jp/SaltyCat/20081015/1224104960
  http://d.hatena.ne.jp/SaltyCat/20081017/1224318747

 

| | コメント (2) | トラックバック (1)

2008年11月10日 (月)

filebrowser とpy60tex 連動の補足(注意事項)

 Pythonスクリプトのfilebrowser改造と、それによってファイル拡張子をみてエディタPy60texでオープンする件については下記で書きましたが、py60texについての注意事項を書き忘れました。最初の記事に注意事項を追記しました。

最初の記事 : Python ファイルブラザ 「filebrowser」

filebrowserを取り込んだPyMyShellの記事 :
  Python スクリプト起動用シェルスクリプト その3

注意事項は下記です。
-------------------------------------------------------------

注:py60tex連動のための注(2008-11-10 追記)

 拡張子連動でテキストファイルをpy60texでオープンするには、py60texについて下記の注意が必要です。

・テスト版のpy60tex バージョン0091ならば、そのままで動きます。

・それ以前のpy60texバージョンでは、py60texで下記修正を行わないと動きません。
 バージョン0081で説明します。
  行番号 1921 をコメント化(先頭に#をつける)か、下記修正を行う。

変更前            appuifw.note(unicode("引数")+unicode(str(sys.argv) , "info"))
変更後            appuifw.note(unicode("引数")+unicode(str(sys.argv[1])) , "info")

説明:カッコの位置が間違っているため、そのままではエラーになります。バージョン0091ではコメント化されているので問題ありません。この問題は、コマンドパラメータでテキストファイルのファイル名を引き渡すときのみ問題になります。単独で起動して、メニューからファイルを開く場合は問題ありません。

---------------------------------------------------------------

| | コメント (0) | トラックバック (0)

2008年11月 8日 (土)

Python スクリプト起動用シェルスクリプト その3

2008-11-08(土)雨、のち曇り

 以前に書いた スクリプト起動用シェルスクリプト「Py_mShell」」ですが、名称を変更しました。mShell というアプリ(統合環境と言うべきか)があることが分かったので、こちらの名称を「PyMyShell」と変更しました。そして、その後も色々(自分が)使いやすいようにするため弄っていました。

 今回の一番の目玉(もっとも、これしかないですが)は、ファイルブラウザを一緒にしたことです。即ち、昨日書いたファイルブラウザを、なかに組み込みました。しかも、ファイルブラウザでは、ファイルの拡張子をみてテキスト関係のファイルはエディタ「py60tex」で開くことができるので、自分としては使いやすくなりました。ブログ更新用のツールです。

Sscx0395    Sscx0396

Sscx0397

 左上から、アプリ起動用画面、ファイルブラウザへの切替メニュー、そしてファイルブラウザに切り替えたところです。ひとつの中に入っているので切替が速く、自分としては使いやすそうです。

今までの関連記事
 Python スクリプト起動用シェルスクリプト
 Python スクリプト起動用シェルスクリプト その2
 Python ファイルブラザ 「filebrowser」
 Python ファイルブラザ 「filebrowser」1の補足
------------------------------------------------

   「PyMyShell_000_4.py」
 「PyMyShell.ini」
 
「PyMyShell_hist.txt」 

ファイル関係はテク’ノート「Python スクリプト 雑記」の8.にまとめました。(2008-11-21)

-------------------------------------------------

リストの先頭にある設定ファイルの説明

__inifile__ = 'E:/Data/PyMyShell.ini'
extension_list = 'py,ini,log,lst,txt,htm'
open_app = 'C:/Python/py60tex.py'

Lists ={unicode('01_ふぶき')  :u'E:/Python/fubuki_m_001_0.py',
  unicode('05_電話帳')  :u'E:/Python/jContacts_v102a.py',
  unicode('04_ファイル転送') :u'E:/Python/PyMyFTP_000_1.py',
  unicode('02_ふぶき変換') :u'E:/Python/fubuki2htm_001_1.py',
  }

__inifile__ は設定ファイルのパスです。設定ファイルが優先されますが、なければリストの先頭の内容で動きます。

extension_list はテキストファイルと見なしてopen_app でオープンしたいファイルの拡張子を列記します。

open_app は上記拡張子のテキストファイルをオープンするアプリです。現状ではPythonスクリプト(の.pyファイル)しか使用できません。「py60tex」しか駄目かもしれません。
(アプリへの、ファイル名引き渡しができるか否かが問題です。)

Lists は起動したいスクリプトの一覧です。 「キーワード:スクリプトのパス」 のセットで追加削除します。キーワードはソートして表示しますので、例のように数字を入れたりして、自分の好きな順番になるようにします。 

-----------------------------------------------------------

iniファイル例

01_ふぶき  E:/Python/fubuki_m_001_0.py
05_電話帳  E:/Python/jContacts_v102a.py
04_ファイル転送 E:/Python/PyMyFTP_000_1.py
02_ふぶき変換 E:/Python/fubuki2htm_001_1.py
extension_list  py,ini,log,lst,txt,htm
open_app   C:/Python/py60tex.py

説明するほどの内容もないですね。各行は
(項目名)(スペース、またはタブ)(パス名や拡張子のリスト)
となります。

 

| | コメント (0) | トラックバック (0)

2008年11月 7日 (金)

Python ファイルブラザ 「filebrowser」1の補足

2008-11-07(金)晴れ

 昨日書いたファイルブラウザを更新しました。実は、いよいよもう一つの目的の方を、、と思ったのですが、ファイルブラウザのプロパティの時刻表示が気になりましたので修正しました。

 このfilebrowserの元々の表示とか、他にもあるPythonスクリプトのpyfilemanagerS60でも、ファイル表示に出てくる時刻はUTC(GMT)です。こんな夜中に変更したかなあ、、と思ったら「-9」時間されている表示な訳です。と、いうことで、時刻の部分を変更しました。

 読み込んだ時刻(エポックタイム)にJSTとの差の9時間分の秒数を足してから時刻表示にしました。あと、年月日の表示順番もかえました。下の左の表示でも、1月11日なのか11月1日なのか迷うんですよね。(11月1日が正解)

Sscx0393    Sscx0394

 左が変更前、右が変更後です。

------------------------------------------
  「Filebrowser_000_2.py」
-----------------------------------------
前回の記事(多少の説明有り)
  Python ファイルブラザ 「filebrowser」

 (眠くなっちゃったので、8日の朝に書いた記事です。)

 

| | コメント (0) | トラックバック (0)

2008年11月 6日 (木)

Python ファイルブラザ 「filebrowser」

2008-11-06(木)晴れ
  (最後にPy60tex連動のための注を入れました。2008-11-10)

 Python スクリプトのブラウザには、Python S60 をインストールすると入るスクリプト例の「filebrowser」というものがあります。色々なファイルブラウザが出てきている現在では、直接使うことはありませんが、その昔にZ:\からフォントをコピーするときに使った記憶があります。さて、そのfilebrowser を元に自分用のファイルブラウザにしてみました。

 目的は2つ有ります。そのひとつは、テキスト関係のファイルをクリックした場合、py60texというエディタでオープンさせたいためです。現在の環境では、ファイルブラウザでクリックするとノートとか(インストールしていれば)Deditなどでオープンされます。これを、py60texで開くようにしたいわけです。修正内容は大きなものではありませんが、何とかできたようです。2つめの目的は、、、、次回の記事で、、、。

Sscx0385    Sscx0391

 左が修正後の画面、右が元々のスクリプトの画面です。表示する行を有効に使うために、1行に1アイテムを表示します。

 

Sscx0386    Sscx0392

 同じく、左が修正後の画面、右が元々のスクリプトの画面です。ファイルは沢山表示できます。その代わり、プロパティは表示できません。

 

Sscx0387

 代わりに、メニューの項目に「プロパティ」表示を設けました。常に見たいわけではないからいいかなと思います。

 

Sscx0389    Sscx0390

 ファイルを選択してクリック、またはメニューでオープンを選ぶとpy60texでオープンすることができます。

-------------------------------
 「Filebrowser_000_1.py」  「Filebrowser_000_1.py」 (ファイル入れ替えました21時30分)

ファイル関係はテク’ノート「Python スクリプト 雑記」の8.にまとめました。(2008-11-21)
-------------------------------

説明:

#------- config data---------------------------
extension_list = 'py,ini,log,lst,txt,htm'
open_app = u"C:\\Python\\py60tex.py"
#----------------------------------------------

スクリプトの先頭にある設定項目です。
extension_list は、次の行にあるエディタで開きたいファイルの拡張子を列記します。

open_app は、上記の拡張子を持つファイル(と拡張子のないファイル)を開くためのエディタを指定します。今のところ使えるのは、Pythonスクリプトのエディタのみです。(SIS版ではなく.PY版を指定します。)

 実際の使い方は、説明するほどのこともないくらい簡単です(手抜き)。

 

注:py60tex連動のための注(2008-11-10 追記)

 拡張子連動でテキストファイルをpy60texでオープンするには、py60texについて下記の注意が必要です。

・テスト版のpy60tex バージョン0091ならば、そのままで動きます。

・それ以前のpy60texバージョンでは、py60texで下記修正を行わないと動きません。
 バージョン0081で説明します。
  行番号 1921 をコメント化(先頭に#をつける)か、下記修正を行う。

変更前            appuifw.note(unicode("引数")+unicode(str(sys.argv) , "info"))
変更後            appuifw.note(unicode("引数")+unicode(str(sys.argv[1])) , "info")

説明:カッコの位置が間違っているため、そのままではエラーになります。バージョン0091ではコメント化されているので問題ありません。この問題は、コマンドパラメータでテキストファイルのファイル名を引き渡すときのみ問題になります。単独で起動して、メニューからファイルを開く場合は問題ありません。

 

| | コメント (0) | トラックバック (0)

2008年11月 4日 (火)

PythonでFTP のPyMyFTP をテクノートに移しました。

 以前の「fubuki でWEB 作成 その8 PythonでFTP 作成編」で書いたファイル転送スクリプト「PyMyFTP」を、テクノートの下記部分に移しました。

  「Python スクリプト 雑記

 年内にもう一回ぐらい、出かけた先で役に立つ予定です。(電波が来ていればですが、、)

 

| | コメント (0) | トラックバック (0)

fubuki でWEB作成 その9 fubuki2htm 改造

2008-11-04(火)晴れ

 ここ暫く、以前作ったツール(fubukiでWEBを関連)を見直しています。書いておかないと忘れるので、ひとつずつ書いておくことにしています。一杯溜まっていますが、書く方が追いついていません(苦笑い)。

 fubukiで書いたWEB用原稿をHTMLテキストに変換する fubuki2htm を改造しました。バグは見つかっていないのですが、先日出かけたときに、スクリプト起動用スクリプト(Py_mShell 今は改名してPyMyShell *1)から使ったら、動いているのか動いていないのか、終了したのかエラーなのか分からなかったので、表示関係を修正しました。

  *1:Hiisiさんのサイトを読んで気がついたのですが、mShellというアプリ(統合環境)があるので改名しました。

改造内容:
001_1:  2008-10-01
 ・実行時に画面上にスクリプト名を表示するようにした。
 ・画面に、処理実行中の表示をするようにした。
 ・完了時、エラー時に画面表示するようにした。
 ・タイトルテキストをiniファイルで指定できるようにした。

  上記の最初の3ヶは、スクリプト起動用スクリプトから実行したときに、事項中かどうか分からな かったり、完了やエラーが分からなかったため修正しました。
  4つめは、将来SIS化するときのために修正しました。

 掲載はいつものようにこちらです。 「Python スクリプト 雑記

Sscx0382    Sscx0383

 左が実行中、右が終了時です。これで、状況が分かるようになりました。

 

 

| | コメント (0) | トラックバック (0)

2008年11月 3日 (月)

目覚まし、シャッフル再生 PyWakeUpSP_002_3に更新

 目覚まし用に音楽を、プレイリストからランダムに選んで一曲演奏するスクリプトです。PyTalkTimeを見直したついでに修正しました。こちらは、殆ど影響ない内容ですが、、。
 こんな事をしています、という記録と最新モジュールが分かるようにしておく記録の意味しかないような気もしますが、、、。

PyWakeupSP_002_3
 iniファイルのクローズ処理(close)がおかしかったのを修正しました。
  (実質影響ないと思います。)

掲載はこちらです。「Python スクリプト 雑記

 

| | コメント (0) | トラックバック (0)

時刻読み上げ PyTalkTime_set_001_2 に更新

 自分では毎日使っているスクリプトで、HiisiさんのPyTaskServerで起動して時刻を読み上げる、時報スクリプトです。動いているのですが、若干気になって見直したので修正しました。

PyTalkTime_set_001_2

 PyTalkTimeSP、PyTalkTime 両方の修正
   ・Soundファイルのクローズ処理を入れた。(あまり影響ないかもしれませんが。)
 以下はPyTalkTimeSPのみの変更
  ・iniファイルのクローズ処理がおかしかったのを修正した。
  ・iniファイルの項目間の区切りがスペース1個のみ可だったのを、スペースと
   タブ(複数可)にした。

 掲載はこちらです。「Python スクリプト 雑記

 

| | コメント (0) | トラックバック (0)

2008年11月 2日 (日)

PyNotePad、 PyNoteNdb を更新

2008-11-02(日)晴れ
 今まで作ったPythonスクリプトもバグが出たり、改造したい内容があったりで見直しています。まず第一に、ひどいバグがあった「ノートデータベース」PyNotePad、 PyNoteNdb を更新しました。

  掲載はこちらです。「Python スクリプト 雑記

改訂内容
 ・元データ(内蔵ノートのデータ)がなくゼロから使うときに動かなかったのを対策した。
 ・iniファイルの項目間がスペース1個しか駄目であったのを、スペース、タブ(複数可)に変更した。

 今までの改造の途中で、ひどいバグを作り込んでしまいました。内蔵ノートのデータを変換して使うことを考えていたので、データのないゼロの状態から使うときに動かなくなっていました。今まで気づかなかったのは、それほど使っていなかったからだと言うことが分かってしまいますね(う~ん、、、)。現在はブログネタのメモに使っています。

 

| | コメント (0) | トラックバック (0)

2008年11月 1日 (土)

Python、MMS削除スクリプト 「mmsdelete」

 某掲示板(海外携帯/スタンダード携帯関連)に、面白い、というかスタンダード版使用の方には便利なスクリプトが発表されていました。それは、サーバからMMSを削除するアプリです。(mmsdelete.py、mmsdelete.mbm)
           この辺にありますが、時間が経つと消えると思います。

 スタンダード版を(国内で)使っていて一番困るのは、MMSをサーバから削除する操作ができないことです。もちろん、工夫して全文受信してしまえば自動的に削除されます。しかし、全文受信できない場合はサーバに残ってしまいます。一定量溜まると、サーバはメール受信を拒否しますから、定期的にキャリアの携帯電話にSIMを挿してサーバから削除する操作が必要になります。が、これが面倒なんですよね。

 早速使ってみました。

Sscx0376    Sscx0379_2

 左が起動したところです。右が、サーバ内のメールのリストを取得し、一件選択したところです。
 

Sscx0380_2     Sscx0381_2

 左のように、メニューから削除指示します。右が削除完了した結果のメール一覧です。

 普段、スタンダード版をメインで使用したいなどと言う方には便利なアプリだと思います。

 

 

| | コメント (2) | トラックバック (0)

2008年10月19日 (日)

Python 電話帳検索と国際アクセスコード置換のスクリプト

2008-10-19(日)晴れ

 便利なPythonスクリプトを作成した方がいらっしゃいます。電話帳のスクリプトですが

  ・名前、番号の一部で検索できる。
  ・検索した結果で電話をかけられる。
  ・「+国番号」から登録してあるときは、国際アクセスコード置換ができる。

 という優れものです。

 その方 塩猫さんのサイト、記事は下記です。

http://d.hatena.ne.jp/SaltyCat/20081015/1224104960
http://d.hatena.ne.jp/SaltyCat/20081017/1224318747

 日本のキャリアからでた携帯電話には「国際アクセスコード置換」という、海外の電話からみると「何じゃ、この変な機能は、、」という機能がついています。しかし、海外の電話にはないので、日本に来られた方が自分の携帯電話で発信しようとするとエラーになります。
 作者の方はアメリカに長期滞在されているようで、一時帰国したときに持参したE71で発信できないため、急遽作成されたとのことでした。急遽、作成できる、、羨ましいですねえ。

 さて、私も電話帳の検索スクリプトを作成していたと言う関係で、ソースを戴きました。早速使ってみたら、内蔵電話帳より便利です。SIS化すればキーに割り当てられるので、使い勝手もいいと思います。(私は、まだSIS化の環境がそろっていないので、スクリプトのまま動かしています)

スクリーンショットを載せてみます。作者の方のサイトに載っていますが、画像がないとブログが寂しいので、、(笑)。

Sscx0356_2   Sscx0360

 左が検索ワード(又は番号)の入力枠です。名前や番号は一部でも検索可能です。右が検索結果です。

Sscx0358    Sscx0359

 上の名前タブで名前を選んで番号タブに切り替えると番号が表示されます。更に番号を選んで発信のタブに切り替えると発信できます。タブの切替はナビキーの左右の動きでできますから簡単です。左で、同じ番号が3つ出ているのは、ファームウエアの問題かPythonの問題で、私の番号検索のときも出ていました。この件は、この記事の最後の画像のところに続きます。

Sscx0361    Sscx0362

Sscx0363    Sscx0364

 「+国番号」から登録してあると国際アクセスコード置換が行われます。上の+852は香港ですから、「+」はSBMの国際アクセスコード「0046010」(注1)に置き換えられています。下の「+81」は日本なので、「0」に置き換わっています。

 注1:現在では「0046」はなくてもよくて、「010」だけで発信できます。
       例:「0108529988..」

 さて、上から2段目の左の画面では同じ番号が3つ表示されてます。これは、コンタクトを検索するとどうしてもダブって出てくるのです。具体的には、mobile_number を検索しても、phone_numberも出てきてしまいます。私が番号検索を作ったときには、余分な検索結果を消す処理を入れていたので、作者の方に入れていただき、その結果ひとつだけ表示されるようになりました。

Sscx0368

 この方のスクリプトは綺麗な作りで、とても勉強になりました。

 

| | コメント (2) | トラックバック (0)