开心就好的代码人生

用伪代码书写我的人生

   博客堂 :: 首页 :: 联系 :: RSS 2.0 ::
随笔 - 384, 评论 - 6970, 引用 - 242

导航

关于

贴子以"现状"提供且没有任何担保也没有授予任何权利。
在TechED 2006上的演讲




开心就好

请见谅,我无法公布我的Windows Live ID,而且工作很忙,没有多余时间进行闲聊。

标签

每月存档

最新留言

广告

【第1页/共26页,384条】
首页
前页
1
...
2009年06月25日

博客堂源代码自从去年开始就一直紧跟ASP.NET MVC的进度,开发了很长时间,一直都不好意思拿出来给大家显白显白。主要原因是Bug太多,实在是拿不出手。但在开发过程当中,实在是需要听取大家的反馈意见,所以现在把相关的工作做了一下整理,先把0.5的第一个CTP发布出来,以听到相关的建议。目前博客堂还运行的是0.4版本,所以像BING的搜索在博客堂上还没有出现,取而代之的是Google的BlogBar功能(不过Google的BlogBar对页面加载还会有一定的阻碍的)。

如果您希望下载源代码,请确保您的开发环境与我一样(其它环境主要是我个人没有进行过测试,希望各位有测试结果可以通知一下)。

1. IDE: Visual Studio 2008 SP1;

2. .NET Framework Version: 3.5 SP1;

3. ASP.NET MVC: 1.0;

4. OS: Windows 7 RC/Windows Vista/Windows Server; (ASP.NET MVC在IIS6下运行还需要特殊配置);

5. SQL Server 2008: 2005应该也可以,但我没有做过测试。

点击此处查看或者下载源代码;点击此处下载安装文件(不含源文件)

目前版本尚有很多Bug,不推荐普通用户下载。非常感谢。

posted on 2009-06-25 16:28:57 by 开心就好  评论(4) 阅读(1725)

 
2009年06月19日

IE8发布之后,市场份额在节节上升当中。由于目前Windows 7在市场当中的反响相当不错,相信随着Windows 7的上市,IE8的市场份额更会打着滚儿的上升。

对于网站主来说,除了做好IE8的兼容之外(其实就是W3C的标准兼容),还有一个细节需要注意,那就是如何来判断当前用户使用的是不是IE8。有很多哥们儿就说了,这还不容易吗?使用UserAgent不就可以了,根据当前的UserAgent字符串,查看一下是不是IE8?类似于展波兄给出的如何判断.NET版本一样。

如果你真的认为使用这个字符串就可以正确判断目标浏览器的版本号,那就有些很傻很天真了。作为一个完全兼容W3C标准的微软浏览器,在IE8当中为了照顾目前世面上大部分网站的需要,其总共提供了三个渲染引擎,即IE8标准模式,IE7的兼容模式,以及IE6的Quirks模式。而IE8的UserAgent字符串也会动态的根据渲染引擎不同而采用不同的字符串。比如以下三种情况:

1. 在最终用户访问你的网站时,点击了地址栏右侧兼容模式按钮;

2. 你的网站中的相应页面使用了IE7兼容字符串,即<meta content="IE=EmulateIE7" http-equiv="X-UA-Compatible"/>,或者在Web服务器 (IIS/Apache)的HTTP Header信息当中作了相应的设置;

3. 微软为了协助贵公司的网站页面在IE8下显示更加兼容,在IE8兼容列表当中将贵公司的网站地址加入了一个Windows Update维护列表中(如果您的网站在此列表当中,并且您相信您的网站其实已经完全兼容W3C标准,所以想从此列表移除,可以发送邮件至iepo@microsoft.com申请移除)。

那么在以上三种情况下,你得到的UseAgent字符串将会是IE7,而不是IE8。

那么如何正确判断当前浏览器是不是IE8呢? 使用以下代码即可:

   1:  function getInternetExplorerVersion()
   2:  // Returns the version of Windows Internet Explorer or a -1
   3:  // (indicating the use of another browser).
   4:  {
   5:     var rv = -1; // Return value assumes failure.
   6:     if (navigator.appName == 'Microsoft Internet Explorer')
   7:     {
   8:        var ua = navigator.userAgent;
   9:        var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
  10:        if (re.exec(ua) != null)
  11:           rv = parseFloat( RegExp.$1 );
  12:     }
  13:     return rv;
  14:  }
  15:  function checkVersion()
  16:  {
  17:     var msg = "You're not using Windows Internet Explorer.";
  18:     var ver = getInternetExplorerVersion();
  19:     if ( ver> -1 )
  20:     {
  21:        if ( ver>= 8.0 )
  22:           msg = "You're using a recent copy of Windows Internet Explorer."
  23:        else
  24:           msg = "You should upgrade your copy of Windows Internet Explorer.";
  25:      }
  26:     alert( msg );
  27:  }

其实此问题,是我负责的一个客户前端时间询问我的。美国一个好哥们Giorgio Sardo帮我解决了此问题。在他的贴子当中,还有其它一些您可能感兴趣的内容,比如如何判断当前浏览器是否支持网页快讯(WebSlice),加速器(Accelerator)以及可视化搜索(Visual Search)等。您也可以一并阅读。

posted on 2009-06-19 21:16:09 by 开心就好  评论(0) 阅读(1840)

 
2009年03月24日

可能这段时间,很多朋友已经关注了IE8的相关发布活动,在3月20日,微软全球发布了包括简体中文版本在内的超过25个语言的IE8。在短短八个小时内,其下载量超过了一千二百万,取得了很好的市场响应。

