??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美日产国产精品,中文在线一区,亚洲国产精品精华素http://www.aygfsteel.com/JetGeng/archive/2014/04/23/412848.htmlJet GengJet GengWed, 23 Apr 2014 14:49:00 GMThttp://www.aygfsteel.com/JetGeng/archive/2014/04/23/412848.htmlhttp://www.aygfsteel.com/JetGeng/comments/412848.htmlhttp://www.aygfsteel.com/JetGeng/archive/2014/04/23/412848.html#Feedback0http://www.aygfsteel.com/JetGeng/comments/commentRss/412848.htmlhttp://www.aygfsteel.com/JetGeng/services/trackbacks/412848.html在过ȝ一q中。断断箋l的使用了一些Grails。用他做了点东西。觉得不错,所以希望更多的人来了解他。用他。所以录制了一点视频,和大家分享。视频会不定期持l更斎ͼ

W一?Grails 开发环境准?/p>

http://v.youku.com/v_show/id_XNjUxNjgxMjA4.html

 

W二?配置使用 Grails Spring security

http://v.youku.com/v_show/id_XNjY2MDc4MDgw.html

 

W三?nbsp; Grails中数据库q接

http://v.youku.com/v_show/id_XNjk4NTM2NDgw.html



Jet Geng 2014-04-23 22:49 发表评论
]]>
通过vim和markdown~辑Evernote中的W记http://www.aygfsteel.com/JetGeng/archive/2013/05/31/400046.htmlJet GengJet GengFri, 31 May 2013 14:57:00 GMThttp://www.aygfsteel.com/JetGeng/archive/2013/05/31/400046.htmlhttp://www.aygfsteel.com/JetGeng/comments/400046.htmlhttp://www.aygfsteel.com/JetGeng/archive/2013/05/31/400046.html#Feedback1http://www.aygfsteel.com/JetGeng/comments/commentRss/400046.htmlhttp://www.aygfsteel.com/JetGeng/services/trackbacks/400046.html原v

