2006年1月31日火曜日

[エクセル関数] INDIRECT

INDIRECT関数とは、「文字列として入力したセルの番地や範囲名を、計算式で参照できる形に変換する。参照先を間接的に指定し、切り替えられるようにできる」というもの。
たとえば
・セルA1に「ほげ」と入れる
・セルB1に「A1」と入れる
・セルC1に「=INDIRECT(B1)」と入れる
するとセルC1には「ほげ」と表示される。
GoogleでINDIRECTで検索するといろいろと参考になるページが出てきます。

2006年1月28日土曜日

Smarty&PEAR講習会

会社でSmarty&PEAR講習会(超初級向け)をやりました。
自分のスキルレベルで講習会をやるなんて恐れ多いわけですが、とりあえずレジュメとサンプルコードを公開してみたいと思います。



〓Smarty〓
<概要>
・PHPのテンプレートエンジン
・楽天でも使っているというウワサ
・アプリケーションのロジックとデザインの切り分けが可能
*.php -> ロジックのみ
*.tpl -> デザインとコンテンツのみ
・速い
・変数の修正子(date_formatとか)
・フィルタ
・キャッシング
・HTMLとphpコードの切り分けが可能
  ↓ ↓ ↓
 ソースの可読性が高まる
  ↓ ↓ ↓
 バグ発生の確率が減る!
 (ファイル数は増えちゃうけど。。)
echo "<a href=\"" . $url . "\">" . $linktext . "</a>";
 ↓ ↓ ↓ ↓ 
<a href="{$url}">{$linktext}</a>
<サンプルコード>
smaSample.php
smaSample.tpl
<メモ>
・Smartyを継承したクラスを作っておくと楽。Googleで「MySmarty」で検索
・テンプレートの文字コードはUTF-8かEUCを使う。SJISはダメ!
・Smartyマニュアル(http://sunset.freespace.jp/smarty/)。困ったらここを見る
・[書籍]Smarty入門
〓PEAR〓
<概要>
・PHPのライブラリ集
・Perlで言うCPAN
・読み方は「ぺあー」
・エラーハンドラが便利
・使いこなせば工数大幅削減
・ライブラリ豊富
<主なライブラリ>
◆横綱
HTML_QuickForm
◆大関
DB
◆三役
HTTP_Download
Log
◆その他(まだ使ったことない)
Auth
HTTP_Request
XML_RSS
HTML_Menu
Services_Amazon
<サンプルコード>
QuickFormSample.php
QuickFormSample.tpl
<メモ>
・[書籍]PEAR入門 (とりあえず買うべし!)

2006年1月25日水曜日

Googleから振込が!

Google AdSense アカウントの非承認以来、失意のドン底。
。。。
そして、心の傷が癒えつつあった年明け正月3日、銀行の残高照会をしてみると、ななんと、、、Googleから12,630円の振込が!!!どうやら、アカウントが非承認になる直前に振込手続きが行なわれていたらしい。ラッキー♪
不幸中の幸い、地獄に仏とはまさにこのこと。Adsenseが使えないのはイタイけど、ちょっとしたお年玉でした。いやぁ、よかったよかった。

2006年1月18日水曜日

MovableTypeのGoogle API キー

MT3.2にアップグレードしたら、いくつか見慣れない機能が見つかる。「Google APIキー」というのが気になって調べてみた。
http://www.sixapart.jp/movabletype/manual/mtmanual_weblog_config.html#basic_config_others
http://www.hatayan.org/weblog/archives/2003/08/28/030825.php
さっそくGoogleAPIキーを登録し、MTに仕込んで使ってみた。
キーワード「司馬遼太郎」での結果↓
"><$MTGoogleSearchResult decode_html="1" property="title"$>

。。。なんか中国語のサイトがいっぱい出てきてしまった。言語はどうやって指定するんだろう。。

さらば、Zopeよ

ここ最近サーバーの調子が悪く、何度か再起動をしていたら
Error: The object named by "DBTab.ClassFactories.autoClassFactory" could not be imported
というエラーを吐いて、Zopeが起動しなくなってしまった。ググってみても日本語ページにはほとんど情報はない。がんばって英語ページも少し見てみたものの、どうもこのエラーは簡単には直らなさそうな感じ。。。
そんなわけで、思い切ってZopeをあきらめることにした。
まあ、ポート8080で旧コンテンツとして残しておいただけなので特に問題はない。放置し続けるとセキュリティホールになるリスクもあるのでちょうどいい機会かもしれない。
とりあえず別サーバーでZopeを起動し、wgetでコンテンツをすべて静的HTMLで保存。多少の調整をしつつコンテンツをすべて http://kawama.jp/02_04/に設置して完了。
Zopeはけっこう勉強したんだけど、結局日本ではぜんぜん普及しなかった。
ウェブアプリケーションサーバーとして、CMSとして、開発環境として、、、Zopeはウェブの統合プラットホームという意味で非常に優秀だと思うんだけど、「なんでもできる」のが逆にとっつきにくく感じられてしまっているのかもしれない。
でも、なにかの拍子で一気にブレイクする可能性もあるので、今後もちょくちょくチェックしようと思います。

2006年1月17日火曜日

PentiumとCeleronの差

仕事で数百KBのテキストファイルを20個ほど、秀丸の「全閣下」というマクロで半角カナ→全角カナ変換する、という作業をした。処理を早めるためにPentiumMのノートPCとCeleron2GhzくらいのデスクトップPCでそれぞれ処理をしたのだが、、、
。。。Celeronの処理が遅い。PentiumMの10分の1くらいの処理速度だった。結局Celeronマシンはほとんど役に立たず、9割くらいPentiumマシンで処理する結果になった。
普段PCを使っていてもPentiumとCeleronの違いはあまり実感しないけど、こういうところで差が出るんだなぁ、と勉強になりました。

2006年1月15日日曜日

memtest86

サーバーの調子が悪い。非常に悪い。
症状は、
・OSを起動してから数時間~数日経つと、何の前触れもなくサーバーが劇的に重くなる
・重いけれど、フリーズはしない
・重い間は、時計が止まる(dateコマンドで確認しても、時間が止まったまま)
・ログには特に何も残っていない
という感じ。この状態になるともうどうしようもないので、電源を切るしかない。。。
いろいろな可能性を検討してみた結果、どうもメモリがおかしいような感じだったので、memtest86というソフトでメモリチェックをしてみた。
http://www.memtest86.com/
memtest86でテストするときはメモリは1枚差しにしたほうがいいようです。うちのサーバーはメモリ2枚差しなので、1枚ずつテストしました。
で、テスト結果は、どちらも問題なし。。
その後メモリを差し直してサーバーを起動してみたところ、とりあえず問題なく1週間連続稼動中。
結局何が原因だったかはよくわからないまま。メモリがしっかり差さってなかったんだろうか。。もうしばらく様子を見てみます。