CIUnit: Unit testing for CodeIgniter

CodeIgnigter

メモ〆(。。)
http://www.foostack.com/foostack/
CodeIgniterとphpUnitをつなぐブリッジ

追記:設置までできました♪

ダウンロードすると、なぜか.svnフォルダがそのまま搭載されていて、
いつでもsvn updateしてください的な感じです。
(ただし、ID,PASSが必要みたい・・・どこかに公開されてるのかな?)

テストの為にDBを汚さないようにyamlを使ってね的な事が書かれている部分が、よくわからないのだけれども。
続きはまた今夜か週末にやりたいと思います。

参考リンク

phpUnitの使い方
http://aglabo.com/agl/proevo/PHP/PEAR/phpunit-howto.html

PhpUnit – 最強のユニットテスト自動化ツール
http://www.doyouphp.jp/tips/tips_phpunit.shtml

phpUnitのWIKI
http://www.phpunit.de/

PHPUnit3で始めるユニットテスト
http://gihyo.jp/dev/feature/01/php-test/0001

第6回infotalk。


infotalk

6回目となるinfotalkに参加してきました。
始まる前に、柴田さんと、小山先生の雑談がすごく興味深く、
聞き耳を立てつつ・・・・スタートを待ってます♪

Python 3 inside out
柴田 淳さま(ウェブコア株式会社代表取締役)
pythonのお話。
pythonの歴史とか考え方とか、とても興味深いお話でした♪

ここまできました。ケータイを用いた市民への緊急配信
関 貴司さま(株式会社NTTドコモ ソリューションビジネス部)
携帯電話を使った情報発信の話。エリアメールのおもしろいお話でした。

Parallels Desktop for Mac 4.0

ずっと3を使っていた訳ですが、作業効率UPを願って、遅ればせながら本日4へのバージョンアップしました。
3がだんだんと不安定になり、再インストールをしようかと悩んでいたわけですが、バージョンアップ版が予想より安く、来月は移動中作業もありそうな事から、思い切ってしまいました。

(思い切ってしまった後、vmware fusion にしたほうが良いよなんて話があり、ちょっと凹んだのは内緒ですw)

Parallels Desktop for Mac 4.0

バージョンアップ後、Parallels Toolsのインストール時に4/4まで進んだ処理が、待っても待っても終わらず、
検索した結果終わらせても問題なさそうなので、一度終了させ、再び起動。
その後は問題なく動いています。

4.0になって、びっくりしたのは、
Windows側のファイルの操作時に、Mac上のアプリが選択でき、編集までできてしまったこと。
そのうちどっち側のソフトを使っているのかわからなくなりそうです(笑)

ネコネットデザイン事務所ホームページ




ネコネットデザイン事務所ホームページを先日リニューアルしました。

旧サイトは、「OpenPNEでつくる!最強のSNSサイト」の中で、OpenPNEのスキンジェネレータNEKOGET PNESKINの解説を掲載いただいた時に本にサイトのキャプチャを掲載いただいた事もあり、思い出深いサイトでしたが、デザインも変更をしました。

このホームページはCodeIgniterというフレームワークを使って、作成しています。
運営をしている、PNESKIN等のコンテンツは自宅のサーバでの運営なのですが、
仕事用のこのサイトはレンタルサーバに設置をしています。

自宅の環境PHP5 MySQL5の環境で開発を進めましたが、レンタルサーバがPHP4 MySQL4.0という古い環境のため、少しコードに手を入れてレンタルサーバ上で動かしています。

コーポレートサイト用の簡易CMSとして、少しずつ育てていく予定です。

flockからのテスト

PAP_0207.JPG by you.
flockからの投稿を試しています。flickrにflockからファイルを投稿し、その写真をflockでブログに投稿という流れでこの記事を書いています。写真は去年の大開帳の時の雷門の写真です。
この日は門も他の建物もライトアップされていました。

