2009-06-27から1日間の記事一覧

Windowsのテキストエディタ

どうも、テキストエディタに満足できない。C++ なら、Visual C++Pythonなら、IDLE、PyScripterなど言語専用のエディタを使うのも良いが、やはり、AAからプログラミングまでそつなくこなす汎用エディタが欲しい。 最低限欲しい機能は 無料である ・キーバイ…

wxPythonでIME未確定文字列の表示

wx.lib.editor.Editorを試していて、問題が発生。日本語を入力する時、未確定文字列がちゃんと表示されない!カーソル位置ではなく、Editorの左上。ひどい場合には全く表示されない。 調べてみると、他にもwxPythonでエディタを作っている人がいた。 GetHand…

wxPythonのDEMOはあてにならない

wxPythonのサンプルのwx.lib.editor.Editorはwx.ScrolledWindowを継承して作られている。wx.ScrolledWindowは、wx.Panelのサブクラスで、右と下にスクロールバーが表示されるので、子コンポーネントをスクロール出来る。(wx.Panelもスクロールバーを表示で…

wxPythonとthreading

テキストエディタでは、シンタックスハイライトの処理が重い。OnPaintメソッド内で構文解析をしていたのでは、間に合わない。だから、別のスレッドで平行的に解析してみよう。 とりあえず、wxPythonとthreadingを併用して問題がないか試してみた。 #encoding…

SFFAIRMakerを更新

AIRを回転表示できる機能を追加した。http://doloop.web.fc2.com/ 試しに回転した状態で、アニメを再生してみたら、ものすご〜〜〜〜く遅かったので、この機会に、今までFPS表示が極めていい加減だったのを、まともに読めるように直して、ついでにアニメ再生…

PmpClean

BmpCleanをPythonで作り直した。その名もPmpClean。その名の通り、BmpCleanとほとんど変わらない。 もちろん、BmpCleanのバグは修正されているが。

行の頭と末尾の位置のリストを得る

テキストエディタで何行の何列目⇔文字列全体の何文字目 を相互に変換するためには、各行が文字列全体の何文字目から何文字目であるのかを知っておく必要があるだろう。思いつくいくつかの方法でどれが最速かを調べてみた。 サンプルに使った文字列は、wxPyth…

wx.stc.StyledTextCtrlで変換候補を正しく表示

wx.stc.StyledTextCtrlはScintillaと言うエディタコントロールのラッパで、 シンタックスハイライトなどの機能が揃っており、 これを使うだけで、もうそれなりのエディタが出来てしまうのだが・・・ 日本語入力のときに、変換候補の表示が変。 (カーソル位…

tkinterでドラッグ&ドロップ

Python付属のIDLEは、ファイルをウィンドウにD&Dしても、 そのファイルを開いてくれない。 それは、tkinterにドラッグ&ドロップがまだ完全には実装されていないからだ。 しかし、tcl/tkには既にtkDNDと言うものがあり、ちゃんとファイルをD&Dできる。…

py2exeとwin32com.shell

py2exeがwin32com.shellを上手く検索してくれなくてハマった。 解決法をメモしておく。(と、いってもhttp://www.py2exe.org/index.cgi/WinShellの丸写しなんだけども。) from distutils.core import setup import py2exe #ここから try: # if this doesn't…

ncslでipython

ipython.exeにはバグがあり(?)Ncsl上でCtrl+Cをすると、後ろのcmd.exeが顔を出してしまう。 原因は分からないが、とりあえずipython.exeではなく、python -c "import IPython.Shell;IPython.Shell.start().mainloop()"をやって起動するか、同等のPythonス…

xhtmlの整形

XHTMLを整形するツールを探してみた。 こんなの http://d.hatena.ne.jp/atsam/20090118/1232273065があったので Pythonでもxml.etree.ElementTree.fromstringで整形したいXHTMLを読み込んで、xml.etree.ElementTree.tostringで吐き出せば、きっと綺麗なコー…

pythonでSingletonパターン

PythonでSingletonパターン―インスタンスが高々1つしか存在しないクラス―を実現する、 ひとつの簡単な方法は、クラスの代わりにモジュールを使う事だ。モジュールは一つしか存在しえないからだ。 しかしクラスをSingleton化する度に、一々selfを消したりglo…

BeautifulSoupは崩れたHTMLも強引に解釈してくれる

ゆえに、変なファイルを読み込ませてprettifyしたら、びっくりした。 (正確にはびっくりして、元ファイルが変なのに気づいた) 変換前 <table> &#160;<tr> &#160;&#160;<td> &#160;&#160;&#160;表の中身 &#160;&#160;&#160;(なが〜〜いコード) &#160;&#160;&#160;表の中身 </td></tr></table>…

quiz を解いてみた

cozeのPython日記のPythonクイズを解いてみた。 所要時間は・・・3時間半くらい?腹が減った。こんな事する間に、試験勉強しなきゃなぁ・・・ #Python2.6限定 from __future__ import ( with_statement, division, print_function, unicode_literals ) from…

open関数をモジュールに作るとき

#spam.py def open(filename): data = open(filename, "rb").read()#ファイルの中身を読み込む #ほげほげ return egg などとすると、エラーになる。 spam.py内で定義したopen が組み込みのopen を上書きしてしまうから import __builtin__ def open(filename…

Template Method パターン

『Rubyによるデザインパターン』(ラス・オルセン著 ピアソン・エデュケーション刊)をPythonで書いています。 目次変化しない部分は基底クラスに書き、 変化する部分は抽象メソッドにしてサブクラスに任せようというもの。

Strategyパターン

『Rubyによるデザインパターン』(ラス・オルセン著 ピアソン・エデュケーション刊)をPythonで書いています。 目次 前回のTemplateMethodパターンではレポートのフォーマットの切り替えに、 抽象基底クラスを作成し、詳細な点はサブクラスに任せます。Templ…

Observerパターン

『Rubyによるデザインパターン』(ラス・オルセン著 ピアソン・エデュケーション刊)をPythonで書いています。 目次 ソフトウェアでは、ある値が変わるとそれに呼応して別の部分も変化する、というものがよくあります。例えば、表計算ソフトでセルの値を変更…

Compositeパターン

『Rubyによるデザインパターン』(ラス・オルセン著 ピアソン・エデュケーション刊)をPythonで書いています。 目次 ある要素には幾つかの子要素がり、子要素には数個の孫要素がり、 さらに孫要素には・・・であって、 しかも、子も孫もひ孫も、同じようなイ…

Iteratorパターン

『Rubyによるデザインパターン』(ラス・オルセン著 ピアソン・エデュケーション刊)の例をPythonに変換して書いています。 目次 一般にプログラミング言語は複数のデータ構造を持ち(リスト・連想配列・集合など)異なった方法で値のオブジェクトを保持して…

学Py。

学生限定のPythonコミュニティが立ち上がるそうだ学Py。 22歳以下限定、私はぎりぎりセーフ 発起人のaceさんはリアル中学生、しかも各種セミナーにも参加 私がBASICでプログラミングを始めたのは高校生セミナーは大学3年で1回だけ うらやましいなぁ

wxPythonとthreadingで時間がかかる処理

wxPythonで、OnButton等のコールバック関数内に時間がかかる処理を書いてしまうと、 ウィンドウ全体が固まってしまいます。 そこでthreadingを使ってどうにかします。 これが最適な方法なのかどうかは知りません。 というより、きっと何かマズイ部分があると…