システム開発

SQLAlchemyの設定

Pylonsはデータ永続層の仕組みを提供しない。が、OR Mapperの一種であるSQLAlchemyとの相性は良い。(pasterでプロジェクト設置した際に、SQLAlchemyを使うかどうか指定したでしょ→http://d.hatena.ne.jp/masayang/20100219/1266606799)今回は開発環境なので…

Pylons+memcacheDBでのデータ永続化チュートリアル風味 Part-II

Part Iでは、MemcacheDBへのCRUD(Create, Read, Update, Delete)を実装したが、「一覧表示できない」という致命的な欠陥があった。そこで今回は、検索用索引をsqliteに格納してやろう、というお話。例えばname属性で検索したり並べかえたりしたいのであれば…

意味ないじゃん...

Grouply(http://www.grouply.com/)というサイトから招待が来た。 YahooのIDで使えます、と案内文には書かれている。 早速見に行ってみたが... grouply.comの画面でYahoo IDとYahoo Passwordを入れろ、だと!? これではOpenIDの意味がないよ〜 それでももらえ…

シリコンバレーならでは、なのか?

こんなお知らせが回ってきた。 Dare 2B Digital (D2BD): A Conference on Careers for Young Women using Computing Technologies 7th to 10th(日本だと中学1年から高校1年かな?)の女子対象の、計算機技術講義。 明日土曜日、Foothill Collegeで開催。 以下…

TDDとその先

id:goyokiさん TDD談義への反応に対する雑感(テスト駆動開発を取り巻く誤解等) すばらしいまとめ。 あと開発、品質、テストが協調しあうのはとても大事なことだけれど、それだけにこういったロールをまたがる話題では相手の世界を尊重する視点が欠けてはな…

新生すばらしい!

週刊ダイアモンド2月20日号News & Analysis "金融庁検査で破談寸前? 新生・あおぞら統合交渉の行方" 16ページより: 新生のシステムは、他の銀行と比べて「とても簡素らしい」というのは有名な話だった。 「インド人幹部が、ドキュメントも作らず一人で構築…

Pylons+memcacheDB...削除とそのテスト

そして削除およびそのテストを記述。コントローラphone.py def delete(self, id = None): if id is None: abort(404) ser = self.mc.get(id.encode('ascii')) if ser is None: abort(404) u = jsonpickle.Unpickler() phone = u.restore(ser) if not isinsta…

Pylons+memcacheDB...編集機能のテスト

忘れぬうちにテスト記述。 GETメソッドでsave()できないこと 存在しないデータのidでsave()できないこと PhoneBook以外の型をsave()できないこと 不正なフォーム入力の場合save()できないこと 上記以外の場合はsave()できること を確認すればいいでしょ。pho…

Pylons+memcacheDB...編集

次は編集フォームと、そのコントローラを記述。まずコントローラphone.pyに以下のメソッドを追加 def edit(self, id = None): if id is None: abort(404) ser = self.mc.get(id.encode('ascii')) if ser is None: abort(404) u = jsonpickle.Unpickler() pho…

Pylons+memcacheDB...忘れんうちにテスト記述

Pylonsはnoseというプログラムを使ってテストをする。本来はUnit Testに重きを置くのが好きなのだが、今回の方式ではPOPO(Plain Old Python Object)が相手なので特にやることがない。むしろ、コントローラが所望の動きをしているかどうかを確認することが大…

Pylons+memcacheDB...新規作成フォーム

まずは電話帳データを登録するフォームから作っていく。phonebook/lib/helpers.py from formbuild.helpers import field from formbuild import start_with_layout as form_start, end_with_layout as form_end from webhelpers.html.tags import * from rou…

Pylons+memcacheDB...モデル定義

次に電話帳データのモデルを定義する。といってもたいしたことはなく、普通のPythonオブジェクト(POPO)である。phonebook/model/__init__.pyに以下を追加。 import uuid class Phone(object): def __init__(self, mobile_number = None, name = None, addres…

Pylons+memcacheDB...コントローラ設置と、テンプレート配置

PylonsはRailsやDiangoみたいに /controller/method/id みたいなURLマッピングができる。すごい。ということで、電話帳は /phone/view/1 /phone/edit/1 /phone/delete/1 /phone/create みたいな感じでパスを設置する。といっても、Pylonsのコントローラはデ…

Pylons+memcacheDB...開発環境設定

サーバ上で開発する場合はここは不要。自分は開発サーバと開発端末が別なのでこれが必要だった。 PhoneBook/development.iniを編集 具体的には[server:main]の部分。 [server:main] use = egg:Paste#http host = 0.0.0.0 port = 5000 注意: host=0.0.0.0とす…

Pylons+memcacheDB...プロジェクト設置

Pylonsなので簡単。 $ paster create -t pylons PhoneBook Selected and implied templates: Pylons#pylons Pylons application template Variables: egg: PhoneBook package: phonebook project: PhoneBook Enter template_engine (mako/genshi/jinja2/etc:…

memcacheDB設置

PylonsもRails同様、開発環境・テスト環境・本番環境を分けることができる。今回は、 localhost:21201 で開発用memcacheDB localhost:31201 でテスト用memcacheDB を動かすことにする。Gentooの場合この設定は簡単で、/etc/init.d/memcachedbのシンボリック…

Pylons+memcacheDB...前提

自分は以下の環境で実験した。 OS...Gentoo Linux (Linux gentoo 2.6.31-gentoo-r7 #1 SMP Sat Jan 9 01:04:46 GMT 2010 sparc64 sun4u TI UltraSparc III (Cheetah) GNU/Linux) Pylons...dev-python/pylons-0.9.7 USE="mako -cheetah -doc -genshi -jinja2 …

Pylons+memcacheDBでのデータ永続化チュートリアル風味

クラウドだなんだと騒がれている中で、ちょっと真面目にKey-Valueデータ格納を触り始めた。Google App Engineで、と割り切れれば話は早いのだろうが、それ以外の選択肢もあってよかろう、ということでPylons+memcacheDBの組み合わせで遊んでいる。その心は..…

ソフトウェア特許こそが問題なのである

Union Square Ventures: Software patents are the problem not the answer HBRにNathan Myhrvold氏が寄稿したThe Big Idea: Funding Eureka!という記事に対するBrad Burnham氏による反論 Nathan Myhrvold氏は、現在色々な企業が隠し持っている「ソフトウェ…

動かしながら変えていくということ

いまさらだけど、2008年春の時点では、FacebookはMySQLに強く依存していたんだよね。しかも1800サーバ(900のMaster/Slave組み合わせ)!!そして、裏ではCassandraへの移行が既に始まっていた、と。いくらx86とはいえ、1800台もサーバ動かせばそれは「資産」と…

FriendFeedにおけるMySQLへの大規模データ格納(2)

はてぶコメントにはコメント返しするのがマナーだとMixiの人に教わったので(嘘 FriendFeedにおけるMySQLへの大規模データ格納 - masayangの日記(クロスバイク通勤他 http://b.hatena.ne.jp/sh2/20100217#bookmark-19374779 インデックス、カラム追加でテー…

FriendFeedにおけるMySQLへの大規模データ格納

非RDBだのKey-Valueだのと騒がしい今日この頃ですが皆様いかがお過ごしでしょうか。私は元気です。先日、ベイエリアクラウド勉強会で教えてもらったHow FriendFeed uses MySQL to store schema-less data(FriendFeed流・スキーマレスデータのMySQLへの格納)…

目視検査も大事

テスト自動化、特に単体テスト(Unit Test)を重視する自分だが、もちろん受入テスト(UAT)も大事だと思っている。そしてUATは自動化された部分と、利用者の「目」による確認の併用が大事。 と実感させられる事件。→BBC: Chile mint boss pays the price of coi…

ミーのアミーゴがイングリッシュをトランスレーションした

色々試した末に、Twitter/FacebookをBrizzlyで閲覧するようにしたのだけど、気になることがある。日本語対応だ。 「masayangのメンションをアップデートする」って...こんなんなら英文のままの方がいいんでないの?ちなみに英語版だとUpdates mentioning @ma…

しどろもどろ

新型プリウスはソフトウェアに問題を抱えていると発言したSteve Wozniak氏。その後大騒ぎになり、本日はCNNでインタビューに答えている(動画)。どうやらトヨタやNHTSA(米道路交通安全局)の対応がよくない、ということを言いたかった模様。プリウスの急加速に…

シリコンバレー技術職の給与水準

San Jose Mercury: Silicon Valley tech workers had rough decade シリコンバレー技術職の給与が10年以上前の水準まで戻ってしまった、というお話。 実質ベース(インフレ調整後かな?)で1998年よりちょっと上まで戻ったらしい。 下図(クリックすると元記事…

アクセルペダルではなくソフトウェアの問題だ! by Steve Wozniak

Jalopnik: Apple Co-Founder Claims Toyota Prius Has "Scary" Software Problem He Can Dupilcate Apple創始者の一人、Steve Wozniak氏。 Toyota Priusを何台も持っているのだそうな。 うち、リコール対象ではないPriusでも、予期しない加速を起こすことが…

memcacheDBとか

世の流行りに乗って(笑)非RDBなんつーものをいじくっている。まずはmemcachedb。memcachedじゃないよ。memcachedbだよ。 →memcachedb公式サイト要はBerkeley DBをmemcachedのAPIで触れるようにした代物だ。Gentoo用ebuildがあるのでGentooには問題なく設置…

システムのコストを下げる vs システムでコストを下げる

今回の出張でもお客様から直接話をうかがったり、同業の皆様達との情報交換で色々な現場の状況が見えてきた。クラウドという言葉の引きは強いが、そこにある期待は「システムコスト削減」が中心。正確にはシステム「の」コストをクラウド活用で減らそう、と…

無駄な業務設計

最近はセブン銀行のおかげで、日本のどこにいてもBank of Americaの口座から現金を引き落としできるので、出張の際に米ドル現金や旅行者小切手を持ち込むことはなくなった。円高には辟易とさせられるが... サンフランシスコ空港にて 今回、台湾に短期滞在す…