WEB/システム/IT技術ブログ

PHPからsmartyのテンプレートへ値を渡す場合に、めんどくさいからDBから取得した配列をPHPで加工せずにそのまま渡したい、といった場面がしばしばあります。加工というのは、文字列の操作や改行、文字コードの変換など簡易レベル。

そんな時、smartyテンプレートにPHPの関数を直接書いたりします。例えば以下の処理は、

$str = mb_substr($str, 0, 10);

smartyのテンプレート上で以下のように表現できます。

{$str|mb_substr:0:10}

つまり、以下のルールに従えばPHPで使える関数が、テンプレート上でそのまま利用できるというわけです。

{(第一引数)|(関数名):(第二引数):(第三引数):(第四引数):...}

Voralent Invidiのアートワーク取得機能がいい感じです。
Voralent Invidi – http://www.voralent.com/products/invidi/

voralent.jpg

音楽ファイルの管理にiTunesを使っている方も多いでしょうが、私も重宝している一人です。管理機能の中でもアートワークはその音楽のジャケットをビジュアルで見せてくれるので、わかりやすい。

Webサイトに「favicon」を設定することがスタンダードになってきているようです。

faviconとはブラウザのタブ、もしくはURLの先頭のほうに表示される、そのサイトオリジナルの画像アイコンのことです。もともとは「favorite icon」だったようですね。

私も早速、このサイトに設置してみました。

画像サイズは16×16、または32×32が一般的のようです。gifやpngで作成した画像を以下のサイトで拡張子「.ico」の形式に変換します。
Favicon Generator – http://favicon-generator.org/
そのほかにもfaviconを作成する専用サイトはいろいろあるようです。

PHPで文字列操作によく使うsubstrですが、しくみは単純ですが少し掘り下げてみるといろいろとできることに改めて関心しました。

まず、通常のように

echo substr("ABCDEFGHIJ", 5);

の結果は「FGHIJ」

echo substr("ABCDEFGHIJ", 2, 3);

の結果は「CDE」となります。

第一引数で処理対象となる文字列、第二引数で切り出す位置、第三引数で切り出すサイズを指定するんですね。ここで一歩踏み込むと

echo substr("ABCDEFGHIJ", -3);

の結果は「HIJ」

echo substr("ABCDEFGHIJ", 5, -3);

の結果は「FG」となります。これは「substr(“ABCDEFGHIJ”, 5)」の結果が「FGHIJ」なのに対して、末尾の3文字「HIJ」を差し引くことになるんですね。

このようなサイトを見つけました。
ie6 no more – http://www.ie6nomore.com/

以前から、何度もこのブログで書いているとおり、ie6は開発者泣かせのブラウザです。というのもバグが多すぎます。
ホームページの構築において、1時間で終わる作業が、ie6のバグのおかげで2~3倍、ひどいときには一日中時間を費やすこともあります。その他にも、公開直前のサイトから「ie6でレイアウトが崩れている」との指摘を急遽受け、対応を迫られたり。

「技術者として足りていない」と言われればそれまでですが。。。
しかし、生産性が悪くなることがあっても、良くなることは決してありません。ie8がリリースされた今、10年前にリリースされたie6に将来性はありません。

そんなブラウザ、さっさとなくなってしまえばいい!とお思いの方は多いはず!

ということで、私も「ie6 no more」のサイトに賛同いたします。該当サイトのタグを、このブログにも貼らせていただきました。ie6で見てる方には、そのメッセージが見えるはずです。
さぁ、メッセージが見えている方々、最新のブラウザをゲットしましょう!

よくひっかかるので、メモを残しておきます。

開発用に自身のPCにxamppやApacheをインストールしています。もちろんポートはデフォルトで80番ポートを使用しています。それが、Skypeをインストールしたと同時に、Apacheが起動しなくなります。Apacheのログを見てみると

(OS 10048)通常、各ソケット アドレスに対してプロトコル、ネットワーク アドレス、またはポートのどれか 1 つのみを使用できます。  : make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down

原因はSkypeがデフォルトで80番ポートを占有するためです。

これを解決するにはSkypeのポートを変更します。
Skypeの「ツール」⇒「設定」から設定画面を開き、「詳細」⇒「接続」から「上記のポートの代わり、ポート80を使用」のチェックを外します。

