所有由tadashi发布的文章

json_decode如何简单解决解析含有特殊字符的字符串

现在开发接口大多数都是使用的是post一个json字符串过来,然后后端服务进行解析这个json然后做相应的处理,由于接口是开放出去的,调用方使用各种各样的语言来实现,在次就遇到调用方确实post过来一个json字符串,而php就是死活都没有进行对应得业务处理。

继续阅读json_decode如何简单解决解析含有特殊字符的字符串

Lua 5.3的中文参考手册 – 语言定义

本章节主要是讲解Lua的词法,语法跟语义。通俗点来说就是描述哪些词是有效的,如何组合跟组合后是什么意思。

语言构造将使用常用的扩展BFN表达式写出,也就是这样:{a}表示0或n个a,[a]表示一个选项a。非最终符号可以写成non-terminal,关键字会写成kword,而不能分解的符合会写成这样‘=’。完整的Lua语法可以查看最后一章(见:8)。

继续阅读Lua 5.3的中文参考手册 – 语言定义

IO多路复用之epoll总结[转载]

http://www.cnblogs.com/Anker/p/3263780.html

1、基本知识

epoll是在2.6内核中提出的,是之前的select和poll的增强版本。相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次。

继续阅读IO多路复用之epoll总结[转载]

C语言变长数组data[0]的强大意义

­以前一直写结构体时都是用char *data来表达结构体存储可变的数据,这样的做法是非常正常也是常用的形式,前段时间看部分代码时发现一个结构中包含char data[0],第一次见到非常不理解,数组的长度居然可以为0?当时就google了一下,发现很多Linux上的源码中都采用char data[0],想到大神们都采用这种写法,说明这种写法肯定有隐藏着非常观的空间优势或者操作上的方便。为此我决定写个demo来测试一下

继续阅读C语言变长数组data[0]的强大意义

IO多路复用之poll总结[转载]

http://www.cnblogs.com/Anker/archive/2013/08/15/3261006.html

1、基本知识

poll的机制与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是poll没有最大文件描述符数量的限制。poll和select同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而不论这些文件描述符是否就绪,它的开销随着文件描述符数量的增加而线性增大。

继续阅读IO多路复用之poll总结[转载]

Openresty+Lua开源的图库管理系统:Tadashi Gallery 0.9.8发布

Tadashi Gallery介绍

  1. Tadashi Gallery是什么鬼?
    Tadashi Gallery简称为TG,TG是一个类似于淘宝图片管理系统的简单版,便于将图片按文件夹进行分类管理,方便图片进行多次利用展示。
  2. TG应用背景
    在通常情况下大多数网站都是采用要使用时就进行图片上传,这样是很方便,但是遇到图片重复利用次数过多的网站时,这无非增加了存储空间也增加了图片传输的带宽,而且在多点的站点是部署配置也是非常麻烦,非常不利用扩展。在此环境下TG就诞生了,也借鉴了淘宝图库的一些想法。
  3. TG的好处
    TG在图片重复利用展示的特点就非常明显了,减少服务器的存储空间,减少带宽的压力等。也可以进行二次开发进行,很方便的进行扩展。也可以和fastDFS结合是组合成高性能的的分布式图片系统。
  4. TG的弊端
    TG是采用Lua开发的,并结合OpenResty一起才可运行,相对于用PHP来说没有那么普及并且部署不方便,考虑到TG一旦部署完毕后都不在进行更改的关系,以上因素都可以简单的忽略。

继续阅读Openresty+Lua开源的图库管理系统:Tadashi Gallery 0.9.8发布