除了微软自己的发布活动以外,我们还与新浪在3月23日共同发布了新浪定制版IE8,并且在未来,还会有其它的互联网网站发布其定制版IE8。其实这种定制技术,在难度上并不大,因为微软提供了IEAK供所有用户进行自有品牌的创建,其实定制过程非常简单,大体上类似于一个向导过程,将您所有的开发以及希望的属性进行一个统一的打包而已。如果贵公司感兴趣,只需要下载本文后,我个人撰写的一个使用说明文档即可以完成相关的创建活动。不止可以把加速器、网页快讯、可视化搜索、工具栏、ActiveX控件加入到IE8包当中,还可以定义IE8的默认主页、默认搜索引擎、收藏夹等等内容。

其实除了面向公网发布以外,在企业内部也完全可以使用该工具,再配合IE8的组策略设置功能,可以让企业内部更加方便得建立统一的浏览体验。

针对中国特色,网吧的管理者来说,使用了自定义版本的IE8,对于网吧管理者也可以更加方便进行管理。

关于兼容性,我们除了与国内领先的互联网网站合作,在一年前就开始解决兼容性以外,还与万网等托管商合作,帮助中小企业的网站解决了IE8的兼容性问题,稍后还会有其它一系列的行动以及合作,解决其它目前还存在的兼容性问题(包括相关网上支付应用等)。当然也非常期望得到各位关于IE8的相关反馈,以便我们在规划下一代浏览器产品时,能够给用户更好的体验。

posted on 2009-03-24 20:33:02 by 开心就好  评论(3) 阅读(4236)

 
2009年01月15日

相信使用Windows Live Messenger的朋友可能都遭遇过类似的情况。由于开心的好友众多,现在MSN上会经常收到类似的病毒营销方式。开心每次都要提醒对方赶快换一个MSN密码。因为很明显,他们应该把MSN密码泄露给了不该泄露的网站。

现在国内SNS网站众多,基本上都会有一个功能,即通过来邀请好友,大体实现方式是让最终用户提供MSN用户名以及密码,然后网站代理登录,将邀请函发给所有的MSN好友,实现起来非常简单,因为现在MSN的协议也比较透明,网上也有很多开源的源代码了。比如像“校内”、“CSDN空间”以及“新浪空间”等都有类似功能(我注册了国内十几个SNS网站的用户,这几个只是脑海中的第一印象。使用功能截图并不包含任何暗示)。

image

image

image

那么有多少朋友敢在上面的文本框当中输入用户名以及密码呢?开心原来以为比例会比较少,但根据现在开心每天在MSN上接受的骚扰来看,比例并不小。原来以为做IT的应该有很高的安全意识,但现在的感觉是做IT的人胆子还是非常大的。连病毒营销式网站都敢输入,那么这些正当的网站大家可能应该更会放心了。

那么这些网站会不会记录你的MSN密码呢?从技术上来讲,肯定是保存了,只不过是时间长短而已(至少会在服务器端内存会保存一段时间吧),有的网站会遵守承诺,在发送完一轮邀请后,会把密码删除,但有一些我猜测应该不会,所以这些将会是你的定时炸弹。指不定什么时候,通过你的MSN进行亲情营销,所以大家在输入自己的MSN密码的时候,一定要慎之又慎。

另外,以于这些服务提供商来说,开心建议他们应该采用Windows Live ID Delegated Authentication来实现这个功能(可以使用C#、VB、Java、PHP、Python、Ruby等语言来实现)。这个功能会帮助你实现以下功能:

1)用户不需要在服务提供商的网站上输入MSN的用户名以及密码,而是在live.com处输入自己的用户名以及密码。增强用户的信任度;

2) 用户可以选择将什么信息与服务提供商进行共享,共享多长时间,以什么权限分享(读取、更新)等;

image

如果您也有自己的SNS网站,建议研究一下这个SDK,而且提供了源代码,实现起来也不难。而且相信会有更多的朋友使用这种方式邀请其MSN上的朋友加入贵网站。:)

posted on 2009-01-15 13:23:47 by 开心就好  评论(1) 阅读(3638)

 
2009年01月08日

博客堂刚刚更新到了最新的Build版本,在这个版本当中已经完成了留言管理功能,博主现在可以在后台管理相关的留言(批量删除以及按照IP地址、用户名、关键词查询等功能尚未完善,所以尚未加链接)。同时,向大家隆重介绍@Me功能。

记得博客堂刚刚开始的时候,JGTM(金戈)当时引入一种风气,在留言当中如果是发给某人的话,就在某人的注册名字前加一个@字符,然后再加上想对他/她所说的话,后来我与其他博主也喜欢上了此种功能,在后来留言时也经常使用这种方式,再后来很多常来博客堂的朋友也使用这种功能,而今天,我们正式将此功能给进行了改善,这就是今天要隆重介绍的@Me功能。

@Me功能:在您留言时,您可以输入“@[注册用户名]:”,然后后面输入您想对它所说的话,那么这一份留言除了会在本贴的留言本当中出现以外,还会以邮件的方式发送到该注册用户的邮箱处。可以起到快速通知对方,同时又不会向其它公众曝露您以及对方的邮件地址。以下是该功能需要注意到的一些地方:

1. 所有符号请使用半角符号,尤其是冒号部分,我刚才自己测试的时候就不小心使用了全角符号;

2. 现在博主的留言邮件通知功能默认都设置为了False,也就是新留言不会通过邮件功能通知博主,主要是因为后台管理尚未完成,为了避免博主打扰,所以暂时屏蔽了此功能,如果您想让博主注意,可以以“@[博主]:”的方式通知对方,注意博主的名字并不一定是URL中的Folder的名字,比如我的用户名是“开心就好”,而不是“Joy”。

3. 部分用户在本站并没有使用真实的邮件地址,如果您原来使用了虚假的邮件地址,您不会收到@Me功能的邮件。如果您想修改为正式使用的邮件地址,可以在本贴后留言,我在后台先帮助大家更新信息。

4. @Me功能目前使用了smtp.gmail.com的发送功能,据我所知,好象有发信限制,所以如果超过限制了,后面的@Me留言可能无法收到邮件,我们稍后会使用本地的邮件服务器。另外,@Me功能现在限制为每半小时统一发送邮件,避免过于打扰大家。

大家有什么好的建议,还可以继续交流. :) Please @Me. :)

posted on 2009-01-08 22:03:11 by 开心就好  评论(8) 阅读(3175)

 
2009年01月06日

博客堂从去年最后一天开始升级到Joycode.MVC Blog Engine上面来,现在基本上每两天会进行一个小型版本升级,目前已经完成了大约50%的前端功能,后端功能(管理端)仅完成10%。

本次升级的版本使用了ASP.NET MVC框架,并且准备在ASP.NET MVC正式发布会,将该博客引擎的所有源代码都进行开源。在这次改版当中,学习了OxiteSubtext以及BlogEngine等开源的博客项目,借鉴了其中很多非常棒的设计亮点:比如在实体类设计、事件模型以及泛型使用上学习了BlogEngine,Controller以及Views方式学习了Oxite,而数据库架构借鉴了Subtext。感觉这段时间内获盈颇多。

当然,由于这次改版时间比较匆忙,肯定还是有很多Bug出现(昨天进行版本升级时,在后台管理系统部分就忘了增加关键代码,出现了一个所有用户均可以自由删贴的Bug,幸亏今早自己发现了)。如果您发现了Bug,并且在Codeplex上有帐号,可以直接去Codeplex提交Bug,当然,也可以在本随笔后方直接添加留言。如果有任何功能需求,也可以在本贴后提交。

非常感谢大家对于博客堂的支持。

(另,征集两个博客的管理员以及志愿翻译人员: http://blog.joycode.com/haacked  以及 http://blog.joycode.com/brada,如果您有意协助翻译这两个博客,请在留言中表明,并且进行一下简单的自我介绍,在博客堂升级结束后,我们会将随贴广告位以及侧边栏广告位移交给管理人员以及志愿翻译人员,以作收益)。

(另,所有注册用户的帐号都已经自动激活,本站注册用户功能也已经开放)

posted on 2009-01-06 14:16:42 by 开心就好  评论(27) 阅读(3283)

 
2008年12月31日

终于在2008年最后一天,将博客堂进行了更新。这次更新主要是使用了ASP.NET MVC重新进行了架构,由于目前ASP.NET MVC本身还处于Beta 阶段,而RC应该在下个月初发布,届时本堂还会进行相应更新。

请所有博客堂堂主重新使用Windows Live Writer更新帐号设置。在更新帐号结束后,就可以使用Windows Live Writer直接编写文章了(新建、更新以及删除),目前页面端的后台管理界面还在开发当中,应该在本周末可以发布。

非常抱歉这一年来让各位堂主受累了,由于工作繁忙,前期的改版半途而途,这次开心不会了。最后祝各位新年快乐. :)

posted on 2008-12-31 19:01:50 by 开心就好  评论(7) 阅读(3363)

 
2008年07月15日

在奥运会期间, IE 8 Beta 2将会发布,而且随着英文版的发布,中文版也会在第一波当中进行发布。

IE 8将会是Internet Explorer历史上最重要的一个版本发布,除了其带有中国传统的吉祥数字“8”以外,最主要的是其对标准的兼容性上得到了极高的增强,这对于网页开发人员来说,最大的便利就是不用再为每种浏览器(甚至某种浏览器的不同版本)开发不同的CSS来进行适应。以后网页开发人员只需要兼容W3C的标准即可,而不需要把过度的精力放在不同浏览器标准的相异性上。

发布时间在即,那么您的网站是否已经准备好了呢?

1) 兼容性考虑

目前的网站由于各种历史原因,可能针对不同的浏览器设置了不同的CSS文件。而针对IE 8,可能大部分网站尚没有做好准备。可能很多朋友知道,IE 8带有一个“切换IE 7模仿模式”的按钮,而且在Beta 1以及Beta 2期间,这个按钮是设置在默认选中状态。但是在IE 8正式发布的时候,该按钮默认将会是非选中状态,这就表示着如果一个网站没有做任何准备功课,在IE 8下将会以严格模式来常解析CSS。

前段时间,我与合作伙伴见面时,曾经特意使用IE 8 Beta 2的严格模式浏览过大部分合作伙伴的网页,都会出现或多或少的显示变形的问题,使得网站无法进行正确浏览。如果您的网站尚未做过IE 8的兼容性测试,建议您尽快下载IE 8的Beta 1,并且将其切换到IE 8严格模式,对您的网站进行浏览。

如果您发现问题,并且感觉在短期内无法修复,您也可以通过在页面当中添加Meta标签,在服务器端强制IE 8使用“IE 7模仿模式”,做法很简单:

a.  针对全站页面:  您可以修改Web服务器(如Apache/IIS/Resin等)的HTTP头信息,在其中增加以下指令: X-UA-Compatible: IE=EmulateIE7。这个是我个人强烈推荐的做法,在您无法进行全站测试的情况下,可以先使用此方式使IE 8的严格模式暂时失效。

b. 针对单独页面:如果您的网站大部分页面在IE 8严格模式下显示正常,只有个别页面出现问题,建议在出现问题的页面的页首,即Head标签内添加以下Meta标签:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />。

更多信息,请参考: http://support.microsoft.com/kb/952030/ 

 

2) 制作Activity以及WebSlice

IE 8在Beta 1期间曝光了两个新特性,即Activity(活动)以及WebSlice(源剪辑),目前国内很多网站已经基于Activity以及WebSlice制作了相关的内容,在IE 8 Beta 2期间,您会发现更多的网站会发布这些实用的小工具。以下是目前已经对外发布的一些网站:

a. 淘宝:http://ie8.taobao.com

b. 网易:http://ie8.163.com

c. 百度:http://stock.baidu.com/ie8/ie8.html

d. 腾讯:http://labs.qq.com/e/49/

甚至包括.NET开发人员常去的博客园也已经发布了其最新文章的Web Slice,有兴趣的话可以使用IE 8 Beta 1来访问博客园的首页。另外,如果您也使用Firefox 3,您可以发现已经有人开发了面向Firefox 3的Activity以及WebSlice插件。

Activity的使用场景:您的网站提供一系列的服务,允许贵网站的用户通过在其它网站的主动操作来调用此服务。比如假设您是一个财经网站,提供查询股票/基金信息的服务,通过Activity,您可以让您的用户在其它网站上浏览股评信息时,不需要跳转到贵网站,即可以通过右键菜单调用贵网站的相应服务。如果感兴趣,可以下载Activity开发白皮书

WebSlice的使用场景:您的网站提供一些实时性信息,比如新闻、股票信息等,而希望用户可以在不返回相应页面的时候,当内容发生改动时,即可以推送给最终用户,您可以选择WebSlice。而开发代价仅仅只是将页面当中的某一个标签内的“Class”元素设置为“hslice”这个特殊名称即可,详细信息请阅读WebSlice开发白皮书

另外,在IE 8 Beta 2发布时,微软将会发布一个面向IE 8全新的Gallery网站,用以搜索各个网站开发的WebSlice/Activity等面向IE 8新特性的组件,并且提供最终用户评估/下载,如果您希望您开发的WebSlices/Activity能够得到用户的青睐,那么就从现在开始吧:早起的鸟儿有虫吃。 :)

 

3) 其它

IE 8 Beta 2发布时,还将会带来一系列的新特性,在前段时期,已经面向国内一些领先的网站进行过交流,很多合作伙伴都非常感兴趣,并且正在开发此上的服务,相信在奥运会期间大家会看到此类的成果(依据NDA协议,此类网站也已经从微软拿到了IE 8 Beta 2的早期内部版本)。微软也将会举办一系列的市场活动,用以推广我们的合作伙伴所开发的各种面向IE 8的新的服务。

 

IE 8 Beta 2即将发布,无论您是企业网站的网页设计人员,还是个人网站的站长,都需要尽快为IE 8做好准备。 希望本文对您有帮助。

posted on 2008-07-15 10:26:25 by 开心就好  评论(4) 阅读(5330)

 
2008年07月04日

IT界是一个特别适合“创新”的地方,尤其是各种各样的术语。各大厂商为了自己的利益,不断的推出一些新的术语,而媒体们也在不断的站队,跟着一些忽悠,搞得我们这些IT界的前线战士们一阵一阵得晕。刚刚有了B/S、C/S、SaaS、SOA、Mash Up以及S+S,现在又出来了云计算。

什么叫云计算?根据维基百科当中的定义(基于某种原因,可能无法访问维基百科):云计算cloud computing分布式计算技术的一种,其最基本的概念,是透过网络将庞大的计算处理程序自动分拆成无数个较小的子程序,再交由多部服务器所组成的庞大系统经搜寻、计算分析之后将处理结果回传给用户。透过这项技术,网络服务提供者可以在数秒之内,达成处理数以千万计甚至亿计的信息,达到和“超级计算机”同样强大效能的网络服务。

很深奥的概念,相信很多朋友可能和开心一样,有些云里雾里,真的掉到云里面去了。而且在下面的云计算示例一节当中,又给出了两个简单的云计算案例,即搜索引擎以及网络邮箱。俺就有一些搞不明白了,按照这种示例,所谓的云计算,与B/S以及C/S架构到底有什么不同呢?如果再看看各大媒体举的例子,把一些在线文档编辑器也称之为云计算,那么云计算与SaaS又有什么区别呢?这不就是经典的新瓶装旧酒吗?

其实,云计算的先驱真的不是Google(谷歌)或者微软,而是亚马逊(Amazon)。让我们来看一下所谓的B/S以及C/S架构,如果从分层上来看,其实都是Client to Server的层次(只不过B/S中把C换成了Browser而已)。而无论在Client端还是Server端,都适用于经典的软件销售,在Client端,我们有Office、Windows Vista、Firefxo,而在Server端,则有SQL Server、Oracle、Apache。这些软件都适用于software license的销售模式(软件收费或者支持服务收费)。

而亚马逊的EC2则更改了Server端的software license模式,其最主要的含义是将软件的功能以服务的方式提供出来,然后根据类似于SLA(Service Level Agreement)的方式为其客户提供相应的服务。比如EC2当中的Simple DB,就是一个网络存储服务,类似于SQL Server/Oracle等等,你在开发的时候,不需要安装经典的数据库应用程序在服务器上,根本不用在意我的数据到底存在“哪块云里面”,而且开发的时候还可以使用原来的SQL语句进行CRUD(不知道CRUD是什么意思?赶快做一下功课去吧),任何时间,任何地点,任何设备都可以进行访问。听上去很美吧?

