2011-01-01から1年間の記事一覧

 今日のエラー

OpenGLを使ったコードを、PyInstallerでフローズンバイナリ化するも、実行しようとすると動かない。実行時に表示されるメッセージ。 No handlers could be found for logger "OpenGL.arrays.arraydatatype"PyInstallerを使うときの設定をどうにかしなければ…

別のプロセスが、同じファイルを開いて書き込むことができるかどうかのテスト

同時に実行されている別のプロセスがある。そのプロセスが同じファイルに書き込みをしたい。そういうことができるかどうか、ふと疑問に思ったので簡単なプログラムで確認してみる。2つテストコードを書く。まず、最初に実行する方。 import time fp = open('…

編集可能な表をwxListCtrlで作成する

wxListCtrlで作成した表において、セルの値を直接編集することはできない。SetStringItemメソッドで、値を変えることはもちろんできるが。ここでの直接編集とは、マウスで表のセルをクリックして値をキーボードから入力するようなことを指す。wxGridなどを使…

matplotlibのバックエンドの設定に関するエラー

matplotlibをインストールするとき、backendをaggに指定してしまったらしい。そのため、以下のスクリプト(グラフを描いてウィンドウで表示するだけ)を実行すると、エラーになる。 import matplotlib import matplotlib.pyplot as plt fig = plt.figure() a…

「大規模サービス技術入門」を読む

[Web開発者のための]大規模サービス技術入門 ―データ構造、メモリ、OS、DB、サーバ/インフラ (WEB+DB PRESS plusシリーズ)伊藤 直也 田中 慎司 技術評論社 2010-07-07売り上げランキング : 3225Amazonで詳しく見る by G-Tools自分はサーバの運用をしているわ…

wxChoiceの項目を操作に応じて変えたい場合の対処法を考える

プルダウンメニューから項目を選ばせたいとき、wxChoiceを使うことができる。こういうやつね。 このwxChoiceの項目を、動的に変える方法を考える。アプリを起動してから終了させるまで、項目を変える必要がないなら何もしなくても良いが、ある操作によって選…

Coders at Work

Coders at Work プログラミングの技をめぐる探求Peter Seibel 青木 靖 オーム社 2011-05-25売り上げランキング : 9519Amazonで詳しく見る by G-Tools600ページあまりと結構な厚さだったので、読み終わるまでにだいぶ時間がかかってしまった。”伝説の”coderの…

wxCollapsiblePaneで開閉できるパネルを作る

ボタンを押すと出たり消えたりするパネルを、wxPythonで作りたい。wxCollapsiblePaneが、一番動作イメージに近いかな、と思うので使い方を検討する。参考:wxPython API Documentation — wxPython Phoenix 4.0.3 documentation例えば、「Show」の方のラジオ…

NotebookをPanelの上に置くときはSizerで調整

wx.Notebookで、タブ切換えの複数の画面を作りたいときには、Frameの上にNotebookを置いて、以下のようにやればよい。 import wx class MyApp(wx.PySimpleApp): def OnInit(self): Frm = wx.Frame(None, -1, 'Title', size=(500, 500)) nb = wx.Notebook(Frm…

 wx.PlatformInfoでプラットフォーム情報を確認

wx.PlatformInfoクラスで、wxPythonを実行しているプラットフォームの情報が見られる。日頃使っているそれぞれの開発環境で実行してみた。 CentOSでは >>> wx.PlatformInfo ('__WXGTK__', 'wxGTK', 'unicode', 'gtk2', 'wx-assertions-on', 'SWIG-1.3.29') W…

gifアニメーションを、wxの画面上で再生する方法

gifのアニメーションファイルは、通常の画像ファイルのようにwx.StaticBitmapで画面に貼り付けても静止画として表示されるだけ。アニメーションを再生させるには貼り付け方を変えなければいけない。どう変えるか? wxPythonのデモの中に、複数のgifアニメー…

デジタルフォトフレームの動作をwxPythonで実装する(4) -Windowsではちゃんと画面遷移する-

同じコードをWindowsで実行すると、ちゃんと画面遷移する。途中で固まったりしない。問題なし。 実は問題がある。表示される画像サイズがフレームと合っていない。 なぜこんなことになるのか不明。ちゃんとスケールしているのに。

デジタルフォトフレームの動作をwxPythonで実装する(3) -Linuxでは少しまともに動く-

昨日(デジタルフォトフレームの動作をソフトウェア的に実装する - 理想のユーザ・インターフェイスを求めて)のコード実行時のエラーなのだが、うちのMacでだけ起こるエラーのようだ。Linux環境で実行したらエラーが再現されなかった。 (▲Chromeの画像を表示…

デジタルフォトフレームの動作をソフトウェア的に実装する(2) -wxPythonの出番-

デジタルフォトフレームで実現している自動的な画像切り替えの動作を実装することが目標である。フォトフレームでなくても、スクリーンセーバーなんかでも見られる自動画像切り替えをどう実現するか、を自分のアタマで考えていろいろと試してみたい。 とりあ…

 デジタルフォトフレームをソフトウェア的に実装する(1) -試しにPILで特定のディレクトリの画像を順番に表示-

電車の中でデジタルフォトフレームの広告を見たとき、フォトフレームで実現している画像切り替えはソフトウェア的にどう実装できるかな、とふと考えた。 そこで、デジタルフォトフレームのように表示する画像を、ある時間間隔で切り替えるデスクトップアプリ…

matplotlibでのTypeError

ログスケールでグラフをプロットしようとすると、 TypeError: coercing to Unicode: need string or buffer.というエラーが起こる。環境は以下の通り。 Python 2.6.2 matplotlib 0.99.1 ソースを実行しても問題は生じないが、PyInstallerでパッケージ化して…

画像ファイルを分割して別々のファイルとして保存する

1つの画像ファイルを読み込んで、15パズル用に4x4の16分割したファイルとして保存したい。PIL(Python Imaging Library)を使えば、この処理も簡単にできてしまうのがPythonの凄いところ。 今回行う処理内容は上の図の通り。1枚の絵を16分割する。 一連の処理…

ラバーバンドの表示

あとで書く。 from OpenGL.GL import * from OpenGL.GLUT import * MAXPOINTS = 100 point = [[0, 0]]*MAXPOINTS pointnum = 0 rubberband = 0 savepoint = [0, 0] def display(): glClear(GL_COLOR_BUFFER_BIT) if pointnum > 1: glColor3d(0.0, 0.0, 0.0) …

マウスで線を引く(Pythonでリストのリストのアイテムの値を変える)

OpenGLで絵を描く練習をいろいろとやっている。 GLUTによる「手抜き」OpenGL入門を読みながら、サンプルコードをPythonコードに変換している。今回は、マウスで画面に線を引くサンプルコードを変換した。 ここで、マウスでドラッグする始点と終点をpointとい…

rootになるときの環境変数の引き継ぎ

rootになるとき、 $ su -とすると、ユーザーの環境変数を引き継がない。環境変数を引き継ぎたいときには、 $ suでrootになるとよい。 今まで無意識のうちに引数「-」を付けていたので、DISPLAY変数が設定されず困ったことになったから確認した。

マウスでオブジェクトを選択する(2)

OpenGLで描画した物体をマウスで選択していろいろとやってみたい。セレクションという機能を使って実現するのだが、その練習をやってみる。 前回(http://d.hatena.ne.jp/Megumi221/20110421)に続いて、セレクションを使ったサンプル(アニメーション版)をPyt…

マウスでオブジェクトを選択する(1)

OpenGLで描画した物体をマウスで選択していろいろとやってみたい。セレクションという概念を使って実現するみたいだが、その練習をやってみる。 参考サイト GLUTによる「手抜き」OpenGL入門(今までにあった質問) プログラム技術研究(マウスによる選択) …

描画した図形をマウスで操作する(9)

PythonのOpenGLライブラリを用いて、3次元図形の描画を行う練習をしている。 マウスで物体を回転したり平行移動したりしたかったのだが、回転と平行移動を組み合わせるとうまくいかない。そこで、とりあえずは平行移動をあきらめて、現状のコードをまとめる…

描画した図形をマウスで操作する(8)

PythonのOpenGLライブラリを用いて、3次元図形の描画を行う練習をしている。とりあえずは以下のプロセスに沿って、いろいろと機能を試して練習を進めている。 なんでもいいので3次元の図形を描画する(practice1.py) 描いた図形をマウスで回転できるようにす…

描画した図形をマウスで操作する(7)

PythonのOpenGLライブラリを用いて、3次元図形の描画を行う練習をしている。とりあえずは、次のプロセスに沿っていろいろと機能を試して練習を進める。 なんでもいいので3次元の図形を描画する(practice1.py) 描いた図形をマウスで回転できるようにする(prac…

描画した図形を操作する(6)

PythonのOpenGLライブラリで、図形の描画を行う練習をしている。とりあえずは、以下のプロセスに沿って、いろいろと機能を試して練習を進める。 なんでもいいので3次元の図形を描画する(practice1.py) 描いた図形をマウスで回転できるようにする(practice2mo…

Pythonでネットワークプログラミング(7)

TCP/IPプロトコルでのネットワークプログラムをPythonで書くための練習。 今回の検討項目 前々回(http://d.hatena.ne.jp/Megumi221/20110414)に作成したクライアント-サーバ型の簡単な計算プログラムでは、サーバ側で長時間かかる計算を外部プロセスとして実…

Pythonでネットワークプログラミング(6)

TCP/IPプロトコルでのネットワークプログラムをPythonで書くための練習。 今回の検討項目 前回(http://d.hatena.ne.jp/Megumi221/20110414 )までに、外部プロセスとして計算プログラムを実行するクライアント-サーバ型のプログラムを作成した。そのとき、サ…

Pythonでネットワークプログラミング(5)

TCP/IPプロトコルでのネットワークプログラムをPythonで書くための練習。 今回の検討項目 前回(http://d.hatena.ne.jp/Megumi221/20110412 )までに、クライアント-サーバ型の簡単な計算プログラムを作成した。計算プログラムでは、サーバプログラムは、送…

TIME_WAIT状態にあるコネクションをなんとかして使う

ネットワークプログラムをデバッグのために、何度も繰り返し実行していると、同一のポート番号がすぐには使えなくなり、しばらく待たなければプログラムの実行ができないことが頻繁にある。これは、そのポートによるコネクションがTIME_WAIT状態にあるためで…