2011-01-01から1年間の記事一覧

Google App EngineでOAuth使ってTwitterAPIを扱う

Google App Engine Pythonの話です。 「Google App EngineでTwitterのAPIを扱うためには何使うのがいいのかなぁ」 とちょっとググってみたところ、Tweepyというのが見つかりました。 これを使ったサンプルもtweepy-examplesにあったのでそれなら何となくわか…

PythonではNoneの比較は==ではなくisを使う

前にPythonの勉強を軽くしたものの、短期間で基本的な部分だけをサラッとやったために時間が経ったら忘れてしまってました。 で、久々に何となく書きつつ、 「あ、pythonはeqとかなくて判断する時は==一種類でいいんだったっけ。」 とかうろ覚えのままif文書…

TwitterのAnywhereでタイムラインやユーザのデータを取得

今さらですがTwitterのAnywhereを使おうと思いまして、 ちょっと軽くページを見てみたら「ユーザ名に自動でリンク追加」とか「マウスオーバーでユーザ情報を取得する」みたいなのしかなく、 「あれ?こんなくらいしかできることないんだっけ?もっといろんな…

MacでWindows7のDVDからisoイメージファイルを作る

mac

MacBookのドライブをスーパードライブに交換するでDVDドライブの交換が終わったので、元々の目的だったWindows7をVMware Fusionにインストールしました。 すごいね。サクサク動く。ビックリした。こんなにサクサク動くのね。 今までXP動かしてたのが8年前く…

MacBookのドライブをスーパードライブに交換する

もう結構昔のタイプの2007 lateのMacBook(MB061)の話です。 (自分のMacBookのタイプが分からなくて困ってたんですが、Mactracker使えばサクッと調べられるんですね) そもそもMacBookのコンボドライブの調子が悪くなっていて最近はDVDもCDも使えずの状態…

はてなダイアリーでCSS3を使ったフォトギャラリーのプロトタイプ

既に作っている人がいるかなと思ったけど、前にjQuery使ってスライドショーを作った時に「CSS3だけで作れたらはてなダイアリーでも使えるのか」と思ったので軽く練習してみた。 HTMLはこんな感じ。 <div id="galleries"> <a href="#" tabindex="1">1</a> <div class="gallery"> <img src="http://distillery.s3.amazonaws.com/media/2010/10/30/8b9c34670730483d939b1a2536caa32c_7.jpg"> </div> </div>

findで複数のORを使う場合はarrayで囲む

CakePHPでfind使うとき SELECT * FROM t WHERE "id" = '1' AND (("status" = '1') OR ("flg" = '1')); というSQLが書きたければ find('find', array( 'conditions' => array( 'id' => 1, 'OR' => array( 'status' => 1, 'flg' => 1, ), ), )); みたいな感じ…

bindModelで別のモデルを関連づけてsaveAllする際、isUniqueのバリデーションルールのせいでsave()できない場合は第2引数にfalseをセットする

タイトルの通りですがsaveAll()で保存に失敗してハマったのでメモ。 流れは以下のような感じ ModelA hasMany ModelB ModelBはModelAのキーであるmodel_a_idをもつ(外部キーがmodel_a_id) ModelA->saveAll()を使ってModelAとModelBの両方を同時に保存したい…

hasManyなどで関連づけたテーブルにシーケンスがない場合のsaveAll

以下のようにCakePHPのCookbookに関連したテーブルへの保存方法が載ってますが、 PostgreSQLのシーケンス部分でハマってしまったのでメモ。 saveAll(array $data = null, array $options = array())次のいずれかの目的で使用します。 (a) 単一のモデルに、個…

findするときのconditionsなどにモデル名を書く習慣を付ける

CakePHPのCookbookを読んでると、いろんなところで「SQL内にモデル名を含めましょう」みたいなことが書いてあります。 conditions: 関連モデルのレコードを限定するための SQL。SQL 内でモデル名を使用することを習慣にしておくようにしておきましょう:“appr…

IE6のfloatを使った場面で片方のdivが下に落ちてしまう

今さらIE6の件ですが、ハマってしまったのでメモ。 ie6のfloatでメイン部分が下に落ちるなぁと原因を探ってみたら、イタリック文字のせいで幅が増えてたのが原因っぽい。文章くらいしか変わらない2つのページで起きる起きないが分かれてたからインデント変え…

CakePHPで「create時は必須入力」「update時は任意入力」のvalidationをする

CakePHPでDBにデータを保存するときにはmodelの$validate変数を使ってバリデーションをすると思うのですが、 ちょっとやり方がわからなくてハマった所があったのでメモ。 前提 簡単に話を進めるためにtitleとstatusというカラムをもつテーブルがあったと仮定…

Prototype.jsでjQueryの.liveのような動きをする書き方

Ajaxで持って来たコンテンツに後からイベント追加したいなと思い、Prototype.jsにjQueryの.liveのような機能がないのかなと調べた。 結果、同じような質問があった。 後から生成された要素も含め、class="foo"を持つ要素に対してのclickイベントをjQueryで書…

SimpleTestでprotected methodのテスト

protectedなメソッドのテストがしたい場合はどうしたらいいのかなと思い、 CakePHPを覗いてみたところ、cake/tests/cases/libs/http_socket.test.phpでテストしてたのでメモ。 http_socketのテストのsetUp()でMockHttpSocketクラスやMockHttpSocketRequests…

CakePHPのfindで複数のカラムのDISTINCT

CakePHPのfindメソッドで複数のカラムのDISTINCTを実行したいなと思いcookbookを確認したのですが、 サンプルには1カラムのものしかない。 DISTINCT クエリを用いた簡単な例は次のようになります。MIN() や MAX()、その他の演算子も、同じように扱えます。 a…

CakePHPのバリデーションルールにマジックナンバーを使わないようにするためどこに定数をまとめるか

「最小文字数が8」っていうバリデーションルールを書く例で Cookbookだと下のような感じでマジックナンバーにしてある。 'rule' => array('minLength', '8'), 多分簡単に説明するためにマジックナンバーにしてあるんだろうけど、 実際に開発するときは作用み…