Python基础知识
1. Python解释器
CPython
这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。
IPython
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。
PyPy
PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。
Jython
Jython是运行在Java平台上的Python解释器,可以直接把Pyt...
Vim基础知识
1. 查找(/)
在normal模式下按下 / 即可进入查找模式,输入要查找的字符串并按下回车。 Vim会跳转到第一个匹配。
n 查找下一个,N 查找上一个。
Vim查找支持正则表达式,例如/vim$匹配行尾的”vim”。 需要查找特殊字符需要转义,例如/vim$匹配”vim$”。
2. 大小写敏感查找(\c)
在查找模式中加入 \c 表示大小写不敏感查找, \C 表示大小写敏感查找。例如:
/foo\c
将会查找所有的”foo”,”FOO”,”Foo”等字符串。
3. 大小写敏感配置
Vim 默认采用大小写敏感的查找,为了方便我们常常将其配置为大小写不敏感:
" 设置默认进行大小写不敏感查找
set ignorecase
" 如果有一个大写字母,则切换到大小写敏感查找
set sma...
多线程Job的使用
1. Job的基本用法
在基于Eclipse的Java程序中,有很多种方式提供多任务的实现。熟悉Java的朋友立即会想到Java的Thread类,这是Java中使用最多的一个实现多任务的类。Eclipse平台为多任务处理提供了自己的API,那就是Job以及UIJob。Eclipse中的Job是对JavaThread的一个封装,实现多任务提供了更方便的接口。
1. Job用法示例
Job job = new Job(“Job Name”){
protected IStatus run(IProgressMonitor monitor) {
// 在这里添加你的任务代码
return Status.OK_STATUS;
}
};
job.sc...
Obfuscate by ProGuard
1. ProGuard简介
因为Java代码是非常容易反编码的,为了很好的保护Java源代码,我们需要对编译好后的class文件进行混淆。
ProGuard是一个混淆代码的开源项目,它的主要作用是混淆代码,殊不知ProGuard还包括以下4个功能。
压缩(Shrink):检测并移除代码中无用的类、字段、方法和特性(Attribute)。
优化(Optimize):对字节码进行优化,移除无用的指令。
混淆(Obfuscate):使用a,b,c,d这样简短而无意义的名称,对类、字段和方法进行重命名。
预检(Preveirfy):在Java平台上对处理后的代码进行预检,确保加载的class文件是可执行的。
总而言之,根据官网的翻译:Proguard是一个Java类文件压缩器、优化器、混淆器、...
Obfuscate by Yguard
1. code
<target depends="pack" name="obfuscate">
<mkdir dir="${dist.dir}/obf" />
<taskdef name="yguard" classname="com.yworks.yguard.YGuardTask">
<classpath>
<pathelement location="${YguardJar}" />
</classpath>
</taskdef>
<yguard>
<inoutpair in...
Change handler to action
1. Change handler to action
public class NewAction extends Action {
private String cmdId;
private DiscardChangesActionHandler handler;
// name: action name
// cmdId: handler id
// handler: abastract handler
public NewAction(String name, String cmdId, DiscardChangesActionHandler handler) {
this.cmdId = cmdId;
this.handler = handler;
...
Process in java
1. Process
public static void runSystemCmd(String[] cmd, File workingDir){
ProcessBuilder processBuilder = new ProcessBuilder(cmd);
processBuilder.directory(workingDir);
processBuilder = processBuilder.redirectErrorStream(true);
final Process process;
try {
process = processBuilder.start();
} catch (IOException e) {
e.printStackTrace()...
Linux基础知识
1. 设置root密码
sudo passwd设置root密码
su root切换root用户
2. link
ln -s destfile/directory softlink 建立软连接(类似于Windows的快捷方式)
ln destfile hardlink 建立硬连接
3. df & du
df -h ./ 查看使用情况
du -sh filename 查看文件的大小
4. 解压
tar -zxvf file.tar.gz -C dirName 解压tar包到指定目录
tar -zcvf file.tar.gz dirName 指定目录压缩到tar包
tar –xvf file.tar 解压 tar包
tar -xjv...
53 post articles, 7 pages.