围观一下以shizhao为代表的维基中掺的砂子的作为。 http://zh.wikibooks.org/w/index.php?title=CAD&action=history

Posted in 未分类 | Leave a comment

HTC的手机在屏幕分辨率、摄像头像素方面都抢先于苹果推出。iphone没什么出新的地方。

Posted in 未分类 | Leave a comment

苹果只是凭借自己的特长抓住了目前这种信息终端多样化的大势。

Posted in 未分类 | Leave a comment

看了乔布斯关于富士康的评论。还是能不用苹果产品就不用吧。

Posted in 未分类 | Leave a comment

在看圣塔菲的SWARM的object c代码。先把这个空架子浏览一下。

Posted in 未分类 | Leave a comment

pypy

pypy

官网原文:
~~~~~~~~~~~~

We aim to provide:

* a common translation and support framework for producing implementations of dynamic languages, emphasising a clean separation between language specification and implementation aspects.
* a compliant, flexible and fast implementation of the Python Language using the above framework to enable new advanced features without having to encode low level details into it.

2   High Level Goals
2.1   PyPy – the Translation Framework

PyPy is experimenting with a more ambitious approach. We are using a subset of the high-level language Python, called RPython, in which we write languages as simple interpreters with few references to and dependencies on lower level details. Our translation framework then produces a concrete virtual machine for the platform of our choice by inserting appropriate lower level aspects. The result can be customized by selecting other feature and platform configurations.

Our goal is to provide a possible solution to the problem of language implementers: having to write l * o  * p interpreters for l dynamic languages and p  platforms with o  crucial design decisions. PyPy aims at having any one of these parameters changeable independently from each other:

* l: the language that we analyze can be evolved or entirely replaced;
* o: we can tweak and optimize the translation process to produce platform specific code based on different models and trade-offs;
* p: we can write new translator back-ends to target different physical and virtual platforms.

译文:
~~~~~~~~~~~

pypy的目标(已经实现)是:

* 能够生成动态语言的解释器的通用框架。
* 用这个框架来生成一个兼容的、弹性的、运行速度快的python的解释器(译者加:并且是python的即时编译器)。这个解释器还能给python添加一些额外的特性(译者加:比如无堆栈)。

pypy的高端目标是一个翻译框架:

用一个python的子集rpython来实现解释器。这个rpython解释器不涉及底层和平台相关的部分。另外针对各个平台再补充和底层相关的部分的编码(译者加:用底层语言来写)。

然后针对一种动态语言能够同时生成多个平台的解释器。

换成自己的话说
~~~~~~~~~~~~~~~~~

* 作为python的即时编译器,提高python的运行速度。并让python能在多个平台运行。目前能够同时生成python的java、dotnet、c和javascript、LLVM的解释器。并且,pypy把大量的python库改写为可移植的版本。
* 作为编译器框架,可以生成各种语言的编译器。

我理解pypy其实还具有更多的意义
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* pypy最大的意义和用法应该是多个语言之间相互翻译的通用翻译器,而不只是用来生成解释器。这种通用翻译器一直是大家的一个理想,没想到在pypy这里被实现了。这个翻译器不是用替换的方法来直接翻译,而是将一种语言进行分析,分析成一个通用结构,然后再把这个通用结构翻译成目标语言,这样语言的翻译能力更强,也更少错误。pypy能把rpython翻译为javascript代码,也可以把scheme等翻译为javascript代码。等于是一个编程语言的多种输入,多种输出的转换器。我想把python翻译为scheme,object c也是可能的。

说些题外话:pandoc是文本标记语言的通用翻译器,也是有一个中间分析层。希望人类各个语言之间也有这样一个通用翻译器,最起码能翻译一个简化的子集也好。比如限定这篇文章只能用这几百个字来写,但写完后,马上能翻译成所有的人类语言。simple english这是这样的子集。中国的古文也是这样的子集。但还没听说一个比较成形的通用翻译器。

* 基本上把python变成了一个静态编译语言(这个rpython比起python来说缺不了什么东西)。实际上pypy的rpython作为python的子集,去掉了一个变量能够赋值不同类型的值之后,能够静态编译。这样,使用有所限制后的rpython,python就不再只是动态解释语言了,python同时也成了静态编译语言。

对pypy的期望
~~~~~~~~~~~~~~~

* 能够象haskell的编译器ghc那样,自己带一个gcc,能方便的把python程序生成exe程序。目前pypy对windows的支持还不是很好。
* 更好的windows支持。
* 作为一个语言平台,促进多种编程语言混合编程的大平台。共享一个库,各种语言之间能够相互调用。其实这个目标是不难实现的。因为pypy的实现方法就是把各种语言先翻译成rpython代码,然后再转为java等后端。这样各种语言是可以在rpython层面相互调用的,并且pypy还有一整套rpython实现的库。
* 更好的和各个平台互动,能够方便调用平台API,比如c的模块,java的模块。目前pypy这方面还不是很好。但正在实现这个功能。

静态编译的好处:

* 运行快很多。
* 不需要平台安装解释器,更方便的发布程序。

Posted in 未分类 | Leave a comment

架构:一分为四:八卦:读书笔记

架构:一分为四:八卦:读书笔记

读书笔记
~~~~~~~~~~

文王八卦的数字是按照洛书安排的。

