Google Search Within opentiss.uk

2009-08-29

PHP学习与openShop研发及tidy使用

一直以来,我都想好好学习PHP,开发一个在线商店管理系统(暂定名为),可一直都没有太深入地去做这个事情,现在我计划依托opentiss.net,除了想办法提供一些开源CMS等LAMP软件的服务之外,可以尝试研发一个小系统,通过这个小系统验证与加深学习效果,为自己的能力提高及将来的发展打好基础,只通过C/C++谋求一份像样的工作真的有些不太容易,尤其是现在经济形势不明朗的情况下。
研究了一下Mambo系统,现在开始构建大致的框架,首先我选择使用xhtml 1.1来展示web内容,不过发现似乎使用这一标准的网站比较少,比较明显的一个例子就是w3c的官网都是xhtml 1.0,只有其xhtml 1.1标准文档采用的的确是xhtml 1.1。不过还是有个不小的收获,通过查看xhtml 1.1标准文档的源代码,发现了一个可以验证xhtml的工具Tidy。随即我便在SLED 11上安装了tidy,安装时,会自动将依赖库libtidy安装上。tidy的使用也很简单,例如,对用wget命令下载到本地的php网站输出index.html文件进行xhtml验证,只需在终端输入以下命令即可:
opentiss@tiss:~/Documents/tmp> tidy -asxhtml -utf8 < index.html > index.tidy.html
Info: Doctype given is "-//W3C//DTD XHTML 1.1//EN"                             
Info: Document content looks like XHTML 1.1                                    
No warnings or errors were found.                                              


To learn more about HTML Tidy see http://tidy.sourceforge.net
Please send bug reports to html-tidy@w3.org
HTML and CSS specifications are available from http://www.w3.org/
Lobby your company to join W3C, see http://www.w3.org/Consortium
如果输出信息为“No warnings or errors were found.”,就表示您的xhtml文档没有与标准相冲突的问题存在。如果需要了解如何使用这一工具,只需在终端输入以下命令查看帮助即可:
opentiss@tiss:~> tidy -help
tidy [option...] [file...] [option...] [file...]
Utility to clean up and pretty print HTML/XHTML/XML
see http://tidy.sourceforge.net/                   

Options for HTML Tidy for Linux/x86 released on 31 October 2006:

File manipulation
-----------------
 -output <file>, -o  write output to the specified <file>                      
 <file>                                                                        
 -config <file>      set configuration options from the specified <file>       
 -file <file>, -f    write errors to the specified <file>                      
 <file>                                                                        
 -modify, -m         modify the original input files                           

Processing directives
---------------------
 -indent, -i         indent element content                                    
 -wrap <column>, -w  wrap text at the specified <column>. 0 is assumed if      
 <column>            <column> is missing. When this option is omitted, the     
                     default of the configuration option "wrap" applies.       
 -upper, -u          force tags to upper case                                  
 -clean, -c          replace FONT, NOBR and CENTER tags by CSS                 
 -bare, -b           strip out smart quotes and em dashes, etc.                
 -numeric, -n        output numeric rather than named entities                 
 -errors, -e         only show errors                                          
 -quiet, -q          suppress nonessential output                              
 -omit               omit optional end tags                                    
 -xml                specify the input is well formed XML                      
 -asxml, -asxhtml    convert HTML to well formed XHTML                         
 -ashtml             force XHTML to well formed HTML                           
 -access <level>     do additional accessibility checks (<level> = 0, 1, 2, 3).
                     0 is assumed if <level> is missing.                       

Character encodings
-------------------
 -raw                output values above 127 without conversion to entities    
 -ascii              use ISO-8859-1 for input, US-ASCII for output             
 -latin0             use ISO-8859-15 for input, US-ASCII for output            
 -latin1             use ISO-8859-1 for both input and output                  
 -iso2022            use ISO-2022 for both input and output                    
 -utf8               use UTF-8 for both input and output                       
 -mac                use MacRoman for input, US-ASCII for output               
 -win1252            use Windows-1252 for input, US-ASCII for output           
 -ibm858             use IBM-858 (CP850+Euro) for input, US-ASCII for output   
 -utf16le            use UTF-16LE for both input and output                    
 -utf16be            use UTF-16BE for both input and output                    
 -utf16              use UTF-16 for both input and output
 -big5               use Big5 for both input and output
 -shiftjis           use Shift_JIS for both input and output
 -language <lang>    set the two-letter language code <lang> (for future use)

Miscellaneous
-------------
 -version, -v        show the version of Tidy
 -help, -h, -?       list the command line options
 -xml-help           list the command line options in XML format
 -help-config        list all configuration options
 -xml-config         list all configuration options in XML format
 -show-config        list the current configuration settings

