﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Windows Live</title>
    <description>Blog entries on products and services related to Windows Live</description>
    <link>http://www.oenoki.com/live/Home/tabid/36/BlogId/1/Default.aspx</link>
    <language>en-US</language>
    <webMaster>admin@oenoki.com</webMaster>
    <pubDate>Mon, 06 Feb 2012 00:04:14 GMT</pubDate>
    <lastBuildDate>Mon, 06 Feb 2012 00:04:14 GMT</lastBuildDate>
    <docs>http://backend.userland.com/rss</docs>
    <generator>Blog RSS Generator Version 3.2.0.29758</generator>
    <item>
      <title>The Laws of Identity and .NET Passport</title>
      <description>&lt;P&gt;I came across an MSDN article &lt;A style="TEXT-DECORATION: underline" href="http://msdn.microsoft.com/webservices/default.aspx?pull=/library/en-us/dnwebsrv/html/lawsofidentity.asp"&gt;The Law of Identity&lt;/A&gt;. It was an interesting reading, especially in the context of how &lt;A style="TEXT-DECORATION: underline" href="http://www.passport.net/"&gt;.NET Passport&lt;/A&gt; breaks many of the laws. It helps explain why it failed in its mission to become the single sign-on mechanism on the Web.&lt;/P&gt;
&lt;P&gt;The second Law of Identity is "minimal disclosure for a contained use". With Passport, the user cannot control how personal information is disclosed; in fact, all information is disclosed. According to the Law of Identity, the user should be able to control when and how much personal information to disclose.&lt;/P&gt;
&lt;P&gt;The third Law is "justifiable parties," that is, user information should be shared only among the parties that need the information. Since Passport is a proprietary technology of Microsoft, it doesn't make sense to most non-MSN sites since Microsoft is always involved.&lt;/P&gt;
&lt;P&gt;The fifth Law is "pluralism of operators and technologies". This is in direct conflict with Passport’s mission to become the single, centralized sign-on technology. Passport's biggest strength turned out to be its biggest weakness: single point of failure. The Law of Identity proposed a more federated metasystem.&lt;/P&gt;
&lt;P&gt;The sixth Law is "human integration" in terms of "offering unambiguous human-machine communication mechanisms offering protection against identity attacks." With Passport it is too easy for hackers to create phising sites.&lt;/P&gt;</description>
      <link>http://www.oenoki.com/live/Home/tabid/36/EntryID/30/Default.aspx</link>
      <comments>http://www.oenoki.com/live/Home/tabid/36/EntryID/30/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.oenoki.com/live/Default.aspx?tabid=36&amp;EntryID=30</guid>
      <pubDate>Tue, 17 Oct 2006 07:54:00 GMT</pubDate>
      <slash:comments>7</slash:comments>
      <trackback:ping>http://www.oenoki.com/live/DesktopModules/Blog/Trackback.aspx?id=30</trackback:ping>
    </item>
    <item>
      <title>.NET パスポートは何故失敗したのか</title>
      <description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;MSDN &lt;SPAN lang=JA style="FONT-FAMILY: 'MS Mincho'; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;で&lt;/SPAN&gt;&lt;SPAN lang=JA&gt; &lt;/SPAN&gt;&lt;A style="TEXT-DECORATION: underline" href="http://msdn.microsoft.com/webservices/default.aspx?pull=/library/en-us/dnwebsrv/html/lawsofidentity.asp"&gt;The Law of Identity&lt;/A&gt; &lt;SPAN lang=JA style="FONT-FAMILY: 'MS Mincho'; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;という面白い記事を読んだ。幾つかの法則を見てみると&lt;/SPAN&gt; &lt;A style="TEXT-DECORATION: underline" href="http://www.passport.net/"&gt;.NET &lt;/A&gt;&lt;SPAN lang=JA style="FONT-FAMILY: 'MS Mincho'; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;&lt;A style="TEXT-DECORATION: underline" href="http://www.passport.net/"&gt;パスポート&lt;/A&gt;が何故&lt;/SPAN&gt; Single Sign-In &lt;SPAN lang=JA style="FONT-FAMILY: 'MS Mincho'; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;の&lt;/SPAN&gt;&lt;SPAN lang=JA style="FONT-SIZE: 13.5pt; FONT-FAMILY: 'MS Mincho'; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;認証サービスとして失敗したかが見えてくる。&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 13.5pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 13.5pt"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=JA style="FONT-FAMILY: 'MS Mincho'; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;例えば第二の法則は「最低限の情報の&lt;/SPAN&gt;&lt;SPAN lang=JA style="FONT-FAMILY: 'MS Mincho'; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;開示」。例えばクレジットカード情報の必要ないサイトにはその情報を公開しない様にする仕組みが必要だ。パスポートにはそのような仕組みはなく、ユーザーがどの情報をどのサイトに対して公開するかは管理できない。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=JA style="FONT-FAMILY: 'MS Mincho'; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;第三の法則は「不必要なサイトへの情報開示」、つまり個人情報の開示を必要最低限のサイトのみに限定するための仕組みだ。パスポートはマイクロソフト独自のテクノロジーであり &lt;/SPAN&gt;MSN &lt;SPAN lang=JA style="FONT-FAMILY: 'MS Mincho'; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;外のサイトの殆どではマイクロソフトが関わる必要はないが、それを避けることはできない。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=JA style="FONT-FAMILY: 'MS Mincho'; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;第五の法則は「複数のプロバイダー」。これはパスポートの様に中央化された一つの&lt;/SPAN&gt; Identity &lt;SPAN lang=JA style="FONT-FAMILY: 'MS Mincho'; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;システムに頼るのではなく、複数のプロバイダーが互換性のある&lt;/SPAN&gt; Identity &lt;SPAN lang=JA style="FONT-FAMILY: 'MS Mincho'; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;サービスを提供する&lt;/SPAN&gt; Metasystem &lt;SPAN lang=JA style="FONT-FAMILY: 'MS Mincho'; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;を提案している。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=JA style="FONT-FAMILY: 'MS Mincho'; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;そして第六の法則はハッカーからユーザーを守る「明白なインターフェース」だ。現在のパスポートでは偽造があまりにも簡単すぎる。&lt;/SPAN&gt;Identity &lt;SPAN lang=JA style="FONT-FAMILY: 'MS Mincho'; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;システムは曖昧でない、明白なインターフェースをユーザーに提供する必要がある。&lt;/SPAN&gt;&lt;/P&gt;</description>
      <link>http://www.oenoki.com/live/Home/tabid/36/EntryID/29/Default.aspx</link>
      <comments>http://www.oenoki.com/live/Home/tabid/36/EntryID/29/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.oenoki.com/live/Default.aspx?tabid=36&amp;EntryID=29</guid>
      <pubDate>Tue, 17 Oct 2006 07:49:00 GMT</pubDate>
      <slash:comments>16</slash:comments>
      <trackback:ping>http://www.oenoki.com/live/DesktopModules/Blog/Trackback.aspx?id=29</trackback:ping>
    </item>
    <item>
      <title>Technical detail of Live Clipboard</title>
      <description>&lt;P&gt;In this blog I'll dive into the implementation detail of &lt;A style="TEXT-DECORATION: underline" href="http://rayozzie.spaces.live.com/blog/cns!FB3017FBB9B2E142!377.trak"&gt;Live Clipboard&lt;/A&gt;, which was originally proposed by Ray Ozzie several months ago. But first, I developed a simple demo below:&lt;/P&gt;