最初とりあえず日本語版の1.2をインストールしたのだけれど、スキンテーマが適用できなかったりということで、結局英語版の2.0.3をインストールしました。
なかなかに綺麗です。

flickrのアカウントはずいぶん前に作成していたわけですが、今日初めてファイルをアップしました。
携帯の中で寝かせていた写真をノートに移動し、浅草の風景写真を何枚かUPしてみました。
media barという、flickrやpicase等のサービスに投稿されている画像を表示できる機能があります。
仕事時にはfirefoxを使う事が多いのですが、この機能のおかげで、プライベートで使うプラウザはflockになりつつあります。

Blogged with the Flock Browser

Tags:

flockからの書き込み

flock
プライベート用に愛用しているプラウザ[flock]からの投稿です。
Windowsにのみインストールしていた訳ですが、試しにMacにもインストールしてみました。
ブログの記事を編集する機能があるみたいだったので、試しにアカウント情報を登録し、投稿してみました。

編集もできるようで、おもしろいです。

Blogged with the Flock Browser

タグ:

Aiit勉強会に参加してきました(メモ)

Aiit勉強会に参加してきました。

第一回に参加して以降、
参加できなかったのですが、ひさしぶりの参加です。

ということで、参加した時に取ったメモそのままです(汗)

建築・社会設計・情報システム: 3つのアーキテクチャが交差するヒューマンインタフェースに向けて
講師:中西 泰人 さま(慶應義塾大学 環境情報学部 准教授)
新しい時間と空間の使い方
アーキテクチャ
最近別の使い方をされるようになってきてる。
建築、社会設計、コンピュータシステム等で使われてる。
人々の振る舞い・行動パターンに影響を与えるアプローチの様々
情報の交差

  • システム
  • スタイル
  • スペース

没入型ディスプレイを使った検索システム(1998)のデモ動画
19インチのモニタと4畳半のスペースを使う場合の差が面白い

  • 図書館にある特別な検索ルームをイメージしたもの
  • 情報の配置をキーにする
  • 本(モノ)と情報を等価に扱う

    スケールに対する変化
    19インチ→テーブル
    19インチ→壁

    インターフェィスが違えば、場の認識が違ってくる。
    Viewとスペースが変わることで発生する事例の話

    iCAMS(1999-2002)
    グループウェア
    携帯電話の位置情報を取得するシステム
    位置の近い人順に並びかわるメンバーリスト

    時空間ポエマー(2002-2004)
    床に表示される。
    地図の上を歩くと、写真が表示される。

    BOZAAR(2007-)
    ふるまいをデザインする事で、Model.Controllerの実装がかわった。

    マルチスケールメディア
    リアル⇔デジタル・方法論の往来

    Viewの中にSpaceという情報が入った場合のシュミレーション

    City Compiler(2008-)
    実空間で動くソフトウェアの設計開発環境

    空間のアクティビティモデリング(2008-)
    オフィス内のアクティビティをUMLで表現

    情報技術を使った、振る舞い・行動パターン

    流体シミュレーションによるものづくり支援
    講師:石川 正俊 さま(株式会社シーディー・アダプコ・ジャパン 取締役副社長)

CAEとは?
計算機支援工学
数値解析
シミュレーション

・CAEについて
製造業の設計プレセス重要な技術になっている。
コンピュータ技術の発展によって、計算速度が早くなった。
25年で同等(またはそれ以上)の機材が安くなった 10万分の1
モノ作りの現場の要求
 開発期間の短縮
 開発コストの削減の要求
 どんどん短くなってきてる。

開発プロセスがCAEによって変わってきている。

  • 設計→試験前評価→試作→実機テスト
  • 実機性能が目標値を超えるまで繰り返される

  • 設計のプロセスに3D CADが導入される
  • 試験前評価でシミュレーションを行う(試作をせずに設計に戻り繰り返し設計を行うことができる)
  • コストと開発期間が短くなっている。

・流体解析以外のシミュレーションの紹介

流体解析(CFD)
現在はリアルなシミュレーションが可能になった。
流体騒音まで解析できる。
山火事 消火活動の為のシミュレーション

流体解析のものづくりへの適用事例
メリット

  • 開発期間の短縮
  • 開発コストの削減
  • 製品品質の向上

従来の課題解決との差
現状把握:解析をする。
アイディアを元に、新しい案で解析する
解析結果から案を練り、その案から解析をする。
解析結果を元に目標値に到達してから試作を開始する。

改善案の提案に対して、可視化することによって論理的な根拠を与える。

目に見えない流体の流れを目に見えるようにする(可視化)←利点
実験で目で見えないものを可視化できる。

原子炉の冷却の温度変化の予測
自動車エンジンの設計時の利用
ディーゼルエンジン内燃焼噴霧・解析
自動車エンジンウォータージャケット水流れ解析
サンルーフのノイズ予測
ドアミラーの騒音の予測

・最近のトレンド
大規模解析・マルチフィジックス・最適化
40台のレースカーを並べての実験
高精度の乱流非定常解析
ITSを利用した自動走行システムによるトラックの隊列走行(公開されている)
連成解析(マルチフィジクス)
ウォータジャケット流量分配最適化

——
TODO:後で整理

メモ

MyNETS2
管理者のログインとか認証関連
元のがよくわからなかったので、作っちゃう事に。

管理用テーブルを作成

 

CREATE TABLE <code>admin</code> (
<code>id</code> INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
<code>user_id</code> INT( 11 ) NOT NULL ,
<code>level</code> INT( 1 ) NOT NULL ,
<code>create</code> TIMESTAMP NOT NULL ,
<code>update</code> TIMESTAMP NOT NULL
) TYPE = MYISAM ;

levelは権限レベル 1はALL 0は無効
数字が増えて行くにつれて、アクセスできる箇所を減らして見ようかなと思ってる。
とりあえずは有効無効設定的に使用

こんな感じでjoinさせて検索しちゃえばいいかなと。
管理ユーザ専用のID,PASSを保存するテーブルをとも思ったけども
モジュール別に管理権限とかつけたくなるかもしれないし。
管理者名は別にあってもいいかもしれない。
後からカラムを追加してみよう・・・・〆(。。)

joinだとこんな感じになるかな・・・・〆(。。)