EverNote 的强大已l无需多说。他自己有很好的客户端,不过那个只是对Windows和OS X。在linux下面pc了。就是Windows和OS X下面的客L也存在一个致命的qQ不支持 MarkDown ?
不过有好人做了一个工?Geeknote 让我们可以在M装有python的机器上使用Evernote?更强大的是他可以使用M~辑器编辑笔讎ͼ支持 MarkDown ?有如此好处还{什么啊赶紧用v来?br />个h在用的时候发现原版有点点不舒服的地方Q做了点点小改动攑֜?GitHub?具体是什么改动,先买个关子?/p>

安装

直接从源码安?

  1. 使用 git clone git@github.com:jetgeng/geeknote.git 命o下蝲源码
  2. q入 geeknote 目录?br />
  3. q行 python geeknote.py login devernote
  4. 通过 python geeknote.py create , python geeknote.py edit , python geeknote.py find 命o来创建,~辑和查询你的ervernote 中的W记?br />
  5. 通过 python geeknote.py settings --editor vim 命o把编辑Evernote的编辑器讑֮成我最喜欢的vim?当然你可以设定成你喜Ƣ的?br />
  6. q个时候你已经用上了GeekNote?但是q会有点不爽。最L我这个时候不爽?/li>

不爽的地?/h2>
  1. 当我用python geeknote.py edit 命o使用vim打开我要~辑的笔记时,W记居然没有?MarkDown 语法l我高亮出来! 不爽Q!
  2. 输入命o一定要带一个什么python 之类的太J,而且我tab的时候也没有l我把命令补全!在命令行中没有自动补全,太不爽了Q!

改之

让vim正确讑֮filetype

? vim中一般是Ҏ文g的后~名来识别该文件是什么类型。然后ؓ他加载相应的语法高亮Q代码补全什么的。在没有改动前geeknote是ؓW记创徏的? 文g时没有后~的。只是随机的创徏一个Ş?tmpsNbc8kq样的文件。所以Vim无法识别他是何种文gQ就无法Z加蝲对于的语法高亮之cȝ?/p>

既然扑ֈ原因了就先看一下geeknote是否有什么地方可以设定,让他产生的时文件有后缀。最后在editor.py文g中发Cq么一行代码: (tmpFileHandler, tmpFileName) = tempfile.mkstemp() ?直接没有lQ何后~的想法?br />那就加上吧?
我所做的动作是q个Q给他加上了一个文件后~的设定?br />通过python geeknote settings --suffix suffix q样的命令来讑֮零时文g的后~。这栯法高亮,代码补全回来了。小爽一下!

命o行自动补?

q个其实geeknote已经惛_了,而且已经做了。代码仓库中的那?bash_completion/geeknote 文g是q这个活的?所以我只要把这个文件copy?/etc/bash_completion.d/ 下就可以了?br />但是copyq去后没有达到我惌的效果。没有自动补全。最后发现是geeknote配置的补全命令和我们执行的时候不一致?br />下面要做的就是把它们搞一致了?br />我的操作步骤如下Q?br />1. chmod +x geeknote.py lgeeknote.py加上可执行权限?br />2. geeknote.py所在\径加入到PATH中去?br />3. 修改 /etc/bash_completion.d/geeknote 文g中的 geeknote 为geeknote.py q个在我上面提到的github中可以找到?/p>

q个时候在新开一个控制台Q输?geeknote.py tab 可以自动补全了。小爽一下!



Jet Geng 2013-05-31 22:57 发表评论
]]>
Gemini试工?/title><link>http://www.aygfsteel.com/JetGeng/archive/2011/07/22/354828.html</link><dc:creator>Jet Geng</dc:creator><author>Jet Geng</author><pubDate>Thu, 21 Jul 2011 17:01:00 GMT</pubDate><guid>http://www.aygfsteel.com/JetGeng/archive/2011/07/22/354828.html</guid><wfw:comment>http://www.aygfsteel.com/JetGeng/comments/354828.html</wfw:comment><comments>http://www.aygfsteel.com/JetGeng/archive/2011/07/22/354828.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/JetGeng/comments/commentRss/354828.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/JetGeng/services/trackbacks/354828.html</trackback:ping><description><![CDATA[<br /> <div id="wmqeeuq" class="body"> <div class="wmqeeuq" id="gemini" class="section"> <h1>Gemini试工?a title="怹链接x? href="#gemini" class="headerlink">¶</a></h1> <table rules="none" frame="void" class="docutils field-list"> <colgroup><col class="field-name"> <col class="field-body"> </colgroup> <tbody valign="top"> <tr class="field"> <th class="field-name">??</th> <td class="field-body">Jet Geng</td> </tr> <tr class="field"> <th class="field-name">??</th> <td class="field-body">2011-07-22</td> </tr> </tbody> </table> <div class="wmqeeuq" id="id1" class="section"> <h2>概述<a title="怹链接x? href="#id1" class="headerlink">¶</a></h2> <p>?<em>Blueprint</em> h中我们已l成功的通过 <em>Blueprint</em> 容器创徏了一个POJO。我们只是通过log的方式查看到我们的POJO已经被创Z。无法深入的M解容器内部Bean的运行状态和行ؓ? 所以才有必要创Z个Gemini控制台这LE序。这个控制台最初的需求是Q?/p> <blockquote> <div> <ul class="simple"> <li>能够动态查看特定的Bean是否被创建?/li> <li>能够动态的获取特定的Bean?/li> <li>能够查特定Bean的行为是否正?/li> </ul> </div> </blockquote> </div> <div class="wmqeeuq" id="id2" class="section"> <h2>解决Ҏ<a title="怹链接x? href="#id2" class="headerlink">¶</a></h2> <dl class="docutils"> <dt>Z解决以上的问题。我做了一个小工具?q个工L目的让客L动态脚本能在最l的目标环境中运行。用方式如下:</dt> <dd> <ol class="first last arabic simple"> <li>?git://github.com/jetgeng/OSGi.git 下蝲 <strong>org.gunn.gemini.console</strong> ?<strong>org.codehaus.groovy</strong> q两个项目?/li> <li>q把q两目加入C的TargetPlatform中?/li> <li>使用 <strong>invokegv</strong> 来运行groovy脚本? <ol class="arabic"> <li>直接在命令行输入脚本。例如: <tt class="docutils literal"><span id="wmqeeuq" class="pre">invokegv</span> <span id="wmqeeuq" class="pre">print</span> <span id="wmqeeuq" class="pre">act.getBean(''myPOJO'')</span></tt></li> <li>通过输入Groovy文g。例如: <tt class="docutils literal"><span id="wmqeeuq" class="pre">invokegv</span> <span id="wmqeeuq" class="pre">file:///Users/Puer/.../script.groovy</span></tt></li> </ol> </li> </ol> </dd> </dl> <div id="wmqeeuq" class="admonition note"> <p class="first admonition-title">注解</p> <p class="last">在Groovy脚本中有一个内建的变量 <strong>act</strong> Q?他又一个叫?<strong>getBean</strong> 的方法。通过q个Ҏ你可以获得当?<strong>OSGi</strong> q_中所有的BlueprintContainer中的lg。他的输入参数时Bean或Service的id? 如果是用Groovy文g的Ş式,注意文g的url格式。他是通过如下的正则表辑ּ <tt class="docutils literal"><span id="wmqeeuq" class="pre">file:\\/{2}(\\/[:\\w\\.]+)+</span></tt> q行验证的。ƈ且\径中暂时不支持中文?/p> </div> <p>q个周末(23?4?完成一个简单的录屏Q来演示q个工L使用?/p> </div> </div> </div> <img src ="http://www.aygfsteel.com/JetGeng/aggbug/354828.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/JetGeng/" target="_blank">Jet Geng</a> 2011-07-22 01:01 <a href="http://www.aygfsteel.com/JetGeng/archive/2011/07/22/354828.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Blueprint 使用手记http://www.aygfsteel.com/JetGeng/archive/2011/07/10/354034.htmlJet GengJet GengSun, 10 Jul 2011 03:06:00 GMThttp://www.aygfsteel.com/JetGeng/archive/2011/07/10/354034.htmlhttp://www.aygfsteel.com/JetGeng/comments/354034.htmlhttp://www.aygfsteel.com/JetGeng/archive/2011/07/10/354034.html#Feedback4http://www.aygfsteel.com/JetGeng/comments/commentRss/354034.htmlhttp://www.aygfsteel.com/JetGeng/services/trackbacks/354034.html Blueprint 使用手记 Jet Geng
July 10, 2011
Blueprint ?OSGi Service Platform Enterprise Specification 标准的一 部分。很多最佛_践中也都推荐在应用程序中使用他。最q在目中用?来发布和应用服务。感觉效果不错。所以就有了q篇使用手记!Ƣ迎各位 看官拍砖!
2 配置环境
我们在前期找C两个 Blueprint 的实?一个是 Apache ?aries,?外一个就?Eclipse ?Gemini。最后选择?Gemini。做L军_Z 两点考虑:
• Blueprint的标准就是由Spring提出?br /> • Gemini的初始代码由Srping所捐献?下面我就单介l一下环境的配置q程:
• 从http://eclipse.org/gemini/ 下蝲 Gemini 的合适的版本。我?采用的是 1.0.0M1。ƈ解压到\?A
• 从http://static.springsource.org/downloads/nightly/milestone-download. php下蝲 spring-osgi-2.0.0.M1-with-dependencies。ƈ解压到\?B?他里面包括了 Gemini 所依赖?bundle。说白了也就?SpringFrame- work?br /> • Eclipse 中新Z?Target Platform。把上述的\?A?B 加入到新 建的 Target Platform 中去?br /> • 选择新徏?Target Platform 为当前活动的 Platform?3 启航
个h理解 Gemini 是 OSGi 世界中的 IOC。既然是一?IOC 框架,?我们׃创徏一?Bean 开始吧!

