[教程]X3D教程1

mikel阅读(1139)

目录:
第一讲 X3D概述及安装配置
  本讲主要讲述X3D的概述、X3D的编辑器及其安装配置。
  一、 X3D的概述
   “Web3D”一词出自Web3D联盟(Web3D Consortium (W3DC)),其前身是VRML联盟。该组织先后提出了VRML1.0 ,VRML2.0和VRML97 规范。VRML规范支持纹理映射、全景背景、雾、视频、音频、对象运动、和碰撞检测。但由于网络瓶颈、用户需求以及本身技术等原因,VRML技术的进展远 没有达到预期。
  1998年VRML联盟改名为Web3D联盟,年底提出新的标准X3D(Extensible 3D),又称为VRML200x 规范。2000年春,Web3D 联盟完成了VRML到X3D的转换。X3D整合正在发展的可扩展标记语言(Extensible Markup Language ,简称XML )、JAVA、流技术等先进技术,包括了更强大、更高效的3D计算能力、渲染质量和传输速度。
  所谓X3D标准就是XML标准与3D标准的有机结合,X3D被定义为可交互操作,可扩展,跨平台的网络3D内容标准。
  X3D 是 VRML的继承。VRML(Virtual Reality Modeling Language – 虚拟现实建模语言)是原来的网络3D图形的ISO标准(ISO/IEC 14772)。X3D 相对VRML改进,提供了以下的新特性:
  1、3D 图形 – 多边形化几何体、参数化几何体、变换层级、光照、材质、多通道/多进程纹理帖图
  2、2D 图形 – 在3D变换层级中显示文本、2D矢量、平面图形
  3、动画 – 计时器和插值器驱动的连续动画;人性化动画和变形
  4、空间化的音频和视频 – 在场景几何体上映射视听源
  5、用户交互 – 基于鼠标的选取和拖曳;键盘输入
  6、导航 – 摄像机;用户在3D场景中的移动;碰撞、接近和可见性检测
  7、用户定义对象 – 通过创建用户定义的数据类型,可以扩展浏览器的功能
  8、脚本 – 通过程序或脚本语言,可以动态的改变场景
  9、网络 – 可以用网络上的资源组成一个单一的X3D场景;可以通过超链接对象连接到其他场景或网络上的其他资源
  10、物理模拟 – 人性化动画;地理化数据集;分布交互模拟(Distributed Interactive Simulation – DIS)协议整合
   在2002年3月份 X3D 第一版发布以来,已经有基于Java的源码开放的网络3D软件问世。因此,Web3D联盟在制定标准时成立了Java 语言翻译工作小组以便允许Java 程序能够与新的3D标准程序相协调。这也最终结束与Sun的网络3D技术Java3D technology 之间的冲突。
  Web3D联盟计划于2003年10月份向国际标准组织提请标准申请,x3D将正式成为国际通用标准。

[教程]SQL注入攻击的种类和防范手段

mikel阅读(840)

观察近来的一些安全事件及其后果,安全专家们已经得到一个结论,这些威胁主要是通过SQL注入造成的。虽然前面有许多文章讨论了SQL注入,但今天所讨论的内容也许可帮助你检查自己的服务器,并采取相应防范措施。
SQL注入攻击的种类
知彼知己,方可取胜。首先要清楚SQL注入攻击有哪些种类。
1.没有正确过滤转义字符
在用户的输入没有为转义字符过滤时,就会发生这种形式的注入式攻击,它会被传递给一个SQL语句。这样就会导致应用程序的终端用户对数据库上的语句实施操纵。比方说,下面的这行代码就会演示这种漏洞:
statement := “Select * FROM users Where name = '” + userName + “'; ”
这种代码的设计目的是将一个特定的用户从其用户表中取出,但是,如果用户名被一个恶意的用户用一种特定的方式伪造,这个语句所执行的操作可能就不仅仅是代码的作者所期望的那样了。例如,将用户名变量(即username)设置为:
a' or 't'='t,此时原始语句发生了变化:
Select * FROM users Where name = 'a' or 't'='t';
如果这种代码被用于一个认证过程,那么这个例子就能够强迫选择一个合法的用户名,因为赋值't'='t永远是正确的。
在一些SQL服务器上,如在SQL Server中,任何一个SQL命令都可以通过这种方法被注入,包括执行多个语句。下面语句中的username的值将会导致删除“users”表,又可以从“data”表中选择所有的数据(实际上就是透露了每一个用户的信息)。
a'; Drop TABLE users; Select * FROM data Where name LIKE '%
这就将最终的SQL语句变成下面这个样子:
Select * FROM users Where name = 'a'; Drop TABLE users; Select * FROM DATA Where name LIKE '%';
其它的SQL执行不会将执行同样查询中的多个命令作为一项安全措施。这会防止攻击者注入完全独立的查询,不过却不会阻止攻击者修改查询。
2.Incorrect type handling
如果一个用户提供的字段并非一个强类型,或者没有实施类型强制,就会发生这种形式的攻击。当在一个SQL语句中使用一个数字字段时,如果程序员没有检查用户输入的合法性(是否为数字型)就会发生这种攻击。例如:
statement := “Select * FROM data Where id = ” + a_variable + “; ”
从这个语句可以看出,作者希望a_variable是一个与“id”字段有关的数字。不过,如果终端用户选择一个字符串,就绕过了对转义字符的需要。例如,将a_variable设置为:1; Drop TABLE users,它会将“users”表从数据库中删除,SQL语句变成:Select * FROM DATA Where id = 1; Drop TABLE users;
3.数据库服务器中的漏洞
有时,数据库服务器软件中也存在着漏洞,如MYSQL服务器中mysql_real_escape_string()函数漏洞。这种漏洞允许一个攻击者根据错误的统一字符编码执行一次成功的SQL注入式攻击。
4.盲目SQL注入式攻击
当一个Web应用程序易于遭受攻击而其结果对攻击者却不见时,就会发生所谓的盲目SQL注入式攻击。有漏洞的网页可能并不会显示数据,而是根据注入到合法语句中的逻辑语句的结果显示不同的内容。这种攻击相当耗时,因为必须为每一个获得的字节而精心构造一个新的语句。但是一旦漏洞的位置和目标信息的位置被确立以后,一种称为Absinthe的工具就可以使这种攻击自动化。
5.条件响应
注意,有一种SQL注入迫使数据库在一个普通的应用程序屏幕上计算一个逻辑语句的值:
Select booktitle FROM booklist Where bookId = 'OOk14cd' AND 1=1
这会导致一个标准的面面,而语句
Select booktitle FROM booklist Where bookId = 'OOk14cd' AND 1=2在页面易于受到SQL注入式攻击时,它有可能给出一个不同的结果。如此这般的一次注入将会证明盲目的SQL注入是可能的,它会使攻击者根据另外一个表中的某字段内容设计可以评判真伪的语句。
6.条件性差错
如果Where语句为真,这种类型的盲目SQL注入会迫使数据库评判一个引起错误的语句,从而导致一个SQL错误。例如:
Select 1/0 FROM users Where username='Ralph'。显然,如果用户Ralph存在的话,被零除将导致错误。
7.时间延误
时间延误是一种盲目的SQL注入,根据所注入的逻辑,它可以导致SQL引擎执行一个长队列或者是一个时间延误语句。攻击者可以衡量页面加载的时间,从而决定所注入的语句是否为真。
以上仅是对SQL攻击的粗略分类。但从技术上讲,如今的SQL注入攻击者们在如何找出有漏洞的网站方面更加聪明,也更加全面了。出现了一些新型的SQL攻击手段。黑客们可以使用各种工具来加速漏洞的利用过程。我们不妨看看the Asprox Trojan这种木马,它主要通过一个发布邮件的僵尸网络来传播,其整个工作过程可以这样描述:首先,通过受到控制的主机发送的垃圾邮件将此木马安装到电脑上,然后,受到此木马感染的电脑会下载一段二进制代码,在其启动时,它会使用搜索引擎搜索用微软的ASP技术建立表单的、有漏洞的网站。搜索的结果就成为SQL注入攻击的靶子清单。接着,这个木马会向这些站点发动SQL注入式攻击,使有些网站受到控制、破坏。访问这些受到控制和破坏的网站的用户将会受到欺骗,从另外一个站点下载一段恶意的JavaScript代码。最后,这段代码将用户指引到第三个站点,这里有更多的恶意软件,如窃取口令的木马。
以前,我们经常警告或建议Web应用程序的程序员们对其代码进行测试并打补丁,虽然SQL注入漏洞被发现和利用的机率并不太高。但近来攻击者们越来越多地发现并恶意地利用这些漏洞。因此,在部署其软件之前,开发人员应当更加主动地测试其代码,并在新的漏洞出现后立即对代码打补丁。
防御和检查SQL注入的手段
1.使用参数化的过滤性语句
要防御SQL注入,用户的输入就绝对不能直接被嵌入到SQL语句中。恰恰相反,用户的输入必须进行过滤,或者使用参数化的语句。参数化的语句使用参数而不是将用户输入嵌入到语句中。在多数情况中,SQL语句就得以修正。然后,用户输入就被限于一个参数。下面是一个使用Java和JDBC API例子:
PreparedStatement prep = conn.prepareStatement(“Select * FROM USERS Where PASSWORD=?”);
prep.setString(1, pwd);
总体上讲,有两种方法可以保证应用程序不易受到SQL注入的攻击,一是使用代码复查,二是强迫使用参数化语句的。强迫使用参数化的语句意味着嵌入用户输入的SQL语句在运行时将被拒绝。不过,目前支持这种特性的并不多。如H2 数据库引擎就支持。
2.还要避免使用解释程序,因为这正是黑客们借以执行非法命令的手段。
3.防范SQL注入,还要避免出现一些详细的错误消息,因为黑客们可以利用这些消息。要使用一种标准的输入确认机制来验证所有的输入数据的长度、类型、语句、企业规则等。
4.使用专业的漏洞扫描工具。但防御SQL注入攻击也是不够的。攻击者们目前正在自动搜索攻击目标并实施攻击。其技术甚至可以轻易地被应用于其它的Web 架构中的漏洞。企业应当投资于一些专业的漏洞扫描工具,如大名鼎鼎的Acunetix的Web漏洞扫描程序等。一个完善的漏洞扫描程序不同于网络扫描程序,它专门查找网站上的SQL注入式漏洞。最新的漏洞扫描程序可以查找最新发现的漏洞。
5.最后一点,企业要在Web应用程序开发过程的所有阶段实施代码的安全检查。首先,要在部署Web应用之前实施安全测试,这种措施的意义比以前更大、更深远。企业还应当在部署之后用漏洞扫描工具和站点监视工具对网站进行测试。
Web安全拉警报已经响起,安全形式异常严峻,企业绝对不应当草率从事。安全重于泰山!

