7
22
2010
5

GM 脚本:和WebQQ的滚动标题栏说再见

作为一名中国的Linuxer,我没能像一些幸福者那样摆脱QQ,尽管我一直在见缝插针地推广Gtalk,但收效甚微。在相当长的一段时期内,我还是不得不使用WebQQ。WebQQ有一个特点让我觉得*非常非常*烦人——在来消息后就那么一直一直一直一直地滚动标题栏,似乎有天大的事需要我立即处理否则就性命难保似的。非常非常讨厌。像Gmail或者twitter那样只是在标题栏上加个括号号个数字不行吗?。。。

我再也不要默默忍受下去了!于是,点击GreaseMonkey图标,打开Vim,开始写脚本。

脚本其实很简单,只是我今天才想到可以这样子而已。WebQQ当点击聊天对话框后标题就会变正常。于是,我用Javascript模拟点击。不好监测标题栏的改变,干脆每隔几秒去点一下算了。代码如下:

// ==UserScript==
// @name           quiet WebQQ
// @namespace      http://lilydjwg.is-programmer.com/
// @description    来消息时不要滚动标题栏
// @include        http://web.qq.com/main.shtml?*
// ==/UserScript==

window.clicker = function(){
  var evt = document.createEvent("MouseEvents");
  evt.initMouseEvent("click", true, false, window,
    0, 0, 0, 0, 0, false, false, false, false, 0, null);

  var edits = document.getElementsByClassName('editArea');
  for(var i=0, len=edits.length; i<len; i++){
    edits[i].dispatchEvent(evt);
  }
};

//最多滚动三秒好了
setInterval(window.clicker, 3000);

这里clicker函数需要作为window的一个属性,否则会在页面加载完,脚本执行过后就消失了。


点击此处安装

7
9
2010
1

中键关闭GVim的标签

今天在Vim Talks群群地址)上看到闲耘™问到GVim能否像其它很多程序那样使用中键关闭对应的标签。虽然我自己在Vim鼠标用得比较少,但也曾想过这个问题。现在刚刚考试完毕,所以就去试着改了下Vim的源代码。没想到只需要加六行代码呵~~

#ifndef HAVE_GTK2
	    else
		gtk_notebook_set_page(GTK_NOTEBOOK(gui.tabline),
							    clicked_page - 1);
#endif
	}
	/* The following if is added by lilydjwg, to enable closing tab by
	 * middle-clicking. */
	else if (bevent->button == 2)
	{
	    send_tabline_menu_event(clicked_page, (int)(long)TABLINE_MENU_CLOSE);
	    if (gtk_main_level() > 0)
		gtk_main_quit();
	}
    }

    /* We didn't handle the event. */
    return FALSE;
}

以上的代码包含了上下文。把原本不存在的部分添加到gui_gtk_x11.c的3303行附近,然后重新编译即可~

PS: 这个只支持GTK版的GVim,所以不适用于Windows平台。

在此还要感谢Ubuntu大学群的Edward提供帮助。

Category: Vim | Tags: vim gtk C代码
6
30
2010
1

GM 脚本:转换QQ空间的Javascript链接为普通链接

为什么要访问难用的QQ空间我就不说了,相信各Linuxer能够理解。那为什么要把Javascript链接转换成普通链接呢?因为我喜欢用中键去点链接,让它在新标签页中打开,并且还是在后台打开。这样,在列表页面,我可以用鼠标中键选取自己感兴趣的链接,全部打开,选完好基本上第一篇也就加载好了,不需要等待加载。

无奈QQ空间特别喜欢使用Javascript,以至于我以为QQ空间里的文章都没有可以指向它的URL。后来看到QQ空间支持RSS了,才发现原来每篇文章都是有ID的,像这样可以访问:http://QQ号.qzone.qq.com/blog/文章ID。于是,此问题有解!

Firebug查看下就可以知道文章ID如何获取,然后利用强大的GreaseMonkey写个脚本转换之。思路很简单,但做起来还是遇到了点小问题——貌似在页面加载完毕之前脚本就已经执行过了。怎么办呢?我首先想到了延时,但觉得不太好控制。无意中在GreaseMonkey的右键菜单项中看到了“用户脚本命令”一项,遂Google之,获得此文。于是就用这个了,虽说每次要先去点下这个菜单项有点麻烦,但毕竟我QQ空间看得不是很多,而且这比之前要省事不少。好了,贴代码:

// ==UserScript==
// @name           QQ空间链接转换
// @namespace      http://lilydjwg.is-programmer.com/
// @description    将QQ空间链接从Javascript转换到普通链接
// @include        http://*.qzone.qq.com/*
// ==/UserScript==

var changeLinks = function(links){
  for(var i=0, len = links.length; i<len; i++){
    var link = links[i];
    if(link.href == 'javascript:;'){
      var id = link.getAttribute('onclick').match(/\d+/)[0];
      link.href = 'http://' + window.location.host + '/blog/' + id;
      console.log(link.href);
    }
  }
}

var do_it = function(){
  try{
    var links = document.getElementById('tblog').contentDocument.getElementsByClassName('blog_link');
    changeLinks(links);
    var links = document.getElementsByClassName('tx_fix');
    changeLinks(links);
  }catch(e){
    GM_log(e);
  }
}

GM_registerMenuCommand("转换js链接", do_it, '', '', 'j');

点击此处安装

6
15
2010
5

垃圾武汉电信换广告了

几天没见着这样的推送广告了,现在终于知道为什么了——

整页被电信替换了

网页源代码如下:

<html><head><!--title>... 信息推送,请等候 30 秒,或按刷新键继续 ...</title--></head><script language=JScript><!-- function killErrors(){return true;} window.onerror = killErrors; --></script><frameset rows=*><frame src=http://www.wuhan.net.cn/2010/dx/201005273/2mkd.html noresize></frameset></html>
Category: 反广告 | Tags: 反广告 垃圾电信
6
10
2010
0

多篇Word课件打印,我这样省纸

我需要六个共21页Word文档的课件以供开卷考试时使用。可是打印成21页也太浪费了!字号可不需要那么大,于是使用Ooo调整字号,结果令我郁闷的是,除了大部分文字位于左边而右边很多空白之外,我发现项目符号依旧是很大的字号。这样可不行。而且,一个个文件处理太没效率——我马上就要去应考了啊!考虑过LaTeX,结果因为不会调字体而放弃。于是想起了前些天发现的Google Docs使用的prince。于是开始工作——

首先把Word转成txt。我使用的是wvText这个位于wv包的工具。只能一个个文件转,不过我使用的是shell脚本(因为要手动给那些Word排序),这个就没关系了。然后把内容cat到一起,成为一个大的纯文本文件。然后打开这个文件,用Vim删去空行,然后在利用正则表达式\v第.章|^(一|二|三|四|五|六|七|八|九|十)加上Vim的宏给标题前空一行免得到时候不好找答案。prince是处理HTML的,所以还要把它改成HTML。这个手动就可以了,写上head标签,meta指明编码,正文前后加上<pre>标签,再写点样式表:

pre {
  font-size: 11px;
  font-family: 'Adobe Song Std';
  -moz-column-count: 2;
  -moz-column-gap: 20px;
  -webkit-column-count: 2;
  -webkit-column-gap: 20px;
  column-count: 2;
  column-gap: 20px;
  white-space: pre-wrap;
}

这里用到了我最近学到的多栏布局的CSS,prince认识它。然后使用prince转成PDF,打开一看效果灰常不错,而且只有六页了!

注意,CSS里的white-space是必须的,不然不会自动折行,左栏的过长文字会叠加到右栏。

PS: prince共享版会在每个生成的文件的第一页的右上角加个图标,但打印时并没有打印出来。

Category: 未分类 | Tags: shell prince
5
24
2010
8

将du的输出按文件大小排序

du命令的输出结果要么是不人性化的全部以千字节为单位,要么加上-h参数,显示为1K 234M 2G这样易读的数据。可是,我通常想查看那些大文件/目录,或者那些小文件/目录。单单只用sort命令的话,就不得不在脑海转换那些千字节单位的数据了。做为一个Linux用户,电脑能做的我可不想让人脑来做。Google了一下,发现这个帖子提供了一段代码可行,但是输出效果并不理想,于是我略作更改,写出了以下代码:

