Hello World
Spiga

分类:前端表现

使用Jscex实现排序算法动画

2011-03-10 23:35 by 老赵, 3753 visits
摘要:用动画来观察排序算法是一件很酷的事情,例如有人便为各种排序算法提供了动画效果。只可惜这些效果都是实现准备好的gif图片,并非由代码写成。在大部分平台上编写这样的程序并没有太大困难,只要在绘制出图形之后短暂地阻塞线程就行了。可惜,在JavaScript中我们只能“一蹴而就”,要暂停的话,只能使用setTimeout进行回调了。不过,这也正是Jscex的用武之地,用Jscex编写的代码需要“暂停”,只需要简单地调用sleep异步方法,一切都很直接。 阅读全文

基于Jscex.Async的JavaScript动画/游戏

2010-12-16 01:03 by 老赵, 3307 visits
摘要:首先和大家宣布一个消息,Jscex的代码已经提交至Github上了,感兴趣的朋友下载来Dog Fooding一把,并欢迎提出反馈意见。Jscex受到F#计算表达式的启发,是一个面向JavaScript语言的monadic扩展,最常见的用途便是编写异步程序,尤其是逻辑复杂的异步程序。不过除此之外,使用这套异步库来编写动画或是游戏也是十分容易的事情。例如,一个人物的走动或是爆炸效果,其实可以视为一个贴图随时间不断变化的过程。这个变化的过程是异步的,但是有了Jscex.Async,我们只需使用最直接的同步形式编写代码就行了。 阅读全文

演出季上“异步编程模型的演变”幻灯片

2010-12-11 22:01 by 老赵, 3295 visits
摘要:演出季终于过去了,现在就来做一个收尾吧。这次的主题是“异步编程模型的演变”,主要回顾了微软在.NET平台上异步编程上的进化:基于回调,基于迭代生成器,基于类库,基于语言。不过这样的编程模型其实并非微软独有,而是一些运用比较广泛的异步编程方式,因此在SD 2.0大会上我其实完全用JavaScript进行演示。从结果上来看,除了最早的TUP,其他两场演讲(.NET技术大会和SD 2.0)的反响都不错。 阅读全文

适合JavaScript 1.7中迭代生成器的异步编程机制

2010-12-03 19:09 by 老赵, 2257 visits
摘要:上篇文章我提出了一种基于JavaScript 1.7中迭代生成器(yield)的异步编程方式,它可以让混乱的异步代码逻辑变得清晰一些。不过之前的AsyncIterator其实是对基于C# 2.0的AsyncEnumerator的仿制品,在公司的分享会上进行交流以后,同事hax提出其实可以实现地更漂亮一些。在他的提示下,我了解到JavaScript 1.7中不同于C# 2.0里的特性,因而对这种异步编程机制提出了改进。只可惜yield特性被ECMAScript 5排除了,这实在可以说是委员会设计模式的又一次伟大胜利。 阅读全文

JavaScript版本的AsyncEnumerator

2010-11-29 22:25 by 老赵, 3088 visits
摘要:地球人都知道,在C# 2.0里提供了yield关键字,可以方便好用地生成一个迭代器,更可以简化异步操作——这是因为有了Jeffrey Richter开发的AsyncEnumerator。在接下来的某些演讲中我准备的主题是“异步编程模型”的演变,自然少不了这非常重要的一环。为了便于广大人民群众更好地接受,我决定使用JavaScript来进行说明。为此,我用JavaScript实现了一个AsyncEnumerator。 阅读全文

关于即将到来的“演出季”以及Jscex类库

2010-11-22 20:30 by 老赵, 2658 visits
摘要:又到了一年一度的“演出季”,接下来将是各式会议扑面而来的一个月。作为“与会爱好者”我自然也进入了繁忙的准备工作。接下来我将在TUP(11月27日)、2010年第二届.NET技术大会(12月4~5日)以及CSDN软件开发2.0大会(12月9~10日)上与大家分享四场演讲。不过除了一场是关于Windows并发编程的基础以外,其余三场的话题都是围绕“微软在异步编程方面的演变”。在这场演讲中,我还会引入一个与该话题密切相关的JavaScript类库:Jscex。 阅读全文

使用Narcissus解析JavaScript代码

2010-11-17 18:08 by 老赵, 3263 visits
摘要:最近在做一个有关JavaScript的实验,需要在客户端将JavaScript代码解析为一棵语法树。换句话说,就是一个用JavaScript实现的JavaScript解析器。这方面的选择有很多,常见的yacc、lex或是bison等等都有JavaScript的版本,使用ANTLR也可以将生成目标设为JavaScript。不过我不想在这方面耗费太多时间,自然想找个现成的工具,于是最终我将目标放在了Narcissus上。 阅读全文

