暇を持て余した神々の遊び
昨日,あらびき団でモンスターエンジンがまた神ネタをやったよ! 待ってましたよ!(ちなみに,昨日は別の番組でもこのネタやってた)
http://jp.youtube.com/watch?v=mDk3xPydYOA
ん〜俺が期待しすぎたのかぁ〜いまいちだったわぁ〜. 2つのネタが同じパターンだったし,微妙に間の使い方がなぁ〜悪かったような…. 東野も突っ込んでいるがーぐずぐず感があるよね!ガツカリですわぁ
ただ,”ギリギリの遊び”ってどういうことよ☆
Get GoogleAppEngine Account
本日やっと来たよ!アカウント!待ってましたよぉ〜.
てなコトで,もう完全に出遅れてますが,やっぱりHelloWorldはやってみることにする.一応Django-trunkをつかってHelloWorldを!
さらに,ちょっとホストっぽくHelloWorldを….
URL削除につき画像に変更.
はい!そこ!怒らないで下さい!
ちなみに,何日か経ったらコノURLは消すと思います. あとーendlessってサブドメイン取得したかったのになぁ〜使えなかった…残念.
暇を持て余した神々の遊び
最近,個人的にはまった笑い. モンスターエンジンの「暇を持て余した神々の遊び」というネタが好き☆ 意味が分からないのだがー笑ってしまう.
<初回:マラソン大会> http://jp.youtube.com/watch?v=kyMUZ4kmclI
CSV Writer Ruby vs Python
仕事でログをCSVに書き出す(@ruby)という処理をするということで,ちょいとググっていたらーPythonの方が早いとあったので遊びで簡単10万行を書き出しするタイムを測定した.
■ Ruby csv (Ruby標準CSV)
# csv_writer.rb
#!/usr/bin/ruby
require 'csv'
f = File.open('CSV.csv', 'a')
CSV::Writer.generate(f) do |csv|
100000.times do |i|
csv << [i, 'hoge', 'hige', 'hage', 'page', 'jige']
end
end
f.close
■ Ruby fastercsv (プラグイン gem install fastercsvによりインストール)
# fastercsv_writer.rb
#!/usr/bin/ruby
require 'rubygems'
require 'fastercsv'
FasterCSV.open('FasterCSV.csv', 'a') do |csv|
100000.times do |i|
csv << [i, 'hoge', 'hige', 'hage', 'page', 'jige']
end
end
■ Python csv (標準)
# csv_writer.py
#!/opt/local/bin/python
import csv
f = file('PyCSV.csv', 'a')
writer = csv.writer(f)
for i in range(0, 100000):
writer.writerow([i, 'hoge', 'hige', 'hage', 'page', 'jige'])
さて,これらのスクリプトを実行してみる.
$ time ./csv_writer.rb
real 0m3.325s
user 0m3.248s
sys 0m0.043s
$ time ./fastercsv_writer.rb
real 0m2.522s
user 0m2.440s
sys 0m0.042s
$ time ./csv_writer.py
real 0m0.548s
user 0m0.480s
sys 0m0.034s
お!Python ダントツではや!!なんかうれしい☆ fastercsvは思った以上な早さではなかったなぁ〜rubygemをrequireしているから!?
※ 適当にやってみたので,rubyもより早い記述があるかもしれません.
_md5エラー
帰宅する前にBLOG更新.
Google App Engineのアカウントが取得できなく寂しい僕…
ということで,SDKをMacにインストールしてDjangoでも動かしてみようと思ったらーわけのわからんエラーがでたのでメモ.
dev_appserver.py を実行すると,no module named _md5 とエラー調べてみるとこんな情報がありました.
http://code.google.com/p/googleappengine/issues/detail?id=83
記事に従ってdev_appserver.pyを修正したら起動した!
# 1140
#if (file_type != self._imp.C_BUILTIN and not FakeFile.IsFileAccessible(pathname)):
# を下記に変更
if (file_type != self._imp.C_BUILTIN and file_type != self._imp.C_EXTENSION and not FakeFile.IsFileAccessible(pathname)):
まだ,納得いかないところもあるんですがとりあえず動いた.