Pythonで/dev/urandomから乱数をゲットしてみた

Pythonで暗号論的に正しい乱数を取得する必要があったので/dev/urandomから乱数を取得してみた。
最初からos.urandom()なんてそのものズバリな関数があるので、こいつを使うぜ。
試しに128ビットの乱数を取得してみた。

>>> import os
>>> random128bitdata = os.urandom(16)
>>> random128bitdata
'\x19\x96\xfe\xd5J\xf7\xd1\xb1B|Y\xbd\xe01\xe2\xdd'

うむ、取得成功。

ちなみに16進表記にしたければbinasciiモジュールで変換すると便利。

>>> import binascii
>>> binascii.hexlify(random128bitdata)
'1996fed54af7d1b1427c59bde031e2dd'

さらに、文字列でなく数値で欲しいならこんな感じで。

>>> int(binascii.hexlify(random128bitdata), 16)
34014713054242549678150113052966642397L

そう、int()の第二引数は基数を指定できるのだ

Ubuntuで固定IPアドレスを設定する

すぐ忘れるのでメモ。
Ubuntuのネットワークインターフェースの設定は /etc/network/interfaces 。
固定IPアドレスの設定はこんな感じ。

auto eth0
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1

これでIPアドレス192.168.1.10、ネットマスク255.255.255.0、ゲートウェイ192.168.1.1になるよ。
DHCPにする時はこんな感じ。

auto eth0
iface eth0 inet dhcp

最近のメモ環境

f:id:calnarsa:20111020180016j:image:medium:left最近のお気に入りのノートと万年筆。
MDノート文庫本方眼罫にビニールカバーを付けて使用中。
万年筆はプラチナ万年筆のプレジール。安いけど、かなり書きやすくてオススメです。

f:id:calnarsa:20111020180029j:image:medium:right仕事場では、いつもこんな感じで使ってます。

Pythonで変数の型を知る

コネタ。
Pythonで変数の型を調べたくなったので、調べてみた。
組み込み関数typeを使えばいいみたい。
早速試してみた。

>>> a = 1
>>> b = '1'
>>> c = u'ゆにこーど'
>>> d = [1,2,3]
>>> e = { 'a': 1, 'b': 2 }
>>> f = (1,2,3)
>>> type(a)
<type 'int'>
>>> type(b)
<type 'str'>
>>> type(c)
<type 'unicode'>
>>> type(d)
<type 'list'>
>>> type(e)
<type 'dict'>
>>> type(f)
<type 'tuple'>

やってみたら簡単でしたとさ。