WIKI系统

个人的WIKI, VIM中有个插件 wiki就很不错。
但是团队用的话就有点问题。
MediaWiki是不错的选择可惜是PHP的,PHP还是WEB大佬。
国内也有的PHP的,很不错。http://kaiyuan.hudong.com/

  1. 需要 JAVA的
  2. 能够不需要用户认证就可以,和其他系统不好集成,访问也比较简单。
  3. 功能比较强大,像QQ空间就可以了,支持中文、支持文本存储格式
  4. 能够通知更新,像微博。

搜索了下:
http://www.open-open.com/51.htm
http://www.oschina.net/project/tag/69/wiki?lang=19&os=0&sort=view

jenkins用的这个,发现这个不错。但要付费。比较出名的是jira。
http://www.atlassian.com/software/confluence/

有点心动,应该比较好集成。 统一的方案就是好。以后不同的系统的认证功能应该有统一的解决方案。 便于集成。

有规范就好了。

JBoss也开始支持Php,但是还是个试验版,也只能在linux上,而且Java上应该能找到个。
发现JBoss也有个http://www.jboss.org/jbosswiki/

结论:试用下JBossWiki,多语言支持。我喜欢。
但是发现不能在JBoss7下部署,需要 JBoss Portal(门户平台)

先使用confluence,据说个人免费。

  1. 下载 ear版本,需要ant build。神奇呀
  2. 修改配置路径 confluence-3.5.13.war\WEB-INF\classes\confluence-init.properties
  3. key 验证 atlassian-extras-2.4.jar\com\atlassian\license

OSGI试用

####1. OSGI规范

管理组件的框架

####2.支持框架的容器

Eclipse Equinox、Felix、JBOSS OSGI。

Eclipse IDE支持osgi开发

osgi> install file:/d:/jboss7/standalone/deployments/plugins/osgitest_1.0.0.201109022026.jar
Bundle id is 895

osgi> start 895
Starting to listen for service events.
***event Type1
Ex1: Service of type osgitest.DictionaryService registered.

osgi> update 895
Stopped listening for service events.
Starting to listen for service events.
***event Type1
Ex1: Service of type osgitest.DictionaryService registered.

osgi> stop 895
Stopped listening for service events.

osgi> ls

####3. 组件的依赖、组件服务的获取、服务组件的组织

VIM学习路线

VIM编辑器之神 (仅适合高级用户使用,只适合简单IDE)

对手:Emacs(大而全,也不适合做流行的IDE。) SlickEditor同上

真正的IDE: Eclipse、NetBean

####VIM教程

  1. VIM自带 tutorial (快速入门)

  2. VIM自带的 User Manual (用户手册)

  3. VIM自带的REFERENCE MANUAL (参考手册)

推荐:

http://blog.sina.com.cn/s/blog_46dac66f010005kw.html

http://www.vim.org/

http://xbeta.info/7habits-edit.htm

VIM终极实例 pdf

####VIM插件

  1. Calendar 记每天的工作任务

  2. VimWiki 知识管理,不用写html。

http://www.linuxeden.com/html/softuse/20101117/105534.html

  1. CTag + TlistToggle

=VIM编程扩展=

python

Java调试_反编译_性能分析

调试(需要有源代码,没有源代码就需要反编译,然后将这个反编译的源码重新编译,再打包)

####调试器的工作原理

http://en.wikipedia.org/wiki/Debugger

http://download.oracle.com/javase/1.3/docs/guide/jpda/index.html

http://java.sun.com/javase/technologies/core/toolsapis/jpda/

####IBM上的介绍

http://www.ibm.com/developerworks/cn/views/java/libraryview.jsp?search_by=%E6%B7%B1%E5%85%A5+Java+%E8%B0%83%E8%AF%95%E4%BD%93%E7%B3%BB

http://www.ibm.com/developerworks/cn/java/j-lo-jpda1/index.html

http://www.ibm.com/developerworks/cn/java/j-lo-jpda2/index.html

http://www.ibm.com/developerworks/cn/java/j-lo-jpda3/index.html

http://www.ibm.com/developerworks/cn/java/j-lo-jpda4/index.html

####调试方式(支持本地,和远程),基于源代码级别调试&javac -g 有其中的调试信息,

