Linphone 2.0 for IPhone编译

新的Linphone已经支持SUBSCRIBE/NOTIFY,当然还有MESSAGE,这样的话就差不多把SIMPLE协议几个主要的功能都支持了,还是很有意义的。

于是重新下载代码编译,编译条件也没怎么变,而且出奇的顺利,开始遇到了一些问题,后来升级了XCode就可以了。

也没有遇到上次的那个armv7s的问题,强烈推荐大家重新编译。

FreeSWITCH ESL Client内存溢出

Linphone 1.x版本还不支持SUBSCRIBE/NOTIFY,所以也无法知道好友的状态,不得以做了一个代理,客户端每隔一段时间通过代理去freeswitch查询状态,代理用freeswitch ESL Client类连接freeswitch,但是代理运行一段时间之后就会内存溢出,然后崩溃。

2013-04-07 11:16:09,378 WARN [org.apache.mina.filter.logging.LoggingFilter] (LoggingFilter.java:123) – EXCEPTION :
java.lang.OutOfMemoryError: Direct buffer memory
at java.nio.Bits.reserveMemory(Bits.java:633)
at java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:95)
at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:288)
at org.jboss.netty.channel.socket.nio.SocketSendBufferPool$Preallocation.<init>(SocketSendBufferPool.java:156)
at org.jboss.netty.channel.socket.nio.SocketSendBufferPool.<init>(SocketSendBufferPool.java:42)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.<init>(AbstractNioWorker.java:44)
at org.jboss.netty.channel.socket.nio.NioWorker.<init>(NioWorker.java:45)
at org.jboss.netty.channel.socket.nio.NioWorkerPool.createWorker(NioWorkerPool.java:45)
at org.jboss.netty.channel.socket.nio.NioWorkerPool.createWorker(NioWorkerPool.java:28)
at org.jboss.netty.channel.socket.nio.AbstractNioWorkerPool.newWorker(AbstractNioWorkerPool.java:99)
at org.jboss.netty.channel.socket.nio.AbstractNioWorkerPool.init(AbstractNioWorkerPool.java:69)
at org.jboss.netty.channel.socket.nio.NioWorkerPool.<init>(NioWorkerPool.java:39)
at org.jboss.netty.channel.socket.nio.NioWorkerPool.<init>(NioWorkerPool.java:33)
at org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory.<init>(NioClientSocketChannelFactory.java:152)
at org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory.<init>(NioClientSocketChannelFactory.java:117)
at org.freeswitch.esl.client.inbound.Client.connect(Client.java:113)

本来以为是程序里头什么地方资源没释放,后来查了一下,倒还真不是那么回事儿。

具体可以看看:Netty内存泄露XSocket内存泄漏问题深度分析,第一个讲的是现象,第二个更深入一些,说问题在于DirectByteBuffer。

不过第二个实施起来有点难度,而且也不能完全解决问题;而org.freeswitch.esl.client.inbound.Client里头用的NioClientSocketChannelFactory类作为一个工厂类确实没有必要每次都new,做成静态的即可。

于是改代码,然后重新编译。基本就是git和maven,具体可以参考:http://wiki.freeswitch.org/wiki/Java_ESL_Client

MSN可以放弃了

最近MSN超级难登录,经常看见它不停的在哪儿登录,掉线又登录,有时候可能有大半天都登录不上,还时不时的丢消息,忽然想起来似乎哪儿看到新闻说除大陆以外MSN都停止服务了,再想想似乎skype上次自动升级之后界面也有了些变化,于是退出skype一看,果然有了用Microsoft account登录的选项,登录之后再绑定一下skype的帐号就可以了。

skype要用官网的版本,不要用tom版。

centos安装git

上次虚拟主机上没有yum,所以git是直接源代码编译安装的,略显麻烦;这次虚拟机上用yum install git居然找不到package。难不成非得要编译?按说git这样的东西应该包含进来才对啊。再仔细一找,原来是需要先添加EPEL(Extra Packages for Enterprise Linux) repository:

rpm -Uvh http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

然后就可以yum安装了。

具体参考:http://fedoraproject.org/wiki/EPEL/FAQ#How_can_I_install_the_packages_from_the_EPEL_software_repository.3F

小纸条:大宝打针

大宝一岁半,又得打预防针了,今天打的是麻疹风疹腮腺炎联合疫苗,月底还得打流脑,下月初打甲肝,可怜的孩子。麻疹风疹似乎还厉害点,这腮腺炎其实得了似乎也没啥大不了的,我小的时候好像也得过,后来爷爷拿锅铲去井沿上铲了点青苔煮煮给我喝了,然后就好了。不过大宝有一点很奇怪,打针的时候一次也没哭过,今天也一样,打完了我正好探头进去看,被大宝看见了,觉得可能有点疼有点委屈,嘴一扁有点想哭,我把他抱过来就没事儿了。后面的那个小孩三岁了,一直在那儿哭,还趁他爸不注意的时候想逃走。也许大宝还不是那么懂事儿吧。

在市民主页订的违章通知最后还是来了,100块在所难免。

打完针出来停在外面的自行车被风吹倒了,链条也掉了。结果俺迟到了。

羽绒服挂到了停在路边的一辆货柜车,划了一个大口子,羽毛飞了一地。200块五道口服装市场买的TNF终于要寿终正寝了,似乎也穿了快10年了。

尾号限行

没注意轮换了,再加上昨天已经上了一天班今天也没啥周一的感觉,直接就把车开出来了,而且收音机里说了两遍才反应过来,都已经快到建国门了,于是出去走辅路回家,不过路上摄像头实在太多了,估计100块在所难免了。下次得注意早点更新手机日历。

git clone libvpx失败

在虚拟主机上git clone linphone的时候失败了,底下libvpx模块clone有问题:
Submodule path ‘submodules/externals/libupnp’: checked out ‘d0b16d056e0f681a2bc6bd70859303b4bba521dc’
Cloning into ‘submodules/externals/libvpx’…
error: Failed connect to git.chromium.org:80; Connection refused while accessing http://git.chromium.org/webm/libvpx.git/info/refs
fatal: HTTP request failed
Clone of ‘http://git.chromium.org/webm/libvpx.git’ into submodule path ‘submodules/externals/libvpx’ failed
试了试telnet git.chromium.org 80可以,但是git就是不行。
看了看以前下载的记录,应该是可以的,而且从公司网络直接git clone http://git.chromium.org/webm/libvpx.git也可以。
看样子是人家把我的IP给盾了,不知道为啥,有点坑爹。

日坛公园

昨天趁天气好带大宝去日坛公园逛逛,晒晒太阳,顺便去吃个午饭再回家。大宝玩的很高兴,估计也玩累了,回家的时候在出租车上就自己睡着了。
看看走的是不是还挺有范儿的?
DSC_0242
中午吃的至爱,台湾菜,大宝吃米糊,顺便也吃些菜。给大宝面前放了一个空盘子和一双筷子,然后他就在哪儿拿筷子敲盘子表示不满,俺就往他盘子里放一粒花生米,然后凑过去张嘴说:给爸爸吃。大宝可能觉得花生米有点硬也没打算往自己嘴里送,直接抓起来就给我吃了,然后就夸夸他:大宝真乖。他就很高兴,乐此不疲,一颗又一颗的喂给我吃。小孩其实很好哄的,有点耐心就行。