X-Spirit的陋室铭

生活有的时候面临许多选择,这些选择让人困惑。 生活有的时候没有任何选择,这个时候让人压抑。 但无论生活有没有给你选择,你只能做一件事情: 排除困难,勇往直前!

2007年7月31日星期二

Java FX技术概览

JavaFX Script™ (下文中成为JavaFX)语言是一种声明式的静态类型编程语言。它具有第一级函数(first-class functions)、声明式的语法、列表推导(list-comprehensions)及基于依赖关系的增量式求值(incremental dependency-based evaluation)等特征。JavaFX 脚本式语言特别适用于Java2D swing GUI组件,它允许简单地创建图形界面。

译者注:第一级函数指函数被当作对象对待,可以在运行时赋值、传递和返回。详见wikipedia上的解释

译者注:列表推导指一种在函数语言中的表达式,它表示了在一个或者多个列表的成员(被选择的)进行某种操作的结果。它被称为“syntactic sugar”,即为开发者提供了便捷的多种函数的应用组合。详见FOLDC对list comprehension的解释

本文档给出了JavaFX 脚本式编程语言的非正式描述。

就语言方面来说,出现了Java FX script 项目。Java FX是很灵巧的,它提供了一个高级的脚本接口,运行在Java 2D的API上。从用户的角度来看,他们不需要编写Java代码,不需要深入理解复杂的线程,Java 2D,Swing类的层次结构,定时框架结构(timing framework)等等。相反,他们只是编写脚本语言和描绘出所需要的GUI,包括活波的音响效果,图形效果,比如说梯度或者音乐,和数据绑定等等,这些都建立在一个基础API上。
    这里有许多的工具帮助你学习syntax语言,相关资源这个从这个网站获得;Java FX研发小组的目标就是提供syntax语言,和一些关于Java FX的用户体验,这些用户包括美术设计员和那些对应用程序可视界面美观感兴趣的民众。当前,Java FX某种程度上作为第四步产生的语言在运行,因为首先是解释器将FX脚本创建成为Java代码,然后再调用适当的Java 2D API。该小组长期的目标是将FX脚本直接编译成字节码。
    Java FX添加到桌面Java是一件非常好的事情,但是,这得取决于是否有这样的一种JRE的存在,它能运行Java FX生成的代码。有些人认为FX已经进军到RIA(rich Internet application)领域,和Adobe公司的 Flex一较高下。但是,目前还是有一些难题需要解决,举个例子,如何才能让桌面Java的安装体验和运行时间性能比得上其它的RIA框架。还好,这种问题正在被其他的项目解决,这个项目名称就是Java kernel。
    Java kernel主动承认这么一个事情,即大多数的Java应用程序都是只有JRE的部分大小,如Limewire(一个文件共享的桌面应用程序),它只有JRE的三分之一大小。Kernel将会对JRE重新打包,使得只下载应用程序所需要的部分JRE。每个程序所需要的基本部分将会被下载,作为JRE启动所需要的最小部分,其他的部分根据需要下载,或者根据ClassNotFound异常信息,下载缺失的类。这将是一个巨大的好消息帮助桌面Java应用程序瘦身,同时还能使得桌面Java应用程序执行的更为有效。除了解决如何下载的问题外,kernel还非常关注Java程序的启动性能。
    在先前的kernel几个版本,热启动时间(warm start times)减少了很多,但是,在应用程序调用main(String[])前,冷启动JRE仍然需要延误许多秒的时间。Java kernel正在尝试有效的处理冷启动,将冷启动转变为热启动,通过一些相关的技术,如预加载(pre-loading)JRE,从硬盘读入到内存,还有一个操作系统服务,这个服务的功能就是监视可分配的内存来加载JRE,使得用户获得最佳的性能。出了这些,kernel还提供了一个新的浏览器插件,提供给Web 开发者更多的关于桌面运行信息,可获得的JRE水平等等。
     对于桌面Java来说,Java kernel 和Java FX两大好消息。说Kernel是一个非常好的技术,是因为它承认了Swing已经到了一个非常成熟的阶段,并且帮助开发这如何将他们的Java应用程序更为快速,更为有效的搬到用户桌面上。说FX是两外一个非常好的消息,是因为它为Java开发者打开了新篇章,特别是那些愿意使用脚本语言和做一些高级的,活波的,图形效果的开发者,他们只需要写简单几行代码就可以完成。我相信这两项技术将会使得更多的应用程序用Java语言编写,运行在用户的机器上,同时,对于用户和开发者来说,应用程序变得更快,更简单。

