<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title><![CDATA[快乐笛子的博客 - 专注于Web前端开发]]></title><link>http://www.happyshow.org/</link><description><![CDATA[专注于Web前端开发]]></description><language>zh-cn</language><copyright><![CDATA[Copyright 2008 caizq.cn]]></copyright><webMaster><![CDATA[快乐笛子(www.caizq.cn)]]></webMaster><generator></generator><image><title>快乐笛子的博客</title><url>http://www.happyshow.org/images/logos.gif</url><link>http://www.happyshow.org/</link><description>快乐笛子的博客</description></image><item><link>http://www.happyshow.org/content.asp?id=224</link><title><![CDATA[发布一个简单的网络收藏夹]]></title><author>www.caizq.cn</author><category>2</category><pubDate>2008年08月02日 23:16</pubDate><guid>http://www.happyshow.org/content.asp?id=224</guid><description><![CDATA[<p>这是一个非常简单的网络型收藏夹，你在上班时收藏的网址，将被记录在服务器上，在家里上网时也能找到之前收藏的网址。即使重装系统也不需要备份，或者出差到异地也能方便找到你收藏的网址。</p>
<p>这甚至不是一个软件，称为一种网络服务更为恰切一些，它需要一个非常小的客户端，安装后在 IE 窗口的右键将新增两个项目：“加入网络收藏”、“管理网络收藏”。如果你喜欢网上的一篇文章，浏览时右键选择“加入网络收藏”，就完成了收藏任务，在其他装有此客户端的电脑上就能找到文章的链接，当然需要注册用户的登录。</p>]]></description></item><item><link>http://www.happyshow.org/content.asp?id=222</link><title><![CDATA[Select 控件加强版(IE Only)]]></title><author>www.caizq.cn</author><category>1</category><pubDate>2008年07月23日 09:24</pubDate><guid>http://www.happyshow.org/content.asp?id=222</guid><description><![CDATA[<div class="comboxmain">
<p><img alt="预览" align="right" src="/userfiles/demo.gif" /></p>
<h4>概述:</h4>
<p>本控件使用 <strong>html</strong>+<strong>css</strong>+<strong>javascript</strong>模拟<strong>HTML</strong>内置的<strong>select</strong>元素，实现其部分方法与属性，也增加了一部分功能，并且从<strong>UI</strong>上超越原生<strong>select</strong>控件。本控件使用到隐藏域、文本框、隐藏框架，隐藏域保存控件的值，文本框保存选项文本，隐藏框架通过切换显示/隐藏达到菜单收展效果，并储存选项列表。</p>
<h4>用法:</h4>
<ol>
<li>页面上先后引用 <a href="/sample/20080723/JavaScript/myJSFrame.js"><strong>myJSFrame.js</strong></a>、<a href="/sample/20080723/JavaScript/combox.js"><strong>combox.js</strong></a></li>
<li>在需要使用控件的地方加入如下代码：
	<div style="padding:1em; margin:1em 0">
		<span class="var">var</span> data = &quot;<span class="string">张三:123456,李四:654321,赵武:456789,钱六:987654,赵七:000</span>&quot;;<span class="comment">//数据源(数据源格式包含几种格式，详细见<a href="#newpoint">下面所述</a>)</span><br />
	    <span class="var">var</span> t = <span class="var">new</span> <span class="class">ComBox</span>( data );<span class="comment">//必须。创建实例</span><br />
	  t.name=&quot;<span class="string">demo</span>&quot;; <span class="comment">//必须。指定实例名称，名称必须唯一，多个同类的控件名称不同</span><br />
    t.write();<span class="comment">//必须。输出控件</span></div>
