ゼブラ柄、ストライプ柄のテーブルを描写します。cycle 関数を使うと便利。
<table> {foreach from=$hoges name=hoge item=h} <tr style="background-color: {cycle values="#ccc, #fff"};"> <td>{$h.name}</td> <td>{$h.value}</td> </tr> {/foreach} </table>
mod_rewrite を使って特定の IP のみアクセスさせる、もしくはアクセスさせないようにするには以下のようにする。
RewriteCond %{REMOTE_ADDR} ^192\.168\.0\.1$ [OR] RewriteCond %{REMOTE_ADDR} ^192\.168\.0\.2$ RewriteCond %{REQUEST_URI} !^error\.html RewriteRule .* error.html
RewriteCond %{REMOTE_ADDR} !^192\.168\.0\.1$ RewriteCond %{REMOTE_ADDR} !^192\.168\.0\.2$ RewriteCond %{REQUEST_URI} !^error\.html RewriteRule .* error.html
久しぶりに最近ネットセキュリティについて触れることが多くなり、 iptables だの chkrootkit だの snort だの tripwire だの nessus だのと色々いじってる。しかも結構楽しい。
今後のブログネタはしばらくこの線で行こうかな。
その第一弾ってことで mod_security のインストールから設定までのメモ。
modsecurity はフリーの Web アプリケーションファイアーウォールで、 Apache のモジュールとしてインストールする。
Apache のリバースプロクシにインストールしてもいいし、 Web サーバと共存させて動作させてもいいっぽい。
とりあえず今回は Web サーバと共存の形で CentOS 4 にパッケージでインストールした。あとで CentOS 5 にもソースからインストールする予定。
環境
毎回調べてる気がしたので、メモ。
Proftpd の認証に時間がかかる場合、以下の二行を proftpd.conf に追加。
UseReverseDNS off IdentLookups off
最近 Safari の Windows バージョンが出て、ものすごくいかすんだけど、なんか知らないけど、言語が強制的に日本語にされてしまい、それを変える方法がメニューには見当たらない。
ネットを探したらやり方がのっていたのでメモ。
Safari のバージョンは 3.1 です。
Salesfoce のオブジェクト View ページは、デフォルトでアイテムを選択するチェックボックスは付いているものの、それに対するアクションが全くない。選択したアイテムを全削除したかったのにそれすらできない。
これを実現するには Custom button を作成して、 JavaScript で処理しないと駄目らしい。
とりあえず、初めの一歩という事でメモ。
環境は以下の通り。
Salsforce 8 Enterprise
ajax toolkit 11.1
vsftpd でドットファイルを表示させるには、 /etc/vsftpd/vsftpd.conf で force_dot_file を有効にすればいい。
例は CentOS-5.1 。
# vi /etc/vsftpd/vsftpd.conf
force_dot_file=YES
PHPでアップローダーを作るときに、プログレスバーをどうにか実装できるか調べたら、どうやらできるっぽかったので試してみた。
ちなみにできると言っても制約がいくつかあるみたい。まず第一に、 PHP 単体ではファイルのアップロード状況を把握したりすることはできない。そのため PECL APC エクステンションをインストールする必要がある。
また PHP のバージョンは 5.2 以上。 PECL APC エクステンションのバージョンは 3.0.13 以上。
そのため、うちの CentOS5 も FC6 もパッケージでは対応できなかった。
環境は以下の通り。
php-5.2.5
PECL APC-3.0.16
※追記
実はこの APC はスレッドセーフじゃないらしく、一つのアップロードが完了する前に次のアップロードが開始されると、現在進行中のキャッシュがクリアされるらしいので注意。
<asp:TextBox> コントロールは動的に <input> と id 属性を生成してしまうため、 <label> の for 属性には静的な値は指定できない。
これに対応するにはやり方は二つ。
<asp:Label ID="lblName" AssociatedControlID="tbName">Label name</asp:Label> <asp:TextBox ID="tbName" runat="server"></asp:TextBox>
<label for="<%=tbName.ClientID %>">Label name</label> <asp:TextBox ID="tbName" runat="server"></asp:TextBox>
PHPでファイルアップロードのプログレスバーを実装するにはに関連して、 Ajax を使ってファイルアップロードを実装してみた。
今までは Ajax 関連は prototype.js を使っていたんだけど、 multipart なデータの post に対応していないので、パッチを当てたりしないと実装できないらしい。
そんな面倒くさいことはしたくないので、ちょっと探していたら YUI(The Yahoo! User Interface Library) は対応しているっぽいのでそれを使ってみた時のメモ。
YUI は何気に cool だ。
Visual Studio 2005 では Setup プロジェクトっていうのがあるんだけど、これは標準のプロパティではアップデート可能はインストーラにならない。
でも Setup プロジェクトのプロパティを変えるだけで簡単に変えられる。
セットアッププロジェクトのプロパティを選んで以下の作業を行う。
CSS を使って a タグに背景を指定して、 hover で画像を切り替えるような事をよくするんだけど、 IE6 上だと何かチカチカしてスムーズに切り替えを行ってくれない。
これをどうしたらうまい事切り替えてくれるのかを調べたときのメモ。
解決策は驚くほど簡単なんだけどね。
最近知ったんだけど、 PNG 画像の Transparent 部分って IE6 ではきちんと透明に表示されないらしい。
これをどうにか FF とか他のブラウザでも表示されるようにしながら対応する方法。
基本的なやり方は CSS で background と filter を使って、以下のようにすれば表示はされるようだ。
background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/hello.png',sizingMethod=scale); width: 160px; height: 120px;
でもこれだけじゃ当然 FireFox では表示されない。じゃーどうするか。
Proftpd はいくらクライアント側で List オプションに -a をつけてもドットファイルなどの隠しファイルを表示してくれない。
これを表示するようにするには、サーバ側の ListOptions を変更する必要がある。
# vi /etc/proftpd.conf
ListOptions -a
.NET でカスタムイベントを UserControl に追加する方法を何度か調べている気がしたので、まとめておく。
たしか .NET 2003 のときは結構面倒くさかった気がしたけど、今はクラスに event handler 定義するだけでプロパティパネルにも簡単に表示させることができるんだね。
とりあえず環境
VisualStudio 2005 C# .NET
Plesk で php 関連の作業していると、必ずといっていいほど毎回 open_basedir とか safe_mode のエラーではまり、その度に解決策を探しているので、とりあえずメモっておく。
今回の Plesk 環境は以下の通り。
Fedora Core 6
PSA-3.2.0
任意のテキストを、指定した幅に改行無しで一行に表示させたい時に、 JavaScript でフォントのサイズを変化させて実現する例。
<span id="scaled" style = "white-space: pre;">ここに動的に変化するテキスト</span>
Prototype.js 使ってます。
function fitFont() { var fs = 40; // 標準フォント var fw = 300; // max width Element.setStyle($("scaled"), {"font-size": fs + "px"}); while( true ) { if( Element.getWidth($("scaled")) > fw && fs > 1) { fs -= 1; Element.setStyle($("scaled"), {"font-size": fs + "px"}); } else { return; } } }
GridView を使用してやる方法です。
GridView を使って Excel にエクスポートすると、どんな形式のクエリでも書式でもうまいことできるのでとても便利。
とりあえず環境
VisualStudio 2005
ASP .NET C#
簡単な手順
1) GridView と SqlDataSource を追加する
2) Select したいクエリを SqlDataSource に指定する
3) GridView の Columns を適切に追加したり書式とか整理したりする
4) GridView の RenderControl で出力してやる
これ見ても分からんのでコードを見るのがいいと思う。
Flash から JavaScript の関数を呼んだり、 JavaScript から Flash の関数を呼んだりしたいことがかなりあって、どんな方法があるのか調べたときのメモ。
ただ単に呼び出す方法が分かっても、JavaScript と Flash のロードし終わるタイミングなんかもあって色々と厄介だったのでその辺の回避方法もついでに書いておく。
Flex で何かと使える TitleWindow をマウスで普通のウインドウみたいにリサイズを可能にしてみた。
そもそもなぜこのコントロールはこんなに中途半端なんだろう。クローズボタンはあるのに。
基本 MouseEvent を拾ってるだけ。
その時のソース。