迈克尔*杰克逊 纪念音乐专辑

迈克尔•杰克逊自 70 年代作为“杰克逊 5 人组”主唱以来,在美国共创造了 13 首冠军单曲,单曲《Thriller》的音乐录像带被誉为全世界“最伟大的音乐录像带”之一。他与“猫王”、“披头士”并列为流行乐史上最伟大的不朽象征,并被誉为“流行音乐之王”(King of Pop)。现在,我们可以通过谷歌中国聆听迈克尔•杰克逊用一生创作的音乐,对迈克尔•杰克逊的音乐才华和音乐梦想致以最后的敬意。

迈克尔•杰克逊 纪念音乐专辑

Adsense的从上次付款至今账户钱变少了的原因

大家看到这个问题是由于"从上次付款至今"
报告的起始日期变化了,是上次付款签发的日期,而不是上次付出去的收入的最后一天。所以导致这两个日期之间的收入在这个报告没有反映出来。

比如您上次付款时5月26号,付的钱是4月30号以前的。大家自己统计的从上次付款到现在的收入是4月30号到现在的收入,就是5月和6月的收入总和; 而这个报告统计的是5月26号到现在的收入。所以大家看到少的那部分钱就是4月30号到5月26号之间这几天的收入。

请大家放心,大家帐户里的钱一分都没有少,只是"从上次付款至今"这个报告没有统计全而已。

解释来源:
http://www.google.com/support/forum/p/adsense/thread?tid=2f6839f5ac94d357&hl=zh-CN

一代摇滚歌王迈克・杰克逊(Michael Jackson)离开了我们

北京时间2009年6月26日5:26(洛杉矶当地时间25日14:26)左右,一代天王迈克尔-杰克逊离开这个世界,享年50岁。

希望迈克・杰克逊(Michael Jackson)在天国也能做天王舞者~阿门

迈克尔・杰克逊(1959.8.29-2009.6.25)(Michael Jackson)被誉为流行音乐之王(the King of Pop),是继猫王之后西方流行乐坛最具影响力的音乐家,其成就已超越猫王,是出色的音乐全才,在作词,作曲,场景制作,编曲,演唱,舞蹈,乐器演奏方面都有着卓越的成就。迈克尔与猫王、披头士两组歌手并列为流行乐史上最伟大的不朽象征,他开创了现代MTV,他把流行音乐推向了巅峰,他融合了黑人节奏蓝调与白人摇滚的独特的MJ乐风,时而高亢愤疾、时而柔美灵动的声音,空前绝后的高水准音乐录影,规模宏大的演唱会无不在世界各地引起极大轰动. 他拥有世界销量第一的专辑《THRILLER》,销量达1.04亿(2006年吉尼斯世界纪录认证数据)。据2006年底统计,其正版专辑全球销量已超过7.5亿,被载入"吉尼斯世界记录大全"。他是音乐史上第一位在美国以外卖出上亿张唱片的艺术家。他魔幻般的舞步更是让无数的明星效仿。2006年,吉尼斯世界纪录颁发了一个最新认证:世界历史上最成功的艺术家! 他一个人支持了世界上39个慈善救助基金会,保持着2006年的吉尼斯世界个人慈善纪录,是全世界以个人名义捐助慈善事业最多的人。
  
有人说迈克尔杰克逊是一个神奇的怪物,浑身上下充满了一股神秘的力量,在音乐响起时他的节奏能带动全世界的脉搏。至今全世界仍有上亿歌迷。


T-SQL中 Where 条件中的Null

T-SQL中 Where 条件字段中如果有null值,如果要把这个字段中不等于某个值的所有记录都取出来,例如下表:

A
1
B
NULL
22
31
NULL NULL

我们要把所有B字段值不等1的记录取出来,我们的Where条件只能是

B<>1 or B is null

如果条件是 B<>1 那么第一条记录将不会出来:)

Google Chrome 2.0.172.33 修复严重安全问题

Google 浏览器Chrome的特点是简洁、快速。Google Chrome支持多标签浏览,每个标签页面都在独立的"沙箱"内运行,在提高安全性的同时,一个标签页面的崩溃也不会导致其他标签页面被关闭。此 外,Google Chrome基于更强大的JavaScript V8引擎,这是当前Web浏览器所无法实现的。 Google浏览器Chrome目前尚处在测试版阶段,在很多方面还需要进一步完善。它是一款开源软件,借鉴了苹果的WebKit(Safari使用的引 擎)、 Mozilla的Firefox及其他相关应用。

Google今天发布了版本号为2.0.172.33的稳定版Chrome浏览器,Stable和Beta Channel的用户都将得到自动升级,该版本主要修复了一个安全问题。

CVE-2009-2121: 处理HTTP响应缓冲区溢出