通过对反编译方式获取源文件可以找到对应的行, 通过分析字节代码也可以。

####普通的字节方式 javap -c -l hehe.class >a.txt

Compiled from “hehe.java”
public class hehe extends java.lang.Object {
public hehe();
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object.”“:()V
4: return
LineNumberTable:
line 13: 0

public static void main(java.lang.String[]);
Code:
0: iconst_2
1: istore_1
2: iconst_3
3: istore_2
4: iload_1
5: iload_2
6: iadd
7: istore_3
8: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream;
11: iload_3
12: invokevirtual #3 // Method java/io/PrintStream.println:(I)V
15: new #4 // class test
18: dup
19: iconst_1
20: iconst_2
21: invokespecial #5 // Method test.”“:(II)V
24: astore 4
26: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream;
29: aload 4
31: invokevirtual #6 // Method test.add:()I
34: invokevirtual #3 // Method java/io/PrintStream.println:(I)V
37: return
LineNumberTable:
line 17: 0
line 18: 2
line 19: 4
line 20: 8
line 21: 15
line 22: 26
line 23: 37
}

#####1. 命令行

jdb http://download.oracle.com/javase/1.3/docs/tooldocs/win32/jdb.html

参考了gdb http://oss.org.cn/ossdocs/gnu/linux/gdb.html

需要 javac -g 的支持。

通常使用javac 应该默认打开了部分调试信息的,因为可以看到源代码和行号,但是不能使用locals。

-g

(在调试时,可以通过list命令显示源代码的情况。)

比默认多了,localVariableTable 可以使用locals

LocalVariableTable:
  Start  Length  Slot  Name   Signature
         0       5     0  this   Lhehe;

-g:none 没有行号信息和源代码,只能打断点在方法上。

http://www.qqread.com/java/w982394600.html

回到的debug , softice时代。

######2. GUI

Eclipse等IDE支持,就是命令的包裹器吧

类似于Windbg, ollydbg

####反编译

javap (字节码级别)

http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javap.html

JVM的字节指令

http://java.sun.com/docs/books/vmspec/

jd-gui (源代码级别)

===============性能=============

jps 进程查看

jstack 线程打印

jmap 堆栈打印

jhat 查看对象

jvisualvm (图形化的)

git是你想要的吗?

##SVN的优缺点

####优点

  1. 支持历史追踪
  2. 很容易合并和修改
  3. 比较适合个人的历史记录、同一模块提交不是很频繁的协作开发

####缺点

  1. 适合每个人有LocalSpace的情况。一个模块一个人很好开发。 但是一个模块多个人开发,每个人必须不断的合并才能跟踪,影响别人的开发进展。

###解决方案
双SVN方式 第一checkout后,合入自己的SVN。 更新时,对比本机的副本。
同步。 提交时,选择某个历史的SVN版本,和主版本比较合入。 缺点:每次都要主动的更新主版本,两个版本直接的文件没有关联性,需要借助第三方的工具进行比较。

##GIT的优缺点

####缺点
GIT图像界面并不太好 Windows下经常有莫名奇妙的错误

自己一个git库

mkdir project

cd project

D:>mkdir project

D:>cd project

D:\project>git init

Initialized empty Git repository in D:/project/.git/

D:\project>echo “1+1=?” >readme.txt

D:\project>git add readme.txt

D:\project>git commit -m 添加readme.txt

创建本地拷贝

D:>md local

D:>cd local

D:\local>git clone d:\project

Initialized empty Git repository in D:/local/project/.git/

添加提交删除都一样

D:\local\project>git add -A

D:\local\project>git commit -m 添加其它文件

D:\local\project>git commit -a -m 修改文件

查看日志

D:\local\project>git log

下载一个版本库

git clone https://github.com/KentBeck/junit.git

更多内容

参考:

http://wenku.baidu.com/view/78898a1fa76e58fafab00377.html

http://www.ibm.com/developerworks/cn/linux/l-git/

#####持续集成 =====

自动化构建

1.提交修改 2. 提交完毕后的固定时间,进行集成。 3. 将集成结果进行发布

支持这个过程的方法很多,基本的原理:hook , at, ant, email&web public

###CruiseControl

http://cruisecontrol.sourceforge.net/

jenkins