Ubuntu Jaunty 9.04开始正式支持ext4文件系统,关于ext4,其优点应该早有听闻,对任何用户而言都具有难以拒绝的诱惑:对一般用户而言,有更好的磁盘性能,快速的预分配、删除,更可靠的日志,更迅速的磁盘检查(不会像ext3可能花几分钟来check,ext4经常是瞬间完成的)……更专业的描述可以看看IBM文库的这篇《Migrating to ext4》。 从Ubuntu 8.10升级到9.04,一定程度上是看上其对ext4的支持,不过如果为此重新格式化分区重装系统,对于使用积累较多的系统来说代价太高了点(PT现在用的系统是去年的8.04,后来升级8.10,再到现在的9.04……),不过根据《Migrating to ext4》的说法,从ext3到ext4的无损转换是可能的,而且并不耗时间,就如Kernel Wiki里面的Ext4 Howto提到转换所用的命令,其实也很简单: tune2fs -O extents,uninit_bg,dir_index /dev/DEVe2fsck -fD /dev/DEV 查了下tune2fs的man页,uninit_bg是支持快速check的特性,dir_index则是创建二叉树散列的目录查找,至于extents在man页没提到,Kernel Wiki里面说是ext4专有的特性,完成后用e2fsck check一次,这样就完成ext4的转换了,整个过程的耗时并不多。 不过这样转换出来的分区有点不完美的地方是,原本存放在分区内的文件结构还是ext3的结构,由ext4的机制透明兼容,以后存放的文件才是ext4的格式。本来影响不大的,不过相信会影响众多完美主义者的精神状态,所以很多人宁愿把文件全复制出来,格式化了分区再复回去。 IBM的文章内提到,因为ext4支持了在线的碎片整理,对于转换的ext4,使用e4defrag整理一遍,就是纯种的ext4了,不过到目前为止,e4defrag并未完全可用。不过相信不久的将来,转换到纯种ext4完全可以一气呵成的。 最近有谣言说/boot不能是ext4,不然grub引导不了。事实上Ubuntu 9.04已经完全支持ext4,不然此前怎么会有ext4系统的9.04 21秒引导系统的新闻?不过对于升级过来的9.04,安装在/boot/grub里面的程序还是旧版的,没有自动升级,因此可能出现引导问题,相信这也是谣言的出处,所以升级过来的同学要注意了。可以使用grub-install来重新安装一次grub的文件,就如《Upgrade Ubuntu 8.10 to Ubuntu 9.04 and ext3 to ext4 in 10 Minutes》那样。不过grub-install有点要注意,grub-install复制的文件是以/为起始位置的(特别是使用了--root-directory=DIR参数的),如果boot单独分区,同时在livecd里面单独挂载了出来,很可能新复制过去的文件会多了一层boot目录,变成新旧版的引导文件共存以致没法引导grub……(我也感觉我说得一塌糊涂了……总之boot独立分区的同学使用grub-install注意它究竟安装到什么地方去了,看看相应文件的修改时间)。 对于从ext3升级到ext4的系统,还有重要的一点就是fstab,完成上述的操作后,先运行blkid查看分区的新UUID,用编辑器打开/etc/fstab,替换转换了的分区的UUID,当然还有挂载类型改成ext4。
最近完成学校《操作系统》课程的试验报告,其中的题目是用程序实现银行家算法。什么是银行家算法,这里就不详提了,具体参看Wikipedia-zh。 Wikipedia的页面里面有整个银行家算法的伪代码,加起来只有12行,很清晰地表达出整个算法的思想,然而如果你到别的地方看看一些具体的银行家算法实现,往往会被吓一跳(可以看看百度百科的词条)。 银行家算法本来并不复杂,只是其运算涉及向量、集合,实现起来还是花要一点功夫。我使用C++来实现银行家算法,为了实现和伪代码描述尽可能接近,重载对象的运算符等,最后整个算法的实现和伪代码没太大差别,也就20行的样子。 伪代码 while (P != ∅) { found = FALSE; foreach (p ∈ P) { if (Mp − Cp ≤ A) { A = A + Cp ; P = P − {p}; found = TRUE; } } if (! found) return FAIL; } return OK; C++代码 1 2 3 4 5 6 [...]
Sun公司作为世界上顶天立地级的技术巨头之一,已经成立了将近三十年,随着不久前甲骨文(Oracle)的对其的收购,Sun很可能会逐渐淡出人们的视野,让我们从这一组图片来见证Sun成立以来起伏跌宕的历史时刻。 梦想的实现(1982) Sun,原是斯坦福大学网络部(Stanford University Network)的缩写,源自斯坦福大学电子工程和计算机科学系的博士生Andy Bechtolsheim(下图右二)的设想,和他一起创业的还有MBA以及电子工程师Vinod Khosla(左一)、后来加入的Vinod Khosla(右一),而Sun Microsystems作为一个公司,则是由开发过UnixBSD的Bill Joy(左二)在1982年一月以第一任CEO的身份成立。 这不是披萨盒(1982) 第一代Sun工作站产品极具魅力,它基于摩托罗拉68000CPU,有着1MB的内存和百万像素级的显示器。
2007年北京高考语文题目—— “细雨湿衣看不见,闲花落地听无声”是唐朝诗人刘长卿在《别严士元》中的诗句。 曾经有人这样理解这句诗:1 这是歌颂春天的美好意境。2 闲花,细雨表达了不为人知的寂寞。3 看不见听不见不等于无所作为,是一种恬淡的处世之道。4 这种意境已经不适合当今的世界......根据你的看法写一篇作文。字数800以上。 PT:估计金庸老师看了也想重新出山,古龙先生更含笑泉下! 盛夏,夜,深夜。 景山山巅。 山上有人,两个人一男一女。 这两个人就是当今武林名声最响的两位杀手,男的名秋细雨,女的叫叶闲花 ,江湖人称 “细雨闲花”
lrcShow-X是基于pyQt、dbus等技术的一个歌词显示工具,比起此前出现过audaciois、amarok等的歌词显示脚本或者插件,lrcShow-X可谓一颗新星,首先其目前为止已经集成了一个歌词显示器需要的所有功能(参考千千静听等成熟的应用),编辑歌词、Mp3内嵌歌词等一个不缺,甚至用到被Ubuntu Jaunty发扬光大的OSD来显示。 虽然说目前并未和哪个播放器合为一体(插件形式),但不是难事,lrcShow-X通过dbus接口支持了audacious、amarok、vlc、exaile、quodlibet、qmmp等播放器,已经有人做到和amarok界面内嵌。 lrcShow-X的优秀表现,很大程度上是其内置了主流的歌词服务器,PT实际使用中觉得sogou搜出来的歌词比较出色。 目前使用lrcShow-X的使用方法略显简陋,需要启动播放器后自己在命令行内运行./lrcShow-X.py,但一点也遮蔽不了其强大的光芒。 ps: 在Ubuntu下使用lrcShow-X需要安装的包: sudo apt-get install python-gobject python-qt4 python-ibus 链接:http://www.sanfanling.cn/read.php?267下载:http://www.kde-apps.org/content/show.php?content=103055
使用ibus时间长了,常常突然发现有些本来常驻的首选或者常用字词突然掉到后面,甚至到了第二页,并不是被其他词挤掉,而是可能ibus的用户数据库出现错乱了。 不知道这是ibus程序的bug,还是ibus所用的SQLite数据库系统本身的问题,本来当用户输入一个拼音,ibus从用户数据库里面提出对应字的用户输入频数,决定字词的位置;如果用户第一次选择输入某个字,那么该字的记录就添加到用户数据库中,下次输入时便以此记录来提前该字的位置。理论上,在用户数据库里面一个词条的记录最多只能出现一次(多音字算多个字),然而,在实际的使用中,有时不知什么原因,某个本来常用的字被当作第一次输入再次加入到数据库当中,下次输入时,该字便作为低频字来排序,导致位置变得很后,带来不少不便。 这个Python脚本就是把这样的词条找出来,并把后来加入的记录删掉,把词条频数还原。 脚本下载:http://code.google.com/p/ptcoding/source/browse/trunk/ibus_fix (svn目录内的ibux_db_fix.py,其他的两个是测试脚本) 程序功能: 自动备份用户词库 检出用户数据库中出现了两次,但不是多音字词的词条 将后加入的词条删除 检出错词的SQL: SELECT * FROM py_phrase WHERE phrase IN (SELECT phrase FROM py_phrase GROUP BY phrase HAVING COUNT(*) = 2) 尚存缺陷: 如果同一个词条的记录出现了3次或以上,程序不能鉴别(极少可能出现,可修改脚本内的SQL语句来查询出来) 如果一个字本身是多音字,其中一个音节出现了上述情况,程序不能鉴别(貌似概率也挺低的) 如果两个记录中的用户输入频数相同,两条记录都会被删掉(倒不是坏事,影响不大) Python源码:
最近给我博客提供服务器的朋友把系统升级到新版的CentOS,习惯使用ScribeFire写博客的我遇上麻烦了:在Scribefire里面发布的任何东西格式都一团糟,发布的代码断肢缺臂,所有的HTML标记的尖括号都不翼而飞,原来的<p>就被剥光剩“p”,</p><p></p>的话就当然剩下3p了,不得不进入WordPress的后台编辑器重新修改,如此几天下来,不胜其烦。 于是在网上搜了一个中午,发现国内的形势一片大好,没任何人提到有这样的问题!!!难道是RP?后来想到,国内使用Linux主机的博客寥寥可数,在其中跟潮流使用新发行版的服务器更是少数了……因为这个问题的根源是新版libxml2库引起的! 在这里可以看到不少生活在在水深火热中的西方人有这个问题,里面跟贴留言的人提到,在他的FC9系统里面安装libxml2-2.6.32-1.fc9没有问题,但是一升级到libxml2-2.7.1-1.fc9就不行了!而且这个问题不是最近才有的,可以看到抱怨该问题的帖子从08年10月后就出现了。 关于这个问题,考究过程是相当纠结的: WordPress 知道: XMLRPC api stripping leading angle brackets Php 知道: libxml2 2.7.1 causes breakage with character data in xml_parse() libxml2 知道 Release of libxml2-2.7.1 所有人都知道这个问题,但是距离完全修复还远着,一般用户如果能管理服务器,可以尝试把libxml2降级回2.6.3x,或者重新编译PHP,使用expat来替代libxml2的xml解析器。这两个方法对多数人来说都很不现实。在这些纠结得以解决之前,WordPress的用户一般要双手解决问题,WordPress patch for problamatic libxml2 version提供了修改wp中的三个文件的补丁方法,很明显,问题的根源是因为xml_parse()把我们文章里的HTML标记当成错误符号给吃掉了。不过对很多用户来说这依然不是个好方法,修改代码烦不说,还容易出错。 在这里推荐一般用户安装LibXML2 Fix这个WordPress插件,少快好省地搞定这个问题。当然,插件也提示说使用这个插件只是一个权宜之计,要真正修复这个问题,需要在服务器上把PHP更新到PHP 5.2.9+、libxml2 2.7.3+。
此前用wireshark嗅探研究过Sogou浏览器的代理功能,没什么头绪,有访客留言说用Process Explorer瞧瞧Sogou的进程,今天有空看了下,果然,有一个子进程是用-proxy参数启动的,打开了本地的8081和8082端口在监听,用其他浏览器连8081,发现就是普通的透明代理,而8082则是一个自动配置代理的PAC(Javascript)。 虽然现在我的Ubuntu下已经有了一堆翻墙用的代理软件(没边、门、eTunnel……),但经常速度不甚理想,而且学校校园网的电信出口经常被挤爆,而教育网出口是空的,所以使用Sogou提供的免费教育网代理是个不错的解决办法。 把Sogou弄到Ubuntu下的Wine环境没有任何难度,把Sogou的安装文件夹全部复制到~/.wine/drive_c/sogou下,运行的很正常: pentie@pentie-desktop:~$ wine "C:\sogou\SogouExplorer.exe" -proxy fixme:win:EnumDisplayDevicesW ((null),0,0x32f3c4,0x00000000), stub! fixme:wtsapi:WTSRegisterSessionNotification Stub 0x1002a 0x00000000 fixme:mountmgr:harddisk_ioctl unsupported ioctl 74080 fixme:mountmgr:harddisk_ioctl unsupported ioctl 2d1400 fixme:mountmgr:harddisk_ioctl unsupported ioctl 2d0c10 PID:8 PORT:8081 CPORT:8082 PAC:http://127.0.0.1:8082/proxy.pac?t=626 RET:SUCCESS 在配置Firefox的FoxyProxy,可以像平常那样添加127.0.0.1:8081作为代理,但既然提供了PAC,不妨试试:在Automatic proxy configuration URL内添入“http://127.0.0.1:8082/”,按Test,说找到PAC,解析成功!确定后右下角也出现FoxyProxy的提示。此时在Firefox中打开的网页都是通过Sogou的免费代理了!不过发觉现在的代理速度没此前那么快了。 Ubuntu中有一个工具可以配置全局代理,gnome-network-preferences,运行它可以轻松的让apt-get、telnet之类的程序通过代理来连接外网。 再一次提醒的是,Sogou浏览器代理是“透明代理”,它会转发你的真实IP,没有任何匿名功能,因为他们的服务器也在国内(北京),因此也不会有翻墙功能。 参考了别人的网志:http://dan.febird.net/2008/12/firefox.html 已知缺陷:在流量和连接数比较大时(比如刷开Google Reader),wine出来的SogouExplorer进程占用大量CPU资源,可能是某链接库匹配问题,以致这个方法的实用性不是很高。
Page optimized by WP Minify WordPress Plugin