网站架构的选择
最近的一个项目,在是否选用drupal的问题上,稍微有些纷争,也由此导出了这篇文章,希望对大家选择开源系统协作站点有所帮助。 文章会比较冗长,先简要的说一下选择之前需要考虑的重点: 需求 | 学习成本 | 开发速度 | 性能与后期维护 | 总结 需求 我们需要什么功能? 网站需要什么时间上线? 开发需要什么样的人力资源? 根据需求,来做评估。 开源软件种类繁多,雨后春笋般涌现的开源框架都声称自己是最好的...
精选技术长文、实践记录与系统化阅读
低噪声、高可扫读;标题、摘要、来源、标签一目了然。
采集自各技术站点的近期文章。
最近的一个项目,在是否选用drupal的问题上,稍微有些纷争,也由此导出了这篇文章,希望对大家选择开源系统协作站点有所帮助。 文章会比较冗长,先简要的说一下选择之前需要考虑的重点: 需求 | 学习成本 | 开发速度 | 性能与后期维护 | 总结 需求 我们需要什么功能? 网站需要什么时间上线? 开发需要什么样的人力资源? 根据需求,来做评估。 开源软件种类繁多,雨后春笋般涌现的开源框架都声称自己是最好的...
收集的一些轻量级的前端开发小工具。
网络游戏若要有支持一个稳固的经济系统,服务器底层必须有一个可靠的数据服务。要设计出精简的数据协议可不容易。它需要保证在发生异常(可能是硬件异常,也可能是软件异常)时,不会出现物品/货币丢失,复制的问题。使用带事务的数据库是一个不错的选择,但对程序员的要求较高。程序员需要仔细考虑每个数据操作如何编写事务才是安全的,还需要考虑数据操作的异步性。这对需求变化迅速,量又比较大的游戏,做的好真的是很困难。我...
最近花了大力气在做openapi的优化,使其尽量柔性可用,借此也有些想法想和大家分享一下。 柔性服务,google一下,在网上并没有这样一个标准的概念,所以应该是公司自己取的一个名字。但是...
程序员有时候很自大。程序员有时候很固执。
集群只要规模上了1000台, 问题就会更多。 RPC, NameNode锁、JobTracker锁、及DataNode, TaskTracker的问题都是一大堆。我们于12月初解决了JobTracker的一些性能问题, 但是NameNode的吞吐量一直没有上来。针对这些问题我们开了几次紧急会议, 会议的决定是由我负责开展一个NameNode优化专门项目。经过大约一个月的努力, 我们的NameNode吞吐量已经上升8+倍。接下来的笔记将连载我们是如何发现NameNode的问题, 并进行NameNode优化的,...
帮朋友写的一个简单审计删除操作的触发器,供参考。
自从9月份在同事推荐下在某团购网买了一份火锅的套餐后,就迷上了,几乎每天必去浏览一遍,看看有什么又便宜又好吃的。元旦期间当然也不例外,1号那天上午,看到了XXX团购网的“VIP会员0元领红包”活动,0元?我最喜欢了,虽然参与过很多次0元抽奖的活动,一次也没中,但是人总是有一种信念相信自己的运气的。于是果断进去注册,点击购买,进入了购物车再点击确认订单,恩?怎么alert这么一句“本活动只限VIP会员参与”?我第...
其实是对于offsetof函数的灵活应用,关于offsetof函数: #define offsetof(s, m) (size_t)&(((s *)0)->m) s是一个结构名,它有一个名为m的成员(s和m 是宏offsetof的形参,它实际是返回结构s的成员m的偏移地址. (s *)0 是骗编译器说有一个指向类(或结构)s的指针,其地址值0 &((s *)0)->m 是要取得类s中成员变量m的地址. 因基址为0,这时m的地址当然就是m在s中的偏移 最后转换size_t 型,即unsigned int。 因此,我们可...
同样是写程序,不同的岗位工作内容不一样,对程序质量以及工程师的要求也不一样。程序开发大概可以划分成两类:开发和研发,相应也就有开发工程师和研发工程师。很多人觉得做开发和做研发没什么区别,“都是一样对着电脑写程序啊”,但其实这两者是完全不一样的,下面我想抛开公司对员工的期望、社会对工程师的需求等其它因素,单纯从国内互联网行业“工程师个人发展”的角度来说一下我个人对这两类工作的看法。
最近时间过的不咸不淡。索性就让自己思考,无论对错也不能停转。 自己小白,前期一直对互联网中的分众和垂直这两个词语没什么概念,最近四处浏览了一点东西,才有了几点直观感受。博客分众,可以理解为“让读者更乐意阅读自己感兴趣的内容”。对这一句话概括的目标进一步细分:读者、乐意阅读、感兴趣的内容,即做博客分众的三大前提或三个层次。其实实际操作起来,三者必然混为一体、相互影响。但作为一个问题的三个层次,逐层递...
有一个朋友问,一个用户搜索一个query是“百度”,怎么知道用户真正是想找什么呢。 我回答说,分析之前搜索这个query的用户点了些什么结果啊。 朋友继续问,如果没有用户点击呢。 呃,如果没有点击,这个问题就比较复杂了。整理了下思路,于是写成了本文。主要描述了关于如何预测用户query意图。希望会有所帮助。 首先我们的明确一个标准,如何判断我们对用户意图的猜测是正确的? 用户的思维是很发散的,也许今天搜索“葛优”,是...
本插件自己打印链接中指定的页面,可以通过以下方式和参数传递: $(select).printPage( {attr : “href”,//链接的href属性 url : false,//特定的url, message: “请稍后,真正为您准备文档…” } ); demo页面:http://www.css88.com/demo/jQuery-printPage-plugin/ 注意:在IE下打印页面,背景图片和背景颜色默认不打印 解决方案: 在IE的工具里,Internet选项
在工作过程中,用httpclient去压测一个web api,发现压一小段时间就出现了Too many open files。 实际上,HttpClient建立Socket时 ,post.releaseConnection()并没有真正关闭连接,而是将该连接提交给 MultiThreadedHttpConnectionManager,等待复用。 而http的连接是等待timeout才会自动断开的,所以,当用完系统的句柄后,自然会报Too many open files。 解决办法: 设置post方法的header,增加 pos...
Flash被广泛应用于互联网各个方面,是因为它提供了各种各样的特性,其中很重要的一点就是,可以用flash建立TCP连接到服务器然后交换数据。从网络管理员的观点看,一个互联网的服务器能够连接进到内网里来,是一个很恐怖的事情,所以flash搞出来一个安全策略文件。 改变 Flash Player 9,0,124,0 版本对这个策略文件进行了两个重大改变:一是所有的端口都需要在策略文件里声明了,以前的版本只需要...
一个用户到了某个网站的门口,从跨进门槛到找到自己的座位,这个过程中网站要做的,一是让用户尽快坐稳,该干什么干什么;二是让用户快速熟悉房间,保持新鲜感,至少在坐下之前,主人应该送上杯水或两本杂志,让用户既感觉到主人的热情,又轻松发现了新的网站兴趣点,在座位上骚动起来。网站们是怎么做的呢? 记得很久之前听过一个例子,说某家网站的注册流程中,对电子邮箱确认邮件的某句表述稍作修改,使得注册成功率大幅提升,...
设计与开发之间本有一线界限,但当时代步入又一个十年,这个线变得更加模糊甚至感觉不到它的存在。使用PS设计网页版面,足矣?或许五年前是吧!现在的互联网用户要求越来越多。没有内涵的华丽很快就会被丢弃。如果你追求华而不实的设计,那么相信你很快会被时代遗弃。2011年不再属于单纯的华丽而是注重功能。新的一年或者未来十年的设计趋势是响应设计(responsive design)、持续联系(constant connection)和虚拟现实(virtual reality)。
开发一个产品的时候,应该问自己五个问题: 1、给谁用? 2、他们用这个产品来解决什么问题? 3、这个问题对他们而言有多重要? 4、我们的方法是否足够简单方便? 5、他们要付出的代价与所得是否匹配?当我们对市场进展不够满意时,检视这5个问题比检视广告更有效。
我们在做服务器程序的时候,经常要知道一个请求的响应时间,借以优化或者定位问题。 通常的做法是在代码里面加入日志计算时间,这个方法有问题,时间不准确。因为数据从网卡到应用程序,从应用到网卡的时间没有被计算在内。 而且这个时间随着系统的负载有很大的变化。 那同学说,我wireshark, tcpdump抓包人肉统计不行吗。 可以的...