利用tcpdump抓取MySQL执行的SQL

http://ourmysql.com/archives/1358
编写脚本文件dumpsql.sh,内容如下:

#!/bin/bash
#this script used montor mysql network traffic.echo sql
tcpdump -i eth0 -s 0 -l -w - dst port 3306 | strings | perl -e '
while(<>) { chomp; next if /^[^ ]+[ ]*$/;
    if(/^(SELECT|UPDATE|DELETE|INSERT|SET|COMMIT|ROLLBACK|CREATE|DROP|ALTER|CALL)/i)
    {
        if (defined $q) { print "$q\n"; }
        $q=$_;
    } else {
        $_ =~ s/^[ \t]+//; $q.=" $_";
    }
}

运行并抓去sql的执行。

抓取后在当前目录出现out.log文件,执行strings out.log即可看到sql的运行情况

Git rebase和Git merge的区别

git rebase主要可以用来保持树的整洁,当多个开发协同的时候,一个开发者进行了多次的commit完成开发后,进行远程合并操作,接着第二个开发者也开发完毕,也同样进行了多次的commit也进行远程合并提交。这里系统会根据提交时间来将两个提交信息重新排序,在review的时候会非常让人头疼。而使用rebase的话,会保持每个开发者的提交日志。先将当前开发者的commit 以补丁的形式记录下来,此时还原到原来最新的分支状态,然后重新拉取远程的同步信息(其它开发者的提交),最后在本地再次应用补丁,这里就保持了每个开发者的提交顺序,并非按原来的那种每个commit的时间来排序,非常方便review. 对于merge会存在多个分支及合并提交信息。

假设你现在基于远程分支"origin",创建一个叫"mywork"的分支。

$ git checkout -b mywork origin

现在我们在这个分支做一些修改,然后生成两个提交(commit).

$ vi file.txt
$ git commit
$ vi otherfile.txt
$ git commit
...

但是与此同时,有些人也在"origin"分支上做了一些修改并且做了提交了. 这就意味着"origin"和"mywork"这两个分支各自"前进"了,它们之间"分叉"了。 Continue reading

理解OAuth 2.0

客户端的授权模式

客户端必须得到用户的授权(authorization grant),才能获得令牌(access token)。OAuth 2.0定义了四种授权方式。

  • 授权码模式(authorization code)最完整、流程最严密的授权模式,如GitHub、微信等网站第三方登录方式
  • 简化模式(implicit)
  • 密码模式(resource owner password credentials)如目前手机APP中使用此模式
  • 客户端模式(client credentials)

http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html

 

swift中第三方网络请求库Alamofire的安装与使用

Alamofire是swift中一个比较流行的网络请求库:https://github.com/Alamofire/Alamofire。下面我们就介绍一个这个库的安装与使用。

一、安装包管理工具CocoaPods

由于国内容易被墙,速度也非常的慢,这里我们使用提供的源 http://ruby.taobao.org/

gem sources --remove https://rubygems.org/
gem sources –a http://ruby.taobao.org/
gem sources –l

ruby-taobao

先使用下面命令升级Ruby版本:

gem update --system

等待更新完成后。 Continue reading

翻译-苹果官方文档《Objective-C语言编程》(Programming with Objective-C)(更新到working with Protocols)

http://www.jianshu.com/p/b6434c2997d1

在 Objective-C 中类中的方法有的是+加号,有的是-减号,两者的区别如下:

前置加号(+)的方法为类方法,这类方法是可以直接用类名来调用的,它的作用主要是创建一个实例。有人把它称为创建实例的工厂方法。(类似PHP中类的静态方法,通过 className::methodName 调用)
前置减号(-)的方法为实例方法,必须使用类的实例才可以调用的。(类似PHP中的普通类,要调用方法的话,必须先实例化一个对象,然后通过 $obj->methodName 调用)