FLASHやPHPを中心としたWEB制作の話題。筆者もWEBデザイナーですが、最近はデザインだけではとても食べていけず、どうしてもシステム系の話にぶち当たります。そんな日常で、筆者自身が制作で困ったこと、おどろき、その解決策や手法など役に立てる話になればよいのですが・・・。
22 5 月
とうとう例のインフルエンザに感染された方が都内でも見つかってしまいましたね。
空港などで国内への侵入を防ぐための予防策を講じていたのに、残念な結果です。
今回のインフルエンザは毒性が弱いということで、テレビではなんだか安心してくださいみたいな感じで扱われていますが、そもそも、インフルエンザって、いつ突然変異するかもわからないような病原菌だと思いますし、今の感染力を保持したまま、至死性の高い病原菌に変異でもしたらって思うと怖いなぁなんて思ってしまいます。
そもそも、国をあげて菌が入ってこないように対策していたのに、結局入ってきてしまい、感染も広がっているっていう今の現状はどうなんでしょうか?至極、重大な問題な気がします。
夕方のニュースでその道のプロの方が、「簡易検査の限界」とか「こちら側もある程度、想定していかなければならない」みたいなことをおっしゃっていたんですが、そうなんだぁって感じでびっくりしてしまった訳ですよぉ。ほとんどの人は、成田の検疫では完全に予防できると思っていたのではないでしょうか?
僕はそうだった訳で、まったく平和ボケしてた感じですよぉ。
どうやったら完全に防ぐことができるのでしょうか?
検疫の強化?個人の自覚?対策?
至死性の恐ろしく高い病原菌の場合も同じように防ぐことができないとなると、何かを考えておく必要があると思うのですが・・・。
さて、その何かを見つけることが大変なんですが・・・。
20 5 月
最近、お笑い芸人さんテレビで活躍されてますよねぇ。
どの番組を見ていても必ずゲストにお笑い芸人さんが参加されているように思います。日本人は笑いが好きなんですねぇ。
斯く言う、私も「爆笑レッドカーペット」とか「爆笑レッドシアター」はよく見てまして、我慢できずに一人で声を出して笑ってしまうこともある訳で、傍から見ると多分ちょっと!?な感じかもしれません。
結構、お笑い好きな自分に驚くこともしばしば・・・。電車でワンセグとかで見ることは絶対できません。
さてさて、面白い芸人さんたくさんいるんですが、レッドカーペットではじめてみたときから、私のツボに真芯で来たのが「U字工事」さんでした。なんといってもあの栃木弁でのテンポのよい掛け合いと、プチ栃木紹介のネタがたまらなくいい感じな訳で、すっかりファンなんですよねぇ。
その「U字工事」さんが「浅草キッド」さんの「草野☆キッド」に出演されていました。お笑い番組以外では出演されているのをあまり見かけたことがなかったので、ふとチャンネル止めて見てしまったのですが、今でこそ「U字工事」さんもメジャーになられていますが、それまでの道のりは平坦なものではなかったようですね。
「浅草キッド」さんとのお兄さんと弟という関係、励まされたことをバネにがんばり続けたことなど、その歴史には、尊敬や共感できる部分やたくさんあり、思わず自分に置き換えて考えてしまったり・・・。
いろいろと協力したり、励ましたりした後輩が成功して、自分たちの番組に出演し、かつ、その後輩が尊敬と感謝の気持ちをもってくれているということって、達成感というか義を通すというか、言葉で表現するのは難しいですが、番組を見ていて感動してしまいました。
「浅草キッド」さんの涙につられて、私も目頭が熱くなってしまった訳で・・・。
同年代の方の成功は喜ばしくもあり、励みになりますよねぇ。私もがんばらなくてはと、気が引き締まりました。
14 2 月
前回の「CORESERVER に Redmine をインストールする その1 ~ Ruby on Rails のインストール ~」で、Ruby on Railsのインストールはできている訳ですので、引き続き「Redmine」をインストールしていきますね。
今回インストールしたRedmineのバージョンは以下のバージョンです。
Redmine 0.8.0
CORESERVERさん管理ページのドメインウェブで「project.xxxxxxx.com」みたいなサブドメインを作って、サブドメインで利用できるようにしてみますね。
また、DBも必要なので、CORESERVERさん管理ページのMySQLで新しいDBを作ってください。ここでは、「xxxxxx_mine」という名前で作成したとしますね。
合わせて、チケットなどやニュースなどが追加されたときにメールが飛ぶように、Redmine用のメールアドレスも作っておきます。ここでは、「info@project.xxxxxxx.com」とします。
まずは本体のダウンロードですね。
Subversionを利用してリポジトリから最新版をインストールすることもできるみたいですねぇ。
関心するばかりです・・・。
私の場合は、未だにソースのZIPファイルをダウンロードし、そちらをアップロードして、展開することとしますね。
合わせて、ZIPファイルをローカルで回答して、いくつか追記する部分もありますので、ローカルで解答し、テキストエディタなどで追記してから、アップ先に上書きする方法で、進めてみたいと思います。
もちろんサーバーにログインすることにはなるので、VIエディタなどで編集してもらってもOKです。
まずはダウンロードしてもらった本体ファイルをZIPのままアップロードしますね。
私の場合は、他のFrameworkやらオープンソースやらもいろいろと入れたりいていてサーバーの中がごちゃごちゃになるので、
#ディレクトリ作成
mkdir -p $HOME/framework/rails/
にディレクトリを作って,
ソースのZIPファイルをFTPでアップロードします。
早速ソースを解凍してディレクトリ名をリネームしておきます。
#ZIP解凍
unzip redmine-0.8.0.zip
#ディレクトリ名変更
mv redmine-0.8.0.zip redmine
ログと一時ファイル保持ディレクトリのパーミッションを変更する必要がありますので、以下のコマンドを実行してください。
#パーミッション設定変更
chmod -R 777 tmp/ log/
さて、DBを構築して、初期データをインストールします。
#DB初期化
rake db:migrate RAILS_ENV=”production”
#初期データ入力
rake load_default_data RAILS_ENV=”production”
で、環境設定「configディレクトリ」用の「environment.rb」、「database.yml」、「email.yml」と公開フォルダ内の「dispatch.cgi」、「.htaccess」の記述をいくつか変更したいので、ローカルの適当な場所に「redmine-0.8.0.zip」を解凍します。
まずは、環境設定用の「解凍フォルダ)/config/environment.rb」の先頭に付近に4行追記と’production’モードで実行したいので設定行をコメントアウトしてください。(「xxxxx」はCORESERVERのユーザー名に読み替えてくださいね。)
# Be sure to restart your web server when you modify this file.
$LOAD_PATH.push(”/virtual/xxxxx/lib/”)
$LOAD_PATH.push(”/virtual/xxxxx/lib/ruby”)
ENV['GEM_HOME'] ||= ‘/virtual/xxxxx/lib/ruby/gem’
ENV['RAILS_RELATIVE_URL_ROOT']=”"# Uncomment below to force Rails into production mode when
# you don’t control web/app server and can’t set it the proper way
ENV['RAILS_ENV'] ||= ‘production’
保存したら、サーバー上の
$HOME/framework/rails/redmine/config/environment.rb
に上書きしてください。
次に、DB接続設定ですが、「解凍フォルダ)/config/database.yml.example」を「解凍フォルダ)/config/database.yml」にリネームして内容を編集します。
production部分だけで設定できます。
production:
adapter: mysql
database: xxxxxx_mine
host: localhost
username: xxxxxx_mine
password: (DBパスワード)
encoding: utf8
続いてメール設定ですが、DB設定と同じように「解凍フォルダ)/config/email.yml.example」を「解凍フォルダ)/config/email.yml」にリネームして内容を編集します。
production部分だけで設定できます。
production:
delivery_method: :smtp
smtp_settings:
address: sXXX.coreserver.jp
port: 25
domain: sXXX.coreserver.jp
authentication: :login
user_name: info@project.xxxxxxx.jp
password: (メールパスワード)
「database.yml」と「email.yml」を保存したら、サーバー上にFTPアップロードします。
$HOME/framework/rails/redmine/config/
続いて公開フォルダにある「dispatch.cgi」の設定ですが、DB設定と同じように「解凍フォルダ)/public/dispatch.cgi.example」を「解凍フォルダ)/public/dispatch.cgi」にリネームして先頭行のRUBYへのパスを編集します。
#!/usr/local/bin/ruby
「dispatch.cgi」を保存したら、サーバー上にFTPアップロードします。
$HOME/framework/rails/redmine/public/
上記のアップロードができたら、「(解凍フォルダ)/public/.htaccess」をエディタなどで開いて編集します。コメントアウトとかありますので、その辺は省略しますが、以下の部分が有効になっていれば問題ないです。
#.htaccess 修正 mod_rewriteの記述修正
<IfModule mod_fcgid.c>
AddHandler fcgid-script .fcgi
</IfModule>
<IfModule mod_cgi.c>
AddHandler cgi-script .cgi
</IfModule>
DirectoryIndex dispatch.fcgi dispatch.cgi
Options +FollowSymLinks +ExecCGI
RewriteEngine On
RewriteBase /
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
<IfModule mod_fastcgi.c>
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
</IfModule>
<IfModule mod_fcgid.c>
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
</IfModule>
<IfModule mod_cgi.c>
RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
</IfModule>
ErrorDocument 500 “<h2>Application error</h2>Rails application failed to start properly”
みたいな感じに追記やコメントアウトしてもらえればOKな訳です。わかりにくいですかね・・・。
保存したら、それをサーバー上の
$HOME/framework/rails/redmine/public/.htaccess
に上書きします。
以上がファイルに編集を加える部分な訳です。書いていくとかなり長いですけど、やることはほとんどコピペなので、大した事ないんですよね~。
最後にサイトを公開するためにシンボルリンクの設定をします。
#サブドメイン設定で自動的に作られてているディレクトリをリネーム
mv $HOME/public_html/project.xxxxxxx.com $HOME/public_html/project.xxxxxxx.com_
#公開フォルダにシンボルリンク設定
ln -s $HOME/framework/rails/redmine/public $HOME/public_html/project.xxxxxxx.com
以上で設定完了です。
早速「http://project.xxxxxxx.com」にアクセスしてみてください。
「Redmine」のトップページが表示されると思います。
ページ右上の「ログイン」リンクをクリックするとログインページが表示されますので、ログインとパスワードにそれぞれ「admin」と入力してログインボタンをクリックしてみてください。
無事ログインできればインストール完了な訳です。
で、いろいろといじっていると、Subversionのリポジトリ設定がどうしてもうまくいかないということがわかりました。
この原因ですが、いろいろと調べてみると、CORESERVERにもともとインストールされているSubversionのバージョンが1.2.3と古いものが入ってりるのが原因ということがわかりました。
次回は、SubversionをCORESERVERにインストールし直して、同サーバー上のリポジトリファイルにアクセスする方法を紹介したいと思います。
14 2 月
いつの間にか年が明けましてました。気づいたらもう2月も中旬ですね。
昨年末から少々タイトなスケジュールのシステム開発がありまして、先月納品しサイト公開することができたのですが、その後処理でバタバタしていました。
まぁ、良くある話なんですが、仕様を固めきれないままのスタートでかつ納期2ヶ月みたいな感じの案件です。腕が鳴ります。
そんなこんなで、どおしても、作業進捗の管理やバグ管理などをもっとわかりやすくお客様に伝えたり、作業漏れ、確認漏れを減らすために、ある程度簡単に使えて、お客様にも見てもらえるようなツールがないかなぁと思っていた訳なんです。
ソースのバージョン管理には「Subversion」を利用していたので、たぶん、「Trac」というのがメジャーなんでしょうが、なんだか玄人っぽすぎて・・・。もうちょっとGUIほししなと。
そこで、「Redmine」というプロジェクト管理ツールが見た目もよさそうですし、「Subversion」との連携もできそうですし、開発もがんばっているようなので、これを導入しようという風に考えた訳です。
まずは、早速、ローカルのCentOSに、マニュアルなど見ながら導入してみたのですが、Ruby on Railsって触ったことなかったんですが、さくっとインストール出来ちゃいました。
素晴らし過ぎです・・・。
最近のこの手のツールの出来には、本当に、感動してしまいますね。手間いらず、Google先生にいろいろ相談しながらで、ほんと30分くらいで設定できてしまいますし♪
ただ、ローカルのCentOS上へのインストールでは、お客様と共同で利用とかはちょっと難しいので、やはり公開サーバー上にインストールしたい訳ですよね~。
そこで、普段から利用しているCORESERVERさんに入れさせてもらおうと思った訳なんですね。
で・・・、
ここからが本題なのですが、CORESERVERさんにはもともとRuby on Railsは入っていないので、まずはそれをインストールしなければなりません。
が、これが結構手間取ってしまったので、ちょっとまとめたいと思います。
みなさんは、問題なく、さくっと入りました??
一応インストールしたバージョンは以下の通りです。
Ruby 1.8.5 (CORESERVERインストール済み)
RubyGem 1.3.1
Rails 2.2.2
RubyGemとRailsは現行の最新バージョンかと思います。
早速、具体的な流れなんですが、まずは、PATH設定を行います。
#インストール用パス設定
vi ~/.bashrc
#————- パス設定内容 —————–#
export PATH=$PATH:$HOME/bin
export RUBYLIB=$HOME/lib:$HOME/lib/ruby
export GEM_HOME=$HOME/lib/ruby/gem
#————- パス設定内容 —————–##設定反映
source ~/.bashrc
PATHの設定ができたら、設定反映を行ってくださいね。
次にRubyGemsのインストールを行います。
流れとしては、ソースをサイトからダウンロードして、configして、installするといういつもの流れですので、下のコマンドそのままやってみてください。
もちろんダウンロードフォルダなどはお好みで変更してくださいね。
#####RubyGemsインストール#####
#ダウンロードファイル一時保存ディレクトリ作成
mkdir ~/temp
#ディレクトリ移動
cd ~/temp
#ソースダウンロード
wget http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz
#ソース展開
tar xvzf rubygems-1.3.1.tgz
#ディレクトリ移動
cd rubygems-1.3.1
#コンフィグ&インストール
ruby setup.rb config –prefix=$HOME
rehash
#バージョン確認
gem -v
このインストールではあまり起こらないとは思うのですが、負荷が大きい処理が原因なのかは定かではありませんが、CORESERVERさんは時々機嫌を損ねることがあるようで、Killedとかって止まっちゃうことがあるんです。
その場合は、もう一度、「ruby setup.rb config –prefix=$HOME」してみてください。
次にRailsをインストールします。流れとしては、RubyGemを利用して、自動インストールするような形になります。
とりあえず最新版をインストールする場合は、下のコマンドそのままやってみてください。
-vオプションでバージョンを選んでインストールすることもできるみたいです。
##### railsインストール #####
#RubyGem実行
gem install rails –include-dependencies
インストールが終わったら、RailsとRakeへのPATHを再度設定します。
#インストール用パス設定
vi ~/.bashrc
#————- パス設定内容 —————–#
export PATH=$PATH:$HOME/bin:$HOME/lib/ruby/gem/bin
export RUBYLIB=$HOME/lib:$HOME/lib/ruby
export GEM_HOME=$HOME/lib/ruby/gem
#————- パス設定内容 —————–##設定反映
source ~/.bashrc#バージョン確認
rails -v
インストール自体はこれで完了ですが、こちらも処理が重いのか、途中で「Killed」される場合があるかと思います。
その場合は、再度「gem install rails –include-dependencies」を行ってみてください。これだけ嫌がられるということはCORESERVERさん側としてもインストールさせたくないというこのだったら、すみませんな訳なんですが、何卒ご勘弁ください。
インストール事態は、PATH設定さえあっていれば特につまずくことがないと思います。
実際、私は結構こけてた訳ですが、一番は、先にRailsとRakeのPATHを通して行ったときにうまくいかなかったことがありました。僕のミスかも知れないのでなんともいえませんが・・・。
上記の方法でしたら、バージョン変わってなければ、間違いなく入ると思います。
また、Rails2.2.2では、RubyGemのバージョンも1.3.1でないとうまく動作しないようなので、とりあえず現行最新版のインストール方法として参考にしていただければと思った訳です。
次回は「Redmine」本体のインストール方法をまとめたいと思います。
17 12 月
エクセル使って簡単に「CSV」というセルのデータをカンマ区切りのデータを作ることができる訳ですね。
このCSV形式ってシステムとデータをやりとるするときに、かなり使われたりしますが、CSVのデータをPHPで作っているフォームとかからアップしてインポートしたときに、いい感じに、1文字目が文字化けしたりします。
結構前になりますが、やっぱり同じ現象にあって困ったことがありまして、その時にいろいろと調べたのに、案の定、忘れてしまっていたので、自分のメモリーの少なさに悲しくなってしまいます。
で、また、調べることになりそうなので、書き留めておこうと・・・。
日本語(SJIS)形式のCSVをUTF-8にエンコードしながら取り出そうとするとなぜか、データの1文字目が文字化けするというこの奇妙な現象ですが、そもそも、fgetcsvという関数に少々問題があるようです。
そこで、先人の神様がすばらしい関数をおつくりになられていらっしゃいました。
このfgetcsv_reg関数を利用させていただくと、あっさり解決してしまう訳です。
涙モノです!
15 12 月
さてさて、今年も気づけばもう年末になっていましたねぇ。
この時期になると
「ここ数年、息継ぎ!?の回数がどんどん減っているような気がするなぁ」
なんてしみじみ思ってしまうシガナイサラリーマンなんですねぇ、私も。不思議な習性です。
そんなマイナスな考えと対をなすのが、
「今年こそは、今年中の仕事をクリスマスまでに終わらせてゆっくり年を越したる!!」
という、実現可能なのか怪しい野望な訳ですが、少しでも野望実現のために、今日もコチコチ朝からパソコンの前に座っていた訳なんです。
先日、インストールしたばかりの頃に書き込みしたのですが、あれから結構いじっていたのでだいぶCakePHPにも慣れてきました。
まだ、高速にWEB開発できるレベルではない訳ですが・・・。
そんなさなか、今日はCakePHPでとんでもないことに気づき、すごくショックを受けたことがありました。
それは、「恐るべしCakePHPの命名規則」ということなんです。
まぁ、結論から言いますと、
「自分で作ったModelのファイル名がCakePHPで定めている命名規則に沿って付けていなかったために、システム内で無視されていたのにもかかわらず、ウソみたいにシステムがちゃんと動いてしまっていた。」
ということでして、まぁ、いつもの凡ミスなんですが気づくまで結構時間がかかってしまったんですねぇ。はぁ・・・。
そこで、なんともありがたいこんなサイトがあったのでご紹介します。
CakePHP 規約ワードメーカー WordMaker for CakePHP Conventions
このすばらしいサービスを利用させてもらえば、私のようにアホな話で躓くこともないので、大助かり!?な訳ですよ。
ここからは、今回のなんとも寂しい話ですので、お時間があれば読んでやってくださいませ。
そもそも私の癖として、DBを構築する際に、マスター系のテーブルに「mt_」というプレフィックスを入れてしまうんです。
これがいいのか悪いのか というのは別として、それをCakePHPでもやりたいなぁと思ったので、たとえば商品マスターのテーブルであれば「product」のテーブル名を複数形にするということもあるので、プレフィックスと合わせて命名してあげると、商品マスターのテーブル名は、「mt_products」という具合になるかなぁと思います。
そこで、CakePHPのモデルを作っていく訳なんですが、クラス名は命名規則に沿うと「MtProduct」となるので、ファイル名は「MtProduct.php」となるのかと思っていました。
ところが、このファイル名の命名規則がぜんぜん間違っていたために、システム側でせっかく作ったModelが認識されていなかったんです。本来は「mt_product.php」と命名するべきところを、何でこんなファイル名で正しいと思っていたのか・・・。
CakePHP1.2からは、Model用のファイルを用意していなくてもDB内のテーブル名がCakePHPの命名規則に沿っていれば、テーブル認識してしまうという優れたフレームワークとなっているために、この名前間違いに気づくこともなくシステムを作っていけてしまっていたんです。
そう、私の作ったモデル用のMtProduct.phpファイルはシステムからは無視されていたのです。ほぉ・・・。
正しい使い方ができれば、すごく早く作れるようになるんでしょうね。まだまだ、「CakePHP: the rapid development php framework」の超光速開発発想についていけておりません・・・。
話はもどります。
システムの作りこみも進んできて、そろそろ肥大化しつつあるコントローラを何とか整理したいという思いもあったので、モデル側に本来のモデル処理を追加していこうとした訳です。
たとえば、商品マスターからクライアントIDをキーとして商品データを取得する処理を、
$conditions = array(’conditions’ => array(’client_id’ => 1));
$order = array(’order’ => array(’sort’ => ‘ASC’));
$list = $this->MtProduct->find(’all’,array_merge($conditions,$order));
みたいにコントローラにグチャグチャ書いていたんです。3行くらいならまだいいんですが、他のテーブルとJOINさせたりするのにアソシエーションの設定とか書くと長くなりますし、繰り返し使うような場合なんかはやっぱまとめたいので、モデルに書きたいじゃないですか。
そこで、MtProductクラスに
function getProductList($client_id){
$conditions = array(’conditions’ => array(’client_id’ => 1));
$list = $this->find(’all’,array_merge($conditions));
return $list;}
という形で関数として追加して
$this->MtProduct->getProductList($client_id);
のようにコントローラで呼び出せたりすると、
「1行ですむし、コメント書いてもコントローラすっきりするからいい感じじゃあないですかぁ!?」
と思ってやってみてたんですが、どうしてもその関数を呼び出せなくて・・・。
試行錯誤すること半日くらい・・・。うぅ・・・。
まぁ、モデルのファイル名の付け方が、間違っているのでので、オリジナルの関数を使える訳がなく、当たり前の話なんですが、システム動いてしまってたんで、ファイル名が違うなんて、まさかの盲点となってしまい、こんな経験したくないほどの怒ハマリしてしまった訳です。
ファイル名修正してデプロイしたら、即効で「getProductList()」ちゃん使えるようになりました。
アソシエーションをコントローラのアクションで個別でしてたところも、モデルで持たせたので、コントローラのプログラムファイルすっきりです。これで、ようやっと、人に見せられるレベルになれた訳ですよ。
「マッピングファイル書かなくていいんだなぁ~♪ すごいんだなぁ~♪」
と思っていた理由、すっかり忘れてしまっていたというお話です。
30 11 月
毎週日曜日は、要領が悪い私としては、唯一のんびりできる日な訳です。
まぁ、なんというか仕事に諦めがつく日というか、「日曜くらいは休もう」という妥協日とでも言うか・・・。
人それぞれ、楽しみ方はあると思いますが、私の楽しみはテレビですかね。録画してあるといってもパソコンにデータ溜め込んでるんですけど、それを朝からのんびり見るのが日曜の日課な訳です。
えっ~と、そこまで、パソコンなの・・・?というのはイイッコなしです。
前置きはいいとして、毎週日曜日の18:30からTBSで「夢の扉」という番組があるのですが、これがかなり私のツボに入った番組でして、夢の実現のために、日々、努力されている方々が紹介されるので、感動したり、感心したり、モチベーションをあげてもらっていまして、なかなかいいんですよねぇ~。
今日は「氷感」という新しい冷凍!?技術の紹介でした。
長期間、鮮度を保ちつつ野菜やくだもの、魚、肉などの食材を保存するための技術で、保存後解凍してもほとんどというか全く!?鮮度が落ちないという技術なんですね。
この氷感技術のすばらしいところは、食材を鮮度を保って長期保存することができるので、野菜やくだもの、魚、肉などの大切な食材を痛めずに長く持たせることができれば、せっかくの食べ物を無駄にすることがなくなるということですよね。余ったもの、売れ残ったものをゴミにしないですむということは、最近テレビでも取り上げられていますが、国内需給率の問題にも何かつながるものを感じる訳です。
毎日コンビニさんから賞味期限切れのお弁当やパンなどが捨てられているそうですが、その辺、この技術で何とかなるといいですよねぇ。コンビニさんだって毎日捨てるのって勿体ない訳ですし・・・。でもこれ使っちゃうとお弁当屋さんが困ったことになるのかな?
番組中、寿司屋さんが寿司ネタを氷感で保存し、素材を大事に寿司をにぎっていらしゃるシーンがありましたが、こういうところに感動してしまう訳です。
今まで出来なかったことを実現することができる技術進歩って、すごいですし、「日本もまだまだ捨てたもんじゃない」と思います。
さらにこの技術、医療の分野でも、臓器移植の場では臓器の長期保存のための実験が進んでいるという紹介がありました。これが実用化されれば、医療現場でも大いに役立つ技術となることは間違いなさそうです。
そこで、少し興味もあったので、Google先生に聞いてみると、「CAS冷凍」という技術もあるそうです。技術的には双方とも凍結までの過程で、電磁波による水分子の振動を利用して、凍結時の水の膨張による細胞破壊をなくすという点ではほとんど同じですが、保存温度が若干違うようですね。
CAS冷凍さんは、見た目凍った感じに見えますが、氷感さんは完全に凍った感じには見えないですね。その辺が違うのかな?
CAS冷凍さんの方が先に特許を取得と、なるほど。
どちらも日本の企業が開発した技術ということで、テレビでも取り合えげられているようですね~♪
日本発の技術ってやっぱりすごいや!!
ちなみに、この「夢の扉」という番組は「docomo」さんが協賛だそうです。
30 11 月
朝起きたら、といっても昼近くでしたが、玄関に大きなダンボールがありました。
何だろうと思って宛名を見ると私宛になっている!?訳です。
Amazonでよく本は購入するので時々郵便物は来るのですが、こんな大きな段ボール箱は久しく見ていないし???
よく見ると会社の同僚からの郵便のようです。内容物は野菜!?となっている。
奥から、「お前宛ての郵便だったから受け取っておいたぞ~」と父の声。
そこで、部屋に持って行き、早速、送り主であるディレクターに電話をかけながらダンボール箱をOPEN♪
中から、立派で新鮮な大根さんと白菜さんが現れました。
こんなにも入っているとは思いませんでした。立派な白菜さん3個と大根さん3本が中に入っています。持ってくるとき意外と重いなぁと思っていたのですが、大感動です。送料だけでもかなりしただろうにありがとさんの気持ちでいっぱいです。
今年は、白菜さん50個、大根さん30本収穫できたとか。
無農薬で作ったとさらっと言ってくれますが、世話とか大変だったことだと思います。何せ私たち本業は農業ではなくWEB制作ですからね・・・。それでもここまで立派なお野菜が収穫できたのは、きっと、いろいろとスパーDが努力をしたからでしょう。
おぉっと白菜にナメクジさんがついているではないですか。無農薬ですね~。感動ですね~。
新鮮なうちに食べないともったいないので、お友達にもおっそわけすることにしましょう。うちの家族だけでは食べ切れませんしね。
今晩は、早速いただいたお野菜で何か作ってもらうことにしましょう。
来年は米を収穫ですか。ホホー♪
それは楽しみだ~♪
24 11 月
今までPHPの開発には、独自で制作したフレームワークを利用していた訳です。
ちょっとしたCMSやメールフォームなどであれば問題なかったのですが、うれしいことに!?だんだんと本格的なシステム開発の仕事を請ける機会も多くなってきたので、これまでも機能追加やバグを見つけては少しずつこのフレームワークのバージョンアップを重ねてきたのですが、一人ですべてをやっていくのはかなり骨が折れまして・・・。
一機能追加するたびに、そのチェックやらデバッグやらがもうテンヤワンヤで大変です・・・。
そこで、PHPで何かよさそうなPHPのフレームワークはないものかいろいろとサイトや書店で見て回ったりしていてようやくこれかなぁと思うものを見つけた訳です。
「CakePHP」というフレームワークな訳ですが、ちょっと見たところ、
という感じがしたんですね。
他にも「symfony」というフレームワークもよさそうだったんですが、こちらは、ちょっと大規模開発向けっぽかったのと、機能が豊富なのはすごくよいのですが、理解しないで使うと汎用的な開発ができにくそうだったので、いろいろと悩んだ結果、CakePHPを今後使っていくフレームワークとして選択した訳です。
まぁCakePHPの詳しい内容はフォーラムはオフィシャルサイトにお任せするとして、いろいろと試しながら導入したのですが、早速、かなりてこずったので解決方法をご紹介します。
動作環境と設定内容は以下のような感じです。
追加設定:Smary動作用にSmartyViewクラスとSmartyViewExクラスを導入
文字コード:CakePHP、MySQL、テンプレートHTMLすべてUTF-8
まずは、いつものことながら、日本語の文字化けがおこったんですね。なんでPHPっていつもこうなのかなと思うのですが毎回この手の文字化けに数時間悩むことになるので自分でフレームワーク作って使っていた訳なんですがそういっても仕方がない・・・。
システムもDBも出力HTMLもすべてUTF-8に設定しているのになぜかなぁと思っていろいろとしらべていたらDBへの接続エンコードを設定することができるようなのでそれを試してみました
var $default = array(
‘driver’ => ‘mysql’,
‘persistent’ => false,
‘host’ => ‘localhost’,
‘login’ => ‘root’,
‘password’ => ‘admin’,
‘database’ => ‘ondemand_db’,
‘encoding’ => ‘utf8′, // <- エンコード設定
‘prefix’ => ”,
);
え~っと、これで文字化けは解消できた訳です。
それと、私だけかも知れませんが、ローカルPC(WindowsXP)上でCakePHPが動きが以上に遅いんですね。CakePHP 1.2 になってからの他のバージョンって設置したことがないのですが、CakePHP 1.1はもう少し早かったような気がします・・・。
そのままだとPHPの処理時間をオーバーしてしまったりして、まったく表示されないので、こちらもいろいろと調べまわったところ、重複してクラスファイルを読み込んだりしている部分がCakePHP 1.2 ではまだまだあるらしく・・・。
何も考えずに1.2使っていたんですが、そもそもまだ安定版ではないんですね~。でも1.1とはだいぶ記述方法も変わっているみたいだし今後の開発を考えると、旧バージョンで制作するのもあれなんですようねぇ、あれ・・・。
でとりあえずの解消方法ですが、
1./app/config/core.phpの記述を変更
Configure::write(’debug’, 2); ⇒ Configure::write(’debug’, 0);
2./cake/bootstrap.phpの記述を変更
App::import(’Core’, array(’Dispatcher’));
⇒ require CORE_PATH . ‘cake’ . DS . ‘dispatcher.php’;
多分2番の方のもともとの記述だと、余計なフォルダも探しに行っているようなので、安定版ではこの辺の重複読み込み処理を何とか改善していただければいいなぁと思っている訳です。無料で利用させていただいているのでえらそうなこと言うと起こられちゃいますかね。
サーバーに上げてあげると高速に動いちゃうんで、この解消法も邪道かなと思ってしまうわけですが・・・。
23 11 月
久しぶりの更新になってしまった訳ですが、WordPressのアップグレードをしましたのでついでに書き込みします。
2.6.3に♪
今回は前回の失敗も踏まえて、DBとサイトデータの全バックアップを行ってから、新しいファイルをアップロードし、upgrade.phpを実行しました。
特に何も問題なく完了したようです。
新しいものはいろいろと便利になっていますねぇ~