设计公式:简单有效的竞品分析
前两天,应某位老大的邀请,为产品策划们做了一次讲座。因为事先准备并不十分充分,讲得也有点急促,所以可能在很多同学听来,会有一些枯燥和不着边际。所以干脆大致的把讲义复述下来,供所有感兴趣的同学们批评指教。前言一个设计去给策划们讲课,多少也算是跨职业了,所以最终选定了一个对双方都比较简单而有效的方式――“竞品分析”――来做主题。说起来,设计和策划还是有一些共同点的。我们所从事的设计,其实可以称为狭...
精选技术长文、实践记录与系统化阅读
低噪声、高可扫读;标题、摘要、来源、标签一目了然。
采集自各技术站点的近期文章。
前两天,应某位老大的邀请,为产品策划们做了一次讲座。因为事先准备并不十分充分,讲得也有点急促,所以可能在很多同学听来,会有一些枯燥和不着边际。所以干脆大致的把讲义复述下来,供所有感兴趣的同学们批评指教。前言一个设计去给策划们讲课,多少也算是跨职业了,所以最终选定了一个对双方都比较简单而有效的方式――“竞品分析”――来做主题。说起来,设计和策划还是有一些共同点的。我们所从事的设计,其实可以称为狭...
Oren Eini(又名Ayende Rahien)建议开发者尽量避免数据库的软删除操作,读者可能因此认为硬删除是合理的选择。作为对Ayende文章的回应,Udi Dahan强烈建议完全避免数据删除。所谓软删除主张在表中增加一个IsDeleted列以保持数据完整。如果某一行设置了IsDeleted标志列,那么这一行就被认为是已删除的。 Ayende觉得这种方法“简单、容易理解、容易实现、容易沟通”,但“往往是错的”
尽管python允许你像shell脚本一样,把大段的代码堆积着写,但是,很多python入门的书,都会建议你把代码写成一个函数,然后在最后面统一调用,例如这样: def main(): #具体代码 if __name__ == \'__main__\': main() 很多文章都会说这个是由于代码风格之类的原因,但是其实,不这样写,有时候也是会直接导致出错的。举个例子,打开《A Byte of Python》的类变量那节,可以这里看在线版本,然后...
Apache的Mode Rewrite模块提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求。在大多数情况下,它和.htaccess文件配合使用。
It is…that…的句型,在英文中非常常见,大家都知道,这表示强调,理解的时候,要把that后面的部分放到前面来,比如: It is no wonder that she is so ill. 她病得这么厉害,并不奇怪。 It is strange that she should have failed to see her own shortcomings. 她竟然看不到自己的缺点,这真奇怪。 It is arranged that the class meeting will be held next week. 据安排,下周召开班会。但语言是非常奇妙的东西,例外的情况...
现在网络环境错综复杂,socket心跳包是获得健康强壮的连接的有效解决方案,今天,我们就在web socket中实现心跳包方案,是的,尽管我们只是做一个简单的聊天室,但我们让他稳定可靠一些一点也没有错。我的心跳包方案很是简单,原理就是间隔发送心跳包数据给服务器,服务器在一定时间内发回心跳包响应,对比超时限定,如果超过设定的超时时间,则认为当前与服务器的websocket连接已经断开,关闭当前web socket连接,善后处理,例如...
嗯,我不是来写这次有道难题的解题报告的。事实上,我没有参加这次有道难题的资格。因为我是比赛的POJ测试平台的管理员,我的职责是负责POJ平台在这次万人比赛中的稳定运行。为了全力搭OJ平台准备这次比赛,我两周没有发twitter,也没有写博客。今天终于成功完成了三场资格赛,如释重负,来简单介绍一下在服务器架构建设中的经验。程序方面,前端程序由我负责,全部用php编写,基于Zend Framework,数据库使用mysql,使用memcach...
年初从到北京工作,需要租房子。由于当时时间比较紧张,找的北京石景山八角路附近的中介
所谓内存越界(Heap Corruption),就是指当内存输入超出了预分配的空间大小,就会覆盖该空间之后的一段存储区域,导致系统异常。越界访问是非常常见的一种黑客手段。相关文章:善用消费者的“无知” 营销做到“无敌” 在工作中接触不少中小企业的老板,因而常听到他们用“这个行业市场很混乱,消费者很不理性”的理由,来说明企业的销售做不好的缘故。每逢“3.15”,总有不少企业在媒体上叫卖诚信,认为博得消费者信任是企业宣...
最近小组在做rss的一些调整,从中也发现了一些技术层面和非技术层面的问题:技术层面:目前的问题:1:我们是通过前端缓存squid来提供rss服务的,rss服务抓取商一般是通过no-cache和页面url加随机数进行访问的.而这也正是squid权限控制的一个"弊端",导致90%的请求都直接访问squid的后端,也就是说squid没有起到缓存的作用.2:Rss地址过多(历史原因造成的),导致cache命中率过多.3:由于rss服务特性和web服务特性的不一样,也因...
这两天,我的同事丁宇(@felixding,极具艺术气质的设计师,推荐)遇到了一个正则表达式的问题,我琢磨了半天写了一个表达式,暂时能用;今天庄表伟(@zhuangbiaowei)跟我说,正则表达式的问题大家一般都会查手册,但怎么思考和解决问题,往往束手无策;正好,我在写作的《正则表达式傻瓜书》,也希望多讲讲这方面的内容。目前的写作还没有进展到介绍解题经验的阶段,索性,先在blog上写这方面的内容吧,希望对大家有所帮助,也希...
前天接到一个求助电话, 说是一个dmp文件不能导入, 一开始经验性地认为可能是ftp传文件的模式问题, 后来对方再三确认不是这个问题, 就让人家将dmp文件传给我看一下, 在导入指定用户时遇到了不正常的dmp文件结束错误. 虽然因为写AUL而对数据文件块格式比较清楚, 但DMP文件如果乱了却是没有什么招的, 虽然如此, 试着导入几次无果后, 还是用UltraEdit以十六进制打开了DMP文件, 看到DMP文件中有SH等Oracl...
今天cici网友发来一个问题, 说是在函数调用参数前面使用错误抑制符号(@)的时候, 貌似引用传参就失效了. 他想让我帮他解答为什么. 看下面的例子: ..... 这个问题, 我之前没有遇到过, 所以首先去找找相关资料, 看看有没有现成的答案, Goolge了一番, 发现虽然有人已经向PHP报了类似的Bug:http://bugs.php.net/bug.php?id=47623, 但PHP官方还没有解决, 也没有给出答复. 没办法, 只能自己分析了...
起因 前一段时间和其他系统集成, 另外一个系统对某个参数有一个限制,需要将字符串中的特殊字符过滤掉, 由于需要过滤的字符是对方定义的, 所以对方直接把他们系统中的过滤的代码给我了
从实现与体验来看,无疑用Ajax来做比较好全自动化的错误信息回填良好的用户体验从应用的角度来看,需要考虑用户无法提交时,如何找到问题所在重要的页面是否要Ajax,普通的post是否更好?如果考虑代码可以重用(如跨域,第三方等),Ajax还是有限制。再从Ajax与普通Post的提交的代码上看待这一问题。最重要的问题是在错误信息的回显这一功能。
由于网易微博的数据还没有完全对外开放,像“我的首页”、“我的微博”的JSON数据都不能直接通过Javascript调用,而是必须先登录才能获取。因此,要想把微博数据调用到博客上,就得在后台做一个页面代理。页面代理的唯一工作就是带上已登录的Cookie发送一个Http请求,获取并输出回应内容。这个过程主要涉及到两个类,HttpWebRequest和HttpWebResponse,它们都在System.Net名字空间内。通过Firebug的网络面板可以看到,网易微博中...
到目前为止,我已经开发了两个HTML编辑器了,一个用在公司的CMS项目,另一个用在这个Blog(TidyEditor,暂时没有单独发布)。下面总结一下开发的难点以及应对方法。
很久很久没有更新blog的技术文章了,正好最近这阵子花了点时间做firefox插件,发现、总结了一些问题记录并分享一下。关于调试开启你的extension log功能。打开about:config,通过filter找到:extensions.logging.enabled,将其设置为true。它将使你的extension调试更方便。安装一个mr tech toolkit插件,可以在附加组件内容,选中某个插件右键,直接到插件目录。关于xul布局xul就不说了,语法比较简单,也支持CSS,不清楚的话还可...
目前总体来讲,QQ for linux 就是一个概念产品。不完整的东西。 还在刚出来不久,早早的就停止开发了。不过,我们 Linux 用户还是离不开,所以只能调调让它好用点。“烂尾”非开源软...
今天和倩女幽魂的同事讨论一个问题:他们的游戏 client 中,有大量策划填写的表格直接导入 lua state 中的大量数据。大约有 100M 以上。这样,如果玩家在一台机器上启动多个 client ,就会占用大量的内存。而这些数据,一旦加载进 lua ,就不会再修改,且每个 client 中数据都是一致的,这是一种浪费。问题是:如何利用进程间的数据共享,在多开 client 时节省这些空间。(同时也可以加快开第二个 client 的启动速度)