2011年01月 / 12月≪ 12345678910111213141516171819202122232425262728293031≫02月

インフォメーション

FC2ブログで画像等を一括アップロードするソフトを地味に配布してます。
FC2ブログ用ファイルアップロードの最新版はこちら
(ベクター)FC2ブログ用ファイルアップロード

--.--.-- (--)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


 |  --:--  |  スポンサー広告  |  Top↑

2011.01.31 (Mon)

はなれんげっていうラーメン屋

近所にできたラーメン屋。
家にチラシを持ってきたら並が500円!てあったのでチラシ持って行ってみた。

並が1.5玉らしい。通常価格は700円。
器がでかい。1.5玉だけあって量も地味に多い。
CA3G02220001.jpg

器がでかいのに合わせてか、チャーシューやメンマもほどほどにでかい。
CA3G0223.jpg

味は見た目通りあっさり。
普通にうまい感じだが、あっさりしててインパクトがないのでこの量の麺を食ってると途中で飽きてくる感じ。
花月のつぼにらみたいに味が変わるものが備え付けてあるといい気がするんだけどこしょうくらいしかなかった。
次回からは1玉のやつでいいや。1玉のは600円だったかな。
ワンタン麺も気になる。

自分はせこい人間なので、同じ金額だすならカロリーの高い花月に行ってしまいそうだ。
この辺は自分みたいな値段が安くて高カロリーを基準に選ぶ人が多い気がするので、ここはつぶれそうだなあとは思った。
近所にあっさり系のラーメンなかったから非常にありがたいんだけどね。
花月のナナコははまって何度も食ったなあ。ってのを思い出した。
スポンサーサイト


 |  16:32  |  外食  |  トラックバック(0)  |  コメント(0)  |  Top↑

2011.01.27 (Thu)

CakePHPのShellでsql_dumpが見たい

CakePHPのレイアウトに入ってる
$this->element('sql_dump');
これが非常に便利。
画面が表示されるまでに実際に発行されたSQLをすべて確認できる。

これが便利すぎるのでShellでも使いたいなあと思ったので
cake/libs/view/elements/sql_dump.ctp
を参考にshell用を作った。
  /**
* クエリ表示
*/
function sql_dump()
{
if (!class_exists('ConnectionManager') || Configure::read('debug') < 2) {
return false;
}
$noLogs = !isset($logs);
if ($noLogs):
$sources = ConnectionManager::sourceList();

$logs = array();
foreach ($sources as $source):
$db =& ConnectionManager::getDataSource($source);
if (!$db->isInterfaceSupported('getLog')):
continue;
endif;
$logs[$source] = $db->getLog();
endforeach;
endif;

$tmp = '';
if ($noLogs || isset($_forced_from_dbo_)){
foreach ($logs as $source => $logInfo){
$text = $logInfo['count'] > 1 ? 'queries' : 'query';
$tmp .= sprintf("cakeSqlLog_%s ",preg_replace('/[^A-Za-z0-9_]/', '_', uniqid(time(), true)));
$tmp .= sprintf("(%s) %s %s took %s ms\n", $source, $logInfo['count'], $text, $logInfo['time']);
$tmp .= "Nr\tQuery\tError\tAffected\tNum. rows\tTook (ms)\n";
foreach ($logInfo['log'] as $k => $i){
$tmp .= sprintf("%s\t%s\t%s\t%s\t%s\t%s\t\n",($k + 1), $i['query'],$i['error'],$i['affected'],$i['numRows'],$i['took']);
}
}
}else{
$tmp .= '

Encountered unexpected $logs cannot generate SQL log

';
}
return $tmp;
}

タブで区切ったりしてるけどその辺は好みで。


 |  14:49  |  PHP  |  トラックバック(0)  |  コメント(0)  |  Top↑

2011.01.25 (Tue)

CakePHPでnamed部分を丸々引き継ぐurl

CakePHPでformのurlとか指定するとき、$this->hereするといまいちベースの有無でめんどくさい感じ。
なのでコントローラ、アクション名はもう直指定して、残りの$this->params['named']部分を丸々引き継いだurlを渡したい場合。
.ctpファイル内で言うと
$form->create('User',array('url'=>array('controller'=>'user','action'=>'regist')+$this->params['named']));

urlのarrayに+$this->params['named']。
namedでない形式/controller/action/param1/param2
の場合は+$this->params['pass']で。
PHPの配列って+で結合できたのか・・・知らなかった。
配列を+した場合の動作は、array_mergeとは違い、キーが存在しなかった場合に追加され、
キーが存在してたらついかもへんこうもされないみたいな感じ。
とにかく追加はするけど上書きしないっていう動作。
詳しくは配列演算子


 |  16:52  |  PHP  |  トラックバック(0)  |  コメント(0)  |  Top↑