八宫卦的顺序是:从底向上第一爻变;第二爻变;第三爻变;第四爻变;第五爻变;返回来第四爻变;一二三爻一起变。

周易的卦序是人类社会发展的各个过程。

伏羲发明了八卦和六十四卦(是不是伏羲命名的卦名?),周文王做了卦辞,周公做了爻辞,其它文言等是孔子做的,并且孔子做了读书笔记系传。卦名,卦词,爻辞都是可以改的。

先天指生成,后天指使用。

一个卦有错卦,就是所有爻都变以后的卦;有综卦,就是把卦上下颠倒后的卦。

大衍的卜卦方法导致阳爻是9,阴爻是6.

我的想法
~~~~~~~~~~~~~~

六十四卦就是周文王在狱里玩的大富翁游戏。色子只有两面,也就是只有一点和二点。掷6次色子。这个大富翁只走一步,就得到了一个结果,也就是遇到了一个事件。而不是轮流走很多步。卦名是得到的状况,而卦辞是对这种状况的评价和应对。爻辞则是描述这个状况更详细的过程。因为人生就是大富翁游戏,因此,研究易经会有所得。

八卦体现了对立统一的辩证法。

八卦和荷兰德的遗传算法用二进制数来表示信息有些类似。并且八卦的爻变也对应遗传算法的交配和突变。而八卦到六十四卦的内卦和外挂也对应荷兰德提到的积木块。

参考
~~~~~~~~~~~~~

* 易经杂谈
* 系传别讲

Posted in 未分类 | Leave a comment

电脑:编程语言:scala

电脑:编程语言:scala

特点
~~~~~~~~~~

* 融合了erlang的并发模型,haskell的纯函数编程能力,而又能够用命令式编程,还能够用面向对象编程。
* 能和java互相调用。书写方式也接近java。据说是java的最有力继承人。
* ocaml(也包括F#)是具有面向对象功能的纯函数编程语言。scala是具有纯函数编程功能的面向对象编程语言。如果不使用纯函数编程功能,scala完全可以当作java来用。而ocaml则完全是另外一种语言。
* 具有java和dotnet版本。同时的缺点就是没有c语言版本。
* 是静态编译语言。
* 由于一开始语言功能考虑全面,因此,语法浑然一体,很少打补丁,不象java那样后补了很多功能后导致的混乱。
* 历史还比较短,但也基本成型。
* 是一个编程语言专家的作品。

scala会是未来王者吗?
~~~~~~~~~~~~~~~~~~~~~~

scala可能胜出,因为c++的胜出原因就是和c的兼容性好。ocaml和c以及c++关系较远,因此,流行的可能性小。

但是因为c++和java并不是很成功,因此python很流行,python是多范式的编程语言。从这个角度来说,重新设计一个语言也是不错的选择。

函数语言具有比静态编译语言更严格的限制,也因此具有很多独特的优势,因此纯函数语言的存在是有必要的。erlang是实用版的纯函数语言,并且有好用的多线程模型。erlang、c、python的组合也是不错的混合编程的选择。

Posted in 未分类 | Leave a comment

电脑:编程语言:haskell

电脑:编程语言:haskell

特点
~~~~~~~~

* 继承自ml语言。
* 由一个委员会来设计这个语言,并且发布标准。有多个编译器和解释器。
* 是纯函数语言。
* 惰性求值。
* 能够定义象“1、2、3”这样的基本数值。叫做数据类型定义。
* 用单目(也译作单子)来封装有副作用的函数。同时,不使用抛出错误信息的方式来提示错误,而是出现了错误也会有一个最终结果。
* 静态编译语言。
* 属于学术语言。

缺点
~~~~~~~~~

* 学习曲线陡峭,知识点很多。这个语言的设计是用数学思维来设计的,有大量的符号和特殊表达形式。

闲话
~~~~~~~~~

haskell在编程语言中塞入了很多概念,比如惰性求值,自创类型,monad。并且编程语言格式有很多魔法,比如模式匹配,带条件的模式匹配等,使用了太多的符号。如果scheme能够用子语言的形式来实现haskell的所有功能,我认为会比haskell更受欢迎。haskell有太多的数学习气,需要大量的逻辑思维。

haskell更象smalltalk一样是一个先驱,一个演示,而不是c++这样的工业目的和向前兼容。scala是一个向前兼容的工业目的的具有函数能力的语言。

链接
~~~~~~~~~~~~

* 电脑:编程语言:概念:纯函数语言
* real world haskell

Posted in 未分类 | Leave a comment

电脑:编程语言:概念:纯函数语言

电脑:编程语言:概念:纯函数语言

函数能够当作参数来输入叫函数语言。而变量只能赋值一次(也就是只有函数和常量),从而让函数的输入如果相同,则输出必定相同,叫做函数没有副作用,没有外部作用。函数没有外部作用的函数叫纯函数。

由于变量只能赋值一次,那么就不能有for语句。纯函数语言是通过递归来解决循环的。

纯函数语言还较少使用if语句。而是用模式匹配来代替if语句和case语句。模式匹配就是用同一个函数名同时定义几个函数,这几个函数分别有不同的输入参数条件。

纯函数语言把含有外部输入的代码和不含有外部输入的代码分开,来达到没有副作用的目的。

由于函数没有副作用,就没有函数的相互影响。这样,纯函数语言更容易实现并行计算。

Posted in 未分类 | Leave a comment