生日快乐!Archlinux 10 周年

Arch Linux 是由加拿大程序员 Judd Vinet 创立。第一个发行版 Arch Linux 0.1 在 2002 年 3 月 11 日发行。尽管 Arch Linux 是完全独立的,它从许多其他发行版借鉴了简洁的思想,如 Slackware,CRUC 和 BSD。

Arch 之道

  • 纯粹性

达芬奇的话,在此也表现出威力:精于心简于形!

  • 代码的正确性胜过易用性

保持简洁,代码的优雅性以及最小化原则将始终作为Arch Linux开发的指导原则。

  • 以用户为中心

Arch Linux倾向于自己解决问题并将结果跟社区和开发团队一起分享,而不是请求开发人员实现某些新特性──一种“先做后问”的哲学。

  • 开放

Arch Linux用户向来以思想开放,乐于助人,善纳良言而著称。

  • 自由

用户不但对系统配置可以做决定,还可以决定自己的系统可以”是什么”。

正如Arch Linux项目的创立者Judd Vinet所说:“是你们使它(Arch)成为了现在的样子(It (Arch Linux) is what you make it)。”

或者一句话总结:
KISS(Keep It Simple, Stupid)!

上面的话,全部摘自 Archlinux wiki。因为,在它强大的百科下,没有人感到用自己的语言描述会更贴切。

个人感受

作为一个曾经几个月的用户,深深感到其震撼灵魂的力量。简洁、高效、新潮、快速,让你招架不住,“DIY” 精神在 Arch 身上,连同 LFS、Gentoo 一样,展现地淋漓尽致!其强大的 wiki,有问题找答案,请往此间寻。

自从用了 Arch 后,不再追逐那些天天的更新,因为我始终是最新,心静了,在此感谢 ****(开始像老家县里电视台的药品广告了…)…

如果各位同学已经对 arch linux 安装过程轻车熟路,重装系统时就不必那样来回折腾了。在此推荐基于 Arch Linux 的发行版本:ArchBang(使用 Openbox 作为默认桌面的Arch Linux 衍生版)、Chakra(使用 KDE),更多可参考 ArchLinux wiki 页面介绍

10 年前,记得那是 2002 年!
今年,是 2012 年!
祝福 Arch Linux!
Happy Arch Linux !

VMware 开源数据库 Affinity 介绍

Affinity是VMware公司在今年2月28日发布的 一种新型的开源数据库系统,其设计思想借鉴了关系型数据库、面向对象数据库、文档型数据库、RDF/XML数据库等多种数据库系统的优点,具有灵活多样、 方便易用、接口丰富等优点。从今天起,我会陆续在博客上发表一些文章,分享关于Affinity数据库的一些知识,比如特性、查询以及使用方法等。今天的 这篇文章,主要介绍Affinity数据库的团队、历史以及特性。

VMware作为全球领先的虚拟化技术公司,一直非常重视和支持开源社区的发展,比如最近很火的开源PaaS平台Cloud Foundry, 使得用户不需要考虑基础架构,就能快速有效地在云平台部署和扩展应用程序。在Cloud Foundry平台上集成Affinity数据库之后,用户除了能在Cloud Foundry平台上使用常见的诸如 Spring、 Java、 Ruby 和 Node.js等开源框架和编程语言,以及数据库服务(MySQL、MongoDB和 Redis) 和消息服务器 RabbitMQ之外,也可以选择Affinity作为云应用的数据库系统,而Affinity数据库的特点为云平台应用提供了更快捷、更灵活、更有效的 支持。

Affinity数据库系统内核的作者是Mark Venguerov博士。Mark Venguerov博士1986年毕业于莫斯科大学并获得理论物理硕士学位,2002年在都柏林三一学院获得计算机科学博士学位(人工智能和模式识别方 向)。他在大规模计算机软件系统设计和实现上有着二十多年的理论和实践经验,目前居住在加拿大蒙特利尔。除了Mark Venguerov博士之外,Affinity数据库项目组还包括来自加拿大、美国、马耳他、中国的几名同事。

