Shotgun debugging

Posted on Tue 08 June 2010 in it

今天看新阳共享的一个技术文档《Behind the Scenes at MySpace.com》,里面提到的Shotgun debugging很有意思。

搜了一下儿,和散弹枪扯上关系的一般都挺生猛的:

  • Shotgun marriage: 奉子成婚。这个表达源于二、三百年前的美国。有一女子跟男友意外怀孕,事发后男友却不愿承担责任,于是,女子的父亲便手持猎枪(shotgun)威胁其男友,要他们完婚给自己女儿一个交代。
  • Riding shotgun:坐副驾驶位子。这种说法起源于美国西部历史,那时驾马车的人坐在右边,路上会经常有劫匪,所以,总要有一个人坐在左边副驾驶位置手里拿一杆枪,以防万一。从此以后,坐在车的副驾驶位子是就叫做ride shotgun.
  • Shotgun surgery: 散弹枪手术,在代码的臭味里面用来形容改一个功能需要动n处代码。

Shotgun debugging也是IT术语,是说为了消除软件bug而修改相关但没有直接关系的地方。坏的方面来讲:一般来说这种方法很难有效,除非是特别简单的程序或者是用错了程序语言的功能 ...


Continue reading

QCon BeiJing 2010 PPT

Posted on Tue 11 May 2010 in it • Tagged with Groovy, InfoQ, QCon

InfoQ把2010年QCon的ppt放出来了,可以用如下代码进行抓取:

def url = "http://www.qconbeijing.com/agenda.html"

