存档

‘技术类’ 分类的存档

关于“画”图那些事儿

2010年7月28日 神相 11 条评论

服务平台对我们团队来说,是一个很大的兴奋点。看得出团队的每一个人都铆足了劲,希望能大干一场。目前在需求阶段的我们,需要对业务也好,对系统也好,更多的去沟通和理解。我一直都很崇尚看图说话,这个习惯是我以前老板叶伟(目前是盛大文学的CTO)培养的。老叶是对我在管理和结构化思维(画图)影响很深的老板,我到现在还清晰地记得老叶第一次辅导我画业务流程图的场景。他给我的一些原则和技巧到现在一直受用。

在服务平台需求讨论的时候,看了蛮多同学画得图,可能业务逻辑上是牵强的描述清楚了,但是整张图看起来或者理解起来都是相当的吃力,天垣和巨元也有同感,希望大家的画图能力可以提高。

无用质疑,一张容易读懂的图会大大提高我们的生产率和降低我们的沟通成本。这两天,我花很长的时间和其中四位同学探讨画图原则和技巧,我相信这是值得的。

废话不说,先看两张图(图1:优化前;图2:优化后),我同时把她们COPY到PPT和WORD的结果如下:

图1)

交流区-原
图2)与四海优化

交流区-修改

有趣的现象产生了,图1)完全看不清楚,而图2)清晰可见,为什么?

图1)犯了一个大忌,没有重视原图的大小比例,导致Copy到不同工具后,显示的时候,图1)现象出现了。

娓娓道来…如何避免这个画图大忌?想做一张漂亮美观的图,需要知道那些原则和技巧?

  1. 画图的大小请和PPT的长宽比例类似。
  2. 画图多使用泳道图,很好的帮助我们理清角色和阶段;
  3. 动作框里的描述:不超过8字,用动宾结构描述;
  4. 动作框的大小:长=4格,宽=2格;(很多画图软件都有格子可以做为参考)
  5. 动作框的字体:10号,黑体,加粗;
  6. 动作框和动作框的横间距:1-2格,纵间距:1-2格;
  7. 动作框之间的连接线千万不要交叉;
  8. 至于配色,这个是很多技术同学头痛的,大家可以使用画图工具中的颜色方案;
  9. 如果图标类型比较,可以在图标区描述下;如图2)数据流,缓存,接口
  10. 相信你使用了上述9大原则和技巧,你画业务流程图的能力一定会有一个提升,我也希望通过分享这些不足为奇的小技巧可以帮助大家,同时也帮助到我自己。

    对于画图,我目前的理解,画好一张图是一种境界,画好一张漂亮易懂的图是一种习惯和心态。

最后上几张优化后的图:

与马信优化:

search

与慧观优化

画图技巧

分类: 技术类 标签:

如何在Excel中进行类似SQL的查询

2010年4月25日 神相 没有评论

最近在做开放平台访问成功率数据分析的事情,由于成功率的报表都是直接用Excel导出的,一种方式把Excel数据导入MySQL,另外一种方式直接使用Excel的数据库函数。

