工信部确认个人可以办网站,要拍照认证

自实名认证、上网备案之后,工信部又一次修改网站管理办法,加入了拍照认证的要求。这意味着在中国办网站,已经由想开就开自由自在变得手续烦琐,过程复杂,审批周期漫长。《通知》要求各省通信管理局在今年9月底前完成备案网站主办者审查工作,补拍800×600正面彩色照片,存档有效证件复印件……而这一切的起因居然是为了打击手机色情。现在办网站比摆地摊要难得多,摆地摊的只要躲过了城管和工商,总还能摆下去,多少能赚点钱。办网站本来是件烧钱的事,还在层层监控之下,完全没有躲的机会——所有的接入商都要求备案,他们都担着干系,如果一家没备案,就可能殃及全部客户。
想来像我这样的个人博客网站,要么安家于门户自觉接受审查,要么完全备案自己审查,要么安身于海外,躲过审查。可能是因为备案太麻烦,太影响生意了,我的ISP也开始像客户推荐海外主机,“优势”一栏中赫然写着“无需备案,立即开通”。跟客服人员咨询,说这种产品颇受欢迎,别看它贵,因为不用等一个月的备案时间,反而倍受青睐。一堆同行网友的blog都开在海外,看来网络移民已经是技术人员的大势所趋,互联网本该是简便自由的嘛。
Continue Reading

Twitese、glype以及Rek.me

前段时间做的都是Rek.me网址缩短服务方面的工作,网络书签相关的功能至今没有做好,精力都花在了考虑是否应该进一步优化速度。方法自然是用C编写lighttpd插件。不过技术水平好像还不怎么成熟。
闲余的时间里架了个推特中文圈Twitese,还有一个网页版代理glype。Twitese是个基于PHP的Twitter工具,用它可以直接收发tweets,有完整的中文界面,并且还可以任意指定使用的API,让不翻墙而使用Twitter成为可能。其作者bang590是一个07级的本科生,代码写得很规范,结构性也很强,真是英雄出少年。glype是个网页版的代理访问工具,基于PHP的cURL函数库,能把指定网页完全抓下来,并实现链接、图片路径的完全替换,支持plugins,是代理访问的理想工具。
部署好之后的时间自然是努力整合这些东西的应用。已经把Twitese的网址缩短加入了Rek.me的服务,而twitpic.com的图片更是直接用glype打开。可惜后来发现功夫网还能根据关键字触发拦截,为了避免Rek.me被墙,只好先不推而广之。目前正苦苦思索解决之道,想来base64是最简便有效的方法,可是在客户端做base64_encode毕竟还是需要更复杂的脚本,所以也一直没动。另一个办法是利用SSL,不过这意味着我不得不再花几十美刀购买SSL证书。
今天看到Twitese项目上有带新浪微博同步的版本出现,于是下载下来试用,发现没能真正同步。于是用SVN对比了一下文件,发现居然只有设置页面多了新浪微博帐号密码设置的表单,没有实质的同步功能代码,看来八成还得自己写。
Continue Reading

忙了半天,才明白COOKIE失效是因为没有urlencode

rek.me已经做好几天了,使用起来感觉还不错。随便看到哪个网站好的,直接在地址栏http前面加上rek.me/就可以生成一个微缩过的地址,非常方便,以致于我都有点不想做工具栏按钮了。
今天准备为rek.me加入owner信息,这样网址微缩就可以变成网络书签了。考虑到操作简便性的要求,就直接在第一次使用的时候生成一个md5的uuid,然后setcookie一年,这样甭管多会上来都不用登录。而以后加入OpenID支持也就把OpenID URL和uuid对应一下完事。哪知道coding完毕之后,根本就用不了,随便换个网址,uuid就被重设。用Firebug又可以看到response header中正确的cookie设置,怪哉~~
于是慢慢排查,发现rek一个网址之后不关标签,只改个把字符再发请求,cookie就会发回给服务器。但是如果新开一个网站,然后再rek它,cookie就会被重设了。起初我以为是Firefox的问题,可换了Google Chrome也还是这样,完全搞不懂为什么——浏览器应该会跨页面传递COOKIE的啊。
之后偶然发现,不同网站的址在同一标签中也会导致cookie重设,于是恍然大悟。因为rek.me创建微缩网址的方式是使用http://rek.me/http://guangxin.name这样的地址,会导致浏览器认为请求的域名是guangxin.name,与rek.me是不同的域,所以rek.me下的cookie不予发送。
一个解决方法是urlencode,如果请求是http://rek.me/http%3A%2F%2Fguangxin.name这样的地址,浏览器就会认为后面的http…是URL的一部分,域名还是rek.me,cookie就能正确发送了。不过很难要求用户自己手动完成urlencode操作,看来直接在地址栏rek.me/的方法不好用了,还是得单独用Javascript做一个Short&Bookmark的按钮。
Continue Reading

Rek.me网址缩短服务

一直在想做点什么有意思的东西好,于是加入网址缩短服务的大潮,难得自己有个把够短的域名。现在基本服务已经完成,可惜还是基于MySQL的,等把TokyoCabinet研究清楚了,再升级好了。现在已经支持Ajax创建接口,不过还不支持历史追踪。
目前使用的算法能把网址缩短到域名后六个字节,核心部分使用到md5和base64技术。基本来说就是这样两句:

$key = substr(base64_encode(md5($url, true)), 0, 6);
$key = str_replace(array(‘+’,’/’,’=’), array(‘-‘,’_’,”), $key);

第二句是为了把URL中需要被再次编码的+和/替换成-和_,而=一般只会出现在末尾,去掉它。
最后,配置好服务器的rewrite就OK了。
用http://rek.me/<YOUR URL>创建一个短网址,比如http://rek.me/http://guangxin.name,创建出来的shorten就像这样:http://rek.me/PFqVsv
Continue Reading