八大疯狂的 HTML5 Canvas 及 WebGL 动画效果

HTML5、WebGL和JavaScript改变了长久以来的动画制作行业。在过去的几年中,我们想要制作卓越的网页动画只能使用Flash和Java Applet。而现在,使用脚本语言和渲染器在浏览器中实现疯狂的动画效果已经成为可能。究其原因,大概有以下几点:

  • 处理器的性能越来越高。我们的电脑已经有足够的强大的能力去渲染最为复杂的动画效果。
  • 现在浏览器和web技术的不断发展。浏览器如Firefox、Chrome、Safari和IE10,web技术如Canvas、SVG和WebGL。
  • 网速越来越快。一些体验需要实时数据流和预加载资源,更好的网络状况能有更好的体验。

我们挑选了8个由WebGL、HTML5 Canvas和Javascript制作的绝妙效果。每一个都非常简单但却发人深省,疯狂并且极具创意。

黏糊糊的东西

用鼠标拖拽,然后扔出去,就会粘在网页边缘。

粒子动画

使用浮点纹理和FBO来实现的动画,由粒子组成一匹奔跑的骏马。

三维液体

用3D的方式呈现经典的2D水面效果算法。

章鱼

WebGL和Three.js制作的漂亮的章鱼状的星空动画

蠕虫

HTML5 Canvas制作的效果,无数条蠕虫根据灰度组成图片,你还可以拖拽一张本地图片到右侧。

疯狂的触角

随机视觉

Conductor

将纽约地铁系统变成可以弹奏的弦乐器。

原文地址:http://favbulous.com/post/895/8-crazy-animations-withwebgl-and-html5-canvas
文/hiwebgl

KDE 比 Unity 好的 5 个理由

我们都知道 KDE 不是最流行的 Linux 桌面环境。随着 Ubuntu 的流行,越来越多的人远离了 KDE 。这让 KDE 看起来有点孤芳自赏。但我认为 KDE 是一个出色的桌面,我这列出了5条 KDE 比 Unity 好的理由。

1. KDE 是精致的桌面
假如你会在屏幕前面呆很长的时间,你一定希望你的电脑桌面看起来是赏心悦目的。在我看来 KDE 的 Oxygen 主题要比 Ubuntu 的那个让人犯困主题强太多了。再加上 Plasma 和 桌面 widgets,让桌面的元素看起来井井有条。

2. 超强的可定制性
假如你安装了 Ubuntu 11.10 的话,你基本上没有定制的选择。你不能调整字体的大小,除非你再安装一个软件包。而使用KDE则没有这种限制。你可以下载各种主题,各种配色。

3. 文件管理
拿 Nautilus 和 Dolphin 对比就跟拿弱智和天才对比一样。Canonical 把 Linux 放在了一个十字路口,他们想把Linux傻瓜化,让每个人都不能拒绝的使用它。但是,Canonical,我要告诉你的是,你的大部分用户还是专业人士。我们需要强大的工具!

4. 目的不一样
Unity的目的是让大众接受,并且在任何有屏幕的设备上都能运行。这么做没有错,但这么做会让目前的可用性降低。KDE是针对你的桌面环境优化的。从4.0开始,KDE就有质的变化,到了4.7,KDE已经非常稳定了,并且拥有大量的软件。

5. 你可以管理窗口
从 Windows 95 开始,我们就可以通过任务栏来完成多任务的工作。这极大的提高了我们的工作效率。Unity 显然把窗口极度的弱化了。它想要通过图表的方式来表现不同的任务,但是它没有做好。同时,KDE也支持把你常用的应用作为一个图标,当你运行这个应用的时候,这个图标就消失了,变成了一个任务。这在极度简化的Unity和超级强大的Windows任务栏之间寻找了一个平衡。

 

原文链接OSChina.NET 原创编译

甲骨文和谷歌 Java 版权纠纷将在4月裁决