所以云计算其实就是C/S的一个扩展版本,简单可以描述为C to S to S (C/S/S)实质就是一个更新版本的SaaS,服务器端的Software As A Service。大小S之间进行计算以及数据的传输,最终把结果输给C,让C来展示就可以了。而云计算指的其实就是S to S这一端,所以与最终用户根本无关,甚至最终用户根本感觉不到这种改动,所改动的其实就是开发商如何采购其服务而已(是购买软件还是租用服务)。所以俺开心个人认为,传统的搜索引擎以及网络邮箱,或者在线文档编辑器(Google Docs)还称不上什么云计算(当然,你硬说里面也有S to S之类的云端交流,俺也不没有什么理由来说服你)。

ASP(Application Service Provider)其实也是云计算的一个先驱,但它是把应用构建在云端,而不是把服务构建在云端,所以造成了其上的二次开发商非常稀少,而没有建立起完整的生态链系统,最终进入到失败。而云计算由于只是把服务器端的Software更改为Service方式应用(云上的API),所以可以召募很多的二次开发商,从而快速得构建起完整的生态链。相当于IT界的一次洗牌过程,抓住了云也就抓住了未来,对于传统软件厂商来说,其危害要比Open source有过之而无不及。整个生态链可以基本上划分为云间服务提供商(相当于原来的服务器端的软件厂商:微软、甲骨文、IBM等)、应用开发商(基于服务构建应用的厂商,SI或者ISV等)以及最终用户等。

但云计算也不会一帆风顺,肯定会有乌云时期,有兴趣的话,可以去了解一下Amazon的EC2的业绩。我们可以先抛开欧美日印市场,从国内的IT环境来看,无论是从政策、技术或者信用等来说,目前还极度不成熟。非死不可(Facebook)本周在国内的突然病亡会在很长一段时期让大家对于云计算充满怀疑(谁又能够预料哪一天App Engine突然发动不起来了?),现有的云计算的开发模式对于重视技术迁移成本的开发商也处于观望状态。

所以云计算虽然看上去很美,但实际上要走得路还是很长。

在接下来的话题当中,开心还想聊聊云端的梦(从最终用户角度会感觉到的优势)、吞云吐雾的幻术(从开发者角度选择最好的云计算平台)等话题,欢迎大家交流。

posted on 2008-07-04 13:56:17 by 开心就好  评论(0) 阅读(11325)

 
2008年05月25日

本周末作为嘉宾参加了阿里巴巴集团举办的第二届网络工程师侠客行大会,刚刚回到北京。

我比较喜欢这种第三方举办的会议,因为可以听到很多不同的声音,也可以了解合作伙伴以及竞争对手的新技术,让自己能够对业界的趋势更加了解。马云先生在主旨演讲当中也说过,技术分享才会让业界都进步。

当然,通过此次会议也可以扩展自己的人脉,认识到更多的人员。这次也见到了一位我原来非常敬佩的先生,他原来在微软研究院工作,后来去了加位一家全球知名的互联网搜索的公司,担任副院长工作。此次会议他也代表其现任公司进行了主旨演讲,介绍了其云计算策略以及相关的新产品。我对云计算一直比较感兴趣,也希望了解到业界的不同实现方式,所以很认真得在听,但说实话,这位先生的演讲让我很失望,可能并不适合这种大场面的演讲吧,也对这位先生彻底无语。

可能由于是现场演示,此先生介绍在讲完云计算的一些大家都知道的知识后,开始介绍其自家产品,进行实时演时,打开一个浏览器,输入网址: http://code.ZZZZZZ.com/gears, 我在下面一看就不对了,其真实的地址应该是http://code.ZZZZZZ.com/apis/gears, 在下面还小声提示了一下。果然不出我所料,系统返回了一个定制化的404界面。但这位老兄有些口不择言了,或者也想幽默一把,脱口说了一句:“IE出问题了”。然后突然又注意到,自己使用的并不是IE,而是Firefox。一时就楞在那儿,开始转变话题。

再后来,又一个Demo,这次就开始使用IE7了,准备下载一个文件,结果由于网络的临时问题,下载终止(那个界面大家可能都见过的),老兄又开始说“IE又出问题了”,呵呵,不知道哪儿来了一个“又”。我这次真服了。接下来在输入汉字“新浪”的时候,由于拼音不好,一直在说,他应该使用他们自己开发的那个某某拼音输入法(他自己的笔记本完全可以使用呀,而且还是他“开发”的产品)。

再接下来,他的演讲严重超时,但不甘心,于是开始演示他们新开发手机开发平台,结果启动了五分钟,那个模拟器始终没有打开,老兄开始说这可能是Windows的问题,或者是他的IBM笔记本的问题,牛,太会找理由了。再接下来,组委会实在看不下去了,而且马云先生在台下也等了太长时间了,所以上台中断了他的演讲。

实话来说,做现场演时的时候,可能会遇到各种各样的问题,所以很多人喜欢用截图或者视频来代替这种现场演示。如果在现场演示时出现问题,也需要认真对待,在不耽误大家时间的情况下,可以再重试一次,并且给出原因。最忌的就是随口给出一个原因,毕竟下面都是技术人员,这种404错误或者你使用的哪种浏览器还是可以看明白的。

尤其是,这位老兄刚刚跳槽,就开始在公开场合这样攻击老东家,不知道他的同事们怎么想,真的让我彻底无语。

posted on 2008-05-25 14:19:17 by 开心就好  评论(10) 阅读(7719)

 
2008年05月16日

当地震发生的时候,我正在使用Visual Studio 2008 + XNA Game Studio为我的Zune编写小游戏,刚刚在Zune上部署成功一个俄罗斯方块,正在兴奋的将这个好消息写成邮件发给部门同image事时,我突然感觉脑子一阵晕,当时还以为是兴奋过度了,于是闭上眼准备休息一下,这时候听到后面的同事说地震了才意识到是什么样的状况。后来大厦的广播响了起来,要求大家撤离大楼,我把手机,Zune, 以及其它的一些电子设备随身带着,跟着大家一起下了楼。

