精品工具收集(二)

Clover:类似chrome标签的文件夹管理

Hbuilder:国内团队开发的,非常好用的html5、html5+、js、css的IDE,还能和android、ios的webview打通,开发非常便捷高效,强烈推荐

everything:极其快速的搜索软件,可以在几十秒内对整个磁盘的所有文件建索引

MobaXterm命令行终端:比xshell、破解的SecureCRT、putty都要好用的终端,功能介绍参考这里:http://jingxuan.io/?p=182。有免费版

xmind:思维导图,可以帮助你总结、规划、发散思维。工作时常用的软件,有免费版

Glances:一款跨平台的系统监控工具,在linux上使用最爽,相当于时top、df、free等常用命令的集合版,可以让你一眼看到系统的所有指标,觉得让你眼前一亮。

findjar:jar包查找

ZOC:免费的ssh terminal终端,可以很方便的使用复制粘贴功能,字体也不错

sourceTree:非常简单好用的git客户端,界面清晰直观

VS Code:非常轻便的编辑器IDE,相比sublime、notepad++、ultraEdit、editplus,功能更强大一些,更像IDE一点,好友的支持了git客户端、调试和丰富的扩展插件;相比eclipse、visual studio、xcode又更轻量级一些,打开速度非常快。至少可以取代sublime和notepad++这类的编辑器,而且特别适合前端同学,因为它就是用node写的,编写插件很方便。

小米1内存极致优化

之前有篇文章《小米1升级最新miui后很卡的请看这里》,但是小米1 miui v4或者v5,在使用过程中仍然会随着多个软件的开启而内存吃紧,仍然让大家感觉很卡顿,如果你对软件的响应速度完全受不了了,那么你可以选择继续往下看。

往往大家会卡顿或者使用消耗内存比较多的软件时,选择按住home键来清理内存,但是其实很多软件背后有后天进程在运行,就算看起来清理掉了,其实内存消耗没有减少多少;而且当你通过按home键后切换其他软件时,之前打开的软件没有真正关闭,他们仍然占据着内存,我想其实大家大部分时候,一小段时间里面都只用一个软件吧。

如果你想让自己使用单个app时比较顺畅,不在乎软件切换的速度时,你可以考虑我的这个内存极致优化的方案。内存消耗主要是活动的app和后台进程所致,而我们大部分时候手机屏幕只能看到和使用一个app,那么此时如果将其他活动的app和后台进程尽可能的关掉,让更多的内存服务好当前正在使用的app,这样当前使用的app就会很爽很顺畅了。当然这时候你切换到其他app时,需要等待一个启动时间。

好在miui是有地方可以设置后台进城个数以及是否保留后台进程的,操作步骤是这样的:

  1. 按住home键进入桌面 –> 点击菜单键后点击“系统设置”(或者点击桌面应用“设置”) –> 选择“全部设置” –> 拖到底部并选择“开发者选项” –> 拖到底部,将“不保留活动”开关打开,将“后台进程限制”设置为你想要的值(比如:不得超过3个进程)

    小米1内存优化——设置活动和后台进程
    小米1内存优化——设置活动和后台进程
  2. 按住home键进入桌面 –> 点击菜单键后点击“桌面设置” –> 将“常驻内存”的开关关掉,将“图标阴影”的开关关掉

    小米1内存优化——桌面占用内存设置小米1内存优化——桌面占用内存设置
    小米1内存优化——桌面占用内存设置

当然这种配置的方法在小米手机的其他版本都可以使用,相信用了这个方法,再小的内存都可以跑得动了。

下面show一下,我的手机的miui版本:

小米1内存优化——桌面占用内存设置
小米1内存优化——桌面占用内存设置

 

 

Felix iPOJO中@ServiceController和@Controller的区别

@ServiceController和@Controller从字面上看起来很像,都是用在类的boolean类型的field上,但是其作用完全不同。@ServiceController是OSGI容器的角度的,而@Controller是iPOJO容器角度的,这两个annotation给了iPOJO中的instance一个自己改变自己状态的能力。

在机制上

@ServiceController

@ServiceController当这个field被设置为false的时候,这个service会从服务注册中心注销(unregister);当这个field被设置为true的时候,这个service会被重新注册到服务注册中心。其实ipojo会在运行时监控这个field,以控制组件在OSGI容器中的生命周期

@Controller

@Controller也可以控制组件的生命周期,但是他是控制组件实例是否valid,这个field为false时,组件实例就变成invalid,如果是true,就是valid的。同理iPOJO会在运行时监控这个field的值的改变,其值一旦改变,instance的状态也就改变了,iPOJO会自动回调这个instance对应的component中配置的回调函数。

 

@ServiceController(value=false) 相当于设置了默认值
@ServiceController(value=false, specification=FooService.class) 对某个接口类进行默认值设定

