显示标签为“linux”的博文。显示所有博文
显示标签为“linux”的博文。显示所有博文

2009年5月13日星期三

[转]用Prism剥离WebQQ,超越QQ for linux!

Mozilla Prism,Mozilla的推出的新玩意,在前几天介绍过这个软件的用途。说明介绍请阅读:Mozilla Prism v1.0发布,感觉到QQ for Linux的功能还不如WebQQ,那还不如用Mozilla Prism剥离一个出来比较好用。

说明:Mozilla Prism Firefox插件版在3.0.10上无法使用。
Mozilla Prism下载地址:[/url]http://prism.mozilla.com/started[/url]

Mozilla Prism的使用很简单,启动prism,出现如下界面:

URL:填写你将要分离的web地址(只要这一栏为没有填错就行了)
Name:随意填写。

一个独立的web程序就剥离出来了,脱离了firefox本身,现在就算firefox崩溃了,prism依然继续运行。


登录webqq后的界面,看起来完全是个独立程序,qq for linux真的可以下岗了!


prism看上去光秃秃的,唯一的设置按钮在右下角,可以设定字体颜色大小、代理地址、打印、甚至还有扩展插件。


通过Prism剥离出来的twitter,相信还有更好玩的一些web可以通过prism剥离出来应用。


转自:http://www.linuxhobby.com/article.asp?id=336

2009年5月12日星期二

推荐两款主题

最近一直没怎么上Gnome-Look。今天有空上去转转,发现了两款很符合我口味的淡系的主题。

redhumanLight

预览图:

redhuman



Light

都是很耐看的主题,很不错!

2009年5月11日星期一

技巧:Linux I/O重定向的一些小技巧

Linux I/O 重定向虽然很简单,但在脚本编写、系统管理时却要常常打交道,搞清其中使用技巧非常有用。

首先说一下什么是I/O重定向,所谓I/O重定向简单来说就是一个过程,这个过程捕捉一个文件,或者命令,程序,脚本,甚至脚本中的代码块(code block)的输出,然后把捕捉到的输出,作为输入发送给另外一个文件,命令,程序,或者脚本。

如 果谈到I/O重定向,就涉及到文件标识符(File Descriptor)的概念, 在Linux系统中,系统为每一个打开的文件指定一个文件标识符以便系统对文件进行跟踪,这里有些和C语言编程里的文件句柄相似,文件标识符是一个数字, 不同数字代表不同的含义,默认情况下,系统占用了3个,分别是0标准输入(stdin),1标准输出(stdout), 2标准错误(stderr), 另外3-9是保留的标识符,可以把这些标识符指定成标准输入,输出或者错误作为临时连接。通常这样可以解决很多复杂的重定向请求。

标准输入通常指键盘的输入
标准输出通常指显示器的输出
标准错误通常也是定向到显示器

请看以下例子,来描述一下他们的关系

#ls /dev

这个命令列出/dev目录下的所有文件,在屏幕上输出结果。

这里 /dev 就是作为命令ls的标准输入(从键盘输入),而打印在屏幕的结果就是标准输出(/dev目录中的内容)

还是回到标题,重定向就是把标准的输入或者输出更改成其他的方式,请参看如下例子
或者等同于

#ls /dev 1>filename                                  #注意:"1"和">"中间没有空格

以上命令会把命令的标准输出重新定向到一个文件filename,而不是显示到屏幕上,如果不指明文件标识符,系统默认的就是1, 因此1可以省略

如果把上面例子重的">"改成">>"则表示把输出追加到filename文件的末尾,如果文件不存在则创建它。如下

#ls /dev >>filename

也可以把标准错误重新定向到文件

#ls -qw  /dev  2>filename

显然 -qw是一个错误参数,通常会在显示器上报告一个错误信息,但由于把2标准错误(stderr)重新定向到了文件filename,因此显示器没有错误信息,而信息写到了文件里面

以下命令是把标准输出和错误都定向到文件

#ls /dev &>filename

"&"在这里代表标准输出和标准错误,这里无论是正常输出还是错误信息都写到filename中了。

重新定义标准输入,输出,和错误的文件标识符

重新定义文件标识符可以用i>&j命令,表示把文件标识符i重新定向到j,你可以把"&"理解为"取地址"

请看以下例子

#exec 5>&1

表示把文件标识符5定向到标准输出,这个命令通常用来临时保存标准输入。

同样标准输入也是可以重新定向的,请参考下面例子

# grep search-word < filename或者grep word="" 0="">

一般来说grep命令在给定文件中搜索字符串,以上命令把文件filename作为grep命令的标准输入,而不是从键盘输入。

前面曾经提到,系统为每一个打开的文件指定一个文件标识符以便系统对文件进行跟踪,那么默认的文件标识符是什么呢?答案是0,也就是标准输入,或者可以说从键盘输入。当然这个文件标识符也可以自己指定,请参考下面例子

#echo 123456789 >filename   把字符串写到文件filename中
#exec 3<>filename 把文件filename打开,并指定文件标识符为3
#read -n 4 <&3 从文件中读4个字符,句柄已经指到第四个字符末尾 #echo -n . >&3 在第5个字符处写一个点,覆盖第5个字符,-n表示不换行
#exec 3>&- 关闭文件标识符3

现在cat filename文件的结果就成了1234.6789

命令j<>filename表示把文件打开,并指明文件标识符为j
"&-"表示关闭文件标识符

有关关闭文件标识符的操作请参考下面

n<&- 关闭输入文件标识符n 0<&-或<&- 关闭标准输入stdin n>&- 关闭输出文件标识符n
1>&-或>&-关闭标准输出stdout

另外还有一些其他命令,如下参考

2. :> filename 或者 > filename

表示把文件filename设置成空,也就是清空文件内容,如果文件不存在,则创建一个空文件,(等同于touch命令) :表示一个空输出,两个命令的唯一区别就是>filename不是在所有shell都可以正常工作的。

2009年5月8日星期五

想发起一个开源项目,集思广益下

一直想发起一个开源项目,最近突然有了一个想法,主要是受到:https://wiki.ubuntu.com/Artwork/Incoming/Jaunty/SimpleFlatWindow的启发。想法是这个软件主要用于Gnome环境,简单的说就是:把所有用GTK编写界面的程序的菜单栏全部移动到窗口上。

“将菜单栏放到窗口上比起Mac的放到任务栏上更美观,而且这样可以极大的利用屏幕的空间,充分利用窗口的空间,这种方法也类似于一些国产的软件——遨游”

但是这样也存在一个问题:“菜单项过多会影响窗口栏上的点击范围”。

至于程序的可行性,主要要完成的有两个方面,一个是新的窗口管理器,另一个是gtk程序去掉菜单栏(这个Gnome下已经有全局菜单Global Menu Bar项目实现了这个功能,可以参考它们的源码),所以主要是窗口管理器,可以hack现有的Metacity或者是再重写一个。

现在想集思广益下!谁有什么更好的想法?

预计能在7月中旬完成可行性分析,再决定是否继续!

2009年5月6日星期三

[转]ldconfig命令的用途

动态链接库管理命令

为了让动态链接库为系统所共享,还需运行动态链接库的管理命令--ldconfig.此执行程序存放在/sbin目录下.

ldconfig命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文 件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so) 所需的连接和缓存文件.缓存文件默认为/etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表.

ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令.

ldconfig命令行用法如下:

ldconfig [-v|--verbose] [-n] [-N] [-X] [-f CONF] [-C CACHE] [-r ROOT] [-l] [-p|--print-cache] [-c FORMAT] [--format=FORMAT] [-V] [-?|--help|--usage] path...

ldconfig可用的选项说明如下:

(1) -v或--verbose : 用此选项时,ldconfig将显示正在扫描的目录及搜索到的动态链接库,还有它所创建的连接的名字.

(2) -n : 用此选项时,ldconfig仅扫描命令行指定的目录,不扫描默认目录(/lib,/usr/lib),也不扫描配置文件/etc/ld.so.conf所列的目录.

