大户型路由器
第一次听到这么个说法,感觉很新奇。于是进一步了解了详情。新闻链接请点击这里。
所谓大户型路由器就是信号超级强,以至于隔着几层楼都能有极好的信号。周老板兴致勃勃地说:在我家三楼别墅都能收到信号哟!
差点笑喷!大哥,路由器信号加强了,笔记本、手机等终端的信号怎么解决啊?路由器怎么收三层楼上各类终端wifi信号啊?难不成将笔记本或者手机也改成大户型笔记本、大户型手机?
不是周老板忽悠大家,就是有钱任性被人给忽悠了。
学海无涯
第一次听到这么个说法,感觉很新奇。于是进一步了解了详情。新闻链接请点击这里。
所谓大户型路由器就是信号超级强,以至于隔着几层楼都能有极好的信号。周老板兴致勃勃地说:在我家三楼别墅都能收到信号哟!
差点笑喷!大哥,路由器信号加强了,笔记本、手机等终端的信号怎么解决啊?路由器怎么收三层楼上各类终端wifi信号啊?难不成将笔记本或者手机也改成大户型笔记本、大户型手机?
不是周老板忽悠大家,就是有钱任性被人给忽悠了。
前段时间完成了miniWebPhone V1版本的开发,基于Chrome浏览器,采用了webRTC技术。在开发过程中,发现其实webRTC技术使用起来还是不太方便,有很多让人感觉很困扰的地方。基本上只有VoIP领域专家才能明白诸多操作以及参数的意义,即便是这样,仍然需要根据Chrome的输出信息来了解Chrome中webRTC的各项细节。
有几种方法可以了解webRTC过程中的细节信息。
这个方法是最简单的。在Chrome地址栏中输入上述命令,即可了解webRTC的过程。不过这种方法输出的信息非常粗略。如果您对webRTC很熟悉,那么可以从中了解一些有用的信息。如果您对webRTC不熟悉,那TA的信息您肯定看不明白。
这种方法我经常使用,而且推荐在linux环境(例如Debian)中使用。实际上,我不知道windows系统下如何看Chrome的日志。Chrome的日志很详细,基本上会输出每个步骤详细的信息。
在linux终端窗口用以下命令启动Chrome即可:
google-chrome --enable-logging=stderr --log-level=4 --vmodule=*libjingle/*=3,*=0
日志可以帮助我们了解大部分webRTC的细节,但是webRTC某些实现仍然是有问题或者说让人困扰的(例如对ICE的处理主、被叫流程不一致,错误处理没有输出日志等),此时直接看代码就是比较好的解决方法。完全、彻底地阅读Chrome是个不可能完成的任务,只能结合Chrome日志去追踪相应的代码。
这次是Google发现的一个漏洞,而且又是一个很严重的漏洞。现在暂时还没有补丁解决,但是可以关闭apache的SSLv3来屏蔽这个漏洞。修改方法如下(Debian7.x环境):
修改/etc/apache2/mods-enabled/ssl.conf文件, 找到SSLProtocol所在行,去掉SSLv3即可
SSLProtocol all -SSLv2 -SSLv3
最后当然需要重新启动apache。
最近安装和试用了一些软件(例如qq输入法),卸载之后在【开始】菜单中留下了一些垃圾文件夹,看着很不爽。于是打算删之。一试之下才发现与XP系统有很大差异。【开始】菜单实际上分布在两个不同的地方:系统【开始】目录以及用户自己的【开始】目录。
比如我的用户名是yxh,那么如果需要整理开始菜单栏,则可能需要修改以下两个目录:
C:\ProgramData\Microsoft\Windows\Start Menu
C:\Users\yxh\AppData\Roaming\Microsoft\Windows\Start Menu
这两天什么事都没做,就顾着看这几本书。的确是好书,印象中已经有很多年没有看过小说了,三体的确是很吸引人的科幻小说,是我非常喜欢的风格。
看完之后感觉还是有破绽:三体在发现人类文明后,为什么不直接向宇宙公布地球的位置坐标呢?非得大老远地跑过来灭掉地球?向宇宙发送地球坐标对三体文明而言,应该是非常简单的事,这点科技甚至连地球文明都能做到。
2014-10-23 updated: 嗯, 逻辑没有破绽. 三体星人处在悲惨的轮回中, 迫切希望跳出这个轮回, 因此当发现地球文明时, 想到的是占有而不是摧毁, 目的是拯救三体自己的文明.
平时工作时除了笔记本电脑,还有就是旁边放ipad mini辅助。ipad mini有个很大的问题,wifi信号实在太弱了!同样一个桌面,笔记本、手机都可以收到无线信号,可是ipad mini就是不行,常常断网,十分烦恼。
于是在网络上搜了一下,结合几位网文的建议,在windows7系统下启动虚拟无线网卡供ipad mini上网。注意,网络上其他一些文章建立在计算机有两块物理网卡的情况下,而我的电脑里只有一个可以work的无线网卡,因此需要采用虚拟无线网卡方式。
以下命令都必须以管理员身份运行。
创建虚拟网卡,并设置ssid和访问密码:
netsh wlan set hostednetwork mode=allow ssid=think-yxh key=123456
启动虚拟无线网卡:
netsh wlan start hostednetwork
然后在网络管理中,选择物理网卡,修改“共享”属性,允许其他网络设备访问,并选择上述创建的虚拟网卡即可。
下面是一些常用的命令用于修改虚拟网卡的属性:
停止网卡: netsh wlan stop hostednetwork 修改访问密码: netsh wlan set hostednetwork key=1234 修改SSID: netsh wlan set hostednetwork ssid=work2 删除虚拟网卡:netsh wlan set hostednetwork mode= 重新开启虚拟网卡: netsh wlan set hostednetwork mode=allow
电脑重启后,虚拟网卡没有运行,需要手工启动,有些不方便。可以创建任务,让电脑在启动时或者用户登录时重新启动虚拟网卡即可。
点击菜单“启动 – 所有程序 – 附件 – 系统工具”,运行“任务计划程序”。创建一个基本任务即可。需要注意:
(1)只需要运行命令:netsh wlan start hostednetwork
(2)必须设置任务“使用最高权限运行”。
在Ubuntu中使用mercurial命令行提交修改(hg commit)时,出现上述错误提示。出问题的原因大约是当前linux用户与mercurial中的用户不一致。修改方式比较简单:
修改本地库.hg/hgrc文件,根据实际用户信息加入以下配置即可:
[ui] username=yxh <yxh@myvoipapp.com> editor=vim
上述示例中,同时指定默认的编辑器采用vim。
subversion是个很不错的集中式版本管理工具,我们一直在使用。可是缺乏分支功能的确也感觉十分不方便,尤其是我们的版本区分LTS、Stable以及Dev等各种情况时尤其如此。
Git据说是个很不错的分布式管理工具,不过感觉和svn差别太大,十分不适应。因此选择了mercurial,各项操作类似于svn,同时也具备brach等分布式版本管理的特点。
在mercurial中使用branch开发非常方便,下面是几条简单的命令:
$hg branch mss_lts <--创建mss_lts分支 $hg commit $hg push --new-branch <-- 提交新branch到库中 $hg branches <-- 查看分支 $hg update default <-- 切换回主分支 $hg merge mss_lts <--将mss_lts分支的修改merge回主分支
采用SIP-INFO消息来传递DTMF信号,似乎只是Cisco的定义,没有一个成文的标准,但是目前主流的SIP厂家基本都遵循了相同定义,主要采用‘Signal’参数传递DTMF值:
Signal=1
Duration=160
其中,Signal与DTMF信号对应如下:
DTMF Signal ------------------------- 0--9 0--9 * 10 # 11 A--D 12--15 Flash 16
这种映射关系与RFC2833规范一致。但实际上,SIP-INFO既然是文本消息,其实没必要进行转译。例如,传递‘*’信号时,目前的处理是:
Signal=10
Duration=160
这样的定义非常不直观,完全可以直接传递,如下:
Signal=*
Duration=160
SIP-INFO这样传递显得非常直观。RFC2833二进制协议,只能进行定义转换,但是SIP本身是文本协议,足以进行文本性描述。可惜当初不知道为什么非要按照2833方式进行定义,也许这就是为什么这种方式始终没有成为正式规范的原因。
基本上与mysql数据库是完全兼容的,各项命令以及库的名字都与mysql相同。当然目前还没有深度应用,不知道在库、api等方面是否完全兼容。
启动数据库:
service mysql start
修改root用户密码:
mysqladmin -u root password "xxxx"
将数据库加入自动启动列表:
chkconfig --add mysql <-- Redhat/CentOS/openSUSe 或者 update-rc.d mysql defaults <-- Debian/Ubuntu
访问数据库:
mysql -u root -p