盛大创新院赞助第二届.NET技术交流会 - 演讲录像及下载

2010-09-21 11:27 by 老赵, 3571 visits
摘要:经过一个多星期的努力,我们在此为大家奉上盛大创新院赞助第二届.NET技术交流会的演讲录像。由于录像过程中的一些失误,我们在在讲师录像方面存在着很大问题,经过补救,也只能得到后两场演讲中使用手持设备拍摄下来的录像。在此向大家表示深深的歉意,有了这次的教训,我们以后会更加重视每一个环节的预防及补救措施,尽力避免如现在这样无可挽回的结果。 阅读全文

异步编程与响应式框架

2010-09-14 20:14 by 老赵, 13413 visits
摘要:异步操作是强大的,它是许多高伸缩性架构的基石。异步操作在许多情况下是必须的,例如在客户端保持用户界面的响应能力,以及在日益兴起的云计算场景中。但是,异步编程又是十分困难的,它让这让许多程序员敬而远之。因此,越来越多的编程语言都对异步编程提供了相当程度的支持,其中的典型代表便是F#中的异步工作流以及Scala的Actor模型。不过目前的一些主流编程语言,如C#或是JavaScript,它们在设计之时并没有在异步编程上考虑太多,我们便会根据它们的语言特性,提供合适的异步编程模型及其实现。而本文介绍的便是其中一例:响应式编程模型及响应式框架。 阅读全文

盛大创新院赞助第二届.NET技术交流会 - 各场演讲幻灯片

2010-09-12 22:32 by 老赵, 2108 visits
摘要:昨天有160多位朋友参加了盛大创新院赞助的第二届.NET技术交流会,再次感谢各位对我们的支持。比较遗憾的是,这次的讲师录像方面有着很大问题,我们正在想办法进行修补,希望可以有“差强人意”的结果。现在,大家请在第一时间浏览本次活动新鲜出炉的幻灯片。 阅读全文

盛大创新院赞助第二届.NET技术交流会即将召开

2010-09-09 11:14 by 老赵, 833 visits
摘要:由盛大创新院赞助的第二届.NET技术大会将于9月11号下午1点召开,本次交流会请到了四位讲师,议题覆盖了响应式编程、算法、面向对象设计及Windows内核等多个方面,其中最为突出的莫过于由潘爱民老师为大家带来的Windows内核方面的话题。我已经看过了各场演讲的幻灯片终稿,也很期待各位讲师在正式演讲中的表现。 阅读全文

关于静态资源打包后的相对路径问题

2010-09-05 21:53 by 老赵, 3234 visits
摘要:将多个静态资源打包为单个资源以减少请求数目,是提高页面加载速度的常用手段。于是上个星期,我就在实现网站静态资源的自动打包功能,原以为是个比较简单的问题,实现起来也没有遇到什么障碍,不过在开发完毕投入使用的时候却让我跌了下眼镜。由于静态资源在打包以后,它们的访问路径势必会改变,这样其他一些依赖于原有路径的资源就访问不到了。这方面最常见的例子,便是CSS样式表中引用的图片路径是相对于CSS文件路径的。当意识到这个问题以后,还真是让人手忙脚乱了一把。 阅读全文

为自己打造良好的文章阅读体验

2010-08-24 16:55 by 老赵, 3442 visits
摘要:我的上一篇文章是《为自己打造良好的文章阅读体验》,是为广大“作者”所写的,希望大家的文章都能长得漂亮。但无论怎么样,我们作为读者一定还是会遇到大量阅读体验糟糕的的文章,它们可能是一些只重视搜索引擎流量的无良小站,或是很难推动调整的大站、或是审美情趣有所特色的个人站长等等。根据我的个人经验,如果能够为自己打造一个舒适习惯的阅读体验,会让文章阅读的效率更高,甚至心情也能变得愉快放松。现在这篇文章,便是为了广大“读者”朋友写的,如果能够帮助您“爱上阅读”,那便善莫大焉了。 阅读全文

为读者打造良好的文章阅读体验

2010-08-20 17:01 by 老赵, 3890 visits
摘要:几个月前我在微软“社区精英计划”上谈过“如何打造受人欢迎的博客”,其中一点便是“样式美观”,这也是如Scott Hanselman这样的业界著名博主给出的建议之一。对于写文章、读文章来说,我可谓完全是外貌协会的高级会员,一旦遇上样式排版不好的文章、再好的内容我也难以坚持阅读下去——我也相信很多人多多少少有和我一样的习惯。有人说,我们是程序员,做不来样式怎么办?其实在我看来,打造一个良好的文章阅读体验并不困难,甚至只有那么几点而已。虽然我不是设计师,但我现在也想来谈一下我在这方面的习惯和“品味”。 阅读全文

