开发中遇到的问题
在scala开发过程中,有需要使用Class获取scala单例(孤立)对象的需求,但是直接使用Class.newInstance()是无法获取单例对象的。
发现
google之后,在一篇博客:http://blog.csdn.net/zhangjg_blog/article/details/23376465 其中有一个例子:
scala
object Test {
val a = "a string";
def printString = println(a)
}
编译之后可以看到有两个class文件:
Test$.class
Test.class
也就是说, 这个孤立对象也被编译成一
继续阅读 »
Packages all targets for the current platform:
bash
$xmake p
$xmake package
Packages the target test to the output directory: /tmp
bash
$xmake p -o /tmp test
$xmake p --output=/tmp test
Packages targets for the iphoneos platform.
bash
$xmake f -p iphoneos
$xmake p
We can uses the macro
继续阅读 »
各个语言的正则表达式使用,在这些记录一下:
Javascript
Javascript的正则函数好像是最简单的了,也可能是因为本身就是一种弱类型的语言:看一下使用吧:
var pattern = /test$/;
pattern.match("test"); // 这个会匹配全串,返回true or false;
pattern.exec("test"); //这个呢则会查找每个匹配的部分,返回值是匹配的字符串
继续阅读 »
这是一个系列文章,主要分享shell(部分功能仅适用于bash)的使用建议和技巧,每次分享3点,希望你能有所收获。
另外,这些建议和技巧都是我工作中用到的,只有我用到了才会记录并分享出来,所以没有什么顺序而言,用到什么我就分享什么。
1 sed替换文件内容
$ cat demo
this is demo
$ sed -i s/demo/test/g demo
$ cat demo
this is test
通过sed,可以很方便替换文件中的某些字符串。比如这里的demo文件只有一行内容:this is demo。通过sed将文件中的demo字符串替换成test。这里的-i选项是直接修改文件内容,字母s表示替换字符,字母g
继续阅读 »
如果你只想编译当前主机环境的平台,例如在windows上编译windows版本,在macosx上编译macosx版本,那么你只需要敲以下命令即可:
bash
xmake
因为xmake默认会去检测当前的环境,默认编译当前主机的平台版本,不需要做额外的配置,并且默认编译的是release版本。
如果工程里面有多个目标,那么上面的命令,会去编译所有目标,如果只想编译指定一个目标,例如:test,那么只需执行:
bash
xmake test
如果你想编译debug版本,那么需要做些简单的配置:
bash
xmake config --mode=debug
xmake
xmake针对每个
继续阅读 »
最近突然发现Java注解真心神器。一行简单的注解可以搞定N多事情。简直不能再方便了。
注解可以看成是一个接口,注解实例就是一个实现了该接口的动态代理类。 注解大多是用做对某个类、方法、字段进行说明,标识的。以便在程序运行期间我们通 过反射获得该字段或方法的注解的实例,来决定该做些什么处理或不该进行什么处理。
定义和调用注解的方法都很简单,这里就不说明了。
重点说明下怎么让注解work起来。
注解本身并不会做任何事情,它需要工具支持才会有用。比如JUnit4的@Test注解自身不会做任何事情,JUnit会识别并调用所有标识为@Test的方法,这种识别处理一般是采用代理模式,通过反射来调用。
大致代码如下
import ja
继续阅读 »
xmake的工程描述文件xmake.lua虽然基于lua语法,但是为了使得更加方便简洁得编写项目构建逻辑,xmake对其进行了一层封装,使得编写xmake.lua不会像些makefile那样繁琐
基本上写个简单的工程构建描述,只需三行就能搞定,例如:
lua
target("test")
set_kind("binary")
add_files("src/*.c")
然后只需要执行编译并且运行它:
bash
$ xmake run test
这对于想要临时写些测试代码来讲,极大地提升了开发效率。。
作用域与工程描述语法
xmake的描述语法是按作用域划分的,主要分为:
外部作用域
内部作用域
继续阅读 »
最近对xmake.lua的工程描述语法进行了增强,现已可以同时支持两种不同语法风格。
set-add描述风格
key-val描述风格
set-add描述风格
这种是xmake经典的设置风格,例如:
lua
target("test")
set_kind("static")
add_defines("DEBUG")
add_files("src/*.c", "test/*.cpp")
优势:控制灵活,可以根据各种条件,通过if-then进行灵活的条件编译,可以驾驭各种高度复杂的配置需求。
劣势:作用域控制不明显,需要手动规范化缩进
key-val描述风格
这种是xmake最近新加的风格,例如:
l
继续阅读 »
本节实现的是使用OpenCV里自带的函数,将两幅图片按照特定的比例融合
实现过程
引用与读取图片
不再赘述,代码如下。
```python
import cv2
import numpy
img1 = cv2.imread('test1.png')
img2 = cv2.imread('test2.png')
```
融合图片
利用addWeighted()函数,将图片1的比例设置为0.6,图片2的0.4,如下:
python
mg_mix = cv2.addWeighted(img1, 0.6, img2, 0.4, 0)
显示图片
分别显示两幅原图和融合后的图片:
```python
cv2.imsh
继续阅读 »
Volumes in Docker
The following command mounts volumes from host with uid/gid:
docker run -i -t -v $HOME/test:/opt/test -u=10:10 ubuntu
继续阅读 »