Month: July 2009

Ubuntu 9.04下安装Firefox 3.5正式版(Release)

让我们翘首企盼的firefox 3.5正式版(Release)于6月30日正式推出,但是Ubuntu社区却迟迟没有更新,至今已经有半月,官方源仍然毫无动静,难道是因为bug太多,要等到firefox 3.5.1再进行更新?不得而知了。 看来暂时只有自己动手,丰衣足食了。对于firefox的安装我不推荐使用非官方源,而是从Mozilla下载更新,3.5与以前的版本并存,这样当Ubuntu官方源更新的时候,可以顺利的更新到最新的官方firefox版本。 firefox 3.5的安装比较简单,从mozilla下载回来的文件名字为firefox-3.5.tar.bz2,遵循FHS(Filesystem Hierarchy Standard)的指导意见,firefox最好安装到/opt目录下面,用下面的命令直接把bz2包解压到/opt目录下就可以了。 tar jxvf firefox-3.5.tar.bz2 -C /opt 这样就算安装完成了,命令行运行/opt/firefox/firefox或者建一个桌面快捷方式都可以,记得一定要运行/opt/firefox目录下的firefox,而不是firefox-bin或run-mozilla.sh。 这样两个版本的firefox使用同一套profile,可以和平共处,至于暂时不兼容的插件(Extensions)hack一下吧。

KWinUI Sample:圆形滑动条(round slider)

这是早先发表于cppblog.com的一篇文章,现在稍作整理,迁移到此处。原文在此。 此sample主要是展示一个圆形的滑动条(Slider)组件,可以做播放器的音量按钮等此类的东西,还算比较酷。使用到的KRoundSlider类已经包含在KWinUI源代码中。

KWinUI sample:工作线程(work thread)中的UI窗口

在一个多线程应用程序中,进程创建的第一个线程我们称之为主线程(main thread),而从主线程中通过系统调用派生的其他线程称之为工作线程(work thread)。虽然习惯上这么称呼,而在实际上这两种线程并没有本质的差别,他们的能力是完全一样的,唯一的区别就在于派生的先后顺序而已。

VirtualBox虚拟硬盘VDI扩展容量(resize/expand capacity)

虽然VirtualBox支持虚拟硬盘的动态扩展,也就是VDI文件的大小随着guest使用的容量而增大,但是动态扩展的上限就是你最初指定的虚拟硬盘的大小值。也许是因为心理的原因,这个值你指定的过小了,你使用了一段时间才会发现这个问题。我就是这样:(。但是很不幸,现在VirtualBox还没有提供改变虚拟硬盘大小上限的功能。其实安装guest时完全可以指定一个很大的值,毕竟它不会占用多余的硬盘空间,仅仅占用guest真正利用到的空间而已。但是问题已经出现了,重新来过显然太过麻烦了,办法还是有的。

条件跳转指令Jcc(Jump condition code)

关于条件跳转指令,特别是用于有符号数比较的Jcc指令,网上的文章多有讹误,这次彻底的厘清一下,以备忘。 在介绍条件跳转指令之前,介绍一下EFLAGS寄存器中的状态标志(Status Flag)是有必要的,Jcc中的cc(condition code)即表示需要测试的状态标志或状态标志组合。EFLAGS寄存器的低16位在8086时代叫做FLAGS寄存器,又称作程序状态字PSW(Program Status Word)。