How to Draw Dashed Lines in Canvas

(I could finally finish this draft, after 4 months -_-) I’m a fun of JavaScript Canvas but I couldn’t believe it doesn’t support drawing dashed lines when this requirement occurs to me. After some investigating I found a good summary about why/how it doesn’t support dashed lines. What I actually do with canvas is to […]

Make StatCounter More Readable

我比较爱看这个blog访问的StatCounter统计数据。昨天还比较了一下Google Analytics,GoStats和StatCounter这几家的统计服务,个人还是觉得StatCounter最好用。Google Analytics界面好难用,GoStats免费用户限制太多。还听说过的比较有名的一个好像叫做MINT。其实这几个都算是比较好的了。昨天还看到了某人主页上用的不知哪家的统计服务,还会弹广告窗口的,lol 不过每次看的时候还是有点问题。我最经常看的是Pageloads的统计,这里可以看到哪个页面被访问了,还有这个访问的refer地址,也就是这次访问的上一个页面。常见的refer地址是搜索引擎,或者一些带有俺的blog地址的页面,比如WordPress网站上我写的那个小plugin的页面。一条记录显示出来大概是这样 这条记录上第一行是访问者的ip和域名,第二行是访问的页面的标题,第三行是这次访问的refer地址。比较不爽的一点就是标题和refer地址里面有很多编码之后的中文,我常常还要点一下去看看人家是用什么关键字来查的。研究了一下之后发现标题里面那种%u9AD8这样的编码,后面这四位就是Unicode Number;google搜索的url里面带有的%D0%A1这种是用utf-8编码的,这两个都比较容易用JavaScript来转换。Baidu这个家伙的URL里面看起来和google挺像,也是%CB%C9这样的,但其实用的是GB2312编码,要转换到utf-8需要查很大的表,不是单纯用JavaScript就可以做的了。Whatever,能把标题和google搜索的utf8编码转换过来也就方便不少了。 基本的想法就是在页面读取完之后执行一段JS,这个就需要用到Firefox的插件GreaseMonkey。我按照GreaseMonkey的规范写了一小段User JavaScript,还挺好用,嘿嘿。每次看StatCounter的pageload页面的时候这段小程序就会自动工作,转换以后的效果是这样 代码在这里下载——StatReadable.user.js 有用的部分是这几句 allLinks = document.evaluate( “//td[@class=’tableContent1Left’]/a[@target=’_blank’]| //td[@class=’tableContent2Left’]/a[@target=’_blank’]”, document,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null); for (var i = 0; i < allLinks.snapshotLength; i++) { thisLink = allLinks.snapshotItem(i); // do something with thisLink oldHTML = thisLink.innerHTML; //for %uXXXX newHTML = oldHTML.replace( /%u([0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z])/g,”�$1;”); Try.these( function (){ //for utf8 encoding newHTML = newHTML.replace(/((%[A-Z0-9][A-Z0-9])+)/g, function(str,p1,offset,flags){ return decodeURIComponent(p1); […]