自言自语

I'm Wang Xianyuan, writing for myself, more studying, more experience…

博客升级到博易2.0

By

快过年了,忙得一塌糊涂。不过还是抽空在第一时间对 BlogEngine.NET 2.0 进行本地化,并于上周正式发布了中文版。这个版本的一些特性在之前已经有过预告,管理面板的用户体验有质的飞跃。为了统一风格,我在这个版本中对默认模板的风格进行了改变,同时也更新了博易网站的主题色。

因为部件机制改变的关系,博易1.x 的部件(Widget)并不能直接拿来为博易2.0所用。由于时间紧,目前仅把我认为最有用的一些部件进行了更新,并集成到了新版本中发布了。而其他的部件将在日后根据需要慢慢去适应博易2.0。

前两天,又抽空把本博升级到了博易2.0版。升级其实很平稳、简单,没出现什么疑难杂症,测试这几天来也都一切正常。在整理友情链接的时候,发现了一些链接是无效的,不是404就是无法连接。对不起各位,这些站点的链接我已经给屏蔽了,如果站点的主人重新恢复了站点,请联系我给予恢复。

耍宝“名字”上线

By

继耍宝“段子”上线之后,今日(2011年的元旦)耍宝“名字”也正式和大家见面了。

每一个名字背后都有一个密码。
在耍宝看来,这些密码就是耍宝的基因。
耍宝与你来破译名字背后的密码,自制一个个名字解谜游戏,逗人一乐。 :-)

这里有两个例子:
2011年你身上最可能发生的幸事…
植物大战僵尸,你是植物还是僵尸?!

你可以在线自制名字游戏,并发给你的盆友们,他们定会认为你是耍宝高手!

原文链接:http://shuabao.net/2011/01/01/shuabao-names.html

下雪,冷吗?

By

今天上海下了第一场雪。上午还是晴天,中午就下了一些雪屑;埋头工作到下午,出去一看已经有些积雪了;下班之后更是大雪花飘落,那个银装素裹。有一阵子没在博客里面写有关生活的这类事,生活其实也有些内容可以分享,比如最近每日都听多次、看多遍的 Yanni 经典。拉斯维加斯音乐会那爆满的人气、快速的节奏、火爆的场面让人欣赏之后暖洋洋地……不,简直就是热血沸腾啊!你冷吗?冷就来点PLAY吧!

雅尼拉斯维加斯音乐会(Yanni Live! The Concert Event),这是除了雅典卫城音乐会之外,最让我喜欢的 Yanni 音乐会了。与之前的 Yanni 风大为不同,她的质变在于:从最初的由一位音乐天才领导着一群乐器疯子到现在的由一位音乐大师领导着一群会耍宝的乐器疯子。下面是该场音乐会的曲目,喜欢就收藏本页吧!Read More →

BlogEngine.NET 2.0 RC 发布!

By

上周三,BlogEngine.NET 团队发布了 BlogEngine.NET 2.0 第一个候选版。主要的新特性是支持 SQL CE 数据库,博客管理后台进行了重大的 UI 更新,这得益于 BE Team 里新加入的 Janko Jovanovic。不仅对后台 UI 进行了重大变更,博客的模板引擎也慢慢标记模板化了。虽然目前为止支持标记模板的部件还不多,但至少看到了这方面的改进。旧的完全基于 ASP.NET 自身 Master Page 的模板技术让 UI 设计师们头疼,设计师们为此不得不放弃这个系统而选折其他产品。经过 BE 2.0 的改进,现在设计师们(包括我)应该看到了一丝曙光。

曾经对 WordPress  后台的智能、强大、体验优越而感叹,BE 2.0 的发布让 BE 的用户体验进一步提升,成为优秀的博客系统里面的“第二个 WordPress ”已经越来越近。BE 的用户们可以看看这里的视频,对比下 BE 2.0 与之前的后台的差别。BE 2.0 详细而完整的更新,在这个页面列出。

在看到 BE 2.0 RC 的发布之后,我已经提交了第一份中文语言包的更新。目前 BlogEngine.NET 官方提供的 BE 2.0 候选版(含我贡献的中文语言包)可以在这里下载,附英文升级文档。但是由于还不是正式版,还有好多地方的文本未加入到语言包中。我会在正式版释出后发布一个完整汉化的 BlogYi.NET 本地化版本,请期待吧。

谁在做那个“艰难的决定”?

By