url.toURL().text.eachLine {line->
    int begin = line.indexOf("href="down")
    int end = line.indexOf("pdf",begin)
    if(end>begin){
        url = "http://www.qconbeijing.com/"+line[begin+6..end+2]
        println "downloading "+url
        ("wget "+url).execute()
    }
}


Continue reading

QCon第三天见闻

Posted on Sun 25 April 2010 in it • Tagged with Architecture, QCon, SOA

感觉今天两个主题搭配的不错,应该很少有同时关注服务架构和前端开发的人。不过听了淘宝小马的发言,好像也不是那么回事,前端的工程师也是很关心架构的。

下面开始记录今天的流水账,第一个议题是InfoQ团队介绍,米国、罗马尼亚、加拿大和中国的,台上站满了,一共11个左右,挺精干的组成。

Jim Webber《使用 REST构建成功的SOA》 - 四星

第一场是Jim Webber演讲《使用 REST构建成功的SOA》。Jim是个很精悍的小个子,像个海军陆战队员。他的演讲特点就是非常有激情。他讲的重点主题有两个,一个是数据库并不适合扩展性,建议大家都NoSQL吧,然后给出了在安全性、事务性方面的解决方案;第二个是倡导基于HTTP的中间件,人家就是将REST的嘛。很不错。

谢恩伟《微软 Azure云计算平台的应用与发展》 - 三星

第二场是来自微软工具和平台事业部的谢恩伟讲《微软 Azure云计算平台的应用与发展》。老实说我觉得讲得还可以,ppt里面给出了微软的云计算定义、云计算内涵,对微软的战略给出比较清晰的描述。会后给评价,贴了笑脸儿。

萧百龄《性能 ...


Continue reading

QCon第二天见闻

Posted on Sat 24 April 2010 in it • Tagged with Agile, Architecture, QCon, Scrum

今天是QCon的第二天。

Tom Mellor《Agile和Scrum在中国能不能成功》- 三星

开场本来应该是设计模式15年──向设计模式2.0迈进》,因为火山灰的缘故,Erich Gamma不能到场,还真是有点儿遗憾。不过Scrum Alliance总裁Tom Mellor的《Agile和Scrum在中国能不能成功》也挺有意思的。我是头一次听说这位大叔,身份信息参考这篇文 章。汤大叔对Scrum的造诣非常深,在他的演讲中提了3个指导意见:

1. Ask Team,体现了对团队的授权和信任;

2. 持续审视和调整,指出了过程改进中最关键的方法;

3. Delivery Fast,一切软件过程改进的核心目标

Marc Kwiatkowski《Facebook 的扩展Memcached实战》- 三星

第二场是Marc Kwiatkowski的《Facebook 的扩展Memcached实战》。整场讲座投影仪黑掉了n次,这位仁兄涵养真好,每次出问题都自我检讨说I"m ...


Continue reading

QCon第一天见闻

Posted on Fri 23 April 2010 in it • Tagged with Architecture, Program Language, QCon

今天是非常充实的一天:早上7点起床,8点出发,9点进场,上午2场下午4场主题演讲听得非常过瘾,到家后头脑还非常兴奋,开始准备整理一下思维,记录一下今天听讲的感想。

一开场,主持人就告诉大家一个消息,Erich Gamma因为冰岛的火山灰原因,无法出席本次QCon了,他自己深表歉意,并承诺,下次他来北京演讲,本次参加的人都可以去免费听,作为补偿。

Michael Nygard - 《失败来临的征兆》-四星

这是第一个演讲,当时坐得有点儿远看不清楚ppt,听得有些云山雾罩。这里有人做了笔记,回来仔细看了看,觉得很不错。

首先给了两个假设: 1. 用户关注功能而不是你使用什么软件硬件; 2. 失败和错误总会发生。然后引出了工程化失败模型。

工程化失败模式(Engineering Failure Modes)

  1. 容忍:将震荡吸收,而不是传递它
  2. 服务能力:功能缩水而不是整个损坏
  3. 恢复能力:允许组件重启,而不是让整个世界“重新启动”
  4. 弹性:能够从瞬时性 ...


Continue reading

QCon BeiJing 2010

Posted on Fri 23 April 2010 in it • Tagged with InfoQ, QCon

从QCon全球企业开发大会(QCon Enterprise Software Development Conference)的主页上可以看到:

2010年,QCon全球企业开发大会(北京站)将于4月23日~25日,在北京京仪大酒店举行。大会将开设包括架构、语言、敏捷、SOA、BAAP、案例在内的6大主题,邀请包括Erich Gamma、Jim Webber、Douglas Crockford等近10名国际软件大师、和来自西门子、支付宝、淘宝、Adobe、谷歌等企业的30多名国内著名讲师授课,预计将有200多家企业、 500多名来自业内的资深人士参会。

因为主题讲座都是两三场同时进行的,公司参加的话最好同时两三个人一块儿,个人去参加的话,更需要提前了解日程,选定自己最感兴趣的讲座。

现在出发,晚上和大家分享今天的见闻。


Continue reading

SaaS迁移模式

Posted on Thu 08 April 2010 in it • Tagged with Architecture, SaaS, SOA

原文: http://horicky.blogspot.com/2010/01/roadmap-to-saas.html

托GFW的福,我们看不到Richy Ho写的博客,更看不到Roadmap to SaaS里面的示意图。但这篇文章真的很不错,文字很简单,翻译出来和大家分享。

以下进入正文:

我发现了如何从传统Web应用一步一步迁移到SaaS的迁移模式。我会用一个J2EE的web应用架构做示例进行讲解,但对于其他技术平台来说,也是一样的。

1. 初始的web应用

At the very beginning, we have an web application that works well. We analyze the function of the web application and group the implementation classes ...


Continue reading

Google关闭Google.cn,访问指向google.com.hk

Posted on Tue 23 March 2010 in it • Tagged with google

搜了一下儿相关内容,这个是官方声明:关于谷歌中国的最新声明。从那个摆什么毒上头搜google,第一页只有中间儿有个南方周末的链接,不愧是个做自我过滤的搜索引擎。


Continue reading

敏感词小测试-blocked

Posted on Thu 11 March 2010 in it • Tagged with 敏感词

site-packages/MoinMoin //passed

$lib/python2.6/爱死ite-package爱死/爱慕oin爱慕oin/action/AttachFile.py //passed

$lib/python2.6/site-package爱死/爱慕oinMoin/action/AttachFile.py  //玄妙的SM算法发现敏感词了!

$lib/python2.6/site-packages //blocked

$lib/python2.6/site- //blocked

2.6/site //blocked

。。。。 //blocked

。。。 //blocked


Continue reading

博客大巴的敏感词

Posted on Thu 11 March 2010 in it • Tagged with 敏感词

$lib/python2.6/$package/MoinMoin/action/AttachFile.py

package=site-packages

您提交的日志中包含一些敏感词汇,如果您确定发布,该日志将被我们暂时锁定。待审核通过后,即可为您的日志解锁,请耐心等待;您也可以选择“取消”,去除文中的敏感词汇后再提交。

为了维护博客大巴的网络和谐,请您在撰写日志时尽量不要涉及政治或低俗内容,谢谢您的配合。

如果把第一行的$package替换为site-packages,就会出现上面两句提示。

试敏过程:

依次从后往前拿掉AttachFile.py, action, MoinMoin,还是提示,直到拿掉site-packages,能够通过;

可是单单用site-packages,也没问题。

于是灵光乍现,莫非是被当成“爱死爱慕”了?

再次试验,仅仅输入这两个字母,pass;别气馁,继续尝试,见爱死爱慕小 测试-passed,好像也不是这么回事儿。

经过一番摸索,终于定位到被过滤的那个词了 ...


Continue reading

敏感词

Posted on Thu 11 March 2010 in it • Tagged with 敏感词

这句话里面的敏感词在哪里啊在哪里?
$lib/python2.6/site-packages/MoinMoin/action/AttachFile.py

Continue reading

Magnet链接,去中心化的点对点分享

Posted on Sun 21 February 2010 in it • Tagged with hash, p2p

看了一篇侃点对点分享的文章,找了个磁力链接,用uTorrent下得很顺畅,技术进步得真好!

Magnet URI scheme这个链接规范可以学习一下。

 


Continue reading

运营系统架构划分

Posted on Thu 04 February 2010 in it • Tagged with EA, 运营系统

前两天思考了研发管理目标,提出了研发工作要产品化。从目前云端技术部的工作上看,运营系统是今年最重要的。从架构上看,可以划分成以下四部分:

  1. 营销系统:主要提供运营产品展示,主动进行用户营销和用户购买服务。
  2. 订单系统:订单处理,包括计费的部分工作和订购关系建立。
  3. 运营支撑系统: 主要是运营的配置管理
  4. 监控系统:运营活动监控和告警,以及一些数据分析工作

第一、二部分其实就是09年在做的运营系统V3.0,今年会继续做下去;增加的第三、四部分是以前BOSS和系统部门负责的,现在把需求把控的职责也拿回来了。这几部分和在一起后,对整体运营目标的达成和日常工作开展,会很有好处的。


Continue reading

研发管理目标

Posted on Fri 29 January 2010 in it • Tagged with 研发管理

从管理者的角度看问题,结果比过程重要。研发管理的目标应该是:

  1. 把研发目标和公司目标结合起来,在研发过程中做到最优化
  2. 选拔人才和培养团队
  3. 要把研发工作产品化

大局观很重要。创业型的技术公司一般都从产品视角看待研发工作,作为研发部门,不能仅仅是被产品经理的需求驱动,自己一定也要积极参与到产品设计过程,这样才能有完整的视角,和公司目标一致。

然后就是带队伍。和团队一起工作、学习和成长,选出最适合的往往也是最优秀的来担当产品经理的角色。

最后一点也是目前最欠缺的一点,就是开发工作最后形成不了产品,团队很辛苦,事情也做了一大堆,但没有形成一个系统的东西。所以,在日常的功能点开发时就要做产品化的考量。做直接被其它产品调用的公共组件,团队很难有高昂的士气。


Continue reading

[转载]35 个你也许不知道的 Google 开源项目

Posted on Mon 28 December 2009 in it • Tagged with google, 开源项目

来源:35 个你也许不知道的 Google 开源项目

Google是支持开源运动的最大公司之一,它们现在总共发布有超过500个的开源项目(大部分都是利用它们的API来完成),详情看原文,列一些我感兴趣和用过的:

文本文件处理:

Google CRUSH (Custom Reporting Utilities for SHell)

CRUSH是为命令行或shell scripts处理特定文字数据而制作的一系列工具,这里有指南

通讯协议:

Protocol Buffers

Protocol Buffers是一种可扩展编码序列数据的方式,Google在几乎所有内部RPC协议和文件格式都使用了Protocol Buffers。指南见此它可以用于很多语言而且被一些IDE所支持,比如NetBeans

互联网:

Google Code Pretiffy

这是一个Javascript模块和CSS文件,它可以让HTML页面里的部分源码高亮显示,支持C/C++, Java, Python, Ruby, PHP, VisualBasic, AWK, Bash, SQL, HTML, XML ...


Continue reading