2014年08月04日 这博客已经一年多没更新没管过了……算是废了吧。主要是人懒,怨不得别人。 WordPress就是一坑,插件太多,搞顺畅太麻烦而且也太庞大了。所以觉得搞个轻量级的个人博客系统,后续博客转战blog.wangfu.info,功能随想着随加。

Ubuntu 时间字符集问题及解决

2013年1月26日  2,847 views 1 条评论

最近在使用命令行查看文件属性时发现执行ls初始化月份字符串出错,只有时间中的汉字‘月’会显示错误,变成乱码‘▒▒’。

codeup@codeup-Ubuntu:~$ ls -l
ls: 初始化月份字符串出错
总用量 40
-rw-r–r– 1 codeup codeup 179 10▒▒ 27 06:06 examples.desktop
drwxrwxr-x 2 codeup codeup 4096 10▒▒ 27 01:05 Ubuntu One
drwxr-xr-x 2 codeup codeup 4096 10▒▒ 27 06:11 公共
drwxr-xr-x 2 codeup codeup 4096 10▒▒ 27 06:11 模板
drwxr-xr-x 2 codeup codeup 4096 10▒▒ 27 06:11 视频
drwxr-xr-x 2 codeup codeup 4096 10▒▒ 27 06:11 图片
drwxr-xr-x 2 codeup codeup 4096 10▒▒ 27 06:11 文档
drwxr-xr-x 4 codeup codeup 4096 10▒▒ 30 00:33 下载
drwxr-xr-x 2 codeup codeup 4096 10▒▒ 27 06:11 音乐
drwxr-xr-x 2 codeup codeup 4096 10▒▒ 27 21:10 桌面

后来通过命令locale查看,发现LC_TIME变量的字符集是zh_CN,我的本地应该默认使用UTF-8的字符集,但是zh_CN默认应该是使用GBK的字符集,因此在ls初始化时间时会用GBK的去解码UTF-8,因此出现乱码。注:这里zh_CN代表GBK编码只是猜测,个人没有找出到底用什么字符集解码UTF-8的汉字‘月’会变成‘▒▒’。

codeup@codeup-Ubuntu:~$ locale
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN:zh:en_US:en
LC_CTYPE=”zh_CN.UTF-8″
LC_NUMERIC=zh_CN
LC_TIME=zh_CN
LC_COLLATE=”zh_CN.UTF-8″
LC_MONETARY=zh_CN
LC_MESSAGES=”zh_CN.UTF-8″
LC_PAPER=zh_CN
LC_NAME=zh_CN
LC_ADDRESS=zh_CN
LC_TELEPHONE=zh_CN
LC_MEASUREMENT=zh_CN
LC_IDENTIFICATION=zh_CN

为解决此问题,我将etc/default/locale中的LC_TIME设为zh_CN.UTF-8,与LANG保持一致。

效果:

lscodeup@codeup-Ubuntu:~$ ls -l
总用量 40
-rw-r–r– 1 codeup codeup 179 10月 27 06:06 examples.desktop
drwxrwxr-x 2 codeup codeup 4096 10月 27 01:05 Ubuntu One
drwxr-xr-x 2 codeup codeup 4096 10月 27 06:11 公共
drwxr-xr-x 2 codeup codeup 4096 10月 27 06:11 模板
drwxr-xr-x 2 codeup codeup 4096 10月 27 06:11 视频
drwxr-xr-x 2 codeup codeup 4096 10月 27 06:11 图片
drwxr-xr-x 2 codeup codeup 4096 10月 27 06:11 文档
drwxr-xr-x 4 codeup codeup 4096 10月 30 00:33 下载
drwxr-xr-x 2 codeup codeup 4096 10月 27 06:11 音乐
drwxr-xr-x 2 codeup codeup 4096 10月 27 21:10 桌面

阅读全文…

分类: 心得笔记 标签:

为WordPress站点增加公益404页面

2013年1月8日  3,567 views 8 条评论

腾讯qq空间之前上线了公益404页面,也就是在访问qzone.qq.com域名下的不存在页面时会自动跳转到一个寻找失踪儿童的页面

其实除qq空间外,还有很多其他网站也提供了公益404页面,但大都是像我这样的独立博客,比如coolshell.cn,影响力没有企鹅这么大。

qq404

查看了多个公益404页面,并进行比较后发现,还是腾讯这个比较好看,所以动手把它扒了过来挂在了我的站点上,大家现在访问代码至上的不存在页面时也会显示寻找失踪儿童的页面了。大家可以试一下,猛戳这里

增加这个页面其实很简单,只要在Wordpress后台编辑主题中编辑404模板就可以了,在<body>标签中间添加如下代码即可。


<!--404公益新增-->
<p style="display:none">你访问的页面找不回来了,但是我们可以一起寻找失踪宝贝</p>
<p style="display:none">
 相关组织:
 <a href="http://e.t.qq.com/Tencent-Volunteers" title="腾讯志愿者">腾讯志愿者</a>、
 <a href="http://bbs.baobeihuijia.com/" title="宝贝回家">宝贝回家</a>
</p>
<script type="text/javascript" src="http://qzonestyle.gtimg.cn/qzone_v6/lostchild/search_children.js"></script>
<!--404公益新增-->