3.1    创徏一?Bean 首先我们来看一下我们要存入 Container 中的 POJO?br /> Listing 1: POJOWillInContainer.java
package org.gunn.gemini.demo;
import org.slf4j.Logger; import org.slf4j.LoggerFactory; /**
* This pojo will create by blueprint container * 
@author Jet Geng * */
public class POJOWillInContainer { private Logger logger =
}
LoggerFactory.getLogger(POJOWillInContainer.
class); private String name ;
private String age;
public void setName(String name) { logger.info("the new name is:" + name); this.name = name;
}
public void setAge(String age) { logger.info("the new age value is:" + age); this.age = age;
}

q个񔽎单的一?POJO,我们如何通过 Gemini 来创Z?我们通过 一个简单的配置文g。具体如下?br /> Listing 2: pojoconfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
    
<bean id="myPOJO" class="org.gunn.gemini.demo.POJOWillInContainer" >
        
<property name="name" value="JetGeng"/>
        
<property name="age" value="32"/>
    
</bean>
</blueprint>

用过 spring 的兄?W一眼就能看明白q个配置文g说的是什么。其实就 是创Z一?bean。到q里,我们所需要做的工作其实就已经完成了。下 面就可以通过 Debug 来启动了?br /> 3.2    q行 Blueprint 容器 首先?pojoconfig.xml 文g攑ֈ project path/OSGi INF/blueprint 目录
下。或者在 MANiFEST.MF 文g中通过如下语句q行指定?Blueprint-Bundle: config/account-data-context.xml, config/osgi-*.xml
更多内容参考http://www.eclipse.org/gemini/blueprint/documentation/ reference/1.0.0.RC1/html/app-deploy.html中的 8.2 Blueprint Manifest Configuration Comparison。好?我们可以启动我们的应用程序了。ؓ?能够?blueprint 利的跑h,我们必须要把 blueprint 相关 bundle 以及 他所依赖?bundle 都加入到q行时中?按照上图配置?点击q行。我?br /> Figure 1: Debug 配置

