2008年1月24日星期四

Yahoo支持OpenID技术实现单点登录

  据Yahoo报道,Yahoo的用户将可以使用其用户ID做为登录其他支持OpenID 2.0认证的网站,实现单点登录(Single Sign-On),这将减少人们在不同网站创建用户并记忆密码的过程。

  据OpenID基金会报道,目前已经有1万家网站向最终用户免费支持OpenID的开放架构,雅虎公司表示,雅虎全球拥有2.48亿活跃注册用户,Yahoo的加入将使得全球OpenID的总数增加两倍,达到3.68亿个。

  雅虎将从1月30日起公开测试其OpenID 2.0服务,届时雅虎用户可以获得他们的OpenID地址并登录OpenID网站。雅虎希望OpenID技术能够日趋成熟并得到完善,这样将来的认证方式将会从传统的用户名密码的认证方式改变为使用URL地址的OpenID认证方式,雅虎将在其网站上提供一些代码和帮助,以便第三方开发者能够迅速将其嵌入自己的网站上。

  雅虎表示,雅虎用户使用OpenID登录过程中,可以拥有单独的昵称,第三方网站将不会得到用户的电子邮件地址和即时通讯地址。

  WordPress在去年就已经支持使用WordPress Blog的地址做为OpenID使用了。Google Blogger也即将支持OpenID。目前提供支持OpenID的主要有AOL (openid.aol.com/screenname)、LiveJournalusername.livejournal.com)、Technorati (technorati.com/people/technorati/username)、Voxmember.vox.com)、WordPress.comusername.wordpress.com)、MyOpenIDClaimId等等。

  注释:OpenID认证协议是目前OpenID主要的规范。它提供一个通过询问指定的第三方来确认某个URI的所有权的机制。目前许多网站在使用这个规范的前一个版本,通过基于URI的标识来识别用户。

2008年1月23日星期三

微软强行升级浏览器到IE7

  据INFOWORLD等国外媒体报道微软将从2月12日起将强制用户计算机升级到IE7浏览器,如果用户打开了“自动更新功能”,则系统会自动将当前浏览器升级为IE7浏览器,微软表示,此举是出于对目前安全问题的关注。

  这次升级对于中国用户来说是一场巨大挑战,根据我用雅虎统计分析我的博客访问用户,目前使用IE6的高达55%,使用IE7的仅为20%,而使用FireFox也达到了10%.这次升级将使得大量用户被迫使用IE7浏览器。

  根据微软自己的解释,IE7具有全新的界面、选项卡式浏览、RSS订阅源、集成搜索、更高的安全性等好处,可惜对于我来说,这些好处还不值得让我改变使用习惯进行升级。

  全新的界面需要改变现有的使用习惯,选项卡式的浏览目前FireFox和很多IE外挂都提供,RSS订阅源则不如使用Google Reader方便,集成搜索不如直接安装Google工具栏,更高的安全性不如我本地安装的防火墙和杀毒软件有效。

  我觉得,微软的IE7中应该提供一个兼容IE6界面的选择,这样用户升级浏览器可以节省很多时间来适应新的软件,微软大概为了推广其Vista系统或者想停止XP系统,于是强行让用户升级到IE7的方式来适应Vista的习惯,微软这算盘打的不错,可惜用户可能并不想追赶时髦,现有的软件能够完成自己的需求就可以了,微软的这种强行升级的行为是一种不尊重用户的行为,这种使用界面巨大变化的软件应该提供兼容方案,实行平滑升级,这才能保证用户的最高满意度。

鲜果文章推荐的DIGG功能

  鲜果热文排行最新推出了一个很有趣的功能,将鲜果阅读器的推荐功能提供接口供外部调用,只需要在独立博客中增加一些代码,就可以把鲜果的“推荐”功能加入到本地的博客之中。

  我爱水煮鱼已经提供了一个基于WordPress的插件可以实现这个功能,我这里补充一下基于Z-Blog 1.7用户的修改方法。

  如果你使用的是默认Z-Blog的RSS输出,那么直接将以下代码复制到b_article-single.html模板文件的某个位置(例如文章底部)。如果你使用的是自定义的RSS输出,那么将下面代码中的<#ZC_BLOG_HOST#>rss.xml修改为你的RSS地址即可。