Use --blah blarg for any configuration option "blah" with argument "blarg"

Input/Output default to stdin/stdout respectively
Single letter options apart from -f may be combined
as in:  tidy -f errs.txt -imu foo.html
For further info on HTML see http://www.w3.org/MarkUp
使用tidy可以随时验证文档,在访问w3c的The W3C Markup Validation Service比较慢的时候,这就是一个比较便捷的选择了。
使用Eclipse+PDT创建的PHP项目源代码中,xml的文件类型标识会被认为错误:
<?xml version="1.0" encoding="UTF-8"?>
其实,解决的方法也很简单,将其作为PHP文本输出即可:
<?php echo '<?xml version="1.0" encoding="UTF-8"?>'; ?>
这几天JavaEye访问不了了,一直在升级中,也不知识什么原因,期望能够早点恢复正常。

2009-08-28

SLED 11更新了ALSA模块,重启后声卡变为静音问题解决了

今天收了一下Novell SLE更新列表邮件,发现ALSA模块更新的说明,现在重启后声卡变为静音的问题解决了,问题描述原文
Some problems and bugs of ALSA are fixed by this update.
This update includes a fix for the bug, "mute after reboot" happening on desktops using pulseaudio. Also a useless "sudo" in alsasound init script is removed for terminating pulseaudio properly.
译文(简体中文):
这次更新修复了ALSA的一些问题和bug。
这次更新包含以下bug的解决,在使用pulseaudio的桌面中“重启后静音”。并且,为了终止pulseaudio属性,alsasound初始化脚本中一个无用的“sudo”操作被去除了。
如此说来,之前我所遇到的KDE重启后声卡无声问题解决了,之前我为此将相应的用户配置文件设置为只读,以保留重启之前对声卡音量的设置。

昨天将openSUSE News的文章openSUSE 11.2 Milestone 6 Released翻译成了中文,以供大家参阅:维勘翻译中文译文:openSUSE 11.2里程碑版本6发布。在发布译文的过程中也发现了Mambo所见即所得编辑器及本地化组件编辑器(其实都是)的一个问题,从OpenOffice.org字处理复制粘贴过来的内容会出现不必要的段落嵌套,需要手动更改html源代码后才能解决此问题。
淘宝网发布通知说明天(2009-08-29)凌晨三点到四点要对网站进行更新,也不知道是例行维护还是软件升级,不过基本可以肯定,不要对国内的网站及软件有什么期望,他们都是些即官僚又懒惰的无能之辈,一般能够行动迅速、跟上Web标准更新及用户多样性需要的服务提供商只点少数,参阅:网上银行-非Windows平台兼容性列表,排名分先后

2009-08-27

忙碌的淘宝一天,竟然突然断网了:20090827

昨天去厂家代理进了一批童装,回来后就一直忙着弄淘宝网店,结果没想到,今天凌晨零点二十八分,有线电视网竟然全网性断掉了,有线电视没有信号,有线通网络无法连接,只好上床就寝,准备天明后再发布商品信息。
早晨起来后,我就确认了有线网络的修复情况,发现已经修好了,本来爱人还威协我说,如果网络不通,就要去网吧发布商品信息的,这下终于没有后顾之忧了。现在把部分童装照片给大家欣赏一下:

可爱的儿童秋装

欢迎到我的淘宝网店留言选购、指正。


2009-08-23

淘宝店开张:20090823

今天老婆的淘宝店正式上线了,店名暂定为热风
今天一大早我就骑自行车出门子了,先去交电费,然后去东方路的招商银行营业厅,结果出现了个意外情况,那个营业厅的物业在装修那橦建筑物的外墙面,这下我的担心就由之前的银行里人多等待时间长变成了这个营业厅是否在营业了,经过仔细观察,好不容易才找到正门,但在正常营业,真是谢天谢地,我从几公里之外过来总算没有扑空,安顿好自行车,赶快咨询工作人员能否把我那一卡通金卡原工资卡销户,因为我这个卡是在浦西开的户,要到原开户的营业厅销卡可就太不人道了。结果还真是不错,工作人员给出了肯定答复,还给了我一个销户的表格,甚至把电脑叫号的纸都给准备好交给了我,我就赶快填写那个表,顺便看了一眼前面有多少人,真没想到,是0,天呀,更令我惊讶的是,电脑叫号这时就叫我的号了,没二话,赶快去找那个一号窗口,还真费了点劲,我是金卡,虽然是销户,但仍然是金卡的待遇,不在大厅,在一个个人理财室的里头,当然,还是窗口形式的。没办法,只好向营业员申明,要办个新的普卡,把销掉的金卡里的钱转存过来,一边跟营业员解释,一边填表,最终还算顺利,销卡开卡用了一些时间,也就十分钟左右吧,期间我突然想到这几个月的明细还是有必要拿一份的,营业员也帮忙给打印了。因为此行的主要目的是开通支付宝的网上支付,所以就请教开通个人网上银行大众版的问题,结果一不小心,发现开通的是专业版,不过也无所谓了,反正是免费的,反正也是准备收钱用的,所以就这样了。办理结束,打分就照顾了他们一下,给了个非常满意,其实顺利就好了,也不管那么多了。
回家后在Windows下弄了一两个小时,总算把支付宝和店开起来了,我爱人也把商品先放上去了,反正是先试试,如果碰巧网友看中了哪个商品,小店就算正式营运了。我们会诚信经营,努力给大家提供尽量好的服务的。