&lt;P&gt;&lt;A style="TEXT-DECORATION: underline" HREF="http://www.oenoki.com/live/Clipboard/tabid/57/Default.aspx"&gt;Live Clipboard Demo&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;First, let's examine how the UI is implemented. The context menu you see when you do a right-click is, quite surprisingly, from a transparent TEXTAREA. The TEXTAREA, via CSS, has the cursor set to 'pointer', z-index set to positive, and opacity set to 0. When a right-click is detected via onMouseEvent (which is fired before the context menu is displayed), TEXTAREA's value is set to the content that should go to the clipboard, and the entire text is programatically selected (so that the context menu for text selection is displayed). When the user select "Copy", the desired text is indeed copied to the clipboard. As for Paste, onPaste event is simulated by calling a function every 50 millseconds that checks the value of the TEXTAREA. If it changes, then either delete, cut, or paste was performed by the user. They seem "hacky" at first, but this is one of few techniques that work well across browsers.&lt;/P&gt;
&lt;P&gt;Next, let's examine the data that actually go to the clipboard. As you may have expected, XML is used for this purpose, and its schema is well documented &lt;A style="TEXT-DECORATION: underline" href="http://rayozzie.spaces.live.com/editorial/rayozzie/demo/liveclip/specification/v092.html"&gt;here&lt;/A&gt;. As a reference, here's a sample XML for a vCard:&lt;/P&gt;&lt;PRE&gt;&lt;?xml version="1.0" encoding="utf-8" ?&gt;&lt;?xml:namespace prefix = lc /&gt;&lt;lc:data&gt;&lt;lc:format type="vcard" contenttype="application/xhtml+xml"&gt;&lt;lc:item&gt;&lt;?xml version="1.0" encoding="utf-8" ?&gt;&lt;BR&gt;&lt;liveclipboard version="0.92" &lt;BR&gt;  source="http://localhost:2475/live/liveclipboard.htm" &lt;BR&gt;  xmlns:lc="http://www.microsoft.com/schemas/liveclipboard"&gt;&lt;BR&gt;&lt;lc:data&gt;&lt;BR&gt;&lt;lc:format type="vcard" contenttype="application/xhtml+xml"&gt;&lt;BR&gt;&lt;lc:item&gt;&lt;BR&gt;  &lt;div class="vcard uid" title="undefined"&gt;&lt;BR&gt;  &lt;div class="fn n"&gt;&lt;span class="given-name"&gt;Keiji&lt;/span&gt;　&lt;span class="family-name"&gt;Oenoki&lt;/span&gt;&lt;/div&gt;&lt;BR&gt;  &lt;a class="email" href="http://www.oenoki.commailto:keijio@microsoft.com"&gt;keijio@microsoft.com&lt;/a&gt;&lt;BR&gt;  &lt;div class="tel"&gt;&lt;span class="value"&gt;425-705-0742&lt;/span&gt;&lt;/div&gt;&lt;BR&gt;  &lt;div class="adr"&gt;&lt;BR&gt;  &lt;span class="type"&gt;Work&lt;/span&gt;:&lt;BR&gt;  &lt;div class="street-address"&gt;1065 La Avenida St&lt;/div&gt;&lt;BR&gt;  &lt;span class="locality"&gt;Mountain View&lt;/span&gt;&lt;BR&gt;  &lt;span class="region"&gt;CA&lt;/span&gt;　&lt;BR&gt;  &lt;span class="postal-code"&gt;94043&lt;/span&gt;　&lt;BR&gt;  &lt;span class="country-name"&gt;USA&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;BR&gt;&lt;/lc:item&gt;&lt;BR&gt;&lt;/lc:format&gt;&lt;BR&gt;&lt;/lc:data&gt;&lt;BR&gt;&lt;/liveclipboard&gt;&lt;/lc:item&gt;&lt;/lc:format&gt;&lt;/lc:data&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;lc:data&gt;&lt;lc:format type="vcard" contenttype="application/xhtml+xml"&gt;&lt;lc:item&gt;&lt;/lc:item&gt;&lt;/lc:format&gt;&lt;/lc:data&gt;It is important to note that &lt;A style="TEXT-DECORATION: underline" href="http://microformats.org/"&gt;microformat&lt;/A&gt; is used here. Micrformat is a way to encode semantic information using the class tag of HTML. This allows both human and machine to easily access the information. Here's an example of encoding "first name" and "last name" using the SPAN tag:&lt;/P&gt;&lt;PRE&gt;&lt;p&gt;This document was prepared by &lt;span class="name"&gt;Keiji Oenoki&lt;/span&gt;, &lt;BR&gt;who lives in Mountain View...&lt;/p&gt;&lt;/PRE&gt;
&lt;P&gt;Next, let's talk about presentation using CSS. CSS controls how the data is displayed. For example, name can be displayed in a bold font, or address information can be made hidden.&lt;/P&gt;
&lt;P&gt;Finally, JavaScript bridges the gap between the data and the presentation. In Live Clipboard, this is achieved by connecting three JavaScript objects - HCard, MicroFormatBindingObject, and WebClip. Consider this example:&lt;/P&gt;&lt;PRE&gt;var hCard1 = new HCard("Keiji", "Oenoki", "keijio@microsoft.com", &lt;BR&gt;  "425-705-0742", null, null, null, null, null, null, &lt;BR&gt;  null, null, null, null, null, null, null, null, &lt;BR&gt;  "1065 La Avenida St", "Mountain View", "CA", "94043","USA", "Microsoft");&lt;BR&gt;var contactBinding1 = new MicroFormatObjectBinding(&lt;BR&gt;  document.getElementById("contactHcard1"), &lt;BR&gt;  hCard1, "ContactContainer unselected", &lt;BR&gt;  "ContactContainer selected");&lt;BR&gt;var clipBoardControl1 = new WebClip(&lt;BR&gt;  document.getElementById("webClipControl1"), contactBinding1.onCopy, &lt;BR&gt;  contactBinding1.onPaste, contactBinding1.onActive, contactBinding1.onInactive);&lt;/PRE&gt;
&lt;P&gt;The first line instantiates the raw data, the second line associates the data with a DIV element (for presentation purpose), and finally the last line connects the data and the presentation using events. There are four types of events in WebClip:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;onCopy: returns the data used during the Copy operation 
&lt;LI&gt;onPaste: invoked when delete/cut/paste is performed 
&lt;LI&gt;onActive: invoked when the data is selected 
&lt;LI&gt;onInactive: invoked when the data selection is cleared&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;That's it! The source code is open to anyone interested:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A style="TEXT-DECORATION: underline" HREF="http://www.oenoki.com/clipboard/clipboard.htm"&gt;clipboard.htm&lt;/A&gt; 
&lt;LI&gt;&lt;A style="TEXT-DECORATION: underline" HREF="http://www.oenoki.com/clipboard/hcard.js"&gt;hcard.js&lt;/A&gt; 
&lt;LI&gt;&lt;A style="TEXT-DECORATION: underline" HREF="http://www.oenoki.com/clipboard/script.js"&gt;script.js&lt;/A&gt; 
&lt;LI&gt;&lt;A style="TEXT-DECORATION: underline" HREF="http://www.oenoki.com/clipboard/styles.css"&gt;styles.css&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt; &lt;/P&gt;</description>
      <link>http://www.oenoki.com/live/Home/tabid/36/EntryID/22/Default.aspx</link>
      <comments>http://www.oenoki.com/live/Home/tabid/36/EntryID/22/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.oenoki.com/live/Default.aspx?tabid=36&amp;EntryID=22</guid>
      <pubDate>Tue, 26 Sep 2006 05:00:00 GMT</pubDate>
      <slash:comments>5</slash:comments>
      <trackback:ping>http://www.oenoki.com/live/DesktopModules/Blog/Trackback.aspx?id=22</trackback:ping>
    </item>
    <item>
      <title>Live Clipboard の仕組みを探る</title>
      <description>&lt;P&gt;Ray Ozzie 氏の提案する &lt;A style="TEXT-DECORATION: underline" href="http://rayozzie.spaces.live.com/blog/cns!FB3017FBB9B2E142!377.entry"&gt;Live Clipboard&lt;/A&gt; 、どのような仕組みになっているか気になっていたので調べてみた。まずその前に Live Clipboard の簡単なデモを作ってみた。&lt;/P&gt;
