﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-天猪</title><link>http://www.blogjava.net/atian25/</link><description>专注于AS3/JAVA</description><language>zh-cn</language><lastBuildDate>Mon, 06 Oct 2008 23:39:10 GMT</lastBuildDate><pubDate>Mon, 06 Oct 2008 23:39:10 GMT</pubDate><ttl>60</ttl><item><title>IE7/FF3可用的获取异常发生所在的行数</title><link>http://www.blogjava.net/atian25/archive/2008/09/26/231293.html</link><dc:creator>乾为天|天猪</dc:creator><author>乾为天|天猪</author><pubDate>Fri, 26 Sep 2008 06:26:00 GMT</pubDate><guid>http://www.blogjava.net/atian25/archive/2008/09/26/231293.html</guid><wfw:comment>http://www.blogjava.net/atian25/comments/231293.html</wfw:comment><comments>http://www.blogjava.net/atian25/archive/2008/09/26/231293.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/atian25/comments/commentRss/231293.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/atian25/services/trackbacks/231293.html</trackback:ping><description><![CDATA[Error具有下面一些主要属性： <br />
&nbsp;<br />
&nbsp; &nbsp; * description: 错误描述 (仅IE可用). <br />
&nbsp; &nbsp; * fileName: 出错的文件名 (仅Mozilla可用). <br />
&nbsp; &nbsp; * lineNumber: 出错的行数 (仅Mozilla可用). <br />
&nbsp; &nbsp; * message: 错误信息 (在IE下同description) <br />
&nbsp; &nbsp; * name: 错误类型. <br />
&nbsp; &nbsp; * number: 错误代码 (仅IE可用). <br />
&nbsp; &nbsp; * stack: 像Java中的Stack Trace一样的错误堆栈信息 (仅Mozilla可用).<br />
<br />
<br />
在IE里面没有lineNumber. 但可用下面的方法找出:<br />
<br />
<a target="_blank" href="http://forum.byr.edu.cn/wForum/disparticle.php?boardName=SoftDesign&amp;ID=29948&amp;pos=6&amp;page=1">http://forum.byr.edu.cn/wForum/disparticle.php?boardName=SoftDesign&amp;ID=29948&amp;pos=6&amp;page=1</a><br />
<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #000000;">&lt;</span><span style="color: #000000;">script&nbsp;type</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">text/javascript</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;">window.onerror</span><span style="color: #000000;">=</span><span style="color: #000000;">testError;<br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #0000ff;">function</span><span style="color: #000000;">&nbsp;testError(){<br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;">&nbsp;arglen</span><span style="color: #000000;">=</span><span style="color: #000000;">arguments.length;<br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">var</span><span style="color: #000000;">&nbsp;errorMsg</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">参数个数：</span><span style="color: #000000;">"</span><span style="color: #000000;">+</span><span style="color: #000000;">arglen</span><span style="color: #000000;">+</span><span style="color: #000000;">"</span><span style="color: #000000;">个</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(</span><span style="color: #0000ff;">var</span><span style="color: #000000;">&nbsp;i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">arglen;i</span><span style="color: #000000;">++</span><span style="color: #000000;">){<br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;errorMsg</span><span style="color: #000000;">+=</span><span style="color: #000000;">"</span><span style="color: #000000;">\n参数</span><span style="color: #000000;">"</span><span style="color: #000000;">+</span><span style="color: #000000;">(i</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">)</span><span style="color: #000000;">+</span><span style="color: #000000;">"</span><span style="color: #000000;">：</span><span style="color: #000000;">"</span><span style="color: #000000;">+</span><span style="color: #000000;">arguments[i];<br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;}<br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;alert(errorMsg);<br />
</span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">&nbsp;window.onerror</span><span style="color: #000000;">=</span><span style="color: #0000ff;">null</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">}<br />
</span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;<br />
</span><span style="color: #008080;">14</span>&nbsp;<span style="color: #0000ff;">function</span><span style="color: #000000;">&nbsp;test(){<br />
</span><span style="color: #008080;">15</span>&nbsp; <span style="color: #000000;">error<br />
</span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">}<br />
</span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">test()<br />
</span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&lt;/</span><span style="color: #000000;">script</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"> <br />
</span></div>
<br />
<img src ="http://www.blogjava.net/atian25/aggbug/231293.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/atian25/" target="_blank">乾为天|天猪</a> 2008-09-26 14:26 <a href="http://www.blogjava.net/atian25/archive/2008/09/26/231293.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[原创]导出Google Chrome 书签的办法</title><link>http://www.blogjava.net/atian25/articles/227671.html</link><dc:creator>乾为天|天猪</dc:creator><author>乾为天|天猪</author><pubDate>Mon, 08 Sep 2008 02:36:00 GMT</pubDate><guid>http://www.blogjava.net/atian25/articles/227671.html</guid><wfw:comment>http://www.blogjava.net/atian25/comments/227671.html</wfw:comment><comments>http://www.blogjava.net/atian25/articles/227671.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/atian25/comments/commentRss/227671.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/atian25/services/trackbacks/227671.html</trackback:ping><description><![CDATA[<span style="word-spacing: 0px; font-family: Simsun; font-style: normal; font-variant: normal; font-weight: normal; font-size: 16px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; text-transform: none; color: #000000; text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; orphans: 2; widows: 2;">
<div style="margin: 0px; padding: 0px; cursor: pointer;">试用了几天的Chrome了,感觉不错,期待插件接口的开放...<br />
最新的Chrome的下载地址是:<a style="color: #002c99; text-decoration: none;" href="http://build.chromium.org/buildbot/snapshots/chromium-rel-xp/">http://build.chromium.org/buildbot/snapshots/chromium-rel-xp/</a><br />
<br />
今天无聊,顺便看了下Chrome的文件,路径在C:\Documents and Settings\你的用户名\Local Settings\Application Data\Google\Chrome\User Data\Default 下面,有个History文件.<br />
<br />
用UE打开后发现是SQLITE文件,于是用SQLITE打开(下载地址:http://www.sqlite.org/sqlite-3_6_2.zip)<br />
操作方法如下:<br />
1)用sqlite3.exe打开History文件<br />
2)用 .tables 命令可以看到有图中几个表,从名字我们可以看出有下载记录,书签,访问记录等等<br />
3)用 .output starred.txt 把输出重定向到文件<br />
4)用 .dump starred 把书签表导出<br />
5)接着去找下starred.txt文件就OK了.<br />
<br />
文件大致如下,熟悉sql的可以分析下结构(如type=2是文件夹,type=1/3是默认的,type=0是书签)<br />
可以通过这个办法对书签进行分组管理等转换<br />
<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><span style="color: #008080;">&nbsp;1</span><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" /><span style="color: #0000ff;">BEGIN</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">TRANSACTION</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">&nbsp;2</span><span style="color: #000000;"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" /><br />
</span><span style="color: #008080;">&nbsp;3</span><span style="color: #000000;"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">CREATE</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">TABLE</span><span style="color: #000000;">&nbsp;starred&nbsp;(id&nbsp;</span><span style="font-weight: bold; color: #000000;">INTEGER</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">PRIMARY</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">KEY</span><span style="color: #000000;">,type&nbsp;</span><span style="font-weight: bold; color: #000000;">INTEGER</span><span style="color: #000000;">&nbsp;</span><span style="color: #808080;">NOT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">NULL</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">DEFAULT</span><span style="color: #000000;">&nbsp;</span><span style="font-weight: bold; color: #800000;">0</span><span style="color: #000000;">,url_id&nbsp;</span><span style="font-weight: bold; color: #000000;">INTEGER</span><span style="color: #000000;">&nbsp;</span><span style="color: #808080;">NOT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">NULL</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">DEFAULT</span><span style="color: #000000;">&nbsp;</span><span style="font-weight: bold; color: #800000;">0</span><span style="color: #000000;">,group_id&nbsp;</span><span style="font-weight: bold; color: #000000;">INTEGER</span><span style="color: #000000;">&nbsp;</span><span style="color: #808080;">NOT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">NULL</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">DEFAULT</span><span style="color: #000000;">&nbsp;</span><span style="font-weight: bold; color: #800000;">0</span><span style="color: #000000;">,title&nbsp;</span><span style="font-weight: bold; color: #000000;">VARCHAR</span><span style="color: #000000;">,date_added&nbsp;</span><span style="font-weight: bold; color: #000000;">INTEGER</span><span style="color: #000000;">&nbsp;</span><span style="color: #808080;">NOT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">NULL</span><span style="color: #000000;">,visual_order&nbsp;</span><span style="font-weight: bold; color: #000000;">INTEGER</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">DEFAULT</span><span style="color: #000000;">&nbsp;</span><span style="font-weight: bold; color: #800000;">0</span><span style="color: #000000;">,parent_id&nbsp;</span><span style="font-weight: bold; color: #000000;">INTEGER</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">DEFAULT</span><span style="color: #000000;">&nbsp;</span><span style="font-weight: bold; color: #800000;">0</span><span style="color: #000000;">,date_modified&nbsp;</span><span style="font-weight: bold; color: #000000;">INTEGER</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">DEFAULT</span><span style="color: #000000;">&nbsp;</span><span style="font-weight: bold; color: #800000;">0</span><span style="color: #000000;">&nbsp;</span><span style="color: #808080;">NOT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">NULL</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">&nbsp;4</span><span style="color: #000000;"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" /><br />
</span><span style="color: #008080;">&nbsp;5</span><span style="color: #000000;"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">INTO</span><span style="color: #000000;">&nbsp;"starred"&nbsp;</span><span style="color: #0000ff;">VALUES</span><span style="color: #000000;">(</span><span style="font-weight: bold; color: #800000;">1</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">1</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">0</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">1</span><span style="color: #000000;">,</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">书签栏</span><span style="color: #ff0000;">'</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">12864879599272250</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">0</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">0</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">12864903712413875</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">&nbsp;6</span><span style="color: #000000;"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">INTO</span><span style="color: #000000;">&nbsp;"starred"&nbsp;</span><span style="color: #0000ff;">VALUES</span><span style="color: #000000;">(</span><span style="font-weight: bold; color: #800000;">2</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">3</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">0</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">2</span><span style="color: #000000;">,</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">其他书签</span><span style="color: #ff0000;">'</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">12864879599273250</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">0</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">0</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">12864901410029375</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">&nbsp;7</span><span style="color: #000000;"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">INTO</span><span style="color: #000000;">&nbsp;"starred"&nbsp;</span><span style="color: #0000ff;">VALUES</span><span style="color: #000000;">(</span><span style="font-weight: bold; color: #800000;">29</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">0</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">3825</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">0</span><span style="color: #000000;">,</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">Gmail</span><span style="color: #ff0000;">'</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">12864881762934500</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">1</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">5</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">0</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">&nbsp;8</span><span style="color: #000000;"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">INTO</span><span style="color: #000000;">&nbsp;"starred"&nbsp;</span><span style="color: #0000ff;">VALUES</span><span style="color: #000000;">(</span><span style="font-weight: bold; color: #800000;">30</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">0</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">438</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">0</span><span style="color: #000000;">,</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">Google&nbsp;Reader</span><span style="color: #ff0000;">'</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">12864881840111125</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">3</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">5</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">0</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">&nbsp;9</span><span style="color: #000000;"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">INTO</span><span style="color: #000000;">&nbsp;"starred"&nbsp;</span><span style="color: #0000ff;">VALUES</span><span style="color: #000000;">(</span><span style="font-weight: bold; color: #800000;">31</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">0</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">3833</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">0</span><span style="color: #000000;">,</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">Google&nbsp;Docs</span><span style="color: #ff0000;">'</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">12864881878751125</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">2</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">5</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">0</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">10</span><span style="color: #000000;"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">INTO</span><span style="color: #000000;">&nbsp;"starred"&nbsp;</span><span style="color: #0000ff;">VALUES</span><span style="color: #000000;">(</span><span style="font-weight: bold; color: #800000;">32</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">2</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">0</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">5</span><span style="color: #000000;">,</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">Google</span><span style="color: #ff0000;">'</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">12864881893109125</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">0</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">1</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">12864898849435375</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">11</span><span style="color: #000000;"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">INTO</span><span style="color: #000000;">&nbsp;"starred"&nbsp;</span><span style="color: #0000ff;">VALUES</span><span style="color: #000000;">(</span><span style="font-weight: bold; color: #800000;">35</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">2</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">0</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">7</span><span style="color: #000000;">,</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">Book</span><span style="color: #ff0000;">'</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">12864882141057000</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">3</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">1</span><span style="color: #000000;">,</span><span style="font-weight: bold; color: #800000;">12864891426123000</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">12</span><span style="color: #000000;"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" /><br />
</span><span style="color: #008080;">13</span><span style="color: #000000;"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">CREATE</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">INDEX</span><span style="color: #000000;">&nbsp;starred_index&nbsp;</span><span style="color: #0000ff;">ON</span><span style="color: #000000;">&nbsp;starred(id,url_id);<br />
</span><span style="color: #008080;">14</span><span style="color: #000000;"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">COMMIT</span><span style="color: #000000;">;</span></div>
<br />
<br />
导入的方法也差不多,把用.import指令。熟悉sql命令的人都知道怎么弄了,用.help可以看到sqlite支持的命令<br />
<br />
示例图:<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/atian25/Chrome.JPG" width="447" height="270" /><br />
<br />
ps:囧...该文章用CHROME写的..发布按钮按了无效...复制到IE7去发布了..<br />
ps2:最新的<span style="word-spacing: 0px; font-family: Simsun; font-style: normal; font-variant: normal; font-weight: normal; font-size: 16px; line-height: normal; font-size-adjust: none; font-stretch: normal; text-transform: none; color: #000000; text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; orphans: 2; widows: 2;">Chromium</span>数据存在:Local Settings\Application Data\Chromium\User Data\Default 下,书签存在Bookmarks文件里面,不再存在History里面.<br />
该文件格式如下:<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #000000;">{<br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;"roots":&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"bookmark_bar":&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"children":&nbsp;[&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"date_added":&nbsp;"12865419024859500",<br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"name":&nbsp;"Google",<br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"type":&nbsp;"url",<br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"url":&nbsp;"http://www.google.cn/"<br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;],<br />
</span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"date_added":&nbsp;"0",<br />
</span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"date_modified":&nbsp;"12865419024859500",<br />
</span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"name":&nbsp;"\u4E66\u7B7E\u680F",<br />
</span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"type":&nbsp;"folder"<br />
</span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br />
</span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"other":&nbsp;{<br />
</span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"children":&nbsp;[&nbsp;&nbsp;],<br />
</span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"date_added":&nbsp;"0",<br />
</span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"date_modified":&nbsp;"0",<br />
</span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"name":&nbsp;"\u5176\u4ED6\u4E66\u7B7E",<br />
</span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"type":&nbsp;"folder"<br />
</span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;},<br />
</span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;"version":&nbsp;1<br />
</span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;">}<br />
</span><span style="color: #008080;">25</span>&nbsp;</div>
</div>
</span>
<img src ="http://www.blogjava.net/atian25/aggbug/227671.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/atian25/" target="_blank">乾为天|天猪</a> 2008-09-08 10:36 <a href="http://www.blogjava.net/atian25/articles/227671.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>理清几个RIA的概念及技术的选择 (AIR,WPF,JAVA,FLEX,SLIVERLIGHT)</title><link>http://www.blogjava.net/atian25/archive/2008/08/25/224068.html</link><dc:creator>乾为天|天猪</dc:creator><author>乾为天|天猪</author><pubDate>Mon, 25 Aug 2008 02:20:00 GMT</pubDate><guid>http://www.blogjava.net/atian25/archive/2008/08/25/224068.html</guid><wfw:comment>http://www.blogjava.net/atian25/comments/224068.html</wfw:comment><comments>http://www.blogjava.net/atian25/archive/2008/08/25/224068.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/atian25/comments/commentRss/224068.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/atian25/services/trackbacks/224068.html</trackback:ping><description><![CDATA[<h1>转帖自:http://blog.csdn.net/david_lv/archive/2008/03/05/2149377.aspx</h1>
<h1><a href="http://blog.csdn.net/david_lv/archive/2008/03/05/2149377.aspx">昨天去参加adobe AIR发布会</a><cite><a href="javascript:d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(saveit=window.open('http://wz.csdn.net/storeit.aspx?t='+escape(d.title)+'&amp;u='+escape(d.location.href)+'&amp;c='+escape(t),'saveit','scrollbars=no,width=590,height=300,left=75,top=20,status=no,resizable=yes'));saveit.focus();" class="fav_csdnstylebykimi" title="收藏到我的网摘中，并分享给我的朋友"></a></cite></h1>
<div>
<p><font size="4">首先申明：我不是adobe雇佣的枪手，我也从不认识adobe的人。我只是一名被C/S和B/S长期困扰希望寻找一套解决方案的人。</font></p>
<p><font size="4">昨天去参加了adobe AIR 发布会</font></p>
<p><font size="4">adobe是业界著名的客户端展现工具和展现设计工具&nbsp;提供商。</font></p>
<p><font size="4">展现工具：PDF、FLASH。展现设计工具：photoshop、Dreamwaver、FLASH。</font></p>
<p><font size="4">很多人都疑问AIR有什么用。昨天在会场也有同学提出了这个问题。既然有了AJAX 纯的JS的客户端表现组件包，如最近刚获得金牛奖的ZK组件包，那为何要有AIR？</font></p>
<p><font size="4">我给大家解释解释。大家都能看到现在的趋势：互联网软件在向客户端融合，客户端在向互联网融合。</font></p>
<p><font size="4">互联网企业发源于WEB世界，那么它要延伸互联网，必须要基于现在自己的优势和根。JS技术，这种根植于网络世界的技术就是最理想的选择。使用惯了WEB应用软件的用户，对于本地安装一个软件，本地软件那样的操作习惯就感到很奇怪。</font></p>
<p><font size="4">而对于习惯了使用本地软件的用户，现在开始有了互联网跨出局域网的业务需求了，怎么办？一种办法当然是给他们另外开发一套B/S企业管理软件，但他们怎么使用都不顺手。</font></p>
<p><font size="4">于是AIR产生。让他们能满足互联网处理，又能像本地软件一样操作。</font></p>
<p><font size="4">又有客官问了，听过微软也推出了一种客户端跨互联网处理的技术，叫WPF和WCF。微软是客户端的霸主，而且微软的
开发工具也是一流的，adobe既不熟悉开发工具这行当，也没有客户端优势，微软在OS层面做点手脚，就像当年给netscape下点药做点限制一
样，AIR就没前途了。</font></p>
<p><font size="4">但是，但是。这个世界总有但是。</font></p>
<p><font size="4">要知道，做企业管理软件应用，很重要的就是数据安全。要把自己的数据和业务处理放到公网上，就有担忧。但是企业发展
必须跨互联网，有需求啊。那怎么办？用微软的？太不安全了。于是挑选了JAVA。但JAVA一直雄霸于服务器端，客户端JAVA也没有经验啊。从早期的
Applet，到Swing，都以失败告终。不能让JAVA的服务器端配合WPF的客户端吧？于是AIR出场了。</font></p>
<p><font size="4">adobe也很聪明，知道微软这个长年想扩展到互联网却屡屡受挫的困兽，必然拼了老命也要推自己的WPF和WCF技术，这是微软未来的命啊。想在这个霸主的肩膀上吃肉，是比登天难。于是祭出微软最害怕的一招：开源、免费、基于开放技术标准、跨平台。</font></p>
<p><font size="4">adobe不擅长开发工具的开发，那就不开发。况且这个世界上除了微软世界的visual
studio工具外，微软的对立阵营就有最开放的eclipse。eclipse已经不仅仅是一个JAVA的开发IDE，现在Ruby、PHP、C++、
Python都在它上面有插件。于是adobe也把自己插在上面。跟着程序员大潮走，让程序员使用自己最熟悉的IDE开发AIR。</font></p>
<p><font size="4">adobe一直擅长客户端表现，所以adobe也没有必要提供一个从服务器到客户端一整套技术方案。说白了，AIR
就是一个和AJAX组件包一个层次的解决方案。主要用于客户端表现。这点非常重要。许多同学没有看清这一点，和DELPHI比，和JAVA比，和.net
比。其实AIR就专注客户端表现。你的业务层完全可以用PHP、JAVA、C#来写。再说了，AIR技术，内在其实就是HTML+JAVAScript，
只不过改进了一些，换了个名字，叫MXML和ActionScript。微软的WPF技术，也是这两个技术组成。大家都是一路子。</font></p>
<p><font size="4">PDF抓住了PC时代，FLASH抓住了浏览器时代，AIR是要抓住浏览器和PC融合的时代。这也是adobe的命
根，所以两家公司都拼了命。微软有其强大的现实客户和研究开发中心和营销手段，adobe则采用了最开放最联盟来对抗，让微软一家公司之力来对抗全球开放
的程序员。</font></p>
<p><font size="4">WPF仅限于微软平台，虽然sliverlight号称以后也要垮MAC和LINUX平台。但我说的比较是AIR和WPF，而非FLEX和Sliverlight这两种技术。</font></p>
<p><font size="4">我对FLEX和Sliverlight这两种技术一直心存怀疑。他们到底是给什么用户用的呢？习惯于浏览器的用户？人家有AJAX组件包啊，优秀开源的N多，商业的也N多。习惯于本地运行软件的用户？人家有AIR和WPF这两种技术啊。</font></p>
<p><font size="4">FLEX和Sliverlight这两种技术产生，我来解释一下我自己的观点。</font></p>
<p><font size="4">adobe的AIR还没有炼成。FLASH是adobe现在的优势。要想走到目的地，FLASH必须是自己的跳板，于是FLEX必须作为过渡。</font></p>
<p><font size="4">而微软呢？VISTA本来就是微软最寄予希望的操作系统，原生的.net framework
3.0，而且全部用.net重写，一流的面向service的操作系统，圆了当年微软COM之梦。而且.net framework
3.0最主要的技术WPF、WCF，还有一个夫死胎中的WF，其实都是很有未来前瞻的技术，但由于技术难度太大，当然也由于太多人看透了微软在互联网战略
的陌生和迟疑和旧有EXE技术思想，所以都跑到了纯正的互联网公司，给VISTA形成了难产。微软希望能无缝且毫无体验差异的整合互联网和本地。但是这个
过程太漫长了。眼看着adobe利用FLASH做跳板，以占领自己未来想占领的位置，自己能不能到达目的地还不好说，于是在急匆匆中推出了
sliverlight。其实微软本来没有sliverlight研究计划，希望借助VISTA一举掀开未来大幕，但VISTA不争气，没掀好，于是必须
应急。</font></p>
<p><font size="4">所以，奉劝开发惯了网站的程序员，继续拿起你们的AJAX，因为你们不理解人们为什么要用AIR。</font></p>
<p><font size="4">对于开发惯了EXE的程序员，继续使用AIR或WPF来开发你们的下一代产品，别想着用FLEX。习惯用微软技术的就用WPF，习惯用非微软技术的，就选择AIR。就这么简单。</font></p>
<p><font size="4">我给大家列了一个对比列表，大家可以理解这个新技术和过去技术的相似和关联。</font></p>
<p><font size="4">AIR runtime=.net framework=JVM</font></p>
<p><font size="4">AIR=WPF=JAVA Application</font></p>
<p><font size="4">FLEX=Sliverlight=JAVA Applet</font></p>
<p><font size="4">至于Google
Gears，是互联网向桌面融合的产物，而我们今天讨论的是桌面向互联网融合。虽然Google Gears、JAVA JSF、Adobe
AIR/FLEX、微软WPF/Sliverlight都是RIA的解决方案。但都是各自从各自的优势出发发展的技术方案</font></p>
<p><font size="4">最后结尾总结关键几句：</font></p>
<p><font size="4">1 AIR是给习惯开发EXE程序员准备的非微软技术的互联网解决方案。习惯微软技术的请离开，习惯网站的请离开</font></p>
<p><font size="4">2
AIR工作在表现层。AIR只是一个客户端表现，和AJAX是一样的。都是HTML+JAVASCIRPT。不要奢望它能做各种业务处理和运算。你的业务
可以包装成webservice，也可以是PHP或JSP或asp.net页面，调用方式可以是webservice，可以是httpservice，可
以是remoting。这样你的业务层就可以和表现层AIR交流数据了</font></p>
<p><font size="4">3 AIR IDE只是HTML+AVACRIPT设计和调试工具，所以你也别奢望AIR IDE能象JAVA和C#的IDE环境那样强大。你过去怎么设计和调试HTML+JAVASCRIPT，那么你现在仍然保持那种心态。</font></p>
<p><font size="4">&nbsp;4
AIR不是FLASH。他们是两种不同的应用目的和技术发展方向。不要用FLASH开发企业管理软件，也不要用AIR开发多媒体。虽然能，但不擅长（就如
你拿C来开发WEB）。AIR不需要运行在浏览器中，不需要使用FLASH容器。AIR有自己的容器和运行环境。AIR和你的EXE是一样的安装和执行。</font></p>
<p><font size="4">5AIR和WPF都处于不成熟期，可以作项目，但不要把宝押在他们上面做下一代产品线（预计下下版应该可以进行企业
下一代产品线开发，一般都是软件3个版本后才强壮稳定起来，按照竞争的激烈程度，这个第三个正式版本时间会在明年的上半年）。不过你也不要等待他们成熟后
再做再研究，这样的等待就如同2001年等待JAVA成熟一样。现在JAVA是成熟了，但是你还有机会么？</font></p>
<p><font size="4">6不要怀疑AIR和WPF是不是未来。业界早有共识，这就是未来。不要在GOOGLE
WEBOS和客户端OS之间选择来选择去，如果你是网站开发人员，安心研究你的GOOGLE
RIA技术。不要怀疑是跟微软还是跟adobe。如果你一直在微软的技术圈子中行走，那么你安心用你的WPF好了，都是未来。</font></p>
<p><font size="4">7有许多人问起来了SEO在AIR和FLEX上的缺陷。说slivelight支持SEO和搜索友好。我想说的一句是：开发企业管理软件，怕的就是搜索，怕的就是企业数据被搜索引擎搜索到。不能搜索到才好呢</font></p>
<p><font size="4">8AIR为过去的EXE程序员提供了自动版本检测和自动升级的API，这是让C/S程序员非常兴奋的一件事。回想当
年，客户端版本不一致，出了不少怪异的事情。AIR也提供了离线后暂时保存数据到本地内嵌在AIR
runtime中的sqlite(操作和平常SQL一样)，继续操作软件，连线后同步数据。OK</font></p>
<p><font size="4">9
你如果没有开发过MVC架构，没有用过COM多层开发，那么你不会明白业务层和表现层的分工和通讯的。你会一直想弄清楚怎么在AIR中写SQL语句或
JAVA语句。你也一直会想在servlet中写JAVASCRIPT和HTML代码。你还处在浆糊代码阶段，建议给自己的代码技术升升级。</font></p>
<p><font size="4">想问我为什么关注AIR吗？</font></p>
<p><font size="4">因为我一直战斗在行业管理软件的开发上。我对于开发一套C/S，一套B/S，这样极耗费开发成本开发时间和维护成本
的开发方式烦透了，要让两者操作习惯和功能都保持一致，难。如果有了BUG，两个产品是两个开发团队，BUG都出在不同的地方，分别修改。让一个公司维护
两套人马两个产品，在中国大部分都是小软件作坊的现状下，哪个都做不好。不如做一个既是C/S又是B/S的软件。</font></p>
<p><font size="4">那是多么美好的事情啊。</font></p>
</div>
<img src ="http://www.blogjava.net/atian25/aggbug/224068.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/atian25/" target="_blank">乾为天|天猪</a> 2008-08-25 10:20 <a href="http://www.blogjava.net/atian25/archive/2008/08/25/224068.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开发者版本：你属于哪个版本的程序员？ </title><link>http://www.blogjava.net/atian25/articles/211109.html</link><dc:creator>乾为天|天猪</dc:creator><author>乾为天|天猪</author><pubDate>Fri, 27 Jun 2008 05:41:00 GMT</pubDate><guid>http://www.blogjava.net/atian25/articles/211109.html</guid><wfw:comment>http://www.blogjava.net/atian25/comments/211109.html</wfw:comment><comments>http://www.blogjava.net/atian25/articles/211109.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/atian25/comments/commentRss/211109.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/atian25/services/trackbacks/211109.html</trackback:ping><description><![CDATA[【6月25日 CSDN 付江/编译】国外开发者博客中有一篇有趣的文章， <br />
将程序员按水平像软件版本号那样划分为不同的版本。相对于在招聘时分为初级，中级，高级程序员，直接表明需要某种语言N版本的程序员或许更方便直接。 <br />
根据作者的观点，可将WEB开发者大致分为以下几个版本： <br />
&nbsp;<br />
Alpha：阅读过一些专业书籍，大多数能用Dreamweaver或者FrontPage帮朋友制作一些Web页面。但在他们熟练掌握HTML代码以前，你大概不会雇佣他们成为职业的WEB制作人员。 <br />
&nbsp;<br />
Beta：已经比较擅长整合站点页面了，在HTML技巧方面也有一定造诣，但还是用Tables来制作页面，不了解CSS，在面对动态页面或数据库连接时还是底气不足。 <br />
&nbsp;<br />
Pre Version 1
(0.1)：比Beta版的开发者水平要高。熟悉HTML，开始了解CSS是如何运作的，懂一点javascript，但还是基于业余水准，逐步开始关心
动态站点搭建和数据库连接的知识。这个版本的WEB开发人员还远不能成为雇主眼中的香饽饽。 <br />
&nbsp;<br />
1.0: 能够基本把控整个站点开发，针对每个问题尽可能的找到最直接的解决办法。但对可测性，可扩展性以及在不同(层)框架下如何选择最合适的WEB设计工具尚无概念。这个版本的WEB开发者有良好的技术基础，需要有进一步的帮助和指导。 <br />
&nbsp;<br />
&nbsp;<br />
2.0：懂面向对象的编程语言，理解分层开发的必要性，关注代码分离，对问题寻找更完美的解决方法，偶然也会考虑设计模式的问题，但对此仍然概念不清。属
于优秀的初级开发者，能完成较松散的代码开发(相对大型严谨的站点开发而言)，在面对较复杂问题寻找解决办法时需要周边人的帮助。 <br />
&nbsp;<br />
3.0：开始较为深入的理解面向对象编程和设计模式，了解他们的用途，当看到好的设计模式时能看透其本质，逐步关注分层的架构解决办法和可测试性。理解不
同的开发语言并能说出他们的异同(例如各自的优势)。属于优秀的中级别开发者，雇主也确信他们最终能找到问题的解决办法，这个版本的人可以给1.0和
2.0的开发者以指导。但他们对架构的理解仍然不够清晰，值得一提的是，只要给予一些指导，他们能很快理解并熟记做出的决定，以及选定方案的优势所在。
<br />
&nbsp;<br />
4.0：理解模式，重视用户的反馈。着手研究方法论，架构设计和软件开发的最佳入口。头脑中已经形成了超越开发语言，技术架构的整体方案，可根据需求解构
程序。能从理论的角度，不同模式如何融合成最佳形态，将多种X-驱动的模式应用到不同的方案中。是精通多语言的高手，理解不同系统和方法论的细微差别，属
于高级程序员。这个级别的人能够轻易的辅导2.0和3.0的程序员，将他们推向更高的级别。 <br />
&nbsp;<br />
5.0：从系统的角度考虑问题。对各种系统结构有深入研究，能对整个代码架构中的问题进行改进。在团队粘合性以及代码安全性方面有杰出贡献。对1.0到
4.0版本的开发人员出现的问题能及时察觉，让整个团队保持积极性且保持兴奋的状态创建软件解决办法。举例来说，他们总是对新的技术和信息保持饥渴状态，
试图用最简便的方案解决开发任务。在整个IT团队中获得信任，属于高级程序员和架构师。
 <img src ="http://www.blogjava.net/atian25/aggbug/211109.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/atian25/" target="_blank">乾为天|天猪</a> 2008-06-27 13:41 <a href="http://www.blogjava.net/atian25/articles/211109.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>技术洁癖VS市场推广</title><link>http://www.blogjava.net/atian25/archive/2008/03/27/189117.html</link><dc:creator>乾为天|天猪</dc:creator><author>乾为天|天猪</author><pubDate>Thu, 27 Mar 2008 12:30:00 GMT</pubDate><guid>http://www.blogjava.net/atian25/archive/2008/03/27/189117.html</guid><wfw:comment>http://www.blogjava.net/atian25/comments/189117.html</wfw:comment><comments>http://www.blogjava.net/atian25/archive/2008/03/27/189117.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/atian25/comments/commentRss/189117.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/atian25/services/trackbacks/189117.html</trackback:ping><description><![CDATA[<strong>"你可以主观地讨厌它，但你永远不能忽略它。" -- aw</strong><br />
<br />
作为一个技术人员,你可以因为洁癖,<br />
而去讨厌M$的霸权行径,QQ的抄袭主义,<br />
但是你却绝对不能无视它的存在.<br />
<br />
--- 这是现在自己的想法,以前曾经很bs qq的抄袭,<br />
但是你不能否认它抄的很好,idea虽然是你的,但是你发挥的没有它发挥的好.<br />
以前我也是google的fan,但是现在我用的google的很多服务都慢慢被QQ侵蚀了.<br />
GOOGLE是一个很伟大的公司,但是他的本地化..实在是太慢了..<br />
<br />
 <img src ="http://www.blogjava.net/atian25/aggbug/189117.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/atian25/" target="_blank">乾为天|天猪</a> 2008-03-27 20:30 <a href="http://www.blogjava.net/atian25/archive/2008/03/27/189117.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转贴]腾讯QQ到底有多牛逼，多强大？</title><link>http://www.blogjava.net/atian25/articles/TENCENT.html</link><dc:creator>乾为天|天猪</dc:creator><author>乾为天|天猪</author><pubDate>Thu, 27 Mar 2008 01:17:00 GMT</pubDate><guid>http://www.blogjava.net/atian25/articles/TENCENT.html</guid><wfw:comment>http://www.blogjava.net/atian25/comments/188925.html</wfw:comment><comments>http://www.blogjava.net/atian25/articles/TENCENT.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/atian25/comments/commentRss/188925.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/atian25/services/trackbacks/188925.html</trackback:ping><description><![CDATA[<div>
<div>
<h2 id="post-1229"><a href="http://www.awflasher.com/blog/archives/1229" rel="bookmark" title="到《腾讯QQ到底有多牛逼，多强大？》的永久链接">腾讯QQ到底有多牛逼，多强大？</a></h2>
</div>
<div>发表于：<a href="http://www.awflasher.com/blog/archives/category/life/webdev" title="显示web开发的所有文章" rel="category tag">web开发</a>												</div>
<div id="tags-1229">关键词：<a href="http://www.awflasher.com/blog/tag/%E8%85%BE%E8%AE%AF" rel="tag">腾讯</a>, <a href="http://www.awflasher.com/blog/tag/qq" rel="tag">QQ</a>, <a href="http://www.awflasher.com/blog/tag/sns" rel="tag">SNS</a></div>
</div>
<p><br />
</p>
<p><img src="http://digital.zol.com.cn/176_module_images/312.JPG" alt="" /></p>
<p>珊瑚虫作者，北京理工大学的陈寿福刚刚获得了三年的有期徒刑，就有无数的支持者要联合起来"杯葛（B0yc0tt）"腾讯。请原谅我用了"杯葛"这个词，因为我认为，它在某些时候显得不可取代。</p>
<p>看看这篇报道（<a href="http://www.awflasher.com/blog/archives/1229">http://www.awflasher.com/blog/archives/1229</a>），你就会明白腾讯有多么强大了。我想，百度的IM向腾讯挑战没什么胜算。</p>
<p>来自腾讯2007的Q4报告与年报（<a href="http://www.tencent.com.hk/ir/pdf/news20080319a_e.pdf">英文版，PDF</a>）为我们展示了这样一个无敌的"赚钱机器"有多么强大。而一位专注于亚洲国家互联网行业研究的CEO：Benjamin Joffe，对此做出了如下的<a href="http://www.plus8star.com/?p=107">总结</a>（原文为英文，我这里翻译、整理了一下）：</p>
<ul>
    <li>活跃用户：3亿
    <ol>
        <li>这是一半以上的中国网民 </li>
        <li>这是美国的人口总合 </li>
    </ol>
    </li>
    <li>收入：5.23亿美元
    <ol>
        <li><strong>这是Facebook的四倍（Facebook为1.5亿美元）</strong> - 这是中国人民的力量（不许联想！） </li>
        <li>这是从IM和虚拟社区、虚拟装备中获得的直接收入。（美国的女孩是不会花钱买一件只能挂在屏幕上的"性感睡衣"的，所以Benjamin建议《经济学家》等媒体能从硅谷爬出来看看太平洋的这一边） </li>
    </ol>
    </li>
    <li>营业利润：2.24亿美元
    <ol>
        <li>Facebook去年亏损了5000万美元 </li>
    </ol>
    </li>
    <li>收入来源
    <ol>
        <li>互联网服务（虚拟商品、网络游戏）：3.44亿美元，66% </li>
        <li>移动业务：1.10亿美元，21% </li>
        <li>在线广告：6700万美元，13% </li>
        <li>女士们，先生们：QQ的在线广告之赚到13%的利润，而MySpace的收入几乎全部来自于广告！可怜的MySpace......我不忍心称互联网服务为"虚拟商品"，因为它们已经是货真价实的真金白银了。 </li>
    </ol>
    </li>
</ul>
<p>归纳起来很简单：</p>
<ol>
    <li>中国人会花掉半个月的工资买一件QQ秀的衣服，也不会去花钱享受Flickr的服务。我不想讨论这些服务彼此谁更有价值，只怕因此而帮了倒忙。 </li>
    <li>中国人喜欢在一棵树上吊死。在中国，喝脑白金的人往往会喝一辈子脑白金。（当然，QQ比脑白金那是天壤之别，我只是打个比方） </li>
</ol>
<p>当然，我也非常不喜欢那些动辄问候马化腾家人的人，毕竟这样显得很没素质。</p>
<p>无论如何，这就是中国互联网的现状。不过Benjamin甚至还建议Facebook和MySpace学习QQ出售虚拟商品。当我看到
"Facebook / MySpace and others also have a largely untapped market: <strong>digital goods</strong>."这句话的时候，我真的怀疑这哥们在亚洲呆太久了。</p>
<p>JOKE：当然，我个人是非常希望腾讯这架赚钱机器能跨越太平洋登陆美利坚，去美国人民那里赚点银子回来报效祖国。</p>
<p>&nbsp;</p>
<p>"冒着生命危险"的题外话，就不输出到RSS了：我看了在<a title="什么是Digg" href="http://www.awflasher.com/blog/archives/987">Digg</a>的两篇关于杯葛xx会的文章都made popular了（也就相当于上了报纸"头条"），感到很心寒。不过有几段评论我觉得可以引用一下：</p>
<blockquote>
<p>If you want to do your part, B0yc0tt the sponsors：      <br />
The Coca-Cola Company       <br />
Atos Origin       <br />
The Eastman Kodak Company       <br />
GE       <br />
John Hancock       <br />
Johnson &amp; Johnson       <br />
Lenovo       <br />
McDonald's       <br />
Omega       <br />
Panasonic       <br />
Samsung       <br />
Visa</p>
</blockquote>
<blockquote>
<p>After the B0yc0tt of the 0ly**pics in 1980 for the
Russian games after the invasion of Afghanistan it's fairly clear that
a B0yc0tt really only impacts the athletes. Still, given the massive
investment that the Chinese have made into these current games this may
in fact finally be a good time to do this if we want to make our
displeasure known.</p>
</blockquote>
<blockquote>
<p>"The sportive, knightly battle awakens the best human
characteristics. It doesn't separate, but unites the combatants in
understanding and respect. It also helps to connect the countries in
the spirit of peace. That's why the 0ly**pic Flame should never die." <br />
-- Adolf Hitler, commenting on the 1936 Berlin 0ly**pic Games</p>
</blockquote>
<script charset="utf8" type="text/javascript">cT="0";nc="#444444";nBgc="";nBorder="#F5E5A9";tc="#649B00";tBgc="#FFF4D0";tBorder="#F5E5A9";tDigg="%E6%8E%A8%E8%8D%90";tDugg="%E5%B7%B2%E8%8D%90";defaultItemUrl="WEB_URL";defaultFeedUrl ="http://feed.awflasher.com";</script>
<script type="text/javascript" charset="utf8" src="http://re.xianguo.com/api/diggthis.js"></script>
<iframe src="http://re.xianguo.com/diggButtonInterface.php?pageName=initDiggButton&amp;defaultFeedUrl=http%3A%2F%2Ffeed.awflasher.com&amp;cT=0&amp;nc=%23444444&amp;nBorder=%23F5E5A9&amp;tc=%23649B00&amp;tBgc=%23FFF4D0&amp;tBorder=%23F5E5A9&amp;tDigg=%25E6%258E%25A8%25E8%258D%2590&amp;tDugg=%25E5%25B7%25B2%25E8%258D%2590" name="xianguo_digg_frame" frameborder="0" height="22" scrolling="no" width="89"></iframe>
<p>
<a href="http://www.awflasher.com/blog/archives/1229" rel="bookmark" title="《腾讯QQ到底有多牛逼，多强大？》" class="permalink">永久链接</a> : http://www.awflasher.com/blog/archives/1229			</p>
哇！跟我一样，您也是一名Firefox用户，这些话题您可能感兴趣:
<ul>
    <li><a href="http://www.awflasher.com/blog/archives/750" title="Firefox插件讨论">提问|调查|分享~我们大家都用什么Firefox插件、扩展</a></li>
    <li><a href="http://www.awflasher.com/blog/archives/483" title="Firefox IETab让您彻底摆脱IE">完美Firefox - IE Tab - 让我们彻底放弃迟钝的IE吧</a></li>
    <li><a href="http://www.awflasher.com/blog/archives/438" title="Firefox浏览中文技巧">[小技巧]Firefox比IE看中文更爽？</a></li>
</ul>
<img src ="http://www.blogjava.net/atian25/aggbug/188925.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/atian25/" target="_blank">乾为天|天猪</a> 2008-03-27 09:17 <a href="http://www.blogjava.net/atian25/articles/TENCENT.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转贴]Adobe AIR、Microsoft WPF和Mozilla Firefox三分天下</title><link>http://www.blogjava.net/atian25/articles/188699.html</link><dc:creator>乾为天|天猪</dc:creator><author>乾为天|天猪</author><pubDate>Wed, 26 Mar 2008 04:39:00 GMT</pubDate><guid>http://www.blogjava.net/atian25/articles/188699.html</guid><wfw:comment>http://www.blogjava.net/atian25/comments/188699.html</wfw:comment><comments>http://www.blogjava.net/atian25/articles/188699.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/atian25/comments/commentRss/188699.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/atian25/services/trackbacks/188699.html</trackback:ping><description><![CDATA[<h2 class="entry-title"><a class="entry-title-link" target="_blank" href="http://www.awflasher.com/blog/archives/1231">Adobe AIR、Microsoft WPF和Mozilla Firefox三分天下<img src="http://www.google.com/reader/ui/2412528845-go-to.gif" class="entry-title-go-to" alt="" height="18" width="18" /></a></h2>
<div class="entry-author"><span class="entry-source-title-parent">从 <a href="http://www.google.com/reader/view/feed/http%3A%2F%2Ffeeds.feedburner.com%2Fawflasher" class="entry-source-title" target="_blank">aw's blog 姿态永恒</a></span> 作者：<span class="entry-author-name">aw</span></div>
<p><strong>未来，<a target="_blank" title="Adobe AIR" href="http://www.awflasher.com/blog/tag/air">Adobe AIR</a>、Microsoft <a target="_blank" title="WPF(Windows Presentation Foundation)" href="http://www.awflasher.com/blog/tag/wpf">WPF</a>和Mozilla <a target="_blank" title="Firefox" href="http://www.awflasher.com/blog/tag/firefox">Firefox</a>将会"三分天下"；它们甚至会在用户的计算机中长期共存，同时为各种应用提供运行平台。</strong></p>
<p>这是我对未来RIA应用趋势的看法。关于作出这一结论的理由，我想先抛开具体技术体系不谈，从自己作为一名普通用户（而<strong><u>不是</u></strong>开发人员，更非创业者）对互联网这个行业的<strong>期望</strong>说起。</p>
<p><strong>1、感性（玩具为主的需求：闲聊、灌水、异性交往）到理性（工具为主的需求：高效率、更稳定、更安全、更丰富、更有现实意义）的需求转变前期</strong></p>
<p>第一次接触互联网是97年。那年去武汉电信开通了拨号上网业务，拿到一个@public.wh.hb.cn的邮箱。虽然看起来很"笨重"而且还没有Web登录界面，但却是很少人能拥有的东西。这个邮箱也成为了我在互联网上最初的身份标识。</p>
<p>那时没有QQ，也没有百度，更别提国外的Google了，即便上了网，获取信息的渠道也非常有限：除了"武汉热线"，我不知道还有什么网站可以上。"命令与征服"的官方网站westwood.com是我第一个访问的国外网站：非常简陋的页面，没什么内容，更别提交互。</p>
<p>后来，有了中学论坛和QQ，更多的需求就是与人交流，更准确地说，是与人交往。一个在保守家庭接受应试教育十几年的孩子，加上本性内向的童年生活，
让我觉得在互联网上与他人（尤其是异性）交流是一件如此愉悦的事情。无论如何，我可以肯定在那个年代，学生用户中99%的人都是冲着找异性聊天去的。在这
样一个两性话题被如此禁锢的文化氛围中，互联网满足了数以万计人的本能需求：异性社交。然而，中国人毕竟以保守为主，于是大家都"曲线救国"，其实想跟异
性讨个近乎，却要绕一大圈天文地理，那是一个闲聊泛滥的时代。也是造就"QQ神话"的时代。</p>
<p>随着信息的进一步开放，竞争的进一步激烈，除了一部分被网络游戏蚕食掉灵魂外，越来越多的人<strong><u>停止了闲聊</u></strong>。我认为，中国的互联网已经不满足于这样一个雏形，即将进入新的时代，那个时代的标志是MSN"趁虚而入"，高调地宣扬自己"白领专用"，这是一个多么明显的推广技巧，却让MSN被无数人奉为"白领身份"的象征。然而无论如何，<u><strong>放弃闲聊而冷静地思考如何利用互联网为自己创造真实价值</strong></u>是一件非常有意义也非常有意思的事情。人们之间交流话题也不再是"你多大了，你家在哪"这样的内容了。</p>
<p>然而，跑在浏览器里的单调内容，让上网效率非常低下。常常一上午泡在网上却没干什么事。就在这个时候，开始出现了搜索引擎（北大的天网）和分类社区（例如校园BBS、行业BBS），人们检索信息的速度更快了。</p>
<p>随着互联网的普及，尤其随着客户端应用（C/S）与浏览器端应用（B/S）相比之下的"麻烦和笨重"，越来越多<strong><u>基于浏览器技术</u></strong>的Web
应用开始出现。当C++程序员还在嘲笑那些改人家HTML代码的"浮躁的计算机初学者"连TCP/IP协议是什么都搞不清楚的时候，Web
Developer（Web
Designer）这个团体正在悄悄地形成。当.com风暴将真金白银带给互联网从业人员的时候，那些传统软件开发人员傻眼了。<strong><u>虽然</u></strong>之后的互联网行业遇到了泡沫遭受了重创，但我认为那<strong><u>并非</u></strong>一
件坏事：一方面，老用户开始仔细思考互联网产品究竟能为自己带来什么；另一方面，大洪水的洗礼让行业中许多粗糙产品逐渐消亡。又适逢电信利用ADSL疯狂
地扩张宽带接入点，更多的人们开始上网，这些非计算机类专业人士的涌入，让互联网彻底有了活力！原来那些只有"专业人士"才能理解的"表单"、"菜单"、
"按钮"在大众面前显得未免过于唐突。普通网民更喜欢动画、图形、影视这些多媒体的展现方式。</p>
<p>互联网已由一个技术平台悄悄转变为媒体。遗憾的是，许多人不愿意承认这一点。而且，有越来越多的专家开始指责互联网对年轻人的影响。其实这种指责中所包含的许多问题，是只有互联网本身才可以解决的。RSS和SNS类产品的出现，让人们可以<strong><u>花比之前更短的时间完成同样复杂的任务</u></strong>。而在我看来，未来的互联网一定是要让人们在<strong>最短的时间里</strong>离开互联网回到线下。这一点，Google是伟大的，它们一直信守类似的理念：让用户在最短的时间内找到想要的信息，然后离开Google。那些靠欺诈点击来欺骗PV和眼球的二流新闻站、下载站如果想在互联网的发展中生存下来，长远之计显然是去切实为用户提供便利。</p>
<p>于是，我们有了<a target="_blank" title="Digg" href="http://www.awflasher.com/blog/tag/digg">Digg</a>、<a target="_blank" title="Flickr" href="http://www.awflasher.com/blog/tag/flickr">Flickr</a>、Delicious、<a target="_blank" title="Netvibes" href="http://www.awflasher.com/blog/tag/netvibes">Netvibes</a>、Wikipedia、<a target="_blank" title="Youtube" href="http://www.awflasher.com/blog/tag/youtube">Youtube</a>、<a target="_blank" title="WordPress" href="http://www.awflasher.com/blog/tag/wordpress">WordPress</a>等等这些完全免费但又令人无比振奋的服务。无论是什么行业的人，都能从中获益。</p>
<p>总结：这个阶段，B/S蓬勃发展，仿佛一夜之间，到处都是"网站制作"的需求；即便是泡沫之后，Web2.0仍在不断提醒人们，B/S架构的重要性和"商业前景"。而依靠传统C/S业务<a target="_blank" title="QQ的利润" href="http://www.awflasher.com/blog/archives/1229">发大财</a>的Tencent，则非常及时地拿下了"qq.com"这个域名，实在是非常成功的战略决策。</p>
<p><strong>2、技术平台的发展</strong></p>
<p>然而，这些仅仅基于浏览器的应用在大众面前终究是<strong>低效</strong>的：并不是不来自产品设计人员创意的干涸，而是源自<strong>浏览器本身</strong>。例如我有一段视频要上传到Youtube，还得点击"浏览"，然后点击"确定"，如果我传到一半停电了，就会前功尽弃。更可怕的是，如果我有100张图片要上传到Flickr，我必须点一百次"浏览"、"确定"......</p>
<p>当用户需要"更快、更稳定、更丰富"的服务时，仅凭现在的IE6、Firefox2显然不够：单调乏味的界面、相互的不兼容性、标准的争议、渲染能
力的瓶颈、种种安全性限制导致对本地宝贵资源的无能为力：例如，需要保存数据到本地、需要在网络连接断开后不会导致任何数据丢失。</p>
<p>"更快更稳更丰富"的需求必然在未来更加强烈，于是，<a target="_blank" title="Adobe" href="http://www.awflasher.com/blog/tag/adobe">Adobe</a>、<a target="_blank" title="微软" href="http://www.awflasher.com/blog/tag/microsoft">Microsoft</a>和Mozilla
开始提供各自的解决方案，而我（个人）将这种类型的应用称为"基于互联网技术的客户端富展现应用"（姑且叫做"Rich Internet
Application on Desktop" -
"RIA-D"吧）：与普通的Web应用相比较，它的功能更加强大，但又无需C++、Delphi、Java这些传统而复杂的开发技术介入，只需利用现有
的Web技术进行"组合"再调用各类运行平台提供的API即可。</p>
<p>它并不是的C++或者Delphi写出来的桌面软件，而是通过Web技术向桌面过渡的一种轻量应用程序。往往可以以核心的Web技术为开发基石，例
如XHTML1,JavaScript1,CSS2,ActionScript2/3甚至未来的XHTML2,HTML5等等......</p>
<p>下面，我简单分享一下我对这"三分天下"的三家的看法：</p>
<ol>
    <li>Adobe AIR      <br />
    利用<a target="_blank" title="Macromedia" href="http://www.awflasher.com/blog/tag/macromedia">Macromedia</a>当年<a target="_blank" title="FlashPlayer" href="http://www.awflasher.com/blog/tag/flashplayer">FlashPlayer</a>积累下的绝对优势来向外"辐射"AIR应用：一方面，RIA-D产品能做到无缝安装，体验流畅；另一方面，开发者资源是Adobe最大的优势：Web Developer（<a target="_blank" title="HTML" href="http://www.awflasher.com/blog/tag/html">HTML</a>、<a target="_blank" title="CSS" href="http://www.awflasher.com/blog/tag/css">CSS</a>、<a target="_blank" title="AJAX" href="http://www.awflasher.com/blog/tag/ajax">AJAX</a>等）
    和ActionScript
    Developer的结合是一股强大的势力，不容忽视。想到这里，我不禁回想起当年Macromedia被收购时，曾有一位Adobe的高管表示它们买的
    就是Flash。我觉得更可以说，他们买的是FlashPlayer这个在大众计算机上极强的渗透力和Macromedia对开发者、设计师极强的社区粘
    度（这一点，国内知名WPF设计师Allan也有<a target="_blank" href="http://allan.flashempire.net/blog/?p=513">提到</a>）。       <br />
    <strong>总结优势</strong>：
    极大的FlashPlayer覆盖率，即便是初次安装Adobe
    AIR，也能做到"无缝"的感觉：用户不会被强硬的"下载"过程所干扰。此外，绝大多数设计师都是Flash、PhotoShop的忠实用户，我们都知
    道，让设计师改变使用习惯比让程序员要困难得多，这恐怕也是微软头痛的地方：你招一个不用Adobe Flash做动画，不用Adobe
    Photoshop做设计的设计师恐怕会比较困难。 </li>
    <li>Microsoft WPF      <br />
    微软是一部巨大的商业机器。他们似乎永远都不缺钱和赚钱的方法。这一部赚钱机器投入到RIA-D
    应用，利用本身的平台优势进行"辐射"是非常迅猛的。在水木清华的WebGeek版看到一组数据表明，在微软与一些互联网/传媒巨头（NBC、AOL、
    Nokia、Baidu、Tencent、DoubleClick等）进行合作的大背景下，每天装机量已经达到150万次！ <br />
    <strong>总结优势</strong>：强大的商业机器，强大的资金支持以及度天独厚的平台支撑。毕竟现在Windows操作系统还是主流中的主流。你可以主观地讨厌它，但你永远不能忽略它。 </li>
    <li>Mozilla Firefox（3及后续版本）      <br />
    Mozilla？没错，就是做Firefox的那个Mozilla！       <br />
    Mozilla的背后是开源社区的支持，或者说是一个逐渐成长的生态系统。令微软更头疼的，这一群对IE恨之入骨的Web Geek在Web 2.0舆论导向中的作用毫不逊色于各类机构媒体（比如在Digg和Browse Happy，可以看到不同背景的人对IE表示"<a target="_blank" title="对ie的极大的失望" href="http://www.awflasher.com/blog/archives/1052">极大的失望</a>"）。
    今年3月，AOL正式宣布了Netscape死亡，这也许加速了所有对IE有情绪的人更加坚定地加入到"Mozilla
    Firefox阵营"。现在把Mozilla Firefox和Adobe AIR、Microsoft
    WPF相比也许还有些"奇怪"，但我认为他们之间功能的重复竞争是迟早要爆发的：Firefox作为一款独立开源的浏览器，在Web和桌面之间的平衡位置
    非常难得，再加上没有垄断问题所带来的法律麻烦。一些简单的产品肯定是比Adobe
    AIR和WPF有更快速的"抵达率"的。说了这么多，来一个具体的例子也许大家会有点感觉：比如TwitterFox（基于Firefox） 和<a target="_blank" title="Twhirl(AIR)" href="http://as3blog.com/as3/twitter-on-air/">Twhirl</a>（基于Adobe AIR）之间的关系，就颇有点这个意思。       <br />
    <strong>总结优势</strong>：
    忠实、甚至"病态忠实"的使用者。他们对一切非HTML、JavaScript的展现怀有偏见。于是，开源社区的支持，以及极端意识形态者的舆论导向，再
    加上本身作为一款浏览器平台，同样装在用户的电脑里，Firefox想要自己干点什么出来，比FlashPlayer还是方便百倍的。 </li>
</ol>
<p>后附：观察国内的情况，Firefox情况并不像美国、印度那么乐观。百度贴吧中的许多网友已经把"火狐"认定为十恶不赦的流氓软件，而中国的"开
源社区"更是只有去年王开源冲上Bill
Gates的讲台呐喊给大多数人留下了一点印象（且不论好坏）。在中国，大多数人上网还是去满足感性（或者生理）需求：聊天、看小说、泡妞。做这些事情，
Firefox比IE没有什么太大的优势。相反，其安装、上手成本倒成了最大的壁垒。附一组数据作证，去年到今年我的Blog（仅含<a target="_blank" href="http://www.awflasher.com/">www.awflasher.com</a>数据）访问者中浏览器的分布情况如下：</p>
<ol>
    <li>89.38% - Internet Explorer 1,733,472 </li>
    <li>9.58% - Firefox 185,826 </li>
    <li>0.56% - Opera 10,833 </li>
    <li>0.21% - Safari 3,985 </li>
</ol>
<p>而这些访问者中，来自<strong>美国</strong>的浏览器分布情况如下：</p>
<ol>
    <li>IE 14057 </li>
    <li>Firefox 6908 </li>
    <li>Opera 155 </li>
</ol>
<p>可以看到在美国用户中，Firefox较之IE的优势是非常明显的。</p>
<p>PS：请任何看到我将中国数据和美国数据对比就开口大骂的无素质人士不要在我这个"崇洋媚外"的Blog上浪费时间。</p>
<img src="http://www.spotplex.com/send/868909/regular-image.gif" alt="" height="1" width="1" /><img src="http://topsites.blogflux.com/track_104216.gif" alt="" height="1" width="1" /><a target="_blank" title="博客可能造成消极影响" href="http://www.awflasher.com/blog/archives/1048"><img src="http://aw.awflasher.com/b/dangerblog.gif" alt="" /></a> - aw提醒您：<a target="_blank" href="http://www.awflasher.com/blog/archives/1048">博客可能危害健康</a>
<p>---<br />
相关文章 :</p>
<div>
<li><a target="_blank" href="http://www.awflasher.com/blog/archives/1072">AIR攻坚战 - Adobe收购Virtual Ubiquity</a></li>
<li><a target="_blank" href="http://www.awflasher.com/blog/archives/1069">AIR Press - 基于AIR的Blog客户端维护程序</a></li>
<li><a target="_blank" href="http://www.awflasher.com/blog/archives/954">AIR - 携创业梦起飞（含大量AIR资源）</a></li>
<li><a target="_blank" href="http://www.awflasher.com/blog/archives/927">Silverlight研讨会</a></li>
<li><a target="_blank" href="http://www.awflasher.com/blog/archives/912">Apollo开发的商业前景及革命（下）</a></li>
<li><a target="_blank" href="http://www.awflasher.com/blog/archives/834">Apollo开发的商业前景及革命（上）</a></li>
</div>
<img src ="http://www.blogjava.net/atian25/aggbug/188699.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/atian25/" target="_blank">乾为天|天猪</a> 2008-03-26 12:39 <a href="http://www.blogjava.net/atian25/articles/188699.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JS,一个小疏漏</title><link>http://www.blogjava.net/atian25/articles/53862.html</link><dc:creator>乾为天|天猪</dc:creator><author>乾为天|天猪</author><pubDate>Mon, 19 Jun 2006 15:36:00 GMT</pubDate><guid>http://www.blogjava.net/atian25/articles/53862.html</guid><wfw:comment>http://www.blogjava.net/atian25/comments/53862.html</wfw:comment><comments>http://www.blogjava.net/atian25/articles/53862.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/atian25/comments/commentRss/53862.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/atian25/services/trackbacks/53862.html</trackback:ping><description><![CDATA[		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img id="Codehighlighter1_8_53_Open_Image" onclick="this.style.display='none'; Codehighlighter1_8_53_Open_Text.style.display='none'; Codehighlighter1_8_53_Closed_Image.style.display='inline'; Codehighlighter1_8_53_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
				<img id="Codehighlighter1_8_53_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_8_53_Closed_Text.style.display='none'; Codehighlighter1_8_53_Open_Image.style.display='inline'; Codehighlighter1_8_53_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">SCRIPT</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span id="Codehighlighter1_8_53_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<img src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_8_53_Open_Text">
						<span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">
								<br />
								<img id="Codehighlighter1_21_52_Open_Image" onclick="this.style.display='none'; Codehighlighter1_21_52_Open_Text.style.display='none'; Codehighlighter1_21_52_Closed_Image.style.display='inline'; Codehighlighter1_21_52_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_21_52_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_21_52_Closed_Text.style.display='none'; Codehighlighter1_21_52_Open_Image.style.display='inline'; Codehighlighter1_21_52_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />
						</span>
						<span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">function</span>
						<span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&#160;a()</span>
						<span id="Codehighlighter1_21_52_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_21_52_Open_Text">
								<span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />window.location.href</span>
								<span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span>
								<span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span>
								<span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">aaaa</span>
								<span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span>
								<span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
						</span>
						<span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						</span>
				</span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">SCRIPT</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">A&#160;</span>
				<span style="COLOR: #ff0000">href</span>
				<span style="COLOR: #0000ff">="#"</span>
				<span style="COLOR: #ff0000">&#160;onClick</span>
				<span style="COLOR: #0000ff">="javascript:a();"</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">AS</span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">a</span>
				<span style="COLOR: #0000ff">&gt;</span>
		</div>
		<br />今天有个bug,调试了半天,才发现是这个疏漏...<br /><br />本来点击后应该是刷新到aaaa页面的,但是结果是刷到了 本页面#<br />这里应该是点击事件的执行顺序问题.<br /><br />修改为&lt;A href="#" onClick="javascript:a();return false;"&gt;AS&lt;/a&gt;  <img src ="http://www.blogjava.net/atian25/aggbug/53862.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/atian25/" target="_blank">乾为天|天猪</a> 2006-06-19 23:36 <a href="http://www.blogjava.net/atian25/articles/53862.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA正则式中的忽略大小写.... 文档说的真不清楚...</title><link>http://www.blogjava.net/atian25/articles/49114.html</link><dc:creator>乾为天|天猪</dc:creator><author>乾为天|天猪</author><pubDate>Tue, 30 May 2006 13:58:00 GMT</pubDate><guid>http://www.blogjava.net/atian25/articles/49114.html</guid><wfw:comment>http://www.blogjava.net/atian25/comments/49114.html</wfw:comment><comments>http://www.blogjava.net/atian25/articles/49114.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/atian25/comments/commentRss/49114.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/atian25/services/trackbacks/49114.html</trackback:ping><description><![CDATA[		<table cellspacing="0" cellpadding="1" summary="Regular expression constructs, and what they match" border="0">
				<tbody>
						<tr align="left">
								<th id="special" colspan="2">
										<p>在js其他地方都很简单的/i忽略大小写...</p>
										<p>在java里面我找了半天没发现.. 最后去sun的forum才找到答案</p>
										<p>如匹配 AbC不区分大小写是 (?i)abc </p>
										<p>其中(?i)的位置任意.</p>
										<p>&#160;</p>
										<p>文档如下, 摘自Pettern类的javadoc</p>
										<p>Special constructs (non-capturing)</p>
								</th>
						</tr>
						<tr>
								<td valign="top" headers="construct special">
										<tt>(?:</tt>
										<i>X</i>
										<tt>)</tt>
								</td>
								<td headers="matches">
										<i>X</i>, as a non-capturing group</td>
						</tr>
						<tr>
								<td valign="top" headers="construct special">
										<tt>(?idmsux-idmsux)&#160;</tt>
								</td>
								<td headers="matches">Nothing, but turns match flags on - off</td>
						</tr>
						<tr>
								<td valign="top" headers="construct special">
										<tt>(?idmsux-idmsux:</tt>
										<i>X</i>
										<tt>)</tt>&#160;&#160;</td>
								<td headers="matches">
										<i>X</i>, as a <a href="mk:@MSITStore:D:\Document\J2SE_API_1.5.chm::/jdk150/api/java/util/regex/Pattern.html#cg">non-capturing group</a> with the given flags on - off</td>
						</tr>
						<tr>
								<td valign="top" headers="construct special">
										<tt>(?=</tt>
										<i>X</i>
										<tt>)</tt>
								</td>
								<td headers="matches">
										<i>X</i>, via zero-width positive lookahead</td>
						</tr>
						<tr>
								<td valign="top" headers="construct special">
										<tt>(?!</tt>
										<i>X</i>
										<tt>)</tt>
								</td>
								<td headers="matches">
										<i>X</i>, via zero-width negative lookahead</td>
						</tr>
						<tr>
								<td valign="top" headers="construct special">
										<tt>(?&lt;=</tt>
										<i>X</i>
										<tt>)</tt>
								</td>
								<td headers="matches">
										<i>X</i>, via zero-width positive lookbehind</td>
						</tr>
						<tr>
								<td valign="top" headers="construct special">
										<tt>(?&lt;!</tt>
										<i>X</i>
										<tt>)</tt>
								</td>
								<td headers="matches">
										<i>X</i>, via zero-width negative lookbehind</td>
						</tr>
						<tr>
								<td valign="top" headers="construct special">
										<tt>(?&gt;</tt>
										<i>X</i>
										<tt>)</tt>
								</td>
								<td headers="matches">
										<i>X</i>, as an independent, non-capturing group</td>
						</tr>
				</tbody>
		</table>
		<br />不过没怎么看懂<font face="Courier New">idmsux-idmsux的意思</font>  <img src ="http://www.blogjava.net/atian25/aggbug/49114.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/atian25/" target="_blank">乾为天|天猪</a> 2006-05-30 21:58 <a href="http://www.blogjava.net/atian25/articles/49114.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>final变量就没有跨平台的能力</title><link>http://www.blogjava.net/atian25/articles/43559.html</link><dc:creator>乾为天|天猪</dc:creator><author>乾为天|天猪</author><pubDate>Thu, 27 Apr 2006 06:30:00 GMT</pubDate><guid>http://www.blogjava.net/atian25/articles/43559.html</guid><wfw:comment>http://www.blogjava.net/atian25/comments/43559.html</wfw:comment><comments>http://www.blogjava.net/atian25/articles/43559.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/atian25/comments/commentRss/43559.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/atian25/services/trackbacks/43559.html</trackback:ping><description><![CDATA[在JR的DOC中看到一句话:<br /><br /><strong>final变量是会经过预编译优化的，因此定义为final变量就没有跨平台的能力了。<br /><br /></strong>记下了 <img src ="http://www.blogjava.net/atian25/aggbug/43559.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/atian25/" target="_blank">乾为天|天猪</a> 2006-04-27 14:30 <a href="http://www.blogjava.net/atian25/articles/43559.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>