Yoichi's diary


2015-08-02

_ 福井旅行1日目

敦賀でシンボルロードを歩いて氣比神宮へ参拝した後、暑くてやっとれんので車を取ってきて赤レンガ倉庫に行ったが工事中だったので旧敦賀港駅舎(再現)を見た後ヨーロッパ軒でお昼ごはん。街を歩いていてもほとんど人に遭遇しないのにカツ丼待ちの人はやたら居た。

_ 越前松島水族館

10年ぶりに行ったらいろいろ新しくなっていた。次はまた10年後くらいに行きたい。


2015-08-03

_ 福井旅行2日目

息子がえちぜん鉄道に乗りたいと言ったのであわら湯のまちに車を停めて三国港まで行った。三国港突堤の先っぽまで歩いた後駅に戻ると発車待ちの電車にアテンダントのお姉さんが居た。

_ 勝山恐竜博物館

恐竜だらけですごかった。でも息子は外の遊具で遊ぶのが一番楽しそうだった。

_ 帰阪

無事に帰宅。明日からまた仕事だ。頑張って起きたい。


2015-08-08

_ 送迎

奥さんと息子が帰省するので早起きして新大阪まで送っていった。 夏休みうらやましい。

_ 雷雨

午後になって雷雨に見舞われた。今朝早起きついでに洗車したからな。


2015-08-15

_ 第一回 カーネル/VM探検隊@名古屋

聞きに行っただけですが、いっぱい刺激もらいました。とくに最近の若者はすごいなというのががが。


2015-08-26

_ [python] range, xrange

% python2.7 --version
Python 2.7.6
% python2.7
Python 2.7.6 (default, Sep  9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> len(range(0,10000000000000000000))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: range() result has too many items
→rangeの制限にかかったみたい。(実装は Python/bltinmodule.c の builtin_range() なので後で読む)
>>> len(range(0,1000000000000000000))
Python(51611,0x7fff7dc65300) malloc: *** mach_vm_map(size=8000000000000000000) failed (error code=3)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
MemoryError
→rangeの制限にはかからないがmallocがこける
>>> len(range(0,10000000000000))
^C^C^C
→計算してくれているが時間かかる

>>> len(xrange(0,10000000000000000000))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: Python int too large to convert to C long
→xrange でもやっぱりエラー
>>> len(xrange(0,1000000000000000000))
1000000000000000000
→これは一瞬で終わる。

_ みさき公園

お休み取ったのでプールへ。起きたら雨が降ってたので諦めかけていたが、だんだん天気が回復してきた。 平日のためかあまり混んでなくてたっぷり楽しめた。


2015-08-31

_ [python] 小さな整数

整数の id() の戻りが同じだったり違ってたりするのは何でかなと思って longobject.c を見たら、-NSMALLNEGINTS (= -5) <= n < NSMALLPOSINTS (= 257) なら新たに allocate するんじゃなくて static に確保されたオブジェクトを返す実装になっていた。