Pythonでベジェ曲線クラスを実装してwxPythonで動かす

中学生でもわかるベジェ曲線を読んでなるほどなーと思い、理解の確認でPythonでベジェ曲線のクラスを実装した。 #! /usr/bin/python2.7 # coding: utf-8 # bezier.py # ref: http://ruiueyama.tumblr.com/post/11197882224 def pt(p, q, t): assert 0 <= t <…

shebang urlを使ってみた

ajaxなアプリケーションを、表示しているコンテンツによってurlを切り替えつつ(もちろん画面遷移無しで)googleに正しくクロールしてもらえるようにしたかったので、うわさの(?)shebangつきurlの動作を確かめました。What's the shebang/hashbang (#!) i…

python2.7からPriorityQueueが標準モジュールに入ってた

python2.7からQueueモジュールにスタック(LIFOQueue)と優先順位キュー(PriorityQueue)が入ってたので使ってみた。ダイクストラ法。グラフはwikipediaのダイクストラ法に載ってるやつから作った。 #! /usr/bin/python2.7 import Queue as queue nnodes = 6 di…

PythonのsmtplibでGmailからメールを送信する

前回のエントリの内容を踏まえてpythonでgmailのsmtpサーバを叩いた。 import smtplib host, port = 'smtp.gmail.com', 465 username, password = 'xxx@gmail.com', 'xxx' msg = """From: %s To: %s Subject: python smtplib hello world . """ % (username,…

OpenSSLコマンドでGmailからメールを送信する

SMTPを学習して浅ーく理解できたのでGmailから自分自身にメールを送信してみた。Gmailは暗号通信でしかSMTPを利用できないので、telnetではなくopensslコマンドでサーバにアクセスした。 引っかかった箇所: heloとehloは違うらしい。ehloはサポートされてい…

jQuery.zip.inflate - jQuery Plugin for inflating zip archive

かなりニッチな気がしますが・・・Queryでzipファイルを解凍するためのプラグインを作りました。ソースは以下に。 https://github.com/yatt/jquery.zip.inflate実際にコーディングしたのはjQuery.ajaxとの統合部分で、実際にzipを処理する部分はhttps://gith…

appengineでアプリケーションを作ってみて注意点・思った事

Google Code Jamに提出されたソースを閲覧するCodejam Source Viewerを作ったときに感じたappengineでアプリケーションを作る際の注意点をメモ. データストア編 アップロードできる静的ファイルは最大3000個まで。 ローカルにプロキシを置いてクロスサイトAj…

ガラケーからfavstar.fmのrecentを見るPython CGIスクリプト

手持ちのガラケーだとどうしようもない感じなので, ガラケーからfavstar.fmの最新のfav一覧を見られるようCGIスクリプトをぱぱっとかきました.

Google App EngineでUPDATE文/DELETE文を発行するモジュールを書いた

Google App EngineのGQLはSQLライクの構文が使えますが、実際にはSQLと比べると機能がかなり制限されています。その中でも開発時に最も面倒な制限のひとつに、一度のクエリで取得できるエンティティの数は1000個までという制限があります。つまり、データモ…

Google Code Jamに提出されたソースを閲覧するアプリケーションcodejam source viewerを作りました

Google App Engine上で、Codejam Source Viewerというサイトを作りました。Google Code Jamでsubmitされたソースコードを手軽に閲覧するためのアプリケーションです。公式のスコアボードでは、 特定のユーザを検索できない どの言語を使っているのか不明 ソ…

base64コーデックのjQuery Pluginを作った

webアプリケーションを作るのに必要になったので、jQuery向けのbase64コーデックプラグインを作りました。githubにソースがあります. https://github.com/yatt/jquery.base64 atob/btoaが使える場合そちらを使い(ネイティブコードでサポートされるのでずっと…

Ubuntu 10.04.1 LTSにmecab0.97をインストールする

aptで探してもなぜかpython向けバインディングは無いわsetup.pyはこけるわで無駄に時間くったので備忘録。 辞書のデフォルト文字コードがeuc-jpらしくutf-8の辞書が無いとコンソールの端末エンコーディングに合わない。 それからsetup.py installで共有ライ…

SDKのソースを改変してAppEngineのパスワード入力を省略する

ただでさえ時間がかかるアップロードやremote apiを使うたびにパスワードを聞かれるのがうんざり。 ところでLinux向けのAppEngine SDKはPythonで書かれている。そう、挙動が気に入らないならソースを書き換えればいいじゃない。 1. Googleアカウント情報を保…

リモートホスト上でappengine開発サーバを起動する

appengineをいじっています。Djangoのときも同様のとこでちょっとだけ詰まったのでメモ。開発用サーバをwww.hoge.comで起動する場合の例。 $ python dev_appserver.py -a www.hoge.com /path/to/project

aojtools0.1.5をリリースしました。

aojtoolsを更新しました。AOJのサーバのドメインがrose.u-aizu.ac.jpからjudge.u-aizu.ac.jpに変更されたため対応しました。http://pypi.python.org/pypi/aojtools/0.1.5

Python2とPython3でHTTP POST+Cookie処理の比較

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)作者: 山本陽平出版社/メーカー: 技術評論社発売日: 2010/04/08メディア: 単行本(ソフトカバー)購入: 143人 クリック: 4,320回この商品を含むブログ (183件) を見る Python2系でurllibと…