<div class="xianguo_digg_button"><script type="text/javascript">defaultFeedUrl ="<#ZC_BLOG_HOST#>rss.xml";defaultItemUrl="<#article/url#>";</script><script type="text/javascript" src="http://re.xianguo.com/api/xianguoDiggButton.js"></script></div>

  目前这个功能还在测试阶段,我目前发现的问题是,推荐数字的背景是白色,不能自定义,和有些模板融合起来会有问题,点推荐的时候每次都要登陆一次鲜果系统,不能保存用户状态。

  我目前使用的是“Z-Blog文章投票插件”,也提供用户评分功能,要是有一天能将这个插件和在线阅读器的推荐整合在一起那该多好啊,那样的评分就更多更有效了。

2008年1月22日星期二

WordPress MU优化表的脚本

  WordPress MU由于每建立一个新的用户都会自动建立十多张表,因此当注册大量用户的时候会建立非常多的表,引起系统的性能出现问题,我这里写了一段脚本,可以将WordPress MU中的不活动用户(从没有发布文章的用户)进行删除,以节约系统资源。PHP脚本源代码如下:

<?php

    $mysql_host  = "localhost";
    $mysql_user  = "root";
    $mysql_pass  = "";
    $mysql_db  = "wordpress";

    $mysql_mylink = mysql_connect($mysql_host, $mysql_user, $mysql_pass)
    or die ("Cannot make the connection");
    mysql_select_db($mysql_db, $mysql_mylink)
    or die ("Cannot connect to the database");

    $strsql="select * from wp_blogs where blog_id>2  ";

    $rs_query = mysql_query($strsql);
    $alls=mysql_num_rows($rs_query);

    while (($RS = mysql_fetch_array($rs_query))) {
          extract($RS);
    $blogid=$RS["blog_id"];

    $query2 = "select * from wp_".$blogid."_posts ";
    $result = mysql_query($query2);
    $num= mysql_num_rows($result);
    //print $num;
    if ($num<=2) {
  print "DROP TABLE IF EXISTS wp_".$blogid."_comments;";
     print "DROP TABLE IF EXISTS wp_".$blogid."_links ;";
     print "DROP TABLE IF EXISTS wp_".$blogid."_options ;";
     print "DROP TABLE IF EXISTS wp_".$blogid."_postmeta ;";
     print "DROP TABLE IF EXISTS wp_".$blogid."_posts ;";
     print "DROP TABLE IF EXISTS wp_".$blogid."_terms ;";
     print "DROP TABLE IF EXISTS wp_".$blogid."_term_relationships ;";
     print "DROP TABLE IF EXISTS wp_".$blogid."_term_taxonomy ;";
  print "DELETE from wp_blogs where blog_id=".$blogid.";";
    }
    }

    mysql_close ();

?>

  由此看出,WordPress MU使用起来实在不怎么样,多表结构设计的可能有问题,会带来很多麻烦。

2008年1月21日星期一

三个Windows Media Player音乐插件

  微软的Windows Media Player做为老牌的音乐播放器,有很多和其他应用程序共享的插件,今天我介绍三个有用的音乐插件,当你使用Windows Media Player收听音乐的时候,这些插件可以将你正在收听的歌曲发布到Windows Live Messenger、Google Talk和Last.fm。

  首先安装Windows Media Player 11.0,然后安装Windows Live Messenger 8.5,再安装最新英文版本Google Talk,然后到Last.fm网站下载最新的Last.fm软件,这样,我们听的歌曲就可以很轻松的得到分享

  接着,在Windows Media Player的工具-插件-选项-插件-背景中,确定Google Talk Music Plugin/Windows Live Messenger音乐插件/Last.fm plugin都已经选中,然后在Google Talk的自定义信息处选中“Show current music track”,这样,当我们使用Windows Media Player播放歌曲的时候,就会自动将当前播放的歌曲分享到Google Talk、Windows Live Messenger和Last.fm,而使用FriendFeed则可以自动跟踪Last.fm上共享的歌曲。

  当然,如果不习惯使用Windows Media Player,目前这三个插件也支持iTunes和Winamp,不过目前还不支持国产的一些音乐播放软件如千千静听和酷狗播放器。

2008年1月20日星期日

