<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="css/rss.xslt"?>
<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>newton449的博客</title><link>http://blog.newton449.com/</link><description>Java Swing Servlet Struts JavaFX... What's more?</description><generator>RainbowSoft Studio Z-Blog 1.8 Walle Build 91204</generator><language>zh-CN</language><copyright>Copyright www.newton449.com. All Rights Reserved.&amp;amp;nbsp;鄂ICP备06011666号&amp;amp;nbsp;var gaJsHost = ((&amp;quot;https:&amp;quot; == document.location.protocol) ? &amp;quot;https://ssl.&amp;quot; : &amp;quot;http://www.&amp;quot;);document.write(unescape(&amp;quot;%3Cscript src='&amp;quot; + gaJsHost + &amp;quot;google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E&amp;quot;));try {var pageTracker = _gat._getTracker(&amp;quot;UA-9462185-1&amp;quot;);pageTracker._trackPageview();} catch(err) {}</copyright><pubDate>Mon, 11 Jan 2010 22:32:17 +0800</pubDate><item><title>用Word2007或Windows Live Writer写博客</title><author>a@b.com (newton449)</author><link>http://blog.newton449.com/post/98.html</link><pubDate>Wed, 06 Jan 2010 12:25:51 +0800</pubDate><guid>http://blog.newton449.com/post/98.html</guid><description><![CDATA[<p>用 Word2007怎么写博客？废话，当然是在Word打字排版，然后复制粘贴到你的博客网站中。但是这有几个问题，一是排版可能在复制粘贴的过程中发生变 化，二是无法复制图片，只能一张一张的上传。使用&ldquo;博客离线编辑软件&rdquo;可以很好的解决这些问题。想写博客时，不用急着上网，直接用&ldquo;博客离线编辑软件&rdquo; 在本地电脑上写博客，写完了之后再上网，点&ldquo;发布&rdquo;，&ldquo;博客离线编辑软件&rdquo;会自动把博客文章发布到你的博客。一般&ldquo;博客离线编辑软件&rdquo;都自带自动保存的功 能，这样，你的博客文章的就不会因为网络断开而丢失，你也不用忍受登录博客网站、在线编辑的那种乌龟速度了。特别是在你写博客的时候，想插入图片只需复制 到博客文章中，&ldquo;博客离线编辑软件&rdquo;会自动帮你上传到博客网站，甚至能远程下载网络上的图片资源。总之它让写博客方便了很多。知名的&ldquo;博客离线编辑软件&rdquo; 有Windows Live Writer、Zoundry等，Word2007也支持这个功能。下面该本文将重点介绍中Word2007和Windows Live Writer中发布博客功能的运用。</p><p>一、在Word2007里写博客</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a)写博客文章。先打字吧！把你想说的打出来。你也可以任意加入一些图片，复制进去就行。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b)发布博客文章。写完之后就可以发布到博客了。点击Word2007左上角的【Office按钮】，鼠标移到【发布】上，再选择右侧的【博客】，如下图。</p><p><a rel="WLPP" href="http://blog.newton449.com/upload/2010/1/201001112129591174.png"><img border="0" src="http://blog.newton449.com/upload/2010/1/201001112130033865.png" alt="image" title="image" style="border-width: 0px; display: block; float: none; margin-left: auto; margin-right: auto; width: 563px; height: 491px;" /></a></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这时Word会打开一个新窗口,在这个新窗口中打开你刚才写的文章。你会发现出现了标题框，把你博客的标题写到标题框，而不要在文章内容中。另外，工具栏 上多了【博客文章】项，如图，你可以在这里对博客文章进行设置，比如【插入类别】，你还可以打开曾经发布的文章，Word会自动从你的博客网站下载它。</p><p align="center"><a rel="WLPP" href="http://blog.newton449.com/upload/2010/1/201001112130053433.png"><img height="142" border="0" width="238" src="http://blog.newton449.com/upload/2010/1/201001112130060372.png" alt="image" title="image" style="border-width: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" /></a></p><p>&nbsp;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 点击【发布】就可以发布博客了。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c)注册博客账户。首次【发布】文章Word需要你&ldquo;注册博客账户&rdquo;，即告诉Word你的博客网站是什么，如图。</p><p><a rel="WLPP" href="http://blog.newton449.com/upload/2010/1/201001112130076057.png"><img height="161" border="0" width="414" src="http://blog.newton449.com/upload/2010/1/201001112130078758.png" alt="image" title="image" style="border-width: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" /></a></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 首先选择你的博客提供商。如果你的空间是Windows Live&trade; Spaces、WordPress等列表中有的，那就好办了，直接选择；如果不是，选择其他。本文以选择&ldquo;其他&rdquo;为例，其他情况较为简单，可以参考 Word的提示。选择&ldquo;其他&rdquo;，点击【下一步】，会如图所示。</p><p><a rel="WLPP" href="http://blog.newton449.com/upload/2010/1/201001112130075278.png"><img height="271" border="0" width="430" src="http://blog.newton449.com/upload/2010/1/201001112130085653.png" alt="image" title="image" style="border-width: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" /></a></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这个&ldquo;新建帐户&rdquo;对话框需要你填写你博客网站的API，你可以在<strong>本文最后一部分</strong>查看你博客网站相应的API，这里不再阐释。然后填写你博客的帐户密码，否则Word无法与你的博客网站交流。填写后如图。</p><p><a rel="WLPP" href="http://blog.newton449.com/upload/2010/1/201001112130082724.png"><img height="271" border="0" width="430" src="http://blog.newton449.com/upload/2010/1/201001112130092547.png" alt="image" title="image" style="border-width: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" /></a></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 别急着点确定，注意这里有【图片选项】，点击它，选择如何上传博客中的图片，如图。</p><p align="center"><a rel="WLPP" href="http://blog.newton449.com/upload/2010/1/201001112130091110.png"><img height="54" border="0" width="123" src="http://blog.newton449.com/upload/2010/1/201001112130101436.png" alt="image" title="image" style="border-width: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" /></a></p><p>&nbsp;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &ldquo;我的博客提供商&rdquo;表示使用你博客网站支持的功能来上传图片，你的图片会被传到你博客网站中去，一般的支持离线编辑的博客都可以上传图片；&ldquo;个人服务器&rdquo; 表示用你的个人服务器来保存文件，个人服务器可能是你自己购买的，也可能是其他图片共享网站提供的；&ldquo;否 - 不上载图片&rdquo;表示不上传图片。一般选&ldquo;我的博客提供商&rdquo;即可。友情提示：Word在上传图片的时候，会下载并保存其他远程网站上的图片。</p><p><a rel="WLPP" href="http://blog.newton449.com/upload/2010/1/201001112130103470.png"><img height="205" border="0" width="414" src="http://blog.newton449.com/upload/2010/1/201001112130103036.png" alt="image" title="image" style="border-width: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" /></a></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 回到&ldquo;新建账户&rdquo;选项框，点击【确定】，之后Word就开始搜寻你填写的API是否正确，如果不正确请参考<strong>本文最后一部分</strong>的相关API参考，如果正确会弹出如图对话框。</p><p><a rel="WLPP" href="http://blog.newton449.com/upload/2010/1/201001112130116772.png"><img border="0" src="http://blog.newton449.com/upload/2010/1/201001112130117157.png" alt="image" title="image" style="border-width: 0px; display: block; float: none; margin-left: auto; margin-right: auto; width: 564px; height: 104px;" /></a></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这样博客账户就设置完成了。如果你刚才点击了【发布】，Word会自动开始发布，如果出现错误信息，请检查你是否填写了标题，或是图片太大等等，如果发布成功，会出现下图。去你的博客空间看看效果吧！</p><p><a rel="WLPP" href="http://blog.newton449.com/upload/2010/1/201001112130113186.png"><img height="82" border="0" width="582" src="http://blog.newton449.com/upload/2010/1/201001112130128157.png" alt="image" title="image" style="border-width: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" /></a></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d)编辑发布过的文章。选择工具栏上的【打开现有文章】，Word会读取你的博客网站上的文章列表，如图，选择一个文章，修改后再点【发布】就行了。</p><p><a rel="WLPP" href="http://blog.newton449.com/upload/2010/1/201001112130125353.png"><img height="306" border="0" width="514" src="http://blog.newton449.com/upload/2010/1/201001112130130002.png" alt="image" title="image" style="border-width: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" /></a></p><p>二、使用Windows Live Writer写博客</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Windows Live Writer是微软为Live日志量身打造的一款&ldquo;博客离线编辑软件&rdquo;，与Word2007相比，它在文字排版方面要逊色，但在对博客功能的支持上要强大一些。到网上下载并安装后打开，如图：</p><p><a rel="WLPP" href="http://blog.newton449.com/upload/2010/1/201001112130148147.png"><img border="0" src="http://blog.newton449.com/upload/2010/1/201001112130158365.png" alt="image" title="image" style="border-width: 0px; display: block; float: none; margin-left: auto; margin-right: auto; width: 580px; height: 565px;" /></a></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a)写博客文章。这一步以打字为主。另外，Windows Live Writer提供了一些简单易用的图片编辑功能，插入图片（方法为【插入】-&gt;【图片】或直接复制进来），然后选择这个图片，右侧工具栏可以更改图 片大小、版式，或者增加一些投影、边框效果等等。</p><p align="center"><a rel="WLPP" href="http://blog.newton449.com/upload/2010/1/201001112130176611.png"><img height="513" border="0" width="200" src="http://blog.newton449.com/upload/2010/1/201001112130183044.png" alt="image" title="image" style="border-width: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" /></a></p><p>&nbsp;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 你还可以插入其他东西，比如相册、表格、地图、标签等等，甚至可以添加插件。具体功能不再详述。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b)添加博客帐户。点击【菜单栏】-&gt;【工具】-&gt;【帐户】，可打开帐户选项对话框，如图。</p><p><a rel="WLPP" href="http://blog.newton449.com/upload/2010/1/201001112130181676.png"><img height="545" border="0" width="558" src="http://blog.newton449.com/upload/2010/1/201001112130191230.png" alt="image" title="image" style="border-width: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" /></a></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 点击【添加】，后面的操作可参考Word的&ldquo;注册博客帐户&rdquo;步骤，不再一一详述。Windows Live Writer会根据你的博客网址自动搜索你博客网站的API，如果没有找到API，它会要你填写API网址，请参考<strong>本文最后一部分</strong>的相关API参考。你可以添加多个博客帐户（如果你有的话），在发布文章时可以切换。</p><p><a rel="WLPP" href="http://blog.newton449.com/upload/2010/1/201001112130198661.png"><img height="394" border="0" width="460" src="http://blog.newton449.com/upload/2010/1/201001112130200380.png" alt="image" title="image" style="border-width: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" /></a></p><p><a rel="WLPP" href="http://blog.newton449.com/upload/2010/1/201001112130214607.png"><img height="394" border="0" width="460" src="http://blog.newton449.com/upload/2010/1/201001112130214030.png" alt="image" title="image" style="border-width: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" /></a></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c)编辑博客帐户。添加完博客帐户后，选择它，点击【编辑】，即可打开编辑帐户的对话框，如图。</p><p><a rel="WLPP" href="http://blog.newton449.com/upload/2010/1/201001112130226316.png"><img height="520" border="0" width="558" src="http://blog.newton449.com/upload/2010/1/201001112130226118.png" alt="image" title="image" style="border-width: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" /></a></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在这里，你可以查看博客网站提供的离线功能，可以将图片保存到你的私人FTP服务器，可以下载你博客的主题外观等等，限于篇幅，本文不再详述。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d)发布博客。点击工具栏上的【发布】，即可发布博客文章。在发布文章之前，你可以点击右下角的小箭头，打开更多设置，来设置类别、发布日期、关键字、数据域、摘要等信息。你也可以点击左下角的【预览】来预览发布后的效果。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e)其他。建议在【工具】-&gt;【选项】-&gt;【编辑】对话框中，把自动保存间隔设为1分钟，以免发生意外。在【选项】中可以设置Ping服务 器，如图，即在你博客发布之后通知博客搜索服务商（比如谷歌博客搜索），告诉它你写了一篇新的博客，这样你的博客可以尽快出现在博客搜索的结果中。更多功 能就留给你自己摸索吧！</p><p><a rel="WLPP" href="http://blog.newton449.com/upload/2010/1/201001112130235217.png"><img height="545" border="0" width="558" src="http://blog.newton449.com/upload/2010/1/201001112130231588.png" alt="image" title="image" style="border-width: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" /></a></p><p>三、相关API参考</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 了解了离线发布博客的强大功能之后，你是否心动了呢？别急，不是所有的博客都支持离线编辑功能，这需要博客网站的支持，即API的支持。只有博客网站提供 API，离线编辑软件才能在那个网站使用。一般的API是MetaWeblog API类型的，在使用Word设置API的时候，选择&ldquo;MetaWeblog&rdquo;。下面是一个参考表格，告诉你哪些博客网站或博客程序可以使用博客离线编辑 软件。该表格部分内容可能已过时，仅供参考。</p><table cellspacing="0" cellpadding="2" border="1" style="width: 565px; height: 444px;">    <tbody>        <tr>            <td width="168" valign="top">博客提供商或博客程序</td>            <td width="86" valign="top">是否支持离线写博客</td>            <td width="183" valign="top">Windows Live&trade; Spaces能否自动检测</td>            <td width="370" valign="top">API网址（改yourname为你的帐户名）</td>        </tr>        <tr>            <td width="168" valign="top">Windows Live&trade; Spaces</td>            <td width="86" valign="top">是</td>            <td width="182" valign="top">能</td>            <td width="371" valign="top">需要改变Live Spaces的设置</td>        </tr>        <tr>            <td width="167" valign="top">blogger</td>            <td width="86" valign="top">是</td>            <td width="182" valign="top">应该能</td>            <td width="372" valign="top">未知</td>        </tr>        <tr>            <td width="167" valign="top">网易博客</td>            <td width="85" valign="top">是</td>            <td width="182" valign="top">能</td>            <td width="373" valign="top"><a href="http://yourname.blog.163.com/api/xmlrpc/metaweblog/">http://yourname.blog.163.com/api/xmlrpc/metaweblog/</a></td>        </tr>        <tr>            <td width="167" valign="top">bokee</td>            <td width="85" valign="top">是</td>            <td width="181" valign="top">能</td>            <td width="373" valign="top">未知</td>        </tr>        <tr>            <td width="167" valign="top">myspace</td>            <td width="85" valign="top">是</td>            <td width="181" valign="top">应该能</td>            <td width="373" valign="top">未知</td>        </tr>        <tr>            <td width="167" valign="top">新浪博客</td>            <td width="85" valign="top">否</td>            <td width="181" valign="top">-</td>            <td width="373" valign="top">-</td>        </tr>        <tr>            <td width="167" valign="top">赛我网(Cyworld)</td>            <td width="85" valign="top">否</td>            <td width="181" valign="top">-</td>            <td width="373" valign="top">-</td>        </tr>        <tr>            <td width="167" valign="top">百度空间</td>            <td width="85" valign="top">否</td>            <td width="181" valign="top">-</td>            <td width="373" valign="top">-</td>        </tr>        <tr>            <td width="167" valign="top">QQ空间</td>            <td width="85" valign="top">否</td>            <td width="181" valign="top">-</td>            <td width="373" valign="top">-</td>        </tr>        <tr>            <td width="167" valign="top">和讯博客</td>            <td width="85" valign="top">否</td>            <td width="181" valign="top">-</td>            <td width="373" valign="top">-</td>        </tr>        <tr>            <td width="167" valign="top">Z-blog</td>            <td width="85" valign="top">是</td>            <td width="181" valign="top">需安装插件</td>            <td width="373" valign="top"><a href="http://yourname.com/xml-rpc/">http://yourname.com/xml-rpc/</a></td>        </tr>        <tr>            <td width="167" valign="top">WordPress</td>            <td width="92" valign="top">是</td>            <td width="202" valign="top">未知</td>            <td width="374" valign="top">未知</td>        </tr>    </tbody></table><p>&nbsp;</p><p>四、总结</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &ldquo;博客离线编辑软件&rdquo;使得上传图片和排版更加方便，把你从龟速的网络中解脱出来，希望你能喜欢它。</p>]]></description><category>电脑网络</category><comments>http://blog.newton449.com/post/98.html#comment</comments><wfw:comment>http://blog.newton449.com/</wfw:comment><wfw:commentRss>http://blog.newton449.com/feed.asp?cmt=98</wfw:commentRss><trackback:ping>http://blog.newton449.com/cmd.asp?act=tb&amp;id=98&amp;key=ec3cf859</trackback:ping></item><item><title>SRT字幕在线工具箱</title><author>a@b.com (newton449)</author><link>http://blog.newton449.com/post/97.html</link><pubDate>Thu, 12 Nov 2009 02:40:00 +0800</pubDate><guid>http://blog.newton449.com/post/97.html</guid><description><![CDATA[<p>&nbsp;&nbsp;&nbsp; SRT字幕在线工具箱，用来对*.srt的外挂电影字幕进行一些处理。目前实现的功能仅有字幕合并功能，可以用来将多条字幕合并成一条字幕。比如可以把独立的中文字幕和独立的英文字幕合并成中英文字幕，方便看电影时对照看。</p><p>&nbsp;&nbsp;&nbsp; 使用方法：先添加字幕，再点合并字幕，即会自动下载合并后的字幕。建议填上字幕误差时间。</p><p>&nbsp;&nbsp;&nbsp; 这个程序是在我上个Swing下的字幕程序的基础上重构的，更好的封装了逻辑代码，较全面的使用了JUnit4进行单元测试，使用了GWT构建AJAX程序并实现与服务器端交互，最终发到免费的Google App Engine上。纯粹练笔所用。有任何建议或意见的朋友请留言！想交流程序心得的朋友也请留言。</p><p>&nbsp;&nbsp;&nbsp; 工具箱的网址是：<a href="http://subtitletools.appspot.com/">http://subtitletools.appspot.com/</a>。</p>]]></description><category>JAVA开发</category><comments>http://blog.newton449.com/post/97.html#comment</comments><wfw:comment>http://blog.newton449.com/</wfw:comment><wfw:commentRss>http://blog.newton449.com/feed.asp?cmt=97</wfw:commentRss><trackback:ping>http://blog.newton449.com/cmd.asp?act=tb&amp;id=97&amp;key=ac19b58b</trackback:ping></item><item><title>Netbeans IDE与GWT（Google Web Toolkit)的整合与应用——GWT4NB插件</title><author>a@b.com (newton449)</author><link>http://blog.newton449.com/post/96.html</link><pubDate>Mon, 09 Nov 2009 16:23:27 +0800</pubDate><guid>http://blog.newton449.com/post/96.html</guid><description><![CDATA[<p>&#160;<strong>前言：</strong></p>  <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; Netbeans IDE（以下简称Netbeans）是Sun公司旗下的自由、开源的集成开发环境。它支持多种语言，包括Java、C\C++、Python等。它有着广大的社区团体以及丰富的插件。近几年Netbeans的发展速度很快，增加了许多新的特性。使用Netbeans的开发者，特别是Java开发者，现在越来越多。官网<a href="http://netbeans.org/index_zh_CN.html">http://netbeans.org/index_zh_CN.html</a>（中文）。</p>  <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; Google Web Toolkit（以下简称GWT）是谷歌公司旗下的一个网络开发工具，能让开发者使用Java来写AJAX特效。它能把程序员用Java写的图形界面代码，自动转换成JavaScript，并且兼容各个浏览器，提高了开发效率。它还提供了多种AJAX与服务器端程序交换数据的方法，使得无论服务器端是哪种语言，都能配合GWT生成的JavaScript。GWT还有第三方开发的可视化的图形界面编写工具（收费的）等其他配套工具。官网<a href="http://gwt4nb.dev.java.net/">http://gwt4nb.dev.java.net/</a>（英文）。</p>  <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; 在GWT的官网教程上，讲解了如何使用Eclipse插件和命令行来编译和运行GWT程序。使用Netbeans IDE的程序员不用担心，GWT4NB插件可以帮助我们在Netbeans中方便的运行GWT程序。本文需要读者熟悉Java开发，了解Netbeans的用法，会简单使用GWT构建程序。本文部分内容直接翻译了GWT4NB插件的官网文章，其中有些内容加以扩展。本文测试环境是JDK 1.6_16，GWT 1.2.6，Netbeans 6.7.1，GWT4NB 2.6.7，Windows Vista。</p>  <h4><strong>安装GWT4NB插件：</strong></h4>  <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; 到官网&quot;Download&quot;页面去下载这个插件，注意对应的Netbeans版本和GWT版本，以及当前版本是“过时的”还是“稳定”。当然下“稳定”的版本。在Netbeans的【工具】-&gt;【插件】-&gt;【已下载】-&gt;【添加插件】中添加并安装你的插件。Netbeans的【可用插件】面板里也有，但可能不是最新版。</p>  <h4><strong>GWT4NB的特性：</strong></h4>  <ul>   <li>可以在新建Java Web项目的过程中添加GWT框架。也可以点已有项目的【属性】-&gt;【框架】来添加此框架。两种方式都可以指定GWT所在的程序目录。 </li>    <li>【生成主项目】或【清理并生成主项目】的时候，插件会自动转换Java代码到JavaScript代码。</li>    <li>【运行主项目】的时候，插件会自动转换Java代码到JavaScript代码。 </li>    <li>【调试主项目】的时候，插件<strong>不会</strong>自动转换Java代码到JavaScript代码，即JavaScript代码没有更新。会弹出GWT自带的浏览器（Hosted Browser）。 </li>    <li>选菜单栏【调试】，会有【GWT Hosted…】，如图，这个就是类似GWT教程里Ant的Hosted模式。这时候，插件<strong>不会</strong>自动转换Java代码到JavaScript代码，即JavaScript代码没有更新。会弹出GWT自带的浏览器。</li> </ul>  <p><img title="" alt="" src="http://blog.newton449.com/upload/2009/11/200911091628104848.png" onload="ResizeImage(this,520)" /></p>  <p>&#160;</p>  <ul>   <li>在两种调试状态下都可以用Netbeans进行断点等调试工作。在GWT自带的浏览器打开的时候，用Netbeans的输出窗口中的【停止】能将这个浏览器关闭。 </li>    <li>【新建文件】中可以选择【Google Web Toolkit】-&gt;【GWT RPC Service】。它将生成三个类：client包中的GWTService、GWTServiceAsync类和service中的GWTServiceImpl类。如果勾选“Create Usage Example Class”，还会生成一个客户端Java类作为样例。此时GWTService类和GWTServiceAsync会严格遵守GWT的约定，如果没有，GWT4NB使得Netbeans会提示错误，如图，SubtitleService类中有myMethod()方法，但对应的SubtitleServiceAsync类中没有myMethod(AsyncCallback asyncCallback)方法。GWT4NB不会检查SubtitleServiceImpl类，但它至少要实现SubtitleService接口。</li> </ul>  <p><img title="" alt="" src="http://blog.newton449.com/upload/2009/11/200911091628416377.png" onload="ResizeImage(this,520)" /></p>  <p><img title="" alt="" src="http://blog.newton449.com/upload/2009/11/200911091628572843.png" onload="ResizeImage(this,520)" /></p>  <ul>   <li>如果你是用Maven2构建项目的，使用<a href="http://mojo.codehaus.org/gwt-maven-plugin/">Codehaus Maven Plugin</a>（英文）来构建GWT，本文不再详述。</li> </ul>  <p>尾声：</p>  <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; GWT4NB插件提供的功能很简单，但很实用。有了它，你不必再手动编写ANT来编译GWT项目了。在官网上有更详细的安装说明和使用说明，还有源代码和版本信息。我认为如果你已经习惯于用Netbeans编程，那么上面的那些提示已经足够了。希望Netbeans和GWT还有GWT4NB能提高你的开发效率，希望你能开发出更好更强大的AJAX程序。</p>]]></description><category>Netbeans相关</category><comments>http://blog.newton449.com/post/96.html#comment</comments><wfw:comment>http://blog.newton449.com/</wfw:comment><wfw:commentRss>http://blog.newton449.com/feed.asp?cmt=96</wfw:commentRss><trackback:ping>http://blog.newton449.com/cmd.asp?act=tb&amp;id=96&amp;key=94f8e955</trackback:ping></item><item><title>Netbeans IDE与Maven2的整合与应用</title><author>a@b.com (newton449)</author><link>http://blog.newton449.com/post/netbeansandmaven.html</link><pubDate>Wed, 04 Nov 2009 23:06:00 +0800</pubDate><guid>http://blog.newton449.com/post/netbeansandmaven.html</guid><description><![CDATA[<p><strong>前言：</strong></p>  <p>&#160;&#160;&#160; 本文将介绍如何在Netbeans IDE环境下用Maven2构建Java程序。读者需要熟悉Java开发知识，了解Maven2的基本功能，最好能习惯用Netbeans IDE开发程序。</p>  <p>&#160;&#160;&#160; Netbeans IDE是Sun公司旗下的自由开源的、主要针对Java的集成开发环境。与Eclipse一样，Netbeans不仅拥有齐全的基本IDE功能，还支持众多的扩展插件。Netbeans提供有基于Swing的可视化GUI开发，可视化的AJAX、WEB和Java EE开发，可视化的Java ME开发，可视化的UML建模和生成，另外还加入了对Ruby And Rails和C/C++的开发支持。近几年Netbeans的发展很快，版本更新迅速，比往年的易用性和开发效率有了很大的提高。Netbeans的汉化程度很高，大多数官网开发的功能都有中文语言，连帮助文档也有许多是中文的，这对Java初学者或想深入了解Netbeans的开发者提供了很大的帮助。</p>  <p>&#160;&#160;&#160; Maven2是Apache下的一个命令行的自动化构建工具，类似Ant，但加入了一些约定，并加强了对引用库的版本的管理。它能自动下载引用库及其依赖库，并在相同的库中保留最新的版本。它可以对Java项目进行编译、运行、测试等方式构建，也可以下载或自己开发Maven2的其他构建插件，来实现特殊的构建要求。</p>  <p>&#160;&#160;&#160; 将Netbeans IDE与Maven2整合，使得构建方法多样化、自定义化，库管理更方便，又保留了易用的窗口化界面环境，提高开发的效率。本文的测试版本是Netbeans IDE 6.7.1和Maven2.2.0，测试平台是Windows Vista。</p>  <p><a href="http://blog.newton449.com/upload/2009/11/%E6%9C%AA%E6%A0%87%E9%A2%98-1_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="未标题-1" border="0" alt="未标题-1" src="http://blog.newton449.com/upload/2009/11/%E6%9C%AA%E6%A0%87%E9%A2%98-1_thumb.png" width="477" height="304" /></a></p>  <p><strong>安装Netbeans IDE的Maven插件：</strong></p>  <p>&#160;&#160;&#160; 在Netbeans IDE最新的版本中Maven插件是默认已经安装了的。打开Netbeans，选择菜单栏【工具】-&gt;【插件】，在【已安装】选项卡中可以看到，如图。如果没有安装，请选择【可用插件】选项卡，勾选Maven，点【安装】，按提示操作即可。</p>  <p><a href="http://blog.newton449.com/upload/2009/11/%E6%9C%AA%E6%A0%87%E9%A2%98-2_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="未标题-2" border="0" alt="未标题-2" src="http://blog.newton449.com/upload/2009/11/%E6%9C%AA%E6%A0%87%E9%A2%98-2_thumb.png" width="915" height="560" /></a> </p>  <p>&#160;&#160;&#160; 装了Maven插件后需要对其进行配置。在Netbeans菜单栏上选择【工具】-&gt;【选项】，选【其他】选项卡，选【Maven】小选项卡。可以看到，需要设置Maven2的程序目录，点击【浏览】选择即可。如果这里没有配置，Netbeans则会自动在环境变量M2_HOME寻找Maven2的安装目录；如果仍没找到，则会使用Netbeans内置的Maven3.0-SNAPSHOT，每次使用这个内置的Maven3.0-SNAPSHOT时，Netbeans都会给出警告，所以请不要用这个内置的版本。</p>  <p><strong>创建基于Maven构建的程序：</strong></p>  <p>&#160;&#160;&#160; 在Netbeans的【新建项目】对话框中，左列选择【Maven】，右侧选择你所需要的项目模型，Netbeans会调用Maven生成相应的项目，这里以Maven Web应用程序为例。点【下一步】，会出现“名称和位置”对话框。注意这里的“工作Id”等信息将会构建到你项目的pom文件中。在这里我填写项目名为“MavenWebDemo”，组Id为&quot;com.example”。点击【完成】，Netbeans就开始创建这个项目了</p>  <p><a href="http://blog.newton449.com/upload/2009/11/%E6%9C%AA%E6%A0%87%E9%A2%98-3_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="未标题-3" border="0" alt="未标题-3" src="http://blog.newton449.com/upload/2009/11/%E6%9C%AA%E6%A0%87%E9%A2%98-3_thumb.png" width="741" height="510" /></a> </p>  <p>&#160;&#160;&#160; 让我们看看Netbeans，或者说是Maven创建了什么。生成、测试或运行此项目，Netbeans都会调用Maven2进行，实际上，Netbeans默认生成了调用Maven2的命令，整合到了它的【生成】、【运行】按钮中。</p>  <p><a href="http://blog.newton449.com/upload/2009/11/%E6%9C%AA%E6%A0%87%E9%A2%98-4_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="未标题-4" border="0" alt="未标题-4" src="http://blog.newton449.com/upload/2009/11/%E6%9C%AA%E6%A0%87%E9%A2%98-4_thumb.png" width="344" height="224" /></a> </p>  <p>&#160;&#160;&#160;&#160; 相信你是会使用Maven2的。上图中可以看到pom.xml文件，即是Maven2的配置文件。可以在里面添加、删除依赖库，配置项目构建方法插件的属性等等，不再详述。请详见专门介绍Maven2的书籍、文章。</p>  <p>&#160;&#160;&#160; 右击项目列表里的项目名&quot;MavenWebDemo&quot;，选择【属性】，在【操作】类别中可以看到Netbeans如何调用Maven2进行项目构建。可以在这里设置一些属性，或添加定制项。（如下图）</p>  <p><a href="http://blog.newton449.com/upload/2009/11/%E6%9C%AA%E6%A0%87%E9%A2%98-6_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="未标题-6" border="0" alt="未标题-6" src="http://blog.newton449.com/upload/2009/11/%E6%9C%AA%E6%A0%87%E9%A2%98-6_thumb.png" width="820" height="589" /></a> </p>  <p><strong>添加依赖库：</strong></p>  <p>&#160;&#160;&#160; 有两种方法：一种是直接在pom.xml文件里写，另一种是右键点击项目列表的【库】，选择【添加依赖关系】。本例中使用GroupId=org.hibernate, ArtifactId=hibernate-core, version=3.3.2.GA。如果用前一种方法添加库，则Netbeans会在运行Maven的时候下载此Hibernate库，如果用后一种方法，Netbeans会在点击确定之后立即开始下载，并且会把这个库的javadoc和源一起下载下来（如果javadoc和源存在的话）。</p>  <p><a href="http://blog.newton449.com/upload/2009/11/%E6%9C%AA%E6%A0%87%E9%A2%98-5_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="未标题-5" border="0" alt="未标题-5" src="http://blog.newton449.com/upload/2009/11/%E6%9C%AA%E6%A0%87%E9%A2%98-5_thumb.png" width="537" height="567" /></a> </p>  <p>&#160;&#160;&#160; 我们可以使用Netbeans自动下载库的源和javadoc甚至测试程序，只要它们被放到了Maven2的网上。右键点击某个库，选择【查看工件详细信息】，会出现一个操作面板。这个面板可以查看库的基本信息，包括依赖图。在【基本】选项卡中，双击右上放的版本号后，右下方会显示此版本的javadoc、源、测试文件是否存在。点击上方的【创建库】，勾选“将内容复制到库位置”，可以将库及其依赖库添加到Netbeans的库中，方便非Maven2构建的项目使用，也可以顺便下载源文件和Javadoc（如果可用）。显然，有了源或Javadoc，能对我们使用库起到极大的帮助作用。</p>  <p>尾声：</p>  <p></p>  <p></p>  <p></p>  <p></p>  <p></p>  <p></p>  <p>&#160;&#160;&#160; 本文介绍的只是Netbeans IDE对Maven2的支持情况，你可以随心所欲的在Netbeans中使用Maven2的各种优秀功能了。Newton449.com版权所有，转载请在此申请，转载请保留原文件地址链接。如有建议或意见请留意。</p>]]></description><category>Netbeans相关</category><comments>http://blog.newton449.com/post/netbeansandmaven.html#comment</comments><wfw:comment>http://blog.newton449.com/</wfw:comment><wfw:commentRss>http://blog.newton449.com/feed.asp?cmt=95</wfw:commentRss><trackback:ping>http://blog.newton449.com/cmd.asp?act=tb&amp;id=95&amp;key=7d4c8291</trackback:ping></item><item><title>生活离不开谷歌帐户——google.com被和谐了！附反域名劫持方法</title><author>a@b.com (newton449)</author><link>http://blog.newton449.com/post/94.html</link><pubDate>Thu, 25 Jun 2009 12:33:45 +0800</pubDate><guid>http://blog.newton449.com/post/94.html</guid><description><![CDATA[<p>【后记：本文创作几天之后google.com恢复了正常访问，但谷歌中文首页的语言选择和用户帐户链接都不见了&hellip;&hellip;】</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最近国家互联网反低俗斗争愈演愈烈，前段时间GFW把blogger.com、youtube.com屏蔽了，接着把bing.cn等网站开玩笑似的屏蔽了几天，后来某某部门又高价购买&ldquo;笑话软件&rdquo;绿坝①。这不，前段时间央视多次指责谷歌搜索含有低俗内容②，在昨天晚上，在某些地区，突然③，google.com不能访问了，而google.cn能正常访问。这样，谷歌国际的搜索功能就不能使用了，谷歌中国的搜索仍能使用。因为谷歌中国按&ldquo;当地政策法规&rdquo;对搜索结果做了过滤，但谷歌国际的搜索却没有这个过滤功能。某某部门觉得你在谷歌中国搜索不到低俗内容，在谷歌国际能搜索到，这怎么行呢！所以就让google.com不能访问了。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 由于谷歌帐户功能是使用google.com域名的，因此这google.com不能访问，导致绝大部分谷歌帐户功能不能使用，包括Gmail、Google Talk等。生活离不开谷歌帐户！好在这次不能访问只是因为google.com被域名劫持了，而没有像blogger、youtube完全被和谐了，所以只要绕过国内的DNS解析，google.com就能访问了。为防止不必要的麻烦，我引用某前辈的方法，<a target="_blank" href="http://club.pchome.net/topic_1_15_3764948.html">点击这里</a>可以找到解决方案。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 关于GFW或类似的屏蔽事件，大众媒体是不会直说的，往往用当事人&ldquo;正在调查了解&rdquo;、某某部门&ldquo;未给出回应&rdquo;来敷衍。有些客观媒体指出，百度以前竞价排名被央视批评，后来它在央视花了大概4000万做广告和赞助，所以&ldquo;网民提出或许央视是想跟谷歌也达成类似的交易&rdquo;④。无论如何，有媒体报道谷歌正在与相关部门解决这件事。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 从如此多的反低俗斗争中我们可以看到以下几点：1.低俗内容不仅包括色情内容，还包括中国政治敏感内容，并且很难说哪个是主要的，哪个是次要的。我认为，反色情暴力内容主要应该针对未成年人，其最佳做法应该从良好的家庭教育做起，让家长和老师进行引导和监督，不要过于依赖过滤软件。如果是以反政治敏感内容为主，请不要打着反色情反暴力、保护未成年人的幌子，更不要混为一谈、同时过滤！我不对中国政府反政治敏感内容的做法发表评论。2.宁愿牺牲优秀的内容，也要禁止低俗内容。不知有多少优秀的国外Web2.0网站被和谐了，仅仅是因为它们可能有低俗内容（特别是政治敏感内容），就让他们其他的、大多数的优秀内容一同被过滤掉，这种过分追求完美的做法违反任何事物的发展规律，犯了以偏概全的错误。当然，外国的Web2.0网站被和谐了，国内对应山寨版的网站倒是发展壮大了，这可能算得上是民族保护主义。3.可能有严重的贪污行为。做软件这一行的都知道，在中国向企业卖软件，肯定是要给回扣的。某某部门以天价收购一个不值钱的&ldquo;笑话软件&rdquo;绿坝，并且没有经过正规招标，谁知道这其中隐藏着什么秘密。友情提示：千万不要在你的电脑上装绿坝，装了后你的电脑极容易被黑客攻击！</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最后，<strong>希望反低俗斗争继续加强，这样我以后可以靠卖代理服务器赚大钱了！</strong></p><p>注释：</p><p>①&ldquo;笑话软件&rdquo;：源自某人的一篇文章《&ldquo;绿坝-花季护航&rdquo;是一个笑话》</p><p>②此新闻参加<a title="http://chinese.wsj.com/gb/20090623/chj103046.asp" href="http://chinese.wsj.com/gb/20090623/chj103046.asp">http://chinese.wsj.com/gb/20090623/chj103046.asp</a></p><p>③突然：经过了大概1个小时的断网之后，事情就发生了。</p><p>④参见注释②</p>]]></description><category>电脑网络</category><comments>http://blog.newton449.com/post/94.html#comment</comments><wfw:comment>http://blog.newton449.com/</wfw:comment><wfw:commentRss>http://blog.newton449.com/feed.asp?cmt=94</wfw:commentRss><trackback:ping>http://blog.newton449.com/cmd.asp?act=tb&amp;id=94&amp;key=828d0746</trackback:ping></item><item><title>将java web程序发布到Google App Engine上（Windows，命令行）</title><author>a@b.com (newton449)</author><link>http://blog.newton449.com/post/93.html</link><pubDate>Fri, 12 Jun 2009 13:36:00 +0800</pubDate><guid>http://blog.newton449.com/post/93.html</guid><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Google开放了App Engine的java平台，供java爱好者们把自己的程序发布到网上。最重要的一点是：它是免费的！下面将讲解如何将java程序发布到App Engine上去。（Windows，命令行）</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在Google官方的英文的文档（<a href="http://code.google.com/intl/en/appengine/docs/java/gettingstarted/uploading.html" title="http://code.google.com/intl/en/appengine/docs/java/gettingstarted/uploading.html">http://code.google.com/intl/en/appengine/docs/java/gettingstarted/uploading.html</a>）中有详细的讲解，你英文好的话，可以去那里看看。如果你在发布的过程中遇到了问题，再回到这里也不迟。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 首先你要注册你的应用，即开通App Engine功能（<a href="http://appengine.google.com/" title="http://appengine.google.com/">http://appengine.google.com/</a>)。记住你的<code><i>application-id</i></code>。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 打包你的程序之前，你需要在WEB-INF文件夹下添加一个appengine-web.xml文件，把下面内容中<code><i>application-id</i></code>换成你的实际id就可以了：</p><blockquote><pre>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;&lt;appengine-web-app xmlns=&quot;http://appengine.google.com/ns/1.0&quot;&gt;    &lt;application&gt;<code><i>application-id</i></code>&lt;/application&gt;    &lt;version&gt;1&lt;/version&gt;&lt;/appengine-web-app&gt;</pre></blockquote><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strike>建议你把UTF-8作为所有文件的编码，否则可能会出现意外效果。</strike>①</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 建立工程并打包之后，你会得到一个app.war，由它解压出来的目录比如为E:\app，现在下载并解压Google提供的SDK，<strong>用记事本打开，把@java换成@你的JDK路径，形如：（引号在路径中有空格的时候不能去掉）②</strong></p><blockquote><p>@&quot;C:\Program Files\Java\jdk1.6.0_14\bin\java&quot; &ndash;cp &hellip;</p></blockquote><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 保存后，用命令行进入到它的解压文件夹下的bin文件夹，附带参数为&ldquo;空格update E:\app&rdquo;，例如：</p><blockquote><p>E:\Program Files\appengine-java-sdk-1.2.1\bin&gt;appcfg.cmd update E:\app</p></blockquote><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 接着会提示你输入邮箱名和密码，看见&ldquo;Success.&rdquo;就说明成功了。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 之后访问<a href="http://appengine.google.com/" title="http://appengine.google.com/">http://appengine.google.com/</a>就可以看到你的应用列表了。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 由于最多有10个应用，还不能删除，所以当你下次更新的时候就不要改appengine-web.xml中的version了，以免浪费应用个数。Google App Engine有很多特性不支持，比如数据库不能用Hibernate（除非你封装JPA），然而你可以试试用其他的数据库，比如你现在的空间的数据库，远程连接就可以了。你也可以去专门买个数据库试试。如果你使用工厂模式开发数据库的DAO的话，你也可以重写一个DAO实例。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 有问题欢迎留言。</p><p>注释：</p><p>①有些朋友在设为其他编码是会出现jsp中文乱码的问题，但我测试的时候没有碰到，可能已经被fix了</p><p>②如果你装了jre，那么App Engine会自动用它的java.exe而不是JDK的，这样就会出现找不到javac.exe错误(cannot find javac executable based on java.home)。解决办法如上，引用：<a href="http://code.google.com/p/googleappengine/issues/detail?id=1226#makechanges" title="http://code.google.com/p/googleappengine/issues/detail?id=1226#makechanges">http://code.google.com/p/googleappengine/issues/detail?id=1226#makechanges</a>。错误信息如下：</p><blockquote><pre>java.lang.IllegalStateException: cannot find javac executable based on java.home, tried &quot;C:\Program Files\Java\jre6\bin\javac.exe&quot; and &quot;C:\Program Files\Java\bin\javac.exe&quot;Unable to upload app: cannot find javac executable based on java.home, tried &quot;C:\Program Files\Java\jre6\bin\javac.exe&quot;and &quot;C:\Program Files\Java\bin\javac.exe&quot;</pre></blockquote>]]></description><category>JAVA开发</category><comments>http://blog.newton449.com/post/93.html#comment</comments><wfw:comment>http://blog.newton449.com/</wfw:comment><wfw:commentRss>http://blog.newton449.com/feed.asp?cmt=93</wfw:commentRss><trackback:ping>http://blog.newton449.com/cmd.asp?act=tb&amp;id=93&amp;key=1dc38646</trackback:ping></item><item><title>报考武汉大学国际软件学院的好处</title><author>a@b.com (newton449)</author><link>http://blog.newton449.com/post/92.html</link><pubDate>Thu, 11 Jun 2009 15:55:00 +0800</pubDate><guid>http://blog.newton449.com/post/92.html</guid><description><![CDATA[<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; 本人是武汉大学国际软件学院（以下简称国软）2008级的学生，正值2009年高考报考之际，写一篇博客反映一下我所在学院的情况，供考生和家长们参考。</p>  <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; 专业前途可能是考生和家长们最关心的。据学院领导向我们通报，学院2005级学生大概300人中，有70人左右出国，超过90%毕业生出国、找到了工作或继续读研①。数字是比较乐观的。我认为软件方向是很有前途的，软件产业是一个在所有产业链末端的绿色环保产业，在中国是一个充满活力和机遇的朝阳产业，特别是随着政府打击盗版软件的力度加大，软件产业将迎来真正复兴。中国人口众多，许多跨国大型软件或硬件公司都想进入这个市场，但由于中国国情的特殊性而普遍碰壁。<strong>所以国内的软件人才既可以在国内公司工作或自主创业，又可以在跨国公司的分部求职，可谓机会多多。</strong></p>  <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; 你可能要说了：现在软件学院太多了，随便什么学历的人，交点学费，上个软件或计算机培训班，就可以工作了，并且就业率很高。确实如此，但从那些三流学院培养出来的学生绝对和我们不是一个档次（除非你进学校后天天玩游戏）。学院在大一开设有外教口语课②，并与武汉环球雅思学校合作，开办雅思培训班③（收费大概每学期仅100元书费的样子），并且要求学生达到英语6级或雅思6分（或6.5分，我不记得了）才能毕业。说白了，学院是强化你英语的，并计划在将来进行英语教学（现在的部分软件课程是双语教学④）。或者，你强化日语也可以。英语不是学习软件的必要条件，但却是学好软件的必要条件。另外，软件专业课的老师偶尔有个“武汉算法第一人”之类的头衔，偶尔还有外国软件学校的老师来讲座甚至长期授课。非专业课的老师都是武大教务部统一安排的，不一定是让学生满意的老师⑤，但一定是合格的老师。<strong>总之，国软师资力量是绝对强大的。</strong></p>  <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; 上面谈了些软件情况，下面谈些硬件情况。国软是有钱的，来源可能包括一些赞助商的补给⑥，以及“乱”开设的中印班、第二学士学位班等等。虽然软件学院在第三、四年学费贵很多，但这是全国统一标准，不是武汉大学的国际软件学院独有的。国软的占地范围是一个院子，而不像很多学院只是一栋楼，这个院子是购买以前“商专”和湖北经济学院的部分地盘而来的，目前在武大的地图上还没有这个地区⑦。国软是有钱的，还因为它在大搞院子的建设，比如加大宿舍宽度、为教学楼配备设备、改造宿舍楼朝向等等，但这些不是在表扬它，这些大搞建设只是它以前应该做的、没做好的地方，现在在亡羊补牢而已。到现在，我在一个超烂的寝室⑧住了大半年，最近搬了一次寝室，而在一个月后将再次搬寝室，并且我不知道我会到哪个寝室楼去。为教学楼配备设备，比如饮水机和空调：饮水机最近倒是有了；为一楼的自习室配了空调，但由于“同时开的时候电网受不了”所以一直没开，倒是办公楼的N个空调天天开着。国软现在的体育馆、活动室、体育场、实验室很多很多地方都亟需修补，学校向我们做了通报和承诺，但还不见动静，只听见机器轰轰的盖宿舍声⑨。<strong>国软的硬件条件只能说有美好的前景，而到现在还不能令人满意。</strong></p>  <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; <strong>想读其他好专业但分数不够的学生们建议报考国软。</strong>在我们这一届转专业是无条件的，只要你愿意离开国软，国软都将放你走，不会像某些学院那样收取高额的“转院费”⑩。国软在湖北招生的分数历来都是进校最低分⑾，只要你报，是很容易报上的（当然不能排除他们看到“服从调剂”就乱分配而把你放到其他专业去的情况）。另外，转院是从大一下学期开始的，而大一上学期在国软学的“高等数学”和“线性代数”都是除数学专业外课时最高的，不用你转专业之后重修或新学，节约时间。国软大一时几乎没讲开始编程的内容，能保证你专业课也不挂（不挂，即会及格）。当然，即使你读了软件专业，以后也不一定要从事这方面工作，也可以向某个2005级的前辈那样去考北大的心理系研究生。</p>  <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; <strong>国软的学习风气很差。</strong>这点不能全怪学校，主要怪电脑。高等数学的老师说过，高等数学课不及格的学生要重修，一般有三个重修班，第一个是计算机科学与技术专业的，第二个是软件专业的，第三个是武大其他专业加起来的。可能说得有些夸张，但突出了国软的学风问题。只要寝室里有电脑，学生是管不住自己的，无论学习还是玩，每天总要花几个小时在电脑上。有不少寝室是通宵玩游戏的（尤其是高年级），甚至有同学因为不玩游戏而遭到室友的排斥。其次，宿舍管理员和辅导员对学生管教不严也是原因之一，特别是对晚上寝室作息时间和上课到课人数不管。你可以想像一下你睡觉时聆听同学在黑暗中敲打鼠标和键盘的声音，也可以想像一下本来应该坐满的教室只有一半人来上课。第三，学习的进度太慢，效果太差。软件编程学习对于新手来说极容易产生诸多问题，一旦新手没有好的室友为他答疑，他十有八九进入不了门道，以至于无法自学，无所事事，上电脑就玩游戏。建议学校开展一帮多的学习模式，发动学生组建开发小组，由组长帮助组员辅导专业课程以及学习额外内容，并给予组长奖励。我先所在的寝室有3人，而我把那两人引导到每天花2小时或4小时在电脑上学习编程的状态，虽然不一定有效率，但至少没把时间荒废在网游、聊天或开心网上。最重要的一点是：学风只是将学习成绩非常差的人大大增加了，而学习成绩非常好的人没减少多少。只要你是个肯学的人，学风差不会影响你的。</p>  <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; 由于国软在信息学部，所以这里有着<strong>所有非主校区所共有的缺点：消息闭塞</strong>。讲座、表演、比赛等学生活动，只要是校级的往往在武大本部举行，然而连这些活动的海报宣传都很难到达信息学部，使我们不得而知。有人说，其实，在武大本部的学生也有很多人不知道这些活动。我最近在着手打造这样一个海报发布平台，使得全校的学生活动能集中起来，并且能方便查看，特别是用短信或手机上网的方式查看。苦于没有学校的支持，我的进展很慢。希望消息闭塞这个缺点能在将来得到解决。</p>  <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; 提最后一点：国软的男女比例失衡，男女约4:1。虽说如此，但国软毕竟是在武大，女生相对来说是不少的。像华科或浙大这类学校，我的在那些学校的同学都说男女失衡更加严重，比如某电子信息专业每个班只有1个女生。所以想报那些超高分学校的男生们注意了：<strong>没有多少女生其分数能上那些学校的，也没有多少女生会偏好华科而不选武大这种充满人文气息的学校。</strong></p>  <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; 先到这里，欢迎提出各种意见！如有你不同意的请留言！以上内容仅代表个人观点，仅作参考，无法保证其内容100%真实性、准确性，</p>  <p>注释：</p>  <p>①这些数字仅作参考，不保证其可靠性、权威性、真实性</p>  <p>②所谓“外教口语课”，实际上没几节课有趣，并且文化冲突大，老外的黑色幽默常不被我们接受</p>  <p>③实际上没多少人愿意去上这门课，它没有被学生及学院领导与其他课程同等对待</p>  <p>④双语教学在这里是指：讲话用汉语，教材和考试用英语</p>  <p>⑤有的老师讲方言完全听不懂，有的老师只会打击学生的进取心</p>  <p>⑥给公司好的学生可能要拿回扣吧！猜的</p>  <p>⑦以前的国软位于南望山，现在的位置在群光广场对面，才搬过来的</p>  <p>⑧有11人住一间的寝室……幸好我住的是3人间</p>  <p>⑨注释⑧提到的宿舍在被扩建中，已经没住人了</p>  <p>⑩学生每少一人，学校拨给学院的费用就会少一人的，所以学院都不愿意自己的学生出去，然而国软有钱……</p>  <p>⑾不保证官方的说法和这里相同</p>]]></description><category>一路走过</category><comments>http://blog.newton449.com/post/92.html#comment</comments><wfw:comment>http://blog.newton449.com/</wfw:comment><wfw:commentRss>http://blog.newton449.com/feed.asp?cmt=92</wfw:commentRss><trackback:ping>http://blog.newton449.com/cmd.asp?act=tb&amp;id=92&amp;key=3764c0a9</trackback:ping></item><item><title>谷歌中国的CEO——李开复在卡内基梅隆大学的演讲视频：Google in China</title><author>a@b.com (newton449)</author><link>http://blog.newton449.com/post/91.html</link><pubDate>Sun, 07 Jun 2009 14:03:00 +0800</pubDate><guid>http://blog.newton449.com/post/91.html</guid><description><![CDATA[<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; 2008年2月1日，谷歌中国的CEO在他的母校卡内基梅隆大学有一次关于谷歌公司如何发展中国市场的讲座。讲座虽然离现在有些时候了，不过很值得一看。他透彻的分析了跨国公司进入中国并扩大市场所需要注意的问题以及谷歌中国是怎样做的。长达一个多小时的讲座也是联系听力的好材料，并且因为是中国人说的英语，腔调和我们类似，所以较容易听懂。在卡内基梅隆大学官网上的视频是youtube的，所以只好放上优酷网的（你应该知道为什么）：</p>  <blockquote><embed src="http://player.youku.com/player.php/sid/XNzA2MDg0ODQ=/v.swf" quality="high" width="480" height="400" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash"></embed> </blockquote>  <p>&#160;</p>  <p>李开复一直是中国大学生的励志导师，常常到各个大学去讲座。网上有很多他在其他大学的讲座视频，推荐这一个主要是因为它是英文的，并且李开复所讲的是在外国企业和人眼中，怎样看待中国市场。其中有一些中美信息文化的对比，让我印象颇深。如果你是读计科、软件工程或类似专业的学生，强烈建议你看一看。这也值得想在互联网上创业的年轻人看看，想想。</p>]]></description><category>电脑网络</category><comments>http://blog.newton449.com/post/91.html#comment</comments><wfw:comment>http://blog.newton449.com/</wfw:comment><wfw:commentRss>http://blog.newton449.com/feed.asp?cmt=91</wfw:commentRss><trackback:ping>http://blog.newton449.com/cmd.asp?act=tb&amp;id=91&amp;key=a50994d7</trackback:ping></item><item><title>让Hibernate自动重新连接数据库——使用c3p0连接池</title><author>a@b.com (newton449)</author><link>http://blog.newton449.com/post/90.html</link><pubDate>Sun, 07 Jun 2009 10:29:00 +0800</pubDate><guid>http://blog.newton449.com/post/90.html</guid><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hibernate没有自动重新连接数据库，原因很可能是因为你使用了Hibernate内置的连接池，这个连接池不会自动重新连接。使用Mysql时，默认过8小时没有数据交换，Mysql就会单方面断开数据库连接，所以有些时候你会发现过了8小时（或者一晚上）再访问网站，程序就会抛出数据库链接错误，而重启服务器容器（Tomcat等）之后程序又恢复正常。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 细心的你应该会发现，如果使用默认的连接池，在Hibernate的日志记录（INFO级别）中会提示：Using Hibernate built-in connection pool (not for production use!)（&ldquo;你现在使用的是Hibernate内置的连接池，请不要在产品中使用它！&rdquo;）如果你不听劝告，仍然使用它，就会出现上面所说的数据库单方面断开连接而无法访问的问题。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 解决此方法就是使用其他的连接池，比如此c3p0，在Hibernate官网的参考手册（reference）的3.3节中有简单的介绍①：</p><p>/**********引用开始*********/</p><blockquote><p>Hibernate's own connection pooling algorithm is however quite rudimentary. It is intended to help you get started and is <em>not intended for use in a production system</em> or even for performance testing. You should use a third party pool for best performance and stability. Just replace the hibernate.connection.pool_size property with connection pool specific settings. This will turn off Hibernate's internal pool. For example, you might like to use C3P0.</p><p>C3P0 is an open source JDBC connection pool distributed along with Hibernate in the <code>lib</code> directory. Hibernate will use its <code>org.hibernate.connection.C3P0ConnectionProvider</code> for connection pooling if you set hibernate.c3p0.* properties. If you'd like to use Proxool refer to the packaged <code>hibernate.properties</code> and the Hibernate web site for more information.</p><p>Here is an example <code>hibernate.properties</code> file for C3P0:</p><p><a name="c3p0-configuration"></a></p><pre>hibernate.connection.driver_class = org.postgresql.Driverhibernate.connection.url = jdbc:postgresql://localhost/mydatabasehibernate.connection.username = myuserhibernate.connection.password = secrethibernate.c3p0.min_size=5hibernate.c3p0.max_size=20hibernate.c3p0.timeout=1800hibernate.c3p0.max_statements=50hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect</pre></blockquote><p>/**********引用结束*********/</p><pre>到这里还没结束，如果你按上面的方法添加了，不一定可以成功使用c3p0连接池（至少我测试时没有成功），你还需要添加一句话：</pre><p>hibernate.connection.provider_class=org.hibernate.connection.C3P0ConnectionProvider</p><p>官方参考文档指出connection.provider_class属性是在自定义连接提供者时使用的，并没有说使用c3p0时也要加这句话。但我测试时不加这句话就没有效果，所以还是加上吧！</p><p>完整的设置方法：</p><p>（属性文件）</p><p>/*************排版开始**************/</p><blockquote><p># Database connection settings     <br />hibernate.connection.driver_class=com.mysql.jdbc.Driver    <br />hibernate.connection.url=jdbc:mysql://localhost:3306/mydb    <br />hibernate.connection.username=username    <br />hibernate.connection.password=password    <br /># configuration pool    <br />hibernate.connection.provider_class=org.hibernate.connection.C3P0ConnectionProvider    <br />hibernate.c3p0.min_size=5    <br />hibernate.c3p0.max_size=15    <br />hibernate.c3p0.timeout=3600    <br />hibernate.c3p0.max_statements=50    <br /># SQL dialect    <br />hibernate.dialect=org.hibernate.dialect.MySQLDialect    <br /># Enable Hibernate's automatic session context management    <br />hibernate.current_session_context_class=thread    <br /># Echo all executed SQL to stdout    <br />hibernate.show_sql=true    <br /># Drop and re-create the database schema on startup    <br />hibernate.hbm2ddl.auto=update</p></blockquote><p>/*************排版结束**************/</p><p>如果你想把properties放到xml中，使用hibernate.c3p0.min_size等4项，（而不是c3p0.min_size）不然可能会扔出警告。</p><p>/*********排版开始***********/</p><blockquote><p>&lt;property name=&quot;hibernate.c3p0.min_size&quot;&gt;5&lt;/property&gt;    <br />&lt;property name=&quot;hibernate.c3p0.max_size&quot;&gt;15&lt;/property&gt;    <br />&lt;property name=&quot;hibernate.c3p0.timeout&quot;&gt;3600&lt;/property&gt; &lt;!-- seconds --&gt;    <br />&lt;property name=&quot;hibernate.c3p0.max_statements&quot;&gt;50&lt;/property&gt;</p></blockquote><p>/**********排版结束****************/</p><p>关于更多c3p0的用法请你自己到网上搜索吧！这里不再重述。</p><p>注释：</p><p>①引用的出处（2008年9月10日 18:26:56修改版）：<a title="http://docs.jboss.org/hibernate/stable/core/reference/en/html/configuration-hibernatejdbc.html" href="http://docs.jboss.org/hibernate/stable/core/reference/en/html/configuration-hibernatejdbc.html">http://docs.jboss.org/hibernate/stable/core/reference/en/html/configuration-hibernatejdbc.html</a></p>]]></description><category>JAVA开发</category><comments>http://blog.newton449.com/post/90.html#comment</comments><wfw:comment>http://blog.newton449.com/</wfw:comment><wfw:commentRss>http://blog.newton449.com/feed.asp?cmt=90</wfw:commentRss><trackback:ping>http://blog.newton449.com/cmd.asp?act=tb&amp;id=90&amp;key=3caa5724</trackback:ping></item><item><title>“国软资讯平台”——我参与开发的第一个完整网站程序</title><author>a@b.com (newton449)</author><link>http://blog.newton449.com/post/89.html</link><pubDate>Fri, 05 Jun 2009 15:13:00 +0800</pubDate><guid>http://blog.newton449.com/post/89.html</guid><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 前不久学校某部门搞了一个&ldquo;软件文化节&rdquo;①活动。所谓&ldquo;节&rdquo;实际上是几项软件、网络相关的比赛，其中有一个被称作U-WEB的比赛②内容是做一个完整的网站程序。这段时间我正在学习java web的开发，书看了不少，但缺少实践，正好碰到了这一年一度的比赛，能让我动动手。于是，我与其他几人组建了Daydream开发小组③，报了名。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 网站从头到尾完成花了约40天。一开始由小组所有人制定网站方案、进行需求分析，接着确定了大致的流程图，剩下就是分工：我、ruiqi④、DWB等制定了详细的业务逻辑和页面划分；我负责服务器端编程，DWB主要负责页面美工的总设计，ruiqi主要负责客户端编程（javascript和AJAX⑤），html编写、数据填充以及后期测试工作则是由所有成员共同完成。由于是第一次做网站，经验不够，所以其中出现了很多很多意见分歧和合作矛盾，效率很低。最终纵然有很多美中不足，我们还是及时完成项目，结束比赛。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 谈谈此网站特色：网站&ldquo;国软资讯平台&rdquo;⑥是&ldquo;为国软的师生们提供最权威最全面的校内第一手活动资讯以及学习资料，方便大家的学习生活&rdquo;的平台，包括&ldquo;活动天地&rdquo;、&ldquo;课程资讯&rdquo;、&ldquo;IT快讯&rdquo;、&ldquo;技术文档&rdquo;和&ldquo;软件下载&rdquo;等五个频道，其本质上是传统的内容管理系统（cms），稍稍加入了一些互动式功能，比如评论、评分、收藏和会员发布资料。首页设置了五个频道的最新文章；五个频道均是以列表页+内容页的形式展现的；每个频道都有各自独立的搜索页面，而首页有全站的搜索页面；内容页面有加入收藏、评分、发表评论等功能，在用户中心可以看到自己已经收藏的文章，还可以自助添加文章（要审核才能显示）；后台部分提供了添加、修改、删除、审核等操作文章或评论的功能，还提供了添加友情链接的功能，添加了的友情链接可以直接在首页上显示。我们希望，网站能由普通会员和系统管理员共同发布资源，特别是活动文章，来共同壮大它。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 具体谈一些实现方法：服务器端是基于java web的，用struts2⑦+hibernate⑧实现的（为什么不用spring⑨？来不及学了）。Struts2是一个MVC框架，能够很好的把业务逻辑、业务模型和页面视图分离开来，还提供标签、值栈等来方便页面与数据的整合。Hibernate是一个数据库操作封装框架，提供了惯例式的业务模型持久化功能及相关操作，使得配置代替了很多编程式操作。Jsp在此网站中仅作为视图技术，与后台数据进行整合。客户端方面用了XHTML1.0和Css2，主要用div+css进行页面设计。AJAX在评分功能上用到，无刷新评分，并自动更新平均分。上面只是简单提及，实际上还有很多细节无法简短的一一道来。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 到现在，此次比赛还没有出结果。希望能出好成绩。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 说起收获了什么，大概就是经验吧！矛盾很多，细节也很多，一时我倒想不起来了。累了，到此结束。写博客有一个好处：可以虎头蛇尾！</p><p>注释：</p><p>①2009年&ldquo;软酷网&middot;武汉大学软件文化节&rdquo;官网网址：<a href="http://www.ruanko.com/news/softwareparty.jsp" title="http://www.ruanko.com/news/softwareparty.jsp">http://www.ruanko.com/news/softwareparty.jsp</a></p><p>②U-WEB比赛：笔者猜测此名字由来可能是U Web，即you web（你与网络）</p><p>③Daydream小组介绍：<a href="http://daydream.newton449.com/">http://daydream.newton449.com/</a> 可能还在制作中</p><p>④ruiqi同学的博客：<a href="http://www.ruiqi.me/" title="http://www.ruiqi.me/">http://www.ruiqi.me/</a></p><p>⑤AJAX：异步javascript和XML技术，可以实现页面不刷新的数据更改，用来增强用户体验</p><p>⑥&ldquo;国软资讯平台&rdquo;中&ldquo;国软&rdquo;指国际软件学院，在这里是非官方认证的引用。此网站展示网址是<a href="http://uweb.newton449.com/">http://uweb.newton449.com/</a></p><p>⑦Struts2官网是<a href="http://struts.apache.org/" title="http://struts.apache.org/">http://struts.apache.org/</a> （英文）</p><p>⑧Hibernate官网是<a href="http://www.hibernate.org/" title="http://www.hibernate.org/">http://www.hibernate.org/</a> （英文）</p><p>⑨Spring：一个拥有依赖注入等功能的控制器型框架，官网是<a href="http://www.springsource.org/" title="http://www.springsource.org/">http://www.springsource.org/</a> （英文）</p><p>*其他没有注释但你又看不懂的请到google或wiki搜索！</p>]]></description><category>一路走过</category><comments>http://blog.newton449.com/post/89.html#comment</comments><wfw:comment>http://blog.newton449.com/</wfw:comment><wfw:commentRss>http://blog.newton449.com/feed.asp?cmt=89</wfw:commentRss><trackback:ping>http://blog.newton449.com/cmd.asp?act=tb&amp;id=89&amp;key=7377afc9</trackback:ping></item></channel></rss>