maven-ipojo-plugin使用指南

1. 基本配置

要使用iPOJO的maven插件(maven-ipojo-plugin),就要使用如下的配置(需要将$YOUR_XXX的部分替换成你需要的)

iPOJO maven plugin通常要和BND maven plugin(maven-bundle-plugin)一起使用,且需要<package/>的值为bundle,但是这两个插件的配置是完全分开的。所以你可以使用到所有的BND插件的所有功能特性。上面的pom配置实例中iPOJO配置的部分可以不经修改的使用到你的eclipse工程中,前提条件是你的ipojo metadata文件要么在src/main/ipojo目录下,要么在src/main/resources目录下,而且必须以metadata.xml命名。

其实metadata文件对打包后的bundle没有作用,因为metadata文件会被iPOJO maven plugin解析,并以另一种格式写到打包后的jar的META-INF/MANIFEST.MF文件里面,作为iPOJO-Components的值。默认情况metadata文件是不会出现在最后的jar里面的。

2. 高级配置

指定ipojo metadata文件的配置路径和文件名,甚至是目录

例如:

在<metadata>标签中,你可以指定metadata文件或者是多个metadata文件所在目录。文件路径是相对工程根目录来说的。如果没有配置默认情况ipojo插件会先在src/main/ipojo或者src/main/resources目录下查找metadata.xml文件,如果没找到,就找target/classes/metadata.xml和工程根目录下的metadata.xml。

设置跳过annotation的处理

要跳过annotation的处理,可以在<configuration>标签中配置<ignoreAnnotations>,例如:

iPOJO xml schema的使用

一般就用官方的schema就行了,有了xml schema在配置component和instance的时候就方便很多。

当然不使用xml schema也没有问题,iPOJO maven plugin会使用内嵌的xml schema来解析你配置的metadata文件。如果想让iPOJO maven plugin不使用内嵌的xml schema,可以配置<ignoreEmbeddedSchemas>为true,例如:

(可能不能访问外网的公司,需要使用ipojo xml schema时,需要把xsd放在内网中,这时候就需要这个功能了吧)

使用maven命令(skeleton)来创建一个iPOJO bundle工程

maven-ipojo-plugin提供了一个方便的创建iPOJO bundle工程的方案,你只需要根据需要执行下面的maven命令即可:

这个命令会生成pom.xml、src/main/java和src/main/resources目录,以及groupId.artifactId组成的包名目录,还有使用了iPOJO annotation的实例代码。需要注意的是,pom.xml中的maven-ipojo-plugin将默认使用最新的版本,如需使用低版本需要手动修改pom.xml。

在pom.xml中配置iPOJO的metadata

( 额,这种方式感觉不太雅~~不建议使用)

3. Reference

maven-ipojo-plugin的官方文档:http://felix.apache.org/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-tools/ipojo-maven-plug-in.html

go语言的相关文档教程和视频资料

现在go语言教程已经不少了,下载Go开发环境后,doc里也会有非常详尽的文档,或者上go语言的官网看资料,不过这些都是英文的,下面的这些资料都是我搜集的go语言中文文档教程和视频资料,希望对go语言的爱好者有所帮助。

  1. http://code.google.com/p/golang-china/,比如:go爱语言粉丝翻译的go语言文档
  2. http://v.youku.com/v_show/id_XMTY4Mzk5NTc2.html
  3. http://u.youku.com/user_show/uid_golangchina
  4. go语言粉丝收集的资源汇总:http://blog.sina.com.cn/wonderfogo
  5. golang的网上论坛,不少人在这交流经验:http://bbs.studygolang.com/forum.php
  6. 一个比较好的go语言资源网站(英文的):http://go-lang.cat-v.org/
  7. Golang编程基础 成为 Go 范(Fan).ppt:http://vdisk.weibo.com/s/958D4
  8. Go语言编程-v1.0.0.pdf:http://wenku.baidu.com/view/6d772a04ba1aa8114431d9af.html
  9. 《学习GO语言》:http://wenku.baidu.com/view/5d8de810866fb84ae45c8dfa.html
  10. ”@许式伟 – Golang编程基础 成为 Go 范(Fan).ppt”,http://t.cn/zWXw9Mv
  11. ”@许式伟 七周七语言-Go语言习题.pptx” http://t.cn/zWXAwGc
  12. ”Go语言网络编程-v0.0.2.pdf”,可以作为“七周七语言-Golang”习题参考资料 http://t.cn/zWSuwrK
  13. go语言的代码实例:https://gobyexample.com/
  14. Asta谢发起的开源电子书的《Go web编程》:https://github.com/astaxie/build-web-application-with-golang
  15. Asta谢发起的开源go sdk api翻译代码实例:https://github.com/astaxie/gopkg