在楼下,同事们都在紧张不安的相互询问信息。我一直使用Zune来收听电台,以便知道后续的事情。最后终于了解到原来是四川发生了7.8级地震。这段时间,每晚都和太太会守在电视机前,观看中央电视台的实时报道,看到的内容让我们都会非常感动,甚至热泪盈框,都在想除了捐款,我们还可以为灾区的群众做些什么?

我们部门的老板Nigel Burton先生是位英国人,可能有很多博客堂的朋友在各种场合或者媒体上已经见过他。在他的提议下,我们昨天上午开发完成了一个内部赈灾拍卖的网站,并且在中午通过内部邮件向我们开发合作部(DPE)的同事通知了此网站。通过该网站,所有同事都可以把自己的一些物品放在上面进行竞拍,竞拍所得款项通过公司人事部门设置的捐赠网站捐赠出去,同时,公司还会按照1:1 match的方式再加倍捐给灾区。除了我们部门的同事热烈响应以外,上海、广州以及研发集团的同事都积极参与了进来。截止到昨天午夜十二点,总共有23件物品征集上来,包括相机、手机、电脑、显示器、路由器、游戏机、MP4等等,共有88个出价纪录,最终实际募集到资金RMB 23,063元。

当然,这只是微软同事们热情捐助当中的一部分,除了第一笔费用已经递交中国红十字会,我们员工的捐助还在进行当中,今天下午将会与公司1:1 match的部分一起递交给中国红十字会。公司也与相关部门进行了联系,积极参与其它活动。员工也在内部积极献策,讨论如何更好的参与到此次灾区救助当中。

抗震救灾,众志成城!!!

posted on 2008-05-16 11:42:09 by 开心就好  评论(0) 阅读(5253)

 
2008年05月06日

相信很多朋友已经知道Silverlight是什么东东了,在前段时间,微软与国内外的合作伙伴一起致力于Silverlight的合作事宜,目前您可以看到以下精彩的国内案例:

1. 百度音乐抢鲜族(Silverlight 2 Beta 1): http://mu.baidu.com,上个月,百度已经将其音乐抢鲜族升级到了Silverlight 2 Beta 1.

2. 奥运官网火炬接力视频(Silverlight 1): http://torchrelay.beijing2008.cn/cn/video/historical/basketball-chouqian-man/,以后将会有越来越多的接力视频会使用Silverlight进行播放.

3. 腾讯采用Silverlight的新产品创意 (Silverligh 1 & 2): http://labs.qq.com/e/51/,腾讯在未来将会把Silverlight应用到新产品的创意当中。

4. 新浪音乐地图(Silverlight 2 Beta 1):http://blogs.msdn.com/jijia/archive/2008/04/16/sina-musicmap-details.aspx,我的同事黄继佳会向大家介绍更多细节。

当然还有其它的很多新产品会很快发布,大家可以参看媒体上的报道。

imageSilverlight 1.0自从去年九月发布以来,在半年左右的时间内,通过与国内外合作伙伴的合作,既已经达到了30%左右的市占率,而且在全球以每天一千五百万的下载率进行递增。曾经有一家媒体的记者在我们进行交流时对此数据产生了怀疑。我相信也有很多朋友现在表示怀疑,但毛主席说过“没有调查就没有发言权”,所以大家完全可以在自己的页面当中进行Silverlight安装侦测,而那家媒体在自家的网站上选择时间段对安装量进行监测后,惊讶的发现,这个数据是完全准确的。如果您有兴趣在自己的网站上进行检测,建议阅读我的同事黄继佳的文章:Silverlight安装与侦测原理

所以,现在已经是全面转向Silverlight开发的时代了,那么使用Silverlight除了开发视音频体验完,是否也可以制作自己的休闲游戏(当然,也可以开发RIA应用,但毕竟视音频以及休闲游戏是更容易入手的)呢?当然可以,我们可以在http://www.silverlight.net 里面看到很多Sample,是休闲游戏的。不过我相信很多人使用C#/Javascript/XAML来制作休闲游戏还是很困难的。

认真想一下,休闲游戏其实也很简单:场景、角色、控制、信息展示以及行为等,除了编写代码,有没有可能让那些单纯的游戏爱好者也可以根据自己的意愿制作一个游戏呢?

可能大家都已经知道Popfly了,而现在同样在Popfly平台上,微软推出了一个新的工具,就是Game Creator,在这儿您可以玩游戏(这些游戏也是模板),编写自已的游戏,也可以将自己编写的休闲游戏发布到您的网站或者博客边栏上,有兴趣就来试一下吧:

http://www.popfly.com

posted on 2008-05-06 14:21:20 by 开心就好  评论(2) 阅读(6385)

 
2008年04月07日

可能很多朋友已经从一些其它渠道获知,IE 8 Beta 1的简体中文版已经正式发布了。您可以从此处了解或者下载IE 8 Beta 1的简体中文版。

前段时间,开心一直与IE8在中国首选的合作伙伴一起工作,在发布IE 8的同时也发布了这些合作伙伴为IE 8量身定做的一些功能,有兴趣的朋友可以前往IE 8的简体中文网页进行查看。以下为此次发布的相关“活动”(Activity)

另外,还有一些源剪辑(WebSlice)尚未正式发布,稍后正式发布时,大家也可以从IE 8 简体中文网页上进行查看。

