月度归档:2016年07月

react js 开发环境搭建

1. 安装NVM 多版本的node 可以共存,并且可以随意切换

git clone https://github.com/creationix/nvm.git
## 最好指定taobao的NVM镜像地址,否则,GFW的问题
export NVM_NODEJS_ORG_MIRROR="https://npm.taobao.org/dist” && nvm list
##或者在mac 环境下 直接用nvm 安装
brew install nvm

2. 安装nodejs

nvm list
查看远程存在的版本号:
nvm ls-remote
## 使用某个特定的版本
nvm use 5.0

3. 安装nrm

## nrm 特殊的npm 可以切换更新源,方便的使用淘宝的地址
npm install nrm
nrm use taobao
nrm ls

4. 安装

nrm install -g create-react-app

5. 更新发布

npm run build

c语言扩展lua

c语言源代码:

#include <math.h>
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>

static int hello_sin(lua_State *L){
    double d = luaL_checknumber(L, 1);
    lua_pushnumber(L, sin(d));
    return 1;
}

static const struct luaL_Reg hello_lib[] = {
    {"hello_sin" , hello_sin},
    {NULL, NULL}
};


//luaopen_xxx 系列函数为lua的hook函数,会执行并注册我们自己的类库
int luaopen_hello_lib(lua_State *L){
	/*luaL_newlib(L, hello_lib);*/
	luaL_register(L, "hello_lib",hello_lib); // lua 5.1
	return 1;
}

编译脚本:

#!/bin/bash

gcc a.c -fPIC --shared -o hello_lib.so

使用部分:

[lua]
local N = require(“hello_lib”)
N.hello_sin(1)
[/lua]

python twisted 程序hello world


import traceback

def hello():
    print 'Hello from the reactor loop!'
    print 'Lately I feel like I\'m stuck in a rut.'
    s_data = traceback.format_stack()
    print s_data

from twisted.internet import reactor

reactor.callWhenRunning(hello)

print 'Starting the reactor.'
reactor.run()

启动以后将执行hello 函数,其中reactor 为单例模式,可以在任何地方引用,均获得同一个实例对象。
错误出现的时候,可以用 traceback.format_stack() 获取出错的栈信息.