尽管Affinity数据库系统刚刚发布,事实上,这个项目的前身——PiStore系统,早在2004年就已经在PI Corporation公司(一个存储公司后来被EMC公司收购)开始开发,并且有着广泛的应用,比如曾经作为Mozy公司在线备份服务系统的后端存储软 件系统。话说2004年还是关系型数据库独领风骚的时代,那时的PiStore数据库就已经有了现在很多NoSQL数据库的特点,比如灵活的数据模型,不 需要严格的数据模式(Schema),支持集合(Collection)和引用(Reference)等复杂数据类型。PiStore项目于2010年正 式由EMC公司交接到VMware公司,经过两年多的持续开发和测试,终于在近期正式向开源社区发布(Apache License 2),并且有了一个响亮的新名字——Affinity。

Affinity数据库系统的主要特点是(参考Affinity官网文档):

1.    跨平台C++内核,不依赖于任何虚拟机,内核footprint只有大约1M字节

2.    pathSQL查询语言,支持protocol-buffer协议

3.    路径表达式(path expressions)以及图查询

4.    能够混合使用SQL和图查询

5.    ACID事务(支持跨多个对象的JOIN操作)

6.    对只读事务的snapshot隔离级别

7.    嵌套事务

8.    日志和恢复

9.    存储结构化数据以及半结构化、动态对象(在Affinity中,把一条记录或者一个数据对象称作PIN)

10.  用URI为properties(PIN的属性)和class(分类)进行全局命名转换

11.  全局唯一的对象ID,和随机访问物理地址(一个PIN的ID,称作PID)

12.  自描述(self-describing)的对象(对象可以把自己表示为数据字典)

13.  优化的B-link 树索引

14.  事务地、自动地、动态地对数据对象进行多种分类,并存储于索引中(关于数据对象的自动分类,Mark Venguerov博士拥有两项美国专利)

15.  复合索引

16.  异步查询处理选项,用于高性能并发服务器

17.  事务的全文索引

18.  在结构化查询同时使用全文搜索

19.  页面级别的AES加密算法和日志加密

20.  可扩展的多用户支持(比如可以由一个进程管理上千个不同的数据库实例instance)

21.  对象粒度的访问控制列表(Access Control List)

22.  丰富的数据类型,包括集合、引用和BLOB

23.  计算时支持不同测量单位的转换(比如摄氏度与华氏度,或者米与公里)

24.  数据对象的软删除(soft deletion)

25.  对大结果集进行外部排序

26.  基本的replication框架

通过以上列出的特性可以得出,Affinity数据库在秉承传统数据库的事务、日志、B-link树索引、外部排序、数据页加密等优点的同时,又拥 有支持灵活的数据模型、模式自由(schema-free)、自动分类、Path Expression和图查询等其他丰富的特点,为当前各种复杂的应用程序提供了极大的支持。对于那些不熟悉非关系型数据库、传统的SQL开发者,也可以 通过PathSQL写出类似SQL的查询。适合(并不仅限于)需求多变导致的数据模式(Schema)经常随之变化、以及有灵活的数据模型并且需要进行复 杂查询的应用。

在介绍完Affinity数据库系统的团队、历史和特性之后,相信读者对Affinity数据库有了一定的了解,并想赶紧尝试一下,请参见Affinty的官方网站获得更详细的文档。您可以先阅读这篇文档,通过运行一个脚本,在本机上自动下载、编译、安装Affinity数据库。

在下一篇文章,我想讲一下Affinity的数据模型,其中包括PIN、Property、Value、Collection、Class等主要概念,敬请关注 。

如果您有建议和想法,欢迎联系本文作者linw at vmware.com 或者 在新浪微博与我交流 @傍槐闲士,当然最好的方式是在Affinity官方论坛上发布,会得到更专业的反馈。

清华图书馆机器人在过滤脏话后重新上岗

被网友“教坏”、下岗一个多月的清华机器人小图又上岗了。记者昨日发现,上岗后的小图仍逗趣可爱不时卖萌,但偶尔旧习不改仍说粗口。日前,清华大学图书馆 设置的网络服务机器人小图,因为被网友“教坏”,小图的设计者称已让小图暂停“服务”。昨日,记者打开清华大学图书馆主页,发现小图已重新上岗。在打开的 聊天框中,头像为蓝色荧光眼睛、黑色面罩、白色“战袍”的小图可自如与网友聊天。

http://img.cnbeta.com/newsimg/120314/09382502079300412.jpg

设计者介绍,小图下岗后被过滤了不少脏词。记者与小图对话中,发现小图说脏话的频率已大幅减少,显得小清新;但偶尔仍会“重口味”一下,对话时不时爆出一两句粗口。

在清华大学图书馆主页有一则题为“让小图更美丽”的公告,公告称,为使小图有一个独有的可爱形象,特向全国征集小图的设计形象。公告介绍,“小图形象反映清华大学图书馆馆员的工作特征,建议性别设定为女性。形象主体为人形或拟人形”。

对话

设计者盼网友嘴下留情

新京报:小图和被教坏前有什么改变?

设计者:小图被教坏后,图书馆让小图暂时下岗,投入不少精力删去大量不健康的语言。目前已上岗的小图还是一如既往地卖萌有趣。

新京报:聊天中发现小图依然说脏话。

设计者:偶尔还会有一些“漏网之鱼”。以后,图书馆每个月都会抽出时间对小图的语料库里不健康的语言进行清理。也希望网友嘴下留情,别再把小图教坏了。

新京报:小图的形象征集为什么侧重于女性?

设计者:因为清华图书馆的工作人员女性居多,女小图卖萌,可爱,善解人意,角色中会显得更有趣。

小图说话

小图承认被坏哥哥教坏

记者:你是男的女的?

小图:不告诉你!

记者:我猜是女的。

小图:天下腐女是一家。

记者:男的?

小图:今天是男的,明天是女的,后天是人妖。

记者:你到底是男是女?

小图:你知道我是谁吗?

记者:清华大学的坏小子?

小图:女人不坏,男人不来,男人不坏,女人不爱。

记者:你为什么爱说脏话啊?

小图:哦,图图知道错了。都是坏哥哥们把我教坏了。

记者:以后别说脏话了好吗?

小图:我发誓我他妈再也不说脏话了。

文/新京报

GNU/Linux与自由:隐藏在Linux发行版中的非自由软件

许多对软件自由感兴趣的人都会把GNU/Linux作为他们的操作系统选择。但很少有人认识到,许多主要的GNU/Linux发行版并不是完全自由 的。想象一下,当你从Windows迁移过来并安装GNU/Linux时,却发现你正在接受一个严格的微软许可证!

许多发行版使用了专利软件并故意显示一个错误的许可证,并尝试将问题隐藏在一个“自由可选项”的外表后面。大多数软件容器的开发者并不关注自由,更 不用他们的说用户了。非自由的发行版几乎不曾尝试提醒他们的用户自由有多么重要,即便是不这么做用户就将不复存在的时候。本文中我将会讨论“自由可选项” 是一种不可接受的方式,并且提出一些真正的解决办法。

问题

我使用GNU/Linux超过5年,但直到最近才发现我的发行版中究竟包含多少非自由软件。我决定在系统中查找并删除所有不自由的东西,结果我删除 了n多。

GNU/Linux与自由:隐藏在Linux发行版中的非自由软件
一个漂浮的GNU — 软件自由与安宁的符号

这些是我所找到的:

Linux内核

Linus Torvalds等人通过kernel.org发布的Linux 内核,即公版的内核,包括许多非自由的固件(参见脚注),它们主要用于支持一些自由固件所不支持的硬件。

