七/090
vbox3.0开启3D加速
我的arch还是用vbox安装了一个xp系统,用来网银或者游戏。之前玩QQ的桌球游戏,提示没有directx支持,前天看到vbox3.0发布,支持3d加速,赶紧更新了试试发现还是不行。后来问问google大叔,他告诉我需要以安全模式登录你的xp系统,重新安装一次那个“增强功能”,重启后就OK了。
目前我的vbox安装了三个系统,xp,freebsd和一个嵌入式系统。感觉vbox还是很不错的,给xp分配1G内存,速度还是很快的。
六/092
如何使用Linux
前几天去了某知名大公司看看,题目很简单,主要是考察覆盖面。linux,css,javascript,php和python都有考到,不过题目比较简单。10分钟就递给旁边的面试官了,看来技术方面还是过关了。对方详细描述了下他们的开源应用,因为这个公司是在国际上因大量使用开源技术闻名的。大部分考察还是基于linux的应用,shell编程和linux工具。
虽然过程比较顺利,还是让我反省了。使用linux桌面这么多年,对linux很多机制还是初学者阶段,用SHELL能做到什么程度?也就是一般的文件管理而已。shell脚本加起来也写过不到2000行,于是抽空还是拿出来家里那本06年在中关村买的Linux高级程序设计,还需要一段时间积累。
跟那个面试官聊了好久PHP相关的web应用,感觉这个行业自己做到头了。说不上多么精通,一般的常规项目也都做过了,是时候考虑周边别的工作了。何不趁这个机会去尝试别的东西,既然目前的基础能胜任转行的工作。
Linux阵营的开源技术自己还是个新手,路远但目标明确。
六/091
PHPEclipse:A User Guide
今天看到一本好书:《PHPEclipse:A User Guide》,着重对phpeclipse这个插件进行介绍,此类资料中这个算是比较详细,三种平台都有介绍(Linux,Mac,Windows)。对Quantum DB Plug-In也有介绍,唯一“不好”的地方就是:晦涩的单词太多,不知道我辈的英文水平不是很好啊。。借助翻译工具还是硬着头皮看下来了,200多页,其中还有部分插图,花费3个小时,还算值得。
推荐给想用eclipse做php开发的朋友,熟练后就不必使用收费的zend studio了。
六/090
【转载】drupal的性能问题
原文地址: http://www.bloggern.com/3577.html
我因为工作原因,曾经对Drupal做过比较全面的测试。当时的环境是双服务器(DB server+Web Server),硬件配置都是单CPU+4G。数据库里面有几千条记录。用JMeter对各种情况下(开/关各种cache模块,logged user/anonymous user)不同页面的读取和写入操作都进行过测试。 测试的结论可能和很多人印象中不一样。都说Drupal对数据库要求高,但事实上,无论是cache还是非cache模式,DB server的压力都是相当小的(CPU在10%以下),而Web Server的CPU在80%以上。跟踪所有的db query的执行时间后,也证明了这一点(全部db query的执行时间只占页面生成时间的一小部分)。所以结论是,Drupal在大量logged user并发情况下的瓶颈,在于执行Drupal代码的CPU时间。
六/094
关于drupal区块的小问题
drupal模块开发中经常用到区块的概念,将一些相关数据放到区块中,配合权限验证,将用户能看到的信息以区块的形式展示到用户浏览器中。不过区块是跟节点无关了,如果要根据当前节点页面的特性针对性的在区块中显示内容,我的做法是:
if (arg(0) == ‘node’ && is_numeric(arg(1)) { // 初步设想是仅仅当路径是’ node / 3 ‘,类似这样的地址时显示
$node = node_load(arg(1));
if (!$node->teaser) // 初步设想是节点以全节点方式显示的时候才有效(提高一点效率)
}
在调试的过程中发现,arg函数是和drupal内置的path模块无关的。也就是说如果给某个节点设置了path,比如给公司的帮助页面设置了path : www.target.com/help,那么arg(0)我们取到的还是node,而不是help。
另外, $node对象中的teaser属性指的是节点的摘要,而不是“是否以全文的方式显示”,这个跟nodeapi钩子,以及hook_view中的$teaser形式参数是不一样的,后者确确实实指的是“是否以全文的方式显示”,也就是说上面的判断是错误的。
五/090
drupal搜索结果页面定制
drupal默认的搜索结果页面往往不是我们想要的,尤其对搜索没有结果的时候那一堆无聊的提示信息简直是很差劲的用户体验,因此,我们必须对其定制。看看search模块中这段代码:
if ($results) {
$results = theme(’box’, t(’Search results’), $results);
}
else {
$results = theme(’box’, t(’Your search yielded no results’), search_help(’search#noresults’));
}
很简单,用box模板来展示结果了,因此我们可以在box.tpl.php中写上:
if ( t(’Your search yielded no results’) == $title) {
// your html code.
}
至于对有搜索结果页面的定制就很简单了,drupal提供了主题覆写函数phptemplate_search_page()
五/0912
ArchLinux下常用软件
本人的桌面环境是ArchLinux + Gnome,以下介绍的软件源里面差不多都有。装完xorg和gnome后,差不多就要装这些了,没关系可以一边做事一边安装。一些gnome相关的东西有gnome-network-manager, eog, evince, file-roller, gnome-terminal &etc.
网络相关:
- firefox 3(地球人都用),装上几个插件,做web开发都能对付了。
- gajim,pidgin,skype,linuxqq 这几个差不多满足了所有IM需求了。
- xchat 偶尔IRC上去问点东西。
- amule 下载就它了。跟firefox和opera关联也比较方便。
- filezilla FTP,那么多ftp服务器,管理文件就靠它了,可以sftp方便。
- linux_fetion 玩手机键盘没有那么快,还是飞信方便,pidgin那个插件经常登录不上。
编辑相关:
- genay 写php,python,c++都没问题。简单的IDE非他莫属了。
- gedit 偶尔改个小文件能用到。
- vim 地球人都会用这个
- scite和scribes这两个东东偶尔用到,写python还是这个方便,一大堆的快捷操作。
- poedit 翻译必须要啊
- glade 界面我也能设计一点 :-)
- eclipse 地球人都知道的强大开源,调试程序很方便。适合大工程。
- openoffice 很少用这个写东西,只是用它读东西。
- freemind 脑图必备,需要jre支持。
影音相关:
- smplayer 装个这东西和arch源里面那个codecs包,基本什么都搞定了,很好的mplayer前端,qt4支持。
- gnomebaker K下就用那个k3b了,刻录必备。
- exaile 天天都听歌,mp3就靠这个,据说这东西朝着G下的amarok发展,不知道是不是在。。。。python的东西,还不错。
其他:
stardict星际译王,官网有很多免费词库,自己可以根据需要安装。unrar和p7zip进一步满足压缩要求,zim写wiki不错,本地不需要web环境,方便写开发文档和笔记。gnochm和chmsee基本可以满足$MS这个变态的chm格式,前者有搜索功能,后者对编码问题支持得好一些。virtualbox sun公司的虚拟机,我的网银就靠它虚拟个XP出来用IE,wine就不装了。最后偶尔需要gimp来玩下图片处理,长这么大,只处理过几张照片,就是给大学同学的照片画胡子。。。。
补充两个,zim和mitter,前者是一个本地wiki,可以用来记录笔记和文档,后者是一个twitter客户端。
五/099
x200上archlinux的安装
今天拿到x200本本了,赶紧装上了archlinux。down的是09年2月的新iso,一路上安装没有什么问题。唯一麻烦的问题就是在daemon里面忘记加上hal了,导致在gdm界面的时候鼠标和键盘失效。在grub菜单编辑加上linux single后以单用户模式启动,重新修改rc.conf文件就搞定了。无线驱动用的源里面的iwlwifi-5000-ucode,又花掉半个小时安装软件和开发环境,两个字:霸道!
体验了下,速度很快,没有问题。快捷键也都驱动了,网络工作正常。
摄像头已经驱动了,用skype可以正常视频。安装blueman后,将bluetooth添加到daemon里面,蓝牙设备也工作正常,可以和自己的小S1正常传输文件了。
五/092
用phpeclipse进行drupal开发
phpeclipse是开源软件eclipse的一个插件,顾名思义,是为PHPER们准备的。把features和plugins拷贝好后,就可以使用了。这里如果没有刷新出新的eclipse PHP模块,是因为缓存的问题,我们使用-clean参数就可以了。(eclipse使用常识)
剩下就是做一些常用配置,比方drupal的代码规范问题,缩进两个空格,代替tab键。module,info,install后缀名识别等等,比较简单就不说了。剩下的就是新建一个项目,然后导入drupal整个文件夹,这样整个drupal系统代码就导入进来了,新建一个模块的时候,所有drupal函数都可用了,加上eclipse强大的IDE功能,我想你应该可以脱离drupal的官方api了,函数都有提示了。左侧的大纲列表方便定位我们定义的钩子函数。
这样一来,类似l等形参比较多的函数,就不用记下来了,直接函数参数提醒,实在不行可以F3查看函数申明代码,这些功能就和java以及C++开发的时候使用eclipse差不多了。