2011.01.19 (Wed)

CakePHPのモデルの結合メモ

ややこしいんでメモ。
foreignKeyとか、やっと理解できるまで意味不明すぎたので忘れたらまた引っかかると思う。

モデル内に$hasOneとか$belongsTo等の結合ルールを宣言すると、
その宣言したモデルをfindした場合に自動で結合ルールに基づいたテーブルデータも合わせて取得する。

■$hasOne
1対1。外部モデルを1個取得
自モデルのidと、外部モデルの任意のフィールドに結合できる。
自モデルの結合フィールドはid固定。別のフィールドと結合したい場合はhasOne以外を使う。

自モデル.id=外部モデル.foreignKeyに設定した値
Mymodel.id = Othermodel.mymodel_id

の条件で取得される。

foreingKeyを指定しない場合は「自モデル名_id」がデフォルトに。
foreingKey=falseにすると、自モデル名.id=..の条件は付加されなくなるっぽい。

■$belongsTo
多対1。hasOneと同じく外部モデルを1個取得。
自モデルの任意のフィールドと、外部モデルのidフィールドに結合できる。
外部モデルの結合先はid固定。

自モデル.foreignKeyに設定した値=外部モデル.id
Mymodel.othermodel_id = Othermodel.id

の条件で取得される。

foreingKeyを指定しない場合は「外部モデル名_id」がデフォルトに。
どっちのidに紐づけるかでhasOneかbelongsToかが変わる。

■$hasMany
1対多。外部モデルを複数取得。
自モデルのidと、外部モデルの任意のフィールドに結合できる。
自モデルの結合フィールドはid固定。

自モデル.id=外部モデル.foreignKeyに設定した値
Mymodel.id = Manymodel.tetetete_id

の条件で外部モデルが複数取得される。
foreingKeyを指定しない場合は以下略

■$hasAndBelongsToMany
は使ってないのとまだよく理解してないのでわからん。
自モデル、外部モデル両方に火もづけるフィールド名を指定できるみたい。

とにかくforeignKeyがどっちのモデルに対して設定されるのかを理解すればいける気がする。
$hasOne等に入れるconditionsは固定値のみなので、変数とか動的な値を入れる場合はfind時の引数のconditionsに入れればいいっぽい。
その際クラス名付加してくっきり区別するようにしないとえらーるかも。

参考
3.7.6 関連: モデルを結びつける


 |  10:46  |  PHP  |  トラックバック(0)  |  コメント(2)  |  Top↑

2011.01.16 (Sun)

香味焙煎

コーヒーの敵は、「酸化」らしいです。
寒いので、こたつから出ずにポットのお湯だけで飲めるインスタントコーヒーがありがたい。
トップバリューのインスタントコーヒーを買ったのだが、どうもいまいちすぎて飲みきれなくてまだ残ってる。
嗜好品はけちって安物買うと、嗜好から外れてただの不要物になるということを学んだ・・・。

CA3G0029.jpg
この香味焙煎はいいかんじ。トップバリューの後だから余計良く感じるだけかも。
ほぼ一人で1日2~5杯くらい飲んでるけど、意外と持つので高いものでもない。
これは深煎りりだけど、中煎り?も気になるからこれ飲みきったら買ってみるか。

ちなみにトップバリューの紅茶も地雷だった。うすいのなんの。


 |  06:11  |  食べ物  |  トラックバック(0)  |  コメント(0)  |  Top↑

2011.01.14 (Fri)

cakephpでリダイレクトするとセッションがどうの

CakePHPで、別コントローラにリダイレクトしたらなんかセッションが取得できない。

リダイレクト前のsession_name()とリダイレクト後のsession_name()をviewで表示したけど、
リダイレクト前はcore.phpで設定されているセッション名なんだが
リダイレクト後がデフォルトのセッション名(PHPSESSID)になってる。
URLにセッションIDを付加してるんだけど、ちゃんとIDはついてる。

なんか抜けてる?設定間違えたかな?どこかで変な設定しちゃったかな?
ちなみにviewに普通にリンク貼ってリンクをクリックして移動した場合はセッションはちゃんと残ってるし、セッション名もちゃんと設定されてる。

ためしにまた別のコントローラにリダイレクトさせてみたら、こちらはちゃんとセッションが渡ってる。
違いといえば、取得できるコントローラは$componentsを設定してない。
取得できないコントローラは$componentsを設定している。

