用线上数据库做开发

我在开发Web网站的时候,一般在本地调试好没问题后,再上传到服务器。本地调试时,数据从哪里来呢?通常我会在刚开始的时候生成一些伪数据作为测试用途,如果是已经上线的系统,则我可能会dump一部分数据(通常一个月)下来,然后测试。然而,每次都这么做则要耗费不少时间,而且还要占据本地的存储空间。另外,如果换台机器开发,这个过程可能还要重复一次。

直到最近一次阅读中,发现ssh有-L这个参数,使得我可以把远程数据库当作本地数据库使用。具体来说,-L参数可以把发往本地端口的数据透明地传送到指定目标的指定端口。-L port:host:hostport,其中port是本地监听的端口,host是目标主机(从ssh服务器发起连接),hostport是目标主机的端口。因此,-L 3306:localhost:3306,就能把发往本地3306端口的数据转发到ssh服务器的3306端口,从而在本地可以直接访问MySQL服务器。

MySQL connection

值得注意的是,如果这时直接连接服务器,例如mysql -u root,那么会提示错误,如上图所示。这是因为,mysql如果发现服务器是localhost时,会自动使用socket file,而不是建立TCP连接。解决方法是让mysql客户端强制使用TCP连接,即加--protocol=TCP;或者指定host为127.0.0.1,即-h 127.0.0.1。

除了文中的例子外,端口转发还能做很多事情,大家不妨发散思维。值得注意的是,直接利用线上服务器做开发有一定风险,只涉及查询数据的开发我才敢这么做,如果涉及到修改数据,那还是用测试数据库吧。

HTML5乒乓球

Solidot介绍,pong是一个用HTML5和javascript编写的乒乓球游戏,我试了一下,Ubuntu 9.10下的Firefox 3.5及8.10下的3.0都能玩,玩的时候要允许网站弹出窗口。

pong

正如游戏的提示,按下p后,游戏就开始。首先会弹出三个窗口,左右两个表示player,中间那个表示球。用户只要按上下键控制player移动就可以了。比赛是11分制的,pong可以适当打发时间,如果刚好有两人,也可以对战。

nslookup的使用

终于抽出时间继续上次还没说完的话题。总结一下nslookup的用法,当然这里的nslookup是Linux下的,Windows下的nslookup我没有怎么研究,貌似弱一些。

nslookup命令后的参数跟的是域名服务器的名字或者IP地址,比如“nslookup 202.116.64.2”,表示查询该域名服务器里的信息。如果不指定参数,则使用/etc/resolv.conf中设定的域名服务器。敲了命令之后进入交互模式,就可以查询了。

开启后默认是查询A条目的,即域名到IP地址的查询。也是大家最常用的查询方式,查询的结果有两种可能的字眼,“Authoritative”和“Non-authoritative”。如果得到后者的答案,表明是从服务器的cache得到的,进一步可以推断该DNS服务器是cache-only的服务器,因为现在架DNS服务器一般都把含区域信息的服务器和纯粹作查询用途的服务器分开;前者表明信息是直接查该区域授权机器得到。

nslookup1
nslookup1
nslookup2
nslookup2

除了常用的A条目外,实际上每个DNS服务器中的区域信息还包含其他条目,下面就逐个看一下。SOA (Start of Authority)条目,声明区域管辖权与基本资料;NS条目,指明了本区域下的域名服务器;MX条目,指明了本区域的邮件交换中心服务器;AAAA条目,和A条目类似,但是是IPv6的。要改变nslookup查询的条目类型,使用“set type=x”,如上图所示。也可以指定为“set type=any”,这样就查询所有的条目。

重新用回Twitter

首先热烈庆祝wordpress.com终于解禁了,这也意味着我的博客可以直接从国内访问。

最近更新了Pidgin,然后很有冲动想用回MSN和Google Talk等,就顺便把头像也更新了。然后还很想念Twitter,因为看了一篇报道说,Twitter具有实时信息的能力,但是Google在这方面只有Youtube,所以Google可能会收购。还有一条报道说,Google也在Twitter上发Tweets。当然,收购或合作其实我不是很关心,我只是忽然想起好久没有上Twitter,甚至在北京的时候都没有上过Twitter。登录Twitter之后,发现和以前一样的简洁,清新的Web2.0界面,我马上就忍不住要玩一下的念头了。首先follow了Google的Twitter,然后在Pidgin主页上搜索Twitter的插件,找到一款叫Microblog-purple的软件,源代码是放在Google Code上面的,http://code.google.com/p/microblog-purple/

Twitter-plugin
Twitter-plugin

在Ubuntu上安装这款Pidgin插件是很简单的,因为它有PPA源。第一步,是在源列表中加入源(我自己用的是intrepid)

deb http://ppa.launchpad.net/sugree/ppa/ubuntu intrepid main #Pidgin-Microblog

然后导入该源的key

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0CF459B8DF37ED8B

更新之后就可以安装了

sudo apt-get install pidgin-microblog

使用起来界面就如上图,然后直接在框里发Tweets就可以了,别人发的时候也能收到。下图就是今天收到的一条Google的Tweet,打开之后的图片。

Doodle
Doodle

情人节快乐

很高兴今天第一次可以二人度过这个不平凡的节日,虽然很累,但是很开心^_^

我和女友决定中午在实验室煮“第一顿”午餐,为了这个决定,这几天先是买了电磁炉,买了锅铲,买了刀具,还有油和盐等,进出了数次百佳。而今天早上,最后要买的就是菜了,先是买了油菜,还买了排骨,淮山,萝卜去煲汤,不过我真是第一次自己下菜市场买东西,结果我发现很多东西我都还没认得,惭愧。

终于好不容易,十点多回来,先是煲汤,所以我把淮山剥皮,切片,还有女友也把萝卜切片。好不容易,终于把材料准备好了,就全部放到水里,过了半小时才加油和盐,一边加一边试味道,呵呵,想不到还算可以,原来煲汤也不是很难的,只是时间长一点就好一些。然后我还要炒菜,我先是把火腿和黄瓜切粒,加上玉米粒一起炒,虽然我技术一般,不过也勉强得到女友的肯定,呵呵。本来还要炒一个青菜的,不过女友说已经太多了,就没炒了。辛苦了一顿,坐下来吃的时候,真是特别的甜^_^

情人节女生送男生巧克力,男生送女生花,我虽然早就知道,却一直没有经历过,今天是我的第一次,所以也要好好地记录下来,以后可以回味。女友是回来广州前就自己亲手做好的六个巧克力,有两颗嘴唇形状的,两颗白色,两颗黑色。吃下去融在嘴里,甜在心里,留着一颗嘴唇的可以每天亲。我也是第一次送花,所以打算提前准备,结果昨晚拿到实验室的时候竟被女友发现了,真是很糗,不过女友还是很开心。

总之一句话,谢谢女友。

Rose
Rose
Gxogle
Gxogle
Google Valentines 09
Google Valentines 09

今天还有很多开心的网上事情。Google中国先后换了两次情人节图标,第一个里面的XO表示拥抱和kiss,现在我学会了,呵呵。还有又认识多了一款代理软件,叫GAppProxy,网址是http://code.google.com/p/gappproxy/,我的这篇文章就是使用这个软件发送的。

谷歌中国牛年新春壁纸

今天在cnBeta看到报道,谷歌中国推出了牛年新春壁纸,于是正好把我Ubuntu的桌面换上新年的新装。要下载牛年新春系列的壁纸,只要访问谷歌中国的个性化主页即可。

这次一共推出了8款壁纸,而且还每一款都有名堂,确实是别具新意的。下面的截图是一款叫“金牛献宝”的壁纸,不过我自己选择使用的却是“新年到,鞭炮到”,呵呵,其实每一款都挺漂亮的。另外几款的名堂分别是“年年有余”、“团圆饭”、“大拜年”、“迎春接福”,“张灯结彩”以及“拜天公”。

Google China 09 Newyear
Google China 09 Newyear

在除夕之夜,周围不少住户在放鞭炮,寒冷的夜晚还是有不错的新年气氛,这一晚送旧迎新,首先要感谢女朋友半年以来无怨无悔的支持,同时小弟在此祝愿各位朋友在牛年事业顺利,身体健康。

体验IPv6

我从国庆回来后得知中大已经可以使用IPv6,就几乎每天都去试用,到现在已经快一个月了,感觉非常稳定,写一篇小结的文章。

先说说配置IPv6的方法,最简单使用IPv6的环境就是Vista。在Vista中,如果是在学生生活区(南校区),通过DHCP自动就能获取IPv6的地址或者自动就建立好ISATAP隧道,所以用户只需要用就可以了。如果是XP的话可以按照该文章(内网链接)配置隧道到isatap.sysu.edu.cn,然后也能使用IPv6。

如果是Linux的话,需要手动配置隧道(至少目前是这样)。首先添加隧道接口sit1

sudo ip tunnel add sit1 mode sit remote 202.116.64.254 local 192.168.114.31

其中202.116.64.254是ISATAP隧道接入服务器,另一个是本机地址。接下来需要启动sit1接口

sudo ifconfig sit1 up

接下来为sit1接口添加一个IPv6地址

sudo ifconfig sit1 add 2001:250:3002:7000:0:5efe:192.168.114.31/64

其中前面部分是中大的IPv6网络号,后面是在中大里的内网地址。最后添加一条IPv6的默认路由

