<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0">
<channel>
<title>Standard Magazine</title>
<link>http://planet.standardmag.org</link>
<description />
<language>ko</language>
<pubDate>Fri, 03 Sep 2010 09:13:52 +0900</pubDate>
<generator>Bloglounge 0.2.9 flyingbucket</generator>
<item>
<title>클라우드에 힘내는 LG CNS…한국MS와 전방위 협력</title>
<link>http://www.bloter.net/archives/37802</link>
<description>&lt;p&gt;LG유플러스가 마이크로소프트 본사와 클라우드 컴퓨팅과 관련해 손을 잡은 데 이어 이번에는 LG CNS가 한국마이크로소프트와 협력했다. LG의 통신과 IT 서비스 업체가 마이크로소프트와 미래 시장 개척을 위해 발빠르게 움직이고 있다. 두 회사의 공통점은 클라우드 분야의 SaaS(Software as a Service)와 이를 위한 PaaS(Platform as a Service)다.&lt;/p&gt;
&lt;p&gt;한국마이크로소프트는 종합 IT 서비스 기업인 LG CNS와 클라우드 컴퓨팅과 IT 컨버전스 등 차세대 엔터프라이즈 서비스 개발과 시장 확대 협력에 관한 양해각서(MOU)를 1일 체결했다.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.bloter.net/files/2010/09/MS-LGCNScloud.jpg&quot;&gt;&lt;img class=&quot;aligncenter size-full wp-image-37803&quot; title=&quot;MS-LGCNScloud&quot; src=&quot;http://www.bloter.net/files/2010/09/MS-LGCNScloud.jpg&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;333&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
서울 회현동 LG CNS 본사에서 열린 이날 조인식에는 김 제임스 우 한국마이크로소프트 사장(왼쪽)을 비롯해, 김대훈 LG CNS사장(가운데), 김태극 LG CNS 솔루션사업본부장, 마이크로소프트 본사 기업고객사업본부 사이먼 위츠(Simon Witts) 부사장(오른쪽), 최기영 한국마이크로소프트 전무 등 양사 주요 관계자들이 참석했다.&lt;/p&gt;
&lt;p&gt;이번 전략적 제휴를 통해 두 회사는 클라우드 컴퓨팅 (Cloud Computing), IT컨버전스 (IT Convergence), 엔터프라이즈 IT (Enterprise IT) 등 3개 서비스영역 6개 분야의 차세대 IT서비스에 대해 사업협력과 기술공유 등에 대해 상호 협력해 나갈 계획이다.&lt;/p&gt;
&lt;p&gt;이에 따라 양사는 LG CNS가 이미 운영중인 모바일 클라우드 센터로부터 축적된 경험과 마이크로소프트의 플랫폼을 결합해 이메일부터 일반 기업 애플리케이션까지 ‘원스톱 클라우드 서비스(One Stop Cloud Service)’를 고객에게 선보일 예정이며, 마이크로소프트는 자사의 클라우드 플랫폼인 윈도우 애저(Windows Azure)를 포함한 클라우드 관련 제품과 기술 정보를 제공하고 본사 전문가와의 긴밀한 협업을 지원할 예정이다.&lt;/p&gt;
&lt;p&gt;또한 양사는 제조장치 솔루션과 디지털 마케팅 솔루션 등 마이크로소프트의 플랫폼과 LG CNS의 서비스를 결합한 통합 플랫폼을 개발하고 이에 대한 국내외 서비스 와 시장 확대를 위한 공동 마케팅도 추진해 나갈 계획이다.&lt;/p&gt;
&lt;p&gt;두 회사가 협력한 분야를 이해하기 위해서는 LG CNS의 행보를 좀더 살펴봐야 한다. LG CNS는 2009년 7월 21일 LG CNS가 국내 첫 상용 클라우드 컴퓨팅 서비스를 선보였다. LG 그룹사 고객들은 서버의 CPU자원, 메모리 개수, 스토리지 크기 등 필요한 IT자원을 웹 사이트를 통해 요청하면, 서버 증설 등 기존에 2주일 넘게 걸리던 처리 과정이 엔지니어의 개입 없이 가상 머신을 통해 실시간으로 IT자원이 생성돼 웹에서 바로 사용할 수 있다.&lt;/p&gt;
&lt;p&gt;LG CNS는 2009년 3월부터 6월까지 3개월간 이와 관련한 클라우드 컴퓨팅 인프라 구축에 주력해 왔다. 당시 이 프로젝트는 가상화 솔루션으로 마이크로소프트의 제품을 선택했다. 당시 프로젝트 책임자였던 송광수 부장은 지난해 블로터닷넷과 가진 인터뷰에서 “LG CNS의 IT 인프라는 유닉스와 윈도우, 리눅스 등으로 이루어져 있는데 윈도우 플랫폼이 절반 가량을 차지하고 있습니다”라고 전하고 “IT 효율화를 표방하고 있는 입장에서 가장 많이 차지하고 있는 인프라를 선택한 것은 당연한 일입니다”라고 밝혔다.&lt;/p&gt;
&lt;p&gt;관련 프로젝트와는 별개로 LG CNS는 국내 기업 중 전사적으로는 처음으로 데스크톱가상화(VDI) 프로젝트를 진행했다. 시트릭스 제품이 적용된 이 프로젝트에는 마이크로소프트의 서버 인프라가 대규모 투입됐다. 1년이 넘게 관련 분야 프로젝트를 진행하면서 자사의 업무 환경에 맞도록 관련 제품들을 적용하면서 상당한 기술들도 축적한 것으로 알려졌다. 그동안 하나둘씩 프로젝트를 진행하면서 처음부터 모든 것들을 개발하고 구현하기에는 시간이 걸리고, 해당 업체와 전략적 협력을 단행할 경우 이렇게 축적된 경험들을 더욱 빠르게 사업화할 수 있다고 판단한 듯 보인다.&lt;/p&gt;
&lt;p&gt;이런 추세는 독자적인 클라우드 플랫폼 개발을 위해 움직였던 많은 기업들이 경험한 것으로 파트너에게 줄 건 주고 받을 건 받으면서 국내는 물론 해외도 함께 공략할 수 있다는 전략이 마련됐다는 것으로 해석될 수도 있다. 마이크로소프트의 경우 클라우드 시장에 뒤늦게 뛰어들었지만 기업용 솔루션 분야에서 워낙 강력한 시장 지배력을 보유하고 있어, 마이크로소프트의 윈도우 애저용으로 개발을 하면 전세계 고객들을 대상으로 바로 서비스를 할 수 있는 이점이 있다. 다양한 SaaS를 윈도우 플랫폼 기반으로 하나씩 만들어 내면 그만큼 해외 진출시 커스터마이징을 최소화할 수 있다.&lt;/p&gt;
&lt;p&gt;특히 주목해 볼 대목은 이메일부터 일반 기업 애플리케이션까지 원스톱 클라우드 서비스를 선보일 수 있다는 대목이다. IT 서비스 업체들은 모 그룹사의 업무용 애플리케이션들을 개발해 제공하고 있지만 이를 외부용 서비스로 적용한 사례는 많지 않다. 이번 협력으로 유추해 본다면 LG그룹사가 사용하고 있는 사내 포털인 ‘오피스 플러스’ 같은 제품들이 외부 고객들을 위한 SaaS용으로 제공될 수도 있을 것으로 보인다.&lt;/p&gt;
&lt;p&gt;LG유플러스의 경우에도 그동안 전자금융 분야의 솔루션과 그룹웨어와 공급망관리 솔루션들을 개발해 왔다. LG 그룹사가 클라우드 분야에 대응하기 위해 개별적으로 움직이지만 또 한편 각자의 장점을 극대화하려는 방향으로 움직이고 있어 기존에 내부적으로 보유했던 애플리케이션들을 마이크로소프트의 클라우드 인프라 위에 탑재, SaaS 시장으로 빠르게 진입할 수 있다.&lt;/p&gt;
&lt;p&gt;김 제임스 우 한국마이크로소프트 사장은 “이번 LG CNS와의 협력은 신속한 서비스 출시와 수익성 강화에 마이크로소프트의 플랫폼이 어떻게 기여하는지를 보여주는 기회가 될 것이며, 전세계 국가별 IT 서비스 업체와의 특별 제휴를 통한 시장 창출을 위한 특별 프로그램의 첫 단추로서 매우 의미 있는 일”이라고 말했다&lt;/p&gt;
&lt;p&gt;김대훈 LG CNS 사장도 “글로벌 경쟁력을 가진 마이크로소프트와의 협력이 LG CNS의 Vision 2020을 실현하고 솔루션 중심의 해외 진출을 가속화하는데 큰 도움이 될 것”이라고 말하고, “양사의 강점을 바탕으로 차세대 IT분야의 협력을 통해 국내외 고객들에게 새로운 가치를 제공해 나갈 것”이라고 말했다.&lt;/p&gt;
&lt;p&gt;한편, 흥미로운 사실은 LG 그룹사의 그룹웨어는 IBM의 로터스노츠/도미노 기반이다. 한국마이크로소프트는 LG 그룹사의 제품 인프라를 자사의 익스체인지 서버 기반으로 바꾸기 위해 노력했지만 LG 그룹사들은 일단 한국IBM의 제품을 업그레이드 해서 사용하겠다고 밝힌 바 있다. LG CNS와 LG유플러스는 마이크로소프트와 한국마이크로소프트의 협력이 자사의 전사 그룹웨어의 교체로 해석될 여지에 대해서는 “전혀 그렇지 않다”고 밝히고 있다. 두 회사의 협력과는 별개로 언제까지 LG그룹사가 로터스노츠와 도미노를 고수할지 지켜보는 것도 재미를 배가 시키고 있다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.bloter.net/archives/15631&quot; target=&quot;_blank&quot;&gt;LG CNS, “클라우드, 수공업 수준 IT를 산업화 단계로 이끈다”&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.bloter.net/archives/36299&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;KT vs. LGU+, 클라우드 시장 놓고 상반된 행보&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;img src=&quot;http://www.bloter.net/?ak_action=api_record_view&amp;id=37802&amp;type=feed&quot; alt=&quot;&quot; /&gt;</description>
<category>사람들</category>
<category> 엔터프라이즈</category>
<category> LG CNS</category>
<category> LG유플러스</category>
<category> 마이크로소프트</category>
<category> 클라우드</category>
<category> 클라우드 컴퓨팅</category>
<author>도안구</author>
<guid>http://www.bloter.net/archives/37802</guid>
<pubDate>Wed, 01 Sep 2010 20:19:00 +0900</pubDate>
</item>
<item>
<title>“월 10만원으로 고객·영업관리”…다우기술, SaaS 출시</title>
<link>http://www.bloter.net/archives/37793</link>
<description>&lt;p&gt;“쉽지 않은 일이지만 꾸준히 선투자를 단행하고 있습니다. 지난 3년간 투자한 결실을 이제 맺고 있는 만큼 이번 시도도 투자하는 개념입니다.”&lt;/p&gt;
&lt;p&gt;김영훈 다우기술 사장의 말이다. 다우기술이 또 다른 도전에 나섰다. 다우기술은 종업원 300인 이하의 중소기업들에서 고객과 영업관리를 위해 별도의 소프트웨어를 구매해 설치하지 않고 서비스로 제공할 수 있는 ‘스마트 프로세스’를 발표했다. 전세계 대표적인 SaaS(Software as a Service)인 세일즈포스닷컴의 국내 독점 총판사이기도 한 다우기술은 세일즈포스닷커의 SFA의 경우 대기업과 중견 기업용이기 때문에 국내 중소기업들이 사용하기 어렵다고 보고 국내 상황에 맞는 고객과 영업관리 SaaS를 출시했다.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.bloter.net/files/2010/09/daouceo100901.jpg&quot;&gt;&lt;img class=&quot;alignleft size-full wp-image-37792&quot; style=&quot;margin: 10px;border: 1px solid black&quot; title=&quot;daouceo100901&quot; src=&quot;http://www.bloter.net/files/2010/09/daouceo100901.jpg&quot; alt=&quot;&quot; width=&quot;196&quot; height=&quot;237&quot; /&gt;&lt;/a&gt;이번 서비스는 세일즈포스닷컴의 클라우드 플랫폼인 ‘포스닷컴’ 기반으로 다우기술이 자체개발했다. 2012년까지 관련 서비스로 100억원 대의 매출을 목표로 하고 있다.&lt;/p&gt;
&lt;p&gt;다우기술은 지난 3년간 세일즈포스닷컴을 비롯해 팀오피스라는 협업 관련 SaaS도 출시하면서 불모지와 같았던 SaaS 시장을 개척해 왔다. 김영훈 사장이 이번 투자로 단기적인 이익을 기대하기보다는 미래 시장에 대한 가능성과 기회를 선점하겠다고 밝힌 이유도 장기적인 측면에서 다우기술이 애플리케이션 사업을 강화할 수 있는 하나의 기회로 보고 있기 때문이다.&lt;/p&gt;
&lt;p&gt;김영훈 사장은 “세일즈포스닷컴의 경우 누적 고객 기준으로 올해 40억원 가량의 매출이 기대됩니다”면서 “SaaS의 경우 고객이 늘면 꾸준히 수익도 늘고 있어 초기부터 투자를 단행하고 있습니다”고 밝혔다. 팀오피스의 경우에도 아직까지 적자지만 1년간 무료로 테스트를 진행했고, 올해 유료 모델로 전환해 고객들에게 다가서고 있다.&lt;/p&gt;
&lt;p&gt;그는 “팀오피스의 경우 이미 중국과 일본어 판을 제공하면서 해외 시장도 진출하고 있습니다. 포스닷컴 기반의 스마트프로세스도 이제 국내 고객 확보에 나서겠지만 궁극적으로 해외 진출을 목표로 하고 있습니다”고 밝혔다.&lt;/p&gt;
&lt;p&gt;스마트프로세스는 마케팅과 영업 프로세스 관리를 위한 세일즈 에디션과 고객 지원 프로세스 관리를 위한 ‘서포트 에디션’으로 구성되며, 고객들은 기업의 필요에 따라 전체 제품 또는 개별 에디션을 선택적으로 구매해 사용할수 있다. 또 최근 주목받고 있는 기업의 스마트워크 환경 구현에 필수적인 도구인 스마트프로세스는 PC나 노트북을 통해 웹으로 사용할 수 있고, 스마트폰을 통해 모바일업무에도 적용할 수 있다.&lt;/p&gt;
&lt;p&gt;단독 제품의 경우 사용자당 월 4만원 정도며 풀 패키지 도입에도 월 10만원이 넘지 않도록 했다.&lt;/p&gt;
&lt;p&gt;다우기술은 이날 스마트프로세스 출시와 관련해 KT와 협력도 단행했고, 제품 출시 이벤트로 모바일팩 구매 고객에게 아이폰 4를 무상제공한다. 다우기술은 경기도 죽전에 새로운 신규 사옥을 오픈하면서 이 곳에서 관련 서비스에 대한 교육도 진행할 계획이다.&lt;/p&gt;
&lt;p&gt;한편, 다우기술은 최근 가장 주목받고 있는 가상화 솔루션 업체인 VM웨어와 시트릭스의 총판 역할도 하면서 다양한 클라우드 컴퓨팅 시장에 대응하고 있다. 오픈 소스 소프트웨어에 대한 투자도 2-3년전부터 꾸준히 단행해 오면서 관련 인력 양성과 기술 노하우도 축적해 가고 있다. 관계회사인 온라인 증권 1위 업체인 키움증권의 고객 접속 분야의 경우 이미 오픈소스 소프트웨어를 통해 유닉스 기반의 상용 소프트웨어들을 걷어냈다.&lt;/p&gt;
&lt;p&gt;클라우드 시대, 다우기술이 토털 솔루션과 애플리케이션 제공 업체로 새로운 도전에 나서고 있다.&lt;/p&gt;
&lt;img src=&quot;http://www.bloter.net/?ak_action=api_record_view&amp;id=37793&amp;type=feed&quot; alt=&quot;&quot; /&gt;</description>
<category>모바일</category>
<category> 사람들</category>
<category> 엔터프라이즈</category>
<category> saas</category>
<category> vm웨어</category>
<category> 가상화</category>
<category> 김영훈</category>
<category> 다우기술</category>
<category> 시트릭스</category>
<category> 클라우드</category>
<author>도안구</author>
<guid>http://www.bloter.net/archives/37793</guid>
<pubDate>Wed, 01 Sep 2010 18:47:31 +0900</pubDate>
</item>
<item>
<title>당신이 원하는 태블릿은?…”착한 가격에 풍부한 콘텐트”</title>
<link>http://www.bloter.net/archives/37770</link>
<description>&lt;p&gt;드디어 국내에서도 태블릿 시장이 꿈틀거리고 있습니다. 이번 주 들어 지난 30일 &lt;a href=&quot;http://www.bloter.net/archives/37663&quot; target=&quot;_blank&quot;&gt;엔스퍼트가 KT와 함께 ‘아이덴티티 탭’을 선보였고&lt;/a&gt;, 잇따라 31일에는 PMP 전문업체 &lt;a href=&quot;http://www.bloter.net/archives/37725&quot; target=&quot;_blank&quot;&gt;아이스테이션이 3종의 안드로이드 기반 태블릿을 공개&lt;/a&gt;했습니다. 삼성전자의 갤럭시 탭도 3일부터 베를린에서 열리는 &lt;a href=&quot;http://www.bloter.net/archives/37348&quot; target=&quot;_blank&quot;&gt;가전박람회(IFA) 2010에 앞서 현지에서 공식적으로 첫 선을 보일 것&lt;/a&gt;으로 알려졌습니다.&lt;/p&gt;
&lt;p&gt;LG전자는 올 4분기 안드로이드 기반의 태블릿을 출시할 계획이며, 델, 아수스 등 해외 업체와 TG삼보, 아이스테이션, 유경, 코원 등 국내 중견 기업도 태블릿 PC를 출시했거나 출시를 앞두고 있습니다. 아이패드도 올해가 가기 전에는 국내에 출시될 가능성이 높습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;&lt;a href=&quot;http://www.bloter.net/files/2010/09/3-tablets1.jpg&quot;&gt;&lt;img class=&quot;size-full wp-image-37782  aligncenter&quot; title=&quot;3 tablets&quot; src=&quot;http://www.bloter.net/files/2010/09/3-tablets1.jpg&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;267&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;&lt;em&gt;왼쪽부터 손서대로 애플 아이패드와 KT 아이덴티티 탭, 아이스테이션 Z3D&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;다양한 태블릿이 시장에 선보이는 만큼 브랜드와 운영체제, 성능과 가격대 등이 천차만별입니다. 과연 어떤 요소를 갖춘 태블릿이 소비자들의 선택을 받을까요?&lt;/p&gt;
&lt;p&gt;블로터닷넷 사이트와 트위터를 통해 ‘태블릿을 구매할 때 어떤 점을 우선적으로 고려하시겠습니까?’라는 설문조사를 실시했습니다. 8월 18일부터 오늘까지 총 1017분이 설문에 참여해주셨습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;&lt;a href=&quot;http://www.bloter.net/files/2010/09/bloterresearchtabletno2.jpg&quot;&gt;&lt;img class=&quot;aligncenter&quot; style=&quot;float: none;margin-left: auto;margin-right: auto;border: 0px&quot; title=&quot;bloter research tablet no2&quot; src=&quot;http://www.bloter.net/files/2010/09/bloterresearchtabletno2_thumb.jpg&quot; border=&quot;0&quot; alt=&quot;bloter research tablet no2&quot; width=&quot;400&quot; height=&quot;431&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;&lt;em&gt;태블릿을 구매할 때 어떤 점을 우선적으로 고려하시겠습니까?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;그 중에 33.2%에 해당하는 338분이 ‘가격’을 가장 먼저 고려하겠다고 답변해주셨습니다. 많은 소비자들이 태블릿을 세컨드 디바이스로 구입하게 되는 만큼 가격에 대한 부담을 느끼고 있는 것으로 판단됩니다. 지금까지 가격이 공개된 제품만 따져봐도 30만원 대에서 90만원대까지 가격폭이 다양한데, 가격 경쟁력이 있는 제품이 많은 사랑을 받을 것으로 예상해볼 수 있겠습니다.&lt;/p&gt;
&lt;p&gt;‘풍부한 콘텐트’를 우선 고려하겠다는 답변이 16.9%로 뒤를 이었습니다. 이미 아이패드의 사례를 통해 입증됐듯이 다양한 애플리케이션은 물론 전자책과 동영상, 뉴스 콘텐트 등 풍부한 콘텐트를 서비스할 수 있는 제품이 많은 사랑을 받을 것으로 기대됩니다.&lt;/p&gt;
&lt;p&gt;가격과 콘텐트를 우선적으로 고려하겠다는 답변을 합치면 전체의 응답자의 절반(50.1%)에 달합니다. 결국 소비자들이 태블릿을 구입할 때 바라는 것은 ‘저렴한 가격의 단말기에서 풍부한 콘텐트를 사용할 수 있느냐’라고 요약해볼 수 있겠습니다.&lt;/p&gt;
&lt;p&gt;그런 의미에서 구글의 안드로이드 마켓을 사용하기 위한 인증 작업이 지연되고 있는 중소기업의 제품들은 이 문제가 해결될 때까지 적잖은 어려움을 겪을 것으로 보입니다. 업계에 따르면 구글에서 CPS 인증 관련 업무를 담당하는 엔지니어들이 부족해 적은 물량으로 출시되는 중소기업의 제품들은 당장 구글의 인증을 받기가 어려운 상황이라고 합니다.&lt;/p&gt;
&lt;p&gt;그런 면에서 중소기업의 제품의 경우 독자적으로 유통하기보다는 애플리케이션 마켓을 보유하고 있는 통신사와 협력해 콘텐트 유통망을 확보하고, 결합 상품이나 보조금을 통해 소비자들의 가격부담을 줄이는 전략을 취하는 것이 바람직할 것으로 예상됩니다.&lt;/p&gt;
&lt;p&gt;한편, 메모리 용량(1.8%)과 운영체제의 종류(3.1%), 3G 네트워크 지원 여부(3.2%)와 제조사 브랜드(4%), 화면 크기(4.4%) 등을 우선적으로 고려하겠다고 밝힌 답변은 각각 전체 응답자의 5%에도 미치지 못했습니다.&lt;/p&gt;
&lt;p&gt;소비자들이 원하는 것은 하드웨어 사양이 어떠한가, 소프트웨어적인 특성이 어떠한가 보다, 저렴한 가격의 디바이스에서 풍부한 콘텐트를 사용할 수 있는냐에 초점이 맞춰져 있다는 것을 다시 한 번 확인할 수 있는 결과입니다.&lt;/p&gt;
&lt;p&gt;다만, 하드웨어 사양 가운데에서도 CPU속도(11%)와 무게, 배터리 수명(9.4%) 등 제품의 성능 또는 휴대성에 직결되는 부분이나, 소프트웨어 이슈 가운데 터치감, UX(12.8%) 등 사용자 인터페이스와 직결되는 부분에 대해서는 많은 사용자들이 관심을 가지고 고려할 것이라고 응답했습니다.&lt;/p&gt;
&lt;p&gt;[관련기사]&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.bloter.net/archives/37012&quot; target=&quot;_blank&quot;&gt;가장 갖고 싶은 태블릿은 ‘아이패드’…58.3%로 1위&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.bloter.net/archives/37663&quot; target=&quot;_blank&quot;&gt;KT, 9월초 태블릿PC ‘아이덴티티 탭’ 출시&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.bloter.net/archives/37725&quot; target=&quot;_blank&quot;&gt;PMP 강자 아이스테이션, 태블릿과 3D도 통할까?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;img src=&quot;http://www.bloter.net/?ak_action=api_record_view&amp;id=37770&amp;type=feed&quot; alt=&quot;&quot; /&gt;</description>
<category>모바일</category>
<category> cpu</category>
<category> 가격</category>
<category> 갤럭시탭</category>
<category> 버디</category>
<category> 설문조사</category>
<category> 아이덴티티 탭</category>
<category> 아이패드</category>
<category> 콘텐츠</category>
<category> 태블릿</category>
<category> 터치</category>
<author>주민영</author>
<guid>http://www.bloter.net/archives/37770</guid>
<pubDate>Wed, 01 Sep 2010 16:48:36 +0900</pubDate>
</item>
<item>
<title>아이폰-안드로이드 앱 정보, ‘앱톡’에서 ‘OK’</title>
<link>http://www.bloter.net/archives/37764</link>
<description>&lt;p&gt;&lt;a href=&quot;http://www.bloter.net/files/2010/09/apptalk100910.jpg&quot;&gt;&lt;img class=&quot;aligncenter size-full wp-image-37765&quot; title=&quot;apptalk100910&quot; src=&quot;http://www.bloter.net/files/2010/09/apptalk100910.jpg&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;272&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
스마트폰 사용자가 300만명을 넘어선 가운데 스마트폰 앱에 대한 관심이 뜨겁다. 더우기 아이패드와 갤럭시탭과 같은 ‘쇼파디바이스’들이 출현하면서 다양한 애플리케이션에 대한 관심은 더욱 높아질 전망이다.&lt;/p&gt;
&lt;p&gt;이런 가운데 아이폰용 앱들에 대한 리뷰와 아이폰 사용과 관련한 정보를 제공해 왔던 앱톡(&lt;strong&gt;&lt;a href=&quot;http://www.apptalk.co.kr/&quot; target=&quot;_blank&quot;&gt;www.AppTalk.co.kr&lt;/a&gt;&lt;/strong&gt;)이 안드로이드용 앱에 대한 리뷰와 정보 사이트도 오픈해 스마트폰 사용자들에게 한발 더 다가선다.&lt;/p&gt;
&lt;p&gt;앱톡 안드로이드(&lt;a href=&quot;http://android.apptalk.co.kr/&quot; target=&quot;_blank&quot;&gt;http://android.apptalk.co.kr&lt;/a&gt;)는 SK텔레콤의 T스토어, 구글의 안드로이드 마켓 등 다양한 앱스토어 정보를 한 곳에서 통합적으로 제공받을 수 있다는 것이 특징이다. 특히 각 앱스토어의 안드로이드 앱을 영상으로 촬영해 제공함으로써, 실제 실행되는 앱을 눈으로 확인해볼 수 있다는 것이 핵심이다. 또한 오늘 출시된 앱 정보를 실시간으로 전달하는 ‘오늘의 앱’ 코너를 비롯해 안드로이드 폰 사용자의 다양한 라이프 스타일을 소개하는 ‘안드로이드 스토리’도 서비스된다.&lt;/p&gt;
&lt;p&gt;이와 함께 앱톡 안드로이드 오픈을 기념해, 1인 앱 개발자와 소규모 앱 개발업체를 후원하는 ‘앱톡 오아시스(Oasis) 캠페인 2nd’를 진행한다. 이번 오아시스 캠페인은 아이폰 앱과 안드로이드 앱을 모두 대상으로 하며, 참여한 모든 앱에 대해 2주간 앱톡에 소 개되는 기회가 제공된다. 또한 우수 앱으로 선정된 10개의 앱에 대해서는 추가적인 혜택이 제공될 예정이다.&lt;/p&gt;
&lt;p&gt;조규형 앱톡 사장은 “단순히 스마트폰 앱에 대한 정보 전달에 머물지 않고 다양한 국내 모바일 회사들에 대해서도 소개를 해, 개발 회사들의 제품들이 더 많은 소비자들에게 알려질 수 있도록 노력할 계획”이라고 밝혔다.&lt;/p&gt;
&lt;img src=&quot;http://www.bloter.net/?ak_action=api_record_view&amp;id=37764&amp;type=feed&quot; alt=&quot;&quot; /&gt;</description>
<category>모바일</category>
<category> 삼성전자</category>
<category> 스마트폰</category>
<category> 아이패드</category>
<category> 아이폰</category>
<category> 안드로이드</category>
<category> 애플</category>
<category> 앱톡</category>
<author>도안구</author>
<guid>http://www.bloter.net/archives/37764</guid>
<pubDate>Wed, 01 Sep 2010 16:09:29 +0900</pubDate>
</item>
<item>
<title>L4/7 스위치 시장에 ‘LG-에릭슨’ 진출…시트릭스와 협력</title>
<link>http://www.bloter.net/archives/37760</link>
<description>&lt;p&gt;인터넷 기술이 보편적으로 전 산업 분야로 적용되면서 수많은 애플리케이션들이 인터넷 기반으로 서비스되고 있다. 메일부터 시작해 최근에는 인터넷전화와 방송과 교육, 영화, 화상회의 등 점차 멀티미디어들이 점차 인터넷 기반으로 서비스되고 있다. 기업용 애플리케이션들도 마찬가지다. 글로벌 기업들은 본사와 전세계 각 지사를 실시간으로 엮어내기 위해 인터넷 기반으로 애플리케이션들을 수정하거나 신규 개발하고 있다.&lt;/p&gt;
&lt;p&gt;거기에 특정 거점에 모든 IT 자원들을 집중시키고 필요할 때 원하는 서비스를 제공하려는 클라우드 컴퓨팅도 주목받고 있다.&lt;/p&gt;
&lt;p&gt;수많은 애플리케이션들이 안정적으로 서비스 사업자로부터 최종사용자들에게 전달될 수 있도록 관련 장비와 솔루션을 제공하는 회사들이 애플리케이션 딜리버리 네트워크(ADN) 업체들이다. LG-에릭슨이 이 시장에 주목하고 있다.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.lgericsson.co.kr&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;LG-에릭슨&lt;/strong&gt;&lt;/a&gt;이 수많은 서버들에 접속이 몰릴 때 적절히 이런 트래픽을 분산시키고 다양한 보안 기능을 제공해 서비스가 연속성을 갖도록 보장하는 데 사용되는 L4/7 스위치 시장에 뛰어들었다. LG-에릭슨은 노텔의 L4 스위치인 알테온 장비를 국내 공급해 왔지만 노텔이 알테온 사업부를 라드웨어에 매각하면서 독자적인 제품 개발에 눈을 돌렸다.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.bloter.net/files/2010/09/LGericssonadcahn.jpg&quot;&gt;&lt;img class=&quot;alignright size-full wp-image-37761&quot; style=&quot;margin: 10px;border: 1px solid black&quot; title=&quot;LGericssonadcahn&quot; src=&quot;http://www.bloter.net/files/2010/09/LGericssonadcahn.jpg&quot; alt=&quot;&quot; width=&quot;300&quot; height=&quot;217&quot; /&gt;&lt;/a&gt;안종대 LG- 에릭슨의 엔터프라이즈 사업부장(상무)는 “LNS4012는 하나의 플랫폼 기반으로 고객 환경에 맞도록 다양한 기능을 선택적으로 결합할 수 있는 합리적인 솔루션”이라며 “고객들은 단순 로드밸런싱 기능을 지원하는 L4스위치에서 애플리케이션 딜리버리 네트워킹(ADN)으로 전환하고 있는 추세에 발맞춰 경제적인 비용으로 L7 스위치의 기능들을 경험할 수 있을 것”이라고 말했다.&lt;/p&gt;
&lt;p&gt;LG-에릭슨은 지난해 5월 관련 제품 개발을 위해 &lt;a href=&quot;http://www.citrix.co.kr&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;시트릭스&lt;/strong&gt;&lt;/a&gt;와 협력했다. 그 후 1년 4개월이 지난 이달 LG-에릭슨은 자사의 하드웨어와 시트릭스의 운영체제와 소프트웨어를 결합시킨 신개념 L4/7 스위치 ‘iPECS-LNS4012’를 출시했다.&lt;/p&gt;
&lt;p&gt;LG-에릭슨의 ‘LNS4012’는 기존 L4 스위치 핵심 기능인 ‘로드 밸런싱’은 물론, 캐싱•압축•보안•서버의 성능향상과 보호 등의 L7 스위치 기능들을 소프트웨어 기반의 업그레이드를 통해 총체적으로 제공하는 것이 가장 큰 특징이다. 따라서 고객들은 L7 스위치 도입에 대한 비용 부담은 줄이고 사용 편의성은 최대화 할 수 있다는 것이 LG-에릭슨 측의 설명.&lt;/p&gt;
&lt;p&gt;애플리케이션 서버의 과부하를 방지하고 서비스거부(DoS)와 분산 서비스거부(DDoS(와 같은 외부 공격을 방어해 서비스의 중단이나 지연을 최소화하고, 특정 애플리케이션 변동 없이도 데이터를 암호화해 압축 전송시킴으로써 효율적인 대역폭 사용을 가능하게 한 점 또한 기존 L4 스위치와 차별화된 기능이다.&lt;/p&gt;
&lt;p&gt;뿐만 아니라, LG-에릭슨 ‘LNS4012’는 스위치 포트 구성과 하드웨어 변경 없이 라이선스 기반만으로 기능 확대가 가능한 에디션 모델을 고객이 직접 각각 3가지씩 선택할 수 있는 ‘3+3’ 기능을 제공, 고객 환경에 최적화된 애플리케이션 설계를 가능하게 한다.&lt;/p&gt;
&lt;p&gt;특히 이번 출시는 글로벌 스위치 시장에서 기술력을 인정받고 있는 시트릭스와 역시 우수한 기술력과 탄탄한 국내 서비스 조직을 갖춘 LG-에릭슨간 협력인 만큼 고객들에게 최상의 제품과 서비스를 제공한다는 목표다.&lt;/p&gt;
&lt;p&gt;한편 LG-에릭슨은 기존 시트릭스 고성능 L7 스위치 ‘넷스케일러(NetScaler)’, WAN가속기 ‘브랜치 리피터(Branch Repeater) 시리즈와 L3 스위치, L2 스위치, L2 보안 솔루션과 함께 이번에 새롭게 선보이는 ‘LNS4012’를 통해 전체적인 제품 포트폴리오를 바탕으로 ADN 솔루션을 고객들에게 지속적으로 제공하는데 주력할 계획이다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;용어 설명&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;로드 밸런싱(혹은 ‘부하 분산’)&lt;/strong&gt;: 병렬로 운영되는 시스템 사이에서 발생하는 부하가 균등하게 나타날 수 있도록 시스템 작업 처리를 분산시키고 할당하는 기술&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;서비스 거부(DoS)&lt;/strong&gt;란 해킹수법의 하나로 한명 또는 그 이상의 사용자가 시스템의 리소스를 독점하거나, 파괴함으로써 시스템이 더 이상 정상적인 서비스를 할 수 없도록 만드는 공격 방법&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;분산 서비스거부(DDoS)&lt;/strong&gt; 공격은 여러 대의 컴퓨터를 일제히 동작하게 하여 특정 사이트를 공격하는 방식&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;관련 기사 : &lt;a href=&quot;http://www.bloter.net/archives/13724&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;LG-노텔, 시트릭스와 보급형 L4 장비 공동 개발&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;img src=&quot;http://www.bloter.net/?ak_action=api_record_view&amp;id=37760&amp;type=feed&quot; alt=&quot;&quot; /&gt;</description>
<category>사람들</category>
<category> 엔터프라이즈</category>
<category> adc</category>
<category> L4</category>
<category> 7</category>
<category> LG-에릭슨</category>
<category> LG에릭슨</category>
<category> 시트릭스</category>
<category> 안종대</category>
<category> 애플리케이션딜리버리네트워크</category>
<author>도안구</author>
<guid>http://www.bloter.net/archives/37760</guid>
<pubDate>Wed, 01 Sep 2010 14:59:32 +0900</pubDate>
</item>
<item>
<title>네이버, 첫 웹오피스 ‘네이버 워드’ 출시</title>
<link>http://www.bloter.net/archives/37752</link>
<description>&lt;p&gt;네이버가 ‘네이버 워드’를 9월1일 선보였다. 스프레드시트, 프리젠테이션, 워드로 구성된 웹오피스 ‘네이버 오피스’의 첫 작품이다. 네이버가 자체 개발한 ‘스마트 에디터’를 기반으로 제작됐다.&lt;/p&gt;
&lt;p&gt;네이버 워드는 인터넷만 연결돼 있으면 언제 어디서나 문서 작업을 할 수 있는 서비스다. MS 워드나 한컴 ‘아래아한글’ 문서도 열어보고 편집할 수 있다.&lt;/p&gt;
&lt;p&gt;저장매체도 필요 없다. 네이버 워드로 작성중인 문서는 1분 단위로 ‘&lt;a href=&quot;http://ndrive.naver.com&quot; target=&quot;_blank&quot;&gt;N드라이브&lt;/a&gt;‘에 자동 저장된다. N드라이브는 네이버가 제공하는 무료 웹창고 서비스다. 10GB 무료 저장공간을 기본 제공한다.&lt;/p&gt;
&lt;p&gt;네이버 워드는 N드라이브에 접속해 이용하면 된다. 네이버 나눔글꼴을 비롯해 한글 글꼴 10종류를 지원한다. 이미지나 표, 특수문자, 지도, 동영상 등을 삽입하는 기능을 제공하며, 한글 맞춤법 기능도 들어 있다.&lt;/p&gt;
&lt;p&gt;네이버 주요 서비스와도 손쉽게 연동된다. 네이버 지도를 본문에 넣거나 영어·국어·일어·중국어 사전 기능도 제공한다. 음악, 상품, 백과사전, 날씨 등 네이버 DB를 활용해 글을 쓸 수 있는 ‘글감첨부’ 기능이 들어 있다. 작성중인 문서를 e메일, 카페, 블로그로 내보내는 기능도 제공한다. 완성된 글은 DOC, PDF, HTML 등 다양한 형식으로 바꿔 N드라이브나 PC에 저장할 수 있다.&lt;/p&gt;
&lt;p&gt;NHN은 네이버 오피스의 나머지 시리즈도 곧 잇따라 선보일 예정이다. 네이버 오피스는 사이냅소프트와 협력해 제공된다.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;&lt;a href=&quot;http://www.bloter.net/files/2010/09/naver_word_01.jpg&quot;&gt;&lt;img class=&quot;aligncenter size-full wp-image-37753&quot; title=&quot;naver_word_01&quot; src=&quot;http://www.bloter.net/files/2010/09/naver_word_01.jpg&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;381&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;▲’N드라이브’에 접속한 다음 ‘새 문서 만들기’를 누르면 네이버 워드를 이용할 수 있다.&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;&lt;a href=&quot;http://www.bloter.net/files/2010/09/naver_word_02.jpg&quot;&gt;&lt;img class=&quot;aligncenter size-full wp-image-37754&quot; title=&quot;naver_word_02&quot; src=&quot;http://www.bloter.net/files/2010/09/naver_word_02.jpg&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;298&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;▲10여종의 한글 글꼴과 영문 글꼴 4종을 제공한다.&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;&lt;a href=&quot;http://www.bloter.net/files/2010/09/naver_word_02-1.jpg&quot;&gt;&lt;img class=&quot;aligncenter size-full wp-image-37755&quot; title=&quot;naver_word_02-1&quot; src=&quot;http://www.bloter.net/files/2010/09/naver_word_02-1.jpg&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;299&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;▲글꼴 세부 설정 메뉴.&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;&lt;a href=&quot;http://www.bloter.net/files/2010/09/naver_word_03.jpg&quot;&gt;&lt;img class=&quot;aligncenter size-full wp-image-37756&quot; title=&quot;naver_word_03&quot; src=&quot;http://www.bloter.net/files/2010/09/naver_word_03.jpg&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;297&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;▲내 PC나 N드라이브에 저장된 이미지를 본문에 삽입할 수 있다.&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;&lt;a href=&quot;http://www.bloter.net/files/2010/09/naver_word_04.jpg&quot;&gt;&lt;img class=&quot;aligncenter size-full wp-image-37757&quot; title=&quot;naver_word_04&quot; src=&quot;http://www.bloter.net/files/2010/09/naver_word_04.jpg&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;299&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;▲완성된 문서는 N드라이브나 PC에 저장할 수 있다. DOC, PDF, TXT, HTML, ODF 등 다양한 포맷으로 저장 가능하다.&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;&lt;a href=&quot;http://www.bloter.net/files/2010/09/naver_word_05.jpg&quot;&gt;&lt;img class=&quot;aligncenter size-full wp-image-37758&quot; title=&quot;naver_word_05&quot; src=&quot;http://www.bloter.net/files/2010/09/naver_word_05.jpg&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;332&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;▲문서 용도에 맞게 쓸 수 있는 9종류 템플릿을 제공한다.&lt;/span&gt;&lt;/p&gt;
&lt;img src=&quot;http://www.bloter.net/?ak_action=api_record_view&amp;id=37752&amp;type=feed&quot; alt=&quot;&quot; /&gt;</description>
<category>소셜웹</category>
<category> nhn</category>
<category> saas</category>
<category> 네이버</category>
<category> 네이버오피스</category>
<category> 네이버워드</category>
<category> 웹오피스</category>
<author>이희욱</author>
<guid>http://www.bloter.net/archives/37752</guid>
<pubDate>Wed, 01 Sep 2010 12:50:42 +0900</pubDate>
</item>
<item>
<title>Add-on Performance part 2: Helping consumers make informed decisions</title>
<link>http://blogs.msdn.com/b/ie/archive/2010/08/31/add-on-performance-part-2-helping-consumers-make-informed-decisions.aspx</link>
<description>&lt;p&gt;The &lt;a href=&quot;http://www.ietestdrive.com/&quot;&gt;platform previews&lt;/a&gt; show the focus in IE9 on performance, interoperable HTML5 through same markup, and hardware acceleration. We&amp;rsquo;ve also posted here about the work we&amp;rsquo;ve done with &lt;a href=&quot;http://blogs.msdn.com/b/ie/archive/2010/08/11/add-on-guidelines-and-requirements-in-action-upgrade-advisor.aspx&quot;&gt;add-on developers&lt;/a&gt;, and we shared some &lt;a href=&quot;http://blogs.msdn.com/b/ie/archive/2010/08/03/add-on-performance-part-1-measuring-add-on-performance.aspx&quot;&gt;data about add-on performance&lt;/a&gt; and how we measure it. &lt;/p&gt;
&lt;p&gt;In this post, we cover more of our thinking about measuring add-on performance and how to help consumers to stay in control of their browsing experience.&lt;/p&gt;
&lt;h3&gt;Add-on Performance and Site Performance &lt;/h3&gt;
&lt;p&gt;We&amp;rsquo;ve written about the &lt;a href=&quot;http://blogs.msdn.com/b/ie/archive/2010/07/06/a-gpu-powered-shopping-experience-with-amazon-com.aspx&quot;&gt;different&lt;/a&gt; &lt;a href=&quot;http://blogs.msdn.com/b/ie/archive/2010/07/14/caching-improvements-in-internet-explorer-9.aspx&quot;&gt;dimensions&lt;/a&gt; of &lt;a href=&quot;http://blogs.msdn.com/b/ie/archive/2010/08/18/microsoft-to-co-chair-new-w3c-web-performance-working-group.aspx&quot;&gt;performance&lt;/a&gt; in the web platform. We have also talked about the &lt;a href=&quot;http://blogs.msdn.com/b/ie/archive/2010/08/03/add-on-performance-part-1-measuring-add-on-performance.aspx&quot;&gt;role add-ons play&lt;/a&gt; in overall browser performance. Site developers want a reliable, fast platform to run their web sites. Consumers (site visitors) want a reliable, fast experience of those sites. The perception of site speed includes the user&amp;rsquo;s experience of the site, the browser, and the installed add-ons. &lt;/p&gt;
&lt;p&gt;As discussed in &lt;a href=&quot;http://blogs.msdn.com/b/ie/archive/2010/08/03/add-on-performance-part-1-measuring-add-on-performance.aspx&quot;&gt;Add-on Performance part 1&lt;/a&gt;, add-ons can have a material impact on site performance and the consumer experience. Our goal with IE is that users have everything they &lt;a href=&quot;http://blogs.msdn.com/b/ie/archive/2009/07/18/how-to-make-ie-open-new-tabs-faster.aspx&quot;&gt;need to make informed decisions&lt;/a&gt; and &lt;a href=&quot;http://blogs.msdn.com/b/ie/archive/2009/09/09/guidelines-for-add-on-developers.aspx&quot;&gt;remain in control&lt;/a&gt; of their browsing experience. &lt;/p&gt;
&lt;h3&gt;Measuring performance to inform decisions&lt;/h3&gt;
&lt;p&gt;It is important that people stay in control of their browsing experience. This includes many aspects of using the browser including downloads, &lt;a href=&quot;http://blogs.msdn.com/b/ie/archive/2010/08/01/online-privacy-tracking-and-ie8-s-inprivate-filtering.aspx&quot;&gt;privacy&lt;/a&gt;, security, and controlling which add-ons to use. The ideal experience allows people to have exactly the add-ons they want &amp;ndash; no more no less. &lt;/p&gt;
&lt;p&gt;For users, there is a basic cost to benefit decision to make with add-ons. To make an informed decision, the user needs to have a clear view on the costs of the add-on as well as the apparent benefits. Most people understand the benefit they get from using an add-on they choose to install. It is more difficult to understand the full cost that add-ons bring to your browsing experience in terms of performance, responsiveness, and reliability. &lt;/p&gt;
&lt;p&gt;When we introduced &lt;a href=&quot;http://blogs.msdn.com/b/ie/archive/2009/03/03/create-a-dynamic-web-slice-in-5-minutes.aspx&quot;&gt;Web Slices&lt;/a&gt;, &lt;a href=&quot;http://blogs.msdn.com/b/ie/archive/2009/03/27/accelerator-spotlight.aspx&quot;&gt;Accelerators&lt;/a&gt; and updates &lt;a href=&quot;http://blogs.msdn.com/b/ie/archive/2010/02/17/search-providers-best-practices-on-setting-the-default.aspx&quot;&gt;to search providers&lt;/a&gt; in IE8 we started a pattern of making sure that people are in control of the add-on capabilities in their browser. These types of declarative add-ons do not have performance or reliability costs to the browsing experience. The main impact they have is taking up space in the favorites bar or right click menu. Sites can promote web slices or add-ons, and the user is in control to decide whether to add them or not. This is an important part of the add-on experience even for &lt;a href=&quot;http://blogs.msdn.com/b/ieinternals/archive/2009/08/21/agcore-addon-hangs-internet-explorer.aspx&quot;&gt;savvy users&lt;/a&gt;; namely that people must &lt;i&gt;consent&lt;/i&gt; to have the add-on.&lt;/p&gt;
&lt;p&gt;For the types of add-ons that do have a potential performance and reliability cost (toolbars and BHOs), the user needs additional information. IE8 users can see the &lt;a href=&quot;http://blogs.msdn.com/b/ie/archive/2009/07/18/how-to-make-ie-open-new-tabs-faster.aspx&quot;&gt;load time for add-ons in the Manage add-ons&lt;/a&gt; dialog. This is a good start, but there is more IE can do to help people fully understand the impact an add-on has on browsing performance. &lt;/p&gt;
&lt;p&gt;Ideally IE would measure both load time and the additional time it takes to navigate to sites (navigation time). Measuring this time for every navigation, including the first time the add-on runs, is crucial because it represents how long the user actually had to wait to load IE and navigate to their favorite sites on their PC. &lt;/p&gt;
&lt;p&gt;An important part of informing users is providing a threshold to understand the impact of add-ons have on performance. No matter what hardware you&amp;rsquo;re running on - from low end netbooks which throttle the CPU for long battery life or high end gaming desktops &amp;ndash; human perception thresholds don&amp;rsquo;t change. &lt;a href=&quot;http://hcibib.org/sam/1.html&quot;&gt;Several&lt;/a&gt; &lt;a href=&quot;http://www.useit.com/alertbox/response-times.html&quot;&gt;studies&lt;/a&gt; regarding website response time report that users notice any delay over 0.2 seconds. Actions that are faster than 0.2 seconds appear instantaneous.&amp;nbsp; Scenarios with response times slower than that threshold can feel &amp;ldquo;slow&amp;rdquo; to users. Of course, the individual person should be free to choose a different threshold that matches their particular browsing needs. &lt;/p&gt;
&lt;p&gt;When considering the performance of add-ons, it is useful to do so in relationship to this threshold. People think about the speed of actions in the browser, like opening a new site, rather than the speed of individual add-ons, so what matters to the user is the total amount of time taken by add-ons. From the user&amp;rsquo;s point of view, they don&amp;rsquo;t care if it&amp;rsquo;s one add-on taking 2 seconds or 10 add-ons each taking 0.2 seconds. Informing users means providing the visibility on everything that is contributing to the performance they experience, with enough detail that the user stays in control. With this information people can make decisions about individual add-ons in the context of all the other add-ons that they&amp;rsquo;re running.&lt;/p&gt;
&lt;h3&gt;A personal decision&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/b/ie/archive/2010/08/03/add-on-performance-part-1-measuring-add-on-performance.aspx&quot;&gt;In part 1&lt;/a&gt; of this series we shared statistical data about add-on performance which is compiled from people who opt into sending &lt;a href=&quot;http://www.microsoft.com/products/ceip/EN-US/default.mspx&quot;&gt;telemetry&lt;/a&gt;. Because this data is anonymous it&amp;rsquo;s useful for spotting broad trends and working with add-on partners but it&amp;rsquo;s not useful for helping a specific person in their environment. What matters to a person is what happens on his or her own machine. So, they need data that&amp;rsquo;s specifically about their add-ons on their machine with their browsing habits; purely local data. This enables them to make the most informed decision about the add-ons they use and to stay in control over their browsing experience&lt;/p&gt;
&lt;p&gt;With this information, the user can make an informed choice. They understand the value of the add-on features and the performance implications. People may decide that an add-on is so valuable that they&amp;rsquo;re willing to wait a &amp;frac14; second or even a &amp;frac12; second during their browsing. People may also decide that they don&amp;rsquo;t utilize the features of a particular add-on frequently so they disable it until they want it. Consistent with other browsers, IE makes re-enabling add-ons easy through the Manage add-ons dialog. The most popular entry point is in the right-click menu of the command bar but it can also be accessed from the tools menu, the right click menu for a page (under accelerators), the search box dropdown menu (under search providers), windows control panel and of course from the options dialog. Microsoft doesn&amp;rsquo;t share information with developers about individual users disabling or enabling add-ons in keeping with our privacy policy. Using add-ons is a personal choice, so IE never automatically enables or disables an add-on &amp;ndash; the user is in control and they choose which to enable and which to disable. IE gives people the information they need to make an informed decision.&lt;/p&gt;
&lt;h3&gt;More details for add-on developers&lt;/h3&gt;
&lt;p&gt;For background, we&amp;rsquo;ve talked about &lt;a href=&quot;http://blogs.msdn.com/b/ie/archive/2010/06/21/measuring-browser-performance-with-the-windows-performance-tools.aspx&quot;&gt;using windows tools&lt;/a&gt; to measure load and navigation &lt;a href=&quot;http://blogs.msdn.com/b/ie/archive/2010/08/03/add-on-performance-part-1-measuring-add-on-performance.aspx&quot;&gt;performance of add-ons&lt;/a&gt;. Here&amp;rsquo;s more detail about the load and navigation measurements so add-on developers can test the performance of their products or do something more like build capabilities into their products to detect when browsing is slowed and tune the add-on experience appropriately.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Add-on Load time (Load Time)&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;IE8 measures load time when a new tab is created and IE initializes all enabled add-ons (and IE9 will do this too). IE calls CoCreateInstance(), ShowDW() and SetSite() for each add-on. In IE8, an add-on&amp;rsquo;s load time is the total time it takes to return from the CoCreateInstance() and SetSite() calls. In the future, we&amp;rsquo;ll also measure the ShowDW() function call.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Webpage Navigation (Navigation Time) &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Earlier in this post, we talked about the importance of measuring navigation time. Here&amp;rsquo;s how we do it on the IE team and how we recommend add-on developers do it. An add-on&amp;rsquo;s navigation time is the time it takes to handle the following three DWebBrowser2 events while navigating to a webpage:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BeforeNavigate &lt;/li&gt;
&lt;li&gt;NavigateComplete &lt;/li&gt;
&lt;li&gt;DocumentComplete &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We start measuring a navigation time for all enabled add-ons once IE fires a top-level BeforeNavigate event. &lt;/p&gt;
&lt;p&gt;Sites may cause several navigation events to fire as they download images or content in frames. So, we keep an open tally of the time the add-ons take for each event on that page until the user&lt;b&gt;:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Navigates (another top-level BeforeNavigate) &lt;/li&gt;
&lt;li&gt;Cancels the navigation &lt;/li&gt;
&lt;li&gt;Closes the tab &lt;/li&gt;
&lt;li&gt;Closes IE &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Once that occurs, we append the navigation time data point for each of the add-ons to the list. &lt;/p&gt;
&lt;p&gt;When showing the load or navigation time data to users, we average up to the last 10 data points. We don&amp;rsquo;t measure the performance of disabled add-ons since they aren&amp;rsquo;t running or taking any time to load or navigate. Instead we show the latest data we have in parenthesis to inform the enable decision for people.&lt;/p&gt;
&lt;p&gt;In everything we do including add-on performance measurement, IE treats all add-ons from all developers the same. Only the user makes decisions to enable or disable add-ons.&lt;/p&gt;
&lt;p&gt;Thanks, &lt;br /&gt;Herman Ng&lt;/p&gt;
&lt;p&gt;Edit on 8/31 - replaced ExtensionShowDW with ShowDW() and refer to it as a function call rather than an event in 'Add-on Load time (Load Time)' paragraph.&amp;nbsp; Also removed extra period.&lt;/p&gt;&lt;div style=&quot;clear:both;&quot;&gt;&lt;/div&gt;&lt;img src=&quot;http://blogs.msdn.com/aggbug.aspx?PostID=10056620&quot; width=&quot;1&quot; height=&quot;1&quot;&gt;</description>
<category>Add-ons</category>
<author>ieblog</author>
<guid>http://blogs.msdn.com/b/ie/archive/2010/08/31/add-on-performance-part-2-helping-consumers-make-informed-decisions.aspx</guid>
<pubDate>Wed, 01 Sep 2010 10:27:00 +0900</pubDate>
</item>
<item>
<title>KT, 전국 모든 지하철 역사에 무선랜 개통</title>
<link>http://www.bloter.net/archives/37748</link>
<description>&lt;p&gt;지하철을 자주 이용하는 스마트폰 사용자들은 최근 들어 와이파이를 사용할 수 있는 지하철 역사가 꾸준히 늘어나고 있는 것을 느낄 수 있었을 것이다. 지난 6월부터 전국 지하철 와이파이망 공사에 착수했던 KT가 지난달까지 서울·수도권 및 전국 5대 광역시의 모든 지하철 역사에서 공사를 마무리지었다고 1일 밝혔다.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;&lt;a href=&quot;http://www.bloter.net/files/2010/09/308705b32fcf.jpg&quot;&gt;&lt;img class=&quot;aligncenter&quot; style=&quot;float: none;margin-left: auto;margin-right: auto;border: 0px&quot; title=&quot;지하철역사&quot; src=&quot;http://www.bloter.net/files/2010/09/thumb.jpg&quot; border=&quot;0&quot; alt=&quot;지하철역사&quot; width=&quot;500&quot; height=&quot;346&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;&lt;em&gt;지하철 역사에서 와이파이를 이용해 무선인터넷을 사용하고 있는 모습&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;그 동안 KT는 7월말 광주광역시 지하철 역사 20개와 서울·수도권 환승역사 84개 및 일반역사 22개에 와이파이존을 구축한 데 이어 지난달 말까지 서울·수도권 160개(1~9호선) 및 수도권을 잇는 광역전철(과천/분당/일산선) 33개, 인천광역시 27개, 대전광역시 22개, 부산광역시 77개, 대구광역시 56개 등 전 역사에 순차적으로 와이파이존 설치를 완료했다.&lt;/p&gt;
&lt;p&gt;이로써 지하철을 이용하는 KT 고객들은 지하철을 기다리는 동안 지하철 역사에서 무료한 시간을 보내지 않고 스마트폰이나 노트북으로 3G보다 훨씬 빠른 속도의 와이파이를 통해 무선인터넷을 추가 부담 없이 이용할 수 있게 됐다.&lt;/p&gt;
&lt;p&gt;매일 지하철로 출퇴근한다는 직장인 음혜란(여 24세, 서울 송파거주)씨는 “와이파이가 지하철 역사에 구축되면 그 동안 3G망으로는 요금이나 속도 부담 때문에 사용할 수 없었던 앱을 쉽게 다운받을 수 있고 각종 동영상이나 스트리밍 서비스도 부담 없이 사용할 수 있어 기대된다”고 밝혔다.&lt;/p&gt;
&lt;p&gt;KT는 유동인구가 많고 무선데이터 트래픽이 높은 장소 위주로 와이파이존을 확대하고 있다. 현재까지 3만 3천 곳에 와이파이를 구축했으며 올해 말까지 4만 곳까지 확대한다. 더 나아가 내년 말까지는 10만 국소로 확대해 세계 1위의 와이파이 서비스를 제공한다는 방침이다.&lt;/p&gt;
&lt;p&gt;이대산 KT 무선네트워크본부장 상무는 “전국 지하철 역사 개통으로 고객들은 역사에서 무선인터넷을 편하게 이용할 수 있게 됐다”며 “지속적으로 와이파이 존을 확대해 대한민국을 진정한 모바일 원더랜드로 만들겠다”고 밝혔다.&lt;/p&gt;
&lt;p&gt;그런데 지하철 역사에 설치된 와이파이는 달리는 차량에서는 사용할 수 없다. 와이파이 접속을 자동으로 설정해두고 지하철에 탑승하게 되면 역사를 지나칠때마다 와이파이가 접속됐다가 끊어지기를 반복하며 오히려 무선 인터넷을 사용하기가 불편해지는 경우도 생긴다.&lt;/p&gt;
&lt;p&gt;이러한 문제를 해결하고 달리는 차량에서도 마음껏 무선인터넷을 사용할 수 있도록 하기 위해 KT는 지난달 22일 서울 및 수도권의 모든 지하철 차량과 수도권 공항버스, 광역버스에 이동형 와이파이를 구축하겠다고 밝힌 바 있다. 와이브로를 와이파이 신호로 변환해주는 퍼블릭 에그를 활용하는 방식이다.&lt;/p&gt;
&lt;p&gt;KT는 9월 중순부터 이용 승객이 가장 많은 서울 메트로 2호선과 도시철도 5호선, 8호선의 전 차량에 와이파이 구축을 시작해 11월 말까지 완료할 예정이며, 이후 서울 및 수도권 지하철(1~9호선, 인천선, 분당선, 과천선, 일산선) 전 차량에 대해서도 단계적으로 차량 내에 이동형 와이파이를 확대 구축할 계획이다.&lt;/p&gt;
&lt;img src=&quot;http://www.bloter.net/?ak_action=api_record_view&amp;id=37748&amp;type=feed&quot; alt=&quot;&quot; /&gt;</description>
<category>모바일</category>
<category> kt</category>
<category> Wi-Fi</category>
<category> 공항버스</category>
<category> 광역버스</category>
<category> 에그</category>
<category> 와이브로</category>
<category> 와이파이</category>
<category> 이동형</category>
<category> 지하철</category>
<author>주민영</author>
<guid>http://www.bloter.net/archives/37748</guid>
<pubDate>Wed, 01 Sep 2010 10:02:19 +0900</pubDate>
</item>
<item>
<title>프라이빗 클라우드 구축하기 1 : 평탄치 않은 여정</title>
<link>http://www.bloter.net/archives/37744</link>
<description>&lt;p&gt;몇 년 전 클라우드 컴퓨팅(Cloud Computing)이 토론 주제로 떠올랐을 때, 퍼블릭 클라우드(Public Cloud)는 엄청난 주목을 받았는데, 주로 구글이나 아마존 같은 업계 거물들이 세간의 이목을 끄는 퍼블릭 클라우드를 발표했기 때문이었다. 하지만 이제는 이런 이야기는 당연한 것이 되었으며, 심지어 일부 IT 부서는 보안 위협 때문에 퍼블릭 클라우드에서 벗어나고 있는 상황에 이르렀다. 데이터가 회사 파이어월 외부에 존재해 기본적으로 통제 불능이 된 것이다.&lt;/p&gt;
&lt;p&gt;가트너의 부사장인 톰 비트만은 IT 관리자를 대상으로 한 조사를 근거로, 보안과 프라이버시가 더 큰 우려를 자아내고 있다고 밝혔다. 비트먼은 조사 응답자 중 75%가 2012년까지는 프라이빗 클라우드 전략을 추구할 것이며, 75%가 2012년 말까지는 퍼블릭 클라우드보다는 프라이빗 클라우드에 더 많은 투자를 하겠다고 밝혔다고도 전했다.&lt;/p&gt;
&lt;p&gt;포레스터 리서치의 분석가인 프랭크 질레트도 요즘에는 IT의 주안점이 프라이빗 클라우드에 더 두어지고 있다는데 동의했다. 질레트는 IT 관리자는 파이어월 “외부로 나가는데 관심이 없다”고 말했다.&lt;/p&gt;
&lt;p&gt;사설 장애물을 구축할 때 해결해야 할 과제에는 다음 사항들이 포함되어 있다:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;- 예산.&lt;/strong&gt; 프라이빗 클라우드는 고가이므로, 실사를 해서 투자대비효과(ROI)의 상한선과 하한선이 어떻게 될 것인지를 알아내야 한다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;- 퍼블릭 클라우드와의 통합&lt;/strong&gt;. 퍼블릭 클라우드가 필요한 경우, 하이브리드(Hybrid) 모델로 이전할 수 있도록 프라이빗 클라우드를 구축하라. 그러기 위해서는 보안을 포함하여 많은 요소를 고려해야 하며 작업부하를 두 장소에서 구동할 수 있는지를 반드시 확인해야 한다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;- 확장&lt;/strong&gt;. 프라이빗 클라우드 컴퓨팅 서비스는 대개 대규모 퍼블릭 클라우드 공급업체가 제공하는 규모의 경제를 가지고 있지 않다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;- 신속한 재구성.&lt;/strong&gt; 프라이빗 클라우드로 옮기기 위해 동작 중인 서버나 인프라를 해체해야만 할 수도 있다. 이는 커다란 문제가 될 수도 있다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;- 기존 하드웨어.&lt;/strong&gt; 프라이빗 클라우드에서는 수동 구성을 필요로 하는 재사용해서는 안된다. 따라서 가장 오래된 서버는 잊어버려라. 그런 노후된 시스템에 대해서는 자동화/조율(Orchestration) 관리를 적용하기 불가능하기 때문이다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;- 기술 노후화.&lt;/strong&gt; 기술 변화의 속도와 복잡성은 어떤 IT 조직도 따라잡기 어려울 것이다. 특히, 작은 조직이라면 더더욱 그렇다. 일단 프라이빗 클라우드 기술 스택(Stack)에 투자했다면, 투자를 보호할 필요가 있으며, 소프트웨어 구성요소의 새로운 버전으로 항상 최신을 유지하도록 해야만 한다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;- 변화에 대한 두려움&lt;/strong&gt;. IT 부서가 프라이빗 클라우드에 익숙하지 않아서, 학습 시간이 필요할 수 있다. 새로운 운영 프로세스가 존재할 것이고 기존의 프로세스에 대한 재정비가 필요할 수도 있다. 이를 직원들의 성장 기회로 삼아라. 이 모든 것을 배우고 실천하는데 따른 스트레스는 오늘날의 비즈니스 환경에서는 새로운 기술이 중요하다는 점을 주지시킴으로써 최소화시킬 수 있다.&lt;/p&gt;
&lt;p&gt;그럼에도 불구하고, 비트만이 지적했듯이, 프라이빗 클라우드 역시 나름의 문제를 가지고 있다. 비트만의 조사에서, 관리 문제와 운영 프로세스의 규명이 가장 큰 골칫거리로 밝혀졌다. 그리고, 당연한 일이지만, 기업 내 프라이빗 클라우드는 IT 부서가 내부적으로 구축해야 하는 것이므로, 예산뿐 아니라 기간, 학습 시간 등도 고려해야 한다.&lt;/p&gt;
&lt;p&gt;실제로, 기존의 데이터센터, 심지어는 단지 몇 대의 서버만 가상화시키는 데이터센터에서 프라이빗 클라우드 아키텍처로 전환하는 것도 쉬운 작업이 아니며, 전체 데이터센터를 클라우드화할 수 없는 상황에서는, 최소한 지금 당장은, 특히 어려운 일이다.&lt;/p&gt;
&lt;p&gt;2부로 구성된 이 기사에서는 몇 가지 문제를 짚어볼 것이다. 우선 클라우드가 가상화와 “기존의” 데이터센터와는 어떻게 다른지를 보여준다. 그리고 몇 가지 관리 문제를 검토하고 프라이빗 클라우드를 적극적으로 구축하고 있는 몇몇 조직을 통해 고려해야 할 사항을 살펴본다.&lt;/p&gt;
&lt;p&gt;일반적으로 프라이빗 클라우드는 기업의 파이어월 안쪽에 존재하는 것으로 생각하고 있지만, 프라이빗 클라우드는 외부에 존재하면서, 다시 말해 서드파티가 호스팅을 하면서도, 동시에 기업 IT 부서의 통제 하에 있을 수 있다. 하지만, 여기서는 기업 내 프라이빗 클라우드에 대해서만 살펴보겠다.&lt;/p&gt;
&lt;p&gt;또한, 독자들이 들었을 모든 과장 광고에도 불구하고, 현존하는 어떤 단일 공급업체도 실제 프라이빗 클라우드를 구축하고 관리하기 위해서 필요한 모든 소프트웨어를 제공하지 못하고 있다. 즉, 서버 가상화, 스토리지 가상화, 네트워크 가상화, 그리고 자원 자동화와 조율 소프트웨어를 모두 제공하는 업체는 없다. 자사의 제품 세트에 맞춰서 프라이빗 클라우드에 대한 자기 고유의 영역을 넓혀가고 있는 업체를 기대하라.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;가상화는 전체 그림의 일부일 뿐&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;많은 IT 관리자가 프라이빗 클라우드와 가상화를 동일시하고 있다. 인프라 전문 리서치 회사인 아이디어스 인터내셔널(Ideas International)의 수석 분석가 토니 이암스는 그들이 설명하고 있는 것은 대개 가상 인프라로, “서버, 스토리지, 그리고 네트워크를 마치 작업 부하에 따라 필요하면 요구할 수 있는 여러 자원으로 이루어진 풀(Pool)처럼 다룰 수 있다”는 것을 의미한다고 설명했다.&lt;/p&gt;
&lt;p&gt;하지만, 가상화와 클라우드는 같은 것이 아니다. 클라우드로 간주되기 위해서는, 해당 아키텍처가 가상화 계층뿐 아니라 조율과 자동화까지 모두 제공할 수 있도록 구성되어 있어야만 한다.&lt;/p&gt;
&lt;p&gt;기존의 데이터센터에서 프라이빗 클라우드 환경으로 전환하는 유일한 ‘올바른’ 정답은 존재하지 않는다.&lt;/p&gt;
&lt;p&gt;조율이란 통합적인 전달 프로세스를 제공하기 위해 프로세서, 스토리지 그리고 네트워크 같은 여러 유형의 자원을 조화롭게 전달하는 것이다. 자원은 며칠이나 몇 주가 아닌 몇 분 내에 전달된다. 다른 말로 하면, 한 개의 명령 또는 요청이 여러 개의 동작을 유발하며, 제공 요청을 조정하기 위해 가능하면 특정 순서대로 조치가 취해진다.&lt;/p&gt;
&lt;p&gt;결국 클라우드 컴퓨팅이란 IT 관리자가 그저 인프라 관리를 좀 더 편리하게 할 수 있도록 해주는 것이 아니라 비용을 절감하고 소위 “민첩한 서비스 제공”을 가능하게 해주는 것이다. 가상화 기술로 뒷받침되는 프라이빗 클라우드는 기술 인프라를 최소한의 수작업으로 요구에 따라 제공할 수 있는 여러 가지 자원으로 구성된 풀로 바꿔놓는다.&lt;/p&gt;
&lt;p&gt;IT 서비스 전달에 대한 초점이 없다면, 프라이빗 클라우드의 이점을 제대로 활용할 수 없게 될 것이다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;기존 데이터센터와의 비교&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;버라이존 비즈니스(Verizon Business)의 클라우드 컴퓨팅 책임자인 제프 디콘(Jeff Deacon)은 기존의 데이터센터 구성에서는, “서버를 추가할 때마다, 누군가가 파이어월 콘솔에 가서, 규칙을 구성하고, 서버를 가상 LAN에 추가하고, 로드밸런싱을 설정하는 등” 많은 작업을 해야만 했다고 설명한다.&lt;/p&gt;
&lt;p&gt;그러나 클라우드 컴퓨팅은 요구에 부응하기 위해 새로운 컴퓨터나 스토리지를 가져오는 것 외에 최소한의 수작업을 필요로 한다. 클라우드 환경에서는 IT 요원이 보안, 네트워킹 및 서버 운영체제 기능 처리를 위해 여러 대의 콘솔에 로그인하는 대신, 전체 프로세스를 자동화하기 위해 몇 가지 변수를 설정하기 위한 한 대의 콘솔만이 존재한다.&lt;/p&gt;
&lt;p&gt;프라이빗 클라우드와 기존 데이터센터 간의 또 다른 중요 차이점 한 가지는 IT 프로세스이다. 프라이빗 클라우드가 데이터의 사용 방식에 대한 아키텍처 재구성을 필요로 할 수도 있으므로, 프로세스를 재작성해야만 할 수도 있다.&lt;/p&gt;
&lt;p&gt;예를 들면, 오늘날의 많은 IT 조직은 예산 때문에 전달 과정에서 충족시켜야만 하는 일련의 요구조건과 싸워야만 한다. 스토리지, 네트워크 그리고 서버 그룹과의 협의와 더 엄청난 문서 작업. 이런 종류의 프로세스는 클라우드에서 이루어지는 매끄럽고, 단기적인 제공과는 완전히 대조적이다. 기존 데이터센터에서 몇 주가 걸리던 제공 시간이 클라우드에서는 몇 분 안에 이루어진다.&lt;/p&gt;
&lt;p&gt;프라이빗 클라우드를 활용하기 위해서는 기존 애플리케이션의 재설계가 필요할 수도 있다. 많은 기존 애플리케이션이 메인프레임과 특정 업체의 유닉스 플랫폼에서 운용되고 있다. 프라이빗 클라우드를 포함해서 대부분의 가상 환경은 x86 기반 시스템에서 운용되도록 설계되어 있다.&lt;/p&gt;
&lt;p&gt;또한, 가상 환경에서, 우리는 일반적으로 어떤 애플리케이션이 정확하게 언제 어디서 구동되는지를 알 수 없다. 대부분의 기존 애플리케이션은 특정 플랫폼과 연계되어 있지만, 프라이빗 클라우드에서 그런 애플리케이션을 구동하기 위해서는 흔히 재설계가 필요하게 될 것이다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;애플리케이션과 하드웨어의 분리&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;애플리케이션을 하드웨어와 분리하는 것이 프라이빗 클라우드를 포함한 클라우드 컴퓨팅 환경의 특징이다. 기존 데이터센터에서는, 여기 있는 10대의 서버가 과금 애플리케이션을 구동하고 있고, 저기 있는 5대의 서버는 CRM 애플리케이션을 구동하고 있다. 하지만, 프라이빗 클라우드에서는 어떤 서버가 어떤 애플리케이션을 구동할지를 미리 알 수 없다. 애플리케이션은 애플리케이션 구동 시점에 빈 CPU 사이클이 있는 임의의 서버에서 구동한다.&lt;/p&gt;
&lt;p&gt;프라이빗 클라우드에는 두 개의 조직이 관련되어 있다. IT, 즉 데이터센터 운영자와 애플리케이션 구동을 원하는 업무용 사용자가 그것이다. 프라이빗 클라우드는 업무용 사용자에게 그들이 원하는 시간에 신속하게 서버를 제공해서 애플리케이션을 구동할 수 있는 기회를 제공한다. 그것도 사람의 개입 없이.&lt;/p&gt;
&lt;p&gt;IT 운영자는 업무용 사용자들이 퍼블릭 클라우드에서는 사용할 수 있다고 알고 있는 일종의 온디맨드 방식 컴퓨팅을 위해 충분한 자원이 있음을 확인해야만 하며, 이는 대개 사용자 요청에 대한 대기 시간이 몇 일이 아니라 몇 분임을 의미한다. 이에 못 미치면, 사용자는 불행해진다.&lt;/p&gt;
&lt;p&gt;바로 이게 프라이빗 클라우드이다. 퍼블릭 클라우드의 온디맨드 방식 탄력성을 기업의 파이어월 안쪽에서 제공하는 것.&lt;/p&gt;
&lt;p&gt;또 다른 차이점은 일부 IT 관리자와 현업 사용자가 프라이빗 클라우드가 마치 퍼블릭 클라우드처럼 동작하기를 바란다는 것이다. 퍼블릭 클라우드에서, 퍼블릭 클라우드 공급업체의 IT 운영 그룹은 컴퓨팅 인프라에 대한 책임을 지고, 엔터프라이즈의 업무용 애플리케이션 그룹이 합의 하에 퍼블릭 클라우드에 있는 자신의 애플리케이션을 직접 관리하고 감시한다. 프라이빗 클라우드도 비슷한 방식으로 운영되기를 기대하고 있다면, 이는 IT 부서가 기존의 애플리케이션 관리 역할을 포기해야 함을 의미한다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;인프라 전화의 단계&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;첫 번째 할 일은 서버 가상화를 넘어서 폭을 넓히는 것이다. 현재, 많은 사용자들이 가상화를 가용성이란 용도로 바라보고 있다. 그렇다면, 가용성을 개선해주는 가상 인프라에 대한 다양한 시각을 프라이빗 클라우드로 향하는 다음 단계로써 살펴보자.&lt;/p&gt;
&lt;p&gt;현재, 사람들은 스토리지를 가상화에 통합시키고 있으며, 여러 자원에 대한 폭넓은 가상화의 영향을 이해하기 시작하고 있다. 아이디어스 인터내셔널의 이암스는 “우리가 서버 가상화가 예외가 아닌 원칙이 되고 대부분의 작업 부하가 가상화되는 단계에 도달하면, 가상화가 운영 프로세스에 통합된 단계가 된 것”이라고 설명했다.&lt;/p&gt;
&lt;p&gt;이암스는 이 단계에 이르면, 스토리지 프로세스에는 어떤 영향을 끼칠지를 재고해야만 할 것이라고 지적했다. 이암스는 프라이빗 클라우드 구축을 위해 다음과 같은 단계를 간략하게 설명했다.&lt;/p&gt;
&lt;p&gt;- 스토리지를 가상화하고 가상 서버에서 이미 구현한 것과 동일한 유연성을 스토리지에서도 달성하려 노력하라.&lt;/p&gt;
&lt;p&gt;- 서버 가상화와 스토리지 가상화를 윈도우 애저(Azure) 스토리지 관리나 VM웨어 vStorage 같은 관리 도구와 공조시켜라.&lt;/p&gt;
&lt;p&gt;- 네트워크 인프라를 가상화하고, 이를 사용 중인 관리 도구와 공조시켜라.&lt;/p&gt;
&lt;p&gt;서버 가상화, 스토리지 가상화 그리고 네트워크 가상화를 이루었을 때가 인프라가 완벽하게 가상화되는 시점이다. 가상 인프라에서 프라이빗 클라우드로의 교차 시점은 3가지 유형의 자원, 즉 서버, 스토리지 그리고 네트워크 모두를 요구에 따라 할당할 수 있는 하나의 풀처럼 취급하는 관리 도구를 보유했을 때 다가온다.&lt;/p&gt;
&lt;p&gt;물론, 이 모든 사항은 기술 중심적인 관점이다. 이암스는 사람, 프로세스, 거버넌스(Governance), 정책 그리고 자금을 포함하는 조직적인 측면에서의 전환과 관련된 또 다른 시각도 있다고 말했다. 여기서 한 가지 핵심 질문은 “프라이빗 클라우드 구조는 조직 내부에서 예산과 자금 흐름에 어떤 영향을 주는가?”이다.&lt;/p&gt;
&lt;p&gt;퍼블릭 클라우드에서는 사용한 만큼만 지불하면 된다. 프라이빗 클라우드는 기존 데이터센터에서 그랬던 것처럼 사용자들에게 고정된 용량만을 제공하지 않기 때문에, 과금이 프라이빗 클라우드 환경에서 중요한 부분이 될 것이 거의 확실하다.&lt;/p&gt;
&lt;p&gt;가상화 전문가인 버나드 골든은 가격이 중요한 배급 메커니즘이므로, 매우 중요하다고 보고 있다. 그리고 컴퓨팅 자원의 배급이 자원 획득이 웹 양식 작성만으로 쉽게 이루어지는 곳에서는 더욱 중요하게 될 것이다.&lt;/p&gt;
&lt;p&gt;설사 있다고 하더라도, 소수의 기업만이 앞에 언급한 모든 단계와 과정을 동시에 거칠 것이다. 실제로, 기존 데이터센터에서 프라이빗 클라우드로 전환하는 정답은 없다. 프라이빗 클라우드는 부분적으로는 서버 가상화의 논리적인 결말로 가상화가 스토리지와 네트워크까지 확장되고, 그 다음에는 서버, 스토리지와 네트워크를 마치 여러 자원으로 이루어진 하나의 풀처럼 취급하는 도구로 관리하는 것이다. 자동화와 조율 도구가 가상 인프라를 진정한 프라이빗 클라우드로 이전시키는 핵심이다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;전문 인력 확보 여부도 중요&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;하지만, 한 가지는 확실한 것은 있다. 만약 IT 부서가 데이터센터의 어떤 부분을 프라이빗 클라우드로 전환시키는데 전력을 기울이지 않는다면, 민첩한 제공, 탄력성 그리고 애플리케이션당 낮은 비용을 보이는 클라우드는 보유할 수 없을 것이다.&lt;/p&gt;
&lt;p&gt;전환의 일부로써, IT 부서가 프라이빗 클라우드 환경에 필요한 경험과 기술을 보유하고 있는지의 여부와 프라이빗 클라우드 구축 경험이 있는 누군가를 고용해야 할지의 여부를 결정해야 할 필요가 있다.&lt;/p&gt;
&lt;p&gt;어떻게 시작해야 할지는 기존 인프라에 따라 다르다. 이미 서버 가상화를 했다면, 그렇지 않은 조직에 비해 확실한 이점이 있다. 가장 중요한 사항은 사전 계획 없이, 치고 나가서 소프트웨어를 다량으로 구입하지 말라는 것이다. 특히, 단일 공급업체로부터 구입하는 것은 금물이다.&lt;/p&gt;
&lt;p&gt;다음 2부에서는 몇몇 프라이빗 클라우드 도입업체의 현황에 관리 문제에 어떻게 접근했는지에 대해 알아보겠다.&lt;/p&gt;
&lt;p&gt;*Bill Claybrook은 뉴리버 마케팅 리서치(New River Marketing Research)의 사장이다. IT 분야 30년 이상의 경력을 가지고 있으며, 특히, 리눅스, 오픈 소스, 가상화와 클라우드 컴퓨팅 분야의 전문가이다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.idg.co.kr/newscenter/common/newCommonView.do?newsId=62475&quot; target=&quot;_blank&quot;&gt;원문보기&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;img src=&quot;http://www.bloter.net/?ak_action=api_record_view&amp;id=37744&amp;type=feed&quot; alt=&quot;&quot; /&gt;</description>
<category>엔터프라이즈</category>
<category> vm웨어</category>
<category> x86</category>
<category> 가상화</category>
<category> 네트워크</category>
<category> 데이터센터</category>
<category> 보안</category>
<category> 서버</category>
<category> 스토리지</category>
<category> 윈도우 애저</category>
<category> 클라우드 컴퓨팅</category>
<category> 프라이빗</category>
<author>IDG Korea</author>
<guid>http://www.bloter.net/archives/37744</guid>
<pubDate>Wed, 01 Sep 2010 09:13:35 +0900</pubDate>
</item>
<item>
<title>Getting Ready for SVG Open</title>
<link>http://blogs.msdn.com/b/ie/archive/2010/08/31/getting-ready-for-svg-open.aspx</link>
<description>&lt;div id=&quot;test&quot;&gt;   &lt;p&gt;I recently &lt;a href=&quot;http://channel9.msdn.com/posts/LarryLarsen/Internet-Explorer-9-Platform-Preview-4-A-Look-at-SVG-in-IE9/&quot;&gt;demonstrated Test Driving Modern SVG&lt;/a&gt; using the SVG Dice sample currently on the &lt;a href=&quot;http://ie.microsoft.com/testdrive/Default.html&quot;&gt;Internet Explorer 9 Test Drive site&lt;/a&gt;. While building this sample, I learned that both performance and interoperability for SVG are a subtle continuum and are &lt;i&gt;not&lt;/i&gt; binary. This point resonated with me so much that I modified my presentation for this week’s &lt;a href=&quot;http://www.svgopen.org&quot;&gt;SVG Open Conference&lt;/a&gt; entitled “&lt;a href=&quot;http://www.svgopen.org/2010/registration.php?section=abstracts_and_proceedings#paper_70&quot;&gt;The Future of SVG and HTML5&lt;/a&gt;” to include methods by which the SVG developer community can rally around to make SVG more interoperable.&lt;/p&gt;    &lt;h4&gt;Testing SVG vs. Test Driving SVG&lt;/h4&gt;    &lt;p&gt;SVG has its roots in a document format. The most popular use case today is the static document format. Complex engineering diagrams and other illustrations are well suited for SVG given their requirements for scalability, high fidelity printing, and portability. &lt;/p&gt;    &lt;p&gt;With HTML5, the future of SVG is about the next generation of the interactive graphic web which exercises SVG in new ways. As a community, we need to think about how we test the SVG specification differently.&lt;/p&gt; &lt;/div&gt;  &lt;h5&gt;Testing SVG&lt;/h5&gt;  &lt;p&gt;The W3C SVG Test Suites attempt to “test” the ability to implement the spec, but as we learned in the working group, this is not enough to guarantee an interoperable set where a developer can use the same markup that works across all browsers. The SVG Test Suite is not intended to test conformance, but rather whether or not the spec can be implemented. From the &lt;a href=&quot;http://www.w3.org/Graphics/SVG/WG/wiki/Test_Suite_Overview&quot;&gt;W3C SVG Test Wiki:&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;“Our test suites are necessary, but not sufficient, to test conformance… Thus, representations of tested support is skewed toward the more complex features of SVG, and is not an accurate view of overall SVG support”&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;In other words, the existing test suite doesn’t test whether a browser conforms to the spec. To this end, we are working closely with the SVG Working Group to help round out these tests; in fact, there is an external effort to create an &lt;a href=&quot;http://svgtorture.googlecode.com/svn/trunk/automated/test.html&quot;&gt;SVG DOM 1.1 conformance test&lt;/a&gt; by the SVG Interest Group. At the time of writing, IE9 passes 100% of these automated tests. In concert with the SVG Working Group, we are helping to resolve these interoperability issues by continuing to enhance the SVG Test Suite through regular contributions.&lt;/p&gt;  &lt;p&gt;Additionally, there exists an imbalance between the number of requirements in the modules in the SVG Specification, and the number of tests in the SVG Test Suite that represent those requirements. The Internet Explorer team helps to address this imbalance through test asset contributions. But this is not enough. We have contributed &lt;a href=&quot;http://samples.msdn.microsoft.com/ietestcenter/#svg11e2&quot;&gt;56 tests&lt;/a&gt; and expect to continue to deliver more over time.&lt;/p&gt;  &lt;h5&gt;Test Driving SVG&lt;/h5&gt;  &lt;p&gt;The better measure of conformance and more importantly interoperability was do develop more complex SVG for the web. My own experience in test driving SVG by developing the &lt;a href=&quot;http://ie.microsoft.com/testdrive/Performance/SVGDice/Default.xhtml&quot;&gt;SVG Dice&lt;/a&gt; demo illustrates some of the places where we have more work to do as a community on interoperability of SVG.&lt;/p&gt;   &lt;div id=&quot;div2&quot; style=&quot;position: relative; width:500px;height:290px;&quot;&gt;  &lt;img id=&quot;image2&quot; src=&quot;http://ecn.channel9.msdn.com/o9/ch9/4185/564185/IE9201003_512_ch9.png&quot; style=&quot;position:absolute; top:-40px; left:0; z-index:1; margin-top:0; padding-top:0;&quot; onclick=&quot;this.style.display='none'; document.getElementById('myvid').play();&quot; /&gt;   &lt;video preload=&quot;metadata&quot; style=&quot;width: 500px; height:283px;&quot; id=&quot;myvid&quot; controls src=&quot;http://ecn.channel9.msdn.com/o9/ch9/4185/564185/IE9201003_ch9.mp4&quot;&gt;  &lt;object data=&quot;data:application/x-silverlight-2,&quot; type=&quot;application/x-silverlight-2&quot; width=&quot;511&quot; height=&quot;384&quot;&gt; &lt;param name=&quot;source&quot; value=&quot;http://channel9.msdn.com/App_Themes/default/VideoPlayer10_01_18.xap&quot; /&gt; &lt;param name=&quot;initParams&quot; value=&quot;deferredLoad=true,duration=0,m=http://ecn.channel9.msdn.com/o9/ch9/4185/564185/IE9201003_ch9.wmv,autostart=false,autohide=true,showembed=true, thumbnail=http://ecn.channel9.msdn.com/o9/ch9/4185/564185/IE9201003_512_ch9.png, postid=564185&quot; /&gt; &lt;param name=&quot;background&quot; value=&quot;#00FFFFFF&quot; /&gt; &lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkID=124807&quot; style=&quot;text-decoration: none;&quot;&gt; &lt;img src=&quot;http://go.microsoft.com/fwlink/?LinkId=108181&quot; alt=&quot;Get Microsoft Silverlight&quot; style=&quot;border-style: none&quot; /&gt; &lt;/a&gt; &lt;/object&gt;   &lt;/video&gt;&lt;!-- Script to detect lack of codec support and force fallback to contained &lt;object&gt; --&gt;&lt;script&gt;
                    
		var vid = document.getElementById(&quot;myvid&quot;);
		if(vid &amp;&amp; vid.canPlayType &amp;&amp; !vid.canPlayType(&quot;video/mp4&quot;).match(/^(probably|maybe)$/i)) {
			vid.parentNode.insertBefore(vid.firstElementChild, vid);
			vid.style.display = &quot;none&quot;;
	document.getElementById(&quot;image2&quot;).style.display=&quot;none&quot;;
	document.getElementById(&quot;div2&quot;).style.height=&quot;377px&quot;;
		}
	/*script to hide the play image if in IE8 */
		if (vid &amp;&amp; vid.canPlayType==null) {
			document.getElementById(&quot;image2&quot;).style.display=&quot;none&quot;;
			document.getElementById(&quot;div2&quot;).style.height=&quot;377px&quot;;
		}
	&lt;/script&gt;  &lt;/!--&gt;&lt;/div&gt;  &lt;p&gt;The SVG specification contains over 2000 individual requirements. This is a large number in comparison to other web specifications and means that there is plenty of room for different interpretations. We strive in the SVG W3C Working Group to identify these differences. When I developed the SVG demo with the requirement that it works across browsers, my eyes were opened to some of the difficulties web developers face. &lt;/p&gt;  &lt;p&gt;Most of the interoperability issues stem from a combination of the large number of requirements, the dependencies on other specifications, and the lack of significant content on the web to ensure the features are interpreted the same by both developer and browser vendors alike. SVG is relatively new ground for web developers and whereas HTML and CSS have enjoyed decades of refinement by a large scale of users, SVG has not yet had the same level of use and scrutiny. &lt;/p&gt;  &lt;p&gt;Now that SVG is a part of HTML5, we expect to see traditional web developers learning new and better ways to improve experiences for their users using vector graphics. At the last &lt;a href=&quot;http://blogs.msdn.com/b/ie/archive/2010/06/08/getting-to-svg-2-0-a-report-from-the-svg-working-group-face-to-face-may-24th-june-1st-2010.aspx&quot;&gt;SVG Face to Face meeting&lt;/a&gt;, the SVG Working Group &lt;a href=&quot;http://www.w3.org/Graphics/SVG/WG/wiki/User_talk:Pdengler&quot;&gt;assembled scenarios for SVG&lt;/a&gt; that provide for more targeted use cases for the next generation, graphical web. SVG plays an integral role here.&lt;/p&gt;  &lt;h4&gt;Comparing Implementations&lt;/h4&gt;  &lt;p&gt;I wrote the SVG Dice demo from my own understanding of the specification using Internet Explorer 9 and subsequently tested it in other browsers. In most cases where I ran into conflicting behavior, at least two browsers still agreed. Sometimes Internet Explorer’s behavior matched Chrome or Safari, and other times it matched Firefox or Opera. Because Internet Explorer is the most recent implementation, it benefits from an SVG Specification that is in &lt;a href=&quot;http://www.w3.org/TR/SVG11/&quot;&gt;last call&lt;/a&gt; where at least some of the ambiguities and conflicts have been resolved in the specification. Clearly there are more.&lt;/p&gt;  &lt;p&gt;Something that caught me off guard was the impact of performance on my development effort. &lt;/p&gt; &lt;!-- Declarative Video tag --&gt;&lt;video style=&quot;width: 500px&quot; id=&quot;myvid2&quot; preload=&quot;metadata&quot; src=&quot;http://ecn.channel9.msdn.com/o9/ch9/4187/564187/IE9201005_ch9.mp4&quot; controls&gt;&lt;object data=&quot;data:application/x-silverlight-2,&quot; type=&quot;application/x-silverlight-2&quot; width=&quot;512&quot; height=&quot;384&quot;&gt; &lt;param name=&quot;source&quot; value=&quot;http://channel9.msdn.com/App_Themes/default/VideoPlayer10_01_18.xap&quot; /&gt; &lt;param name=&quot;initParams&quot; value=&quot;deferredLoad=true,duration=0,m=http://ecn.channel9.msdn.com/o9/ch9/4187/564187/IE9201005_2MB_ch9.wmv ,autostart=false,autohide=true,showembed=true,  postid=564185&quot; /&gt; &lt;param name=&quot;background&quot; value=&quot;#00FFFFFF&quot; /&gt; &lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkID=124807&quot; style=&quot;text-decoration: none;&quot;&gt; &lt;img src=&quot;http://go.microsoft.com/fwlink/?LinkId=108181&quot; alt=&quot;Get Microsoft Silverlight&quot; style=&quot;border-style: none&quot; /&gt; &lt;/a&gt; &lt;/object&gt;&lt;/video&gt;&lt;!-- Script to detect lack of codec support and force fallback to contained &lt;object&gt; --&gt;&lt;script&gt;
		var vid = document.getElementById(&quot;myvid2&quot;);
		if(vid &amp;&amp; vid.canPlayType &amp;&amp; !vid.canPlayType(&quot;video/mp4&quot;).match(/^(probably|maybe)$/i)) {
			vid.parentNode.insertBefore(vid.firstElementChild, vid);
			vid.style.display = &quot;none&quot;;
		}
	&lt;/script&gt;  &lt;p&gt;From a developer’s perspective, I wanted to use the same graphic features like opacity, gradients, and masks in all browsers, in order to provide a consistent interoperable user experience, but I couldn’t do that because of performance concerns. Fully hardware accelerated graphics on Windows helps to move these graphic intensive computations to the GPU. I added the “Low Fidelity” mode to enable users to experience this demo in browsers that don’t make full use of the GPU. One nice side effect is that this also demonstrates CSS styling of SVG. &lt;/p&gt;  &lt;h5&gt;The Surprising “Switching Event”&lt;/h5&gt;  &lt;p&gt;Debugging the differences between browsers caused a very interesting “switching event” for me as a developer. There were a few outstanding bugs in the IE9 debugging tools (now fixed) which prevented me from placing breakpoints in code when working with SVG, so I used the popular Firebug add-on for Firefox. However, running the demo on Firefox was too slow, so I reverted back to Internet Explorer 9 to debug.&lt;/p&gt;  &lt;p&gt;I eventually found work-arounds for most of the incompatibilities without having to write browser specific code, but it required far more effort than expected or considered reasonable.  We have more work to do here as a community in building the promise of same markup for SVG.&lt;/p&gt;  &lt;h4&gt;The Code&lt;/h4&gt;  &lt;p&gt;Because SVG is an older spec but new to a lot of developers, I thought I would review some of the code and concepts in this demo up close.&lt;/p&gt;  &lt;h5&gt;The Document Structure&lt;/h5&gt;  &lt;p&gt;As a first example, most browsers do not yet support SVG in HTML5.  I had to structure the document as XHTML with inline SVG. &lt;/p&gt;  &lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt;   &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;!&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;DOCTYPE&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;html&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;html&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;demohtml&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;xmlns&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;http://www.w3.org/1999/xhtml&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;testdrive&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style=&quot;color: #0000ff&quot;&gt;&lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;head&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;&lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&gt;&lt;/span&gt;&lt;br /&gt;      SVG Dice&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;&lt;/&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style=&quot;color: #0000ff&quot;&gt;&lt;/&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;head&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style=&quot;color: #0000ff&quot;&gt;&lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;body&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;demobody&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;onload&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;Setup()&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;&lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;audio&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;sndRemove&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;volume&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;1&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;src&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;assets/remove.mp3&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;preload&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;true&quot;&lt;/span&gt;  &lt;span style=&quot;color: #0000ff&quot;&gt;&gt;&lt;/&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;audio&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;&lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;svg&lt;/span&gt;  &lt;span style=&quot;color: #ff0000&quot;&gt;overflow&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;visible&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;theSVG&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;xmlns&lt;/span&gt;=&lt;span style=&quot;color: #ff0000&quot;&gt;http:&lt;/span&gt;//&lt;span style=&quot;color: #ff0000&quot;&gt;www&lt;/span&gt;.&lt;span style=&quot;color: #ff0000&quot;&gt;w3&lt;/span&gt;.&lt;span style=&quot;color: #ff0000&quot;&gt;org&lt;/span&gt;/&lt;span style=&quot;color: #ff0000&quot;&gt;2000&lt;/span&gt;/&lt;span style=&quot;color: #ff0000&quot;&gt;svg&lt;/span&gt;&lt;br /&gt;         &lt;span style=&quot;color: #ff0000&quot;&gt;xmlns:xlink&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;http://www.w3.org/1999/xlink&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;width&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;100%&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;height&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;100%&quot;&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;&lt;/&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;svg&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style=&quot;color: #0000ff&quot;&gt;&lt;/&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;/&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;html&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&gt;&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;The above simple &lt;code&gt;&lt;!DOCTYPE html&gt;&lt;/code&gt; sets Internet Explorer 9 to run in “standards mode” where SVG is supported. Notice that the SVG is embedded directly into the HTML. Both the css and the script are linked in via the HTML elements as expected.&lt;/p&gt;

&lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt;
  &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;script&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;text/javascript&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;src&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;demo.js&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&gt;&lt;/&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;link&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;rel&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;Stylesheet&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;text/css&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;href&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;demo.css&quot;&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;/&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;At this point I have my basic html and svg document, stylesheet, script file structures. Next I need to build the graphical elements, provide the styles and write the script necessary for the animations and user experience.&lt;/p&gt;

&lt;h5&gt;Adding the Content &lt;/h5&gt;

&lt;p&gt;One of the great benefits and unique nature of the web development community is what we called the “copy/paste” use case. Any developer can readily &lt;a href=&quot;http://commons.wikimedia.org/w/index.php?title=Special%3ASearch&amp;search=public+domain+SVG&quot;&gt;search Wikimedia&lt;/a&gt; for public domain SVG art and use these directly in their applications or on their sites. Other popular tools exist for generating new or modifying existing content, from the open source &lt;a href=&quot;http://www.inkscape.org/&quot;&gt;Inkscape&lt;/a&gt; which focuses specifically on SVG, to other graphic tools from Microsoft and Adobe which export to SVG. I used existing open source clip art for the dice and for the boat.&lt;/p&gt;

&lt;p&gt;Initially I had kept these SVG sources in different files for the purpose of separation. Unfortunately, I ran into several different issues across browsers from sizing to SVG Images support, which forced me to include all of the SVG in the one HTML file. &lt;/p&gt;

&lt;p&gt;SVG contains the concept of &lt;defs&gt;, which is used to define an element(s) with styles and attributes, that can be re &lt;use&gt;d later. These two concepts are very powerful. They allow me to create many different sized dice for use as the image on the cup, those that fall into the cup, or those that roll across the screen during game play. I organized the &lt;defs&gt; from the various files at the top document immediately after the SVG tag.&lt;/p&gt;

&lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt;
  &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;defs&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style=&quot;color: #008000&quot;&gt;&lt;!-- for left die --&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;&lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;linearGradient&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;&lt;span style=&quot;background-color: yellow&quot;&gt;grad21&lt;/span&gt;&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;x1&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;.445&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;x2&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;.554&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;y1&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;.442&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;y2&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;.555&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;&lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;stop&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;stop-opacity&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;.9&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;offset&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;0&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;stop-color&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;#470808&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;/&gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;&lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;stop&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;stop-opacity&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;.9&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;offset&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;.65&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;stop-color&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;#700d0d&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;/&gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;&lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;stop&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;stop-opacity&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;.9&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;offset&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;1&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;stop-color&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;#8c1111&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;/&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;&lt;/&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;linearGradient&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;/&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;defs&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;These &lt;defs&gt; are later referenced:&lt;/p&gt;

&lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt;
  &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;&lt;!-- edges --&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;path&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;d&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;M 2474 4434 L 4860 2945 C 5009 &quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;fill&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;url(&lt;span style=&quot;background-color: yellow&quot;&gt;#grad21&lt;/span&gt;)&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;/&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;Once the &lt;defs&gt; were in place and the main clipart content was inline, I designed the rest of the experience, keeping in mind that SVG renders in layers from top to bottom. The majority of the remaining content was the scoreboard, the felt, the text and the cup.&lt;/p&gt;

&lt;h5&gt;Adding the User Interactivity and Animations&lt;/h5&gt;

&lt;p&gt;One of the more challenging aspects of this demo was organizing the sizing. One of the first things I do in the code is register the resize event, and set up the dimensions of the &lt;svg&gt; and the contained svg fragments. For simplicity, I &lt;g&gt;rouped them so I can apply scaling and positioning individually.&lt;/p&gt;

&lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt;
  &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;document.getElementById(&lt;span style=&quot;color: #006080&quot;&gt;&quot;theSVG&quot;&lt;/span&gt;).setAttribute(&lt;span style=&quot;color: #006080&quot;&gt;&quot;width&quot;&lt;/span&gt;, surfaceWidth.toString() + &lt;span style=&quot;color: #006080&quot;&gt;&quot;px&quot;&lt;/span&gt;);&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;Something to take notice of immediately here is that this JavaScript code is familiar to web developers because it is standard JavaScript working with the DOM. SVG has its own DOM methods which I use, but I mostly stick to DOM Level 2 constructs as there is general agreement in the SVG Working Group that the SVG DOM might need revisiting.&lt;/p&gt;

&lt;p&gt;Next I needed to take both of the static dice as SVG Fragments, and create some code to clone them, store references in an array with properties that allow me to manipulate their transforms for the animation effects, as well as ensure the physics engine recognizes them accordingly. The loop to create the dice is straightforward; it loops through the number of dice desired, clones the original into the DOM and creates an array to manage them.&lt;/p&gt;

&lt;p&gt;Note: Most code samples here are trimmed for brevity, but all of the code is on the Platform Preview site &lt;a href=&quot;http://ie.microsoft.com/testdrive/Performance/SVGDice/Default.xhtml&quot;&gt;http://ie.microsoft.com/testdrive/Performance/SVGDice/Default.xhtml&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;First I clone the prototype and add it to the DOM, setting some default attributes along the way. Note the establishment of the transform is used to move the dice (translate), rotate the dice (rotate) and size the dice (scale).&lt;/p&gt;

&lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt;
  &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;// create an instance of die #1 and add it to the SVG Doc&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.die1 = createElement(&lt;span style=&quot;color: #006080&quot;&gt;&quot;g&quot;&lt;/span&gt;);&lt;br /&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;var&lt;/span&gt; tmpChild = &lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.die1.appendChild(createElement(&lt;span style=&quot;color: #006080&quot;&gt;&quot;g&quot;&lt;/span&gt;));&lt;br /&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;var&lt;/span&gt; tmpNode = &lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.die1.appendChild(tmpChild);&lt;br /&gt;tmpNode.appendChild(nodeDie1.cloneNode(&lt;span style=&quot;color: #0000ff&quot;&gt;true&lt;/span&gt;));&lt;br /&gt;&lt;span style=&quot;color: #008000&quot;&gt;// set some default attributes&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.die1.setAttribute(&lt;span style=&quot;color: #006080&quot;&gt;&quot;id&quot;&lt;/span&gt;, &lt;span style=&quot;color: #006080&quot;&gt;&quot;die_1_&quot;&lt;/span&gt; + number.toString());&lt;br /&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.die1.setAttribute(&lt;span style=&quot;color: #006080&quot;&gt;&quot;transform&quot;&lt;/span&gt;, &lt;br /&gt;    &lt;span style=&quot;color: #006080&quot;&gt;&quot;translate(&quot;&lt;/span&gt; + &lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.x.toString() + &lt;span style=&quot;color: #006080&quot;&gt;&quot;,&quot;&lt;/span&gt; + &lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.y.toString() + &lt;span style=&quot;color: #006080&quot;&gt;&quot;) &lt;br /&gt;    scale (&quot;&lt;/span&gt; + &lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.scale.toString() + &lt;span style=&quot;color: #006080&quot;&gt;&quot;)&quot;&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;I wanted to make use of the &lt;use&gt; element here as this is a great way to clone a group of SVG fragments. Unfortunately, the implementation of &lt;use&gt; varies across browsers, specifically in the case of styling and events.&lt;/p&gt;

&lt;p&gt;Next I use the SVGDOM getBBox() method to grab the dimensions of the die as we shrink each one along the way. This method returns an SVGRect which is used in the physics engine to detect collision.&lt;/p&gt;

&lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt;
  &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;var&lt;/span&gt; rectSize = &lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.die1.getBBox(); &lt;span style=&quot;color: #008000&quot;&gt;// calculate dimensions for use with physics&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.height = rectSize.height;&lt;br /&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.width = rectSize.width;&lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;One of my favorite parts of building this sample was the discovery and use of the &lt;a href=&quot;http://box2d-js.sourceforge.net/&quot;&gt;Box2DJS&lt;/a&gt; engine which made physics a breeze! This engine is used in many projects and is now available to web developers. Before I create the dice, I actually initialize the world around me:&lt;/p&gt;

&lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt;
  &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;function&lt;/span&gt; createWorld(width, height) {&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;var&lt;/span&gt; worldAABB = &lt;span style=&quot;color: #0000ff&quot;&gt;new&lt;/span&gt; b2AABB();&lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;var&lt;/span&gt; world = &lt;span style=&quot;color: #0000ff&quot;&gt;new&lt;/span&gt; b2World(worldAABB, gravity, doSleep);&lt;br /&gt;    createGround(world, width, height);&lt;br /&gt;    &lt;span style=&quot;color: #008000&quot;&gt;// Side&lt;/span&gt;&lt;br /&gt;    createBox(world, 0, 0, 30, height);&lt;br /&gt;    createBox(world, width, 0, 30, height);&lt;br /&gt;    createBox(world, 0, 0, width + 30, 30);&lt;br /&gt;    createBox(world, 0,height , width+30,30);&lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; world;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;And then during dice creation I add each die to the world and give it an initial velocity.&lt;/p&gt;

&lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt;
  &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;// add this dice to the physics engine&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.circleBody = createBall(world, &lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.xTrans, &lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.yTrans, &lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.width);    &lt;br /&gt;&lt;span style=&quot;color: #008000&quot;&gt;// give the force a slightly random starting velocity&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.circleBody.SetLinearVelocity(initialForce);&lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;After adding some user interaction to add dice, I remove dice and shake the cup. Then, I create a timer and step the world.&lt;/p&gt;

&lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt;
  &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;timer = window.setInterval(DoStuff, 16);&lt;br /&gt;&lt;span style=&quot;color: #008000&quot;&gt;// move the world&lt;/span&gt;&lt;br /&gt;world.Step(timeStep, iteration);&lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;The Die class has a prototype update function that is called when the world steps. The primary mechanism for moving the dice is to get the coordinates from the physics engine and set the transform property with all of the elements originally established:&lt;/p&gt;

&lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt;
  &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;var&lt;/span&gt; transFormString = &lt;span style=&quot;color: #006080&quot;&gt;&quot;translate(&quot;&lt;/span&gt; + Math.round(&lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.circleBody.m_position.x)&lt;br /&gt;     + &lt;span style=&quot;color: #006080&quot;&gt;&quot;,&quot;&lt;/span&gt; + Math.round(&lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.circleBody.m_position.y) + &lt;span style=&quot;color: #006080&quot;&gt;&quot;) scale (&quot;&lt;/span&gt; +&lt;br /&gt;     &lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.scale.toString() + &lt;span style=&quot;color: #006080&quot;&gt;&quot;) rotate(&quot;&lt;/span&gt; + Math.round(&lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.rotation).toString()&lt;br /&gt;     + &lt;span style=&quot;color: #006080&quot;&gt;&quot;,&quot;&lt;/span&gt; + Math.round(&lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.xTrans).toString() + &lt;span style=&quot;color: #006080&quot;&gt;&quot;,&quot;&lt;/span&gt; +&lt;br /&gt;     Math.round(&lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.yTrans).toString() + &lt;span style=&quot;color: #006080&quot;&gt;&quot;)&quot;&lt;/span&gt;;&lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;We now have moving, rolling, colliding dice.&lt;/p&gt;

&lt;p&gt;Note that using the transform attribute is not necessarily the fastest approach, depending upon the implementation. As mentioned previously, I shied away from the SVGDOM which provides methods such as setTranslate() and setRotate(). The method I chose here considers potential future use of &lt;a href=&quot;http://www.w3.org/TR/css3-2d-transforms/&quot;&gt;CSS Transforms&lt;/a&gt; with &lt;a href=&quot;http://www.w3.org/TR/css3-transitions/&quot;&gt;CSS Transitions&lt;/a&gt; and/or &lt;a href=&quot;http://www.w3.org/TR/css3-animations/&quot;&gt;CSS Animations&lt;/a&gt;.&lt;/p&gt;

&lt;h5&gt;Styling the Graphics&lt;/h5&gt;

&lt;p&gt;Lastly, I wanted to take advantage of SVG integrated into the DOM and use CSS to change the style of the scene. Since the original art came from a design tool, it contained RGB values for colors and opacities.&lt;/p&gt;

&lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt;
  &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;linearGradient&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;cgrad2c&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;x1&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;1&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;x2&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;.17&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;y1&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;0&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;y2&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;.58&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;&lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;stop&lt;/span&gt; &lt;span style=&quot;background-color: yellow&quot;&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;stop-opacity&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;.9&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;offset&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;0&quot;&lt;/span&gt;  &lt;span style=&quot;color: #ff0000&quot;&gt;stop-color&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;#700d0d&quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;/&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;&lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;stop&lt;/span&gt; &lt;span style=&quot;background-color: yellow&quot;&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;stop-opacity&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;.9&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;offset&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;1&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;stop-color&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;#b51616&quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;/&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;/&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;linearGradient&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;I replaced these RGB values with styles:&lt;/p&gt;

&lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt;
  &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;linearGradient&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;cgrad2c&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;x1&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;1&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;x2&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;.17&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;y1&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;0&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;y2&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;.58&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;&lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;stop&lt;/span&gt; &lt;span style=&quot;background-color: yellow&quot;&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;diceCorner6&quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;/&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;&lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;stop&lt;/span&gt; &lt;span style=&quot;background-color: yellow&quot;&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;diceCorner7&quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;/&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;linearGradient&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;This allowed me to create style sheets for each of these styles:&lt;/p&gt;

&lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt;
  &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;g#classHandler&lt;span style=&quot;color: #cc6633&quot;&gt;.vegas&lt;/span&gt; &lt;span style=&quot;background-color: yellow; color: #cc6633&quot;&gt;.diceCorner6&lt;/span&gt; {stop-opacity:&lt;span style=&quot;color: #006080&quot;&gt;.9;&lt;/span&gt;offset:0;stop-&lt;span style=&quot;color: #0000ff&quot;&gt;color&lt;/span&gt;:&lt;span style=&quot;color: #006080&quot;&gt;#700d0d;&lt;/span&gt;}&lt;br /&gt;g#classHandler&lt;span style=&quot;color: #cc6633&quot;&gt;.vegas&lt;/span&gt; &lt;span style=&quot;background-color: yellow; color: #cc6633&quot;&gt;.diceCorner6&lt;/span&gt; {stop-opacity:&lt;span style=&quot;color: #006080&quot;&gt;.9;&lt;/span&gt;offset:1;stop-&lt;span style=&quot;color: #0000ff&quot;&gt;color&lt;/span&gt;:&lt;span style=&quot;color: #006080&quot;&gt;#b51616;&lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;g#classHandler&lt;span style=&quot;color: #cc6633&quot;&gt;.lowfidielity&lt;/span&gt; &lt;span style=&quot;background-color: yellow; color: #cc6633&quot;&gt;.diceCorner6&lt;/span&gt; {offset:0;stop-&lt;span style=&quot;color: #0000ff&quot;&gt;color&lt;/span&gt;:&lt;span style=&quot;color: #006080&quot;&gt;#000000;&lt;/span&gt;}&lt;br /&gt;g#classHandler&lt;span style=&quot;color: #cc6633&quot;&gt;.lowfidielity&lt;/span&gt; &lt;span style=&quot;background-color: yellow; color: #cc6633&quot;&gt;.diceCorner6&lt;/span&gt; {offset:1;stop-&lt;span style=&quot;color: #0000ff&quot;&gt;color&lt;/span&gt;:&lt;span style=&quot;color: #006080&quot;&gt;#000000;&lt;/span&gt;}&lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;And then set the one class property at the top of the document to change all of the styles in the document:&lt;/p&gt;

&lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt;
  &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;// set the overall stylesheet via class&lt;/span&gt;&lt;br /&gt;document.getElementById(&lt;span style=&quot;color: #006080&quot;&gt;&quot;classHandler&quot;&lt;/span&gt;).setAttribute(&lt;span style=&quot;color: #006080&quot;&gt;&quot;class&quot;&lt;/span&gt;, style);&lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;This allows the user to change the style sheet even while the dice are rolling as there is no difference to the DOM as to when these styles are changed. Hardware accelerated graphics in Internet Explorer 9 enable this to happen very quickly.&lt;/p&gt;

&lt;h3&gt;Call to Action&lt;/h3&gt;

&lt;p&gt;Start working with SVG in Internet Explorer 9. IE9 is platform complete for SVG in the latest platform preview release. Experiment with the feature set and tell us about incompatibilities or bugs you find using the “Report Issue” command and on &lt;a href=&quot;https://connect.microsoft.com/IE&quot;&gt;Microsoft Connect&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The IE team is testing sites, libraries and other SVG content on the web. Our goal is to help authors with their content and find any bugs in our feature set. One important best practice is using &lt;a href=&quot;http://blogs.msdn.com/b/ie/archive/2010/06/10/same-markup-explaining-quot-jscript-version-quot-and-styling-new-html5-elements.aspx&quot;&gt;feature detection, not browser detection&lt;/a&gt; when testing for SVG support. Help us find the places where developers are detecting specific browsers instead of testing for functionality, and make any changes to open source libraries, or contact content authors such that we can help fix any issues that may arise.&lt;/p&gt;

&lt;p&gt;We’re excited to see web developers start using this technology and the next generation, graphically rich, websites built with SVG.&lt;/p&gt;

&lt;p&gt;Patrick Dengler 
  &lt;br /&gt;Senior Program Manager 

  &lt;br /&gt;Internet Explorer&lt;/p&gt;&lt;/!--&gt;&lt;/!--&gt;&lt;div style=&quot;clear:both;&quot;&gt;&lt;/div&gt;&lt;img src=&quot;http://blogs.msdn.com/aggbug.aspx?PostID=10056018&quot; width=&quot;1&quot; height=&quot;1&quot;&gt;</description>
<category>svg</category>
<author>ieblog</author>
<guid>http://blogs.msdn.com/b/ie/archive/2010/08/31/getting-ready-for-svg-open.aspx</guid>
<pubDate>Wed, 01 Sep 2010 00:34:00 +0900</pubDate>
</item>
</channel>
</rss>
