木曜日, 12月 19, 2013

PHP: HTML セーフなコードに変換

HTMLコードを書く際に、不等号記号などそのまま書くとブラウザが勝手に変換してしまいます。

プログラムなどを表示するためには、記号をHTMLに変換しなければなりません。

ブラウザの勝手な行動を制限するために、変換するツールを作成しました。

使い捨てないツールのためにここにアップします。

以下のコードを html.php というファイルに保存し、PHP の動く環境でブラウザを使って表示します。

テキストボックスにコードを打ち込み、Convert ボタンを押すと変換されたコードが表示されます。

<html>
<head>
<style>
textarea
{
width:1000px;
height:500px;
}
</style>
</head>
<body>

<?
$text=$_REQUEST['text'];

$text=htmlspecialchars($text);

echo <<<END
<form action="html.php">
<textarea name="text">$text</textarea>
<input type="submit" value="Convert" />
</form>
END;

$html=htmlspecialchars($text);
echo <<<END
<textarea>
$html
</textarea>
END;
?>
</body>
</html>

土曜日, 12月 14, 2013

Java: 列挙型 enum を switch文で使う

Mandelbrot
列挙型 enum は Java5 で導入されました。

public enum Periodic{PERIODIC,PREPERIODIC,NONPERIODIC};

名前を付けて、識別子を列挙します。

この値を変数に代入するには、静的に定義された変数として扱います。

 Periodic periodic=Periodic.NONPERIODIC;


列挙型変数名を指定する必要があるわけです。

ただし、switch文で使う場合には指定しません。

switch(isPeriodic())
            {
            case PERIODIC:
                System.out.println("f is periodic.");
                break;
            case NONPERIODIC:
                System.out.println("f is not periodic.");
                break;
            case PREPERIODIC:
                System.out.println("f is pre-periodic.");
                break;
            }

気を付けましょう。

日曜日, 12月 01, 2013

Windows 8 ストアアプリ開発にはまっております。

作りかけのメトロアプリ
目下のところWindows8用のアプリ開発にはまっております。これが面白い。書き方が全然違うので慣れるまで大変ですが、簡便さ能率と自由度が違う。

Windows8用のアプリは ストアアプリ、メトロアプリ、WinRT などと呼ばれていてどれもメトロスタイルのアプリを書くためのものです。興味深いことにデザインはXAML形式、機能はC#などプログラミング言語で記述します。ここがポイント。

もとWindows7とかWindowsXPのデザインは、もとはRCファイルなどですね。ベタなテキストファイルで、編集は特殊なリソースエディタを使って行っておりました。エディタで部品を置いて、クリックしたときなどの動作をC++で記述するという形です。部品の種類もそこそこあるわけですが、Windows8になってデザインの差もさることながら自由度が格段にアップしました。アプリが豪華に見えます。

ページデザイン、レイアウトをXAMLというXMLに基いた言語で記述することで、あらたな世界が広がっています。HTMLはXMLに準ずる形式ですね。だからXAMLはHTMLのようなものです。ウエブページを書くノリで自由に部品が記述できるのです。これはすごい。どんどんページを書いていって、それから機能を実装していけばいい。

開発環境も優れています。部品の種類もそこそこ厳選されており、ネーミングも悪くない。いや、とてつもなく悪いのもあるわけですが、コンセプト的にはいい。アプリにブラウザ機能をつけるととんでもない便利な環境が出来上がります。ネットにどれだけのリソースがあると思いますか?アプリからそれが全部使える。辞書だろうとニュースサイトだろうとSNSだろうとそのままです。入力を処理する必要さえない。

まだまだ自由に使いこなせているとは言えませんが、チャレンジする価値は十分にあります。情報が少ないのはネックですが、今後の発展を期待しましょう。

Qt: 外部プログラムを起動する

  Qt/C++ のアプリは、外部へ直接アクセスできます。これはネットアプリでは不可能な Qt のメリットです。 外部プログラムを起動することもできます。QProcess::startDetached() を使うと独立したプロセスを立ち上げることができます。 この QProces...