﻿<?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>博客园-八进制</title><link>http://www.cnblogs.com/bjzhanghao/</link><description>少年壮志无烟抽</description><language>zh-cn</language><lastBuildDate>Wed, 10 Feb 2010 08:31:30 GMT</lastBuildDate><pubDate>Wed, 10 Feb 2010 08:31:30 GMT</pubDate><ttl>60</ttl><item><title>Nokia 5530手机使用技巧</title><link>http://www.cnblogs.com/bjzhanghao/archive/2010/01/25/1655523.html</link><dc:creator>八进制</dc:creator><author>八进制</author><pubDate>Sun, 24 Jan 2010 17:01:00 GMT</pubDate><guid>http://www.cnblogs.com/bjzhanghao/archive/2010/01/25/1655523.html</guid><description><![CDATA[<p>阅读: 238 评论: 0 作者: <a href="http://www.cnblogs.com/bjzhanghao/" target="_blank">八进制</a> 发表于 2010-01-25 01:01 <a href="http://www.cnblogs.com/bjzhanghao/archive/2010/01/25/1655523.html" target="_blank">原文链接</a></p><p>我的诺基亚5530手机是2009年10月买的，到现在使用3个多月了，自己相当满意 --- 以至于要在这里为它写两句（声明：无任何商业意图）。</p><p><strong>好处太多了，简单总结</strong><strong>如下：</strong></p><p>1、机身小巧便携：重量与普通（非智能）手机差不多甚至更小更轻，比大多数智能机薄，装在裤兜里几乎感觉不到。<br /></p><p>2、界面反应迅速：在不开启多个应用程序的情况下操作起来十分流畅。 <br /></p><p>3、分辨率高： 全触摸的好处，360x640的屏幕占据了大部分机身，与QVGA的机型相比上网舒服很多。<br /></p><p>以上几点是我挑选智能机的最低标准，可惜现在市场上虽然智能机呈现百花齐放局面，但能符合的机型寥寥无几，特别是第一点。关于此机型网上已经总结了很多使用技巧（比如这里和这里，5800的技巧大多也适用），下面说说我自己摸索的。</p><p><strong>使用技巧两则：</strong> <br /></p><p>1、盲操作：全触屏的一个问题是眼睛必须看着屏幕才能准确操作，当在听音乐的时候，如果希望不把手机从口袋里拿出来就能换歌怎么办呢？我的解决办法是进入音乐播放器界面，在屏幕上&#8220;快进&#8221;按钮的地方贴一小块透明的冷裱膜（其他膜也一样，透明胶也可以），大约5mmx5mm的大小就够了，其作用就是帮助手指定位，类似键盘上F键和J键上的突起的作用。见下图红圈位置。你可以根据需要决定是否给暂停、倒退等按钮也贴上，音量则还是通过侧键调整，这样你只用把手插进口袋里就能控制音乐的播放了。<br /></p><p align="center"><img alt="" src="http://images.cnblogs.com/cnblogs_com/bjzhanghao/touchscreen_assist.GIF" height="241" width="394" /> <span style="font-size: 10pt;"><br />图1 红圈所示定位用冷裱膜</span></p><p>注意，在不同程序里这块膜的位置对应不同的功能，例如图中所贴的位置在&#8220;照相机&#8221;里对应快门按钮，在&#8220;日历&#8221;里则对应添加待办事项按钮。<br /></p><p>2、音乐管理：PC端建议使用Ovi Music（以前叫Nokia Music），可以单独安装也可以在PC Suite里安装。用其他软件管理的音乐导入5530以后很容易出现乱码，比如Windows Media Player，出现乱码好像是随机的，大约每10首有2～3首的比例。 如果遇到导入到5530上无法显示唱片封面的情况，可以试一下先在Ovi Music里进行唱片封面优化，一般都可以解决。</p><p><strong>有待解决的问题：</strong></p><p>1、日历里无法添加重复待办事项。 <br /></p><p>2、横竖屏自动切换的速度较慢。 <br /></p><p>&nbsp;</p><img src="http://www.cnblogs.com/bjzhanghao/aggbug/1655523.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/bjzhanghao/archive/2010/01/25/1655523.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/bjzhanghao/archive/2010/01/25/1655523.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/>· <a href="http://news.cnblogs.com/n/56850/" target="_blank">“谷姐”：披着“谷歌”羊皮的悲哀？</a><span style="color:gray">(2010-02-10 15:32)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>ILOG JViews Diagrammer使用记录</title><link>http://www.cnblogs.com/bjzhanghao/archive/2009/04/17/1438359.html</link><dc:creator>八进制</dc:creator><author>八进制</author><pubDate>Fri, 17 Apr 2009 12:15:00 GMT</pubDate><guid>http://www.cnblogs.com/bjzhanghao/archive/2009/04/17/1438359.html</guid><description><![CDATA[<p>阅读: 1165 评论: 0 作者: <a href="http://www.cnblogs.com/bjzhanghao/" target="_blank">八进制</a> 发表于 2009-04-17 20:15 <a href="http://www.cnblogs.com/bjzhanghao/archive/2009/04/17/1438359.html" target="_blank">原文链接</a></p><p>ILOG Jviews一共提供了四个组件，用来实现各种与可视化（Visualization）相关的应用实现。Diagrammer是其中之一，其主要功能是画一般意义的图，例如地图和各种拓扑图。以下记录了我在使用Diagrammer过程中遇到的问题和解决方法。<br /></p><p>使用Thin Client（在后台生成图片）的方式：<br />
</p>
<p>1、修改了.css文件，在浏览器里刷新页面发现没有更新</p>
<p>没办法，重启web服务器，更保险一些，在新开的浏览器里访问。</p>
<p>2、改变图片类型</p>
<p>缺省好像是JPG类型，要改为PNG应在&lt;jvdf:diagrammerView&gt;里加属性imageFormat="PNG"</p><p>3、让diagrammer区域始终占满所在&lt;div&gt;区域<br /></p><p>需在定义diagrammer时设置一个属性（//TODO）值为true</p><p>Special thanks to: He Xiangyang <br /></p>
<p> </p><img src="http://www.cnblogs.com/bjzhanghao/aggbug/1438359.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/bjzhanghao/archive/2009/04/17/1438359.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/bjzhanghao/archive/2009/04/17/1438359.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/>· <a href="http://news.cnblogs.com/n/56850/" target="_blank">“谷姐”：披着“谷歌”羊皮的悲哀？</a><span style="color:gray">(2010-02-10 15:32)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>Dojo使用中的问题记录</title><link>http://www.cnblogs.com/bjzhanghao/archive/2009/04/06/1430063.html</link><dc:creator>八进制</dc:creator><author>八进制</author><pubDate>Sun, 05 Apr 2009 16:37:00 GMT</pubDate><guid>http://www.cnblogs.com/bjzhanghao/archive/2009/04/06/1430063.html</guid><description><![CDATA[<p>阅读: 1406 评论: 0 作者: <a href="http://www.cnblogs.com/bjzhanghao/" target="_blank">八进制</a> 发表于 2009-04-06 00:37 <a href="http://www.cnblogs.com/bjzhanghao/archive/2009/04/06/1430063.html" target="_blank">原文链接</a></p><p>1、动态填充dijit.form.MultiSelect</p>
<p>MultiSelect不支持dojo.data（即datastore），所以如果想把一个datastore动态填充进去，只能写一些javascript代码来动态创建那些&lt;option&gt;标签，基本上是通过myDataStore.fetch()来实现的。<a href="http://www.dojotoolkit.org/forum/dijit-dijit-0-9/dijit-support/populating-markup-multiselect">这个链接（Populating markup MultiSelect）</a>值得参考。</p>
<p>2、强制一个datastore从url里取得数据</p>
<p>myDataStore._forceLoad();</p>
<p>3、当datastore含有嵌套结构的时候，datastore.fetch()报错&#8220;dojo _48 is undefined&#8221;
</p>
<p>原因是在得到的json串里包含了"identifier"的声明，但嵌套结构里有一些对象没有包含所声明的属性。解决的方式1、让所有对象都包含该属性，2、去掉"identifier"声明（推荐1，因为我猜去掉这个声明后，在一些控件里将无法映射id值到html代码）<a href="http://www.dojotoolkit.com/forum/dojo-core-dojo-0-9/dojo-core-support/itemfilereadstore-and-nested-json">参考链接1</a> <a href="http://www.nabble.com/error-loading-root-children-td19828687.html">参考链接2</a><br />
</p>
<p>4、在dojo中响应事件</p>
<p> <a href="http://docs.dojocampus.org/quickstart/events">JavaScript events and Dojo</a></p>
<p>5、刷新BorderContainer</p>
<p>有时需要动态隐藏BorderContainer里的一些区域（如left），若近将该区域的style.display设置为"none"，则该区域所在的部分将变为空白，其他区域（如center）不会自动占领它原来的屏幕空间。这时需要调用dojo.byId('myBorderContainer').layout()方法手动让dojo重新计算一次布局，其他布局类似。<a href="http://www.nabble.com/update-resize-LayoutContainer-td5285082.html">一个相关链接（仅针对旧版本dojo）</a></p>
<p>6、用dojo画统计图（柱图，饼图等）</p>
<p>见这个教程：A Beginner's Guide to Dojo Charting (<a href="http://www.sitepen.com/blog/2008/06/06/a-beginners-guide-to-dojo-charting-part-1-of-2/">Part1</a>, <a href="http://www.sitepen.com/blog/2008/06/16/a-beginners-guide-to-dojo-charting-part-2-of-2/">Part2</a>)</p>
<p>7、程序改变dijit.dialog的标题</p>
<p>dijit.dialog并没有提供一个"setTitle"方法来控制标题内容，但可以通过dijit.byId('myDialog').titleNode.innerHTML='My New Title'来实现。<a href="http://www.alexatnet.com/node/75">参考链接</a></p>
<p>8、BorderContainer里各个pane的显示和隐藏</p>
<p>利用dojox.layout.ExpandoPane（尚不确定是否为experimental），使用的例子见<a href="http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/layout/tests/test_ExpandoPane.html">这个链接</a>。 <br />
</p>
<p>9、将ItemFileWriteStore序列化为JSON字符串</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">var</span><span style="color: #000000;">&nbsp;foo</span><span style="color: #000000;">=</span><span style="color: #000000;">dojo.data.ItemFileWriteStore._getNewFileContentString();</span></div>
<p>&nbsp;</p>
<p>10、dojo的XHR(XmlHttpRequest) 里，handleAs可以有以下取值：<br />
</p>
<p>text (default), json, json-comment-optional, json-comment-filtered, javascript, xml</p>
<p><a href="http://www.sitepen.com/blog/2008/04/14/xhr-plugins-with-dojo-using-handleas/">参考链接</a> <br />
</p>
<p>11、将DataStore里的数据以XHR方式发给服务器，并处理返回值</p>
<p>在js里这样写：</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">var</span><span style="color: #000000;">&nbsp;data&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;scenarioEntryStore._getNewFileContentString();<br />
&nbsp;dojo.rawXhrPost({<br />
&nbsp;&nbsp;url:&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">http://127.0.0.1:8080/myapp/myservlet</span><span style="color: #000000;">"</span><span style="color: #000000;">,<br />
&nbsp;&nbsp;handleAs:&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">text</span><span style="color: #000000;">"</span><span style="color: #000000;">,<br />
&nbsp;&nbsp;postData:&nbsp;data,<br />
&nbsp;&nbsp;headers:&nbsp;{</span><span style="color: #000000;">"</span><span style="color: #000000;">Content-Type</span><span style="color: #000000;">"</span><span style="color: #000000;">:&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">application/json</span><span style="color: #000000;">"</span><span style="color: #000000;">},<br />
&nbsp;&nbsp;handle:&nbsp;</span><span style="color: #0000ff;">function</span><span style="color: #000000;">&nbsp;(data,&nbsp;args)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">typeof</span><span style="color: #000000;">(data)&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">error</span><span style="color: #000000;">"</span><span style="color: #000000;">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: #000000;">"</span><span style="color: #000000;">Error&nbsp;run&nbsp;analysis</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: #000000;">"</span><span style="color: #000000;">Successed&nbsp;run&nbsp;analysis</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">do&nbsp;with&nbsp;result&nbsp;data</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;});</span></div>
<p><br />
</p>
<p>在myservlet里用下面的方法得到js传过来的json字符串，然后可以用任何java的json包来做解析和处理了：</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">private&nbsp;String&nbsp;readJSONString(HttpServletRequest&nbsp;request)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;StringBuffer&nbsp;json&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;StringBuffer();<br />
&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;line&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;">&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedReader&nbsp;reader&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;request.getReader();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">&nbsp;((line&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;reader.readLine())&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;json.append(line);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">&nbsp;(Exception&nbsp;e)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(e.toString());<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;json.toString();<br />
}</span></div>
<p>&nbsp;</p>
<p>12、使用xhr的时候，如果不是在本机访问，可能会遇到&#8220;Access to Restricted URI Denied&#8221;的提示。</p>
<p>一个可能的原因是xhr里的url的domain与访问者浏览器（或其他什么，这里没搞很清楚）的domain不一致，如果是这个原因，只要在url里使用相对路径就可以了。比如原来url是&#8220;http://127.0.0.1:8080/myapp/myservlet&#8221;的，改为&#8220;myservlet&#8221;即可。如果不是这个原因，<a href="http://www.dojotoolkit.org/forum/dojo-core-dojo-0-9/dojo-core-support/access-restricted-uri-denied">这个链接</a>可以参考一下。<br />
</p>
<p>13、dojo里的单击事件是&#8220;onClick&#8221;，写成&#8220;onclick&#8221;不认。（但onchange是全小写，够奇怪）<br />
</p>
<p>14、把json格式的数据画到dojo chart<br />
</p>
<p>下面是一个把json数据转换到数组的例子，来自<a href="http://www.sitepen.com/blog/2008/06/16/a-beginners-guide-to-dojo-charting-part-2-of-2/">这个链接</a>，实际上是利用prototype的能力。<br />
</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008000;">//</span><span style="color: #008000;">JSON:</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">str&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;&#8220;{values:&nbsp;[</span><span style="color: #000000;">1</span><span style="color: #000000;">,</span><span style="color: #000000;">2</span><span style="color: #000000;">,</span><span style="color: #000000;">3</span><span style="color: #000000;">,</span><span style="color: #000000;">4</span><span style="color: #000000;">,</span><span style="color: #000000;">5</span><span style="color: #000000;">]}&#8221;;<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">using&nbsp;prototype</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">obj&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;str.evalJSON();<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">the&nbsp;array&nbsp;is&nbsp;then&nbsp;referenced&nbsp;by:</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">chart1.addSeries(&#8221;Series&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">&#8243;,&nbsp;obj.values);</span></div>
<p>&nbsp; <br />
</p>
<p>&nbsp;下面这种方式则直接使用了json格式（来自<a href="http://www.sitepen.com/blog/2008/06/12/dojo-charting-widgets-tooltips-and-legend/">这里</a>），但关于valueFn这个参数的使用方法我还没找到一个比较完整的介绍：</p><div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000;">&lt;</span><span style="color: #000000;">div&nbsp;dojoType</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">dojox.charting.widget.Chart2D</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;id</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">chart4</span><span style="color: #000000;">"</span><span style="color: #000000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;theme</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">dojox.charting.themes.PlotKit.green</span><span style="color: #000000;">"</span><span style="color: #000000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;style</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">width:&nbsp;300px;&nbsp;height:&nbsp;300px;</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">div&nbsp;class</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">plot</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;name</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">default</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;type</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Pie</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;radius</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">100</span><span style="color: #000000;">"</span><span style="color: #000000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fontColor</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">black</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;labelOffset</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">-20</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;&lt;</span><span style="color: #000000;">/</span><span style="color: #000000;">div&gt;</span><span style="color: #000000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">div&nbsp;class</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">series</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;name</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Series&nbsp;C</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;store</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">tableStore</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;valueFn</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Number(x)</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;&lt;</span><span style="color: #000000;">/</span><span style="color: #000000;">div&gt;</span><span style="color: #000000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">div&nbsp;class</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">action</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;type</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Tooltip</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;&lt;</span><span style="color: #000000;">/</span><span style="color: #000000;">div&gt;</span><span style="color: #000000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">div&nbsp;class</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">action</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;type</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">MoveSlice</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;shift</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">2</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;&lt;</span><span style="color: #000000;">/</span><span style="color: #000000;">div&gt;</span><span style="color: #000000;"><br /></span><span style="color: #000000;">&lt;</span><span style="color: #000000;">/</span><span style="color: #000000;">div&gt;</span></div><p>&nbsp;</p><p>15、可伸缩的pane</p>使用ExpandoPane（//测试链接TODO）即可实现。要注意的是，ExpandoPane在dojo 1.3之前的版本里有bug，现象是包含抽屉pane时在IE下最下面的抽屉会被挤掉，在Firefox里则正常。dojo 1.3解决了这个问题。<p>&nbsp;</p><p>（如无特别说明，以上均针对dojo 1.3版本。 ）</p>
<p>&nbsp;</p><img src="http://www.cnblogs.com/bjzhanghao/aggbug/1430063.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/bjzhanghao/archive/2009/04/06/1430063.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/bjzhanghao/archive/2009/04/06/1430063.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/>· <a href="http://news.cnblogs.com/n/56850/" target="_blank">“谷姐”：披着“谷歌”羊皮的悲哀？</a><span style="color:gray">(2010-02-10 15:32)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>JSF开发问题和解决</title><link>http://www.cnblogs.com/bjzhanghao/archive/2009/02/19/1394275.html</link><dc:creator>八进制</dc:creator><author>八进制</author><pubDate>Thu, 19 Feb 2009 11:31:00 GMT</pubDate><guid>http://www.cnblogs.com/bjzhanghao/archive/2009/02/19/1394275.html</guid><description><![CDATA[<p>阅读: 1546 评论: 1 作者: <a href="http://www.cnblogs.com/bjzhanghao/" target="_blank">八进制</a> 发表于 2009-02-19 19:31 <a href="http://www.cnblogs.com/bjzhanghao/archive/2009/02/19/1394275.html" target="_blank">原文链接</a></p><p>1、在&lt;f:subview&gt;里的&lt;h:commandLink&gt;的action不执行</p>
<p>很多时候&lt;f:subview&gt;是在包含页面的情况下被用到（例如包含一个导航页面），而被包含的页面里如果有非JSF标签（如&lt;a&gt;）的时候，必须额外使用&lt;f:verbatim&gt;包含它才不会报错。问题是&lt;f:verbatim&gt;包含的内容是不算在JSF的Component Tree里的，因此这里的&lt;h:commandLink&gt;的action就不会被执行了。解决的办法是不要在&lt;f:verbatim&gt;里用&lt;h:commandLink&gt;，即尽量全部使用JSF的标签比较不容易出问题。<a href="http://www.coderanch.com/t/211721/JSF/java/CommandLink-Subview">参考链接</a></p>
<p>2、还是在&lt;f:subview&gt;里，action属性的方法虽然执行了，但不能转到faces-config里定义的目标页面</p>
<p>检查faces-config.xml里&lt;from-view-id&gt;，如果页面被包含的话，则&lt;from-view-id&gt;可能应为"/*"，而不是如"/navigatorbar.jspx"这样。<br />
</p>
<p>3、结合<a href="http://www.eclipse.org/emf">EMF</a>使用时，页面抛出找不到属性异常&#8220;Error getting property 'xxx' from bean of type XXXX&#8221;</p>
<p>EMF生成的XXXImpl里的构造方法是protected修饰的，改为public即可。（注意修改@generated修饰，否则下次重新生成时会被覆盖回来） </p>
<p>另（不仅限于EMF的情况）：如果一个Bean里有两个同名但参数不同的方法，例如Customer有getRecords()和getRecords(int year)这两个方法，则在JSF页面里用#{customer.value}会抛出同样的异常，我暂时还不确定是EL的问题还是JSF实现（我用的trinidad）的问题，部分异常stack如下所示：</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">严重:&nbsp;Servlet.service()&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;servlet&nbsp;faces&nbsp;threw&nbsp;exception<br />
javax.faces.el.PropertyNotFoundException:&nbsp;Error&nbsp;getting&nbsp;property&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">xxx</span><span style="color: #000000;">'</span><span style="color: #000000;">&nbsp;from&nbsp;bean&nbsp;of&nbsp;type&nbsp;XXXX<br />
&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.sun.faces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:</span><span style="color: #000000;">107</span><span style="color: #000000;">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.sun.faces.el.impl.ArraySuffix.evaluate(ArraySuffix.java:</span><span style="color: #000000;">167</span><span style="color: #000000;">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.sun.faces.el.impl.ComplexValue.evaluate(ComplexValue.java:</span><span style="color: #000000;">151</span><span style="color: #000000;">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.sun.faces.el.impl.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:</span><span style="color: #000000;">243</span><span style="color: #000000;">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:</span><span style="color: #000000;">173</span><span style="color: #000000;">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:</span><span style="color: #000000;">154</span><span style="color: #000000;">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.myfaces.trinidad.bean.FacesBeanImpl.getProperty(FacesBeanImpl.java:</span><span style="color: #000000;">66</span><span style="color: #000000;">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.myfaces.trinidad.component.UIXComponentBase.getProperty(UIXComponentBase.java:</span><span style="color: #000000;">1100</span><span style="color: #000000;">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.myfaces.trinidad.component.UIXIterator.getValue(UIXIterator.java:</span><span style="color: #000000;">415</span><span style="color: #000000;">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.myfaces.trinidad.component.UIXCollection._flushCachedModel(UIXCollection.java:</span><span style="color: #000000;">1127</span><span style="color: #000000;">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.myfaces.trinidad.component.UIXCollection.encodeBegin(UIXCollection.java:</span><span style="color: #000000;">511</span><span style="color: #000000;">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.myfaces.trinidadinternal.uinode.UIComponentUINode._renderComponent(UIComponentUINode.java:</span><span style="color: #000000;">317</span><span style="color: #000000;">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.myfaces.trinidadinternal.uinode.UIComponentUINode.render(UIComponentUINode.java:</span><span style="color: #000000;">279</span><span style="color: #000000;">)<br />
</span></div>
<p> </p>
<p>解决的办法是把带参数的那个方法改名。 <br />
</p>
<p>4、从session里删除一个bean</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">ValueBinding&nbsp;binding&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;"> </span>FacesContext<span style="color: #000000;">.getCurrentInstance().getApplication().createValueBinding(</span><span style="color: #000000;">"</span><span style="color: #000000;">#{MyBean}</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
binding.setValue(context,&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">);</span></div>
<p><a href="http://forums.sun.com/thread.jspa?threadID=675034&amp;messag...">
参考链接</a>
</p><img src="http://www.cnblogs.com/bjzhanghao/aggbug/1394275.html?type=1" width="1" height="1" alt=""/><p>评论: 1　<a href="http://www.cnblogs.com/bjzhanghao/archive/2009/02/19/1394275.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/bjzhanghao/archive/2009/02/19/1394275.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/>· <a href="http://news.cnblogs.com/n/56850/" target="_blank">“谷姐”：披着“谷歌”羊皮的悲哀？</a><span style="color:gray">(2010-02-10 15:32)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>基于RapidMiner开发问题和解决</title><link>http://www.cnblogs.com/bjzhanghao/archive/2009/02/16/1392063.html</link><dc:creator>八进制</dc:creator><author>八进制</author><pubDate>Mon, 16 Feb 2009 14:36:00 GMT</pubDate><guid>http://www.cnblogs.com/bjzhanghao/archive/2009/02/16/1392063.html</guid><description><![CDATA[<p>阅读: 1868 评论: 0 作者: <a href="http://www.cnblogs.com/bjzhanghao/" target="_blank">八进制</a> 发表于 2009-02-16 22:36 <a href="http://www.cnblogs.com/bjzhanghao/archive/2009/02/16/1392063.html" target="_blank">原文链接</a></p><p><a href="http://www.rapidminer.com/">RapidMiner</a>（前身是YALE）是一个十分流行的开源数据挖掘软件，它不仅提供了一个GUI的数据处理和分析环境，还提供了Java API以便将它的能力嵌入其他应用程序。本文记录了基于RapidMiner开发数据分析应用程序时遇到的一些问题和解决方法。</p>
<p>BTW，选择RapidMiner而非WEKA的主要原因有两个：1、RapidMiner对Java开发更方便 2、RapidMiner同时提供free license和commertial license，而WEKA只提供GNU license（无法用来开发商用软件）</p>
<p><img src="http://rapid-i.com/images/stories/rapidi/products/RapidMiner/rapidminer_logo.gif" border="0"  alt="" />
</p>
<p>1、安装了RapidMiner 4.3，但执行RapidMiner.init()时抛出异常&#8220;java.lang.UnsupportedClassVersionError: Bad version number in .class file&#8221;</p>
<p>RapidMiner 4.3是用JDK1.6编译的（虽然用1.5也可以编译），因此在JDK1.5或以下版本环境里调用会抛出上述异常。解决办法有两个，一是安装JDK1.6，二是从CVS里下载RapidMiner的源代码自己在1.5里编译并导出jar文件。<a href="http://rapid-i.com/rapidforum/index.php?PHPSESSID=3402bda4d15e48bc2d1430f2f4ac9ef1&amp;/topic,183.0.html">参考链接</a> </p>
<p>2、在Eclipse应用里执行RapidMiner.init()时提示&#8220;java.lang.IllegalArgumentException: URI scheme is not "file"&#8221;</p>
<p>需要设置环境变量"rapidminer.home"到rapidminer安装目录，以便初始化时能找到"rapidminerrc"这个文件。即使未安装rapidminer，也要保证在这个目录下有个"etc"目录，里面有"rapidminerrc"文件。（另，还有个方法是设置"rapidminer.rcfile"环境变量指向rapidminerrc文件，未试验）<br />
</p>
<p>3、在Eclipse应用里执行RapidMiner.init()时提示&#8220;[Error] Cannot find 'operators.xml'.&#8221;</p>
<p>
经过跟踪rapidminer代码，发现需要把operators.xml文件放在classpath下的com.rapidminer.resources包里。所以结合上面一条问题，可以执行的代码如下：</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">System.setProperty(RapidMiner.PROPERTY_RAPIDMINER_HOME,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">D:/eclipse3.4m7/workspace/yale</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
RapidMiner.init();</span></div>
<p>&nbsp;</p>
<p>
</p><img src="http://www.cnblogs.com/bjzhanghao/aggbug/1392063.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/bjzhanghao/archive/2009/02/16/1392063.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/bjzhanghao/archive/2009/02/16/1392063.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/>· <a href="http://news.cnblogs.com/n/56850/" target="_blank">“谷姐”：披着“谷歌”羊皮的悲哀？</a><span style="color:gray">(2010-02-10 15:32)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>GridLayoutFactory和GridDataFactory</title><link>http://www.cnblogs.com/bjzhanghao/archive/2008/12/09/1350938.html</link><dc:creator>八进制</dc:creator><author>八进制</author><pubDate>Tue, 09 Dec 2008 03:00:00 GMT</pubDate><guid>http://www.cnblogs.com/bjzhanghao/archive/2008/12/09/1350938.html</guid><description><![CDATA[<p>阅读: 2377 评论: 2 作者: <a href="http://www.cnblogs.com/bjzhanghao/" target="_blank">八进制</a> 发表于 2008-12-09 11:00 <a href="http://www.cnblogs.com/bjzhanghao/archive/2008/12/09/1350938.html" target="_blank">原文链接</a></p><p>我写的SWT程序里用到layout的地方95%以上是GridLayout，今天才发现原来从eclipse 3.2开始就有了这两个方便使的类：GridLayoutFactory和GridDataFactory。特别是GridDataFactory，以前要用至少三行的代码：</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">GridData&nbsp;gd&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;GridData(GridData.FILL_HORIZONTAL);<br />
gd.horizontalSpan&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;">;<br />
txtName.setLayoutData(gd);</span></div>
<p>&nbsp;</p>
<p>现在用一行就可以了（稍微长点儿）：</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">GridDataFactory.fillDefaults().grab(</span><span style="color: #0000ff;">true</span><span style="color: #000000;">,&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">).span(</span><span style="color: #000000;">2</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">).applyTo(txtName);</span></div>
<p>&nbsp;</p>
<p>或者有些情况下更简单：</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">GridDataFactory.generate(txtName,&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">);</span></div>
<p>&nbsp;</p>
<p>顺便提一句：eclipse.org上关于SWT的例子在<a href="http://www.eclipse.org/swt/snippets">http://www.eclipse.org/swt/snippets</a>就有很多，而JFace的例子则可以在<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jface.snippets/Eclipse%20JFace%20Snippets/org/eclipse/jface/snippets/">这个地址</a>找到（或者从cvs里下载）。</p><img src="http://www.cnblogs.com/bjzhanghao/aggbug/1350938.html?type=1" width="1" height="1" alt=""/><p>评论: 2　<a href="http://www.cnblogs.com/bjzhanghao/archive/2008/12/09/1350938.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/bjzhanghao/archive/2008/12/09/1350938.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/>· <a href="http://news.cnblogs.com/n/56850/" target="_blank">“谷姐”：披着“谷歌”羊皮的悲哀？</a><span style="color:gray">(2010-02-10 15:32)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>Hadoop配置和使用问题记录</title><link>http://www.cnblogs.com/bjzhanghao/archive/2008/11/02/1325113.html</link><dc:creator>八进制</dc:creator><author>八进制</author><pubDate>Sun, 02 Nov 2008 15:26:00 GMT</pubDate><guid>http://www.cnblogs.com/bjzhanghao/archive/2008/11/02/1325113.html</guid><description><![CDATA[<p>阅读: 3249 评论: 4 作者: <a href="http://www.cnblogs.com/bjzhanghao/" target="_blank">八进制</a> 发表于 2008-11-02 23:26 <a href="http://www.cnblogs.com/bjzhanghao/archive/2008/11/02/1325113.html" target="_blank">原文链接</a></p><p>关于hadoop如何配置的教程网上已经有不少了，配合hadoop主页上的说明，基本可以顺利在多台机器上配置好hadoop集群。这里记录的是我在实际配置和使用hadoop时遇到的问题，其中一些属于hadoop周边，如ssh配置时容易遇到的问题和解决方法，供大家参考。我目前是在windows xp里通过cygwin安装的hadoop，版本是0.17.2.1。</p>
<p>1. 安装cygwin。在www.cygwin.com下载网络安装包，在选择组件的时候建议直接把openssh组件选中，有些版本的cygwin似乎不会自动安装diffutils组件，所以需要手工选中一下，否则配置ssh时会提示缺少该组件包。</p>
<p>2. cygwin控制台里的缺省提示符不太习惯，用export PS1="\u@\w$"设一下好多了。</p>
<p>3. 配置sshd比较简单，可以参考<a href="http://cha.homeip.net/blog/archives/2006/04/_winxp_cygwin_s.html">这个链接</a>。在ssh-host-config时问到&#8220;Should privilege separation be used? (yes/no)&#8221;时回答no即可，如果由于安全因素要回答yes时，在启动sshd时有可能遇到&#8220;Privilege separation user sshd does not exist&#8221;的错误信息，解决方法可参考<a href="http://www.unixguide.net/comments/sun/ssh_installation.shtml/37.shtml">这个链接</a>。</p>
<p>4. 在配置ssh使用证书方式自动验证时花了一些时间，后来觉得可能是由于机器上有两个版本的cygwin的缘故，因为在另一台机器上安装就没有出现问题。在使用ssh-keygen -t rsa命令后提示输入密码时，直接按两次回车即可。公钥的复制等过程这里不再赘述。</p>
<p>5. 试图在Eclipse里运行hadoop的WordCount程序时提示异常：&#8220;javax.security.auth.login.LoginException: Login failed: CreateProcess: whoami error=2&#8221;，解决方法是把c:\cygwin\bin加入系统的path环境变量，然后重启Eclipse以便改动生效。</p>
<p>6. 在Eclipse里运行WordCount时遇到java heap size不够的异常，在运行配置里加入-Xms200M就可以解决。（hadoop的helloworld要求的内存比较多？）<br />
</p>
<p>7. 当要运行的运算依赖第三方类库时，<a href="https://issues.apache.org/jira/browse/HADOOP-1622">这个链接</a>有所讨论，但暂时没看到除了在命令行里使用hadoop jar命令以外的解决方法，比如在0.17.2和0.18.1版本里我都没有看到JobConf类里有类似addJar()这样的方法，在JobConf#setJar()里使用逗号分隔多个jar文件的方式则会报找不到文件的错误。解决方式可能有两个：a)把所需要的第三方jar文件复制到每个节点机器的jre里（暂时没有试验） b)把第三方jar包和自己的类打到一个包里。 </p>
<p>update: 在网上找到另一种方式，<a href="http://www.infoq.com/cn/articles/hadoop-process-develop#view_31599">通过DistributedCache实现</a>，原文里可能有笔误，我试验正确的方法是
调用DistributedCache.addArchiveToClassPath()方法，注意其第一个参数必须是相对路径，如&#8220;/test/lib
/my.jar&#8221;，而不能是像&#8220;hdfs://192.168.0.5:47110/test/lib/my.jar&#8221;这样的绝对路径。关于
DistributedCache的说明在<a href="http://hadoop.apache.org/core/docs/current/mapred_tutorial.html"  &="" gt;这个链接=""></a>里有一些。</p>
<p>8. 调试mapreduce程序的方式，在<a href="http://wiki.apache.org/hadoop/HowToDebugMapReducePrograms">这个链接</a>里讲得比较清楚了，因为很有用所以特意重复一次。如果文件存放在HDFS里，那么只需要调用JobConf#.set("mapred.job.tracker", "local");即可；如果文件也是存在本地的，还需要调用JobConf#set("fs.default.name", "local");方法。我通常让文件存在HDFS里调试，因为要使用本地文件要么参数需要改变，要么代码需要改变，维护两个环境很麻烦。在程序里用System.out.println()输出的内容可以在datanode的hadoop安装路径的logs/userlogs目录里找到。</p>
<p> </p>
<p>9. 当使用自定义InputFormat时，特别是使用EMF模型元素作为key的时候，需要注意并不是在代码的任何地方都能得到xmi:id的值的。具体来说，在WritableComparable#write()方法里能得到（前提是该对象本来就有resource，即eobj.eResource()!=null），而在WritableComparable#readFields()里是不能得到的，在RecordWriter#write()方法里同样不能得到，因为后两者的EMF元素对象都是反序列化得到的，已经不是内存里原来的那个实例了。 </p>
<p>10. map进行到100%后，reduce过程进行到某个数值（如16%）后就不再继续，直到被hadoop强制关闭。在tasknode的log里记录如下：</p>
<p> </p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">2008</span><span style="color: #000000;">-</span><span style="color: #000000;">11</span><span style="color: #000000;">-</span><span style="color: #000000;">20</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">11</span><span style="color: #000000;">:</span><span style="color: #000000;">17</span><span style="color: #000000;">:</span><span style="color: #000000;">06</span><span style="color: #000000;">,</span><span style="color: #000000;">455</span><span style="color: #000000;">&nbsp;INFO&nbsp;org.apache.hadoop.mapred.TaskTracker:&nbsp;task_200811191041_0015_r_000000_0&nbsp;</span><span style="color: #000000;">0.16666667</span><span style="color: #000000;">%</span><span style="color: #000000;">&nbsp;reduce&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;copy&nbsp;(</span><span style="color: #000000;">6</span><span style="color: #000000;">&nbsp;of&nbsp;</span><span style="color: #000000;">12</span><span style="color: #000000;">&nbsp;at&nbsp;</span><span style="color: #000000;">0.00</span><span style="color: #000000;">&nbsp;MB</span><span style="color: #000000;">/</span><span style="color: #000000;">s)&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;<br />
</span><span style="color: #000000;">2008</span><span style="color: #000000;">-</span><span style="color: #000000;">11</span><span style="color: #000000;">-</span><span style="color: #000000;">20</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">11</span><span style="color: #000000;">:</span><span style="color: #000000;">17</span><span style="color: #000000;">:</span><span style="color: #000000;">09</span><span style="color: #000000;">,</span><span style="color: #000000;">455</span><span style="color: #000000;">&nbsp;INFO&nbsp;org.apache.hadoop.mapred.TaskTracker:&nbsp;task_200811191041_0015_r_000000_0&nbsp;</span><span style="color: #000000;">0.16666667</span><span style="color: #000000;">%</span><span style="color: #000000;">&nbsp;reduce&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;copy&nbsp;(</span><span style="color: #000000;">6</span><span style="color: #000000;">&nbsp;of&nbsp;</span><span style="color: #000000;">12</span><span style="color: #000000;">&nbsp;at&nbsp;</span><span style="color: #000000;">0.00</span><span style="color: #000000;">&nbsp;MB</span><span style="color: #000000;">/</span><span style="color: #000000;">s)&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;<br />
</span><span style="color: #000000;">2008</span><span style="color: #000000;">-</span><span style="color: #000000;">11</span><span style="color: #000000;">-</span><span style="color: #000000;">20</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">11</span><span style="color: #000000;">:</span><span style="color: #000000;">17</span><span style="color: #000000;">:</span><span style="color: #000000;">15</span><span style="color: #000000;">,</span><span style="color: #000000;">455</span><span style="color: #000000;">&nbsp;INFO&nbsp;org.apache.hadoop.mapred.TaskTracker:&nbsp;task_200811191041_0015_r_000000_0&nbsp;</span><span style="color: #000000;">0.16666667</span><span style="color: #000000;">%</span><span style="color: #000000;">&nbsp;reduce&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;copy&nbsp;(</span><span style="color: #000000;">6</span><span style="color: #000000;">&nbsp;of&nbsp;</span><span style="color: #000000;">12</span><span style="color: #000000;">&nbsp;at&nbsp;</span><span style="color: #000000;">0.00</span><span style="color: #000000;">&nbsp;MB</span><span style="color: #000000;">/</span><span style="color: #000000;">s)&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;<br />
</span><span style="color: #000000;">2008</span><span style="color: #000000;">-</span><span style="color: #000000;">11</span><span style="color: #000000;">-</span><span style="color: #000000;">20</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">11</span><span style="color: #000000;">:</span><span style="color: #000000;">17</span><span style="color: #000000;">:</span><span style="color: #000000;">18</span><span style="color: #000000;">,</span><span style="color: #000000;">705</span><span style="color: #000000;">&nbsp;FATAL&nbsp;org.apache.hadoop.mapred.TaskTracker:&nbsp;Task:&nbsp;task_200811191041_0015_r_000000_0&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">&nbsp;Killed&nbsp;due&nbsp;to&nbsp;Shuffle&nbsp;Failure:&nbsp;Exceeded&nbsp;MAX_FAILED_UNIQUE_FETCHES;&nbsp;bailing</span><span style="color: #000000;">-</span><span style="color: #000000;">out.<br />
</span><span style="color: #000000;">2008</span><span style="color: #000000;">-</span><span style="color: #000000;">11</span><span style="color: #000000;">-</span><span style="color: #000000;">20</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">11</span><span style="color: #000000;">:</span><span style="color: #000000;">17</span><span style="color: #000000;">:</span><span style="color: #000000;">18</span><span style="color: #000000;">,</span><span style="color: #000000;">705</span><span style="color: #000000;">&nbsp;INFO&nbsp;org.apache.hadoop.mapred.TaskTracker:&nbsp;About&nbsp;to&nbsp;purge&nbsp;task:&nbsp;task_200811191041_0015_r_000000_0<br />
</span><span style="color: #000000;">2008</span><span style="color: #000000;">-</span><span style="color: #000000;">11</span><span style="color: #000000;">-</span><span style="color: #000000;">20</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">11</span><span style="color: #000000;">:</span><span style="color: #000000;">17</span><span style="color: #000000;">:</span><span style="color: #000000;">18</span><span style="color: #000000;">,</span><span style="color: #000000;">705</span><span style="color: #000000;">&nbsp;INFO&nbsp;org.apache.hadoop.mapred.TaskRunner:&nbsp;task_200811191041_0015_r_000000_0&nbsp;done;&nbsp;removing&nbsp;files.<br />
</span><span style="color: #000000;">2008</span><span style="color: #000000;">-</span><span style="color: #000000;">11</span><span style="color: #000000;">-</span><span style="color: #000000;">20</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">11</span><span style="color: #000000;">:</span><span style="color: #000000;">17</span><span style="color: #000000;">:</span><span style="color: #000000;">18</span><span style="color: #000000;">,</span><span style="color: #000000;">705</span><span style="color: #000000;">&nbsp;WARN&nbsp;org.apache.hadoop.mapred.TaskTracker:&nbsp;Unknown&nbsp;child&nbsp;task&nbsp;finshed:&nbsp;task_200811191041_0015_r_000000_0.&nbsp;Ignored.<br />
</span><span style="color: #000000;">2008</span><span style="color: #000000;">-</span><span style="color: #000000;">11</span><span style="color: #000000;">-</span><span style="color: #000000;">20</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">11</span><span style="color: #000000;">:</span><span style="color: #000000;">17</span><span style="color: #000000;">:</span><span style="color: #000000;">40</span><span style="color: #000000;">,</span><span style="color: #000000;">845</span><span style="color: #000000;">&nbsp;INFO&nbsp;org.apache.hadoop.mapred.TaskTracker:&nbsp;Received&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">KillJobAction</span><span style="color: #000000;">'</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;job:&nbsp;job_200811191041_0015<br />
</span><span style="color: #000000;">2008</span><span style="color: #000000;">-</span><span style="color: #000000;">11</span><span style="color: #000000;">-</span><span style="color: #000000;">20</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">11</span><span style="color: #000000;">:</span><span style="color: #000000;">17</span><span style="color: #000000;">:</span><span style="color: #000000;">40</span><span style="color: #000000;">,</span><span style="color: #000000;">845</span><span style="color: #000000;">&nbsp;INFO&nbsp;org.apache.hadoop.mapred.TaskRunner:&nbsp;task_200811191041_0015_m_000011_0&nbsp;done;&nbsp;removing&nbsp;files.<br />
</span><span style="color: #000000;">2008</span><span style="color: #000000;">-</span><span style="color: #000000;">11</span><span style="color: #000000;">-</span><span style="color: #000000;">20</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">11</span><span style="color: #000000;">:</span><span style="color: #000000;">17</span><span style="color: #000000;">:</span><span style="color: #000000;">40</span><span style="color: #000000;">,</span><span style="color: #000000;">845</span><span style="color: #000000;">&nbsp;INFO&nbsp;org.apache.hadoop.mapred.TaskRunner:&nbsp;task_200811191041_0015_m_000005_0&nbsp;done;&nbsp;removing&nbsp;files.</span> <br />
</div>
<p>&nbsp;</p>
<p>在我的java application的控制台里的输入如下： <br />
</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">08</span><span style="color: #000000;">/</span><span style="color: #000000;">11</span><span style="color: #000000;">/</span><span style="color: #000000;">20</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">11</span><span style="color: #000000;">:</span><span style="color: #000000;">06</span><span style="color: #000000;">:</span><span style="color: #000000;">39</span><span style="color: #000000;">&nbsp;INFO&nbsp;mapred.JobClient:&nbsp;&nbsp;map&nbsp;</span><span style="color: #000000;">96</span><span style="color: #000000;">%</span><span style="color: #000000;">&nbsp;reduce&nbsp;</span><span style="color: #000000;">11</span><span style="color: #000000;">%</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">08</span><span style="color: #000000;">/</span><span style="color: #000000;">11</span><span style="color: #000000;">/</span><span style="color: #000000;">20</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">11</span><span style="color: #000000;">:</span><span style="color: #000000;">06</span><span style="color: #000000;">:</span><span style="color: #000000;">40</span><span style="color: #000000;">&nbsp;INFO&nbsp;mapred.JobClient:&nbsp;&nbsp;map&nbsp;</span><span style="color: #000000;">100</span><span style="color: #000000;">%</span><span style="color: #000000;">&nbsp;reduce&nbsp;</span><span style="color: #000000;">11</span><span style="color: #000000;">%</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">08</span><span style="color: #000000;">/</span><span style="color: #000000;">11</span><span style="color: #000000;">/</span><span style="color: #000000;">20</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">11</span><span style="color: #000000;">:</span><span style="color: #000000;">06</span><span style="color: #000000;">:</span><span style="color: #000000;">43</span><span style="color: #000000;">&nbsp;INFO&nbsp;mapred.JobClient:&nbsp;&nbsp;map&nbsp;</span><span style="color: #000000;">100</span><span style="color: #000000;">%</span><span style="color: #000000;">&nbsp;reduce&nbsp;</span><span style="color: #000000;">13</span><span style="color: #000000;">%</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">08</span><span style="color: #000000;">/</span><span style="color: #000000;">11</span><span style="color: #000000;">/</span><span style="color: #000000;">20</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">11</span><span style="color: #000000;">:</span><span style="color: #000000;">06</span><span style="color: #000000;">:</span><span style="color: #000000;">47</span><span style="color: #000000;">&nbsp;INFO&nbsp;mapred.JobClient:&nbsp;&nbsp;map&nbsp;</span><span style="color: #000000;">100</span><span style="color: #000000;">%</span><span style="color: #000000;">&nbsp;reduce&nbsp;</span><span style="color: #000000;">16</span><span style="color: #000000;">%</span><span style="color: #000000;">&nbsp;(在这里停很久)<br />
</span><span style="color: #000000;">08</span><span style="color: #000000;">/</span><span style="color: #000000;">11</span><span style="color: #000000;">/</span><span style="color: #000000;">20</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">11</span><span style="color: #000000;">:</span><span style="color: #000000;">17</span><span style="color: #000000;">:</span><span style="color: #000000;">12</span><span style="color: #000000;">&nbsp;INFO&nbsp;mapred.JobClient:&nbsp;&nbsp;map&nbsp;</span><span style="color: #000000;">100</span><span style="color: #000000;">%</span><span style="color: #000000;">&nbsp;reduce&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">%</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">08</span><span style="color: #000000;">/</span><span style="color: #000000;">11</span><span style="color: #000000;">/</span><span style="color: #000000;">20</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">11</span><span style="color: #000000;">:</span><span style="color: #000000;">17</span><span style="color: #000000;">:</span><span style="color: #000000;">12</span><span style="color: #000000;">&nbsp;INFO&nbsp;mapred.JobClient:&nbsp;Task&nbsp;Id&nbsp;:&nbsp;task_200811191041_0015_r_000000_0,&nbsp;Status&nbsp;:&nbsp;FAILED<br />
Shuffle&nbsp;Error:&nbsp;Exceeded&nbsp;MAX_FAILED_UNIQUE_FETCHES;&nbsp;bailing</span><span style="color: #000000;">-</span><span style="color: #000000;">out.<br />
</span><span style="color: #000000;">08</span><span style="color: #000000;">/</span><span style="color: #000000;">11</span><span style="color: #000000;">/</span><span style="color: #000000;">20</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">11</span><span style="color: #000000;">:</span><span style="color: #000000;">17</span><span style="color: #000000;">:</span><span style="color: #000000;">14</span><span style="color: #000000;">&nbsp;WARN&nbsp;mapred.JobClient:&nbsp;Error&nbsp;reading&nbsp;task&nbsp;outputnode2<br />
</span><span style="color: #000000;">08</span><span style="color: #000000;">/</span><span style="color: #000000;">11</span><span style="color: #000000;">/</span><span style="color: #000000;">20</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">11</span><span style="color: #000000;">:</span><span style="color: #000000;">17</span><span style="color: #000000;">:</span><span style="color: #000000;">14</span><span style="color: #000000;">&nbsp;WARN&nbsp;mapred.JobClient:&nbsp;Error&nbsp;reading&nbsp;task&nbsp;outputnode2<br />
</span><span style="color: #000000;">08</span><span style="color: #000000;">/</span><span style="color: #000000;">11</span><span style="color: #000000;">/</span><span style="color: #000000;">20</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">11</span><span style="color: #000000;">:</span><span style="color: #000000;">17</span><span style="color: #000000;">:</span><span style="color: #000000;">25</span><span style="color: #000000;">&nbsp;INFO&nbsp;mapred.JobClient:&nbsp;&nbsp;map&nbsp;</span><span style="color: #000000;">100</span><span style="color: #000000;">%</span><span style="color: #000000;">&nbsp;reduce&nbsp;</span><span style="color: #000000;">16</span><span style="color: #000000;">%</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">08</span><span style="color: #000000;">/</span><span style="color: #000000;">11</span><span style="color: #000000;">/</span><span style="color: #000000;">20</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">11</span><span style="color: #000000;">:</span><span style="color: #000000;">17</span><span style="color: #000000;">:</span><span style="color: #000000;">30</span><span style="color: #000000;">&nbsp;INFO&nbsp;mapred.JobClient:&nbsp;&nbsp;map&nbsp;</span><span style="color: #000000;">100</span><span style="color: #000000;">%</span><span style="color: #000000;">&nbsp;reduce&nbsp;</span><span style="color: #000000;">25</span><span style="color: #000000;">%</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">08</span><span style="color: #000000;">/</span><span style="color: #000000;">11</span><span style="color: #000000;">/</span><span style="color: #000000;">20</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">11</span><span style="color: #000000;">:</span><span style="color: #000000;">17</span><span style="color: #000000;">:</span><span style="color: #000000;">31</span><span style="color: #000000;">&nbsp;INFO&nbsp;mapred.JobClient:&nbsp;&nbsp;map&nbsp;</span><span style="color: #000000;">100</span><span style="color: #000000;">%</span><span style="color: #000000;">&nbsp;reduce&nbsp;</span><span style="color: #000000;">100</span><span style="color: #000000;">%</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">08</span><span style="color: #000000;">/</span><span style="color: #000000;">11</span><span style="color: #000000;">/</span><span style="color: #000000;">20</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">11</span><span style="color: #000000;">:</span><span style="color: #000000;">17</span><span style="color: #000000;">:</span><span style="color: #000000;">32</span><span style="color: #000000;">&nbsp;INFO&nbsp;mapred.JobClient:&nbsp;Job&nbsp;complete:&nbsp;job_200811191041_0015<br />
</span></div>
<p>&nbsp;</p>
<p>我想找到这个问题的所在了。是secondary name node所在的机器没有配置dfs.http.address这个参数，该参数在hadoop-default.xml里的缺省值是0.0.0.0:50070，应改为name node所在机器的ip地址。<a href="http://mail-archives.apache.org/mod_mbox/hadoop-core-user/200807.mbox/%3C486C9E08.7000409@adacor.com%3E">参考链接</a><br />
</p>
<p>11. 一些参考链接。</p>
<p><a href="http://hayesdavis.net/2008/06/14/running-hadoop-on-windows/">http://hayesdavis.net/2008/06/14/running-hadoop-on-windows/</a><br />
<a href="http://hi.baidu.com/shirdrn/blog/category/Hadoop">http://hi.baidu.com/shirdrn/blog/category/Hadoop</a><br />
<a href="http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop1/index.html">http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop1/index.html</a><br />
<a href="http://blog.ring.idv.tw/comment.ser?i=231">http://blog.ring.idv.tw/comment.ser?i=231</a>
</p><img src="http://www.cnblogs.com/bjzhanghao/aggbug/1325113.html?type=1" width="1" height="1" alt=""/><p>评论: 4　<a href="http://www.cnblogs.com/bjzhanghao/archive/2008/11/02/1325113.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/bjzhanghao/archive/2008/11/02/1325113.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/>· <a href="http://news.cnblogs.com/n/56850/" target="_blank">“谷姐”：披着“谷歌”羊皮的悲哀？</a><span style="color:gray">(2010-02-10 15:32)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>从google获得大尺寸地图图片文件</title><link>http://www.cnblogs.com/bjzhanghao/archive/2008/10/05/1304314.html</link><dc:creator>八进制</dc:creator><author>八进制</author><pubDate>Sun, 05 Oct 2008 13:10:00 GMT</pubDate><guid>http://www.cnblogs.com/bjzhanghao/archive/2008/10/05/1304314.html</guid><description><![CDATA[<p>阅读: 3244 评论: 2 作者: <a href="http://www.cnblogs.com/bjzhanghao/" target="_blank">八进制</a> 发表于 2008-10-05 21:10 <a href="http://www.cnblogs.com/bjzhanghao/archive/2008/10/05/1304314.html" target="_blank">原文链接</a></p><p>现在有很多工具可以从google地图获得大尺寸的地图图片文件，用于离线地图软件。<a href="http://iphonetrick.net/iphone/iphone_tricks/capture_google_maps">这个地址</a>介绍的方法我认为更加简单，而且同时适用街道地图和卫星地图，摘要如下：</p>
<p>1. 给你的firefox安装screengrab这个插件，这里是<a href="https://addons.mozilla.org/en-US/firefox/addon/1146">安装链接</a>；</p>
<p>2. 打开<a href="http://ditu.google.cn/">google地图网站</a>，把地图定位到想要的位置（以中心点为准）；<br />
</p>
<p>3. 点击地图右上方的&#8220;链接&#8221;链接，把弹出窗口里&#8220;粘贴 HTML 以便嵌入网站&#8221;里的内容复制下来并存成一个.html文件，如map.html，文件内容大概如下：</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">iframe&nbsp;</span><span style="color: #ff0000;">width</span><span style="color: #0000ff;">="425"</span><span style="color: #ff0000;">&nbsp;height</span><span style="color: #0000ff;">="350"</span><span style="color: #ff0000;">&nbsp;frameborder</span><span style="color: #0000ff;">="0"</span><span style="color: #ff0000;">&nbsp;scrolling</span><span style="color: #0000ff;">="no"</span><span style="color: #ff0000;">&nbsp;marginheight</span><span style="color: #0000ff;">="0"</span><span style="color: #ff0000;">&nbsp;marginwidth</span><span style="color: #0000ff;">="0"</span><span style="color: #ff0000;">&nbsp;src</span><span style="color: #0000ff;">="http://ditu.google.cn/maps?f=q&amp;amp;hl=zh-CN&amp;amp;geocode=&amp;amp;q=%E5%8C%97%E4%BA%AC&amp;amp;ie=UTF8&amp;amp;z=10&amp;amp;ll=40.037078,116.464691&amp;amp;output=embed&amp;amp;s=AARTsJrxRs93mjURz58t1CN5oqwlje5dZQ"</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">iframe</span><span style="color: #0000ff;">&gt;&lt;</span><span style="color: #800000;">br&nbsp;</span><span style="color: #0000ff;">/&gt;&lt;</span><span style="color: #800000;">small</span><span style="color: #0000ff;">&gt;&lt;</span><span style="color: #800000;">a&nbsp;</span><span style="color: #ff0000;">href</span><span style="color: #0000ff;">="http://ditu.google.cn/maps?f=q&amp;amp;hl=zh-CN&amp;amp;geocode=&amp;amp;q=%E5%8C%97%E4%BA%AC&amp;amp;ie=UTF8&amp;amp;z=10&amp;amp;ll=40.037078,116.464691&amp;amp;source=embed"</span><span style="color: #ff0000;">&nbsp;style</span><span style="color: #0000ff;">="color:#0000FF;text-align:left"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">查看大图</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">a</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">small</span><span style="color: #0000ff;">&gt;</span></div>
<p>&nbsp;</p>
<p>4. 修改map.html文件的内容，把width和height改为所需要的大小，例如width="4000" height="4000"（注意，修改以后得到的地图的中心点座标是保持不变的）；如果需要，还可以修改z值（缩放值），最大可以到17；</p>
<p>5. 在浏览器里打开map.html文件，即可得到一个显示大地图的网页；</p>
<p>6. 点击firefox状态栏里screengrab的图标，选择&#8220;Save-&gt;Complete Page/Frame&#8221;命令将整个地图保存为一个4000x4000的图片文件；街道地图推荐使用png格式，卫星地图推荐jpg格式，格式切换在screengrab的选项里改。（注意，0.95版的screengrab好像只能保存不超过9000x8000的图片，以后应该会修正）</p>
<p align="center"><img alt="" src="http://www.cnblogs.com/images/cnblogs_com/bjzhanghao/capture-google-map.gif" width="700" height="458" /><br />
</p>
<p align="center">图1 将浏览器里的大地图通过screengrab保存为图片文件 <br />
</p><img src="http://www.cnblogs.com/bjzhanghao/aggbug/1304314.html?type=1" width="1" height="1" alt=""/><p>评论: 2　<a href="http://www.cnblogs.com/bjzhanghao/archive/2008/10/05/1304314.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/bjzhanghao/archive/2008/10/05/1304314.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/>· <a href="http://news.cnblogs.com/n/56850/" target="_blank">“谷姐”：披着“谷歌”羊皮的悲哀？</a><span style="color:gray">(2010-02-10 15:32)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>DB2若干问题解决记录</title><link>http://www.cnblogs.com/bjzhanghao/archive/2008/08/19/1271120.html</link><dc:creator>八进制</dc:creator><author>八进制</author><pubDate>Tue, 19 Aug 2008 06:08:00 GMT</pubDate><guid>http://www.cnblogs.com/bjzhanghao/archive/2008/08/19/1271120.html</guid><description><![CDATA[<p>阅读: 2096 评论: 1 作者: <a href="http://www.cnblogs.com/bjzhanghao/" target="_blank">八进制</a> 发表于 2008-08-19 14:08 <a href="http://www.cnblogs.com/bjzhanghao/archive/2008/08/19/1271120.html" target="_blank">原文链接</a></p><p>1. 用SQL实现交叉表格。</p>
<p>SQL Server里提供了Pivot关键字可以帮助实现交叉表格，但DB2里似乎没有等价的东西。实现的方法稍微复杂一点，以下是一个例子。</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">SELECT</span><span style="color: #000000;">&nbsp;location,&nbsp;<br />
</span><span style="color: #ff00ff;">MAX</span><span style="color: #000000;">(</span><span style="color: #ff00ff;">CASE</span><span style="color: #000000;"> </span><span style="color: #0000ff;">WHEN</span><span style="color: #000000;">&nbsp;metric</span><span style="color: #808080;">=</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">PH</span><span style="color: #ff0000;">'</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">THEN</span><span style="color: #000000;">&nbsp;value&nbsp;</span><span style="color: #0000ff;">END</span><span style="color: #000000;">)&nbsp;</span><span style="color: #0000ff;">as</span><span style="color: #000000;">&nbsp;PH,<br />
</span><span style="color: #ff00ff;">MAX</span><span style="color: #000000;">(</span><span style="color: #ff00ff;">CASE</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">WHEN</span><span style="color: #000000;">&nbsp;metric</span><span style="color: #808080;">=</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">Hg</span><span style="color: #ff0000;">'</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">THEN</span><span style="color: #000000;">&nbsp;value&nbsp;</span><span style="color: #0000ff;">END</span><span style="color: #000000;">)&nbsp;</span><span style="color: #0000ff;">as</span><span style="color: #000000;"> </span><span>Hg</span><span style="color: #000000;">,<br />
</span><span style="color: #ff00ff;">MAX</span><span style="color: #000000;">(</span><span style="color: #ff00ff;">CASE</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">WHEN</span><span style="color: #000000;">&nbsp;metric</span><span style="color: #808080;">=</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">Fe</span><span style="color: #ff0000;">'</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">THEN</span><span style="color: #000000;">&nbsp;value&nbsp;</span><span style="color: #0000ff;">END</span><span style="color: #000000;">)&nbsp;</span><span style="color: #0000ff;">as</span><span style="color: #000000;">&nbsp;Fe,<br />
</span><span style="color: #ff00ff;">MAX</span><span style="color: #000000;">(</span><span style="color: #ff00ff;">CASE</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">WHEN</span><span style="color: #000000;">&nbsp;metric</span><span style="color: #808080;">=</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">Mn</span><span style="color: #ff0000;">'</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">THEN</span><span style="color: #000000;">&nbsp;value&nbsp;</span><span style="color: #0000ff;">END</span><span style="color: #000000;">)&nbsp;</span><span style="color: #0000ff;">as</span><span style="color: #000000;">&nbsp;Mn<br />
</span><span style="color: #0000ff;">FROM</span><span style="color: #000000;">&nbsp;data_view<br />
</span><span style="color: #0000ff;">GROUP</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">BY</span><span style="color: #000000;">&nbsp;location<br />
</span></div>
<p>&nbsp;其中data_view表/视图有location、metric和value这三个字段，数据是下面这个样子：</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">location1&nbsp;&nbsp;&nbsp;&nbsp;PH&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">1.142575278063135</span><span style="color: #000000;"><br />
location1&nbsp;&nbsp;&nbsp; Hg &nbsp;&nbsp; </span><span style="color: #000000;">0.0018310994140037379</span><span style="color: #000000;"><br />
location1&nbsp;&nbsp;&nbsp;&nbsp;Fe&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">0.2974983113601452</span><span style="color: #000000;"><br />
location1&nbsp;&nbsp;&nbsp;&nbsp;Mn&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">0.09548843270448454</span><span style="color: #000000;"><br />
location2&nbsp;&nbsp;&nbsp;&nbsp;PH&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">6.096025515217242</span><span style="color: #000000;"><br />
location2&nbsp;&nbsp;&nbsp; Hg &nbsp;&nbsp; </span><span style="color: #000000;">0.005575948698159294</span><span style="color: #000000;"><br />
location2&nbsp;&nbsp;&nbsp;&nbsp;Fe&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">0.32657056877142043</span><span style="color: #000000;"><br />
location2&nbsp;&nbsp;&nbsp;&nbsp;Mn&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">0.009418315198912612</span></div>
<p>得到的交叉表：</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">LOCATION&nbsp;&nbsp; PH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hg &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Fe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Mn<br />
location1&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">1.142575278063135</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">0.0018310994140037379</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">0.2974983113601452</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">0.09548843270448454</span><span style="color: #000000;"><br />
location2&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">6.096025515217242</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">0.005575948698159294</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">0.32657056877142043</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">0.009418315198912612</span></div>
<p>参考链接：</p>
<a href="http://it.toolbox.com/blogs/db2luw/pivot-query-12757">Pivot Query</a><br />
<a href="http://www.tek-tips.com/viewthread.cfm?qid=1205022">另一个方法</a>（经实验不好用）<br />
<a href="http://www.tek-tips.com/viewthread.cfm?qid=1203069&amp;page=1">又一个方法</a>（感觉比较复杂，没试）
<br />
<p>2. "Error 500: DB2 SQL error: SQLCODE: -954, SQLSTATE: 57011, SQLERRMC: null"</p>
<p>APP Heap区不足，用"DB2 UPDATE DB CFG FOR DBNAME USING APPLHEAPSZ 1024"可以解决。注意要重启DB2以便让更改生效。</p>
<p>3. 恢复（Restore）数据库 <br />
</p>
<p>在控制中心里，选择数据库备份路径时要选到xxx.0的上一层，时间戳要与备份时一致（可通过查看备份路径里的文件夹和文件名得到，如20081007165742）。恢复数据库的命令行格式如下：<br />
</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">db2&nbsp;restore&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">dbname</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;incremental&nbsp;from&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">imagepath</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;taken&nbsp;at&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">timestamp</span><span style="color: #000000;">&gt;</span></div>
<p>4、恢复数据库时提示&#8220;SQL2570N&#8221;</p>
<p>例如：SQL2570N  由于操作系统不兼容或者指定的 RESTORE 命令不正确，所以在目标操作系统 "NT-32" 上从源操作系统 
"AIX-32" 上创建的备份进行复原的尝试失败。原因码："1"。</p>
<p>按照错误码（1）对应的用户响应，应该使用db2move实用程序：&#8220;要使用这个特定的备份映像，应在与创建该备份
时所在的操作系统&#8220;复原兼容&#8221;的系统上进行复原
。要将数据库从一种操作系统类型移至另一操作系
统类型，请使用 db2move                   
实用程序。要了解有关相互&#8220;复原兼容&#8221;的平台以
及 db2move 实用程序的详细信息，请使用诸如&#8220;跨平
台备份和复原&#8221;或&#8220;使用不同操作系统&#8221;之类的短
语来在 DB2 信息中心（                                     
http://publib.boulder.ibm.com/infocenter/db2luw/v9）中执行搜索&#8221;</p><img src="http://www.cnblogs.com/bjzhanghao/aggbug/1271120.html?type=1" width="1" height="1" alt=""/><p>评论: 1　<a href="http://www.cnblogs.com/bjzhanghao/archive/2008/08/19/1271120.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/bjzhanghao/archive/2008/08/19/1271120.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/>· <a href="http://news.cnblogs.com/n/56850/" target="_blank">“谷姐”：披着“谷歌”羊皮的悲哀？</a><span style="color:gray">(2010-02-10 15:32)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>启用EMF的自动生成UUID功能</title><link>http://www.cnblogs.com/bjzhanghao/archive/2008/07/24/1250873.html</link><dc:creator>八进制</dc:creator><author>八进制</author><pubDate>Thu, 24 Jul 2008 13:32:00 GMT</pubDate><guid>http://www.cnblogs.com/bjzhanghao/archive/2008/07/24/1250873.html</guid><description><![CDATA[<p>阅读: 3514 评论: 2 作者: <a href="http://www.cnblogs.com/bjzhanghao/" target="_blank">八进制</a> 发表于 2008-07-24 21:32 <a href="http://www.cnblogs.com/bjzhanghao/archive/2008/07/24/1250873.html" target="_blank">原文链接</a></p><p>缺省条件下，EMF不会为每个对象维护一个唯一的id，这在一些情况下不太方便，例如要在web环境下编辑一个EMF模型实例，通常需要在URL里传递对象的id以便确定目标。
</p>
<p>有两种方式解决这类问题。第一种是在模型里给每个对象增加一个id属性，并维护使其保持唯一，例如在XXXFactory的createXXX()方法里为这个属性赋值。另一种方式是借助EMF的功能。其实EMF的XMIResource维护了一个id与对象的映射表，并且会为每个新创建的对象自动赋值，只要稍微设置一下就可以启用这个功能，具体的方法如下。</p>
<p>1. 在xxx.genmodel里选中package节点，在属性视图里把Resource Type属性的值设置为XMI。</p>
<p align="center"><img alt="" src="http://www.cnblogs.com/images/cnblogs_com/bjzhanghao/emf/emf-resource-type.gif" width="666" height="190" />&nbsp;</p>
<p>2. 重新生成代码，EMF生成的代码里会比原来多出XXXResourceImpl.java文件。</p>
<p>3. 在XXXResourceImpl.java里，覆盖useUUIDs()方法，让其返回true（缺省返回的是false）。</p>
<p>4. 重新生成代码。（删除以前的Manifest.MF和plugin.xml文件以便这两个文件能得到更新） <br />
</p>
<p>这样，如果用文本方式查看新创建的模型实例文件，会发现每个对象都多出一个xmi:id属性，如xmi:id="_gitpslkoEd2PdI7FPnuunA"。要在程序里使用这个id，只需要用resource.getId(eobject)即可得到，其中resource可以通过eobject.eResource()很方便的获得。</p>
<p>参考链接：<br />
<a href="http://serdom.szn.pl/ser/2007/03/05/how-to-enable-uuid-in-emf-generated-model-to-get-copypaste-working/">How To Enable UUID In EMF Generated Model To Get Copy&amp;Paste Working</a>（这个链接里的方法太麻烦了，但功效一样。）<br />
<a href="http://serdom.szn.pl/ser/2008/07/02/eclipse-gmf-enabling-uuids-in-semantic-model-the-simplest-way/">Eclipse GMF - Enabling UUIDs in Semantic model - The Simplest Way</a>（用GMF的时候这个链接里的方法应该比较方便）</p><img src="http://www.cnblogs.com/bjzhanghao/aggbug/1250873.html?type=1" width="1" height="1" alt=""/><p>评论: 2　<a href="http://www.cnblogs.com/bjzhanghao/archive/2008/07/24/1250873.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/bjzhanghao/archive/2008/07/24/1250873.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/>· <a href="http://news.cnblogs.com/n/56850/" target="_blank">“谷姐”：披着“谷歌”羊皮的悲哀？</a><span style="color:gray">(2010-02-10 15:32)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item></channel></rss>