ブログ

  • アナログ時計(FT-003)

    魚の形をした秒針のHTML5のcanvasで作成した時計。

    //

    別Windowでopen 極小(200,200) 小(346,346) 中(480, 480) 大(852, 852)

    特徴

    • 24時間計と12時間計を内蔵
    • 時報機能
    • アラーム機能(3個)
    • タイマー機能
    • 天気予報表示(24時間計の3時間ごとの位置に表示されます)

    使い方

    キー操作により各機能を設定できます。

    • 「S」キー : 設定ダイアログ(時報有無、天気予報表示有無)を表示する
    • 「T」キー : タイマー起動
    • 「C」キー : タイマーキャンセル
    • 「F」キー : 天気予報表示(5秒間)
    • 「1」~「3」キー :アラーム設定

       ※ IMEがONになっていると機能しないので注意!

    その他

    • Chrome(18.0.1025.152)、Firefox (11.0) で動作確認。IE8では動作不可。
    • バグはいろいろあるかもしれません!
  • perl-LWP::Simpleでgetしたコンテンツの文字コード

    LWP::Simple の get で取得してくるコンテンツは、metaタグcharset だけでなく

      <meta http-equiv="content-type" content="text/html; charset=shift_jis">

     

    htmlタグの lang 属性が設定されていないと正常に変換してくれないようだ。設定されてないと内的なのデコードがされず元のコードのままで返される。

      <html lang="ja">

     

     

     

  • perlのパターンマッチング

    perlを使用してコマンドライン引数で渡したパラメータ文字列のパターンマッチングを行うが何故か上手くいかない。

    正規表現が間違っているのかと思っていろいろ試すがNG。

    とりあえず、コマンドライン引数ではなく、直接スクリプト内に文字列を定義すると問題なく出来ることが判明。

    print文でその文字列とコマンドラインで渡した場合の内容を表示してみるが、どちらも同じ。

    if文で比較しても同じだ!

    スクリプト内では以下によりutf8を使用している。

    use encoding 'utf-8';

    utf8フラグが関係しているのかとフラグを utf8::is_utf8 によりチェックしてみる。するとコマンドラインで渡した場合にはフラグがたっていなかった。

    Encode::_utf8_on でフラグをセットすると正常に動作した。

    コマンドラインからの引数は、utf8でもutf8フラグは付いていないらしい。

    正規表現が悪いのかと思ってかなりハマってしまった!技術が未熟と言うことか!!

  • Google Chrome 17へアップデート

    本日Chromeの新バージョンが公開されたのでアップデートしてみた。

    バージョン: 17.0.963.46

    しかし、以下のものは修正されていなかった。残念!

    これらは特にどうでもよいことなのだろうか?

  • Chrome - Canvasの文字列描画で影付けの効果(shadow効果)が消える

    バージョンアップされたばかりのChromeだが、今まで出来ていたCanvasに対して文字列を出力(fillText)する場合の影付け効果が利かなくなった。

    ・バージョン:16.0.912.63 m

     

    以下はChromeで影付けの設定を行って描画した結果。影付けがされていない。

    以下はFirefoxで同様に描画した結果。正常に影が描画されている。

     

    Canvas描画ツールで以下のコードを実行すると上記の結果を見ることができる。

    context.shadowBlur = 10;
    context.shadowColor = 'red';
    context.shadowOffsetX = 10;
    context.shadowOffsetY = 10;
    context.font = "84px 'Comic Sans MS'";
    context.fillText("Hello!", 300, 100);
    

     

    window.onloadが呼ばれなくなる バグもまだ修正されていないようで、個人的にはメインのブラウザとして気に入って使用しているのに残念である。

    早急に修正して欲しい!


    <追記>

    • 2012/2/22  バージョンが17.0.963.56 になって修正されたようです。
    • 2011/12/23 座標変換で回転(rotateで0以外の回転角を設定)すると影が表示されるようである。
  • Canvas描画テストツール

    HTML5のCanvasの描画スクリプトをテストするツール。

    • スクリプトエディタにJavascriptを定義し、その内容をCanvasに描画する
    • スクリプトエディタでは、context, canvas 変数によりCanvas及びそのContextにアクセスする
    • スクリプトエディタの内容は終了時にローカルストレージに保存される
    • Chrome(15.0.874.121 m)、Firefox(8.0)で動作確認。IE8は動作不可、IE9は未確認。

    Canvas描画テストツール起動

     


    修正履歴

    2012.6.13 U001

    • スクリプトに名前を付けて保存できるように修正
    • 作成したスクリプトをセレクトボックスで選択できるよう修正

     

  • Chrome window.onloadが呼ばれなくなる

    本日(12/8)、数日前は正常に表示されていたページが何故かChromeでは正常に表示されなくなった。

    FireFoxやIEでは正常に表示されている。

    Chromeのバージョンは15.0.874.121 m。

    特にHTMLもスクリプトも変更していない。

    全部のページではなく、一部のページで現象が発生している。

    調べてみると何故か window.onload が呼ばれない。

    スクリプト、HTMLを削って調べていくと、何故か audio タグがあると現象が発生するようである。

    その部分をコメント化すると正常に表示された。

    以下にサンプル(onloadでブラウザの情報を表示する)のリンクを示す。

    ※ onloadが呼ばれないのでブラウザの情報を表示していない。

    ※ audio 要素をコメント化しているので、onloadが呼ばれてブラウザの情報を表示している。

    Chrome は自動的にアップデートされるようになっているが、いつの間にかバグが入ってしまったのか、早期の修正を希望します。


    <追記>

    • 2012/3/26 バージョンアップ(17.0.963.83) で修正されたようです!!
    • 2011/12/14 バージョンアップ(16.0.912.63 m) したが修正されていなかった

     

  • サインツール

    写真に自分のサインを追加するツールをHTML5canvasを使って作成してみた。

    Chrome(15.0.874.106 m)、Firefox(7.0.1)で動作確認。IE8は動作不可IE9は未確認。

    以下の画像のクリックで起動します。

     

  • 記憶力トレーニング


    判断力トレーニングに続き、JavaScriptとHTML5で作成した記憶力を鍛えるツール
    //

    ・記憶時間内で9個のマスに表示される数字(0~9)を記憶します。

    ・記憶を頼りにピンク色のマスの数字を当てて行きます。

    ・「回答時のマスの位置をランダムに表示する」をチェックすると、回答時の出題対象のマスの位置がランダムになります(チェックしない場合は左上から順番に出題されます)。

    Chrome(13.0.782.218)、Firefox(6.0)で動作確認。IE8は動作不可IE9は未確認

    以下の画像のクリックで起動します。

    記憶力トレーニング


    修正履歴

    2011.9.8 U003

    [改善]

    結果表示に回答ミスがなかったゲームの回数として「完全正解数」を追加する。

    2011.9.8 U002

    [現象]

    記憶時間中に数字キーを押すと出題フェーズに移ってしまう。

    [対応]

    記憶時間中は数字キーで出題フェーズに遷移しないように修正。

    2011.9.8 U001

    [現象]

    9個目のマスで正解の番号を連打すると結果を表示しないで「OK」が表示されたままになる。

    [対応]

    キー入力制御ミス。キー入力制御フラグを正しく設定するように修正。