[文档]Facebook 海量数据处理

mikel阅读(891)

图片规模

作为世界上最大的 SNS 站点之一,Facebook 图片有多少? 65 亿张原始图片,每张图片存为 4-5 个不同尺寸,这样总计图片文件有 300 亿左右,总容量 540T,天! 峰值的时候每秒钟请求 47.5 万个图片 (当然多数通过 CDN) ,每周上传 1 亿张图片。

图片存储

前一段时间说 Facebook 服务器超过 10000 台,现在打开不止了吧,Facebook 融到的大把银子都用来买硬件了。图片是存储在 Netapp NAS上的,采用 NFS 方式。

图片写入

Facebook_write.png

尽管这么大的量,似乎图片写入并不是问题。如上图,是直接通过 NFS 写的。

图片读取

Facebook.png

CDN 和 Cachr 承担了大部分访问压力。尽管 Netapp 设备不便宜,但基本上不承担多大的访问压力,否则吃不消。CDN 针对 Profile 图象的命中率有 99.8%,普通图片也有 92% 的命中率。命中丢失的部分采由 Netapp 承担。

图中的 Cachr 这个组件,应该是用来消息通知(基于调整过的 evhttp的嘛),Memcached 作为后端存储。Web 图片服务器是 Lighttpd,用于 FHC (文件处理 Cache),后端也是 Memcached。Facebook 的 Memcached 服务器数量差不多世界上最大了,人家连 MYSQL 服务器还有两千台呢。

Haystacks –大海捞针

这么大的数据量如何进行索引? 如何快速定位文件? 这是通过 Haystacks 来做到的。Haystacks 是用户层抽象机制,简单的说就是把图片元数据的进行有效的存储管理。传统的方式可能是通过 DB 来做,Facebook 是通过文件系统来完成的。通过 GET / POST 进行读/写操作,应该说,这倒也是个比较有趣的思路,如果感兴趣的话,看一下 GET / POST 请求的方法或许能给我们点启发。

Facebook2.png

总体来看,Facebook 的图片处理还是采用成本偏高的方法来做的。技术含量貌似并不大。不清楚是否对图片作 Tweak,比如不影响图片质量的情况下减小图片尺寸。

[杂记]Vs2008将支持ASP.net MVC framework

mikel阅读(789)

下一版本的Vs2008将支持ASP.NET MVC,看来beta了这么长时间ASP.NET MVC框架终于要正式发布了,期待吧,原文转自:http://weblogs.asp.net/scottgu/archive/2008/06/01/asp-net-mvc-support-with-visual-web-developer-2008-express.aspx
Last week I blogged about the ASP.NET MVC Preview 3 release. One important thing I forgot to mention about this release is that you can now use it with both Visual Studio 2008 as well as the free Visual Web Developer 2008 Express edition.
The SP1 release of Visual Web Developer 2008 Express adds support for both class library projects as well as web application projects (previously only web site projects could be used with it). This new support is useful in itself, as well as in enabling both ASP.NET MVC and Silverlight project support with VWD Express. If you install the Visual Web Developer Express SP1 Beta you can start using ASP.NET MVC Preview 3 with it immediately.
Important: ASP.NET MVC Preview 3 does not require SP1 to be installed if you are using Visual Studio 2008. ASP.NET MVC Preview 3 will work with both VS 2008 and VS 2008 SP1 just fine.
You can learn more about the new VWD Express support for ASP.NET MVC from the VS Web Tools team blog here. This post also includes a free web download that provides ASP.NET MVC Test project support for NUnit-based unit tests. You can use these NUnit project templates with both Visual Studio 2008 as well as with Visual Web Developer Express 2008.
Hope this helps,
Scott

[视频]比尔.盖茨退休了

mikel阅读(1043)

微软董事长比尔·盖茨(Bill Gates)将于本周五(6月27日,美国当地时间)正式退出公司日常管理工作,以把精力专注于慈善事业.在过去30多年的职业生涯中,虽然盖茨曾与硅谷 IT名流们结下了诸多“恩怨情仇”,但在盖茨临别之际,众多硅谷知名人士仍忍不住主动向盖茨告别,并祝愿他今后在慈善事业上取得新成就.以下就是14名美国IT界知名人士致盖茨离别语(其中包括微软数名高管,排名不分先后,仅为方便阅读):
1、斯科特·麦克尼利(Scott McNealy),服务器制造商Sun董事长:
“我祝愿他今后的事业一帆风顺.我认为他聪明之极.好在他与我本人倒没有什么大冲突,但他确实取得了诸多成就.我觉得他今后的工作担子仍然很重.我愿意看到由他本人来管理盖茨基金会,而不是交给他人看管.我一直认为,对于事业成功的企业家来说,如果他们看到自己的财富被人任意挥霍一空,估计他们至死也不会安宁.”
在被问及是否会想念盖茨时,麦克尼利说:“如果我想念他,也不会有人因此给我点钱用;不过我倒是拿不准他是否会想念我.”
2、史蒂夫·乔布斯(Steve Jobs),苹果首席执行官:
“对微软来说,盖茨引退是一件大事.作为引人注目的退休事件,我个人认为,盖茨此前作出了巨大贡献,他理应受到人们的尊敬.”
3、迈克尔·戴尔(Michael Dell),PC制造商戴尔创始人兼首席执行官:
“在推动标准化计算和新一轮生产力事宜上,盖茨独特的创新能力和远见成为了关键因素.我个人认为,在促使计算机深入到人们日常生活过程中,我们很难找到比盖茨影响力更大的人.”
“对于盖茨的敬业精神,我个人一直非常钦佩.正是盖茨使企业家个人形象更有亲和力.他不仅是一名技术梦想家,同时也是一位商业战略家.多年以来,盖茨向我们展示了他的执着精神,并推动了包括技术创新、公开政策等因素在内的IT产业发展进程.”
“盖茨是屈指可数且已经改变了世界的IT业界领袖之一,正是他使得技术得以普及,从而使这些技术能够被更多人使用.目前我们之所以能开发出改变业界形势的新技术,部分就要归功于盖茨及其微软团队已经建立的良好基础.”
“我个人认为,盖茨最具持续性的贡献无疑将是盖茨基金会.比尔和梅琳达给予了我们诸多人生启示,他们投入大量精力和拿出上亿美元,目的是为了解决全球正面临的最棘手难题.”
“我认为,盖茨仍将一如既往地投入工作.如果非要说有什么不同,那只能说盖茨将把多年投入微软的精力转移到盖茨基金会中,并将更加努力地工作.我们将对此随时加以关注.”
4、马克·库班(Mark Cuban),HDNet和达拉斯小牛队老板,Broadcast.com前首席执行官:
“毫无疑问,盖茨的从业生涯谱写了自己人生传奇,他对世界的巨大影响,其实远高于人们的想像.尽管盖茨留下了许多精彩的故事,但是我最喜爱的那一个,可能连盖茨也不知道.而我自己也曾参与其中.”
“上个世纪80年代初期,Comdex不但为业界会议,而且还是科技人士的休闲聚会活动.在当时举行的一次聚会期间,我正在和几位女孩跳舞.这时她们的一个朋友突然跑来说,得马上离开,去见一位名叫比尔·盖茨的家伙,而他的个人财富高达6000万美元.”
“这是个真实的故事.盖茨,谢谢你给了我努力工作的动机.”
5、米歇尔·柯兹曼(Mitchell Kertzman),Hummer Winblad公司风险投资家:
“我个人猜想,在相对遥远的未来,即使已经没有人记得盖茨本人,及他在微软的角色,所有人仍然会知道盖茨基金会,并了解该基金会对世界所作出的巨大贡献.”
“如果盖茨能够在基金会中投入同样多精力、决心和执着精神,那么他将成为历史上最伟大、永远被人想念的英雄人物之一.盖茨的慈善工作是一个全新领域,我们都将支持盖茨战胜他的新'竞争者'——疾病、愚昧和贫困.”
6、菲利普·卡恩(Philippe Kahn),FullPower科技公司首席执行官,Borland软件公司创始人:
“尽管美国IT产业正由PC时代向苹果iPhone手机和Google时代转变,但盖茨为我们留下了历久弥新的精神财富.”
7、比尔·维特(Bill Veghte),微软在线服务和Windows商务集团高级副总裁:
“我从盖茨身上学到很多有益的东西,而树立雄心壮志是其关键.在这个问题上,盖茨将这样说:'当你考虑某一个问题时,千万不要从数百万的级别去考虑它,而是应该从数亿的级别去考虑.'”
“其次,我认为非常重要、非常有启发意义的一点是:很多人在一生中获得了大量钱财、权力,亦或是在政治和体育领域取得巨大成就.但是对他们来说,这些钱财和权力是否腐蚀了他们的灵魂?”
“有一次,我们曾经开会讨论搜索业务,参与者只有盖茨、我本人以及少数微软高管.在会议过程中,盖茨像我们一样充满热情,他能全面考虑到所有问题.实际上,他本来根本没有必要参加这一会议.”
“要说盖茨对我最有启发的一点是,即使他已经做了很多工作,他的追求、热忱和乐观精神却从未消退过.他支配自己精力、钱财和技能的独特方式值得我们学习.”
8、乔治·科朗尼(George Colony),知名市场研究公司Forrester Research首席执行官:
科朗尼在一则博客中表示:“所谓'建设性垄断'观念,应当是盖茨留给我们的最重要遗产.他并不是技术创新者.以客气点的方式来说,我们可将他称作技术'推广者';如果用不客气的方式,那他就是技术'剽窃者'.盖茨是一个商业模式创新者,但称不上技术创新者.”
“回首过去,盖茨'建设性垄断'看法与发明家托马斯·爱迪生的观念相类似.两者都通过多种方式创造出优秀技术,并使这些新技术能被更多用户使用.尼科拉· 泰斯拉(Nikola Tesla,美国发明家)和史蒂夫·乔布斯(Steve Jobs,苹果首席执行官)则可视为同一枚硬币的反面.”
9、罗伯特·迈特卡尔夫(Robert Metcalfe),以太网发明者,网络设备制造商3COM创始人:
“盖茨是个了不起的人.他非常聪明.尽管我曾经激烈地批评过他,但盖茨并不是一个恶魔.我所发表的第一篇专栏文章,就是批评微软的垄断行为.文章当时发表在美国《计算机世界》(Computer World)杂志上.我也因此开始了自己的记者生涯,时间是1991年2月25日.”
“我当时所主持的专栏名为《观点》,而文章标题为《微软是否在滥用自己的权力?》.在此之后,我对微软的垄断问题提出了尖锐批评,因为早在1991年时,我就发现了微软的垄断行为.微软当时推出了Pen Windows产品,目的就是挤垮Go公司.”
“但无论如何,盖茨仍然身如天神.如果注定有人要成为全球首富,那么盖茨无疑是最佳人选.”
10、丹·布里克林(Dan Bricklin),VisiCalc开发者,Software Garden和Trellix创始人兼总裁:
“他对于业界许多事物都具有极大参与勇气.只要是科技活动,他就会前来,并当众展示自己才能.如果你并不是绝顶高手,却执意要在众目睽睽之下显山露水,这的确需要勇气.但盖茨却成功做到了这点.他做了大量对微软来说必须参与的工作.盖茨愿意成为软件产业面向其他领域的代言人,这让我感到非常钦佩.”
“至今我还记得,我曾经参加过一次微软会议.这一会议似乎是关于Pen计算机技术,他们邀请了很多与会者.会议最后在盖茨家中结束,我们可以在盖茨家中自由穿梭……如果换了我,打死我也不会这样做.”
“盖茨愿意为自己所处领域贡献力量,这足以令人印象深刻.此外,盖茨工作十分努力,能够把握自己所做的工作,并把自己所得返还给社会,这为他人树立了优秀榜样.我很高兴盖茨做到这一点,我祝愿他天天心情愉快.”
11、史蒂夫·鲍尔默(Steve Ballmer),微软首席执行官:
鲍尔默在接受美国《新闻周刊》采访时表示:“他不仅仅是比尔·盖茨,他是与众不同的比尔·盖茨.他创建了微软,积累了财富,组建了基金会,并获得了声誉.其他人很难取得他这样的成就.”
“此外,与公司所有技术人员一样,盖茨也在实践中不断成长.盖茨记忆力比我所知的任何人都好.盖茨能涉及如此广阔的领域,像他这样的人我们今后恐怕很难再碰到.”
12、克雷格·穆迪(Craig Mundie),微软研究与策略首席主管:
“在我加盟微软时,所做的一切工作其实都与PC无关.我还记得与盖茨的谈话.他当时表示,'如果我们能够弄明白如何为这些东西编程,那我们肯定能从中赚钱.'这就体现了他的远见卓识,他敢于为自己的直觉下大赌注.”
“我认为,微软到目前所取得的巨大成就,其实都是基于盖茨从长期发展所下的大赌注.自我加盟微软后,就一直能体会盖茨在应对这些新领域时的独特思考方法.”
“我信奉'疑人不用,用人不疑'的准则.作为一名企业家,我相信人才是最重要的因素,你需要找到有用人才.”
“我曾经与内森·麦沃尔德(Nathan Myhrvold,微软前首席技术官)有过接触,也曾与盖茨打过交道.我发现,在关于如何通过技术帮助他人事宜上,我们有着一样的热情.”
“我曾经负责超级计算业务.很多人认为我应当放弃该职位,而去做汽车、电视机或是手表什么的.不过,当时我认为我们将会看到水滴效应,即我们将受到计算机处理速度、摩尔定律以及其他因素的限制.”
“当我与盖茨、麦沃尔德谈及这一看法时,我发现我们是'英雄所见略同'.我们认为,应当为此找到答案,但答案不会自己从天上掉下来.这也我是加入微软的原因.因此我加盟微软,成为当时并不存在的非PC计算部门总经理.”
13、米奇·卡波尔(Mitch Kapor),Lotus创始人,Mozilla基金会会长:
“我记得在Lotus创建之前,曾经与盖茨见过面.有人当时在与微软谈一项交易,盖茨这时驾驶一辆跑车高速行驶而来,他参加会议已经迟到,澡也没洗……这也是他性格中最引人注目的地方.”
“盖茨将自己在技术和商业上的卓越才能进行结合,从而感受到PC软件和硬件的发展趋势.他也因此建立了规模庞大的市场业务.”
“微软一旦认定目标,就能持之以恒加以执行,这当然是他们的优点.但往不好的地方说,那就是微软市场模式不利于正常市场竞争,而那种'不惜万难以争取胜利'的信条,将使大家日子都不好过.”
14、比尔·坎贝尔(Bill Campbell),财务软件开发商Intuit董事长:
“企业家都具备承受风险的素质,盖茨也不例外.在其30多的企业家生涯中,他展示了作为企业家应具有的精神和创新性才能.他改变了全球软件产业格局,并通过辛勤工作而创建了微软这一知名品牌,我对此感到由衷钦佩.

Flash动画

[框架]Flex开源框架OpenFlux

mikel阅读(1048)

作者 Jon Rose译者 张龙
该项目的贡献者Ryan Campbell讨论了标准的Flex组件和OpenFlux组件的区别

OpenFlux组件和现在的Flex组件大体的区别是前者将逻辑分离到MVC架构中了。这使你能在保持其他部分功能不变的情况下,轻松的替换组件的一部分。List组件更进一步,它还分离了布局逻辑,这样你就能轻松地使用新的布局来呈现列表条目了。

在今年初Ben Stucki宣布该项目发布的帖子中,他详细论述了构建OpenFlux的动机:

OpenFlux真正的目的是在你的项目中进行定制。使用一个无视图组件的系统意味着你可以快速轻松地 创建大量新颖有趣的组件而不必担心会破坏组件的其他部分。还记得过去在Accordian、TabNavigator或List组件上使用的小把戏吗?我 当然记得,这就是创建它的原因。答案并不是保护所有东西而是创建一个更棒的组件模型!

如果你想进一步学习OpenFlux,InsideRIA上有一篇很好的文章谈到了如何上手该框架。theflexshow.com上还发布了今年初采访Ben Stucki的一段音频

[教程]ActionScript3设计模式图

mikel阅读(790)

1. Factory(工厂)模式

2. Singleton(单例)模式

3. Decorator(装饰)模式

4. Adapter(适配器)模式

5. Composite(组合)模式

1. Command(命令)模式

2. Observer(观察者)模式

3. Template(模板)模式

4. State(状态)模式

5. Strategy(策略)模式

6. MVC模式

[资源]J2ME开发框架集锦

mikel阅读(726)

文章出处:
http://wuhua.3geye.net
保留版权,转载请注明来处,谢谢。

EasyMF 简易J2ME开发框架
 目标: 设计一个简单,稳定,可快速开发的J2ME开发框架。
一.说明:
   1. 此框架的意图是解决手机软件开发中常遇到,并且可以通用话的问题。
   2. 旨在提高无线应用程序的开发效率
二.EasyMF 能做什么
   1. 简化UI设计
   2. RMS的简化操作
   3. 简单的日志框架
   4. 简单的联网框架
   5. 通用工具的设计
   6. 一些图形相关的特效
三.EasyMF 的功能列表
   1. UI 框架
   2. 日志框架
   3. RMS框架
   4. 通用工具框架
   5. 图形相关
   6. 一堆有用的DEMO
官方主页:http://www.3geye.net
官方论坛:http://www.3geye.net/bbs
官方博客:http://wuhua.3geye.net
到这里提交bugfix:http://www.3geye.net/bbs/forum-56-1.html
到这里提交需求:http://www.3geye.net/bbs/forum-56-1.html
查看相关相关案例:http://www.3geye.net/bbs/forum-56-1.html
j4me
J4ME is a library for quickly building professional J2ME applications.
J4ME 是 一个开始开发专业的J2ME应用程序类库
最新版本是1.03. 在2008 5月更新的。最近一直没有更新
项目主页:http://code.google.com/p/j4me/
相关讨论:http://wuhua.3geye.net

 

贴图

 

采用EasyMF设计的产品有 GTalk 用EasyMF实现

http://code.google.com/p/gtalk-easymf/

 

MWT

Micro Window Toolkit(MWT)是一个用于开发J2ME 用户界面(UI)的工具包。它具有友好,强大,快速,开源 等特性。因为它的"灵感"来自 AWT,Swing和SWT。可以使用bitmap fonts等来自定义组件。它专门为嵌入式开发而设计和优化。基于LGPL发布。
K[Lr%sRI3 项目地址:http://j2me-mwt.sourceforge.net/


V4TD6Y.n3?h*H3

1 – J2ME Desktop:
Download theJad andJar or view it withJava WebStart

$? i6_7iPGl3U~3

2 – ELP ~ RPG:
Download theJad andJar or view it withJava WebStart

JZCQYxT3

3 – Progress Bar:
Download theJad andJar or view it withJava WebStart

3GEYEV/[+_Q?"D[ N6i

4 – Messenger Interface:
Download theJad andJar or view it withJava WebStart

J4ME-开源的UI Logger 项目

J4ME 是一个J2ME应用程序开发包。它包括一个UI框架,一个日记框架用于帮助调试因不同品牌手机 的差异而产生的问题,一个蓝牙GPS框架让你能够利 用JSR-179 Location API接口从蓝牙GPS设备获取定位信息和一个Java类包其中包含了J2ME中没有的方法比如双精度型数字的计算等。
a7Oi6k^Z u3 ui.gif logging.gif gps.gif

OpenBaseMovil

3GEYE6ct|I\
BaseMovil是一个J2ME应用程序开发框架。它由多个比较独立类库组成包括:3GEYEJsTH$m"V,m a+y0|K
OpenBaseMovil-core:整个框架的底层基础 类库,它主要提供国际化 支持、任务控制、加密、压缩、浮点支持、properties文件支持、一个MVC框架、一个事件框架。3GEYEXO3L0@C$z M8E
OpenBaseMovil-db:一个关系型数据库 引擎,其中一个表格存储的数据可上千。3GEYE1] m$?/vE|1@
OpenBaseMovil-script:一个脚本 引擎。3GEYE2\G:rVA7Ez
OpenBaseMovil-ui:一个UI工具包。
C,h~%O2B|3 这个几类库都能够完全集成在一起使用。3GEYEotaZ5J
OpenBaseMovil.jpg
+m'^1V[1L&Q7L3 http://www.openbasemovil.org/

J2ME 游戏 脚本引擎/J2me game script engine

一个非常小的script脚本引擎,可以同时在j2me / j2se / c++ platform上面运行3GEYELBXR[-CR
它的目标是使用这个脚本引擎便于开发一个更加灵活的j2me 游戏。
(FQ(wY$\N�{ PsW3 这个脚本有点像BASIC

这东西不错,是一个开源的脚本引擎,大家可以学习里面的思想3GEYE-v r.Ps!_+da[
里面其中带了一个例子,是3子棋。感觉挺不错的。这东西在SF也挺活跃的。

http://sourceforge.net/projects/j2megamescript/

例子图片3_200710301619291.jpg

Y!Go

Y!Go这是一个Yahoo Messenger J2ME客户端。

http://ygo.sourceforge.net/

EBookME

EBookME是一个用于把导入的文本文件 (HTML,DOC,PDF,…)生成J2ME电子书籍格式(JAD,JAR)的Java程序。生成的电子书 籍可以在支持MIDP1.0的手机上阅读。

http://ebookme.sourceforge.net/

jMobileCore

jMobileCore 包是一个强大的工具用来开发J2ME应用程序.jMobileCore提供支持开发简洁的,基于Canvas的图形 用户接口,快速地数据访问,可靠地通 信,简化多线程midlet应用程序。jMobileCore包可工作在任何支持J2ME (MIDP1.0 和CLDC1.0)的移动电话与PDA设备.

http://jmobilecore.sourceforge.net/

还有超级经典的J2ME-POLISH

http://www.j2mepolish.org

J2ME Polish 2.0

J2ME Polish 2.0 Release Candidate is here!

design example 1

design example 2

design example 3

[教程]flash中创建ActionScript3组件教程

mikel阅读(770)

Get an overview of Flash components, from setting up layers and frames in a component movie clip symbol to implementing Live Preview, dispatching events, and deploying a component to the Components panel.