Archive for the ‘技术 | Info&Tech’ Category

December 18th, 2009

5KB搞定wp-cumulus中文3D Tag问题

  wp-cumulus是我很久之前就推荐的一款3D Tag显示插件。效果非常cool。不过由于Flash本身的问题,3D标签云中不能显示中文。解决方案无非1.嵌入中文字体,不过这样导致swf文件的体积异常庞大;2.只在swf中嵌入常用的已有的标签文字,这样的话有新的Tag时也显示不出来。

  借鉴yujj同学和awflasher师兄的启示,通过修改wp-cumulus的源代码实现了对中文3D标签的支持,效果见右侧。

  yujj同学后来做了一个付费版本的中文3D Tag,不过这似乎不太符合wp-cumulus所声明的GPL协议。反正我把它破了,并且做了优化和小小的修改。现在无限制免费下载版本在这里http://www.lostleon.com/blog/wp-content/plugins/wp-cumulus/tagcloud.swf,只需要覆盖掉原来的swf文件即可。这个swf文件只有4.79kb,太完美了。

Tags: , , ,

December 14th, 2009

GTK 2.18.3与Linphone 3.2.1编译记录

  实验室有一个SIP相关的项目,客户端选用linphone。因为涉及到音频视频还有图形界面,所以依赖的包很杂,特别是GTK的编译安装。

1.环境:Fedora 7,内核版本2.6.21

2.需要编译的linphone版本3.2.1

3.GTK 2.18.3与Linphone 3.2.1的依赖关系如下:

linphone3.2.1依赖

linphone3.2.1依赖

Read the rest of this entry »

Tags: , , , , ,

October 17th, 2009

Google Wave提名邀请名单

  在上一篇文章中留言为奇数号的前6位朋友获得这次Google Wave的提名邀请,其中Siris L重复发评论一次,所以它的第二个机会向下转让给hnws朋友。

  最终获得邀请的名单如下:Siris L、hnws、sol、jinhe1314、triStoneL、小石头。然后Lemok,我把自己预留的那个邀请送给你了。再加上之前的princetonois。一共8位,已经进行了提名邀请,恭喜大家。等各位收到Google Wave的正式邀请时,想要感谢我,就来我Blog点右下方的Adsense广告吧^_^

  Google Wave is more fun when you have others to wave with, so please nominate people you would like to add. Keep in mind that this is a preview so it could be a bit rocky at times.

  Invitations will not be sent immediately. We have a lot of stamps to lick.

  Happy waving!

Tags: , ,

October 15th, 2009

赠送Google Wave提名邀请

  自己已经把自己的Google Wave账号从沙盒测试激活到了真正的Google Wave,现在有8个提名邀请名额。关于Google Wave的提名机制就去Guao那里看吧http://google.org.cn/posts/from-wavesandbox-to-google-wave.html注意被提名的用户将不会收到任何邮件或其他信息,你们将会在下次wave发送邀请时被优先考虑。同时希望大家像火炬接力一样,把提名传下去。也就是说在这里获得提名并最终获得邀请的用户,希望你们可以留几个提名给其他留言的网友,感谢大家!

  我自己会预留1个邀请,网友princetonois在本文发表前提前向我要了一个提名,所以现在只剩下6个了,这6个邀请全部送出,需要朋友请在本文留言吧(有空的话,请顺便帮我点下右面的Google Adsense广告哦^_^),按照留言顺序随机抽出6个赠送~。

Tags: , ,

October 13th, 2009

基于PHP的Google Voice 短信API

  Google Voice并没有提供官方API接口,但是实际上还是可以通过HTTP和XML请求的手段来实现。目前网上能够找到的API最终大都是溯源到Chad Smith的这篇主题帖

  要通过Google Voice实现发送短信,首先要登录到Google Voice账号,然后取出页面中的“_rnr_se”参数,最后把这个参数和对方手机号、短信内容POST到Google Voice SMS的地址即可。Tyler Hall曾经写过一个Google Voice的php类,但是我试用时并不成功,总是卡在登录Google Voice的过程上。对此我二次开发了它的这个类,重写了绝大部分代码。

  经过实际尝试,我没有使用Chad Smith的XML请求地址,而是使用了移动终端版的Google Voice请求地址并且根据需要改动了POST请求的参数,最终搞定了一个基于php的Google Voice短信发送工具,调用地址在http://www.lostleon.com/tools/googlevoice/,项目地址在http://phpgooglevoice.googlecode.com/

  很遗憾,我的天翼189号码不被Google Voice支持。移动158号码测试通过。

Tags: , , , , ,

October 12th, 2009

支付宝的效率与安全

  因为电脑原因,本人在支付宝的数字证书需要注销。这个过程必须向支付宝提交申请,然后48小时内解决。

  填写了一系列用来确认账号主人就是本人的选项后,当天晚些时候接到了客服电话,重新询问了身份证号、支付宝余额、电话、地址、银行及卡号,进一步语音核对账号主人的确是我本人。

  于是快速而安全的注销成功。

  越来越有像类似Google和Paypal对于身份认证机制的感觉,赞支付宝的效率和严谨,地位无人撼动。

  不过我还是有一个很深的顾虑,支付宝的客服打来的电话是0571-88156688,一个看起来及其普通的杭州固话。如果有人冒充支付宝客服,甚至通过技术手段伪造出其客服的电话号码,然后从客户口中套出各种敏感信息,岂不是非常危险?越想越可怕。

