程序员是一个很特别的群体,实际上,我们都在和虚拟世界打交道。最初,是一些代码,算法,后来,因为信息化的发展,产生了大量的数据比如互联网。最近些年,发展的越来越快,比如什么云计算,大数据,可穿戴设备,虚拟现实等等。计算机技术的触觉,开始从虚拟世界逐步延伸到"现实世界",这就带来一个问题,计算机科学和物量学到底有没有关系,它们还会是分离的么?实际上,本人观察到,搞计算机的人,大多对物理学,哲学或数学这些有或多或少的兴趣。直觉上就会发现,它们其实密不可分。本人也对物理有很大的兴趣,也喜欢思考,我们这个宇宙是怎么样,时间是怎么回事等等。对**这些思考和学习,对我们抽象理解计算机知识和科学是非常有意义的**,每天和代码打交道,没点思考抽象能力,想象力很难做好工作,简单的写些CRUD,甚至很难保证我们的生活问题。但是现代的一些物理理论,让我们很困惑,比如宇宙大爆炸,比如时间是怎么回事,物质到底是什么,比如量子理论是怎么回事。其实好多量子也搞不太明白,我们搞计算机的,主要靠的就是逻辑推理,直觉,我们有一点是明白的,就是不要太过于相信眼睛,天天和数据打交道,屏幕上显示的让我们看到的,就是真实存在的东西吗?我看到我拼幕上有个IPhone,我真的就以为我的计算机里头装了个IPhone吗?我们需要更深层次的逻辑推理和能力。但是我们看看现在的一些理论,有些不错,有些已经显得过时了,但是非常流行,大家都以为是真的。比如宇宙大爆炸。比如一些天文学。这里头比较明显的一个例子就是宇宙大爆炸,基于这个理论的天文学,不断的告诉我们宇宙的Size,比如已经有100多亿年的寿命了,大约是180亿光年这么大了。等等等等,然后随着我们的观测,这个数字不断刷新,估计不断进化的结果可能会是这样。我们的宇宙有138.888888亿年, 直径是188.888888亿光年。里头有1888亿个星系等等等等。![宇宙大烟花](http://www.spenews.com/uploads/allimg/101123/093940Da-0.jpg)当然,这样的研究,相信能养活大批专家,教授,学者,然后他们会再反过来维护它的真理性及权威性。不反对专家教授们的研究,但是这种世界观,先不说它有多大的真实性,但至少对我们提升抽象能力没太大用处。仅仅只不几个更大更精确一点的数字堆砌而已。更糟糕的是,一个具体的世界,宇宙,习惯了这种思维模式,让我们很难深入理解更抽象的计算机技术。比如我们很难想象更高维度,比如四维空间,但在计算机里,维度是很常见的。也很难抽象理解类,对象这些东西,但这些东西,在计算机里都用烂了,其它的就更不用多说了。实际上,现代物理学的确已经发展到一个瓶颈,因为这些专家并没有意识到,物理的背后,其实更多的是数学,计算机科学,,仅仅只是在经典物理上不断的扩大尺度,已经无法得到更多的突破,当然或许意识到了,但是因为一些利益的关系,而不太愿意去否定它。既然事实已经成为这样,我们搞计算机的,不如放弃一些这种本来看上去就不太正确的东西,试着从逻辑推理及想象力,去探索一下可能的存在,用计算机的眼光来看看我们的宇宙。###不迷信权威,质疑我们明显认为不合逻辑,过时的东西,是创新的根源,也是我们进步的源动力###就以宇宙为例,宇宙大爆竹,是上帝放的烟花么?这直觉上感觉就是胡扯,把人类的东西,借代到上帝那里去了,上帝过年,放个烟花,恩,当然是个相当大的烟花是吧,于是就蛋生了我们现在的宇宙,这有想象力,但更象是童话,我们看到博客园看到好多网页,然后我就相当然的认为博客园存了天文数字的网页比如1000亿个,这大量的页面要大量的空间来堆放比如180亿光年,真是这样的么?实际上是,真实的结构,比我们表象看到的要抽象,要合理,而不是简单的空间和数量的堆砌。上帝的智商决不只停留在专家这一层面上。它要么很理性,要么就很随性,放烟花不是不可能,但肯定仅仅只是可能性的一小种而已,而且这个可能性的概率,应该还是蛮低的。现在我们的**计算机技术,已经接近可以制造虚拟空间,这赤裸裸的现实告诉我们,所看到的世界,和它的真实结构的差别有多大。**最后再值得一提的是有这个一个逻辑推理。假设就算天文,物理学认为的宇宙结构尺度是大体类似的。那么必然有一个问题,基本上我们看得见的星星,离地球都是X光年以外,或者说,我们看到的只不过是他们的过去。把我们的视线,**在太空上画一个显视屏,这就非常容易理解,我们所看到的太空,其实就是历史时间的一个投影,和我们平时看电影也没有什么两样**。人类无法真正认识现在的,真实的宇宙。这是个残酷的现实。那以再假设,比如最近的比邻星在量子打字的时候爆炸了,其冲击波足于毁灭地球。人类要毁灭了。那地球上的人会有任何人能知道这一点么?没有,四年以后,假设它离太阳系真的是4光年多。**只有到那毁灭的一刻,人类才可能知道真相**。知道真相的瞬间,也就是全体毁灭的瞬间,这就是事实。这个非常残酷的事实告诉了我们人类一个道理,宇宙无法用观测去了解。我们只能通过想象,计算,逻辑推理,模拟等,有可能接近,也有可能差十万八千里。在量子看来,最接近的真理就是计算机科学,因为它在技术上在将来可以模拟出一个真实的世界。更多的也可以看看这个 [量子计算理论](http://www.cnblogs.com/DSharp/p/3472281.html)###其实总结来说,宇宙大爆炸,不如说是宇宙大显示器###我们抬头看到的东西,除了太阳系还能勉强了解下,更远的地方,只不过是通过时间及空间,在我们头顶上方形成的一个投影,这个投影是不同时间,不同光线,不同的未知的东西产生的一种综合,更象是我们的显示器看到的网页,东西还是那些东西,但背后的真实,我们应该明白我们的确很难探测到,很多都只能建立在逻辑推理,数学计算,相象力之上,仅仅通过观察就得出来的结论,是非常不靠谱的。
本文链接:http://www.cnblogs.com/DSharp/p/3523708.html,转载请注明。
我们可以用StoreDB配合AngularJS非常简单地做出功能强大的SPA(Single Page Application),今天我们来试试做出一个最简单的Todo应用。
STEP1.
首先需要在目录中获得AngularJS和StoreDB的脚本文件,推荐使用bower:
$ bower install storedb
运行后在目录中创建“todo.html”,现在的目录结构如下:
在HTML文件中引入文件:
<script type="text/javascript" src="bower_components/angular/angular.min.js"></script>
STEP2.
到这里我们已经作好了依赖准备,现在可以开始编写代码了。
<head>
<script type="text/javascript" src="bower_components/storedb/storedb.js"></script>
<script type="text/javascript" src="bower_components/angular/angular.min.js"></script>
</head>
<body>
<div>
<input placeholder="What u have to do?...">
<button>Add</button>
<ul>
<li></li>
</ul>
</div>
</body>
</html>
效果:
显然,我们要在ul中遍历出所有todo项,button用来插入一条新的项。不过这些都要交给Angular来做。
STEP3.
接下来我们要在<div>中部署Angular:
<input ng-model="cont" placeholder="What u have to do?..."/>
<button ng-click="add()">add</button>
<ul ng-repeat="list in lists">
<li>{{list.desc}}</li>
</ul>
</div>
有AngularJS基础的朋友应该不难看懂以上代码所作出的更改。
控制器todoCtrl代码:
app.controller('todoCtrl',function($scope){
$scope.lists = storedb('todo').find();
$scope.add = function(){
storedb('todo').insert({"cont":$scope.cont,"isDone":"false"},function(err){
if(!err){
$scope.lists = storedb('todo').find();
} else {
alert(err)
}
})
}
})
storedb.('todo').find()会返回一个包集合中所有文档的数组,我们把它赋值给$scope.lists,这样我们就能在<ul>中访问这个数组。
add是负责插入操作的函数,插入成功后通过回调函数再把最新的文档数组赋值到$scope.lists,这时AngularJS的双向数据绑定会直接更新UI,在ul中显示最新的todo项。
效果图:
插入功能就这么写好了,现在尝试刷新页面、关闭浏览器,数据都没有丢失,因为localStorage数据只有在清除缓存时才会被删除。到这里也许你已经能看出AngularJS + StoreDB的巨大潜力。
下一篇我们开始写“已读”功能。
本文链接:http://www.cnblogs.com/Randylu/p/3523652.html,转载请注明。
没有评论:
发表评论