I have wrote a blog post about how to call JavaScript function from C++ XPCOM (XPCOM: Javascript function call), but just found another way to achieve this goal by observer mechanism.

C++ XPCOM code:

1
2
nsCOMPtr<nsIObserverService> observerService = do_GetService("@mozilla.org/observer-service;1");
observerService->NotifyObservers(NULL, "ping", ToNewUnicode(NS_ConvertASCIItoUTF16("www.google.com")));

JavaScript code:

?View Code JAVASCRIPT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
const Cc = Components.classes;
const Ci = Components.interfaces;
 
var aObserver = { 
    observe: function(subject, topic, data) {
        if (topic == "ping") {
            alert("Ping: " + data);
        }   
    }   
};
 
var observerService = Cc["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService);
 
observerService.addObserver(aObserver, "ping", false);

In multithreading XPCOM, sometime we should call JavaScript function by nsIProxyObjectManager (JavaScript and UI are on a single thread, see nsISupports proxies and nsProxiedService.h for detail)

Tags: ,

迅雷我问候你家属!

Essay March 31st, 2009

昨天收到 Linode 给发来的警告邮件, 提示我的主机本月流量已经超过 80% 了. 我就纳闷了, 前些天才刚上去看过, 也就用到了 10% 不到, 怎么才这么几天就暴涨了那么多? 好吧, 先上 Linode 的 Dashboard 看了下, 往外走的流量竟然达到了 140G, 看起来像是有人在疯狂下载来着…

第一时间跑去看了自己 nginx 的日志文件, 发现 MLDonkey 的访问记录文件大小竟然达到了 80M, 记录数也达到了 276,797 之多. 先去登陆 MLDonkey 的 Web 界面看下了统计, 上传下载的总流量也才用了 8G 不到, 那么唯一的可能就是下载下来的文件被盗链了. 可问题是, 我的 HTTP 下载开了认证来着, 盗链也不可能盗到我头上啊 -_-”

今天才反应过来, 有同学从我这是用迅雷下载的, 看来是遇到了这流氓软件偷偷上传用户名密码这档事了. 迅雷果然很恶很流氓, 我日!

下面是日志的一些简单的分析:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
duo@li57-184 /var/log/nginx $ cat /var/log/nginx/mld.access_log | cut -d " " -f1 | sort -u | wc -l
4980
duo@li57-184 /var/log/nginx $ cat /var/log/nginx/mld.access_log | cut -d " " -f1 | sort | uniq -dc | sort -rn  | head -n 10
   6312 59.108.246.164
   5282 58.254.39.7
   5277 124.207.242.190
   4956 219.237.254.100
   4396 121.43.189.16
   3172 114.241.214.44
   2715 218.69.21.166
   2700 222.35.28.10
   2159 219.82.196.183
   2064 58.17.163.41
duo@li57-184 /var/log/nginx $ cat /var/log/nginx/mld.access_log | cut -d "\"" -f2 | sort | uniq -dc | sort -rn  | head -n 5 
  94648 GET /download/files/%5B%E4%B8%9C%E9%82%AA%E8%A5%BF%E6%AF%92%EF%BC%9A%E7%BB%88%E6%9E%81%E7%89%88%5D.Ashes.of.Time.Redux.2008.LiMiTED.BDRip.XviD-NODLABS.avi HTTP/1.1
  41631 GET /download/files/%5B东邪西毒:终极版%5D.Ashes.of.Time.Redux.2008.LiMiTED.BDRip.XviD-NODLABS.avi HTTP/1.1
  37766 GET /download/files/[东邪西毒:终极版].Ashes.of.Time.Redux.2008.LiMiTED.BDRip.XviD-NODLABS.avi HTTP/1.1
  34027 GET /download/files/%5B%B6%AB%D0%B0%CE%F7%B6%BE%A3%BA%D6%D5%BC%AB%B0%E6%5D.Ashes.of.Time.Redux.2008.LiMiTED.BDRip.XviD-NODLABS.avi HTTP/1.1
  22570 GET /download/files/%5B%E4%B8%9C%E9%82%AA%E8%A5%BF%E6%AF%92%EF%BC%9A%E7%BB%88%E6%9E%81%E7%89%88%5D.Ashes.of.Time.Redux.2008.LiMiTED.BDRip.XviD-NODLABS.avi HTTP/1.0

4980 个不重复的 ip 访问过, 这些不认识的 ip 的访问数都上千了, 从北京到广州的 ip 都有, 真是天南地北的了. 最后一项统计表明, 东邪西毒终极版看起来蛮受欢迎的嘛, 就是不知道看完后有多少人就开骂了…

最后, 我要向世界大声呼唤: 迅雷我日你先人板板!

AltSwitch chinese

Mozilla, Python November 7th, 2008

Download: AltSwitch 0.1
Description: A firefox extension which make windows version’s firefox use alt+(1-9) for switching tab instead of original ctrl binding

Tags: