Archive for the ‘Web’ Category

Can SilverLight Beat Flash?

Tuesday, April 17th, 2007

昨天,微软的SilverLight发布了。这个完全被设计用来抢占Flash的RIA应用市场的技术,确实是flash的一个强大的竞争对手。这么长时间以来,MS终于搞了一项振奋人心的web技术。这是一个强大的诱人的开发平台,在RIA领域,它的一些惊人的优势对flash来说绝对是致命的。

与AJAX结合紧密:flash也需要与js通信,才能完成很多DOM/BOM相关操作,在Flash8以后专门提供了这方面的功能。但是SilverLight本身逻辑级别的功能就是在js中完成的,无疑它更方便和AJAX技术有效整合。

容易动态生成:SilverLight完全使用xml和js来描述,用自己熟悉的任何一门web动态语言很容易就可以生成,相比之下,flash虽然有对应的技术Flex,而且开发华丽的效果相对容易,但是成本太高,无论学习成本和昂贵的授权费用,都形成很高的门槛。

对搜索引擎友好:由于flash采用二进制文件发布,搜索引擎不能正常索引,新版本中虽然可以通过元数据获取信息,但是也比较麻烦。这是困扰flash整站以及Flex站点的千古问题。SilverLight以源文件形式部署,天然提供了被搜索引擎索引的可能性,简直就是针对flash弱点的精确制导打击。

SilverLight设计层面的工具是微软的Expression Studio(当然也可以用任何一个文本编辑器,只要能应付极其冗长的矢量图形代码)。我虽然没用过,但是如果假设它现在远赶不上Flash & Illustrator CS3,我认为这样的假设完全是合理的。不过它的开发层面使用Visual Studio,这也许就一下子站在了Adobe的前面。

MS是win的老板,恐怕不会很快推出跨平台的方案,但是在跨浏览器方面SilverLight很容易实现。只需要安装一个1M多点的包,就可以实现跨浏览器支持。虽然现在它的安装量不大,肯定超不过flash plugin,但是MS一旦把它捆绑进系统更新,那一天绝对是Adobe的噩梦。着眼于富应用的web开发者是不是可以开始学新技术了?Flash到时候会被打倒还是脱层皮?真是超英赶美没完没了。

User Script for GreaseMonkey of Firefox

Wednesday, April 11th, 2007

昨天写了一个GreaseMonkey的脚本,用于在学校网关自动登录。本来设想用httpRequest在后台模拟交互,但是网关系统的设计实在是缺乏考虑,逻辑混乱,不要说用户体验,就是基本的功能都bug百出,简直令人发指。最可恶的地方在于需要post一个中文的参数过去才能登录,这个一直没法通过MG实现,总是会变成乱码。无奈只有采取载入原页面再加以hack的方法实现。

GreaseMonkey可以在指定的页面执行user script,这对于像我这种洁癖+强迫症无疑是必备毒药,因为现在意味着你可以修改任何不好看或者不方便的页面,甚至完全重写。上述脚本中我就重写了“错误:本IP已经连线”的页面(完全不需要的愚蠢页面),改成了自己写的控制面板。

写user script是很有趣的工作,因为不仅需要写javascript,而且需要写html和css,设计界面效果,页面元素还可能与js形成模板化结合,web开发的几个层面都用到了。script的load顺序又很关键,定义早了可能白load,定义晚了又没法让前面调用。不同页面,不同阶段的副本要依靠全局状态做不同的处理,这一点又很像并行程序设计。所有这些要整合在一个js里面,连图片都要用URI格式嵌入在代码里,一切必须设计得极尽精简和谐。一个漂亮的user script,的确是种艺术。

Firefox扩展所展现的空间更加诱人,也需要更为复杂的脚本来实现,涉及到XUL、RDF、XPCOM等一系列XML技术。因为它是以浏览器即时解释的源文件形式存在的,也就天然的开源了。抛开Firefox安全、高效和对标准友好的优点不谈,正是这种自由软件的精神,良好的自定扩展能力,人人容易参与的开发形式,才造就了Firefox本身的强大能力,以及对高阶用户的极大诱惑力。

下载LoginBNU v0.1+greasemonkey0.6.7(ps:我这不是艺术)