&lt;P&gt;&lt;A style="TEXT-DECORATION: underline" HREF="http://www.oenoki.com/live/Clipboard/tabid/57/Default.aspx"&gt;Live Clipboard Demo&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;それでは、まず UI の仕組みから調べていこう。右クリックした時にでてくるメニューは TEXTAREA のものだ。意外に思うかも知れないが、CSS で cursor を pointer にして、z-index をプラスにして、Opacity を 0 にしてある。そして右クリックの MouseDown のイベント（メニューがでる直前）でその TEXTAREA のテキストをクリップボードにコピーしたい内容に置き換えて、Select All をする。その後すぐにメニューが表示されるので、あとはユーザーがコピーを選択すればテキストがクリップボードへコピーされるという訳だ。それでは Paste はどうかというと、onPaste というイベントはないのでなんとタイマーを使って毎0.05秒ごとに TEXTAREA のテキストが変わっていないかをチェックしている。もしカットやペーストされればテキストが変わるので、それが onPaint ということだ。うーん、どう考えても Hack としか思えないようなテクニックだが、クロスプラットフォームとセキュリティーを実現するには他にあまり方法はないのかも知れない。&lt;/P&gt;
&lt;P&gt;さて、次にクリップボードに実際にコピーされるデータの形式について。これは XML で、親切にきちんと Document してあるのでそちらを&lt;A style="TEXT-DECORATION: underline" href="http://rayozzie.spaces.live.com/editorial/rayozzie/demo/liveclip/specification/v092.html"&gt;参照&lt;/A&gt;してもらいたい。参考に vCard の XML はこんな感じ：&lt;/P&gt;&lt;PRE&gt;&lt;?xml version="1.0" encoding="utf-8" ?&gt;&lt;BR&gt;&lt;liveclipboard version="0.92" &lt;BR&gt;  source="http://localhost:2475/live/liveclipboard.htm" &lt;BR&gt;  xmlns:lc="http://www.microsoft.com/schemas/liveclipboard"&gt;&lt;BR&gt;&lt;lc:data&gt;&lt;BR&gt;&lt;lc:format type="vcard" contenttype="application/xhtml+xml"&gt;&lt;BR&gt;&lt;lc:item&gt;&lt;BR&gt;  &lt;div class="vcard uid" title="undefined"&gt;&lt;BR&gt;  &lt;div class="fn n"&gt;&lt;span class="given-name"&gt;Keiji&lt;/span&gt;　&lt;span class="family-name"&gt;Oenoki&lt;/span&gt;&lt;/div&gt;&lt;BR&gt;  &lt;a class="email" href="http://www.oenoki.commailto:keijio@microsoft.com"&gt;keijio@microsoft.com&lt;/a&gt;&lt;BR&gt;  &lt;div class="tel"&gt;&lt;span class="value"&gt;425-705-0742&lt;/span&gt;&lt;/div&gt;&lt;BR&gt;  &lt;div class="adr"&gt;&lt;BR&gt;  &lt;span class="type"&gt;Work&lt;/span&gt;:&lt;BR&gt;  &lt;div class="street-address"&gt;1065 La Avenida St&lt;/div&gt;&lt;BR&gt;  &lt;span class="locality"&gt;Mountain View&lt;/span&gt;&lt;BR&gt;  &lt;span class="region"&gt;CA&lt;/span&gt;　&lt;BR&gt;  &lt;span class="postal-code"&gt;94043&lt;/span&gt;　&lt;BR&gt;  &lt;span class="country-name"&gt;USA&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;BR&gt;&lt;/lc:item&gt;&lt;BR&gt;&lt;/lc:format&gt;&lt;BR&gt;&lt;/lc:data&gt;&lt;BR&gt;&lt;/liveclipboard&gt;&lt;/PRE&gt;
&lt;P&gt;ここで重要なのは&lt;A style="TEXT-DECORATION: underline" href="http://microformats.org/"&gt;マイクロフォーマット&lt;/A&gt;が利用されているという事。マイクロフォーマットは簡単に言えば HTML に CSS のクラス名を使って情報を付け足すという面白いテクニック。例えば名前なら&lt;/P&gt;&lt;PRE&gt;&lt;P&gt;&lt;p&gt;This document was prepared by &lt;span class="name"&gt;Keiji Oenoki&lt;/span&gt;, &lt;BR&gt;who lives in Mountain View...&lt;/p&gt; &lt;/P&gt;&lt;/PRE&gt;
&lt;P&gt;という具合だ。人にもコンピュータにも読みやすくするのがマイクロフォーマットの目的だ。ペーストの時にはこの XML を Parse して、必要な情報を手に入れるという仕組み。&lt;/P&gt;
&lt;P&gt;次に、プレゼンテーションのための CSS 。これでどの情報をどのように見せるか調節する。例えば名前を Bold にしたり、アドレスを見せないようにしたりできる。&lt;/P&gt;
&lt;P&gt;最後に、JavaScript がデータとプレゼンテーションを繋げる。Live Clipboard では HCard、 MicroFormatBindingObject、WebClip の３つのオブジェクトを使っている。&lt;/P&gt;&lt;PRE&gt;var hCard1 = new HCard("Keiji", "Oenoki", "keijio@microsoft.com", &lt;BR&gt;  "425-705-0742", null, null, null, null, null, null, &lt;BR&gt;  null, null, null, null, null, null, null, null, &lt;BR&gt;  "1065 La Avenida St", "Mountain View", "CA", "94043","USA", "Microsoft");&lt;BR&gt;var contactBinding1 = new MicroFormatObjectBinding(&lt;BR&gt;  document.getElementById("contactHcard1"), &lt;BR&gt;  hCard1, "ContactContainer unselected", &lt;BR&gt;  "ContactContainer selected");&lt;BR&gt;var clipBoardControl1 = new WebClip(&lt;BR&gt;  document.getElementById("webClipControl1"), contactBinding1.onCopy, &lt;BR&gt;  contactBinding1.onPaste, contactBinding1.onActive, contactBinding1.onInactive);&lt;/PRE&gt;&lt;PRE&gt;&lt;/PRE&gt;
&lt;P&gt;一行目で hCard データそのものを作り（データ）、二行目でその hCard を DIV とくっつけて見れるようにし（プレゼンテーション）、そして三行目でイベントを使ってデータとプレゼンテーションを連動させる。（ちなみに最初に話した TEXTAREA は WebClip に渡された DIV に作られる。） WebClip のイベントは四つある。&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;onCopy コピーに使われるデータを渡す 
&lt;LI&gt;onPaste　ペーストだけでなくカットや Delete でも呼ばれる 
&lt;LI&gt;onActive セレクトされた時 
&lt;LI&gt;onInactive　セレクトが終わった時&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;これで完成。ソースコードを公開しているので、興味のある方はこちらから。&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A style="TEXT-DECORATION: underline" HREF="http://www.oenoki.com/clipboard/clipboard.htm"&gt;clipboard.htm&lt;/A&gt; 
&lt;LI&gt;&lt;A style="TEXT-DECORATION: underline" HREF="http://www.oenoki.com/clipboard/hcard.js"&gt;hcard.js&lt;/A&gt; 
&lt;LI&gt;&lt;A style="TEXT-DECORATION: underline" HREF="http://www.oenoki.com/clipboard/script.js"&gt;script.js&lt;/A&gt; 
&lt;LI&gt;&lt;A style="TEXT-DECORATION: underline" HREF="http://www.oenoki.com/clipboard/styles.css"&gt;styles.css&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt; &lt;/P&gt;</description>
      <link>http://www.oenoki.com/live/Home/tabid/36/EntryID/21/Default.aspx</link>
      <comments>http://www.oenoki.com/live/Home/tabid/36/EntryID/21/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.oenoki.com/live/Default.aspx?tabid=36&amp;EntryID=21</guid>
      <pubDate>Tue, 26 Sep 2006 02:53:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.oenoki.com/live/DesktopModules/Blog/Trackback.aspx?id=21</trackback:ping>
    </item>
    <item>
      <title>Playing with Windows Live and Google Toolbars</title>
      <description>&lt;P&gt;&lt;IMG height=16 alt=cb_logo.png hspace=3 src="http://www.oenoki.com/live/Portals/0/cb_logo.png" width=16 border=0 align=left&gt;&lt;A style="text-decoration: underline;" href="http://toolbar.live.com/"&gt;Windows Live Toolbar 3.0&lt;/A&gt; and &lt;A style="text-decoration: underline;" href="http://toolbar.google.com/"&gt;Google Toolbar 4&lt;/A&gt; have been released recently. They both have a feature called Custom Button, which allows new buttons to be added via XML. So I took them for test spins.&lt;/P&gt;
