2008-01-01から1年間の記事一覧

プラシーボ効果はもちろんご存知ですよね?

id:ofk さんの記事 http://d.hatena.ne.jp/ofk/20080912/1221205218 に書かれている「結論」に妖気を感じたので、釣られてやってみた。 内容は == の次に === で比較するものをTEST1 === の次に == を比較するものをTEST2としています。 ofkさんの試した環境…

Opera9.60β1を入れてみた。

Opera9.5β が出たばかりなのに、もう9.6βが出ました。 ChangeLog: http://www.opera.com/docs/changelogs/windows/960b1/ 今回のUserAgent(ユーザーエージェント)は、"Opera/9.60 (Windows NT 5.1; U; ja) Presto/2.1.1" です。Opera9.52 は "Opera/9.52 (Wi…

高速化

昨日がベンチマークだったので、今日は速度について。 いつまで教科書を信じてるんだい? プログラミングの教本には、「ループ」がこのように書かれています。 これはよく見られる記述ですが、最も遅い書き方です。 var ary = [...]; var i; for (i = 0; i < …

ベンチマーク

ベンチマークは、できるだけ多様な条件で取得すべきです。たとえば、Array.prototype.forEach のベンチを取る場合は、 var ary = [0, 1, 2, ...]; ary.forEach(function(v, i) { // なにか }); のようにすると思いますが、これでは不十分です。どれが、とは…

CSS outline problem in Opera9.52

Subject: The CSS "outline" is different in Opera9.52 from other browsers. PC: WindowsXP SP2. ScreenShot: Opera9.27(Build:8841), Opera9.52(Build:10108), Google Chrome0.2.149.29, Safari3.1 <html> <head> <title>Opera9.52 outline</title> <style type="text/css"> html { margin: 2em; outlin…</head></html>

何かを成し遂げた次の日は休むものです。

って某脳科学の研究者が言ってた。「ピッコーン!」ってのはリラックマな状態が続いたときに出やすい。とも。抑圧された状態で溜め込んでいた欲求とか知識の断片が分解され再構築されて出てくるらしい。 「あぁ、脳内には国家錬金術師がいるんですね」と解釈…

Changed setting of comment - はてなユーザ以外の方でもコメントが可能になりました

When you answered it for a simple question, comment to the blog was enabled.はてなユーザ以外の方でも、簡単な質問に解答していただくことでブログへのコメントが可能になりました。ご報告まで。

uupaa-datasceheme.js Version 1.0をリリースしました。

今回のリリースで以下の改善を行いました。 インターレースGIFが正しく表示されるようになった 256byte以上のデータを持つ画像が正しく表示されるようになった 表示サイズを制限する機能を盛り込んだ(デフォルトは48x48) 試してみたい方はこちらから http://…

uupaa-datasceheme.js Version 0.6をリリースしました。

連日開発していた機能を単体で動作するようにギュギュッと固めて、リリースしてみました。 http://code.google.com/p/uupaa-js-spinoff/お試しページはこちら http://code.google.com/p/uupaa-js-spinoff/ IEでアクセスしてください。 Canvasを使った描画機…

IE5〜IE7でも、RFC2397(Dataスキーム, DataURI)を使えるようにした!(続き)

ある程度の描画速度の改善と、描画品質(拡大/縮小)の大幅な改善に成功しました。 速度的なロスを回避しつつ描画品質を改善できたときは、心の中でガッツポーズがでました。 ほかに大きな問題が見つからなければ、DataURIをデコードする機能をリリースできそ…

IE5〜IE7でも、RFC2397(Dataスキーム, DataURI)を使えるようにした!

IE5,IE5.5,IE6,IE7 とおよそ10年に渡り、実装されなかった機能の一つに、Dataスキーム(DataURI) が あります。 uupaa.js version 0.6(近日中にリリース予定)では、DataURI をデコードする機能をエミュレートします。 DataURIって何 ラリーさんがRFC2397で提…

突如登場した新ブラウザGoogle Chromeへの対応

先ほどGoogle Chromeをダウンロードできました。 http://www.google.com/chromeアイコンもメトロイド風味で良い感じ。(今ならポケモンって言うんだろうけど)これから、uupaa.js を Chrome に対応させるための作業を開始します。 ファーストインプレッション …

uupaa.js version 0.5の問題

自分で自分にIssueチケットを発行してもあれなんで、ver0.5で見つかった問題をここに列挙しておきます。 uu.css() uu.config.cacheID の値を参照していないためキャッシュが常に有効になっている 修正方法 - uupaa.js(217) if (expr in uu._cacheXPath) { + …

uupaa.js version 0.5 リリース!

Google Code Archive - Long-term storage for Google Code Project Hosting. で、uupaa.js version 0.5 をリリースしました。 前回のリリースが七夕だったので、53日ぶりのリリースとなります。今回は、 FirebugLite1.2の自動組み込み セレクタの戻り値をNo…

Mozillaプロジェクトの中の人がIEでもHTML::Canvasを使えるようにするらしい

スラドに「Mozillaプロジェクト、IE向けのCanvasプラグインを開発中」なる記事があがってるのを、さっき見つけました。 http://slashdot.jp/it/article.pl?sid=08/08/21/1023205「ActiveXなプラグインを作っちゃって、IEでもHTML5::Canvasを使えるようにしよ…

SafariのCanvas::createPattern が反転する

uupaa.js version 0.5のリリース作業に取り掛かっていますが、ひとつ非常にこまったバグが残っていたりします。それは、Windows上のSafari3.1で発生するのですが、 <html><head><title>Safari3.1(525.13.3) createPattern is overturnd</title></head><body> <div> <img id="img" src="cover0.jpg" alt="" /> </div></body></html>

スタイルシートでは表現できない見栄えをJavaScriptで実現する方法の考察

uupaa.jsで実装中の機能について、思考(試行?)を記録する試み。 (この日記は、半年〜1年後に読み返すと意味があるかもしれない日記です。あえて さらしておきます)考えてることとか・やりたいこと、 JavaScript ONの環境で要素の見栄えを変更する良い方法は…

Firefoxで innerText と outerHTMLをエミュレート Take2

以前の記事には、outerHTMLのgetterが無かったので、追加してみました。 window.uu = { ua: { gecko: navigator.userAgent.indexOf("Gecko/") >= 0 } }; uu.ua.gecko && !HTMLElement.prototype.outerHTML && (function() { HTMLElement.prototype.__defineG…

透過png専用のJavaScriptライブラリ(uupaa-suketrans.js)

Google Code Archive - Long-term storage for Google Code Project Hosting. から透過png処理だけを抜き出し Google Code Archive - Long-term storage for Google Code Project Hosting. としてリリースしました。 IE5.5とIE6で、アルファ成分を含むpng画…

ジェリービーンズみたいな光沢を持つボタンをもっとお手軽に

プログラマー畑で育った自分としては、デザインスキルがLv3ぐらいしかないのです。PhotoShopは使えるがイラレがだめとか。そんな悩めるコーダー出身者でも、1行コードを書くだけで、いまどきデザインなパーツを簡単に使えれば、きっともっとうれしいハズ!た…

excanvas++ の続き

線形グラデーション(createLinearGradient)の角度(angle)がうまく指定できない問題と戦っていました。 Safariで描画 IE + excanvas.js (v0.2) + uupaa.js (v0.5RC1) で var grad = ctx.createLinearGradient(0, 0, 80, 40); は幅80,高さ40の線形グラデーショ…

excanvas.js++

IEでもcanvasを使いたい。ちゃんとグラデーションさせたい。画像で塗りつぶしたい。色名を認識してくれない。もっと早く描画できないのか。IEでcanvasを使ってグラフィカルな描画をしたい場合の唯一の選択肢 excanvas.js を使っていると、すぐに多くの制限に…

Firefox3.1α公開開始 コードネームは 知床(Shiretoko)

Firefox3.1では、HTML5 canvas::TextAPIが追加されました。 Firefox3でもこれらは先行実装されていたわけですが… mozDrawText → fillText mozPathText → strokeText mozMeasureText → measureText mozTextAlongPath → あれ? 一番楽しいことができそうな mozT…

FirebugLite1.2 を手直しして、F12でコンソールが起動するようにしてみた

FirebugLite1.2をローカル(offline)で動かそうとしたらエラーがでました。 821行目にゴミ(★)が入ってます。 el.left.xhr.nameContent.child.add(new pi.element("span").update(item[0])); try {★ el.left.xhr.statusContent.child.add(new pi.element("span…

Firefox3では、globalAlphaで色々透過しない

Firefox3でglobalAlphaを1.0以外の値に設定しても、透過処理されません。(Firefox2では試してない)。 その結果、globalAlphaを1以外に指定した状態では、Safari, Operaと描画結果に食い違いが出てしまいます。

excanvas.js のバグ/不具合とその解決方法

IE用のCoverFlowを実装がてらVMLを勉強中です。今日は、excanvas.js(version 0.2)や、その根底にあるVMLの問題とその解決方法を列挙してみます。 [VML] oval stroke="false"が無視され線が描画される strokeサブエレメントを追加し、<v_:stroke on="false" …

CoverFlowの実装(つづき)

進んでいません。ちゃんとやろうと思ったら、アフィン変換やらいままで避けて通っていた道を進む必要があるのでは〜? と気が付き、実装の手を止め、3D CGのお勉強をしてました。 そもそもJavaScriptですから、行列計算のライブラリも自前でガリガリ書かなき…

CoverFlowの実装

IEでも動作するJavaScriptなCoverFlowを先ほどから実装中です。2時間かかってこんなかんじ。まだまだ先は長そうです。 あと、iPhoneが320x480らしいので、iPhone用に300x180で動作するバージョンも用意する予定です。まだiPhoneの現物に触ったことが無いので…

excanvas.js のハマリどころ, G_vmlCanvasManager.initElement の使い方

追記: uupaa-excanvas.js をリリースしました。 excanvas.js は IE で canvas 要素のエミュレートを行う Google 謹製の JavaScript ライブラリです。このライブラリは、最初のとっかかりが結構難しいです。実体験を元に、ハマリポイントを列挙してみます。 …

document.createElement()にタグではなくHTMLを指定してみる(IE限定)

時間ないから3分で。 var elm = document.createElement("<div style='background-color: blue; height: 100px; width: 100px;'></div>"); document.body.appendChild(elm); これで、画面に青い100pxのボックスが登場します。 DOMの仕様にはない用法です(MSDNには載ってる)。 document.createElement("<div style='background-color: blue; height: 100px; width: 100px;'></div>