2009-06-01から1ヶ月間の記事一覧

Androidを始めることになりました

仕事の関係上、Androidを始めることになりました。実は携帯アプリは、昔やってました。 でも、携帯アプリの開発にはあまり良い思い出はありませんね。 「なんだこの仕様・・・」とイラつくんですよね、特にドコモさんにはいつもイラつかせて頂いておりました…

Inkscapeのプラグインでも作るか

そろそろ作っておくべきか・・・ でも、Inkscapeプラグインの日本語資料はほぼ壊滅。 あっても古いしな・・・とりえあず、inkex.pyあたりを読むしかないか・・・

主成分分析を使ってバウンティボックスを作る

以前にnumpyを使った主成分分析を公開しましたが、今回はそれを使ってバウンティボックスを作ってみます。 ある頂点集合に対して、適切なバウンティボックスを求めたいとしましょう。簡単に思いつく方法としては、基底軸X,Yごとに最大値&最小値を求め、それ…

Inkscape0.47の新機能

Inkscape0.47(NightBuild版)を触ってみた感じですが、結構良いです! ただ、正式版ではないのでまだ不安定かな・・・ざっと触った感触で、独断と偏見で主な新機能を挙げていきます。 充実したスナップ機能 0.47を起動すると、新しいツールバーが目につきま…

同じ色を一気に変更する方法

前からInkscapeを使っていて、不便に感じていたのが「色で選択」がないことでした(Illustratorにはある)。 色で選択は無いですが、同じ色を一気に変更する方法があったのでメモ。 「エフェクト」→「色の数」→「Replace color...」を選択すれば、色を一気に…

なぜPythonには"標準"で定数を定義できないのか?

結論から言うと、Pythonになぜ"標準"で定数がないのかは「わかりません」。 答えを求めていた人には申し訳ない。 Pythonには知っての通り、定数を定義できません。 (独自でconstクラスを実装すれば定数らしき事はできます) 定数の実装が難しいとは考えにく…

pyevolveによる遺伝的アルゴリズム(3)

pyevolveによる遺伝的アルゴリズム(1) pyevolveによる遺伝的アルゴリズム(2) 今回はGAで「巡回セールスマン問題」を解いてみます。 「matplotlib」のインタラクティブモードを使い、巡回経路がリアルタイムで変化するようにしました、経路がウネウネと最適化…

pythonグラフライブラリ「matplotlib」覚書

http://matplotlib.sourceforge.net/よく使う機能のみピックアップ。 グラフ(plot) from pylab import * x = arange(-10, 10, 0.1) y = sin(x) plot(x,y, '--') show() 棒グラフ(bar) from pylab import * datas = {"Tim":7, "Jack":10, "Matthew":4} width …

右クリックで簡単な画像操作「nautilus-image-converter」

スクリーンショットなどを撮っていると、画像を縮小したくなるときがあります。 「nautilus-image-converter」は、右クリックメニューから「画像の拡縮」と「画像の回転」を実行できるようになるアプリです。ブログや資料作りをしている人にはおすすめ。

numpyを使って主成分分析

古いソースが出てきたので、とりあえずメモ #coding:utf-8 import numpy #主成分分析関数 def PCA(P): m = sum(P) / float(len(P)) P_m = P - m l,v = numpy.linalg.eig( numpy.dot(P_m.T,P_m) ) return v.T #分析する標本集合 points = numpy.array([ [-1,-…

3次元ベジェ曲線のバウンティボックスを求める

■ベジエ曲線のバウンディングボックス http://d.hatena.ne.jp/nishiohirokazu/20090616/1245104751 InkscapeのSVG解析ですね、ええわかります。 Inkscape SVGは独自拡張記法で回転中心という項があるんですよね、しかし、バウンティボックスという拡張記法は…

既存のファイルリストをワイルドカードでフィルタする

ドラッグアンドドロップで与えられたファイルリストを、ワイルドカードでフィルタしたい場合があります。 そういう場合はglobではなくfnmatchモジュールを使います、pythonではワイルドカードとは呼ばずに「Unix ファイル名のパターンマッチ」と呼ぶそうです…

多重キーでのソート

多次元リストのソートってよく使う機能だと思うんですが、pythonのソートってよく考えて作ってあるなぁと関心しました。例えば、次のような「生徒の成績リスト」があったとします。 # 配列の並び順 [名前],[国語],[算数] a = [ ['Tim', 55, 46 ], ['Jack', 5…

SVNクライアント「Nautilus SVN」

Windowsには「TortoiseSVN」という素晴らしいSVNクライアントがあります、LinuxにはRapidSVNなどのGUIのSVNクライアントはありますが、どれもイマイチな感じでした。でも、ついにでたのですねLinux版「TortoiseSVN」と言われる「NautilusSVN」がっ! 早速い…

ガベージコレクションを無効にする

gcモジュールでは、ガベージコレクションの制御をすることができます。 >>> import gc >>> >>> gc.disable() #ガベージコレクションを無効にする >>> gc.isenabled() False >>> gc.enable() #ガベージコレクションを有効にする >>> gc.isenabled() True 一体…

標準出力を独自クラスに置き変える

既存のCUIベースのpythonスクリプトを、GUIベースに乗せ換えたりするときがありますよね。 標準出力を変更できれば、既存モジュールを変更せずにprint文表示先を、GUIコントロールに変えることが可能です。pythonでは標準出力はsys.stdoutに設定されています…

python3.1の新機能が良い・・・(´Д`;)ハアハア

Python3.1の新機能がなかなか良いですね・・・■What’s New In Python 3.1 http://docs.python.org/dev/py3k/whatsnew/3.1.html細かいところがいろいろ改善されています、嬉しかった機能をあげてみました。 順序付き辞書機能 今までの辞書は順序は保証されて…

クラスで動的にメソッドを追加

どうも忘れやすいのでメモ。 class C: pass def attach(self, arg): self.val = arg print self.val C.attach = attach obj = C() obj.attach("test attach")

pythonでExcelファイルを読み込む

読み込みだけなら、xlrdモジュールが使えます。http://www.lexicon.net/sjmachin/xlrd.htm適当なExcelファイル「Book1.xls」を作ります。 以下、クイックスタートサンプルです。 import xlrd book = xlrd.open_workbook("Book1.xls") print "The number of w…

PC絵素材

技術資料を書いていると、PC絵素材が必要になったりします。 拡縮に対応できるようベクターデータは必須で、Webでも使いたいからSVG形式がよくて、エクセルとかについてるダサいやつじゃなくて・・・ とか言ってると、なかなか見つかりません。 そこで使いや…

下に隠れたオブジェクトを選択する方法

Inkscapeの操作で意外と困るのは、オブジェクトの下に隠れているオブジェクトを選択する時です。実は「Alt+左クリック」で、下に隠れたオブジェクトを選択する事が出来ます。 (下に隠れたオブジェクトが複数ある場合は、クリックするたびに選択が変わってい…

サスペンド復帰時に無線LANが繋がらない

Ubuntuでサスペンドから復帰すると、無線LANが繋がらない現象に悩まされていました。そんな時は、/etc/pm/config.d/localにて、無線LANのモジュールをロードすればOK。 私の環境ではPCIの無線LANアダプタを使用しているので、以下の1行を付け足します。 SUS…

pyevolveによる遺伝的アルゴリズム(2)

pyevolveによる遺伝的アルゴリズム(1) GAを更に理解するために、GAの用語を説明します。 用語さえ分かれば、サンプルコードを眺めるだけで何をやってるかだいたいわかるようになります。 Genome(遺伝子) ドイツ語で「ゲノム」と読みます。 遺伝子(Gene)+染色…

pyevolveによる遺伝的アルゴリズム(1)

時代はすでに遺伝的プログラミングに移行している感がありますが、遺伝的アルゴリズム(Genetic Algorithm)をやってみます。 pythonのライブラリである『pyevolve』を使うと、笑っちゃうほど簡単にGAができちゃいます!フヒヒwwwサーセンwww■pyevolve http://pyevolv…

バイナリエディタ『ghex』

プログラマ必携品のバイナリエディタです。 Windowsでは『Stirling』が便利だったのですが、Linuxでは『ghex』が便利でした。 Synapticからインストール可能です。