&lt;P&gt;First, Windows Live Toolbar. I found &lt;A style="text-decoration: underline;" href="http://msdn2.microsoft.com/en-us/library/aa336231.aspx"&gt;MSDN Custom Button SDK&lt;/A&gt; through &lt;A style="text-decoration: underline;" href="http://gallery.live.com/"&gt;Windows Live Gallery&lt;/A&gt;. Usually I'm not a big fan of MSDN as most documentations are not easy to follow, and Custom Button SDK doc was no exception. I found it more helpful to refer to the &lt;A style="text-decoration: underline;" href="http://gallery.live.com/LiveItemDetail.aspx?li=a02fb5db-7fec-49a1-89dd-50e2f0073cb0&amp;l=2&amp;subtype_filter=0&amp;date_filter=0&amp;sort_by_filter=0&amp;c=39&amp;view_style=medium&amp;page=0"&gt;MSDN button&lt;/A&gt;, which was installed in \Documents and Settings\&lt;USERID&gt;\Application Data\Microsoft\WLTB Custom Buttons. Here is the XML &lt;A style="text-decoration: underline;" href="http://www.oenoki.com/cb/button.xml"&gt;source code&lt;/A&gt; for Keiji Notepad button, and this is how the button looks like:&lt;/P&gt;
&lt;P&gt;&lt;IMG height=236 alt=live_cb.png src="http://www.oenoki.com/live/Portals/0/live_cb.png" width=377 border=1&gt;&lt;/P&gt;
&lt;P&gt;Next, Google Toolbar. I found the &lt;A style="text-decoration: underline;" href="http://toolbar.google.com/buttons/apis/howto_guide.html"&gt;API Documentation&lt;/A&gt; from &lt;A style="text-decoration: underline;" href="http://toolbar.google.com/buttons/gallery"&gt;Button Gallery&lt;/A&gt;. Though the documentation was easy to understand, I was disappointed with the limitted functionality. First, Google Toolbar only support displaying one RSS feed, as opposed to up to 10 in Windows Live Toolbar. Also, it was not possible to add custom menu items. Here's the XML &lt;A style="text-decoration: underline;" href="http://www.oenoki.com/cb/google_button.xml"&gt;source code&lt;/A&gt;, and here's the screenshot:&lt;/P&gt;
&lt;P&gt;&lt;IMG height=311 alt=google_cb.png src="http://www.oenoki.com/live/Portals/0/google_cb.png" width=362 border=1&gt;&lt;/P&gt;
&lt;P&gt;Though Custom Buttons are obviously not as powerful as other forms of adding functionality, it certainly offers great simplicity. For those interested in installing Keiji Notepad buttons, here are the links:&lt;/P&gt;
&lt;P&gt;&lt;A style="text-decoration: underline;" href="http://toolbar.live.com/addbutton/?btnurl=http://www.oenoki.com/cb/oenoki.live.btn"&gt;Keiji Notepad&lt;/A&gt; (Windows Live Toolbar)&lt;BR&gt;&lt;A style="text-decoration: underline;" href="http://toolbar.google.com/buttons/add?url=http://www.oenoki.comhttp://www.oenoki.com/cb/google_button.xml"&gt;Keiji Notepad&lt;/A&gt; (Google Toolbar)&lt;/P&gt;</description>
      <link>http://www.oenoki.com/live/Home/tabid/36/EntryID/15/Default.aspx</link>
      <comments>http://www.oenoki.com/live/Home/tabid/36/EntryID/15/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.oenoki.com/live/Default.aspx?tabid=36&amp;EntryID=15</guid>
      <pubDate>Thu, 14 Sep 2006 18:06:00 GMT</pubDate>
      <slash:comments>164</slash:comments>
      <trackback:ping>http://www.oenoki.com/live/DesktopModules/Blog/Trackback.aspx?id=15</trackback:ping>
    </item>
    <item>
      <title>ツールバーで遊んでみた</title>
      <description>&lt;P&gt;最近 &lt;A style="TEXT-DECORATION: underline" href="http://toolbar.live.com/"&gt;Windows Live Toolbar 3.0&lt;/A&gt; と &lt;A style="TEXT-DECORATION: underline" href="http://toolbar.google.com/"&gt;Google Toolbar 4&lt;/A&gt; がリリースされた。両方とも Custom Button という新しいボタンを XML を使って作ることができる機能を備えているので、試してみた。&lt;/P&gt;
