摘要: 下面这篇思考,是在地铁上突然想到,然后把理解用自己的文字写在手机上。扇区和磁盘块的区别是什么?这么多的单位真的很难记忆,很难区别,最好是自己了解原理。物理层面分为磁道,扇区。磁盘块是个虚拟出来的概念,是操作系统中的。操作系统为什么要虚拟个这样的概念出来呢?操作系统与磁盘打交道的最小单位是磁盘块。目前... 阅读全文
posted @ 2015-09-08 12:52 王滔 阅读(18342) 评论(2) 推荐(13) 编辑
摘要: 不使用单一入口的框架开发,代码和目录的数量越来越臃肿,项目维护成本很高没有反面例子来做借鉴,人的大脑不以为然。下面的截图就是一个中型项目后来变成的目录结构,项目的代码越来越乱,开发人员不愿意去维护这个系统的代码,因为去找代码进行修改,变得很痛苦,代码混乱,目录很众多,找代码会看花眼。是一套典型是基于... 阅读全文
posted @ 2015-09-02 18:22 王滔 阅读(1326) 评论(0) 推荐(0) 编辑
摘要: Strict standards: Only variables should be passed by reference网上查到资料有这么一句话:在php5.3以上版本会出这个问题,应该也和php的配置有关,只要把这一句拆成两句就没有问题了。因为array_walk的参数是引用传递的,5.3以上... 阅读全文
posted @ 2015-08-28 15:26 王滔 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 从网上看了一些资料,为了方便自己理解,于是把它的编码原理,自己放在excel表格中清晰列出来,方便以后查阅。做的图如下:ascii编码表这个表很大,截图不出来。网上有。0-255的整数表示256个字符,即2的8次方=256。2的7次方是128。参考:http://1024tools.com/asci... 阅读全文
posted @ 2015-08-22 11:33 王滔 阅读(466) 评论(0) 推荐(0) 编辑
摘要: Pass_proxy走内网,被请求方的php使用remote_addr得到就是转发机器的内网地址,如192.168.10.141这样的。走外网,被请求方php的remote_addr得到就是转发机器的外网地址,如118.198.10.141。如何会影响走内网还是外网呢?host中进行域名绑定会影响。... 阅读全文
posted @ 2015-08-21 10:18 王滔 阅读(1006) 评论(0) 推荐(0) 编辑
摘要: 这里系统专门指的是那种用户量大的系统,比如有几百万或者上千万的注册会员。因为小系统因为用户量少,不存在这种思考,考虑有时候是多余的。另外还有内部系统,给自己公司内部人员使用的,即便是出现了问题,也不会造成很大的问题,内部协调一下即可。而针对客户的系统,公司的收入和价值来源于给客户提供稳定的服务。这是... 阅读全文
posted @ 2015-07-11 14:42 王滔 阅读(2899) 评论(1) 推荐(3) 编辑
摘要: 对文件系统原理学习的理解 按需分配。打开的文件属性才放入内存中。关键点是记录某个文件用到哪几块磁盘地址。一个文件可能占多个磁盘块,可能是一个。关键在于文件的的大小文件名,磁盘块地址,多个。连续分配:一个文件占据了3个磁盘块。是连续在一起的。读的性能很好,读一个文件的内容只要一次操作,找到第一个磁盘块... 阅读全文
posted @ 2015-06-29 12:52 王滔 阅读(677) 评论(0) 推荐(0) 编辑
摘要: 文件系统是操作系统的一部分,最终是目的是管理文件。操作系统中之所以产生文件的概念,是为了方便多个进程可以共享一些数据,那么这些数据就要存储在磁盘上。多个进程可以进行访问。把文件看成是磁盘上的地址空间。文件的内容其实对计算机而言,就是字节序列。对用户看到的才是一行一行数据。文件系统要解决的关键性问题是... 阅读全文
posted @ 2015-06-29 12:51 王滔 阅读(640) 评论(0) 推荐(0) 编辑
摘要: $username = '刷_单8元1单淘宝客服20元1小时_我Q125556733jff'; var_dump(strlen($username)); var_dump(Library\Common::username_patten($username));一、使用strlen来判断长度里面的... 阅读全文
posted @ 2015-06-22 22:31 王滔 阅读(1160) 评论(0) 推荐(0) 编辑
摘要: 我们的用户量大,修改js文件后,用户反馈登录出现问题。实际上刷新一下就没事了。就是因为用户的浏览器使用的还是本地缓存的js代码。强制刷新一般就会重新去服务器获取新的js代码。但不能让用户每次都这样子去做。于是我思考一个问题:如果修改了js文件中的js代码,发布代码到线上后。用户的浏览器使用的还是原来... 阅读全文
posted @ 2015-06-20 23:26 王滔 阅读(32151) 评论(5) 推荐(2) 编辑
摘要: 常见的坑有两个:一、获取的是内网的ip地址。在nginx作为反向代理层的架构中,转发请求到php,java等应用容器上。结果php获取的是nginx代理服务器的ip,表现为一个内网的地址。php获取REMOTE_ADDR就是这样一个情况(内网地址)。二、获取的是攻击者伪造的ip地址。攻击者可以随便伪... 阅读全文
posted @ 2015-06-17 11:39 王滔 阅读(8513) 评论(1) 推荐(0) 编辑
摘要: /** * * 检查手机号码是否可用 * @param $cellphone 手机号码 */ public function checkPhone($cellphone) { $cellphone = trim($cellphone); if (InputCheck::CheckCellphone... 阅读全文
posted @ 2015-06-15 18:30 王滔 阅读(563) 评论(0) 推荐(0) 编辑
摘要: 情况:收不到邮件。邮件发送系统并没有问题。排查思路:1、发送一次,先去数据库看看是否验证码是不是重新生成一次了select * from uc_verify_code where uid=21306555 目的是确保已经生成到数据库,因为只有这样子才会加入到数据库去的。2、去看看redis队列任务的... 阅读全文
posted @ 2015-06-14 22:57 王滔 阅读(385) 评论(0) 推荐(0) 编辑
摘要: sysbench 阅读全文
posted @ 2015-06-14 16:24 王滔 阅读(990) 评论(0) 推荐(0) 编辑
摘要: http://oauth.net/2/ 协议的原文。原来是1.0版本,现在是2.0版本了https://ruby-china.org/topics/15396https://blog.yorkxin.org/posts/2013/09/30/oauth2-1-introduction/通俗解释:ht... 阅读全文
posted @ 2015-06-07 17:44 王滔 阅读(2938) 评论(0) 推荐(0) 编辑
摘要: 1、php将表单里面获取的日期格式转换成统一的格式2015-9-9 都统一转换成 2015-09-09 这样在数据库都是统一的格式,方便以后查询$year = "2015";$month = "9";$day = "09";var_dump(checkdate($month,$day, $year)... 阅读全文
posted @ 2015-05-26 18:24 王滔 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 什么是主引导扇区? master boot record它是硬盘上的第一个扇区,由硬盘厂商就预留了。一个扇区的大小通常是512个字节。主引导扇区,不依赖于具体的操作系统,也就是说主引导扇区可以启动任何一种操作系统。它的作用是什么?里面存储了什么信息?里面存储的是硬盘的基本信息,包括硬盘分成几个区,每... 阅读全文
posted @ 2015-05-25 11:54 王滔 阅读(1329) 评论(0) 推荐(0) 编辑
摘要: 都在说互联网要敏捷开发。我思考,具体实施起来,的确许多障碍。概念很好。方向也不错。思考:用什么办法来实现敏捷。技术层面要能够支撑敏捷开发。比如框架,代码层面。这些都需要技术去解决的。不是一个要求:要快速开发,快速响应。这个都知道,怎么快速起来才是要解决的问题。比如技术层面:解耦,拆分系统,很多系统不... 阅读全文
posted @ 2015-05-18 23:30 王滔 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 、系统之间耦合:用异步处理代替同步处理针对系统异常,提供降级处理,提供有限的合格服务。前端页面系统,php,使用优化器来优化php代码。将系统进行分级,按照重要性:一级系统:因为是强依赖关系,所以要同步调用,重试机制。二级系统,异步调用。系统拆分后,单独改造系统,优化系统容易。相互隔离,调试和排错... 阅读全文
posted @ 2015-04-21 00:08 王滔 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 虚拟文件系统当时的设计目的是为了网络文件系统而设计的。虚拟文件系统,是一个抽象层。所以一个分区可以同时存在多个文件系统的原因就是,有个抽象层。。Windows没有这个,不需要这样子做。它靠盘符来确定文件系统网络文件系统的缺点:需要锁机制。无状态性。客户端并没有记录打开的文件。为什么不记录打开项呢?... 阅读全文
posted @ 2015-04-21 00:00 王滔 阅读(318) 评论(0) 推荐(0) 编辑
摘要: Vigrant,基于virtualbox。创立模板。是管理工具。没有讲解清楚。Docker,集装箱的概念。CoreOS,基于linux内核的操作系统,基于docker。盒子。各个容器相互不依赖。。一个系统放到一个容器里面。。。Docker,不是虚拟机技术。它是直接与主机操作系统通信。因为它只支持Li... 阅读全文
posted @ 2015-04-21 00:00 王滔 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 招聘工程师的十条经验教训 作者 Manuel Pais ,译者 李清玉 发布于 2015年4月9日Rodoljub Petrović,在过去的十年里从一名软件工程师转变成为一名经理,他在2015年卢布尔雅那开发运维日大会上分享了不断成长的工程师团队 的经验教训。他的核心思想是,招聘是组织文化的... 阅读全文
posted @ 2015-04-19 15:51 王滔 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 了解硬盘的原理对于编程,做数据优化(比如磁盘i/0瓶颈,机械硬盘慢的原因)都是有好处的。以前总觉得不太需要了解这些,但是越是做到后面,发现,了解计算机各个组件的原理,其实才能理解更加深入的知识,否则永远只是一个敲代码的工人。里面之所以开辟一个专门的章节讲解磁盘的原理,是理解到磁盘在数据库优化中的重要... 阅读全文
posted @ 2015-04-19 12:54 王滔 阅读(802) 评论(0) 推荐(0) 编辑
摘要: 一、tar.gztar -xzvf二、tar.bz2tar.bz2 解压命令bzip2 -d gcc-4.1.0.tar.bz2---上面解压完之后执行下面的命令。执行成功后,会解压生成一个.tar的压缩包文件。接下来就是使用tar命令解压了。tar -xvf gcc-4.1.0.tar 或 tar... 阅读全文
posted @ 2015-04-04 22:03 王滔 阅读(3227) 评论(0) 推荐(0) 编辑
摘要: 资料来源:http://www.huxiu.com/article/106199/1.html?f=xianguo这个尚德教育机构的创始人,虽然不是做技术的,不过说话还真到点:我们发现,传统网校的业务人员不能用,他们的技术人员也不能用。很多网校的技术架构可以用垃圾来形容。在这一年里面,我们用了两个团... 阅读全文
posted @ 2015-01-14 12:50 王滔 阅读(836) 评论(0) 推荐(0) 编辑
摘要: 从一本书里面看到一个好的看法,与以前看的管理者本质是服务心态的观念非常吻合。 ----------------------------------- “让我这样来解释,”一分钟经理人打了一个比方,“我会把你的组织架构想象成一个金字塔,首席执行官位于塔顶,其他所有做出贡献的个体都在底部。这两者之间有多 阅读全文
posted @ 2014-12-31 11:39 王滔 阅读(3017) 评论(0) 推荐(0) 编辑
摘要: 编译memcached扩展的时候,得指定libmemcached库的位置--with-libmemcached-dir=DIR 来指定路径。这个路径就是安装libmemcached时指定的prefix的值所以得先安装libmemcached库。一、安装libmemcached库libmemcache... 阅读全文
posted @ 2014-11-20 12:49 王滔 阅读(1182) 评论(1) 推荐(0) 编辑
摘要: 目前遇到的情况有:一、数据库进行在线ddl(修改表结构和字段)也是使用重名表名的方式。复制一张表,包括里面的数据,假设名称为tmp。在这张tmp表上面执行dll语句操作。此时要记录某个时刻开始对数据库的更新操作sql,缓存起来。执行dll操作完毕。就把之前缓存起的sql放到这个tmp表中执行一遍。二... 阅读全文
posted @ 2014-11-02 15:52 王滔 阅读(714) 评论(0) 推荐(0) 编辑
摘要: 使用这个框架,我总结了如下几点考虑1、这个框架速度快。纯c语言编写的框架,速度都比php框架快,省去了中间环节。当然,使用它不仅仅是性能考虑。因为如果为了解决php性能问题,完全可以有很多种方式,不仅仅是这种。比如做代码优化(加php代码加速器),像facebook加速php性能有开源的工具可以使用... 阅读全文
posted @ 2014-09-24 11:58 王滔 阅读(3571) 评论(0) 推荐(0) 编辑
摘要: 写代码,只是完成功能,堆砌代码。如果别的程序员接手,就会感觉比较吃力。难以维护,很怕去折腾这样的代码。所以很多技术员去维护的时候,宁愿自己写,不愿意在别人的基础上修改,因为看着别人的代码,难以看明白,加上业务部催任务的压力(包括老板),如果还等到去看懂别人代码,再修改。费时费力了。所以他们往往喜欢自... 阅读全文
posted @ 2014-05-25 10:22 王滔 阅读(417) 评论(0) 推荐(0) 编辑
摘要: 对于技术方面开发,要解决一些比较复杂的问题。技术很折腾。有个观点说,业务调整一小步,技术进一大步。非常有同感。我记得曾经看阿里巴巴dba童家旺分享提到他们数据库方面调整时,说了一点:技术人员做得最牛逼的事情,不是解决了数据库本身的问题(言外之意很难解决),而在于砍掉了业务的需求。我觉得,面对需求,确... 阅读全文
posted @ 2014-05-03 19:03 王滔 阅读(408) 评论(0) 推荐(0) 编辑
摘要: 大体分为:事前估算(设计算法之前就估算此算法性能)和事后估算(运行后,通过收集数据)直觉上以为是事后估算为主,毕竟,实践是检验真理的标准嘛。事后收集数据才是比较靠谱的。不过,想法错了。现在才明白,以"事前估算"为主要办法。为什么事后估算的办法不怎么使用呢?1、输入的数据量没法真实模拟。比如输入的数据... 阅读全文
posted @ 2014-04-10 08:54 王滔 阅读(2137) 评论(0) 推荐(0) 编辑
摘要: 本文主要是思维性的总结,是总结优化的方法学,对方面上面的错误进行总结。不会涉及到前端具体的技术,比如对js和css进行压缩、合并,减少http请求,缓存头控制等等。这些那本《高性能建站指南》都有现成的。 基于本人在多家公司分别遇到的网站速度与性能问题,多年所积累出的干货;有的开发10年经验,在遇到网站速度问题时,也仍然在犯同样的错误。一、背景与思维方式常见的情况:使用的是1m带宽(因为带宽是比较昂贵的资源,刚开始购买会比较少,起初够用了)。基于这个情况,是不是带宽少了呢?加带宽?js、css之类的文件也并没有压缩,为了提高高速度,那是不是应该要压缩一下呢?比如合并多个js文件,减少http请. 阅读全文
posted @ 2014-04-08 08:34 王滔 阅读(1603) 评论(0) 推荐(0) 编辑
摘要: 为什么需要进行全文搜索呢?一个表中有a、b、c多个字段。我们使用sql进行like搜索的时候,往往只能匹配某个字段。或者是这样的形式:a LIKE “%关键词%”or b LIKE “关键词”这样子根本没法实现全文搜索,如果需要搜索整个表中所有出现过关键词”手机”的商品,一般要匹配商品的标题字段。而如果商品描述中出现”手机”关键词,则没法去匹配。全文搜索,就是不限制搜索某个字段,是对数据库中所有的内容做匹配,是全文级别的搜索。是针对所有内容都进行匹配。这需要预先建立好索引数据结构。比如记录哪个文档中出现过某个关键词。其实在11年的时候就已经研究过sphinx,理解还比较粗浅。那个时候没有在生产 阅读全文
posted @ 2014-04-07 11:34 王滔 阅读(2593) 评论(0) 推荐(0) 编辑
摘要: 由于在公司要维护阿里云的linux服务器,我们的svn服务器就安在阿里云上面。所以经常会涉及到svn的维护操作。离职的时候编写交接文档,刚好有充足的时间写一篇说明介绍,此说明纯原创,不是从网上复制,手工根据个人理解写出来的。这里用作备忘,网络形式就是方便查阅。1、 如何创建一个新的版本库如果需要新开... 阅读全文
posted @ 2014-04-06 22:48 王滔 阅读(1890) 评论(0) 推荐(0) 编辑
摘要: 极限编程敏捷开发是一种思想,极限编程也是一种思想,它与敏捷开发某些目标是一致的。只是实现方式不同。测试驱动开发是极限编程的一部分。1、极限编程这个思路的来源Kent Beck先生最早在其极限编程(XP)方法论中,向大家推荐“测试驱动”这一最佳实践,还专门撰写了《测试驱动开发》一书,详细说明如何实现。经过几年的迅猛发展,测试驱动开发已经成长为一门独立的软件开发技术,其名气甚至盖过了极限编程。[1]2、为什么测试驱动开发在实践中难以开展测试驱动开发,在国内很多公司难以实施。因为tdd(测试驱动开发)的办法是,写代码之前先编写测试代码,测试通过后再实现这个测试代码。很多人觉得这是浪费了时间。这样循环 阅读全文
posted @ 2014-04-06 10:25 王滔 阅读(573) 评论(0) 推荐(0) 编辑
摘要: 疑问:为什么会涉及到分词方法学呢?为什么需要确定哪些是词语,哪些不是词语呢?为什么需要进行分词,如果不分词会是什么情况呢?分词的根本目的是为了搜索服务的,更确切的是为快速搜索而服务的。了解倒排索引后,就知道全文搜索需要分词了。理解一下正向索引(反向索引就是倒排索引,先产生了正向索引来搜索,后面才发明了反向索引):http://www.cnblogs.com/wangtao_20/p/3647193.html比如要搜索词语"湖南",那么意思是搜索哪些资料中带有关键词"湖南"。如果一篇文档中有2000个字,里面确实有文字"湖南"。但是要拿 阅读全文
posted @ 2014-04-06 10:23 王滔 阅读(7099) 评论(0) 推荐(1) 编辑
摘要: 倒排索引也叫做反向索引(inverted单词也有反转的意思,只不过大家喜欢翻译成倒排索引)。 倒排索引在搜索引擎中经常用到,倒排索引也叫做反向索引。某天在想,为什么叫做倒排索引呢?倒过来的,反转过来的。那么,非倒排索引是什么样子的。解释一大堆。云里雾里。 后来知道,反向索引是相对正向索引而言的,那什 阅读全文
posted @ 2014-04-05 14:15 王滔 阅读(3599) 评论(1) 推荐(1) 编辑
摘要: 缺乏产生背景的介绍。比如为什么会产生这种东西,在没有这种东西之前是什么一个情况。了解这些,对于解决实际问题可能帮助并不大,不过对于学习知识帮助很大。可以提升思维,知道这种东西是为解决什么问题而产生的。那么就不会盲目去模仿,有一个判断力。我们目前得到的只是知识的结果。理解起来困难,学起来就比较吃力。只注重知识结果,也不容易记忆。比如,在出现数据库系统之前,是文件系统来存储数据,会出现什么样的问题。于是专门的数据库系统解决了一些问题,独立于操作系统以外了。没有几本书讲解数据库系统的讲得比较详细,一般直接上结果了。再比如事务的思想从一本书得到是从现实中交易合同启发而产生的。倒排索引,为什么叫做倒排索 阅读全文
posted @ 2014-04-04 22:32 王滔 阅读(591) 评论(0) 推荐(0) 编辑
摘要: 在linux下设置一个服务(或应用)开机自动启动有两类办法第一类:利用开机的时候,linux会自动执行某个文件里面的命令。那么把启动某个服务的命令,加到这个文件里面去。比如会执行/etc/rc.local里面的命令。把那个服务启动的命令加入到这个文件中去即可。当初公司服务器上配置svn开机自动启动,就是这样子操作的:vi /etc/rc.local里面内容如下:/etc/rc.d/init.d/svn.sh注:rc.local中填写脚本的路径,就会执行这个脚本。svn.sh是一个shell脚本,里面其实就是启动svn的命令。大家经常使用的 rc.local是习惯方面,也可以把命令写到其他文件中 阅读全文
posted @ 2014-04-04 19:53 王滔 阅读(636) 评论(0) 推荐(0) 编辑