月度归档:2012年08月

json_lib处理null字符串bug

使用json_lib 2.2.3及以下的版本,程序中调用JSONObject.fromObject()来从字符串中转化一个json对象时,某些情况下,比如某个节点的value值是String型的“null”(含引号),经过JSONObject.fromObject()转化后,返回的json对象会把双引号去掉,变成null,也就是空值。

解决方法是升级json_lib包,升级到2.4即可解决。

如果使用maven管理依赖的话,还要添加common-collections和ezmorph的包依赖,因为json_lib 2.4的pom文件中并没有显式依赖这两个包。

1
2
3
4
5
6
7
8
9
10
11
<dependency>
         <groupId>net.sf.ezmorph</groupId>
         <artifactId>ezmorph</artifactId>
         <version>1.0.6</version>
</dependency>
 
<dependency>
         <groupId>commons-collections</groupId>
         <artifactId>commons-collections</artifactId>
         <version>3.2</version>
</dependency>

--EOF--

『唯美人像摄影必拍的56个场景』

其实作者是针对具体场景具体照片给出建议的,我见有些是通用的经验,便提取出来,作为笔记。

1. 不必回避前景中的杂乱枝条(线条),可使画面层次更加丰富,但是,线条不可分割模特脸部。[P23]
2. 斜坡上的野花丛,放低机位,让野花充满画面下部,让模特与花丛保持一定距离,可以虚化花丛,压缩景深。[P30]
3. 拍摄人像,尽量不让模特直白展现在画面里,避免一览无余。应该制造前景。例如利用悬挂的枝条叶子,遮挡在画面一侧作为前景,增加画面层次。[P60]
4. 对于有延伸感的小路,应让模特低下来和低矮的场景结合。[P66]
5. 光照充足的条件下,适度提高ISO(如250+),拍出的照片会有很饱满的明亮感。[P78]
6. 光比(亮部和暗部的受光比例)较大的情况下要拍柔和的照片,可大幅提升曝光补偿,同时用大宽容度的RAW进行拍摄,使暗部充分曝光,降低光比。虽然亮部会过曝,但是暗部的信息都保存下来了,可进行后期处理。[P82]
7. 逆光时,在拍摄前凑近模特脸部,使模特脸部布满取景框,矩阵测光并锁定曝光值,最后重新构图拍摄。与直接点测光的区别在于,点测光只能对脸部的一点进行测光,而这种方法能得出整张脸准确的曝光。[P83]
8. 在前景有格状线条的场景下,不能贯穿、重合、遮盖模特的眼睛和眉毛。[P87]
9. 曝光没有对错,只有合不合适,视作品主题而定。一般情况下,曝光补偿要“白加黑减”:当画面较亮时,相机自动测光会减少曝光量,导致暗部过暗,局部欠曝,应该加曝光补偿。当画面较暗时,相机自动测光会增加曝光量,导致亮部过亮,局部过曝。[P110]
10.从上往下拍摄平躺的模特时,让模特头部搭到地上会导致面部角度不够理想。可在头下垫些东西规避,使模特脸部平行于相机的镜头平面。[P146]
11. 色彩单调的场景,模特宜穿鲜艳衣服。色彩艳丽的场景,模特可选择色彩素雅(白色)的衣服。[P152]
12. 背景细节太多容易与前景的模特混合时,可以不断增加模特与背景的距离,适当虚化背景。[P172]
13. 倾斜构图时,会让人觉得不稳定而产生画面的倾斜动感。[P199]
14. 拍人像时尽量拍环境人像照片,可提升照片感染力,提升调动复杂元素的能力,以获得单纯人像照片所不能达到的视觉宽度和丰富度。[P218]
15. 拍摄清新类照片时,让模特沉浸在自己的情感里,少让模特直接看镜头。减少镜头的介入感,会对画面情绪感有提升。[P231]
16. 下雪的时候,不宜拍摄模特运动幅度过大的照片,飘落的雪花容易造成模特面部脱焦。应该在稳定状态下拍摄。[P252]
17. 背景色彩杂乱,采用黑白拍摄模式。[P271]

--EOF--

How to use TortoiseSVN to merge two branches

Suppose merge branch A to B, following the next steps:

1. Checkout branch B to a folder B.
2. Enter folder B, right click -> choose "TortoiseSVN" - > choose "Merge….".
3. Choose Merge type: merge a range of revisions.
4. Paste branch A's url to "url to merge from" field.
5. Fill the Revision range to merge with the form like: startVersion-HEAD. Click "Next" button.
6. Click "Test merge" button to preview merge result.
7. Click "Merge", and solve the conflict at last.

--EOF--

『乌金血剑』

对于『乌金血剑』的电视记忆已经非常模糊,只记得一个铸剑师说过,要铸成真正的乌金血剑,最后一道流程是需要人的血。出于怀旧目的,不久前看了一遍黄易的『乌金血剑』原著。

故事蛮弱的,云上村地下埋了无数乌金被发现后,因为利益驱使,这里就成了一个多事之地,村民陷入到宫廷政变阴谋,于是故事简单地演化为正义与邪恶的斗争。正义的代表英雄少年风亦飞,邪恶的代表欧阳逆天,最后风亦飞手持乌金血剑刺向欧阳逆天的那一剑,没有炫目的招式,而仅仅怀着一颗缅怀云上村无辜村民和正义侠士的心。这情形就好像『七龙珠』最后孙悟空击败一星龙的招式,简简单单的龟波气功,汇集了全宇宙正义力量的战斗力,冲击波过后一星龙灰飞烟灭。

欧阳逆天死后,风亦非顿感空虚,因为宋别离,慕农,铁隐们的血海深仇已经得报,再加上此之前与他短暂相恋的唐剑儿死去,少年生活中失去了目标,选择从悬崖跳下,结束了他正义短暂而不平凡的一生。

乌金打开了人们心中的欲望牢笼,以乌金加人血铸成的乌金血剑以粗暴的方式将邪恶从世界上抹去……既然世上已经没有了邪恶,那么作为平衡,正义力量也没有了独自存在的必要,等邪恶再次出现时,会有另一个宋别离、风亦飞以另一个云上村的性命为代价完成复仇,换来世界安宁。黄易想表达的就是这个意思吧?

--EOF--

lvs dr模式基本原理

lvs dr模式中通讯的角色有以下几类:
client: 客户机
director:调度节点
real servers:集群节点

client将请求发送到director,director收到请求后,根据负载均衡算法,从real servers中选取一个目标通信对象,假设为rs-1,将client的请求送到rs-1。再由rs-1将应答包返回给client。

包的传输路径为: client --请求包--> director --请求包--> real server --应答包--> client

请求包从client经过director到real server的传输过程中,ip包头部中的源ip和目的ip地址字段并未改变,源ip是client的地址,目的ip是director的地址,改动的是数据链路层的数据帧头部信息。director会把数据帧的源mac地址和目的mac地址改变后,把这个帧发送到real server(要求director和real server在部署在一个2层交换机连接的局域网络中)。real server发给client的应答包中,源ip地址是director的ip,这会让client觉得,自己是在跟director直接通信的,屏蔽了服务器集群内部细节。

--EOF--