网站昨天被DMOZ收录了,在World:Chinese Simplified:社会:人物:个人网站:博客目录下。
DMOZ开放目录是目前互联网上唯一一个由人工审核的目录,能被收录是对我的鼓励和肯定。谢谢编辑员zocq,正是因为你们这些义务工作的编辑人员,一切变得有意义起来。
关于向DMOZ提交网站有一个需要注意的地方,就是尽量用IE浏览器提交,firefox可能会有点问题。这是老孔的经验,同样要谢谢他。
标签: 网站
博客的“电台”页面很久没有更新,在酝酿着改版,现在已经弄好。建立这个页面之初,就担心它会沦为鸡肋,因为mp3文件无处存放。放在自己站的空间上不现实,万一抗不住流量网站就会挂掉,但是若只能引用网络上已有的mp3(改版之前就是这样),我自己会觉得很没意思,许多音乐网络上资源很少,比如说古典音乐,一首交响曲能有一个乐章就不错了,没什么更新的动力。
许多站长可能也会碰到这个问题,简单地说,就是要找到一个免费、稳定、速度快、支持音乐文件外链、单个文件大小限制和外链流量限制较宽松的网络硬盘或网络空间。“天下没有免费的午餐”这句话哪都适用,所以可以想象找一个符合全部条件的网络硬盘有多难。还好,茫茫网络,总还是有几家可用的。我也能把歌曲从CD里抓取出来,和大家分享了。
盘点之前先对一些词语做些定义。支持外链,指可以获得文件的直接URL,并且格式、地址是固定的,可以直接引用或下载。伪支持外链,指好像是那么回事,但用起来有种种缺陷或慢得令人无法忍受,没有实际意义。不支持外链,指不能或很难获得文件的直接URL,或URL可能是变动的。
支持外链
Dropbox(已被墙,无法使用)
我现在用的是Dropbox,需要下载安装客户端,2G空间,单个文件最大上限350M,有流量限制,具体数值不清。Dropbox的特点是安装后在本地会建立一个文件夹,可以直接把需要上传的文件拷进去,程序会自动上传。还可以通过网页上传。比较发现网页上传好像快一点,本地上传真不是一般的慢,我估计不超过10kb/s。虽然上传速度慢,但外链速度挺快。
OpenDrive
这个网盘与Dropbox类似,有客户端,可用来备份电脑里的数据。支持外链,日流量1GB。
SugarSync
SugarSync是另一个Dropbox的替代品,功能挺强大的,但对免费用户外链限制有点严。
FileDen
比较老牌的网盘,1G空间,5G月流量。上传速度飞快,可以达到50kb/s以上。缺点是外链速度慢,音乐文件外链时经常播放不流畅。
Windows Live SkyDrive(已无法使用)
微软推出的网络硬盘,25G空间,单个文件最大上限50M,有流量限制,具体数值不清。上传速度慢,外链速度快。
小结:这几款免费网盘都是外国的:上传速度快的,外链速度慢;上传速度慢的,外链速度快。
补充:关于mp3的免费外链空间,有心人老胡专门做了一个mp3外链汇总的文章专题,收集能外链音乐的网络硬盘和网络空间,可是,这些网盘一般有种种限制,要么单个文件最大上限10M,对我而言小了点,要么mp3码率有限制,追求音质的我不可能接受。如果你放流行音乐的话倒是无所谓,流行音乐一首歌大小超过10M的很少。
伪支持外链
雅虎日本50M免费空间(已停止提供服务)
当我满怀期待地按照攻略注册了雅虎日本“不限流量、支持FTP、支持外链”的50M免费空间后,发现事情并不是这样的。雅虎日本空间的稳定性不容置疑,和微软一个级别的。但是想从日本人那分一杯羹门都没有。首先不能用FTP上传文件(我估计日本的IP地址可以),其次单个文件最大上限5M,这个限制让该空间完全没有价值了,最后,日文界面,看不懂。(更正:有朋友留言说可以使用,看来是我没搞懂。)
FileUpYours
网上对它的口碑很好,但问题是,我怎么也上传不了文件。
Box
看box.net这么牛的域名觉得应该是个很强的网站,但没有用,上传不动。
不支持外链
纳米盘和联想在线数据中心只能提供下载,无法获得外链地址。QQ硬盘别的不说,QQ两个字就意味着“不交钱别想用我的服务”,非会员无法使用,就算是会员,要获得外链地址还得好一顿折腾,何必呢。163网易音乐可上传音乐,但现在已经无法外链,只能供网易博客使用。
其它办法
除了寻找直接外链的网盘,我们或许可以换种思路,只要能达到“在自己的网站或博客上播放音乐”的目的就行。所以便有了下面的解决方法。
土豆网
土豆网是国内极少数(如果不是唯一)支持音乐上传的视频网站,更重要的,它提供不带视频窗口的新版外链播放器,这样我们的问题就迎刃而解了。
使用方法:注册土豆网后点击“上传视频”,选择电脑中的mp3文件,并在“分类”中选择“音乐”这项。上传转码完毕后,在“我的视频”中打开音频的播放页面,稍微下面一点有个“转帖到博客或BBS”的按钮,点开,选择“试用新版外贴播放器”,定义播放器颜色和大小后,就可以贴到自己博客上了。
优点:很少出现播放不流畅的情况,不限空间和单个文件大小,不限流量。我博客的“电台”现在使用的就是这个方法:用土豆网提供试听,用极享网提供下载。
虾米网
如果你要贴的是比较常见的流行音乐,可以试试这个网站,许多歌已经有了,不用自己上传,而且音源质量不错。
前几天博客突然无法发布中文日志,殚精竭虑想不出来哪里出错,很是困扰。
写信给国内甚至台湾我认为比较出色的WordPress博客站长求助,仍找不到问题所在。许多站长建议我升级到WordPress最新版本2.7.1。在本地测试我的K2_WalltzLee主题(修改自K2 RC6)与WordPress2.7.1的兼容性时,发现会出现许多样式上的错位,再加上我改动过现在正在使用的WordPress版本的源码,真要折腾升级的话估计没个十天半个月弄不好。幸好我没有傻乎乎地直接在虚拟主机上升级,不然就完蛋了,有备份也没用,根本回不到原来的样子,还要面对几千行的代码从头改。现在想起后怕得头皮一阵发麻。天塌下来只有你一个人被砸死,别人都好好的,也许这就是独立站点最大的痛苦和最大的快乐所在吧。
另外我不喜欢2.7.1的后台界面,一键升级功能对我这种改源码的用户没有任何意义,2.7.1版本发布时,WordPress老大Matt还给我发了封邮件,说你们这帮不升级的家伙是不是住在岩石下面啊,快快升级到2.7.1吧,这是我们一顿折腾后最完美的作品了!唉,你这么说的话就拜托以后别再升级了。对WordPress的频频升级我真感到不能理解。
症状
1.可以发布英文日志。但只要标题或正文中含有中文,就会发布出错,主机CPU占用100%并出现超时提示:
Fatal error: Maximum execution time of 30 seconds exceeded in/…/wp-includes/post.php on line 1287
并且每次报错的具体文件和行数都不相同,有时会报错在一些并不存在的行数。
2.与主机php的超时设定无关,按网上的方法修改php.ini把超时设定成多久都没用。
3.日志会存为草稿,编辑草稿再发布也不行,但在可以修改并保存草稿。
4.与插件和主题无关,停用所有插件,换回默认主题,问题仍然存在。
5.与虚拟主机的PHP/MySQL软件版本无关。
6.之前已经发布的中文日志可以编辑添加中文并保存。可以通过先发布英文日志、再把英文日志修改成中文日志的方法发布中文日志(苍天啊,我前两篇日志就是这么发布的)。
解决
在论坛上我搜索到其他的朋友也碰到过这个问题,但不知如何解决。这其实是一个只存在于WordPress2.5.1的BUG,在2008年5月已经有人向WordPress提交了这个BUG的报告:some post text (persian) causes timeout on publish (not save)(某些包含波斯语的文本在发布时会导致超时错误)。中文和波斯语是一个德性,哈哈。
官方已给出修正方法,详见这里,在wp-includes/post.php第1289行,用绿色部分的代码替换掉红色部分的代码。
感谢
问题能解决,必须感谢yskin的帮助,在我求助的六个看上去都很牛的站长中,只有他给出了可以绕过BUG的办法,鹤立牛群。从yskin的解释中能深刻感觉到他对WordPress的熟悉程度远胜别人一筹,有实力的人就是不一样。在我找到解决方案后,yskin还耐心地对我刨根问底的追问给出了自己的解答:
从PHP的角度来讲,这两段代码应该是一样的,原来的代码使用的是双引号内直接使用$变量,后者是用类似C语言的printf函数的方式,在需要使用变量的地方用%s代替,然后后面跟上变量。
原则上PHP对两种方式的处理应该是一样的,并且都可以保证正确。后面这段代码把$alt_post_name和$post_type单独作为$wpdb->prepare()函数的参数,而该函数里有:array_walk($args, array(&$this, ‘escape_by_ref’)); 这样一段代码对所有参数做一个处理,所以估计是这里有bug导致中文录入的出错。
对比起其它寥寥数语的回复,yskin上千字的邮件让人感动,从邮件的条理性、针对性、严谨性我看到了一个认真、缜密、踏实、助人为乐的人,他教会我的不仅仅是WordPress里几个PHP语句。
我在修改K2主题时的一些体会,写出来也许对碰到类似问题的朋友有些帮助。主要是关于header里页面的问题,还有一些零碎的事项,写下来也算是一个修改工作的备忘录吧。
页面相关文件位置
“页面”在K2主题里用header下的menu字段定义。其中:
PHP输出控制在
app\includes\display.php 25-48行 函数function k2_header_menu()
CSS样式控制在
css\core.css.php中”Main Menu in Header”注释下
隐藏页面的方法
网上已经有如何隐藏某个页面的详细介绍,参看这里。
页面翻页后同时显示主页和当前页面问题的解决
页面如果不涉及翻页是不会出现这个BUG的,但是如果页面涉及翻页,“主页”和当前页面会同时显示为选中状态,因为is_archive和is_paged判断同时为true。
这个问题及其它类似的问题的解决,关键在于状态标签的使用。WordPress官网上有关于状态标签的详细说明,见这里。我的体会是,状态标签是非常有用的,在WordPress程序中使用频率也非常高。
在上文提到的k2_header_menu函数中,<li></li>中的if语句就是判断哪个页面为当前页面的语句,原文的or判断太繁琐,只留下一个你需要的条件即可,其它的可以注释掉。另补充两句比较有用的判断语句:
is_home() && !is_paged()
is_category(’31’)
前者已经有很多文章介绍用法。后者适用于调用了某个分类(标签、作者等等也一样)的页面。例如我的“照片”页面调用了“凝视有时”这个分类,分类序号是31(获得分类序号的方法请自行Google),用了is_category判断后“照片”页面的翻页就会显示正常了,否则从第二页开始“主页”和“照片”会同时显示为当前页面。
K2主题的其它注意事项
1.K2的css文件并不符合W3C标准,因为它的style.css实际上引用了css文件夹下的core.css.php,如果你希望网站能通过W3C的CSS验证,可以把core.css.php文件改为相同名称替换掉根目录下的style.css文件,但记得把第一行注释掉:
<?php require(‘gzip-header-css.php’); ?>
2.如果你需要自己撰写新的页面模板,保存时必须存为UTF-8编码,保存为UTF-8无BOM和ANSI编码都会出现header上空行的问题,IE内核浏览器还会出现header右侧错位的问题。
3.K2主题大量使用了嵌套、引用的函数和模块,使得自定义性较差。如果自己编写模板需要改变某些函数和模块,在app文件夹下可找到所有K2自己的函数和模块。
4.我修改的K2主题在IE6下有一个小BUG,每篇日志的第一条评论的评论者ID背景色无填充。另外通过这一个多月的使用我发现,不同机器上的IE6和基于IE6内核的遨游浏览器对样式表的解析各有不同。IE7和Firefox表现完美。鉴于IE6这款浏览器可以把一个程序员活活整死,而我只是个门外汉,还是放下强迫症的倾向,由它去吧!
换主题就像死过一次一样,用四天时间和几千行代码搏斗。
这次使用的主题是K2RC6,没有使用最新的版本K2RC7 是因为K2RC6和我的WordPress2.5.1兼容性最好。不打算升级到WordPress2.7,我不需要那些可能拖慢网站的功能,另外我修改过WordPress2.5.1的源代码,升级意味着要重新改一遍源代码,那是自寻烦恼。
现在用的这个K2主题是经过修改的,本地Apache/MySQL/PHP的编程调试环境我用的是XAMPP LITE。主要改动有以下几个方面:
最大的动作在留言系统。我个人不喜欢ajax免刷新式留言,并且K2原来的留言样式不大好看,Gravatar不与留言者名称对齐,默认Gravatar又黑又粗,看起来乱七八糟。改成默认主题的留言样式。
K2毕竟是外国人的主题,中文表现并不理想。除了汉化这种必要步骤,还把侧边栏与主栏间距扩大了10像素,侧边栏列表项目稍微空半格,给照片加边框,图片不加边框,改大字体,适当地方字体加粗,增加header中menu列表的margin,修改引用样式,去掉所有时间、留言、标签、编辑旁的png小图标,等等。
代码方面重新为几个页面按K2的结构做template让其能正确显示。改正页面翻页后header同时显示主页和页面的bug。
简单概括,就是把默认主题Kubrick和K2拼起来。
我先后用过两个主题,默认主题Kubrick和K2主题,皆出自Michael Heilemann之手,整个修改过程我对他的崇拜之情不断加深。他在Kubrick里告诉我代码能简洁到什么程度,用K2让我知道盘根错节可以和条理清晰共存,代码能如此复杂精巧,我觉得他仿佛集天真无邪的孩童和神机妙算的老千于一身,可怕而令人着迷。在Kubrick的style.css代码结尾的注释里,他写道:“Daisy给我你肯定的回答吧,爱你让我痴狂,这不会是那种老套的婚礼,我没钱给你买马车,但坐在我自行车后座上你会甜蜜悠长!”在K2的theloop.php代码开头的注释里,他写道:“对这么精美的艺术品,下手轻点!”真性情的奔放加牛逼哄哄的自信,偶像啊偶像。这个哥本哈根的30岁帅哥个人博客PR是7,太猛了太猛了,徐静蕾王小峰之流的博客在他面前简直不值一提,行走江湖最终还是要靠实力说话啊。
程序调试让人上火。IE和Firefox两种内核的浏览器不同的显示效果让人抓狂,就像同时给笨学生和聪明学生上课,既要让笨IE听明白,又不能让聪明的Firefox觉得不耐烦。
学习CSS最好的办法果真是不断尝试。K2的CSS文件大得惊人,仍和其它主题很好兼容,得益于字段命名的独立。K2另一个强大之处在它无所不能的对外接口和自定义选项,这对于使用者是个好事,但对于修改主题的我来说就是个灾难。作者喜欢把各段功能切成模块分开放在不同PHP文件里,再引用或嵌套,有些功能定义完全看不懂还不知到哪找出处,幸好最后都弄明白了。
这次修改WordPress主题,最大的体会是:能用CSS解决问题的地方尽量用CSS,能用PHP代码解决问题的地方尽量用PHP代码。下手之前最好想好用哪种方法,弄反了效率会很低而且很难做出来。另一个体会是DIV加CSS的网页组织方式高效而科学,在这点上我不认同自恋的腾讯网站重构工程师TwinsenLiang的观点。
用BSP的人点几下就能换个主题,WordPress也不难顶多稍微调试一下,无奈吹毛求疵乃我人生一大悲哀,硬要自作孽,看教程查手册改样式表,半夜两眼放光读代码。一切痛苦只能怪自己太菜,上次完全不懂CSS也敢修改默认主题,真勇敢。但付出就有进步,我觉得以后写简历也许可以加一句“了解网页编程的PHP和CSS语言”。
过程是艰苦的,成功的欣慰让人充实,也许这就是独立的最大乐趣吧。专心做一件事情的感觉真好。