</li>
</ol>
</div>]]></description></item><item><link>http://www.happyshow.org/content.asp?id=221</link><title><![CDATA[奥运火炬今天中午到达深圳！]]></title><author>www.caizq.cn</author><category>2</category><pubDate>2008年05月08日 11:13</pubDate><guid>http://www.happyshow.org/content.asp?id=221</guid><description><![CDATA[<p>　　深圳奥运火炬传递将于五月八日上午八时从市民中心开传，预计历时十点五个小时，终点为深圳市体育中心西广场，路线全长四十一点六公里，为广东省内传递圣火的四个城市中最长。二百零八名深圳站奥运火炬手名单已公布。</p>
<p>　　圣火团队于五月七日晚到达深圳。深圳站的火炬接力于五月八日上午八时开始，历时十点五个小时。传递过程将包括午餐(南山第二外国语学校)、两处休息(深圳科技园、福田体育公园)、两个活动(起跑仪式和庆典晚会)。</p>]]></description></item><item><link>http://www.happyshow.org/content.asp?id=220</link><title><![CDATA[iPhone 已到手！]]></title><author>www.caizq.cn</author><category>2</category><pubDate>2008年05月04日 00:07</pubDate><guid>http://www.happyshow.org/content.asp?id=220</guid><description><![CDATA[<DIV>上个月在上海出差的时候曾经托老板从美国带个iPhone过来，没想到在五一前就拿到老板的礼物，衷心感谢Boss！</DIV>
<DIV>苹果的设计不是一般的出众，当我第一眼看见它时就被它精美的外表与极为人性化的触摸屏所吸引，赞美之词在此且略去2000字，且看我的小佳能给它拍的照片：</DIV>
<DIV><IMG src="http://www.happyshow.org/attachments/month_0805/IMG_7910.JPG"></DIV>
<DIV></DIV>]]></description></item><item><link>http://www.happyshow.org/content.asp?id=219</link><title><![CDATA[无级滑动条]]></title><author>www.caizq.cn</author><category>1</category><pubDate>2008年04月29日 18:50</pubDate><guid>http://www.happyshow.org/content.asp?id=219</guid><description><![CDATA[<DIV><IMG src="http://www.happyshow.org/sample/20080429/slidebar.jpg"></DIV>
<DIV>&nbsp;</DIV>
<DIV>功能：</DIV>
<UL>
<LI>游标可以拖动</LI>
<LI>点击刻度游标跟随</LI>
<LI>加载时可预设值</LI>
<LI>封装成控件，可以绑定方法到游标，比如拖动游标时需要执行自定义方法，支持 onmoving 与 onend 定义。</LI>
<LI>支持 FF3.0、IE7、Opera9.5、Safair，其他版本的浏览器未经测试</LI></UL>]]></description></item><item><link>http://www.happyshow.org/content.asp?id=218</link><title><![CDATA[锦绣中华与民俗村]]></title><author>www.caizq.cn</author><category>2</category><pubDate>2008年04月27日 23:56</pubDate><guid>http://www.happyshow.org/content.asp?id=218</guid><description><![CDATA[<DIV>在深圳呆的时间不算短，掐指算来几近8个年头，而本地的景点锦绣中华却从未踏进去，一来对本地的东西没有好感，二来也没有时间和人少的机会。小静同学两天前拿到半价的门票，该来的还是来了，虽然今天天气不算好，一直都灰沉沉的，还有点闷，中午等小静同学一放学就直奔南山而去。<BR><BR>噼里啪啦，半天胡掐乱按，终于把相机的存储卡折腾完毕加耗完一对电池，看看战果，470张赫然在目。晚饭后，决定从中挑起数张贴于博客中，小静同学也仿效，又再折腾了一番，终于有下面的收成。在这里还特别提一下新上手的处理相片软件<A href="http://neoimaging.beareyes.com.cn/" target=_blank>《光影魔术手》</A>，今天发布了免费版。赞~<BR><IMG class=minsu alt=金戈王朝-打斗场面 src="http://www.happyshow.org/attachments/month_0804/20080427003.jpg"> </DIV>]]></description></item><item><link>http://www.happyshow.org/content.asp?id=217</link><title><![CDATA[W3C 发布 XMLHttpRequest 工作草图]]></title><author>www.caizq.cn</author><category>1</category><pubDate>2008年04月26日 18:09</pubDate><guid>http://www.happyshow.org/content.asp?id=217</guid><description><![CDATA[<P>XMLHttpRequest 最近在&nbsp;W3C 标准之路上又迈进了一步，W3C Web API 工作组刚刚发布了 XMLHttpRequest 对象的工作草图。XMLHttpRequest 勾画了一种从客户端向服务器传送数据的标准脚本引擎，数据可以是 XML 或任意文本格式，以 HTTP 或 HTTPS 协议传递。</P>
<P>XMLHttpRequest 基于 DOM， HTML5 以及 HTTP，支持 XMLHttpRequest 的客户端必须支持这三种技术，以下是 XMLHttpRequest 对象的技术细节。</P>
<DIV></DIV>]]></description></item><item><link>http://www.happyshow.org/content.asp?id=216</link><title><![CDATA[JavaScript 给汉字排序]]></title><author>www.caizq.cn</author><category>1</category><pubDate>2008年04月25日 11:07</pubDate><guid>http://www.happyshow.org/content.asp?id=216</guid><description><![CDATA[<DIV>
<DIV>&nbsp;&nbsp;&nbsp; 数组的 sort 方法默认字符的编码排序，有时候要给一组汉字排序，默认的方法就不适用了。比如 var arr = ["中","华","人","民","共","和","国"]，在执行 sort 方法后结果为 ：中,人,共,华,和,国,民，既不是拼音也不是笔划数量的排序。</DIV>
<DIV>&nbsp;&nbsp;&nbsp; 以前很少留意过 localeCompare 方法，手册中说它执行时返回一个值，指出在当前的区域设置中两个字符串是否相同。返回值有三种：-1，0，1，刚好是 sort 方法参数所需要的类型。把 localeCompare 应用到 sort 方法中去，看看结果：</DIV>
<DIV>&nbsp;</DIV>
<DIV>var arr = ["中","华","人","民","共","和","国"];<BR>alert(arr.sort(function(a,b){return a.localeCompare(b)}));//结果为：共,国,和,华,民,人,中(拼音升序)</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp; 注意到 localeCompare 方法是在<STRONG>当前区域</STRONG>中进行比较的，即比较的环境为当前操作系统设置的地理区域，比如数字、货币、日期时间等的表现方式（在“控制面板”中可以查看修改），如果设置排序的方式为<STRONG>笔划</STRONG>，那上面的结果则为：人,中,民,共,华,和,国(笔划升序)。</DIV></DIV>]]></description></item><item><link>http://www.happyshow.org/content.asp?id=215</link><title><![CDATA[IE6 与 IE7 中 window.onresize 被多次执行的解决办法]]></title><author>www.caizq.cn</author><category>1</category><pubDate>2008年04月24日 09:31</pubDate><guid>http://www.happyshow.org/content.asp?id=215</guid><description><![CDATA[<DIV>页面上给window对象定义其onresize事件，在拉伸缩小窗口时，其onresize方法将被执行多次，并且其具体执行的次数在不同的电脑有不同的值，相当诡异，Firefox等其他浏览器则无此现象，故可认定此为IE浏览器的bug。看看代码：</DIV>
<DIV>&nbsp;</DIV>
<DIV class=code>&lt;html&gt;<BR>&lt;head&gt;<BR>&nbsp; &lt;script type="text/javascript"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function resizeFunc(){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(Math.random());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&lt;/script&gt;<BR>&lt;/head&gt;<BR>&lt;body&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;div&gt;Text...&lt;/div&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;script type="text/javascript"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; window.attachEvent("onresize",resizeFunc); <FONT color=#008080>//方法一</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT color=#008080>//window.onresize = resizeFunc;&nbsp;&nbsp;&nbsp;&nbsp;//方法二，支持ff<BR></FONT>&nbsp;&nbsp;&nbsp; &lt;/script&gt;<BR>&lt;/body&gt;<BR>&lt;/html&gt;</DIV>]]></description></item><item><link>http://www.happyshow.org/content.asp?id=214</link><title><![CDATA[又一次扩展String原型的 trim 方法]]></title><author>www.caizq.cn</author><category>1</category><pubDate>2008年04月23日 10:39</pubDate><guid>http://www.happyshow.org/content.asp?id=214</guid><description><![CDATA[<DIV>&nbsp;&nbsp;&nbsp; 写这篇日志之前，先查了一下字典，确认 trim 是整理修剪之意(并非专指去除空白)，在 vbscript 或 C# 里其作用去掉字符串<STRONG>两端</STRONG>多余的空格。JavaScript 语言本没有此方法，因此很多人开始给 String 原型增加 trim 方法（同时还有ltrim与rtrim），在网上能找到的版本是<A href="http://www.happyshow.org/article/114.html">《增加 javascript 的 trim 函数》</A>&nbsp;，后来我在它之上又作了一些扩展 <A href="http://www.happyshow.org/article/148.html">《再次扩展 JavaScript 的 trim 函数》</A>，写这篇日志的目的是又再次扩展trim方法（點解要講又呢？）。</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp; 此次要扩展的功能是切掉字符串两端指定的字符数，类似于 vbscript 的 left()与right()方法。执行 <STRONG>"string".trim(1,2)</STRONG>，其结果将是 <STRONG>tri </STRONG>。trim 函数的两个参数类型都属于 Number，第一个表示左边需要剪切的字符数量，第二个参数表示右边需要剪切的字符数量。</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp; 把之前两次的扩展总结一下，trim 方法有四种使用方法：</DIV>
<OL>
<LI>trim()&nbsp;&nbsp; 去除字符串左右两端的空格</LI>
<LI>trim("xyz")&nbsp; 去除字符串左右两端的字符xyz</LI>
<LI>trim(/[0-9]/g)&nbsp; 去除字符串左右两端的数字</LI>
<LI>trim(0,3)&nbsp;&nbsp;去除字符串右端3个字符</LI></OL>]]></description></item><item><link>http://www.happyshow.org/content.asp?id=213</link><title><![CDATA[上海出差掠影]]></title><author>www.caizq.cn</author><category>2</category><pubDate>2008年04月08日 10:31</pubDate><guid>http://www.happyshow.org/content.asp?id=213</guid><description><![CDATA[在上海出差期间拍摄的一组照片：<BR><IMG style="BORDER-RIGHT: #ccc 5px solid; BORDER-TOP: #ccc 5px solid; BORDER-LEFT: #ccc 5px solid; BORDER-BOTTOM: #ccc 5px solid" alt=外滩夜色 src="http://www.happyshow.org/attachments/month_0804/IMG_6414.jpg">]]></description></item><item><link>http://www.happyshow.org/content.asp?id=212</link><title><![CDATA[博客访问量突破百万！]]></title><author>www.caizq.cn</author><category>2</category><pubDate>2008年03月10日 12:03</pubDate><guid>http://www.happyshow.org/content.asp?id=212</guid><description><![CDATA[<DIV>
<DIV>今天无意中发现计数器已经上到百万关口，虽说是在页面中嵌入js文件，按PageView的计算方法统计出来的，估计会漏掉搜索引擎爬虫的访问量，但也从另外一个角度上说明，这个统计结果都是手工点击出来的~~</DIV>
<DIV>&nbsp;</DIV>
<DIV>
<DIV><STRONG>努力每一天！</STRONG></DIV></DIV></DIV>]]></description></item><item><link>http://www.happyshow.org/content.asp?id=211</link><title><![CDATA[修复 myJSFrame 的 CSS 选择器一处错漏]]></title><author>www.caizq.cn</author><category>1</category><pubDate>2008年03月08日 22:43</pubDate><guid>http://www.happyshow.org/content.asp?id=211</guid><description><![CDATA[<DIV>今天在处理一网友发来的邮件，这位朋友提到css选择符在某些场合中（如以ID开始）返回值不准确，查看了一下代码，确实有一处不够严谨，在第39行后再加一行：<STRONG>if(!document.getElementById(q.substring(1)))return null;</STRONG> 用以增加判断不存在元素马上令<STRONG>$</STRONG>函数返回null值。</DIV>
<DIV>&nbsp;</DIV>
<DIV>谢谢这位<A href="mailto:chinamailcenter@gmail.com">网友</A>&nbsp;。</DIV>]]></description></item><item><link>http://www.happyshow.org/content.asp?id=210</link><title><![CDATA[myJSFrame 更新到 v.2.1！API文档也一并更新！]]></title><author>www.caizq.cn</author><category>1</category><pubDate>2008年03月02日 08:21</pubDate><guid>http://www.happyshow.org/content.asp?id=210</guid><description><![CDATA[<DIV>
<DIV>这次的版本其实在08年元旦就可以推出，但因为时间比较紧，而且帮助文档的 UI 的设计没有完成，因此推迟到现在。本次 myJSFrame 的升级，更新如下：</DIV>
<UL>
<LI>DOM 扩展增加 findParent、subElem、$递归调用等方法</LI>
<LI>移除早先扩展 Array 原型的 uniqStr 方法，并给 String 原型增加类似的 uniq 方法</LI>
<LI>Function 原型增加bind方法</LI>
<LI>String 原型增加 format 方法，类似于 C# 的 StringBuilder，用于拼接字符串</LI>
<LI>增加 Import 方法，用于在脚本执行过程临时载入脚本库</LI>
<LI>增加 Redirect 方法，用于重定向到新的URL</LI>
<LI>Request 方法的返回值统一为字符串类型</LI></UL></DIV>]]></description></item><item><link>http://www.happyshow.org/content.asp?id=209</link><title><![CDATA[回归本源--重新阅读《HTTP协议基础》]]></title><author>www.caizq.cn</author><category>1</category><pubDate>2008年02月19日 15:08</pubDate><guid>http://www.happyshow.org/content.asp?id=209</guid><description><![CDATA[<P style="TEXT-INDENT: 2em">HTTP（HyperTextTransferProtocol）是超文本传输协议的缩写，它用于传送WWW方式的数据，关于HTTP协议的详细内容请参考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求，请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应，相应的内容包括消息协议的版本，成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。</P>]]></description></item><item><link>http://www.happyshow.org/content.asp?id=208</link><title><![CDATA[体验 VS2008 对 JavaScript 的智能感应]]></title><author>www.caizq.cn</author><category>1</category><pubDate>2008年02月15日 13:43</pubDate><guid>http://www.happyshow.org/content.asp?id=208</guid><description><![CDATA[<DIV>年前就在网上看到 VS2008 90天试用的简体中文版发布了，此IDE对硬件的要求如下（来自官方的说明）：</DIV><SPAN>
<UL>
<LI><B>支持的操作系统： </B>Windows Server 2003; Windows Vista; Windows XP</LI>
<LI>最低配置：1.6 GHz CPU，384 MB 内存，1024x768 显示分辨率，5400 RPM 硬盘</LI>
<LI>建议配置：2.2 GHz 或更快的 CPU，1024 MB 或更大的内存，1280x1024 显示分辨率，7200 RPM 或更快的硬盘 
<LI>在 Windows Vista 上运行的配置要求：2.4 GHz CPU，768 MB 内存</LI></UL>
<P>建议的配置也需要1G的内存，暴汗无比~~~，单是安装文件就达4.34G！</SPAN></P>]]></description></item><item><link>http://www.happyshow.org/content.asp?id=207</link><title><![CDATA[杀鸡用牛刀--我的博客实现静态化]]></title><author>www.caizq.cn</author><category>2</category><pubDate>2008年02月04日 18:03</pubDate><guid>http://www.happyshow.org/content.asp?id=207</guid><description><![CDATA[<P>今天是猪年最后一天上班，无聊透顶，把blog程序翻出来捣鼓一遍。</P>
<P>静态化实现的方法几乎大同小异，无非是用模板+数据库的方法，168篇文章不到2秒就生成完毕，速度确实不赖<IMG src="http://www.happyshow.org/HTMLEditor/face/preview/face5.gif">。</P>]]></description></item><item><link>http://www.happyshow.org/content.asp?id=206</link><title><![CDATA[微软宣布446亿美元洽购雅虎]]></title><author>www.caizq.cn</author><category>2</category><pubDate>2008年02月02日 17:11</pubDate><guid>http://www.happyshow.org/content.asp?id=206</guid><description><![CDATA[<DIV>
<P class=endSummary>&nbsp;&nbsp;&nbsp; 搜索巨人谷歌刚刚才发布其令投资者失望的第四季度财报，微软公司就提出了收购雅虎的出价，它打算以每股31美元、总价值446亿美元的现金和股票收购雅虎。 </CLK></P>
<DIV id=endText>
<P style="TEXT-INDENT: 2em">微软公司首席执行官鲍尔默在声明中称："我们相信我们与雅虎结合之后将给我们的股东带来更优的价值，给我们的客户和业界合作伙伴提供更好的选择和创新。" </P></DIV></DIV>]]></description></item><item><link>http://www.happyshow.org/content.asp?id=205</link><title><![CDATA[IE7 与 IE6 的模式窗口尺寸差异]]></title><author>www.caizq.cn</author><category>1</category><pubDate>2008年01月25日 14:12</pubDate><guid>http://www.happyshow.org/content.asp?id=205</guid><description><![CDATA[<DIV>&nbsp;&nbsp;&nbsp; IE 的弹窗常用的有两种，不外乎是 window.open 与 window.showModalDialog，前者兼容性好，后者只有IE认识（Firefox的1.x版本与3.x版本支持window.open(url,handle,"<STRONG>modal=yes</STRONG>")，这是ff的模式窗口）。模式窗口由于其强制必须完成模式窗口的操作，当前window才能被继续使用，它的这一特性，使它在一些 Web Application 中应用较广，它的好处本文不赘述，这里要探究的是用 javascript 设置相同的窗口尺寸，模式窗口在 IE6 与 IE7 下竟然表现不一致。</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp; 执行语句：window.showModalDialog('b.html',window,'dialogWidth:250px; dialogHeight:250px;')，对比在 IE6 与 IE7 下的表现差异：<BR><IMG src="http://www.happyshow.org/attachments/dialogwin_a.gif"></DIV>
<DIV>&nbsp;</DIV>
<DIV></DIV>]]></description></item><item><link>http://www.happyshow.org/content.asp?id=204</link><title><![CDATA[解决 myJSFrame 框架中 Ajax 方法一处明显的内存泄露]]></title><author>www.caizq.cn</author><category>1</category><pubDate>2007年12月25日 16:38</pubDate><guid>http://www.happyshow.org/content.asp?id=204</guid><description><![CDATA[<DIV>&nbsp;&nbsp;&nbsp; 一直以来，每次调用Ajax方法都需要创建一次 <STRONG>Microsoft.XMLHTTP </STRONG>对象，今天在使用Ajax技术做一个类似聊天室的demo时，发现即使没有发生任何的 <STRONG>DOM </STRONG>动作,IE的内存占用量却一直递增。从十几M飙升到150M，因为我在页面中使用了 setInterval 函数，如果时间周期越短，内存消耗量就增加得越快。</DIV>
<DIV>&nbsp;&nbsp;&nbsp; 从demo程序本身开始查，一直追查到底层的 myJSFrame 框架，发现内存的消耗发生在 <STRONG>new ActiveXObject('Microsoft.XMLHTTP') </STRONG>的动作上，每次创建的 xmlhttp 对象都一直驻留在内存当中，只有把IE窗口最小化后内存才被回收。郁闷了老半天，翻阅 prototype.js 亦无果，突然想到了缓存，既然无法手动回收内存，那可以把 <STRONG>xmlhttp 对象缓存起来</STRONG>嘛，页面中第一次创建的 xmlhttp 对象缓存到 ajax 对象的属性中去，第二次创建 xmlhttp 时就使用缓存中的对象<IMG src="http://www.happyshow.org/HTMLEditor/face/preview/face5.gif">！哈哈，果然，任务管理器里IE的内存占用量就停止增加了~~</DIV>]]></description></item></channel></rss>