sdu () {
  du -sk $@ | sort -n | awk '
BEGIN {
  split("K,M,G,T", Units, ",");
  FS="\t";
  OFS="\t";
}
{
  u = 1;
  while ($1 >= 1024) {
    $1 = $1 / 1024;
    u += 1
  }
  $1 = sprintf("%.1f%s", $1, Units[u]);
  sub(/\.0/, "", $1);
  print $0;
}'
}

这段代码使用sort排序原始数据后,再使用awk来转换数字的单位。使用方法为sdu后加要查看大小的文件/目录就可以了。注意我在代码中加了-s参数,如果希望同时查询子目录的话,需要去掉这个参数。

Category: shell | Tags: shell linux
5
23
2010
10

让火狐使用chrome的更好的Flash Player插件

Linux用户可能都知道,Windows平台的Flash Player是做得最好的,Linux和Mac下的非常耗CPU。而且我发现,我的火狐使用的libflashplayer.so 10.0r45版本的插件,每当上传文件时都会导致整个火狐没有响应,Flash上传控件亦无进度显示,直到上传完成才会恢复。所以,今天向DBank上传一个大文件时,我不得不强行关掉火狐,改用Chrome上传,好让火狐依旧能够浏览网页。令我惊讶的是,Chrome里的Flash上传控件表现得竟然比较正常,虽然CPU使用率还是挺高的,但至少不影响其它操作,而且进度指示也正常。

看来Chrome使用了更好的Flash Player插件。好东西可不能让Chrome独享,我遂进入Chrome的安装目录/opt/google/chrome,果真发现了一个名叫libgcflashplayer.so的so文件。我很高就,二话不说,在我的火狐配置目录下建立plugins目录,然后把这个文件链接过来。重启火狐,在插件列表里发现多了一个版本号为10.1r51的Flash Player插件。再上传测试,一切如Chrome中一样,哦耶!

Category: 火狐 | Tags: 火狐 linux flash
5
23
2010
1

Google开始支持https,遂更新火狐若干选项

 今天Google开始支持https了,所以我也应该做出改变了。

更改搜索引擎

我安装了Organize Search Engines,所以这是很简单的事,只要打开“搜索引擎选项”更改其属性就是了。如果没有安装类似插件,也可以手动更改。是一个XML文件,Linux下在/usr/lib/firefox-addons/searchplugins下找,Windows下在安装文件夹下的searchplugins下找。

更改地址栏搜索使用的搜索引擎

火狐的智能地址栏很强大,在地址栏直接输入关键字时,可能会跳转到相关网站上,也可能使用Google搜索。其实都是使用的谷歌(google.cn)。这个也应该给改了。

打开about:config页面,搜索keyword.URL,然后改掉就可以了。

Category: 火狐 | Tags: 火狐 google
5
8
2010
5

[转] Linux的优势——对比Windows

原文地址:http://hi.baidu.com/zhuhongxu/blog/item/089ad5070848e9c57a89470f.html,作者NIX

注:由于百度空间的网页源码过于混乱,所以转载导致了部分格式丧失,建议查阅原文。


Linux的优势——对比Windows

2009-03-06 16:27

很多人不了解Linux,因为他找不到这方面的资料,现在我想用我自己对Linux的使用情况来说明Linux为何优秀,为何值得使用,为何值得推广。

注:以下言论仅代表个人观点,如有错误,欢迎指正!

1、内存使用原则

使用国Windows的同学大概都知道“页面文件”吧,它的作用是扩展内存,就是说用硬盘虚拟内存的方式来为应用程序提供比内存大的多的运行空间。但这个方式有一个缺点,就是硬盘的速度太慢,和内存比就不是一个数量级的。所以如果一台计算机只有256MB的内存或更少至128MB时,虚拟内存(就是某一些硬盘空间)就会被使用的很多,很频繁,结果就是,计算机的运行速度会像乌龟一样慢。

