2009/07/11

python mail

アラートメールを出したいなと思ったんですが
そういえば python でメール送ったことないので送ってみようと思いました

ググったら最初に出てきたのが
ウノウラボ Unoh Labs: Pythonでメールを送信したい人のためのサンプル集
凄い、全て書いてある。
  • email.MIMEText.MIMEText でヘッダ込みでコンテンツ作り smtplib で送信
  • smtplib の認証部分を使って Gmail を利用して送信
  • キャリア別携帯に絵文字入りメール送信
と、もぉ何もかものサンプルが揃っていました。

すごいわー、ウノウラボすごいわー。
2007 年 6 月の記事でした。

firefox キャプチャー

Web ページを印刷しといてって言われたりします
これが中々面倒です
CSS 全盛の昨今? 見たまま印刷するというのは中々難しく
Flash など使われていた日にはブラウザ単体ではお手上げです

で、検索してみたら出てきたのがどっちも SourceForge.JP Magazine から
偉いぞ SourceForge JP Magazine

両方インストールしてみたんですが、Firefox 3.5 でもどちらも動くようになっており
同じページで作った画像は diff しても差が無かったので内部でしてることは同じみたいです
あ、ちなみに png で作った結果です
"Pearl Cresent Page Saver Basic" はロケーションバーの横のカメラのアイコンか右クリック
"Screengrab!" はステータスバーの右の方とページ右クリックで
メニューなど出るのであとは適当に選ぶとセーブの window が出てきます。
Screengrab! の方が若干高機能で若干重い印象

で、ものすごい長い画像ができてしまったりします
Windows であれば「ペイント」を使えば分割して印刷できるみたいで
その方向でお願いすることにしました、画像は作りましたからってことで
やぁ、Firefox は素晴しいなぁ

2009/07/10

"__iter__"

今更「iterator って何よ」って思った
ググった
2.3.5 イテレータ型」リファレンスきた
  • iterator はインスタンスで次の 2 つのメソッドを持つもの:
    • __iter__(): iterator を返す
    • __next__(): 次の要素、若しくはもぉ無いときには exceptions.StopIteration を返す
だって
あー、__iter__ は一度 exceptions.StopIteration を返したら
その後何度呼ばれても exceptions.StopIteration を返すべきらしい

何か作ろうと思った
フィボナッチと思った
class fibo(object):
def __init__(self):
self.a = 0
self.b = 1

def __iter__(self):
return self

def next(self):
(self.a, self.b) = (self.b, self.a+self.b)
return self.a
止まらない

止まる例が何か無いかと思った
約数を次々と出してみよう
class dividing(object):
def __init__(self, num):
assert isinstance(num, int) or isinstance(num, long), str(num) + " is not an integer"
assert num > 0, str(num) + " is not positive integer"
self.num = num
self.div = 0

def __iter__(self):
return self

def next(self):
while self.div <= self.num:
self.div += 1
if self.num % self.div == 0:
return self.div
raise StopIteration
でもこれ、アホすぎて時間かかりすぎ。
まぁ、いいか、何となく分かった

2009/07/09

erlang hello-world

大人の嗜みとして Erlang くらい使えなくてはいけないと思いました
Erlang といえば
Rubyist Magazine - Rubyist のための他言語探訪 【第 10 回】 Erlang
ですよね
なんか、凄そう! ってそんなんで嗜もうとして良いのか!?

erlang だけで検索しても
[O] これから15分でErlangを始めるための資料
なんて素敵なまとめページが作られていたのですが
つうかもぉ既にここに Hello World! があったりするんですが
まぁ一応 Hellow World! 調べてみるのが大人の嗜み方かなと思ってググりました

[O] これから15分でErlangを始めるための資料
やっぱりこちらのページが出てきました
ギャフン
15 分を惜しむなよ! ってことなのでしょうか、Google 先生
とりあえず、Hello World! は出せるようになりました

http://www.bgb.cc/bronson/helloworld/helloworld/erlang.html
あぁ、そうそう、こういうの、想像してたの

で、日本語に逃げてはいけないなと思って検索結果のトップも見てみました
Software Development, Redux: The *Real* Erlang "Hello, World!"
なるほど
「文字列出力なんて Erlang じゃない、Actor model 触ってこその Erlang だ!!」
っつーことで spawn したり ! で message 送るってのを
Hellow World! でデモってくれてます
Erlang ってそういうことだったのか!!

や、全然どういうことか分かっちゃいないんですが
プログラミングErlang でも読んでみようかなぁ
で、Actor model に目覚めたらオレ、Erlang Programming 読むんだ!!

2009/07/05

twisted tutorial deferred

twisted を使えるようになりたいなと思っていたんですが
Twisted Documentation の文章が中々頭に入りません
語学力が足りてないんでしょうか...
Twisted Network Programming Essentials とか最新Pythonエクスプローラとか
本もあるんですけど、ん〜、何かなぁ

で、他にチュートリアルが無いかなぁと思って探してみたところ
Twisted Tutorial ってのがちょっと分かり易い!?
分かり易いんだか他で色々読んでから読んだから理解できたのか
ちょっと分からなくなってきてるんで怪しい部分もあるんですが
でも、step by step で簡単チャットサーバの説明してくれてました

twisted って切り口が沢山ありすぎて
しかも API が低いところから高いところまで沢山あって
解説するのも大変なんだろうなぁと思いました
API docs for “twisted” 眺めるだけで頭クラクラ