git 修复 bug 的基本流程

在使用 git 进行代码版本管理的过程中,经常发现在需要修复突发性 bug 的时候,很多初学者总是采用很粗暴或者说并不太友好的方式进行操作,不但操作方式别扭,而且还容易导致代码混乱。下面简单的说下一般 bug 的修复操作方式。

例如有分支若干

1
2
3
4
5
master
develop
lixx
wangxx
zhaoxx

閱讀全文

php 在 fpm 下生成随机数研究

下面这段代码,在 fpm 下,交替打开注释 [1] 和 [2] ,你会发现多次请求随机数相同的现象。

1
2
3
4
5
6
7
8
echo str_repeat("=", 100), '<br>';
echo getmypid(), '<br>';
echo str_repeat("=", 100), '<br>';
// [1] mt_srand(10);
// [2] mt_srand();
for ($i = 0; $i < 10; $i ++) { */
echo mt_rand(1000, 9999), '<br>'; */
}

閱讀全文

replace system's vim with brew install

brew update

1
brew install macvim --with-override-system-vim

閱讀全文

php 和 java 之间 RSA 加密互通问题

前一篇主要是简单的实现了 php 的加密和解密问题,只是对秘钥格式的处理。这篇主要说我遇到的问题,java 加密以后,php 没办法解密,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public static function decryptPrivate($data, $rsakeypath) {
$content = self::getContent($rsakeypath);
if ($content) {
$pem = self::transJavaRsaKeyToPhpOpenSSL($content);
$pem = self::appendFlags($pem, false);
$res = openssl_pkey_get_private($pem);
if ($res) {
$opt = openssl_private_decrypt($data, $result, $res);
if ($opt) {
return $result;
}
}
}
return false;
}

閱讀全文

php 和 java RSA 对称加密互通的问题

java 和 php 在处理 RSA 加密的时候是有差别的,java 处理的 public/private key 文件在 php 里面是没有办法处理的,需要进行格式转换,而通过 openssl 直接生成的 public/private key 文件在 java 里面是不能直接实用的,所以如果双方互通就涉及到格式转换的问题。而往往因为不用业务之间需要这种语言上的加密转换,如果不知道这种差异,总是无法得到正确的结果。

閱讀全文

我的工具包

每当被叫去帮别人解决问题的时候,看着他那未设置过的字体、未配置过的配色主题再加上系统自带那些别扭的工具,我就有种先帮他搞定开发环境和工具的冲动。

简单说说我使用的软件和各种小工具吧

1
2
3
4
5
6
7
8
9
vim
item2
oh my shell

tmux
git
brew
proxychains-ng

Dash
Sequel Pro

閱讀全文

php 安装 memcached 扩展出现 zlib 错误

在 Mac OS X 10.11 中通过

1
brew install php55-memcached

閱讀全文

php 中函数作为参数传递的几种形式

匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数(callback)参数的值。当然,也有其它应用的情况。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php 

class PHPClass {

public function executeMethod() {
echo __METHOD__ . '()' . PHP_EOL;
}
}

function functionParams() {
echo __FUNCTION__ . '()' . PHP_EOL;
}

function functionWithFuncParams($function) {
$function();
}

$anonymousFunction = function() {
echo 'this is anonymous function' . PHP_EOL;
};
$phpClass = new PHPClass();

functionWithFuncParams([$phpClass, 'executeMethod']);
functionWithFuncParams('functionParams');
functionWithFuncParams($anonymousFunction);

閱讀全文

Hello World

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

閱讀全文