在Beta 1版本之前,开心曾经安装了数个IE 8的内部版本。从那时起,就震惊于IE 8的这两个新特性(Activity与WebSlice)。虽然IE 8带来的特性不止以上两点,还包括对国际标准的支持,对Ajax更加友好的支持等等,但Activity与WebSlice却是最容易打动最终用户以及软件开发商的。

在以往,为了争夺眼球,很多网站都开始开发IE工具栏,但IE的工具栏空间毕竟有限,所以恶意软件的诞生最初也是从IE的工具栏开始的。从那时开始,流氓软件的战争就开始在用户的桌面端开展,越烧越烈。而开发一个浏览器工具栏不仅要背负恶意软件的恶名,还要有非常长的开发周期,可想而知,很多网站对于工具栏的感觉非常类似于“鸡肋”,食之无味,弃之不舍。而现在,Activity以及WebSlice的出现却很好的解决了这个问题,在用户许可的情况下抓住用户的眼球,让用户可以自己选择自己感兴趣的内容。

Activity非常类似于Office中曾经出现的Smart Tag技术,您只需要把您现有的一些Mash up用XML定义文件的方式进行相关的声明,就可以进行开发。如果您的Mash up已经开发完成,那么使用一个记事本就可以完成相关的定义文件的编写工作,非常类似于IE 7以及Firefox 2.0当中采用的OpenSearch的API。这样,最终用户可以在任何网页,选择任何短语来调用您所开发的服务。

WebSlice对于很多需要订阅的内容非常有用,用户关心内容的变化,但又不希望花很长时间紧盯着网页进行查看,那就可以使用WebSlice,比如社交网站中的好友动态,新闻条目当中的时事新闻,股价信息等等,都可以使用WebSlice进行相关的查看。而开发呢,只需要在您需要用户订阅的页面块(通常是一个HTML语言中的DIV元素),添加一个class声明,这样IE8就可以自动判断出这是一个WebSlice,使用特殊的方式予以解析。当然,您也可以增加一些其它的声明,比如监视的时间间隔等。

以上的开发都比较简单,而且服务器端也不要求是WISA(Windows + IIS + SQL Server + ASP.NET) 架构,曾经有一个合作伙伴的开发人员,在某次活动的中场休息的时间,使用telnet调用服务器上的vi编辑器,在不到十分钟左右就完成了相关Activity的开发工作,非常神速。

当然,更多开发相关的文档您还可以从IE 8 Beta 1的简体中文主页上获得。

posted on 2008-04-07 22:31:24 by 开心就好  评论(0) 阅读(5375)

 
2008年03月15日

可能有很多朋友发现了一些问题,比如使用http://blog.joycode.com/joy来访问开心的页面,或者使用http://blog.joycode.com/[Subfolder]方式访问其它堂主的首页(后面不加上default.aspx)的话,会遇到各种各样莫名其妙的问题。

1) 你当前未登录,使用登录链接进入到Windows Live ID登录校验后再次返回,会出现404错误;

2) 登录后,使用搜索按钮在该博主文章中搜索相应关键词时也会出现404错误;

先来讲讲目前的工作原理,大家知道,博客堂目前使用的是IIS7来运维的,而且我不太习惯使用通配符映射,总感觉那样性能消耗太严重,所以借用了Subtext中的方法,即使用错误页面映射,在IIS 7的错误页面当中指定自定义Url,即"~/SystemMessages/FileNotFound.aspx"来进行处理。这样当你访问http://blog.joycode.com/joy的时候,由于ASPNET_ISAPI无法对其进行处理,相应的各种HttpHandler/HttpModuler也无法对其进行操作,只能由IIS 7交给错误页面处理,亦即FileNotFound.aspx。

在FileNotFound.aspx当中我们来对原始请求的URl进行分析,如果发现用户其实访问的是一个堂主的首页的话,类似于http://blog.joycode.com/[Subfolder]这样的地址,那么就使用Server.Transfer,将相关请求转向到指定的首页地址,在这儿即"~/Skins/default.aspx",当然,在转向前我们会将相应的BlogConfig信息也一并转向过去,这样大家看到的页面就是当初请求时所想要看到的页面。

但这时候会出现一个问题,即使用Server.Transfer(string path, bool preventForm)的时候,呈现的页面当中的Form的回传地址是真实的物理地址,而不是虚拟路径。在我们这儿是"~/skins/default.aspx"(感兴趣可以这几天在登录后,去各堂主的首页,将鼠标放在“搜索”按钮上,看看IE状态栏的地址指向,或者使用浏览源文件的方式看看该页面上Form的回传地址)。因为http://blog.joycode.com/skins/default.aspx根本不是某个博主的页面,而是后台通用的转向后的页面,所以我们在系统中将此页面进行了隐藏,所以最终当你搜索或者登录时会出现404错误。

这个问题很麻烦,不过我有号称活MSDN的宝玉同志,所以我并不着急。不过宝玉同志告诉我解决方案只能通过客户端的JS,来重新对于Form的URL属性进行改写。解决倒是可以解决,但总感觉不够优美,破坏了程序的整体性。所以开心用了一周的时间一直在思考此问题。

后来在阅读UrlRewriting的源代码时,发现它都是使用Context.RewritePath来重写路径的,于是我也尝试使用这种方案来代替Server.Transfer,但发现了一个问题,Context.RewritePath想要达到转向的目的,必须在HttpApplication.OnBeginRequest事件中才能生效。在一个ASP.NET Page页面中就没有办法解决了,事实上,在判断当前是不是一个堂主页面时,程序已经运转到Page.OnLoad事件了。

