MacbookProのHDDを交換したいなと思っているわけですが、
まだ保障が今年の12月まであるため、保障が切れたらしたいなーなんて思ってます。
intel Core2Duoではあるものの、古いタイプの為HDDの交換はかなり難しそうです。
調べてみたところ、HDD交換をしてくれそうなお店を発見
http://www.kitcut.co.jp/onlinestore/operation.php
たのしみたのしみ♪
雑記
MacbookProのHDDを交換したいなと思っているわけですが、
まだ保障が今年の12月まであるため、保障が切れたらしたいなーなんて思ってます。
intel Core2Duoではあるものの、古いタイプの為HDDの交換はかなり難しそうです。
調べてみたところ、HDD交換をしてくれそうなお店を発見
http://www.kitcut.co.jp/onlinestore/operation.php
たのしみたのしみ♪
前回php勉強会にて、testモジュールを作りたいよということを発表しました。
http://pneskin2.nekoget.com/press/?p=371
で、MyNETS2のレポジトリを覗いてみたところ、kenjiさんが testモジュールでPHPUnitを実現していました。
すごいよkenjiさん!!!
http://usagi-project.org/redmine/repositories/diff/mynets2?rev=1295
本日(日付が変わってしまったので正しくは昨日ですね)、株式会社グリー様に会場をお借りしての、第46回PHP勉強会@関東に参加をさせていただきました。
今回はCodeIgniterのHMVC構造をテーマに発表をさせていただきました。
資料、すこし手直しをしようかなとも思ったのですが、とりあえずそのままUPです。
発表をさせていただいた様子です。
撮影いただきましたogiさん、ありがとうございます(^-^)
(^-^;).o(声が震えてて恥ずかしい・・・)
今回、発表に到るまでに、資料を見て頂き、アドバイスや情報をたくさんいただきました。
norikoさん、kenjiさん、tsujikuniさん、
そして拙い(Web翻訳頼りの)英語での質問に、とても丁寧に答えてくれた
wiredesignzさんに心から感謝です。
ありがとうございました。
勉強会でも話を聞いていただき、懇親会では声をかけていただいたりと、とても有意義な時間でした。
皆様に大大感謝です。
次回の発表の場では、もっと良いものにできるよう精進したいと思います。
第46回PHP勉強会@関東:http://events.php.gr.jp/events/show/84
http://events.php.gr.jp/events/show/84
09月30日(水) 19:30~21:30にPHP勉強会があります。
参加予定です。
今やってるCodeIgniterにmodular extensions の資料が間に合えば発表をしたいと思います。
(=_=).o(ブログ用にphp勉強会のアイコン作るかなぁ・・・)
◆ここまでのあらすじ
最初1.7.2にCIUnitを組み込んでから、HMVC modular extensions 5217.zipを組み込み後、CIUnitを組み込み。携帯対応で混乱をしたため、上記作業のメモを元に、再度仕切りなおしをしました。
CodeIgniterを1.7.2にHMCV modular extensions 5219.zipを組み込み、その動作を確認しました。
/modules/{モジュール名}/controllers/{モジュール名}.phpの動作を確認
設置場所URL/index.php/{モジュール名}/
でアクセスできました。
/modules/{モジュール名}/controllers/{モジュール名と違う名前}.phpの動作を確認
この場合はURLは
設置場所URL/index.php/{モジュール名}/{コントローラ名}
でアクセスできました。
◆その後やったこと。◆
(HMVC) modular extensions 5217.zipのコードを拝見。
(=▽=).o(勉強になるなぁ♪)
(HMVC) modular extensions 5217.zipに+携帯関連のコードを追加しました。
携帯、PCを意識することなく、コードが書ける環境ができました。
◆課題◆
CIUnitを外してしまいました。
modular extensions 5217.zipでは、うまく動かなかったことと、
やはり本体の本体/system/codeigniter/CodeIgniter.phpを書き換えることが、やっぱり引っかかります。
テストをする仕組みを再度組み込む必要があります。
とりあえずは、unit_testクラスを使う方向で考えたいと思います。
メモ*テストを書くべき場所はどこか?*
CodeIgniterのUnit_testクラスでテストを書くなら、testコントローラを作って、そこにテストを書きたいなと思います。
controllerからcontrollerを呼べないわけだけれど、controllerからモデルもライブラリもヘルパーも呼べる。
ということは、呼ぶ、値を渡す、返ってくる値を評価するというお仕事は、controllerが適役。
modular extensions 5217.zipを組み込むと、モジュールから、他のモジュールのコントローラを呼ぶことが出来ます。これを利用して、とりあえずはunit_testクラスを使う方向で、使ってみようと思います。
echo modules :: run ( 'module/controller/method' , $param , $...);
参考サイト:
その後ですが、HMVCは一旦取り外してしまいました。
ごにょごにょしてたコードを一旦置いて、CodeIgniter1.7.1に対して、欲しかった機能を拡張するほうを優先しました。まだ私の理解力では足りない感じなので、順番に確実に進めていくことにしました。
この作業で、意識したのは次の3点。
(1)PCサイトと携帯サイトを構築するためのベースをつくる。
(2)PCサイトと携帯サイトをどう組み分けるか?を考える
(3)アプリとしての使い勝手と、アプリを組むために便利であることとのバランス。
(2)について。
愛読させていただいているCodeIgniter徹底入門では、携帯判定を行って、行った結果表示する情報量を減らす等の処理をして、モバイルとPCで両方使える掲示板の構築例がありました。コードを書く側から思えば、この方法のほうが、書くコードの量も少なくて楽です。そのようにしようと、サイトマップを作り始めたのですが・・・・・
実際アプリではなくてサイトとして考えると、PCと携帯を同時に考えるのは、結構複雑です。
携帯だけに実装したい機能、PCだけに実装したい機能、そしてそれらの機能に対する運用開始後の機能追加・・・を考えるとコントローラの中が結構複雑になってしまうし、作った人と運用後の機能追加をする人が違う場合には混乱しそうです。結局、コントローラを分けて、モデル、ライブラリは共通のものを使う方向で考えることにしました。。
モバイル対応が落ち着いたら、改めて挑戦したいと思います。
(=_=;).o(MyNETS2を素直に使えば良いとは思うんですよね・・・でももう少しそこに至るところまでを理解したいのです・・・・)
追記 2009.09.29
(=_=;).o0(追記の内容の方が、多いのでタイムスタンプを追記時間で書き換えました。)
やはりあきらめちゃダメだろうってことで、trac gitを用意。
とりあえずの携帯対応ができたCodeIgniter1.7.1を元にHMVCの組み込みを開始。
HMCV modular extensions 5219.zip
もう、HMVCエクステンションのバージョンがあがってる!!!
混乱して来たので、いままで触っていたものはそれはそれとして、置いておいて、
素の状態に、HMCV modular extensions 5219.zip を組み込んで、動くかどうか試してみた。
あっさりと、application/modules/{モジュール名}/以下のコントローラを読み込んでくれた。
また、モジュール名と同じコントローラ名でコントローラを作ったものは、コントローラ名を省略してくれている。モジュール名と違うコントローラ名の場合はURLが
モジュール名/コントローラ名/メソッド名
Machboxとほぼ同じ挙動になっている。
あとはmodelが動くかどうかも確認をしてみた。
class Model_welcome extends Model { function Model_welcome() { // Call the Model constructor parent::Model(); } function get_welcome() { $text = "Oh! Wecome Model !!!!"; return $text; } }
動いてほしいと思っていた部分が確実に動く事を確認できたので、
次は中身を理解するためにコードを読むことにしてみます。
Tracでgitですが、結局躓いていた原因は、trac.iniの設定不足だったようです。
とりあえず、tracでgitが使えることはわかりました♪
1つのプロジェクトに1つのtracで完結。
フォルダごとバックアップをとっておけばそれでOKな手軽さが素敵でまだまだ手放せそうにありません(笑)
(redmineも気にはなってるんですけどね(><)
–
[components] tracext.git.* = enabled ...(略)
[git] cached_repository = true git_bin = /usr/local/bin/git persistent_cache = true shortrev_len = 7
[trac] ...(略)... repository_dir = /home/apache/git/nekoget/.git/ repository_type = git ...(略)
■躓いた後、うまくいった原因かもしれない事柄は次の2点
(もうすこしきちんとメモをとりつつ、取り組めばよかったなと反省)
サーバ上のgitは1.6.4から1.6.3にダウングレード
(checkinstallでrpmを作成し、インストール)
レポジトリのディレクトリを最初/home/apache/git/nekoget/に作ったのだけれども、うまくいかないので/home/apache/git/nekoget/.git/に変更。
■環境(?)
TRACはTrac 0.11.2.1.ja1
インタアクト株式会社 様が配布くださっている日本語版TRAC
gitは1.6.3
checkinstallでrpmを作成し、インストール
OS:Fedora 8
Python 2.5.1
rootでコミットを試しちゃったのがばれちゃう恥ずかしい画像(笑)
サイドのリンクを増やしたりした為に、1ページの情報量が増えてしまったので、設定を表示は1日分に変更してみました。
少し見やすくなると良いのですけどねー
追記
結局見辛くなったので、10件ずつに表示を変更しました(><)
http://www.postgresql.jp/document/pg840doc/html/
自動生成されてるらしいです。
htmlを<>の中で改行しているコードがこんなに身近にあるとは知りませんでした。
自分自身の視野の狭さに猛反省です。
siena.さん lllnorikolllさん m-takagiさんありがとう(TAT)ノ
以前に作成した資料を拝見くださった方が、twitterにてフォローいただいたとのことなので、
現状手元にあるCIUnitがどのような状況なのか、書いてみたいと思います。
◆ネコネットデザイン事務所ホームページ
CodeIgniter 1.6.2に組み込み
modelを中心にテストを書いてみました。
運用サーバ上にテストをアップしないように、applicationフォルダ以下をSVN管理上のファイルとして扱い、
テストは自分だけに見える状態として扱ってます。
◆MyNETS2 にCIUnitを組み込み
リビジョン番号を控えわすれてますが、リポジトリからエクスポートさせていただいたのが2009年4月9日となっているので、かなり古いものです。確認しましたがその頃のファイルは残ってないようなので、現在レポジトリで公開されているものとは中身が違うようです。
設定ファイルの設定でCIUnitのON OFFを制御させています。
テストコードも複数人で共有できるようにSVN管理しています。
現在これをベースに組んでいたものは、途中でやる気を失ってしまい放置状態ですorz
この時点で発生した問題としては、セッション系の部分とモバイル、PCの判定部分を突破できず、コントローラのテストはできませんでした。モジュール、ヘルパー、ライブラリに関してはphpUnitは正常に動作し、テストが実行できる状況が作れています。
この2ヶ月ほどは、7月頭ぐらいにコミットされてるリビジョンのMyNETS2をいじっていますが、まだそれにはCIUnitは組み込んでいません。CIUnitとは違う方法でのphpUnitの利用を模索中です。
◆まだTDDにはたどり着いていないという事
去年のOSC、
そしてt-wadaさんの「TDDテスト駆動開発」を拝見してから、テストせねばということでテストをするということに取り組んでるわけですが、実際のところまだTDDの、「先にテストを書く」というところには、まだたどり着いていません。
コードを書く→ちゃんと動くかテストを書く→テストを動かしてみる。
私はついつい長々とコードを書いてしまうので、
処理を分割する→テストを動かす→うごいてる♪
な、動作の確認にもテストを動かして、確認をしている感じです。
CIUnitで書いているテストは、Modelに対して行っています。
少しずつですが、最近はhelperに対するテストを書き始めました。
不器用なので、まだテストという技術を身につけるには至っていないと思いますが、少しずつできるようになってきているのかなと感じています。
◆コントローラのテストに対する考え
MyNETS2に組み込んだCIUnitも素の状態の1.6.2に組み込んだCIUnitも、
現状Controllerのテストはやりにくい状態です。
この部分は、無理にUnitテストではなく、目視での確認
バッチでコントローラを走らせた後に、DBの値を検証をする、もしくはWebアプリケーション用のテストツールSelenium等を利用した、別の形で行うのが良いかと思っています。
model,helper,ライブラリ等で、何を投げて何が返ってくるのかにだけ注目し、他は行わないという割り切りがあっていいかなと思っています。