sudo ip route add ::/0 via 2001:250:3002:7000::1

这样就大功告成了,我使用的操作系统是Ubuntu 8.10 Alpha 6。现在可以使用命令“ping6 6rank.edu.cn”测试一下IPv6连通性。当然嫌麻烦的话写一个脚本就可以了。而且今天过去信科A楼发现那里DHCP可以获取IPv6的公网地址,真不错。有了IPv6可以干什么?对我来说,最爽的莫过于看高清电视。下面是我看北邮的网络电视的截图。

IPv6
IPv6

互联网奥运月

2008北京奥运在昨天8月8号晚上8时8分8秒开始了,这么重大的节日,互联网上的软件和服务当然也会参与其中。分享一下最近新鲜的互联网奥运月事件。

首先很值得一提的是Linux版的QQ,这个千呼万唤始出来的软件,解决了像我一样的Linux用户的长久的痛苦。因为之前腾讯封杀了第三方的QQ客户端,所以如果使用类似Pidgin这样的软件上QQ一两次,再回到Windows上使用QQ,就很有可能提示QQ号码需要重新激活。Linux QQ真是名副其实的Preview版,很多简单的功能都还没有,只有最基本的功能发送文字和表情。

Linux QQ有一个特色,就是把聊天窗口集中在一个窗口,用标签去分隔。这个特性不知道是不是只是为GTK 2开发的,还是以后QQ也有这个打算。个人认为如果可以自由选择将会更好。Linux QQ有很多简单的功能没有实现,如不能截图,不能传送文件,不能搜索自己面板的好友。不过看到8月6日的时候腾讯官方网站又有进一步的消息,对这款软件还是很有信心的。

然后说说Google中国的音乐搜索服务,使用网址http://www.google.cn/music即可访问。Google中国的音乐搜索是和巨鲸音乐网合作的,所以音乐是音质比较好的正版音乐,据说是192k/s码率的音乐。Google音乐搜索还有一个特色就是它的在线试听页面,做得很好看,发挥了google的美化功力。不过据说音乐的数量并不是很多,而且该服务不提供给中国以外的地区。

最近还有很多软件以“奥运版”面世,如腾讯QQ,百度Hi,灵格斯词霸,甚至红旗Linux也推出了奥运预览版。尤其是百度Hi,挺有创意的,在签名的地方加上[中国加油],就可以实时显示现在中国队的金牌数。最后祝贺中国第一天就拿到两面金牌。

G-Fox

G-Fox是中国火狐的形象。貌似是前两个星期前推出的,很多人对名字和形象本身所代表的意义作过推测,但是我自己第一个反应就是想起火狐的日本形象Foxkeh。

还是先说说名字吧。官方说G代表的是多重的意义,从good,great到gateway,gravity等等。表示带着Firefox的力量从宇宙中来。不过我想大部分的IT人士会想起Google,毕竟Firefox和Google有着极其密切的关系。总体来说,在中国这个非英语国家,把狐狸俄名字单取一个G确实是一个明智的抉择,因为这样就怎样诠释都是可以的,也可以从中文拼音的角度去诠释。

然后说说形象,是一只长耳朵的火狐(注意不是狐狸,当然火狐也是狐狸…)。和今年的Foxkeh一样,首先推出了很多运动的形象,应该是因为今年是奥运吧,连火炬手的形象都有了。

gfox
gfox

其实我觉得G-Fox和Foxkeh的样子还是差不多的,除了耳朵,一个长一个短,是火狐里的两种不同生物。总之,G-Fox还是挺可爱的,也成为我的壁纸两个星期了。G-Fox的网址可以点击这里

千千静听和Baidu Hi

千千静听和Baidu Hi最近都有更新。千千静听更新到5.2 Beta,增加了支持百度Hi个性签名的功能。也就是说,当播放音乐的时候,歌手和音乐的名字自动替换当前的Baidu Hi的个性签名。这个功能和千千静听支持MSN是一样的。所以可以看出来,尽管QQ和MSN都是Baidu Hi开发的参考对象,不过更MSN化一点。我个人是比较喜欢的。

Baidu Hi最近有几次更新。首先配色和主题有了更多的变化,不是一开始的只有蓝色和红色的主题,而是采用了TM 2008和QQ 2009那种调色方式,就是基本没有主题,而是分为色调和背后的图案。而另外一个更新主要亮点就是刚才说的,支持千千静听修改个性签名。

老实说,我还是挺喜欢Baidu Hi的,因为比较简洁。不会出现QQ那些对我没用但是占用资源的附加值商品和服务,也不会出现MSN的广告。不过很可能只是暂时的事,当基本功能开发成熟后,估计也会和QQ差不多的模式。另外一个郁闷的地方是上线时基本没人,包括我自己也很少上,有点可惜。