<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Supporting the system clipboard in your Web applications; What a pain!</title>
	<atom:link href="http://almaer.com/blog/supporting-the-system-clipboard-in-your-web-applications-what-a-pain/feed" rel="self" type="application/rss+xml" />
	<link>http://almaer.com/blog/supporting-the-system-clipboard-in-your-web-applications-what-a-pain</link>
	<description>blogging about life, the universe, and everything tech</description>
	<lastBuildDate>Sat, 08 Sep 2012 07:06:53 -0700</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: brett</title>
		<link>http://almaer.com/blog/supporting-the-system-clipboard-in-your-web-applications-what-a-pain/comment-page-1#comment-41941</link>
		<dc:creator>brett</dc:creator>
		<pubDate>Fri, 21 Aug 2009 16:07:13 +0000</pubDate>
		<guid isPermaLink="false">http://almaer.com/blog/?p=2284#comment-41941</guid>
		<description>any idea if mobile safari supports clipboard access? it&#039;s not obvious form the docs if they do...</description>
		<content:encoded><![CDATA[<p>any idea if mobile safari supports clipboard access? it&#8217;s not obvious form the docs if they do&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Dowdell</title>
		<link>http://almaer.com/blog/supporting-the-system-clipboard-in-your-web-applications-what-a-pain/comment-page-1#comment-40486</link>
		<dc:creator>John Dowdell</dc:creator>
		<pubDate>Fri, 06 Mar 2009 00:08:13 +0000</pubDate>
		<guid isPermaLink="false">http://almaer.com/blog/?p=2284#comment-40486</guid>
		<description>From what I understand, if the browsers tracked user-initiated JavaScript events, and could pass the info to plugins, the old way would still work.

(Or you could just put the button in Flash, which can track user-initiated events.)

That &quot;zeroclipboard&quot; hack... that&#039;s a clickjacking exploit, isn&#039;t it? Browsers really need to guarantee that What You See Is What You Click. Hacking atop the fault doesn&#039;t seem sustainable.

jd/adobe</description>
		<content:encoded><![CDATA[<p>From what I understand, if the browsers tracked user-initiated JavaScript events, and could pass the info to plugins, the old way would still work.</p>
<p>(Or you could just put the button in Flash, which can track user-initiated events.)</p>
<p>That &#8220;zeroclipboard&#8221; hack&#8230; that&#8217;s a clickjacking exploit, isn&#8217;t it? Browsers really need to guarantee that What You See Is What You Click. Hacking atop the fault doesn&#8217;t seem sustainable.</p>
<p>jd/adobe</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pies</title>
		<link>http://almaer.com/blog/supporting-the-system-clipboard-in-your-web-applications-what-a-pain/comment-page-1#comment-40479</link>
		<dc:creator>Pies</dc:creator>
		<pubDate>Thu, 05 Mar 2009 10:45:52 +0000</pubDate>
		<guid isPermaLink="false">http://almaer.com/blog/?p=2284#comment-40479</guid>
		<description>Just loose the UI icons and use the hidden input/textarea solution. I don&#039;t see a point in programmer&#039;s editor having icons for commonly used functionalities like Copy/Paste.</description>
		<content:encoded><![CDATA[<p>Just loose the UI icons and use the hidden input/textarea solution. I don&#8217;t see a point in programmer&#8217;s editor having icons for commonly used functionalities like Copy/Paste.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sam Foster</title>
		<link>http://almaer.com/blog/supporting-the-system-clipboard-in-your-web-applications-what-a-pain/comment-page-1#comment-40478</link>
		<dc:creator>Sam Foster</dc:creator>
		<pubDate>Thu, 05 Mar 2009 09:53:53 +0000</pubDate>
		<guid isPermaLink="false">http://almaer.com/blog/?p=2284#comment-40478</guid>
		<description>@Voracity - good points. I agree that a part of the &quot;open&quot; in the Open Web is being lost here. Being able to poke, prod and tweak a thing in the browser, at runtime is very much a part of what gives the Open Web its value. No black boxes. 

But that&#039;s a digression from the subject of this post. The applet seems to be the way to go, if you cant do it all with a hidden field. The applet and js api you wrap around it just need to bridge the gap - put a facade up that smooths away the funkiness you describe here, until such time as sanity is brought to the subject. That would give you your IE compatability too (when you need it). 

I know everyone has this knee-jerk reaction when it comes to java applets, but seriously, why not?</description>
		<content:encoded><![CDATA[<p>@Voracity &#8211; good points. I agree that a part of the &#8220;open&#8221; in the Open Web is being lost here. Being able to poke, prod and tweak a thing in the browser, at runtime is very much a part of what gives the Open Web its value. No black boxes. </p>
<p>But that&#8217;s a digression from the subject of this post. The applet seems to be the way to go, if you cant do it all with a hidden field. The applet and js api you wrap around it just need to bridge the gap &#8211; put a facade up that smooths away the funkiness you describe here, until such time as sanity is brought to the subject. That would give you your IE compatability too (when you need it). </p>
<p>I know everyone has this knee-jerk reaction when it comes to java applets, but seriously, why not?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jesse Ruderman</title>
		<link>http://almaer.com/blog/supporting-the-system-clipboard-in-your-web-applications-what-a-pain/comment-page-1#comment-40454</link>
		<dc:creator>Jesse Ruderman</dc:creator>
		<pubDate>Sat, 28 Feb 2009 08:30:19 +0000</pubDate>
		<guid isPermaLink="false">http://almaer.com/blog/?p=2284#comment-40454</guid>
		<description>&quot;contentEdible&quot; is a delicious typo.</description>
		<content:encoded><![CDATA[<p>&#8220;contentEdible&#8221; is a delicious typo.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Barney Carroll</title>
		<link>http://almaer.com/blog/supporting-the-system-clipboard-in-your-web-applications-what-a-pain/comment-page-1#comment-40450</link>
		<dc:creator>Barney Carroll</dc:creator>
		<pubDate>Fri, 27 Feb 2009 13:14:51 +0000</pubDate>
		<guid isPermaLink="false">http://almaer.com/blog/?p=2284#comment-40450</guid>
		<description>Obviously your app has its own special wares to bring to the table (or you wouldn&#039;t be interested in developing this), but the way I see it there&#039;s two ways to go about this:

1) Access to the global OS clipboard proper – I&#039;d be very worried for the future of the web if you succeeded in doing this while sticking to non-proprietary W3 tech.

2) Create your own clipboard + cut &amp; paste methods that stick to your app – context menus &amp; events bound to Ctrl+C/X/V operating with mouse coords and focus respectively on a textarea.

Regards,
Barney</description>
		<content:encoded><![CDATA[<p>Obviously your app has its own special wares to bring to the table (or you wouldn&#8217;t be interested in developing this), but the way I see it there&#8217;s two ways to go about this:</p>
<p>1) Access to the global OS clipboard proper – I&#8217;d be very worried for the future of the web if you succeeded in doing this while sticking to non-proprietary W3 tech.</p>
<p>2) Create your own clipboard + cut &amp; paste methods that stick to your app – context menus &amp; events bound to Ctrl+C/X/V operating with mouse coords and focus respectively on a textarea.</p>
<p>Regards,<br />
Barney</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Thornton</title>
		<link>http://almaer.com/blog/supporting-the-system-clipboard-in-your-web-applications-what-a-pain/comment-page-1#comment-40449</link>
		<dc:creator>Chris Thornton</dc:creator>
		<pubDate>Fri, 27 Feb 2009 11:43:33 +0000</pubDate>
		<guid isPermaLink="false">http://almaer.com/blog/?p=2284#comment-40449</guid>
		<description>For those interested, here is my article summarizing the Flash clipboard vulnerability. http://www.clipboardextender.com/defective-apps/clipboard-virus-not-exactly-but-still-dangerous</description>
		<content:encoded><![CDATA[<p>For those interested, here is my article summarizing the Flash clipboard vulnerability. <a href="http://www.clipboardextender.com/defective-apps/clipboard-virus-not-exactly-but-still-dangerous" rel="nofollow">http://www.clipboardextender.com/defective-apps/clipboard-virus-not-exactly-but-still-dangerous</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dave Johnson</title>
		<link>http://almaer.com/blog/supporting-the-system-clipboard-in-your-web-applications-what-a-pain/comment-page-1#comment-40446</link>
		<dc:creator>Dave Johnson</dc:creator>
		<pubDate>Fri, 27 Feb 2009 05:07:34 +0000</pubDate>
		<guid isPermaLink="false">http://almaer.com/blog/?p=2284#comment-40446</guid>
		<description>We have done something similar Dion where we capture the ctrl + c keydown event on whatever DOM element you want then put whatever text you want to copy into a hidden textarea and focus the textarea with the text selected. The keyup event will cause a native copy to happen and the selected text will then be on the system clipboard. Paste works in a similar way.</description>
		<content:encoded><![CDATA[<p>We have done something similar Dion where we capture the ctrl + c keydown event on whatever DOM element you want then put whatever text you want to copy into a hidden textarea and focus the textarea with the text selected. The keyup event will cause a native copy to happen and the selected text will then be on the system clipboard. Paste works in a similar way.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: voracity</title>
		<link>http://almaer.com/blog/supporting-the-system-clipboard-in-your-web-applications-what-a-pain/comment-page-1#comment-40445</link>
		<dc:creator>voracity</dc:creator>
		<pubDate>Fri, 27 Feb 2009 03:40:25 +0000</pubDate>
		<guid isPermaLink="false">http://almaer.com/blog/?p=2284#comment-40445</guid>
		<description>Apologies, Firefox&#039;s zoom does work, it just looks horrible.</description>
		<content:encoded><![CDATA[<p>Apologies, Firefox&#8217;s zoom does work, it just looks horrible.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: voracity</title>
		<link>http://almaer.com/blog/supporting-the-system-clipboard-in-your-web-applications-what-a-pain/comment-page-1#comment-40444</link>
		<dc:creator>voracity</dc:creator>
		<pubDate>Fri, 27 Feb 2009 03:18:24 +0000</pubDate>
		<guid isPermaLink="false">http://almaer.com/blog/?p=2284#comment-40444</guid>
		<description>I find myself constantly oscillating between thinking that this is a great and innovative project to being worried that the choice to snub *hackable* web technologies (with what appears to everyone like Mozilla&#039;s blessing) will do more harm to the web than Microsoft&#039;s neglect of IE6.

When I inspect BeSpin with Firebug, I see a div element with id=editor that contains a canvas element with id=canvas --- and that&#039;s it. I can&#039;t use Firebug to manipulate the editor (like resize, move or delete elements). I can&#039;t put CSS declarations in my user agent style sheet that will have any effect on the BeSpin text editing --- and furthermore, I can&#039;t use any extension that manipulates fonts, colors, etc. on my behalf. Even Firefox&#039;s Zoom Page function has no effect on BeSpin. When I run a &quot;Find on Page&quot;, I can&#039;t find any of what I&#039;ve typed. Even the copy &amp; paste problem you describe in this post arises partly because you&#039;ve spun your own UI. What about testrunners? I use Selenium IDE to automate my website testing. Completely useless with BeSpin. The ScrapBook extension, which lets you save webpage clippings? Useless again with BeSpin. Spellcheckers? Useless. Context-sensitive searches? Useless. The list of browser features and extensions that this breaks just goes on and on.

And then there&#039;s Ubiquity. Oh what irony that Ubiquity becomes completely useless on a fellow labs project given what the word ubiquity means!

BeSpin is still hackable in one very important regard: because it uses the browser&#039;s Javascript engine, I can use something like GreaseMonkey to alter it&#039;s behaviour. But BeSpin is its own system --- I have to learn the BeSpin system in order to do any hacking on it.

What happens if everyone starts thinking this kind of thing is a good idea and developing their own BeSpin-like projects? We&#039;ll have 10000 different websites with 10000 different systems that people have to learn in each new case to do something basic like change their font!

To be fair, you&#039;ve proposed adding a custom DOM within the canvas. This may address some of my concerns, but unless you are proposing to make that custom DOM a wider standard, it really doesn&#039;t address anything. You may as well just dump out plain text, because the tags are meaningless by virtue of having no common interpretation. (Because that&#039;s what meaning is!)

I don&#039;t wish to sound too critical. I realise this is an experiment and I think it&#039;s a great exploration of what&#039;s possible and is a very promising project in itself. But unless you address hackability, then I cannot support the project.

(Aside: I find myself constantly trying to defend web hackability. Whether it be because of Flash, Silverlight or Java, or information hiding and non-mutability in ES4, or security practices that haven&#039;t been subjected to a proper cost/benefit analysis. Where is the FSF when I need them? :) )</description>
		<content:encoded><![CDATA[<p>I find myself constantly oscillating between thinking that this is a great and innovative project to being worried that the choice to snub *hackable* web technologies (with what appears to everyone like Mozilla&#8217;s blessing) will do more harm to the web than Microsoft&#8217;s neglect of IE6.</p>
<p>When I inspect BeSpin with Firebug, I see a div element with id=editor that contains a canvas element with id=canvas &#8212; and that&#8217;s it. I can&#8217;t use Firebug to manipulate the editor (like resize, move or delete elements). I can&#8217;t put CSS declarations in my user agent style sheet that will have any effect on the BeSpin text editing &#8212; and furthermore, I can&#8217;t use any extension that manipulates fonts, colors, etc. on my behalf. Even Firefox&#8217;s Zoom Page function has no effect on BeSpin. When I run a &#8220;Find on Page&#8221;, I can&#8217;t find any of what I&#8217;ve typed. Even the copy &amp; paste problem you describe in this post arises partly because you&#8217;ve spun your own UI. What about testrunners? I use Selenium IDE to automate my website testing. Completely useless with BeSpin. The ScrapBook extension, which lets you save webpage clippings? Useless again with BeSpin. Spellcheckers? Useless. Context-sensitive searches? Useless. The list of browser features and extensions that this breaks just goes on and on.</p>
<p>And then there&#8217;s Ubiquity. Oh what irony that Ubiquity becomes completely useless on a fellow labs project given what the word ubiquity means!</p>
<p>BeSpin is still hackable in one very important regard: because it uses the browser&#8217;s Javascript engine, I can use something like GreaseMonkey to alter it&#8217;s behaviour. But BeSpin is its own system &#8212; I have to learn the BeSpin system in order to do any hacking on it.</p>
<p>What happens if everyone starts thinking this kind of thing is a good idea and developing their own BeSpin-like projects? We&#8217;ll have 10000 different websites with 10000 different systems that people have to learn in each new case to do something basic like change their font!</p>
<p>To be fair, you&#8217;ve proposed adding a custom DOM within the canvas. This may address some of my concerns, but unless you are proposing to make that custom DOM a wider standard, it really doesn&#8217;t address anything. You may as well just dump out plain text, because the tags are meaningless by virtue of having no common interpretation. (Because that&#8217;s what meaning is!)</p>
<p>I don&#8217;t wish to sound too critical. I realise this is an experiment and I think it&#8217;s a great exploration of what&#8217;s possible and is a very promising project in itself. But unless you address hackability, then I cannot support the project.</p>
<p>(Aside: I find myself constantly trying to defend web hackability. Whether it be because of Flash, Silverlight or Java, or information hiding and non-mutability in ES4, or security practices that haven&#8217;t been subjected to a proper cost/benefit analysis. Where is the FSF when I need them? :) )</p>
]]></content:encoded>
	</item>
</channel>
</rss>