Dreamhost的MySQL存在限制

  在购买DreamHost的时候,虽然上面标明了MySQL数据库是Unlimited(无限制),但是实际使用的时候却是有限制的,DreamHost的DNS稳定性也不太好,使用的时候需要多加注意。

  以我的切身体会,我使用WordPress MU在DreamHost搭建一个免费托管博客服务,由于WordPress MU的特性,每新增一个用户都要在数据库中建立十多张表,因此,仅仅两千多个注册用户的WordPress MU就有了两万多张表,虽然使用WP Super Cache可以使得大量访问不需用访问数据库,并没有引起什么性能问题,但是DreamHost却说这个数据库的表太多,会使得他们每天的自动备份数据库出现超时错误,因此他们要求将这个WordPress MU数据库迁移到其他地方。

  做为对照,我使用基于ASP+ACCESS建立的另外一个OBLOG博客托管服务,用户数已经达到一万三千多,使用起来却没有任何的问题,这不得不令我对WordPress MU的可用性发生了怀疑,可能这种建立多表的方式存在一些问题,对于MYSQL数据库的管理会不方便,当然,自己独立的MySQL数据库应该会好一些。

  另外,我对DreamHost也比较失望,1月15号那天由于他们自己的操作错误,还给自动从包括我在内的大多数用户的信用卡中扣除了一年的费用,引起了一场大规模的乌龙事件,好在16号他们就将238.8美元退回了我的信用卡,这件事后我就将我的信用卡帐号从DreamHost中删除了,免得以后他们再乱扣款。

  最后,根据bemike的方法,我SSH登陆后使用下面的语句得到我使用的这台服务器一共有388个SSH用户和1124个FTP用户,一台服务器上放这么多网站,难怪我登陆服务器速度这么慢。

grep -i /home/ /etc/passwd | grep /bin/.*sh$ | wc -l

grep -i /home/ /etc/passwd | wc -l

2008年1月19日星期六

微软的SLP软件加密保护服务

  今天微软的几个工程师来到我们公司,演示他们开发的一套软件加密系统:微软软件授权保护系统(SLP/Software License Protection),在这个系统上还有软件许可及保护服务(SLP Services),听他们讲了一些相关的知识和技术,感觉大有收获。

  SLP代码保护器(SLP Code Protector)

  众所周知,使用微软的.NET开发的应用软件,编译之后的EXE和DLL文件,可以使用Lutz Roeder's .NET Reflector很方便的进行反编译,使得一些核心代码的安全性受到威胁。这时就可以使用“SLP代码保护器”(SLP Code Protector)对.NET的代码进行保护,使得其核心的函数经过了加密,无法使用反编译工具进行反编译。

  SLP代码保护器是免费产品,可以免费在.NET开发中使用。

  SLP置换器(SLP Permutation)

  如果要进行加密商用加密处理,需要和各个不同的企业使用不同的算法,因此使用SLP置换器(SLP Permutation),把现有代码通过置换算法转换为安全虚拟机(SVM,Secure Virtual Machine)语言,然后代码的入口处就会增加一小段代码,也就是SVM,代码无论是被浏览还是被执行都要先执行这段代码,这就实现了将关键核心的算法的代码进行了内容上的替换,实现了软件许可的认证和保护功能。

  SLP在线服务(SLP Online Service)

  软件被保护后,软件的许可证可以通过在线服务进行动态打包,SLP服务网站定义了产品许可证的不同特性(Feature),可以针对不同的个人进行灵活发放。

  SLP服务器(SLP Server)

  软件开发商需要单独搭建一台自己的服务器并创建软件授权-基于机器、时间(软件订阅和试用)、用户或功能-针对它们的产品。服务器会创建激活码,用户可以通过激活码进行数字授权,激活他们的软件。

  SLP激活(SLP Activation)

  客户软件的激活可以通过两种方式激活:在线激活和离线激活方式。激活时候客户输入激活码,然后SLP会收集客户的硬件信息(硬盘、CPU、主板等),通过这些硬件信息生成一个客户独有的硬件指纹,然后连接到SLP服务器上获取License文件并引入客户软件系统。

  总的来说,微软的这一套软件授权保护系统还是比较完善的,从产品开发、许可管理到销售等主要的业务流程都可以走通,是软件企业用于保护自身软件的一个不错的工具,价格也不算贵,好像只有几万美元的价格。以微软的技术实力来看,这套软件的安全性应该也是不错的,不过其安全性还是低于硬件加密锁(加密狗),虽然加密狗被破解也是很常见的

  不过从另一个方面上来看,微软的Windows几乎每个版本都被破解过,因为微软花费巨大精力研究的最尖端的反盗版技术用于保护Windows和Office,但同时全世界最顶级的黑客和破解者也在研究微软的这套加密保护系统,破解了Windows的加密系统,那么用SLP开发的所有加密系统都会面临被破解的风险,而一些冷门的加密产品由于利益较少,被关注的也较少,因此可能反而更少人去对其进行破解。

  微软软件授权保护服务的网站地址是:http://www.microsoft.com/slps ,有兴趣的话可与去看看。