在控制台得到如下内宏V?br />
控制C的黑色行昄我们?POJO 已经?BlueprintContainer 创徏

?q且讑֮了相兛_性?br /> .
q个部分的全部代码已l放C git://github.com/jetgeng/OSGi.git 中了?感兴的{子可以 down 下来玩玩?img src ="http://www.aygfsteel.com/JetGeng/aggbug/354034.html" width = "1" height = "1" />

Jet Geng 2011-07-10 11:06 发表评论
]]>
用Graphviz昄?/title><link>http://www.aygfsteel.com/JetGeng/archive/2010/08/11/328524.html</link><dc:creator>Jet Geng</dc:creator><author>Jet Geng</author><pubDate>Wed, 11 Aug 2010 04:59:00 GMT</pubDate><guid>http://www.aygfsteel.com/JetGeng/archive/2010/08/11/328524.html</guid><wfw:comment>http://www.aygfsteel.com/JetGeng/comments/328524.html</wfw:comment><comments>http://www.aygfsteel.com/JetGeng/archive/2010/08/11/328524.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/JetGeng/comments/commentRss/328524.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/JetGeng/services/trackbacks/328524.html</trackback:ping><description><![CDATA[<div id="wmqeeuq" class="wiki" id="content"> <div id="wmqeeuq" class="wikipage searchable"> <h1 id="用Graphviz昄?>用Graphviz昄?a class="anchor" href="#用Graphviz昄? title="Link to this section"> <br /> </a></h1> <h2 id="~v">~v<a class="anchor" href="#~v" title="Link to this section"> <br /> </a></h2> <p> 前几天不知道那根{搭错,又拿Z大学时候买的一本讲法的书Mh。想起当q学习Tree的时候,看着数据l构凭空L那颗倒着的树。那个叫做苦啊。所以就像有没有什么办法让Tree自己dq样的结构图出来? </p> <h2 id="动手">动手<a class="anchor" href="#动手" title="Link to this section"> <br /> </a></h2> <p> 既然惛_了,动手做把。因Z前用Graphviz画过一点mindmapQ类图之cȝ东ѝ让我一下子想CQ我只要能从Treel构中方便的输出成一个能l制出对应树l构的Graphviz脚本可以。这应该是代h的做法? 呵呵Q废话不多说了。看看的Tree的代码吧Q?<br /> </p> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000;"> @Override<br />     </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> String toString() {<br />         StringBuffer strValue </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> StringBuffer();<br />         StringBuffer rout </span><span style="color: #000000;">=</span><span style="color: #000000;">  </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> StringBuffer(</span><span style="color: #000000;">"</span><span style="color: #000000;">{rank=same </span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />         <br />         </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(getLeftTree()  </span><span style="color: #000000;">!=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">null</span><span style="color: #000000;"> ) {<br />             strValue.append(root).append(ARROW).append( getLeftTree().getTreeNode()).append(</span><span style="color: #000000;">"</span><span style="color: #000000;">;\r</span><span style="color: #000000;">"</span><span style="color: #000000;">).<br />                         append( getLeftTree());<br />             rout.append(getLeftTree().getTreeNode() ).append(ARROW).append(EXTEND).append(root);<br />       <br />         }<br />         <br />         strValue.append(EXTEND).append(root).append(</span><span style="color: #000000;">"</span><span style="color: #000000;">[label=\</span><span style="color: #000000;">"</span><span style="color: #000000;">\</span><span style="color: #000000;">"</span><span style="color: #000000;">,width=.1,style=invis];\r</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />         strValue.append(root).append(ARROW).append(EXTEND).append(root).append(</span><span style="color: #000000;">"</span><span style="color: #000000;">[style=invis];\r</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />      <br />         </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(getRightTree() </span><span style="color: #000000;">!=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">null</span><span style="color: #000000;">) {<br />             strValue.append(root).append(ARROW).append( getRightTree().getTreeNode()).append(</span><span style="color: #000000;">"</span><span style="color: #000000;">;\r</span><span style="color: #000000;">"</span><span style="color: #000000;">).<br />             append( getRightTree());<br />        <br />             rout.append(ARROW).append(getRightTree().getTreeNode());<br />         }<br />         strValue.append(rout).append(</span><span style="color: #000000;">"</span><span style="color: #000000;"> [style=invis] } ;\r</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />         </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> strValue.toString();<br />     }</span></div> <p> 产生脚本的动作全部在q里完成了。我通过如下代码创徏了一颗树 <br /> </p> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000;">       ITree</span><span style="color: #000000;"><</span><span style="color: #000000;">Integer</span><span style="color: #000000;">></span><span style="color: #000000;"> tree </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> TreeImpl</span><span style="color: #000000;"><</span><span style="color: #000000;">Integer</span><span style="color: #000000;">></span><span style="color: #000000;">(</span><span style="color: #000000;">6</span><span style="color: #000000;">);   <br />         tree.addNode(</span><span style="color: #000000;">3</span><span style="color: #000000;">);<br />         tree.addNode(</span><span style="color: #000000;">16</span><span style="color: #000000;">);<br />         tree.addNode(</span><span style="color: #000000;">5</span><span style="color: #000000;">);<br />         tree.addNode(</span><span style="color: #000000;">4</span><span style="color: #000000;">);<br />         tree.addNode(</span><span style="color: #000000;">2</span><span style="color: #000000;">);<br />         tree.addNode(</span><span style="color: #000000;">10</span><span style="color: #000000;">);<br />         tree.addNode(</span><span style="color: #000000;">30</span><span style="color: #000000;">);</span></div> <p>最后得到的一副如下的?br /> <img src="http://www.aygfsteel.com/images/blogjava_net/jetgeng/tree.png" alt="" border="0" /> <br /> </p> <p>呵呵Q这L话就可以随时查看树的l构了,我们所需要做的只是把object toString一下就可以?/p> <p>附上一些文?/p> <p><a href="http://www.aygfsteel.com/Files/JetGeng/tree.rar ">演示的录屏文?/a> <br /> </p> <a href="http://www.aygfsteel.com/Files/JetGeng/tree.zip" >完整的代?nbsp; </a></div> <br /> </div> <img src ="http://www.aygfsteel.com/JetGeng/aggbug/328524.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/JetGeng/" target="_blank">Jet Geng</a> 2010-08-11 12:59 <a href="http://www.aygfsteel.com/JetGeng/archive/2010/08/11/328524.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开始用Drupal构徏网?/title><link>http://www.aygfsteel.com/JetGeng/archive/2010/05/30/322313.html</link><dc:creator>Jet Geng</dc:creator><author>Jet Geng</author><pubDate>Sun, 30 May 2010 15:44:00 GMT</pubDate><guid>http://www.aygfsteel.com/JetGeng/archive/2010/05/30/322313.html</guid><wfw:comment>http://www.aygfsteel.com/JetGeng/comments/322313.html</wfw:comment><comments>http://www.aygfsteel.com/JetGeng/archive/2010/05/30/322313.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/JetGeng/comments/commentRss/322313.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/JetGeng/services/trackbacks/322313.html</trackback:ping><description><![CDATA[<div id="wmqeeuq" class="wiki" id="content"> <div id="wmqeeuq" class="wikipage searchable"> <blockquote> <p> q来想了解一下关于网站徏设方面的内容。自然而然的就扑ֈ了Drupalq个东西。刚开始没有发C是多么的强大。抱着试试看的态度Q? </p> </blockquote> <p> 搭徏了一个环境跑跑看。看完之后惊呼强大!他的强大来源于他的高度的可扩展,丰富的模块,主题。让你可以不写一行代码构建出一个不错的|站来? 看到q么强大的东西,q不住好奇往里看。于是找C一些资料特与大家共享: 书籍Q? </p> <ul> <li><a class="ext-link"><span id="wmqeeuq" class="icon"> </span>Using Drupal</a> </li> <li>Drupal 6 Attachment Views </li> <li>Pro Drupal Development 悄悄的说一壎ͼq几本书在itpub上都有下载? </li> </ul> <p> 视频Q? </p> <ul> <li><a class="ext-link"><span id="wmqeeuq" class="icon"> </span>http://v.youku.com/v_show/id_XODc2Njk5ODQ=.html</a> 方医生发布在优酷上教学视频。非怹实用Q作为入门真的很不错。在此向方医生表C感谢! </li> </ul> <p> q有两个很不错的|站? </p> <ul> <li><a class="ext-link"><span id="wmqeeuq" class="icon"> </span>http://gotdrupal.com/</a> </li> <li><a class="ext-link"><span id="wmqeeuq" class="icon"> </span>http://acquia.com/?x_lf_kid=17&x_lf_kt=3&_x_lf_kr=http%3A%2F%2Fwww.doitwithdrupal.com%2F</a> </li> </ul> <p> 上面提供了很多高质量的教学视频。让我这个初学者很快对drupal有个直观和深入的了解?<br /> </p> <p>youtube.com上也有很多视频,有梯子的童鞋可以q去看看Q?br /> </p> </div> </div> <img src ="http://www.aygfsteel.com/JetGeng/aggbug/322313.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/JetGeng/" target="_blank">Jet Geng</a> 2010-05-30 23:44 <a href="http://www.aygfsteel.com/JetGeng/archive/2010/05/30/322313.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Osgi常见错误分析http://www.aygfsteel.com/JetGeng/archive/2010/05/14/321000.htmlJet GengJet GengFri, 14 May 2010 11:15:00 GMThttp://www.aygfsteel.com/JetGeng/archive/2010/05/14/321000.htmlhttp://www.aygfsteel.com/JetGeng/comments/321000.htmlhttp://www.aygfsteel.com/JetGeng/archive/2010/05/14/321000.html#Feedback6http://www.aygfsteel.com/JetGeng/comments/commentRss/321000.htmlhttp://www.aygfsteel.com/JetGeng/services/trackbacks/321000.html
文中提到的代?a title="castexception_src" href="http://www.aygfsteel.com /Files/JetGeng/castexception.zip">castexception_src
~译好了包括不同的版本org.gunn.castexception.supplier插g文g?a title="castexception_bin" href="http://www.aygfsteel.com/Files/JetGeng/castexception_bin.rar">castexception_bin

