从编辑到PM
春节前收到一封陌生人的来信,一位网站频道编辑,向我咨询转型PM的可行性。他问道:“你觉得做媒体和做产品,以前一样么?未来一样么?”并希望我为此写一篇日志。话题很有趣,我也乐意就此写点什么。遗憾的是,编辑转产品的成功概率却是不高的,就我的经验来看,存在四个障碍。1、傲慢媒体工作需要捕捉阅读的共性,即“大家都爱看的内容”,相对来说比较忽视用户的个性化特征。由于阅读的共性并不难掌握,久而久之,容易形成判断...
精选技术长文、实践记录与系统化阅读
低噪声、高可扫读;标题、摘要、来源、标签一目了然。
采集自各技术站点的近期文章。
春节前收到一封陌生人的来信,一位网站频道编辑,向我咨询转型PM的可行性。他问道:“你觉得做媒体和做产品,以前一样么?未来一样么?”并希望我为此写一篇日志。话题很有趣,我也乐意就此写点什么。遗憾的是,编辑转产品的成功概率却是不高的,就我的经验来看,存在四个障碍。1、傲慢媒体工作需要捕捉阅读的共性,即“大家都爱看的内容”,相对来说比较忽视用户的个性化特征。由于阅读的共性并不难掌握,久而久之,容易形成判断...
一直一来我都没有找到详细明确的Objective-C Coding Style,这让我很苦恼,因为我很关心一些小细节,比如 “{” 的位置,到底应该把 { 和关键字/方法名放在一行: 1 2 3 if(condition){ }else{ } 还是应该把 { 另起一行: 1 2 3 4 5 6 if(condition) { } else { } 关于这两种写法,其实争议已久,一般来说都认为把 { 直接放在行尾可以节省屏幕空间
最近在帮助用户恢复数据库时遇到了一则罕见的归档日志损坏案例
今天在开例会的时候,提到其他小组要做一个通用任务系统,会涉及到C++调用其他语言脚本开发的逻辑。之前倒是听互娱那边的同事说过,他们都是嵌入lua来进行脚本编程,但自己从来没试过...
逐行读文件一般的写法如下:Copy Code(拷贝代码)-Run HTML(运行代码)-Save Code(另存代码)cat filename | while read line; do echo $line; done看上去没有什么问题, 而且是网上的同学都让你这么读. 实则有潜在问题很难发现. 我们知道echo 里是默认有转义的,一个"\\"反斜杠默认不显示,两个则显示一个,如果你的file里有如下字符引用 \\s\\\\s\\s用上述的代码则输出:引用 s\\ss这着实让我头痛...在Baidu和google里搜索没有...
新年回来一直忙于工作,今天忙里偷闲赶紧更新一篇,也给大家拜个晚年~~OK,废话不多说,直接进入正题~ 老博友应该知道本博曾经写过一款自动添加作者信息的插件,链接如下:Vim在源代码中...
以下内容由[五四陈科学院]提供Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. 如果你已经有十次输入同样的Ant targets来编译你的代码、jar或者war、生成javadocs,你一定会自问,是否有一个重复性更少却能同样完成该工作的方法。Maven便提供了这样一种选择,将你的注意力从作业层转移到项目管理层。Maven项目已经能够知道如何构建和捆绑代码,运行测试,生成文档并宿主项...
早在Web2.0初兴的2006、07年,那时大家都忙活着怎样给用户更多的自主权,更强大的自定义功能,唯恐因为不自由而限制了旺盛的创造力。不过这已经是过去式了。我的高高瘦瘦的同事,博客的行长先生老跟我抱怨,说博客的自定义功能给太多了,用户装扮得千奇百怪,什么样的栏宽和导航都有,搞得后来想作点调整都束手束脚,很难兼容到这么复杂的用户界面。改进的手脚稍微大一点,就有一批自定义风格的用户,博客界面残了,肯定跳起来骂。...
简摘:本文从手机平台、机型(触屏和键盘)及屏幕大小三个方面简单的讨论了一下手机客户端的交互及适配特性及一些原则。 手机客户端软件虽只是手机中一个功能,但它却要比设计单款手机更为复杂。在设计单款、单系列手机时,需要考虑这款手机的软、硬件优势及不足,考虑其特性、其UI Style Guideline ,确定这些内容后,整个平台的UI也找到基础了。说起来,这至多是考虑某个系统、某个屏幕的特性而已,而不同功能的所有设计基础都是...
Linux环境下最受欢迎的视频编辑器 OpenShot 之前发布了1.3.0 版,这次更新主要包括: 新增名为 “Fresh” 的全新界面主题。稳定性、易用性方面的改进。更多新的 3D 效果。视频编辑功能得到增...
背景:最近我在Groupon公司的一项新职务是为公司招募优秀的开发人员。我是Groupon开发团队的代言人,负责发布招聘信息、回答问题等。过去的一周,我对两个询问夏季实习工作的学生进行了回复。 下面是我在回复他们的邮件中的感觉值得公开发表的一些建议: 如果你在大二的时候就已经开始接触外面的公司,我认为你做的很对,你就应该这么早为你今后的职业生涯...
很多时候我们会面临去做一件事情:这个事情非常糟糕,还比较复杂,也没有人能告诉你答案,应该怎么做,但是我们必须在很快的时间内制定办法达到结果。―这就是执行力,作为产品经理应该具备这么一种能力。现实的生活就是那么实际,就是要看你的效果。你不能说你还没有准备好,你也不能说在这类事情的处理上我显得不擅上,你不必和老板去解释在这个事情上你为什么显得没有状态。作为企业,他不会太多的去关注你为什么不成的原因。...
很多产品经理都说自己是打杂的,我说:“对!“我也是打杂的。什么都干,最累最杂的事情该干的都干了。仔细想想,谁不是打杂的?越往上,越累,哪一天自己做老板了,不光给自己公司的那摊琐事打杂,还要伺候合伙人,给客户打杂,给员工打杂。 所以我们要感谢给我们这么多打杂机会的人,让我们在这么多并行事务中,在这么多乱得一团麻,也不知道现在怎么搞,以后会发展的怎么样,也不愿意去碰的事务中,让我们干了,所以我们得到了...
当一个公司的策略影响到前面价值路径中的所有领域之后,一个有趣的事情就会发生。起初,数据会开始引导并优化业务的战术执行层面。然后,你将看到数据在不断形成或影响你的业务策略,并且能从中得到很多洞见。数据和策略就如同中国的阴阳太极。两个领域互相平衡,互相影响,互相转化又互相滋养。
上篇文章我提出了一种基于JavaScript 1.7中迭代生成器(yield)的异步编程方式,它可以让混乱的异步代码逻辑变得清晰一些。不过之前的AsyncIterator其实是对基于C# 2.0的AsyncEnumerator的仿制品,在公司的分享会上进行交流以后,同事hax提出其实可以实现地更漂亮一些。在他的提示下,我了解到JavaScript 1.7中不同于C# 2.0里的特性,因而对这种异步编程机制提出了改进。只可惜yield特性被ECMAScript 5排除了,这实在可以说是委员会...
地球人都知道,在C# 2.0里提供了yield关键字,可以方便好用地生成一个迭代器,更可以简化异步操作――这是因为有了Jeffrey Richter开发的AsyncEnumerator。在接下来的某些演讲中我准备的主题是“异步编程模型”的演变,自然少不了这非常重要的一环。为了便于广大人民群众更好地接受,我决定使用JavaScript来进行说明。为此,我用JavaScript实现了一个AsyncEnumerator。 JavaScript 1.7里的Iterator生成器 AsyncEnumerator的关键...
给定一个正方形纸片,用上面这种方法可以折出一个等边三角形。你能看出这是为什么吗? 由对称性,组成等边三角形的前两道折痕显然一样长,我们只需要证明它们之间的夹角是 60 度即可。注意到,如图折叠后将会立即产生直角边是斜边长度一半的直角三角形, 30 度角由此产生。由此可知,前两道折痕和纸片边上的夹角都是 15 度,两折痕之间的夹角自然也就正好是 60 度...
Q:在java中如何加载properties文件或者configure文件才是最好的办法呢? A:当你在考虑如何加载java的资源文件的时候,许多选择都会立即闪现在你的头脑中:files, classpath resources, 还有URLs。尽管上述所有的方法都能得到最终需要的效果,但经验表明classpath resources 和 URLs 是到目前为止最靠谱的选择。
这段代码来自BlackHat DC 2011((黑帽安全大会,全世界最大两个黑客大会之一,另一个是Defcon)中的一个叫Ryan Barnett黑客做的XSS Street-Fight!的演讲(XSS是Web上比较经典的跨站式攻击,操作起来也有些复杂),一共69页,基本上都是一些比较枯燥的Javascript,不过这段代码挺有意思的。
经常听到有人说微软的技术变化太快,持续性不好,让程序员追得很累。这种观点在微软技术社区内部和外部都有出现,似乎是一个不争的事实。但从我追随.NET平台这近十年的时间里,我并没有明显的感觉。微软的技术的确很多,但至少在.NET领域过渡性做的非常好,我没有任何疲惫之感。微软技术开拓了我的眼界,让我在微软内外许多技术方面越来越少有“新奇”的感觉,一切都是那么自然和稳妥。我现在就来仔细谈谈我在学习微软技术方面的经...