# Hello world!

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

# windows下由于文件路径中包含空格符导致的bug解决方案

1. 论测试的重要性

2. 开发目录下的所有目录和文件命名尽可能简单，比如只包含英文字母和数字，以免造成不必要的麻烦。

# Something you should know about the abs function

It is a rule in math that the absolute value of a number must be no less than zero. Is it true in computer languages? Well, most of the case except one. Let me take C language for example.

For a 32-bits C interger, its value ranges from [-2147483648, 2147483647] .So for `x = -2147483648`, what is the result of `abs(x)`? `2147483648`, `-2147483648`, `2147483647`, `0` or something else?

The result depends on your compiler! Please be careful to handle this undefined result in your coding.

Let’s look into the implementation of the `abs` function in C:

So a potential bug may skip into your code like this situration:

But if you really test the above code in your computer, probobly you will find that the computer gives you the expected output. Here is a Demo on ideone.com; You are suggested trying on your machine!

What happens to the correct output occassion is that the compiler actually return a longer integer type like `long long` which is 8 bytes usually. For `long long y = abs(INT_MIN);`, y is equal to `INT_MAX + 1` for sure.

This is as much as the modern compiler can help you reduce your bugs. If you code in this way:

This time bugs are more likely to happen on you. Nigel Jones gives some good solutions to the problem in his article: The absolute truth about abs().

In summary, there are several ways to avoid the abs bug: 1. Always use a longer type to store your abs result, like `long long` for `int`. But what type for `long long`? Therefore the better one is `double`, in the cost of casting time and more CPU cycles. 2. Write your own abs function like this one: safe abs function; 3. Carry out the comparision in the negative space because negetive space is larger than the postive space.

Both solution 2 & 3 require you to use your own abs function.

That’s my report on delving the absolute function in C language. Just as a saying goes: Think twice before you code 🙂

# 网站改版记

1. 新的页面设计。好吧，不是我自己设计的，在html5up上找了个叫overflow的模板改的.布局基本沿用了overflow的设计。根据自己的需求做了些小修改。

# Leo

## 2014/04/13

1. 重写了Flickr模块的代码，利用正则表达式提高了图片URL获取速度和加载速度

2. 新增了welcome.js，在控制台打印欢迎信息，很GEEK的方式，是个异步延迟加载模块

3. 把jQuery、nomalize等常见前端库换成了staticfile.org上的CDN，提高加载速度

4. 压缩了前端大部分代码，加载时间得到提升，消耗流量降至1.5M左右

5. 新增favicon，是个fudan的紫色logo

TODO:

1. 我的旅行轨迹

2. 我的摄影集（按主题分类）

3. 我的作品

# Mac直接安裝Canon DPP系列升级版(适合无驱型Mac用户)

1. 首先到下面的网址下载canon最新的升级程序。没错是升级程序，当然的是mac的。
http://support-cn.canon-asia.com/

2. 解压。然后把解压后的文件（dpp3.XX_updater.app）复制到你的RMBP（例如桌面）；

3. 右键dpp3.XX_updater.app，选择“显示包内容”，然后删除“contentsresourcesInfo.datx”。

4. 然后运行dpp3.XX_updater.app，神奇的情况发生了，可以安装DPP了，而不是提示升级。

# sae版的wordpress中的固定链接设置失败导致404解决大全

1. 修改根目录下的config.yaml文件（建议使用在线代码编辑方式，省去SVN不断提交的麻烦）。修改如下：
``` handle: - rewrite: if (!is_file() && !is_dir() && path ~ "^/(.*)") goto "index.php/\$1" ```

2. 点击保存，此时固定链接即可正常访问。

3. 简单解释下原理：is_file() 和 is_dir()判断当前URL是否是本地文件或者本地路径的名字，比如“www.louqibin.me/home.png” ,这个URL是我本地一张图片的路径，此时判断条件不成立，URL不重写，直接访问。但是比如“http://www.louqibin.me/2014/01/22/sae版的wordpress中的固定链接设置失败导致404解决大全/ ”，这个URL既不是一个文件路径也不是一个目录路径，同时path=”/2014/01/22/sae版的wordpress中的固定链接设置失败导致404解决大全/ ”,这个path满足正则表达式“^/(.*)””，该表达式要求判断path是否是以“/”开头之后跟任何字符，显然例子中的path满足，rewrite被激活，goto即为路径跳转，”index.php/\$1″的意思是重定向到：

www.louqibin.me/index.php/2014/01/22/sae版的wordpress中的固定链接设置失败导致404解决大全/

``` handle: - rewrite: if (!is_file() && !is_dir() && path ~ "^/(blog|dev)/(.*)") goto "\$1/index.php/\$2" ```

\$1代表的是blog或者dev中任意一个字符串

\$2代表的是（.*)中的所有字符。

# 如何将Hotmail/Outlook中的日历导出到Gmail日历

1、登陆WLM日历http://calendar.live.com

2、点击上方“共享”，选择想要导出的日历本

3、选择“共享此日历”—“给您的朋友发送日历的只读链接”，这个时候点开“ICS：导入其他日历程序”，如下图

4、得到一串链接例如这样：webcal://cid-39f75e48944b9ba4.calendar.live.com/c~/calendar.ics

5、修改webcal为http得到一个新地址，例如这样：http://cid-39f75e48944b9ba4.calendar.live.com/~/calendar.ics，然后将这个ICS文件下载下来即可。

2、点击导入日历，这里支持两种格式：iCal和CSV。上步我们导出的ICS格式即为ICal，故选择下载保存的ICS文件，直接导入即可。

1.Outlook 与WLM日历的同步

# 隐藏和取消隐藏文件夹

### 隐藏文件夹

1. 在文件夹列表中，选择要隐藏的文件夹。
2. 点击文件夹菜单。
3. 选择隐藏

# 【转】Python中使用PIL的Image函数出错，巧用StringIO解决文件写入权限问题

 1 2 3 4 5 6 7 8 9 10 11 12 13 `respHtml ``=` `crifanLib.getUrlRespHtml(captchaUrl);` `# captchaDir = "captcha";` `# #captchaPicFile = "returned_captcha.jpg";` `# captchaPicFile = datetime.now().strftime('%Y%m%d_%H%M%S') + "_captcha.jpg";` `# saveToFile = captchaDir + "/" + captchaPicFile;` `# crifanLib.saveBinDataToFile(respHtml, saveToFile);` `# print "save verify code pic OK, saveToFile=",saveToFile;` `# openedImg = Image.open(saveToFile);` `# print "openedImg=",openedImg;` `# openedImg.show();`

# 【转】腾讯的网站如何检测到你的 QQ 已经登录

• QQ 登录时在本地某地方存登录 ID 信息（Cookie 或文件），用 js 读，然后去服务器认证。但是现在的浏览器一般有沙箱功能，js 无法读到登录 ID；而且在清空 Cookie 后依然起作用。
• 以 IP、CPU ID、硬盘 ID 等硬件设备 hash 做唯一标识，QQ 登录时在服务器记录此信息，js 验证。感觉这样依赖环境过多，QQ 不太可能采用此方法。
• QQ 启动某端口监听，js 连接此端口。但是用 netstat 查看后，QQ 并没有监听端口。

# 【转】揭秘最新黑帽SEO技术 [反向代理]

1. SEOquate,类似IE状态栏在页面顶部显示该页面的收录数和各大搜索引擎PR、权重值，还支持页面关键词频率分析，提取高频关键词
2. PageRank Status, 非常强大的插件，感觉是All in one 的那种SEO插件，强烈推荐试试。