Jet Geng 2010-05-14 19:15 发表评论
]]>
复制文g到已存在的Jarhttp://www.aygfsteel.com/JetGeng/archive/2009/11/26/303797.htmlJet GengJet GengThu, 26 Nov 2009 10:07:00 GMThttp://www.aygfsteel.com/JetGeng/archive/2009/11/26/303797.htmlhttp://www.aygfsteel.com/JetGeng/comments/303797.htmlhttp://www.aygfsteel.com/JetGeng/archive/2009/11/26/303797.html#Feedback3http://www.aygfsteel.com/JetGeng/comments/commentRss/303797.htmlhttp://www.aygfsteel.com/JetGeng/services/trackbacks/303797.html

问题

q两天在写一个小东西。这个小东西是一个大东西的一部分。其实也是其中的一两个cR而这个大东西需要部|到一个特定的环境中去q行。所以有一堆的限制? Ӟ比如什么配|文件啊Q包名,版本之类的什么东ѝ稍微有点差错就没有办法q行。需要正得到这些东襉K要一个很庞大且冗长的构徏q程。而我写的也就? 两三个类Q所以最直接的方式就是把我写?strong>java 文g~译或的class 文g直接复制到jar文g中? 完成q样工作有好几中方式Q最直接的方式就?strong>U手工打?/strong>