但好在时代进步了,科技发达了。我们能用更少的钱买更多的内存,比如1GB、2GB或更多。于是使用Windows的同学就想了:我能不能将“页面文件”调小,最好到0,这样我的内存就能被充分的利用,计算机速度也就可以提升了。结果很明显,你可以将每个分区下“页面文件”都调至0MB,但Windows本身却不会响应你的要求,你用Ctrl+Alt+Del打开任务管理器,发现虚拟内存(即页面文件)还是在被使用着,尽管你的内存大部分都是“空的“。这就好像你使用一辆宝马车,可是引擎却是拖拉机上的,而且制造商还不让你换,尽管宝马的引擎就在旁边(而且它还属于你)。这就是使用Windows的困境之一:你无法真正掌控你的系统。

对于Linux,你就不会遇到这样的困境。你内存多,可以设置完全不用虚拟内存;你内存少可以设置成现使用内存,不够时再使用虚拟内存;当然你也可以设置成尽量使用虚拟内存,留出你的内存作为它用,或者就是将内存当作摆设(有的人就喜欢使用拖拉机的引擎也是无可厚非的,但关键是要自己能决定)。即,你有决定的权力。

2、安全性

大家多少都听说过一些Linux安全性高方面的事情,但具体对它为何高、或者为何不高却了解得可能就不是很清楚了。请听我道来。

如果有人要拿刀砍你,你当然不希望给人砍到(不排除有人有这方面的嗜好)。所以你想,要是自己手上也有刀甚至有枪,那就不用怕了。可我们是文明人,平常不会在身上带刀带枪的,那怎么办?我们可以穿盔甲。

操作系统也一样,好的操作系统有各种各样的机制(就是有不同的盔甲)来避免自己受到外界的非法干扰。

一个很好很古老的机制就是权限。打个比方就是带头盔保护头部,防弹衣保护胸部,即,将重要部分隐藏起来。尽管我胳膊、腿都在外面,可就算被你捅到,我也死不了。

Windows默认使用的帐户都是超级管理员帐户,用户可以随便读写系统的任何资源,即,所有东西都暴露在外。现在很多人意识到这个问题了,都会建立一些普通用户帐号用于平时的使用,只在关键时候(比如安装软件,查杀病毒,系统调整)使用超级管理员帐户。但这种机制仍然不完善,对于安装在非C:盘的软件,普通用户也是可以“乱来的”。另外,每次安装所么软件或要进行什么重要设置都要先切换到超级管理员帐户进行操作,很不方便。所以有人干脆就一直使用超级管理员帐户。

Linux的机制更好,例如现在最好的Linux发行版之一:Ubuntu所使用的方式是不建立超级管理员帐户(即root帐户)。而使用sudo命令来实现超级管理员要做得事情。即,在虚拟终端(命令行界面)里使用它来暂时获得管理员权限以完成管理员要做得事情。操作完成后,马上就退回到普通用户状态,不会有因为切换帐户而带来的时间浪费,而且系统更安全,重要部分只会暴露一会儿,而在这一会儿的时间就有黑客入侵进来的概率约等于0。相反,Windows一直暴露着,所以被攻击(挂木马、植入病毒)的概率就大大增加了。

所以如果你使用Linux,你可以完全不用担心病毒、木马对你的威胁。在Linux下,病毒、木马没有生存的土壤。所以杀毒软件就是不必要的一种软件了。话说回来,大概使用Windows的同学的计算机上都安装有杀毒软件吧,如果你喜欢重装系统大概就不会用杀毒软件。杀毒软件会占用我们的内存,使用我们的CPU资源,占用网络带宽(因为它老是要升级病毒库,还会对下载的东西进行检查),这些都降低了我们的计算机使用体验质量。所以丢掉那种提心吊胆的感觉吧,投身自由、开源软件的怀抱吧!

3、软件最好的进化方式:开源模式

我要介绍的Ubuntu Linux使用的所有软件都来自开源社区,这些软件都集中在一种叫做“源”的服务器上,当然“源”可以有很多。

 

 

比如我现在使用的电子科大的源(速度可达8MB/s),所以在Ubuntu上安装软件是一件很享受的事情。你可以用图形界面的安装方式,也可以用命令行的方式。所有你需要做的是在窗口中选择你需要的软件,然后点击安装就可以了,剩下的事情就让系统代为负责,大约1分钟以后(或更短的时间),你就可以使用刚安装的软件了。方便无比!这也是自由软件的优势。

