- 浏览: 34901 次
- 性别:
- 来自: 杭州
最新评论
-
lych:
顶LZ,其实这里的核心难题就是从来没有一种模型能描述整个世界, ...
Erlang的问题? -
doylecnn:
说的好像引用计数不是一种GC似的
伟大的LLVM伟大Apple伟大ARC -
linkerlin:
可以纯用Python,待性能问题出现的时候,再用C来优化。
技术的“体位” -
flytod:
哦,是开心农场二
技术的“体位” -
flytod:
一直保存这个blog的URL,今天看到一篇文章,才特意回来的这 ...
技术的“体位”
文章列表
Agent无处理逻辑,只收lambda,用lambda加工自己的状态。
Actor有逻辑,收消息,消息可以是数据也可以lambda,Actor处理消息。
关键区别是:
Actor 有个主动过滤消息的过程;
而 agent 没有,是被动的,不论什么lambda都要执行之。
随着Erlang和FP的普及,总有人想把Erlang用在Web开发上。
虽然这不一定是个靠谱的想法,但是,还是看上去很美的想法。
Nitrogen 就是其中一个实现。它主要关注在快速开发交互密集型的Web,喜欢Erlang的童鞋可以看一下。
因为clojure的首要平台依然是JVM,而JVM对尾递归和LCO/TCO都没有支持,所以clojure引入了一个
recur spec-form。
recur 其实就是函数内的goto,感觉实在是很受限。
JVM啥时候发力把以上的缺陷都改进就好了。
或者Clojure移植到LLVM平台。
YY一下。。。
(defprotocol X (cat [this other]))
定义一个协议,这个和Objective-C的协议很像。不同于Java的接口。
user=> X
{:on-interface user.X, :on user.X, :sigs {:cat {:doc nil, :arglists ([this other]), :name cat}}, :var #'user/X, :method-map {:cat :cat}, :method-builders {#'user/cat #<user$eval12$fn__13 user$eval12$fn ...
事情的起因是Reia的作者说Erlang有严重的问题。(原文需要fq)
于是,引发了Erlang邮件列表里的大讨论。
Erlang社区还是比较平和和中肯的。
那篇blog里面提到的 几点是误会,几点是苛求,几点是确实存在的问题,都讨论的 ...
好久不看Erlang的进展了,发现有人在研究用LLVM作为后端,重写一个Erlang的编译器。
这可是重大利好啊。
不过离实用估计还要5年时间吧。
LLVM带了了ARC,神一样的东西~梦幻般的思想。
彻底了解了GC和引用计数那个好的争论。
Automatic Reference Counting
Automatic Reference Counting (ARC) for Objective-C makes memory management the job of the compiler. By enabling ARC with the new Apple LLVM compiler, you will never need to type retain or release again, dramatically simpl ...
SWIG包装一个上古的代码库的时候,遇到一个问题:
Error: Nothing known about namespace '__gnu_cxx'
原因:代码中用来一些 __gnu_cxx名空间里面的函数来实现原子操作。而SWIG不认识这个名空间。所以悲剧了。
解决方案:
在所有用到 __gnu_cxx 里面东西的函数第一行加上:
using namespace __gnu_cxx;
在其他地方,可直接指定 全名:
__gnu_cxx::XXXXX
。
Done.
好久不更新这里的Blog了。
最近的我的工具链发生了一些变化,这里说明一下:
以前我所用的LuaJIT/C++的组合基本暂停使用了。原因: LuaJIT的性能虽然非常好,但是很多时候,足够快就行了,不一定要追求最快。
C++实在是给人很大的心智包袱,尤其是设计的时候。虽然Boost简化了很多造轮子的工作,但是编译实在是太慢了。多好的CPU都没啥大的帮助。
现在用主要是Python系的工具链,包括一些国内比较罕见的先进模块。具体用啥这里就不透露了。
重点是这个版本的生成代码的性能还是 远远落后于GCC。
基本上没有在2年内取代GCC的可能。
编译一些Python的module的时候,会遇到类似一下的错误:
/usr/libexec/gcc/powerpc-apple-darwin10/4.2.1/as: assembler (/usr/bin/../libexec/gcc/darwin/ppc/as or /usr/bin/../local/libexec/gcc/darwin/ppc/as) for architecture ppc not installedji
解决的方法很简单:
ARCHFLAGS="-arch i386 -arch x86_64"
sudo python setup.py in ...
研究pyjamas的时候发现一下的文字:
Combining PyJS and PyV8 to produce an Optimising Python Compiler
----------------------------------------------------------------
pyjs.py is a stand-alone python-to-javascript. PyV8 provides python
bindings to the V8 Javascript Execution library, which provides fast ...
Java语言 在Google内部用的很多,在Android系统中更是广泛使用。Google一下子是无法抛弃Java的,但是从长远来看,被 一个素来以无耻的手段从事商业活动,而不是 以技术为核心竞争力 的Oracle卡脖子,实在是Google所不能忍受的。
否则,Google一定会用Windows做服务器,而不是Linux.
纵观世界上成功的大型技术公司,无不有一个自己的语言体系。
比如微软的.Net/C#,苹果的Objective-C/C++和Cocoa框架,以及Sun/Oracle的Java体系。
一个语言体系,对于大部分人来说,就是一个 技术壁垒。
这对于笼络开发者形成社区非常重要 ...
最重要得是Redis 2.0 增加了自己管理的虚拟内存机制。新版本大大减少了内存不足时,对OS swap机制的压力,也使得数据库超过内存大小称为实际上可行的事情。以前可以但是会非常的卡。
nginx + lua 会是什么震撼人的东东呢?
答案马上揭晓,大家和我一起期待吧~
——————————————————————
nginx 和 lua 的最大相同点是 Do more with less.
这点和Java以及.Net的 Do less with more.正好相反~
哇咔咔~