看图不说话和小抄

六 25th, 2009 Posted in 未分类 | no comment »

GFW

小抄如下:

为什么要说Google是被有计划有预谋的算计了,如果有怀疑的同学可以通过文中提及的方法自己查证,有图有真相。也可以参看另一篇有图有分析的相关文章

为什么说Google被算计是必然的命运,对于这个闷过黄梅天的大型局域网,我们还能做什么?可以搞件Tee穿穿,亮出自己的态度,也可以再回顾一下《The Matrix》,寻找自己的Zion,再不然就响应号召,如果都不适合,那就乖乖做个被老大哥看着的小绵羊吧,不过就算做小绵羊,也要小心使用工信部配发的滤霸

怎么做自己选择,本文不表明任何导向,请勿跨省抓捕。

(本来这个博客是不想写和政治有关的东西的,但是天太闷,不得不出来透口气了!)

Ubuntu 9.04 ATI显卡性能问题解决方案

四 27th, 2009 Posted in 技术 | 2 comments »

Ubuntu 9.04如约发布,本人也是第一时间下载安装完毕。不过安装后在Thinkpad X32(ATI M6显卡)上似乎是有些问题的,感觉整个系统,尤其是在Firefox中浏览网页时特别卡。看起来显卡驱动似乎有些问题,赶紧google一下,回馈的答案和我估计的差不多,是xserver-xorg-video-ati的一些问题

解决的方法在bug report中就有人提出了,修改xorg.conf,步骤如下:

  1. sudo gedit /etc/X11/xorg.conf
  2. 找到Section “Device”这段,在Identifier “Configured Video Device”下加上几行。
    Section "Device"
    Identifier	"Configured Video Device"
    Option		"RenderAccel" "on"
    Option		"AccelMethod" "XAA"
    Option		"AGPMode" "4"
    EndSection
  3. 修改后保存重启

试验了一下,确实要比之前好很多。起码在Firefox中滚动页面时是显著的流畅了。不过感觉还是有些小卡,希望在驱动更新后会得到解决。

利用rel=”canonical”帮助搜索引擎避免抓取重复内容

二 16th, 2009 Posted in 技术 | no comment »

Google最近通过其官方博客公布了一个新的方式来帮助搜索引擎更好的避免抓取重复内容。之前的一般建议方式是通过301转向来帮助搜索引擎了解获取内容的一个首选版本地址。但是当访问方式太多时,例如后面带了各种不同参数,或者不加上www的访问等等。通过.htaccess或者其它的一些转向方式都比较麻烦,更不用说你对.htaccess或者程序完全不了解的时候,面对这种情况,相信google这次倡导的方式能够更好的帮助你解决问题。

使用方式很简单,只要在页面头部,即和之间,加上一句:

<link rel="canonical" href="http://www.example.com/product.php?item=swedish-fish" />

href之后的”"之中的地址就是你指定的首选版本地址,绝对地址最好,如果使用相对地址,则最好配合<base>声明域名后一起使用。这样处理后当爬虫抓取时,就能根据这个地址明了是否已经抓取过了。这样避免了在搜索引擎结果中有多条记录而内容相同,不仅帮助改进了搜索引擎结果的有效性,也对于自己页面的评级更有好处。

但是需要明确的是,这个标签只对指向同域名下的地址有效,对于不同域名的转向,还是要通过301的方式。具体还有一些更详细的Q&A,可以参看原文。

参考来源:

使用Google表单及定制样式美化增强

二 9th, 2009 Posted in 未分类 | no comment »

Google在推出在线办公套件后,其后又推出了Google表单的功能。这个功能对于个人及小型站点的一些调查问卷,反馈问卷甚至可以用在聚会投票等任何对于数据收集要求不是特别高的情况下。而且这样一个在线表单系统不仅简单易用,更重要还是免费的。

在google docs中,新建的下拉菜单中有表单一项,点击后就会看到一个新建的初始表单。(更新:也可以通过模板新建,google提供了30余种各式各样的表单模板)需要填入表单名称,表单的描述信息,再下方就是表单内容了。目前提供了6种表单控件:单行文本框、多行文本框、单选框、多选框、下拉框、比例选择。填写了问题,帮助文本后,如果是选择形式的控件,再填写选项的文本。每个问题还可以选择是否必答。