(3) -N : 此选项指示ldconfig不重建缓存文件(/etc/ld.so.cache).若未用-X选项,ldconfig照常更新文件的连接.

(4) -X : 此选项指示ldconfig不更新文件的连接.若未用-N选项,则缓存文件正常更新.

(5) -f CONF : 此选项指定动态链接库的配置文件为CONF,系统默认为/etc/ld.so.conf.

(6) -C CACHE : 此选项指定生成的缓存文件为CACHE,系统默认的是/etc/ld.so.cache,此文件存放已排好序的可共享的动态链接库的列表.

(7) -r ROOT : 此选项改变应用程序的根目录为ROOT(是调用chroot函数实现的).选择此项时,系统默认的配置文件/etc/ld.so.conf,实际对应的为ROOT/etc/ld.so.conf.如用-r /usr/zzz时,打开配置文件/etc/ld.so.conf时,实际打开的是/usr/zzz/etc/ld.so.conf文件.用此选项,可以大大增加动态链接库管理的灵活性.

(8) -l : 通常情况下,ldconfig搜索动态链接库时将自动建立动态链接库的连接.选择此项时,将进入专家模式,需要手工设置连接.一般用户不用此项.

(9) -p或--print-cache : 此选项指示ldconfig打印出当前缓存文件所保存的所有共享库的名字.

(10) -c FORMAT 或 --format=FORMAT : 此选项用于指定缓存文件所使用的格式,共有三种:old(老格式),new(新格式)和compat(兼容格式,此为默认格式).

(11) -V : 此选项打印出ldconfig的版本信息,而后退出.

(12) -? 或 --help 或 --usage : 这三个选项作用相同,都是让ldconfig打印出其帮助信息,而后退出.

举三个例子:

例1:

# ldconfig -p
793 libs found in cache `/etc/ld.so.cache'
libzvt.so.2 (libc6) =>; /usr/lib/libzvt.so.2
libzvt.so (libc6) =>; /usr/lib/libzvt.so
libz.so.1.1.3 (libc6) =>; /usr/lib/libz.so.1.1.3
libz.so.1 (libc6) =>; /lib/libz.so.1
......
#

注: 有时候用户想知道系统中有哪些动态链接库,或者想知道系统中有没有某个动态链接库,这时,可用-p选项让ldconfig输出缓存文件中的动态链接库列 表,从而查询得到.例子中,ldconfig命令的输出结果第1行表明在缓存文件/etc/ld.so.cache中找到793个共享库,第2行开始便是 一系列共享库的名字及其全名(绝对路径).因为实际输出结果太多,为节省篇幅,以......表示省略的部分.


例2:

# ldconfig -v
/lib:
liby.so.1 ->; liby.so.1
libnss_wins.so ->; libnss_wins.so
......
/usr/lib:
libjscript.so.2 ->; libjscript.so.2.0.0
libkspell.so.2 ->; libkspell.so.2.0.0
......
/usr/X11R6/lib:
libmej-0.8.10.so ->; libmej-0.8.10.so
libXaw3d.so.7 ->; libXaw3d.so.7.0
......
#

注: ldconfig命令在运行正常的情况下,默认不输出什么东西.本例中用了-v选项,以使ldconfig在运行时输出正在扫描的目录及搜索到的共享库, 用户可以清楚地看到运行的结果.执行结束后,ldconfig将刷新缓存文件/etc/ld.so.cache.

例3:

# ldconfig /usr/zhsoft/lib

2009年5月3日星期日

认识下linux下程序的国际化(C语言实例)

要让程序能够根据操作系统的环境的不同而显示不同的UI界面,需要将程序的本地化;如果手工将源程序中的字符串替换为与环境相符的字符来实现本地化的方法 不具有通用性,因为针对每一种操作系统环境都要重复以上操作工作量很大,一般的方法是先将程序国际化,然后再进行本地化;linux上的这个过程主要用到 了两个工具:xgettext和msgfmt;
not: xgettext是国际化的工具,提取出源文件中的字符串,生成*.po的文件,而msgfmt是本地化的工具,首先是人工的翻译*.po文件中的字符串,然后使用msgfmt生成*.mo文件,再编译后,程序启动时会扫描系统环境提取mo文件中的字符串代替原来的英文。
测试实例(helloworld):
#include ;
#include ;
#include ; //包含了两个头文件

#define _(STRING) gettext(STRING) //定义了_(STRING)宏,只是为了简化
#define PACKAGE "test_locale" //定义了软件包的名字,最后生成的.mo文件名应该命名为这个
#define LOCALEDIR "./po" //定义了mo文件将要存放的位置

int main(int argv,int*argc[])
{
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR); //bind软件包与mo文件存放的位置
textdomain (PACKAGE);

printf(_("hello,world!\n")); //将_(STRING)宏应用到了字符串上
}
将程序这样改写以后,就叫国际化了,简单吧?但不是说这样程序就能根据系统环境显示相应的界面了,我们还需要将它本地化;我们将程序保存为test_locale.c;
利用xgettext生成test_locale.po文件
xgettext -k_ -o test_locale.po test_locale.c
-k 指定翻译字符以何种宏定义括起,我们在前面使用的是 _( ) 所以用 -k_
编辑test_locale.po文件成:

# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR , YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-05-03 23:25+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" //注意修改charset的值
"Content-Transfer-Encoding: 8bit\n"

#: hello_I18N.c:15
#, c-format
msgid "hello,world!\n"
msgstr "你好,世界!\n" //翻译
接下来再利用msgfmt生成test_locale.mo文件
msgfmt -o test_locale.mo test_locale.po
将test_locale.mo文件放在之前设定的LOCALEDIR/xxxx/yyyyy目录下,其中的xxxx和yyyy稍后就明白了;
现在再来看看程序的运行结果
当系统环境 LANG=en_US的时候,结果如下:
hello,world!
当系统环境 LANG=zh_CN.UTF-8的时候,结果如下:
你好,世界!
就是说,在程序运行时,会根据LANG自动到LOCALEDIR/zh_CN/LC_MESSAGES寻找mo文件,从而正确显示;所以上文中的xxxx和yyyy就是zh_CN和LC_MESSAGES。

[转]国际化(I18N)、本地化(L10N)、多语言化(M17N)和全球化(G11N)的概念

这里所提到的国际化(I18N)、本地化(L10N)、多语言化(M17N)和全球化(G11N)都是软件开发和测试的相关术语。理解这几个概念会 对于开源软件有更深刻的认识,因为对于开源软件,大到开源的Linux操作系统,小到GNU的小软件,本地化和国际化都做得不错。具一个最简单的例子:Wordpress开源博客程序,只要您愿意,就可以对照官方提供的POT英文语言包文件制作不同国家的要地化语言包mo文件。(这个拉下来的几篇文章我们会提到,这里打一个埋伏)。对于闭源的Windows操作系统来讲,随心所欲地本地化简直就是天方夜谭。

国际化(I18N)

在英文中, 国际化(Internationalization)被缩写为I18N,,即只 取首尾两个字母,中间字母为18个。

通俗地讲,”国际化”是指把原来为英文设计的计算机系统或应用软件改写为同时支持多种语言和文化习俗的过程。即在软件创作的初期,一般的编程语言, 编译,开发都是只支持英文的,为了适应更广的语言和文化习俗,软件有必要在设计结构和机制上支持多语言的扩展特性, 这一过程称为国际化。

国际化仅仅是在软件设计上提供了使用多语 言的可能。是使产品或软件具有不同国际市场的普遍适应性,从而无需重新设计就可适应多种语言。

真正的国际化要在软件设计和文档开发过程中,使产品或软件的功能和代码设计能处理多种语言和文化习俗,具有良好的本地化能力。

本地化(L10N)

是“Localization”的缩写,中间的 10 代表在首字母“L”和尾字母“N”之间省略了 10 个字母。

简单讲,本地化(L10N)是将操作系统或软件针对特定国际语言和文化进行加工,使之符合特定区域市场的过程。即把计算机系统或者应用软件转变为使 用并兼容某种特定语言的过程.比如,把原来为英文设计软件制作为支持中文的软件就是本地化的一种.它主要包括翻译文本信息,界面信息,重新设计图标等等.

真正的本地化要考虑目标区域市场的语言、文化、习俗、特征和标准。通常包括改变软件的书写系统(输入法)、键盘使用、字体、日期、时间和货币格式等。

多语言化(M17N)

M17N为英文Multilingualization(多语言化)的缩写。

在国际化部分中只处理语言的部分叫”多语言化”.比方说, 一个 “多语言化”的软件可以同时管理诸如英语,法语,中日韩文,阿拉伯语等.

全球化(G11N)

全球化(G11N)是“Globalization”的缩写。

这个概念我们了解一下就好了。全球化简单来讲就是本地化和国际化的合称。

全球化(G11N)是是使产品或软件进入全球市场而进行的有关的商务活动。包括正确的国际化设计,本地化集成,以及在全球市场进行的市场推广、销售 和支持的全部过程。企业通过 全球化实现其全球化发展战略,实现全球化业务,扩大市场规模,降低软件成本,提升综合竞争力,展现企业发展实力,增强用户信心,树立市场形象。

2009年4月30日星期四

编译安装Vala Toys for GEdit

今天终于编译安装成功了Vala Toys for GEdit 。它是一个不错的vala语言的gedit插件。
按照:http://code.google.com/p/vtg/wiki/Compile的步骤编译安装。
不过需要注意的是它的依赖(我选的svn里的版本,vala语言的版本也是0.7.1):
需要安装的东西一般是:

sudo apt-get install libreadline5-dev gedit-dev

就可以了。如果不装全会出现错误:

gtksourcecompletion需要编译安装,这个容易./configure, make, make install就可以了。

就下来正式安装就是:

./autogen.sh --prefix=/home/zmm/.gnome2/gedit/plugins --datadir=/home/
zmm/.gnome2/gedit/plugins

make

make install

即可,最后完成了安装。不过如何启用这个插件呢?

很简单,将~/.gnome2/gedit/plugins/lib/gedit-2/plugins下的东西移到~/.gnome2/gedit/plugins/即可。在重新打开Gedit在首选项/插件中启用vala toy即可。

附录:目前插件还在开发之中,发现new project选项不是很好用。期待以后改正,目前可以用
/home/zmm/.gnome2/gedit/plugins/bin目录下的vala-gen-project生成工程打开。vsc-shell的功能还在琢磨中...

2009年4月29日星期三

编译vala过程

今天编译vala了,一直想这么干,今天终于实现了。当然首先下载vala的源码。然后安装flex和bison两个东西。使用典型的apt安装

sudo apt-get install flex bison

然后解压源码之后输入
./configure

make

sudo make install
本人使用./configure时加了参数--perfix=/usr/local所以导致了一个安装完后运行时的一个错误:
valac: error while loading shared libraries: libvala.so.0: cannot open shared object file: No such file or directory
应该是共享库的路径没有/usr/local/lib。
解决方法很简单就是修改/etc/ld.so.conf加入/usr/local/lib一行,然后运行sudo ldconfig
之后就可以了。

[Shell]set、env、export的区别

set 显示当前shell的变量,包括当前用户的变量
env 显示当前用户的变量
export 显示当前导出成用户变量的shell变量

每个shell有自己特有的变量(set)显示的变量,这个和用户变量是不同的,当前用户变量和你用什么shell无关,不管你用什么shell都在,比 如HOME,SHELL等这些变量,但shell自己的变量不同shell是不同的,比如BASH_ARGC, BASH等,这些变量只有set才会显示,是bash特有的,export不加参数的时候,显示哪些变量被导出成了用户变量,因为一个shell自己的变 量可以通过export “导出”变成一个用户变量。

2009年4月26日星期日

ubuntu9.04上体验gnome+kde core

今天早上终于升级到9.04了,看到了新的通知系统。很兴奋!的确很不错,但是除了播放音乐的时候出现的频率不高,对整个桌面的美感提升不高。
无奈gnome2.26目前还不够漂亮,但是一直是用惯了gnome,期待gnome3.0的同时发现kde4.2的稳定性以及美化程度都已经很高了。所以想体验下,为了不全部安装kde所以只选择安装了其核心部分。
输入如下命令:sudo apt-get install kde0-core
然后在启动项里面添加命令:plasma
然后重启之后就可以见到gnome与kde4.2共存的界面,可以的是kde-panel上的菜单中没有关机按钮,估计是因为没有权限吧!
不过无伤大雅!

2009年4月18日星期六

glibc 2.10的新特性

GNU C 函数库(GNU C Library,简称glibc)是开源的C编译程序,最新版是2.9版。glibc的维护者Ulrich Dreeper的博客上透露了2.10版的主要特性
POSIX 2008,C++兼容,支持C++ 201x,DNS NSS改进,libcrypt中使用网络安全服务包(Network Security Services),printf hooks,更好的malloc可扩展性,Automatic使用优化函数等等。

2009年4月16日星期四

[转]Linux 漫画杂志两种

略作简要说明,一并介绍给喜欢 Linux,同时也喜欢漫画的朋友。

Ubunchu!

Ubunchu

Ubunchu! 是一本日本漫画杂志,其中讲述在学校电脑俱乐部中的三个同学使用 Ubuntu 的故事。Ubunchu! 的作者为 Hiroshi Seo,目前已由 ubuntu-jp LoCo 的两名会员翻译成英文,你可以获取它的 PDF 版本。

Hackett and Bankwell

Hackett and Bankwell

很有教育性的 Linux 漫画,主角为 Woody Hackett,一只看上去有点猥琐的企鹅,引导你如何进入 GNU/Linux 世界。目前已发行了两集,同样有 PDF 版本可以下载。

以下那张漫画比较有意思:大意是男的装完ubuntu之后想玩他的XE游戏,说本来不行,但是装了Wine之后就可以了!

2009年4月15日星期三

GNOME 2.26 Release Notes

Figure 1GNOME 2.26





GTK+ 2.16变化最明显:

GTK+ 2.16 is the latest release of the GTK+ toolkit, which is at the heart of GNOME. GTK+ 2.16 includes a couple of new features for developers, as well as extensive bug fixing and housecleaning for the upcoming GTK+ 3.0.

GtkEntry widgets can now display icons at the front or back of the entry widget (depending on your locale's text direction). These icons are optionally prelightable and clickable.

Icons in GtkEntry(框内现在可以放入Icon了)

GtkEntry widgets can now also be used to display a progress bar.

GtkEntry with a progress bar(框支持了以下进度条的效果

A new interface, GtkActivatable, has been added for widgets that can be connected to a GtkAction.




2009年4月11日星期六

[转]Crunchpad Release–almost close

在一月份的时候介绍过Techcrunch出品的手持设备Crunchpad么?当时Techcrunchi推出了B原型机,可以说那时候的Crunchpad是Beta版,现在基本上是Release版了,话说硬件也要和软件一样分Alpha、Beta和Release了。

来欣赏一下Crunchpad的发展史吧:


现 在的B5原型机差不多接近于最终产品了,比起一月份介绍的B原型机,B5都有哪些变化和定型的地方呢,可以从当初的介绍中了解到Crunchpad会采用 VIA的NANO CPU,当初我就怀疑VIA的NANO成品率那么低,市面上并没有广泛见到该产品,这也可以从台湾本土的IT发烧友的一堆牢骚和埋怨中体会到。这不 Crunchpad不甩VIA了,改用Intel的Atom了(威盛啊,蜀黍当初就说啦,看吧,都让英总拿走了本属于你的市场啊),具体原因不清。B5原 型机也进行了彻底的客制化Ubuntu以及Webkit浏览器。Crunchpad成本可控制于250美元以下(包含包装),市场价基于各种经济因素如利 润等大约到300美元左右了,也就2000人民币左右,一部智能手机也就这个价格了,这个Crunchpad互联网手持设备不算贵。接下来欣赏B5原型机 美图吧:

查看 Crunchpad
查看整个相册

2009年3月19日星期四

当心: Ext4 可能造成数据丢失

Ext4无疑是08年文件系统界最出风头的文件系统,linux内核加入了对其的支持,标志着已经较为成熟可以投入使用了,凭借Ext3的广泛适用和直接从Ext3升级到Ext4的能力,Ext4的推广是不成问题了。

但是最近还是出现了一些问题,正在使用 Ext4 文件系统的同学可得当心了。据某些用户反映,它可能会造成你的数据丢失。国外一位 Kubuntu Jaunty 的用户称,使用 Ext4 文件系统使他丢失了大量的数据,相关描述可参见位于 launchpad 上的 bug 报告。

无独有偶,国内的 albert748 也遇到了类似的问题。他描述道,X 无缘无故死掉,断电重启后,发现 Firefox 的配置丢了很多。与上面那位国外用户一样,albert748 也使用 2.6.28 内核和 Ext4 文件系统。

今天,H-Online 刊登了一篇文章 Ext4 data loss; explanations and workarounds,其中对此进行了解释,并包含 Ext4 开发者 Ted Ts'o 提供的解决方案,有兴趣的同学可去看看。

2009年2月25日星期三

[转]Gtk+ 3.0 Theming API Summary

前些日子的Gtk+ 3.0 Theming API Hackfest已经结束了,结果已经出来了,在这里整理一下,很多令人激动的东西。
在GTK+3.0主题支持方面,将有如下变化:
默认支持RGBA:我在《体验最新的Murrine GTK+引擎(支持RGBA透明)》说过,支持RGBA可能要等到GTK+3。看样子预言的没错,开发者终于决定让GTK+支持RGBA了。2010的GNOME桌面将很有看头!
CSS支持:制作主题将不是什么麻烦的事情,会CSS即可,在GTK+3时,这将内置支持。其中默认引擎将支持基本CSS特性,另外将会有一个支持全特性的CSS引擎。
完全Cairo绘制:默认的GTK+主题引擎将完全使用Cairo来绘制。
主题动画支持:基于timeline和stylecontext,很期待!
大致上以上几点,一些技术细节就不表述了。
如果这些特性不跳票,光是从Theming API上来说,GTK+3还是很有看头的!

2009年2月19日星期四

Ubuntu最新通知机制欣赏

之前大家可能获悉,Ubuntu 9.04将引入全新的通知消息系统。

现在Ubuntu 9.04 Alpha5将进入特性冻结阶段,这个全新的“通知消息系统”到底怎么样了呢?请大家跟TX一块来看。

在升级到最新的Ubuntu 9.04以后,并安装了notify-osd相关组件以后,就可以使用这个全新的通知消息系统了(使用notify-send命令)。

看看它到底长什么样?

发现WIFI信号

notify-osd-01

WIFI信号丢失

notify-osd-02

多级通知,如果消息来的很多也不用担心显示不过来:调音量

notify-osd-03

调节屏幕亮度也会有显示

notify-osd-04

自定义消息:Ubuntu Tweak发布了。哈哈

notify-osd-05

顺便代LDCN向大家问好

notify-osd-06

基本上把这个消息通知显示演示了一下。可定制性相当高,而且非常美观。相信它的引入将大大提升Ubuntu的用户体验!

2009年2月15日星期日

Air and KDE 4.3.

大家都知道KDE 4默认的主题风格叫Oxygen,是包括了图标、窗口边框、图形控件在内的一套完整的主题。非常漂亮。

在KDE 4.2发布以后,开发者正积极地准备着KDE 4.3。KDE 4.3将引入另外一个全新主题:Air。

Air事实上是KDE 4.2就已经包括的桌面壁纸,然而在KDE 4.3中,它将成为像Oxygen一样的桌面主题。

目前开发者已经完成了Plasma的部分,草图如下:

kde-4-air-0

kde-4-air

是不是相当漂亮?

在没有Air的时候,我觉得Oxygen相当漂亮;在Air出来后,我又喜欢上了Air。看来KDE的美工真是不断进步啊。

不知大家认为如何?

来自:Air and KDE 4.3

转载请注明:转自Linux桌面中文网 - KDE 4.3 Air主题预览