$this->db->select('*');
$this->db->from('user');
$this->db->join('admin', 'admin.user_id = user.user_id);
$this->db->where('user_id, $user_id); 
$this->db->where('level', 1); 
$query = $this->db->get();

1.6.3のユーザーガイド(MyNETS2は1.7ベースらしい)
http://codeigniter.jp/user_guide_ja/database/active_record.html

whereの指定は、「4. 自由に指定できる文字列を使用する方法」の書き方の方が好みなので、こっち採用〆(。。)

4. 自由に指定できる文字列を使用する方法:

WHERE句の中身を自分で書くこともできます:
$where = “name=’Joe’ AND status=’boss’ OR status=’active'”;

$this->db->where($where);

adminモジュールを書き換えちゃうのもあれなので、
nekogetモジュールを作成
主な役割は会員管理
ここでは、adminテーブルは使わない、会員(user)の管理を行う
機能はきっとこれぐらいあればきっと大丈夫・・・・〆(。。)

  • 会員一覧(新着)
  • 会員一覧(登録順)
  • 会員検索(簡易検索)
  • 会員検索(詳細検索)
  • 会員情報の詳細表示
  • 会員情報の修正
  • 会員情報の削除
  • 会員プロフィール情報の項目管理(登録、修正、削除)

スキン関連のフォルダ構成の変更

  • /theme/default/cssファイル
  • /theme/default/image/imageファイル
  • /theme/nekoget/cssファイル
  • /theme/nekoget/image/imageファイル

モジュール名/main.css の頭で、default/main.cssを読み込む。
モジュール名/main.cssはdefault/main.cssでたりない設定を追記していく
もしくはdefaultの設定を読み込まず、単独の設定を作るベースのCSSファイル
フォルダもしくはファイルで分けて、表示画面別のCSS、Controllerが制御するもの別のCSSファイルを個別に呼び出せるようにする。
この部分はControllerでの制御は避けて、View側で対応させたいな
・・・・〆(。。)備忘録的にメモ

  • View側の開発担当者とロジック(Controllerとかmodelとか)の開発担当者で、見るべき触るべきファイルを分けたい
  • 機能ごとをモジュールで分ける事で、分業を簡単に&設置、除去を簡単にする
  • CSSファイルを表示画面別に後から追記できるようにしておけば、急なデザイン変更にも対応しやすいし、単独のページでしか使わない設定を全ページで読み込ませる必要が無くなる
  • モジュール別のスキンテーマをさくさく変更できると嬉しい・・・デェフォルトとモジュール別のCSSの着脱や入れ替えを簡単にしたい

モジュールの中に、MyNETS2のバージョンとベースのCodeigniterのバージョン番号の情報をどこかに保存しておかないと、
モジュールだけを作ったり、設置したり、外したり、配ったりするのに困りそうだ。
どこかに情報を書き込んでおこう〆(。。)

続きはまた夜にでも勉強しつつやってみる予定。

〆(。。)トランザクション処理
http://codeigniter.jp/user_guide_ja/database/transactions.html

メモ

MyNETS2で、過去にCodeIgniterで作ったものを乱暴にモジュールにつっこんでみたり・・・

  • /system/mynets/modules/nekoget/config/database.phpでモジュール別にDBの設定ができるとのことだったけれども、残念ながらDBの情報を書き込んだだけでは動かなかった。
  • ControllerからViewの読み込みと表示は問題なし。

モジュールフォルダの中はCodeIgniterとほぼ同じ
なので、CodeIgniterがわかれば、普通にCodeIgniterでプログラムを組む感覚で作れる感じ。

スキンの情報が格納されるthemeの中もモジュールごとのフォルダに分かれている。
スキンテーマごとに分かれていてほしいので、こんな感じにしてみる。

  • /theme/
  • /theme/スキンテーマ名/default/css/CSSファイル
  • /theme/スキンテーマ名/default/image/CSSが利用する画像ファイル
  • /theme/スキンテーマ名/モジュール名/css/CSSファイル
  • /theme/スキンテーマ名/モジュール名/image/CSSが利用する画像ファイル

サイト管理用の管理機能もモジュール化について
同じサイト内でも使えるし、切り離して管理機能だけ他の場所に設置できるようにしたい。
adminモジュールを作ってその中でだけにしてしまうと、
簡単に追加したはずの機能の管理の切り離しや追加が面倒な事になってしまう。
管理用モジュールの一般機能モジュールへの依存はなしにしたいから、モジュールを置く場所自体も分けたい。

Viewファイルの共通パーツがControllerで使うテンプレートのパーツをすべて呼び出して、テンプレートに文字データとしてデータを渡すようになっているが、ここはController上ではなく、viewの役割にしたい。
表示の変更や、HTMLの構造を変更する際に、Controllerを調べないといけなくなるよりも、Viewファイル上で完結している方が、デザインや表示を変えるために改変を行う場合に,viewファイルだけを触って解決することができる。(デザイン変更の為にロジックは触りたくない)

眠くなってきたので、今日はここまで。

MyNETS2が面白い。

CodeIgnigter

kunitsujiさんよりCodeIgniterベースのNyNETS2の最新(?)のものをいただいたので、質問を投げさせていただきつつ中を拝見させていただきました。
kunitsujiさん、詳細な説明ありがとうございます!

モジュール化のために用意された構造がとてもすっきりしています。
おもしろそうなので試しに何か1機能作ってみようと思います。