手写JS代码,十行搞定ajax异步请求!!!

据说要创业的人都必须会讲故事,好吧,我开始忽悠了。 开始的开始,有一个需求,要用非常少的js代码从后台获得数据。然后,听说要用到ajax,听说jquery很小很好用,结果下载下来一看。。。xxKB。不是吧,比页面本身还大。杀鸡焉用牛刀,于是google,百度,复制,粘贴,就有了下面这段代码:

function handler() {
 if(this.readyState == 4 && this.status == 200 && this.responseText != null) {
        obj = eval('(' + this.responseText + ')')
        alert(obj)
 }
}
function getCnt() {
        var objXmlHttp = null
        if(window.XMLHttpRequest){
            objXmlHttp = new XMLHttpRequest()
        }else if(window.ActiveXObject){
            try{objXmlHttp = new ActiveXObject("Msxml2.XMLHTTP")}
            catch(failed){
                try{objXmlHttp = new ActiveXObject("Microsoft.XMLHTTP")}catch(failed){}
            }
        }
        if (objXmlHttp) {
            objXmlHttp.onreadystatechange = handler
            objXmlHttp.open("GET", "/url?v="+(new Date()).valueOf(), true)
            objXmlHttp.send()
        }
}

最后的最后,说十行夸张了点,不过基本上已经很小了,一般的使用应该没什么问题了。至于浏览器兼容性嘛,绝大部分应该支持。ie7及chrome dev至少是经过验证的。 参考请见: http://www.w3.org/TR/XMLHttpRequest/

编译Pandion

Pandion(潘迪安)是一款Windows平台下的XMPP客户端,因其界面比较简洁,所以引起了我的兴趣。详细信息可访问http://pandion.im/

编译之前,需要先安装些软件:

下面是编译过程:

1.安装以上软件,基本上都是“下一步”;

2.设置环境变量%VS100COMNTOOLS%到”c:\program files\microsoft visual studio 10.0\common7\tools\”

3.打开git bash,输入命令:

git clone https://github.com/pandion/pandion.git

4.找到源码,执行build_all.bat即可,编译成功后在Installer\Wix下会生成一个安装包文件Pandion_2.6.0.msi

5.编译过程出现一个警告和2个错误,未详究,暂未发现影响。

Git使用123之(二)

1.如果使用ssh非共享账号方式使用Git时,在Git库初始化时请加上--shared的参数,加上这个参数会自动将所有生成的文件或目录设置为库根目录所在的组可读可写。否则可能会遇到一个账号push的内容,另一个账号无法修改的问题。如果已经设置好了库,也可使用

git init --bare --shared

来设置权限,这个命令是初始化或重新初始化,不会删除git库的内容。但这个命令似乎只对以后的内容权限有改变,对于以前的内容,可自己修改下权限。 2.git reset可恢复到某个commit,但也有可能会删掉未跟踪的文件,用时要小心。 3.在MyEclipse上安装Egit时,最好是下载离线安装包放到dropins下然后重启MyEclipse,否则经常会更新失败。如果找不到下载的地方,可以自己下载源码进行编译。 4.git bash或者Egit插件使用私钥登录的问题,打开git bash,输入:

ssh-keygen

然后yes和回车,再输入:

scp ~/.ssh/id_rsa yourname@yourserver:~/.ssh/authorized_keys

*此方法要求安装git时选择的是openssh而不是putty。 MyEclipse中,打开Preference,搜索ssh,选择“load private key”,找到私钥存放的目录,即可。 如果不知道,可在git bash下输入:

cd ~/.ssh
pwd

Tornado在Windows下解析文件mime类型错误一则及解决

今日遇到一则错误,tornado服务器在解析文件的mime类型时报错,无法获取,错误如下。

codeUnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0

出错误原因: Windows注册表中保存的mime类型对应项中包含非ascii字符

解决方法: 执行regedit,找到 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\MIME\Database\Content Type 在其中找到非英文字母的mime类型,例如我遇到的“视频/x-m4v”,删除即可。

如何避免: 有些程序在安装时会新增一些mime类型,如果胡乱加,那么肯定就会出问题。我遇到的这个问题,估计是哪个视频播放软件犯了一个低级错误,不该翻译的地方翻译了。这个错误一般情况下不会有什么危害,真正除了问题却有可能摸不着头脑。

附: mime类型标准的网址:http://www.iana.org/assignments/media-types/。访问可以看到,顶级类型里不包含“视频”,只有“vedio”。