I'm back!Thanks to Tualatrix!

我回来啦,似乎快半年不写东西了。最近被lampdrive折腾的很郁闷。先是说要备案,好不容易备案通过后,结果wordpress出故障了。先是后台白屏,pavoe说我系统有问题, 我重新传了wp的系统,结果全部白屏了。我索性把空间和数控库重装,我靠,wp的数据压根就没写进去。明显是服务器问题嘛。之后paveo就再也没在gtalk上出现过。lampdrive一直联系不上,我搬到了yo2.cn。结果没几天就挂了,可怜啊,连个容身的地方都没有。最后tualatrix收留了我。空间是国外的,我干脆国外注册了个域名,彻底摆脱备案的困扰。在这里要感谢tualatrix对我莫大的帮助,空间是他的,域名也是在他帮助下想出来的。嘿嘿,如今新家已经落成,我又要开始写日志啦。

另外我在半个月前入手gphone,现在已经有点玩物丧志了,本文就是gphone上的wpTogo撰写的。

汉化编译Sparkweb

sparkweb是一款非常不错的web im,基于xmpp协议用flex开发的。我们校内的jicq也开始使用sparkweb,但是唯一遗憾的是sparkweb是英文的。网上找了很久,都没有找到汉化版的,于是我萌生了汉化sparkweb的想法。我参照 Ignite Realtime官方找到的文章《Getting and Building SparkWeb》,成功编译了sparkweb。接下来我就说一下如何编译,要注意的是sparkweb必须在mac或linux平台下编译。

需要的软件

  1. flex builder
  2. flash player debug 版
  3. svn

开始获取编译

  1. 控制台执行下列指令,以获取sparkweb源代码
1
svn co http://svn.igniterealtime.org/svn/repos/sparkweb/trunk SparkWeb
  1. 打开flex builder,把workspace位置设为你的sparkweb源代码的目录

  2. 在flex navigator里面右击,点import,选择Existing Projects into Workspace,然后在root directory里选择SparkWeb源代码目录里的SparkWeb,点击finish

  3. 重复3,把SparkWebCommonComponents、SparkWebCore都导入

  4. 把SparkWeb源代码目录里的xiff目录名改为大写的XIFF,否则flexbuilder会提示“unable to open ‘/XIFF/bin/XIFF.swc’ ”的错误的,然后按照3的方法导入。

  5. run就可以编译了。

关于汉化

语言文件在SparkWebCore里的locale,默认提供了en.properties文件,我们可以按照里面的说明建立一个中文语言文件,并把相关字段汉化成中文。

但是这样编译后还是英文的。我们打开SparkWebCore/com/jivesoftware/spark/managersLocalizator.as,把"en"改为我们自己语言包的名称。

接着我们在flex navigator右击SparkWebCore,点properties,选flex lirary build path,点击select all,然后ok,最后编译,就是你汉化的那个版本啦。

在Ubuntu8.10中安装flex builder

首先声明其实我完全不懂flex,只不过一直很想翻译SparkWeb,所以必须安装flex builder。

那么我们装备一下吧:

  1. flex builder
  2. eclipse3.3一定要3.3x哦,不然会很麻烦。
  3. jre

然后开始安装

1.安装jre

1
sudo apt-get install sun-java6-jre

2.解压缩eclipse

1
tar -zxvf [eclipse.tar.gz]

3.安装flex builder

1
sh flexbuilder_linux_install_a4_081408.bin

最后就可以进入flex builder的安装目录启动程序了

1
sh Adobe_Flex_builder.sh

启动后改一下Perspective,选flex development就可以了

在Ubuntu下看在线电视-sopcast

今天在ubuntu下通过GMlive+sopcast实现了在线看电视。

GMLive并不直接提供P2P直播服务。 它尝试成为一款通用型的流媒体播放外壳。 它以全能的Mplayer播放器为引擎。目标是支持Linuxx下多种类型的P2P广播视频流,提供一种方便快捷的观看网络视频的方案。

sopcast是一个基于P2P的流媒体系统,在这里网友可以欣赏来自世界各地的,内容丰富的电视节目。

GMLive官方地址http://code.google.com/p/gmlive/
sopcast官方地址http://www.sopcast.cn/其实是http://www.sopcast.org/,可是我进不去。

下载下列文件
gmlive-0.21.2.tar.bz2
sp-auth.tgz
sopcast依赖 stdc++5,请准备好。

解压上面两个文件,把sp-auth的sp-sc-auth复制到/usr/local/bin

然后进入gmlive的目录,安装gmlive

1
2
3
./configure
make
sudo make install

接下来就可以看电视了。

网上还有很多优化的电视列表(不一定是gmlive的):

http://forum.ubuntu.com.cn/viewtopic.php?f=74&t=164337&sid=49887bfa1cc8d95e2d88f6a6105872ab

http://forum.ubuntu.com.cn/viewtopic.php?f=74&t=109855&sid=49887bfa1cc8d95e2d88f6a6105872ab

最后说明一下
gsopcast是sopcast的前端,和gmlive差不多,但也有差异大家可以尝试一下

为什么精弘论坛在高峰时间会如此的卡?

精弘论坛是我们学校的官方内网论坛,最近在对论坛服务器调整,发现了不少问题,于是撰写此文,希望有高手能指点。

先看一下目前论坛的服务器结构:

硬件

  • CPU:Xeon 3.0Ghz*2
  • RAM:4G
  • DISK:raid

软件

  • 系统:windows2003server
  • PHP运行环境:IIS6.0(5.0mode)+PHP+Zend

在看看论坛运行情况

  • 论坛每日新增贴量:12840
  • 月份总页面流量:20587375
  • 高峰时期:IIS占用cpu89%,mysql占用5%,总占用内存1G
  • 缓存时期:IIS占用cpu50%,mysql占用50%

可以说是非常传统的结构,这种结构非常适合PHP开发者,然而作为一个高流量的论坛是远远不够的。可能是前代技术没有调整好,把IIS6的程序池屏蔽掉了。IIS6本来就是为了更好地管理资源而增加了程序池管理功能。这块功能被屏蔽掉了等于损失了很多性能。从上面数据可以看出,内存并没有完全被使用,而cpu却一直在高负荷运行。为什么呢?据我分析有两个原因。

第一个原因是图片。论坛上大大小小的图片非常多,而且图片直接被网页显示。服务器响应一张不带图片的网页所消耗的资源小于一张带图片的资源。参考论坛流量可知,如此大的流量当然会占用很多cpu。

第二个原因是发帖量过高。每当用户发帖时,服务器会增加进程来获取帖子的数据,进行处理后写入数据库。帖子数一高cpu开销就不小了。

以上两点都消耗了cpu不少资源,论坛当然会很卡。而且iis6只启用了一个进程,这能算是致命伤了。因为一个进程来处理两种不同的高负荷请求,会使得效率大大地降低。

那么如何来解决这个问题呢?我查询了不少资料,最终得到一下方案。

系统:linux 推荐Centos/RHEL

PHP运行环境:

  1. Apache+php+zend
  2. Apache+fastcgi+php

缓存:lighthttpd、squid

先说说php运行环境,可能有人会推荐使用lighthttpd+fastcgi+php。但是个人觉得不适合,因为lighthttpd是单线程的,论坛负荷高,lighthttpd一旦崩溃了,整个网站就全瘫痪了。上面有两个方案,因为我并没有实际测试过,所以不知道哪个更好一点。其实一开始我想用Apache+fastcgi+zend+php,可是开源的zend optimizer并不支持fastcgi,如果你有钱的话可以购买zend core,来获得更好的支持。

在这个方案中,我用lighthttpd+squid来缓存附件。squid是一款非常优秀的缓存服务器,其命中率非常高。我们用它来缓存apache生成的动态。而lighthttpd则用来做附件服务器。lighthttpd对http的响应非常优秀。我们把它放在最前端,专门用来处理静态内容的请求,把动态内容请求通过proxy模块转发给Squid,如果Squid中有该请求的内容且没有过期,则直接返回给Lighttpd。新请求或者过期的页面请求交由Apache中Web程序来处理。经过Lighttpd和Squid的两级过滤,Apache需要处理的请求将大大减少,减少了Web应用程序的压力。同时这样的构架,便于把不同的处理分散到多台计算机上进行,由Lighttpd在前面统一把关。

我们完全可以把这些架构放在一台服务器上,包括mysql。而且这样的效率会比windows中的架构高很多。如果有两台,可以分一台给mysql。

综上这种架构优化必须通过linux来完成,目前在windows中还没有找到好的解决方案。

本人还是比较菜的上文可能存在错误,请高手赐教。

第二届网络工程师侠客行大会

这算是我第一次参加全国性的技术性会议吧。之前在学校Linux群里看到网侠大会的通知,我赶快去申请了一张票,没想到还真弄到了。

这次会议还是不错的,至少我很满意。看到了不少牛人。上午林斌的演讲蛮不错的,不过他为什么弄不清ie和firefox呢。马云的演讲很精彩,虽然充满了攻击性,不过还挺有趣了,不知道在坐的老外听了有什么想法。

下午我在第四会场,主题是web开源技术。其实我主要是去听openid技术的。

这次会后,我最深的体会是,API是web3.0的关键词。

回来后发现CPH上几位杭州的朋友都去了,呵呵,原来都是同路人那。

让WordPress支持Nokia手机的lifeblog(写e生活)

转自Hamo’s World

在Nokia手机上内置了博客的写作软件——LifeBlog(中文版叫做“写e生活”),可以把收到的短信、彩信、邮件以及照片等发布到博客。

这一功能非常方便快捷,像sina博客等都提供了发布接口。但是lifeblog不支持XMLRPC协议,所以对于WordPress无能为力。今天从WordPress的新闻里看到这个“Post to WordPress Blogs from Nokia Lifeblog”,顿觉激动。

通过在博客服务器上传一个lifeblog.php,就可以支持Nokia的lifeblog协议,而且该程序支持最新的WordPress2.3。作者是在N95上测试的,俺用N73+WordPress2.3也同样成功。

更为感叹的是作者的程序调试手段,由于其blog是由某服务商提供,所以很难跟踪,所以他竟然是通过在刷新无线路由的firmware,然后通过在路由器上sniffer来调式,不可思议。

题外话:在支持wifi的N95上肯定很爽,如果使用GRPS,文章过长可能会提交超时,导致发布失败。

安装步骤:

又被劫持

这年头实在没想法,江苏电信劫持事件接二连三。

配置openfire时发现的几个问题

昨天重装mysql时顺手把openfire3.3升级到了3.4.1,结果一路上碰到不少问题。因为我也是新手,之前3.3版本是老技术员安装的。重装mysql之前,我先把openfire的数据库备份了。

1
2
mysqldump openfire -u [username] -p >openfire.bak
#输入密码

[username]为你数据库的用户名 然后用apt-get重装了mysql。其实你是可以保留数据的,但是我想重新把mysql整理一下,所以全删了。配置好基本的帐户,再导入数据库。

建立数据库openfire

1
mysql -u [username] -p openfire

无线路由当无线交换机用

到了大二,室友都一个个买了本本,结果发现寝室的网线接口不够。而且好几个接口没信号了,找了网络中心的人来维修,也没修得好。百度上查了些网络的拓扑知识,发现只要买个交换机就可以了。于是想弄个交换机,而且最好是无线的。结果发现无线ap比无线路由要贵。真是奇怪了,明明无线ap的功能比无线路由的功能要小,为什么价格要贵呢?听说无线ap大部分是为企业设计的,信号质量比较好,所以贵了。不过我们小小寝室对信号要求不高。既然无线路由有了无线ap的功能,那就可以用无线路由来代替无线ap了。

我们学校的网络环境:一栋寝室一个网段,每个网段有路由,每层楼都有交换机,每个寝室有若干端口(四芯)。学校采用的是dr.com软件登陆系统,每个帐号绑定1个mac。每个ip允许两个不同mac登陆。每台电脑要能上网,必须要登陆dr.com。学校网络出口只会接受经过dr.com编码过的数据。这意味着用路由是很难实现上网共享的,呃,扯远了。

我的配置如下:

  1. 买来无线路由后,先用电脑接入无线网络,然后把无线网络密码设了(安全第一),记得把管理后台密码也改了。
  2. 把路由的DHCP服务器功能关掉
  3. 拿根网线把路由的一个lan端口与寝室网线端口相连。
  4. 重新获取电脑的ip(一定要是寝室网段,不是的话请重启)。我直接设置了固定ip,然后就能上网了,哈哈。对了我事先把网卡的mac改成了登陆帐号绑定的mac。
浙ICP备14031546号