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

年末までになんとか読み終えられた本

まず、33パターンのスタートアップ(起業)を体験できる本。Founders at Work 33のスタートアップストーリーJessica Livingston 長尾高弘 アスキー・メディアワークス 2011-08-26売り上げランキング : 100441Amazonで詳しく見る by G-Tools各人がどのような…

今日のGUIクラッシュ(マルチスレッド関連)

threadを使うwxPythonによるGUIがクラッシュするときに表示される、エラーメッセージのいくつかのパターン。 パターン1 (python:14799): Gtk-CRITICAL **: gtk_text_layout_wrap_loop_start: assertion `layout->one_style_cache == NULL' failed パターン2 …

matplotlibで描いたグラフ上の座標を取得する方法

matplotlibで描いたグラフの上で、マウスをクリックした位置の座標の値を取得したい。matplotlibでグラフを描くと、マウス位置の座標が画面の左下に自動的に表示されている(図1)。なので、座標の値を取得するのは可能なはず。 図1:matplotlibでのグラフの…

Ubuntuは変わったな

久しぶりに、Ubuntuをダウンロードして使ってみる。バージョン11.10。 今までと変わりすぎで戸惑う。いつからこんなになった?ターミナルを開くのにもひと苦労。どこから起動するのか分からなかった(Dash Homeからアプリケーションパネルを開いて、terminal…

騒音レベルの測定法

騒音レベルに関する、いくつかのこと。 音圧: 人が聞くことができる音の範囲は、周波数20[Hz]〜20[kHz]、音圧(実効値)20[μPa]〜20[Pa]である(1kHz付近での値。周波数によって耳の感度が異なる)。 騒音計(Sound Level Meter) 騒音レベルをどう定義する…

音の強さと大きさの表し方

まず、音を表す諸量の定義を見ていく。 音の強さ: 音のエネルギー量であり、物理的に定義される。 音の進行方向に垂直な単位面積を単位時間に通過する音のエネルギー量。 単位はW/m2。記号はIである。 音圧pとの関係は、次式で表される。ここでは、固有音響…

Linuxの実行モジュールの形式

Linuxの実行モジュールのバイナリ形式には、「a.out」と「ELF」があるらしい。現状では、ELF形式が基本らしい。 fileコマンドで確認すると、ほぼすべてELFになっているのが分かる。a.outって実行モジュールの形式だったのだな、昔は。だからどうだということ…

音声を可視化したい(4)

2011-11-11 - 理想のユーザ・インターフェイスを求めての続き。 日常の音を録音したファイルから、得られた波形を周波数分解する。何も考えずに、フーリエ変換のライブラリを使ってみた。ソースは下の通り。 # sound02.py import numpy as np import matplot…

音声を可視化したい(3)

通勤途中に録音した、道路沿いの音をグラフにしてみる。 トラックが頻繁に通っているとき(サンプル1)と、車の音がほとんど聞こえない公園内(サンプル2)の音を記録した。携帯で録音するとamrという拡張子の音声ファイルになる。このファイルをwavファイル…

音声を可視化したい(2)

2011-11-01 - 理想のユーザ・インターフェイスを求めての続き。波のデータをスペクトル解析したい。どの周波数成分がドミナントになっているかとか。まずは、フーリエ変換のライブラリを試す。(参考サイト:高速フーリエ変換(FFT) - 人工知能に関する断創…

音声を可視化したい

pythonのwaveモジュールで、音声を波形化する。以下のサイトで下調べ。 参考サイト: http://www.python.jp/doc/nightly/library/wave.html#wave.Wave_read.getframerate 2011-05-19 wavファイルのデータから「波のグラフ」が描けるらしい。確かに描ける。し…

本棚の整理

家の限られた本棚スペースを確保するために、雑誌を残念だけど捨てることにする。ぐっちゃぐちゃで、どこに何が置いてあるか、最近では分からなくなっていた。いろいろな意味でよろしくない。まだ読んでいない本が本棚に入ることなく、そのへんに積まれてい…

最近のバグ

最近、Linux上でGUIを動かすときに悩まされるバグ。 Gtk-ERROR **: file gtktextlayout.c: line 1113 (get_style): assertion failed: (layout->one_style_cache == NULL) aborting... どうも、Thread関連のエラーらしい。Thread実行するとGUIがクラッシュす…

virtualenvでテスト環境を構築

Pythonの話。 試してみたいライブラリがあるとき、そのライブラリを一度インストールしてしまうと、やっぱやめた、というときに実行環境の原状復帰がなかなか難しいという問題がある。復帰の際に環境を壊してしまって、今まで動いていたものも動かなくなるの…

matplotlibで書いたグラフにラベルを付ける

matplotlibで久しぶりにグラフを描く。 複数の線を描くので、線ごとにラベルを付けたかったのだが、label='...'をplot(...)の中に加えるだけでは表示されず、あれこれ迷う。簡易コードを書いて2時間ぐらい奮闘し、やっとlegendで表示位置を指定しなければ書…

座標ラベルの書き方

OpenGL ES on Python: Writing x, y and z axis 参考にする。 さらに矢印を描く。 http://8.ldblog.jp/archives/52085019.html 結構、面倒だ。

 Linuxではキーボード入力ができない問題

2011-04-19 - 理想のユーザ・インターフェイスを求めて において、キーボード入力を受け付けるようにしたが、Linuxでself.Bind(wx.EVT_CHAR, self.OnKeyboard)が無視される問題に気づく。 どんなキーを押しても反応なし。

ターミナルの文字化け

ファイル記述子の指定を間違えたプログラムを、コマンドラインで実行した途端、ターミナルが文字化けした。 恐ろしい...。メニュー項目の「端末」から「リセットとクリア」を選ぶと直った。

バーチャルリストでリスト表示を低負荷に行う(2)

2011-09-28 - 理想のユーザ・インターフェイスを求めての続き。wxPythonの話。 VListBoxのサンプルを改良して、他で使える形にもっていく。 改良のポイントを列記すると、 リストはVListBoxで作成 リストの前後に他のコントロールを配置 ボタンを押したとき…

画面のロック用のログインダイアログ

GUIアプリケーションのための、ログイン用のダイアログを作成する。 このダイアログでの認証が成功しなければ、メイン画面の操作ができないようにしたいときに使用する。アプリケーションの画面をロックしたいときにも使える。 wxPythonの料理本の3章の4に出…

バーチャルリストでリスト表示を低負荷に行う

wxPythonでGUIを作るときの話。wxListCtrlでリストを作成して表示する。しかし、リストが大きくなると表示にかかる時間やメモリの消費量も無視できなくなってくる。そのような場合のために、「バーチャルな」リストコントロールというものがある。リストの中…

購入した洋書

最近の1ドル76円の円高を利用して、Amazon.comで洋書を購入。 下記3冊を9052円(+送料832円)で注文できた。実際には、1ドル80円ぐらいで換算されている。8月25日に注文して、9月5日着。予定より1ヶ月ぐらい早く到着。Wxpython 2.8 Application Development…

wxNotebookで表示しているパネルを隠したいとき

wxNotebookを使って、いくつかのパネルをタブ切換えで表示させている。このとき、あるパネルだけ非表示にしたいときがある。そのときは、Hide()を使うことにする。 例えば、下記のコード。 import wx class MyApp(wx.PySimpleApp): def OnInit(self): Frm = …

リバースエンジニアリング読書記録

「5章 Immunity Debugger」を読む。 Immunity Debuggerを起動しようとすると、「python27.dll」が無い、といわれる問題は、Immunity Debuggerのフォルダにpython27.dllをコピーすることで回避。 findinstruction.pyというPythonスクリプトをPyCommandで実行…

マウスの右クリックでメニューを表示させる方法

GUIの画面上で、マウスの右ボタンをクリックしてメニューを表示させる方法を検討する。「wxPythonデモ」のListCtrl.pyを参照した。 下のコードでは、マウスの右ボタンを押して離したとき(wx.EVT_RIGHT_UP)に、ポップアップメニューを表示するようにしている…

リバースエンジニアリング(4章の最後のところ)

PyDbgの「プロセススナップショット」のサンプルプログラムがエラー終了する(Python 2.6.6 on Windows 7 32bit)。 「snap(スナップショットを取得)」と入力し、しばらくのち、「restore(スナップショットを取った時点へ戻る)」と入力するとエラー。 自…

 リバースエンジニアリング(4章の始めのところ)

昨日に続いて、PyDbgを使うために、http://paimei.googlecode.com/svn/trunk/からTortoiseSVでモジュールをチェックアウトする。最初、このページにブラウザで直接アクセスしてダウンロードできず悩んだ自分はSVNの素人。昔、リポジトリを壊して痛い目を見て…

リバースエンジニアリング

3章「Windowsデバッガの構築」まで。興味深く読み進む。 しかし、せっかく作ったデバッガのサンプルコードが、自分のPC環境では動かないことが判明。 Windows XP 64bit Windows 7 32bit 上記、どちらも動作せず。Windows XP 32bitならたぶん問題なし。でも、…

今日の夜学

リバースエンジニアリング ―Pythonによるバイナリ解析技法 (Art Of Reversing)Justin Seitz 安藤 慶一 オライリージャパン 2010-05-22売り上げランキング : 227299Amazonで詳しく見る by G-Tools今日やっと読み始めた。本のサンプルでpython25を使うため、環…