公开了:统治物联网的不为人熟知的开源操作系统

Contiki统治着物联网

差不多所有东西都可以连接到计算机网络。灯泡、恒温器、咖啡机,甚至獾。没错,獾。

獾大部分时间在地下,给生物学家和动物学家追踪它们的下落和活动增加了难度。比如,GPS在地下或密闭区域运作不正常。但是大约五年前,牛津大学的研究人员Andrew Markham和Niki Trigoni发明了一种可以在地下运转的无线追踪系统从而解决了这个问题。系统比较聪明,但是它们不能独自运行。和很多其他科学家一样,它们选择了开源,避免不得不白手起家重新建立基础组件。他们使用的一个构成要素就是称作Contiki的开源操作系统。

“Contiki是真正的推动者,它允许我们快速构建原型,并轻松在不同的硬件平台之间切换,”Markham说,他现在是牛津大学的副教授了。

Contiki没有和知名的Windows或OS X、甚至Linux齐名,但是十多年里,对于建立传感器、追踪器和基于web的自动化系统等网络链接设备的黑客、高校科技人员和公司来说,它已经是很有技术含量的操作系统了。开发者喜欢它,因为它是轻量级、免费和成熟。它为急于给我们带来物联网所宣扬的、所有连接因特网配件的开发者和企业家门奠定了基础,不必开发那些配件未来需要的潜在操作系统。

或许Contiki最大的问题就是它很小。真的不大。因为Linux需要1M的RAM,而Contiki只需要数K个字节就能运行。它的发明者,Adam Dunkels,设法在不超过30K字节的空间里安装了一个完整的操作系统,包括一个图形用户接口、网络软件和一个web浏览器。这使得它轻松运行在小的、低电量的芯片上——就是用于连接设备的某种东东——但是它也可以安装到很多老式系统上,比如Apple IIe和Commodore 64上。

Contiki即将面对来自于诸如微软的竞争,后者最近公布了用于物联网的Windows。但是微软的新操作系统对尺寸小于9英寸的设备免费,它不是开源的。Contiki已经有着11年的先发优势。

...

一像素

在工作时,用Opera测试网站时,我注意到激活一个tab比较困难。这里的激活是指,我点击了tab,但是没有切换过去。我不得不重试很多次才能切换到我想要的、那个该死的tab。

这种行为失败原因是Opera的tab条上有一个、一个微小的像素。tab没有完全占满这个条,而是有一像素是不能点击的。放大后,方便我把光标在显示器最顶部标示出来而不仅仅点击。

请看红色标注的区域:

opera的tab

放大6倍:

放大6倍后的opera的标签

我过去没有意识到这个地方,因为我使用的web浏览器,Firefox,也有和Opera类似的这一点点像素,只是Firefox中的这个像素是可点击的,它就像tab高度的一部分。Chrome的tab占据了整个高度。Internet Explorer(11),就和竞争对手不同,在我的Windows 8 里留下了一个大大的标题条。

在我搞清楚之前,这个问题非常困扰我。我从来没有如此讨厌一个单一的像素。

原文地址:

简介:怀恨者将要憎恨,或者你为什么仍然需要SQL

SQL无处不在,我这样说不是因为我想让你使用SQL。它只是一个事实。我打赌现在你的口袋里就有一些。所有的Android手机和iPhone都能轻松访问叫做SQLite的SQL数据库,你手机上的很多应用直接使用它。它运行着银行、医院、大学、政府、小企业、大企业,几乎每一台电脑和这个星球上的每个人最后都要接触到运行着SQL的东东。SQL是一种极为成功和稳固的技术。

SQL的问题在于好像每个人讨厌其本质。它是一种古怪的、笨拙的“非语言”,这是大多数程序员不能忍受的。像“网络规模”或面向对象编程这些现代问题出现了很长时间之前,SQL就被设计好了。不管它是否基于稳定的算法构建操作理论,它已经被误解得足够令人厌烦了。树?嵌套对象和父子关系?SQL只是蔑视你,给你大量的平面表(flat table),说“别指望我,兄弟。”

如果每个人都如此憎恨SQL,为什么你应该学习它呢?因为这种想象中的憎恨背后是缺乏对SQL是什么以及如何使用SQL的理解。NoSQL运动一定程度上是对于旧的数据库服务器的一种反应,也是对于源自SQL工作原理无知的恐惧所产生的影响。通过学习SQL,你实际上会学到重要的理论概念,这可以应用到过去和现在几乎每个数据存储系统。

不管SQL憎恨者宣扬什么,你都应该学些SQL,因为它无处不在,实际上学到足以被教育的程度不是太难。成为一名受过SQL教育的用户,将有助于你在使用什么数据库、是否不使用SQL上做出见多识广的决定,也有助于你深入理解做为程序员的你所用到的很多系统。

归根结底,我想让你学习SQL,因为它非常便利。我可以使用SQLite为网站应用程序、手机或桌面应用程序快速地规划一个简单数据模型的原型,我也知道它会运行起来,仅仅因为随处都有SQLite。这种使用跨平台一致性和强大数据存储语言的能力是无价之宝。

关于本书

本书向任何人教授SQL,但对于你已经可以编程是有帮助的。被教的SQL概念假定你至少知道如何做些编程工作,即使它只是简单的编程。它也假定你可以从命令行运行命令,知道如何使用shell,可以访问一个优秀程序员的文本编辑器。

为了保持本书简单,即使管理一个庞大的数据库服务器和学习SQL有些偏离,本书会使用SQLite3来讲解语言的基础部分。与如何使用Python或Ruby类似,使用SQLite3,你将学会编写完整的.sql脚本,并运行它们,来学习这门语言。

每个练习将在通常的“Learn The Hard Way”小节里介绍概念。也有一个很小的部分,“可能”用于解释PostgreSQL和/或MySQL的不同,或任何其它数据库,很明显本书的用处不仅仅体现在SQLite3上。

当你学习完本书之后,你应该较好地理解了SQL、如何设计数据、一点点数据库优化,你应当能够深入你选择的另一种数据库了。

SQL是什么?

我对SQL的发音是”sequel“,不过如果你愿意,也能念”ESS-QUEUE-ELL“。SQL还代表了结构化查询语言,但是截至目前甚至没有人关心这一点,因为无论如何这只是一种营销策略。SQL是一种让你与数据库中的数据交互的语言。尽管如此,它非常符合多年前定义的、结构良好的数据属性的理论。这不一定是同样的东东(某些诋毁者悲叹的),不过它足够有用。

SQL的工作原理是它理解表里的字段、理解如何找到基于字段内容的表中数据。所有的SQL操作都是下面通常的四种方式之一:

...