两个扩展,网页前端开发的绝对利器

Friday, April 6th, 2007

介绍两个做网页开发的杀手级辅助扩展。

Web developer,可以修改和挂载css,修改html并即时更新页面,查看内部外部的js,查看div等元素的位置、样式、属性、顺序,以及其他的无数信息,进行各种标准验证,还可以对当前的表单、DOM、甚至cookie做出惊人变态的修改。能力超强绝对堪称killer app!

点击下载由su27汉化的web developer1.1.3(ps:做完汉化后才发现已经有人做过了,呜呼)

Firebug, 可以开启一个强大的编辑面板对html、css、javaScript、DOM进行编辑,堪称FireFox中的Dreamweaver!还可以分析页面下载过程中各个部分的加载顺序和时间,对js进行方便的debug,仲可以随鼠标在页面元素与代码、样式之间跟踪对应,绝对是扩展中的神作,开发人员的绝对凶器!

点击下载firebug1.01汉化版

完事。

Friday, September 1st, 2006

这段时间我们只是学点东西而已。要相当感谢老师和几位师兄的指导,对某些问题,有时候几句简单的话,能起到几本书都难以达到的作用。语言了解了,使用语言的环境了解了,剩下的工作就仅仅是如何组织语言来描述解决方案而已。实质是很简单的。开始的任务是要在Linux下编写一个简单的外壳程序,刚刚把gcc/make的那一套东西弄熟,又要搞Windows的编程,做一个通过叶子的颜色分析病虫害的程序。这是生物数学的项目,但到了我们手里,跟这两样都沾不上边了。由于以前没做过VC,现学还是有那么一点点痛苦。尤其是我开始不知道有GDI+的Bitmap类,只知道dot net的Bitmap,于是活生生写了个托管类来处理,结果跟同学做的MFC的Form总是接不上,费了不少白花花的时间。好在这两系列的图像处理方法相当类似,最后还是没用.net的高级货。

买了几百块钱的书,慢慢看,反正要报销的。这段时间发现的最好的C++书是C++ Primer,确实如封底所言,它引领着我们穿过了那些危险的沼泽,为我们的debug事业做出了卓越的贡献。面对2、3百个报错和无数的警告,有时候真的想砸显示器(反正是机房的),但是自制力对一个程序员来说还是很重要的,尤其是在debug的时候。如同直觉一样重要。

宅男2.0化之:在线RSS阅读器和FeedBurner

Saturday, May 20th, 2006

最近在小明的热心推荐下开始用NewsGator,觉得确实异常好用,而且相当2.0,没用过在线RSS阅读器的同学们,值得试一把!

FAQs:

为什么要订阅RSS?用书签看网页不就行了?

  • 订阅RSS就可以用RSS阅读器了,现代社会弊病丛生,要有效筛选和获得信息,尽可能提高阅读效率,避免做青涩宅男/女,订阅RSS吧。
  • 打不开MSN Space? tianyablog,blogcn速度太慢受不了?订阅它们吧。

为什么要用在线RSS阅读器?

  • 任何电脑上,任何系统下(尤其是我这种多系统用户),任何浏览器,随时随地可以读订阅的RSS更新。
  • 服务器代替你的电脑读取和解析feed,快,好,省油!
  • 不需要装RSS阅读软件了,也不需要承受更换软件时候的巨大麻烦……
  • Clip功能可以让你在线收藏文章,并用rss把它发布出来(如果你想要公开的话)。比如订阅这里就可以随时获知我在NewsGator收藏了哪些文章。

为什么要用FeedBurner?

  • 使用FeedBurner的10大理由>>缓解流量压力,不变的Feed地址,友好的界面和标准的格式,管理多个Feed,Feed数据统计,Podcast功能,集成网摘及图片,Feed转出功能, etc… FeedBurner的7个新功能
  • 强大的feedFlare功能。就是在每篇feed后面显示一行小字,可选的功能有:Email The Author,Technorati Cosmos Links(Displays the number of links to your item from blogs, as measured byTechnorati. ),Add to del.icio.us,等等,甚至可以把它显示在你的blog上,而不仅是在发布的feed中。更拉风的是,这些小字的功能,你可以自己开发。feedBurner提供了开放的API,你可以把你的flare放在网上。feedBurner用户想使用你提供的互动服务的话,只需要添加你的Flare Unit URL,他的每篇feed/blog下就会有一行小字,用来执行该服务。

点击Subscribe in NewsGator Online 图标,就可以把我的feedBurner烧过的feed加入NewsGator,它与我原来的Rss和Atom主要的不同是集成了我的Flickr更新。

奇怪的bug

Saturday, April 29th, 2006

前段时间做的报名程序,在我的IE和FF上测试都正常,但在boss的IE上,main部分就会因为太宽而掉下来。搞的我非常郁闷。只有把main的宽度从390改到320。

这两天在数学楼值班,反复测试,才发现原来问题只与windows有关,跟浏览器无关:win2000会把main的width解释得更长。不论IE5/6,都会把width:390pt 显示成大概500pt左右,而320pt显示成390左右。最奇特的事情是,我给一台2k和一台xp的机器分别装了同样版本的FF,但是2k的出现这个bug,xp的没有。这说明确实是win的版本造成的影响。我没有进一步考察是对单位(pt)的解释不同还是对css的解释不同。总之是有点神奇。

我的第二个php程序(2)

Sunday, April 2nd, 2006

今天把纪检委的后台写了,前后台全部写在一个index.php里面,感觉有点bt,实际上我觉得php由于具有特殊的用途,文件结构又与用户界面相关,情况复杂,其代码重用性要最大程度提高的话,要么就把文件写得很散,尽可能提高功能通用程度,越细化就越方便封装和设计接口,越通用就越便于重用;要么就写到一个文件里面,像一般的应用程序一样自由处理,这样至少在面向过程的程序思路方面会有很大方便.但是做为具有一定规模的程序,这样做可能不符合动态网页语言的特殊环境,造成不便.

这个迷你CMS特别适合的站点:

  • 按栏目发布文章,但栏目设置几乎不会变动的站点(因为要变动的话你就必须得去改php,也很方便. 在后台里就没做这样的功能了,因为这给编写程序带来很大方便:后台和普通界面可以整合,不需要单独界面).
  • 结构简单,只要求 文章类别 和 link列表 这两种结构的,并且不需要二级子类别的(这个功能其实也容易扩充).

功能是太简单了点哈.但现在确实有不少这样低要求的(特别是那种其实不大需要网站的官方机构),而且想到仅需要一个不到8k的index.php、一个html模板、一个css就可以搞定,感觉还是很爽哈.(用模板所以需要一个template.inc,可选外挂:tinyMCE editor)

以后再回过头来看,也许觉得现在的代码写得很垃圾了吧:)

紫金香的新style

Saturday, April 1st, 2006

p2.gif

今天终于有时间开始做紫金香新style,这个是在ettox.com的模板pio基础上修改的.

做设计.就是要让所有人都满意.这只能让人心灰意冷.做了这一把就收手了,出来混迟早要还的.

想弃了flash,甩了ps,离了windows,跟Linux过一辈子.

我的第二个php程序

Friday, March 31st, 2006

也是我的第二个css+div布局页面。这是学校纪检委的站点,巨多奇怪的要求,比如举报箱要能动之类。我决定自己写一个简单的cms,作为php的练习吧。

  • 第一步:做一个div+css的界面。设计为常见的head+sidebar+main+footer的布局,顶上做了个flash的banner(真不想再看到flash的界面了,审美疲劳),做成html给客户过目。
  • 第二步,按功能划分块,据此把html改写成模版,真是清爽舒服!
  • 第三步:照着模版上每一个要替换的变量编写前台程序。这次只用了一个文件,还学到一些新的技巧,比我的第一个php程序写得好多了,呵呵…

还是有一些问题:制作界面的时候基本是一边做图片一边做布局,两方面的尺寸联系控制有些麻烦,感觉没有以前做好整个图然后切出来(图片和布局同时出来)来的顺手。这种方法只能应付简单的布局,以后更复杂精细的结构,估计还是必须出整图,要不然就很难调整了。明天写后台,现在没时间blog了,see u next time…