盛大创新院赞助第二届.NET技术交流会开始报名了!

2010-08-16 11:02 by 老赵, 2296 visits
摘要:自上次盛大创新院赞助的首届.NET技术交流会到现在已经有两个月,这意味着按照原来的“一季一次”的计划也已经离第二次的活动不远了,考虑到9月份的中秋和国庆假期将工作日和休息日搞的支离破碎,于是交流会的时间会略微有些提前。第二届交流会的形式与上次相同,将为您献上四场高质量的技术演讲。当然这次在内容上有了新的尝试,除了引入了算法及面向对象设计的内容之外,这次更是请到了“传说中的大侠”为大家带来有关Windows内核的深度内容。人数暂定为200人,事不宜迟,赶快报名吧。除了.NET社区的群众以外,也欢迎其他技术社区的朋友前来参与交流。事实上,我组织技术交流会的目的之一便是希望能够促进.NET社区与其他技术社区的交流及相互学习。 阅读全文

活动:来自Opera挪威的子斌与上海前端工程师交流HTML5 & CSS3

2010-08-03 16:33 by 老赵, 1902 visits
摘要:最近有些忙,疏于写博客,在此先带来一个创新院周末的活动通知,希望感兴趣的朋友可以来参加。地点在创新院,到时候会有专人负责接待。这次我们请到了Opera挪威的子斌给大家带来一个关于HTML5和CSS3的演讲,他会介绍HTML5和CSS3的新特性以及一些实用技巧,并且会跟大家就一些关心的问题进行讨论。 阅读全文

使用Fiddler辅助观看InfoQ的视频

2009-12-29 12:04 by 老赵, 6427 visits
摘要:InfoQ是一个好地方,而我认为其中最有价值的资源,便是其中的演讲视频。InfoQ在这方面有个特点:在演讲视频下方提供了清晰的幻灯片,而在播放的同时,还会根据进度进行切换。这观看体验自然比单纯的演讲录像要高出许多。可惜的是,时不时有朋友会向我反馈说,InfoQ实在是太慢,几乎无法流畅地观看视频。由于一时半会儿InfoQ也不会在中国放CDN,因此视频加载速度这问题……几乎无法解决。还好,如果我们退而求其次,至少可以使用Fiddler等工具来“缓解”这个问题。 阅读全文

浅谈代码着色(下):服务器端着色

2009-12-15 15:38 by 老赵, 5733 visits
摘要:上篇文章谈了客户端着色,而现在自然就来讨论服务器端着色了。先下个定义:我在这里谈的“服务器端着色”,是指直接从服务器端输出着色效果的做法(与“客户端着色时”输出纯代码文本相对)。至于这个着色效果是如何获得的,例如是由另一个用户直接提供的,还是用户提供纯代码文本,而用服务器端逻辑“着色”,在这里就统称为“服务器端”着色了。不过接下去的讨论,我们还是会作一些区分。 阅读全文

浅谈代码着色(上):客户端着色

2009-12-14 19:53 by 老赵, 5994 visits
摘要:作为程序员,写文章时总免不了插入代码,而对代码进行着色几乎已经成为一个基础,一个事实标准。代码着色的确可以大大加强代码的可读性,因此即便是再不待见IDE的朋友,代码着色永远是必不可少的。不过在网页中进行代码着色的方式有很多,现在我们就来对比一下。记得之前也有朋友写过,但我总觉得不够完整,于是还是自己写一下吧。我们先来看客户端的着色方式。 阅读全文

在项目中使用Google Closure Compiler

2009-12-09 09:13 by 老赵, 8487 visits
摘要:现在的Web项目总是离不开大量JavaScript,而JS文件的体积也越来越大,也越来越影响页面的感知性能(Perceived Performance)。因此,我们会对JS文件进行压缩,一方面是使用Gzip,而另一方面则是去除JS文件里的注释、空白,并且压缩局部变量长度等等。对于一些成熟的类库来说,它们本身都会提供“完整注释”以及“强烈压缩”两个版本。但是,有时候我们需要自己修复类库里的bug,这只能在注释版中修改,对于压缩版自然就无能为力了。此外,自定义的脚本文件一般也值得一压。因此我在项目中时常会备一个脚本压缩工具。 阅读全文
使用Live Messenger联系我