• Win7下Eclipse中文字体太小解决方案

    今天安装Eclipse + PyDev准备写写Python,却发现中文字在Eclipse下非常难看。这是由于Eclipse用的字体是Consolas,英文还可以,中文就惨不忍睹。

    换一种字体

    下载字体好看的中文字体,这里推荐下载YaHei.Consolas

    设置Eclipse

    点击 window -> Preferences

    full

    Appearance -> Colors and Font -> Basic -> Text Font -> Edit

    ...

    READ ALL

  • IE部分版本JavaScript获取ID不区分大小写

    昨天做一个JavaScript与Flash交互项目,在其它浏览器都正常运行,唯独IE6、IE7、部分的版本IE8报错。查了很久代码,也未发现是哪里的问题。于是开始逐行try...catch,结果在window.document.video这一句报错了。

    IE不区分大小写导致

    video是Flash的ID,为什么其它浏览器不报错,偏偏这里报错呢?经查,发现页面也有一个div标签,id为Video,难道是大小写的问题?于是把页面div标签id改为video,问题解决。

    做DEMO验证

    难道IE对标签属性值不区分大小写吗?于是我自己做了一个测试。

    ...

    READ ALL

  • 配置Nginx支持pathinfo模式

    缘由

    很久不使用Apache了,渐渐对Apache感到陌生,因为朋友有个ZendFramework框架从Apache移到Nginx下,需要pathinfo模式支持。

    方案搜索

    于是开始搜索Nginx + pathinfo相关文章,一开以为很容易就会配置好。因为搜索后发现有大量文章介绍Nginx开启pathinfo模式,感觉不是什么难事。但是经过几个小时下来,还是没有配置好。并且大量文章的内容都极其相似,基本都是转载的。

    开始有点急了,因为一天过去了没有配好。

    继续摸索

    没办法,继续搜索。为了验证方便,下载thinkphp框架搭了个环境。并且加了UserAction.class.php控制器类,在类里加了一个app方法并输出一行文字。

    ...

    READ ALL

  • MySQL取出表中排序数据且不重复

    今日做一个功能需求,从表中排序取出前十个且数据不一致的数据,如下列a表中的值有

    mysql> select * from a;
    +----+----------+
    | id | user     |
    +----+----------+
    |  1 | zhangsan |
    |  2 | lisi     |
    |  3 | wangwu   |
    |  4 | zhangsan |
    |  5 | zhaosi   |
    |  6 | wangwu   |
    |  7 | lisi     |
    |  8 | lisi     |
    |  9 | zhaosi   |
    +----+----------+
    9 rows in set (0.00 sec)
    

    ...

    READ ALL

  • 从简单HTTP请求延伸到JSONP跨域

    JavaScript的跨域的跨域问题,是众多新手首要遇见的问题。网上解决跨域的方案有很多,本文就前面我写过的《JavaScript简单模拟HTTP请求比Ajax方便》延伸到JSONP跨域方案。

    JSONP原理

    为什么叫JSONP呢?其实这种跨域实现方式跟JSON一点关系也没有,所以不要局限于这种跨域方式一定跟JSON有关系。JSONP实现的原理是通过<script>标签的src跨域访问,被访问页把最终结果通过回调本地一个JavaScript函数从而达到跨域功能。然而从正常的表面上看,也可以当作是包含一个JavaScript文件,只不过这个JavaScript文件是主要用来传输数据而已。

    ...

    READ ALL

  • Git重写上一次commit信息

    我们有时commit后才突然发现刚才的信息没有写好,想重新写怎么办?

    这时候可以用以下这条简单的命令实现上一条commit信息改写

    git commit --amend
    

    看看这条命令的解释

    --amend
            Replace the tip of the current branch by creating a new commit. The
            recorded tree is prepared as usual (including the effect of the -i
            and -o options and explicit pathspec), and the message from the
            original commit is used as the starting point, instead of an empty
            message, when no other message is specified from the command line
            via options such as -m, -F, -c, etc. The new commit has the same
            parents and author as the current one
    

    ...

    READ ALL

  • JavaScript优化之惰性载入函数

    在JavaScript中有些内存只需执行一遍即可,如浏览器类型检测是最常用的一个功能,因为我们使用Ajax的时候需要检测浏览器的内置的XHR。我们可以在第一次检测的时候记录下类型,往后在使用Ajax的时候就不需要再去检测浏览器类型了。在JavaScript中就算只有一个if也总比没有if的语句效率要高。

    普通Ajax方法

    /**
     * JS惰性函数
     * 琼台博客 www.qttc.net
     */
     
    function ajax(){
      if(typeof XMLHttpRequest != "undefined"){
        return new XMLHttpRequest();    
      }else if(typeof ActiveXObject != "undefined"){
        if(typeof arguments.callee.activeXString != "string"){
          var versions = ["MSXML2.XMLHttp.6.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp"];    
    
          for(var i=0,k=version.length;i<k;i++){
            try{
              new ActiveXObject(versions[i]); 
              arguments.callee.activeXString = versions[i];
              break;
            }catch(ex){
              throw ex;   
            }
          }
        }   
    
        return new ActiveXObject(arguments.callee.activeXString);
      }else{
        throw "No XHR object";  
      }
    }
    

    ...

    READ ALL

  • Nginx启动提示找不到libpcre.so.1解决方法

    启动nginx提示

    error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory

    意思是找不到libpcre.so.1这个模块,而导致启动失败。

    经过搜索资料,发现部分Linux系统存有的通病。要解决这个方法非常容易

    如果是32位系统

    [root@lee ~]#  ln -s /usr/local/lib/libpcre.so.1 /lib
    

    如果是64位系统

    [root@lee ~]#  ln -s /usr/local/lib/libpcre.so.1 /lib64
    

    ...

    READ ALL

  • MySQL中应该怎样存储IP地址

    为什么要问如何存储IP

    首先就来阐明一下部分人得反问:为什么要问IP得知怎样存,直接varchar类型不久得了吗?

    其实做任何程序设计都要在功能实现的基础上最大限度的优化性能。而数据库设计是程序设计中不可忽略的一个重要部分,所以巧存IP地址可以一定程度获得很大提升。

    利用函数算法处理

    在MySQL中没有直接提供IP类型字段,但如果有两个函数可以把IP与最大长度为10位数字类型互转,所以使用int类型存储IP比varchar类型存储IP地址性能要提升很多,减少不少看空间。因为varchar是可变长形,需要多余的一个字节存储长度。另外int型在逻辑运算上要比varchar速度快。

    ...

    READ ALL

  • MySQL中varchar与char类型区别

    在这之前,我虽然知道varchar与char的主要区别是varchar是可变长,char是定长型。但要深入的了解varchar与char的区别却是一片空白,直到读了相关书籍以后才进一步认清两者更深入的一些区别。

    varchar

    保存了可变长度的字符串,是使用较多的字符串类型。它比固定长度类型占用更少的存储空间,因为它只占用了实际需要空间,比较灵活。但如果设置了ROW_FORMAT=FIXED创建的MyISAM引擎表,那么每行占用固定长的空间,就会造成浪费。

    varchar使用额外的1到2字节来存储值得长度。如果列的最大长度小于或等于255,则使用1字节,否则使用2字节。

    ...

    READ ALL