『こぶたのラッパ』はサイトを移動しました!
今後はこちらをどうぞ
カテゴリ:Webサイトシステム( 10 )

2008年 03月 16日
『価格.comでDellより安く自作PCを作ろう!』を作ったので、誰かパーツを選んでください。
価格.comでDellより安く自作PCを作ろう!という自作PC用のパーツ選択サイト(というかページ)を作りました。
選択できるパーツは、CPU、CPUクーラー、マザーボード、メモリ、ビデオカード、サウンドカード、HDD、DVDドライブ、PCケース、電源ユニット、OSの11種類です。
選択したパーツは、「このページのURLを保存」でブックマークすることができます。


以前間違えて買ったメモリ
を有効活用すべく、今年は試しにPCを自作しようと思っているのですが、いかんせんハードはまったく不得手なので、もし詳しい人がいれば良い組み合わせをおすすめ下さいませ<(_ _)>

ちなみにこのリンク↓を開くと、2008/3/16現在の一番人気パーツによる組み合わせを確認できます。
価D安自作PC(166,438円 -2008年2月16日現在)
c0007274_15273743.jpg


本気で私におすすめしてくださるという奇特な方のために・・・

<希望スペック>
・OSはVistaにしてみようと思っています
・メモリは不要です(間違って買ったDIMM DDR2の1GBx2=2GBを使用予定)
・ディスプレイ、マウス、キーボードは不要です
・ゲームはしませんが、VistaのAeroは試してみたいです
・よく使うソフトはEclipseとIllustoratorです
・希望予算は10万円くらいです

もういちどよろしくお願いします。<(_ _)>ペコリ
[PR]
by smilkobuta | 2008-03-16 15:37 | Webサイトシステム

2008年 02月 02日
君も未来のハッカー? XSS Challengesが熱い!
yamagata21さん作成のXSS Challengesが熱いです!

c0007274_20445558.jpg

問題の画面は↑のような感じ。
例えば一問目の答えは「<script>alert(document.domain)</script>」(Exiteブログの制限で全角文字にしています)です。
全部で18問クリアできれば、有名どころ?のXSSを学ぶことができますよ。

最後の17問と18問をクリアできたときには「いっっやったーーーー」と叫んでしまいました。

おかげさまでこれまでインストールしていなかったツールも2つインストールして、使い方を学ぶことができました。
この勉強スタイルは癖になるかも・・・

便利だったのは次のツールでした。
特に17問と18問はFiddlerなしにはクリアをあきらめたかも。

Web Debeloper(Firefox用アドオン)

IE Developer ToolBar(IE用拡張機能)

Fiddler(プロキシ兼デバッガ)
[PR]
by smilkobuta | 2008-02-02 21:01 | Webサイトシステム

2007年 01月 24日
HTML Tidyの旧バージョン
よそ様のWebサイトのデータを元に勝手に二次サービスをすることは、そのWebサイトで許可されていない限り行わないでください。

と一言書いておいて、本題です。

拾ってきたhtmlを元に必要なデータを抽出しようと思う場合、それがvalidなhtmlでない場合はデータをつまみ出すのに結構な手間がかかります。
そんなときにHTML Tidyというツールを使って、綺麗なhtmlデータに作り直すことが出来ます。

ただ、そんな便利なTidyも、あまりにひどいhtmlの場合には次のようなメッセージを吐いて終了してしまいます。

This document has errors that must be fixed before
using HTML Tidy to generate a tidied up version.
----
(直訳)このドキュメントには、HTML Tidyで整形する前に修正が必要なエラーを含んでいます。


そんなの無視してある程度でいいから出してくれーと思うのですが、そういうオプションは用意されていないようです。

・・・実はそんな時は、古いバージョンのTidyを使うと動いてくれるかもしれません。
Internet Archiveこのページに、2000年8月4版のソースが残っていましたので、これを使って私のほしい結果を得られました。

ありがとう!Internet Archive!
ありがとう!HTML Tidy!
ありがとう!変なhtmlのWebサイト!
[PR]
by smilkobuta | 2007-01-24 15:54 | Webサイトシステム

2007年 01月 23日
IEのチェックボックスがJavaScriptでチェックできない
JavaScriptのcreateElementで作ったチェックボックスの「checked」属性を、window.body以下にappendする前に「true」にしても、チェックがつかない模様。

[検証用ページ]
http://hello.lumiere-couleur.com/code/html/checkbox_ie.html

以前はこういうことはなかったように思うのですが・・
念のため他のブラウザでも確認したところ、IEはIE6もIE7も同じでした。

IE6:
c0007274_12265647.jpg


IE7:
c0007274_122784.jpg


Firefox2:
c0007274_12271424.jpg


Opera:
c0007274_12272025.jpg


なんでだろう・・・
append後の変更は反映されます(当然か)
[PR]
by smilkobuta | 2007-01-23 12:28 | Webサイトシステム