昨天弄了半天的Eclipse+PDT,就是不能创建PHP项目,老是报错:
Creation of element failed.

Reason:
Build path contains duplicate entry: ...

今天下午又试了一下,在创建PHP项目时,发现只要填好项目名的那个窗口按结束就可以了,千万不要再按下一步,一旦按了再按结束就不行了。

2009-08-21

SuSE的zypp缓存

今天登录gmail邮箱,发现Novell SLE 11已经发布了kernel 2.6.27.29的升级包,有线通的宽带缓慢升级了一阵子,爱人的电脑如果也在线升级,那将是一件很麻烦的事情,自己动手,去找zypp的缓存,直接复制过去手动升级,节省宝贵的带宽与流量。一般情况下,zypp的缓存存放在如下位置:
/var/cache/zypp/packages/
而kernel的rpm包缓存在如下目录:
/var/cache/zypp/packages/nu_novell_com:SLED11-Updates/rpm/i586
先将需要的文件复制到我的用户目录下:
cp kernel-pae-2.6.27.29-0.1.1.i586.rpm /home/opentiss/Documents
cp kernel-pae-base-2.6.27.29-0.1.1.i586.rpm /home/opentiss/Documents
cp kernel-pae-extra-2.6.27.29-0.1.1.i586.rpm /home/opentiss/Documents
cp kernel-source-2.6.27.29-0.1.1.i586.rpm /home/opentiss/Documents
用FileZilla以sftp登录爱人的主机,上传上述文件,然后ssh登录,用以下命令升级:
cindy:~ # rpm -Uivh kernel-*rpm
整个过程也不过几分钟,很顺利的就完成了。当然,此办法仅适用于有多台相同系统主机的情况,但可以节省很多的时间,在宽带网速受限的环境中还是很实用的。
另外,今天发现爱人笔记本的磁盘空间有些不足,删除了一些文件之后,不经意间到/tmp文件夹看看了,结果惊奇地发现,以前一直在寻找的Mozilla Firefox视频(主要是Flash)缓存竟然赫然以Flashx7Nr74的形式存储在这里,于是我赶快予以备份,这样就能把之前所欣赏过的视频网站的内容方便地转存过来了,再也不需要什么DownloadHelper之类的Firefox扩展手动下载了。不过,也有个小问题,就是这些名字与实际内容无法对应上,需要自己一点一点地予以验证与重新命名,不过,有了这个缓存,已经能够很好地解决网站视频回放占用带宽的问题了,已经相当有用了。
Pidgin 2.6.0已经正式发布了,但现在还没有可用于SLED 11的更新包可用,还需要等待一段时间。还有一个问题就是现在QQ总是让你激活账号,要不然就不能用Pidgin登录,万恶地麻花疼,脆弱的Tencent QQ for Linux,如果不想真支持Linux,也就别弄个Beta版出来,难道久经考验的Pidgin就没你安全、没你好用么?国人这种又想拿偷来的东西活命,又假装自己很有本事、可轻松跨平台的思想真是让人不齿,Pidgin同一主机连续登录你两次就要重新激活,还号称人家不安全了云云,真不知羞耻,更可恨的是,动不动就推送个广告链接到Pidgin客户端,还时不时发个消息,说你经常收到其他QQ用户发来的不明链接吗?那样是不安全的,不要轻易点击,这简直不就是强奸犯强奸了别人之后,再告诉别人说你可要小心呀,现在强奸犯比较多,一定要注意安全。
珍爱网络,远离QQ。珍爱生命,远离Windows。珍爱汉字,远离MS宋体(传闻说:中国政府是微软的中国区总代理)。

今天收到了Google AdSense 支持小组的如下邮件通知:
*** 如果您的AdSense广告没有投放在Discuz!平台或其他论坛平台上面,请忽略此邮件,由此给您带来的不便,敬请谅解,谢谢!***

尊敬的发布商,

您好!

