以前『全ての組み合わせを作る[C++]』で書いたnext_combination関数を使えば、全ての重複組み合わせを作るのも簡単にできそうだったので作ってみた。
Google App Engineにはデータをアップロードしたりダウンロードできるbulkloaderがあるが、bulkloaderでファイルのデータ(db.BlobProperty)などをアップロードしようとすると、フィールドのサイズが大きすぎるためエラーがでることがある。
Traceback (most recent call last):
File "C:\Program Files\Google\google_appengine\google\appengine\tools\bulkloader.py", line 1385, in run
self.PerformWork()
File "C:\Program Files\Google\google_appengine\google\appengine\tools\bulkloader.py", line 1497, in PerformWork
for item in content_gen.Batches():
File "C:\Program Files\Google\google_appengine\google\appengine\tools\bulkloader.py", line 471, in Batches
self._ReadRows(key_start, key_end)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\bulkloader.py", line 394, in _ReadRows
row = self.reader.next()
File "C:\Program Files\Google\google_appengine\google\appengine\tools\bulkloader.py", line 514, in Records
limit = e.args[1]
IndexError: tuple index out of range
2009/10/20 19:51:35 投稿
http://www.programming-magic.com/20091020195135/
c++には可変長配列のstd::vectorがあるが、std::vectorでは配列の範囲外にアクセスしたときに自動でサイズを拡張せずにエラーを吐くため、値を代入するときにサイズをチェックしなければならないことがある。勝手にサイズが拡張されてしまうとバグを見逃す可能性が増えるため一長一短ではあるが、テスト用コードを書く場合などはいちいちサイズをチェックしなくても勝手にサイズを拡張してほしい。
2009/10/16 01:46:21 投稿
http://www.programming-magic.com/20091016014621/
Pythonには辞書があるため、無名クラスや匿名クラスなどと言われるものが必要になることはあまりないが、引数に簡単なクラスのインスタンスを取る関数などを使う場合に無名クラスがほしいこともある。
Pythonでは以下のように、オブジェクトの型を調べるtypeを使って、無名クラスを作ることができる。
obj = type('',(),{})()
2009/10/09 00:20:24 投稿
http://www.programming-magic.com/20091009002024/
Google App Engine上で動くプログラムを開発する場合は、SDKに含まれる開発用のサーバを使って開発をするが、本番用のサーバ(appspot.com)と異なる点もあるため、開発用サーバかどうかを判定したいことがある。1つフラグを作って手動で切り替える手もあるが、うっかりフラグを戻し忘れたままアップロードしてしまうと、デバッグ用の情報が見られてしまうこともありえる。
そこで、環境変数をチェックすることで自動的に開発サーバかどうかを判定する。
2009/10/05 22:16:24 投稿
http://www.programming-magic.com/20091005221624/