表单完成后,还可以选择更多操作->编辑确认,在这里可以填写表单提交成功后的提示语,类似感谢回答之类的。接下来看最下面一行,您可以在这里查看已发布的表单之后的地址,点开这个地址,自定义从这里开始:

  1. 查看源代码,其它的都不重要,需要关注的是以下几个HTML元素:<form>,<input>,捎带着<label>。
  2. 把这些元素拷贝出来粘贴到你的页面中,接下来就是页面设计的天地了,用css去美化吧。
  3. 另外google表单除了必填项的后台校验,其它数据校验是暂时没有的。所以如果你需要的话还可以加上一个js的数据校验,这方面的代码网上很多,可以按需搜索。
  4. 还有一个可选项目就是提交后的跳转的修改。默认情况下提交后跳转至google的提示页,也就是之前所填写的编辑确认中的内容。你也可以用一个简单的js处理来实现跳转至指定页面。在form标签之前,增加一段内容:
    //初始化变量,默认为未提交
    <script type="text/javascript">var submitted=false;</script>
    //表单提交后的跳转处理
    <iframe name="hidden_iframe" id="hidden_iframe" style="display:none;" onload="if(submitted) {window.location='指定的跳转地址';}"></iframe>

    在form标签部分,增加两个属性:target=”hidden_iframe”及onsubmit=”submitted=true;”。这样处理后,表单提交后就能跳转至指定的地址了。

使用Google表单的最大优点就是简单,你不需要了解多少相关知识就能快速实现一个在线表单,通过上文的一些手段,也能变得更美观更好用。而且在数据收集完成后,也提供了摘要和电子表格的查看形式,更能导出为xls等常见电子表格格式,便于进一步的线下数据处理分析。

参考来源:

  1. How to style Google forms

Ubuntu 8.10下安装Google Earth 5.0

二 4th, 2009 Posted in 未分类 | no comment »

google-earth

先去http://earth.google.com/下载安装文件,这个略过不表。正常情况下会得到一个GoogleEarthLinux.bin文件。

然后开始安装:

第一步:sudo chmod +x GoogleEarthLinux.bin,或者右键查看权限,勾选允许以程序执行文件。

第二步:./GoogleEarthLinux.bin,执行安装文件开始安装。安装目录等都能修改的。然后就是耐心等待安装结束即可。

需要注意的是,在安装结束后,立刻运行Google Earth,但是会在登陆窗口出现时自动退出。同时在命令行窗口中,也会看到这样一句错误提示:

google earth 5 relocation error: /usr/lib/i686/cmov/libssl.so.0.9.8: symbol BIO_test_flags, version OPENSSL_0.9.8 not defined in file libcrypto.so.0.9.8 with link time reference

google了一下,其实解决办法很简单,只需要到google earth的安装文件夹中,将libcrypto.so.0.9.8改名为任意其它名字,或者删除掉应该也可以。这步操作的目的是保证google earth使用系统安装的libcrypto。

之后再来运行Google Earth 5,你就能正常使用了。按Google的推广语来说:投入海洋的世界。当然除了可以浏览海洋的大量相关信息之外,还有一个很好用的功能就是历史影像功能,可以看到当前地点的卫星图片历史,相当有意思。还有诸如足迹功能,火星影像查看等,包括界面也是改变过了,详细情况当然还是看Google Earth的官方产品导览

参考来源:

  1. Google Earth 5.0 trouble

代发UBM Tech的Site Manager招聘信息

十二 26th, 2008 Posted in 未分类 | no comment »

帮朋友发个招聘信息,知名跨国公司急招:

UBM Tech is a key business division under UBM group (LSE: UBM.L) after CMP acquisition, it owns 4 main part include Everything Channel, Tech Insights, Tech Web and Think Services. We setup China office early in 2008, now it launched two of products of Think Services, one is ICMI China (http://www.icmichina.cn) and the other is GDC China (http://china.gdconf.com).

We are now looking for a good candidate who can take main responsibility for online products daily operation and maintenance. Main task is content management via online admin tool, graphic design and HTML coding for content development with editorial team and campaign conduction with marketing team. But also include online advertisement administration for schedule, upload and banner image design and assistant with product development team for new project design, implementation and testing.

- 负责网站产品的日常维护和运营。主要包括通过在线管理工具协同编辑和市场推广团队进行内容管理包括图片设计处理和网页HTML代码编写。
- 负责管理在线广告包括上传以及图片设计和处理
- 协助产品开发团队进行项目设计,执行和测试

Job Requirement:
- With 2 years experience, B2B site is preferred
- Good Communication skills and team working
- Good understand and familiar with LAMP, CMS and Ad management system
- Proficient in web development include HTML, CSS, JavaScript, Ajax, Photoshop/Fireworks is must
- Familiar with project management include development process, testing and quality control
- Good writing, reading and oral English

职位需求
- 2年以上工作经验,有B2B网站经验尤佳
- 良好的沟通能力和团队合作
- 熟悉和了解LAMP构架,内容管理系统,广告管理平台
- 熟练运用网站开发技术包括HTML,CSS,JavaScript,AJAX,Photoshop/Fireworks
- 熟悉和了解项目管理包括开发流程以及测试
- 英语听说写良好

有意的请直接邮件至jvon # ubmtechnology.com.cn(请自行替换#)

关于mbstring多字节字符串处理模块的相关设置

七 22nd, 2008 Posted in 技术 | no comment »

今天正好在网上看到一篇关于如何设置mbstring系列函数为php默认使用函数的一篇文章,顺便也就仔细看了看php.ini中mbstring部分的设置参数。mbstring系列函数在涉及到中文及其它亚洲字符集的开发中是经常使用的,研究一下还是有必要的。

先说文章中提及的一个参数:mbstring.func_overload。这个参数的好处在于当你已经开发了大量程序后发现需要处理多字节字符集的时候,不可能将之前的程序全部检查,将相关函数替换成mbstring多字节字符处理函数。这个时候你可以通过设置这个参数来使php默认使用mbstring系列函数来重载替代相对应的php内置函数(例如常用的substr()会被自动替换为mb_substr())。有5个可选值:

  • 0:代表不重载任何函数(默认值);
  • 1:代表重载mail()函数;
  • 2:代表重载str系列字符串处理函数;
  • 4:代表重载ereg系列正则处理函数;
  • 7:代表重载所有以上提及的函数。

不过在php手册中也提及了这么一句:

It is not recommended to use the function overloading option in the per-directory context, because it’s not confirmed yet to be stable enough in a production environment and may lead to undefined behaviour.

哈哈,慎用慎用,毕竟这么强大无视的参数还是谨慎使用为好,影响太大。打开后影响的函数列表如下:

mail()		-> mb_send_mail()
strlen()	-> mb_strlen()
strpos()	-> mb_strpos()
strrpos()	-> mb_strrpos()
substr()	-> mb_substr()
strtolower()	-> mb_strtolower()
strtoupper()	-> mb_strtoupper()
substr_count()	-> mb_substr_count()
ereg()		-> mb_ereg()
eregi()		-> mb_eregi()
ereg_replace()	-> mb_ereg_replace()
eregi_replace()	-> mb_eregi_replace()
split()		-> mb_split()

接下来几个参数也简略介绍一下,自己看注释理解的,可能有误:

  • mbstring.language:设置默认语言。默认值为neutral,就是UTF-8,这样就不错。
  • mbstring.internal_encoding:设置默认的内部编码。如果设置过mbstring.language,必须放置在之后,不然无法覆盖之前的设置。默认值NULL。
  • mbstring.http_input:默认的http输入编码。默认值pass,就是不处理。
  • mbstring.http_output:默认的http输出编码,前提是必须将output_buffering打开并将output_handler设置为mb_output_handler。默认值pass,也是不处理。
  • mbstring.encoding_translation:打开后将会自动将输入编码转换为internal_encoding所指定的编码(同样慎用,都交给机器未必是好事)。默认值Off,万幸。
  • mbstring.detect_order:设置编码的检测顺序,在使用mb_detect_encoding而又没有在第二个参数中指明检测编码顺讯列表时,将会以这里设置的为准。默认值auto,在language为neutral时也就是代表检测顺序为(ASCII, UTF-8)。
  • mbstring.substitute_character:当编码无法转换时的处理方式。默认值为NULL,也就是不显示无法转换的字符。你也可以设置为long,显示字符的hex编码;或者指定其他特定字符(例如”@_@”,呵呵)。
  • mbstring.strict_detection:是否打开严格的编码检测模式,这个找了半天才知道什么意思,在处理有不同编码或错误编码字符混杂情况(例如mb_detect_encoding(”testä”))下打开这个参数能够防止mb_detect_encoding返回错误的编码。可以参见PHP Bug24309。默认值为Off。
  • mbstring.script_encoding:PHP脚本的默认编码。默认值为NULL。

大多数情况下默认值好像工作的就挺好,而且最好程序中也不要显式依赖于ini设置。使用mbstring系列函数时明确指明编码类型也许是一种更好的处理方式。在Unicode情况下,可以考虑设置为以下形式。

mbstring.language		= neutral
mbstring.internal_encoding	= UTF-8
mbstring.encoding_translation	= Off
mbstring.http_input		= auto
mbstring.http_output		= UTF-8
mbstring.detect_order		= auto
mbstring.substitute_character	= none

顺利解决 Firefox 3 无法保存设置的问题

六 26th, 2008 Posted in 技术 | one comment »

安装了Firefox 3之后的日子,出现了一件怪事,单位的Firefox 3.0用的好好的,家里的出现了所有设置在关闭浏览器后消失,再开启变为原始状态的怪毛病。网上搜索了一下,发现是与\Documents and Settings\{你所使用的用户名}\Application Data\Mozilla\Firefox\Profiles\{一串随机字符}.default下的pref.js有关。无论我如何设置浏览器,pref.js始终不变。尝试删除pref.js让浏览器重建,却发现无法删除,关闭Firefox 3后依然无法删除,始终提示有进程在使用。下了个WhoLockMe看看是何方神圣,发现是PPLive所带的一个PP加速器锁定了该文件,删除PP加速器后一切正常。不过至于为何就不瞭了,如果有其它同学碰到这个问题,也请重点关注pref.js,这是保持所有firefox设置的文件,也是about:config中看到的那些。

另:今天看到了一个Firefox 3的小彩蛋,在地址栏中输入about:robots看看:)总算知道为啥Volcano老大之前的msn签名是“机器人有咬不得的闪亮的金属屁股。”,哈哈,小生愚钝了。。。

