邋遢居

我的Java天堂

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  61 Posts :: 2 Stories :: 90 Comments :: 0 Trackbacks

2011年7月22日 #

在过去的一年中。断断续续的使用了一些Grails。用他做了点东西。觉得不错,所以希望更多的人来了解他。使用他。所以录制了一点视频,和大家分享。视频会不定期持续更新!

第一集 Grails 开发环境准备

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

 

第二集 配置使用 Grails Spring security

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

 

第三集  Grails中数据库连接

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

posted @ 2014-04-23 22:49 Jet Geng 阅读(2486) | 评论 (0)编辑 收藏

原起

EverNote 的强大已经无需多说。他自己有很好的客户端,不过那个只是对Windows和OS X。在linux下面就虾米菜了。就是Windows和OS X下面的客户端也存在一个致命的弱点:不支持 MarkDown
不过有好人做了一个工具 Geeknote 让我们可以在任何装有python的机器上使用Evernote。 更强大的是他可以使用任何编辑器编辑笔记,支持 MarkDown 。 有如此好处还等什么啊赶紧用起来。
个人在使用的时候发现原版有点点不舒服的地方,做了点点小改动放在了 GitHub。 具体是什么改动,先买个关子。

安装

直接从源码安装

  1. 使用 git clone git@github.com:jetgeng/geeknote.git 命令下载源码
  2. 进入 geeknote 目录。
  3. 运行 python geeknote.py login 登录evernote
  4. 通过 python geeknote.py create , python geeknote.py edit , python geeknote.py find 命令来创建,编辑和查询你的ervernote 中的笔记。
  5. 通过 python geeknote.py settings --editor vim 命令把编辑Evernote的编辑器设定成我最喜欢的vim。 当然你可以设定成你喜欢的。
  6. 这个时候你已经用上了GeekNote。 但是还会有点不爽。最起码我这个时候不爽。

不爽的地方

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

改之

让vim正确设定filetype

在 vim中一般是根据文件的后缀名来识别该文件是什么类型。然后为他加载相应的语法高亮,代码补全什么的。在没有改动前geeknote是为笔记创建的临时 文件时没有后缀的。只是随机的创建一个形如 tmpsNbc8k这样的文件。所以Vim无法识别他是何种文件,就无法为他加载对于的语法高亮之类的。

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

命令行自动补全

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

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

posted @ 2013-05-31 22:57 Jet Geng 阅读(8274) | 评论 (1)编辑 收藏


Gemini测试小工具

作 者: Jet Geng
日 期: 2011-07-22

概述

Blueprint 起步中我们已经成功的通过 Blueprint 容器创建了一个POJO。我们只是通过log的方式查看到我们的POJO已经被创建了。无法深入的去了解容器内部Bean的运行状态和行为。 所以才有必要创建一个Gemini控制台这样的程序。这个控制台最初的需求是:

  • 能够动态查看特定的Bean是否被创建。
  • 能够动态的获取特定的Bean。
  • 能够检查特定Bean的行为是否正确。

解决方案

为了解决以上的问题。我做了一个小工具。 这个小工具的目的让客户的动态脚本能在最终的目标环境中运行。使用方式如下:
  1. 从 git://github.com/jetgeng/OSGi.git 下载 org.gunn.gemini.consoleorg.codehaus.groovy 这两个项目。
  2. 并把这两项目加入到你的TargetPlatform中。
  3. 使用 invokegv 来运行groovy脚本。
    1. 直接在命令行输入脚本。例如: invokegv print act.getBean(''myPOJO'')
    2. 通过输入Groovy文件。例如: invokegv file:///Users/Puer/.../script.groovy

注解

在Groovy脚本中有一个内建的变量 act , 他又一个叫做 getBean 的方法。通过这个方法你可以获得当前 OSGi 平台中所有的BlueprintContainer中的组件。他的输入参数时Bean或Service的id。 如果是使用Groovy文件的形式,注意文件的url格式。他是通过如下的正则表达式 file:\\/{2}(\\/[:\\w\\.]+)+ 进行验证的。并且路径中暂时不支持中文。

这个周末(23或24日)完成一个简单的录屏,来演示这个小工具的使用。

posted @ 2011-07-22 01:01 Jet Geng 阅读(3113) | 评论 (0)编辑 收藏