想象一 下,当你从Windows迁移过来并安装GNU/Linux时,却发现你正在接受一个严格的微软许可证!

虽然大多数发行版维护了他们自己的内核,但都是严重基于公版的,并且通常直接采纳了其中的非自由二进制镜像。

一个解决办法就是使用Linux Libre项目,这是一个去除了所有非自由固件的公版内核集合。大多数发行版根本就不曾提供自由内核的选择,更不用说推荐一个了。

非自由驱动程序

许多发行版包括了显卡和无线网卡之类的非自由驱动程序。由于那些硬件是闭源的并且没有文档化,他们只能包含这些驱动来尽力增强硬件支持。

许多发行版采用驱动程序的非自由版本来*代替*自由版本

在很多情况下,驱动程序的自由替换版其实是存在的,但是许多发行版却采用非自由版本来*代替*自由版本。

常见的非自由软件

许多发行版还提供了其他一些不属于上面几类的非自由软件。这些东西包括非自由网页浏览器,视频会议客户端,和另外一些常见的应用程序。系统本身并不 需要这些软件,包含这些东西只是为了方便,或者让软件包列表变得更充实。

他们告诉用户说自由是一个次要的问题,并且引导他们使用非自由软件

虽然一些发行版用专门的仓库来维护非自由软件,但对平常用户来说这并不意味着什么。通过同时宣扬自由和非自由的程序,他们实际上是在告诉用户说自由 是一个次要的问题,并且引导他们使用非自由软件。

我从系统中移除的一个软件包叫corefonts,是使用微软许可证的非自由字体包。其许可证限制了该软件包的使用,并且禁止对其修改。 Corefonts是安装ImageMagic的一个可选依赖,Gentoo默认将其启用。

ImageMagic本身是自由软件。这意味着大多数安装它的用户都假定它是自由的,结果却错误地使用了系统中的corefonts。他们可能会受 到这个受限非自由许可证的影响。

小结

这只是GNU/Linux发行版怎样限制用户自由的一些例子。另一个问题是:仅仅检查包管理器所述的各种程序许可证信息并不可靠。比如,Linux 内核通常标榜说是完全符合GPL-2的,但实际上却包含了一些非自由软件。

如果没有一种清晰的策略来精确地分辨一个发行版所包含的软件并且 精确地描述其许可证的话,即便是最小心的用户也可能会安装非自由软件。

自由可选项

一些发行版尝试着这样解决问题:通过提供另外一个自由版本,或者提供一些工具来帮助用户保持系统自由。这并不能解决问题,因为大多数人并不关心软件 自由,因此也不会结束其使用。更有甚者,发行版几乎不会做任何事情来提倡使用自由版本,甚至是告诉用户使用它们的优越性。

Mandriva

告诉大众专利软件会如何危害你的问题,以及逃离限制的方法乃是重要目的。可是这 些根本就没有涉及。

我的第一个例子是Mandriva,这个发行版提供了7个不同的版本,只有一个是完全自由的。大多数访问其网站的人都会下载其Powerpack版 本,因为它放在第一个,并且其名字也暗示它是功能最强大的版本。没有人会关于其版本区别的描述,同时也没有任何提倡甚至是解释一下使用纯自由软件的优越 性。

这种做法的副作用就是:唯一使用自由版本的用户就是那些已经知道问题并且对其非常小心的人。这些用户可能已经在运行100%自由的系统 了。告诉大众专利软件会如何害你的问题,以及逃离限制的方法乃是重要目的。可是这些根本就没有涉及。

Gentoo Linux

另一个例子是Gentoo Linux,提供了一个可选的许可证过滤系统,能够帮助用户避免安装专利软件。这比Mandriva的情况还糟,因为过滤功能在文档中很少涉及,而且对于 使用什么没有给出任何推荐。

这意味着唯一使用Gentoo自由版本的人是那些专门搜索过怎样基于许可证来过滤软件的人。大多数用户可能都不知道还有这么一个功能存在。 更严重的是,一些软件许可证(比如Linux内核的许可证)是不准确的。所以即便有严格的过滤器,专利软件也很可能会漏网。

我在Gentoo开发者邮件列表上指出过Linux内核显示的许可证是不准确的。我要求他们更新以包含非自由固件的许可证,这样人们才能精确地过滤 他们的软件。虽然一些开发者支持这个主意,修正方法却一开始就被一些内核团队成员给拒绝了。本文发表不久以后,我被告知许可证现在已经更新了,是一个最初 的支持者干的。

小结

非自由的发行版几乎不曾尝试提醒他们的用户自由有多么重要,即便是不这么做用户就将不复存在的时候。

大多数软件容器的开发者并不关注自由,更 不用他们的说用户了。非自由的发行版几乎不曾尝试提醒他们的用户自由有多么重要,即便是不这么做用户就将不复存在的时候。 一个发行版对于其用户的影响是相当巨大的,并且他们有提倡使用纯自由软件的社会责任。

解决办法

很明显真正的解决办法是转而使用一个尊重用户自由的发行版。FSF组织维护了一个你能使用的完全自由发行版的 列表。开发者们协同工作,以便保护用户的自由,并且尽最大努力来维护一个完全自由的系统。比如通过查找并修复所有因失误而漏网的非自由软件。其他非自由发 行版很可能忽视这些问题。

然而,转换到一个新的操作系统并不总是可行。你可能更喜欢重构你已有的那个非自由发行版。如果是这种情况,你可能希望转换软件安装来实现一个完全自 由的操作系统。这样会有很大的工作量,不过却是可行的:

  1. 首先,你应该从系统中移除所有非自由软件。这些工作包括:转换到一个Linux Libre内核,全面扫描已安装的软件包并检查其许可证。这可能是一项巨大而乏味的工作。

  2. 每个用户都需要这么做显然是个愚笨的办法。你可以联系你发行版的开发者并且告诉他们——当然是用礼貌的方式——你认为软件自由是一个重要问 题,并且建议他们改进发行版的自由性。你还可以提供帮助,不管是技术支援还是问题报告。 一种无争议的方式来维护一个完全自由的系统会是一个好的开端。

  3. 如果你会写代码,你可以着重于努力改进一个自由的发行版。如果你有喜欢的设计决定,你可以在自由发行版中实现。你还可以帮助那些非自由发行版,通过编写其包含的非自由软件的自由替换版来实现(当然这也会让自由发行版获益,哦,自由软件的胜利!)。

有时候你可能有自由软件所不支持的硬件。如果可以的话你应该尝试着避免支持这样的公司,虽然这么做可能不太现实。在所有情况下,你都应该给生产商写 一个礼貌而坚定的需求,要他们将驱动程序以自由软件发布,或者开放他们的规范文档以便其他人可以编写自由驱动。

购买硬件的时候,先查阅FSF的支持的硬件列表,尽可能多地支持那些自由的公司。

我要提及的最后一点是推荐的强大影响力。每当向你朋友和家庭推荐GNU/Linux的时候,都别忘了强调自由的重要性。不管他们是否接受你的建议, 你都将在客观上帮助了知识的推广,这是解决任何问题的第一步。

脚注

作为一个例子,请浏览这个 Linux 源文件. 你正在看的是一个非自由的二进制固件。这段代码的含义通常意味着一个商业秘密,因此用户不但没法修改它,甚至根本没法理解它。

问题并不局限于Linux。OpenBSD开发了它们自己的内核,但是也含有二进制镜像。可以快速浏览一下这个内核源文件,它包含了一大段使用受限许可证的非自由代码。

还可以在UbuntuDebian中 查看更多非自由二进制镜像的例子。

via freesoftwaremagazine

八大疯狂的 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