李献计历险记

日期:2010-01-03 | 作者: Allen

中国少见的个人制作的动画神作。(土豆在线看VeryCD下载

2009年个人总结

日期:2010-01-02 | 作者: Allen

每年都会有一个总结,不回顾就没有办法进步,所以先看一下2009年的Wish list

  1. 现场听一场爵士演唱会。 没有完成,倒是去听了2场钢琴的音乐会,爵士的,还没有,如果有机会的话,2010年到杭州黄楼去听听吧。
  2. 新的个人终端方案。 没有完成,遭遇一次洗劫,唯一没丢的就是手机了。从这个事情上,我看到我自己对待杯具事情上还是看的挺开的。
  3. 去一个从未去过的城市。武汉,神农架地区(123)。然后去了一次很久不去的杭州,和记忆里的杭州有了很大的不同,感觉西湖变小了。

除了Wish list以外,我还做了些什么呢?

  1. 简越。如果说08年是简越诞生的一年,那么09年则是耕作的一年。有朋友加入,也有朋友离开,特别感谢鱼老师支持,在我沮丧的时候,她默默支持我,让我觉得所作的一切是有意义的;要感谢家人,感谢他们能包容我;感谢同事,没有你们,没有简越。
  2. 用摄影记录生活。拍了几张自己认为还比较满意的照片,并且找到自己喜欢的摄影内容:事件,人物,记录。
  3. 对中国社会生活的一种新认识。相比2年前的认识,现在的观念,更加现实,更加趋于调侃,同时也更加理性一些。感谢twitter让我有机会知道原本应该知道的东西,感谢那些在twitter上发布信息的人,感谢那些默默无闻,素未谋面,但非常熟悉的博客们。
  4. 对前端的重识。重视交互,就是重视客户,交互设计不能停留在嘴上,不能停留在文本上,这是一门需要用心和实践去体会的学问。

一年下来140篇博客,我自认为还是挺多的,有些东西留下来,过个几年再看,兴许有别样的风味。

2010年的愿望,

  1. 简越能找到属于自己的发展道路。对于简越来说,如何找到属于自己的路,才是最关键的。
  2. 多参加技术交流,提升技能。我希望自己能够在线上或线下进行更多的技术交流。
  3. 更多的翻译文章。一来,要恢复一下自己的英语能力,二来,技术出版的不景气(12),让我觉得技术类的电子版内容应该有更好的发展,因为其受众决定了,用电子书的方式更容易取悦这些受众,像电子阅读器,我觉得就很合适,很Geek。
  4. 朋友们能多一点开心。盯着380元不会笑的呀。

我的豆瓣一直有一块不明区域

日期:2010-01-01 | 作者: Allen

image

一直一直有,不管在任何浏览器下都有……

你所未见的2009

日期:2009-12-29 | 作者: Allen

网易的年终策划,你所未见的2009。

片头:http://news.163.com/special/000113C4/unseen2009.html

照片幻灯:http://news.163.com/unseen2009/25SG0001/7508.html

片尾:http://news.163.com/special/0001125G/u2009ending.html

2009-12-29_122356

慎博呐!

日期:2009-12-26 | 作者: Allen

和菜头的博客被和谐了,如果不翻墙的话,通过Google Reader订阅,兴许能免遭墙的困扰。

所以这年头……慎博呐!

http://a4.att.hudong.com/21/39/01300000165486121489390552112.jpg

ASP.NET 本地化相关的技巧

日期:2009-12-17 | 作者: Allen

通常的ASP.NET本地化的做法是利用Visual Studio中生成本地资源工具,在文件夹中生成一个App_LocalResources文件夹,其下再生成一个和aspx对应的resx文件,然后我们将这个resx文件进行复制,重命名,再对其进行翻译。这种做法上手很快,但随着页面的增多,项目结构越来越复杂,这个方案有其缺点:

  1. 翻译文件在物理上过于分散。每个层级的文件都有resx文件,对资源文件管理不方便。
  2. 翻译内容的重复。10个页面都有“保存”功能,按照传统的做法,生成10个resx文件,里面都有“保存”需要翻译,重复劳动。
  3. 翻译内容对应的主键无自描述,或者很少有自描述。
  4. 没有GUN gettext使用方便。

所以要对其进行一番改进,目标是:

  1. 只使用一个全局的资源文件。
  2. 使用简单的命令对资源文件进行利用(如 GetText)。

目标说明之后,代码就很简单了。

代码

可以放在Page, UserControl和MasterPage的基类中,也可以改动一下做成静态方法调用。

public string GetText(string key)
{
    var result = HttpContext.GetGlobalResourceObject("Web", key);
    return result == null ? string.Empty : result.ToString();
}

public string GetText(string key, CultureInfo cultureInfo)
{
    var result = HttpContext.GetGlobalResourceObject("Web", key, cultureInfo);
    return result == null ? string.Empty : result.ToString();
}

应用

  1. 在HTML中显示本地化

    <div><%=GetText(“English”)%></div>

  2. 在Server控件中使用本地化

    <asp:Label ID=”Label1″ runat=”server” Text=”<%$Resources:Web,English%>”><asp:Label>

  3. 关于Javascript中的本地化

    可以将多语言的Javascript文件路径作为一个“翻译内容”,使用方法类似于第一种方法。

最后

默认的ASP.NET本地化解决方案,上手方便,但在使用上有些呆板,产生很多重复工作。所以在原来的基础上进行了改进,力图达到方便使用,方便维护的目的。

题外话,尽量少使用服务器控件,比如ASP.NET的RadioButton控件,最后生成的HTML会包含一个SPAN,写Javascript进行DOM操作的时候,有些不习惯。在前端技术得到飞速发展的今天,HTML代码越少,越有语义性,维护起来就更加方便。

新型植入式MSN广告

日期:2009-12-14 | 作者: Allen

以前MSNShell也有这样的提示,不过现在看来都有点像植入式广告。

image