下图中,绿色部分的数据源,橙色部分是计算结果,我们的需求是这样的(以数据源为基础):

  1. 计算 “应用Tag=1 ” 应用成功访问总量的合计;
  2. 计算 “应用Tag=1 ” 应用有效访问总量的合计;
  3. 计算  “应用Tag=1 ” 的 访问成功率 = 应用成功访问总量的合计/应用有效访问总量的合计; 先看应用Tag=1 的 应用成功访问总量合计 是如何计算的 ?这时候Excel的数据库函数DSUM开始发挥他巨大的作用。让我们一起看下C4的公式吧
    C4公式为:DSUM($B$7:$E$26,”应用成功访问总量",C2:C3)
    $B$7:$E$26 是构成需要计算的数据库(假定我们称之 report table);

“应用成功访问总量” 是 数据库要进行SUM计算的列 ;

C2:C3 是 指定条件的区域;

如果用SQL来描述的话:select sum(应用成功访问总量) from report_table where 应用Tag=1

C5就不具体介绍了,最后C6 = C4/C5 ,得到了我想要的访问成功率,这样就在不借助数据库的情况下完成了SQL语句的查询,蛮酷的吧。顺便说一下,Excel的数据库函数还包括DCOUNT,DGET,DPRODUCT等等,大家可以慢慢研究,不过基本用法都是一致的。

dsum

Excel-用OFFSET和COUNTA实现动态增加下拉列表

2009年12月9日 神相 3 条评论

今天在用Excel实现一个需求管理的小工具。Excel的下拉框大家一定都知道,是用数据有效性中的序列来完成的。但是他有个很明显的弊端,就是无法动态的去加入下拉列表中内容,一旦下拉列表内容需要做调整的时候,就需要一个个的重新在数据有效性中的序列中去增加,这是一个相当复杂和容易出错的工作。

如何实现这一需求?

先介绍两个Excel中很有用的两个函数:OFFSET和COUNTA。OFFSET是用来返回一个引用,引用可以是单元格或者一个单元格区域的;而COUNTA是用来返回参数列表中非空值的单元格个数。具体的语法我就不在这里描述了,大家有兴趣可以查看Excel的帮助文档。

这里我想实现这么一个具体的功能:我的Excel有一列叫“PM”,并且我想随时在下拉列表里增加“PM人选(如图一)。见图一,目前PM这列有四个人选,我想动态增加一个PM人选“巨元”,如何做?

offset1(图一) 

步骤一:借助另外一个Sheet,用某一列来定义PM人选(如图二)

offset2(图二)

步骤二:Excel有一个叫名称管理器-定义名称,这个功能类似与我们开发语言中的全部变量,在这里我们定义一个变量名称:PM,并设置引用位置:=OFFSET(CONFIG!$C$2,1,0,COUNTA(CONFIG!$C$2:CONFIG!$C$256)-1,1);这个公式是核心,简单解释一下:
1)COUNTA(CONFIG!$C$2:CONFIG!$C$256)-1;返回值:4
2)OFFSET(CONFIG!$C$2,1,0,4,1);返回值:C3:C6的数组

步骤三:在图一中的PM这列使用数据有效性的序列,来源:=PM(就是名称管理器中定义的变量);

步骤四:现在我们可以在图二中PM这列中任意增加、删除、修改内容(增加“巨元”),都会立刻动态同步到图一中的PM下拉列表(显示包括“巨元”在内的五个PM人选的下拉列表)。

大功告成。

分类: 技术类 标签:

[转]Ubuntu sudo apt-get和dpkg命令

2009年10月13日 神相 没有评论

转载:http://blog.163.com/andylauyy/blog/static/989416200810242540447/

收藏之,学习中……

阅读全文…

分类: 技术类 标签:

重新安装Ubuntu9.04(数据迁移)

2009年10月11日 神相 没有评论

3个月前开始用Ubuntu(wubi),经过一段时间的验证,Ubuntu表现出的稳定和方便使我很满意。

由于原来用Wubi的安装方式,所以系统中存在了3个操作系统:

window xp(用于wubi安装)

Ubuntu

window xp(Ubuntu VirtrulBox下)

Ubuntu9.10将于10月29日正是发布,貌似有很多更Cool的东西,本来想等910发布后直接尝试新版本,可惜硬盘空间已经不够,所以我下了个决心重新安装Ubuntn。本来这件事情应该在10-1搞定的,拖到现在。

阅读全文…

分类: 技术类 标签:

梦回编程- 由LD_LIBRARY_PATH引发JNI的理解

2009年9月19日 神相 没有评论

前些天在配置通过OCI的方式连接Oracle中曾进碰到一个关于“java.lang.UnsatisfiedLinkError: no XXX in java.library.path”这么一个问题,这个问题纠结了许久才解决,解决方式参考前面的文章。

趁双休日好好的理解一下产生这个问题的来龙去脉。

先看一段话先:
PATH is the environment variable.
java.library.path is the system properties.
When the java application started, JVM will set java.library.path’s value using PATH’s value.
In java program, it’s very difficult to get the value of environment variables, but it’s very easy to get/set system properties. Use

System.getProperty(”project_root”, “..”);
System.setProperty(”project_root”, “..”);

java.libaray.path 是system properties,在windows系统通常是使用PATH的值,而在Linux上是用LD_LIBRARY_PATH的值。 随便也说一下java.class.path,他是对应于CLASSPATH中的值。
那LD_LIBRARY_PATH的值主要是干什么呢?他是来处理非标准路径下的”共享库“的,可以理解成windows 的dll,但在linux下是*.so的文件。

阅读全文…

分类: 技术类 标签:

梦回编程-JBOSS下的OCI配置

2009年9月18日 神相 没有评论

以前一直用thin的方式来连接Oracle,现在需要使用oci的方式,听说性能要好些。

于是从jdbc:oracle:thin:@10.1.1.2:1521:dev-dbc改成:jdbc:oracle:oci8:@dev-dbcommon