据国外媒体报道,一位美国法官即将在4月16日就甲骨文和谷歌之间的专利纠纷进行裁决。这一安排是根据周二在法庭上,法院针对甲骨文控诉谷歌侵犯其与Java编程语言有关的专利一案进行的开庭审判后决定的。该案的裁决将会在美国旧金山联邦法院进行公布。

甲骨文在2010年起诉了谷歌,指称谷歌的Android移动操作系统的技术侵犯了甲骨文在Java领域的专利。除了这部分专利索赔之外,甲骨文还对谷歌侵犯版权提出了索赔。因为甲骨文是通过2010年收购软件开发公司Sun才获得Java编程语言。

美国地方法院法官威廉姆·阿尔苏普(William Alsup)周二指出,期间在美国专利和商标局(U.S. Patent and Trademark Office)否定了部分专利权之后,甲骨文同意撤回部分索赔,但是甲骨文将继续就两项专利展开指控。加上甲骨文所提出的版权所有,谷歌公司因此而产生的 损失或高达数亿美元。

谷歌的发言人尚没有及时对此消息加以回复,而甲骨文的发言人则表示对此消息不予置评。

阿尔苏普指出,在他看来,这轮官司或将再持续8周便可结束。

诺基亚 Lumia 1000 概念机运行 Windows 8

有些人喜欢,有些人憎恨,但仍无法阻挡不断的推陈出新。今天我们来看看诺基亚 Lumia 1000 概念机,该机值得关注的是运行 Windows 8 系统而不是 Windows Phone 8,使得其更像是平板而不是手机,而且将采用4核的 Atom 处理器,而不是现在的 ARM 系列。

上面的规范列表中显示该机采用 Intel 的 ATOM Z2580 四核 1.8G 处理器,PowerVR SGX 544MP2 GPU at 533 MHz 以及分辨率为 1024 * 768 的 4.3 寸 AMOLED 显示屏。另外还包含一个  microSD 卡槽,64G 的内部存储空间以及 2G 的内存和第二 VGA 摄像头,支持 30 FPS 的视频录制(VGA),该机将提供 NFC 和 USB 3.0 支持,加速传感器、指南针、收音机、蓝牙、WIFI、GPS 和 QWERTY 键盘等一一俱全。

别忘了还有 4100万像素的摄像头。

Via Concept-phones.com

超载的程序员

本文的作者Erik McClure是一个正在华盛顿大学攻读应用数学的学生。 本文中几次提到了Donald Knuth——高德纳(Donald Ervin Knuth,1938年1月10日-),出生于密尔沃基,美国著名计算机科学家,斯坦福大学计算机系荣誉退休教授。高德纳教授被誉为现代计算机科学的鼻 祖,在计算机科学及数学领域发表了多部具广泛影响的论文和著作。 高德纳最为人知的事迹是,他是《计算机程序设计艺术》(The Art of Computer Programming)的作者。此书是计算机科学界最受高度敬重的参考书籍之一。他创造了算法分析的领域,在数个理论计算机科学的分支做出初步贡献,此外还是排版软件TeX和字型设计系统Metafont的发明人。

高德纳 Donald Ervin Knuth

高德纳 Donald Ervin Knuth

“注意上面这段代码;我只是感觉它没问题,但没有试过。” – Donald Knuth

今天早上,在Google上搜索的时候,我偶然看到了一个帖子,作者声称:所有人都不该使用C++标准库里的 make_heap 函数,因为,几乎没有人是在正确的使用它。我立即在心里大骂这是多么荒谬的断言,因为任何人只要上过基本的算法课程,都会知道如何正确的使用make_heap。然而,这让我开始思考,如何看待那些不知道堆(heap)为何物的程序员,更甚者,那些并不需要知道它为何物的程序员。

最终,我认定,这两种人,我们仍然应把他们称作程序员。

