好用的bash提示符和vim配置

定制bash命令行的提示信息,用彩色显示,还包括当前git branch等。
另外还有vi编辑器的配置,让电脑更好用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
##### ~/.bashrc

alias ls="ls -G"
alias ll="ls -alG"

function parse_git_branch_and_add_brackets {
git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(. *\)/\ \1\]/'
}

export PS1="\[\e[32;40m\]\u@ \[\e[33;40m\]\w \[\033[0;34m\]\$(parse_gi t_branch_and_add_brackets) \[\033[0m\]\$ "



##### ~/.vimrc

set nocompatible
set cursorline
colorscheme torte
set number
syntax on

台湾首次CSD认证敏捷技术实践培训课程

最近在台湾长宏的专业协助下,终于有幸将CSD(敏捷技术实践认证课程)首次带到了台湾。虽然受到台风影响,三天并两天,每晚上到10点,加上内容和练习很多,学员其实会很累。然而学员们现场的认真和积极,真的让我大吃一惊,他们都一直在尽最大努力来完成练习,课后很快地分享出他们的收获与心得。

目前Upeform优普丰在中国大陆、台湾及亚洲地区已经形成完整的Scrum认证培训一条龙服务,包括CSM/CSPO/CSD三大核心认证课程,以及申请CSP学分所需的进阶教练课程。同时Uperform也提供到客户现场的咨询与教练服务。
不仅内容品质有口碑保障,而且Uperform在全球Scrum敏捷的中文认证培训市场规模也稳居第一。

Read More

单元测试JUnit入门

(下文摘自 申健/ @申导 翻译的《有效的单元测试》附录A)


在Java生态系统中,现如今事实上的单元测试框架是JUnit。年复一年,越来越少的Java程序员没有见过JUnit测试代码了。不过,每个人总有第一次,某些人也可能使用着其他的测试框架,那么我们编写了这个简短的附录,快速地开始用JUnit来编写测试。

理解JUnit有两个基本元素。首先,你必须了解JUnit测试代码的结构和生命周期。我们从这里开始。我们将看一看如何在测试类(test classes)中定义测试方法(test methods),然后熟悉测试的生命周期——JUnit如何以及何时实例化和调用你的测试类及其方法。

其次,就是JUnit的断言(Assertion) API。基本的和常用的断言方法很简单,你看到它们的方法签名就知道如何使用了。因此,我们只会通过名字来调用这些方法,而聚焦于那些缺乏自我解释的更加“不透明”的断言。

总的来说,JUnit是一个小而简单的框架,我毫不怀疑你会快速地学会运行它。最终你会在某些地方卡住,可以求助于专门的JUnit书籍,比如Manning Publication出版的优秀书籍《JUnit in Action (2nd edition)》就会派上用场。在那之前,我希望本附录包含入门需要的全部内容,帮助你跟上本书的其他内容。

Read More

如何进一步提高敏捷组织的灵活性和顺畅度?

引言

2015.5.28,携程网宕机,消耗了10几个小时才恢复,每小时的损失高达100万美元。作为随时处于变化之中的互联网公司,发生事故总是难免的,但在这次宕机中对突发事件中响应得不够灵活顺畅,就很难被接受了,据说几位高级总监已经被开掉了。

近年来,不论大型还是初创公司,纷纷引入敏捷软件开发的理念,遍地开花。敏捷在不同的组织中以不同的形态出现,Scrum、看板、甚至精益创业等等,无不围绕快速迭代和改进的研发理念展开。强调需求分拆,时间分拆,进度可视化,利用度量进行改进等实践,来提高组织协作的顺畅度,提高灵活性以满足随时变化的业务需要。老板、销售、产品经理、项目经理、过程改进人员、开发测试人员都能听得懂,然后开始导入,不亦乐乎。

一段时间后,爱思考的管理者就会冒出一些疑问,怎么开了很多会没是觉得配合不顺畅?怎么还是感觉进度不快?质量也没见提高?于是乎,很多人就都会给出分析:比如开站会的姿势不对,比如看板不够漂亮,比如度量手段不完善,比如团队缺乏正能量,等等。总之,都还是强调深化过程改革和意识培养。但现状却是仍然觉得组织协作不够顺畅,以至于对市场事件和业务需求变化不能够及时响应,业务总是觉得一点需求变更就会花很久才能完成,最终客户方的满意度提高缓慢。

刚刚买到一本《如来神掌》,就以为自己真的会功夫了?

Read More

从管理1.0到管理3.0的大跃进。管,或者不管,问题都在那里,不增不减。

前言