如果说腾讯携用户以令360是互联网行业老大的悲哀,那么百度、金山、可牛、傲游等IT厂商同腾讯一个鼻孔出气则是整个IT行业的悲哀。腾讯,乃至多家天朝互联网企业,何以如此胆大地不拿用户当回事,而把用户作为自己的砝码来左右?是因为腾讯没有竞争力相当的对手吗?是因为天朝互联网已被少数巨头厂商垄断?是互联网行业缺少充分的竞争?还是因为天朝的用户本身就没有太多权益意识?我想这些因素只是众多产生这种超自信、超霸气、超独裁企业的原因之一。天朝社会,一直是集体利益大于个人利益,而所谓的“集体利益”实际上又是少数有话语权的人他们的“个人利益”。用户,大多数情况下是没有话语权的个体。这样的个体很难有效地组织、形成一股合力去与“集体”讨价还价。

尽管用户作为个体很难有“话语权”,但是用户们是有“选择权”的。而用户的选择权又是否真的能让用户获得一个好的实际权益呢?事实上,腾讯、百度、金山、可牛、傲游等企业的做法表面上是在让用户选择“用”或者“不用”自己的产品,当互联网用户们不能形成一股合力去抵制他们的产品时,这时实际上就成了让用户选择“用”或者“不用”该类的产品,用户的“选择权”成了“放弃权”。就拿腾讯来说吧,QQ在中国是IM的代名词,是大部网络公民的寻呼机。你要上网去找一个朋友,那朋友几乎必定会给你留一个QQ或者再多加一个并不怎么经常开启的电子邮箱。这就意味着,你要联系天朝的网络公民,QQ是必备软件。这时你对QQ这个产品的选择就意味着你在做一个艰难的决定——要么融入天朝的网络社会、要么离开这个网络社会一个人老死在无人知晓的孤寂之丘。虽然百度、金山、可牛、傲游没有腾讯在天朝这样的底气(他们还是希望能尽量争取用户砝码),但腾讯与他们联合之后不仅能获得大大的好处,还能干掉他们素有世仇的360,何乐而不为?就好比我是老三,没血性的老大太高大,真汉子老二又跋扈,现在我联合老大把老二干掉,不仅可以向老大表忠,更可以把自己上面的老二铲除,何乐而不为?

这些霸气的企业,表面上是自己在“做出一个艰难的决定”,实际上是把那个艰难的决定丢给了用户。

BlogEngine(博易)垃圾评论简单过滤插件

By

不少博易用户反映近期被潮水般的垃圾评论所困扰,事实上今年以来我就发现垃圾评论越来越多。尽管博易具有反垃圾评论机制,但需要进行规则配置,而垃圾评论机器人不断升级,博易的反垃圾评论规则配置起来就不那么好用了。

分析这些垃圾评论的来源,很容易得知垃圾评论的发送者来自国外(因为几乎全部为英文)。这是由于今年以来,BlogEngine的快速发展,而被有利可图的垃圾评论制造者盯上了。而博易在对BlogEngine英文版进行本地化后对“original powered by BlogEngine.NET.”版权字样进行了保留,这样将BlogEngine的垃圾评论机器吸引了过来。魔高一尺道高一丈,用简单的方法即可将99%的此类垃圾评论拒之门外,原理很简单,在评论被添加进来的时候对其进行分析,如果评论中连一个中文字符都没有,则认为是垃圾评论,第一时间将其删除。

以插件方式实现,源码如下:

[code:c#]

using System;
using System.Web;
using BlogEngine.Core.Web.Controls;
using BlogEngine.Core;
using System.Net.Mail;
using System.Threading;
using System.Text.RegularExpressions;
 
[Extension("移除英文垃圾评论", "1.0", "<a href="http://www.blogyi.net">BlogYi.NET</a>", 900)]
public class RemoveEnglishSpam
{
    /// <summary>
    /// Hooks up an event handler to the Post.CommentAdded event.
    /// </summary>
    static RemoveEnglishSpam()
    {
        Post.CommentAdded += new EventHandler<EventArgs>(Post_CommentAdded);
    }
 
    private static void Post_CommentAdded(object sender, EventArgs e)
    {
        Comment cmt = (Comment)sender;
        Post pst = (Post)(cmt.Parent);
        if (Regex.Matches(cmt.Content, @"[u4e00-u9fa5]").Count == 0)
        {
            pst.RemoveComment(cmt);
            pst.Save();
        }
    }
}
[/code]

压缩包下载 RemoveEnglishSpam.zip (623.00 bytes),将插件包中 RemoveEnglishSpam.cs 文件复制到 App_CodeExtensions 目录下,在控制面板里面的插件管理启用即可。