这几天我们发现一些使用Discuz!论坛平台的发布商的AdSense广告无法正常展示,您可以到Discuz官方网站下载最新的版本以解决此问题。

经过和Discuz!团队以及AdSense产品部门的沟通,我们确认下面的方案可以解决AdSense广告展示的问题。如果您的网站是使用了Discuz!论坛平台或者采用了其他的论坛平台并遇到了同样的广告展示问题,
请按照如下步骤进行操作:
请进入Discuz!安装目录,在include\js目录下的common.js文件内删除以下语句:
 Array.prototype.push = function(value) {
this[this.length] = value;
return this.length;
}
如果调整以后,您的Discuz!论坛依然不能正常展示AdSense广告,
请通过AdSense帮助中心和我们联系。

感谢您对我们工作的理解与支持,祝您一切顺利!
Google AdSense 支持小组
看来谷歌还是很注重用户的反馈的。我觉得谷歌如果能在Google docs的Edit菜单中加入类似于OpenOffice.org的“选择性粘贴”功能就好了,省得每次我总要把带格式的文本先复制到openJDiary,然后再重新复制到Google docs中。
这些天在学习Perl与CSS、PHP等,同时也在尽量帮爱人筹备淘宝的网店,由此我也想做个在线商城的软件出来,也验证一下web应用开发学习的效果,名字还没想好,可能类似于openshop、ishop或openchoose之类的吧,总之应该是LAMP平台的了。

2009-08-07

sf.net:2009年8月月度项目简介中文翻译就绪

2009年8月sf.net月度项目eyeOS,其简介文章维勘翻译上已经发布。








eyeOS是一款紧跟云计算概念的免费web桌面软件,主要使用PHPXML
JavaScript编写。其扮演着为用eyeOS工具箱,包括一个带有67种应用与系统工具的桌面环境编写的web应用程序提供平台的角色。eyeOS项目通过构建开源软件替代大量的云计算服务,尤其是那些将数据保留在他们服务器上的服务。使用eyeOS数据一直保留在本地服务器。

...

2009-08-06

openJDiary预发布版发布

openJDiary预发布0.0.2版将按计划于2009年8月7日准时发布,此版本现在还仅包含基本的一些功能及就地计算功能,欢迎大家下载试用。另外一个小项目openCIIP也已经进入界面实现阶段,如果有时间,可能于近期发布。
openJDiary的源代码暂时还未提交至sf.net,按计划将从0.0.3版本开始提交。

2009-08-02

Bugzilla 3.4.1发布

自Bugzilla 3.4发布后,发现了一个安全问题,所以昨天修复版本Bugzilla 3.4.1很快发布了,以下为升级Bugzilla的简单过程。
首先下载最新版本Bugzilla 3.4.1的tar.gz包:
dws:/srv/www/htdocs # wget http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-3.4.1.tar.gz
也许因为宽带线路问题,第一次下载的压缩包解压缩出现问题,经过两次不同机器的下载后,得出相同校验码,经过解压缩无异常后,证明校验码基本无误,如下:
43e978463799a75e54c628d7e4c326b3  bugzilla-3.4.1.tar.gz
确定要升级Bugzilla之后,需要先暂时关闭Bugzilla,以避免出现升级前后数据不一致。可以通过系统管理员操作参数(Administration->Parameters)中的Required Settings选项shutdownhtml设置来实现,只要给参数shutdownhtml录入文本即可,例如:
Updating to Bugzilla 3.4.1.
升级前,为确保安全,请先将Bugzilla数据库备份。根据您使用的后台数据库模块不同,可能不一定是MySQL。
然后执行以下脚本完成升级过程:
dws:/srv/www/htdocs # cd bugzilla-3.4.1/
dws:/srv/www/htdocs/bugzilla-3.4.1 # cp -p ../bugzilla/localconfig* .
dws:/srv/www/htdocs/bugzilla-3.4.1 # cp -p -R ../bugzilla/data/ .
dws:/srv/www/htdocs/bugzilla-3.4.1 # cp -p -R ../bugzilla/lib/* lib/
dws:/srv/www/htdocs/bugzilla-3.4.1 # cd ..
dws:/srv/www/htdocs # mv bugzilla bugzilla.old
dws:/srv/www/htdocs # mv bugzilla-3.4.1 bugzilla
dws:/srv/www/htdocs # cd bugzilla
dws:/srv/www/htdocs/bugzilla # ./checksetup.pl
dws:/srv/www/htdocs/bugzilla # cd data
dws:/srv/www/htdocs/bugzilla/data # vi params
最后两步是将参数shutdownhtml重新置为空字符串(params文件的第82行),至此Bugzilla升级完毕,可以恢复运行了。
在Novell SLES 11.0上Bugzilla的升级非常简便,总共不到十分钟就全部完成了。