ためしに取得できないコントローラの$components=array(..部分をコメントアウトしてみたところ、
セッションが取得できるように。セッション名もちゃんと設定されている。

うーんどうしたらいいものか。
app_controllerに使用する全コンポーネント宣言しちゃって、各コントローラ内でコンポーネント宣言をしない・・・てのも微妙な気がするし。
コード追うしかないか。

ちょっと追ってみた。
ktailibrary使ってるんだけども、$ktai=array(..の設定でenable_ktai_sessionをtrueにしてたんだが
それをfalseにしたらセッションが渡った。
うーんなんか設定項目とか間違えたかなあやっぱ。
見直してみよう。

さらに追い中。
どうも$componentsを各コントローラで再設定することによってKtaiComponentのinitializeが2回よばれてるのが原因っぽいなあ。
initializeの
if($this->_options['enable_ktai_session']){
$this->_options['session_save'] = Configure::read('Session.save');
Configure::write('Session.save', 'ktai_session');
}
ここでSession.saveにktai_sessionを入れてるんだけど、initializeが2回よばれることによって
2回目のConfigure::read('Session.save');は'ktai_session'が入っちゃってる。
app_controller継承クラスの$componentsが再設定されることによってinitializeが2回呼ばれることになるのはしょうがないのかな?
自作コンポーネントのinitializeにブレークポイントおいてみたら、継承したクラスで$componentsを設定してるとやっぱり2回よばれちゃう。
継承元のinitializeと継承先initialize両方やってるってことかな?
なんにせよ2回initializeするってことは、Session.saveの元の値を何とか保持する必要があるようだ。

てことで/components/ktai.phpを下記のように修正してみた。
変更前(105行目くらい)

if($this->_options['enable_ktai_session']){
$this->_options['session_save'] = Configure::read('Session.save');
Configure::write('Session.save', 'ktai_session');
}

↓変更後

if($this->_options['enable_ktai_session']){
$tmp_name = 'Ktai.org_session';
$org = Configure::read($tmp_name);
if(!empty($org)){
$this->_options['session_save'] = $org;
}else{
$this->_options['session_save'] = Configure::read('Session.save');
Configure::write($tmp_name,$this->_options['session_save']);
}
Configure::write('Session.save', 'ktai_session');
}

とにかく一時的にかぶらないような名前でConfigure::writeで保持するようにした。
これでなんとか$componentsを宣言したコントローラにリダイレクトできるようになった。よかった。

まとめ。
app_controllerの$componentsで設定したクラスは、継承したクラスで$componentsを再設定している場合はinitializeが2回よばれることになる。

例)app_controller.phpで
class AppController extends Controller {
var $components = array('Abcd','Efg');
...

app_controllerを継承したdummy_controller.phpで
class DummyController extends AppController{
var $components = array('Hij');
...

とした構成でDummyコントローラにアクセスした場合、'Abcd'と'Efg'のinitializeが2回呼ばれ、'Hij'のinitializeが1回呼ばれる。


 |  14:02  |  PHP  |  トラックバック(0)  |  コメント(0)  |  Top↑

2011.01.12 (Wed)

SeesaaBlog用一括アップロード

Seesaa用も作ってと要望があったので作ってみた。
いろいろ試行錯誤したのでまた無駄な処理があったりなかったりでたぶん不安定だと思うけど、
なるべく早めの方がいいかなということで不安定で公開しますw
何回かやるとたまにしっぱいする・・・w
問題があったらコメントとかメールとかで教えてくれればその都度対処しますんでとりあえずこれでよろしくお願いします。

↓これ
SeesaaFileUpload.zip

Seesaaブログは1アカウントで複数のブログが持てるみたいなので、
設定タブの「ブログ名」に対象のブログ名を入力して使ってください。
ほんとはブログ名もリスト表示にして簡単に切り替えられるようにした方がいいとは思ったけど、早く公開することを優先にしてとりあえずテキストボックスで。

詳しい使い方は↓とほとんど同じです。
FC2ブログでファイルを一括アップロードするソフトを作ったよ

Seesaaブログのアップロード時にディレクトリ名を指定できるみたいだから、そのうち指定できるようにはしたいかも。

あ、あと起動して設定を保存したらexeと同じディレクトリに「SeesaaFileUploadSettings.xml」っていう設定ファイルが作られます。


 |  12:03  |  自作アプリ  |  トラックバック(0)  |  コメント(0)  |  Top↑

2011.01.06 (Thu)

あぐにゃんに勝てなくて涙目

mhp3のアグナコトルに双剣で勝てなくて涙目だったので、
ガンランスとアーティアS防具作って、オートガードとガード性能+2にしてツンツンしまくってたら倒せた。
ガンランスで倒しまくってたらパターンとかあたり判定とかがわかってきて、ためしに双剣担いで(インゴット装備と水双剣)で行ってみたら尻尾切れるわ溶岩楽々剥がせるわでびっくりした。

・4連ついばみはなるべく向かって左、アグナの後ろに逃げる
・4連ついばみ時は胸、前足にダメ食らい判定があるが、後ろ脚から後ろは当たってもダメージがない(前足と後ろ脚の間に突っ込んで切りまくれる)
・上半身出しビームはとにかく近くに飛び込む。近くでも真正面だと食らうので、アグナの右前脚のあたりに行く。無理なら緊急回避で。
・ぐるっと回る攻撃はくちばしと尻尾両方判定有。胸元に飛び込むと結構当たらない
・潜る際、地面に突っ込んだ瞬間には判定があるがその後は判定がないので潜りきるまで切りまくり
・くちばしは無理せず疲労時に剥がす
・溶岩が冷えて堅くなったら回復、砥石などアイテム使用タイム

ということがガンランスしてたらわかったので、この辺気を付けてやったら双剣でも楽々倒せるように!
もちろん亜種も楽になった。亜種はタックルの距離が長いので横に逃げるようにするのがよさげ。
アグナがつらい双剣の人は、ためしにガンランスで行ってみるのがよさそう。
あとアグナの切れた尻尾が美味そうで仕方ない。


 |  03:13  |  ゲーム  |  トラックバック(0)  |  コメント(0)  |  Top↑

2011.01.03 (Mon)

1月1日の日記

今年も笑ってはいけないで年越し。
ガンランスでアグナコトルをつんつんしてたら年を越したことに気付かなかった。
1時半くらいに近所の神社に行ったが、まだ人が並んでた。
焚火にあたって甘酒飲んで並んで初詣。
CA3G0213.jpg

夜飯を食べていないので、そのままガストに行って気になってたウインタージャンボステーキセットを頼む。
ファミレスのステーキは当たり外れが激しいのと金がないので普段は頼まないんだけどね。
今年初肉初贅沢。
230gとちゃんとくっきりグラム数が書かれてるだけあって、それなりにでかい。思ったよりでかい。
でもちょっとうすい。
肉の左上部分は厚めだった。醤油ソース。
CA3G0212.jpg
サラダとご飯とスープバーがついてる。ホウレンソウは別途頼んだ。
CA3G0211.jpg

味はなんかすっごい懐かしい味がした。
昔、ファミレスで食べさせてもらった肉ってこんな味だった気がする。
異常に懐かしさがわく味だった。そういう意味ではうまかった。
肉をかむと結構やわらかいのだが、いくら噛んでもなくならないという不思議な肉。
ホルモン風?筋っぽい感じかな。
ある程度かんだらゴクッと飲むか、さらに噛み続けるかの選択が必要な肉だった。
小さめに切って食った方がいいかも。食うのに時間がかかるw
肉は満足するくらい量があったので、「肉を咀嚼したい!」と思ったらまた食うと思う。

その後おみくじを引き忘れたことに気付いたので、ガストから神社に戻っておみくじひいた。
CA3G0027.jpg
大吉っ・・・・!
内容があまり大吉っぽくないけど、ここ数年中吉ばっかだったのでうれしいです。

んで家帰ってレッドカーペットっぽいの見て、爆笑ヒットパレードを見て、
昼すぎに橋本アリオへ。デンジャラスがきてた。写真撮影すんなって張り紙があったので写メは取ってない。
デンジャラスのクイズコーナーで、デンジャラスのファンっぽい女の子がクイズに正解して、サインもらってすごい嬉しそうにしてたのがほのぼのしてしまった。

その後いつも通り中をうろうろ。ペットショップで猫用レトルトフードとファーミネーター猫用を買ってみた。
さすがよくとれるね。愛用してるシェッドバスターは猫の皮脂が詰まってきてあまり取れなくなってきたし。
帰りに、やたら神なミウィの地下に寄って帰った。
久しぶりに行ったんだがやはり神過ぎて買いまくってしまった。なんなんだあそこは。
家に帰ってきてドリームマッチ見ながらまた肉食って、気づいたら寝てた。

そんな元旦。今年は福袋買ってないです。なんとなく買いたくならなかった。


 |  13:01  |  日記・雑記  |  トラックバック(0)  |  コメント(0)  |  Top↑

2011.01.01 (Sat)

あけましてうさぎ

あけましておめでとうございます。
今年もだらだらすると思うけどよろしくお願いします。
usa.jpg


 |  00:41  |  絵・CG  |  トラックバック(0)  |  コメント(0)  |  Top↑
 | BLOGTOP | 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。