而如果你要在Windows下安装一个软件,你要先用搜索引擎搜索一个或几个网址,然后用迅雷或其他什么下载工具去下载。可能软件会需要序列号(非自由软件需要付费,所以大家都明目张胆的盗版,当然这样做是不对的),你又需要去找一个。如此下来,安装一个软件所耗费的时间就可想而知了,而且用户体验很差。而在Windows下所谓的免费软件,大都带有广告,比如迅雷、QQ等。因为他们不开源,是以软件赚钱的,而用户又喜欢盗版,所以只能加广告进去了。使用这带很多广告(或者说垃圾广告)的软件时,用户的体验会是多么的差!

总结,就算为了以上几条理由,也应该尝试一下Linux!

当然Linux也有“不足”。就是很多我们在大学里需要使用的盗版软件没有Linux版!这也和教育有关,中国用盗版习以为常,最可悲的是,大学教师里没有几个对自由软件有什么认识,而且以用盗版为荣。要是什么时候中国政府也学学国外,在教育界推广自由软件多好啊。那时候就不会有丢不下Windows且受制于Windows的情况了(记得黑屏吗?)。

在Google上搜索一下“开源软件”、“自由软件”、“Linux”、“Ubuntu”等词汇。多了解一些吧!

上优酷看看关于Ubuntu、Linux的视频也挺好,多方面了解嘛!

狗熊怎么死的?因为无知而死。我希望大家不要太局限自己,多给自己一些空间,看看外面的世界。千万不要以为自己会使用互联网就是现代人哦,关键是思想。

若要安装Linux,可以选择双系统,你就不用失去Windows,又能领略Linux的风采了。

Ubuntu:Humanity to others(人道待人)。

本文档是在Ubuntu Linux下由OpenOffice.org 3.0制作完成。

SCU.EI.NIX

2009.03.06

Category: Linux | Tags: linux 转载
5
6
2010
2

去掉 WebQQ 和 163 邮箱中讨厌的 UI 元素

这两天 WebQQ 的右上角又出现了红色的文字——“参与WebQQ知识问答,100Q币等你拿”。本以为过段时间它会消失的,结果到现在依然还在。

这红色的文字甚是碍眼,于是它享受了和163邮箱里的红字广告和“安全系数低”一样的待遇——被display:none了。下面是设置方法,前提当然是使用配置性强的火狐浏览器了。

首先确定 CSS 选择器。这个打开 Firebug 看吧。要写多点以免把其它网页的某些元素给选中了。也许可以指定当 URL 匹配时才匹配,但我还不会。我使用的选择器是:

#webqq_top > .top_right > .right_option > a[target=_blank]

选好后我使用 Firebug 的插件 Firefinder 确定了下正确性。毕竟我对 CSS 的高级点的选择器还不熟,没太多信心。要测试效果那可是要重启浏览器滴~

然后打开火狐的个性化配置文件<profile_dir>/chrome/userContent.css。这个 CSS 文件会应用于每个网页。(另外还有个userChrome.css文件是针对浏览器自身的。)在此文件中把那个元素隐藏起来就可以了 :-)

/*
 * WebQQ 讨厌的红色调查/问答链接
 */
#webqq_top > .top_right > .right_option > a[target=_blank] {
  display:none!important; /* !important 是必须的,提高该规则的优先级 */
}

在这个文件里面,还有我为屏蔽 163 邮箱里的红字而写的另外两条 CSS 规则:

/* 
 * 网易邮箱 3.5:不要显示“安全系数低”
 */
a#aWelcomeSecurity0 {
  display:none!important;
}
/*
 * 还有广告
 */
div.links > div.chl > a:last-child {
  display:none!important;
}

一点题外话:继发现网易邮箱不能发送纯文本邮件后,今又确认它每次都把 Google Group 的更新邮件给我扔到垃圾邮件里,太过份了。还是 Gmail 好啊!

Category: 火狐 | Tags: 火狐 css 反广告

部分静态文件存储由又拍云存储提供。 | Theme: Aeros 2.0 by TheBuckmaker.com