`
chaoslawful
  • 浏览: 198620 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
文章列表
tcc 是一个很有趣的小型 C 编译器,其最大的特点是可以实现即时编译 C 代码,无需产生中间文件即可生成 native code,且将内部功能全部作为库函数暴露出来,可以很方便地嵌入到自己的应用中。   目前有一些现成的 lua 模块可以将 tcc 引入到 lua 里,用其即时生成 C-function 供 lua 使用。其中 lua-tcc 是最简单的一个,但代码年代较久,需要进行 patch 才可同最新的 tcc-0.9.25 一同工作,patch 后的代码参见这里 。   下面是一个例子,对比了 lua 原生的 json 解析器 json4lua 和通过 tcc 内联的 ...
借助 nginx proxy 模块我们可以给 ngx_lua 很方便地实现非阻塞 HTTP 客户端功能,即使用一个被 proxy 模块处理的内部 location 作为 HTTP client stub,然后通过 ngx_lua 中的 location.capture 接口调用它访问外部 URL。当然为了能解析外部域名,还需要指定 nginx 的 resolver 地址以开启 proxy 模块的域名解析功能。   下面就是一个简单的网页编码转换网关的 nginx 配置(需要事先安装 lua-iconv 模块): http { ... # 指定域名解析服务器地址 ...
ngx_lua 模块将 Lua 整合在 NginX 中,使用 Lua coroutine per request 机制实现无缝的 I/O 复用处理。受益于 Lua 解释器的极低开销和原生 coroutine 支持,用户代码仍然能以习惯的顺序方式编写,丝毫不会感受到 NginX I/O 复用结构的存在,同 ...
用 appcfg.py update 上传 GAE 应用时现在可能会出现“EOF occurred in violation of protocol”错误,可以设置以下环境变量后解决: export HTTP_PROXY=http://google.cn:80 export HTTPS_PROXY=http://google.cn:80  注意 HTTPS_PROXY 里设置的确实是 http:// 协议!另外不能使用 IPv6 的 google.cn 地址。  
http://agentzh.org/misc/nginx/maxim-tut.txt http://agentzh.org/misc/nginx/agentzh-tut.txt  
用 rpmbuild 编译一些老的 SRPM 或 tarball 时经常会报告 Package already exists: %package ... 错误而无法继续,通常其原因是这些包的 spec 文件中含有当前版本的 rpmbuild 无法识别或展开的宏定义,只要修改一下 spec 文件保证其中非标准的宏都有对应定义应该就能继续打包了。  
Erlang 的 DNS 解析方法有包括 file(读取 /etc/hosts 文件)、dns(Erlang 自己的 DNS 客户端)、native(调用外部程序 inet_gethost 用 libc 的 gethostbyname 函数解析域名) 在内的好几种方式,可以在 kernel inetrc 文件中以 {lookup, [...]} 形式指定多 ...
http://t3.dotgnu.info/blog/php/user-cache-timebomb.html  
SysV IPC 包括 Semaphore、Shared Memory 和 Message Queue 这 3 类进程间通信手段,虽然 POSIX.1-2001 实时接口标准规定了另一套提供相同手段但更一致化的接口(POSIX IPC),但 SysV IPC 仍然有相当数量的用户。 通过调整一些内核参数,可以更改 SysV IPC 对数据的固有限制,相关参数对应的控制文件可在 /proc/sys/kernel/ 目录下找到,也可以通过 sysctl 更改,现罗列如下:   控制文件路径 内核参数(通过 sysctl 更改时使用) 含义 /proc/sys/ ...
用gcc编译使用了POSIX thread的程序时通常需要加额外的选项,以便使用thread-safe的库及头文件,一些老的书里说直接增加链接选项 -lpthread 就可以了,像这样: gcc -c x.c gcc x.o -ox -lpthread  而gcc手册里则指出应该在编译和链接时都增加 -pthread 选项,像这样: gcc -pthread -c x.c gcc x.o -ox -pthread  那么 -pthread 相比于 -lpthread 链接选项究竟多做了什么工作呢?我们可以在verbose模式下执行一下对应的gcc命令行看出来。下面是老式的直接加 -l ...
soname for a shared library: lib <library name> .so. <major ver>   fully-qualified soname for a shared library: <path> /lib <library name> .so. <major ver>   real name for a shared library: lib <library name> .so. <major ver> . <mino ...
最近帮同事检查一个apache的问题,现象如下: 原本配置了多个VirtualHost,DocumentRoot指向/var/www/下不同的子目录,都能正常工作。 新加了一个VirtualHost,将DocumentRoot指向/home/aa/,重启apache后无法访问该VirtualHost下的内容,提示403 Forbidden,而此时访问原先的几个VirtualHost还是没有问题。 apache错误日志里没有什么奇怪的输出。 操作系统CentOS 4.x。 首先考虑是不是新加的VirtualHost配置有误导致文件路径映射错误,所以用strace跟了一下apache看 ...
最近写了一个主机健康检测和软负载均衡用的软件ZFOR(http://github.com/chaoslawful/zfor ),可以通过LD_PRELOAD预载入的方式拦截系统的域名解析调用(gethostbyname、getaddrinfo等)。但发现对某些发行版的PHP CURL extension光加载zfor动态库没有用,还必须同时加载libcurl.so才能生效。   经过一番搜索,发现原来是PHP编译时让Zend引擎使用了RTLD_DEEPBIND标志来加载扩展,该标志的作用是约束动态符号解析的查找范围为载入的动态库及其依赖项,而不是从所有已加载项的符号表中寻找。PHP启用该选 ...
Xen 虚拟机默认不允许不同的虚拟机使用不同的系统时间,因此所有虚拟机的系统时间都会同宿主机的系统时间严格同步,用 date 命令修改虚拟机系统时间时虽然提示成功但其实系统时间还是没变。若有独立修改 Xen 虚拟机的特殊需要,可以通过如下方法进行:   1. 在 Xen 虚拟机的 root 提示符下输入命令: echo 1 > /proc/sys/xen/independent_wallclock 或 sysctl xen.independent_wallclock=1 以启用虚拟机独立的系统时间 2. 现在用 date -s "目标日期时间" ...
After some googling I found several ways to do the job: 1. Explore2fs http://www.chrysocome.net/explore2fs    Pros: Opensource; No installing needed    Cons: Read only; Exporting file is too slow... 2. Ext2 IFS http://www.fs-driver.org/index.html    Pros: Mount EXT2/3 partition to a real disk letter ...
Global site tag (gtag.js) - Google Analytics