Rev. 2.73

http://webkit.org/blog-files/3d-transforms/morphing-cubes.html

webkit.org는 스노 레퍼드(Snow Leopard)에 설치된 사파리(웹킷)에서 CSS 3D 변환을 지원한다고 발표했습니다. 최신 나이틀리 빌드(nightly build )를 설치하여 직접 확인할 수 있다고 합니다. 그리고 테스트 가능한 CSS 변환 애니메이션 예제인 Poster CircleMorphing Power Cubes를 함께 공개했습니다. 이것은 애플의 3D transforms 기술을 이용하여 구현된 것이며, 하드웨어-엑셀레이션(hardware-acceleration)이 지원된다고 합니다. 똥꼬가 쫄깃쫄깃해 지는군요!

"Oh, was there some Microsoft plugin launched last week? We don’t need no stinkin’ plugin!"

Comments

3707763174_5bf03a2cdb_o.gif

Digg가 IE6 브라우저 사용자를 대상으로 매우 흥미로운 조사를 펼쳤습니다. 왜 아직도 IE6을 사용하고 계신가요?(You are currently using Internet Explorer 6. Why?)라는 질문에 37%의 응답자가 "자신의 PC에 관리권한이 없기 때문(I can’t upgrade because I don’t have administrator access on my computer.)"으로 응답했으며, 33%가 "주위에서 업그레이드하지 말라고 해서?(I can’t upgrade because someone at work says I can’t.)", 17%가 "업그레이드의 필요성을 느끼지 못했기 때문(I don’t feel a need to upgrade.)", 7%가 "자신의 PC가 구형이라서(I can’t upgrade because my computer runs an old version of Windows.)", 그리고 7%가 "IE6을 선호하기 때문(I prefer IE6 to other browsers.)"으로 응답한 것으로 조사되었습니다.

Digg는 IE6 브라우저에 대한 지원을 중단하기 위해 이와 같은 조사를 실시하였으며, 정상적으로 페이지를 볼 수는 있을 것이라고 합니다. 이밖에도 IE6 의 기능별 사용 분포, 회사/집 사용 빈도 등에 대한 조사자료를 함께 공개했습니다. 주위에서 IE6 사용자를 발견하면 "이봐요! 업그레이드 좀 하세요!"라고 전해 달랍니다. 한국의 실정과는 많이 다르겠지만, "IE6을 선호하기 때문"이라는 응답은 조금 놀랍군요.

Comments

파이어폭스 3.5에 추가된 기능인 DOM Workers를 테스트 해 보았습니다. 자바스크립트로 멀티스레드(multi-thread)를 구현할 수 있다길레 솔깃해서 살펴보았습니다. 'Worker'로 새 인스턴스를 만들어서 'onmessage', 'onerror', 'postMessage' 메서드로 변수를 전달하고 결과물을 돌려받을 수 있는 실행구조를 가지고 있었습니다. 인스턴스를 생성할 때에는 자바스크립트 파일을 로드하여 이루어지며, 여기에 사용되는 자바스크립트는 DOM에 직접 액세스 할 수 없고 네임스페이스 역시 공유하지 않습니다. 즉, 연산만을 죽어라 수행하도록 디자인 된 것입니다.

function fibonacci(n) {
  return (n < 1) ? -1 : (n > 2) ? fibonacci(n - 1) + fibonacci(n - 2) : 1;
}

onmessage = function(event) {
  return postMessage(fibonacci(event.data));
}

위 코드는 테스트에 사용된 'fibonacci.js' 파일의 내용입니다. 한줄짜리 피보나치(fibonacci) 함수를 호출하고 그 결과를 반환합니다. 이 worker용 자바스크립트 파일은 아래와 같이 사용될 수 있습니다.

var worker = new Worker("/javascripts/workers/fibonacci.js");
worker.onmessage = function(event) {
  alert(event.data);
};
worker.postMessage(10);

실제로 작업 수행이 병렬로 이루어지는지 확인하기 위하여 동일한 피보나치 함수가 worker를 사용하여 실행되는 것과 순수 자바스크립트로 실행한 것을 복합적으로 테스트하고 수행 시간을 측정했습니다. worker가 결과를 응답하는 시간이 매우 불규칙적이고 브라우저가 무작위로 죽어싸서 신빙성 있는 테스트는 어려워 보이네요. 성능 모니터(perfmon.exe)를 토글해서 스레드를 직접 확인해 보세요. 스레드가 급증했다가 줄어들고 그럽디다. 속도도 구린것이 그닥 유용해 보이지는 않군요. 구글 크롬 v8 엔진처럼 자바스크립트 자체를 멀티스레드 처리하는 쪽이 훨씬 현실적이어 보입니다. 이걸 어디다 써먹어나요. 에이~ 완전 뻘짓했네요. DOM Workers는 파이어폭스 부가기능 제작 또는 굉장히 무거운 연산처리에 적합해 보입니다.

DOM workers Test

x

덧. 테스트가 공정하지 못했네요. worker 인스턴스를 지속해서 생성하지 않고 참조하게 했더니 속도가 크게 개선되긴 했습니다만, 순수 자바스크립트만 못한 것은 사실이네요. 백그라운드에서 도는 프로그램에 사용하면 좋겠다는 생각을 했습니다.

Comments