当我还是个毛头小伙的时候,很多我听到的关于如何正确的编程的建议其实都是非常错误的。经过这些年,我发现,大多数这样的这建议,其本身并没有问 题,只是缺少相应的上下文环境。当今的这波创业浪潮给人们造成了一个有趣的印象,导致很多的程序员都开始相信“性能不是问题”,这个就是一种充满风险和牵涉微妙的上下文环境的建议,尤其是当面对会出现意想不到的相互影响的复杂架构时更是要警惕。这种缺乏上下文的耳耳相传的只言片语的流行是一个很普遍的问题,而事实上,它是一个更深层问题的简单表象。

程序员这个词涵盖了一个异常宽泛的技术谱系和层次。从纵坐标上讲,一个程序员,从能仅仅会用vbscript,到能为因特尔CPU写编译器、为航空 公司开发系统运算软件。从横坐标上讲,他可能是专长于数据库,或能从CPU指令级别调整性能,或能开发并行处理库,或制造物理过程引擎,或做图片处理,或 创作3D模型,或写打印机驱动,或使用coffeescript,HTML5,和AJAX来开发网站应用,或使用nginx和PHP开发LAMP架构 web应用,或他能编写网络应用库或能做人工智能科研。他们都是程序员。

这太荒唐了。

我们的世界正在被软件吞噬。在将来,编程将会和数学和语文一样成为基础课程。我们将会有四个R——Reading(阅读), ‘Riting, ‘Rithematic(数学), 和 Recursion(递归算法)。到时,如果再说某某人是一个程序员将会是一句废话,因为超过10%的人口将会具有一定水平的编程能力。“程序员”这个词 涵盖了如此多的内容,如果你称自己为程序员,就好象称自己为“科学家”而不是“物理科学家”。我们能有其他称呼吗?有人试图做了这方面的尝试,指出一个程 序员和一个计算机科学家直接的不同之处,但说的毫无价值,根本无法区分我和一个从大学毕业的人工智能博士生之间的区别。他懂得多维数学分析,用函数式语言 计算,这些是我不通过数年的研究是无法理解的。而我能够写出速度超快的,灵巧的C++或HLSL汇编程序,能变戏法似的处理和变换矩阵,在屏幕上绘出漂亮 的图像。我说的这两种情况都是出于完全不同的原因下的极其复杂的工作,他不能完成我的,我不能完成他的。一种操作对一个人很熟练,对另外一个人却是困难 的。但我们都是程序员。只是在我们各自的领域里的程序员,我们是图像计算程序员或人工智能程序员或[xxx]程序员。

你知道我们为什么会有这样毫无目标的语言论战和毫无意义的关于哪一种语言更好用的争论吗?你知道为什么人们——除非在自己的小圈子里当“XX方法” 对所有人表示同一个意思的时候——永远不能在这些问题是达成共识的原因吗?因为我们赋予了自己过多的内容。我们把自己看成了由数个程序员组成——每个都专 长于某项东西,我们错误的认为我们的观点能够适用于我们的专长之外的领域。我们是工业工程师却试图想告诉化学家如何进行他们的试验。我们是建筑师却试图想 告诉英语专业的学生如何创作一篇论文——只是因为我们都用了大量的纸张。

这种态度深深的根植于计算机科技界的核心深处。计算机科学的主要目的是用一些基本数据结构来帮人们完成以前需要人做的所有事情。如果你认为这完全是 编程的事,那你就错了,这是不可能的。我们忘了,这些数据结构只是我们在神奇的数据计算领域需要的,我们忽略了,对于不同的实现,需要对完全不同领域的编 程,针对的是完全不同的用户。Donald Knuth 深知理论和实现之间的不同之处——我们需要认真的理解这些关于理论特定实现的忠告之间的区别。

如今,你已经不能因为一个人是程序员,你就可以随意让他开发任何东西。说一个程序员在开发软件,就好像是说一个科学家在做科学研究。不同之处是,植物学科学家是不会去设计核反应堆的。