除了使用qq的js外,还有益播公益提供的iframe接口来生成公益404页面。益播公益除了寻找失踪儿童外,还有很多其他公益广告的定制功能,功能和可定制性更强大,唯一的缺点就是不够精美。如果你有兴趣也为自己的网站添加公益404页面的话,可以根据自己的需要来选择使用哪种方式。

分类: 心得笔记 标签: ,

程序猿之歌|Code Monkey

2012年12月27日  2,243 views 没有评论

既然自诩程序猿,那么今天就介绍个程序猿之歌——Code Monkey

作者及歌曲介绍

这歌的作者是Jonathan Coulton,这哥们曾经也是程序猿,自称为Geek。他的歌大多以科技和Geek文化为主题,古怪而诙谐,其中以”Code Monkey”, “Re: Your Brains” 和”Still Alive”最为流行。

《Code Monkey》是一首描述程序员日常生活的歌曲。描述了一名普通“程序猿”的工作、生活、情感等。

这是动画MV

ios请移步优酷

这是我的私藏文件,低调下载。

  Code Monkey (4.4 MiB, 8,307 hits)

下面还有歌词~

阅读全文…

分类: 随笔 标签:

新浪微博关联博客配置

2012年12月25日  2,018 views 没有评论

之前本博客的微博发布一直使用的是WordPress连接微博插件,后来因为开了灯鹭社会化评论管理,而我又非常悲催的忘了登陆用户名……没办法只好放弃了。

但是我还想把此博客和我的微博关联起来,怎么办呢?其实微博现在也主要就是新浪微博,而新浪微博其实自带关联博客功能的。

此功能在旧版可以直接通过右上角-》设置-》关联博客配置

关联博客_旧版

但是新版取消了这个标签,通过界面我们找不到关联博客的配置页面了,只剩下MSN、360什么的绑定功能。

新浪绑定_新版

 

 

新浪微博还没法从新版退回到旧版,那我们怎么办呢?实际上新浪只是把界面隐藏了而已,关联博客的url并没有取消,我们可以通过直接访问url来配置关联博客。

我们可以通过直接访问:http://weibo.com/tool/bloglink 或者 http://weibo.com/setting/import 来进行关联博客的配置。

关联博客_新版

分类: 心得笔记 标签: ,

头文件是如何参与编译的

2012年12月24日  1,655 views 没有评论

最近在看C语言的编译与链接的内部实现,这是比较基础的内容,但是又往往很容易被忽视,因为各种IDE尤其是VS的强大集成功能将编译和链接的实现给隐藏了。

至于编译与链接的具体过程并非本文内容,本文实际要讲的是我在自学时发现的一个有趣内容,头文件的编译参与问题。

有些文章说过头文件不参与编译,其实严格来说头文件是参与编译的。

在预编译源文件的时候,凡是遇到#include<XX>的时候,就会把XX的文本内容全部复制到相应的位置。

然后被编译的源文件其实是 【头文件文本内容】+【源文件文本内容】

这有点宏定义的感觉~

所以,下面这段代码是真的可以用的!

abc.h

 1,2,3

main.cpp

#include <iostream>
#include <string>

int main()
{
    int a[] = {
        #include "abc.h"
    };

    for (int i = 0;i< 3;i++)
    {
        std::cout<<a[i]<<std::endl;
    }

return 0;
}

头文件编译

分类: 心得笔记 标签:

Python整数除法的正负号·真

2012年12月17日  3,384 views 2 条评论

时隔一天,我才发现之前那篇文章中有一个漏洞,那就是8/-3,按照文中逻辑:

在C中,如果做除法运算后,余数有多个选择(一般最多也就是两个),那么余数应该选择“更靠近0”的那个。

结果应该是商-3余-1。但实际结果是商-2余-2。这个我们可以通过一个简单的C++程序来验证一下:

C系列语言的整数除法

C系列语言的整数除法

所以,昨天这篇文章的全文其实都是错的……虽然分析的很有道理……

真实的情况是这样的:

整数除法,实际上就是在浮点数除法的基础上将商取整的过程。

对于浮点数除法,我们对商没有疑问,8 ÷ -3 = -2.666666…7,C系列和Python等脚本语言的结果是一致的。

但是如何取整呢?

当商为正数的时候,我们也没有疑问,即 整数除法当商为正数时我们将结果向小的的方向取整。所以 8/3的商2而不是3。

当商为负数的时候,C系列语言和Python等脚本语言对取整的方法有不同的看法:

  • C系列:对于C系列语言来说 整数除法当结果为负数时我们将商向靠近0的方向取整。所以8/-3的商是-2,因为-2比-3更靠近0;
  • Python系列:对于Python等脚本语言来说 整数除法当结果为负数时我们将商向靠近-∞的方向取整。所以8/-3的商是-3,因为-3比-2更靠近-∞。

如上,就是C系列语言与Python等脚本语言的整数除法商不一致的原因所在,大家在使用整数除法时一定要注意结果取整的方向。

原来的文章就不再贴了,只把原文链接放在这里,如果有兴趣可以去看下。

分类: 心得笔记 标签: