分类:'就通一点' 的所有文章

命令行奇技淫巧一则 - 查找超大文件

查找某个目录下的超大文件
dir /S /-C /A | ggrep " \d{9,} (?!bytes)"

这一个命令会输出当前目录及其子目录下所有大于100M的文件

参见:
ggrep: http://dir.filewatcher.com/d/OpenBSD/3.4/powerpc/ggrep-2.5.1.tgz.124943.html
正则表达式:Regular Expression

  • Share/Bookmark

最近访问Twitter的方法

Twitter 最近无法直接访问了,修改hosts也不行,但如果早有准备,访问Twitter仍然可以非常简单和直接。

1. 尝试:http://dabr.co.uk ,界面友好,
2. 上面提到的Dabr其实是开放源码的,自己有服务器的都可以搭建,比如:

@scavin(小众软件) 的 http://t.appinn.com/
@Sofishhttp://g.happinesz.cn/
另1:使用Dabr架设私人Twitter手机版
另2:现在怎样访问Twitter?

3. 还可以在Gmail里使用直接推 ,具体用法参见望月的blog:简单几步,将你的Gmail变成Twitter

PS: 最近小宝宝来到身边,天天都要陪着玩儿,乐不思博了…

  • Share/Bookmark

把Outlook联系人导出到Google联系人

这两天在玩Google Phone,G1的机型,G2的系统,总体上用起来还不错,视频文件列表第一次打开比较慢

由于原来一直用Windows Mobile的,联系人都同步到Outlook,所以也没想到要导出来
现在暂用Phone了,又不想麻烦的一条条加联系人,就去搜了一下导出Outlook联系人的文章

结果发现有两种方式可以做到:
1. Windows Mobile手机跟m.google.com同步
 具体步骤参见笑来的blog:Windows Mobile手机与Google日历如何同步?

2. 直接Outlook Contacts导出到dos格式的csv,然后到http://google.com/contacts/上面去导入
 但是我在导出的时候遇到了问题 - 导出出来的中文是乱码

试了几次发现时Outlook Contacts导出到csv时的问题,可以这样绕过去:
 先导出到excel,然后从excel里面“另存为”csv格式就行了

  • Share/Bookmark

Google搜索结果里的链接打开有点儿慢?用YesScript扩展吧

Google搜索结果里面的每个链接看上去都是直接链接到网站
原来我就怀疑:这样的话Google怎么统计用户点击数据呢?

后来有个事情促使我去探索到底是什么原因:
在家里用Google太慢了,而且因为GFW的原因,有时候会挂,一挂了以后短时间内哪个Google结果链接都打不开

实际上,每个搜索的结构链接<a>里面都有一段脚本:

<a onmousedown=
"return rwt(this,'',”,’res’,'5′,’AFQjCNG1aS0e_ZXWJweG5uZk8bMmDIov3g’,'&amp;sig2=ZybsjNXV2WabD4U0uu8XDA’)" />

当你点击链接的时候,这段脚本就会更新这个链接

你可以在Firefox下试试搜索Test
然后:
1. 把鼠标移动到一个链接上,看看Firefox左下角的状态栏,里面的链接是啥
2. 然后按住鼠标左键(注意是“按住”,先不要松开),再看看状态栏的连接

知道这个,解决起来就简单了 - 给Firefox安装NoScript或者YesScript扩展就行了
NoScript默认不允许Javascript、然后用白名单来控制。YesScript默认允许、然后用黑名单控制。

我喜欢第二个,因为阮一峰的blog“关于网页设计的一些统计数字”里面说到:84.8%的网页使用Javascript
而且,发芽网本身就离不开Javascript,我更不喜欢用NoScript啦

于是安装了YesScript,然后Google搜索以后在打开右下角BlackListed图标点一下,以后Google搜索打开就不会经过Google服务器绕一次啦。

  • Share/Bookmark

游戏发芽网在线聊天 - XSS攻击 与 javascript标题栏闪烁

游戏发芽网的聊天功能用的人相对较少,但是我至少看到了10次以上有价值的讨论
当时怕聊天窗口太复杂,实现都用的很简单的方法,但是最近发现了两个问题。

第一个是:最近发现有位同学在玩华容道峰回路转搞不定的情况下,伪造了系统消息

>> 搞定 峰回路转 用了1步

呵呵这个本身并没有什么,开个玩笑,无伤大雅
而且聊天记录刷新很快,一个小时以后这条记录就会消失

但是,这解释了一个很严重的问题,那就是著名的XSS攻击

具体的说,在用ajax的方式收到消息以后,我用直接追加html的方式进行添加,没有进行escape。

严重的后果可能是用户密码丢失、页面混乱等等等等

关于详细的XSS攻击参见:
1. Google搜索跨站脚本攻击, 2. 也谈跨站脚本攻击与防御, 3. 詳解XSS攻擊

最常用的方法就是escapeHTML,不过这个常用的函数javascript居然没有自带,那就写一个吧:

JavaScript语言: Javascript string escapeHTML
//一个应该常用的javascript string函数,不知为何没有直接提供
String.prototype.escapeHTML = function () {                                       
  return this.replace(/&/g,'&amp;').replace(/>/g,'&gt;').replace(/</g,'&lt;').replace(/"/g,'&quot;');
};


第二个问题:聊天窗口不在最前的时候,来消息用户就看不见了
搜了一下,简单的解决方案就是标题栏闪烁
一开始想的方法是:当窗口blur的时候设置一个标记,focus的恢复标记,当收到消息又有标记的时候闪烁
但是没找到合适的方法
继续搜,发现StackOverfow有一篇文章专门说这个
使用的方法独辟蹊径:不管窗口有没有在最前,来消息都闪烁标题栏
不过当鼠标在窗口中移动的时候就停止闪烁,这样如果窗口在最前,闪烁就很快消失,否则只有切换过来才停止

呵呵,真是条条大路通罗马。

不过StackOverflow上面那份代码有问题:当有多个消息的时候,即便鼠标移动也不行了,因为创建了多个inteval。
我改进了一下,贴在下面:

JavaScript语言: Javascript - 后台窗口来消息时标题栏闪烁
//from: http://stackoverflow.com/questions/37122/make-browser-window-blink-in-task-bar
/*
this won't make the taskbar button flash in changing colours, but the title will blink on and off until they move the mouse. This should work cross platform, and even if they just have it in a different tab.
*/
function clear_blink(oldTitle) {
  clearInterval(g_timeout_id);
  g_timeout_id = null;
  document.title = oldTitle;
  document.onmousemove = null;
  document.onkeydown = null;
}
function blink_info(msg) {
  var oldTitle = document.title;
  if (typeof(g_timeout_id) != "undefined" && g_timeout_id) {
    clearInterval(g_timeout_id);
  }
  g_timeout_id = setInterval(function() {
      document.title = document.title == msg ? ' ' : msg;
    }, 500);
  document.onmousemove = function() { clear_blink(oldTitle); };
  document.onkeydown = function() { clear_blink(oldTitle); };
}

PS:心里惴惴,感觉还没有搞定的样子…
PS2: StackOverfow上面有很多好文章,以后有空转几篇

  • Share/Bookmark

下一页 »