4月8日昼、Impress WatchでGoogle App Engineの情報を入手し、早速アクセスしてみたものの時既に遅く待ち行列入り。やはり7時間の時差は痛かった。。未だinvitation届かない、そんな切なさを紛らす為にイントロページの日本語訳を作ってみた。
解説とか、読むの大嫌いなんだけど、一気に読ませてくれた。
参考になります。
4月8日昼、Impress WatchでGoogle App Engineの情報を入手し、早速アクセスしてみたものの時既に遅く待ち行列入り。やはり7時間の時差は痛かった。。未だinvitation届かない、そんな切なさを紛らす為にイントロページの日本語訳を作ってみた。
解説とか、読むの大嫌いなんだけど、一気に読ませてくれた。
参考になります。
Pythonでリファレンスを見ながら初めてコーディングしたためクロージャの実装で悩んだ。
最初、C#とかと同じ乗りで
def nabeatsu(): value = 1 def reader(): isAho = value % 3 == 0 or str(value).find('3') >= 0 isDog = value % 5 == 0 if isAho: print 'あほ' if isDog: print 'わん!' if not isAho and not isDog: print value value = value + 1 #5/10まで間違ったサンプルになっていたのを修正(5/11) return reader runner = nabeatsu() for value in xrange(1,40,1): runner()
としたら、runner()を実行したときに、
valueなんてローカル変数無いよ。
と言われてしまった。
どうも、このままだと外側のコードブロックにある変数を見てくれないらしい。
だから、どうやってやるんだろうといろいろと調べていたら、どうも、下記コードのように配列とすると、外側のコードブロックにある変数にアクセスできるっぽい。
def nabeatsu(): value = [0] value[0] = 1 def reader(): isAho = value[0] % 3 == 0 or str(value[0]).find('3') >= 0 isDog = value[0] % 5 == 0 if isAho: print 'あほ' if isDog: print 'わん!' if not isAho and not isDog: print value[0] value[0] = value[0] + 1 return reader runner = nabeatsu() for value in xrange(1,40,1): runner()
でも、配列にする必要が無いので、ちょっと気持ち悪いと思って更に調べたら定義した関数にプロパティを持つことが可能らしく、結局下記のコードで落ち着いた。
追記:
下記の例でPythonのクロージャとして落ち着いたと書きましたが、runner = nabea2()でファンクションを取得した後、runner.value = 値で外部から変更できてしまうので(つまりvalueのスコープが広すぎる。)、結局、二つ目の配列を使った例が(気持ち悪いけど)クロージャなのかなと。
def nabea2(): def reader(): isAho = reader.value % 3 == 0 or str(reader.value).find('3') >= 0 isDog = reader.value % 5 == 0 if isAho: print 'あほ' if isDog: print 'わん!' if not isAho and not isDog: print reader.value reader.value += 1 reader.value= 1 return reader runner = nabea2() for value in xrange(1,40,1): runner()
nabea2メソッドの中でreaderメソッドを定義し、その後readerメソッドをreaderメソッドのvalueという名前のプロパティを1に初期化した上で戻り値として返しています。
スーパーアグリF1チーム(SAF1)は、本日、F1世界選手権から撤退することを決定した。2006年からプライベーターチームとしてF1に参戦し、昨年はチーム結成22戦目(スペインGP)で初ポイントを獲得、2007年のランキング9位という成績を残したSAF1のF1における活動は本日、その幕を閉じることになる。
GW中にあった一番悪いニュースである。
今年は、最初から財政難で初戦の参加すら危ぶまれていただけに、スペインGPまで見られた事は嬉しかった。
それでも、残念の一言しか出てこない。
「んー。」という感想だ。
もう少し、あと少しだけ彼らの雄姿を見届けたかったが、とりあえずは「お疲れさま。」といいたい。
EMOBILEのアウトレットで買ったemチャージ用のD02HWが届いた。
最初から14000円分チャージがついて、17980円で購入したので、実質モデムの代金は3980円だ。
D01HWなら14980円だったんだけど。
早速MacBookで接続してみようと思い、ユーティリティをインストールしてみたのだが、どうも起動すると即強制終了する。
困ったなと思いつつ、ネットを検索したら、どうも同じ現象に悩んでいる人が結構いたみたいで回避方法が載っていた。
OSのネットワーク環境設定で新しくモデムが追加されているから、それのダイアルアップの設定をすれば良いらしい。
というわけで、早速やってみたら、ユーティリティが強制終了しなくなった。
(ダイアルアップの設定がNullだと駄目なのかな?)
その流れでemチャージ用の設定変更をし、emチャージのサイトに接続して、サービスの利用開始をして、スピードテストをしてみたら、
下り2.4Mbps 上り320Kbps
だった。
7.2Mbpsが上限なので、それには足りないけど、ネットで調べた感じだと悪くない数字っぽい。
とりあえず、満足。
たまにしか使わないので、使う時は1日定額640円プランで使えば良いかなと思う。
1MBあたり63円なので、1日定額で使った方が明らかに安全だ。
ちょっとスピードテストしただけで、5MBだったので、既に315円。
今日はもう使わないからいいけどね。
VMware Fusion 1.1.2 と Mac OS X Leopard Time Machine の問題を修正
* Mac OS X 10.5-10.5.1 オペレーティングシステムのバグは、Time Machine が使用中の仮想マシンをバックアップしようとするとシステムを異常終了させる。これを避けるため、VMware Fusion 1.1 では Time Machine のバックアップからすべての仮想マシンを除外した。Apple は Mac OS X 10.5.2 でその Time Machine のバグを修正したため、VMware Fusion 1.1.2 は Mac で Mac OS X 10.5.2 以降が実行されている場合は Time Machine による仮想マシンのバックアップを可能にした。
これで、仮想イメージもTime Machineの対象にできるようになりました。
What are Super Tables?
Something that's not really that super yet but may be someday. Super Tables are large HTML tables enhanced with cross-browser fixed vertical and horizontal scrolling headers with custom skins and features.
ヘッダ固定、列固定スクロールのテーブル。
とりあえず、メモ。