王宇王大爷发表的《拥抱管理2.0世界之“看板”:强迫团队的微观管理工具》,以及路宁路大丝的评论《看板是强迫团队的微观管理工具吗?》,感觉槽点太多,忍不住也来说几句。

(一)

管理1.0、2.0、3.0根本不是线性的发展,不在一个维度上。我认为它们是事物复杂性增加后的主动应对,从1.0到2.0,是简单系统的不断叠加后,想要保证叠加的规范性、完整性和可复制性。而从2.0到3.0,则是要解决复杂系统如何决策的问题。这3个阶段甚至可以同时共存,就像人与草履虫在地球上共存,就像繁荣的首都北京周边山区至今还有很多孩子喝不到牛奶。

想到一个故事,说是大跃进期间,村公社要求每家都要上交所有的粮食和牲畜,只有主人公家里私藏了一口大白猪没有上交。某一天,公社在主人公家里开会讨论两个议题,一是《让群众每天吃到红烧肉》,二是《实现共产主义》。书记说现在没有猪,咱们直接讨论第二个议题吧。书记告诉大家,将来大家都不用劳动了,劳动都由机器负责,大家也不用吃肉了,吃营养药丸就行。村民表决一致通过,要在1970年实现共产主义。突然大白猪叫了一声,被发现了。公社书记说,暂停第二个议题,今晚都到公社食堂去讨论第一个议题。大白猪必须马上上缴,因为它耽误了共产主义进程!

Read More

敏捷开发中分解拆分用户故事的几种模式招式

User Story is a lightweight requiement in Agile mode, splitting big specification to fine granularity is helpful to increase flexibility, deliver highest value earlier and feedback earlier to expose risks. Here’s some patterns for splitting user story, also it described the “5C” characteristics and INVEST acronym for good story.

用户故事(User Story)是敏捷开发中流行的需求表达手段,各种敏捷流派中都提倡将大型需求进行化整为零,减少颗粒度,提高灵活性,实现尽早交付价值和揭示风险。本文根据 @申导 多年敏捷实践经验,同时借鉴业内流行做法,整理出一套分解用户故事的模式,分享给大家。并且最后也给出了优秀的用户故事需要满足的5C特征及INVEST原则。

Read More

理解unicode和utf8字符编码

本文以python语言为例,解答下面几个问题:理解unicode的统一性,unicode与utf8和ASCII到底是什么关系?又如何在实践中用好字符编解码呢?

令人头疼的字符编解码乱象

由于历史原因,中文字符编码标准众多,特别是在Windows操作系统上,GBK,GB2312,UTF8等等,各不相同,还记得各种场合出现的乱码吗?而在Mac系统上,由于完全统一用UTF8编码,所以编程人员在开发调试时就不大会因为编码操心。然而,一旦涉及到与第三方系统对接,还是不免会遇到编解码的问题,不论这种多系统集成的模式叫做SOA或者MicroService也好,每个系统都有自己的接口定义,即使是用SOAP协议夜还会有不同版本,更不用说各种自定义的基于XML或JSON的准Restful协议了。
总之,不同操作系统,不同的第三方系统,带来了不同字符编解码复杂局面。

Read More

Scrum Master 技能模型

Scrum Master的定义是这样说的:团队的仆人式领导者,帮助团队排除障碍,仅有的权力是针对Scrum过程的。

从实践中看,SM其实就是组织的敏捷教练,是组织变革的代言人,需要对交付以及长期的转变之间进行平衡。很多人想了解SM的进阶技能,来进一步提升。

从领域上来说,SM要了解技术、业务、组织结构的领域知识。而从技能上来说,要掌握以下几个部分:

  • Training
  • Mentoring
  • Facilitating
  • Coaching

解决在iOS App中集成支付宝时遇到的RSA密钥签名问题

最近在自己的iOS native App中集成支付宝功能,发现有即时到帐、手机网页、快捷支付,之间的区别说的不够清楚,接口及参数定义更是各不相同。对于Native App来说,选择快捷支付(wap)就对了。

说起集成文档及Demo,发现文档质量比起五年前没啥进步,一如既往的不知所云,甚至缺少某些关键步骤。而且Demo中的代码一直强调此代码不完全能直接使用,可是我想说,开发者看demo的意义就在于能够快速的解决问题,最好能一键集成,SDK的集成度可以做得更好。可是无论文档和代码都缺少版本控制,二者之间存在大量不一致现象,更不用说出错后的信息让人难以跟踪,跟当年Windows的出错信息有得一拼。

下面说说集成快捷支付中遇到的一些关键环节,特别是RSA加密的问题,因为快捷支付只支持RSA,不支持MD5方式。

Read More