PILで_imagingftのインポートエラーが出た場合

PILでTrueTypeFontを使おうとすると、環境によっては raise ImportError("The _imagingft C module is not installed")というエラーが出る。 要はPILのコンパイル時にFreeType2がインストールされていなかった事が原因。 Linux(OpenSuse)ならば、「freetype2…

matplotlibで面グラフを書く

適当なグラフですみません。 from pylab import * x = range(10) y1 = list(sin(x)) y2 = [sin(i)-0.2 for i in range(10)] fx = x + x[::-1] fy1 = y1 + y2[::-1] fy2 = y2 + [-1 for i in range(10)] ylim(-1) fill(fx,fy2, fx,fy1) plot(x, y1, "go", x, …

Pythonで配列内の重複する値を抽出する方法

Rubyで配列内の重複する値を抽出する方法 - 久保清隆のブログ確かに「重複した値が知りたい」ときって、結構あるんですよね。 Rubyにはinjectという記法(?)があるんですね。 じゃあ、Pythonだとどうなるんだろうと考えてみました。 a = [1, 2, 3, 4, 5, 5, 1…

OpenSuse11.4でChromeをインストール

FireFox5に嫌気がさしたので、OpenSuse11.4でChromeをインストールしたのでメモ。インストール自体は簡単で、以下のサイトからRPMをダウンロードするだけ。http://www.google.co.jp/chrome/インストールは無事に完了するが、Chromeが立ち上がらない・・・ ど…

wxPythonでクリップボード操作

wxPythonでクリップボードで少しハマったのでメモ。wxPythonでクリップボード操作をググると、wx.Clipboard()を生成する方法が出てくる。 だが、OpenSuse11.4だとSetData()をするとアプリが終了しなくなるという現象が発生した。 ドキュメントを調べるとwx.T…

PILで"decoder jpeg not available"というエラーが出た時

OpenSuseでPILを使った時にこんなエラーが出たのでメモ。どうやらeasy_install時にlibjpeg-devがない場合にこんなエラーが出る模様。 まず、libjpeg-devをインストール(環境によって最適なパッケージを入れてください) sudo zypper in libjpeg62-devel現在…

新しいファイルだけ上書きコピーする

今までshutilとかでチマチマやってたけど、Windowsなら「xcopy」コマンドを使えばよい事に気付いた。 主なオプションは以下の通り。 /D 新しいファイルだけをコピー /S /E サブフォルダもコピー /H 隠しファイルもコピー /C エラーを無視してコピー /Y 無条…

wxHTMLのメモ

#!/usr/bin/local/python # -*- coding: utf-8 -*- import sys import os import wx import wx.html from wx import xrc class MyApp(wx.App): def OnInit(self): self.frame = wx.Frame(None, -1, "test") sizer = wx.BoxSizer( wx.VERTICAL ) self.main_wn…

RGB->L*a*b*変換

とりあえずメモ RGB2XYZ_D65 = ( 0.412453, 0.357580, 0.180423, 0.212671, 0.715160, 0.072169, 0.019334, 0.119193, 0.950227 ) D65 = ( 0.950456, 1., 1.088754 ); _coff = ( RGB2XYZ_D65[0]*(1.0/D65[0]),RGB2XYZ_D65[1]*(1.0/D65[0]),RGB2XYZ_D65[2]*(1…

JavaScriptでデフォルト引数を使う

最近、JavaScriptを使うことになったので勉強中。 デフォルト引数が使いたいなと思いググったところ、下のコードが沢山ヒットする。 def test(a) { a = a || デフォルト値 ... } え、これってデフォルト引数が0やFalseの場合ダメだよね・・・? 正しくはこう…

Windowsを再起動/終了/スリープ/休止状態にする

再起動/終了 import os #Windowsの再起動 os.system('shutdown -r -f') #Windowsの終了 os.system('shutdown -s -f') スリープ/休止状態 import ctypes #Windowsのスリープ ctypes.windll.PowrProf.SetSuspendState(0, 1, 0) #Windowsの休止 ctypes.windll.P…

文字列のcsvを解析する方法

csvモジュールはcsvファイルしか解析できないと思われがちだが、メモリ上のcsvを解析する事も可能。 一番簡単な方法は、以下の通り。 import csv for row in csv.reader(['one,two,three']): print row # ['one', 'two', 'three'] 複数行の文字列も解析可能…

SCons入門(3)

SCons入門(1) - Pashango’s Blog SCons入門(2) - Pashango’s Blog ファイル/ディレクトリ操作「Copy,Move,Delete,Touch,Mkdir,Chmod」 SConsではファイル/ディレクトリ操作用に以下の関数が用意されている。 Copy(dst, src) ファイル/ディレクトリのコピー M…

SCons入門(2)

SCons入門(1) - Pashango’s Blog ファイル更新チェックの方法を変更する「Decider」 SConsでは、ファイルの更新チェックに標準でMD5を使用する。 そのため、タイムスタンプが異なっていても、ファイル内容が同じであれば不要なビルドを避けてくれる。 MD5で…

SCons入門(1)

SConsとは? Python製のMake代替ツール。 中でPythonコードを書けるので、複雑なMake処理を簡単に書ける。 C言語の依存関係などを自動に調べる機能などがあるらしいが、使った事はないので詳しい事はわからない。 自分の場合はプログラムのビルドではなく、…

スキルはあるが飯は食えないかもしれない

仕事が一段落したので、久しぶりの更新です。あなたのスキルで飯は食えるか? 史上最大のコーディングスキル判定 面白そうなのでPythonで解いてみました、実装時間は1時間くらいです。 Pythonすごいなー、C++やJavaでやれって言われたら3時間では終わらんわ…

CEDECへ行ってきました

仕事が忙しくてブログが放置ぎみになってしまいました。やっとマスターが終わったかと思えば、CEDECですね。 今回から横浜なんですねぇ。 S県民にとっては会場が遠い・・・・

ベイズの定理(入門編)

前回のエントリーで予告した通り、今回は「ベイズの定理」です。 事前に断っておきますが、ベイズの定理は簡単です。 内容は小学生レベルの算数ですから、解らなくても自信を持って何回か読みなおせば絶対にわかります。 (わからなかったらコメントに質問し…

モンティホール問題の補講

前回のエントリーで解答をくれた方たち、ありがとうございます。 正解した方たち、おめでとうございます。 前知識なしで2問とも正解した方は、非常に頭のいい方だと思います。 残念ながら不正解だった方たち、落ち込まないでください。 私も最初にこの問題を…

【回答編】はてな民に確率の問題を出してみよう

この記事は「はてな民に確率の問題を出してみよう」の回答編です。 まずは、そちらをご覧ください。

はてな民に確率の問題を出してみよう

こんにちは、今回は確率の話です。 以前、職場で余興として問題を出したのですが、ほぼ全員がこの問題を知りませんでした。 理系が多く集まる職場なので、意外にみんな知らないんだなぁと思ったのですが、今度はリテラシーの高い(と勝手に思っている)はて…

RE:自分ならこう書く - pythonでA*

自分ならこう書く - pythonでA* - ラシウラ おぉぉぉ、コードが添削されとる! しかし、ソート付きキューのheapqは知らなかったです、勉強になります。 それにしても、C言語のベタ移植だったとはいえ、Pythonに直すと短くなるもんだなぁ!! ・・・でも、短…

よく使うファイル操作早引き

Pythonでよく使う便利なファイル操作のまとめ。 こういう便利な機能を使っちゃうと、C言語でツールを作るのがバカらしくなりますね。 テンポラリファイル(一時ファイル) tempfileモジュールを使います、テンポラリファイルを作成する方法はいくつかあって…

wxMaxima覚書

wxMaximaとは? 「wxMaxima」とは、フリーの数式処理ソフト「Maxima」のGUIフロント版です。以下のページからwxMaximaをダウンロードすることができます。 http://wxmaxima.sourceforge.net/wiki/index.php/Main_Page Ubuntu(Linux)の場合は、以下のコマンド…

今更ながらjsonを使いました

Python2.6になって、jsonが標準モジュールになりましたね。 JavaScriptとの連携をするつもりはないんですが、可読性のあるpickleとして使えるかなと思いました。 import json a = { "name":"Tim", "age":19, "email":"tim@timcity.com", "visible":True } js…

クロージャの正しい使い方

先日、私が「クロージャの使い所が、イマイチわからないっす」とつぶやいてたら、知人から以下のページを教えてもらった。 クロージャの正しい使い方 orz .... 誰かクロージャの正しい使い方を教えてください。 (いや、確かに使ったら便利な場面もあるけど…

SDK1.5でOpenGLサンプル

SDK1.5からOpenGLの扱い方が変わったんですね。 今まで動いてたソースが動かなくて、おじさんビックリしちゃったよ。 SDK1.5からは、GLSurfaceViewを使うように変更になりました、日本語資料が無かったのでサンプルを張っておきます。 res/drawableにrobot.p…

すごい乱数生成アルゴリズム「xorshift」

みなさん、こんにちは、今回は乱数の話です。 特に複数機種でのコンシューマ機でゲームを開発をしていると、機種間で乱数値を統一するために乱数生成アルゴリズムを自作しますよね。 そこでよく使われるアルゴリズムが「線形合同法」です、内容は至って簡単…

numpyで2次元ベクトルの外積

一般的には2次元の外積の存在は賛否が分かれる所ですが、numpyでは2次元ベクトルの外積が用意されています。 import numpy numpy.cross([0,1],[ 1,0]) #-1 numpy.cross([0,1],[-1,0]) # 1 numpy.cross([1,0],[ 0,1]) # 0 どうやら内積の90度回転版みたいです…

ローカル変数で「L」とか「D」の変数名を使うやつ!

ローカル変数だからって1文字の変数名を付ける奴! 本当にそれでいいと思ってんのか?! 特に大文字の1文字変数を名づけた上に、値を上書きするやつ!! Rubyだったら怒られてるぞっ!! このダメプログラマがっ!! プログラミングの神様に謝れ!!! ごめ…