memo-space
数式いじり
- 2007-04-21
- math
久しぶりにオイラーの贈り物を開いてみた(P42あたり)。
のとき
となるらしい。
こっちは簡単。
これは和と差の積ですね。
中3レベルか、、、
ところで、
は
なので
、、、元に戻った。
あーあとP26のパスカルの三角形とフィボナッチ数列の図の意味がやっとわかった。左に30度傾けて見れば良かったのか。
- WriteBacks: 1
SERIAL型のsequence名を取得する
- 2007-04-18
- pgsql
PostgreSQLでは、SERIAL型とはsequenceをデフォルト値とするinteger型で、SERIAL型の列を持つテーブルを作成すると自動的にsequenceが作られます。
またこの時のsequenceの名前は、{表名}_{列名)_seqとなります。
なんだけど表や列をRENAMEした場合にsequenceの名前もあわせて変わるわけではないので、フレームワークなんかでこの命名規則に依存していると悲しい思いをすることがあります。
- WriteBacks: 0
ミルカさん派です
- 2007-04-17
- math
ミルカさん派ですよミルカさん派。内容は全然理解できてませんが。
ファンタジーの法則ですか。 プログラマの数学は読んでませんが、ミルカさんを読んだ時に感じたのはまさに、 これは冒険物語だということでした。
というわけで、数学ガールに絶対でてきそうにない台詞を勝手に想像してみる。
僕「テトラちゃん!そっちにいっちゃダメだ!」
ミルカ「どうやら間に合ったようだね」
何の話だか。
- WriteBacks: 0
CakePHP日記:PostgreSQLのportを指定する
- 2007-04-16
- php
app/config/database.phpのコメントに惑わされてはいけません。
/*
...
* host =>
* the host you connect to the database
* MySQL 'localhost' to add a port number use 'localhost:port#'
* PostgreSQL 'localhost' to add a port number use 'localhost port=5432'
*
*/
実は'host' => 'localhost port=5432'ではなく'port' => 5432を追加すればOK。
- WriteBacks: 0
CakePHP日記:CakePHPでSmartyを使う時のTips
- 2007-04-11
- php
2007-04-12 追記:※注意!結論の「バッククォートで括ると便利」というのはあってますが、そこまでの過程はほとんどウソでした。そのうち直します。
CakePHPでViewにSmartyViewを使う時、おおざっぱにいうとこんな動きになっています。
- コントローラがビューに変数を渡す
- ビューがSmartyに変数を渡す(ついでに自分自身をviewというSmarty変数に登録する)
- レンダリング
このように、変数のコピーが2度発生します。
{$post.id} // これはSmartyの変数
{$html->link('linkto', $post.id)} // この$postはPHPの(SmartyViewがセットした)変数
ここで困るのは、レンダリング中にセットされた変数はSmartyの世界からしか見えないこうことです。 典型的な例としてはループで使われる変数です。
- WriteBacks: 0
CakePHP日記:Model,View,Controllerを共有する
- 2007-04-09
- php
同じmodel/actionに対して、一般ユーザ向け画面と管理者向け画面を分けたい時、CakePHPではAdmin Routingという選択肢があります。
4.4. 高度な Routing 設定: Admin Routing と Webservices
なんだけども、アプリケーションを分けてしまった方がすっきりする場合もあります。 分けてしまった場合でも、特にModelのクラスは同じもの使うことが多いです。こういう場合はファイルをコピーしなくても、app/config/bootstrap.phpでModelを検索するパスを$modelPaths 複数指定することができます。
- WriteBacks: 0
blosxom starter kit + Vicuna
- 2007-04-09
- blosxom
ちまちまと、blosxom starter kit + Vicunaという微妙なものを作っています。
まだあちこちちゃんと動いてませんが。 欲しい人がいるとはあまり思いませんが、いたら公開を考えます。
- WriteBacks: 0
文字列の先頭と末尾を表わす正規表現
- 2007-04-08
- php
そういう時は普通、\zを使うんだと思う(元記事のコメント欄でも言及されてるみたいだけど)。
- preg_matchの注意点 - PHPプロ!ニュース
Holes in most preg_match() filters - PHP Security Blog
<?php $str_list = array( "OK" => "1234:XYZ", "OK_EOL" => "1234:XYZ" . PHP_EOL, "NG_1" => "1234:XYZ" . PHP_EOL . "aaa" ); foreach ($str_list as $k => $v) { if (preg_match("/^[0-9]+:[X-Z]+\z/", $v)) { echo $k . " => " . $v; echo PHP_EOL . "----------------" . PHP_EOL; } } ?>
という話を書こうと思ったらPerl6では\Aと\zは廃止だそうです。
^と$が\Aと\z相当の動作をするらしい。
- WriteBacks: 0
CakePHP日記:insertかupdateか
- 2007-04-05
- php
Model#save()は、idがセットされているかどうかでinsertかupdateかを判断しているようです(さらに、lidがセットされていれば、本当に存在するかをSELECTしてみています)。
ですが、一般的なコントローラのeditアクションは、
A.12. Posts の編集:CakePHP プログラマーズ リファレンスガイド
function edit($id = null)
{
if (empty($this->data))
{
$this->Post->id = $id;
$this->data = $this->Post->read();
}
else
{
if ($this->Post->save($this->data['Post']))
{
$this->flash('投稿を更新しました。','/posts');
}
}
}
こんな感じで、データがpostされた場合はidをセットしていません。
ではなぜこれをupdateと判断するかというと、URLの1つめのパラメータは暗黙でデフォルトのモデルのidにセットされるからです。
じゃなくってこのドキュメントの例では、idをhiddenで渡しているからでした。
で、このhiddenが無い場合の話が以下に続きます。
しかし、コントローラでvar $uses = array('Model1', 'Model2')などと明示的に使うモデルを指定していると、この暗黙のidのセットは動作しないようです。
なので、uses を指定している時や、URLの1つめのパラメータをデフォルトのモデルのidとして使いたくない場合は、明示的にidをセットしましょう。
- WriteBacks: 0
CakePHP日記:SmartyからHTMLヘルパーの属性を指定する
- 2007-04-03
- php
前回の続き。 実は、
<p>Title: {$html->input('Post/title', $view->aa('size', 40, 'class', 'classname'))}</p>
こんなことしなくても、HTMLヘルパーのメソッドはたいてい、attributeにarrayじゃなく文字列を渡すこともできるらしく、
<p>Title: {$html->input('Post/title', 'size="40" class="classname"')}</p>
でいいんじゃないかということに気づいた。
2007-04-03 追記
やっぱダメだった。inputみたいなフォームの部品に関しては、valueとかidを付けてくれない。$html->image() なんかには使ってもいいかもしれない。
- WriteBacks: 0
- Search
- Feeds
- Profile
- 石田@苫小牧市と名乗りつつ札幌の某社に勤務するプログラマ
- 書いた本
- Links