在执行某些HTTP响应时,Google Chrome容易出现缓冲区溢出的问题,主要表现是执行某些服务器响应时浏览器崩溃,攻击者可以运行任何代码。该安全问题由Google Chrome安全团队发现并进行了修复!

严重性:关键(攻击者作为具有特殊权限的登录用户运行任何代码)

另外,该版本还修复了其他两个网络问题,第一是在连接HTTPS站点时出现NTLM验证到Squid代理错误;第二是浏览器在载入部分HTTPS网站时出现的崩溃问题。

下载:Google Chrome 2.0.172.33

JavaScript String to Date

JavaScript将字符串转换成日期的方法:

var s = "2009-06-22 09:41:30";
var d = new Date(Date.parse(s.replace(/-/g, "/")));

发现一个可用的ghs.google.com 地址(2009-06-12)

Google的产品就是其实就是一个大型的CDN,GFW不可能封掉所有的IP,得到有用的IP绑定上就可以了,这里指的是ghs.google.com的CNAME记录被封而非单个产品的IP。

其实ghs.google.com的IP还是有规律的,如果你在用Google的一些需要ghs.google.com的服务的话,把你需要解析到ghs.google.com的记录都改成ghs.cqun.com就可以了,我会随时更新的,如果被封就及时提醒我,我换上能用的。

当然你也可以用自己的,自己做一个类似ghs.google.com,目前有用的IP 是:74.125.53.121,但建议你用CQUN的,这样你就不用考虑ghs.google.com撞墙再找可用的IP了:)

通过Global.asax 防范 SQL 注入( injection)

先看一下MSDN对Global.asax的解释:

Global.asax 文件(也称为 ASP.NET 应用程序文件)是一个可选的文件,该文件包含响应 ASP.NETHTTP 模块所引发的应用程序级别和会话级别事件的代码。Global.asax 文件驻留在 ASP.NET 应用程序的根目录中。运行时,分析 Global.asax 并将其编译到一个动态生成的 .NET Framework 类,该类是从 HttpApplication 基类派生的。配置 ASP.NET,以便自动拒绝对 Global.asax 文件的任何直接的 URL 请求;外部用户不能下载或查看其中的代码。

所以防范SQL注入我们可以通过Global.asax入手,因为所有请求都要先执行这个文件的相关方法。

以下是通过Global.asax防范SQL注入的示例代码:


<%@ Application Language="C#" %>

<script runat="server">
    
void Application_BeginRequest(object source, EventArgs e)
    {
        StartProcessRequest();
    }
    
#region SQL注入式攻击代码防范
    
/// 
    
/// 处理用户提交的请求
    
/// 
    private void StartProcessRequest()
    {
        
try
        {
            
string getkeys = "";
            
string sqlErrorPage = "http://www.cqun.com";
            
if (System.Web.HttpContext.Current.Request.QueryString != null)
            {

                
for (int i = 0; i < System.Web.HttpContext.Current.Request.QueryString.Count; i++)
                {
                    getkeys 
= System.Web.HttpContext.Current.Request.QueryString.Keys[i];
                    
if (!ProcessSqlStr(System.Web.HttpContext.Current.Request.QueryString[getkeys].ToLower()))
                    {
                        System.Web.HttpContext.Current.Response.Redirect(sqlErrorPage);
                        System.Web.HttpContext.Current.Response.End();
                    }
                }
            }

            
if (System.Web.HttpContext.Current.Request.Form != null)
            {
                
for(int i=0;i<System.Web.HttpContext.Current.Request.Form.Count;i++)
                {
                    getkeys 
= System.Web.HttpContext.Current.Request.Form.Keys[i];
                    
if (!ProcessSqlStr(System.Web.HttpContext.Current.Request.Form[getkeys].ToLower()))
                    {
                        System.Web.HttpContext.Current.Response.Redirect (sqlErrorPage);
                        System.Web.HttpContext.Current.Response.End();
                    }
                }
            }

        }
        
catch
        {
            
// 错误处理: 处理用户提交信息!
        }
    }

    
/// 
    
/// 分析用户请求是否正常
    
/// 
    
/// 传入用户提交数据
    
/// 返回是否含有SQL注入式攻击代码
    private bool ProcessSqlStr(string Str)
    {
        
bool ReturnValue = true;
        
try
        {
            
if (Str != "" && Str != null)
            {
                
string SqlStr = "";
                
if (SqlStr == "" || SqlStr == null)
                {
                    SqlStr 
= "'|exec|insert|delete|update|chr|mid|master|truncate|char|declare";
                }
                
string[] anySqlStr = SqlStr.Split('|');
                
foreach (string ss in anySqlStr)
                {
                    
if (Str.IndexOf(ss) >= 0)
                    {
                        ReturnValue 
= false;
                    }
                }
            }
        }
        
catch
        {
            ReturnValue 
= false;
        }
        
return ReturnValue;
    }
    
#endregion
script>