GraphViz image

PS: q种方式Ҏ费力Q需要在不同的窗体间q行切换。例如我现在在Eclipse、WinRaR和Windows资源理器间切换?

解决q程

如何避免q个q程呢,量不用人来参与其中。这个肯定就是让一个小E序来把q几个动作连接v来。而且q要能够方便变动。比如我现在不想往a.jar 里面copy了。我惛_b.jar 中复制了。所以就惛_了脚本。对让脚本来完成q样的事情。第一反应惛_的是ant

Ant 我的主角

  Ant ? 何须人,׃用我多说了。其实我了解也不多,只是知道q个蚂蚁蛮力超大。下面就着手解决问题。第一反应是扑ֈ一个直接copy的Q务,? fileset中的文g复制到jar文g中。但是遗憄是我没有能够扑ֈq样一个Task.q个时候我的思维陷入了困境。下面该怎么办?

困境

没有现成的东西,没有现成的能一步完成的东西Q如何是好? 我是E序员,所以我我自己可以写一个task来满L需求啊。对啊,我可以自己写的!正当我ؓq个x兴奋不已Ӟ正卷赯子准?#8220;大干”的时候。突然想hq?strong> 不要重新造轮子! 。所以就q问了我自己一句:?/strong> 角处会有什么呢Q?

