OSX 上初步尝试 asp.net 5

去年微软最令开源狗界振奋的消息就是 ASP.NET 的开放与开源这一消息了。 根据微软的介绍,与我之前的一些总结,可以看到 ASP.NET 以及 .NET 平台会有下面几个变化: 代码使用 Apache 协议开源,并且托管于 Github 上。 新的 C# 编译器 Roslyn。 一个新的跨平台的 CLR(对应 Java »

JavaScript ES7 中使用 async/await 解决回调函数嵌套问题

JavaScript 中最蛋疼的事情莫过于回调函数嵌套问题。以往在浏览器中,因为与服务器通讯是一种比较昂贵的操作,因此比较复杂的业务逻辑往往都放在服务器端,前端 JavaScript 只需要少数几次 AJAX 请求就可拿到全部数据。 但是到了 webapp 风行的时代,前端业务逻辑越来越复杂,往往几个 AJAX 请求之间互有依赖,有些请求依赖前面请求的数据,有些请求需要并行进行。还有在类似 node.js 的后端 JavaScript 环境中,因为需要进行大量 »

使用ctypes探索Python Object内部结构

在Python中我们可以直接使用dir函数获取一个对象的内部数据(推荐使用inspect.getmembers,输出内容更为详细),但是想知道这个对象在内存级别上的结构时此方法就无能为力了。 常用的一个Python实现Cpython中,一个对象的实现(PyObject)其实是一个结构体。那要探索结构体的方法就很多了,比如重新编译解释器,在其中输出log,或者直接使用gdb。 还有另外一个方案,就是使用内置的ctypes。ctypes可以将任意一段数据转换为C的结构体,处理PyObject当然也没问题啦。 PyObject的定义在object.h当中,在2.7版本,并且没有定义PyTRACEREFS的情况下,将宏展开后是这个样子: typedef struct _object »

使用libevent实现wsgi server

这年头wsgi server满天飞,主流都是多进程+异步的形式,纯C实现的也不少。 libevent是C语言的一个异步网络框架,有内置对http的支持,刚好拿来练手,于是就造了个轮子,C语言实现的wsgi server。源码在这里。 依赖libevent2和python2.7,在Ubuntu下只要 > sudo apt-get install python2.7-dev > sudo apt-get install libevent-dev »

Lizpop介绍

简介 实现一个Lisp方言实在是太简单了,尤其是作为方言之一的Scheme,所以各个语言版本的Lisp实现层出不穷,Python平台上也是如此。最著名的当属Peter Norvig的lis.py。 其中最靠谱的当属clojurepy,直接将源代码编译为Python字节码执行,无论是速度还是与Python库的互通性都是无与伦比。不过Scheme就没这么靠谱的实现了,大部分都是个简单的Demo,或者没办法调用Python代码,或者很多特性没实现。 Lizpop相对不错一些,不过没有官网和文档,只有个简单的README,并且到目前位置代码已经一年没有更新了。看名字作者是个日本人,不知道以后会不会维护下去。 安装与运行 用pip的同学就简单了,直接pip install lizpop即可。 »