Tags:

October 12th, 2009

对多人群发Email时to和cc的区别

  突然冒出一个疑问,发送邮件的时候,to和cc都可以以逗号隔开来填写多个目标地址,那么二者有何区别呢?

  按常理想,to域中的地址才是真正的目标地址,而cc则只是简单的对第三方抄送。所以,若接收者的地址在to域中,则他可以直接回复邮件到sender;而若接收者的地址在cc域中,那么他只是相当于旁听了这封邮件而已而。

  可是,至少在Gmail中,若自己作为接收者,无论身处to域或者cc域,都有Reply和Reply to All功能,并且reply的目标地址和抄送地址完全仿照原邮件。这样完全看不到to和cc的区别。这是就to和cc的本意,还是Gmail自作主张呢?

Tags: ,

July 6th, 2009

Linux中ADSL通过6to4自动穿隧连入IPv6

  前两天捣鼓了一个USB ADSL在VMWare虚拟机中Linux系统中的安装配置和拨号方法。目前青岛网通这里,如果是在Windows环境下,拨号后能够自动获取6to4自动穿隧方式的2002开头的IPv6地址,Linux下的获取需要手动配置一下,并不是很复杂。

  如果是Windows系统,那么通过ipconfig可以得到类似如下的信息。

C:\Documents and Settings\Administrator>ipconfig
Windows IP Configuration
 
PPP adapter AccessRunner DSL:
   Connection-specific DNS Suffix  . :
   IP Address. . . . . . . . . . . . : 123.235.169.32
   Subnet Mask . . . . . . . . . . . : 255.255.255.255
   Default Gateway . . . . . . . . . : 123.235.169.32
 
Tunnel adapter 6to4 Tunneling Pseudo-Interface:
   Connection-specific DNS Suffix  . :
   IP Address. . . . . . . . . . . . : 2002:7beb:a920::7beb:a920
   Default Gateway . . . . . . . . . : 2002:c058:6301::c058:6301

  其中IPv6地址中的7beb:a920正好对应动态IPv4的地址123.235.169.32,而IPv6网关地址中的c058:6301对应的是不变的192.88.99.1,这个192.88.99.1是一个特定的6to4中用于任意点传送的中继路由地址。需要做的就是记好这几个地址的规律。

  然后换到Linux中,配置好ADSL,拨号后连入IPv4网,ifconfig查询到新获得的动态IPv4地址,然后按照上面的规律自行将其转换到6to4方式下2002开头的IPv6地址。例如现在得到的是124.135.17.179,对应的6to4地址为2002:7c87:11b3::7c87:11b3。下面将手动添加6to4隧道和中继路由。

[root@leon ~]# ip tunnel add 6to4 mode sit remote any local 124.135.17.179
[root@leon ~]# ip link set dev 6to4 up
[root@leon ~]# ip addr add 2002:7c87:11b3::7c87:11b3/16 dev 6to4
[root@leon ~]# ip -6 route add ::/0 via ::192.88.99.1 dev 6to4 metric 1026

  添加完后通过ifconfig可以看到新多出的网卡6to4,同时ping6一下ipv6.google.com已经可以正常的显示结果。

[root@leon ~]# ifconfig
6to4      Link encap:IPv6-in-IPv4
          inet6 addr: 2002:7c87:11b3::7c87:11b3/16 Scope:Global
          inet6 addr: ::124.135.17.179/128 Scope:Compat
          UP RUNNING NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
 
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:560 (560.0 b)  TX bytes:560 (560.0 b)
 
nas0      Link encap:Ethernet  HWaddr 00:08:5C:14:C0:FB
          inet6 addr: fe80::208:5cff:fe14:c0fb/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:275 errors:0 dropped:0 overruns:0 frame:0
          TX packets:281 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:23972 (23.4 KiB)  TX bytes:19561 (19.1 KiB)
 
ppp0      Link encap:Point-to-Point Protocol
          inet addr:124.135.17.179  P-t-P:124.135.17.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:236 errors:0 dropped:0 overruns:0 frame:0
          TX packets:236 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:20202 (19.7 KiB)  TX bytes:9883 (9.6 KiB)
[root@leon ~]# ping6 -c 4 ipv6.google.com
PING ipv6.google.com(tx-in-x68.google.com) 56 data bytes
64 bytes from tx-in-x68.google.com: icmp_seq=1 ttl=58 time=384 ms
64 bytes from tx-in-x68.google.com: icmp_seq=2 ttl=58 time=385 ms
64 bytes from tx-in-x68.google.com: icmp_seq=3 ttl=58 time=387 ms
64 bytes from tx-in-x68.google.com: icmp_seq=4 ttl=58 time=390 ms
 
--- ipv6.google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3396ms
rtt min/avg/max/mdev = 384.629/386.821/390.147/2.146 ms

  总结配置过程,首先观察windows下6to4方式IPv4地址与IPv6地址的对应关系及其中继路由地址,然后在Linux中添加隧道,设置6to4网卡,添加IPv6地址和中继路由,最后测试成功。

  延伸阅读:http://en.wikipedia.org/wiki/6to4http://en.wikipedia.org/wiki/IPv6

Tags: , , , ,