我的拐角

既然Ant有蛮力,我可否利用一下他的蛮力呢Q通过如下的这么一个流E来辑ֈ我的目的?


GraphViz image

q里用了一个temp文g夹作Z转,先解压,copy需要的文gQ最后jar一下获得最后的更新好的jar? 最l获得了如下的build.xml

<target name="prepare">
                
<mkdir dir="${temp_dir}"/>
        
</target>
        
        
<target name="build" depends="prepare">
                
<echo message="unzip">Uzip Jar file</echo>
                
<unjar dest="${temp_dir}" src="${comp_plugin}/${contain_plugin}">
                
</unjar>
                
<copy todir="${temp_dir}">
                        
<fileset dir="./bin">
                                
                        
</fileset>
                
</copy>
                
<jar update="true"
                        destfile
="c:/${contain_plugin}" 
                        basedir
="${temp_dir}" >
                
</jar>
        
</target>
  


<jar update="true"
                        destfile
="c:/${contain_plugin}" 
                        basedir
="${temp_dir}" 
                        manifest
="${temp_dir}/META-INF/MANIFEST.MF">
</jar>
 

q样可以了。大功告成!Q?



Jet Geng 2009-11-26 18:07 发表评论
]]>Galileo: EMF-Databinding ?Part 1--creation of the domain-modelhttp://www.aygfsteel.com/JetGeng/archive/2009/11/07/301576.htmlJet GengJet GengSat, 07 Nov 2009 14:41:00 GMThttp://www.aygfsteel.com/JetGeng/archive/2009/11/07/301576.htmlhttp://www.aygfsteel.com/JetGeng/comments/301576.htmlhttp://www.aygfsteel.com/JetGeng/archive/2009/11/07/301576.html#Feedback0http://www.aygfsteel.com/JetGeng/comments/commentRss/301576.htmlhttp://www.aygfsteel.com/JetGeng/services/trackbacks/301576.html

在我们创建领域模型前Q我们有必要了解一下我们的模型用来表达什么内宏V?所以我先解释一下在q个pd文章中要实现应用?假设Eclipsel织邀请你~写一个让他们理贡献者和目的应用程序?

我们需要创Z个模型来表达客户提供的信息。他们有可能如下图?

让我们进一步的看看q个模型?

Fundation

fundation是这个模型的根,他拥有两个列表属性?

projects: 像EMF,Techonlogy,Platformq样的顶U项目?
persons: 参加一个或多个目的h?
Project