还能怎么办?与思归交流,他告诉我其实Context.RewritePath其实可以修改一些HTTP的内部参数,也就是说在调用Server.Transfer之前,调用Context.RewritePath还是有机会重写虚拟地址的。但我写了一个示例程序,发现其实根本没有修改。

既然Context.RewritePath还是有机会修改的,那么问题可能出现在Server.Transfer上面,能不能换一下其它方案,比如Server.Execute?试了一下,得到的结果不是我想要的。于是回过头来重新看Server.Transfer,发现它除了Server.Transfer(string path)的重载外,还有一个Server.Transfer(IHttpHandler)的重载。那么怎么从一个ASP.NET Page转换为IHttpHandler呢?查MSDN,终于我发现System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath就是做这个作用的,哈哈。赶紧试一下,竟然成功了!

测试代码如下:

   1:  private void RewriteUrl(string subfolder)
   2:  {

3: Context.RewritePath(string.Format("~/{0}/default.aspx", subfolder),

string.Empty,

string.Empty, false);

   4:             IHttpHandler handler = 
System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath("~/skins/Default.aspx", typeof(Page)) 
as IHttpHandler;
   5:             Server.Transfer(handler, true);
   6:  }                           

终于历经一周,我找到了解决方案,代码与原来的相比,就多了一行而已。

posted on 2008-03-15 22:15:54 by 开心就好  评论(3) 阅读(4543)

 
2008年03月12日

我喜欢面试人,不喜欢被人面试,我相信大部分技术出身的朋友都与我一样的想法.但活在这个业界,不可能不过五关斩六将的参加各种面试过程.面试结束,有的人很郁闷,有的人很兴奋.当然很多时候,这都是临场发挥的实力,但其实也折射出大家的综合素质.

相信很多人都知道微软的面试过程是比较特殊的,也有很多朋友在一些媒体上读到了类似于下水道井盖为什么是圆的等等所谓的微软面试题.对于微软的面试过程产生了敬畏.微软的面试过程也被蒙上了一层面纱,让人感觉非常神秘.当然我也相信有很多朋友经历过微软的面试后,会发现其实这些面试过程并不神秘.如果你"有幸"被我面过,会发现我从来不问“北京有几个公共汽车站”或者“黄河每秒钟的流量有多少”之类问题.其实原因就是开心现在工作的部门并不是研发部门,除了要求技术能力外,还需要一些市场运作能力等.所以面试过程会更加开放一些.

与邹欣认识比较久了,在微软刚刚开始"潜力发展计划"的时候,我们在济南做试点,就曾经邀请过邹欣同志来济南进行演讲.那时候他还在总部工作.后来去美国的时候,又与邹欣聊过后来,一直建议他回国发展.最终现在邹欣在微软亚洲研究院工作.邹欣同志是一个面试老手,不知道有没有博客堂的读者也被其面过,可以写写心得了.

从邹欣拿来他回国后主编的第二本书《编程之美-微软技术面试心得》,我就开始不停的流汗,邹欣也太会"折磨"人了吧,这些题目简直堪比满清十大酷刑呀,比如第一道面试题“CPU占用率曲线听你指挥”,让面试者写一段程序,控制任务管理器当中的CPU占用率的曲线一直显示为一条直线或者正弦曲线。后来通过各种搜索引擎进行搜索,发现还真有不少朋友做出来解答,还从网上把一些朋友的解答拿到本机进行测试,特别佩服某些朋友的思考能力以及创新思路。我相信,很多朋友假如第一次有机会来微软面试,遇到的第一个问题是这样刁钻的问题,不止会流汗,可能有些人会恨不得把鼠标抡起来,砸向面试官。

CPU曲线还是那个曲线,任务管理器还是那个管理器,但出这题的朋友以及可以答出这题的朋友都需要很多的思考,往往一些细节就可以考验出这些朋友的真功夫。

我也看到过其它公司的一些面试题,比如探讨一下Java的事件机制以及C#的事件机制有什么区别?重载与重写有什么区别?使用ASP.NET 2.0中的Master以及Theme机制写一个简单的个性化网页。通过这些面试题,我们可以看到每家公司所招聘人才看中的重点,大部分IT公司招聘的就是代码工人,只要会熟练使用工具,对语法熟悉就可以了。希望招聘到的员工经过简单的培训立即可以上岗。而微软的面试题折射出来的则是微软对于基础研究的重视。

我也在日常的客户接触当中,听过很多朋友抱怨C#/.NET太简单,不像Java那样高深,其实无论是Java还是.NET,或者其它产品性的技术,都是同等的工具而已,工具会有顺手不顺手的差异,在本质上没有什么差别,关键还要看自己的基本功。由此想到了前几天邹欣所写的《Arrays.sort() and 吾欲仁则斯仁至矣》。的确,现在中国的高校教育过于急功近利了,高校毕竟不是技校或者中专,培养出来一批工具使用娴熟的技术工人,高校培养的应该是真正有创造性思维的人才。

再由此想到了Google的面试,不知道是否是由谣传谣,说Google招聘某全球VP,最终由于此候选者无法拿出自己在大学期间的成绩单而被拒。也听说过Google在国内非常看重学历(以讹传讹?),所以出来了模仿Hao123的“网站导航”或者模仿搜狗拼音的“Google拼音”。

其实面试只是一个过程,面试并不能保证所有通过面试的人都是万中挑一的高手,没有通过面试过程的朋友也不必自怨自尤,毕竟面试过程与临场发挥、专业对口甚至面试官的心情都有关系。所以,放平心态就是了。

再次向大家推荐阅读这本《编程之美-微软技术面试心得》这本书。

posted on 2008-03-12 13:36:28 by 开心就好  评论(14) 阅读(7238)

 
【第1页/共26页,384条】
首页
前页
1
...