Monday, 22. June 2009, 07:31:25
WINDOWS, Editor
Notepad2 很小巧,然而功能强大,和 Windows 自带的 Notepad 相比,说有天壤之别也不为过。
网上有不少文章介绍如何把 Windows 的 Notepad 换成 Notepad2,步骤都比较复杂,而且成功率不高,尤其是 XP SP2 以后的版本。
经我验证,
这个网页上介绍的方法比较好使。方法是在 Notepad2 的文件夹内做一个批处理文件,然后执行。原文介绍的批处理如下(注释已译):
@echo 替换 NOTEPAD.EXE 为 notepad2.EXE ...
REM
REM 1. 阻止系统自动恢复文件
attrib -r -h -s %systemroot%\system32\dllcache
del %systemroot%\system32\dllcache\notepad.bak.exe
ren %systemroot%\system32\dllcache\notepad.exe notepad.bak.exe
attrib +r +h +s %systemroot%\system32\dllcache
attrib -r -h -s %systemroot%\ServicePackFiles\i386
del %systemroot%\ServicePackFiles\i386\notepad.bak.exe
ren %systemroot%\ServicePackFiles\i386\notepad.exe notepad.bak.exe
attrib +r +h +s %systemroot%\ServicePackFiles\i386
REM
REM 2. 备份 Windows 和 System32中 的 Notepad
del %systemroot%\system32\notepad.bak.exe
copy %systemroot%\system32\notepad.exe %systemroot%\system32\notepad.bak.exe
copy %systemroot%\notepad.exe %systemroot%\notepad.bak.exe
REM
REM 3. 拷贝 notepad2 并覆盖 Windows 和 System32中 的 Notepad
del %systemroot%\notepad.exe
copy notepad2.exe %systemroot%\notepad.exe
copy notepad2.exe %systemroot%\system32\notepad.exe
REM
@echo 替换完成。
@echo
@echo 注: 如果 Windows 文件保护的对话框弹出,请按“取消”。
Thursday, 18. June 2009, 10:45:36
JavaScript, Benchmark
看了一下
SlickSpeed,各大 JS 框架都已更新至今天最新发布版。
在自己的机器上用 Firefox 3.0.11 测试了一下,结果如图:
从这个结果来看,DOMAssistant 2.8 最强(65 ms),ExtJS Core 3.0 次之(260 ms),最差是 YUI 2.7.0(811 ms),最强和最差之间相差10倍还多!
DOMAssistant 我还没用过,看来得关注一下了。
Wednesday, 10. June 2009, 01:24:37
JavaScript, function, extjs
方法一: 自己做递归函数function findChildRecursively(rootNode, key, value) {
var nodes = rootNode.childNodes;
for(var i = 0; i < nodes.length; i++) {
if(nodes[i].attributes[key] == value){
return nodes[i];
} else {
if(!nodes[i].isLeaf()) {
// 查找结果不包含 Folder 的情况下
continue;
}
if(!nodes[i].isLoaded()) {
//加载子节点,AsyncTreeNode 需要,TreeNode 则不需
nodes[i].reload();
}
if(node = findChildRecursively(nodes[i], key, value)) {
return node;
}
}
}
return null;
}
方法二: 利用现成方法 cascadevar node = null;
rootNode.cascade(function(n) {
if(n.isLeaf() && !n.isLoaded()) {
n.reload();
return true;
}
if(n.attributes[key] == value) {
node = n;
return false;
}
return true;
});
Friday, 29. May 2009, 08:55:57
Japanese, function, JavaScript
代码:
//四舍五入
function _round(num, X) {
X = X || 2;
return Math.round(num*Math.pow(10, X))/Math.pow(10, X);
}
//取得字符串的字节数
function _byteLength(str){
//方法一:正则
if(!str) return 0;
return str.replace(/[^\x00-\xFF]/g,'**').length;
//方法二:循环
/*
var byteLen=0,len=str.length;
for(var i=0; i<len; i++){
if(str.charCodeAt(i)>255){
byteLen += 2;
} else {
byteLen++;
}
}
return byteLen;
*/
}
//测试
var str = "試験helloテストテスト";
var size = _byteLength(str);
alert(size + ' bytes');
alert(_round(size/1024) + ' Kb');
Saturday, 23. May 2009, 12:56:41
Mint, Linux.Debian, Ubuntu
在 Mint 下安装一些 deb 的软件包,把系统的依赖关系给搞乱了,结果再运行 apt-get 和 dpkg 都出错。
最后找到解决办法如下:
sudo dpkg --configure -a
sudo aptitude -f remove
sudo apt-get update
sudo apt-get upgrade
Friday, 22. May 2009, 11:49:08
opera, IE, Firefox, JavaScript
console.log 原先是 Firefox 的“专利”,严格说是安装了 Firebugs 之后的 Firefox 所独有的调试“绝招”。
这一招,IE8 学会了,不过用起来比 Firebugs 麻烦,只有在开启调试窗口(F12)的时候,console.log 才能出结果,不然就报错。
今天看到 Opera 也有个叫 dragonfly 的东东,用这东西查看 DOM,已经可以和 Firebugs 媲美,然而还是不能用 console.log。于是有人就提供了这样两句代码:
window.console = window.console || {};
console.log || (console.log = opera.postError);
经测试,以上代码好使。
至此,Firefox/IE/Opera 都能用上 console.log 了。
当然,IE 和 Opera 下的 console.log 比起 Firebugs 原创的 console.log,还是太过简单,比如参数是 Object 或者数组就没有进一步的显示功能。
Thursday, 21. May 2009, 04:33:39
jQuery, Firefox, JavaScript
输入法打开时, Firefox 不触发 keyup 事件。经常写javascript代码的人,尤其是中日韩等国的人,都可能会遇上这个不大好解决的问题,。
在一个日文 Blog 上找到了解决办法,用 jQuery 通过 text 事件实现。
自己写了一段测试代码如下:
var logFunc = function(e){
console.log($(this).val());
if(e){
// keyup 时能取到键值
console.log(e.keyCode)
}
};
$(':text').keyup(logFunc).text('text', logFunc);
Wednesday, 22. April 2009, 05:04:38
GAE, Python, Google
Google App Engine 是个好东西,可以让你免费创建在线应用。
GAE 默认支持的语言是 Python,后台使用的框架是
django,Python 我不熟悉,正好可以学习学习。
前段时间,我把一个域名 geedigg.com 废了,想想上面的东西丢了也可惜,就把它们搬迁到了 GAE,胡乱取个名字叫“
静湖”。这些东西原来都是静态的网页,加了一点JavaScript实现动态显示的功能。这次加了一个留言功能,其实就是把 GAE 提供的例子原样套了进去。
免费的东西难免有限制,GAE也不例外,有一次我上传的文件超过1000个,它就不干了。目前还不知道数据库的存储记录数有没有限制。
最近
GAE 增加了 Java 语言的支持,不过我对 Java 硬是提不起兴趣,所以也没有尝试用 Java 做网站,对于喜欢 Java 的朋友,这应该是个好消息。
Tuesday, 21. April 2009, 07:20:41
JavaScript
JavaScript 的调试,一般情况下,
FireBug 足可应付。可有时候 FireBug 所报的错误太笼统,比如一个括号没有匹配,它不能给出具体的位置,js 文件比较大的时候,查找这样的错误很费功夫。
于是找到了这个
JavaScript Lint ,我用下来的结果,不能说很好,可也是个帮手,有时候实在查不出错误在哪儿,就用它分析一下 js 文件,根据输出的列表(有行号),再去查找错误,有时也可行,能够提高一些效率。
JavaScript Lint 的安装比较简单,看看帮助文件很快就能搞定。安装之后建议把 jsl 的路径追加到用户的 PATH 变量中。
用法:
jsl -conf jsl.conf -process javascript文件名
jsl -process javascript文件名
Friday, 10. April 2009, 08:25:56
SQL, Zend Framework
今天用 Zend_Db 碰上 having 关键字,一开始写在 group() 中,没成功,后来发现有 having() 方法,问题解决了。
顺便总结一下 SQL 关键字与 Zend_Db_Select 函数的对应关系:
FROM → from()
DISTINCT → distinct()
JOIN → join()
LEFT OUTER JOIN → joinLeft()
RIGHT OUTER JOIN → joinRight()
FULL OUTER JOIN → joinFULL()
WHERE → where()、orWhere()
GROUP BY → group()
HAVING → having()
ORDER BY → order()
Showing posts 1 -
10 of 395.