私は、いまだにOffice2000を使っています。今回、OSをWindows7にしたのですが、Office2000がWindowsVista以降は対応しないみたいです。

Web で検索してみると、Vistaや7で動作したという記事を見かけたので、試しにWindows7にOffice2000をインストールしてみたのですが、やはり、「予期せぬエラー」などで突然落ちたりします。お隣にあるVistaマシンにもインストールしてみましたが、現象は異なりますが、Excelがフリーズしたりと不具合がちらほらと。
結局は使えないということですかね。

幸いにもWindows7のハードウェアがWindowsXPモードに対応していたので、早速試してみました。
Windows Virtual PC – http://www.microsoft.com/windows/virtual-pc/

上記、マイクロソフトのページより「Get WindowsXP Mode and Windows Virtual PC now」をクリックします。
Widows7の種類と言語を選択して、「WindowsXP Mode」⇒「Windows Virtual PC」の順でダウンロード、インストールします。

インストールが完了したら、WindowsXP Modeを起動して、Office2000をインストールします。Windows7でインストールしたアプリケーションは、WindowsXP Modeで起動させることはできず、再度、XPモードでインストールする必要があるみたいです。

そうしたら、無事、XPモードでOffice2000を起動することができました!

そろそろOfficeを買い換えればいい話ですよね。分かってるんですけど、Office高いんです。。。

Webページのコーディング、 度々、ie6の崩れに悩まされています。
今回もクライアントにie6の崩れを指摘され、ハックも禁止という条件の中、ie6に合せたコーディングに再調整し、さらに全てのブラウザで再確認。1時間で終わるはずの作業が4~5時間かかってしまいました。。。

先日、見かけた記事
IE6/7/8でWebサイトの見栄えを見比べ「Microsoft Expression Web SuperPreview」
初めは「とうとう当のマイクロソフトが問題解決に乗り出してくれましたか」という印象でした。ie6のおかげで制作サイドの生産性が阻害されているわけですから、マイクロソフトにie6のバグ解消に動き出してほしいという思いがありました。ここにきて、やっと検証ツールを出してくれました。

これまでにも、「IE Tester」などの検証ツールがありましたが、ie6本体と比べてみると見え方に差があることもあり、完全な検証は不可能という判断で、使わないようにしてきました。
今回の件で、早速「Web Superview」を使ってみようと。。。!?

ie6で崩れているところが、Superviewでは崩れていない?むしろSuperviewはIE Testerと同じ見え方してる!?

結局、ie6で見るまでは分からないということですね。残念ですが仕事上、SuperviewもIE Tester同様に検証にはまだまだ不十分のようです。

ウイルスバスター トレンドマイクロ・オンラインショップ

今回は「iptables」コマンドを使ってサーバマシンのファイアウォールを構築します。
iptablesを使うことで、さまざまなパケットフィルタリングの設定を行うことができます。

例えば、
・サーバ自身から外部への接続を許可する
・外部からのPINGを受け付ける
・外部からのSSH接続を受け付ける
・外部からのDNS問い合わせを受け付ける
・外部からのHTTP接続を受け付ける
・外部からのSVN接続を受け付ける
・外部からのSAMBA接続を受け付ける
・上記以外の通信を一切許可しない

といった細かい設定が可能です。

iptables自身はコマンドなので、実行しなければ有効となりませんが、サーバを起動する度にこのような細かい設定をするのはめんどくさいので、シェルスクリプトを用意して、起動時に実行するようにしておくとよいでしょう。
例えば、起動時に設定が有効になるように、今回は「/etc/network/if-pre-up.d/set_iptables」にコマンドを記述します。
上の箇条書きの設定をする場合、具体的なファイルの中身は以下のようになります。

今回は、前回
ubuntuでbind9インストール – http://blog.he-ron.jp/2009/12/ubuntubind9.html
の続きでbind9の設定です。

前提として、以下の環境の構築を想定したとします。
・ネットワークアドレスが「192.168.1.x/255.255.255.0」
・デフォルトゲートウェイが「192.168.1.1」
・開発環境「192.168.1.2」にドメイン「xxx.dev.lc」を割り当てる(xxxは任意)
・DNS自身のIPアドレスは「192.168.1.3」

まず「/etc/bind/named.conf.options」を開き、「xxx.dev.lc」以外は通常のDNSを参照しにいくように、転送設定を追記します。

Monthly Archives