标签 Windows 下的文章

为Ubuntu下的Firefox提速

部门的一套基础库刚刚移植到Linux上,为了测试该库,我将工作环境切换到了Ubuntu Linux下面。切换后居然发现Ubuntu下的Firefox访问网页巨慢无比,Firefox显示时明时暗,总是被挂起。同样的公司网络环境在Windows下使用Firefox访问互联网很顺畅,没有卡的现象。看来是时候给Ubuntu下的firefox提提速了。

Google了一下才发现反映类似现象的人为数不少啊,在Ubuntu中文论坛中得到了一些答案。有人建议关闭ipv6;还有人则建议install dnsmasq。不是很明白其中的理由,照做就是了。

首先关闭IPv6。打开一个终端,在终端下输入:"gksudo gedit /etc/modprobe.d/aliases";在文件中搜索到"alias net-pf-10 ipv6",注释掉其所在行,保存退出。再在终端下输入:"gksudo gedit /etc/modprobe.d/blacklist",在其中加上一行"blacklist ipv6 ",保存退出。最后重启系统使之生效。验证IPv6是否被关闭的方法:打开一个终端输入:"ip a | grep inet6",如果没有任何输出就说明 IPv6确实被关闭了。

其次,安装dnsmasq。在终端命令行下执行“sudo apt-get install dnsmasq”,安装完毕后,执行sudo gedit /etc/dnsmasq.conf,将“#resolv-file=”一行替换为"resolv-file=/etc/resolv.dnsmasq.conf"。然后执行“sudo cp /etc/resolv.conf /etc/resolv.dnsmasq.conf”,再编辑/etc/resolv.conf文件,保证在该文件中只保留"nameserver 127.0.0.1"一行即可,然后重启系统使dnsmasq生效。

果不其然,重启后的firefox恢复了和在Windows上一样的迅捷,不过遗憾的是由于修改了两处,不知道到底是上面哪种方法真正有效果的^_^。BTW,我的Ubuntu是7.10的,其自带的Firefox还是2.0.0.6版的,目前Firefox for Linux最新版已经是3.0.4了,这次顺便将firefox升级。使用apt-get居然没有3.0.4版的源,无法在线安装。更新源挺耗时的,还是直接到mozilla网站上下载吧。下载后的firefox是一个tar.bz2的包,这个如何安装呢?以前都是apt-get install的,还没有这么安装过,还好有Google。Ubuntu默认的firefox-2.0版安装在/usr/lib/firefox下,在/usr/bin下有firefox的一个符号链接。你通过命令行执行firefox或者点击桌面firefox图标启动firefox时实际上执行的都是/usr/lib/firefox/下的可执行文件,这样我就将下载的3.0.4的安装包通过tar -jxvf解压到本地目录,将/usr/lib/firefox备份,将解压后的3.0.4版本目录移到/usr/lib下,目录名仍然称作firefox,这样就可以顺滑过渡到3.0版了。现在你再启动firefox,查看“About”,就会看到版本已经升级到3.0.4了^_^。

上午发现同事的办公桌上摆着一款明晃晃的iPhone。这是我第一次如此近距离接触iPhone,第一印象就是"简洁",机身正面只有一个圆按钮,其余都是屏幕,黑色的机身透露着高贵。拿起来,挺沉,后盖应该是金属的,做工很精致。按下圆按钮,屏幕亮起,很清晰。屏幕上显示的菜单看起来与普通诺基亚手机的菜单分布没有太大区别。想滑动窗口看看还有多少菜单项,居然找不到箭头,经iPhone主人提示:用手指轻轻在屏幕上一划,屏幕就滚动到下一屏,太帅了。同事说iPhone就是游戏机,里面的实况足球游戏很好玩,我也打开游戏尝试了一吧。游戏在iPhone的屏幕左下角模拟显示了一个十字方向键,在右下角则模拟有A, B键。刚开始玩时还不适应,因为始终感觉手指上没有反馈的感觉,毕竟手指直接接触平直的屏幕完成控制挺难的,控制好也许更难。游戏特别流畅,难怪Android平台的founder Andy Rubin说iPhone与5年前一台PC的配置不相上下。iPhone在bestbuy网站最低卖价199美刀。不过需要和AT&T签署协议,核算下来与在国内买一个水货的成本不相上下了。Android平台目前虽未成熟,但发展势头也很快,不久的将来Android和iPhone之间势必有一场激烈的竞争。

都是病毒惹得祸

上周日下午,接到同事的一个寻求支持的电话,原来是部门以前给中国联通做的一个运行在PC服务器上的程序在每天凌晨出现'挂死'情况,导致程序运行中断,问题连续几天复现。程序是老程序,在不下十多个省运行,一直都很稳定。通过联通的人发过来的截图,很难定位问题所在,所以只能打车到了联通机房现场查看了。

还是那句话,维护别人的又是自己不熟悉的程序那真是痛苦的,好久都不在Windows上写程序、调程序了,API都需要现到网上查。由于程序一直在现网运行,即使到了现场也依然只能从外围来看,把配置信息和一些现网数据拿到自己的Windows环境下进行模拟测试,看是否能够重现问题,可无论如何模拟都不能重现问题。

问题出在源代码中一处调用DeleteFile的地方,在凌晨那个时刻,DeleteFile总返回失败。微软的帮助文档给出了DeleteFile失败的一些原因,比如文件是只读的、文件是受保护的系统文件或者用户没有删除这个文件的权限等等。我们重点检查了那个出问题的文件夹中是否有特殊文件,将Windows设置成显示所有文件,包括隐藏文件后,依然没有发现。由于是现网主机,不便过多操作。

程序有个缺点就是没有后台日志输出,也许当初开发这个程序的同事也许开发惯了GUI的程序,没有意识到这应该是一个服务器端程序,居然在出错的时候弹出对话框,试想这个24 x 7小时运行的程序谁会眼睛一直盯着它和它交互呢,呵呵。这也是在出错的时候导致挂起的直接原因。

但是导致DeleteFile失败的深层原因还需要继续查找。经过和联通工作人员商量,决定做一次升级,增加后台日志,以便查到'幕后真凶'。

像联通这种效率不高的公司,做一个小小的升级走的流程都要耽误几天。这不昨晚才把升级程序替上去。上午我们技术支持人员将后台日志发给了我,打开一看居然是一个叫'autorun.inf'的文件导致的删除失败,通过FormatMessage和GetLastError配合得到的原因是"拒绝访问",显然是这个文件的权限很高,即使用管理员权限也无法删除,甚至我们在屏幕上根本看不到这个文件的存在,只是通过Win32 API才能找到这个文件。这时我们的技术支持发来信息说:在网上查了一下,autorun.inf可能是病毒或者是木马;一句话点醒梦中人啊,我也在网上搜索了一下,的确这个autorun.inf是病毒的产物。这时我的同事又发过来一条信息说:联通人员确认过了他们的这台PC服务器居然一直在'裸奔',就是没有安装任何防毒软件。我晕!

对这些运营商我就不再做太多评价了,地球人都知道。

通过这次事件我们也可以看到:实际软件运行时产生的问题真是多种多样,防不胜防啊。其实不考虑其他原因,我们的软件本身如果做的更好些的话,也是可以避免上述问题的发生的,细节我就不说了。

如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言精进之路1 Go语言精进之路2 Go语言编程指南
商务合作请联系bigwhite.cn AT aliyun.com

欢迎使用邮件订阅我的博客

输入邮箱订阅本站,只要有新文章发布,就会第一时间发送邮件通知你哦!

这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats