KazuoMoriwaka/Journal/2006-05-03
-
あるblogエントリにやってきたrefererから、探した人がつかったキーワードみつけてそのキーワードでアサマシリンクを作成すると、自動的に記事と関連したアサマシリンクができる?
-
検索エンジンを一回経由するから最初に検索されないと広告がでない罠
-
あらぬキーワードがでてくる罠
-
コメントspam->無関係キーワードでヒット->無関係広告 の罠
-
実績ベースで読みにきた人がほしい?ものがでてくる利点
-
記事の内容じゃなくて単にrefererが検索エンジンだったらそのキーワードで、そうじゃなければエントリ書いた人が決めたキーワードで…でよくね?
-
広告にひっぱられる人は既に検索エンジンの広告にひっかかってそうな罠
-
こたつをかたづけた
-
洗濯した
-
毛布干した
KazuoMoriwaka/Journal/2006-05-04
-
distutilsの翻訳をぼちぼち進めた。
-
残り148行!あとひといき
KazuoMoriwaka/Journal/2006-05-05
-
distutils translation finished!
KazuoMoriwaka/Journal/2006-05-07
-
どこのバカ学生がこんなことをwww
-
とおもたら母校だったよ! ははははは!
KazuoMoriwaka/Journal/2006-05-09
-
これはうまくいきそうだ
KazuoMoriwaka/Journal/2006-05-10
-
光学マウスのマウスパッドには普通のコピー用紙が最強だと主張してみる
-
何も印刷してないPPC用紙でおけ。
-
紙の適度なザラザラがよさげ。
-
私はクリップボードにA4紙を挟んでメモ用紙兼マウスパッドにしてます。
-
メモを書いてもそれでマウスパッドとしての性能はおちなさげ。
-
試したもの(悪いほうから
-
畳表(とびまくったり止まったり。使えない)
-
グラデーション柄のマウスパッド(グラデーションのところでとびまくり)
-
布(時々カーソルが動かない。たぶんデコボコのせい?)
-
無地マウスパッド(たまにカーソルがひっかかる)
-
PPC用紙(ほぼ完璧)
KazuoMoriwaka/Journal/2006-05-11
-
リストを受けて、そのリストに含まれる連続する整数をレンジ表現で返す関数を書いてみるテスト。
-
一発目 まあうごくけど。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | def list2range(lst):
tmplst = lst[:]
tmplst.sort()
ranges = []
current = [None, None]
for item in tmplst:
if current[0] != None:
if current[1] == item:
current[1] = item + 1
else:
ranges.append(tuple(current))
current = [item, item + 1]
else:
# start
current = [item, item + 1]
ranges.append(tuple(current))
return ranges |
テストルーチン
1 2 3 4 5 6 7 8 9 | if __name__ == '__main__':
a = [1,2,3,4,5,6,7,8,10,11,12,23,24,25,26]
b = [(1,9), (10,13), (23, 27)]
c = list2range(a)
if b != c:
print 'failed!'
else:
print 'succeed!'
print c |
二発目。初期値を先頭の値にしてループ中の条件文をけずってみる。docstringが入ると急にpythonっぽくみえてきますね。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | def list2range(lst):
'''convert list -> list of ranges of contiguous numbers
list of integers -> list of range tuples.
'''
tmplst = lst[:]
tmplst.sort()
ranges = []
start = tmplst[0]
currentrange = [start, start + 1]
for item in tmplst[1:]:
if currentrange[1] == item:
# contiguous
currentrange[1] += 1
else:
# new range start
ranges.append(tuple(currentrange))
currentrange = [item, item + 1]
# last range
ranges.append(tuple(currentrange))
return ranges |
三発目。generatorにしてみました。lstがソート済みだと仮定するとリスト全体を扱わなくてすむようになってさらに今風になりますが今回はこれで。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | def list2range(lst):
'''make iterator of ranges of contiguous numbers from a list of integers'''
tmplst = lst[:]
tmplst.sort()
start = tmplst[0]
currentrange = [start, start + 1]
for item in tmplst[1:]:
if currentrange[1] == item:
# contiguous
currentrange[1] += 1
else:
# new range start
yield tuple(currentrange)
currentrange = [item, item + 1]
# last range
yield tuple(currentrange) |
まあ許せる見た目になったら python cookbook へ
-
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/496682
-
数字が重複してたらマズいよ! とかコメントがついてうれしい。
-
自分が考えてた応用は値が被らないので全然気付いてませんでした(;;;
KazuoMoriwaka/Journal/2006-05-12
-
distutils もおわったことだし。ということでコンパイルしたhtmlのtarballを晒しておきます。
-
公式なリリースはpython.jpなのでおいらは触れませんよ。。
KazuoMoriwaka/Journal/2006-05-27
-
円周率っぽいホスト名
-
みんな考えることは一緒。
$ host 3.1415 9265 3589.org 3.1415 9265 3589.org has address 72.20.33.12 $ host 3.1415 9265 358.org 3.1415 9265 358.org has address 200.58.114.4 $ host 3.1415 9265 35.org 3.1415 9265 35.org is an alias for premium3.geo.yahoo.akadns.net. premium3.geo.yahoo.akadns.net has address 68.142.234.103 premium3.geo.yahoo.akadns.net has address 68.142.234.77 premium3.geo.yahoo.akadns.net has address 68.142.234.40 premium3.geo.yahoo.akadns.net has address 68.142.234.37 premium3.geo.yahoo.akadns.net has address 68.142.234.76 premium3.geo.yahoo.akadns.net has address 68.142.234.39 premium3.geo.yahoo.akadns.net has address 68.142.234.104 premium3.geo.yahoo.akadns.net has address 68.142.234.38 3.1415 9265 35.org is an alias for premium3.geo.yahoo.akadns.net. 3.1415 9265 35.org is an alias for premium3.geo.yahoo.akadns.net. $ host 3.1415 9265 3.org 3.1415 9265 3.org has address 83.151.29.247 $ host 3.1415 9265.org 3.1415 9265.org has address 64.34.66.19 $ host 3.1415 926.org 3.1415 926.org has address 217.160.140.174 $ host 3.1415 92.org 3.1415 92.org has address 64.20.41.163 Host 3.1415 92.org not found: 2(SERVFAIL) Host 3.1415 92.org not found: 2(SERVFAIL) $ host 3.1415 9.org 3.1415 9.org has address 208.176.116.94 3.1415 9.org mail is handled by 10 mail.crisman.org. $ host 3.1415.org 3.1415.org has address 212.227.34.3 $ host 3.141.org Host 3.141.org not found: 3(NXDOMAIN) $ host 3.14.org 3.14.org has address 64.74.96.243
KazuoMoriwaka/Journal/2006-05-29
-
LLヤバイ つくりかけ。もう一晩ねかしたらよくなるかな…?
