• Git 详解 at 2013年07月22日

    [i=s] 本帖最后由 scmroad 于 2013-7-22 14:41 编辑

    Git 详解(二)

    Git 中级用法:

    Ignoring files 项目里总会出现你不想跟踪的文件。当然这些文件你不对它们进行 git add 操作就行了,但是这样也很麻烦, 如果使用 git add .命令和 git commit -a 命令呢?你能告诉 git 去忽略一些文件,我们只需要在我们工作目录顶级创建一个.gitignore 文件就可以了。就像这样:

    [b] Multiple User Access using Gitosis[/b]

    如果不想为每个用户都开一个单独的帐号,你需要用一个叫 gitosis 的工具。 http://www.urbanpuddle.com/articles/2008/07/11/installing-git-on-a-server-ubuntu-or-debian

  • 创新工场 CEO 李开复:不看好微软重组

    7 月 12 日消息,昨日晚间 微软 正式宣布了业界关注已久的重组方案。创新工场 CEO 李开复在知乎上发表观点称,不看好微软重组的效果。

      以下是李开复的主要观点:

      一、微软的重组有 4 个重点:

      1.中心化大公司组织结构。鲍尔默强调这是个 “一个微软” 的策略,以大公司战略为核心。也就是说微软将从一个 “业务型组织” 调整到 “职能型组织”。

      2.强调消费者,强调硬件。近年微软在消费者方面节节败退,而在企业级别软件却做的不错。这次重组可谓背水一战,加码消费者。

      3.鲍尔默的角色更加重要。从部门收回权力,让更多决策要到鲍尔默层面才能决定。这次改组是鲍尔默 “最后一次机会”,他将背水一战。

      4.处理高层升迁。用改组来给部分人更大的权力,削减一些其他人的职权,让他们知难而退。

      二、对微软这次重组不看好的原因:

      1.改组影响执行速度。移动互联网时代速度最重要,这样的一个重组可能会导致协调成本更高,决策更慢。比如说 Skype 是很重要的资产,但是它进入微软后面市场份额开始下滑,而这次重组可能对这类 “需要快” 的产品带来巨大的打击、在越来越多公司用 “轻公司、创业” 模式来寻找更快的时候,微软不与时俱进,却改组成了 “重公司、整合式决策”。

      2.赌注太大,不够务实。微软的强项是企业级软件,而在消费者领域,微软被在 苹果 、 谷歌 (微博) 、 Facebook 打的满地找牙。因此,我个人认为微软不妨接受消费者业务未来不可避免慢慢地衰落。希望企业级的成长能弥补,因为企业级对 IBM 、Oracle、 SAP 的战役还是可能赢的,也有巨大的价值。但是,这次改组我们看到是微软对消费者领域依然充满信心,增加投入。虽然消费者技术确实带来企业级的革命,但是感觉这是 bet the company move 是一个打不赢的战役。而且,整合一整个公司可能带来比较大的成本,而有些整合可能并没有双赢,而且还可能带来包袱。

      3.「一致化」不是用户的需求。鲍尔默提出:新组织架构要「为 PC、平板电脑、手机和 Xbox 提供一致的用户界面」。如果过去 10 年我们学到了什么,就是这些设备需要根据场景开发合适的界面,不是不可以一致化,但是把一致化当作主要目标,就是把微软作为中心,而不是把用户需求作为中心。最经典的历史案例就是 Windows Mobile 早期最大的问题就是公司要求和 Windows 整合,结果整个体验像 Windows 却很难运用功能,也不是用户需要的。另外,微软希望消费者购买「全套微软」设备,这也是个困难而不务实的目标。

      4.大公司架构反微软基因。微软的管理基因是「牛仔」,最成功的产品线和领导者是最独立不听话不协作的。最好的例子就是打造 Xbox 的 J Allard,和曾经成功管理 Office 多年、并曾经拯救 Windows 的 Steven Sinofsky。微软很多中高层奋斗的目标就是成为下一个「领头牛仔」,能做到一个业务群的 CEO。而这次的重组不但不符合牛仔基因,还限制了中高层的梦想(因为最高能达到的级别只是「工程集团负责人」,而不是「业务群 CEO」)。估计会有更多中高层领导流失。如果这个改组要成功,微软需要一个新的文化,给优质员工不同的期望值和激励机制,而这是很难很难的。

      5.职能型公司如何问责?一个接近千亿美元业务,近十万人的公司,实在不适合职能型的组织架构。一个组织架构的可持续性,很大程度要看是否能达到问责(accountability),而最简单有效的制度就是划分成产品线,让每个业务群的负责人有自己的季度盈亏目标。这次改组的职能型架构,把所有盈亏目标都放在鲍尔默身上,向他汇报的人却只有工程、市场、商务等目标,感觉很难运营,很难官吏,很难衡量,很难持续。

      6.鲍尔默是否胜任。鲍尔默本身是一个卓越的单业务管理者和一个超级销售专家。但是他在 CEO 层面表现欠佳,在战略、协调上一直表现不佳。这次把更多协调的工作和大量的多产品线的决策压在他一人的肩膀上,令人很难乐观。

      7.高层失血严重。我一直认为 Steven Sinofsky 是 CEO 的最好人选,他虽然强势凶悍,但是他在每个职位上都能够放权,也能达到他人达不到的执行效率。他在一年前离职,可能就是鲍尔默无法给他一个更高的接班人职位(今天的改组,也看到了没有二号人物的角色)。除了 Sinofsky 之外,另外四位离职者也都是微软的将才,他们的离职,和下面中高层必然的离职,会让微软严重失血。

  • Matthew Cooke says: Whilst synchronous continuous integration isn’t going to work for every team (for instance if you have very slow tests that take 20 minutes to run) if you have fast tests there is a massive benefit to the synchronous model. The big advantage is that it becomes very rare for the stuff in version control to be broken, if you use the async model you may find things broken quite frequently.

    If you are going to spend a while setting up what is basically a worse CI model (async) where breakages can affect every other developer (or pair) it’s at least worth checking the time couldn’t be better spent speeding up the slow tests.

    Remember with the async model if it takes 20minutes to run your tests there could be, say, a 30minute window where the broken code now committed to version control is merged into other developers local code bases – and that really sucks!

    1. 依赖

    几乎每个 Java 项目都会用到开源框架。同时,对于具有多个子模块的项目来说,项目之间也会有所依赖。所以,管理项目中对开源框架和其他模块的依赖是每个项目必须面对的问题。同时,Gradle 也使用 Repository 来管理依赖。

    4.1 Jar 包依赖管理

    Maven 提出了使用 Repository 来管理 Jar 包,Ant 也提供了使用 Ivy 来管理 jar 包。Gradle 提供了对所有这些 Respository 的支持,可以从 Gradle 的官方文档上了解更详细的信息。

    Gradle 沿用 Maven 的依赖管理方法,通过 groupId、name 和 version 到配置的 Repository 里寻找指定的 Jar 包。同样,它也提供了和 Maven 一样的构建生命周期,compile、runtime、testCompile 和 testRuntime 分别对应项目不同阶段的依赖。通过如下方式为构建脚本指定依赖:

    在构建脚本中使用"${username} "就可以访问该文件中定义的相关值。

    由于篇幅有限,本文只是我在一个大型 Java 项目上使用 Gradle 的部分经验,并未涵盖所有 Gradle 相关的知识,包括如何编写 Gradle 插件以及 Gradle 对其他语言的构建,读者可以通过阅读 Gradle 的官方文档(比起其他开源软件,Gradle 的另一特点就是文档详细)来了解。另外,Gradle 是基于 Groovy 的构建工具,在使用 Gradle 的时候也需要了解和使用 Groovy。所以,在学习 Gradle 插件的过程中,也能学会 Groovy 相关的用法,可谓一举两得。

    参考文献:

    [1] CoC: http://en.wikipedia.org/wiki/Convention_over_configuration

    [2] DSL: http://en.wikipedia.org/wiki/Domain-specific_language

    [3] Micro Service Architecture: http://yobriefca.se/blog/2013/04/29/micro-service-architecture/

    [4] Guava: https://code.google.com/p/guava-libraries/

  • 例如,在我们项目的 config 目录下包含了 application 文件夹,定义了不同环境所需的不同配置文件,其目录结构如下图所示:

    [attach] 2144[/attach]

    在构建脚本中,根据从命令行读入的-P 参数,使用不同的资源文件夹,其代码如下:

    还可以通过 checkstyle 设置 CheckStyle 插件的其他配置。

    3.2 FindBugs

    FindBugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。Gradle 使用如下的代码为项目的构建脚本添加 FindBugs 的插件:

    apply plugin: 'findbugs' 同样也可以在 FindBugs 的配置阶段(Configuration)设置其相关的属性,比如 Report 的输出目录、检查哪些 sourceSet 等。

    3.3 JDepend

    在开发 Java 项目时经常会遇到关于包混乱的问题, JDepend 工具可以帮助你在开发过程中随时跟踪每个包的依赖性(引用/被引用),从而设计高维护性的架构,不论是在打包发布还是版本升级都会更加轻松。在构建脚本中加入如下代码即可:

    apply plugin: 'jdepend' 3.4 PMD

    PMD 是一种开源分析 Java 代码错误的工具。与其他分析工具不同的是,PMD 通过静态分析获知代码错误,即在不运行 Java 程序的情况下报告错误。PMD 附带了许多可以直接使用的规则,利用这些规则可以找出 Java 源程序的许多问题。此外,用户还可以自己定义规则,检查 Java 代码是否符合某些特定的编码规范。在构建脚本中加入如下代码:

    apply plugin: 'pmd' 3.5 小结

    上面提到的几种代码检查插件 apply 到构建脚本之后,可以运行:

    gradle check 来执行代码质量检查。更详细的信息请查阅 Gradle 的官方文档。运行结束后会在对应的项目目录下的 build 文件夹下生成 report。

    对于 Gradle 没有提供的代码检查工具,我们可以有两种选择:第一就是自己实现一个 Gradle 插件,第二就是调用 Ant 任务,让 Ant 作为一个媒介去调用在 Ant 中已经有的代码检查工具,比如测试覆盖率的 Cobertura。我们的项目使用了 Ant 来调用 Cobertura,但是为了使用方便,我们将它封装为一个 Gradle 插件,这样就可以在不同的项目里重用。

  • 1.4 其他共享

    在 Gradle 中,除了上面提到的配置信息共享,还可以共享方法以及 Task。可以在根目录的 build.gradle 文件中添加所有子项目都需要的方法,在子项目的 build.gradle 文件中调用在父项目 build.gradle 脚本里定义的方法。例如我定义了这样一个方法,它可以从命令行中获取属性,若没有提供该属性,则使用默认值:

    这里定义了一个 Sync 类型的 Task,会将父项目的根目录下的 config 文件夹的所有 properties 和 xml 文件使用从 loadGroovyConfig() 方法中加载出来的配置替换,并将替换之后的文件放到 build 文件夹下的 resource/main 目录中。再让打包的 Task 依赖这个 Task,就会把替换之后的配置文件打到包中。

    2.3 更复杂的情况

    上面介绍了在项目中如何使用 Gradle 处理 properties 和 xml 文件中具有相同配置,但其中的一些值并不相同的情况 。然而,在有些项目中不同的环境配置之间变化的不仅是值,很有可能整个配置文件都不相同;那么,使用上面替换的处理方式就无法满足要求了。

    在我所在的项目中,我们需要依赖一个外部的 Web Service。在开发环境上,我们使用了 Stub 来模拟和 Web Service 之间的交互,为开发环境提供测试数据,这些数据都放置在一个 Spring 的配置文件中;而在测试和产品环境上,又要使用对应的测试和产品环境的 Web Service。这时,开发、测试与产品环境的配置完全不同。对于这种复杂的情况,Gradle 可以在构建过程中为不同的环境指定不同的资源文件夹,在不同的资源文件夹中包含不同的配置文件。

  • [i=s] 本帖最后由 scmroad 于 2013-7-8 15:45 编辑

    1.2 共享配置

    在大型 Java 项目中,子项目之间必然具有相同的配置项。我们在编写代码时,要追求代码重用和代码整洁;而在编写 Gradle 脚本时,同样需要保持代码重用和代码整洁。Gradle 提供了不同的方式使不同的项目能够共享配置。

    allprojects:allprojects 是父 Project 的一个属性,该属性会返回该 Project 对象以及其所有子项目。在父项目的 build.gradle 脚本里,可以通过给 allprojects 传一个包含配置信息的闭包,来配置所有项目(包括父项目)的共同设置。通常可以在这里配置 IDE 的插件,group 和 version 等信息,比如:

    根据我对 Gradle 的使用经验,对于子项目少,配置简单的小型项目,推荐使用第一种方式配置,这样就可以把所有的配置信息放在同一个 build.gradle 文件里。例如我同事郑晔的开源项目 moco。它只有两个子项目,因而就使用了第一种方式配置,在项目根目录下的 build.gradle 文件中设置项目相关的配置信息。但是,若是对于子项目多,并且配置复杂的大型项目,使用第二种方式对项目进行配置会更好。因为,第二种配置方式将各个项目的配置分别放到单独的 build.gradle 文件中去,可以方便设置和管理每个子项目的配置信息。

  • @ 任燕_Emma: 你在 gerrit server 端运行 ssh -p 29418 username@server gerrit show-connection,在 output 中找到 Idle 那一列,如果时间大于 2-3 分钟,这个 connection 就卡住了。 user 那端就会出现卡住不动的状态,这个 connection 还杀不掉,只能重启 service

  • 配置管理经理 兰亭集势 at 2013年06月27日

    配置管理经理 年薪:20-40 万 工作地点:北京

    岗位职责:

    1. 负责配置管理职能线的日常工作
    2. 制定公司级别的配置管理规范与体系
    3. 从业界、开源组织等抽取相关的配置管理最佳实践,并在公司推广
    4. 对发版过程质量与结果负责
    5. 提供单元测试方法、工具,为研发阶段代码质量提高给予支持

    岗位要求:

    学历要求:全日制统招本科

    工作年限:4 年以上 任职资格的具体描述:

    1. 211 院校本科以上学历;计算机相关专业;
    2. 熟悉互联网软件工程常用开发模式
    3. 两年以上开发经验,熟练使用下列语言之一:C++/Java/Php
    4. 五个以上产品线,不少于三年的配置管理支持工作(过程评估、方法建议、工具使用、咨询、培训等)
    5. 掌握 ISO9000、CMMI 的配置管理方法论; 6、能独立制作配置管理方面的培训课件,并对多个团队进行定制培训
    6. 具有多种配置管理工具调研、评估、开发、升级、过程推广的实战经验。
    7. 熟练使用 Liunx 操作系统。
    8. 良好的沟通与合作能力。

    企业介绍: 正在发展和扩张的 B2C 外贸销售网站。通过其创新的商业模式、领先的精准网络营销技术、世界一流的供应链体系为全世界中小零售商提供一个基于互联网的全球整合供应链。

  • 一个 mina 的部署脚本

    by mjason

  • 赞美 Mina,实在太好用了,写点心得给还在纠结的同学

    by darkbaby123 转自: http://ruby-china.org/topics/9606?page=1#replies

    最近重构代码完成需要部署,想着最近几年受够了 Capistrano,也该换换新欢了,遂试了试 Mina。发现确实好用!

    说下几点好处:

    部署时生成的信息更简洁清楚

    这个其实是我在意的一点,也是最烦 Capistrano 的一点,一个简单的部署任务,提示信息刷屏似的,混杂了一堆底层命令和 IP 地址,生怕你不知道脚本是在远程跑似的……因为信息太多,有时候出个 bug,想跟踪看看哪一步错了,都要仔细分辨下……

    其实我想看的就是,部署几大步骤简单列出来,版本库迁出,symlink 配置文件,跑 bundle,编译 assets,重启服务器,某些步骤加一点额外信息就够了,没必要每个步骤都把细节全部列出来。

    以下是从 Mina 部署的提示信息:

    谁更简单,这点见仁见智。但个人觉得 Mina 的方式更简单清晰,不仅一眼就可以看出整个部署流程要执行哪些任务,而且也方便你随意修改。Capistrano 中每次我要插入一些自定义任务时,都要先回忆一下它默认会跑哪几个任务,然后想想代码该放在那个任务的回调里,再想想是放 before 还是放 after……

    支持 git submodule

    用过 git submodule 的都知道要更新 submodule 要单独跑两个命令。这点我不知道 Capistrano 支不支持,不好评论,但 Mina 会在 clone 版本库的时候自动帮你把 git submodule init 和 git submodule update 两个命令跑了,省心。

    小结

    Mina 只是今天开始用了一下,也算不上熟悉,也许有些结论并不正确。但它给我的感觉,就是保持扩展性的同时,剪掉了 Capistrano 复杂的部分,变得简单清爽。如果你不喜欢 Capistrano 的复杂,Mina 会是个不错的选择。

  • 简单的 rails 部署

    作者:天涯望帆 转自:http://mjason.github.io/blog/2013/01/08/jian-dan-de-railsbu-shu/

    rails 的部署现在最流行的肯定是 capistrano 刚开始学习的 rails 的时候,我也是用这个方式部署,不过每一次写部署脚本太伤了,各种错误,各种调试

    自从有一次在 ruby-toolbox 看到了 mina,终于有点感觉得到解救了

    根据自己的使用 mina 的特点主要有:

    更加简洁的写法 更加友好的提示界面 所以部署方式现在采用的是(rvm + mina + unicorn)

    这里详细记录操作步骤

    安装 mina

    因为 mina 的 gem 是安装在项目的 vendor/bundle 下面 所以需要修改一下 rvm 自动生成的脚本 将文件中的 unicorn_rails 改为 你的项目地址 +current/bin/unicorn_rails eg: /home/deploy/test1/current/bin/unicorn_rails

    接下来就是写启动脚本了,我的 shell 是以 Ruby China 的 mimosa 配置写的,这里就不重复 直接贴上原帖地址和 git 地址 原帖地址:http://ruby-china.org/topics/471 他提供的 git 地址: https://gist.github.com/3547765

    收工!!!

  • 新浪微博-配置管理工程师 at 2013年06月19日

    新浪微博-java 开发工程师

    岗位要求: 1、计算机、通信或相关专业,本科以上; 2、两年以上 JAVA 软件开发经验;精通 eclipse 等主流技术框架或工具; 3、熟悉 linux 或 Unix 开发和运行环境及系统编程; 4、优秀的数据库设计和优化能力,至少精通一种数据库应用 5、熟悉至少一种脚本语言(Perl/Python/Shell)等; 6、熟悉整个软件开发流程; 7、具有配置管理工作经验,有持续集成工具推广经验优先 8、具有良好的沟通和协调能力,良好的团队合作精神。

    岗位职责: 1、负责公司产品的 JAVA 软件设计与开发 2、研究学习技术,满足产品的实际需要

    工作地点:北京.中关村

  • 那就检查 lunch 在机器上装了没有

    如果装了,路径设置正确没有

    执行的用户是否有权限执行

    慢慢排查试试

  • 【7 哥导读】本文是鬼脚七分享的老子智慧系列第三篇,上善若水。水到底有哪些特点,对我们生活又有哪些借鉴?本文还讨论了目前别人都没有讨论的问题,为什么水能做到这些特点?如果你能静下心来思考,相信会有所收获。

    上善若水。水善利万物而不争,处众人之所恶, 故几于道。 居善地;心善渊;与善仁;言善信;正善治;事善能;动善时。 夫唯不争,故无尤。

    —-老子第八章

    [参考译文]

    最善的人就像水一样。水善于滋润万物而不与万物相争,停留在众人都不喜欢的地方,所以非常接近于 “道”。 最善的人,居处最善于选择地方;心胸善于保持沉静;待人善于真诚友爱;说话善于恪守信用;为政善于精简处理;处事能够善于发挥所长;行动善于把握时机。 正因为有不争的美德,所以没有过失和怨咎。

    以上译文来自陈鼓应《老子今注今译》,翻译的不错,不过我也不完全认同。以前每次写译文,都有人说我翻译的有问题,以后我找专家的翻译放在这里,有问题大家找专家争论去。我很少纠结翻译细节,因为怎么翻译都不会是对的,毕竟我们都不是老子。读经文,我尽量去体会而不是翻译。

    上善若水,是我见过的最美的一个词,它来自于老子,怎么翻译这个词都不合适。

    话说老子和孔子走在桥上,看见桥下的流水,孔子说:时间就像流水一样,过得真 TM 快啊(逝者如斯夫不舍昼夜)。而老子不是这么想,老子说:哇靠,最善的品德居然跟水一样(上善若水)。这就是儒家和道家的区别。

    孔子不是得道之人,在孔子的世界里,时间分为过去、现在和将来。而 “现在” 是个伪概念,根本就不存在,当我们说” 现在” 的时候,” 现在” 已经成为过去。因此孔子的世界和我们的世界一样,只有过去和将来,没有现在,故而孔子会说:逝者如斯夫!

    老子是得道之人,在老子的世界里,其实没有时间。或者说,老子的时间没有过去和将来,只有现在。得道之人,都活在当下。老子一直觉得 “道可道,非常道”,道无法描述出来。但老子看见水,想到的就是 “道”。老子说:上善若水。水几于道。

    水有哪些特点让老子这么推崇?水最大的特点是:利万物而不争。基本上所有的生物都离不开水,但水总是处下,哪里低洼到哪里去,如果有人挡住它,它也没关系绕着走。老子说,这是水的歉下之德。水还有一个特点:柔弱。天下最柔弱的也是水,可以任意被变形,可以任意被分开,但柔弱可以胜刚强,水几乎无坚不摧,无孔不入。老子说这是水的柔德。我看来,老子最推崇水的三个特点:利他、处下、不争。

    回想一下我们身边的人,哪个朋友我们最喜欢?一定有个很热心而且不计较得失的人,而且他经常很谦卑。同学聚会组织活动,他挨个打电话,定场地,然后详细说地点,最后可能还是他付账。这就是水的品行,也就是我们喜欢的人品。以前有大学生问我:我有点担心毕业以后在公司怎么处理人际关系,有什么建议?我的回答很简单,你看看《老子》第八章,说得很清楚。

    如果在公司里面有个同事,经常帮助别人,也不争功,还非常的谦虚,所有脏活累活都愿意干,是不是大家都会很喜欢他?这就是 “善利万物而不争,处众人之所恶”。有人说:这样做多吃亏啊,别人都不忙,我一个人忙,还没什么好处?如果真的理解了,就不会争什么好处;真的去做了,就不要争什么好处。好处已经给你了,就是你很好的人际关系,大家都很喜欢你。如果能进一步做到跟水一样,“政善治、事善能、动善时”,那就真的不得了,能力强,人缘关系好!只我们经常拿别人有而自己没有的东西来做对比,经常忘记那些自己拥有而别人没有的东西。是谁说过:

    人生活的压力,绝大部分来自于攀比,很小部分来自于生存。

    上善若水,对团队管理者很值得借鉴。管理者,在公司是个很不容易的岗位,既要完成公司业绩,还要照顾员工成长。我以前说,做一名好的管理者,是个积德的事情。如果把水的特点做个对应,我们会发现对管理者非常适用:

    善于培养员工;(善利万物)

    功劳归团队;(不争)

    脏活累活自己带头干;(处众人之所恶)

    心胸要宽阔;(心善渊)

    对待同事要仁爱(与善仁)

    说话要守信用(言善信)

    制度明确稳定,善于治理团队(政善治)

    能力也不错,能发挥所长(事善能)

    善于把握时机(动善时)

    如果能做到这些,一定是非常优秀的管理者。

    上善若水,做公司做产品也是如此。有些淘宝电商朋友在一起分享经验,最后总结出来一句话:把复杂留给自己,把简单留给客户。在宝贝详情页,把所有的信息都交代清楚,用户关心的问题都形象的描述,客户只要付款,其他的一切麻烦的事情都有我们来解决。这个算不算 “处众人之所恶”?做产品设计也是如此,大后台,小前端。让后端做大量的复杂处理,让前端简单展现。大部分的成功产品都有这个特点,特别是手机上的产品应用。

    在生活中,经常有人说,女人是水做的。在老子的眼里,女人比男人更接近于道。女人比男人更柔弱,但常常是女人能征服男人。女人和男人吵架,最厉害的不是相互打起来,而是女人开始哭。中国历史上,绝大部分时期女人地位都比较低下,她们所做的事情,都是为了她们的男人。女人真的像水一样……

    我家小盆友 6 岁,上次参加钢琴比赛,我问她:你这次比赛要考第几名啊。她说:第二名。我问:为什么呢?她回答:老师说了,友谊第一,比赛第二。我后来和她幼儿园老师吃饭,老师说:你们家闺女啊,比赛都不积极,只顾自己玩了。我心想太好了。真正优秀的人是靠比赛培养出来的么?我相信前提一定是兴趣,而不是竞争。当竞争成为目标的时候,原本的目标就被替换了。最后的结果估计是兴趣慢慢没了,对竞争结果患得患失。

    我们作为父母,小孩上学的时候,经常都跟自己的小孩说:” 你要考第一,一定要考前几名。” 但在真正参加高考的时候,父母好像忽然醒悟了似地,对小孩说:“你什么事情都不用想啊,别有压力,发挥你最好的水平就好了。” 唉,怎么可能呢?自己思考吧。

    水不争,所以没有过失和怨咎。为而不争,是水典型的特点。虽然水不争,但天下莫能与之争。仔细思考,有谁能争过水么?

    有人说:我要比水高! 水说:我一直都很低。

    有人说:我要比水强! 水说:我一直都很弱。

    有人说:我要比水干净! 水说:我一直都在很脏的地方。

    有人说:我的功劳比水大! 水说:我什么功劳都没有啊。

    有人说:我要比水更富有! 水说:我来帮你更加富有。

    看着这些对话,或许能更容易明白。以前我说:我们永远无法打败一个不想赢的人。不想赢不是说不会赢。想想 “天下莫柔弱于水,而攻坚强者莫之能胜”;水是最美的,水是最富有的,水是功劳最大的……

    有很多人都这么想:” 上善若水” 我懂,对水的美德也很欣赏,我自己又不真的是水,不可能做到的!

    但水是怎么做到的,水为什么能让自己利他、处下、不争?这是个很值得思考的问题。

    水最大的特点是没有自己(佛学中的无我么?),水把自己当成了大自然的一部分。水遇到山,就是山的一部分;水遇到人,就是人的一部分;水遇到河流,就是河流的一部分。最后水,无处不在。水是大自然的一部分,很容易理解。我们经常说我们自己也是大自然的一部分,就不是那么容易理解。如果我们真的把自己当成大自然的一部分,是不是也会和水一样,具有这些品行?

    当我们在一条水流很急的小河里游泳,如果逆流而上,会很困难,这个时候我们是自己,不是大自然的一部分,是在跟水抗争;如果我们全身放松,顺流而下,会很容易。为什么?因为我们把自己当成了大自然的一部分,至少是水的一部分了。

    如果大自然是一个人巨大的身体,我们还可以把自己想像成一个食指好了。食指经常干活,无论做多少也不抱怨累,经常抠鼻屎,擦大便,从来不嫌脏,也从来不会觉得自己比脚更加辛苦,或者自己的功劳比小拇指要大,而且很灵活,守信用,不需要食指的时候,也不乱动。这么看,是不是具有了水的很多特点?

    把自己当成大自然的一部分,自己就是大自然了,大自然就是自己。自己会帮助完善自己,自己不会嫌弃自己,自己也不会跟自己争。这样就和水的特性一样了。(这里我说我想起了《基地》中的盖亚,不知道有几个人知道)

    如何才能让自己真正成为大自然的一部分?这个问题太深了,坦白讲,我不知道,听说是要慢慢修炼,有经验的人说当我们静心的时候,会更容易进入那个状态。

    我们真的能成为大自然的一部分么?我相信能。拿灵感来说,我们平时无法要求灵感立即出现,如果能要求出现就出现的话,就不叫灵感了。既然我们不能控制灵感出现,说明灵感其实不属于我们,那属于谁?灵感属于大自然。当我们偶尔身体成为大自然一部分的时候,灵感就出现了。这也是为什么,当我们特别放松的时候,容易有灵感,特别忘我的时候,容易有灵感。放松和忘我的时候,不是执著于自己,而是融入自然。大家还记得阿基米德是怎么发现浮力的原理么?对,当他在放松洗澡的时候。同样也可以解释,为什么艺术家有时的作品非常优秀,但无法再次复制,因为灵感不一定再次出现。

    上善若水,一个貌似容易懂的道理,但很少有人能做到。如果我们试着让自己真正成为大自然的一部分,我们也能利他、处下、不争。

    下次在桥上看见流水,我们也可以沉思片刻说:嗯,上善若水!

    【7 哥闲谈】

    1 今天新浪微博把自媒体账号” 鬼脚七” 加上蓝 V 认证了,这也是新浪公众平台的内部测试账号,可以给所有关注者推送一条私信。具体的申请流程和策略,大家不要来问我啊,我也不清楚,我只是在配合新浪微博做测试而已。

    从本质上讲,微博定位更像是媒体,微信的媒体属性偏弱。对于新浪微博的对于自媒体的开放心态,我非常欣赏。

    目前微博上每周推送的私信数量有限,不知道以后是否能每天推送。所以大家也不要太期待,等测试完善和稳定以后,我会公布的。

    2 关于老子的话题,我再次申明一下,我真的不懂老子,我只是领会道老子智慧的只言片语,在我的生活和工作中有些体会和应用而已。但就像刚学会骑自行车的人会特别喜欢骑自行车一样,我这四五年学到了一丁点皮毛,觉得收益很大,所以会热衷于拿出来分享。真正懂的人,都不会分享,老子说:知者不言,言者不知。

    本文的所有观点,如果你觉得有用,那是老子的智慧;如果你觉得很扯淡,抱歉,是我表达错了。

    关于不争、处下,今天的微博行为又有很好的诠释。有人回复说,没有惊喜你就是小狗,我说我承认我是小狗好了;有人说自媒体是傻逼的称呼,我说我承认我是傻逼的话,就没人再骂我了。当我不想赢的时候,没有人能打败我。

    有些鬼友(关注鬼脚七的人,我称为鬼友,“贵友” 的谐音)给我留言表示支持:

    @ 黄飞鸿的徒儿:7 哥你要是傻 B,那我们就是傻 B 中的战斗机了

    嗯,被称为傻 B 又怎么了?我会少个耳朵么?

    3 这两天正在高考,我之前分享的两篇老子的文章,凑巧对一些学生有帮助。有个朋友给我留言:

    @2BX: 七哥唉,受益匪浅啊~~早上考试第一道题就是老子,作文也写了个为而不争(陕西高四留)

    高四的学生很不容易,除了要考试压力以外,还有很多社会舆论压力。让我们一起祝福他,祝他成功。

    4 大家已经连续上班 6 天了,明天是第 7 天,接下来休息三天,上班两天…….我真是服了制定休假策略的那些人,本来芝麻大点事情,非要搞得全国人民跟着折腾。

    我们原谅他们吧,我知道,是因为他们需要一份工作。

    5 好吧,今天闲谈到此结束,明天微博上应该不会有私信推送了,下次的文章主题还不知道,但一定是精品。我分享的内容主要是互联网、电商和生活感悟相关。如果这篇不喜欢,你可以取消关注了,以后的文章质量不会比这篇高多少。

    本文图片来自于百度百科。

    无论大家觉得文章如何,不要给我回复私信,因为回复太多我看不多来的。大家可以点击找到我的微博上对应的那条,然后转发或者留言。这样方便保存和阅读。

    提前祝大家端午节快乐!顺便提醒大家,假期放下手机,多陪陪家人,多见见朋友,少刷微博。

    ===闲谈结束,鬼友们,下次见!===

  • 辛苦辛苦

  • 总体来说平均薪酬每年都在以 1000 多的量在增加

  • 天津软件企业太少了

  • 猎头生活的感想 (推荐) at 2013年05月23日

      自己交往的人真的可以决定你成功多大,不仅是给你的帮助还是给你的资讯,更重要的是给你潜移默化的影响,我敢说干这么短时间的猎头,以后我不管做什么都是我一生巨大的财富

      80 人中,女性 16,男性 64

      公司管理人员,32 人,销售经理 40 技术主管 8

      学历:本科 56,研究生 18 才人(其中 MBA8 人)PHD6 人

      没有人是本科以下的,可见本科还是大家成功的窍门砖。

      好大学(我说的好大学就是我们大家心理明白的那几所:)7,其他的:73。

      工科:62 人,非工科方法 18 人,工科是压倒性多数

      平均年龄(这个开始我还用计算机算,很笨的说,后来用 excel 直接就可以拿到)31,最小的 25,最大的 42,

      跳槽的频率是 3 次,也就是平静 3 年半跳一次,一般 IBM,HP 的时间都有 7-8 的,不过其它的 2 年多的,2 年以下的很少,

      到经理级别的 26-29 最多,所以 27(一般工作 2-4 年)是大家的一道坎,这个时候跳一下,promote 到经理级,以后机会就不多了,然后是 32?35 又一到坎能 promote 到 director,这关过不去,那么你在小经理这边呆着吧。。。慢慢熬时间拿点福利,35 也是一个 Promote 到 VP,GM 的最好时间,一般过了 40 猎头不会推荐你的,除非你特牛(特牛的人年纪对他没有障碍。

      上次有人问我,魅力究竟是什么,其实我也说不明白,魅力究竟是什么,我的理解是他散发那种气质,那种素养,让你不自觉的想去学习,模仿。因为代理的是高端职位,对普通人比较遥远,可是我们每个人不都是一直向往吗?当然钱不是衡量成功的唯一标准,但我描述的是那一群职业的经理人,职业的销售人员,而不是暴发户,他们身上迸发出来的是一种力量,一种信心,我不知道大家爱不爱看中央台的《《对话》节目,其实每天我都在一群人对话,所以我每次晚上回来的时候都在想,那些主持对话节目的人,他们每次谈话结束后也会有和我一样的失落感吧,用一句人格魅力去描绘这群人太虚,我也一直在寻找他们成功的理由,我们知道一个成才无非是实力加运气,这样的描述对于我们普通人没有如何意义。星期四上午在 coffeebar 面试了一个 IT 元老,原来他已经隐退,不过最后那个职位没有其他人合适,和同事商量还是决定挖他,约他出来的时候没有什么难度,他驾车带我们去他认为是最好的 coffeebar,安静而且优雅,他说以前每次累的时候都会一个人来这儿,聊起现在的 IT 市场,他说他

      还是很怀恋以前,可惜中国最早搞 IT 的那批人基本隐退了,而现在市场竞争激烈,利润下滑,大量的新人出现。最后他还是没同意出山,我们代理的那个位置还空着,也许他同意和我们见面,只想聊个天吧。最后我要他给我点建议,我他问我什么方面的建议,我说职业经理人成功方面的,他想了想说:无止境地追求卓越,这种人要求自己是英雄,这样也是给别人尊重和自己信心的唯一方法。也严格要求别人达到他的水准。在工作上,他们会要求自己与部属 “更多、更快、更好 IT 行业大家都在和时间赛跑,不管是技术还是市场。

      说实在的,我们这边代理的销售方面的人才多点,主要是销售方面的 mobility 高点,好多人不喜欢销售,可是不菲的薪酬终究还是有很大的吸引力。当然,除此之外,销售这份具有挑战性的职业也让人有很多其它方面的收获:眼界开阔了,能力提高了,而且激发了不少自己原来没有发现的潜能。

      最近公司的单子很多,并不是 IT 市场好转,而是几大 IT 公司都在洗牌,我知道几家著名的 IT 公司上半年都在震荡,所以有经验的人,最近一段时间出手是很好的时机,过了这段时间想对会清淡些,但中国经济的巨大磁场作用,好多 IT 公司都来开办事处,去那些办事处比去大公司有前途,他们设办事处一旦发觉中国市场巨大,就都会大举进入中国市场,那个时候你就是元老了,一般公司都是设 2 年办事处,然后大举进攻。

      有人在风中哭泣,有人迎风放屁,对于没有工作经验的我们来说,你最需要适应的,一是听别人的声音,二是闻别人的味道。其实好多公司不招应届的原因除了没有工作经验,就是跳槽频繁,我们公司内部的一份数据也可以清楚的看出刚刚工作的人跳槽频率最高,这也可能和大家开始对职场的模糊认识有关,太多的是关注薪水而不是长远发展,所以我建议大家找工作的时候尤其花很多时间在找

      面试技巧,谈判技巧,不如花多点时间考虑自己的工作的切入点。

      和大公司的 HR 经理聊的时候,他们多数也都喜欢真实的你,我上次也提到,面试需要准备,但不需要包装,justbeyourself,你的包装在有经验的 HR 和部门经理面前,很容易被看穿,而且他们,包含我都会反感包装后的 candidate,当然强调自己的优点,淡化自己的缺点是必要的。

      高年薪阶层人士的经历,都有一个共同点就是跳槽经历非常少,一般 5 到 8 年才跳一次,甚至要 10 年以上才跳一次,而关键在于其最初择业的时候非常清楚自己要选择什么行业,而不是像现在的大学生频繁的跳槽。跳槽如果跳得有系统,能够反映出毕业生有系统的规划,有明确的目标,还是会获得企业的青睐。如果毕业生一直在追求自己的理想,虽然不停地跳槽,但如果是执著地向自己的目标在前进的话,公司还是会考虑这样的人才。但如果毕业生工作一年半以内就频繁换工作,一般公司也坚决不会考虑。

      所以我们猎头挑人的时候,第一眼看简历就是看跳的频率,这也在猎头行业达成的共识。虽然我们的存在,也在促使跳槽的发生,那只是人才的合理调配,我承认好多猎头公司不负责的挖人,好的猎头公司不仅为公司找到合适的人,也要为我们的 candidate 定下长远的职业规划,不是为了挖人而挖人,相反有时候我和他们面试的时候,我会建议他不要跳,嘻嘻,虽然我也是新人,不过在他们面前还是要装的 professional 一点。

      小常识:“高级蓝领” 是蓝领人才的较高层次,其最重要的特点在于它不以理论和管理方面的综合素质为判定标准,而以实际动手能力为判定标准,一个合格的 “高级蓝领” 应当具备相当丰富的实际动手经验,应该属于操作型人才。“低级白领” 主要指办公室行政人员,他们从事的是单纯的脑力劳动,不同的是他们的脑力劳动技术、知识含量比较低,可替代性比较大。所以小白领可替代性强,但每天穿行于商业大楼,过着小资一样的生活让他们很自我,这也是我为什么想离开现在的猎头去另一家做项目主管。。。。

      在我犹豫想离开猎头职位的时候,遇到一个 2 年前 IT 很红的一个人,我很想分析这个 case,不过如果我分析细节,大家都会知道是谁,也是我目前遇到行内的最牛的人吧,很 nice,他笑着告诉我:我是他遇到最年轻的猎头。本来这行

      要很 confidential,有些东西太敏感,职位和薪水。。。实在没办法写出来。

      我开始仅仅是为了记下自己的点滴,不是每个人都有机会窥视那一群人,在交大上面发大家都很诚恳在一起探讨,现在发觉这个系列已经变成我的责任,也许是我的荣幸和也是我新的压力吧,感激比那些 CM,director 聊还有压力,毕竟网友是更大的群体,看看今天清华 BBS 的讨论吧。我尽量想描述一群职业的经理人,而不是一群暴发户,我描绘的只是表面的,由于代理的单调性(IT 行业),高层性(高端)本来就不具有统计的科学性,我开始的目的也不是为了科学的统计,感性的认识和理性的分析毕竟有很大差别。

      也有一些值得我们思考的问题,我承认是个新手,但我对这个行业的悟性,我心理还是自信,自信是自己给的,如果每个行业都是资深的人在做,这个行业就失去了活力,毕竟长江后浪推前浪,成功与否和一个人的切入点有很大关系,搞技术和销售,管理方面没有谁卑谁劣的问题,我们代理的销售方面是多点,管理,技术也都有,150 万的 CTO 也代理,我想告诉大家不是谁更优秀,不过那个方向更有挑战性,大家都是受过高等教育的人,不说大家也都明白。

      我不反对,毕竟我要为自己的职业进行规划。

      我不批判任何人,每个人都有自己看待成功的角度,但无须认为那些不可理解,存在的就是合理的,不过文章是真实的,片面的,我自己也承认这点,解读是大家的事。至于每个成功的人的家庭背景,不是我考证的范围,再说,每个社会都有不平等,成功有成功的理由,方式不同,大家在羡慕嫉妒的时候,为什么不能踏实的去做?我们要学着适应社会,而不是社会适应我们。

      我没有太多的建议给大家,唯一的就是规划,系统的规划,道理大家都懂,可惜有几个人真正去规划过?好多人还不是盲目的找工作?猎头找有经验的人可以不理会他的大学教育,但对应届的大学生还是看重大学,那么好大学的学生更有可能有系统的规划,因为选择的余地大,而差点的大学,刚刚毕业也许仅仅为找到一份工作而奔波。

      我愿意和你们成为永远的朋友,一个朋友告诉我,建立在朋友上的利益比建立在利益上面的朋友可靠的多。

      外面传来的歌声是:“为了生活,人们四处奔波 “,现在心里有些伤感,我也想坚持写下去,写到我离开的那一天,对于自己想捅第一笔金的我来说,每天和 candidate 聊天都让我很失落。 重要的是我们都年轻,这是我们最大的资本,房子,车子,女朋友,什么都没有,哪又怎么样?调整自己的平台,站得高就可以望的远。因为我们年轻。

  • svn 库不可读设置 at 2013年05月23日

    除了把小部分人定义成一个组,设置这个组不可读之外,还有没有其它的方式吗?小部分人的帐号有规律 钩子脚本可以实现 吗?

  • 你的方法能解决 hudson/jenkins 频繁崩溃?