&lt;P&gt;まず Windows Live Toolbar から。&lt;A style="TEXT-DECORATION: underline" href="http://gallery.live.com/"&gt;Windows Live Gallery&lt;/A&gt; の&lt;A style="TEXT-DECORATION: underline" href="http://gallery.live.com/devcenter.aspx"&gt;開発者用のページ&lt;/A&gt;から &lt;A style="TEXT-DECORATION: underline" href="http://msdn2.microsoft.com/en-us/library/aa336231.aspx"&gt;Custom Button SDK&lt;/A&gt; へ。 MSDN は情報量では言うことはないのだが、個人的に分かり易く書かれているとは思えない。Custom Button SDK も分かりづらかったので &lt;A style="TEXT-DECORATION: underline" href="http://gallery.live.com/LiveItemDetail.aspx?li=a02fb5db-7fec-49a1-89dd-50e2f0073cb0&amp;l=2&amp;subtype_filter=0&amp;date_filter=0&amp;sort_by_filter=0&amp;c=39&amp;view_style=medium&amp;page=0"&gt;MSDN Button&lt;/A&gt; を参考に見ながら書いた。（Custom Button は \Documents and Settings\&lt;USERID&gt;\Application Data\Microsoft\WLTB Custom Buttons にインストールされる。） XML ソースコードは&lt;A style="TEXT-DECORATION: underline" href="http://www.oenoki.com/cb/button.xml"&gt;こちら&lt;/A&gt;。スクリーンショットはこんな感じ：&lt;/P&gt;
&lt;P&gt;&lt;IMG height=236 alt=live_cb.png src="http://www.oenoki.com/live/Portals/0/live_cb.png" width=377 border=1&gt;&lt;/P&gt;
&lt;P&gt;さて次に Google Toolbar へ。 &lt;A style="TEXT-DECORATION: underline" href="http://toolbar.google.com/buttons/gallery"&gt;Button Gallery&lt;/A&gt; の &lt;A style="TEXT-DECORATION: underline" href="http://toolbar.google.com/buttons/apis/howto_guide.html"&gt;API Documentation&lt;/A&gt; を読みながら作った。MSDN よりも全然分かり易く書いてあってすいすい書けたのはいいが、Live Toolbar と比べて機能的に劣っている。例えば Live Toolbar では RSS Feed をいくつか書けるが、Google Toolbar では一つだけ。あと、Google Toolbar ではメニューに RSS と普通のリンクの両方をのせることはできなかった。XML ソースコードは&lt;A style="TEXT-DECORATION: underline" href="http://www.oenoki.com/cb/google_button.xml"&gt;こちら&lt;/A&gt;。スクリーンショットはこんな感じ：&lt;/P&gt;
&lt;P&gt;&lt;IMG height=311 alt=google_cb.png src="http://www.oenoki.com/live/Portals/0/google_cb.png" width=362 border=1&gt;&lt;/P&gt;
&lt;P&gt;XML ベースなので本格的な開発者にはまだまだ API の質が足りないが、簡単にツールバーの機能を拡張できるのは便利だ。Keiji Notepad のボタンをインストールしたい方はこちらから：&lt;/P&gt;
&lt;P&gt;&lt;A style="TEXT-DECORATION: underline" href="http://toolbar.live.com/addbutton/?btnurl=http://www.oenoki.com/cb/oenoki.live.btn"&gt;Keiji Notepad&lt;/A&gt; (Windows Live Toolbar) &lt;BR&gt;&lt;A style="TEXT-DECORATION: underline" href="http://toolbar.google.com/buttons/add?url=http://www.oenoki.comhttp://www.oenoki.com/cb/google_button.xml"&gt;Keiji Notepad&lt;/A&gt; (Google Toolbar) &lt;/P&gt;</description>
      <link>http://www.oenoki.com/live/Home/tabid/36/EntryID/14/Default.aspx</link>
      <comments>http://www.oenoki.com/live/Home/tabid/36/EntryID/14/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.oenoki.com/live/Default.aspx?tabid=36&amp;EntryID=14</guid>
      <pubDate>Wed, 13 Sep 2006 21:10:00 GMT</pubDate>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://www.oenoki.com/live/DesktopModules/Blog/Trackback.aspx?id=14</trackback:ping>
    </item>
    <item>
      <title>Windows Live Toolbar: Introducing Smart Menu</title>
      <description>Check out this great &lt;A style="TEXT-DECORATION: underline" href="http://www.decheung.com/2006/07/smart-menus-introduced-and-explained-with-videos-2.html"&gt;blog entry&lt;/A&gt; of Dennis, a PM in the Live Toolbar team. In my opinion this is by far the best feature of the Live Toolbar. It's worth installing the Live Toolbar just for SmartMenu and MapButton.</description>
      <link>http://www.oenoki.com/live/Home/tabid/36/EntryID/11/Default.aspx</link>
      <comments>http://www.oenoki.com/live/Home/tabid/36/EntryID/11/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.oenoki.com/live/Default.aspx?tabid=36&amp;EntryID=11</guid>
      <pubDate>Wed, 06 Sep 2006 00:04:00 GMT</pubDate>
      <slash:comments>4</slash:comments>
      <trackback:ping>http://www.oenoki.com/live/DesktopModules/Blog/Trackback.aspx?id=11</trackback:ping>
    </item>
    <item>
      <title>LINQ goes Parallel</title>
      <description>&lt;P&gt;&lt;IMG height=75 alt=linq.jpg src="http://www.oenoki.com/live/Portals/0/linq.jpg" width=94 align=left border=0&gt;The C# team is working on a parallel version of LINQ, &lt;A style="TEXT-DECORATION: underline" href="http://www.eweek.com/article2/0%2c1895%2c2009167%2c00.asp"&gt;PLinq&lt;/A&gt;. LINQ is a new feature in the next version of C# that promises to integrate data query right into the heart of the language. I think this is one of the most exciting developments in the evolution of programming languages today. MSDN has a great &lt;A style="TEXT-DECORATION: underline" href="http://msdn.microsoft.com/data/ref/linq/"&gt;LINQ Project site&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;For those who are interested to learn the inside story of LINQ, take a look at &lt;A style="TEXT-DECORATION: underline" href="http://blogs.msdn.com/daigoh/"&gt;Daigo's website&lt;/A&gt; (Japanese).&lt;/P&gt;</description>
      <link>http://www.oenoki.com/live/Home/tabid/36/EntryID/7/Default.aspx</link>
      <comments>http://www.oenoki.com/live/Home/tabid/36/EntryID/7/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.oenoki.com/live/Default.aspx?tabid=36&amp;EntryID=7</guid>
      <pubDate>Tue, 29 Aug 2006 20:49:00 GMT</pubDate>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.oenoki.com/live/DesktopModules/Blog/Trackback.aspx?id=7</trackback:ping>
    </item>
    <item>
      <title>What is Windows Live?</title>
      <description>&lt;SPAN class=NormalSmall&gt;
&lt;P&gt;&lt;IMG height=116 alt=windowslive.JPG src="http://www.oenoki.com/live/Portals/0/windowslive.JPG" width=276 align=left border=0&gt;&lt;IMG height=1 src="http://www.oenoki.com/live/Providers/HtmlEditorProviders/Ftb3HtmlEditorProvider/ftb3/Utility/spacer.gif" width=1&gt;Microsoft announced &lt;A style="text-decoration: underline;" href="http://www.microsoft.com/presspass/press/2005/nov05/11-01PreviewSoftwareBasedPR.mspx"&gt;several months ago&lt;/A&gt; a new software service called "Windows Live". I will start this blog by answering the question, "what exactly is Windows Live"? &lt;/P&gt;
&lt;P&gt;My view is that Windows Live targets two main audiences, consumers and developers. For consumers, Windows Live offers a set of services that enrich online communication, including email, IM, and blogging, among other things. There's no better place than &lt;A style="text-decoration: underline;" href="http://ideas.live.com/"&gt;ideas.live.com&lt;/A&gt; to see the list of new services offered under the Windows Live brand. Earlier this month CNet featured &lt;A style="text-decoration: underline;" href="http://reviews.cnet.com/4520-9239_7-6624643-1.html"&gt;Top 10 Windows Live services&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;For developers, Windows Live offers a new software platform on which third-party services can be built. Developers can go to &lt;A style="text-decoration: underline;" href="http://dev.live.com/"&gt;dev.live.com&lt;/A&gt; and &lt;A style="text-decoration: underline;" href="http://msdn.microsoft.com/live/"&gt;Windows Live Developer Center&lt;/A&gt; to see the list of APIs that are available to them. Though the API is not yet as extensive as I think it should be, I believe the Windows Live platform offers a whole new opportunity especially for individual developers and small businesses. &lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;(image from CNet)&lt;/P&gt;</description>
      <link>http://www.oenoki.com/live/Home/tabid/36/EntryID/2/Default.aspx</link>
      <comments>http://www.oenoki.com/live/Home/tabid/36/EntryID/2/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.oenoki.com/live/Default.aspx?tabid=36&amp;EntryID=2</guid>
      <pubDate>Tue, 22 Aug 2006 04:52:00 GMT</pubDate>
      <slash:comments>4</slash:comments>
      <trackback:ping>http://www.oenoki.com/live/DesktopModules/Blog/Trackback.aspx?id=2</trackback:ping>
    </item>
  </channel>
</rss>