2006年 11月 23日
MVCアーキテクチャ:ビューの継承
教育基本法改正法案がようやく参議院で審議入りしたのに、やらせとか日の丸とかどうでもいいところだけ盛り上がっているのを見ていると、ますます寒さを感じる今日この頃です。
----

ビューの継承の「ビュー」とは、Webシステムの一般的な設計モデルであるMVCのVのことです。

最近私が気に入っている設計方針は、ビューの共通要素(ヘッダー、メニュー、フッターなど)を毎回インクルードするのではなく、共通要素全体を1枚のテンプレートとして管理し、中身のコンテンツだけをページごとに個別ファイル管理する方法です。

<共通要素のインクルード方式(おそらく一般的な方法)>
c0007274_12395676.gif


<ページ全体テンプレート形式(こっちが最近お気に入りの方法)>

c0007274_124049.gif


ちょっと図がごちゃごちゃしてしまいましたが、要するにブログの新規エントリーを作るかのように、新しいページを作る時にはコンテンツ(図の『ソースB1』)だけを用意し、ヘッダーやメニューやフッターといった共通要素込み込みのテンプレート(図の『ソースB2』)にはめ込むということです。

テンプレート、もしくはプロトタイプという言葉が一番しっくりきそうですが、なんだか人に説明しづらい(間違って理解されそう)ので、ビューの継承と呼んでいます。

はめ込み処理はもちろんコントローラー(MVCのC)で行うのですが、具体的な方法は使用する言語やフレームワークによって最適な方法が異なると思いますので、そこはまあ適当に・・

この方法を持ち込むのに一番大事なのは、デザイナーさんのデザイン設計思想をきちんと確認し、こういう仕組みで実装するんですよということを伝えておくことだと思います。ってこれは今回の仕組みに限らないですね。
[PR]
by smilkobuta | 2006-11-23 12:58 | Webサイトシステム

2006年 10月 08日
PHPでRTF出力
必要があってPHPからRTF出力(テンプレートRTFに「<?= $hoge?>」で出力)をしようと思ったのですが、「十」や「ソ」が文字化けするといういつもの問題が発生。
RTF独特のフォーマットに文字列を変換する必要があるようですが、RTFの仕様がよく分からないは、既存のライブラリはなんだか動かないはで、結局自作することにしました。

下のget_rtf_text関数がそれですが(ほかの2つはget_rtf_textから呼ばれる)、RTFの仕様を一切見ずに書いたものですので、この関数を使おうとして「動かないよ」ということになっても知りません。
私の必要には事足りたのでのっけておきます。

    function get_rtf_text($str) {
        $str = get_unicode_ascii($str);
        $str = str_replace("\n", "{\n\\par}", $str);
        return $str;
    }

    function get_unicode_ascii($str) {
        $ret = '';
        $code = 'UCS-2';
        $str = mb_convert_encoding($str, $code, 'EUC-JP');
        for ($i = 0; $i < mb_strlen($str, $code); $i++) {
            $char = mb_substr($str, $i, 1, $code);
            $char2 = mb_ord($char);
            if ($char2 == 10) {
                $ret .= "\n";
            } else {
                $ret .= '\u' . $char2 . "\\'83\\'69";
            }
        }
        return $ret;
    }

    function mb_ord($char){
      return (strlen($char) < 2) ?
        ord($char) : 256 * mb_ord(substr($char, 0, -1)) + ord(substr($char, -1));
    }

※2007/5/7 ちょっと修正


適当なRTFをWordで作って地道に解析した結果ですが、文字ごとに「\\'83\\'69」を後ろにくっつけるなど、私自身もよく分からない処理を行っています。
RTFわけ分からないです。

■PHPからRTF出力
//事前に「template1.rtf」を作り、
//その中に<%= $text1%>などと埋め込んでおく。
    $text1 = '埋め込みテキスト';
    $text1 = get_rtf_text($text1);
    header('Content-Type: text/rtf');
    header('Content-Disposition: attachment; filename=ドキュメント.rtf');
    mb_http_output('SJIS');
    ob_start('mb_output_handler');
    include('template/template1.rtf');

[PR]
by smilkobuta | 2006-10-08 15:56 | Webサイトシステム

2006年 09月 30日
世界の片隅で.jgzと言ってみる
AjaxプログラミングにおいてPrototype.jsは非常に重要なライブラリですが、ファイルのサイズが大きいことを理由に良くない!といわれることがしばしばです。

バージョン1.4.0時点で47kbですので、確かに1JavaScriptファイルとしては大きいですし、なんと言ってもテキストのファイルが50kb近くあるというのが生理的に受け付けないのかもしれません(1kgの鉄と1kgの綿はどっちが重い?)。

そんなあなたに(自分もだけど)おすすめなのが、JavaScriptをgzip圧縮する方法。
Windowsの場合、Cygwinを使うかGNU zipなんてのを使えば圧縮できます。

ファイルサイズ | ファイル名
47,445 bytes | prototype.js(デフォルト)
32,717 bytes | prototype_compress.js(Rhinoを使って圧縮)
10,537 bytes | prototype.jgz(gzip圧縮)
9,464 bytes | prototype_compress.jgz(Rhino + gzip圧縮)

このとおり、Rhino と組み合わせることで10kbも切ることができます。
htmlからは、
<script language="javascript" src="/js/prototype_compress.jgz"></script>
で普通に呼び出せます。

ただし、これだけだとブラウザが正しくファイルを解釈してくれないので、次のような.htaccessファイルを作っておきます。
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ".*Safari.*" [OR]
RewriteCond %{HTTP:Accept-Encoding} !gzip
RewriteRule (.*)\.jgz$ $1\.js [L]

AddType "text/javascript;charset=UTF-8" .jgz
AddEncoding gzip .jgz

自分では試していないですが、Safariはgzip圧縮されたJavaScriptを受け付けてくれないそうなので、.jgzのリクエストがきた場合に.jsを返すように設定します(なのでprototype_compress.jsも隣りに置いておく必要あり)。
ついでにAccept-Encodingも見て、gzipを扱えないブラウザの場合も.jsを返します。

本当は.js.gzという拡張子をつけたかったのですが、AddTypeがこれを認識してくれないので(ピリオドが2つあるから)、仕方なしに.jgzという勝手拡張子を作りました。
IANAに提案しようとか、世界に向けて推進を図ろうなどとおこがましいことは考えていませんので、とりあえずひっそりと書いてみました。
[PR]
by smilkobuta | 2006-09-30 20:37 | Webサイトシステム

2006年 05月 27日
RSS?RSS2?Atom?
最近あちこちのHPで、「RSS」とか「RSS2」とか「Atom」という言葉が表示されているのをご存知でしょうか。
何なのかというと、要するにそのサイトが更新されたときにお知らせしてくれる「お気に入り」用のリンクなのですが、ふしぎなくらい認知度が低いのです。

インターネット・ツール定期リサーチ(8):2006年4月7日――「RSS リーダー」利用率は14%

これも、RSSリーダー機能を持つIE7のリリースが遅れているからだと思うのですが、それにしても。
ちなみにおすすめのRSSリーダーはBloglinesです。
まだ試したことのない人は、一度使ってみてください。っていってもみんな使わないんだろうなあ。IE7のあほめー。

ところで、そのRSSフィード(お気に入り用のリンク)の種類が、現在大きく3つあります。
RSS、RSS2、Atomというのがそれですが(Atomは「RSS」ではないけど)、RSSフィードを登録するのに「どれにしますか?」って選択を強いられるのが普及しない原因の一つかも。

RSSフィードを複数のフォーマットで提供するのは悪いことだから、止めた方が良いよっていうお話。

早速LucのサイトでもRSSだけにしてしまいました。
確かにすっきり。
[PR]
by smilkobuta | 2006-05-27 11:21 | Webサイトシステム

2006年 04月 18日
PHPのフレームワーク-Seagull
SeagullというPHPのフレームワークがあって、多言語対応がうまく扱えそうなので、これから作る予定のサイトに導入しようと思っています。
ただ、日本語訳がまだ整備されていないので、がんばって自分で訳していくか・・・と思っていた矢先に、Seagullの日本語訳を始めていらっしゃる方を見つけました。

海は海、風は風 dozo.rgr.jp

ありがたや~ということで、共同作業を名乗り出ました。

<テストサイト>
http://seagull.dozo.st/ by dozoさん

<日本語訳のダウンロード>
Seagullの日本語訳

ひまな人はご一緒にいかが?

2006/4/23追記
全ての言語ファイルの翻訳が完了しました。

2006/4/25追記
完了したそばからバージョンアップしていましたので、最新バージョン(0.6.0.RC2)用に翻訳ファイルを更新しました。

2006/5/11追記
Seagull本家でも載せてくれました。
ちょっとは使う人も増えるかな?
[PR]
by smilkobuta | 2006-04-18 16:38 | Webサイトシステム

2005年 04月 24日
CMSツールとしてのMovable Type
Lucサイトでは、「Movable Type」を使ってコンテンツ管理をしています。
どこからでもhtmlやcssを編集できるのと、コンテンツ内のテキストをエントリとして管理できるのが本当に便利です。

Lucサイトでは、1つのテキストを1エントリとして、エントリ単位で管理しています。
Movable Type3.1ではサブカテゴリの管理がまだきちんと出来ないので、タイトルを「トップ:Lucとは」、「お問い合わせ:連絡先」などとコロン区切りでカテゴライズして、全体を「contents」というカテゴリに指定しています。

More
[PR]
by smilkobuta | 2005-04-24 11:56 | Webサイトシステム