正确用DD测试磁盘读写速度
没有加任何参数,dd默认的方式不包括“同步(sync)”命令。也就是说,dd命令完成前并没有让系统真正把文件写到磁盘上。所以以上命令只是单纯地把这128MB的数据读到内存缓冲当中(写缓存[write cache])。所以你得到的将是一个超级快的速度。因为其实dd给你的只是读取速度,直到dd完成后系统才开始真正往磁盘上写数据,但这个速度你是看不到了。
精选技术长文、实践记录与系统化阅读
低噪声、高可扫读;标题、摘要、来源、标签一目了然。
采集自各技术站点的近期文章。
没有加任何参数,dd默认的方式不包括“同步(sync)”命令。也就是说,dd命令完成前并没有让系统真正把文件写到磁盘上。所以以上命令只是单纯地把这128MB的数据读到内存缓冲当中(写缓存[write cache])。所以你得到的将是一个超级快的速度。因为其实dd给你的只是读取速度,直到dd完成后系统才开始真正往磁盘上写数据,但这个速度你是看不到了。
关于js中的事件监听大家用的比较多了,无非是判断浏览器是否支持addEventListener和attachEvent,网上搜索关于事件监听的方法也挺多,但是总有些不是很完善。下面的方法中对于添加事件监听的方法是一样的,只不过在取消事件绑定上面做了点手术,现在可以支持匿名函数的使用,所以在绑定事件的时候不再需要给函数单独命名了。
技术领导人的特质:不管跟什么人沟通,CEO,COO,还是PM,开发人员,他都是以双方可以有直观印象的语言来做沟通,他想知道你的意见的时候,提出的问题,尽可能的,不是给你出主观题,而是选择题。而要达到这个目标,我相信他在问每一个问题,每一次谈话之前,都会先把思路理得井井有条。
战略和执行的差别:没有John的忽略一切细节的大方向指引,他们永远不会去台湾,只会在崇明岛晃悠;没有Grace的细节执行,他们也永远到不了台湾,只是一个空想。各种各就其位各司其职的配合以及相互的体谅,才造就了很多看似不可能的成果。
说起翻译,许多人都有兴趣。但真正能动手去尝试的人,只占其中的一小半;能熬过尝试阶段的煎熬,真正入门的人,更是少之又少。这种现象给不少人造成了错觉,认为翻译是件看起来容易做起来难的事情。但是根据我自己的经历和其它做译友的反馈,这话其实只说对了一半,翻译“做起来”并没有那么难。翻译之所以给人“做起来难”的感觉,很大程度上是难在入门阶段,难在一些基本问题没有解决。所以,这篇文章来谈谈大家关心的两个基本问题:第一,翻译是怎样的工作;第二,直译更好还是意译更好。
人非圣贤孰能无过,对于用户来说,出错行为在所难免,因此在忽略犯错动机的前提下(主要是避免部分极端用户的主观试错),需要设计师为产品的可用性提供“退路”或者“其他路线”。换句话说,当用户在操作过程中触发了错误事件,需要有合理的交互反馈来帮助用户排除使用障碍,继续未完成的操作——回归到WEB产品本身,即提供“返回入口”和“文案提示”,确保用户能“转移”到正确的操作流程中去。
“操作入口明确”,就是指产品的任何一个功能都要有明确、合理的入口。“操作入口”,指的是产品内部不同模块之间的转接元素,例如在Web产品中,按钮控件、输入框、文字链等都属于操作入口;“明确”指的是入口的视觉感是清晰的、可识别的;“合理”是指入口的出现是符合用户操作逻辑的,适时的。
昨天,我看到一个非常有趣的删除一个目录下的海量文件的方法。他没有使用find 或 xargs,他很有创意的利用了rsync的强大功能,使用rsync –delete将目标文件夹以一个空文件夹来替换。之后,我做了一个实验来比较各种方法。让我吃惊的是,Lee的方法要比其它的快的多。下面就是我的测评。
把函数都放在一个名字空间内,可以减少全局变量冲突的概率,却没有解决全局变量冲突这个问题。应该如何解决?
为了解决串号做过的一些事情: cookie里增加一个值,用来记录通过关键cookie生产的签名,这个签名是算法非常简单。每次请求到服务端的时候session框架代码里会对此签名进行匹配,如果和服务端获取的数据签名出来的值是一致的,则认为合法,否则清空session信息和cookie信息,让用户重新登录。
因为cpp没有拉圾回收的机制,所以,cpp程序经常出现各种内存泄漏,一般而言,指针的new和delete需要对应,不然就会出现很严重的问题。而智能指针就是帮助我们自动管理指针的一种方式,比较常用的就是利用引用计数的方式,实现,当变量出了作用域时自动删除,当还有其他变量持有指针时不会删除。
1. 对比A7机型和C5机型,C5的CPU性能较好(主频2.3,A7主频1.9),单盘时IO是瓶颈,而A7机型瓶颈在CPU,锁比较厉害,需要解决; 2. IO瓶颈解决方法有两种,两块SSD盘做RAID0,有12%的性能提升,而两块盘不做RAID,可以达到18%的性能提升。两块盘不做RAID性能优于做RAID; 3. 不同块数SSD盘测试引擎性能无异,此时瓶颈已经从单盘时的IO瓶颈转移到CPU瓶颈; 4. 随着CPU性能的提升,IO是瓶颈,是主要矛盾,此时的解决方案可以是用多块SSD盘按term切分存索引。而当随着SSD盘数的增多,CPU则成为瓶颈,成为主要矛盾,spin_lock及smp_invalidate_interrupt消耗过大,20%~40%的CPU消耗,需要解决此问题; 5. A7机型是单SSD盘,考虑到SSD盘的写性能及写寿命,推荐普通盘存log+SSD盘,增量索引可以单独存放。如果需要SSD盘写,则要考虑分区对齐、一些挂载选项及定时TRIM;
通常来说,浏览器对于Javascript的运行有两大特性:1)载入后马上执行,2)执行时会阻塞页面后续的内容(包括页面的渲染、其它资源的下载)。于是,如果有多个js文件被引入,那么对于浏览器来说,这些js文件被被串行地载入,并依次执行。 因为javascript可能会来操作HTML文档的DOM树,所以,浏览器一般都不会像并行下载css文件并行下载js文件,因为这是js文件的特殊性造成的。所以,如果你的javascript想操作后面的DOM元素,基本上来说,浏览器都会报错说对象找不到。因为Javascript执行时,后面的HTML被阻塞住了,DOM树时还没有后面的DOM结点。所以程序也就报错了。
总的来说,下拉刷新这一部分的细节设计,可以是传达产品价值、推广品牌理念的一个机会,精心做一些特别一点的设计,就可以让大家记住你。所以,我们可以在以后的产品设计中,把握好产品大方向的同时,兼顾一些这种小细节设计,把我们的品牌元素和产品价值的东西能够成为产品的一些小亮点,让我们的应用能够在精致的路上,越走越好~
PL/SQL是Oracle对SQL的过程化扩展,是Oracle数据库内部直接支持的语言。甚至,管理数据库的API接口都是以PL/SQL存储过程的方式提供的,耳熟能详的诸如收集统计信息,打印执行计划等等。PL/SQL除了与SQL语言无缝衔接之外,还具有所有过程化强类型语言的一切特征,如变量/过程/函数的定义,一般的控制结构,异常处理等等。
最近(2013年6月) Linux 内核爆出了一个严重的安全漏洞,非root用户可以通过该漏洞的 exploit 获取root权限。这并不罕见,值得一提的是这个补丁看起来如此平常以至于我们绝大多数人都不会以为这是安全问题。
让我们先看看编程大师Robert C. Martin的杰作《Clean Code》里的一句话:“注释的目的是为了弥补代码自身在表达上的不足。”这句话可以简单的理解为如果你的代码需要注释,最有可能是你的代码写的很烂。同样,如果在没有注释的情况下你无法用代码完整的表达你对一个问题或一个算法的思路,那这就是一个失败的信号。
这里说的“瑞士军刀”是指那些简单的一句命令就能完成其它高级语言一大片代码才能完成的工作。文中的这些内容是Quora网站上Joshua Levy网友的总结。
从2006年开始,腾讯的研发规模开始膨胀,开发模式急需规范和标准化,到底走IPD(集成产品开发)还是Agile(敏捷)的开发路线,公司管理层也在为拿不定主意而犯愁,之后研发管理部开始与ThoughtWorks公司接触,逐渐将敏捷产品开发引入进来,并正式命名为TAPD(Tencent Agile Product Development)。
HttpOnly并不是万能的,首先它并不能解决xss的问题,仍然不能抵制一些有耐心的黑客的攻击,也不能防止入侵者做ajax提交。为了降低跨站点脚本攻击带来的损害,通常需要将HTTP-only Cookie和其他技术组合使用。如果单独使用的话,它无法全面抵御跨站点脚本攻击。