2008年2月28日木曜日

【Python】for文よりリスト内包記法のほうが効率的?


中で関数を呼ぶときは、for文を使うよりリスト内包記法を使う方が処理が速い。たとえば、以下の2つのスクリプトを試してみる。

■1.py
def a():
return "a"
s = ""
for _ in range( 0, 30000000 ):
s += a()
■2.py
def a():
return "a"
s = "".join( a() for _ in range( 0, 30000000 ) )

結果は以下。

■1.py
$ time python 1.py
real 1m45.563s
user 0m19.425s
sys 0m0.974s
■2.py
$ time python 2.py
real 1m4.801s
user 0m11.880s
sys 0m1.139s
後者の方が約60%の時間で処理できている。


ちなみに、以下のように関数呼び出しをなくしてみると・・・

■1.py
s = ""
for _ in range( 0, 30000000 ):
s += "a"
■2.py
s = "".join( "a" for _ in range( 0, 30000000 ) )

結果はこれ。

■1.py
$ time python 1.py
real 0m14.904s
user 0m13.254s
sys 0m0.972s
■2.py
$ time python 2.py
real 0m35.092s
user 0m6.368s
sys 0m1.125s
逆に、後者の方が遅いという結果に。

「文字列の連結は遅くて.joinメソッドは速い」という問題では
ないみたい。ちゃんと調べるか・・・?

splitコマンド


splitコマンドを使うと任意の行数やバイト数でファイルを分割できる。

使用例

split -l 1000 original.txt file-
original.txtを1000行ごとに分割する。
分割したものはfile-**という名前のファイルに保存される。

出力されるファイル

file-aa
file-ab
...

2008年2月27日水曜日

Yahoo! Open Search Platform



サードパーティが検索結果にコンテンツを追加できる。

たとえば、画像や構造化されたデータなど。

立ち上げのパートナーには、YelpやNewYorkTimesが含まれている。


manページの後ろの番号って何?


manページの後ろには番号がついている。
たとえば、grep(1)。
これはセクション番号を表している。
セクション番号とその意味は以下(ソース













1だれもが実行できるユーザコマンド
2システムコール、つまり、カーネルが提供する関数
3サブルーチン、つまり、ライブラリ関数
4デバイス、つまり、/dev ディレクトリのスペシャルファイル
5ファイルフォーマットの説明、例 /etc/passwd
6ゲーム(説明不要だろうネ)
7その他 例: マクロパッケージや取り決め的な文書
8システム管理者だけが実行できるシステム管理用のツール
9Linux 独自のカーネルルーチン用のドキュメンテーション
n新しいドキュメンテーション:よりふさわしい場所に移動されるだろう
o古いドキュメンテーション 猶予期間として保存されているもの
l独自のシステムについてのローカルなドキュメンテーション


・・・あれぇ?へんな空白ができてしまう。

2月の投稿は20本


2月は結局20本の投稿。

なかなか1日1本にならへんなぁ・・・

Mac OSXからLinuxにNFSマウントしたい


Mac OSXからLinuxにNFSマウントしたい。

ここによると、

ファイダーのサーバへつなげるでは駄目。

ターミナルから、
sudo mount_nfs -P 接続先:ディレクトリ マウント先

とする。
はずす時は、
sudo umount マウント先

とのこと。

やってみると、
$ sudo mount_nfs -P 192.168.1.10:/home/someone  /tmp
mount_nfs: can't access /home/someone: Permission denied
といわれてしまう。うむ・・・
どうすれば?

結局、sshfsを使いました。

2008年2月25日月曜日

パリに親子丼の店を開いてみては?


パリに親子丼の店を開いてみてはどうだろう?

親子丼を食べたあとにエスプレッソがでてくるような。

そう。店の前には、親子丼のスケッチを飾る。

だって、パリの人にとっては未知の食べ物だから。

日本にあるような見本は良くない気がする。

色鉛筆で色づけしたスケッチが良い。

写真でもいいかも?

うーん、やっぱりスケッチがいいでしょ。

白地に青の模様が入ったどんぶりに、

黄色いふわふわ卵が入っていて、

ワンポイントに緑のみつ葉がのっかってるの。

おぉ。いい感じだ。

2008年2月15日金曜日

Google docsからBloggerに投稿

おお!Google docsからBloggerに投稿できるではないか。

Load averageって?


Load averageとは、処理を待っているプロセスの平均数。

1以下なら、処理を待っているプロセスがないということ。

1を超えると、処理を待っているプロセスがあるということ。

muninのcpuspeedモジュール


muninには、cpuspeedというモジュールがある。

CPUの動作周波数をレポートする。

単位はMHz。たとえば、3.0kと表示されれば3GHz。

CPUの動作周波数は、/proc/cpuinfoから取得される。

2008年2月11日月曜日

消息筋ってダレ?


ニュースによく出てくる「消息筋」

いったい誰?と思って調べてみると、

「ある方面の事情に詳しい人々や関係機関」

のことだそうな。大辞泉より。

要は、報道の世界で情報源を匿名にするときの決まり文句ということか。

2008年2月10日日曜日

Gaucheのリスト操作ライブラリ SRFI-1


リストを操作するためのライブラリ集。

たとえば、1から100までの整数のリストを作ってみるとこんな感じ。
gosh> (iota 100 1)
(1 2 ... 100)

スペル修正プログラムはどう書くか


「スペル修正プログラムはどう書くか」Peter Norvig / 青木靖 訳
http://www.aoky.net/articles/peter_norvig/spell-correct.htm

Googleでたとえば"speling"を検索すると、
もしかして:"spelling"じゃないかといってくる。

このようなスペル修正プログラムを実際にかいてみせている。

IMF Data Mapper



各国のGDP成長率をグラフ&時系列で見ることができる。

IMF Data Mapper
http://www.imf.org/external/datamapper/index.php

iPhone/iPod touchアプリ 「Balls」


iPhone/iPod touch用に、アプリケーションを作ってみました。
上からボールがぽこぽこ落ちてきます。

ダウンロード

http://kamonama.sakura.ne.jp/download/Balls.zip

使い方

1.ダウンロードして解凍する
2.makeする
3.iPhone/iPod touchに転送する

パッチョの日記


http://home.tokyo-gas.co.jp/pa-cho/diary/index.html

火グマのパッチョがおもしろい。

2008年2月8日金曜日

hypertable


http://www.hypertable.org/index.html

Bigtableクローン。

Hadoopの上で動かす方法がドキュメントに書いてある。

2008年2月7日木曜日

ケニアの民族対立


大統領ムワイ・キバキ率いるのキクユ人と
最大野党党首ライラ・オディンガ率いるルオ人との対立。

きっかけは、昨年12月27日の大統領選。
ずさんな選挙で、国連視察団が勝者を決められないと判断するほど。

オディンガ側が大統領に求めているのは、
大統領選での敗北をみとめて辞任し、直ちに再選挙を行うこと。

一方、大統領側ではそれを拒否している。

最近はやりのアーティスト?


最近のはやり?
  • 9mm Parabellum Bullet
  • いきものがかり
  • Perfume
  • たむらぱん
  • RADWIMPS
9mm Parabellum Bullet、読みにくい!覚えられん!
Prefumeは何度か聞いたことがあった。女の子3人のグループ。
たむらぱんはmyspaceがオフィシャルサイトになってる。へぇ。

オバマとジョン・F・ケネディ


オバマとジョン・F・ケネディは似ているところがある。

オバマは黒人初の大統領を目指している一方、
ケネディはカトリックで初めての大統領だった。

似ているところもあるが、異なるところもある。

ジョン・F・ケネディの裏では、弟のロバート・ケネディが
政治に必要な裏の仕事を一手に引き受けていた。

オバマにはそういう存在がいまのところいないようだ。

2008年2月5日火曜日

スパーチューズデーって?

アメリカ大統領選で、多数の州が集中的に
予備選・党員集会を行う火曜日のこと。

その結果が選挙戦の行方を左右することから
「スーパーチューズデー」と呼ぶ。

なんで火曜日?

米国では多くの選挙が火曜日に行われる。
大統領選の本選挙も、連邦法で
「11月の第1月曜日の次の火曜日」と
決められている。(今年は11月4日)

もともと米国では休日である土、日曜は
「私的な時間」「安息日」と考えられ、
公的行事の選挙を行うことには抵抗があった。

また、国土が広大なため、有権者は
遠く離れた投票所に向けて月曜日に出発し、
火曜日に投票するのは通例になった、といわれる。

 

2008年2月3日日曜日

SICP第1章を読了

SICP第1章を読了。

プログラミング言語は以下を備えていることが大事:

  • プリミティブな式

  • 式を組み合わせられること

  • 式を抽象化できること

また、反復型のプロセスと再帰型のプロセスという2種類の計算プロセスについてと、時間と空間のオーダーという考え方。

最後の方でいろんな数学の手法を抽象化してみせた部分は感動ものだった。

節分


今日は節分。節分ってわける感がすごいな。節に分けるのか。