相关学习资料

https://openjfx.dev.java.net/JavaFX_Programming_Language_CN.html

https://openjfx.dev.java.net/JavaFX_Programming_Language.html

https://openjfx.dev.java.net/Getting_Started_With_JavaFX.html

https://openjfx.dev.java.net/

http://download.java.net/general/openjfx/demos/tutorial.jnlp

做最好的自己

不管什么时候,不论处在什么环境,不论别人如何影响我或者评价我,我仍然坚持做最好的自己!

2007年7月27日星期五

千里之行,始于足下

现在想来,自己还有很多的目标没有实现。但是自己太着急,所以总是在这么多目标之间徘徊,灵魂都快被撕扯碎了!于是自己终于明白,眼下的目标才是最重要的,认真做好眼下的事才是当务之急!正所谓千里之行,始于足下!

2007年7月26日星期四

迟到和堵车

要说起来,北京现在的交通也真的够方便的。
公交车线路多,地铁线路也多。

但是今天早上,就好像是开玩笑般的,刚从住处出来,坐上801,就开始堵车。几乎40分钟,公交车一动不动,移动电视还在播出交管局的监控画面,从监控画面上看到了更多向我们一样倒霉又无奈的人们——都在堵车! 简直是太有讽刺意味了!

就在8点45分的时候,车子开始往前走了。剩下的路段一路畅通,简直跟人一种错觉:前面的人是不是看时间早,故意堵在那里跟我们后面的开玩笑啊?一看快迟到了就没心思堵后面的了。唉……

2007年7月24日星期二

心灵严重受挫

最近烦心事特多。感觉每天的生活就是不停的忙碌,也没个目标。自我就这样渐渐迷失了。心灵也正在受挫,觉得自己忙了半天还是那么失败,总是越来越落后的样子。

算了,不想它了。Let god damn idea out of my minds, and make myself strong on my own.

2007年7月20日星期五

生活就是碰撞出来的

说到生活,真的,碰撞是在所难免的。任何人在一起都会碰撞。重要的是要相信身边的朋友,要相信问题都可以解决。宽容的态度是避免伤害的最佳办法。

没有碰撞,就没有生活。

生活,就是碰撞出来的。。。

2007年7月18日星期三

真的找到房子了!!!

今天真的找到房子了!!!!很高兴啊。终于不用那样跑来跑去,挤来挤去了。

2007年7月17日星期二

关于X的另一种解释

其实,X的形状很像是一个沙漏斗。上面的沙子经过一个细细的口才能沉到下面。

如果把上面的部分看做一个入口,那么,事实上,我们可以把它想像的无限伟大——包容一切,有着海纳百川的心胸。

但是即使是这个无限伟大的东西,也会有它的弊端。那就是不经过筛选,容纳了一切。

所以,如果能在中间的细口上加上一个过滤网,就可以把精华筛选出来,最终变成自己的沉淀。

随着时间的增长,我们还可以不断的将筛选过的东西进行再筛选。

所以,X也可以是一个中间有过滤网的,两边开口的沙漏斗。

2007年7月15日星期日

找到房子!

找到房子了!!!好高兴!!希望一切顺利,高高兴兴的入住!

--
X-Spirit

2007年7月14日星期六

和同事喝酒想到的

今天和同事喝酒,忽然想到在学校最后的时刻,和宿舍人一起喝酒。
 
突然非常想念同学,特别是室友。
其实这一段最牵挂的室友还是峰哥和源哥。一个辞掉了上海的工作正在北京找,另一个在天津培训。其实现在找工作真的不容易了,因为这一段时间正好是各公司内部比较稳定的时期,机会比较少。这个时候找工作,压力绝对是非常大的。所以,面对目前自己正在做的这份不太喜欢的工作,最终还是选择接受它了。这两个哥哥的情况目前也许真的不是很乐观,我只能默默祈祷。
 
QQ在我临走时候把我送上了出租。他那句:"有事打电话"我听了以后心里一阵酸。我当时真的想抱住他,因为我真的不想以后只能"有事打电话"。可是天下没有不散的宴席,我必须接受。。。
 
其实喝酒只是为了寻找一下醉的感觉,但是对我来说,就像是喝一种很特别的饮料,有时候像咖啡一样让人振奋,有时候又像苦茶让人感到淡淡的忧伤。但每次喝酒我都会保持特殊的清醒,甚至比我平时还要清醒明白许多。但也就是这个时候,我体会到,打假办的同志们,我是多么的爱你们。
 
 
 


--
X-Spirit

2007年7月12日星期四

终于把自己卖出去了!

这个题目似乎有些暧昧,但是的确是自己心里的感受。
签约了,虽然不是自己梦想的程序员,但还是签了。
当面对条件苛刻的开发人员招聘启示,当面对这份能让我在北京有自己独立收入的工作时,我无法拒绝!尽管心里还有很多无奈,但是社会就是这样强奸人的意志的!
今天我低下了头,是为了能够更好的站立起来!


--
X-Spirit

2007年7月9日星期一

正式上班第一天

对于离开学校生活的我来说,这算是纯粹的社会生活的第一天。

虽然自以为比很多同学提前步入了社会,但是当这个"第一天"真的来临的时候,自己突然发现自己似乎还没有准备好,面对这个未知的领域,自己就像一个幼稚的孩子。

我似乎还没有学会如何工作,也似乎还没有学会如何调整自己的心态。面临眼下的工作和住房问题,一切都要从头开始。

今天最惨的就是被 Feature Owner 做了完整的批判。自以为是的我突然间非常郁闷,以为什么都能拿得起来,但实际上却是漏洞百出,毛病不断。我还没有振作起来。

今天最大的收获也是来自 FO 的教诲。FO 耐心的指出了我Error Report 中的多出错误和不妥,大多是由于冗长、�唆的陈述和不够准确的描述引起的。我想,我现在缺乏的也许不仅仅是简洁、清晰、准确的表达,更缺乏的是对这个工作的认识。我对这个领域还太不了解,我的知识积累还太肤浅了。。。

加油吧。成功不是一句口号,它是一点一滴的积累,需要自己每天以最完美的状态做最努力的事情!



--
X-Spirit

2007年7月7日星期六

致大学最后一天

大学四年的时光一转眼就溜走了,身边的同学工作的工作,读研的读研,出国的出国……

分别的时刻总是带着些许伤感。和班里人吃散伙饭的时候,有人哭了;和宿舍人吃散伙饭的时候,大家都喝醉了……分别的时刻在每个人的心里都意味着淡淡的忧伤。的确,这一别,或许有些人真的今后都很难见面了。在这四年结下的友谊多么珍贵,而这四年的青春又是多么精彩。

或许在别人心中,这一次的离别是充满伤感的。但是当我在酒桌上从微微迷醉喝到异常清醒的时候,我清醒的告诉自己:

只要我们的心仍然年轻,青春,不会随着四年的终结而终止。只要我们的心里还彼此牵挂,友谊,不会随着时间的脚步而褪色……

因为有缘,我们能在这四年里相聚;因为有缘,我们还将在不久的将来再会!

请相信,只要努力,我们的明天会更美好!

2007年7月2日星期一

XSLT Designer快速入门指南


XSLT Designer快速入门指南

目录

l       概述

l       配置教程环境

l       创建 XSLT 模块项目

l       创建 XML 架构

l       创建 WSDL 文件

l       创建 XSL 样式表

l       创建和部署复应用程序

l       测试 XSL 转换服务

l       下一步   

概述

  在本教程中,您将了解 NetBeans Enterprise Pack 5.5.1 Beta 版中附带的 XSLT Designer 的使用。XSLT Designer 用于开发、部署和测试 XSL 转换服务。

  XSL 转换服务用作一种 Web 服务。它从外部客户端接收消息,按照 XSL 样式表对消息进行转换,然后将消息发送回发起人或者将消息转发给另一个 Web 服务。

  在本教程中,您将创建一个简单的 XSL 转换服务,该服务接收消息、对消息进行转换,然后将消息发送回调用它的 Web 服务。

前提条件

  本教程假定您基本了解 NetBeans IDE ,并且有使用 NetBeans IDE 编程的经验。

系统要求

  本教程假设您的系统符合 NetBeans Enterprise Pack 5.5.1 Beta 发行说明 的"系统要求"部分指定的要求。

教程所需的软件

注意: 现在 NetBeans IDE 5.5.1 Release Candidate 已经发布。 NetBeans Enterprise Pack 5.5.1 Beta 与这个 RC 版本的 IDE 结合使用。我们不打算发布 NetBeans Enterprise Pack 5.5.1 Beta 的任何进一步更新。我们的所有开发精力都集中在 NetBeans 6.0 SOA Pack 上。  开始之前,您必须在计算机上安装以下软件:

l       NetBeans IDE 5.5.1 RC1 下载 IDE

l       NetBeans Enterprise Pack 5.5.1 Beta

配置教程环境

  必须先正确配置和运行 JBI Runtime Sun Java System Application Server 9 ,然后才能部署该应用程序。

  要确认 JBI 服务器已启动,请执行以下步骤:

1.        打开 Runtime 窗口。

2.        展开 Servers 节点。

3.        右键单击 Sun Java System Application Server 9 节点,然后从弹出菜单中选择 Start。如果 Start 选项不可用,并且 Sun Java System Application Server 节点旁边有一个绿色三角形,则表示您的服务器已在运行。

4.        展开 Sun Java System Application Server 9 > JBI > Service Engines 并确保 XSLT 服务引擎正在运行。如果该服务引擎没有运行,则右键单击 com.sun.xsltse-1.0-2 节点,然后从弹出菜单中选择 start 。如果 start 选项不可用,则表示该服务引擎已在运行。

创建 XSLT 模块项目

XSLT 模块项目中创建 XSL 转换服务。

要创建新的 XSLT 模块项目,请执行以下操作

1.        IDE 的主菜单中,选择 File > New Project

2.        Categories 下,选择 Service Oriented Architecture

3.        Projects 下,选择 XSLT Module

4.        单击 Next

5.        Project Name 字段中,键入 HelloXSLTransformation

6.        修改项目位置或接受默认设置。

7.        单击 Finish

8.        现在 Projects 窗口包含 HelloXSLTransformation 项目节点。

  接下来,我们将创建两个 XML 架构 (.xsd ) 文件,一个 Web 服务描述 (.wsdl ) 文件和一个 XSL 样式表 (.xsl ) 文件。要运行 XSL 转换服务,您至少需要一个 XML 架构文件、一个 WSDL 文件和一个 XSL 样式表文件。在本教程中,我们将创建两个 XML 架构文件。

创建 XML 架构

  我们将创建两个 XML 架构:HelloXSLTIncoming.xsd HelloXSLTOutgoing.xsd 。我们将使用前者作为传入消息的基础,后者作为传出消息的基础。

要创建用于传入消息的 XML 架构,请执行以下操作:

1.        Projects 窗口中,右键单击 HelloXSLTransformation > Transformation Files 节点,然后选择 New > File/Folder

2.        New File 对话框的 Categories 下,选择 XML

3.        File Types 下,选择 XML Schema

4.        单击 Next

5.        File Name 字段中,键入 HelloXSLTIncoming

6.        单击 Finish。一个新的节点 HelloXSLTIncoming.xsd 将出现在 HelloXSLTransformation 项目的 Transformation Files 节点下,并且新的架构在 XML Schema Editor 中打开。

7.        Schema 视图的第一列中,右键单击 Elements,然后从弹出菜单中选择 Add Element。将打开 Element 对话框。

8.        Name 字段中,键入 name

9.        Type 下,选择 Inline Simple Type 单选按钮。

10.    单击 OK

11.    要查看您创建的架构的源代码,请单击 XML Schema Editor 工具栏中的 Source 按钮。您会看到以下代码:

  <?xml version="1.0" encoding="UTF-8"?>
  
 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
             targetNamespace=" http://xml.netbeans.org/schema/HelloXSLTIncoming"
             xmlns:tns="http://xml.netbeans.org/schema/HelloXSLTIncoming" 
             elementFormDefault="qualified">
     <xsd:element name="name">
         <xsd:simpleType>
             <xsd:restriction base="xsd:string"/>
         </xsd:simpleType>
     </xsd:element>
 </xsd:schema>
                 

要创建用于传出消息的 XML 架构,请执行以下操作:

1.        重复上面的步骤 1-4

2.        File Name 字段中,键入 HelloXSLTOutgoing

3.        单击 Finish。一个新的节点 HelloXSLTOutgoing.xsd 将出现在 HelloXSLTransformation 项目的 Transformation Files 节点下,并且新的架构将在 XML Schema Editor 中打开。

4.        Schema 视图的第一列中,右键单击 Elements,然后从弹出菜单中选择 Add Element。将打开 Element 对话框。

5.        Name 字段中,键入 greeting

6.        Type 下,选择 Inline Simple Type 单选按钮。

7.        单击 OK

8.        要查看您创建的架构的源代码,请单击 XML Schema Editor 工具栏中的 Source 按钮。您应该会看到以下代码:

  <?xml version="1.0" encoding="UTF-8"?>
  
 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
             targetNamespace=" http://xml.netbeans.org/schema/HelloXSLTOutgoing"
             xmlns:tns="http://xml.netbeans.org/schema/HelloXSLTOutgoing" 
             elementFormDefault="qualified">
     <xsd:element name="greeting">
         <xsd:simpleType>
             <xsd:restriction base="xsd:string"/> 
         </xsd:simpleType>
     </xsd:element>
 </xsd:schema>
                 

9.        单击工具栏上的 Save All 按钮。

  您应该会在 HelloXSLTransformation 项目的 Transformation Files 节点下看到列出的两个架构文件。

注意:XML Schema Editor 并不是本教程的主题。

创建 WSDL 文件

  现在我们将创建一个 Web 服务描述文件,用于定义 XSL 转换服务的 Web 接口。

要创建 WSDL 文件,请执行以下操作:

1.        Projects 窗口中,右键单击 HelloXSLTransformation > Transformation Files 节点,然后选择 New > File/Folder

2.        New File 对话框的 Categories 下,选择 XML

3.        File Types 下,选择 WSDL Document,然后单击 Next

4.        File Name 字段中,键入 HelloXSLTWSDL ,然后单击 Next

5.        Input 下的 Element Or Type 列中,单击省略号 (...) 按钮。将打开 Select Element Or Type 对话框。

6.        选择 HelloXSLTransformation > src/HelloXSLTIncoming.xsd > Elements > name 并单击 OK

7.        Output Element Or Type 列中,单击省略号 (...) 按钮。将打开 Select Element Or Type 对话框。

8.        选择 HelloXSLTransformation > src/HelloXSLTOutgoing.xsd > Elements > greeting 并单击 OK

9.        单击 Next

10.    Binding Type 字段中,选择 SOAP

11.    Binding Subtype 下,选择 Document Literal,然后单击 Finish

您应该会在 HelloXSLTransformation 项目的 Transformation Files 节点下看到列出的 HelloXSLTWSDL.wsdl 文件。

注意:创建和编辑 WSDL 文件并不是本教程的主题。有关详细信息,请参见 WSDL 编辑器 开发指南


--
X-Spirit