Firefox 3.0 正式发布

六 18th, 2008 Posted in 技术 | one comment »

2008.6.18北京时间01:00正式发布Firefox3的下载,本来想等到1点抢鲜下载的,最后还是没有熬住,顺带着连意法大战都没精神看了。到单位后立马开始下载了一份,安装速度倒是很快,之后使用的感觉也是区别不大。毕竟从RC到Release不会有大的区别,事实上也不会区别,可以参看Volcano老大的说法

具体使用上面的差别之前提过一些,对于页面开发人员来说,对于js和css的支持改进是绝对值得关注的。可以尝试着在ff环境下使用些更高级的手段来得到更好的页面效果。

Firefox 3.0 RC1使用初体验之二

五 29th, 2008 Posted in 技术 | no comment »

自从下载Firefox 3.0 RC1(以下简称FF3)后,使用已近十天。这里就简单说说感受。

FF3总体来说,毕竟还不是正式版本,不稳定的情况还是有不少。比如在Vista上表现不佳,据同事反映,FF3在Vista上的第一次启动时就出现界面上的bug。另外在Vista上会出现频繁崩溃的情况。以我个人在XP上的使用来说,大部分时间表现正常,但是内存和CPU占用还是不小。CPU可能飚至80-90,内存大致在3位数。假死情况也是时有发生,不过就是有时候能恢复正常,比FF2表现略佳。

好的方面也是有,Tab切换的速度,页面的流畅度都有提升,但是这个是感觉,因人而异。智能地址栏还是很有特点,包括一键站点信息,还是很方便的。书签方面的改进并没有去体验,还是保持使用del.icio.us的插件,所有的书签也是存放在上面,本地完全不存放。

插件方面不必有大的担心,总是会有更新保证你的使用,需要的是等待。一些插件的使用情况可以参见前一篇

FF3RC2的话应该在6.6能够面世,不清楚还有没有RC3。RC多些倒也无所谓,我只希望FF3面世有一个稳定的表现,对于FF3的市场拓展应该是很有好处。FF目前也有一个活动,是承诺在下载日下载Firefox 3来创造吉尼斯世界记录。我也参加了,不过要是参加的人都能发些纪念品就好了,哈哈哈。。。