JavaScript 中的有限状态机

Posted on 31st January 2007 by Nio in AJAX, JavaScript, 程序人生

看到这篇来自 IBM 的文章标题中出现“有限状态机”,顿时觉得非常亲切,大学的时候有门课叫《编译原理》,其中就讲到有限状态机,基本都忘的差不多了,呵呵。
JavaScript 中的有限状态机,第 1 部分: 设计一个小部件

有限状态机很早就已用作设计和实现事件驱动的程序(比如网络适配器和编译器)内复杂行为的组织原则。现在,可编程的 Web 浏览器为新一代的应用程序开辟了一种全新的事件驱动环境。基于浏览器的应用程序因 Ajax 而广为流行,而同时也变得更为复杂。程序设计人员和实现人员能够大大受益于有限状态机的原理和结构。本篇文章将向您介绍如何使用有限状态机来为一个简单的 Web 小部件 —— 一个能够淡入和淡出的工具提示 —— 设计复杂的行为。

本系列的第 2 部分将描述如何在 JavaScript 内实现此设计,以及如何充分利用 JavaScript 独特的语言特性,比如关联数组和函数闭包。第 3 部分则会涵盖如何使此实现能够在所有流行的 Web 浏览器中正常工作的内容。最终的代码紧凑简练,逻辑清晰透明,动画效果即使在负载极重的处理器上也能平稳流畅。

新的办公室

Posted on 29th January 2007 by Nio in Mac, 工作忙碌, 程序人生

已经搬到新办公室有两周了,今天才想起来拍几张照片。

Twin Towers
窗户往外正好看到我们以前的办公室所在地--双子座大厦。

My laptop
我的办公桌,很宽,暂时还没有什么东西可放,只放了 MacBook Pro 在台上,呵呵。

2.jpg
美工用的大显示器。

Apple Mini
Apple Mini,麻雀虽小,五脏俱全,CPU、内存、硬盘都在这个小小的机器里头。

iMac
Apple iMac,看似一个显示器,实际上显示器里边集成了 CPU、内存、硬盘,光驱在侧面,还带一个和 MacBook Pro 一样的遥控器。

我渴望与你一起工作

Posted on 25th January 2007 by Nio in AJAX, CakePHP, 工作忙碌, 程序人生

我们现在急切需要 PHP 开发人员,如果你正在寻找工作,谋求发展机会,那请不要犹疑,加入我们吧。

中级程序员
CakePHP、MySQL、Apache、AJAX、SVN/CVS、JavaScript、CSS、HTML

初级程序员
Joomla、MySQL、JavaScript、CSS、HTML

此外,需要有一点英文基础,公司会提供英语培训。

公司介绍请看:http://www.dianjingkeji.com

有意向的同学可以将 中英文 简历发到 hr#dianjingkeji.com(请将 # 号换成 @)。

Synchronizing a Web Client Database: LocalCalendar and Google Calendar

Posted on 23rd January 2007 by Nio in AJAX, Java, JavaScript, 程序人生

Synchronizing a Web Client Database: LocalCalendar and Google Calendar

Rich Internet Applications (RIAs) are becoming more and more popular as the capabilities available to internet clients increase. There is a growing demand for RIAs to be able to store rich, structured, searchable data on the same machine as the web browser, and to be able to synchronize this data with a centralized data store running behind the web server.

各种 lightbox 实现

Posted on 16th January 2007 by Nio in JavaScript, 程序人生

Thickbox - 基于 jQuery,支持 AJAX,轻量级的而且比较高效。可以在 lightbox 中使用图片或 HTML。大小约为 40k,目前还可作为 WordPress 的插件使用。

GreyBox - 创建 iframe 的弹出界面,可使用图片、HTML 及 URL,大小约为 20k。

GreyBox Redux - 基于 jQuery,比 GreyBox 更轻。

Lightbox v2.0 - 最初是为了显示图片设计的,使用了 prototype 和 sciptaculous,所以有些沉重,但对于图片来说很好用。

Lightbox with moo.fx - 基于 prototype,但只能用于图片。

Lightbox Gone Wild
- modal 模式窗口的 lightbox,可使用 html、表单及图片,也是基于 prototype 的,所以有一些 heavy。

Multi-faceted LIghtbox - 又一个基于 prototype 的,不过这个为各种可用于 lightbox 的数据类型提供了选项。

Leightbox - 和 Lightbox Gone Wild 很相似,只是 Leightbox 以 html 方式存放内容,所以可以被搜索引擎索引到。

xilinus - 使用简单,基于 prototype,很容易定制,可使用多种内容选项。

Lightbox Plus - 可以自动根据窗口的大小缩放图片。

Suckerfish Hover Lighbox - 和传统的 lightbox 不一样,它在打开 lightbox 的时候,还可以点击访问页面上的其它元素。

Litebox - 这是 Lightbox 的另一个版本,代码量减少了,使用了 moo.fx 和 prototype-lite,如果页面需要减肥的话,可以选择这个。

LITBox - 使用类写的 lightbox,所以可以创建多个对象实例,并且单独进行控制。基于 Thickbox。