Eclipse目拥有很多属性,比如目开始和l束旉、项目的主页的url{等。下面列出我们最感兴的?

subprojects: 一个项目可以拥有多个子目。子目本n也可以拥有多个子目?
parent: 目有一个父Ԍ除了目外)。这意味着目和子目Qproject-subprojectQ的关系是一个双向的关系?
projectleads 一个项目有多个目领导人?
committers 一个项目可以拥有多个A献者?
CommitterShip

当一个用hZ个项目的贡献者(CommitterQ时Q这徏立了一个committership。他拥有一个开始时间和l束旉。另外我们还要记录下下面的属性?

project: 和committership相关的项目。项目和committership是一个双向的关系?
person: 参加目的h?
Person

贡献者或目领导人的信息。我们关pȝ信息如下Q?

committerships: 用于保存和h相关的所有的committerships.q说明h和committership是一个双向关pR?

下面q张cdl出了关于上面模型的全貌?

正如你所看到的,我把许多关系设成了双向关pR?As you noticed I modeled many of the relations as bidirectional relations. q个q不是严D求所有地斚w要这P因ؓ有的地方可以通过eComtainer来获取他的父二Ӏ就像project-subproject一栗? 但是包含关系Qcontainment relationshipQ在使用databinding的情况下׃太合适了。因Z子到父亲时没有对应featureQ只能通过调用eContainer()Ҏ来获得? EMF提供了一个编辑器来创Z的Ecore-Modelq把它保存成XMI格式。我们可以用它来创徏试数据。下囑ְ是一个例子?/p>



Jet Geng 2009-11-07 22:41 发表评论
]]>
Galileo: Improved EMF-Databinding-Support http://www.aygfsteel.com/JetGeng/archive/2009/11/07/301575.htmlJet GengJet GengSat, 07 Nov 2009 14:39:00 GMThttp://www.aygfsteel.com/JetGeng/archive/2009/11/07/301575.htmlhttp://www.aygfsteel.com/JetGeng/comments/301575.htmlhttp://www.aygfsteel.com/JetGeng/archive/2009/11/07/301575.html#Feedback0http://www.aygfsteel.com/JetGeng/comments/commentRss/301575.htmlhttp://www.aygfsteel.com/JetGeng/services/trackbacks/301575.html1.译序

在学习EMF-Databinding的时候发CTom Schindl的博客。他的博客中有一个关于EMF Databinding的专题。感觉很不多。想试着译一下?那么Tom Schindl是何思h也?他是JFace目的一个ContributorQ在2007q?a target="_top">Eclipse Zone 曾l采访过他?所以称他ؓEMF Databinding的专家一点也不过分?

Note

原文\径ؓhttp://tomsondev.bestsolution.at/2009/06/06/galileo-improved-emf-databinding-support/

2. 原文

我很高兴的宣布在Eclipse-Galileo中EMF-2.5已经开始支持新的Eclipse-Databinding API了。荣誉归Matthew HallQ他审查我的代码Q帮我整理支撑部分ƈ且整理文档(详细内容?a target="_top">bug 262160 中)

几周前我成ؓ了EMF目的捐献者,现在我负责Databinding对EMF的支持模块。我尽力修正API中的问题Q回{Newsgroup中的问题?

请允许我在介l这个API的优点以及如何用它之前声明一点:q个APIq处于过渡期Q他可能会有一些细微的变化。不q我们将会详l说明变化的部分?

我将用一个系列文章来展现q个新的EMF-Databinding:

W一部分Q?a target="_top">创徏领域模型
W二部分Q?a target="_top">介绍新的Properties API
W三部分Q?a target="_top">用EMF-Databindingl定到TreeViewer
W四部分Q?a target="_top">在master-detail模式中用Properties API
W五部分Q?a target="_top">用EMF-Databindingl定到TableViewer
W六部分QWrite your own Property for unsupport Widget-Types
W七部分QMake the storage system plugable

Z让你快速进入EMF-Databinding中,我在前几天做了一个例子?

所有代码都是基于EPL协议Q你可以在从Eclipse-CVS 处获得?



Jet Geng 2009-11-07 22:39 发表评论
]]>
վ֩ģ壺 | | | ͼľ| | | ̫| ʳ| | | | ˫| ޳| | | ƽ| | ɽ| ̫| ׳| ͤ| | | ;| | ȫ| ɽ| ƾ| ³ľ| | | | | | | | | | | ˮ| |