作者归档

哪里有好用的收藏夹

为什么要一个好的收藏夹?

  1. 互联网的快速发展,催生了大量优秀的站点,已经没办法一一记住
  2. BLOG的流行促使越来越多的人写BLOG。要记住所有朋友的BLOG也是一件很难的事
  3. 这么多的网页(我已经收藏了几百个)全扔在一个目录下让人很晕
  4. 经常忘了收藏的页面是关于哪方面的,关看标题还是猜不出来(有的标题是Main/home之类的,没法知道其含义,网站开发者注意了)。得打开去看才知道

我心目中好用的收藏夹应具有以下功能:

  1. 在线存储,异地同步
  2. 要能直接显示在我的浏览器工具栏上
  3. 能以树形分类的方式归类
  4. 能以tag的方式标注并在链接旁边显示出来
  5. 能按分类或tag的方式查找

我现在用的收藏夹(傲游浏览器)具有前面三点的完全功能和第4点一般的功能,可以标注tag,但是不知道有什么用,又不能按tag查找。导致我已经找不到想要看的网页。另一个比较严峻的问题是有的网页同时属于几个分类,由于傲游浏览器的收藏夹不能按tag查找导致我得在每个分类下都放一个收藏项,浪费空间。

谁能告诉我,哪里有这么一个收藏夹?

慎用iframe

最近在实现一个web编辑器,于是乎用到了传说中人见人怕的iframe。经过四天的拼搏,总算是弄出了个雏形。实现了插入图片,字体修改功能没做,不打算做,个人觉得不是很必要。另外还想实现插入flash,不过最终确认不可能(完美)实现,原因请看下文。

为什么要慎用iframe?

iframe在不同浏览器的行为各异,而且几乎都存在足以把开发者折磨致死的问题。

IE(trident)

问题:

  1. designMode下无法显示flash(这个待确认,似乎是这样的)
  2. iframe失去焦点后再得到焦点时,光标位置将丢失(解决办法下面再说)
  3. 选中非文本区域或未选中任何对象(光标仍在iframe内)将丢失光标位置(QQ邮箱好像实现了,看了它的实现方法后再回来确认)

解决方案:

  1. 无法解决
  2. 在window.onbeforeactivate事件中记录光标位置,在进行编辑操作时恢复光标位置
  3. 待解决

代码:

光标的记录与恢复

var bookmark;
var range = document.selection.createRange();
if (range.type.toLowerCase() == "text") {
    bookmark = range.getBookmark();
}

var newRange = document.body.createTextRange();
newRange.moveToBookmark(bookmark);//将光标移到原来的选中区域
newRange.collapse();
newRange.select();

 

Firefox(gecko)
问题:

  1. designMode下无法显示flash
  2. 某些情况下不会加载src指定的页面(解决办法下面再说)

解决方案:

  1. 无法解决
  2. 使用javascript重置iframe的src或者用javascript动态生成iframe并插入到相应节点

Opera(presto)
问题:

  1. designMode下无法显示flash

解决方案:

  1. 无法解决

唯一能正确处理iframe的是webkit,越来越喜欢它了,chrome快点出插件,Maxthon3快点完成开发吧。

待续。。。。

支付宝集成经验之技术支持问题

经过三天的努力,终于把接口调通了。在调试的过程中,遇到了一些文档中未提到的问题。而且也发现了文档和PHP编程接口的一些缺陷和错误。
这些缺陷和错误可能给开发者带来了一些误导。

文档错误:
1)所有的文档中都把错误代码HAS_NO_PRIVILEGE(没有权限访问该服务)写成HASNO_PRIVILEGE。

 
文档缺陷:
1)文档《标准快速付款接口文档 V2.0》和《批量付款到帐号》中关于数字签名部分有内容不明确。
《标准快速付款接口文档 V2.0》5.2.4. 支付宝系统返回处理结果:

支付宝系统接收到商户系统发起的请求,处理成功后返回的参数中同样包含有参数sign、sign_type,商户需根据sign_type 计算sign 值,最终检验支付宝系统返回的sign 值,这里要注意的是商户需要对每一个返回参数的值先进行decode 后再验证sign。

这里的decode我的理解应该是转换编码的意思吧?!但第一次看会很直觉地以为是urldecode。

2)文档中没有提到,本地以某种编码提交给支付宝,支付宝在发通知的时候就会以该编码对数据进行编码并发回本地。虽然这是比较容易想到的,但是文档还是应该说清楚。毕竟,搞错编码是网络传输中经常会出问题。
3)支付宝返回到我的return_url中的参数中,is_success这个参数没有说明,虽然字面就看得出来,但是写到文档里也没什么不好吧。
4)文档《标准快速付款接口文档 V2.0》中没有错误代码TRADE_SELLER_NOT_MATCH,网上查了好像是网址不匹配还是什么原因,不清楚。重现方法:用测试帐号***@***.com发个out_trade_no为1的请求就会出现。
5)文档中还没提到,当网站使用非第三方权威机构签名的SSL证书时,将收不到支付宝的notify。确认已经加了notify_url。

PHP编程接口缺陷:
1)编程接口及示例代码写得过于随便,出现明显的错误
批量支付示例代码index.php中

"pay_date" => date(Ymd),  //付款日期 格式20070412

应为

"pay_date" => date('Ymd'),  //付款日期 格式20070412
"batch_no"  => date(Ymdhms) , //批量付款订单号

应为

"batch_no"  => date('Ymdhms') , //批量付款订单号

出现这个错误,说明了支付宝在发demo代码给用户时没有先测试,至少是发给我的这份没有,因为这个demo是不可能运行得起来的。

2)alipay_service.php中

if($parameter['_input_charset'] == "")

应为

if (array_key_exists('_input_charset', $parameter))

否则,当传进来的$parameter不包含_input_charset项是会出现错误Undefined index: _input_charset

3)编程接口能写得完善一些,实现DSA签名和RAS签名功能

另外,demo代码中把提交表单的按钮放到form外面了。一开始我没注意为什么要这么做,后来遇到签名错误时,弄了一个小时才发现,原来的我把提交按钮放到了FORM里面,并给了提交按钮一个name属性。这导致了提交到支付宝的数据中多了一项,导致签名错误。这是一个很隐蔽的陷阱,在文档中明确提醒集成开发者,相信会对集成开发者有很大的帮助。避免像我一样浪费了一个小时才找到错误原因。

httpd、php编译参数

PHP编译参数

CFLAGS="-O2" ./configure --prefix=/usr/local --with-config-file-path=/etc \
--with-apxs2=/usr/local/httpd/bin/apxs  --with-libdir=lib --with-mysql=no  \
--disable-ipv6 --disable-tokenizer --disable-short-tags --enable-mbstring=shared  \
--with-gettext=shared --with-regex=php --with-freetype-dir=/usr/local --with-gd=shared \
--with-png-dir=/usr/local --with-jpeg-dir=/usr/local --with-pdo-mysql=shared,/usr/local/mysql \
--enable-pdo=shared --with-pdo-sqlite=shared --with-sqlite=shared --with-openssl-dir=/usr/local/openssl \
--with-openssl=/usr/local

APR编译参数

CFLAGS="-O2" ./configure --prefix=/usr/local

APR-UTIL编译参数

CFLAGS="-O2" ./configure --prefix=/usr/local/apr-util/ --with-apr=/usr/local/apr --with-mysql=/usr/local/mysql/

HTTPD编译参数

LDFLAGS="-L/usr/local/apr/lib" ./configure --prefix=/usr/local/httpd --with-apr=/usr/local/apr  \
--with-ssl=/usr/local/openssl --enable-mods-shared=all --enable-so --with-apr-util=/usr/local/apr-util \
--enable-modules=all --enable-isapi=shared --enable-cgi=shared --enable-ssl=shared

丰顺县汤南镇罗氏世系表

国朝凤宣隐,克仕光恩文。
邦端贞德裕,世绍礼义尊。
尧舜宗英俊,孔曾道永存。
天嘉明福善,万有继登云。
承平开泰运,先哲衍经纶。
益智连科捷,蓝田耀玉琨。

罗氏始祖画像

罗氏始祖画像

MySQL安装步骤

  1. 添加mysql用户组和mysql用户
  2. 从源码编译安装
  3. 把mysql/support-files/my-small.cnf(根据实际情况可选择my-large.cnf或者my-medium.cnf)复制到/etc/my.cnf
  4. 把mysql/support-files/mysql.server复制到/etc/init.d/mysqld,并添加可执行权限;
  5. 运行 mysql/bin/mysql_install_db安装数据库文件
  6. 将mysql/var的所有者设置成mysql
  7. 设置用户权限和密码
GRANT ALL PRIVELEGES ON *.* TO root@'%' IDENTIFIED BY 'password';

操作系统:CentOS 5.2

关闭防火墙

在家做开发开着防火墙是没什么意义的,只会惹来一堆麻烦,关掉为好。

临时关闭

/etc/init.d/iptables stop

永久关闭

chkconfig --level 35 iptables off

CentOS国际化配置

配置文件

/etc/sysconfig/i18n

设置为相应的区域和编码就行了

LANG="zh_CN.UTF-8"

我疯了,Windows!

今天回家重装了系统,弟弟的移动硬盘中毒了,根目录下有一个autorun.vinf的文件,病毒本体是一个.vmx文件,在回收站目录里面。

这两个文件的所有者被设置成一串不知道什么用户,其它用户都没有权限删除它,包括管理员。试过了好多文件删除工具都删除不了,包括DeleteOnBoot。只能格式化了。

Windows的设计者不知道怎么想到,竟然还有管理员都没有的权限。我无语了。

不要挑战用户的习惯

百度新版贴吧面世仅一天便成绝响。用户骂声一片,李彦宏下令改回旧版。

前阵子QQ邮箱也发生类似的问题,放了一个星期就换回了旧版。

再往前的典型例子应该算是VISTA了吧,我觉得VISTA失败一个很大的原因是操作习惯改变太大了。或许呢,也可以认为VISTA只是给WINDOWS 7铺路,但是无可否认,VISTA是失败了,跟WINDOWS ME一样的命运。

所有这些事情都告诫我们,不要试图大幅度改变用户的操作习惯,那是在引火自焚。

新版百度贴吧预览图(图片来自网友BLOG搜索引擎周边):

百度新版贴吧预览图

百度新版贴吧预览图