自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

香巴拉

Life is to live with yourself.

  • 博客(670)
  • 资源 (2)
  • 收藏
  • 关注

转载 Linux tcpdump命令详解

简介用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 实用命令实例默认启动tc

2015-04-30 18:14:27 1287

原创 关于php include变量作用域的说明

作者:zhanhailiang 日期:2015-04-17首先,请阅读include,其中重点说明了“include所包含的代码继承了 include 所在行的变量范围”:当一个文件被包含时,其中所包含的代码继承了 include 所在行的变量范围。从该处开始,调用文件在该行处可用的任何变量在被调用的文件中也都可用。不过所有在包含文件中定义的函数和类都具有全局作用域。这

2015-04-17 22:29:57 2118

原创 使用Chrome Inspect调试WebApp

作者:zhanhailiang 日期:2015-03-10在PC上有大量的开发调试工作,但是针对需要在移动设备上调试的页面,目前缺乏有效的工具,只能通过PC来模拟测试,为此Chrome支持远程调试Android设备,详情请见Remote Debugging on Android with Chrome。开启移动设备开发者选项,若和笔者一样使用M4,可参见小米4如何进入开发者选

2015-03-10 11:51:26 4686 1

原创 php-fpm执行流程源码浅析

作者:zhanhailiang 日期:2015-03-09sapi\fpm\fpm\fpm_main.c:@main;fcgi_init()->fcgi_setup_signals(); 设置信号处理方法;sigaction(SIGUSR1, &new_sa, NULL);sigaction(SIGTERM, &new_sa, NULL);sigaction(SI

2015-03-09 22:03:22 2951

原创 php设置$_ENV值的几种方法

作者:zhanhailiang 日期:2015-03-04$_ENV 值是从 PHP 解析器的运行环境导入到 PHP 的全局命名空间。比如,php-cli模式执行,读取当前用户环境变量;php-fpm模式初始化时,读取当前用户环境变量;1. 通过 修改系统级、用户级配置文件 设置环境变量通过 /etc/profile, /etc/environment, ~/.profi

2015-03-04 20:47:33 5871

原创 修改php.ini配置的几种方法

作者:zhanhailiang 日期:2015-03-041. 通过 php.ini 修改配置:[root@/usr/local/php/etc]# /usr/local/php/bin/php -ini|grep php.iniConfiguration File (php.ini) Path => /usr/local/php-5.3.29/lib[root@/usr/l

2015-03-04 19:07:04 6684

原创 Linux svn如何切换用户

作者:zhanhailiang 日期:2015-03-03临时切换给所有的svn命令添加--username,--password参数即可;[root@localhost ~]# svn co --username xxxx --password xxxx永久切换删除目录 ~/.subversion/auth 即可;[root@localhos

2015-03-03 17:16:24 1814

原创 PHP5.5+集成OPcache

作者:zhanhailiang 日期:2015-02-28安装与配置下载php-5.6.6.tar.gz[root@~/wade/git/billfeller.github.io/code]# wget wget http://cn2.php.net/distributions/php-5.6.6.tar.gz通过 --enable-opcache 开启O

2015-02-28 17:40:46 1495

原创 nginx proxy_pass配置及关于setcookie的一点说明

作者:zhanhailiang 日期:2015-02-01nginx proxy_pass配置透传hd域的动态请求到wapi域下:server { listen 80; server_name hd.coalaawork.com; access_log logs/hd.coalaawork.com.access.log; root

2015-02-01 23:46:04 12335 1

翻译 Linux查看程序、进程的依赖库的方法

作者:zhanhailiang 日期:2015-02-01原文:How to check what libraries are used by a program or process on Linux1. 利用ldd查看可执行程序的依赖库[root@~]# ldd /usr/local/php/bin/php linux-vdso.so.1 => (0x000

2015-02-01 00:47:54 6155

原创 基于HTML Canvas实现“指纹识别”技术

作者:zhanhailiang 日期:2015-01-31说明所谓指纹识别是指为每个设备标识唯一标识符(以下简称UUID)。诸如移动原生的APP都可以通过调用相关设备API来获取相应的UUID。但是浏览器内WebAPP受限于运行环境无法直接防部设备API,此时需要通过其它方法来设置UUID。基于持久化Cookie生成UUID原理当用户访问一个网站时,网站可

2015-01-31 18:16:26 6735 1

翻译 [翻译]基于WebView开发Web APP

作者:zhanhailiang 日期:2015-01-30原文链接:Building Web Apps in WebView基于Android视图类WebView,可以直接在Activity Layout中展示Web页面,这样可以增强更新的灵活性。简单理解,WebView展示HTML页面,但是其本身并不支持浏览器的常用功能,诸如浏览进度控制,地址栏等。使用场景&实现

2015-01-30 23:57:05 1952

原创 [CSS3教程]相对单位rem详解

作者:zhanhailiang 日期:2015-01-28定义CSS3新增了一个相对单位rem,其官方定义如下:font size of the root elementrem,em,px单位的区别rem单位和em单位都是相对大小,px是绝对大小。其区别在em基于当前元素的(如果没设置就是继承其父元素的)font-size,这样会出现一些组合问

2015-01-28 23:09:47 2290

翻译 HTTPS,SPDY,HTTP/2性能对比

作者:zhanhailiang 日期:2015-01-24原文:A Simple Performance Comparison of HTTPS, SPDY and HTTP/2首先,恭喜Firefox 35成为第一个默认支持HTTP/2协议的浏览器。不过由于HTTP/2协议并未完全确定,所以目前Firefox实际支持的是HTTP/2 Draft 14版本(当然最终的协议确认不会

2015-01-25 01:09:32 2168

原创 有限状态机的实现

作者:zhanhailiang 日期:2015-01-24什么是有限状态机一个有限状态机是一个设备,或是一个设备模型,具有有限数量的状态,它可以在任何给定的时间根据输入进行操作,使其从一个状态变换到另一个状态,或者是促使一个输出或者一种行为的发生。一个有限状态机在任何瞬间只能处在一个状态。即有限状态机背后的概念是要把一个对象的行为分解成为易于处理的“块”或状态

2015-01-24 20:20:26 1946

原创 PHP curl报错“Problem (2) in the Chunked-Encoded data”解决方案

作者:zhanhailiang 日期:2015-01-23本地环境:系统版本:Microsoft Windows 6.1.7601PHP版本:PHP 5.3.29php_curl.dll扩展版本:7.35.0Windows环境下遇到一个很奇怪的问题,使用PHP curl发送请求报错:错误码:56错误信息:Problem (2) in the Chunked-Enc

2015-01-23 18:56:02 3293

翻译 [翻译]中级Git用户的25个使用技巧(下)

译者:zhanhailiang 日期:2015-01-21原文链接:25 Tips for Intermediate Git Users存储内容到Stashes, Index和文件系统10. 暂存区丢弃暂存区的所有操作:$ git stash# Do something...$ git stash pop11. 交互式添加修改到暂存区$ gi

2015-01-21 22:31:03 1723

原创 Navicat for MySQL Windows下强大的MySQL管理工具

作者:zhanhailiang 日期:2015-01-21介绍Navicat for MySQL[是一款强大的 MySQL 数据库管理和开发工具,它为专业开发者提供了一套强大的足够尖端的工具。Navicat for MySQL 基于Windows平台,为 MySQL 量身订作,提供类似于 phpMyAdmin 的用户管理界面工具。使用说明下载并安装,Navicat

2015-01-21 00:18:22 3446 1

翻译 [翻译]中级Git用户的25个使用技巧(上)

译者:zhanhailiang 日期:2015-01-17原文链接:25 Tips for Intermediate Git Users基本技巧1. 安装git后,需要配置用户名和邮箱:$ git config --global user.name "Some One"$ git config --global user.email "someone@gmail.c

2015-01-17 01:56:30 1919

原创 HTTPS下请求HTTP时客户端不带Referer头部

作者:zhanhailiang 日期:2015-01-08今天,测试发现在https://mlogin.vip.com/user-login.html?back_act=http%3A%2F%2Fm.vip.com%2Fuser.html下上报监控数据http://mstats.vip.com/v1/timing/m?_t=1420647129290&p2=240&p4=37

2015-01-08 09:15:25 5164

原创 TortoiseGit Bad file number 解决方法

作者:zhanhailiang 日期:2015-01-07直接使用命令行git pull操作正常,如下:D:\vipshop\mstats\mstats-monitor>git pullUpdating 5050c42..e8b3bd9Fast-forward public/css/app.css | 30 ++++++++++++++++++ pu

2015-01-07 10:28:57 4075

原创 git branch分支开发

作者:zhanhailiang 日期:2015-01-06查看当前branch列表 [root@~/wade/git/billfeller.github.io]# git branch gh-pages * master新建分支 [root@~/wade/git/billfeller.github.io]# git branch

2015-01-06 20:44:01 1597 1

原创 TortoiseGit提交每次都需要输入用户名密码解决方法

作者:zhanhailiang 日期:2015-01-06使用TortoiseGit Push时每次都需要输入用户名密码,如图:在当前用户文件夹如D:\Users\wade.zhan下新建一个名为_netrc的文件。编辑该文件: machine gitlab.tools.vipshop.com login wade.zhan password *

2015-01-06 18:01:28 4346

原创 Robomongo简介

作者:zhanhailiang 日期:2015-01-05简介Robomongo是基于Shell的跨平台MongoDB管理工具。Robomongo与MongoDB之间的关系就相当于PHPMyAdmin与MySQL之间的关系。特性对MongoDB Shell的完美支持Robomongo内置V8引擎来驱动mongo命令行工具,所以你通过mongo命令行工具的所

2015-01-05 22:39:38 2477

原创 基于Node.js的跨平台工具LivePool简介

作者:zhanhailiang 日期:2015-01-05简介LivePool 是一个基于 NodeJS,类似 Fiddler 支持抓包和本地替换的 Web 开发调试工具,是 Tencent AlloyTeam 在开发实践过程总结出的一套的便捷的 WorkFlow 以及调试方案。特性基于 NodeJS, 跨平台支持 http 抓包和本地替换调试,Https/Web

2015-01-05 18:47:12 2176

原创 mysqlnd扩展简介

作者:zhanhailiang 日期:2015-01-01MySQL Native Driver简称mysqlnd,作为libmysqlclient替代品于PHP5.3.0版本引入。之前,MySQL数据库扩展mysql,mysqli,PDO MYSQL都是通过libmysqlclient实现与MySQL Server的通信。引入mysqlnd,这三个扩展都可以通过mysqlnd实现与My

2015-01-01 00:42:53 2690

原创 MySQL Proxy简介

作者:zhanhailiang 日期:2014-12-31MySQL Proxy是介于MySQL Client端和MySQL Server端之间的中间件,可以监测、分析或改变它们的通信。由于其MySQL Proxy实现MySQL C/S通信协议,所以其对应用是透明,即应用把MySQL Proxy当成MySQL Server,只需要将原先直连的MySQL host:port修改成MySQL

2014-12-31 23:34:52 2045

原创 数据库连接池SQL Relay简介

作者:zhanhailiang 日期:2014-12-27简介SQLRelay 是一个持久化的数据库连接池,用来为 Unix 或者 Linux 提供数据库连接池、代理以及负载均衡的功能。曾在2004淘宝架构迁移充当管理Oracle数据库链接的中间件,请见:《淘宝业务发展及技术架构》分享连接池示意图:负载均衡示意图:功能特性加

2014-12-27 23:30:51 2740

转载 数据库Sharding的基本思想和切分策略

转自:http://blog.csdn.net/bluishglc/article/details/6161475本文着重介绍sharding的基本思想和理论上的切分策略,关于更加细致的实施策略和参考事例请参考我的另一篇博文:数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示 一、基本思想      Sharding的基本思想就要把一个

2014-12-23 00:08:41 997

原创 基于Redis bitmap实现签到功能

作者:zhanhailiang 日期:2014-12-21需求场景Bitmap 对于一些特定类型的计算非常有效。假设现在我们希望记录自己网站上的用户的上线频率,比如说,计算用户A上线了多少天,用户B上线了多少天,诸如此类,以此作为数据,从而决定让哪些用户参加beta测试等活动——这个模式可以使用SETBIT和BITCOUNT来实现。比如说,每当用户在某一天

2014-12-21 22:13:07 4327 1

原创 基于Redis bitmap实现开关配置功能

作者:zhanhailiang 日期:2014-12-21bitmap apiSETBIT key offset value对key所储存的字符串值,设置或清除指定偏移量上的位(bit)。位的设置或清除取决于value参数,可以是0也可以是1。当key不存在时,自动生成一个新的字符串值。字符串会进行伸展(grown)以确保它可以将value保存在指定的偏移量上。

2014-12-21 22:11:46 2015

原创 标准的Base64算法描述

作者:zhanhailiang 日期:2014-12-19算法描述:Base64要求把每三个8Bit的字节转换为四个6Bit的字节(38 = 46 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3。第一个字符通过右移2位获得第一个目标字符的Base64表位置,根据这个数值取到表上相应的字符,就是第一个目标

2014-12-19 23:30:22 1875

原创 配置$_SERVER变量值的两种方法

作者:zhanhailiang 日期:2014-12-17通过配置fastcgi_param来添加服务器变量:/usr/local/nginx/conf/fastcgi_paramsfastcgi_param SERVER_FLAG test;/usr/local/nginx/conf/nginx.conflocation ~ \.php$ {

2014-12-17 21:18:06 2129

原创 vim忽略大小写查找配置

作者:zhanhailiang 日期:2014-12-17默认 vim 的查找是区分大小写,可通过以下两种方式实现忽略大小写查找set ic?noignorecase1 指令设定::set ic(ignorecase 的缩写) 忽略大小写:set noic(noignorecase 的缩写) 不忽略大小写输入以上指令, 此后每次查找都是按当前配查找,如果想

2014-12-17 20:34:50 1823

原创 Redis/Memcache代理服务Twemproxy简介

作者:zhanhailiang 日期:2014-12-14简介twemproxy,也叫nutcraker,是twtter开源的Redis和Memcache代理服务器。功能Fast.Lightweight.Maintains persistent server connections.Keeps connection count on the backend c

2014-12-14 21:33:50 2950

原创 [PHP]基于Sort Set进行活跃用户统计

参考文章:使用Redis bitmap进行活跃用户统计本文提供基于Sort Set进行活跃用户统计的PHP版本:https://github.com/billfeller/billfeller.github.io/blob/master/code/UserTj.php

2014-12-14 00:04:45 1838

原创 [PHP]基于Redis Set处理社交图谱业务逻辑

作者:zhanhailiang 日期:2014-12-13用Redis存储好友关系-python版本文提供对应的PHP版本:https://github.com/billfeller/billfeller.github.io/blob/master/code/FriendGraph.php

2014-12-13 19:02:53 1493

原创 Github.com快捷键操作

可以通过使用 ? 查看所有快捷键

2014-12-12 22:22:29 1669

原创 缓存策略优化

作者:zhanhailiang 日期:2014-12-12需求背景通常,缓存逻辑是设置一个过期时间,若缓存失效时,就请求后端读取数据并更新缓存。 但是该方案在高qps的场景下会出现问题——在[缓存失效,请求后端读取数并更新缓存)时间段内,所有的请求都会全部透传到后端,该场景对后端将会产生大量请求。所以我们的目标是希望减少这部分请求数。实现方案基于概率的实现机制

2014-12-12 19:56:52 1198

原创 数据存储方案评估标准RDBMS or KV

作者:zhanhailiang 日期:2014-12-11本文主要介绍常见的数据存储方案及相应选型的评估标准的介绍。Guideline:针对不同应用场景,针对性选择存储方式。1. 数据存储方案SQL:MySQL 5.5/5.6/MariaDB(对于Dev绝大多数场景下透明);Oracle|MS SQL暂不考虑;NoSQL:Memcached 1.

2014-12-11 23:50:12 2004

Vim用户手册中文版

Vim是一个类似于Vi的文本编辑器,不过在Vi的基础上增加了很多新的特性,Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999 年Emacs被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢得了Slashdot Beanie的最佳开放源代码文本编辑器大奖,又将Emacs推至二线, 总的来看, Vim和Emacs同样都是非常优秀的文本编辑器。

2011-04-16

firefox setup

firefox 3经过了之前的两个版本已经相当完善了.浏览速度相当快,相当不错.

2009-03-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除