我的环境是Ubuntu9.04,JBOSS1.4,Oracle 10.0.2,OCI
OCI方式(Oracle Client Interface):一组可对ORACLE数据库进行存取的接口子例程(函数),通过在第三代程序设计语言(如C语言)中进行调用可达到存取ORACLE数据库的目的。
有两种方式可以得到OCI的
方式一、安装Oracle 客户端
方式二、下载OTN的instant client(http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html)

方法一我尝试了N次没有成功,估计是Ubuntu安装Oralce Client版本问题
成功的是使用方式二:

阅读全文…

分类: 技术类 标签:

梦回编程-环境搭建

2009年9月8日 神相 没有评论

带着初学者的心态开始搭建环境。先罗列下Java Web编程需要的家伙吧

1)JDK;
2)Eclipse3.5(Subclipse|m2eclipse);
3)Maven;
4)JBoss;
5)Oracle Client(Oracle-xe-client);
6)MySQL Client;
7)WebX,Spring,Ibatis,Antx;

JDK,Eclipse,JBoss,Maven,MySQL Client一路走下来还是比较顺利的,一阵暗喜,速度迅猛啊…可是悲剧马上就发生了。

阅读全文…

分类: 技术类 标签:

梦回编程-序

2009年9月8日 神相 没有评论

在AS的管理岗位磨练了2年时间的我来说,的确在管理的思考和行为上有了些的进步,但是与之对应的是基本编程能力(特指编程实现方法和技巧层面上)的退化。

加入淘宝TOP团队不久,但很看得出淘宝对技术的重视。现在很多的架构师、技术管理者对编程实现和技巧离的越来越远,当然不能说这一定是件不好的事 情,架构师和技术管理者需要考虑的方向和层面是不一样的,但是我觉得我们还是应该在编程实现和技巧上多些磨练。打个比方,一个架构师和技术管理者相当于一 个建筑设计师,开发工程师相当于一个泥水工人,当砌砖的水泥材料、砖头的材质发生变化的时候,可能会对整个方案产生影响。而我们的架构师和技术管理者仍然 凭着自己老的经验办事情的话,一定会出问题的。更何况,IT行业比建筑行业技术的更新更多更快。这也就是我一开始就把编程实现和技巧直接称为编程能力的缘 故,我目前觉得这些东西真的也很重要。这段时间我一直也在考虑这个,于是乎,我准备花1~2Q的时间来修炼编程方法和技巧上的能力。其实这么段的时间内, 可能仍然恢复不了4年前编码行云流水的速度,但是至少经过这段时间的修炼,我要很清楚的明白到水泥材料和砖头材质变化程度。

阅读全文…

分类: 技术类 标签:

CSDN英雄会

2009年8月29日 神相 没有评论

上周末(8月29日)去上海参加了CSDN举办的英雄会,会议主题“创新、创富、创业”。以前很少参加这类型的会议,当是给自己长长见识咯。一天会议下来给我印象很深的地方不多,除了菲青老大对淘宝开发平台的演讲之外,还有三个演讲者给我留下比较深刻的印象。

第一位是周桥宏,很喜欢产品兵法系统总图-出自周桥宏《就这么做产品》一书,可能是我比较喜欢中国古代历史文化的缘故,也或许通过兵法这样的描述方式可以对做产品的理解和阐述更来的直接。号称互动网畅销书第2名,看来值得拜读和收藏。

周桥宏博客(http://blog.sina.com.cn/cpoway)。

第二位是梁肇新,超级解霸的代名词,很多年没有使用超级解霸,也很多年没有听到他的名字了, 这位梁大师风格自成一派,很有个性,从风水的角度谈创业,谈发财,给在场所有的IT人士培训了一场风水入门课程(原来他卖了超级解霸后,一直隐居修炼宏观 经济学和风水学),引的全场一阵阵的轰动,演讲结束还有很多人围在大师旁边,看来风水学还是很有号召力的。

第三位是Cliff Miller,TurboLinux创始人。中文讲的太棒了。接下来听说他要挑战WebOS,牛人。just do it…

最后附上CSDN蒋涛对“创新、创富、创业”的的3条途径:

第一,在细分、分众市场做特色软件产品。

第二,把握软件商业模式和趋势。善于借助广大厂家提供的开发平台

第三,专注、坚持

对我来说,创业这条路似乎已经不太适合我,所以多做一些在工作上创新的工作吧。

PS:在大会上碰到到了我以前的老板Yew,他在某家知名企业搞网络文学,看上去挺不错的,恭喜他工作生活两不误。

分类: 技术类, 管理类 标签: