blue moon
字面意思很容易理解:“蓝月亮”,隐含的意思是指“几乎不可能发生的事情”。比如某项已经确定的政策在可预见的时期内几乎不可能更改,就可以用“blue moon”来形容,如下句:
This policy might be updated once in a blue moon.
字面意思很容易理解:“蓝月亮”,隐含的意思是指“几乎不可能发生的事情”。比如某项已经确定的政策在可预见的时期内几乎不可能更改,就可以用“blue moon”来形容,如下句:
This policy might be updated once in a blue moon.
Application Gateway应用服务器的通称,实际上可以按照网络应用分成不同的种类,例如FTP-ALG、HTTP-ALG等。
这里要说说的是SIP-ALG。这个是通信行当的人才明白的东西,估计大多数人基本不关心。而最近不知道刮什么风,越来越多的路由器里居然都内嵌了SIP-ALG。本来这是个很好的事情,毕竟SIP-ALG能让SIP通话更安全、更能帮助私网的SIP电话进行穿越,实在是有诸多的好处。
可是让人奇怪的是,国内很多路由器的SIP-ALG完全起不了作用,反而引入了各种奇怪的问题。不知道是不是某个路由器通用套件内嵌了这个模块,因此大部分路由器厂商不假思索都自动加持SIP-ALG功能。
如果您的VOIP网络遇到了语音问题,如果您花了很多时间都无法解决,不妨查一下路由器的配置,关掉SIP-ALG功能试试。
在网络上闲逛无意中看到的日本动漫“Fate zero”,实在是神作,关于英雄和正义的演绎很有深度。
日本,真是个让人觉得很矛盾的国家。
作为一名linux爱好者,这个月份让人觉得很愉悦,因为紧接着Ubuntu后,Debian8又发布了。按照以往的经验,Debian的软件包要旧一些,不过不要紧,比CentOS还是要新多了,我个人非常喜欢Debian的版本。
安装Debian8有些要注意的地方:
(1)尽量不选择“Graphical install”,默认的安装方式就好。图形安装方式似乎要联网下载一些包,导致速度很慢(这点现在不太确认,当时没选择镜像站)。
(2)虽然是DVD安装方式,但建议在“选择镜像”步骤时还是要选择一个国内的镜像(包括教育网用户也可以选择教育网内的镜像)。因为在安装过程中,还是会联网去下载一些包,指定国内镜像的话,速度要快很多。
(3)最后一步设置grub时,要么选择一个引导区,要么手工设置一个。默认是空的,我以为安装程序会选择默认值,手快直接敲回车,结果就悲剧了。
(4)Debian8安装源中似乎已经不包含virtualbox-guest-dkms包,因此如果是用virtualbox安装,需要手工安装编译vbox自带的增强工具。
安装完成后,简单体验了一下,总体感觉还不错。默认安装gnome3,比以前顺滑多了。有几个地方有些可惜:
(1)新版提供了”package install”,欣喜地以为可以像Ubuntu那样点击deb文件直接安装程序。似乎这个工具没有做好,点击后弹出对话框,提示安装、下载,然后就假死了,没有任何反馈。最后还是不得不手工用dpkg来安装程序。
(2)不知道是不是gnome3特意的设计。程序弹出的dialog窗体中,居然没有关闭按钮,都只能按ESC键关闭对话框。另外就是Qt程序的菜单项中无法显示icon,不过toolbar不受影响。这方面的处理,感觉不如Unity合理和方便。下图是我们应用程序的截图,大家随意感受一下:
刚才升级移动盘中安装的kubuntu到最新的15.04版本,过程耗时且不太顺利。运行起来后,最直观的感受是两个:
(1)一切都拍扁了。
(2)速度比以前慢一点。
在这个版本中,默认已经是KDE5以及Plasma5,完全扁平化。默认的窗体风格是“微风”。konsole默认字体是“oxygen mono”,显示中文时有些问题,修改回Ubuntu mono等原有字体会好一些。下图是升级完成后的截图:
升级过程基本顺利,但是在96%的时候卡在”配置fail2ban”。冒险掉电重启,居然能重新进入系统。删除fail2ban,再重新使用以下命令修复:
sudo dpkg --configure -a
升级方式很耗时间,前后花费了将近4个小时。与之对比,下载ubuntu15.04的iso然后重新在virtualBox中安装,耗时也仅仅1个小时。
简单使用了一段时间,编译测试了几个程序。总体上KDE5还比较稳定,比KDE4刚推出那会儿好太多了。个人感觉比以前的版本好看,我比较喜欢新的“微风”风格。大家有兴趣的话,值得试试。由此我对Debian的KDE5版本充满期待啊。
深圳取消了“一签多行”,改成“一周一行”。这是打着反水客旗号赤裸裸地歧视深圳人!梁特首感谢深圳政府的理解,而身为深圳人,我对这个决策无法理解,更感到愤怒!
在来往香港的几百万深圳人中,有多少是水客?这种做法的直接意义就是视全体深圳人为水客!更何况,水客中有至少一半是港人自己吧?这完全是把水客的脏水全部泼到深圳人身上!
没有别的手段打击水客吗?两地海关都不能掌控吗?扯蛋!
港府这是对港灿姑息养奸,对深圳(大陆)忘恩负义、过河拆桥!而内地海关(或者决策部门)也是一味地迁就香港,完全漠视深圳居民的尊严和感受!
比起大名鼎鼎的git,mercurial/hg相对来说默默无闻一些,不过我们一直使用hg,而且感觉还不错,与git相比该有的都有,不该有的都没有。除了clearcase,hg是我非常喜欢的版本管理工具。
hg在branch管理上相比clearcase还是有很大差距,在日常工作中,需要采取一些变通方式。例如以下一些场景:
只显示active的分支
加上参数“-a”即可,完整命令如下:
hg branches -a
如果不想每次都带上参数,默认就只显示active的分支,可以修改hgrc文件,加入以下内容:
[alias] branches = branches -a
关闭分支
实际上我们希望有“删除分支”的功能。在平时工作中,多半有这样的场景:为了查某个问题需要修改代码,为了不影响开发分支或者主线分支,通常都会创建一个临时分支,加入一些打印、调试、定位代码甚至变更处理逻辑等代码。问题定位后,这些代码不需要merge进主线,分支也没有存在意义,最好就删除了事。遗憾的是hg不提供删除分支的功能,因此我们采用“关闭分支”的处理方式:
hg commit --close-branch -m "finish debug, useless now"
QQ群中有几位朋友在聊呼叫系统性能的问题,默默地观察了一段时间,感觉大家对一些基本的技术术语其实都没有澄清,比如并发数。
“并发”一般理解为“同时呼叫数”,很多朋友往往将ta误解为“同时试呼数”。“并发呼叫”英文术语是Concurrent Calls(CC),而“同时试呼数”英文术语一般是Calls per second(CPS)。从英文的意思来看其实就更明白一些。
CC和CPS都是衡量呼叫系统性能的重要指标,两者也有一定的联系,这涉及到另一个术语:平均通话时长。通常情况下,根据统计结果,一般呼叫系统中的平均通话时长大约为100秒。当然某些通话时段(例如晚间)、某些特殊人群(比如爱煲电话粥人士)的统计结果有很大差异,但就总体统计而言(尤其是企业通信领域),“100秒”是个相当有代表性的统计结论。
假如“平均通话时长”是100秒,那么CC和CPS的关系就是:CC = 100 × CPS。
例如,有位朋友要求系统能支持100个并发呼叫(CC=100),那么CPS只要1(CPS=100/100)就可以了。也就是每秒只需要支持1个呼叫,这对大多数呼叫系统而言都能轻松支持。
而如果要求能支持到每秒100个呼叫(CPS=100),那么系统资源就必须按照10000(CC=100×100)并发呼叫的容量去设计和考虑。这实际已经是中型呼叫系统的指标了,绝大多数基于Asterisk或者FreeSwitch的小型呼叫系统如果不做特殊修改或者定制,不可能支持这个性能要求。
在没有弄清楚CC和CPS含义的情况下,胡乱提要求或者回答问题是会闹笑话的。比如QQ群里一位大侠吹嘘自己呼叫系统的性能指标,按照上述计算公式,居然可以支持到3亿并发呼叫,也就是说只要四套这个系统,就可以让全中国的人同时打电话!
差点被吓死了。
最近有个小需求,需要php程序和服务器程序之间进行一些简单通信。调研了几个进程间通信的技术,选择了消息队列方式。
消息队列技术本身不复杂,无非就是生成一个ID,然后使用该ID发送消息或者接受消息。在C程序中,使用ftok来生成ID,而php同样提供了相同名字的函数。因此,在php代码中,想当然地写下了类似语句:
$key_t = msg_get_queue(ftok("/home", 2));
让人惊讶的是,C程序始终接受不到php发送的消息。百思不解之下,使用命令查看系统的消息队列情况:
ipcs -q
结果表明php程序的确在发送消息,只是php的消息队列ID与C程序的消息队列ID居然是不一致的。重新翻看了php的手册,对ftok函数是这么描述的:
int ftok ( string $pathname , string $proj )
值得注意的是:第二个参数居然是字符串型。而在C函数中,该参数定义为int型:
key_t ftok(const char *pathname, int proj_id);
因此,在php代码中,当我们传递整数2给函数ftok时,php转换成了字符‘2’,也就是说,上述示例的php代码实际相当于以下语句:
$key_t = msg_get_queue(ftok("/home", '2'));
导致最终的计算结果与C函数不一致。修改方式也简单,在C程序中,将第二个参数修改为0x32,与php一致即可。
无法理解php为什么将第二个参数改成字符串型,实在是多此一举,而且毫无意义。
周末带儿子去南山书城逛,打算买点书在寒假看。
在书城居然看到有“羊年喜羊羊”的漫画书卖了!儿子非常喜欢喜羊羊动画,前两天我刚带着去电影院看了最新的“羊年喜羊羊”动画电影。不禁感叹喜羊羊算是我们大陆比较成功的本土动画形象,商业运作也很成功啊。儿子非常喜欢看这漫画书,尽管已经看过电影了,还是抱着书坐在地上津津有味地看。也非常感谢南山书城提供的环境,真是很不错。
很显然很多小孩都喜欢喜羊羊漫画,儿子身边坐着一位差不多年龄的小朋友拿着也是同一本书。儿子很高兴,和这位小朋友聊得不亦乐乎。小朋友兴奋地说,马上就可以看“羊年喜羊羊”动画电影了。我赶紧告诉他:已经上映了!小朋友白了我一眼说:“在网上看”。我郁闷了,问了句:“这么喜欢的话,为什么不去电影院支持一下呢?”。小朋友估计觉得我是个白痴:“那还不得花钱啊?!”
那还不得花钱啊。。。是啊,当然是要花钱啊,不然原创的人员吃什么?人家也是人,要吃饭,家里也有小朋友要养啊。我看了小朋友几眼,一身名牌,家底不薄,感觉实在很无语。
儿子决定买下喜羊羊漫画。一路上拿着书,跟我说个没完里面的情节。真心希望明年能继续看到喜羊羊动画电影。