Picasa和PicasaWeb的粗浅使用心得

使用Picasa也有一点时间了,挺喜欢用的,感觉整理照片非常方便,独特的操作方式背后算是蕴含着一种理念吧。这里简单写点儿我使用的方法,班门弄斧,希望有更多的人能enjoy这个软件。PicasaWeb是和Picasa配套的网络相册,对于我这样的纯傻瓜拍照来说,用它来共享照片给朋友看也就足够了。 文中图片如果看不清的话请点击看大图。

Embed PicasaWeb Album in WordPress, XHTML 1.0 Compatible

It’s quite convenient that Google PicasaWeb released the new feature of embedding album by flash. But the same as some other places in PicasaWeb, the codes it gives out aren’t XHTML 1.0 compatible, either… Though it’s not a big deal and I know someone thinks w3c standards stupid, I would like my own blog in […]

Live Space Mover Ver 0.9

I finally finished this version! And enable this small script to move COMMENTS ~ of the holy sh*t live space……. It took much longer than I estimated. The web design of Live Space really sucks… I had to do a lot of “hacking” work to retrieve comments correctly. So I added the version number a […]

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); […]