C#の拡張メソッドでBitmapクラスをグレイスケール変換する

C#3.0から拡張メソッドというのが使えるようになったそうです。既存の型にメソッドを追加できます。すごい!!!そこで、たまたま書いていたアプリケーションで必要だった「Bitmapクラスをグレイスケール変換する」機能、これを拡張メソッドで定義してBitmap…

C#からtesseractを利用して画像から文字を認識する

画像や手書き文字から文字データを認識するOptical Character Recognition(OCR)ソフトウェアについて調べて使ってみました。左の画像は指定された画像をOCRで文字列を読み、出力するC#のフォームアプリケーションです。調べてみたところ、実用的なOCRソフト…

はてブのエントリページで自分自身にスターをつけているコメントをハイライトするユーザスクリプト書いた

今のところFirefoxにのみ対応、一覧のページにのみ対応です.2011-04-05のエントリページの変更に対応しています.yatt/highlight-self-stared-hatenabookmark - GitHubこんな感じになります。このページがサンプルとしてよさげ。はてなブックマーク - はてな…

東北大学の放射線モニタリング情報を取得する

福島の原発事故を受けて、東北大学が以下のurlで放射線のモニタリング情報を公開しています。http://www.bureau.tohoku.ac.jp/anzen/monitoring/ここから情報を取ってくるスクリプトを書きました。/jsonとかでデータにアクセスできるといいんだけどな。 # co…

Windows7, 64bitのPythonでPIL.Image.showを使えるようにする

Windows7で64bitのpython2.6にPILライブラリをインストールしたが、PIL.Image.showが使えない。 メソッドで使う_imagingモジュールが32bitバイナリでDLLのロードに失敗するみたいだ。自前でビルドとかものすごく面倒そうな感じだったのでどうしようかと思っ…

動作中のプロセスにキー入力をするフォームアプリケーション

.NETで他のプロセスにキー入力をする必要があったので、その方法について.NETを前提で調べました。結果、MSDNと@ITとかそこらを調べるだけでなんとかなりました。 プロセス一覧の取得 System.Diagnostics.Process.GetProcesses()でProcessインスタンスの配列…

IronPythonで画面をキャプチャする

.NETではSystem.Drawing.GraphicsのCopyFromScreenでキャプチャができるらしい。IronPythonでキャプチャを実行した。参考: http://lassy-tech.blogspot.com/2008/01/c_24.html http://d.hatena.ne.jp/Wacky/20070101/1167665225 import clr import System c…

pythonのzipfileモジュールがだめ文字をうまく扱ってくれないのを解決する

zipfileモジュールが駄目文字をうまく扱えない windowsで、フォルダを右クリック→送る→圧縮(zip)フォルダで作成したzipファイルをzipfileモジュールで正しく解凍できないケースに遭遇した。原因がわからず調べてみたら、どうやらsjisのだめ文字というのの…

progressbar for urllib.urlretrieve

地震で大変。ライフラインが止まってしまいました。困った困った。 urllib.urlretrieveにはreport_hook引数が用意されていて、callableを渡すとダウンロード状況をコールバックして知らせてくれます。シグネチャはこんな感じです。 report_hook(blocks_read,…

Impressive Python Syntax

list comprehension PEP 202 -- List Comprehensions [n for n in range(10) if n % 2 == 0] sample: import re lst = sum(re.findall('\d+', line) for line in open('lines.txt'), []) generator PEP 289 -- Generator Expressions def gen(n=0): while Tr…

フィボナッチ数を計算する方法をまとめてみた

Project Eulerで巨大な数のフィボナッチ数(10^14番目ぐらい)の剰余を求める必要があったので、関連するアルゴリズムについてまとめました。行列を使った最適化については@nico_shindanninさんにヒントをいただきました。 定義通り求める すぐに限界のくる方…

WM3500のバッテリー残量を表示するshワンライナー

utf-8のターミナルから叩く前提なので、必要に応じてnkf -wを端末のエンコーディングに合わせてnkf -eとかに書き換えるとしあわせになれるかも $ expr $(wget -q -O - http://admin:{password}@192.168.0.1/index.cgi/eco_mode_main | nkf -w | /bin/grep -o…

PythonのクラスをGUIで扱いやすいようラップ

既存のクラスのGUIを書こうとすると既存コードを弄る必要がある件 GUIプログラムを書く際に、ユーザの入力に対応して内部の状態を変更して、GUIを手動で更新みたいのは面倒すぎるので、内部の状態を更新するとUIは自動で更新される仕組みにしたい、と思うわ…

IronPythonでマルチスレッドプログラミング + Python3.2RC2のGIL

PythonでのマルチスレッドプログラムとGIL C言語とかJavaでマルチスレッドプログラムを組んでからCPython(C言語のPython実装)でマルチスレッドプログラムを組むとつまずきます。並列プログラムで実行速度が上がらないからです。その原因は、Pythonインタプリ…